@saihm/shm 0.0.0-stage → 0.38.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/LICENSE +97 -0
- package/NOTICE +12 -0
- package/README.md +114 -2
- package/dist/adapter/epoch.d.ts +4 -0
- package/dist/adapter/epoch.d.ts.map +1 -0
- package/dist/adapter/epoch.js +16 -0
- package/dist/adapter/epoch.js.map +1 -0
- package/dist/adapter/frontmatter.d.ts +19 -0
- package/dist/adapter/frontmatter.d.ts.map +1 -0
- package/dist/adapter/frontmatter.js +95 -0
- package/dist/adapter/frontmatter.js.map +1 -0
- package/dist/adapter/index.d.ts +4 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +4 -0
- package/dist/adapter/index.js.map +1 -0
- package/dist/adapter/markdown_dir_port.d.ts +48 -0
- package/dist/adapter/markdown_dir_port.d.ts.map +1 -0
- package/dist/adapter/markdown_dir_port.js +175 -0
- package/dist/adapter/markdown_dir_port.js.map +1 -0
- package/dist/aggregate/document_aggregation.d.ts +40 -0
- package/dist/aggregate/document_aggregation.d.ts.map +1 -0
- package/dist/aggregate/document_aggregation.js +101 -0
- package/dist/aggregate/document_aggregation.js.map +1 -0
- package/dist/aggregate/index.d.ts +2 -0
- package/dist/aggregate/index.d.ts.map +1 -0
- package/dist/aggregate/index.js +2 -0
- package/dist/aggregate/index.js.map +1 -0
- package/dist/answer/answer_layer.d.ts +33 -0
- package/dist/answer/answer_layer.d.ts.map +1 -0
- package/dist/answer/answer_layer.js +75 -0
- package/dist/answer/answer_layer.js.map +1 -0
- package/dist/answer/caching_body_source.d.ts +42 -0
- package/dist/answer/caching_body_source.d.ts.map +1 -0
- package/dist/answer/caching_body_source.js +120 -0
- package/dist/answer/caching_body_source.js.map +1 -0
- package/dist/answer/claude_cli_backend.d.ts +10 -0
- package/dist/answer/claude_cli_backend.d.ts.map +1 -0
- package/dist/answer/claude_cli_backend.js +60 -0
- package/dist/answer/claude_cli_backend.js.map +1 -0
- package/dist/answer/context.d.ts +6 -0
- package/dist/answer/context.d.ts.map +1 -0
- package/dist/answer/context.js +83 -0
- package/dist/answer/context.js.map +1 -0
- package/dist/answer/corpus_warmer.d.ts +44 -0
- package/dist/answer/corpus_warmer.d.ts.map +1 -0
- package/dist/answer/corpus_warmer.js +80 -0
- package/dist/answer/corpus_warmer.js.map +1 -0
- package/dist/answer/gate.d.ts +3 -0
- package/dist/answer/gate.d.ts.map +1 -0
- package/dist/answer/gate.js +35 -0
- package/dist/answer/gate.js.map +1 -0
- package/dist/answer/index.d.ts +20 -0
- package/dist/answer/index.d.ts.map +1 -0
- package/dist/answer/index.js +11 -0
- package/dist/answer/index.js.map +1 -0
- package/dist/answer/own_cell_body_source.d.ts +34 -0
- package/dist/answer/own_cell_body_source.d.ts.map +1 -0
- package/dist/answer/own_cell_body_source.js +66 -0
- package/dist/answer/own_cell_body_source.js.map +1 -0
- package/dist/answer/persistent_body_source.d.ts +50 -0
- package/dist/answer/persistent_body_source.d.ts.map +1 -0
- package/dist/answer/persistent_body_source.js +173 -0
- package/dist/answer/persistent_body_source.js.map +1 -0
- package/dist/answer/saihm_body_source.d.ts +27 -0
- package/dist/answer/saihm_body_source.d.ts.map +1 -0
- package/dist/answer/saihm_body_source.js +88 -0
- package/dist/answer/saihm_body_source.js.map +1 -0
- package/dist/answer/structured_answerer.d.ts +23 -0
- package/dist/answer/structured_answerer.d.ts.map +1 -0
- package/dist/answer/structured_answerer.js +103 -0
- package/dist/answer/structured_answerer.js.map +1 -0
- package/dist/answer/supersede.d.ts +12 -0
- package/dist/answer/supersede.d.ts.map +1 -0
- package/dist/answer/supersede.js +27 -0
- package/dist/answer/supersede.js.map +1 -0
- package/dist/answer/types.d.ts +53 -0
- package/dist/answer/types.d.ts.map +1 -0
- package/dist/answer/types.js +2 -0
- package/dist/answer/types.js.map +1 -0
- package/dist/assemble/brief.d.ts +83 -0
- package/dist/assemble/brief.d.ts.map +1 -0
- package/dist/assemble/brief.js +312 -0
- package/dist/assemble/brief.js.map +1 -0
- package/dist/assemble/index.d.ts +4 -0
- package/dist/assemble/index.d.ts.map +1 -0
- package/dist/assemble/index.js +4 -0
- package/dist/assemble/index.js.map +1 -0
- package/dist/assemble/posture.d.ts +23 -0
- package/dist/assemble/posture.d.ts.map +1 -0
- package/dist/assemble/posture.js +68 -0
- package/dist/assemble/posture.js.map +1 -0
- package/dist/assemble/thread.d.ts +53 -0
- package/dist/assemble/thread.d.ts.map +1 -0
- package/dist/assemble/thread.js +122 -0
- package/dist/assemble/thread.js.map +1 -0
- package/dist/attention/index.d.ts +5 -0
- package/dist/attention/index.d.ts.map +1 -0
- package/dist/attention/index.js +3 -0
- package/dist/attention/index.js.map +1 -0
- package/dist/attention/obligations.d.ts +23 -0
- package/dist/attention/obligations.d.ts.map +1 -0
- package/dist/attention/obligations.js +110 -0
- package/dist/attention/obligations.js.map +1 -0
- package/dist/attention/queue.d.ts +38 -0
- package/dist/attention/queue.d.ts.map +1 -0
- package/dist/attention/queue.js +102 -0
- package/dist/attention/queue.js.map +1 -0
- package/dist/claim/index.d.ts +23 -0
- package/dist/claim/index.d.ts.map +1 -0
- package/dist/claim/index.js +57 -0
- package/dist/claim/index.js.map +1 -0
- package/dist/claim/withdrawn.d.ts +17 -0
- package/dist/claim/withdrawn.d.ts.map +1 -0
- package/dist/claim/withdrawn.js +41 -0
- package/dist/claim/withdrawn.js.map +1 -0
- package/dist/compliance/index.d.ts +3 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +3 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/report.d.ts +123 -0
- package/dist/compliance/report.d.ts.map +1 -0
- package/dist/compliance/report.js +295 -0
- package/dist/compliance/report.js.map +1 -0
- package/dist/compliance/trail.d.ts +180 -0
- package/dist/compliance/trail.d.ts.map +1 -0
- package/dist/compliance/trail.js +130 -0
- package/dist/compliance/trail.js.map +1 -0
- package/dist/consolidate/body_redundancy.d.ts +54 -0
- package/dist/consolidate/body_redundancy.d.ts.map +1 -0
- package/dist/consolidate/body_redundancy.js +150 -0
- package/dist/consolidate/body_redundancy.js.map +1 -0
- package/dist/consolidate/consolidator.d.ts +62 -0
- package/dist/consolidate/consolidator.d.ts.map +1 -0
- package/dist/consolidate/consolidator.js +260 -0
- package/dist/consolidate/consolidator.js.map +1 -0
- package/dist/consolidate/index.d.ts +4 -0
- package/dist/consolidate/index.d.ts.map +1 -0
- package/dist/consolidate/index.js +4 -0
- package/dist/consolidate/index.js.map +1 -0
- package/dist/consolidate/index_guard.d.ts +63 -0
- package/dist/consolidate/index_guard.d.ts.map +1 -0
- package/dist/consolidate/index_guard.js +212 -0
- package/dist/consolidate/index_guard.js.map +1 -0
- package/dist/coordination/identity.d.ts +39 -0
- package/dist/coordination/identity.d.ts.map +1 -0
- package/dist/coordination/identity.js +97 -0
- package/dist/coordination/identity.js.map +1 -0
- package/dist/coordination/inbound.d.ts +41 -0
- package/dist/coordination/inbound.d.ts.map +1 -0
- package/dist/coordination/inbound.js +119 -0
- package/dist/coordination/inbound.js.map +1 -0
- package/dist/coordination/index.d.ts +12 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +7 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/note_lineage.d.ts +50 -0
- package/dist/coordination/note_lineage.d.ts.map +1 -0
- package/dist/coordination/note_lineage.js +132 -0
- package/dist/coordination/note_lineage.js.map +1 -0
- package/dist/coordination/outbound.d.ts +33 -0
- package/dist/coordination/outbound.d.ts.map +1 -0
- package/dist/coordination/outbound.js +69 -0
- package/dist/coordination/outbound.js.map +1 -0
- package/dist/coordination/share_states.d.ts +178 -0
- package/dist/coordination/share_states.d.ts.map +1 -0
- package/dist/coordination/share_states.js +864 -0
- package/dist/coordination/share_states.js.map +1 -0
- package/dist/coordination/untrusted_text.d.ts +3 -0
- package/dist/coordination/untrusted_text.d.ts.map +1 -0
- package/dist/coordination/untrusted_text.js +21 -0
- package/dist/coordination/untrusted_text.js.map +1 -0
- package/dist/deref/dereference.d.ts +68 -0
- package/dist/deref/dereference.d.ts.map +1 -0
- package/dist/deref/dereference.js +199 -0
- package/dist/deref/dereference.js.map +1 -0
- package/dist/deref/index.d.ts +3 -0
- package/dist/deref/index.d.ts.map +1 -0
- package/dist/deref/index.js +3 -0
- package/dist/deref/index.js.map +1 -0
- package/dist/deref/policy.d.ts +76 -0
- package/dist/deref/policy.d.ts.map +1 -0
- package/dist/deref/policy.js +281 -0
- package/dist/deref/policy.js.map +1 -0
- package/dist/derived/checkpoint.d.ts +22 -0
- package/dist/derived/checkpoint.d.ts.map +1 -0
- package/dist/derived/checkpoint.js +92 -0
- package/dist/derived/checkpoint.js.map +1 -0
- package/dist/derived/codec.d.ts +26 -0
- package/dist/derived/codec.d.ts.map +1 -0
- package/dist/derived/codec.js +116 -0
- package/dist/derived/codec.js.map +1 -0
- package/dist/derived/cycle.d.ts +96 -0
- package/dist/derived/cycle.d.ts.map +1 -0
- package/dist/derived/cycle.js +199 -0
- package/dist/derived/cycle.js.map +1 -0
- package/dist/derived/index.d.ts +7 -0
- package/dist/derived/index.d.ts.map +1 -0
- package/dist/derived/index.js +7 -0
- package/dist/derived/index.js.map +1 -0
- package/dist/derived/ledger.d.ts +54 -0
- package/dist/derived/ledger.d.ts.map +1 -0
- package/dist/derived/ledger.js +123 -0
- package/dist/derived/ledger.js.map +1 -0
- package/dist/derived/lineage_index.d.ts +17 -0
- package/dist/derived/lineage_index.d.ts.map +1 -0
- package/dist/derived/lineage_index.js +51 -0
- package/dist/derived/lineage_index.js.map +1 -0
- package/dist/derived/store.d.ts +92 -0
- package/dist/derived/store.d.ts.map +1 -0
- package/dist/derived/store.js +230 -0
- package/dist/derived/store.js.map +1 -0
- package/dist/embed/index.d.ts +5 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +4 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/local_minilm.d.ts +9 -0
- package/dist/embed/local_minilm.d.ts.map +1 -0
- package/dist/embed/local_minilm.js +31 -0
- package/dist/embed/local_minilm.js.map +1 -0
- package/dist/embed/remote_http.d.ts +26 -0
- package/dist/embed/remote_http.d.ts.map +1 -0
- package/dist/embed/remote_http.js +40 -0
- package/dist/embed/remote_http.js.map +1 -0
- package/dist/embed/router.d.ts +16 -0
- package/dist/embed/router.d.ts.map +1 -0
- package/dist/embed/router.js +47 -0
- package/dist/embed/router.js.map +1 -0
- package/dist/embed/types.d.ts +23 -0
- package/dist/embed/types.d.ts.map +1 -0
- package/dist/embed/types.js +2 -0
- package/dist/embed/types.js.map +1 -0
- package/dist/entitlement/entitlement.d.ts +24 -0
- package/dist/entitlement/entitlement.d.ts.map +1 -0
- package/dist/entitlement/entitlement.js +78 -0
- package/dist/entitlement/entitlement.js.map +1 -0
- package/dist/entitlement/index.d.ts +2 -0
- package/dist/entitlement/index.d.ts.map +1 -0
- package/dist/entitlement/index.js +2 -0
- package/dist/entitlement/index.js.map +1 -0
- package/dist/erasure/bus.d.ts +18 -0
- package/dist/erasure/bus.d.ts.map +1 -0
- package/dist/erasure/bus.js +56 -0
- package/dist/erasure/bus.js.map +1 -0
- package/dist/erasure/changes_feed.d.ts +125 -0
- package/dist/erasure/changes_feed.d.ts.map +1 -0
- package/dist/erasure/changes_feed.js +252 -0
- package/dist/erasure/changes_feed.js.map +1 -0
- package/dist/erasure/changes_reader.d.ts +44 -0
- package/dist/erasure/changes_reader.d.ts.map +1 -0
- package/dist/erasure/changes_reader.js +184 -0
- package/dist/erasure/changes_reader.js.map +1 -0
- package/dist/erasure/feed_watcher.d.ts +140 -0
- package/dist/erasure/feed_watcher.d.ts.map +1 -0
- package/dist/erasure/feed_watcher.js +418 -0
- package/dist/erasure/feed_watcher.js.map +1 -0
- package/dist/erasure/index.d.ts +15 -0
- package/dist/erasure/index.d.ts.map +1 -0
- package/dist/erasure/index.js +8 -0
- package/dist/erasure/index.js.map +1 -0
- package/dist/erasure/index_watcher.d.ts +28 -0
- package/dist/erasure/index_watcher.d.ts.map +1 -0
- package/dist/erasure/index_watcher.js +87 -0
- package/dist/erasure/index_watcher.js.map +1 -0
- package/dist/erasure/reconcile.d.ts +72 -0
- package/dist/erasure/reconcile.d.ts.map +1 -0
- package/dist/erasure/reconcile.js +125 -0
- package/dist/erasure/reconcile.js.map +1 -0
- package/dist/erasure/withheld_store.d.ts +30 -0
- package/dist/erasure/withheld_store.d.ts.map +1 -0
- package/dist/erasure/withheld_store.js +91 -0
- package/dist/erasure/withheld_store.js.map +1 -0
- package/dist/fleet/index.d.ts +2 -0
- package/dist/fleet/index.d.ts.map +1 -0
- package/dist/fleet/index.js +2 -0
- package/dist/fleet/index.js.map +1 -0
- package/dist/fleet/knowledge.d.ts +74 -0
- package/dist/fleet/knowledge.d.ts.map +1 -0
- package/dist/fleet/knowledge.js +178 -0
- package/dist/fleet/knowledge.js.map +1 -0
- package/dist/gate/index.d.ts +5 -0
- package/dist/gate/index.d.ts.map +1 -0
- package/dist/gate/index.js +3 -0
- package/dist/gate/index.js.map +1 -0
- package/dist/gate/scope.d.ts +21 -0
- package/dist/gate/scope.d.ts.map +1 -0
- package/dist/gate/scope.js +40 -0
- package/dist/gate/scope.js.map +1 -0
- package/dist/gate/symmetry.d.ts +55 -0
- package/dist/gate/symmetry.d.ts.map +1 -0
- package/dist/gate/symmetry.js +162 -0
- package/dist/gate/symmetry.js.map +1 -0
- package/dist/history/answerable.d.ts +51 -0
- package/dist/history/answerable.d.ts.map +1 -0
- package/dist/history/answerable.js +112 -0
- package/dist/history/answerable.js.map +1 -0
- package/dist/history/index.d.ts +2 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +2 -0
- package/dist/history/index.js.map +1 -0
- package/dist/host/adapter.d.ts +69 -0
- package/dist/host/adapter.d.ts.map +1 -0
- package/dist/host/adapter.js +159 -0
- package/dist/host/adapter.js.map +1 -0
- package/dist/host/cli.d.ts +3 -0
- package/dist/host/cli.d.ts.map +1 -0
- package/dist/host/cli.js +44 -0
- package/dist/host/cli.js.map +1 -0
- package/dist/host/client.d.ts +22 -0
- package/dist/host/client.d.ts.map +1 -0
- package/dist/host/client.js +135 -0
- package/dist/host/client.js.map +1 -0
- package/dist/host/compaction.d.ts +16 -0
- package/dist/host/compaction.d.ts.map +1 -0
- package/dist/host/compaction.js +89 -0
- package/dist/host/compaction.js.map +1 -0
- package/dist/host/event.d.ts +22 -0
- package/dist/host/event.d.ts.map +1 -0
- package/dist/host/event.js +47 -0
- package/dist/host/event.js.map +1 -0
- package/dist/host/index.d.ts +10 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +10 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/reply.d.ts +11 -0
- package/dist/host/reply.d.ts.map +1 -0
- package/dist/host/reply.js +24 -0
- package/dist/host/reply.js.map +1 -0
- package/dist/host/session_brief.d.ts +80 -0
- package/dist/host/session_brief.d.ts.map +1 -0
- package/dist/host/session_brief.js +294 -0
- package/dist/host/session_brief.js.map +1 -0
- package/dist/host/session_start_event.d.ts +12 -0
- package/dist/host/session_start_event.d.ts.map +1 -0
- package/dist/host/session_start_event.js +35 -0
- package/dist/host/session_start_event.js.map +1 -0
- package/dist/host/sessions.d.ts +8 -0
- package/dist/host/sessions.d.ts.map +1 -0
- package/dist/host/sessions.js +32 -0
- package/dist/host/sessions.js.map +1 -0
- package/dist/host/socket_path.d.ts +3 -0
- package/dist/host/socket_path.d.ts.map +1 -0
- package/dist/host/socket_path.js +14 -0
- package/dist/host/socket_path.js.map +1 -0
- package/dist/inbound/index.d.ts +8 -0
- package/dist/inbound/index.d.ts.map +1 -0
- package/dist/inbound/index.js +5 -0
- package/dist/inbound/index.js.map +1 -0
- package/dist/index.d.ts +108 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/index.d.ts +13 -0
- package/dist/ingest/index.d.ts.map +1 -0
- package/dist/ingest/index.js +146 -0
- package/dist/ingest/index.js.map +1 -0
- package/dist/ingest/parse.d.ts +20 -0
- package/dist/ingest/parse.d.ts.map +1 -0
- package/dist/ingest/parse.js +141 -0
- package/dist/ingest/parse.js.map +1 -0
- package/dist/ingest/resolve_prefix.d.ts +19 -0
- package/dist/ingest/resolve_prefix.d.ts.map +1 -0
- package/dist/ingest/resolve_prefix.js +63 -0
- package/dist/ingest/resolve_prefix.js.map +1 -0
- package/dist/ingest/types.d.ts +47 -0
- package/dist/ingest/types.d.ts.map +1 -0
- package/dist/ingest/types.js +2 -0
- package/dist/ingest/types.js.map +1 -0
- package/dist/inject/action_cue.d.ts +11 -0
- package/dist/inject/action_cue.d.ts.map +1 -0
- package/dist/inject/action_cue.js +49 -0
- package/dist/inject/action_cue.js.map +1 -0
- package/dist/inject/index.d.ts +11 -0
- package/dist/inject/index.d.ts.map +1 -0
- package/dist/inject/index.js +6 -0
- package/dist/inject/index.js.map +1 -0
- package/dist/inject/novelty.d.ts +19 -0
- package/dist/inject/novelty.d.ts.map +1 -0
- package/dist/inject/novelty.js +34 -0
- package/dist/inject/novelty.js.map +1 -0
- package/dist/inject/outcome.d.ts +20 -0
- package/dist/inject/outcome.d.ts.map +1 -0
- package/dist/inject/outcome.js +26 -0
- package/dist/inject/outcome.js.map +1 -0
- package/dist/inject/population.d.ts +6 -0
- package/dist/inject/population.d.ts.map +1 -0
- package/dist/inject/population.js +23 -0
- package/dist/inject/population.js.map +1 -0
- package/dist/inject/proactive_injector.d.ts +56 -0
- package/dist/inject/proactive_injector.d.ts.map +1 -0
- package/dist/inject/proactive_injector.js +153 -0
- package/dist/inject/proactive_injector.js.map +1 -0
- package/dist/inject/token_estimate.d.ts +3 -0
- package/dist/inject/token_estimate.d.ts.map +1 -0
- package/dist/inject/token_estimate.js +2 -0
- package/dist/inject/token_estimate.js.map +1 -0
- package/dist/inject/window.d.ts +6 -0
- package/dist/inject/window.d.ts.map +1 -0
- package/dist/inject/window.js +10 -0
- package/dist/inject/window.js.map +1 -0
- package/dist/modes/behaviour_modes.d.ts +21 -0
- package/dist/modes/behaviour_modes.d.ts.map +1 -0
- package/dist/modes/behaviour_modes.js +137 -0
- package/dist/modes/behaviour_modes.js.map +1 -0
- package/dist/policy/index.d.ts +2 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +2 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/store_policy.d.ts +47 -0
- package/dist/policy/store_policy.d.ts.map +1 -0
- package/dist/policy/store_policy.js +125 -0
- package/dist/policy/store_policy.js.map +1 -0
- package/dist/profile/index.d.ts +5 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/profile/index.js +3 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/profile/lever_profile.d.ts +27 -0
- package/dist/profile/lever_profile.d.ts.map +1 -0
- package/dist/profile/lever_profile.js +55 -0
- package/dist/profile/lever_profile.js.map +1 -0
- package/dist/profile/production.d.ts +12 -0
- package/dist/profile/production.d.ts.map +1 -0
- package/dist/profile/production.js +13 -0
- package/dist/profile/production.js.map +1 -0
- package/dist/provenance/build_fingerprint.d.ts +9 -0
- package/dist/provenance/build_fingerprint.d.ts.map +1 -0
- package/dist/provenance/build_fingerprint.js +47 -0
- package/dist/provenance/build_fingerprint.js.map +1 -0
- package/dist/provenance/derived_number.d.ts +33 -0
- package/dist/provenance/derived_number.d.ts.map +1 -0
- package/dist/provenance/derived_number.js +52 -0
- package/dist/provenance/derived_number.js.map +1 -0
- package/dist/provenance/index.d.ts +7 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +4 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/live_state.d.ts +49 -0
- package/dist/provenance/live_state.d.ts.map +1 -0
- package/dist/provenance/live_state.js +141 -0
- package/dist/provenance/live_state.js.map +1 -0
- package/dist/rerank/cross_encoder.d.ts +14 -0
- package/dist/rerank/cross_encoder.d.ts.map +1 -0
- package/dist/rerank/cross_encoder.js +40 -0
- package/dist/rerank/cross_encoder.js.map +1 -0
- package/dist/rerank/identity.d.ts +6 -0
- package/dist/rerank/identity.d.ts.map +1 -0
- package/dist/rerank/identity.js +7 -0
- package/dist/rerank/identity.js.map +1 -0
- package/dist/rerank/index.d.ts +8 -0
- package/dist/rerank/index.d.ts.map +1 -0
- package/dist/rerank/index.js +5 -0
- package/dist/rerank/index.js.map +1 -0
- package/dist/rerank/reranking_retriever.d.ts +20 -0
- package/dist/rerank/reranking_retriever.d.ts.map +1 -0
- package/dist/rerank/reranking_retriever.js +38 -0
- package/dist/rerank/reranking_retriever.js.map +1 -0
- package/dist/rerank/reranking_select.d.ts +33 -0
- package/dist/rerank/reranking_select.d.ts.map +1 -0
- package/dist/rerank/reranking_select.js +116 -0
- package/dist/rerank/reranking_select.js.map +1 -0
- package/dist/rerank/types.d.ts +9 -0
- package/dist/rerank/types.d.ts.map +1 -0
- package/dist/rerank/types.js +2 -0
- package/dist/rerank/types.js.map +1 -0
- package/dist/resume/index.d.ts +3 -0
- package/dist/resume/index.d.ts.map +1 -0
- package/dist/resume/index.js +2 -0
- package/dist/resume/index.js.map +1 -0
- package/dist/resume/resume.d.ts +33 -0
- package/dist/resume/resume.d.ts.map +1 -0
- package/dist/resume/resume.js +86 -0
- package/dist/resume/resume.js.map +1 -0
- package/dist/retrieval/hnsw_store.d.ts +37 -0
- package/dist/retrieval/hnsw_store.d.ts.map +1 -0
- package/dist/retrieval/hnsw_store.js +284 -0
- package/dist/retrieval/hnsw_store.js.map +1 -0
- package/dist/retrieval/label_text.d.ts +2 -0
- package/dist/retrieval/label_text.d.ts.map +1 -0
- package/dist/retrieval/label_text.js +7 -0
- package/dist/retrieval/label_text.js.map +1 -0
- package/dist/retrieval/link_graph.d.ts +38 -0
- package/dist/retrieval/link_graph.d.ts.map +1 -0
- package/dist/retrieval/link_graph.js +118 -0
- package/dist/retrieval/link_graph.js.map +1 -0
- package/dist/retrieval/query_expansion.d.ts +18 -0
- package/dist/retrieval/query_expansion.d.ts.map +1 -0
- package/dist/retrieval/query_expansion.js +55 -0
- package/dist/retrieval/query_expansion.js.map +1 -0
- package/dist/retrieval/scope.d.ts +36 -0
- package/dist/retrieval/scope.d.ts.map +1 -0
- package/dist/retrieval/scope.js +120 -0
- package/dist/retrieval/scope.js.map +1 -0
- package/dist/retrieval/semantic.d.ts +136 -0
- package/dist/retrieval/semantic.d.ts.map +1 -0
- package/dist/retrieval/semantic.js +490 -0
- package/dist/retrieval/semantic.js.map +1 -0
- package/dist/retrieval/session_closed.d.ts +5 -0
- package/dist/retrieval/session_closed.d.ts.map +1 -0
- package/dist/retrieval/session_closed.js +8 -0
- package/dist/retrieval/session_closed.js.map +1 -0
- package/dist/retrieval/thread_lifecycle.d.ts +68 -0
- package/dist/retrieval/thread_lifecycle.d.ts.map +1 -0
- package/dist/retrieval/thread_lifecycle.js +201 -0
- package/dist/retrieval/thread_lifecycle.js.map +1 -0
- package/dist/retrieval/vector_store.d.ts +22 -0
- package/dist/retrieval/vector_store.d.ts.map +1 -0
- package/dist/retrieval/vector_store.js +41 -0
- package/dist/retrieval/vector_store.js.map +1 -0
- package/dist/retrieval/version_supersession.d.ts +13 -0
- package/dist/retrieval/version_supersession.d.ts.map +1 -0
- package/dist/retrieval/version_supersession.js +97 -0
- package/dist/retrieval/version_supersession.js.map +1 -0
- package/dist/saihm_client/federated_port.d.ts +30 -0
- package/dist/saihm_client/federated_port.d.ts.map +1 -0
- package/dist/saihm_client/federated_port.js +99 -0
- package/dist/saihm_client/federated_port.js.map +1 -0
- package/dist/saihm_client/in_memory_port.d.ts +35 -0
- package/dist/saihm_client/in_memory_port.d.ts.map +1 -0
- package/dist/saihm_client/in_memory_port.js +100 -0
- package/dist/saihm_client/in_memory_port.js.map +1 -0
- package/dist/saihm_client/index.d.ts +12 -0
- package/dist/saihm_client/index.d.ts.map +1 -0
- package/dist/saihm_client/index.js +8 -0
- package/dist/saihm_client/index.js.map +1 -0
- package/dist/saihm_client/mcp_client.d.ts +38 -0
- package/dist/saihm_client/mcp_client.d.ts.map +1 -0
- package/dist/saihm_client/mcp_client.js +266 -0
- package/dist/saihm_client/mcp_client.js.map +1 -0
- package/dist/saihm_client/server_features.d.ts +112 -0
- package/dist/saihm_client/server_features.d.ts.map +1 -0
- package/dist/saihm_client/server_features.js +415 -0
- package/dist/saihm_client/server_features.js.map +1 -0
- package/dist/saihm_client/share_guard.d.ts +9 -0
- package/dist/saihm_client/share_guard.d.ts.map +1 -0
- package/dist/saihm_client/share_guard.js +53 -0
- package/dist/saihm_client/share_guard.js.map +1 -0
- package/dist/saihm_client/timing.d.ts +100 -0
- package/dist/saihm_client/timing.d.ts.map +1 -0
- package/dist/saihm_client/timing.js +250 -0
- package/dist/saihm_client/timing.js.map +1 -0
- package/dist/saihm_client/types.d.ts +108 -0
- package/dist/saihm_client/types.d.ts.map +1 -0
- package/dist/saihm_client/types.js +19 -0
- package/dist/saihm_client/types.js.map +1 -0
- package/dist/service/handlers.d.ts +91 -0
- package/dist/service/handlers.d.ts.map +1 -0
- package/dist/service/handlers.js +173 -0
- package/dist/service/handlers.js.map +1 -0
- package/dist/service/http.d.ts +27 -0
- package/dist/service/http.d.ts.map +1 -0
- package/dist/service/http.js +261 -0
- package/dist/service/http.js.map +1 -0
- package/dist/service/index.d.ts +5 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +5 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/resident.d.ts +50 -0
- package/dist/service/resident.d.ts.map +1 -0
- package/dist/service/resident.js +162 -0
- package/dist/service/resident.js.map +1 -0
- package/dist/service/service_level.d.ts +36 -0
- package/dist/service/service_level.d.ts.map +1 -0
- package/dist/service/service_level.js +65 -0
- package/dist/service/service_level.js.map +1 -0
- package/dist/session/change_feed.d.ts +82 -0
- package/dist/session/change_feed.d.ts.map +1 -0
- package/dist/session/change_feed.js +203 -0
- package/dist/session/change_feed.js.map +1 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +4 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/memory_session.d.ts +426 -0
- package/dist/session/memory_session.d.ts.map +1 -0
- package/dist/session/memory_session.js +1183 -0
- package/dist/session/memory_session.js.map +1 -0
- package/dist/standing/content_fingerprint.d.ts +28 -0
- package/dist/standing/content_fingerprint.d.ts.map +1 -0
- package/dist/standing/content_fingerprint.js +95 -0
- package/dist/standing/content_fingerprint.js.map +1 -0
- package/dist/standing/standing_answers.d.ts +44 -0
- package/dist/standing/standing_answers.d.ts.map +1 -0
- package/dist/standing/standing_answers.js +72 -0
- package/dist/standing/standing_answers.js.map +1 -0
- package/dist/standing/standing_store.d.ts +44 -0
- package/dist/standing/standing_store.d.ts.map +1 -0
- package/dist/standing/standing_store.js +238 -0
- package/dist/standing/standing_store.js.map +1 -0
- package/dist/standing/surface.d.ts +20 -0
- package/dist/standing/surface.d.ts.map +1 -0
- package/dist/standing/surface.js +74 -0
- package/dist/standing/surface.js.map +1 -0
- package/dist/store/atomic_write.d.ts +7 -0
- package/dist/store/atomic_write.d.ts.map +1 -0
- package/dist/store/atomic_write.js +23 -0
- package/dist/store/atomic_write.js.map +1 -0
- package/dist/store/body_store.d.ts +42 -0
- package/dist/store/body_store.d.ts.map +1 -0
- package/dist/store/body_store.js +252 -0
- package/dist/store/body_store.js.map +1 -0
- package/dist/store/encrypted_store.d.ts +21 -0
- package/dist/store/encrypted_store.d.ts.map +1 -0
- package/dist/store/encrypted_store.js +266 -0
- package/dist/store/encrypted_store.js.map +1 -0
- package/dist/store/index.d.ts +21 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +11 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/index_snapshot.d.ts +15 -0
- package/dist/store/index_snapshot.d.ts.map +1 -0
- package/dist/store/index_snapshot.js +126 -0
- package/dist/store/index_snapshot.js.map +1 -0
- package/dist/store/mcp_warm_start.d.ts +93 -0
- package/dist/store/mcp_warm_start.d.ts.map +1 -0
- package/dist/store/mcp_warm_start.js +406 -0
- package/dist/store/mcp_warm_start.js.map +1 -0
- package/dist/store/require_dir.d.ts +2 -0
- package/dist/store/require_dir.d.ts.map +1 -0
- package/dist/store/require_dir.js +9 -0
- package/dist/store/require_dir.js.map +1 -0
- package/dist/store/snapshot_format.d.ts +43 -0
- package/dist/store/snapshot_format.d.ts.map +1 -0
- package/dist/store/snapshot_format.js +119 -0
- package/dist/store/snapshot_format.js.map +1 -0
- package/dist/store/state_dir.d.ts +19 -0
- package/dist/store/state_dir.d.ts.map +1 -0
- package/dist/store/state_dir.js +42 -0
- package/dist/store/state_dir.js.map +1 -0
- package/dist/store/types.d.ts +37 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +11 -0
- package/dist/store/types.js.map +1 -0
- package/dist/store/warm_index.d.ts +68 -0
- package/dist/store/warm_index.d.ts.map +1 -0
- package/dist/store/warm_index.js +279 -0
- package/dist/store/warm_index.js.map +1 -0
- package/dist/store/warm_start.d.ts +57 -0
- package/dist/store/warm_start.d.ts.map +1 -0
- package/dist/store/warm_start.js +68 -0
- package/dist/store/warm_start.js.map +1 -0
- package/dist/store/writer_lock.d.ts +34 -0
- package/dist/store/writer_lock.d.ts.map +1 -0
- package/dist/store/writer_lock.js +169 -0
- package/dist/store/writer_lock.js.map +1 -0
- package/dist/tiers/index.d.ts +2 -0
- package/dist/tiers/index.d.ts.map +1 -0
- package/dist/tiers/index.js +2 -0
- package/dist/tiers/index.js.map +1 -0
- package/dist/tiers/membership.d.ts +48 -0
- package/dist/tiers/membership.d.ts.map +1 -0
- package/dist/tiers/membership.js +85 -0
- package/dist/tiers/membership.js.map +1 -0
- package/dist/tuning/holdout.d.ts +54 -0
- package/dist/tuning/holdout.d.ts.map +1 -0
- package/dist/tuning/holdout.js +231 -0
- package/dist/tuning/holdout.js.map +1 -0
- package/dist/tuning/index.d.ts +7 -0
- package/dist/tuning/index.d.ts.map +1 -0
- package/dist/tuning/index.js +4 -0
- package/dist/tuning/index.js.map +1 -0
- package/dist/tuning/lever_stack.d.ts +27 -0
- package/dist/tuning/lever_stack.d.ts.map +1 -0
- package/dist/tuning/lever_stack.js +76 -0
- package/dist/tuning/lever_stack.js.map +1 -0
- package/dist/tuning/paired.d.ts +22 -0
- package/dist/tuning/paired.d.ts.map +1 -0
- package/dist/tuning/paired.js +74 -0
- package/dist/tuning/paired.js.map +1 -0
- package/dist/util/concurrency.d.ts +2 -0
- package/dist/util/concurrency.d.ts.map +1 -0
- package/dist/util/concurrency.js +19 -0
- package/dist/util/concurrency.js.map +1 -0
- package/package.json +140 -4
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { SaihmPort, ShareRecipient, ShareScope } from "../saihm_client/types.js";
|
|
2
|
+
import type { ErasureListener } from "../erasure/bus.js";
|
|
3
|
+
import { type FingerprintLookup, type StandingVerdict } from "../standing/standing_answers.js";
|
|
4
|
+
import { type DerivedItem, type DerivedKind } from "./codec.js";
|
|
5
|
+
import type { MintedLedger, MintedRecord } from "./ledger.js";
|
|
6
|
+
import { type ResolvedPolicy } from "../policy/store_policy.js";
|
|
7
|
+
export interface CommitInput {
|
|
8
|
+
readonly kind: DerivedKind;
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly text: string;
|
|
11
|
+
readonly sources: readonly string[];
|
|
12
|
+
readonly nowEpoch: number;
|
|
13
|
+
readonly supersedesDerived?: readonly string[];
|
|
14
|
+
readonly threads?: readonly string[];
|
|
15
|
+
readonly retire?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface CommitReceipt {
|
|
18
|
+
readonly cellId: string;
|
|
19
|
+
readonly item: DerivedItem;
|
|
20
|
+
readonly shared?: boolean;
|
|
21
|
+
readonly shareError?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface CascadeReport {
|
|
24
|
+
readonly erased: string;
|
|
25
|
+
readonly forgotten: readonly string[];
|
|
26
|
+
readonly refused: readonly {
|
|
27
|
+
readonly cellId: string;
|
|
28
|
+
readonly reason: string;
|
|
29
|
+
}[];
|
|
30
|
+
readonly failed: readonly {
|
|
31
|
+
readonly cellId: string;
|
|
32
|
+
readonly error: string;
|
|
33
|
+
}[];
|
|
34
|
+
readonly notAttested: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
export interface AttestationRetryReport {
|
|
37
|
+
readonly attested: readonly string[];
|
|
38
|
+
readonly pending: readonly {
|
|
39
|
+
readonly cellId: string;
|
|
40
|
+
readonly reason: string;
|
|
41
|
+
}[];
|
|
42
|
+
readonly notFound: readonly string[];
|
|
43
|
+
readonly failed: readonly {
|
|
44
|
+
readonly cellId: string;
|
|
45
|
+
readonly error: string;
|
|
46
|
+
}[];
|
|
47
|
+
readonly refused: readonly {
|
|
48
|
+
readonly cellId: string;
|
|
49
|
+
readonly reason: string;
|
|
50
|
+
}[];
|
|
51
|
+
}
|
|
52
|
+
export interface SaihmDerivedStoreOptions {
|
|
53
|
+
readonly issuer: string;
|
|
54
|
+
readonly fingerprintOf: FingerprintLookup;
|
|
55
|
+
readonly organization?: {
|
|
56
|
+
readonly recipient: ShareRecipient;
|
|
57
|
+
readonly scope?: ShareScope;
|
|
58
|
+
};
|
|
59
|
+
readonly onCascade?: (report: CascadeReport) => void;
|
|
60
|
+
readonly policy?: () => ResolvedPolicy;
|
|
61
|
+
}
|
|
62
|
+
export declare class SaihmDerivedStore {
|
|
63
|
+
private readonly port;
|
|
64
|
+
private readonly ledger;
|
|
65
|
+
private readonly issuer;
|
|
66
|
+
private readonly fingerprintOf;
|
|
67
|
+
private readonly org;
|
|
68
|
+
private readonly onCascadeObs;
|
|
69
|
+
private readonly policyOf;
|
|
70
|
+
lastCascade: CascadeReport | undefined;
|
|
71
|
+
lastRetry: AttestationRetryReport | undefined;
|
|
72
|
+
private retryChain;
|
|
73
|
+
constructor(port: SaihmPort, ledger: MintedLedger, opts: SaihmDerivedStoreOptions);
|
|
74
|
+
commit(input: CommitInput): Promise<CommitReceipt>;
|
|
75
|
+
shareToOrg(cellId: string): Promise<{
|
|
76
|
+
ok: true;
|
|
77
|
+
} | {
|
|
78
|
+
ok: false;
|
|
79
|
+
error: string;
|
|
80
|
+
}>;
|
|
81
|
+
verify(cellId: string, fingerprintOf?: FingerprintLookup): Promise<StandingVerdict | undefined>;
|
|
82
|
+
read(cellId: string): Promise<DerivedItem | undefined>;
|
|
83
|
+
readonly onSourceErased: ErasureListener;
|
|
84
|
+
readonly cascade: (erased: string) => Promise<CascadeReport>;
|
|
85
|
+
retryUnattested(): Promise<AttestationRetryReport>;
|
|
86
|
+
pendingAttestation(): Promise<readonly string[]>;
|
|
87
|
+
private runRetry;
|
|
88
|
+
readonly lineageOf: (cellId: string) => readonly string[] | undefined;
|
|
89
|
+
readonly retirements: () => ReadonlyMap<string, string>;
|
|
90
|
+
list(): Promise<readonly MintedRecord[]>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/derived/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { verifyStandingAnswer } from "../standing/standing_answers.js";
|
|
2
|
+
import { encodeDerivedCell, isDerivedLabel, parseDerivedCell } from "./codec.js";
|
|
3
|
+
import { assertWriteAllowed } from "../policy/store_policy.js";
|
|
4
|
+
export class SaihmDerivedStore {
|
|
5
|
+
port;
|
|
6
|
+
ledger;
|
|
7
|
+
issuer;
|
|
8
|
+
fingerprintOf;
|
|
9
|
+
org;
|
|
10
|
+
onCascadeObs;
|
|
11
|
+
policyOf;
|
|
12
|
+
lastCascade;
|
|
13
|
+
lastRetry;
|
|
14
|
+
retryChain = Promise.resolve();
|
|
15
|
+
constructor(port, ledger, opts) {
|
|
16
|
+
this.port = port;
|
|
17
|
+
this.ledger = ledger;
|
|
18
|
+
if (!/^[0-9a-f]{64}$/.test(opts.issuer))
|
|
19
|
+
throw new Error("SaihmDerivedStore: issuer must be a 64-hex agentIdHash");
|
|
20
|
+
this.issuer = opts.issuer;
|
|
21
|
+
this.fingerprintOf = opts.fingerprintOf;
|
|
22
|
+
this.org = opts.organization;
|
|
23
|
+
this.onCascadeObs = opts.onCascade;
|
|
24
|
+
this.policyOf = opts.policy;
|
|
25
|
+
}
|
|
26
|
+
async commit(input) {
|
|
27
|
+
if (this.policyOf !== undefined)
|
|
28
|
+
assertWriteAllowed(this.policyOf(), this.org !== undefined ? "central" : "saihm", "commit");
|
|
29
|
+
const index = await this.port.readIndex();
|
|
30
|
+
const live = new Map(index.filter((e) => !e.forgotten).map((e) => [e.cellId, e]));
|
|
31
|
+
const sources = [];
|
|
32
|
+
for (const cellId of input.sources) {
|
|
33
|
+
const minted = await this.ledger.get(cellId);
|
|
34
|
+
if (minted !== undefined && minted.forgotten !== undefined)
|
|
35
|
+
throw new Error(`commit refused: source ${cellId.slice(0, 12)}… is a derived cell that has been erased`);
|
|
36
|
+
if (!live.has(cellId))
|
|
37
|
+
throw new Error(`commit refused: source ${cellId.slice(0, 12)}… is not a live cell in this port's index`);
|
|
38
|
+
let fp;
|
|
39
|
+
try {
|
|
40
|
+
fp = this.fingerprintOf(cellId);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
fp = undefined;
|
|
44
|
+
}
|
|
45
|
+
if (fp === undefined)
|
|
46
|
+
throw new Error(`commit refused: source ${cellId.slice(0, 12)}… cannot be fingerprinted now — an item that cannot be verified later must not be minted`);
|
|
47
|
+
sources.push({ cellId, fingerprint: fp });
|
|
48
|
+
}
|
|
49
|
+
const ownership = this.org !== undefined ? "org-shared" : "agent";
|
|
50
|
+
const item = {
|
|
51
|
+
kind: input.kind,
|
|
52
|
+
issuer: this.issuer,
|
|
53
|
+
sources,
|
|
54
|
+
derivedAtEpoch: input.nowEpoch,
|
|
55
|
+
ownership,
|
|
56
|
+
...(input.supersedesDerived !== undefined ? { supersedesDerived: input.supersedesDerived } : {}),
|
|
57
|
+
...(input.threads !== undefined ? { threads: input.threads } : {}),
|
|
58
|
+
...(input.retire === true && sources.length > 0 ? { retires: sources.map((s) => s.cellId) } : {}),
|
|
59
|
+
label: input.label,
|
|
60
|
+
text: input.text,
|
|
61
|
+
};
|
|
62
|
+
const content = encodeDerivedCell(item);
|
|
63
|
+
const receipt = await this.port.remember(content);
|
|
64
|
+
const rec = {
|
|
65
|
+
...(input.threads !== undefined && input.threads.length > 0 ? { threads: input.threads } : {}),
|
|
66
|
+
cellId: receipt.cellId, kind: item.kind, sources, derivedAtEpoch: input.nowEpoch, ownership,
|
|
67
|
+
...(item.retires !== undefined ? { retires: item.retires } : {}),
|
|
68
|
+
};
|
|
69
|
+
await this.ledger.add(rec);
|
|
70
|
+
if (this.org === undefined)
|
|
71
|
+
return { cellId: receipt.cellId, item };
|
|
72
|
+
const shared = await this.shareToOrg(receipt.cellId);
|
|
73
|
+
return { cellId: receipt.cellId, item, shared: shared.ok, ...(shared.ok ? {} : { shareError: shared.error }) };
|
|
74
|
+
}
|
|
75
|
+
async shareToOrg(cellId) {
|
|
76
|
+
if (this.org === undefined)
|
|
77
|
+
return { ok: false, error: "no organization recipient configured" };
|
|
78
|
+
const rec = await this.ledger.get(cellId);
|
|
79
|
+
if (rec === undefined)
|
|
80
|
+
return { ok: false, error: "not an own-minted cell" };
|
|
81
|
+
try {
|
|
82
|
+
await this.port.share(cellId, this.org.recipient, this.org.scope ?? "read");
|
|
83
|
+
await this.ledger.setShareError(cellId, undefined);
|
|
84
|
+
return { ok: true };
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
const error = e.message;
|
|
88
|
+
await this.ledger.setShareError(cellId, error);
|
|
89
|
+
return { ok: false, error };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async verify(cellId, fingerprintOf = this.fingerprintOf) {
|
|
93
|
+
const rec = await this.ledger.get(cellId);
|
|
94
|
+
if (rec === undefined)
|
|
95
|
+
return undefined;
|
|
96
|
+
return verifyStandingAnswer({ question: "", answer: "", evidence: rec.sources, writtenAtEpoch: rec.derivedAtEpoch }, fingerprintOf);
|
|
97
|
+
}
|
|
98
|
+
async read(cellId) {
|
|
99
|
+
const entry = (await this.port.readIndex()).find((e) => e.cellId === cellId && !e.forgotten);
|
|
100
|
+
if (entry === undefined)
|
|
101
|
+
return undefined;
|
|
102
|
+
const bodies = await this.port.recallByQuery(entry.label.slice(0, 80));
|
|
103
|
+
const body = bodies.find((b) => b.cellId === cellId);
|
|
104
|
+
return body === undefined ? undefined : parseDerivedCell(body.plaintext);
|
|
105
|
+
}
|
|
106
|
+
onSourceErased = async (erased) => {
|
|
107
|
+
await this.cascade(erased);
|
|
108
|
+
};
|
|
109
|
+
cascade = async (erased) => {
|
|
110
|
+
const forgotten = [];
|
|
111
|
+
const refused = [];
|
|
112
|
+
const failed = [];
|
|
113
|
+
const notAttested = [];
|
|
114
|
+
const queue = [erased];
|
|
115
|
+
const visited = new Set();
|
|
116
|
+
while (queue.length > 0) {
|
|
117
|
+
const src = queue.shift();
|
|
118
|
+
if (visited.has(src))
|
|
119
|
+
continue;
|
|
120
|
+
visited.add(src);
|
|
121
|
+
const citing = await this.ledger.citing(src);
|
|
122
|
+
if (citing.length === 0)
|
|
123
|
+
continue;
|
|
124
|
+
const index = await this.port.readIndex();
|
|
125
|
+
const labelOf = new Map(index.map((e) => [e.cellId, { label: e.label, forgotten: e.forgotten }]));
|
|
126
|
+
for (const rec of citing) {
|
|
127
|
+
const entry = labelOf.get(rec.cellId);
|
|
128
|
+
if (entry === undefined || entry.forgotten) {
|
|
129
|
+
await this.ledger.markForgotten(rec.cellId, rec.derivedAtEpoch, `already absent when cascading from ${erased.slice(0, 12)}…`);
|
|
130
|
+
queue.push(rec.cellId);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
if (!isDerivedLabel(entry.label)) {
|
|
134
|
+
refused.push({ cellId: rec.cellId, reason: "ledger names it but its index label is not SHM-derived — not forgotten" });
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const receipt = await this.port.forget(rec.cellId);
|
|
139
|
+
const unattested = receipt !== undefined && receipt.complete === false && receipt.reason === "not-attested";
|
|
140
|
+
await this.ledger.markForgotten(rec.cellId, rec.derivedAtEpoch, `cascade from ${erased.slice(0, 12)}…`, unattested ? { state: "pending", tries: 1 } : undefined);
|
|
141
|
+
forgotten.push(rec.cellId);
|
|
142
|
+
if (unattested)
|
|
143
|
+
notAttested.push(rec.cellId);
|
|
144
|
+
queue.push(rec.cellId);
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
failed.push({ cellId: rec.cellId, error: e.message });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const report = { erased, forgotten, refused, failed, notAttested };
|
|
152
|
+
this.lastCascade = report;
|
|
153
|
+
try {
|
|
154
|
+
this.onCascadeObs?.(report);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
}
|
|
158
|
+
if (failed.length > 0) {
|
|
159
|
+
throw new AggregateError(failed.map((f) => new Error(`${f.cellId.slice(0, 12)}…: ${f.error}`)), `derived cascade from ${erased.slice(0, 12)}…: ${failed.length} forget(s) FAILED — erasure duty not discharged`);
|
|
160
|
+
}
|
|
161
|
+
return report;
|
|
162
|
+
};
|
|
163
|
+
async retryUnattested() {
|
|
164
|
+
const run = this.retryChain.then(() => this.runRetry());
|
|
165
|
+
this.retryChain = run.catch(() => { });
|
|
166
|
+
return run;
|
|
167
|
+
}
|
|
168
|
+
async pendingAttestation() {
|
|
169
|
+
return (await this.ledger.all()).filter(isPending).map((r) => r.cellId);
|
|
170
|
+
}
|
|
171
|
+
async runRetry() {
|
|
172
|
+
const attested = [];
|
|
173
|
+
const pending = [];
|
|
174
|
+
const notFound = [];
|
|
175
|
+
const failed = [];
|
|
176
|
+
const refused = [];
|
|
177
|
+
const records = (await this.ledger.all()).filter(isPending);
|
|
178
|
+
let entryOf;
|
|
179
|
+
if (records.length > 0) {
|
|
180
|
+
try {
|
|
181
|
+
entryOf = new Map((await this.port.readIndex()).map((e) => [e.cellId, { label: e.label, forgotten: e.forgotten }]));
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
const error = `the index could not be read, so guard 2 could not be checked: ${e.message}`;
|
|
185
|
+
for (const rec of records)
|
|
186
|
+
failed.push({ cellId: rec.cellId, error });
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
for (const rec of entryOf === undefined ? [] : records) {
|
|
190
|
+
const entry = entryOf.get(rec.cellId);
|
|
191
|
+
if (entry !== undefined && !entry.forgotten && !isDerivedLabel(entry.label)) {
|
|
192
|
+
refused.push({ cellId: rec.cellId, reason: "the ledger names it but its index label is not SHM-derived — not forgotten" });
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const tries = rec.attestation.tries + 1;
|
|
196
|
+
try {
|
|
197
|
+
const receipt = await this.port.forget(rec.cellId);
|
|
198
|
+
let next;
|
|
199
|
+
if (receipt !== undefined && receipt.complete === true)
|
|
200
|
+
next = { state: "attested", tries };
|
|
201
|
+
else if (receipt !== undefined && receipt.complete === false && receipt.reason === "not-found")
|
|
202
|
+
next = { state: "not-found", tries };
|
|
203
|
+
else
|
|
204
|
+
next = { state: "pending", tries };
|
|
205
|
+
await this.ledger.setAttestation(rec.cellId, next);
|
|
206
|
+
if (next.state === "attested")
|
|
207
|
+
attested.push(rec.cellId);
|
|
208
|
+
else if (next.state === "not-found")
|
|
209
|
+
notFound.push(rec.cellId);
|
|
210
|
+
else
|
|
211
|
+
pending.push({ cellId: rec.cellId, reason: receipt?.reason ?? "unstated" });
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
failed.push({ cellId: rec.cellId, error: e.message });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const report = { attested, pending, notFound, failed, refused };
|
|
218
|
+
this.lastRetry = report;
|
|
219
|
+
return report;
|
|
220
|
+
}
|
|
221
|
+
lineageOf = (cellId) => this.ledger.lineageOf(cellId);
|
|
222
|
+
retirements = () => this.ledger.retirements();
|
|
223
|
+
async list() {
|
|
224
|
+
return (await this.ledger.all()).filter((r) => r.forgotten === undefined);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function isPending(r) {
|
|
228
|
+
return r.forgotten !== undefined && r.attestation?.state === "pending";
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/derived/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { Embedder, EmbedResult, EmbeddedVector, Embeddable, SensitivityConfig, } from "./types.js";
|
|
2
|
+
export { LocalMiniLmEmbedder } from "./local_minilm.js";
|
|
3
|
+
export { RemoteHttpEmbedder, type RemoteHttpConfig, type FetchLike } from "./remote_http.js";
|
|
4
|
+
export { SensitivityRouter, needsReembed } from "./router.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAyC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Embedder, EmbedResult } from "./types.js";
|
|
2
|
+
export declare class LocalMiniLmEmbedder implements Embedder {
|
|
3
|
+
readonly modelId = "Xenova/all-MiniLM-L6-v2";
|
|
4
|
+
readonly dim = 384;
|
|
5
|
+
private extractor;
|
|
6
|
+
private pipe;
|
|
7
|
+
embed(texts: readonly string[]): Promise<EmbedResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=local_minilm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_minilm.d.ts","sourceRoot":"","sources":["../../src/embed/local_minilm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,QAAQ,CAAC,OAAO,6BAA6B;IAC7C,QAAQ,CAAC,GAAG,OAAO;IACnB,OAAO,CAAC,SAAS,CAAuE;YAE1E,IAAI;IAQZ,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CAoB5D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class LocalMiniLmEmbedder {
|
|
2
|
+
modelId = "Xenova/all-MiniLM-L6-v2";
|
|
3
|
+
dim = 384;
|
|
4
|
+
extractor = null;
|
|
5
|
+
async pipe() {
|
|
6
|
+
if (this.extractor)
|
|
7
|
+
return this.extractor;
|
|
8
|
+
const { pipeline } = await import("@xenova/transformers");
|
|
9
|
+
const extractor = await pipeline("feature-extraction", this.modelId);
|
|
10
|
+
this.extractor = extractor;
|
|
11
|
+
return this.extractor;
|
|
12
|
+
}
|
|
13
|
+
async embed(texts) {
|
|
14
|
+
if (texts.length === 0)
|
|
15
|
+
return { vectors: [], modelId: this.modelId, dim: this.dim };
|
|
16
|
+
const extractor = await this.pipe();
|
|
17
|
+
const vectors = [];
|
|
18
|
+
for (const text of texts) {
|
|
19
|
+
const out = (await extractor([text], { pooling: "mean", normalize: true }));
|
|
20
|
+
const rows = out.tolist();
|
|
21
|
+
const row = rows[0];
|
|
22
|
+
if (rows.length !== 1 || !row) {
|
|
23
|
+
throw new Error(`local_minilm: expected exactly 1 row for 1 input, got ${rows.length} (model=${this.modelId})`);
|
|
24
|
+
}
|
|
25
|
+
vectors.push(Float32Array.from(row));
|
|
26
|
+
}
|
|
27
|
+
const dim = vectors[0]?.length ?? this.dim;
|
|
28
|
+
return { vectors, modelId: this.modelId, dim };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=local_minilm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_minilm.js","sourceRoot":"","sources":["../../src/embed/local_minilm.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACrB,OAAO,GAAG,yBAAyB,CAAC;IACpC,GAAG,GAAG,GAAG,CAAC;IACX,SAAS,GAAkE,IAAI,CAAC;IAEhF,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,SAA4E,CAAC;QAC9F,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACrF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAEzE,CAAC;YACF,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,yDAAyD,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,OAAO,GAAG,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Embedder, EmbedResult } from "./types.js";
|
|
2
|
+
export type FetchLike = (url: string, init: {
|
|
3
|
+
method: string;
|
|
4
|
+
headers: Record<string, string>;
|
|
5
|
+
body: string;
|
|
6
|
+
}) => Promise<{
|
|
7
|
+
ok: boolean;
|
|
8
|
+
status: number;
|
|
9
|
+
json(): Promise<unknown>;
|
|
10
|
+
}>;
|
|
11
|
+
export interface RemoteHttpConfig {
|
|
12
|
+
readonly endpoint: string;
|
|
13
|
+
readonly modelId: string;
|
|
14
|
+
readonly dim: number;
|
|
15
|
+
readonly apiKey?: string;
|
|
16
|
+
readonly fetchImpl?: FetchLike;
|
|
17
|
+
}
|
|
18
|
+
export declare class RemoteHttpEmbedder implements Embedder {
|
|
19
|
+
readonly modelId: string;
|
|
20
|
+
readonly dim: number;
|
|
21
|
+
private readonly cfg;
|
|
22
|
+
private readonly doFetch;
|
|
23
|
+
constructor(cfg: RemoteHttpConfig);
|
|
24
|
+
embed(texts: readonly string[]): Promise<EmbedResult>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=remote_http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote_http.d.ts","sourceRoot":"","sources":["../../src/embed/remote_http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACpE,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;gBAExB,GAAG,EAAE,gBAAgB;IAO3B,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CA0B5D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class RemoteHttpEmbedder {
|
|
2
|
+
modelId;
|
|
3
|
+
dim;
|
|
4
|
+
cfg;
|
|
5
|
+
doFetch;
|
|
6
|
+
constructor(cfg) {
|
|
7
|
+
this.cfg = cfg;
|
|
8
|
+
this.modelId = cfg.modelId;
|
|
9
|
+
this.dim = cfg.dim;
|
|
10
|
+
this.doFetch = cfg.fetchImpl ?? globalThis.fetch;
|
|
11
|
+
}
|
|
12
|
+
async embed(texts) {
|
|
13
|
+
if (texts.length === 0)
|
|
14
|
+
return { vectors: [], modelId: this.modelId, dim: this.dim };
|
|
15
|
+
const headers = { "content-type": "application/json" };
|
|
16
|
+
if (this.cfg.apiKey)
|
|
17
|
+
headers["authorization"] = `Bearer ${this.cfg.apiKey}`;
|
|
18
|
+
const res = await this.doFetch(this.cfg.endpoint, {
|
|
19
|
+
method: "POST",
|
|
20
|
+
headers,
|
|
21
|
+
body: JSON.stringify({ input: [...texts], model: this.modelId }),
|
|
22
|
+
});
|
|
23
|
+
if (!res.ok)
|
|
24
|
+
throw new Error(`remote embed failed: HTTP ${res.status}`);
|
|
25
|
+
const json = (await res.json());
|
|
26
|
+
const data = json.data;
|
|
27
|
+
if (!Array.isArray(data) || data.length !== texts.length) {
|
|
28
|
+
throw new Error("remote embed: response shape/count mismatch (fail-closed)");
|
|
29
|
+
}
|
|
30
|
+
const vectors = data.map((d, i) => {
|
|
31
|
+
const e = d.embedding;
|
|
32
|
+
if (!Array.isArray(e) || e.length !== this.dim) {
|
|
33
|
+
throw new Error(`remote embed: vector ${i} dim mismatch (expected ${this.dim})`);
|
|
34
|
+
}
|
|
35
|
+
return Float32Array.from(e);
|
|
36
|
+
});
|
|
37
|
+
return { vectors, modelId: this.modelId, dim: this.dim };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=remote_http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote_http.js","sourceRoot":"","sources":["../../src/embed/remote_http.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,kBAAkB;IACpB,OAAO,CAAS;IAChB,GAAG,CAAS;IACJ,GAAG,CAAmB;IACtB,OAAO,CAAY;IAEpC,YAAY,GAAqB;QAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,IAAK,UAAU,CAAC,KAA8B,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACrF,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAE5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SACjE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8C,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,2BAA2B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAa,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Embeddable, EmbeddedVector, Embedder, SensitivityConfig } from "./types.js";
|
|
2
|
+
export declare class SensitivityRouter {
|
|
3
|
+
private readonly local;
|
|
4
|
+
private readonly remote;
|
|
5
|
+
private readonly allow;
|
|
6
|
+
constructor(opts: {
|
|
7
|
+
local: Embedder;
|
|
8
|
+
remote?: Embedder;
|
|
9
|
+
config?: SensitivityConfig;
|
|
10
|
+
});
|
|
11
|
+
routesRemote(namespace: string): boolean;
|
|
12
|
+
embedRecords(items: readonly Embeddable[]): Promise<EmbeddedVector[]>;
|
|
13
|
+
private embedGroup;
|
|
14
|
+
}
|
|
15
|
+
export declare function needsReembed(v: EmbeddedVector, target: Embedder): boolean;
|
|
16
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/embed/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE1F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;gBAEhC,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;KAAE;IAMpF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAqB7D,UAAU;CAezB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEzE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export class SensitivityRouter {
|
|
2
|
+
local;
|
|
3
|
+
remote;
|
|
4
|
+
allow;
|
|
5
|
+
constructor(opts) {
|
|
6
|
+
this.local = opts.local;
|
|
7
|
+
this.remote = opts.remote;
|
|
8
|
+
this.allow = opts.config?.allowRemoteNamespaces ?? new Set();
|
|
9
|
+
}
|
|
10
|
+
routesRemote(namespace) {
|
|
11
|
+
return this.remote !== undefined && this.allow.has(namespace);
|
|
12
|
+
}
|
|
13
|
+
async embedRecords(items) {
|
|
14
|
+
const out = new Array(items.length).fill(undefined);
|
|
15
|
+
const localIdx = [];
|
|
16
|
+
const remoteIdx = [];
|
|
17
|
+
items.forEach((it, i) => (this.routesRemote(it.namespace) ? remoteIdx : localIdx).push(i));
|
|
18
|
+
await this.embedGroup(items, localIdx, this.local, out);
|
|
19
|
+
if (this.remote && remoteIdx.length > 0) {
|
|
20
|
+
await this.embedGroup(items, remoteIdx, this.remote, out);
|
|
21
|
+
}
|
|
22
|
+
const result = [];
|
|
23
|
+
for (let i = 0; i < out.length; i++) {
|
|
24
|
+
const v = out[i];
|
|
25
|
+
if (!v)
|
|
26
|
+
throw new Error(`embed routing left index ${i} unfilled (fail-closed)`);
|
|
27
|
+
result.push(v);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
async embedGroup(items, idx, backend, out) {
|
|
32
|
+
if (idx.length === 0)
|
|
33
|
+
return;
|
|
34
|
+
const texts = idx.map((i) => items[i].text);
|
|
35
|
+
const res = await backend.embed(texts);
|
|
36
|
+
idx.forEach((origIdx, k) => {
|
|
37
|
+
const vec = res.vectors[k];
|
|
38
|
+
if (!vec)
|
|
39
|
+
throw new Error("embed backend returned fewer vectors than inputs (fail-closed)");
|
|
40
|
+
out[origIdx] = { vector: vec, modelId: res.modelId, dim: res.dim };
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function needsReembed(v, target) {
|
|
45
|
+
return v.modelId !== target.modelId || v.dim !== target.dim;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/embed/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface EmbedResult {
|
|
2
|
+
readonly vectors: readonly Float32Array[];
|
|
3
|
+
readonly modelId: string;
|
|
4
|
+
readonly dim: number;
|
|
5
|
+
}
|
|
6
|
+
export interface Embedder {
|
|
7
|
+
readonly modelId: string;
|
|
8
|
+
readonly dim: number;
|
|
9
|
+
embed(texts: readonly string[]): Promise<EmbedResult>;
|
|
10
|
+
}
|
|
11
|
+
export interface EmbeddedVector {
|
|
12
|
+
readonly vector: Float32Array;
|
|
13
|
+
readonly modelId: string;
|
|
14
|
+
readonly dim: number;
|
|
15
|
+
}
|
|
16
|
+
export interface Embeddable {
|
|
17
|
+
readonly text: string;
|
|
18
|
+
readonly namespace: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SensitivityConfig {
|
|
21
|
+
readonly allowRemoteNamespaces?: ReadonlySet<string>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/embed/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/embed/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const PAID_SUBSCRIPTION_TIERS: readonly string[];
|
|
2
|
+
export declare function isPaidSubscriptionTier(tier: unknown): tier is string;
|
|
3
|
+
export interface SubscriptionSource {
|
|
4
|
+
status(): Promise<unknown>;
|
|
5
|
+
}
|
|
6
|
+
export type EntitlementRefusal = "no-source" | "status-failed" | "status-timeout" | "unpaid-tier" | "unknown-tier";
|
|
7
|
+
export declare class EntitlementError extends Error {
|
|
8
|
+
readonly code: EntitlementRefusal;
|
|
9
|
+
readonly tier: string | undefined;
|
|
10
|
+
readonly cause?: unknown;
|
|
11
|
+
constructor(code: EntitlementRefusal, message: string, tier?: string, cause?: unknown);
|
|
12
|
+
}
|
|
13
|
+
export interface Entitlement {
|
|
14
|
+
readonly tier: string;
|
|
15
|
+
readonly checkedAt: string;
|
|
16
|
+
readonly status?: Readonly<Record<string, unknown>>;
|
|
17
|
+
}
|
|
18
|
+
export interface CheckEntitlementOptions {
|
|
19
|
+
readonly timeoutMs?: number;
|
|
20
|
+
readonly now?: () => Date;
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_ENTITLEMENT_TIMEOUT_MS = 15000;
|
|
23
|
+
export declare function checkEntitlement(source: SubscriptionSource | undefined, opts?: CheckEntitlementOptions): Promise<Entitlement>;
|
|
24
|
+
//# sourceMappingURL=entitlement.d.ts.map
|