@remnic/core 9.3.770 → 9.4.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.js +35 -35
- package/dist/access-boundary.js +36 -36
- package/dist/access-cli.js +109 -108
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.js +47 -46
- package/dist/access-identity-continuity-surface.js +35 -35
- package/dist/access-lcm-surface.js +35 -35
- package/dist/access-mcp-output-schemas.d.ts +20 -0
- package/dist/access-mcp-output-schemas.js +8 -0
- package/dist/access-mcp.js +44 -43
- package/dist/access-observe-write-surface.js +35 -35
- package/dist/access-operations-batch.js +40 -40
- package/dist/access-operations.d.ts +4 -4
- package/dist/access-operations.js +42 -42
- package/dist/access-recall-surface.js +35 -35
- package/dist/access-schema.d.ts +68 -68
- package/dist/access-schema.js +3 -3
- package/dist/access-service.js +35 -35
- package/dist/active-recall.js +2 -2
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-2SOUW4JW.js → auto-sync-M47VTCFI.js} +7 -7
- package/dist/bootstrap.js +2 -2
- package/dist/boxes.js +2 -2
- package/dist/briefing.js +10 -10
- package/dist/buffer.js +2 -2
- package/dist/calibration.js +4 -4
- package/dist/causal-behavior.js +4 -4
- package/dist/causal-chain.js +4 -4
- package/dist/causal-consolidation.js +15 -15
- package/dist/causal-retrieval.js +4 -4
- package/dist/causal-trajectory-graph.js +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-7FL4CNPV.js → chunk-2A3OXAP2.js} +2 -2
- package/dist/{chunk-GG6AJN7A.js → chunk-2IZAGAJR.js} +2 -2
- package/dist/{chunk-ZG4FT6IT.js → chunk-2TCZE3C2.js} +3 -3
- package/dist/chunk-37CTGERM.js +62 -0
- package/dist/chunk-37CTGERM.js.map +1 -0
- package/dist/{chunk-KYYL4U6X.js → chunk-42BBIR33.js} +2 -2
- package/dist/{chunk-DQC3ZZYM.js → chunk-4KJLYTLS.js} +2 -2
- package/dist/{chunk-7OSULYN2.js → chunk-4NMATTXV.js} +2 -2
- package/dist/{chunk-GY3SKOS4.js → chunk-5EZXHU36.js} +2 -2
- package/dist/{chunk-IOENSSZC.js → chunk-5H56JAHW.js} +4 -4
- package/dist/{chunk-K2I3AWBR.js → chunk-5K5VEDFY.js} +2 -2
- package/dist/chunk-5RUE3GHQ.js +445 -0
- package/dist/chunk-5RUE3GHQ.js.map +1 -0
- package/dist/{chunk-IBAU2RZN.js → chunk-64ZYXSCO.js} +2 -2
- package/dist/{chunk-2MR3MFQB.js → chunk-6Y4JTNX7.js} +2 -2
- package/dist/{chunk-XG4NBBRW.js → chunk-7BAJAXGB.js} +2 -2
- package/dist/{chunk-L24JROPR.js → chunk-7WSLR2CU.js} +2 -2
- package/dist/{chunk-EXM3CQTZ.js → chunk-A3GOMRJG.js} +2 -2
- package/dist/{chunk-KFIAFHOC.js → chunk-ABGDGBDT.js} +2 -2
- package/dist/{chunk-3JOFWTQD.js → chunk-APMGGGTY.js} +3 -3
- package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
- package/dist/{chunk-XHYGJVXL.js → chunk-AXTXN4T6.js} +2 -2
- package/dist/{chunk-5QANTTY2.js → chunk-BRDJ2HFP.js} +2 -2
- package/dist/{chunk-QMN3CIFS.js → chunk-CGS7UKWM.js} +2 -2
- package/dist/{chunk-KYC3RLYJ.js → chunk-CXLNZXG5.js} +1 -1
- package/dist/{chunk-3O3BZNSH.js → chunk-CZGIIADK.js} +10 -10
- package/dist/{chunk-QRDOSYOR.js → chunk-DBRYEIGY.js} +2 -2
- package/dist/{chunk-UC4YOAC2.js → chunk-E5BK6CGV.js} +2 -2
- package/dist/{chunk-TKZ3AL5V.js → chunk-EHK6KZHK.js} +2 -2
- package/dist/{chunk-JZ7P26GF.js → chunk-F53UF7CI.js} +2 -2
- package/dist/{chunk-SJHM6I4J.js → chunk-FC77VUX5.js} +2 -2
- package/dist/{chunk-DKTSR7EK.js → chunk-FDPZVY6D.js} +2 -2
- package/dist/{chunk-CSHUSYUM.js → chunk-FT37KV7R.js} +2 -2
- package/dist/{chunk-MLDAD27I.js → chunk-FWPHPN3V.js} +8 -8
- package/dist/{chunk-SRSPVFSJ.js → chunk-G47FEGGK.js} +4 -4
- package/dist/{chunk-OP43P53G.js → chunk-GEVIE5NV.js} +163 -73
- package/dist/chunk-GEVIE5NV.js.map +1 -0
- package/dist/{chunk-52TEPNL7.js → chunk-H25TAODC.js} +7 -7
- package/dist/{chunk-5ACKQLGA.js → chunk-H2EJNV2Z.js} +3 -3
- package/dist/{chunk-XDRJQMYL.js → chunk-H5IT5JL7.js} +2 -2
- package/dist/{chunk-TQT3USCG.js → chunk-HG32URJJ.js} +2 -2
- package/dist/{chunk-ZQNCHPTZ.js → chunk-HLTAPHZZ.js} +2 -2
- package/dist/{chunk-LOPZ2DWR.js → chunk-I73G4UH7.js} +2 -2
- package/dist/{chunk-EWGMA5W5.js → chunk-IGF4DII6.js} +20 -20
- package/dist/{chunk-DCWIQFNA.js → chunk-JI5AVXYO.js} +4 -4
- package/dist/{chunk-VUA4S7P6.js → chunk-JIKJPDQJ.js} +4 -4
- package/dist/{chunk-VQ34TERH.js → chunk-JZHHREBL.js} +2 -2
- package/dist/{chunk-IQVQJJL7.js → chunk-K2ZLHESQ.js} +2 -2
- package/dist/{chunk-PWFWCGOO.js → chunk-KAWTOYAW.js} +2 -2
- package/dist/{chunk-DJECGBBM.js → chunk-KQDNAXOM.js} +2 -2
- package/dist/{chunk-WIWPSQYU.js → chunk-KQPJLK3X.js} +2 -2
- package/dist/{chunk-QKUWPSU3.js → chunk-KS4PRHRD.js} +2 -2
- package/dist/{chunk-DMKMQTBH.js → chunk-L4UZBJNM.js} +2 -2
- package/dist/{chunk-IQ7WCZRW.js → chunk-LLMZK53N.js} +2 -2
- package/dist/{chunk-YTU7WKYN.js → chunk-MNUHL34L.js} +3 -3
- package/dist/{chunk-ZCWIH4LH.js → chunk-MRHFJV44.js} +2 -2
- package/dist/{chunk-W4H5A3TJ.js → chunk-MTR7BZQN.js} +3 -3
- package/dist/{chunk-PNLCEFE4.js → chunk-MTWKDOVO.js} +2 -2
- package/dist/{chunk-3YYWUHA7.js → chunk-MWH5MAFP.js} +5 -5
- package/dist/{chunk-OSMBC3JU.js → chunk-O2EL7EGG.js} +2 -2
- package/dist/{chunk-HW5EF6LV.js → chunk-O7BBFJLP.js} +2 -2
- package/dist/{chunk-EHQ5HO5T.js → chunk-OBMR4VIX.js} +1 -1
- package/dist/{chunk-WRBDUNSW.js → chunk-OH6BKCPB.js} +3 -3
- package/dist/{chunk-6SHAUM5S.js → chunk-OUMTBFSQ.js} +4 -4
- package/dist/{chunk-FLVL4L3L.js → chunk-OUXPVWTZ.js} +5 -5
- package/dist/{chunk-EEKDRAWX.js → chunk-PRTA6444.js} +2 -2
- package/dist/{chunk-WB4CFKZ4.js → chunk-QGS7Z7YU.js} +2 -2
- package/dist/{chunk-T4AWNIXJ.js → chunk-QICQ35K5.js} +2 -2
- package/dist/{chunk-UUH4YQOF.js → chunk-QLULYKWZ.js} +2 -2
- package/dist/{chunk-DBSMLRTO.js → chunk-QT2RZNRT.js} +2 -2
- package/dist/{chunk-HM6UJPPO.js → chunk-QWGNDWKB.js} +2 -2
- package/dist/{chunk-KCQA46NR.js → chunk-R5VAVVHP.js} +2 -2
- package/dist/{chunk-MYNRJGOY.js → chunk-RBGL4MKQ.js} +2 -2
- package/dist/{chunk-O7GOFAM3.js → chunk-RP7YXA67.js} +2 -2
- package/dist/{chunk-BVKCV2ZY.js → chunk-SMX5267P.js} +2 -2
- package/dist/{chunk-U72WWTLR.js → chunk-TH2KIPP7.js} +4 -4
- package/dist/{chunk-PSNMICC2.js → chunk-TKUQSXU4.js} +10 -10
- package/dist/{chunk-XBZQRZ6G.js → chunk-TN7THW5U.js} +2 -2
- package/dist/{chunk-O5EKTMOJ.js → chunk-UAOZJX5J.js} +16 -16
- package/dist/{chunk-JRZV3767.js → chunk-UI4FVU6T.js} +2 -2
- package/dist/{chunk-E6LXM2GE.js → chunk-UQI2NHTY.js} +55 -55
- package/dist/{chunk-W7VA5667.js → chunk-UQMCR5RW.js} +3 -3
- package/dist/{chunk-VGUOEDTU.js → chunk-V3UE5I5F.js} +2 -2
- package/dist/{chunk-STN5KMSS.js → chunk-VBBMTSOV.js} +7 -7
- package/dist/{chunk-5QJZLJ7Q.js → chunk-VBVSN2TV.js} +3 -3
- package/dist/{chunk-VL7DP3OW.js → chunk-VFSP73LP.js} +2 -2
- package/dist/{chunk-KMKBD66B.js → chunk-XOE5DYQL.js} +3 -3
- package/dist/{chunk-TGROC2UP.js → chunk-XXEOGY77.js} +9 -9
- package/dist/{chunk-NNL4LJAD.js → chunk-XZ5I7OZR.js} +5 -5
- package/dist/{chunk-7XGF5HCC.js → chunk-XZJMIJLW.js} +85 -85
- package/dist/{chunk-3NN73CM7.js → chunk-YFBTVOMB.js} +3 -3
- package/dist/{chunk-RZ3KJZYE.js → chunk-YM7IEUO7.js} +3 -3
- package/dist/{chunk-ZT34X56N.js → chunk-YPL66L3U.js} +2 -2
- package/dist/{chunk-ZZMRXJFY.js → chunk-ZIDSD6VC.js} +2 -2
- package/dist/cli.js +71 -70
- package/dist/compounding/engine.js +11 -11
- package/dist/compounding/preference-consolidator.js +1 -1
- package/dist/config.js +2 -2
- package/dist/connectors/codex-materialize-runner.js +11 -11
- package/dist/connectors/codex-materialize.js +2 -2
- package/dist/connectors/index.js +12 -12
- package/dist/contradiction/index.js +3 -3
- package/dist/{contradiction-scan-3FJYWS3G.js → contradiction-scan-SSKCAMLX.js} +3 -3
- package/dist/conversation-index/backend.js +5 -5
- package/dist/conversation-index/cleanup.js +2 -2
- package/dist/conversation-index/faiss-adapter.js +2 -2
- package/dist/conversation-index/indexer.js +2 -2
- package/dist/conversation-index/search.js +2 -2
- package/dist/day-summary.js +2 -2
- package/dist/embedding-fallback.js +2 -2
- package/dist/entity-retrieval.js +11 -11
- package/dist/extraction-faithfulness.js +5 -5
- package/dist/extraction-judge-telemetry.js +2 -2
- package/dist/extraction-judge-training.js +2 -2
- package/dist/extraction-judge.js +5 -5
- package/dist/extraction.js +9 -9
- package/dist/fallback-llm.js +4 -4
- package/dist/{forget-WYLR4ZFV.js → forget-KHF7A44H.js} +4 -4
- package/dist/{graph-edge-decay-RXUCJIN4.js → graph-edge-decay-FO7AM4UR.js} +3 -3
- package/dist/graph-snapshot.js +2 -2
- package/dist/graph.js +1 -1
- package/dist/index.js +146 -145
- package/dist/lcm/archive.js +2 -2
- package/dist/lcm/engine.js +5 -5
- package/dist/lcm/index.js +8 -8
- package/dist/lcm/schema.js +2 -2
- package/dist/lcm/summarizer.js +3 -3
- package/dist/local-llm.js +2 -2
- package/dist/logger.d.ts +8 -2
- package/dist/logger.js +1 -1
- package/dist/maintenance/memory-governance.js +10 -10
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
- package/dist/maintenance/rebuild-memory-projection.js +12 -12
- package/dist/model-registry.js +2 -2
- package/dist/models-json.js +2 -2
- package/dist/namespaces/migrate.js +23 -23
- package/dist/namespaces/search.js +13 -13
- package/dist/namespaces/storage.js +10 -10
- package/dist/native-knowledge.js +2 -2
- package/dist/negative.js +2 -2
- package/dist/operator-toolkit.js +30 -30
- package/dist/orchestration/compression-guideline-coordinator.js +2 -2
- package/dist/orchestration/maintenance.js +12 -12
- package/dist/orchestrator.js +109 -108
- package/dist/profiling.js +2 -2
- package/dist/qmd.js +2 -2
- package/dist/recall-planner-llm.js +4 -4
- package/dist/recall-qos.js +2 -2
- package/dist/recall-state.js +2 -2
- package/dist/relevance.js +2 -2
- package/dist/{resolution-33PIX3TT.js → resolution-VH4NGENZ.js} +3 -3
- package/dist/resolution-VH4NGENZ.js.map +1 -0
- package/dist/resolve-provider-secret.js +2 -2
- package/dist/resume-bundles.js +4 -4
- package/dist/retrieval-agents.js +2 -2
- package/dist/routing/store.js +2 -2
- package/dist/schemas.d.ts +84 -84
- package/dist/search/embed-helper.js +2 -2
- package/dist/search/factory.js +12 -12
- package/dist/search/index.js +12 -12
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/remote-backend.js +2 -2
- package/dist/semantic-consolidation.js +12 -12
- package/dist/semantic-rule-promotion.js +10 -10
- package/dist/semantic-rule-verifier.js +10 -10
- package/dist/session-observer-state.js +2 -2
- package/dist/session-transcript-migration.js +2 -2
- package/dist/shared-context/manager.d.ts +8 -8
- package/dist/shared-context/manager.js +2 -2
- package/dist/storage-guards.js +2 -2
- package/dist/storage.js +9 -9
- package/dist/summarizer.js +7 -7
- package/dist/temporal-supersession.js +2 -2
- package/dist/threading.js +2 -2
- package/dist/transcript.js +2 -2
- 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/types.d.ts +66 -66
- package/dist/verified-recall.js +11 -11
- package/package.json +2 -2
- package/src/access-mcp-output-schemas.ts +472 -0
- package/src/access-mcp.ts +235 -143
- package/src/logger.test.ts +120 -0
- package/src/logger.ts +37 -9
- package/dist/chunk-NU3CSQ4H.js +0 -48
- package/dist/chunk-NU3CSQ4H.js.map +0 -1
- package/dist/chunk-OP43P53G.js.map +0 -1
- /package/dist/{contradiction-scan-3FJYWS3G.js.map → access-mcp-output-schemas.js.map} +0 -0
- /package/dist/{auto-sync-2SOUW4JW.js.map → auto-sync-M47VTCFI.js.map} +0 -0
- /package/dist/{chunk-7FL4CNPV.js.map → chunk-2A3OXAP2.js.map} +0 -0
- /package/dist/{chunk-GG6AJN7A.js.map → chunk-2IZAGAJR.js.map} +0 -0
- /package/dist/{chunk-ZG4FT6IT.js.map → chunk-2TCZE3C2.js.map} +0 -0
- /package/dist/{chunk-KYYL4U6X.js.map → chunk-42BBIR33.js.map} +0 -0
- /package/dist/{chunk-DQC3ZZYM.js.map → chunk-4KJLYTLS.js.map} +0 -0
- /package/dist/{chunk-7OSULYN2.js.map → chunk-4NMATTXV.js.map} +0 -0
- /package/dist/{chunk-GY3SKOS4.js.map → chunk-5EZXHU36.js.map} +0 -0
- /package/dist/{chunk-IOENSSZC.js.map → chunk-5H56JAHW.js.map} +0 -0
- /package/dist/{chunk-K2I3AWBR.js.map → chunk-5K5VEDFY.js.map} +0 -0
- /package/dist/{chunk-IBAU2RZN.js.map → chunk-64ZYXSCO.js.map} +0 -0
- /package/dist/{chunk-2MR3MFQB.js.map → chunk-6Y4JTNX7.js.map} +0 -0
- /package/dist/{chunk-XG4NBBRW.js.map → chunk-7BAJAXGB.js.map} +0 -0
- /package/dist/{chunk-L24JROPR.js.map → chunk-7WSLR2CU.js.map} +0 -0
- /package/dist/{chunk-EXM3CQTZ.js.map → chunk-A3GOMRJG.js.map} +0 -0
- /package/dist/{chunk-KFIAFHOC.js.map → chunk-ABGDGBDT.js.map} +0 -0
- /package/dist/{chunk-3JOFWTQD.js.map → chunk-APMGGGTY.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
- /package/dist/{chunk-XHYGJVXL.js.map → chunk-AXTXN4T6.js.map} +0 -0
- /package/dist/{chunk-5QANTTY2.js.map → chunk-BRDJ2HFP.js.map} +0 -0
- /package/dist/{chunk-QMN3CIFS.js.map → chunk-CGS7UKWM.js.map} +0 -0
- /package/dist/{chunk-KYC3RLYJ.js.map → chunk-CXLNZXG5.js.map} +0 -0
- /package/dist/{chunk-3O3BZNSH.js.map → chunk-CZGIIADK.js.map} +0 -0
- /package/dist/{chunk-QRDOSYOR.js.map → chunk-DBRYEIGY.js.map} +0 -0
- /package/dist/{chunk-UC4YOAC2.js.map → chunk-E5BK6CGV.js.map} +0 -0
- /package/dist/{chunk-TKZ3AL5V.js.map → chunk-EHK6KZHK.js.map} +0 -0
- /package/dist/{chunk-JZ7P26GF.js.map → chunk-F53UF7CI.js.map} +0 -0
- /package/dist/{chunk-SJHM6I4J.js.map → chunk-FC77VUX5.js.map} +0 -0
- /package/dist/{chunk-DKTSR7EK.js.map → chunk-FDPZVY6D.js.map} +0 -0
- /package/dist/{chunk-CSHUSYUM.js.map → chunk-FT37KV7R.js.map} +0 -0
- /package/dist/{chunk-MLDAD27I.js.map → chunk-FWPHPN3V.js.map} +0 -0
- /package/dist/{chunk-SRSPVFSJ.js.map → chunk-G47FEGGK.js.map} +0 -0
- /package/dist/{chunk-52TEPNL7.js.map → chunk-H25TAODC.js.map} +0 -0
- /package/dist/{chunk-5ACKQLGA.js.map → chunk-H2EJNV2Z.js.map} +0 -0
- /package/dist/{chunk-XDRJQMYL.js.map → chunk-H5IT5JL7.js.map} +0 -0
- /package/dist/{chunk-TQT3USCG.js.map → chunk-HG32URJJ.js.map} +0 -0
- /package/dist/{chunk-ZQNCHPTZ.js.map → chunk-HLTAPHZZ.js.map} +0 -0
- /package/dist/{chunk-LOPZ2DWR.js.map → chunk-I73G4UH7.js.map} +0 -0
- /package/dist/{chunk-EWGMA5W5.js.map → chunk-IGF4DII6.js.map} +0 -0
- /package/dist/{chunk-DCWIQFNA.js.map → chunk-JI5AVXYO.js.map} +0 -0
- /package/dist/{chunk-VUA4S7P6.js.map → chunk-JIKJPDQJ.js.map} +0 -0
- /package/dist/{chunk-VQ34TERH.js.map → chunk-JZHHREBL.js.map} +0 -0
- /package/dist/{chunk-IQVQJJL7.js.map → chunk-K2ZLHESQ.js.map} +0 -0
- /package/dist/{chunk-PWFWCGOO.js.map → chunk-KAWTOYAW.js.map} +0 -0
- /package/dist/{chunk-DJECGBBM.js.map → chunk-KQDNAXOM.js.map} +0 -0
- /package/dist/{chunk-WIWPSQYU.js.map → chunk-KQPJLK3X.js.map} +0 -0
- /package/dist/{chunk-QKUWPSU3.js.map → chunk-KS4PRHRD.js.map} +0 -0
- /package/dist/{chunk-DMKMQTBH.js.map → chunk-L4UZBJNM.js.map} +0 -0
- /package/dist/{chunk-IQ7WCZRW.js.map → chunk-LLMZK53N.js.map} +0 -0
- /package/dist/{chunk-YTU7WKYN.js.map → chunk-MNUHL34L.js.map} +0 -0
- /package/dist/{chunk-ZCWIH4LH.js.map → chunk-MRHFJV44.js.map} +0 -0
- /package/dist/{chunk-W4H5A3TJ.js.map → chunk-MTR7BZQN.js.map} +0 -0
- /package/dist/{chunk-PNLCEFE4.js.map → chunk-MTWKDOVO.js.map} +0 -0
- /package/dist/{chunk-3YYWUHA7.js.map → chunk-MWH5MAFP.js.map} +0 -0
- /package/dist/{chunk-OSMBC3JU.js.map → chunk-O2EL7EGG.js.map} +0 -0
- /package/dist/{chunk-HW5EF6LV.js.map → chunk-O7BBFJLP.js.map} +0 -0
- /package/dist/{chunk-EHQ5HO5T.js.map → chunk-OBMR4VIX.js.map} +0 -0
- /package/dist/{chunk-WRBDUNSW.js.map → chunk-OH6BKCPB.js.map} +0 -0
- /package/dist/{chunk-6SHAUM5S.js.map → chunk-OUMTBFSQ.js.map} +0 -0
- /package/dist/{chunk-FLVL4L3L.js.map → chunk-OUXPVWTZ.js.map} +0 -0
- /package/dist/{chunk-EEKDRAWX.js.map → chunk-PRTA6444.js.map} +0 -0
- /package/dist/{chunk-WB4CFKZ4.js.map → chunk-QGS7Z7YU.js.map} +0 -0
- /package/dist/{chunk-T4AWNIXJ.js.map → chunk-QICQ35K5.js.map} +0 -0
- /package/dist/{chunk-UUH4YQOF.js.map → chunk-QLULYKWZ.js.map} +0 -0
- /package/dist/{chunk-DBSMLRTO.js.map → chunk-QT2RZNRT.js.map} +0 -0
- /package/dist/{chunk-HM6UJPPO.js.map → chunk-QWGNDWKB.js.map} +0 -0
- /package/dist/{chunk-KCQA46NR.js.map → chunk-R5VAVVHP.js.map} +0 -0
- /package/dist/{chunk-MYNRJGOY.js.map → chunk-RBGL4MKQ.js.map} +0 -0
- /package/dist/{chunk-O7GOFAM3.js.map → chunk-RP7YXA67.js.map} +0 -0
- /package/dist/{chunk-BVKCV2ZY.js.map → chunk-SMX5267P.js.map} +0 -0
- /package/dist/{chunk-U72WWTLR.js.map → chunk-TH2KIPP7.js.map} +0 -0
- /package/dist/{chunk-PSNMICC2.js.map → chunk-TKUQSXU4.js.map} +0 -0
- /package/dist/{chunk-XBZQRZ6G.js.map → chunk-TN7THW5U.js.map} +0 -0
- /package/dist/{chunk-O5EKTMOJ.js.map → chunk-UAOZJX5J.js.map} +0 -0
- /package/dist/{chunk-JRZV3767.js.map → chunk-UI4FVU6T.js.map} +0 -0
- /package/dist/{chunk-E6LXM2GE.js.map → chunk-UQI2NHTY.js.map} +0 -0
- /package/dist/{chunk-W7VA5667.js.map → chunk-UQMCR5RW.js.map} +0 -0
- /package/dist/{chunk-VGUOEDTU.js.map → chunk-V3UE5I5F.js.map} +0 -0
- /package/dist/{chunk-STN5KMSS.js.map → chunk-VBBMTSOV.js.map} +0 -0
- /package/dist/{chunk-5QJZLJ7Q.js.map → chunk-VBVSN2TV.js.map} +0 -0
- /package/dist/{chunk-VL7DP3OW.js.map → chunk-VFSP73LP.js.map} +0 -0
- /package/dist/{chunk-KMKBD66B.js.map → chunk-XOE5DYQL.js.map} +0 -0
- /package/dist/{chunk-TGROC2UP.js.map → chunk-XXEOGY77.js.map} +0 -0
- /package/dist/{chunk-NNL4LJAD.js.map → chunk-XZ5I7OZR.js.map} +0 -0
- /package/dist/{chunk-7XGF5HCC.js.map → chunk-XZJMIJLW.js.map} +0 -0
- /package/dist/{chunk-3NN73CM7.js.map → chunk-YFBTVOMB.js.map} +0 -0
- /package/dist/{chunk-RZ3KJZYE.js.map → chunk-YM7IEUO7.js.map} +0 -0
- /package/dist/{chunk-ZT34X56N.js.map → chunk-YPL66L3U.js.map} +0 -0
- /package/dist/{chunk-ZZMRXJFY.js.map → chunk-ZIDSD6VC.js.map} +0 -0
- /package/dist/{graph-edge-decay-RXUCJIN4.js.map → contradiction-scan-SSKCAMLX.js.map} +0 -0
- /package/dist/{forget-WYLR4ZFV.js.map → forget-KHF7A44H.js.map} +0 -0
- /package/dist/{resolution-33PIX3TT.js.map → graph-edge-decay-FO7AM4UR.js.map} +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
|
|
4
|
+
import { type LoggerBackend, initLogger, log } from "./logger.js";
|
|
5
|
+
|
|
6
|
+
const FIXED = "2026-07-11T20:00:00.000Z";
|
|
7
|
+
|
|
8
|
+
function capture(): { lines: string[]; backend: LoggerBackend } {
|
|
9
|
+
const lines: string[] = [];
|
|
10
|
+
const push =
|
|
11
|
+
(level: string) =>
|
|
12
|
+
(msg: string, ...args: unknown[]) => {
|
|
13
|
+
lines.push(args.length ? `${level}|${msg}|${JSON.stringify(args)}` : `${level}|${msg}`);
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
lines,
|
|
17
|
+
backend: {
|
|
18
|
+
info: push("info"),
|
|
19
|
+
warn: push("warn"),
|
|
20
|
+
error: push("error"),
|
|
21
|
+
debug: push("debug"),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const savedEnv = process.env.REMNIC_LOG_TIMESTAMPS;
|
|
27
|
+
test.afterEach(() => {
|
|
28
|
+
if (savedEnv === undefined) Reflect.deleteProperty(process.env, "REMNIC_LOG_TIMESTAMPS");
|
|
29
|
+
else process.env.REMNIC_LOG_TIMESTAMPS = savedEnv;
|
|
30
|
+
// Reset to a silent backend (module default is NOOP) so this suite never
|
|
31
|
+
// leaks console output or timestamp state into sibling suites in-process.
|
|
32
|
+
initLogger({ info() {}, warn() {}, error() {}, debug() {} }, false, { timestamps: true });
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("prefixes each level with an ISO 8601 timestamp by default", () => {
|
|
36
|
+
const { lines, backend } = capture();
|
|
37
|
+
Reflect.deleteProperty(process.env, "REMNIC_LOG_TIMESTAMPS");
|
|
38
|
+
initLogger(backend, true, { clock: () => FIXED });
|
|
39
|
+
|
|
40
|
+
log.info("hello");
|
|
41
|
+
log.warn("careful");
|
|
42
|
+
log.error("boom", new Error("bad"));
|
|
43
|
+
log.debug("trace");
|
|
44
|
+
|
|
45
|
+
assert.deepEqual(lines, [
|
|
46
|
+
`info|${FIXED} remnic: hello`,
|
|
47
|
+
`warn|${FIXED} remnic: careful`,
|
|
48
|
+
`error|${FIXED} remnic: boom — bad`,
|
|
49
|
+
`debug|${FIXED} remnic [debug]: trace`,
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("timestamps: false restores the legacy 'remnic: ' format", () => {
|
|
54
|
+
const { lines, backend } = capture();
|
|
55
|
+
initLogger(backend, false, { timestamps: false, clock: () => FIXED });
|
|
56
|
+
|
|
57
|
+
log.info("hello");
|
|
58
|
+
assert.equal(lines[0], "info|remnic: hello");
|
|
59
|
+
assert.ok(!lines[0].includes(FIXED));
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test("REMNIC_LOG_TIMESTAMPS=false disables the prefix", () => {
|
|
63
|
+
const { lines, backend } = capture();
|
|
64
|
+
process.env.REMNIC_LOG_TIMESTAMPS = "false";
|
|
65
|
+
initLogger(backend, false, { clock: () => FIXED });
|
|
66
|
+
|
|
67
|
+
log.info("hello");
|
|
68
|
+
assert.equal(lines[0], "info|remnic: hello");
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test("explicit option overrides the env var", () => {
|
|
72
|
+
const { lines, backend } = capture();
|
|
73
|
+
process.env.REMNIC_LOG_TIMESTAMPS = "false";
|
|
74
|
+
initLogger(backend, false, { timestamps: true, clock: () => FIXED });
|
|
75
|
+
|
|
76
|
+
log.info("hello");
|
|
77
|
+
assert.equal(lines[0], `info|${FIXED} remnic: hello`);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test("emits a real ISO 8601 timestamp when no clock is injected", () => {
|
|
81
|
+
const { lines, backend } = capture();
|
|
82
|
+
Reflect.deleteProperty(process.env, "REMNIC_LOG_TIMESTAMPS");
|
|
83
|
+
initLogger(backend, false);
|
|
84
|
+
|
|
85
|
+
log.info("hello");
|
|
86
|
+
const m = /^info\|(\S+) remnic: hello$/.exec(lines[0]);
|
|
87
|
+
assert.ok(m, `unexpected line: ${lines[0]}`);
|
|
88
|
+
assert.ok(!Number.isNaN(Date.parse(m[1])));
|
|
89
|
+
assert.equal(new Date(m[1]).toISOString(), m[1]);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test("preserves variadic args and gates debug on the debug flag", () => {
|
|
93
|
+
const { lines, backend } = capture();
|
|
94
|
+
initLogger(backend, false, { clock: () => FIXED });
|
|
95
|
+
log.debug("suppressed");
|
|
96
|
+
assert.equal(lines.length, 0, "debug must be gated when debug=false");
|
|
97
|
+
|
|
98
|
+
initLogger(backend, true, { clock: () => FIXED });
|
|
99
|
+
log.info("withargs", { a: 1 });
|
|
100
|
+
assert.equal(lines.at(-1), `info|${FIXED} remnic: withargs|[{"a":1}]`);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
test("unrecognized REMNIC_LOG_TIMESTAMPS falls through to the default (on)", () => {
|
|
104
|
+
const { lines, backend } = capture();
|
|
105
|
+
process.env.REMNIC_LOG_TIMESTAMPS = "maybe";
|
|
106
|
+
initLogger(backend, false, { clock: () => FIXED });
|
|
107
|
+
|
|
108
|
+
log.info("hello");
|
|
109
|
+
assert.equal(lines[0], `info|${FIXED} remnic: hello`);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
test("empty or whitespace-only REMNIC_LOG_TIMESTAMPS reads as unset (default on)", () => {
|
|
113
|
+
for (const raw of ["", " "]) {
|
|
114
|
+
const { lines, backend } = capture();
|
|
115
|
+
process.env.REMNIC_LOG_TIMESTAMPS = raw;
|
|
116
|
+
initLogger(backend, false, { clock: () => FIXED });
|
|
117
|
+
log.info("hello");
|
|
118
|
+
assert.equal(lines[0], `info|${FIXED} remnic: hello`, `raw=${JSON.stringify(raw)}`);
|
|
119
|
+
}
|
|
120
|
+
});
|
package/src/logger.ts
CHANGED
|
@@ -12,8 +12,29 @@ const NOOP_LOGGER: LoggerBackend = {
|
|
|
12
12
|
debug() {},
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
+
export interface LoggerOptions {
|
|
16
|
+
/** Prefix each emitted line with an ISO 8601 timestamp. Defaults to true. */
|
|
17
|
+
timestamps?: boolean;
|
|
18
|
+
/** Clock source for the timestamp prefix; injectable for tests. */
|
|
19
|
+
clock?: () => string;
|
|
20
|
+
}
|
|
21
|
+
|
|
15
22
|
let _backend: LoggerBackend = NOOP_LOGGER;
|
|
16
23
|
let _debug = false;
|
|
24
|
+
let _timestamps = true;
|
|
25
|
+
let _clock: () => string = () => new Date().toISOString();
|
|
26
|
+
|
|
27
|
+
// Coerce a boolean-like env string. Empty/whitespace-only and unrecognized
|
|
28
|
+
// values return undefined so callers fall through to the default (timestamps
|
|
29
|
+
// on) rather than silently disabling — an empty env var reads as "unset".
|
|
30
|
+
function coerceBool(value: string | undefined): boolean | undefined {
|
|
31
|
+
if (value === undefined) return undefined;
|
|
32
|
+
const s = value.trim().toLowerCase();
|
|
33
|
+
if (s === "") return undefined;
|
|
34
|
+
if (s === "0" || s === "false" || s === "no" || s === "off") return false;
|
|
35
|
+
if (s === "1" || s === "true" || s === "yes" || s === "on") return true;
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
17
38
|
|
|
18
39
|
// Late-bind console.* rather than capturing references at module import
|
|
19
40
|
// time. In production this is behaviour-identical to the pre-bound
|
|
@@ -31,28 +52,35 @@ const CONSOLE_LOGGER: LoggerBackend = {
|
|
|
31
52
|
debug: (msg, ...args) => console.debug(msg, ...args),
|
|
32
53
|
};
|
|
33
54
|
|
|
34
|
-
export function initLogger(backend?: LoggerBackend, debug?: boolean): void {
|
|
55
|
+
export function initLogger(backend?: LoggerBackend, debug?: boolean, options?: LoggerOptions): void {
|
|
35
56
|
_backend = backend ?? CONSOLE_LOGGER;
|
|
36
57
|
_debug = debug ?? false;
|
|
58
|
+
// Precedence: explicit option > REMNIC_LOG_TIMESTAMPS env > default (on).
|
|
59
|
+
_timestamps = options?.timestamps ?? coerceBool(process.env.REMNIC_LOG_TIMESTAMPS) ?? true;
|
|
60
|
+
_clock = options?.clock ?? (() => new Date().toISOString());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Format one log line: "<iso> remnic: <msg>" when timestamps are enabled,
|
|
64
|
+
// otherwise the legacy "remnic: <msg>". Timestamp is per-call.
|
|
65
|
+
function fmt(msg: string, label = "remnic"): string {
|
|
66
|
+
const ts = _timestamps ? `${_clock()} ` : "";
|
|
67
|
+
return `${ts}${label}: ${msg}`;
|
|
37
68
|
}
|
|
38
69
|
|
|
39
70
|
export const log = {
|
|
40
71
|
info(msg: string, ...args: unknown[]): void {
|
|
41
|
-
_backend.info(
|
|
72
|
+
_backend.info(fmt(msg), ...args);
|
|
42
73
|
},
|
|
43
74
|
warn(msg: string, ...args: unknown[]): void {
|
|
44
|
-
_backend.warn(
|
|
75
|
+
_backend.warn(fmt(msg), ...args);
|
|
45
76
|
},
|
|
46
77
|
error(msg: string, err?: unknown): void {
|
|
47
|
-
const detail =
|
|
48
|
-
|
|
49
|
-
_backend.error(
|
|
50
|
-
`remnic: ${msg}${detail ? ` — ${detail}` : ""}`,
|
|
51
|
-
);
|
|
78
|
+
const detail = err instanceof Error ? err.message : err ? String(err) : "";
|
|
79
|
+
_backend.error(fmt(`${msg}${detail ? ` — ${detail}` : ""}`));
|
|
52
80
|
},
|
|
53
81
|
debug(msg: string, ...args: unknown[]): void {
|
|
54
82
|
if (!_debug) return;
|
|
55
83
|
const fn = _backend.debug ?? _backend.info;
|
|
56
|
-
fn(
|
|
84
|
+
fn(fmt(msg, "remnic [debug]"), ...args);
|
|
57
85
|
},
|
|
58
86
|
};
|
package/dist/chunk-NU3CSQ4H.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// src/logger.ts
|
|
2
|
-
var NOOP_LOGGER = {
|
|
3
|
-
info() {
|
|
4
|
-
},
|
|
5
|
-
warn() {
|
|
6
|
-
},
|
|
7
|
-
error() {
|
|
8
|
-
},
|
|
9
|
-
debug() {
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
var _backend = NOOP_LOGGER;
|
|
13
|
-
var _debug = false;
|
|
14
|
-
var CONSOLE_LOGGER = {
|
|
15
|
-
info: (msg, ...args) => console.info(msg, ...args),
|
|
16
|
-
warn: (msg, ...args) => console.warn(msg, ...args),
|
|
17
|
-
error: (msg, ...args) => console.error(msg, ...args),
|
|
18
|
-
debug: (msg, ...args) => console.debug(msg, ...args)
|
|
19
|
-
};
|
|
20
|
-
function initLogger(backend, debug) {
|
|
21
|
-
_backend = backend ?? CONSOLE_LOGGER;
|
|
22
|
-
_debug = debug ?? false;
|
|
23
|
-
}
|
|
24
|
-
var log = {
|
|
25
|
-
info(msg, ...args) {
|
|
26
|
-
_backend.info(`remnic: ${msg}`, ...args);
|
|
27
|
-
},
|
|
28
|
-
warn(msg, ...args) {
|
|
29
|
-
_backend.warn(`remnic: ${msg}`, ...args);
|
|
30
|
-
},
|
|
31
|
-
error(msg, err) {
|
|
32
|
-
const detail = err instanceof Error ? err.message : err ? String(err) : "";
|
|
33
|
-
_backend.error(
|
|
34
|
-
`remnic: ${msg}${detail ? ` \u2014 ${detail}` : ""}`
|
|
35
|
-
);
|
|
36
|
-
},
|
|
37
|
-
debug(msg, ...args) {
|
|
38
|
-
if (!_debug) return;
|
|
39
|
-
const fn = _backend.debug ?? _backend.info;
|
|
40
|
-
fn(`remnic [debug]: ${msg}`, ...args);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export {
|
|
45
|
-
initLogger,
|
|
46
|
-
log
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=chunk-NU3CSQ4H.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logger.ts"],"sourcesContent":["export interface LoggerBackend {\n info(msg: string, ...args: unknown[]): void;\n warn(msg: string, ...args: unknown[]): void;\n error(msg: string, ...args: unknown[]): void;\n debug?(msg: string, ...args: unknown[]): void;\n}\n\nconst NOOP_LOGGER: LoggerBackend = {\n info() {},\n warn() {},\n error() {},\n debug() {},\n};\n\nlet _backend: LoggerBackend = NOOP_LOGGER;\nlet _debug = false;\n\n// Late-bind console.* rather than capturing references at module import\n// time. In production this is behaviour-identical to the pre-bound\n// `.bind(console)` form — `console.info(msg, ...)` resolves `this` to\n// `console` whether called directly or via an arrow wrapper — but it lets\n// harnesses that swap console methods (e.g. runCli in @remnic/cli) route\n// logger output through their capture sinks. With the old pre-bound form,\n// any command that called initLogger() pinned the logger to the original\n// console methods before the harness could swap them, so log.warn /\n// log.info output escaped the capture buffer.\nconst CONSOLE_LOGGER: LoggerBackend = {\n info: (msg, ...args) => console.info(msg, ...args),\n warn: (msg, ...args) => console.warn(msg, ...args),\n error: (msg, ...args) => console.error(msg, ...args),\n debug: (msg, ...args) => console.debug(msg, ...args),\n};\n\nexport function initLogger(backend?: LoggerBackend, debug?: boolean): void {\n _backend = backend ?? CONSOLE_LOGGER;\n _debug = debug ?? false;\n}\n\nexport const log = {\n info(msg: string, ...args: unknown[]): void {\n _backend.info(`remnic: ${msg}`, ...args);\n },\n warn(msg: string, ...args: unknown[]): void {\n _backend.warn(`remnic: ${msg}`, ...args);\n },\n error(msg: string, err?: unknown): void {\n const detail =\n err instanceof Error ? err.message : err ? String(err) : \"\";\n _backend.error(\n `remnic: ${msg}${detail ? ` — ${detail}` : \"\"}`,\n );\n },\n debug(msg: string, ...args: unknown[]): void {\n if (!_debug) return;\n const fn = _backend.debug ?? _backend.info;\n fn(`remnic [debug]: ${msg}`, ...args);\n },\n};\n"],"mappings":";AAOA,IAAM,cAA6B;AAAA,EACjC,OAAO;AAAA,EAAC;AAAA,EACR,OAAO;AAAA,EAAC;AAAA,EACR,QAAQ;AAAA,EAAC;AAAA,EACT,QAAQ;AAAA,EAAC;AACX;AAEA,IAAI,WAA0B;AAC9B,IAAI,SAAS;AAWb,IAAM,iBAAgC;AAAA,EACpC,MAAM,CAAC,QAAQ,SAAS,QAAQ,KAAK,KAAK,GAAG,IAAI;AAAA,EACjD,MAAM,CAAC,QAAQ,SAAS,QAAQ,KAAK,KAAK,GAAG,IAAI;AAAA,EACjD,OAAO,CAAC,QAAQ,SAAS,QAAQ,MAAM,KAAK,GAAG,IAAI;AAAA,EACnD,OAAO,CAAC,QAAQ,SAAS,QAAQ,MAAM,KAAK,GAAG,IAAI;AACrD;AAEO,SAAS,WAAW,SAAyB,OAAuB;AACzE,aAAW,WAAW;AACtB,WAAS,SAAS;AACpB;AAEO,IAAM,MAAM;AAAA,EACjB,KAAK,QAAgB,MAAuB;AAC1C,aAAS,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI;AAAA,EACzC;AAAA,EACA,KAAK,QAAgB,MAAuB;AAC1C,aAAS,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI;AAAA,EACzC;AAAA,EACA,MAAM,KAAa,KAAqB;AACtC,UAAM,SACJ,eAAe,QAAQ,IAAI,UAAU,MAAM,OAAO,GAAG,IAAI;AAC3D,aAAS;AAAA,MACP,WAAW,GAAG,GAAG,SAAS,WAAM,MAAM,KAAK,EAAE;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,MAAM,QAAgB,MAAuB;AAC3C,QAAI,CAAC,OAAQ;AACb,UAAM,KAAK,SAAS,SAAS,SAAS;AACtC,OAAG,mBAAmB,GAAG,IAAI,GAAG,IAAI;AAAA,EACtC;AACF;","names":[]}
|