@remnic/core 10.0.92 → 10.0.93
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 +331 -58
- package/dist/access-authorization-probe.js +2 -283
- package/dist/access-boundary.d.ts +1 -1
- package/dist/access-boundary.d.ts.map +1 -1
- package/dist/access-boundary.js +1 -282
- package/dist/access-cli.js +286 -302
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.js +3 -3
- package/dist/access-extraction-force-flush.js +331 -58
- package/dist/access-http-briefing.js +331 -59
- package/dist/access-http-query.js +331 -60
- package/dist/access-http.js +329 -111
- package/dist/access-identity-continuity-surface.js +331 -58
- package/dist/access-lcm-surface.js +331 -58
- package/dist/access-mcp-frames.d.ts +20 -6
- package/dist/access-mcp-frames.d.ts.map +1 -1
- package/dist/access-mcp-frames.js +1 -1
- package/dist/access-mcp.d.ts +5 -0
- package/dist/access-mcp.d.ts.map +1 -1
- package/dist/access-mcp.js +329 -86
- package/dist/access-namespace-preflight.js +2 -282
- package/dist/access-observe-transcript.js +3 -3
- package/dist/access-observe-write-category.js +6 -6
- package/dist/access-observe-write-surface.js +331 -58
- package/dist/access-offline-manifest.js +12 -11
- package/dist/access-operations-batch.js +329 -63
- package/dist/access-operations.js +329 -72
- package/dist/access-recall-concurrency.js +331 -58
- package/dist/access-recall-diagnostics.js +5 -4
- package/dist/access-recall-response.js +331 -58
- package/dist/access-recall-surface.js +331 -58
- package/dist/access-schema.js +2 -2
- package/dist/access-service.js +334 -61
- package/dist/access-surface-catalog.js +6 -283
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-context-transform.js +1 -1
- package/dist/active-memory-bridge.js +3 -2
- package/dist/active-recall.js +35 -36
- package/dist/active-recall.js.map +1 -1
- package/dist/activity/journal-extract.d.ts +13 -1
- package/dist/activity/journal-extract.d.ts.map +1 -1
- package/dist/{auto-sync-3AZW7MXI.js → auto-sync-BO5YZKM6.js} +13 -15
- package/dist/{auto-sync-3AZW7MXI.js.map → auto-sync-BO5YZKM6.js.map} +1 -1
- package/dist/briefing.js +19 -19
- package/dist/buffer.js +16 -16
- package/dist/calibration.js +10 -10
- package/dist/{capsule-merge-2IIXFXN5.js → capsule-merge-6IDAYTKG.js} +6 -6
- package/dist/causal-consolidation.js +22 -22
- package/dist/{chunk-ATPWZ4F7.js → chunk-2LMA22UU.js} +5 -5
- package/dist/{chunk-RGUUBAT5.js → chunk-2WCLTWV2.js} +3 -3
- package/dist/{chunk-BQZEGOZ4.js → chunk-2YODOG2O.js} +2 -2
- package/dist/{chunk-WYG5UNDY.js → chunk-3AUDELZL.js} +2 -2
- package/dist/{chunk-N4KAE2NB.js → chunk-3CYOCE6U.js} +3 -3
- package/dist/{chunk-MB6ZJDN6.js → chunk-3FBAEPCU.js} +2 -2
- package/dist/{chunk-PIITB2YZ.js → chunk-3ZS3NUEI.js} +4 -4
- package/dist/{chunk-ANZZLRUX.js → chunk-4IVRQMZW.js} +2 -2
- package/dist/{chunk-63E37JCN.js → chunk-4RAJT5L2.js} +4 -4
- package/dist/{chunk-45VUHDV2.js → chunk-5CO5G4MN.js} +2 -2
- package/dist/{chunk-BRLXOZLM.js → chunk-5YT2IIFX.js} +729 -17
- package/dist/chunk-5YT2IIFX.js.map +1 -0
- package/dist/{chunk-E4IRW2FG.js → chunk-622V2AZA.js} +233 -40
- package/dist/chunk-622V2AZA.js.map +1 -0
- package/dist/{chunk-LUJCQQ3L.js → chunk-65HWAQ4F.js} +2 -2
- package/dist/{chunk-T67LUYCR.js → chunk-77NTFICT.js} +5 -5
- package/dist/chunk-A2WFUMUN.js +86 -0
- package/dist/chunk-A2WFUMUN.js.map +1 -0
- package/dist/{chunk-UE6RRXMF.js → chunk-A4F7OIC5.js} +2 -2
- package/dist/chunk-AHA5VQGP.js +117 -0
- package/dist/chunk-AHA5VQGP.js.map +1 -0
- package/dist/{chunk-SUSW74WU.js → chunk-ATG2PQ4V.js} +56 -5
- package/dist/chunk-ATG2PQ4V.js.map +1 -0
- package/dist/{chunk-U6UNF5ZS.js → chunk-B33YWUJV.js} +3 -3
- package/dist/{chunk-RRJBDXAQ.js → chunk-B377OKUP.js} +2 -2
- package/dist/{chunk-IUKYFTGW.js → chunk-B3DR2JBZ.js} +140 -125
- package/dist/chunk-B3DR2JBZ.js.map +1 -0
- package/dist/{chunk-ETZLQOUR.js → chunk-BGHCSLE5.js} +2 -2
- package/dist/{chunk-YYOMGOHB.js → chunk-BOK6BN5M.js} +2 -2
- package/dist/{chunk-OH7QLI6W.js → chunk-BPPUH5JM.js} +5 -5
- package/dist/{chunk-4J363OAA.js → chunk-BTI4C4MA.js} +2 -2
- package/dist/{chunk-O6ZSWHVR.js → chunk-C2KE5DMD.js} +4 -4
- package/dist/{chunk-47F6WWLQ.js → chunk-C73N66PR.js} +2 -2
- package/dist/{chunk-E3A7ELSG.js → chunk-CGJYL633.js} +2 -2
- package/dist/{chunk-WRT7GJ2D.js → chunk-CIWMTNHW.js} +4 -4
- package/dist/{chunk-O55EKIEC.js → chunk-D3ZKHLN2.js} +2 -2
- package/dist/{chunk-CD4BCCNP.js → chunk-DJ7WVEWX.js} +2 -2
- package/dist/{chunk-PWXPRVLK.js → chunk-EFL24KOI.js} +2 -2
- package/dist/{chunk-4CJTQHEG.js → chunk-ESLOLCD4.js} +3 -3
- package/dist/{chunk-6F42QONS.js → chunk-ETBVCRVL.js} +4 -4
- package/dist/{chunk-VILPVT4S.js → chunk-EZ47HOJ6.js} +4 -4
- package/dist/{chunk-EFYN5I7Z.js → chunk-F4QFU5IZ.js} +2 -2
- package/dist/{chunk-T6OZW2WR.js → chunk-FA7SLQ5X.js} +7 -1
- package/dist/chunk-FA7SLQ5X.js.map +1 -0
- package/dist/{chunk-7W3RXOIG.js → chunk-FMKILENU.js} +14 -14
- package/dist/{chunk-YLXETSAH.js → chunk-GCZJ7XRI.js} +2 -2
- package/dist/{chunk-5HFXGXE5.js → chunk-GQXOBKPL.js} +7 -9
- package/dist/{chunk-5HFXGXE5.js.map → chunk-GQXOBKPL.js.map} +1 -1
- package/dist/{chunk-UDKWFDV2.js → chunk-HLUHEMN4.js} +27 -3
- package/dist/chunk-HLUHEMN4.js.map +1 -0
- package/dist/{chunk-QFEDITXM.js → chunk-JNDMIAJ4.js} +2 -2
- package/dist/chunk-JTSSSR4L.js +359 -0
- package/dist/chunk-JTSSSR4L.js.map +1 -0
- package/dist/{chunk-5KBIOI4G.js → chunk-JVBAPAWZ.js} +217 -13
- package/dist/chunk-JVBAPAWZ.js.map +1 -0
- package/dist/{chunk-E5PPE4VA.js → chunk-K2VRKCPA.js} +2 -2
- package/dist/{chunk-MKRYQROF.js → chunk-LGEHAQHK.js} +4 -4
- package/dist/{chunk-7HTUYFR3.js → chunk-LLPMMMWG.js} +27 -10
- package/dist/chunk-LLPMMMWG.js.map +1 -0
- package/dist/{chunk-XYTQJD7F.js → chunk-LMJVP5CM.js} +2 -2
- package/dist/{chunk-FQKBJJYB.js → chunk-LPV72KRQ.js} +2 -2
- package/dist/{chunk-2LCRG2YV.js → chunk-M2XR6B6V.js} +2 -2
- package/dist/{chunk-P4WNBSTW.js → chunk-MH632KPO.js} +2 -2
- package/dist/{chunk-EQ4U73UH.js → chunk-MLAMXQAW.js} +14 -2
- package/dist/chunk-MLAMXQAW.js.map +1 -0
- package/dist/{chunk-ZU5JDLOH.js → chunk-MMRTPH3J.js} +2 -2
- package/dist/{chunk-PMJFRDJI.js → chunk-MUX7IL77.js} +2 -2
- package/dist/{chunk-HF3BKUVV.js → chunk-NAQ4A5IX.js} +7 -7
- package/dist/{chunk-TVIVY7KU.js → chunk-NED7IR7B.js} +4 -4
- package/dist/{chunk-6F5MJFXY.js → chunk-NHVAX7MH.js} +2 -2
- package/dist/{chunk-TG3R2SID.js → chunk-NMGHGTVR.js} +5 -5
- package/dist/{chunk-YCNIGRRF.js → chunk-NS7U4ZYU.js} +13 -117
- package/dist/chunk-NS7U4ZYU.js.map +1 -0
- package/dist/{chunk-NGHDW6UU.js → chunk-NUQEREIP.js} +2 -2
- package/dist/{chunk-5IIQU4JZ.js → chunk-OB72KNMF.js} +4 -4
- package/dist/{chunk-JV4S6VDH.js → chunk-OJXJWNFY.js} +2 -2
- package/dist/{chunk-QJPJXCS4.js → chunk-P3WRNWWM.js} +157 -4
- package/dist/chunk-P3WRNWWM.js.map +1 -0
- package/dist/{chunk-E6M225BJ.js → chunk-PC5DRBGD.js} +18 -8
- package/dist/chunk-PC5DRBGD.js.map +1 -0
- package/dist/{chunk-Z7JIZ42P.js → chunk-PRAUN6PN.js} +3 -3
- package/dist/{chunk-RWGRSKN5.js → chunk-PT4DZDJA.js} +2 -2
- package/dist/{chunk-7EPY3IQL.js → chunk-PZJQ46DH.js} +2 -2
- package/dist/{chunk-MXHMNKWG.js → chunk-QDESY76F.js} +3 -3
- package/dist/{chunk-I6QGI65T.js → chunk-QRMG4HK4.js} +3 -3
- package/dist/{chunk-ZU3NJNO7.js → chunk-QSF5SJAM.js} +4 -4
- package/dist/{chunk-5IYOKDM4.js → chunk-R23JWJD3.js} +5 -5
- package/dist/{chunk-RHQLIHMB.js → chunk-R4BBGPI2.js} +218 -218
- package/dist/chunk-R4BBGPI2.js.map +1 -0
- package/dist/{chunk-7GLJMDEQ.js → chunk-RM2YUFH6.js} +6 -6
- package/dist/{chunk-IPT2OY4B.js → chunk-RQFXZYTF.js} +35 -33
- package/dist/chunk-RQFXZYTF.js.map +1 -0
- package/dist/{chunk-AP6NCP3V.js → chunk-S3S72HRM.js} +8 -6
- package/dist/chunk-S3S72HRM.js.map +1 -0
- package/dist/{chunk-RIMK327Y.js → chunk-SGQPR5SX.js} +7 -7
- package/dist/{chunk-ZGFLIK5H.js → chunk-SPAKBUJY.js} +2 -2
- package/dist/{chunk-ER7XANP3.js → chunk-SQ3GEIEL.js} +4 -4
- package/dist/{chunk-BLJT6JP2.js → chunk-SVT5IA2H.js} +2 -2
- package/dist/{chunk-HVX4LPNY.js → chunk-T4KY6UYF.js} +5 -3
- package/dist/{chunk-HVX4LPNY.js.map → chunk-T4KY6UYF.js.map} +1 -1
- package/dist/{chunk-GVGAO3WV.js → chunk-TJ4F6H4H.js} +3 -3
- package/dist/{chunk-R6HMAIKM.js → chunk-TOSPNM4T.js} +2 -2
- package/dist/{chunk-HH5LY6RR.js → chunk-TRQE3RYR.js} +5 -5
- package/dist/{chunk-RMXS4I66.js → chunk-TVDJEUV5.js} +2 -2
- package/dist/{chunk-PLCYKAWH.js → chunk-TYRWSE4B.js} +2 -2
- package/dist/{chunk-B4QYQFGY.js → chunk-UBEKET2V.js} +383 -36
- package/dist/chunk-UBEKET2V.js.map +1 -0
- package/dist/{chunk-IQWUACVG.js → chunk-UHMHJX5G.js} +3 -3
- package/dist/{chunk-YODUDA6R.js → chunk-UN4RVUG2.js} +22 -22
- package/dist/{chunk-E6Z4FBX6.js → chunk-V2QSNFCT.js} +2 -2
- package/dist/{chunk-NBH6K6G5.js → chunk-V65H7MI6.js} +345 -16
- package/dist/chunk-V65H7MI6.js.map +1 -0
- package/dist/chunk-W54Z2MOP.js +4500 -0
- package/dist/chunk-W54Z2MOP.js.map +1 -0
- package/dist/{chunk-E7YZXWIS.js → chunk-WKSQTMU7.js} +2 -2
- package/dist/{chunk-RIZ5NUNN.js → chunk-WQ4XKIOX.js} +4 -4
- package/dist/{chunk-FSO3G4JJ.js → chunk-WQURALGV.js} +4995 -2747
- package/dist/chunk-WQURALGV.js.map +1 -0
- package/dist/{chunk-QEYTRFR3.js → chunk-X26YOFGS.js} +2 -2
- package/dist/{chunk-ITHZFHST.js → chunk-X2BVB74H.js} +2 -2
- package/dist/{chunk-XYKBWTWI.js → chunk-XIYLWEXC.js} +2 -2
- package/dist/{chunk-IBJ6U753.js → chunk-XKZBZOKV.js} +4 -4
- package/dist/{chunk-65AUYLU3.js → chunk-XPXHQI6N.js} +2 -2
- package/dist/{chunk-EXHXJETE.js → chunk-XRDYRWZI.js} +2 -2
- package/dist/chunk-XRWWCW4H.js +102 -0
- package/dist/chunk-XRWWCW4H.js.map +1 -0
- package/dist/chunk-YKJBSMMP.js +67137 -0
- package/dist/chunk-YKJBSMMP.js.map +1 -0
- package/dist/{chunk-2JSDPUKD.js → chunk-YMFPFXEX.js} +2 -2
- package/dist/{chunk-645WOU5I.js → chunk-ZDZJNXL6.js} +4 -4
- package/dist/{chunk-6TCXIRP5.js → chunk-ZKE4CO6B.js} +4 -4
- package/dist/{chunk-FNXQZGUS.js → chunk-ZSE774RV.js} +2 -2
- package/dist/cli.js +302 -184
- package/dist/coding/export-okf-codegraph.js +28 -28
- package/dist/compounding/engine.js +22 -23
- package/dist/config.js +35 -36
- package/dist/connectors/codex-materialize-runner.js +19 -19
- package/dist/connectors/index.js +20 -20
- package/dist/connectors/live/google-drive.d.ts +2 -0
- package/dist/connectors/live/google-drive.d.ts.map +1 -1
- package/dist/consolidation-provenance-check.js +4 -4
- package/dist/consolidation-undo.js +5 -5
- package/dist/contradiction/index.js +7 -6
- package/dist/{contradiction-scan-P2MHYFVG.js → contradiction-scan-IBPYGQZF.js} +4 -3
- package/dist/convergence-refresh.js +21 -21
- package/dist/corpus-watermark.js +22 -22
- package/dist/deep-recall-http-glue.js +2 -2
- package/dist/deep-recall-policy-llm.js +4 -4
- package/dist/direct-answer-wiring.js +2 -2
- package/dist/embedding-fallback.js +1 -1
- package/dist/entity-retrieval.js +20 -20
- package/dist/eval-trajectory-store.js +2 -2
- package/dist/eval-trajectory.js +2 -2
- package/dist/event-order-recall.js +2 -2
- package/dist/explicit-capture.d.ts +3 -2
- package/dist/explicit-capture.d.ts.map +1 -1
- package/dist/explicit-capture.js +530 -6
- package/dist/explicit-cue-recall.js +2 -2
- package/dist/external-wiki-access.js +2 -283
- package/dist/extraction-faithfulness.js +4 -4
- package/dist/extraction-judge.js +5 -5
- package/dist/extraction-normalization.js +1 -1
- package/dist/extraction-quote-grounding.d.ts.map +1 -1
- package/dist/extraction-quote-grounding.js +1 -1
- package/dist/extraction-source-grounding-rules.js +2 -2
- package/dist/extraction-source-grounding.js +3 -3
- package/dist/extraction.js +42 -43
- package/dist/fallback-llm-codex-subscription.js +2 -2
- package/dist/fallback-llm.js +3 -3
- package/dist/{first-start-migration-QFI7B5SH.js → first-start-migration-FILJH3RO.js} +6 -5
- package/dist/{first-start-migration-QFI7B5SH.js.map → first-start-migration-FILJH3RO.js.map} +1 -1
- package/dist/focused-list-recall.js +2 -2
- package/dist/harmonic-retrieval.js +19 -19
- package/dist/index.js +772 -793
- package/dist/lcm/index.js +2 -2
- package/dist/live-connectors-runner.js +2 -3
- package/dist/local-llm-config.js +2 -2
- package/dist/local-llm-helpers.d.ts +4 -0
- package/dist/local-llm-helpers.d.ts.map +1 -1
- package/dist/local-llm-helpers.js +3 -1
- package/dist/local-llm.d.ts +4 -1
- package/dist/local-llm.d.ts.map +1 -1
- package/dist/local-llm.js +4 -4
- package/dist/location/index.js +26 -28
- package/dist/maintenance/memory-governance.js +19 -19
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +19 -19
- package/dist/maintenance/rebuild-memory-projection-runner.js +21 -21
- package/dist/maintenance/rebuild-memory-projection.js +20 -20
- package/dist/memory-browse-operations.js +2 -283
- package/dist/memory-browse.js +8 -7
- package/dist/memory-controller.js +2 -2
- package/dist/memory-subject.js +2 -2
- package/dist/namespaces/migrate.js +20 -20
- package/dist/namespaces/search.js +5 -5
- package/dist/namespaces/storage.js +19 -19
- package/dist/offline-sync-changeset-generations.js +1 -1
- package/dist/offline-sync-embedding-generation.js +1 -1
- package/dist/offline-sync-impression-drain.js +6 -6
- package/dist/offline-sync-snapshot-stream.js +1 -1
- package/dist/offline-sync.js +1 -1
- package/dist/operator-doctor-corpus.js +23 -23
- package/dist/operator-toolkit.js +57 -60
- package/dist/orchestration/backlog-scheduler.js +277 -293
- package/dist/orchestration/backlog-scheduler.js.map +1 -1
- package/dist/orchestration/buffer-drain-runner.js +277 -293
- package/dist/orchestration/extraction-run.d.ts +4 -0
- package/dist/orchestration/extraction-run.d.ts.map +1 -1
- package/dist/orchestration/fact-dedup-window.d.ts +1 -1
- package/dist/orchestration/fact-dedup-window.d.ts.map +1 -1
- package/dist/orchestration/maintenance.js +38 -41
- package/dist/orchestrator.d.ts +9 -11
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +289 -306
- package/dist/page-versioning.js +3 -3
- package/dist/qmd-daemon-session.js +2 -2
- package/dist/qmd.js +3 -3
- package/dist/recall-explain-renderer.js +1 -1
- package/dist/recall-navigation-operations.js +2 -283
- package/dist/recall-navigation.js +331 -58
- package/dist/recall-planner-llm.js +3 -3
- package/dist/recall-state-view-admission.js +6 -6
- package/dist/recall-why-service.js +10 -9
- package/dist/recall-why.js +4 -3
- package/dist/recall-xray-cli.js +2 -2
- package/dist/recall-xray-renderer.js +1 -1
- package/dist/reconcile/manifest.js +3 -3
- package/dist/{resolution-N7H3F2E4.js → resolution-OVVIF7ZY.js} +8 -7
- package/dist/response-guidance-recall.js +2 -2
- package/dist/resume-bundles.js +39 -40
- package/dist/salvage-envelope.js +4 -4
- package/dist/search/factory.js +4 -4
- package/dist/search/index.js +4 -4
- package/dist/semantic-consolidation.js +22 -22
- package/dist/semantic-rule-promotion.js +19 -19
- package/dist/semantic-rule-verifier.js +19 -19
- package/dist/shared-context/manager.js +2 -3
- package/dist/source-agent-qualifier.js +31 -32
- package/dist/standup/build.js +19 -19
- package/dist/storage/content-hash-index.d.ts +10 -0
- package/dist/storage/content-hash-index.d.ts.map +1 -1
- package/dist/storage.js +18 -18
- package/dist/subject-config.js +3 -3
- package/dist/summarizer.d.ts +4 -1
- package/dist/summarizer.d.ts.map +1 -1
- package/dist/summarizer.js +6 -6
- package/dist/support-passport/index.js +53 -297
- package/dist/targeted-fact-recall.js +2 -2
- package/dist/tier-routing.js +3 -2
- package/dist/{tier-stats-FQGQSFET.js → tier-stats-FXEUJN73.js} +6 -5
- package/dist/{tier-stats-FQGQSFET.js.map → tier-stats-FXEUJN73.js.map} +1 -1
- package/dist/transcript.js +2 -2
- package/dist/transfer/capsule-import.js +4 -4
- package/dist/transfer/export-okf.js +19 -19
- package/dist/verified-recall.js +19 -19
- package/dist/wearables/memory-gen.d.ts +5 -1
- package/dist/wearables/memory-gen.d.ts.map +1 -1
- package/dist/wearables/service.d.ts.map +1 -1
- package/dist/who-knows-cli.js +20 -20
- package/dist/who-knows.js +19 -19
- package/dist/write-envelope.js +3 -3
- package/package.json +2 -2
- package/src/access-boundary.ts +5 -1
- package/src/access-category-alias.test.ts +5 -0
- package/src/access-mcp-frames.test.ts +60 -5
- package/src/access-mcp-frames.ts +72 -18
- package/src/access-mcp.test.ts +66 -2
- package/src/access-mcp.ts +19 -13
- package/src/access-service-coding-write.test.ts +7 -0
- package/src/activity/journal-extract-storage.test.ts +31 -0
- package/src/activity/journal-extract.test.ts +1 -0
- package/src/activity/journal-extract.ts +24 -3
- package/src/connectors/live/google-drive.test.ts +39 -0
- package/src/connectors/live/google-drive.ts +41 -12
- package/src/explicit-capture.test.ts +109 -17
- package/src/explicit-capture.ts +90 -37
- package/src/extraction-quote-grounding.test.ts +20 -0
- package/src/extraction-quote-grounding.ts +21 -11
- package/src/fact-dedup-window.test.ts +37 -0
- package/src/local-llm-helpers.ts +12 -0
- package/src/local-llm-shutdown.test.ts +194 -0
- package/src/local-llm.ts +32 -30
- package/src/orchestration/extraction-run.ts +12 -3
- package/src/orchestration/fact-dedup-window.ts +5 -1
- package/src/orchestrator-connector-dedup.test.ts +9 -5
- package/src/orchestrator.ts +47 -50
- package/src/storage/content-hash-index.ts +27 -2
- package/src/storage-fact-hash-publish-failure.test.ts +87 -0
- package/src/summarizer-shutdown.test.ts +195 -0
- package/src/summarizer.ts +15 -2
- package/src/wearables/memory-gen.test.ts +20 -0
- package/src/wearables/memory-gen.ts +14 -7
- package/src/wearables/service.ts +14 -1
- package/src/wearables/storage-io.test.ts +25 -0
- package/dist/chunk-2FGLEF7C.js +0 -61
- package/dist/chunk-2FGLEF7C.js.map +0 -1
- package/dist/chunk-3RLK65ZK.js +0 -203
- package/dist/chunk-3RLK65ZK.js.map +0 -1
- package/dist/chunk-4WR2OD7K.js +0 -43
- package/dist/chunk-4WR2OD7K.js.map +0 -1
- package/dist/chunk-5KBIOI4G.js.map +0 -1
- package/dist/chunk-5M5M22GW.js +0 -346
- package/dist/chunk-5M5M22GW.js.map +0 -1
- package/dist/chunk-7HTUYFR3.js.map +0 -1
- package/dist/chunk-AP6NCP3V.js.map +0 -1
- package/dist/chunk-B4QYQFGY.js.map +0 -1
- package/dist/chunk-BJRTMNCB.js +0 -1919
- package/dist/chunk-BJRTMNCB.js.map +0 -1
- package/dist/chunk-BRLXOZLM.js.map +0 -1
- package/dist/chunk-BSACVS6R.js +0 -621
- package/dist/chunk-BSACVS6R.js.map +0 -1
- package/dist/chunk-DKAA2IHQ.js +0 -3644
- package/dist/chunk-DKAA2IHQ.js.map +0 -1
- package/dist/chunk-E4IRW2FG.js.map +0 -1
- package/dist/chunk-E6M225BJ.js.map +0 -1
- package/dist/chunk-EQ4U73UH.js.map +0 -1
- package/dist/chunk-ETSJD5IV.js +0 -361
- package/dist/chunk-ETSJD5IV.js.map +0 -1
- package/dist/chunk-F55YQP7N.js +0 -336
- package/dist/chunk-F55YQP7N.js.map +0 -1
- package/dist/chunk-FHGWKODN.js +0 -2300
- package/dist/chunk-FHGWKODN.js.map +0 -1
- package/dist/chunk-FLRP63GU.js +0 -32219
- package/dist/chunk-FLRP63GU.js.map +0 -1
- package/dist/chunk-FSO3G4JJ.js.map +0 -1
- package/dist/chunk-ID6JGIMD.js +0 -25
- package/dist/chunk-ID6JGIMD.js.map +0 -1
- package/dist/chunk-IGLJNHOX.js +0 -62
- package/dist/chunk-IGLJNHOX.js.map +0 -1
- package/dist/chunk-IPT2OY4B.js.map +0 -1
- package/dist/chunk-IUKYFTGW.js.map +0 -1
- package/dist/chunk-NBH6K6G5.js.map +0 -1
- package/dist/chunk-NTRUKAAE.js +0 -223
- package/dist/chunk-NTRUKAAE.js.map +0 -1
- package/dist/chunk-OGXXGHW6.js +0 -223
- package/dist/chunk-OGXXGHW6.js.map +0 -1
- package/dist/chunk-PPCLZ4JU.js +0 -28
- package/dist/chunk-PPCLZ4JU.js.map +0 -1
- package/dist/chunk-QJPJXCS4.js.map +0 -1
- package/dist/chunk-R2LBF4HH.js +0 -729
- package/dist/chunk-R2LBF4HH.js.map +0 -1
- package/dist/chunk-RHQLIHMB.js.map +0 -1
- package/dist/chunk-RRTVGD3J.js +0 -792
- package/dist/chunk-RRTVGD3J.js.map +0 -1
- package/dist/chunk-SUSW74WU.js.map +0 -1
- package/dist/chunk-T6OZW2WR.js.map +0 -1
- package/dist/chunk-UDKWFDV2.js.map +0 -1
- package/dist/chunk-V7IZKJI3.js +0 -22
- package/dist/chunk-V7IZKJI3.js.map +0 -1
- package/dist/chunk-X562NQFA.js +0 -10144
- package/dist/chunk-X562NQFA.js.map +0 -1
- package/dist/chunk-XDSCJOH7.js +0 -3991
- package/dist/chunk-XDSCJOH7.js.map +0 -1
- package/dist/chunk-YCNIGRRF.js.map +0 -1
- package/dist/chunk-ZTTCDQ4I.js +0 -18796
- package/dist/chunk-ZTTCDQ4I.js.map +0 -1
- /package/dist/{capsule-merge-2IIXFXN5.js.map → capsule-merge-6IDAYTKG.js.map} +0 -0
- /package/dist/{chunk-ATPWZ4F7.js.map → chunk-2LMA22UU.js.map} +0 -0
- /package/dist/{chunk-RGUUBAT5.js.map → chunk-2WCLTWV2.js.map} +0 -0
- /package/dist/{chunk-BQZEGOZ4.js.map → chunk-2YODOG2O.js.map} +0 -0
- /package/dist/{chunk-WYG5UNDY.js.map → chunk-3AUDELZL.js.map} +0 -0
- /package/dist/{chunk-N4KAE2NB.js.map → chunk-3CYOCE6U.js.map} +0 -0
- /package/dist/{chunk-MB6ZJDN6.js.map → chunk-3FBAEPCU.js.map} +0 -0
- /package/dist/{chunk-PIITB2YZ.js.map → chunk-3ZS3NUEI.js.map} +0 -0
- /package/dist/{chunk-ANZZLRUX.js.map → chunk-4IVRQMZW.js.map} +0 -0
- /package/dist/{chunk-63E37JCN.js.map → chunk-4RAJT5L2.js.map} +0 -0
- /package/dist/{chunk-45VUHDV2.js.map → chunk-5CO5G4MN.js.map} +0 -0
- /package/dist/{chunk-LUJCQQ3L.js.map → chunk-65HWAQ4F.js.map} +0 -0
- /package/dist/{chunk-T67LUYCR.js.map → chunk-77NTFICT.js.map} +0 -0
- /package/dist/{chunk-UE6RRXMF.js.map → chunk-A4F7OIC5.js.map} +0 -0
- /package/dist/{chunk-U6UNF5ZS.js.map → chunk-B33YWUJV.js.map} +0 -0
- /package/dist/{chunk-RRJBDXAQ.js.map → chunk-B377OKUP.js.map} +0 -0
- /package/dist/{chunk-ETZLQOUR.js.map → chunk-BGHCSLE5.js.map} +0 -0
- /package/dist/{chunk-YYOMGOHB.js.map → chunk-BOK6BN5M.js.map} +0 -0
- /package/dist/{chunk-OH7QLI6W.js.map → chunk-BPPUH5JM.js.map} +0 -0
- /package/dist/{chunk-4J363OAA.js.map → chunk-BTI4C4MA.js.map} +0 -0
- /package/dist/{chunk-O6ZSWHVR.js.map → chunk-C2KE5DMD.js.map} +0 -0
- /package/dist/{chunk-47F6WWLQ.js.map → chunk-C73N66PR.js.map} +0 -0
- /package/dist/{chunk-E3A7ELSG.js.map → chunk-CGJYL633.js.map} +0 -0
- /package/dist/{chunk-WRT7GJ2D.js.map → chunk-CIWMTNHW.js.map} +0 -0
- /package/dist/{chunk-O55EKIEC.js.map → chunk-D3ZKHLN2.js.map} +0 -0
- /package/dist/{chunk-CD4BCCNP.js.map → chunk-DJ7WVEWX.js.map} +0 -0
- /package/dist/{chunk-PWXPRVLK.js.map → chunk-EFL24KOI.js.map} +0 -0
- /package/dist/{chunk-4CJTQHEG.js.map → chunk-ESLOLCD4.js.map} +0 -0
- /package/dist/{chunk-6F42QONS.js.map → chunk-ETBVCRVL.js.map} +0 -0
- /package/dist/{chunk-VILPVT4S.js.map → chunk-EZ47HOJ6.js.map} +0 -0
- /package/dist/{chunk-EFYN5I7Z.js.map → chunk-F4QFU5IZ.js.map} +0 -0
- /package/dist/{chunk-7W3RXOIG.js.map → chunk-FMKILENU.js.map} +0 -0
- /package/dist/{chunk-YLXETSAH.js.map → chunk-GCZJ7XRI.js.map} +0 -0
- /package/dist/{chunk-QFEDITXM.js.map → chunk-JNDMIAJ4.js.map} +0 -0
- /package/dist/{chunk-E5PPE4VA.js.map → chunk-K2VRKCPA.js.map} +0 -0
- /package/dist/{chunk-MKRYQROF.js.map → chunk-LGEHAQHK.js.map} +0 -0
- /package/dist/{chunk-XYTQJD7F.js.map → chunk-LMJVP5CM.js.map} +0 -0
- /package/dist/{chunk-FQKBJJYB.js.map → chunk-LPV72KRQ.js.map} +0 -0
- /package/dist/{chunk-2LCRG2YV.js.map → chunk-M2XR6B6V.js.map} +0 -0
- /package/dist/{chunk-P4WNBSTW.js.map → chunk-MH632KPO.js.map} +0 -0
- /package/dist/{chunk-ZU5JDLOH.js.map → chunk-MMRTPH3J.js.map} +0 -0
- /package/dist/{chunk-PMJFRDJI.js.map → chunk-MUX7IL77.js.map} +0 -0
- /package/dist/{chunk-HF3BKUVV.js.map → chunk-NAQ4A5IX.js.map} +0 -0
- /package/dist/{chunk-TVIVY7KU.js.map → chunk-NED7IR7B.js.map} +0 -0
- /package/dist/{chunk-6F5MJFXY.js.map → chunk-NHVAX7MH.js.map} +0 -0
- /package/dist/{chunk-TG3R2SID.js.map → chunk-NMGHGTVR.js.map} +0 -0
- /package/dist/{chunk-NGHDW6UU.js.map → chunk-NUQEREIP.js.map} +0 -0
- /package/dist/{chunk-5IIQU4JZ.js.map → chunk-OB72KNMF.js.map} +0 -0
- /package/dist/{chunk-JV4S6VDH.js.map → chunk-OJXJWNFY.js.map} +0 -0
- /package/dist/{chunk-Z7JIZ42P.js.map → chunk-PRAUN6PN.js.map} +0 -0
- /package/dist/{chunk-RWGRSKN5.js.map → chunk-PT4DZDJA.js.map} +0 -0
- /package/dist/{chunk-7EPY3IQL.js.map → chunk-PZJQ46DH.js.map} +0 -0
- /package/dist/{chunk-MXHMNKWG.js.map → chunk-QDESY76F.js.map} +0 -0
- /package/dist/{chunk-I6QGI65T.js.map → chunk-QRMG4HK4.js.map} +0 -0
- /package/dist/{chunk-ZU3NJNO7.js.map → chunk-QSF5SJAM.js.map} +0 -0
- /package/dist/{chunk-5IYOKDM4.js.map → chunk-R23JWJD3.js.map} +0 -0
- /package/dist/{chunk-7GLJMDEQ.js.map → chunk-RM2YUFH6.js.map} +0 -0
- /package/dist/{chunk-RIMK327Y.js.map → chunk-SGQPR5SX.js.map} +0 -0
- /package/dist/{chunk-ZGFLIK5H.js.map → chunk-SPAKBUJY.js.map} +0 -0
- /package/dist/{chunk-ER7XANP3.js.map → chunk-SQ3GEIEL.js.map} +0 -0
- /package/dist/{chunk-BLJT6JP2.js.map → chunk-SVT5IA2H.js.map} +0 -0
- /package/dist/{chunk-GVGAO3WV.js.map → chunk-TJ4F6H4H.js.map} +0 -0
- /package/dist/{chunk-R6HMAIKM.js.map → chunk-TOSPNM4T.js.map} +0 -0
- /package/dist/{chunk-HH5LY6RR.js.map → chunk-TRQE3RYR.js.map} +0 -0
- /package/dist/{chunk-RMXS4I66.js.map → chunk-TVDJEUV5.js.map} +0 -0
- /package/dist/{chunk-PLCYKAWH.js.map → chunk-TYRWSE4B.js.map} +0 -0
- /package/dist/{chunk-IQWUACVG.js.map → chunk-UHMHJX5G.js.map} +0 -0
- /package/dist/{chunk-YODUDA6R.js.map → chunk-UN4RVUG2.js.map} +0 -0
- /package/dist/{chunk-E6Z4FBX6.js.map → chunk-V2QSNFCT.js.map} +0 -0
- /package/dist/{chunk-E7YZXWIS.js.map → chunk-WKSQTMU7.js.map} +0 -0
- /package/dist/{chunk-RIZ5NUNN.js.map → chunk-WQ4XKIOX.js.map} +0 -0
- /package/dist/{chunk-QEYTRFR3.js.map → chunk-X26YOFGS.js.map} +0 -0
- /package/dist/{chunk-ITHZFHST.js.map → chunk-X2BVB74H.js.map} +0 -0
- /package/dist/{chunk-XYKBWTWI.js.map → chunk-XIYLWEXC.js.map} +0 -0
- /package/dist/{chunk-IBJ6U753.js.map → chunk-XKZBZOKV.js.map} +0 -0
- /package/dist/{chunk-65AUYLU3.js.map → chunk-XPXHQI6N.js.map} +0 -0
- /package/dist/{chunk-EXHXJETE.js.map → chunk-XRDYRWZI.js.map} +0 -0
- /package/dist/{chunk-2JSDPUKD.js.map → chunk-YMFPFXEX.js.map} +0 -0
- /package/dist/{chunk-645WOU5I.js.map → chunk-ZDZJNXL6.js.map} +0 -0
- /package/dist/{chunk-6TCXIRP5.js.map → chunk-ZKE4CO6B.js.map} +0 -0
- /package/dist/{chunk-FNXQZGUS.js.map → chunk-ZSE774RV.js.map} +0 -0
- /package/dist/{contradiction-scan-P2MHYFVG.js.map → contradiction-scan-IBPYGQZF.js.map} +0 -0
- /package/dist/{resolution-N7H3F2E4.js.map → resolution-OVVIF7ZY.js.map} +0 -0
package/dist/chunk-F55YQP7N.js
DELETED
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEFAULT_POLL_INTERVAL_MS,
|
|
3
|
-
GITHUB_CONNECTOR_ID,
|
|
4
|
-
GITHUB_DEFAULT_POLL_INTERVAL_MS,
|
|
5
|
-
GMAIL_CONNECTOR_ID,
|
|
6
|
-
GMAIL_DEFAULT_POLL_INTERVAL_MS,
|
|
7
|
-
GOOGLE_DRIVE_CONNECTOR_ID,
|
|
8
|
-
NOTION_CONNECTOR_ID,
|
|
9
|
-
NOTION_DEFAULT_POLL_INTERVAL_MS,
|
|
10
|
-
createGitHubConnector,
|
|
11
|
-
createGmailConnector,
|
|
12
|
-
createGoogleDriveConnector,
|
|
13
|
-
createNotionConnector,
|
|
14
|
-
validateGitHubConfig,
|
|
15
|
-
validateGmailConfig,
|
|
16
|
-
validateGoogleDriveConfig,
|
|
17
|
-
validateNotionConfig
|
|
18
|
-
} from "./chunk-NBH6K6G5.js";
|
|
19
|
-
import {
|
|
20
|
-
ConnectorStateLockLostError,
|
|
21
|
-
readConnectorState,
|
|
22
|
-
withConnectorStateLock,
|
|
23
|
-
writeConnectorState
|
|
24
|
-
} from "./chunk-MDPT6QFK.js";
|
|
25
|
-
import {
|
|
26
|
-
runConnectorPollOnce
|
|
27
|
-
} from "./chunk-OKTXM5H4.js";
|
|
28
|
-
import {
|
|
29
|
-
abortError
|
|
30
|
-
} from "./chunk-R2MBW2S4.js";
|
|
31
|
-
|
|
32
|
-
// src/live-connectors-runner.ts
|
|
33
|
-
function builtInLiveConnectorDefinitions(config) {
|
|
34
|
-
return [
|
|
35
|
-
{
|
|
36
|
-
id: GOOGLE_DRIVE_CONNECTOR_ID,
|
|
37
|
-
displayName: "Google Drive",
|
|
38
|
-
enabled: config.googleDrive.enabled,
|
|
39
|
-
pollIntervalMs: config.googleDrive.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS,
|
|
40
|
-
rawConfig: config.googleDrive,
|
|
41
|
-
createConnector: createGoogleDriveConnector,
|
|
42
|
-
validateConfig: (raw) => validateGoogleDriveConfig(raw)
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: NOTION_CONNECTOR_ID,
|
|
46
|
-
displayName: "Notion",
|
|
47
|
-
enabled: config.notion.enabled,
|
|
48
|
-
pollIntervalMs: config.notion.pollIntervalMs ?? NOTION_DEFAULT_POLL_INTERVAL_MS,
|
|
49
|
-
rawConfig: config.notion,
|
|
50
|
-
createConnector: createNotionConnector,
|
|
51
|
-
validateConfig: (raw) => validateNotionConfig(raw)
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id: GMAIL_CONNECTOR_ID,
|
|
55
|
-
displayName: "Gmail",
|
|
56
|
-
enabled: config.gmail.enabled,
|
|
57
|
-
pollIntervalMs: config.gmail.pollIntervalMs ?? GMAIL_DEFAULT_POLL_INTERVAL_MS,
|
|
58
|
-
rawConfig: config.gmail,
|
|
59
|
-
createConnector: createGmailConnector,
|
|
60
|
-
validateConfig: (raw) => validateGmailConfig(raw)
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
id: GITHUB_CONNECTOR_ID,
|
|
64
|
-
displayName: "GitHub",
|
|
65
|
-
enabled: config.github.enabled,
|
|
66
|
-
pollIntervalMs: config.github.pollIntervalMs ?? GITHUB_DEFAULT_POLL_INTERVAL_MS,
|
|
67
|
-
rawConfig: config.github,
|
|
68
|
-
createConnector: createGitHubConnector,
|
|
69
|
-
validateConfig: (raw) => validateGitHubConfig(raw)
|
|
70
|
-
}
|
|
71
|
-
];
|
|
72
|
-
}
|
|
73
|
-
function hasEnabledLiveConnector(config) {
|
|
74
|
-
return config.googleDrive.enabled || config.notion.enabled || config.gmail.enabled || config.github.enabled;
|
|
75
|
-
}
|
|
76
|
-
async function runLiveConnectorsOnce(options) {
|
|
77
|
-
const ranAt = resolveNow(options.now);
|
|
78
|
-
const force = options.force === true;
|
|
79
|
-
const definitions = options.definitions ?? builtInLiveConnectorDefinitions(options.connectors);
|
|
80
|
-
const results = [];
|
|
81
|
-
for (const definition of definitions) {
|
|
82
|
-
const checkAt = resolveNow(options.now);
|
|
83
|
-
if (!definition.enabled) {
|
|
84
|
-
results.push(skipResult(definition, null, "disabled"));
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
let state;
|
|
88
|
-
try {
|
|
89
|
-
state = await readConnectorState(options.memoryDir, definition.id);
|
|
90
|
-
} catch (err) {
|
|
91
|
-
results.push({
|
|
92
|
-
id: definition.id,
|
|
93
|
-
displayName: definition.displayName,
|
|
94
|
-
enabled: true,
|
|
95
|
-
ran: false,
|
|
96
|
-
skippedReason: "state_read_error",
|
|
97
|
-
docsImported: 0,
|
|
98
|
-
error: err instanceof Error ? err.message : String(err),
|
|
99
|
-
lastSyncAt: null,
|
|
100
|
-
nextDueAt: null
|
|
101
|
-
});
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
if (!force && !isConnectorDue(state, definition.pollIntervalMs, checkAt)) {
|
|
105
|
-
results.push(skipResult(definition, state, "not_due"));
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
let validatedConfig;
|
|
109
|
-
try {
|
|
110
|
-
validatedConfig = definition.validateConfig(definition.rawConfig);
|
|
111
|
-
} catch (err) {
|
|
112
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
113
|
-
let stateWriteError;
|
|
114
|
-
let writtenErrorState;
|
|
115
|
-
const errorAt = resolveNow(options.now);
|
|
116
|
-
try {
|
|
117
|
-
writtenErrorState = await writeConnectorErrorState({
|
|
118
|
-
memoryDir: options.memoryDir,
|
|
119
|
-
connectorId: definition.id,
|
|
120
|
-
state,
|
|
121
|
-
error: message,
|
|
122
|
-
now: errorAt
|
|
123
|
-
});
|
|
124
|
-
} catch (writeErr) {
|
|
125
|
-
stateWriteError = writeErr instanceof Error ? writeErr.message : String(writeErr);
|
|
126
|
-
}
|
|
127
|
-
const reportedState = writtenErrorState ?? state;
|
|
128
|
-
results.push({
|
|
129
|
-
id: definition.id,
|
|
130
|
-
displayName: definition.displayName,
|
|
131
|
-
enabled: true,
|
|
132
|
-
ran: false,
|
|
133
|
-
skippedReason: "invalid_config",
|
|
134
|
-
docsImported: 0,
|
|
135
|
-
error: message,
|
|
136
|
-
...stateWriteError !== void 0 ? { stateWriteError } : {},
|
|
137
|
-
lastSyncAt: reportedState?.lastSyncAt ?? null,
|
|
138
|
-
nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs)
|
|
139
|
-
});
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
let runResult;
|
|
143
|
-
let lastStateWrittenAt;
|
|
144
|
-
try {
|
|
145
|
-
const connector = definition.createConnector();
|
|
146
|
-
runResult = await withConnectorStateLock(options.memoryDir, definition.id, async (lockSignal) => {
|
|
147
|
-
const pollAbortSignal = combineAbortSignals(options.abortSignal, lockSignal);
|
|
148
|
-
const lockedState = await readConnectorState(options.memoryDir, definition.id);
|
|
149
|
-
if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {
|
|
150
|
-
return { docsImported: 0 };
|
|
151
|
-
}
|
|
152
|
-
state = lockedState;
|
|
153
|
-
return runConnectorPollOnce({
|
|
154
|
-
connectorId: definition.id,
|
|
155
|
-
priorState: lockedState,
|
|
156
|
-
syncFn: (cursor) => connector.syncIncremental({
|
|
157
|
-
cursor,
|
|
158
|
-
config: validatedConfig,
|
|
159
|
-
abortSignal: pollAbortSignal,
|
|
160
|
-
resolveSecretRef: options.resolveSecretRef
|
|
161
|
-
}),
|
|
162
|
-
ingestFn: async (docs) => {
|
|
163
|
-
throwIfAborted(pollAbortSignal);
|
|
164
|
-
await options.ingestDocuments(docs);
|
|
165
|
-
throwIfAborted(pollAbortSignal);
|
|
166
|
-
},
|
|
167
|
-
writeCursorFn: (writeState) => {
|
|
168
|
-
throwIfAborted(pollAbortSignal);
|
|
169
|
-
const writeAt = resolveNow(options.now);
|
|
170
|
-
return writeConnectorState(options.memoryDir, definition.id, {
|
|
171
|
-
id: definition.id,
|
|
172
|
-
cursor: writeState.cursor,
|
|
173
|
-
lastSyncAt: writeAt.toISOString(),
|
|
174
|
-
lastSyncStatus: writeState.lastSyncStatus,
|
|
175
|
-
...writeState.lastSyncError !== void 0 ? { lastSyncError: writeState.lastSyncError } : {},
|
|
176
|
-
totalDocsImported: writeState.totalDocsImported
|
|
177
|
-
}).then(() => {
|
|
178
|
-
lastStateWrittenAt = writeAt;
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
if (runResult.docsImported === 0 && runResult.error === void 0 && runResult.stateWriteError === void 0 && lastStateWrittenAt === void 0) {
|
|
184
|
-
const lockedState = await readConnectorState(options.memoryDir, definition.id);
|
|
185
|
-
if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {
|
|
186
|
-
results.push(skipResult(definition, lockedState, "not_due"));
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
} catch (err) {
|
|
191
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
192
|
-
let stateWriteError;
|
|
193
|
-
let writtenErrorState;
|
|
194
|
-
const errorAt = resolveNow(options.now);
|
|
195
|
-
if (!(err instanceof ConnectorStateLockLostError)) {
|
|
196
|
-
try {
|
|
197
|
-
writtenErrorState = await writeConnectorErrorState({
|
|
198
|
-
memoryDir: options.memoryDir,
|
|
199
|
-
connectorId: definition.id,
|
|
200
|
-
state,
|
|
201
|
-
error: message,
|
|
202
|
-
now: errorAt
|
|
203
|
-
});
|
|
204
|
-
} catch (writeErr) {
|
|
205
|
-
stateWriteError = writeErr instanceof Error ? writeErr.message : String(writeErr);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
const reportedState = writtenErrorState ?? state;
|
|
209
|
-
results.push({
|
|
210
|
-
id: definition.id,
|
|
211
|
-
displayName: definition.displayName,
|
|
212
|
-
enabled: true,
|
|
213
|
-
ran: false,
|
|
214
|
-
skippedReason: "connector_error",
|
|
215
|
-
docsImported: 0,
|
|
216
|
-
error: message,
|
|
217
|
-
...stateWriteError !== void 0 ? { stateWriteError } : {},
|
|
218
|
-
lastSyncAt: reportedState?.lastSyncAt ?? null,
|
|
219
|
-
nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs)
|
|
220
|
-
});
|
|
221
|
-
continue;
|
|
222
|
-
}
|
|
223
|
-
results.push(
|
|
224
|
-
runItemFromResult(
|
|
225
|
-
definition,
|
|
226
|
-
runResult,
|
|
227
|
-
state,
|
|
228
|
-
lastStateWrittenAt ?? resolveNow(options.now)
|
|
229
|
-
)
|
|
230
|
-
);
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
ranAt: ranAt.toISOString(),
|
|
234
|
-
force,
|
|
235
|
-
totalDocsImported: results.reduce((sum, item) => sum + item.docsImported, 0),
|
|
236
|
-
ranCount: results.filter((item) => item.ran).length,
|
|
237
|
-
skippedCount: results.filter((item) => !item.ran).length,
|
|
238
|
-
errorCount: results.filter(
|
|
239
|
-
(item) => item.error !== void 0 || item.stateWriteError !== void 0
|
|
240
|
-
).length,
|
|
241
|
-
results
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
function resolveNow(now) {
|
|
245
|
-
return typeof now === "function" ? now() : now ?? /* @__PURE__ */ new Date();
|
|
246
|
-
}
|
|
247
|
-
function isConnectorDue(state, pollIntervalMs, now) {
|
|
248
|
-
if (state?.lastSyncAt === null || state?.lastSyncAt === void 0) return true;
|
|
249
|
-
const lastMs = Date.parse(state.lastSyncAt);
|
|
250
|
-
if (!Number.isFinite(lastMs)) return true;
|
|
251
|
-
return now.getTime() - lastMs >= Math.max(1, Math.floor(pollIntervalMs));
|
|
252
|
-
}
|
|
253
|
-
function nextDueAt(state, pollIntervalMs) {
|
|
254
|
-
if (state?.lastSyncAt === null || state?.lastSyncAt === void 0) return null;
|
|
255
|
-
const lastMs = Date.parse(state.lastSyncAt);
|
|
256
|
-
if (!Number.isFinite(lastMs)) return null;
|
|
257
|
-
return new Date(lastMs + Math.max(1, Math.floor(pollIntervalMs))).toISOString();
|
|
258
|
-
}
|
|
259
|
-
function skipResult(definition, state, skippedReason) {
|
|
260
|
-
return {
|
|
261
|
-
id: definition.id,
|
|
262
|
-
displayName: definition.displayName,
|
|
263
|
-
enabled: definition.enabled,
|
|
264
|
-
ran: false,
|
|
265
|
-
skippedReason,
|
|
266
|
-
docsImported: 0,
|
|
267
|
-
lastSyncAt: state?.lastSyncAt ?? null,
|
|
268
|
-
nextDueAt: skippedReason === "not_due" ? nextDueAt(state, definition.pollIntervalMs) : null
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
function runItemFromResult(definition, result, priorState, now) {
|
|
272
|
-
const stateWriteFailed = result.stateWriteError !== void 0;
|
|
273
|
-
const reportedLastSyncAt = stateWriteFailed ? priorState?.lastSyncAt ?? null : now.toISOString();
|
|
274
|
-
const reportedNextDueAt = stateWriteFailed ? nextDueAt(priorState, definition.pollIntervalMs) : new Date(
|
|
275
|
-
now.getTime() + Math.max(1, Math.floor(definition.pollIntervalMs))
|
|
276
|
-
).toISOString();
|
|
277
|
-
return {
|
|
278
|
-
id: definition.id,
|
|
279
|
-
displayName: definition.displayName,
|
|
280
|
-
enabled: definition.enabled,
|
|
281
|
-
ran: true,
|
|
282
|
-
docsImported: result.docsImported,
|
|
283
|
-
...result.error !== void 0 ? { error: result.error } : {},
|
|
284
|
-
...result.stateWriteError !== void 0 ? { stateWriteError: result.stateWriteError } : {},
|
|
285
|
-
lastSyncAt: reportedLastSyncAt,
|
|
286
|
-
nextDueAt: reportedNextDueAt
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
function combineAbortSignals(...signals) {
|
|
290
|
-
const activeSignals = signals.filter((signal) => signal !== void 0);
|
|
291
|
-
if (activeSignals.length === 0) return void 0;
|
|
292
|
-
if (activeSignals.length === 1) return activeSignals[0];
|
|
293
|
-
const abortSignalAny = AbortSignal.any;
|
|
294
|
-
if (abortSignalAny !== void 0) {
|
|
295
|
-
return abortSignalAny(activeSignals);
|
|
296
|
-
}
|
|
297
|
-
const controller = new AbortController();
|
|
298
|
-
const abort = (signal) => {
|
|
299
|
-
if (!controller.signal.aborted) {
|
|
300
|
-
controller.abort(signal.reason);
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
for (const signal of activeSignals) {
|
|
304
|
-
if (signal.aborted) {
|
|
305
|
-
abort(signal);
|
|
306
|
-
break;
|
|
307
|
-
}
|
|
308
|
-
signal.addEventListener("abort", () => abort(signal), { once: true });
|
|
309
|
-
}
|
|
310
|
-
return controller.signal;
|
|
311
|
-
}
|
|
312
|
-
function throwIfAborted(signal) {
|
|
313
|
-
if (signal?.aborted !== true) return;
|
|
314
|
-
const reason = signal.reason;
|
|
315
|
-
if (reason instanceof Error) {
|
|
316
|
-
throw reason;
|
|
317
|
-
}
|
|
318
|
-
throw abortError(reason === void 0 ? "operation aborted" : String(reason));
|
|
319
|
-
}
|
|
320
|
-
async function writeConnectorErrorState(options) {
|
|
321
|
-
return writeConnectorState(options.memoryDir, options.connectorId, {
|
|
322
|
-
id: options.connectorId,
|
|
323
|
-
cursor: options.state?.cursor ?? null,
|
|
324
|
-
lastSyncAt: options.now.toISOString(),
|
|
325
|
-
lastSyncStatus: "error",
|
|
326
|
-
lastSyncError: options.error,
|
|
327
|
-
totalDocsImported: options.state?.totalDocsImported ?? 0
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
export {
|
|
332
|
-
builtInLiveConnectorDefinitions,
|
|
333
|
-
hasEnabledLiveConnector,
|
|
334
|
-
runLiveConnectorsOnce
|
|
335
|
-
};
|
|
336
|
-
//# sourceMappingURL=chunk-F55YQP7N.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/live-connectors-runner.ts"],"sourcesContent":["import {\n runConnectorPollOnce,\n type ConnectorRunResult,\n} from \"./connectors-cli.js\";\nimport {\n createGitHubConnector,\n createGmailConnector,\n createGoogleDriveConnector,\n createNotionConnector,\n GITHUB_CONNECTOR_ID,\n GITHUB_DEFAULT_POLL_INTERVAL_MS,\n GMAIL_CONNECTOR_ID,\n GMAIL_DEFAULT_POLL_INTERVAL_MS,\n GOOGLE_DRIVE_CONNECTOR_ID,\n GOOGLE_DRIVE_DEFAULT_POLL_INTERVAL_MS,\n NOTION_CONNECTOR_ID,\n NOTION_DEFAULT_POLL_INTERVAL_MS,\n ConnectorStateLockLostError,\n readConnectorState,\n withConnectorStateLock,\n writeConnectorState,\n validateGitHubConfig,\n validateGmailConfig,\n validateGoogleDriveConfig,\n validateNotionConfig,\n type ConnectorConfig,\n type ConnectorCursor,\n type ConnectorDocument,\n type ConnectorState,\n type LiveConnector,\n} from \"./connectors/live/index.js\";\nimport { abortError } from \"./abort-error.js\";\nimport type { LiveConnectorsConfig } from \"./types.js\";\nimport type { ResolveSecretRefFn } from \"./resolve-auth-token.js\";\n\nexport type LiveConnectorSkipReason =\n | \"disabled\"\n | \"not_due\"\n | \"invalid_config\"\n | \"state_read_error\"\n | \"connector_error\";\n\nexport interface LiveConnectorRunItem {\n id: string;\n displayName: string;\n enabled: boolean;\n ran: boolean;\n skippedReason?: LiveConnectorSkipReason;\n docsImported: number;\n error?: string;\n stateWriteError?: string;\n lastSyncAt: string | null;\n nextDueAt: string | null;\n}\n\nexport interface LiveConnectorsRunSummary {\n ranAt: string;\n force: boolean;\n totalDocsImported: number;\n ranCount: number;\n skippedCount: number;\n errorCount: number;\n results: LiveConnectorRunItem[];\n}\n\nexport interface LiveConnectorDefinition {\n id: string;\n displayName: string;\n enabled: boolean;\n pollIntervalMs: number;\n rawConfig: unknown;\n createConnector: () => LiveConnector;\n validateConfig: (raw: unknown) => ConnectorConfig;\n}\n\ntype LiveConnectorsNow = Date | (() => Date);\n\nexport function builtInLiveConnectorDefinitions(\n config: LiveConnectorsConfig,\n): LiveConnectorDefinition[] {\n return [\n {\n id: GOOGLE_DRIVE_CONNECTOR_ID,\n displayName: \"Google Drive\",\n enabled: config.googleDrive.enabled,\n pollIntervalMs:\n config.googleDrive.pollIntervalMs ?? GOOGLE_DRIVE_DEFAULT_POLL_INTERVAL_MS,\n rawConfig: config.googleDrive,\n createConnector: createGoogleDriveConnector,\n validateConfig: (raw) =>\n validateGoogleDriveConfig(raw) as unknown as ConnectorConfig,\n },\n {\n id: NOTION_CONNECTOR_ID,\n displayName: \"Notion\",\n enabled: config.notion.enabled,\n pollIntervalMs: config.notion.pollIntervalMs ?? NOTION_DEFAULT_POLL_INTERVAL_MS,\n rawConfig: config.notion,\n createConnector: createNotionConnector,\n validateConfig: (raw) =>\n validateNotionConfig(raw) as unknown as ConnectorConfig,\n },\n {\n id: GMAIL_CONNECTOR_ID,\n displayName: \"Gmail\",\n enabled: config.gmail.enabled,\n pollIntervalMs: config.gmail.pollIntervalMs ?? GMAIL_DEFAULT_POLL_INTERVAL_MS,\n rawConfig: config.gmail,\n createConnector: createGmailConnector,\n validateConfig: (raw) => validateGmailConfig(raw) as unknown as ConnectorConfig,\n },\n {\n id: GITHUB_CONNECTOR_ID,\n displayName: \"GitHub\",\n enabled: config.github.enabled,\n pollIntervalMs:\n config.github.pollIntervalMs ?? GITHUB_DEFAULT_POLL_INTERVAL_MS,\n rawConfig: config.github,\n createConnector: createGitHubConnector,\n validateConfig: (raw) => validateGitHubConfig(raw) as unknown as ConnectorConfig,\n },\n ];\n}\n\nexport function hasEnabledLiveConnector(config: LiveConnectorsConfig): boolean {\n return (\n config.googleDrive.enabled ||\n config.notion.enabled ||\n config.gmail.enabled ||\n config.github.enabled\n );\n}\n\nexport async function runLiveConnectorsOnce(options: {\n memoryDir: string;\n connectors: LiveConnectorsConfig;\n ingestDocuments: (docs: ConnectorDocument[]) => Promise<void>;\n force?: boolean;\n now?: LiveConnectorsNow;\n abortSignal?: AbortSignal;\n definitions?: LiveConnectorDefinition[];\n resolveSecretRef?: ResolveSecretRefFn | null;\n}): Promise<LiveConnectorsRunSummary> {\n const ranAt = resolveNow(options.now);\n const force = options.force === true;\n const definitions =\n options.definitions ?? builtInLiveConnectorDefinitions(options.connectors);\n const results: LiveConnectorRunItem[] = [];\n\n for (const definition of definitions) {\n const checkAt = resolveNow(options.now);\n if (!definition.enabled) {\n results.push(skipResult(definition, null, \"disabled\"));\n continue;\n }\n let state: ConnectorState | null;\n try {\n state = await readConnectorState(options.memoryDir, definition.id);\n } catch (err) {\n results.push({\n id: definition.id,\n displayName: definition.displayName,\n enabled: true,\n ran: false,\n skippedReason: \"state_read_error\",\n docsImported: 0,\n error: err instanceof Error ? err.message : String(err),\n lastSyncAt: null,\n nextDueAt: null,\n });\n continue;\n }\n if (!force && !isConnectorDue(state, definition.pollIntervalMs, checkAt)) {\n results.push(skipResult(definition, state, \"not_due\"));\n continue;\n }\n\n let validatedConfig: ConnectorConfig;\n try {\n validatedConfig = definition.validateConfig(definition.rawConfig);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n let stateWriteError: string | undefined;\n let writtenErrorState: ConnectorState | undefined;\n const errorAt = resolveNow(options.now);\n try {\n writtenErrorState = await writeConnectorErrorState({\n memoryDir: options.memoryDir,\n connectorId: definition.id,\n state,\n error: message,\n now: errorAt,\n });\n } catch (writeErr) {\n stateWriteError =\n writeErr instanceof Error ? writeErr.message : String(writeErr);\n }\n const reportedState = writtenErrorState ?? state;\n results.push({\n id: definition.id,\n displayName: definition.displayName,\n enabled: true,\n ran: false,\n skippedReason: \"invalid_config\",\n docsImported: 0,\n error: message,\n ...(stateWriteError !== undefined ? { stateWriteError } : {}),\n lastSyncAt: reportedState?.lastSyncAt ?? null,\n nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs),\n });\n continue;\n }\n\n let runResult: ConnectorRunResult;\n let lastStateWrittenAt: Date | undefined;\n try {\n const connector = definition.createConnector();\n runResult = await withConnectorStateLock(options.memoryDir, definition.id, async (lockSignal) => {\n const pollAbortSignal = combineAbortSignals(options.abortSignal, lockSignal);\n const lockedState = await readConnectorState(options.memoryDir, definition.id);\n if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {\n return { docsImported: 0 };\n }\n state = lockedState;\n return runConnectorPollOnce({\n connectorId: definition.id,\n priorState: lockedState,\n syncFn: (cursor: ConnectorCursor | null) =>\n connector.syncIncremental({\n cursor,\n config: validatedConfig,\n abortSignal: pollAbortSignal,\n resolveSecretRef: options.resolveSecretRef,\n }),\n ingestFn: async (docs) => {\n throwIfAborted(pollAbortSignal);\n await options.ingestDocuments(docs);\n throwIfAborted(pollAbortSignal);\n },\n writeCursorFn: (writeState) => {\n throwIfAborted(pollAbortSignal);\n const writeAt = resolveNow(options.now);\n return writeConnectorState(options.memoryDir, definition.id, {\n id: definition.id,\n cursor: writeState.cursor,\n lastSyncAt: writeAt.toISOString(),\n lastSyncStatus: writeState.lastSyncStatus,\n ...(writeState.lastSyncError !== undefined\n ? { lastSyncError: writeState.lastSyncError }\n : {}),\n totalDocsImported: writeState.totalDocsImported,\n }).then(() => {\n lastStateWrittenAt = writeAt;\n });\n },\n });\n });\n if (\n runResult.docsImported === 0 &&\n runResult.error === undefined &&\n runResult.stateWriteError === undefined &&\n lastStateWrittenAt === undefined\n ) {\n const lockedState = await readConnectorState(options.memoryDir, definition.id);\n if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {\n results.push(skipResult(definition, lockedState, \"not_due\"));\n continue;\n }\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n let stateWriteError: string | undefined;\n let writtenErrorState: ConnectorState | undefined;\n const errorAt = resolveNow(options.now);\n if (!(err instanceof ConnectorStateLockLostError)) {\n try {\n writtenErrorState = await writeConnectorErrorState({\n memoryDir: options.memoryDir,\n connectorId: definition.id,\n state,\n error: message,\n now: errorAt,\n });\n } catch (writeErr) {\n stateWriteError =\n writeErr instanceof Error ? writeErr.message : String(writeErr);\n }\n }\n const reportedState = writtenErrorState ?? state;\n results.push({\n id: definition.id,\n displayName: definition.displayName,\n enabled: true,\n ran: false,\n skippedReason: \"connector_error\",\n docsImported: 0,\n error: message,\n ...(stateWriteError !== undefined ? { stateWriteError } : {}),\n lastSyncAt: reportedState?.lastSyncAt ?? null,\n nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs),\n });\n continue;\n }\n results.push(\n runItemFromResult(\n definition,\n runResult,\n state,\n lastStateWrittenAt ?? resolveNow(options.now),\n ),\n );\n }\n\n return {\n ranAt: ranAt.toISOString(),\n force,\n totalDocsImported: results.reduce((sum, item) => sum + item.docsImported, 0),\n ranCount: results.filter((item) => item.ran).length,\n skippedCount: results.filter((item) => !item.ran).length,\n errorCount: results.filter(\n (item) => item.error !== undefined || item.stateWriteError !== undefined,\n ).length,\n results,\n };\n}\n\nfunction resolveNow(now: LiveConnectorsNow | undefined): Date {\n return typeof now === \"function\" ? now() : now ?? new Date();\n}\n\nfunction isConnectorDue(\n state: ConnectorState | null,\n pollIntervalMs: number,\n now: Date,\n): boolean {\n if (state?.lastSyncAt === null || state?.lastSyncAt === undefined) return true;\n const lastMs = Date.parse(state.lastSyncAt);\n if (!Number.isFinite(lastMs)) return true;\n return now.getTime() - lastMs >= Math.max(1, Math.floor(pollIntervalMs));\n}\n\nfunction nextDueAt(\n state: ConnectorState | null,\n pollIntervalMs: number,\n): string | null {\n if (state?.lastSyncAt === null || state?.lastSyncAt === undefined) return null;\n const lastMs = Date.parse(state.lastSyncAt);\n if (!Number.isFinite(lastMs)) return null;\n return new Date(lastMs + Math.max(1, Math.floor(pollIntervalMs))).toISOString();\n}\n\nfunction skipResult(\n definition: LiveConnectorDefinition,\n state: ConnectorState | null,\n skippedReason: LiveConnectorSkipReason,\n): LiveConnectorRunItem {\n return {\n id: definition.id,\n displayName: definition.displayName,\n enabled: definition.enabled,\n ran: false,\n skippedReason,\n docsImported: 0,\n lastSyncAt: state?.lastSyncAt ?? null,\n nextDueAt:\n skippedReason === \"not_due\"\n ? nextDueAt(state, definition.pollIntervalMs)\n : null,\n };\n}\n\nfunction runItemFromResult(\n definition: LiveConnectorDefinition,\n result: ConnectorRunResult,\n priorState: ConnectorState | null,\n now: Date,\n): LiveConnectorRunItem {\n const stateWriteFailed = result.stateWriteError !== undefined;\n const reportedLastSyncAt = stateWriteFailed\n ? priorState?.lastSyncAt ?? null\n : now.toISOString();\n const reportedNextDueAt = stateWriteFailed\n ? nextDueAt(priorState, definition.pollIntervalMs)\n : new Date(\n now.getTime() + Math.max(1, Math.floor(definition.pollIntervalMs)),\n ).toISOString();\n\n return {\n id: definition.id,\n displayName: definition.displayName,\n enabled: definition.enabled,\n ran: true,\n docsImported: result.docsImported,\n ...(result.error !== undefined ? { error: result.error } : {}),\n ...(result.stateWriteError !== undefined\n ? { stateWriteError: result.stateWriteError }\n : {}),\n lastSyncAt: reportedLastSyncAt,\n nextDueAt: reportedNextDueAt,\n };\n}\n\nfunction combineAbortSignals(...signals: Array<AbortSignal | undefined>): AbortSignal | undefined {\n const activeSignals = signals.filter((signal): signal is AbortSignal => signal !== undefined);\n if (activeSignals.length === 0) return undefined;\n if (activeSignals.length === 1) return activeSignals[0];\n const abortSignalAny = (AbortSignal as typeof AbortSignal & {\n any?: (signals: AbortSignal[]) => AbortSignal;\n }).any;\n if (abortSignalAny !== undefined) {\n return abortSignalAny(activeSignals);\n }\n const controller = new AbortController();\n const abort = (signal: AbortSignal): void => {\n if (!controller.signal.aborted) {\n controller.abort(signal.reason);\n }\n };\n for (const signal of activeSignals) {\n if (signal.aborted) {\n abort(signal);\n break;\n }\n signal.addEventListener(\"abort\", () => abort(signal), { once: true });\n }\n return controller.signal;\n}\n\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (signal?.aborted !== true) return;\n const reason = signal.reason;\n if (reason instanceof Error) {\n throw reason;\n }\n throw abortError(reason === undefined ? \"operation aborted\" : String(reason));\n}\n\nasync function writeConnectorErrorState(options: {\n memoryDir: string;\n connectorId: string;\n state: ConnectorState | null;\n error: string;\n now: Date;\n}): Promise<ConnectorState> {\n return writeConnectorState(options.memoryDir, options.connectorId, {\n id: options.connectorId,\n cursor: options.state?.cursor ?? null,\n lastSyncAt: options.now.toISOString(),\n lastSyncStatus: \"error\",\n lastSyncError: options.error,\n totalDocsImported: options.state?.totalDocsImported ?? 0,\n });\n}\n"],"mappings":"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","names":[]}
|