@remnic/core 10.0.85 → 10.0.86
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 +72 -71
- package/dist/access-authorization-probe.js +73 -72
- package/dist/access-boundary.d.ts.map +1 -1
- package/dist/access-boundary.js +72 -71
- package/dist/access-cli.js +157 -155
- package/dist/access-cli.js.map +1 -1
- package/dist/access-errors.d.ts +14 -0
- package/dist/access-errors.d.ts.map +1 -1
- package/dist/access-errors.js +5 -1
- package/dist/access-extraction-force-flush.js +72 -71
- package/dist/access-http-briefing.js +73 -72
- package/dist/access-http-query.js +74 -73
- package/dist/access-http.d.ts +12 -0
- package/dist/access-http.d.ts.map +1 -1
- package/dist/access-http.js +95 -94
- package/dist/access-identity-continuity-surface.js +72 -71
- package/dist/access-lcm-surface.js +72 -71
- package/dist/access-mcp.d.ts.map +1 -1
- package/dist/access-mcp.js +82 -81
- package/dist/access-memory-search-fanout.js +2 -2
- package/dist/access-namespace-preflight.js +72 -71
- package/dist/access-observe-write-category.js +10 -9
- package/dist/access-observe-write-surface.js +72 -71
- package/dist/access-offline-manifest.js +8 -8
- package/dist/access-operations-batch.js +73 -72
- package/dist/access-operations.js +80 -79
- package/dist/access-recall-concurrency.js +72 -71
- package/dist/access-recall-diagnostics.js +2 -2
- package/dist/access-recall-response.js +72 -71
- package/dist/access-recall-surface.js +72 -71
- package/dist/access-schema.d.ts.map +1 -1
- package/dist/access-schema.js +9 -8
- package/dist/access-service.d.ts +3 -3
- package/dist/access-service.d.ts.map +1 -1
- package/dist/access-service.js +72 -71
- package/dist/access-surface-catalog.js +74 -73
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-token-capabilities.js +2 -2
- package/dist/active-recall.js +32 -32
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/registry.js +3 -3
- package/dist/briefing-deadline.d.ts +2 -2
- package/dist/briefing-deadline.d.ts.map +1 -1
- package/dist/briefing-deadline.js +1 -1
- package/dist/briefing.js +23 -23
- package/dist/buffer-admission.d.ts +22 -0
- package/dist/buffer-admission.d.ts.map +1 -0
- package/dist/buffer-admission.js +13 -0
- package/dist/buffer-eviction.d.ts +4 -5
- package/dist/buffer-eviction.d.ts.map +1 -1
- package/dist/buffer-eviction.js +1 -1
- package/dist/buffer-turn-helpers.d.ts +7 -0
- package/dist/buffer-turn-helpers.d.ts.map +1 -1
- package/dist/buffer-turn-helpers.js +9 -1
- package/dist/buffer-types.d.ts +24 -1
- package/dist/buffer-types.d.ts.map +1 -1
- package/dist/buffer.d.ts +17 -18
- package/dist/buffer.d.ts.map +1 -1
- package/dist/buffer.js +12 -8
- package/dist/calibration.js +2 -2
- package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/capsule-crypto-7FJQINUR.js.map +1 -0
- package/dist/capsule-import-gate.d.ts +11 -0
- package/dist/capsule-import-gate.d.ts.map +1 -0
- package/dist/capsule-import-gate.js +12 -0
- package/dist/capsule-import-gate.js.map +1 -0
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +25 -25
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-73YVMZ7D.js → chunk-2G4TV2ML.js} +11 -11
- package/dist/{chunk-BMIM6ESC.js → chunk-2JG2NI7C.js} +38 -38
- package/dist/{chunk-IR4C3DP2.js → chunk-2K3AUDH7.js} +2 -2
- package/dist/{chunk-6KFFRMPQ.js → chunk-2N4OUSIA.js} +2 -2
- package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/{chunk-44FQCC5D.js → chunk-2NUDHVYM.js} +2 -2
- package/dist/{chunk-FK4WC6VK.js → chunk-2U4LMSEX.js} +3 -3
- package/dist/{chunk-LT3CMO65.js → chunk-2XOFVTTT.js} +2 -2
- package/dist/{chunk-I6ORDT54.js → chunk-32CA7B6L.js} +2 -2
- package/dist/{chunk-TQVECGUQ.js → chunk-32YX7EJ3.js} +3 -3
- package/dist/{chunk-H4D5YURJ.js → chunk-3CTKEXXF.js} +120 -118
- package/dist/{chunk-H4D5YURJ.js.map → chunk-3CTKEXXF.js.map} +1 -1
- package/dist/{chunk-HLWXCDUQ.js → chunk-3DAWHP5K.js} +5 -5
- package/dist/{chunk-GBOYOL5L.js → chunk-3PJEDHLD.js} +2 -2
- package/dist/{chunk-ZWTHVUT5.js → chunk-3UZ2VMKD.js} +2 -2
- package/dist/{chunk-2XYDL2FG.js → chunk-3Y5X6YFH.js} +2 -2
- package/dist/{chunk-23B4HLWG.js → chunk-4GMI5HFH.js} +9 -9
- package/dist/{chunk-AP3TSV6S.js → chunk-4LCVA2LW.js} +3 -3
- package/dist/{chunk-MZCGHPIJ.js → chunk-4X7HQKAG.js} +2 -2
- package/dist/{chunk-YNBMBL4C.js → chunk-4XYAWK5H.js} +2 -2
- package/dist/{chunk-2JAT4S7N.js → chunk-5SOSQTVE.js} +2 -2
- package/dist/{chunk-G3T6YMBO.js → chunk-64S6X4IU.js} +7 -7
- package/dist/{chunk-NIV7RPWQ.js → chunk-6BCWFCDG.js} +7 -7
- package/dist/{chunk-V27FK6D6.js → chunk-6XTUZKCZ.js} +2 -2
- package/dist/{chunk-KASJJGRG.js → chunk-6ZELOK6O.js} +3 -8
- package/dist/chunk-6ZELOK6O.js.map +1 -0
- package/dist/{chunk-2ASEDFOA.js → chunk-73UZZFJC.js} +3 -3
- package/dist/{chunk-UHPHH74F.js → chunk-77PDJ4OE.js} +3 -3
- package/dist/{chunk-BATPQNRG.js → chunk-7GSL4LBG.js} +2 -2
- package/dist/{chunk-B6SPPYGJ.js → chunk-7IWRLYFJ.js} +2 -2
- package/dist/{chunk-BUKK5SWA.js → chunk-7LCGFUMB.js} +4 -4
- package/dist/{chunk-ZXF3O7P4.js → chunk-ARRTLPRC.js} +2 -2
- package/dist/{chunk-S5CQI2KF.js → chunk-B3GKQ6DU.js} +2 -2
- package/dist/{chunk-2URKYLMK.js → chunk-B56LORLY.js} +2 -2
- package/dist/{chunk-4IWEPQEV.js → chunk-BIVKPQ6Q.js} +2 -2
- package/dist/{chunk-DM4RRTN7.js → chunk-BLSHFIR6.js} +7 -6
- package/dist/chunk-BLSHFIR6.js.map +1 -0
- package/dist/{chunk-4DPLCYEK.js → chunk-C2HORX76.js} +3 -3
- package/dist/{chunk-ELWI2R6H.js → chunk-CC4V7HNP.js} +22 -22
- package/dist/{chunk-LGEH473S.js → chunk-CJCTKL6Y.js} +9 -1
- package/dist/chunk-CJCTKL6Y.js.map +1 -0
- package/dist/{chunk-WFDWLWDK.js → chunk-CN7Q3T2J.js} +4 -4
- package/dist/{chunk-GJVGFKOU.js → chunk-CYCEROPR.js} +3 -3
- package/dist/{chunk-CCU7URRP.js → chunk-D5EV6Y2L.js} +3 -3
- package/dist/{chunk-N6II66E5.js → chunk-DT7SNJH6.js} +3 -3
- package/dist/{chunk-FRM4UTDR.js → chunk-DZ7DPDVW.js} +8 -6
- package/dist/chunk-DZ7DPDVW.js.map +1 -0
- package/dist/{chunk-MVOJDLXS.js → chunk-EA2LA5RI.js} +2 -2
- package/dist/{chunk-WBN66HPI.js → chunk-ELHJK7LM.js} +6 -6
- package/dist/{chunk-GKYIRTNX.js → chunk-EQ4U73UH.js} +45 -14
- package/dist/chunk-EQ4U73UH.js.map +1 -0
- package/dist/{chunk-ONN2E5QD.js → chunk-EUBDYOLD.js} +6 -6
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-3LHPTBWG.js → chunk-F74G4KIH.js} +2 -2
- package/dist/{chunk-X7REO4CH.js → chunk-FF3EFLUT.js} +7 -5
- package/dist/chunk-FF3EFLUT.js.map +1 -0
- package/dist/chunk-FKBGK3NC.js +62 -0
- package/dist/chunk-FKBGK3NC.js.map +1 -0
- package/dist/{chunk-X2KO4FK5.js → chunk-FNFURZBZ.js} +5 -5
- package/dist/chunk-FNFURZBZ.js.map +1 -0
- package/dist/{chunk-MYCCO6AA.js → chunk-G54BOKZ6.js} +2 -2
- package/dist/{chunk-JFH6JAGY.js → chunk-G67EUQAB.js} +5 -5
- package/dist/{chunk-TV65NR7L.js → chunk-GULUWOA5.js} +2 -2
- package/dist/{chunk-6DANGCMO.js → chunk-HFUKXOUW.js} +2 -2
- package/dist/{chunk-Y3IYKNBY.js → chunk-HLN2HOXX.js} +2 -2
- package/dist/{chunk-Y43X3E24.js → chunk-IBDWYRDR.js} +3 -3
- package/dist/{chunk-XSFQN7TP.js → chunk-IBGU6AN6.js} +15 -14
- package/dist/chunk-IBGU6AN6.js.map +1 -0
- package/dist/{chunk-AJG2TAMR.js → chunk-IEEV27BC.js} +2 -2
- package/dist/{chunk-FZPDRCOB.js → chunk-IJ3OEECW.js} +4 -4
- package/dist/{chunk-D6THW7PA.js → chunk-IPD5GC7C.js} +2 -2
- package/dist/{chunk-VCVEMQJK.js → chunk-JM2YZKCQ.js} +2 -2
- package/dist/{chunk-H34INI3P.js → chunk-KVSOEVAF.js} +34 -11
- package/dist/chunk-KVSOEVAF.js.map +1 -0
- package/dist/chunk-M3BEJJNV.js +31 -0
- package/dist/chunk-M3BEJJNV.js.map +1 -0
- package/dist/{chunk-OSTFDWZJ.js → chunk-NIVKG3DS.js} +4 -4
- package/dist/{chunk-VZELUMKK.js → chunk-NQP4ZYGG.js} +2 -2
- package/dist/{chunk-3ODZLCHC.js → chunk-NT7F7WJQ.js} +2 -2
- package/dist/{chunk-YO2JEX2Z.js → chunk-OGBQMY46.js} +2 -2
- package/dist/{chunk-O55AGDTI.js → chunk-OL553AWT.js} +10 -10
- package/dist/{chunk-CLVILSBR.js → chunk-OZNBZJ3S.js} +22 -22
- package/dist/{chunk-RNGDKFY2.js → chunk-P452SEKO.js} +2 -2
- package/dist/{chunk-JX3E4XCW.js → chunk-PDOOUXCS.js} +2 -2
- package/dist/{chunk-V45TEVDA.js → chunk-PKZ274PI.js} +3 -3
- package/dist/{chunk-MNYQVYJ4.js → chunk-QD5R6U5J.js} +2 -2
- package/dist/{chunk-DI5ET2IE.js → chunk-QEZ3DW5O.js} +9 -9
- package/dist/{chunk-WYPCJK6K.js → chunk-QKERFEJS.js} +2 -2
- package/dist/{chunk-BLMTOIBK.js → chunk-QKES7GU6.js} +2 -2
- package/dist/{chunk-PCQWKMOL.js → chunk-QNSZYTSG.js} +2 -2
- package/dist/{chunk-433EXTC4.js → chunk-ROGO7FRA.js} +5 -4
- package/dist/{chunk-433EXTC4.js.map → chunk-ROGO7FRA.js.map} +1 -1
- package/dist/{chunk-MHSBOEH7.js → chunk-ROKDHO74.js} +2 -2
- package/dist/{chunk-BLGQUZFB.js → chunk-RWGRSKN5.js} +7 -5
- package/dist/chunk-RWGRSKN5.js.map +1 -0
- package/dist/{chunk-3VU2FDTU.js → chunk-SYKJBS7S.js} +10 -10
- package/dist/{chunk-5BE3FLKL.js → chunk-TAUHAP5J.js} +4 -4
- package/dist/{chunk-QCP75JGO.js → chunk-TFA6HPOA.js} +5 -5
- package/dist/{chunk-SGHV6LZ7.js → chunk-TQ4SCPGQ.js} +67 -51
- package/dist/chunk-TQ4SCPGQ.js.map +1 -0
- package/dist/{chunk-E7V5AK7I.js → chunk-TRMZHGIX.js} +8 -8
- package/dist/{chunk-WBDIZWJQ.js → chunk-TSS3D7ZY.js} +2 -2
- package/dist/{chunk-HVFX2N2G.js → chunk-UAUV3BWS.js} +65 -83
- package/dist/chunk-UAUV3BWS.js.map +1 -0
- package/dist/{chunk-OMYRPMQC.js → chunk-US7KPQA5.js} +2 -2
- package/dist/{chunk-KHZVAISH.js → chunk-UWRHHRDK.js} +2 -2
- package/dist/{chunk-WLNWFHX3.js → chunk-UXXK523X.js} +40 -2
- package/dist/{chunk-WLNWFHX3.js.map → chunk-UXXK523X.js.map} +1 -1
- package/dist/{chunk-SDESKFKT.js → chunk-UYHDMCY2.js} +2 -2
- package/dist/{chunk-YAAKVTZA.js → chunk-VKILERSL.js} +2 -2
- package/dist/{chunk-2TGIKMMZ.js → chunk-WXDTOE6F.js} +2 -2
- package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-P225W4RQ.js → chunk-XU37EJTW.js} +22 -22
- package/dist/chunk-XU37EJTW.js.map +1 -0
- package/dist/{chunk-QA3Y2O6H.js → chunk-YAVIBVCU.js} +2 -2
- package/dist/{chunk-CMRHXPLQ.js → chunk-YL4UKMD7.js} +117 -51
- package/dist/chunk-YL4UKMD7.js.map +1 -0
- package/dist/{chunk-GYNRNKMW.js → chunk-YMJRLT7S.js} +28 -8
- package/dist/chunk-YMJRLT7S.js.map +1 -0
- package/dist/{chunk-E5QEF3JO.js → chunk-YRZPBN46.js} +3 -3
- package/dist/{chunk-FMFCQRDM.js → chunk-ZANNIXXE.js} +3 -3
- package/dist/{chunk-3KGCHTTK.js → chunk-ZBFLV657.js} +3 -3
- package/dist/{chunk-VEFGHRKV.js → chunk-ZOJUWVAU.js} +1 -1
- package/dist/cli.js +117 -116
- package/dist/coding/export-okf-codegraph.js +21 -21
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.js +23 -23
- package/dist/config.js +32 -32
- package/dist/connectors/codex-materialize-runner.js +22 -22
- package/dist/connectors/index.js +26 -26
- package/dist/convergence-refresh.js +24 -24
- package/dist/conversation-index/backend.js +2 -2
- package/dist/corpus-watermark.js +26 -26
- package/dist/dashboard-runtime.js +2 -2
- package/dist/deep-recall-config.js +2 -2
- package/dist/deep-recall-http-glue.js +11 -11
- package/dist/entity-retrieval.js +23 -23
- package/dist/explicit-capture.js +1 -1
- package/dist/external-wiki-access.js +73 -72
- package/dist/extraction-quote-grounding.d.ts +5 -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.d.ts +3 -1
- package/dist/extraction-source-grounding-rules.d.ts.map +1 -1
- package/dist/extraction-source-grounding-rules.js +2 -2
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts.map +1 -1
- package/dist/extraction-source-grounding.js +3 -3
- package/dist/extraction.d.ts.map +1 -1
- package/dist/extraction.js +40 -40
- package/dist/harmonic-retrieval.js +22 -22
- package/dist/index.js +196 -194
- package/dist/lcm/index.js +3 -3
- package/dist/local-llm.js +2 -2
- package/dist/location/index.js +25 -25
- package/dist/maintenance/memory-governance.js +22 -22
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +22 -22
- package/dist/maintenance/rebuild-memory-projection-runner.js +24 -24
- package/dist/maintenance/rebuild-memory-projection.js +23 -23
- package/dist/memory-browse-http-glue.js +2 -2
- package/dist/memory-browse-operations.js +73 -72
- package/dist/memory-browse.js +5 -5
- package/dist/namespaces/migrate.js +23 -23
- package/dist/namespaces/search.d.ts +1 -0
- package/dist/namespaces/search.d.ts.map +1 -1
- package/dist/namespaces/search.js +10 -8
- package/dist/namespaces/storage.js +22 -22
- package/dist/offline-sync-changeset-generations.js +3 -3
- package/dist/offline-sync-embedding-generation.js +2 -2
- package/dist/offline-sync-impression-drain.js +2 -2
- package/dist/offline-sync-snapshot-stream.js +6 -6
- package/dist/offline-sync.js +5 -5
- package/dist/operator-doctor-corpus.js +29 -29
- package/dist/operator-doctor-replica.js +4 -4
- package/dist/operator-toolkit.js +44 -44
- package/dist/orchestration/backlog-scheduler.js +158 -156
- package/dist/orchestration/backlog-scheduler.js.map +1 -1
- package/dist/orchestration/buffer-drain-runner.js +158 -156
- package/dist/orchestration/maintenance.js +36 -36
- package/dist/orchestration/turn-ingestion.d.ts +2 -9
- package/dist/orchestration/turn-ingestion.d.ts.map +1 -1
- package/dist/orchestrator.js +159 -157
- package/dist/qmd.js +4 -4
- package/dist/recall-navigation-http-glue.js +2 -2
- package/dist/recall-navigation-operations.js +73 -72
- package/dist/recall-navigation.js +72 -71
- package/dist/recall-state-view-admission.js +5 -5
- package/dist/recall-why-service.js +5 -5
- package/dist/replica-divergence.js +3 -3
- package/dist/resume-bundles.js +33 -33
- package/dist/search/factory.js +7 -7
- package/dist/search/index.js +11 -11
- package/dist/semantic-consolidation.js +23 -23
- package/dist/semantic-rule-promotion.js +22 -22
- package/dist/semantic-rule-verifier.js +22 -22
- package/dist/source-agent-qualifier.d.ts +2 -0
- package/dist/source-agent-qualifier.d.ts.map +1 -1
- package/dist/source-agent-qualifier.js +33 -33
- package/dist/standup/build.js +23 -23
- package/dist/storage/buffer-drain-claims.js +2 -2
- package/dist/storage/buffer-session-files.js +2 -2
- package/dist/storage.js +23 -23
- package/dist/summarizer.js +3 -3
- package/dist/support-passport/index.js +75 -74
- package/dist/tokens.js +3 -3
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +2 -2
- package/dist/transfer/export-okf.js +22 -22
- package/dist/verified-recall.js +22 -22
- package/dist/who-knows-cli.js +24 -24
- package/dist/who-knows.js +23 -23
- package/package.json +2 -2
- package/src/access-boundary.ts +15 -0
- package/src/access-errors.ts +22 -0
- package/src/access-fleet-wide-work-peer.test.ts +236 -0
- package/src/access-http-peer-fleet-wide.test.ts +192 -0
- package/src/access-http.test.ts +249 -4
- package/src/access-http.ts +114 -39
- package/src/access-mcp.test.ts +64 -0
- package/src/access-mcp.ts +17 -7
- package/src/access-observe-replay-durability.test.ts +40 -4
- package/src/access-operations-batch.ts +23 -12
- package/src/access-proto-injection.test.ts +340 -0
- package/src/access-schema.ts +31 -5
- package/src/access-service-capsule-import.test.ts +235 -0
- package/src/access-service.ts +6 -45
- package/src/briefing-deadline.ts +5 -4
- package/src/buffer-admission.ts +45 -0
- package/src/buffer-eviction-backpressure.test.ts +211 -0
- package/src/buffer-eviction.ts +8 -14
- package/src/buffer-incremental-persistence.test.ts +25 -37
- package/src/buffer-session.test.ts +32 -16
- package/src/buffer-turn-helpers.ts +41 -0
- package/src/buffer-types.ts +28 -1
- package/src/buffer.ts +77 -85
- package/src/capsule-import-gate.ts +109 -0
- package/src/extraction-quote-grounding.test.ts +76 -0
- package/src/extraction-quote-grounding.ts +49 -13
- package/src/extraction-source-grounding-rules.ts +6 -1
- package/src/extraction-source-grounding.ts +2 -0
- package/src/extraction.ts +3 -4
- package/src/namespaces/search.test.ts +141 -1
- package/src/namespaces/search.ts +39 -9
- package/src/orchestration/turn-ingestion.ts +38 -39
- package/src/recall-navigation-operations.ts +9 -2
- package/src/source-agent-qualifier.ts +3 -0
- package/dist/chunk-BLGQUZFB.js.map +0 -1
- package/dist/chunk-CMRHXPLQ.js.map +0 -1
- package/dist/chunk-DM4RRTN7.js.map +0 -1
- package/dist/chunk-FRM4UTDR.js.map +0 -1
- package/dist/chunk-GKYIRTNX.js.map +0 -1
- package/dist/chunk-GYNRNKMW.js.map +0 -1
- package/dist/chunk-H34INI3P.js.map +0 -1
- package/dist/chunk-HVFX2N2G.js.map +0 -1
- package/dist/chunk-KASJJGRG.js.map +0 -1
- package/dist/chunk-LGEH473S.js.map +0 -1
- package/dist/chunk-P225W4RQ.js.map +0 -1
- package/dist/chunk-SGHV6LZ7.js.map +0 -1
- package/dist/chunk-X2KO4FK5.js.map +0 -1
- package/dist/chunk-X7REO4CH.js.map +0 -1
- package/dist/chunk-XSFQN7TP.js.map +0 -1
- /package/dist/{capsule-crypto-GWVG7LGC.js.map → buffer-admission.js.map} +0 -0
- /package/dist/{chunk-73YVMZ7D.js.map → chunk-2G4TV2ML.js.map} +0 -0
- /package/dist/{chunk-BMIM6ESC.js.map → chunk-2JG2NI7C.js.map} +0 -0
- /package/dist/{chunk-IR4C3DP2.js.map → chunk-2K3AUDH7.js.map} +0 -0
- /package/dist/{chunk-6KFFRMPQ.js.map → chunk-2N4OUSIA.js.map} +0 -0
- /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-44FQCC5D.js.map → chunk-2NUDHVYM.js.map} +0 -0
- /package/dist/{chunk-FK4WC6VK.js.map → chunk-2U4LMSEX.js.map} +0 -0
- /package/dist/{chunk-LT3CMO65.js.map → chunk-2XOFVTTT.js.map} +0 -0
- /package/dist/{chunk-I6ORDT54.js.map → chunk-32CA7B6L.js.map} +0 -0
- /package/dist/{chunk-TQVECGUQ.js.map → chunk-32YX7EJ3.js.map} +0 -0
- /package/dist/{chunk-HLWXCDUQ.js.map → chunk-3DAWHP5K.js.map} +0 -0
- /package/dist/{chunk-GBOYOL5L.js.map → chunk-3PJEDHLD.js.map} +0 -0
- /package/dist/{chunk-ZWTHVUT5.js.map → chunk-3UZ2VMKD.js.map} +0 -0
- /package/dist/{chunk-2XYDL2FG.js.map → chunk-3Y5X6YFH.js.map} +0 -0
- /package/dist/{chunk-23B4HLWG.js.map → chunk-4GMI5HFH.js.map} +0 -0
- /package/dist/{chunk-AP3TSV6S.js.map → chunk-4LCVA2LW.js.map} +0 -0
- /package/dist/{chunk-MZCGHPIJ.js.map → chunk-4X7HQKAG.js.map} +0 -0
- /package/dist/{chunk-YNBMBL4C.js.map → chunk-4XYAWK5H.js.map} +0 -0
- /package/dist/{chunk-2JAT4S7N.js.map → chunk-5SOSQTVE.js.map} +0 -0
- /package/dist/{chunk-G3T6YMBO.js.map → chunk-64S6X4IU.js.map} +0 -0
- /package/dist/{chunk-NIV7RPWQ.js.map → chunk-6BCWFCDG.js.map} +0 -0
- /package/dist/{chunk-V27FK6D6.js.map → chunk-6XTUZKCZ.js.map} +0 -0
- /package/dist/{chunk-2ASEDFOA.js.map → chunk-73UZZFJC.js.map} +0 -0
- /package/dist/{chunk-UHPHH74F.js.map → chunk-77PDJ4OE.js.map} +0 -0
- /package/dist/{chunk-BATPQNRG.js.map → chunk-7GSL4LBG.js.map} +0 -0
- /package/dist/{chunk-B6SPPYGJ.js.map → chunk-7IWRLYFJ.js.map} +0 -0
- /package/dist/{chunk-BUKK5SWA.js.map → chunk-7LCGFUMB.js.map} +0 -0
- /package/dist/{chunk-ZXF3O7P4.js.map → chunk-ARRTLPRC.js.map} +0 -0
- /package/dist/{chunk-S5CQI2KF.js.map → chunk-B3GKQ6DU.js.map} +0 -0
- /package/dist/{chunk-2URKYLMK.js.map → chunk-B56LORLY.js.map} +0 -0
- /package/dist/{chunk-4IWEPQEV.js.map → chunk-BIVKPQ6Q.js.map} +0 -0
- /package/dist/{chunk-4DPLCYEK.js.map → chunk-C2HORX76.js.map} +0 -0
- /package/dist/{chunk-ELWI2R6H.js.map → chunk-CC4V7HNP.js.map} +0 -0
- /package/dist/{chunk-WFDWLWDK.js.map → chunk-CN7Q3T2J.js.map} +0 -0
- /package/dist/{chunk-GJVGFKOU.js.map → chunk-CYCEROPR.js.map} +0 -0
- /package/dist/{chunk-CCU7URRP.js.map → chunk-D5EV6Y2L.js.map} +0 -0
- /package/dist/{chunk-N6II66E5.js.map → chunk-DT7SNJH6.js.map} +0 -0
- /package/dist/{chunk-MVOJDLXS.js.map → chunk-EA2LA5RI.js.map} +0 -0
- /package/dist/{chunk-WBN66HPI.js.map → chunk-ELHJK7LM.js.map} +0 -0
- /package/dist/{chunk-ONN2E5QD.js.map → chunk-EUBDYOLD.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-3LHPTBWG.js.map → chunk-F74G4KIH.js.map} +0 -0
- /package/dist/{chunk-MYCCO6AA.js.map → chunk-G54BOKZ6.js.map} +0 -0
- /package/dist/{chunk-JFH6JAGY.js.map → chunk-G67EUQAB.js.map} +0 -0
- /package/dist/{chunk-TV65NR7L.js.map → chunk-GULUWOA5.js.map} +0 -0
- /package/dist/{chunk-6DANGCMO.js.map → chunk-HFUKXOUW.js.map} +0 -0
- /package/dist/{chunk-Y3IYKNBY.js.map → chunk-HLN2HOXX.js.map} +0 -0
- /package/dist/{chunk-Y43X3E24.js.map → chunk-IBDWYRDR.js.map} +0 -0
- /package/dist/{chunk-AJG2TAMR.js.map → chunk-IEEV27BC.js.map} +0 -0
- /package/dist/{chunk-FZPDRCOB.js.map → chunk-IJ3OEECW.js.map} +0 -0
- /package/dist/{chunk-D6THW7PA.js.map → chunk-IPD5GC7C.js.map} +0 -0
- /package/dist/{chunk-VCVEMQJK.js.map → chunk-JM2YZKCQ.js.map} +0 -0
- /package/dist/{chunk-OSTFDWZJ.js.map → chunk-NIVKG3DS.js.map} +0 -0
- /package/dist/{chunk-VZELUMKK.js.map → chunk-NQP4ZYGG.js.map} +0 -0
- /package/dist/{chunk-3ODZLCHC.js.map → chunk-NT7F7WJQ.js.map} +0 -0
- /package/dist/{chunk-YO2JEX2Z.js.map → chunk-OGBQMY46.js.map} +0 -0
- /package/dist/{chunk-O55AGDTI.js.map → chunk-OL553AWT.js.map} +0 -0
- /package/dist/{chunk-CLVILSBR.js.map → chunk-OZNBZJ3S.js.map} +0 -0
- /package/dist/{chunk-RNGDKFY2.js.map → chunk-P452SEKO.js.map} +0 -0
- /package/dist/{chunk-JX3E4XCW.js.map → chunk-PDOOUXCS.js.map} +0 -0
- /package/dist/{chunk-V45TEVDA.js.map → chunk-PKZ274PI.js.map} +0 -0
- /package/dist/{chunk-MNYQVYJ4.js.map → chunk-QD5R6U5J.js.map} +0 -0
- /package/dist/{chunk-DI5ET2IE.js.map → chunk-QEZ3DW5O.js.map} +0 -0
- /package/dist/{chunk-WYPCJK6K.js.map → chunk-QKERFEJS.js.map} +0 -0
- /package/dist/{chunk-BLMTOIBK.js.map → chunk-QKES7GU6.js.map} +0 -0
- /package/dist/{chunk-PCQWKMOL.js.map → chunk-QNSZYTSG.js.map} +0 -0
- /package/dist/{chunk-MHSBOEH7.js.map → chunk-ROKDHO74.js.map} +0 -0
- /package/dist/{chunk-3VU2FDTU.js.map → chunk-SYKJBS7S.js.map} +0 -0
- /package/dist/{chunk-5BE3FLKL.js.map → chunk-TAUHAP5J.js.map} +0 -0
- /package/dist/{chunk-QCP75JGO.js.map → chunk-TFA6HPOA.js.map} +0 -0
- /package/dist/{chunk-E7V5AK7I.js.map → chunk-TRMZHGIX.js.map} +0 -0
- /package/dist/{chunk-WBDIZWJQ.js.map → chunk-TSS3D7ZY.js.map} +0 -0
- /package/dist/{chunk-OMYRPMQC.js.map → chunk-US7KPQA5.js.map} +0 -0
- /package/dist/{chunk-KHZVAISH.js.map → chunk-UWRHHRDK.js.map} +0 -0
- /package/dist/{chunk-SDESKFKT.js.map → chunk-UYHDMCY2.js.map} +0 -0
- /package/dist/{chunk-YAAKVTZA.js.map → chunk-VKILERSL.js.map} +0 -0
- /package/dist/{chunk-2TGIKMMZ.js.map → chunk-WXDTOE6F.js.map} +0 -0
- /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-QA3Y2O6H.js.map → chunk-YAVIBVCU.js.map} +0 -0
- /package/dist/{chunk-E5QEF3JO.js.map → chunk-YRZPBN46.js.map} +0 -0
- /package/dist/{chunk-FMFCQRDM.js.map → chunk-ZANNIXXE.js.map} +0 -0
- /package/dist/{chunk-3KGCHTTK.js.map → chunk-ZBFLV657.js.map} +0 -0
- /package/dist/{chunk-VEFGHRKV.js.map → chunk-ZOJUWVAU.js.map} +0 -0
|
@@ -3,28 +3,28 @@ import {
|
|
|
3
3
|
} from "./chunk-V7IZKJI3.js";
|
|
4
4
|
import {
|
|
5
5
|
AdapterRegistry
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-64S6X4IU.js";
|
|
7
7
|
import {
|
|
8
8
|
WriteRateLimiter
|
|
9
9
|
} from "./chunk-TB6CBZ5V.js";
|
|
10
10
|
import {
|
|
11
11
|
maybeRespondRecallNavigation
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WXDTOE6F.js";
|
|
13
13
|
import {
|
|
14
14
|
maybeRespondMemoryBrowse
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UYHDMCY2.js";
|
|
16
16
|
import {
|
|
17
17
|
serializeInlineScriptValue
|
|
18
18
|
} from "./chunk-3HSRWJTC.js";
|
|
19
19
|
import {
|
|
20
20
|
respondDeepRecall
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-CN7Q3T2J.js";
|
|
22
22
|
import {
|
|
23
23
|
handleSupportPassportOwnerHttp
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-US7KPQA5.js";
|
|
25
25
|
import {
|
|
26
26
|
buildSupportPassportPublicRequestHandler
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-7GSL4LBG.js";
|
|
28
28
|
import {
|
|
29
29
|
handleMcpGetSse
|
|
30
30
|
} from "./chunk-SRT6SHVZ.js";
|
|
@@ -37,10 +37,10 @@ import {
|
|
|
37
37
|
processChatMessage,
|
|
38
38
|
sessionBelongsToPrincipal,
|
|
39
39
|
subscribeChatTranscript
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-IBGU6AN6.js";
|
|
41
41
|
import {
|
|
42
42
|
RelayMissionStoreError
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-6BCWFCDG.js";
|
|
44
44
|
import {
|
|
45
45
|
executeResolution,
|
|
46
46
|
isValidResolutionVerb
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
import {
|
|
49
49
|
handleRecallWhyHttpQuery,
|
|
50
50
|
handleRecallXrayHttpQuery
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-ARRTLPRC.js";
|
|
52
52
|
import {
|
|
53
53
|
toDottedRemnicName
|
|
54
54
|
} from "./chunk-ZQUVBZI4.js";
|
|
@@ -61,10 +61,10 @@ import {
|
|
|
61
61
|
optionalNamespaceKindQueryParam,
|
|
62
62
|
optionalQueryString,
|
|
63
63
|
positiveIntQueryParam
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-C2HORX76.js";
|
|
65
65
|
import {
|
|
66
66
|
respondBriefingHttp
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-73UZZFJC.js";
|
|
68
68
|
import {
|
|
69
69
|
maybeHandleLifecycleFlush
|
|
70
70
|
} from "./chunk-2BPPGNAQ.js";
|
|
@@ -75,14 +75,14 @@ import {
|
|
|
75
75
|
authorizationProbeNamespaces,
|
|
76
76
|
authorizationProbeRequiresPrincipalNamespace,
|
|
77
77
|
probeOperationAuthorization
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-IJ3OEECW.js";
|
|
79
79
|
import {
|
|
80
80
|
getOperation,
|
|
81
81
|
resolveQueryNamespaceWritablePreflight
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-UAUV3BWS.js";
|
|
83
83
|
import {
|
|
84
84
|
handleWhoKnowsHttpQuery
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-IBDWYRDR.js";
|
|
86
86
|
import {
|
|
87
87
|
isTrustZoneName
|
|
88
88
|
} from "./chunk-JWX2Q6HS.js";
|
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
} from "./chunk-DEUNUKTD.js";
|
|
92
92
|
import {
|
|
93
93
|
BriefingTimeoutError
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-FNFURZBZ.js";
|
|
95
95
|
import {
|
|
96
96
|
CorrectionContractError
|
|
97
97
|
} from "./chunk-ETSJD5IV.js";
|
|
@@ -105,7 +105,7 @@ import {
|
|
|
105
105
|
} from "./chunk-V4XE263I.js";
|
|
106
106
|
import {
|
|
107
107
|
validateRequest
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-YMJRLT7S.js";
|
|
109
109
|
import {
|
|
110
110
|
peerManifestRevision
|
|
111
111
|
} from "./chunk-AJHNXIQU.js";
|
|
@@ -115,12 +115,12 @@ import {
|
|
|
115
115
|
enforceNamespaceAllowList,
|
|
116
116
|
isCapabilityRestricted,
|
|
117
117
|
tokenCapabilityStore
|
|
118
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-OGBQMY46.js";
|
|
119
119
|
import {
|
|
120
120
|
OFFLINE_SYNC_APPLY_MAX_BODY_BYTES,
|
|
121
121
|
OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
|
|
122
122
|
OFFLINE_SYNC_SNAPSHOT_BASE_MAX_BODY_BYTES
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-OZNBZJ3S.js";
|
|
124
124
|
import {
|
|
125
125
|
resolveNamespaceCapabilities
|
|
126
126
|
} from "./chunk-C5LWPYS3.js";
|
|
@@ -133,7 +133,7 @@ import {
|
|
|
133
133
|
import {
|
|
134
134
|
EngramAccessForbiddenError,
|
|
135
135
|
EngramAccessInputError
|
|
136
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-CJCTKL6Y.js";
|
|
137
137
|
import {
|
|
138
138
|
abortError,
|
|
139
139
|
isAbortError
|
|
@@ -820,6 +820,11 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
820
820
|
resourceMetadataUrl;
|
|
821
821
|
externalRequestHandler;
|
|
822
822
|
writeLimiter;
|
|
823
|
+
// Reservations taken by ensureWriteRateLimitAvailable and not yet committed
|
|
824
|
+
// by recordWriteRateLimitHit, keyed by request. The per-request release in
|
|
825
|
+
// the connection callback covers every early return and error path, so a
|
|
826
|
+
// failed or exempt write never leaks its slot (issue #3225 C4).
|
|
827
|
+
pendingWriteQuotas = /* @__PURE__ */ new WeakMap();
|
|
823
828
|
mcpServer;
|
|
824
829
|
server = null;
|
|
825
830
|
boundPort = 0;
|
|
@@ -933,6 +938,10 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
933
938
|
});
|
|
934
939
|
return;
|
|
935
940
|
}
|
|
941
|
+
if (err.name === "ReplayAdmissionRefusedError") {
|
|
942
|
+
this.respondJson(res, 503, { error: err.message, code: "buffer_admission_refused" });
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
936
945
|
if (res.headersSent) {
|
|
937
946
|
res.destroy(err);
|
|
938
947
|
return;
|
|
@@ -945,6 +954,7 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
945
954
|
}).finally(() => {
|
|
946
955
|
req.off("aborted", abortDisconnectedRequest);
|
|
947
956
|
res.off("close", abortDisconnectedRequest);
|
|
957
|
+
this.releasePendingWriteQuota(req);
|
|
948
958
|
});
|
|
949
959
|
});
|
|
950
960
|
});
|
|
@@ -2640,63 +2650,76 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
2640
2650
|
return;
|
|
2641
2651
|
}
|
|
2642
2652
|
if (req.method === "GET" && pathname === "/engram/v1/peers") {
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2653
|
+
const op = getOperation("peer_list");
|
|
2654
|
+
if (!op) throw new EngramAccessInputError("access-boundary: operation not registered: peer_list");
|
|
2655
|
+
const output = await op.run({}, {
|
|
2656
|
+
service: this.service,
|
|
2657
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2658
|
+
sourceConnector: this.resolveConnector(req)
|
|
2659
|
+
});
|
|
2660
|
+
this.respondJson(res, 200, output.result);
|
|
2646
2661
|
return;
|
|
2647
2662
|
}
|
|
2648
2663
|
const peerProfileMatch = /^\/engram\/v1\/peers\/([^/]+)\/profile$/.exec(pathname);
|
|
2649
2664
|
if (peerProfileMatch) {
|
|
2650
|
-
this.enforceTokenOp("peer_profile_get");
|
|
2651
2665
|
if (req.method !== "GET") {
|
|
2652
2666
|
this.respondJson(res, 405, { error: "method_not_allowed", code: "method_not_allowed" });
|
|
2653
2667
|
return;
|
|
2654
2668
|
}
|
|
2669
|
+
const op = getOperation("peer_profile_get");
|
|
2670
|
+
if (!op) throw new EngramAccessInputError("access-boundary: operation not registered: peer_profile_get");
|
|
2655
2671
|
const peerId = decodePeerIdSegment(peerProfileMatch[1] ?? "");
|
|
2656
|
-
const
|
|
2657
|
-
|
|
2672
|
+
const output = await op.run({ id: peerId }, {
|
|
2673
|
+
service: this.service,
|
|
2674
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2675
|
+
sourceConnector: this.resolveConnector(req)
|
|
2676
|
+
});
|
|
2677
|
+
if (!output.result.found) {
|
|
2658
2678
|
this.respondJson(res, 404, { error: "peer_profile_not_found", code: "peer_profile_not_found" });
|
|
2659
2679
|
return;
|
|
2660
2680
|
}
|
|
2661
|
-
this.respondJson(res, 200, result);
|
|
2681
|
+
this.respondJson(res, 200, output.result);
|
|
2662
2682
|
return;
|
|
2663
2683
|
}
|
|
2664
2684
|
const peerIdMatch = /^\/engram\/v1\/peers\/([^/]+)$/.exec(pathname);
|
|
2665
2685
|
if (peerIdMatch) {
|
|
2666
2686
|
const peerId = decodePeerIdSegment(peerIdMatch[1] ?? "");
|
|
2667
2687
|
if (req.method === "GET") {
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2688
|
+
const op = getOperation("peer_get");
|
|
2689
|
+
if (!op) throw new EngramAccessInputError("access-boundary: operation not registered: peer_get");
|
|
2690
|
+
const output = await op.run({ id: peerId }, {
|
|
2691
|
+
service: this.service,
|
|
2692
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2693
|
+
sourceConnector: this.resolveConnector(req)
|
|
2694
|
+
});
|
|
2695
|
+
if (!output.result.found) {
|
|
2671
2696
|
this.respondJson(res, 404, { error: "peer_not_found", code: "peer_not_found" });
|
|
2672
2697
|
return;
|
|
2673
2698
|
}
|
|
2674
|
-
this.respondJson(res, 200, result);
|
|
2699
|
+
this.respondJson(res, 200, output.result);
|
|
2675
2700
|
return;
|
|
2676
2701
|
}
|
|
2677
2702
|
if (req.method === "PUT") {
|
|
2678
|
-
this.enforceTokenOp("peer_set");
|
|
2679
2703
|
const body = await this.readJsonBody(req);
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
throw new EngramAccessInputError("displayName must be a string when provided");
|
|
2685
|
-
}
|
|
2686
|
-
if ("notes" in body && body.notes !== void 0 && typeof body.notes !== "string") {
|
|
2687
|
-
throw new EngramAccessInputError("notes must be a string when provided");
|
|
2704
|
+
const op = getOperation("peer_set");
|
|
2705
|
+
if (!op) throw new EngramAccessInputError("access-boundary: operation not registered: peer_set");
|
|
2706
|
+
for (const field of ["kind", "displayName", "notes"]) {
|
|
2707
|
+
if (body[field] === null) throw new EngramAccessInputError(`${field} must be a string when provided`);
|
|
2688
2708
|
}
|
|
2689
|
-
const
|
|
2709
|
+
const output = await op.run({
|
|
2690
2710
|
id: peerId,
|
|
2691
|
-
kind:
|
|
2692
|
-
displayName:
|
|
2693
|
-
notes:
|
|
2711
|
+
kind: body.kind,
|
|
2712
|
+
displayName: body.displayName,
|
|
2713
|
+
notes: body.notes
|
|
2714
|
+
}, {
|
|
2715
|
+
service: this.service,
|
|
2716
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2717
|
+
sourceConnector: this.resolveConnector(req)
|
|
2694
2718
|
});
|
|
2695
|
-
this.respondJson(res, result.created ? 201 : 200, result);
|
|
2719
|
+
this.respondJson(res, output.result.created ? 201 : 200, output.result);
|
|
2696
2720
|
return;
|
|
2697
2721
|
}
|
|
2698
2722
|
if (req.method === "DELETE") {
|
|
2699
|
-
this.enforceTokenOp("peer_delete");
|
|
2700
2723
|
const forgetParam = parsed.searchParams.get("forget");
|
|
2701
2724
|
if (forgetParam === "true") {
|
|
2702
2725
|
const body = await this.readJsonBody(req);
|
|
@@ -2709,12 +2732,24 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
2709
2732
|
});
|
|
2710
2733
|
return;
|
|
2711
2734
|
}
|
|
2712
|
-
const
|
|
2713
|
-
|
|
2735
|
+
const op2 = getOperation("peer_forget");
|
|
2736
|
+
if (!op2) throw new EngramAccessInputError("access-boundary: operation not registered: peer_forget");
|
|
2737
|
+
const output2 = await op2.run({ id: peerId, confirm: "yes" }, {
|
|
2738
|
+
service: this.service,
|
|
2739
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2740
|
+
sourceConnector: this.resolveConnector(req)
|
|
2741
|
+
});
|
|
2742
|
+
this.respondJson(res, 200, output2.result);
|
|
2714
2743
|
return;
|
|
2715
2744
|
}
|
|
2716
|
-
const
|
|
2717
|
-
|
|
2745
|
+
const op = getOperation("peer_delete");
|
|
2746
|
+
if (!op) throw new EngramAccessInputError("access-boundary: operation not registered: peer_delete");
|
|
2747
|
+
const output = await op.run({ id: peerId }, {
|
|
2748
|
+
service: this.service,
|
|
2749
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
2750
|
+
sourceConnector: this.resolveConnector(req)
|
|
2751
|
+
});
|
|
2752
|
+
this.respondJson(res, 200, output.result);
|
|
2718
2753
|
return;
|
|
2719
2754
|
}
|
|
2720
2755
|
this.respondJson(res, 405, { error: "method_not_allowed", code: "method_not_allowed" });
|
|
@@ -3540,14 +3575,45 @@ var EngramAccessHttpServer = class extends ReviewDeckAccessHttpBase {
|
|
|
3540
3575
|
if (response.status === "stored" || response.status === "queued_for_review") return 201;
|
|
3541
3576
|
return 200;
|
|
3542
3577
|
}
|
|
3578
|
+
/**
|
|
3579
|
+
* Admit a quota-counted write by RESERVING a limiter slot for the request
|
|
3580
|
+
* (issue #3225 C4). A bare hasCapacity check admits N concurrent requests
|
|
3581
|
+
* against the same committed count; the reservation holds in-flight
|
|
3582
|
+
* capacity until the write commits at recordWriteRateLimitHit or the
|
|
3583
|
+
* request ends. Idempotent per request, so a quota hook that fires after
|
|
3584
|
+
* an earlier reservation is a no-op.
|
|
3585
|
+
*/
|
|
3543
3586
|
ensureWriteRateLimitAvailable(req) {
|
|
3544
|
-
if (!
|
|
3587
|
+
if (!req) {
|
|
3588
|
+
if (!this.writeLimiter.hasCapacity()) {
|
|
3589
|
+
throw new HttpError(429, "write_rate_limited", "write_rate_limited");
|
|
3590
|
+
}
|
|
3591
|
+
return;
|
|
3592
|
+
}
|
|
3593
|
+
if (this.pendingWriteQuotas.has(req)) return;
|
|
3594
|
+
const reservation = this.writeLimiter.reserve(this.principalForRateLimit(req));
|
|
3595
|
+
if (!reservation) {
|
|
3545
3596
|
throw new HttpError(429, "write_rate_limited", "write_rate_limited");
|
|
3546
3597
|
}
|
|
3598
|
+
this.pendingWriteQuotas.set(req, reservation);
|
|
3547
3599
|
}
|
|
3600
|
+
/** Commit a counted write at the durable boundary; consumes the request's reservation. */
|
|
3548
3601
|
recordWriteRateLimitHit(req) {
|
|
3602
|
+
const pending = req ? this.pendingWriteQuotas.get(req) : void 0;
|
|
3603
|
+
if (pending && req) {
|
|
3604
|
+
this.pendingWriteQuotas.delete(req);
|
|
3605
|
+
pending.commit();
|
|
3606
|
+
return;
|
|
3607
|
+
}
|
|
3549
3608
|
this.writeLimiter.record(this.principalForRateLimit(req));
|
|
3550
3609
|
}
|
|
3610
|
+
/** Release an uncommitted reservation after a rejection, failure, or exempt outcome. */
|
|
3611
|
+
releasePendingWriteQuota(req) {
|
|
3612
|
+
const pending = this.pendingWriteQuotas.get(req);
|
|
3613
|
+
if (!pending) return;
|
|
3614
|
+
this.pendingWriteQuotas.delete(req);
|
|
3615
|
+
pending.release();
|
|
3616
|
+
}
|
|
3551
3617
|
reserveWriteRateLimitSlot(req) {
|
|
3552
3618
|
const reservation = this.writeLimiter.reserve(this.principalForRateLimit(req));
|
|
3553
3619
|
if (!reservation) {
|
|
@@ -3573,4 +3639,4 @@ export {
|
|
|
3573
3639
|
resolveDefaultAdminConsolePublicDir,
|
|
3574
3640
|
EngramAccessHttpServer
|
|
3575
3641
|
};
|
|
3576
|
-
//# sourceMappingURL=chunk-
|
|
3642
|
+
//# sourceMappingURL=chunk-YL4UKMD7.js.map
|