infinity-context 0.1.0__py3-none-any.whl
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.
- infinity_context-0.1.0.dist-info/METADATA +239 -0
- infinity_context-0.1.0.dist-info/RECORD +1053 -0
- infinity_context-0.1.0.dist-info/WHEEL +5 -0
- infinity_context-0.1.0.dist-info/entry_points.txt +9 -0
- infinity_context-0.1.0.dist-info/licenses/LICENSE +201 -0
- infinity_context-0.1.0.dist-info/top_level.txt +8 -0
- infinity_context_adapters/__init__.py +1 -0
- infinity_context_adapters/cognee/__init__.py +5 -0
- infinity_context_adapters/cognee/adapter.py +364 -0
- infinity_context_adapters/embeddings/__init__.py +6 -0
- infinity_context_adapters/embeddings/noop_adapter.py +5 -0
- infinity_context_adapters/embeddings/openai_adapter.py +104 -0
- infinity_context_adapters/extraction/__init__.py +41 -0
- infinity_context_adapters/extraction/content.py +828 -0
- infinity_context_adapters/extraction/docling_engine.py +255 -0
- infinity_context_adapters/extraction/document_normalization.py +434 -0
- infinity_context_adapters/extraction/factory.py +69 -0
- infinity_context_adapters/extraction/fallback_context.py +137 -0
- infinity_context_adapters/extraction/file_detection.py +378 -0
- infinity_context_adapters/extraction/image_evidence.py +319 -0
- infinity_context_adapters/extraction/media_tools.py +579 -0
- infinity_context_adapters/extraction/openai_json.py +356 -0
- infinity_context_adapters/extraction/openai_vision.py +722 -0
- infinity_context_adapters/extraction/prompts/__init__.py +1 -0
- infinity_context_adapters/extraction/prompts/semantic_memory_v1.md +20 -0
- infinity_context_adapters/extraction/schemas/__init__.py +1 -0
- infinity_context_adapters/extraction/schemas/semantic_memory_v1.json +62 -0
- infinity_context_adapters/extraction/transcription/__init__.py +11 -0
- infinity_context_adapters/extraction/transcription/openai_adapter.py +400 -0
- infinity_context_adapters/extraction/transcription_engine.py +544 -0
- infinity_context_adapters/extraction/video_evidence.py +129 -0
- infinity_context_adapters/extraction/whisper_engine.py +386 -0
- infinity_context_adapters/features/__init__.py +7 -0
- infinity_context_adapters/features/context_building/__init__.py +53 -0
- infinity_context_adapters/features/context_building/candidate_provider_chain.py +68 -0
- infinity_context_adapters/features/context_building/graphiti_candidate_provider.py +44 -0
- infinity_context_adapters/features/context_building/in_memory_candidate_provider.py +62 -0
- infinity_context_adapters/features/context_building/postgres_candidate_provider.py +44 -0
- infinity_context_adapters/features/context_building/qdrant_candidate_provider.py +44 -0
- infinity_context_adapters/features/context_building/query_request.py +99 -0
- infinity_context_adapters/features/context_building/records.py +113 -0
- infinity_context_adapters/features/document_ingestion/__init__.py +74 -0
- infinity_context_adapters/features/document_ingestion/composition.py +69 -0
- infinity_context_adapters/features/document_ingestion/extraction_adapter.py +114 -0
- infinity_context_adapters/features/document_ingestion/in_memory_chunk_index.py +67 -0
- infinity_context_adapters/features/document_ingestion/in_memory_document_store.py +176 -0
- infinity_context_adapters/features/document_ingestion/postgres_document_store.py +110 -0
- infinity_context_adapters/features/document_ingestion/qdrant_chunk_index.py +49 -0
- infinity_context_adapters/features/document_ingestion/records.py +88 -0
- infinity_context_adapters/features/memory_facts/__init__.py +53 -0
- infinity_context_adapters/features/memory_facts/graphiti_fact_projection.py +111 -0
- infinity_context_adapters/features/memory_facts/in_memory_fact_store.py +200 -0
- infinity_context_adapters/features/memory_facts/postgres_fact_store.py +126 -0
- infinity_context_adapters/features/memory_facts/qdrant_fact_projection.py +100 -0
- infinity_context_adapters/features/memory_scopes/__init__.py +44 -0
- infinity_context_adapters/features/memory_scopes/in_memory_scope_store.py +189 -0
- infinity_context_adapters/features/memory_scopes/postgres_scope_store.py +121 -0
- infinity_context_adapters/features/memory_scopes/records.py +86 -0
- infinity_context_adapters/graphiti/__init__.py +5 -0
- infinity_context_adapters/graphiti/adapter.py +613 -0
- infinity_context_adapters/graphiti/identity_evidence.py +711 -0
- infinity_context_adapters/graphiti/scope_identity.py +31 -0
- infinity_context_adapters/local_blob.py +101 -0
- infinity_context_adapters/noop/__init__.py +16 -0
- infinity_context_adapters/noop/adapters.py +156 -0
- infinity_context_adapters/noop/runtime.py +21 -0
- infinity_context_adapters/postgres/__init__.py +19 -0
- infinity_context_adapters/postgres/asset_mappers.py +348 -0
- infinity_context_adapters/postgres/asset_repositories.py +865 -0
- infinity_context_adapters/postgres/benchmark_projection_schema.py +241 -0
- infinity_context_adapters/postgres/benchmark_run_completion.py +645 -0
- infinity_context_adapters/postgres/benchmark_run_repositories.py +908 -0
- infinity_context_adapters/postgres/benchmark_writer_fence.py +139 -0
- infinity_context_adapters/postgres/canonical_keyword_trigram.py +31 -0
- infinity_context_adapters/postgres/canonical_retrieval_batching.py +388 -0
- infinity_context_adapters/postgres/fact_repositories.py +766 -0
- infinity_context_adapters/postgres/mappers.py +745 -0
- infinity_context_adapters/postgres/migrations/0001_core_facts.sql +95 -0
- infinity_context_adapters/postgres/migrations/0002_threads_documents_chunks.sql +97 -0
- infinity_context_adapters/postgres/migrations/0003_suggestions.sql +24 -0
- infinity_context_adapters/postgres/migrations/0004_service_tokens.sql +16 -0
- infinity_context_adapters/postgres/migrations/0005_data_classification_lite.sql +8 -0
- infinity_context_adapters/postgres/migrations/0006_service_token_usage_metadata.sql +5 -0
- infinity_context_adapters/postgres/migrations/0007_service_token_permissions.sql +2 -0
- infinity_context_adapters/postgres/migrations/0008_service_token_memory_scope.sql +2 -0
- infinity_context_adapters/postgres/migrations/0009_outbox_lifecycle_hardening.sql +15 -0
- infinity_context_adapters/postgres/migrations/0010_fact_taxonomy.sql +14 -0
- infinity_context_adapters/postgres/migrations/0011_asset_extractions.sql +66 -0
- infinity_context_adapters/postgres/migrations/0012_asset_extraction_execution_hardening.sql +20 -0
- infinity_context_adapters/postgres/migrations/0012_usage_governance.sql +33 -0
- infinity_context_adapters/postgres/migrations/0013_context_link_suggestions.sql +44 -0
- infinity_context_adapters/postgres/migrations/0014_memory_anchors.sql +26 -0
- infinity_context_adapters/postgres/migrations/0015_users_acl.sql +36 -0
- infinity_context_adapters/postgres/migrations/0016_managed_benchmark_runs.sql +27 -0
- infinity_context_adapters/postgres/migrations/0017_managed_benchmark_writer_fence.sql +104 -0
- infinity_context_adapters/postgres/migrations/0018_benchmark_projection_manifest.sql +51 -0
- infinity_context_adapters/postgres/migrations/0019_managed_benchmark_sealed_fence.sql +131 -0
- infinity_context_adapters/postgres/migrations/0020_benchmark_cleanup_completion.sql +219 -0
- infinity_context_adapters/postgres/migrations/0021_benchmark_unsealed_abort.sql +64 -0
- infinity_context_adapters/postgres/migrations/0022_canonical_keyword_trigram.sql +5 -0
- infinity_context_adapters/postgres/models.py +878 -0
- infinity_context_adapters/postgres/projection_fence.py +80 -0
- infinity_context_adapters/postgres/repositories.py +906 -0
- infinity_context_adapters/postgres/repository_helpers.py +115 -0
- infinity_context_adapters/postgres/scope_repositories.py +540 -0
- infinity_context_adapters/postgres/unit_of_work.py +785 -0
- infinity_context_adapters/postgres/usage_repositories.py +128 -0
- infinity_context_adapters/postgres/user_repositories.py +164 -0
- infinity_context_adapters/provider_errors.py +73 -0
- infinity_context_adapters/qdrant/__init__.py +5 -0
- infinity_context_adapters/qdrant/identity_evidence.py +504 -0
- infinity_context_adapters/qdrant/vector_adapter.py +718 -0
- infinity_context_adapters/s3_blob.py +242 -0
- infinity_context_cli/__init__.py +5 -0
- infinity_context_cli/__main__.py +6 -0
- infinity_context_cli/cli.py +964 -0
- infinity_context_cli/config.py +184 -0
- infinity_context_cli/doctor.py +397 -0
- infinity_context_cli/local_experience.py +250 -0
- infinity_context_cli/mcp_config.py +124 -0
- infinity_context_cli/onboarding.py +542 -0
- infinity_context_cli/runtime.py +179 -0
- infinity_context_contracts/__init__.py +16 -0
- infinity_context_contracts/_json.py +32 -0
- infinity_context_contracts/capabilities.py +67 -0
- infinity_context_contracts/common.py +54 -0
- infinity_context_contracts/features/__init__.py +12 -0
- infinity_context_contracts/features/context_building.py +248 -0
- infinity_context_contracts/features/document_ingestion.py +277 -0
- infinity_context_contracts/features/memory_facts.py +236 -0
- infinity_context_contracts/features/memory_scopes.py +329 -0
- infinity_context_contracts/health.py +23 -0
- infinity_context_core/__init__.py +76 -0
- infinity_context_core/agent_behavior_contract.py +72 -0
- infinity_context_core/application/__init__.py +580 -0
- infinity_context_core/application/anchor_creative_work_filters.py +148 -0
- infinity_context_core/application/anchor_event_extraction.py +1571 -0
- infinity_context_core/application/anchor_extraction.py +1144 -0
- infinity_context_core/application/anchor_identity_normalization.py +90 -0
- infinity_context_core/application/anchor_relation_projection.py +203 -0
- infinity_context_core/application/anchor_temporal_window.py +172 -0
- infinity_context_core/application/asset_extraction_mapping.py +236 -0
- infinity_context_core/application/asset_upload_policy.py +952 -0
- infinity_context_core/application/auto_apply.py +72 -0
- infinity_context_core/application/auto_memory.py +527 -0
- infinity_context_core/application/capture_policy.py +61 -0
- infinity_context_core/application/chunker.py +93 -0
- infinity_context_core/application/context_action_role_evidence.py +890 -0
- infinity_context_core/application/context_action_role_labels.py +176 -0
- infinity_context_core/application/context_action_roles.py +2365 -0
- infinity_context_core/application/context_action_subject_policy.py +71 -0
- infinity_context_core/application/context_activity_companion.py +120 -0
- infinity_context_core/application/context_activity_duration_rerank.py +118 -0
- infinity_context_core/application/context_activity_participant_grounding.py +87 -0
- infinity_context_core/application/context_aggregation_answer_slots.py +586 -0
- infinity_context_core/application/context_aggregation_evidence_text.py +409 -0
- infinity_context_core/application/context_aggregation_rerank.py +145 -0
- infinity_context_core/application/context_aggregation_subject.py +137 -0
- infinity_context_core/application/context_allergy_condition_inference.py +146 -0
- infinity_context_core/application/context_anchor_identity.py +157 -0
- infinity_context_core/application/context_anchor_intent_ranking.py +84 -0
- infinity_context_core/application/context_anchor_relations.py +67 -0
- infinity_context_core/application/context_anchors.py +393 -0
- infinity_context_core/application/context_answer_evidence_types.py +14 -0
- infinity_context_core/application/context_answer_unit_shapes.py +207 -0
- infinity_context_core/application/context_artifact_evidence.py +893 -0
- infinity_context_core/application/context_attribution_lexicon.py +254 -0
- infinity_context_core/application/context_awareness_cause_rerank.py +109 -0
- infinity_context_core/application/context_baby_birth_evidence.py +91 -0
- infinity_context_core/application/context_birdwatching_schedule_rerank.py +130 -0
- infinity_context_core/application/context_bm25_ranking.py +450 -0
- infinity_context_core/application/context_book_author_preference_exact_turns.py +110 -0
- infinity_context_core/application/context_building_legacy_candidate_adapter.py +530 -0
- infinity_context_core/application/context_canonical_fact_retrieval.py +409 -0
- infinity_context_core/application/context_causal_reason_rerank.py +145 -0
- infinity_context_core/application/context_choice_reason_rerank.py +109 -0
- infinity_context_core/application/context_collectors.py +931 -0
- infinity_context_core/application/context_commonality_rerank.py +428 -0
- infinity_context_core/application/context_community_membership_inference.py +139 -0
- infinity_context_core/application/context_competition_count_exact_turns.py +383 -0
- infinity_context_core/application/context_conflicting_evidence_rerank.py +282 -0
- infinity_context_core/application/context_conversation_counterparty.py +260 -0
- infinity_context_core/application/context_count_cardinality.py +164 -0
- infinity_context_core/application/context_creative_work_count_exact_turns.py +517 -0
- infinity_context_core/application/context_diagnostics.py +55 -0
- infinity_context_core/application/context_diagnostics_bundle_keys.py +433 -0
- infinity_context_core/application/context_diagnostics_bundle_projection.py +711 -0
- infinity_context_core/application/context_diagnostics_item_projection.py +410 -0
- infinity_context_core/application/context_diagnostics_primitives.py +131 -0
- infinity_context_core/application/context_diagnostics_ranking.py +143 -0
- infinity_context_core/application/context_diagnostics_signals.py +209 -0
- infinity_context_core/application/context_diagnostics_sources.py +82 -0
- infinity_context_core/application/context_dialogue_authority.py +382 -0
- infinity_context_core/application/context_distinct_set_evidence.py +994 -0
- infinity_context_core/application/context_distinct_set_selection.py +335 -0
- infinity_context_core/application/context_domain_rerank_apply.py +310 -0
- infinity_context_core/application/context_domain_rerank_signals.py +2391 -0
- infinity_context_core/application/context_domain_rerank_types.py +14 -0
- infinity_context_core/application/context_english_activity_displacement_answer_support.py +128 -0
- infinity_context_core/application/context_english_lifestyle_inference.py +122 -0
- infinity_context_core/application/context_english_lifestyle_inference_answer_support.py +291 -0
- infinity_context_core/application/context_english_temporal_dates.py +53 -0
- infinity_context_core/application/context_evidence_priority.py +262 -0
- infinity_context_core/application/context_evidence_reservation_safety.py +208 -0
- infinity_context_core/application/context_exercise_performance_rerank.py +71 -0
- infinity_context_core/application/context_food_inventory_exact_turns.py +583 -0
- infinity_context_core/application/context_frequency_rerank.py +109 -0
- infinity_context_core/application/context_future_plan_timing_rerank.py +110 -0
- infinity_context_core/application/context_generic_behavior_inference.py +348 -0
- infinity_context_core/application/context_geo_residence_aliases.py +149 -0
- infinity_context_core/application/context_hydration.py +329 -0
- infinity_context_core/application/context_identity_fact_rerank.py +362 -0
- infinity_context_core/application/context_identity_rerank.py +76 -0
- infinity_context_core/application/context_identity_terms.py +15 -0
- infinity_context_core/application/context_inference_evidence.py +484 -0
- infinity_context_core/application/context_inference_evidence_terms.py +744 -0
- infinity_context_core/application/context_internal_diagnostics.py +61 -0
- infinity_context_core/application/context_item_evidence.py +108 -0
- infinity_context_core/application/context_item_purchase_evidence.py +49 -0
- infinity_context_core/application/context_keyword_aggregation_prefilter.py +63 -0
- infinity_context_core/application/context_keyword_ranking.py +178 -0
- infinity_context_core/application/context_lexical.py +750 -0
- infinity_context_core/application/context_lifecycle_rerank.py +502 -0
- infinity_context_core/application/context_link_candidate_policy.py +864 -0
- infinity_context_core/application/context_link_expansion.py +727 -0
- infinity_context_core/application/context_link_expansion_items.py +441 -0
- infinity_context_core/application/context_link_policy.py +451 -0
- infinity_context_core/application/context_link_source_enrichment.py +120 -0
- infinity_context_core/application/context_media_time.py +368 -0
- infinity_context_core/application/context_museum_visit_policy.py +66 -0
- infinity_context_core/application/context_named_person_preference.py +313 -0
- infinity_context_core/application/context_national_park_inference.py +93 -0
- infinity_context_core/application/context_object_attribute_rerank.py +416 -0
- infinity_context_core/application/context_object_mismatch.py +63 -0
- infinity_context_core/application/context_occupational_role_identity.py +961 -0
- infinity_context_core/application/context_ordinal_sequence.py +134 -0
- infinity_context_core/application/context_owner_grounding.py +408 -0
- infinity_context_core/application/context_packer.py +858 -0
- infinity_context_core/application/context_packer_answer_slots.py +733 -0
- infinity_context_core/application/context_packer_answer_support.py +3101 -0
- infinity_context_core/application/context_packer_answer_support_patterns.py +1267 -0
- infinity_context_core/application/context_packer_answer_support_slots.py +1209 -0
- infinity_context_core/application/context_packer_answer_support_utils.py +473 -0
- infinity_context_core/application/context_packer_diagnostics.py +48 -0
- infinity_context_core/application/context_packer_exact_literal_turns.py +697 -0
- infinity_context_core/application/context_packer_exact_prepasses.py +758 -0
- infinity_context_core/application/context_packer_exact_turn_utils.py +133 -0
- infinity_context_core/application/context_packer_identity_policy.py +155 -0
- infinity_context_core/application/context_packer_inference_reservation.py +113 -0
- infinity_context_core/application/context_packer_inventory_prepasses.py +359 -0
- infinity_context_core/application/context_packer_inventory_slots.py +771 -0
- infinity_context_core/application/context_packer_marker_coverage.py +409 -0
- infinity_context_core/application/context_packer_rendering.py +338 -0
- infinity_context_core/application/context_packer_selection.py +487 -0
- infinity_context_core/application/context_packer_source_policy.py +123 -0
- infinity_context_core/application/context_paired_evidence_requirements.py +78 -0
- infinity_context_core/application/context_paired_evidence_roles.py +64 -0
- infinity_context_core/application/context_person_activity_exact_turns.py +375 -0
- infinity_context_core/application/context_person_aliases.py +49 -0
- infinity_context_core/application/context_person_kinship.py +296 -0
- infinity_context_core/application/context_person_occupation.py +240 -0
- infinity_context_core/application/context_person_relation_inventory.py +755 -0
- infinity_context_core/application/context_person_residence.py +398 -0
- infinity_context_core/application/context_person_team_membership.py +305 -0
- infinity_context_core/application/context_pet_ownership.py +223 -0
- infinity_context_core/application/context_polarity_rerank.py +338 -0
- infinity_context_core/application/context_policy.py +107 -0
- infinity_context_core/application/context_political_inference.py +128 -0
- infinity_context_core/application/context_possession_source.py +161 -0
- infinity_context_core/application/context_precise_temporal_evidence.py +156 -0
- infinity_context_core/application/context_preference_goal_rerank.py +428 -0
- infinity_context_core/application/context_preference_inference.py +335 -0
- infinity_context_core/application/context_property_interaction_evidence.py +659 -0
- infinity_context_core/application/context_provider_retrieval_terms.py +95 -0
- infinity_context_core/application/context_quality.py +488 -0
- infinity_context_core/application/context_quantity_evidence_patterns.py +254 -0
- infinity_context_core/application/context_quantity_evidence_slots.py +750 -0
- infinity_context_core/application/context_quantity_pending_clothing.py +200 -0
- infinity_context_core/application/context_query_artifact_inventory_expansions.py +76 -0
- infinity_context_core/application/context_query_decomposition.py +879 -0
- infinity_context_core/application/context_query_decomposition_answer_policy.py +707 -0
- infinity_context_core/application/context_query_decomposition_contracts.py +28 -0
- infinity_context_core/application/context_query_decomposition_event_policy.py +535 -0
- infinity_context_core/application/context_query_decomposition_inventory_policy.py +767 -0
- infinity_context_core/application/context_query_decomposition_shared.py +300 -0
- infinity_context_core/application/context_query_duration.py +171 -0
- infinity_context_core/application/context_query_entity_relation_expansions.py +212 -0
- infinity_context_core/application/context_query_event_summary_expansions.py +80 -0
- infinity_context_core/application/context_query_expansion.py +200 -0
- infinity_context_core/application/context_query_expansion_rule_catalog_part1.py +1279 -0
- infinity_context_core/application/context_query_expansion_rule_catalog_part2.py +770 -0
- infinity_context_core/application/context_query_expansion_rule_catalog_part3.py +982 -0
- infinity_context_core/application/context_query_expansion_rule_catalog_part4.py +1334 -0
- infinity_context_core/application/context_query_expansion_rule_catalog_part5.py +517 -0
- infinity_context_core/application/context_query_expansion_rule_terms.py +269 -0
- infinity_context_core/application/context_query_expansion_rules.py +66 -0
- infinity_context_core/application/context_query_expansion_selection.py +892 -0
- infinity_context_core/application/context_query_financial_resources_inference.py +92 -0
- infinity_context_core/application/context_query_food_expansions.py +89 -0
- infinity_context_core/application/context_query_frequency.py +194 -0
- infinity_context_core/application/context_query_game_expansions.py +141 -0
- infinity_context_core/application/context_query_health_lifestyle_expansions.py +178 -0
- infinity_context_core/application/context_query_identity_terms.py +81 -0
- infinity_context_core/application/context_query_intent.py +33 -0
- infinity_context_core/application/context_query_intent_common.py +29 -0
- infinity_context_core/application/context_query_intent_contracts.py +92 -0
- infinity_context_core/application/context_query_intent_extraction.py +614 -0
- infinity_context_core/application/context_query_intent_keys.py +499 -0
- infinity_context_core/application/context_query_intent_matching.py +407 -0
- infinity_context_core/application/context_query_organization_summary_expansions.py +75 -0
- infinity_context_core/application/context_query_personal_fact_expansions.py +314 -0
- infinity_context_core/application/context_query_pet_activity_expansions.py +329 -0
- infinity_context_core/application/context_query_preference_expansions.py +97 -0
- infinity_context_core/application/context_query_project_summary_expansions.py +60 -0
- infinity_context_core/application/context_query_relevance_ranking.py +76 -0
- infinity_context_core/application/context_query_sports_expansions.py +48 -0
- infinity_context_core/application/context_query_state_transition.py +53 -0
- infinity_context_core/application/context_query_support_role.py +165 -0
- infinity_context_core/application/context_query_temporal_expansions.py +18 -0
- infinity_context_core/application/context_query_travel_expansions.py +134 -0
- infinity_context_core/application/context_query_vehicle_expansions.py +79 -0
- infinity_context_core/application/context_query_workflow_expansions.py +233 -0
- infinity_context_core/application/context_query_workflow_intent.py +65 -0
- infinity_context_core/application/context_quote_scanner.py +342 -0
- infinity_context_core/application/context_rank_dedupe.py +171 -0
- infinity_context_core/application/context_rank_fusion.py +191 -0
- infinity_context_core/application/context_ranked_activity_reservation.py +586 -0
- infinity_context_core/application/context_ranked_evidence_coverage_reservation.py +427 -0
- infinity_context_core/application/context_ranked_evidence_priority_reservation.py +37 -0
- infinity_context_core/application/context_ranked_evidence_selection.py +260 -0
- infinity_context_core/application/context_ranking.py +3681 -0
- infinity_context_core/application/context_ranking_reason_policy.py +31 -0
- infinity_context_core/application/context_ranking_reason_priorities.py +859 -0
- infinity_context_core/application/context_ranking_reason_scores.py +519 -0
- infinity_context_core/application/context_recommendation_answer_support.py +358 -0
- infinity_context_core/application/context_recommendation_exact_turns.py +360 -0
- infinity_context_core/application/context_relation_requirement.py +498 -0
- infinity_context_core/application/context_relationship_status_evidence.py +83 -0
- infinity_context_core/application/context_relative_duration_evidence.py +61 -0
- infinity_context_core/application/context_relevance.py +430 -0
- infinity_context_core/application/context_reported_obligation_attribution.py +416 -0
- infinity_context_core/application/context_reporting_frames.py +338 -0
- infinity_context_core/application/context_requirement_coverage.py +767 -0
- infinity_context_core/application/context_requirement_guard.py +503 -0
- infinity_context_core/application/context_requirement_patterns.py +943 -0
- infinity_context_core/application/context_requirement_ranking.py +181 -0
- infinity_context_core/application/context_requirement_signals.py +101 -0
- infinity_context_core/application/context_rerank_domain_heuristics.py +433 -0
- infinity_context_core/application/context_rerank_evidence_signals.py +400 -0
- infinity_context_core/application/context_rerank_relevance.py +131 -0
- infinity_context_core/application/context_retrieval_performance.py +153 -0
- infinity_context_core/application/context_review_items.py +338 -0
- infinity_context_core/application/context_score_signal_rerank.py +21 -0
- infinity_context_core/application/context_short_story_progress_evidence.py +119 -0
- infinity_context_core/application/context_snippets.py +545 -0
- infinity_context_core/application/context_social_education_inference.py +265 -0
- infinity_context_core/application/context_social_inventory_rerank.py +329 -0
- infinity_context_core/application/context_source_family.py +100 -0
- infinity_context_core/application/context_source_grounding.py +277 -0
- infinity_context_core/application/context_source_sibling_answer_evidence_repair.py +1983 -0
- infinity_context_core/application/context_source_sibling_contracts.py +35 -0
- infinity_context_core/application/context_source_sibling_evidence.py +405 -0
- infinity_context_core/application/context_source_sibling_evidence_rules.py +798 -0
- infinity_context_core/application/context_source_sibling_evidence_shared.py +449 -0
- infinity_context_core/application/context_source_sibling_identity.py +114 -0
- infinity_context_core/application/context_source_sibling_inventory_evidence.py +28 -0
- infinity_context_core/application/context_source_sibling_patterns.py +946 -0
- infinity_context_core/application/context_source_sibling_place_evidence.py +561 -0
- infinity_context_core/application/context_source_sibling_policy.py +988 -0
- infinity_context_core/application/context_source_sibling_scoring.py +721 -0
- infinity_context_core/application/context_source_siblings.py +363 -0
- infinity_context_core/application/context_speaker_attribution.py +574 -0
- infinity_context_core/application/context_speaker_disambiguation.py +108 -0
- infinity_context_core/application/context_stage_diagnostics.py +111 -0
- infinity_context_core/application/context_state_evidence.py +196 -0
- infinity_context_core/application/context_state_residence_inference.py +163 -0
- infinity_context_core/application/context_state_transition_pairing.py +401 -0
- infinity_context_core/application/context_temporal_answer_grounding.py +187 -0
- infinity_context_core/application/context_temporal_hints.py +485 -0
- infinity_context_core/application/context_temporal_intent_policy.py +146 -0
- infinity_context_core/application/context_temporal_interval_requirements.py +107 -0
- infinity_context_core/application/context_temporal_metadata.py +29 -0
- infinity_context_core/application/context_temporal_query.py +1358 -0
- infinity_context_core/application/context_temporal_ranges.py +471 -0
- infinity_context_core/application/context_temporal_session_order.py +439 -0
- infinity_context_core/application/context_temporal_source_identity.py +426 -0
- infinity_context_core/application/context_temporal_source_turn.py +1290 -0
- infinity_context_core/application/context_temporal_source_turn_labels.py +265 -0
- infinity_context_core/application/context_temporal_source_turn_patterns.py +186 -0
- infinity_context_core/application/context_temporal_source_turn_types.py +62 -0
- infinity_context_core/application/context_travel_hobby_writing_evidence.py +176 -0
- infinity_context_core/application/context_travel_place_evidence.py +23 -0
- infinity_context_core/application/document_fragments.py +206 -0
- infinity_context_core/application/document_text.py +203 -0
- infinity_context_core/application/dto.py +311 -0
- infinity_context_core/application/dto_anchors.py +143 -0
- infinity_context_core/application/dto_assets.py +234 -0
- infinity_context_core/application/dto_benchmark_runs.py +114 -0
- infinity_context_core/application/dto_context.py +176 -0
- infinity_context_core/application/dto_context_links.py +170 -0
- infinity_context_core/application/dto_facts.py +275 -0
- infinity_context_core/application/dto_suggestions_capture.py +199 -0
- infinity_context_core/application/dto_workspace.py +101 -0
- infinity_context_core/application/extraction_coordinates.py +56 -0
- infinity_context_core/application/extraction_resource_policy.py +796 -0
- infinity_context_core/application/extractor.py +147 -0
- infinity_context_core/application/memory_digest_renderer.py +215 -0
- infinity_context_core/application/multimodal_manifest.py +418 -0
- infinity_context_core/application/normalize.py +29 -0
- infinity_context_core/application/observed_anchor_resolution.py +243 -0
- infinity_context_core/application/related_facts.py +144 -0
- infinity_context_core/application/review_payloads.py +104 -0
- infinity_context_core/application/safe_payload.py +86 -0
- infinity_context_core/application/semantic_dedupe.py +943 -0
- infinity_context_core/application/sensitive_text.py +39 -0
- infinity_context_core/application/source_refs.py +263 -0
- infinity_context_core/application/storage_key_safety.py +13 -0
- infinity_context_core/application/temporal_validity.py +31 -0
- infinity_context_core/application/use_cases/__init__.py +1 -0
- infinity_context_core/application/use_cases/anchors.py +1165 -0
- infinity_context_core/application/use_cases/asset_extraction_support.py +273 -0
- infinity_context_core/application/use_cases/asset_extractions.py +1454 -0
- infinity_context_core/application/use_cases/assets.py +463 -0
- infinity_context_core/application/use_cases/benchmark_runs.py +877 -0
- infinity_context_core/application/use_cases/benchmark_unsealed_abort.py +147 -0
- infinity_context_core/application/use_cases/blob_storage_cleanup.py +289 -0
- infinity_context_core/application/use_cases/blob_storage_integrity.py +351 -0
- infinity_context_core/application/use_cases/build_context.py +995 -0
- infinity_context_core/application/use_cases/build_context_final_packing.py +59 -0
- infinity_context_core/application/use_cases/build_context_item_projection.py +839 -0
- infinity_context_core/application/use_cases/build_context_keyword_aggregation.py +908 -0
- infinity_context_core/application/use_cases/build_context_keyword_aggregation_seeds.py +132 -0
- infinity_context_core/application/use_cases/build_context_keyword_aggregation_selection.py +280 -0
- infinity_context_core/application/use_cases/build_context_keyword_aggregation_support.py +161 -0
- infinity_context_core/application/use_cases/build_context_requirement_guard.py +156 -0
- infinity_context_core/application/use_cases/build_context_source_selection.py +935 -0
- infinity_context_core/application/use_cases/build_memory_digest.py +203 -0
- infinity_context_core/application/use_cases/build_memory_insights.py +979 -0
- infinity_context_core/application/use_cases/consolidate_capture.py +806 -0
- infinity_context_core/application/use_cases/context_link_crud.py +196 -0
- infinity_context_core/application/use_cases/context_link_reviews.py +441 -0
- infinity_context_core/application/use_cases/context_link_suggestions.py +1060 -0
- infinity_context_core/application/use_cases/context_link_visibility.py +106 -0
- infinity_context_core/application/use_cases/context_links.py +33 -0
- infinity_context_core/application/use_cases/delete_document.py +71 -0
- infinity_context_core/application/use_cases/delete_thread_memory.py +55 -0
- infinity_context_core/application/use_cases/duplicate_merge_resolution.py +307 -0
- infinity_context_core/application/use_cases/ensure_scope.py +29 -0
- infinity_context_core/application/use_cases/expire_suggestions.py +36 -0
- infinity_context_core/application/use_cases/export_graph.py +684 -0
- infinity_context_core/application/use_cases/fact_relations.py +204 -0
- infinity_context_core/application/use_cases/forget_fact.py +43 -0
- infinity_context_core/application/use_cases/get_capabilities.py +213 -0
- infinity_context_core/application/use_cases/get_capture.py +16 -0
- infinity_context_core/application/use_cases/get_session_status.py +23 -0
- infinity_context_core/application/use_cases/ingest_document.py +376 -0
- infinity_context_core/application/use_cases/ingest_episode.py +263 -0
- infinity_context_core/application/use_cases/list_captures.py +25 -0
- infinity_context_core/application/use_cases/memory_browser.py +414 -0
- infinity_context_core/application/use_cases/operations_console.py +293 -0
- infinity_context_core/application/use_cases/process_document.py +83 -0
- infinity_context_core/application/use_cases/purge_capture.py +34 -0
- infinity_context_core/application/use_cases/query_documents.py +42 -0
- infinity_context_core/application/use_cases/query_facts.py +57 -0
- infinity_context_core/application/use_cases/receive_capture.py +238 -0
- infinity_context_core/application/use_cases/related_facts.py +47 -0
- infinity_context_core/application/use_cases/remember_fact.py +145 -0
- infinity_context_core/application/use_cases/spaces_memory_scopes.py +134 -0
- infinity_context_core/application/use_cases/suggestions.py +804 -0
- infinity_context_core/application/use_cases/update_fact.py +43 -0
- infinity_context_core/application/use_cases/usage.py +49 -0
- infinity_context_core/application/use_cases/users.py +138 -0
- infinity_context_core/domain/__init__.py +1 -0
- infinity_context_core/domain/aggregation_admission.py +200 -0
- infinity_context_core/domain/anchor_entities.py +316 -0
- infinity_context_core/domain/assets.py +654 -0
- infinity_context_core/domain/capture.py +321 -0
- infinity_context_core/domain/distinct_set_membership.py +69 -0
- infinity_context_core/domain/entities.py +103 -0
- infinity_context_core/domain/entity_policies.py +119 -0
- infinity_context_core/domain/entity_types.py +150 -0
- infinity_context_core/domain/errors.py +53 -0
- infinity_context_core/domain/events.py +14 -0
- infinity_context_core/domain/extraction.py +529 -0
- infinity_context_core/domain/idempotency.py +12 -0
- infinity_context_core/domain/memory_item_entities.py +426 -0
- infinity_context_core/domain/source_refs.py +91 -0
- infinity_context_core/domain/suggestion_entities.py +236 -0
- infinity_context_core/domain/taxonomy.py +121 -0
- infinity_context_core/domain/usage.py +221 -0
- infinity_context_core/domain/workspace_entities.py +269 -0
- infinity_context_core/features/__init__.py +7 -0
- infinity_context_core/features/context_building/__init__.py +3 -0
- infinity_context_core/features/context_building/application/__init__.py +92 -0
- infinity_context_core/features/context_building/application/candidate_fusion.py +136 -0
- infinity_context_core/features/context_building/application/coverage_reservation_selector.py +212 -0
- infinity_context_core/features/context_building/application/handlers.py +155 -0
- infinity_context_core/features/context_building/application/inference_evidence_reservation.py +592 -0
- infinity_context_core/features/context_building/application/provider_pipeline.py +61 -0
- infinity_context_core/features/context_building/application/queries.py +107 -0
- infinity_context_core/features/context_building/application/use_cases.py +78 -0
- infinity_context_core/features/context_building/domain/__init__.py +95 -0
- infinity_context_core/features/context_building/domain/budget.py +97 -0
- infinity_context_core/features/context_building/domain/context.py +157 -0
- infinity_context_core/features/context_building/domain/evidence_obligations.py +60 -0
- infinity_context_core/features/context_building/domain/feature.py +15 -0
- infinity_context_core/features/context_building/domain/prompt_sections.py +150 -0
- infinity_context_core/features/context_building/domain/query_pipeline.py +276 -0
- infinity_context_core/features/context_building/domain/rendering.py +102 -0
- infinity_context_core/features/context_building/ports/__init__.py +8 -0
- infinity_context_core/features/context_building/ports/candidates.py +36 -0
- infinity_context_core/features/context_building/public.py +165 -0
- infinity_context_core/features/context_building/tests/test_application_ports_public_skeleton.py +575 -0
- infinity_context_core/features/context_building/tests/test_domain_context_building_skeleton.py +402 -0
- infinity_context_core/features/document_ingestion/__init__.py +3 -0
- infinity_context_core/features/document_ingestion/application/__init__.py +31 -0
- infinity_context_core/features/document_ingestion/application/commands.py +62 -0
- infinity_context_core/features/document_ingestion/application/use_cases.py +273 -0
- infinity_context_core/features/document_ingestion/domain/__init__.py +61 -0
- infinity_context_core/features/document_ingestion/domain/chunking.py +297 -0
- infinity_context_core/features/document_ingestion/domain/errors.py +22 -0
- infinity_context_core/features/document_ingestion/domain/feature.py +18 -0
- infinity_context_core/features/document_ingestion/domain/source_document.py +228 -0
- infinity_context_core/features/document_ingestion/ports/__init__.py +21 -0
- infinity_context_core/features/document_ingestion/ports/indexing.py +51 -0
- infinity_context_core/features/document_ingestion/ports/repositories.py +56 -0
- infinity_context_core/features/document_ingestion/public.py +95 -0
- infinity_context_core/features/document_ingestion/tests/test_application_handlers.py +226 -0
- infinity_context_core/features/document_ingestion/tests/test_application_ports_public_skeleton.py +334 -0
- infinity_context_core/features/document_ingestion/tests/test_domain_chunking_skeleton.py +79 -0
- infinity_context_core/features/document_ingestion/tests/test_domain_source_document_skeleton.py +101 -0
- infinity_context_core/features/memory_facts/__init__.py +3 -0
- infinity_context_core/features/memory_facts/application/__init__.py +37 -0
- infinity_context_core/features/memory_facts/application/commands.py +89 -0
- infinity_context_core/features/memory_facts/application/handlers.py +241 -0
- infinity_context_core/features/memory_facts/application/use_cases.py +47 -0
- infinity_context_core/features/memory_facts/domain/__init__.py +35 -0
- infinity_context_core/features/memory_facts/domain/fact.py +98 -0
- infinity_context_core/features/memory_facts/domain/feature.py +15 -0
- infinity_context_core/features/memory_facts/ports/__init__.py +31 -0
- infinity_context_core/features/memory_facts/ports/clock.py +14 -0
- infinity_context_core/features/memory_facts/ports/ids.py +19 -0
- infinity_context_core/features/memory_facts/ports/outbox.py +26 -0
- infinity_context_core/features/memory_facts/ports/repositories.py +30 -0
- infinity_context_core/features/memory_facts/ports/unit_of_work.py +43 -0
- infinity_context_core/features/memory_facts/public.py +79 -0
- infinity_context_core/features/memory_facts/tests/test_application_handlers.py +332 -0
- infinity_context_core/features/memory_facts/tests/test_application_ports_public_skeleton.py +318 -0
- infinity_context_core/features/memory_facts/tests/test_domain_fact_skeleton.py +222 -0
- infinity_context_core/features/memory_scopes/__init__.py +3 -0
- infinity_context_core/features/memory_scopes/application/__init__.py +55 -0
- infinity_context_core/features/memory_scopes/application/commands.py +102 -0
- infinity_context_core/features/memory_scopes/application/errors.py +27 -0
- infinity_context_core/features/memory_scopes/application/handlers.py +226 -0
- infinity_context_core/features/memory_scopes/application/use_cases.py +68 -0
- infinity_context_core/features/memory_scopes/domain/__init__.py +59 -0
- infinity_context_core/features/memory_scopes/domain/errors.py +22 -0
- infinity_context_core/features/memory_scopes/domain/feature.py +18 -0
- infinity_context_core/features/memory_scopes/domain/policies.py +197 -0
- infinity_context_core/features/memory_scopes/domain/scope.py +178 -0
- infinity_context_core/features/memory_scopes/ports/__init__.py +25 -0
- infinity_context_core/features/memory_scopes/ports/clock.py +14 -0
- infinity_context_core/features/memory_scopes/ports/ids.py +13 -0
- infinity_context_core/features/memory_scopes/ports/repositories.py +40 -0
- infinity_context_core/features/memory_scopes/ports/unit_of_work.py +39 -0
- infinity_context_core/features/memory_scopes/public.py +111 -0
- infinity_context_core/features/memory_scopes/tests/test_application_ports_public_skeleton.py +824 -0
- infinity_context_core/features/memory_scopes/tests/test_domain_scope_skeleton.py +428 -0
- infinity_context_core/memory_scope_snapshot_preview.py +863 -0
- infinity_context_core/memory_scope_snapshots.py +206 -0
- infinity_context_core/ports/__init__.py +164 -0
- infinity_context_core/ports/adapters.py +217 -0
- infinity_context_core/ports/assets.py +270 -0
- infinity_context_core/ports/auth.py +68 -0
- infinity_context_core/ports/auto_memory.py +71 -0
- infinity_context_core/ports/benchmark_runs.py +205 -0
- infinity_context_core/ports/capabilities.py +324 -0
- infinity_context_core/ports/captures.py +53 -0
- infinity_context_core/ports/clock.py +11 -0
- infinity_context_core/ports/derived_projection_policy.py +72 -0
- infinity_context_core/ports/extraction.py +201 -0
- infinity_context_core/ports/graph_evidence.py +170 -0
- infinity_context_core/ports/ids.py +11 -0
- infinity_context_core/ports/projection_fence.py +27 -0
- infinity_context_core/ports/repositories.py +563 -0
- infinity_context_core/ports/transcription.py +63 -0
- infinity_context_core/ports/unit_of_work.py +77 -0
- infinity_context_core/ports/usage.py +36 -0
- infinity_context_core/ports/vector_projection_evidence.py +230 -0
- infinity_context_core/ports/vision.py +36 -0
- infinity_context_core/processes/__init__.py +3 -0
- infinity_context_core/processes/document_memory_pipeline/__init__.py +3 -0
- infinity_context_core/processes/document_memory_pipeline/contracts.py +44 -0
- infinity_context_core/processes/document_memory_pipeline/process.py +72 -0
- infinity_context_core/processes/document_memory_pipeline/public.py +21 -0
- infinity_context_core/reporting.py +105 -0
- infinity_context_mcp/__init__.py +5 -0
- infinity_context_mcp/__main__.py +6 -0
- infinity_context_mcp/adapters/__init__.py +1 -0
- infinity_context_mcp/adapters/http_gateway.py +940 -0
- infinity_context_mcp/agent_behavior_bench.py +1731 -0
- infinity_context_mcp/agent_behavior_bench_metrics.py +419 -0
- infinity_context_mcp/agent_behavior_bench_redaction.py +149 -0
- infinity_context_mcp/agent_behavior_bench_types.py +127 -0
- infinity_context_mcp/agent_behavior_scenarios.py +35 -0
- infinity_context_mcp/agent_behavior_scenarios_core.py +484 -0
- infinity_context_mcp/agent_behavior_scenarios_realistic.py +473 -0
- infinity_context_mcp/agent_behavior_scenarios_transcript.py +196 -0
- infinity_context_mcp/agent_behavior_transcripts.py +231 -0
- infinity_context_mcp/agent_behavior_types.py +66 -0
- infinity_context_mcp/agent_behavior_utils.py +29 -0
- infinity_context_mcp/application/__init__.py +1 -0
- infinity_context_mcp/application/context_link_review.py +109 -0
- infinity_context_mcp/application/local_runtime.py +473 -0
- infinity_context_mcp/application/normalization.py +36 -0
- infinity_context_mcp/application/obsidian.py +568 -0
- infinity_context_mcp/application/policy.py +160 -0
- infinity_context_mcp/application/ports.py +324 -0
- infinity_context_mcp/application/prepare.py +254 -0
- infinity_context_mcp/application/readiness.py +71 -0
- infinity_context_mcp/application/review_batch.py +62 -0
- infinity_context_mcp/application/service.py +701 -0
- infinity_context_mcp/application/service_base.py +29 -0
- infinity_context_mcp/application/service_constants.py +89 -0
- infinity_context_mcp/application/service_context_links.py +224 -0
- infinity_context_mcp/application/service_duplicates.py +62 -0
- infinity_context_mcp/application/service_facts.py +461 -0
- infinity_context_mcp/application/service_helpers.py +179 -0
- infinity_context_mcp/application/service_lifecycle.py +348 -0
- infinity_context_mcp/application/service_policy.py +74 -0
- infinity_context_mcp/application/service_query.py +384 -0
- infinity_context_mcp/application/service_resources.py +192 -0
- infinity_context_mcp/application/service_response.py +95 -0
- infinity_context_mcp/application/service_scope.py +132 -0
- infinity_context_mcp/application/service_suggestions.py +820 -0
- infinity_context_mcp/application/suggest_batch.py +71 -0
- infinity_context_mcp/application/usage_guide.py +74 -0
- infinity_context_mcp/bench.py +279 -0
- infinity_context_mcp/config.py +213 -0
- infinity_context_mcp/domain/__init__.py +1 -0
- infinity_context_mcp/domain/context_links.py +117 -0
- infinity_context_mcp/domain/local_runtime_models.py +56 -0
- infinity_context_mcp/domain/memory_browser.py +35 -0
- infinity_context_mcp/domain/models.py +1036 -0
- infinity_context_mcp/domain/obsidian_models.py +67 -0
- infinity_context_mcp/domain/policy.py +112 -0
- infinity_context_mcp/domain/prepare_models.py +24 -0
- infinity_context_mcp/plugin_hook.py +873 -0
- infinity_context_mcp/plugin_hook_settings.py +253 -0
- infinity_context_mcp/server.py +133 -0
- infinity_context_mcp/server_context_tools.py +404 -0
- infinity_context_mcp/server_fact_tools.py +928 -0
- infinity_context_mcp/server_hardening.py +54 -0
- infinity_context_mcp/server_local_runtime_tools.py +164 -0
- infinity_context_mcp/server_obsidian_tools.py +380 -0
- infinity_context_mcp/server_query_tools.py +626 -0
- infinity_context_mcp/server_request_mapping.py +73 -0
- infinity_context_mcp/server_resources.py +187 -0
- infinity_context_mcp/server_response.py +26 -0
- infinity_context_obsidian/__init__.py +5 -0
- infinity_context_obsidian/cli.py +594 -0
- infinity_context_obsidian/conflicts.py +110 -0
- infinity_context_obsidian/doctor.py +319 -0
- infinity_context_obsidian/domain.py +92 -0
- infinity_context_obsidian/frontmatter.py +68 -0
- infinity_context_obsidian/gateway.py +66 -0
- infinity_context_obsidian/layout.py +179 -0
- infinity_context_obsidian/note_format.py +159 -0
- infinity_context_obsidian/plugin_bundle/__init__.py +1 -0
- infinity_context_obsidian/plugin_bundle/main.js +5 -0
- infinity_context_obsidian/plugin_bundle/manifest.json +10 -0
- infinity_context_obsidian/plugin_bundle/styles.css +123 -0
- infinity_context_obsidian/plugin_install.py +139 -0
- infinity_context_obsidian/ports.py +72 -0
- infinity_context_obsidian/setup.py +202 -0
- infinity_context_obsidian/state.py +85 -0
- infinity_context_obsidian/sync.py +741 -0
- infinity_context_obsidian/vault.py +61 -0
- infinity_context_sdk/__init__.py +1049 -0
- infinity_context_sdk/_payloads.py +401 -0
- infinity_context_sdk/_redaction.py +31 -0
- infinity_context_sdk/anchors.py +249 -0
- infinity_context_sdk/assets.py +554 -0
- infinity_context_sdk/capabilities.py +199 -0
- infinity_context_sdk/context.py +540 -0
- infinity_context_sdk/context_bundle_diagnostics.py +905 -0
- infinity_context_sdk/context_payload_utils.py +219 -0
- infinity_context_sdk/export.py +123 -0
- infinity_context_sdk/scopes.py +74 -0
- infinity_context_sdk/thread_memory.py +55 -0
- infinity_context_server/__init__.py +5 -0
- infinity_context_server/__main__.py +19 -0
- infinity_context_server/admin.py +832 -0
- infinity_context_server/admin_invariants.py +388 -0
- infinity_context_server/admin_outbox.py +130 -0
- infinity_context_server/admin_projection_repair.py +374 -0
- infinity_context_server/api/__init__.py +1 -0
- infinity_context_server/api/auth.py +432 -0
- infinity_context_server/api/dependencies.py +9 -0
- infinity_context_server/api/errors.py +94 -0
- infinity_context_server/api/legacy_client.py +356 -0
- infinity_context_server/api/policy.py +35 -0
- infinity_context_server/api/public_payload.py +27 -0
- infinity_context_server/api/v1/__init__.py +54 -0
- infinity_context_server/api/v1/anchors.py +469 -0
- infinity_context_server/api/v1/assets.py +409 -0
- infinity_context_server/api/v1/capabilities.py +144 -0
- infinity_context_server/api/v1/captures.py +329 -0
- infinity_context_server/api/v1/context.py +362 -0
- infinity_context_server/api/v1/context_links.py +611 -0
- infinity_context_server/api/v1/diagnostics.py +333 -0
- infinity_context_server/api/v1/digest.py +107 -0
- infinity_context_server/api/v1/documents.py +164 -0
- infinity_context_server/api/v1/episodes.py +146 -0
- infinity_context_server/api/v1/export.py +184 -0
- infinity_context_server/api/v1/facts.py +265 -0
- infinity_context_server/api/v1/health.py +24 -0
- infinity_context_server/api/v1/insights.py +100 -0
- infinity_context_server/api/v1/internal_memory_comparison_runs.py +406 -0
- infinity_context_server/api/v1/memory_browser.py +183 -0
- infinity_context_server/api/v1/operations.py +81 -0
- infinity_context_server/api/v1/scope_resolution.py +389 -0
- infinity_context_server/api/v1/source_refs.py +111 -0
- infinity_context_server/api/v1/spaces_memory_scopes.py +141 -0
- infinity_context_server/api/v1/suggestions.py +237 -0
- infinity_context_server/api/v1/thread_memory.py +74 -0
- infinity_context_server/api/v1/usage.py +75 -0
- infinity_context_server/api/v1/users.py +164 -0
- infinity_context_server/auth_scope.py +492 -0
- infinity_context_server/auth_tokens.py +283 -0
- infinity_context_server/backpressure.py +47 -0
- infinity_context_server/benchmark_projection_absence.py +155 -0
- infinity_context_server/benchmark_projection_delete_outbox.py +162 -0
- infinity_context_server/composition.py +897 -0
- infinity_context_server/config.py +223 -0
- infinity_context_server/db.py +39 -0
- infinity_context_server/deployment_readiness.py +205 -0
- infinity_context_server/derived_identity_evidence.py +987 -0
- infinity_context_server/derived_identity_target.py +39 -0
- infinity_context_server/derived_projection_policy.py +85 -0
- infinity_context_server/diagnostics.py +536 -0
- infinity_context_server/doctor.py +71 -0
- infinity_context_server/eval.py +3066 -0
- infinity_context_server/eval_auto_memory.py +1735 -0
- infinity_context_server/eval_auto_memory_metrics.py +224 -0
- infinity_context_server/eval_auto_memory_types.py +75 -0
- infinity_context_server/eval_case_catalog.py +1590 -0
- infinity_context_server/eval_case_runner.py +1100 -0
- infinity_context_server/eval_common.py +336 -0
- infinity_context_server/eval_constants.py +310 -0
- infinity_context_server/eval_fixtures.py +150 -0
- infinity_context_server/eval_graph.py +92 -0
- infinity_context_server/eval_hybrid.py +99 -0
- infinity_context_server/eval_multimodal_offline.py +697 -0
- infinity_context_server/eval_prompt_contract.py +402 -0
- infinity_context_server/eval_scorecard.py +2627 -0
- infinity_context_server/eval_semantic_linking.py +1526 -0
- infinity_context_server/eval_semantic_retrieval_api_canary.py +405 -0
- infinity_context_server/eval_semantic_retrieval_canary.py +359 -0
- infinity_context_server/eval_types.py +88 -0
- infinity_context_server/evidence_bundle.py +523 -0
- infinity_context_server/extraction_capabilities.py +1234 -0
- infinity_context_server/features/__init__.py +3 -0
- infinity_context_server/features/context_building/__init__.py +5 -0
- infinity_context_server/features/context_building/benchmark_budget.py +29 -0
- infinity_context_server/features/context_building/composition.py +49 -0
- infinity_context_server/features/context_building/context_requests.py +151 -0
- infinity_context_server/features/context_building/contracts.py +96 -0
- infinity_context_server/features/context_building/digest_api_responses.py +225 -0
- infinity_context_server/features/context_building/digest_requests.py +65 -0
- infinity_context_server/features/context_building/insights_api_responses.py +132 -0
- infinity_context_server/features/context_building/legacy_api_responses.py +875 -0
- infinity_context_server/features/context_building/mappers.py +205 -0
- infinity_context_server/features/context_building/public.py +66 -0
- infinity_context_server/features/context_building/routes.py +44 -0
- infinity_context_server/features/document_ingestion/__init__.py +5 -0
- infinity_context_server/features/document_ingestion/asset_requests.py +45 -0
- infinity_context_server/features/document_ingestion/asset_responses.py +365 -0
- infinity_context_server/features/document_ingestion/composition.py +49 -0
- infinity_context_server/features/document_ingestion/contracts.py +104 -0
- infinity_context_server/features/document_ingestion/mappers.py +386 -0
- infinity_context_server/features/document_ingestion/public.py +58 -0
- infinity_context_server/features/document_ingestion/routes.py +44 -0
- infinity_context_server/features/memory_facts/__init__.py +7 -0
- infinity_context_server/features/memory_facts/compatibility.py +204 -0
- infinity_context_server/features/memory_facts/composition.py +72 -0
- infinity_context_server/features/memory_facts/contracts.py +187 -0
- infinity_context_server/features/memory_facts/mappers.py +620 -0
- infinity_context_server/features/memory_facts/public.py +168 -0
- infinity_context_server/features/memory_facts/routes.py +118 -0
- infinity_context_server/features/memory_facts/suggestion_requests.py +283 -0
- infinity_context_server/features/memory_facts/suggestion_responses.py +382 -0
- infinity_context_server/features/memory_scopes/__init__.py +5 -0
- infinity_context_server/features/memory_scopes/compatibility.py +231 -0
- infinity_context_server/features/memory_scopes/composition.py +49 -0
- infinity_context_server/features/memory_scopes/contracts.py +103 -0
- infinity_context_server/features/memory_scopes/graph_export_responses.py +93 -0
- infinity_context_server/features/memory_scopes/mappers.py +290 -0
- infinity_context_server/features/memory_scopes/public.py +136 -0
- infinity_context_server/features/memory_scopes/routes.py +185 -0
- infinity_context_server/features/memory_scopes/snapshot_compatibility.py +146 -0
- infinity_context_server/features/memory_scopes/thread_memory_requests.py +127 -0
- infinity_context_server/llm_provider_readiness.py +267 -0
- infinity_context_server/longmemeval_session_identity.py +167 -0
- infinity_context_server/main.py +68 -0
- infinity_context_server/mem0_benchmark_auth_challenge.py +160 -0
- infinity_context_server/memora_comparison.py +658 -0
- infinity_context_server/memory_comparison_answer_context.py +2442 -0
- infinity_context_server/memory_comparison_answer_context_backfill.py +1027 -0
- infinity_context_server/memory_comparison_answer_context_diagnostics.py +694 -0
- infinity_context_server/memory_comparison_answer_context_inspection.py +103 -0
- infinity_context_server/memory_comparison_answer_context_retrieval_slice.py +175 -0
- infinity_context_server/memory_comparison_answer_context_risks.py +223 -0
- infinity_context_server/memory_comparison_backend_target.py +41 -0
- infinity_context_server/memory_comparison_benchmark.py +651 -0
- infinity_context_server/memory_comparison_benchmark_compact.py +387 -0
- infinity_context_server/memory_comparison_benchmark_compact_fast_gate.py +387 -0
- infinity_context_server/memory_comparison_benchmark_compact_samples.py +931 -0
- infinity_context_server/memory_comparison_benchmark_config.py +105 -0
- infinity_context_server/memory_comparison_benchmark_control.py +215 -0
- infinity_context_server/memory_comparison_benchmark_execution.py +238 -0
- infinity_context_server/memory_comparison_benchmark_identity.py +65 -0
- infinity_context_server/memory_comparison_benchmark_metrics.py +686 -0
- infinity_context_server/memory_comparison_benchmark_replay.py +400 -0
- infinity_context_server/memory_comparison_benchmark_shared.py +284 -0
- infinity_context_server/memory_comparison_bounded_provider.py +295 -0
- infinity_context_server/memory_comparison_bundle_partial_support.py +107 -0
- infinity_context_server/memory_comparison_bundle_planner.py +3521 -0
- infinity_context_server/memory_comparison_bundle_source_windows.py +247 -0
- infinity_context_server/memory_comparison_candidate_features.py +2014 -0
- infinity_context_server/memory_comparison_candidate_fusion.py +893 -0
- infinity_context_server/memory_comparison_candidate_risks.py +124 -0
- infinity_context_server/memory_comparison_canonical_source_hash.py +109 -0
- infinity_context_server/memory_comparison_case_identity.py +100 -0
- infinity_context_server/memory_comparison_case_loader.py +123 -0
- infinity_context_server/memory_comparison_chat_completions.py +402 -0
- infinity_context_server/memory_comparison_clean_state.py +607 -0
- infinity_context_server/memory_comparison_clean_state_http.py +120 -0
- infinity_context_server/memory_comparison_clean_state_runner.py +103 -0
- infinity_context_server/memory_comparison_cli.py +295 -0
- infinity_context_server/memory_comparison_codex_canary.py +315 -0
- infinity_context_server/memory_comparison_codex_llm.py +345 -0
- infinity_context_server/memory_comparison_compact_gap_report.py +289 -0
- infinity_context_server/memory_comparison_comparative_preference.py +71 -0
- infinity_context_server/memory_comparison_conversation_ingestion.py +198 -0
- infinity_context_server/memory_comparison_evidence.py +877 -0
- infinity_context_server/memory_comparison_evidence_commitment.py +20 -0
- infinity_context_server/memory_comparison_failure_diagnostics.py +809 -0
- infinity_context_server/memory_comparison_full_canonical_evidence.py +746 -0
- infinity_context_server/memory_comparison_full_canonical_source_evidence_trust.py +450 -0
- infinity_context_server/memory_comparison_full_delete_evidence.py +670 -0
- infinity_context_server/memory_comparison_full_delete_evidence_trust.py +441 -0
- infinity_context_server/memory_comparison_full_delete_evidence_witnesses.py +308 -0
- infinity_context_server/memory_comparison_full_execution_validation.py +697 -0
- infinity_context_server/memory_comparison_full_execution_validation_slots.py +655 -0
- infinity_context_server/memory_comparison_full_methodology.py +556 -0
- infinity_context_server/memory_comparison_full_policy_component_validation.py +899 -0
- infinity_context_server/memory_comparison_full_profiles.py +398 -0
- infinity_context_server/memory_comparison_full_run_component_sets.py +304 -0
- infinity_context_server/memory_comparison_full_run_components.py +787 -0
- infinity_context_server/memory_comparison_full_run_evidence.py +759 -0
- infinity_context_server/memory_comparison_full_scope.py +244 -0
- infinity_context_server/memory_comparison_full_source_evidence.py +866 -0
- infinity_context_server/memory_comparison_full_verdict.py +252 -0
- infinity_context_server/memory_comparison_gold_blind.py +654 -0
- infinity_context_server/memory_comparison_gold_blind_answer_contract.py +492 -0
- infinity_context_server/memory_comparison_gold_blind_contract.py +760 -0
- infinity_context_server/memory_comparison_gold_blind_dispatch_models.py +34 -0
- infinity_context_server/memory_comparison_gold_blind_execution_validation.py +170 -0
- infinity_context_server/memory_comparison_gold_blind_judge_binding.py +167 -0
- infinity_context_server/memory_comparison_gold_blind_judge_capability.py +387 -0
- infinity_context_server/memory_comparison_gold_blind_retrieval_contract.py +413 -0
- infinity_context_server/memory_comparison_gold_blind_run_proof.py +880 -0
- infinity_context_server/memory_comparison_gold_blind_run_validation.py +109 -0
- infinity_context_server/memory_comparison_gold_blind_validation.py +319 -0
- infinity_context_server/memory_comparison_http.py +921 -0
- infinity_context_server/memory_comparison_http_ingest_observation.py +710 -0
- infinity_context_server/memory_comparison_http_ingest_request.py +204 -0
- infinity_context_server/memory_comparison_intent.py +2925 -0
- infinity_context_server/memory_comparison_latency.py +455 -0
- infinity_context_server/memory_comparison_llm.py +473 -0
- infinity_context_server/memory_comparison_location_roles.py +169 -0
- infinity_context_server/memory_comparison_locomo_cases.py +328 -0
- infinity_context_server/memory_comparison_locomo_expected_turn.py +297 -0
- infinity_context_server/memory_comparison_locomo_transport.py +873 -0
- infinity_context_server/memory_comparison_longmemeval_cases.py +339 -0
- infinity_context_server/memory_comparison_managed_attestation.py +771 -0
- infinity_context_server/memory_comparison_managed_benchmark_registry_abort_http.py +120 -0
- infinity_context_server/memory_comparison_managed_benchmark_registry_contracts.py +715 -0
- infinity_context_server/memory_comparison_managed_benchmark_registry_http.py +855 -0
- infinity_context_server/memory_comparison_managed_benchmark_registry_recovery_http.py +164 -0
- infinity_context_server/memory_comparison_managed_benchmark_registry_wire.py +890 -0
- infinity_context_server/memory_comparison_managed_composite_assembler.py +524 -0
- infinity_context_server/memory_comparison_managed_corpus_projection.py +653 -0
- infinity_context_server/memory_comparison_managed_execution_receipts.py +991 -0
- infinity_context_server/memory_comparison_managed_http_derived_evidence.py +724 -0
- infinity_context_server/memory_comparison_managed_http_exact_cleanup.py +476 -0
- infinity_context_server/memory_comparison_managed_http_execution.py +673 -0
- infinity_context_server/memory_comparison_managed_http_lifecycle.py +905 -0
- infinity_context_server/memory_comparison_managed_http_lifecycle_credentials.py +83 -0
- infinity_context_server/memory_comparison_managed_http_lifecycle_evidence.py +366 -0
- infinity_context_server/memory_comparison_managed_http_lifecycle_registration.py +106 -0
- infinity_context_server/memory_comparison_managed_http_policy_lifecycle.py +894 -0
- infinity_context_server/memory_comparison_managed_http_policy_material_projection.py +315 -0
- infinity_context_server/memory_comparison_managed_http_policy_receipts.py +219 -0
- infinity_context_server/memory_comparison_managed_http_policy_registry_evidence.py +177 -0
- infinity_context_server/memory_comparison_managed_http_policy_requirements.py +824 -0
- infinity_context_server/memory_comparison_managed_http_policy_support.py +108 -0
- infinity_context_server/memory_comparison_managed_http_policy_validation.py +762 -0
- infinity_context_server/memory_comparison_managed_ingest_manifest.py +449 -0
- infinity_context_server/memory_comparison_managed_live_admission.py +886 -0
- infinity_context_server/memory_comparison_managed_live_cli.py +536 -0
- infinity_context_server/memory_comparison_managed_live_composition.py +636 -0
- infinity_context_server/memory_comparison_managed_llm_execution.py +850 -0
- infinity_context_server/memory_comparison_managed_llm_execution_dispatch.py +269 -0
- infinity_context_server/memory_comparison_managed_llm_execution_ports.py +225 -0
- infinity_context_server/memory_comparison_managed_mem0_auth.py +65 -0
- infinity_context_server/memory_comparison_managed_mem0_runtime_authority.py +241 -0
- infinity_context_server/memory_comparison_managed_mem0_runtime_http.py +541 -0
- infinity_context_server/memory_comparison_managed_plan_builder.py +685 -0
- infinity_context_server/memory_comparison_managed_preflight.py +907 -0
- infinity_context_server/memory_comparison_managed_preflight_cli.py +431 -0
- infinity_context_server/memory_comparison_managed_production_cli.py +325 -0
- infinity_context_server/memory_comparison_managed_production_composition.py +140 -0
- infinity_context_server/memory_comparison_managed_production_ports.py +194 -0
- infinity_context_server/memory_comparison_managed_production_runner.py +450 -0
- infinity_context_server/memory_comparison_managed_projection_manifest.py +438 -0
- infinity_context_server/memory_comparison_managed_provider_calls.py +450 -0
- infinity_context_server/memory_comparison_managed_quality_projection.py +347 -0
- infinity_context_server/memory_comparison_managed_registry_policy_lifecycle.py +677 -0
- infinity_context_server/memory_comparison_managed_run.py +892 -0
- infinity_context_server/memory_comparison_managed_run_contract.py +454 -0
- infinity_context_server/memory_comparison_managed_run_ports.py +79 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials.py +916 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials_capability.py +361 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials_context.py +132 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials_integrity.py +213 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials_models.py +81 -0
- infinity_context_server/memory_comparison_managed_runtime_credentials_targets.py +28 -0
- infinity_context_server/memory_comparison_mem0_contract.py +491 -0
- infinity_context_server/memory_comparison_mem0_http_observation.py +296 -0
- infinity_context_server/memory_comparison_mem0_locomo_prompts.py +328 -0
- infinity_context_server/memory_comparison_mem0_longmemeval_prompts.py +365 -0
- infinity_context_server/memory_comparison_mem0_official_chat.py +504 -0
- infinity_context_server/memory_comparison_mem0_official_prompt_renderer.py +307 -0
- infinity_context_server/memory_comparison_mem0_oss_contract.py +456 -0
- infinity_context_server/memory_comparison_mem0_oss_manifest.py +563 -0
- infinity_context_server/memory_comparison_mem0_platform_contract.py +467 -0
- infinity_context_server/memory_comparison_mem0_runtime_attestation.py +861 -0
- infinity_context_server/memory_comparison_models.py +398 -0
- infinity_context_server/memory_comparison_openai_official_transport.py +525 -0
- infinity_context_server/memory_comparison_preflight.py +1147 -0
- infinity_context_server/memory_comparison_probe_transport.py +154 -0
- infinity_context_server/memory_comparison_prompt_policy.py +603 -0
- infinity_context_server/memory_comparison_provider_provenance.py +392 -0
- infinity_context_server/memory_comparison_quality_accessors.py +339 -0
- infinity_context_server/memory_comparison_quality_actionable_gaps.py +2038 -0
- infinity_context_server/memory_comparison_quality_answer_context_gaps.py +450 -0
- infinity_context_server/memory_comparison_quality_answer_context_risks.py +75 -0
- infinity_context_server/memory_comparison_quality_bundle_gaps.py +860 -0
- infinity_context_server/memory_comparison_quality_bundle_table.py +805 -0
- infinity_context_server/memory_comparison_quality_diagnostics.py +2798 -0
- infinity_context_server/memory_comparison_quality_fusion.py +241 -0
- infinity_context_server/memory_comparison_quality_query_plan_gaps.py +533 -0
- infinity_context_server/memory_comparison_quality_query_role_gaps.py +845 -0
- infinity_context_server/memory_comparison_quality_query_roles.py +815 -0
- infinity_context_server/memory_comparison_quality_rerank_gaps.py +492 -0
- infinity_context_server/memory_comparison_quality_selected_weakness.py +544 -0
- infinity_context_server/memory_comparison_quality_support.py +921 -0
- infinity_context_server/memory_comparison_query_integrity.py +301 -0
- infinity_context_server/memory_comparison_query_plan.py +524 -0
- infinity_context_server/memory_comparison_query_terms.py +2055 -0
- infinity_context_server/memory_comparison_relation_support.py +2100 -0
- infinity_context_server/memory_comparison_rerank.py +3209 -0
- infinity_context_server/memory_comparison_rerank_intents.py +405 -0
- infinity_context_server/memory_comparison_rerank_policies.py +1726 -0
- infinity_context_server/memory_comparison_rerank_policy.py +675 -0
- infinity_context_server/memory_comparison_rerank_shapes.py +152 -0
- infinity_context_server/memory_comparison_rerank_terms.py +973 -0
- infinity_context_server/memory_comparison_rerank_text.py +722 -0
- infinity_context_server/memory_comparison_retrieval_policy.py +108 -0
- infinity_context_server/memory_comparison_retrieval_width.py +383 -0
- infinity_context_server/memory_comparison_service_probe.py +278 -0
- infinity_context_server/memory_comparison_service_probes.py +547 -0
- infinity_context_server/memory_comparison_session_identity_contract.py +328 -0
- infinity_context_server/memory_comparison_source_identity.py +1655 -0
- infinity_context_server/memory_comparison_subscription_chat.py +717 -0
- infinity_context_server/memory_comparison_subscription_live_probe.py +323 -0
- infinity_context_server/memory_comparison_subscription_probe.py +368 -0
- infinity_context_server/memory_comparison_target_identity.py +42 -0
- infinity_context_server/memory_comparison_temporal_grounding.py +771 -0
- infinity_context_server/memory_comparison_token_budget_contract.py +665 -0
- infinity_context_server/memory_comparison_token_latency.py +136 -0
- infinity_context_server/memory_scope_transfer.py +933 -0
- infinity_context_server/memory_scope_transfer_assets.py +181 -0
- infinity_context_server/memory_scope_transfer_conflicts.py +565 -0
- infinity_context_server/memory_scope_transfer_context.py +295 -0
- infinity_context_server/memory_scope_transfer_extractions.py +390 -0
- infinity_context_server/memory_scope_transfer_facts.py +65 -0
- infinity_context_server/memory_scope_transfer_records.py +630 -0
- infinity_context_server/memory_scope_transfer_relations.py +84 -0
- infinity_context_server/memory_scope_transfer_remap.py +710 -0
- infinity_context_server/memory_scope_transfer_scope.py +267 -0
- infinity_context_server/memory_scope_transfer_support.py +108 -0
- infinity_context_server/memory_scope_transfer_temporal.py +24 -0
- infinity_context_server/metrics.py +264 -0
- infinity_context_server/official_public_benchmark.py +979 -0
- infinity_context_server/pagination.py +60 -0
- infinity_context_server/processes/__init__.py +38 -0
- infinity_context_server/processes/extractions.py +40 -0
- infinity_context_server/processes/outbox.py +47 -0
- infinity_context_server/processes/projections.py +372 -0
- infinity_context_server/provider_budget.py +59 -0
- infinity_context_server/provider_circuit.py +333 -0
- infinity_context_server/public_benchmark.py +2532 -0
- infinity_context_server/public_benchmark_artifacts.py +91 -0
- infinity_context_server/public_benchmark_case_diagnostics.py +231 -0
- infinity_context_server/public_benchmark_checkpoint.py +751 -0
- infinity_context_server/public_benchmark_environment.py +102 -0
- infinity_context_server/public_benchmark_execution.py +445 -0
- infinity_context_server/public_benchmark_http.py +39 -0
- infinity_context_server/public_benchmark_manifest.py +129 -0
- infinity_context_server/public_benchmark_metrics.py +645 -0
- infinity_context_server/public_benchmark_metrics_policy.py +117 -0
- infinity_context_server/public_benchmark_models.py +112 -0
- infinity_context_server/public_benchmark_progress.py +224 -0
- infinity_context_server/public_benchmark_results.py +76 -0
- infinity_context_server/public_benchmark_run_diagnostics.py +163 -0
- infinity_context_server/public_benchmark_selection.py +379 -0
- infinity_context_server/public_benchmark_transport.py +62 -0
- infinity_context_server/public_benchmark_unsupported.py +228 -0
- infinity_context_server/ranked_evidence_answer_support.py +665 -0
- infinity_context_server/ranked_evidence_document_seed_contract.py +30 -0
- infinity_context_server/ranked_evidence_evaluator_helpers.py +135 -0
- infinity_context_server/ranked_evidence_retrieval_request.py +36 -0
- infinity_context_server/ranked_evidence_seed_case.py +109 -0
- infinity_context_server/ranked_evidence_semantic_gate.py +980 -0
- infinity_context_server/ranked_evidence_semantic_gate_cli.py +137 -0
- infinity_context_server/ranked_evidence_semantic_gate_decision.py +163 -0
- infinity_context_server/ranked_evidence_semantic_metrics.py +375 -0
- infinity_context_server/ranked_evidence_session_identity.py +100 -0
- infinity_context_server/storage_maintenance.py +187 -0
- infinity_context_server/top_evidence_dataset_profile.py +442 -0
- infinity_context_server/top_evidence_policy.py +274 -0
- infinity_context_server/top_evidence_preflight.py +693 -0
- infinity_context_server/web/assets/memory-browser-capture.js +252 -0
- infinity_context_server/web/assets/memory-browser-operations.js +143 -0
- infinity_context_server/web/assets/memory-browser-review.js +687 -0
- infinity_context_server/web/assets/memory-browser.css +854 -0
- infinity_context_server/web/assets/memory-browser.js +3299 -0
- infinity_context_server/web/index.html +261 -0
- infinity_context_server/web_ui.py +29 -0
- infinity_context_server/worker.py +380 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
CREATE TABLE memory_spaces (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
slug VARCHAR(160) NOT NULL UNIQUE,
|
|
4
|
+
name VARCHAR(240) NOT NULL,
|
|
5
|
+
status VARCHAR(40) NOT NULL,
|
|
6
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
7
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
CREATE TABLE memory_scopes (
|
|
11
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
12
|
+
space_id VARCHAR(80) NOT NULL REFERENCES memory_spaces(id),
|
|
13
|
+
external_ref VARCHAR(200) NOT NULL,
|
|
14
|
+
name VARCHAR(240) NOT NULL,
|
|
15
|
+
status VARCHAR(40) NOT NULL,
|
|
16
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
17
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
18
|
+
CONSTRAINT uq_memory_scope_external_ref UNIQUE (space_id, external_ref)
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE TABLE memory_facts (
|
|
22
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
23
|
+
space_id VARCHAR(80) NOT NULL,
|
|
24
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
25
|
+
thread_id VARCHAR(80),
|
|
26
|
+
kind VARCHAR(80) NOT NULL,
|
|
27
|
+
text TEXT NOT NULL,
|
|
28
|
+
status VARCHAR(40) NOT NULL,
|
|
29
|
+
confidence VARCHAR(40) NOT NULL,
|
|
30
|
+
trust_level VARCHAR(40) NOT NULL,
|
|
31
|
+
classification VARCHAR(40) NOT NULL DEFAULT 'internal',
|
|
32
|
+
version INTEGER NOT NULL,
|
|
33
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
34
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
35
|
+
CONSTRAINT ck_fact_version_positive CHECK (version > 0)
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
CREATE INDEX ix_memory_facts_scope_status
|
|
39
|
+
ON memory_facts(space_id, memory_scope_id, status, updated_at);
|
|
40
|
+
|
|
41
|
+
CREATE TABLE memory_source_refs (
|
|
42
|
+
id SERIAL PRIMARY KEY,
|
|
43
|
+
fact_id VARCHAR(80) NOT NULL REFERENCES memory_facts(id),
|
|
44
|
+
fact_version INTEGER NOT NULL,
|
|
45
|
+
source_type VARCHAR(80) NOT NULL,
|
|
46
|
+
source_id VARCHAR(160) NOT NULL,
|
|
47
|
+
chunk_id VARCHAR(160),
|
|
48
|
+
char_start INTEGER,
|
|
49
|
+
char_end INTEGER,
|
|
50
|
+
quote_preview VARCHAR(240)
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
CREATE INDEX ix_memory_source_refs_fact
|
|
54
|
+
ON memory_source_refs(fact_id, fact_version);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE memory_fact_versions (
|
|
57
|
+
id SERIAL PRIMARY KEY,
|
|
58
|
+
fact_id VARCHAR(80) NOT NULL REFERENCES memory_facts(id),
|
|
59
|
+
version INTEGER NOT NULL,
|
|
60
|
+
text TEXT NOT NULL,
|
|
61
|
+
status VARCHAR(40) NOT NULL,
|
|
62
|
+
source_refs_json JSONB NOT NULL,
|
|
63
|
+
reason VARCHAR(240),
|
|
64
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
65
|
+
CONSTRAINT uq_fact_version UNIQUE (fact_id, version)
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
CREATE TABLE memory_outbox (
|
|
69
|
+
id SERIAL PRIMARY KEY,
|
|
70
|
+
event_type VARCHAR(120) NOT NULL,
|
|
71
|
+
aggregate_type VARCHAR(80) NOT NULL,
|
|
72
|
+
aggregate_id VARCHAR(80) NOT NULL,
|
|
73
|
+
aggregate_version INTEGER,
|
|
74
|
+
payload_json JSONB NOT NULL,
|
|
75
|
+
status VARCHAR(40) NOT NULL DEFAULT 'pending',
|
|
76
|
+
attempt_count INTEGER NOT NULL DEFAULT 0,
|
|
77
|
+
next_attempt_at TIMESTAMPTZ NOT NULL,
|
|
78
|
+
last_safe_error VARCHAR(400),
|
|
79
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
80
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
CREATE INDEX ix_memory_outbox_status_next
|
|
84
|
+
ON memory_outbox(status, next_attempt_at);
|
|
85
|
+
|
|
86
|
+
CREATE TABLE memory_idempotency_records (
|
|
87
|
+
id SERIAL PRIMARY KEY,
|
|
88
|
+
space_id VARCHAR(80) NOT NULL,
|
|
89
|
+
key VARCHAR(240) NOT NULL,
|
|
90
|
+
fingerprint VARCHAR(80) NOT NULL,
|
|
91
|
+
result_type VARCHAR(80) NOT NULL,
|
|
92
|
+
result_id VARCHAR(80) NOT NULL,
|
|
93
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
94
|
+
CONSTRAINT uq_idempotency_space_key UNIQUE (space_id, key)
|
|
95
|
+
);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_threads (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
space_id VARCHAR(80) NOT NULL,
|
|
4
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
5
|
+
external_ref VARCHAR(240) NOT NULL,
|
|
6
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
7
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
8
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
9
|
+
CONSTRAINT uq_thread_external_ref UNIQUE (space_id, memory_scope_id, external_ref)
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE INDEX IF NOT EXISTS ix_memory_threads_scope_status
|
|
13
|
+
ON memory_threads (space_id, memory_scope_id, status);
|
|
14
|
+
|
|
15
|
+
CREATE TABLE IF NOT EXISTS memory_episodes (
|
|
16
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
17
|
+
space_id VARCHAR(80) NOT NULL,
|
|
18
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
19
|
+
thread_id VARCHAR(80) NOT NULL,
|
|
20
|
+
source_type VARCHAR(80) NOT NULL,
|
|
21
|
+
source_external_id VARCHAR(240) NOT NULL,
|
|
22
|
+
text TEXT NOT NULL,
|
|
23
|
+
speaker VARCHAR(40) NOT NULL,
|
|
24
|
+
trust_level VARCHAR(40) NOT NULL,
|
|
25
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
26
|
+
occurred_at TIMESTAMPTZ NOT NULL,
|
|
27
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
28
|
+
metadata_json JSONB NOT NULL,
|
|
29
|
+
CONSTRAINT uq_episode_source UNIQUE (space_id, memory_scope_id, thread_id, source_external_id)
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
CREATE INDEX IF NOT EXISTS ix_memory_episodes_thread_status
|
|
33
|
+
ON memory_episodes (thread_id, status);
|
|
34
|
+
|
|
35
|
+
CREATE TABLE IF NOT EXISTS memory_documents (
|
|
36
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
37
|
+
space_id VARCHAR(80) NOT NULL,
|
|
38
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
39
|
+
thread_id VARCHAR(80),
|
|
40
|
+
title VARCHAR(300) NOT NULL,
|
|
41
|
+
source_type VARCHAR(80) NOT NULL,
|
|
42
|
+
source_external_id VARCHAR(240) NOT NULL,
|
|
43
|
+
content_hash VARCHAR(80) NOT NULL,
|
|
44
|
+
classification VARCHAR(40) NOT NULL DEFAULT 'unknown',
|
|
45
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
46
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
47
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_document_content_hash_memory_scope_wide
|
|
51
|
+
ON memory_documents (space_id, memory_scope_id, content_hash)
|
|
52
|
+
WHERE thread_id IS NULL AND status != 'deleted';
|
|
53
|
+
|
|
54
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_document_content_hash_thread
|
|
55
|
+
ON memory_documents (space_id, memory_scope_id, thread_id, content_hash)
|
|
56
|
+
WHERE thread_id IS NOT NULL AND status != 'deleted';
|
|
57
|
+
|
|
58
|
+
CREATE INDEX IF NOT EXISTS ix_memory_documents_scope_status
|
|
59
|
+
ON memory_documents (space_id, memory_scope_id, status);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE IF NOT EXISTS memory_chunks (
|
|
62
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
63
|
+
space_id VARCHAR(80) NOT NULL,
|
|
64
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
65
|
+
thread_id VARCHAR(80),
|
|
66
|
+
document_id VARCHAR(80),
|
|
67
|
+
episode_id VARCHAR(80),
|
|
68
|
+
source_type VARCHAR(80) NOT NULL,
|
|
69
|
+
source_external_id VARCHAR(240) NOT NULL,
|
|
70
|
+
source_hash VARCHAR(80) NOT NULL,
|
|
71
|
+
kind VARCHAR(80) NOT NULL,
|
|
72
|
+
text TEXT NOT NULL,
|
|
73
|
+
normalized_text TEXT NOT NULL,
|
|
74
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
75
|
+
sequence INTEGER NOT NULL,
|
|
76
|
+
char_start INTEGER NOT NULL,
|
|
77
|
+
char_end INTEGER NOT NULL,
|
|
78
|
+
token_estimate INTEGER NOT NULL,
|
|
79
|
+
classification VARCHAR(40) NOT NULL DEFAULT 'unknown',
|
|
80
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
81
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
82
|
+
metadata_json JSONB NOT NULL,
|
|
83
|
+
CONSTRAINT uq_chunk_source_hash UNIQUE (space_id, memory_scope_id, source_hash),
|
|
84
|
+
CONSTRAINT ck_chunk_owner CHECK (
|
|
85
|
+
(document_id IS NOT NULL AND episode_id IS NULL)
|
|
86
|
+
OR (document_id IS NULL AND episode_id IS NOT NULL)
|
|
87
|
+
)
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
CREATE INDEX IF NOT EXISTS ix_memory_chunks_scope_status
|
|
91
|
+
ON memory_chunks (space_id, memory_scope_id, status);
|
|
92
|
+
|
|
93
|
+
CREATE INDEX IF NOT EXISTS ix_memory_chunks_thread_status
|
|
94
|
+
ON memory_chunks (thread_id, status);
|
|
95
|
+
|
|
96
|
+
CREATE INDEX IF NOT EXISTS ix_memory_chunks_document
|
|
97
|
+
ON memory_chunks (document_id, status, sequence);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_suggestions (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
space_id VARCHAR(80) NOT NULL,
|
|
4
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
5
|
+
candidate_text TEXT NOT NULL,
|
|
6
|
+
kind VARCHAR(80) NOT NULL,
|
|
7
|
+
status VARCHAR(40) NOT NULL,
|
|
8
|
+
source_refs_json JSONB NOT NULL,
|
|
9
|
+
confidence VARCHAR(40) NOT NULL,
|
|
10
|
+
trust_level VARCHAR(40) NOT NULL,
|
|
11
|
+
safe_reason VARCHAR(320) NOT NULL,
|
|
12
|
+
target_fact_id VARCHAR(80),
|
|
13
|
+
target_fact_version INTEGER,
|
|
14
|
+
review_reason VARCHAR(320),
|
|
15
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
16
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
17
|
+
reviewed_at TIMESTAMPTZ
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS ix_memory_suggestions_scope_status
|
|
21
|
+
ON memory_suggestions (space_id, memory_scope_id, status);
|
|
22
|
+
|
|
23
|
+
CREATE INDEX IF NOT EXISTS ix_memory_suggestions_target
|
|
24
|
+
ON memory_suggestions (target_fact_id, status);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
CREATE TABLE memory_service_tokens (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
space_id VARCHAR(80),
|
|
4
|
+
memory_scope_ids_json JSONB,
|
|
5
|
+
description VARCHAR(240) NOT NULL,
|
|
6
|
+
token_hash VARCHAR(80) UNIQUE NOT NULL,
|
|
7
|
+
permissions_json JSONB,
|
|
8
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
9
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
10
|
+
last_used_at TIMESTAMPTZ,
|
|
11
|
+
expires_at TIMESTAMPTZ,
|
|
12
|
+
revoked_at TIMESTAMPTZ
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
CREATE INDEX ix_memory_service_tokens_status
|
|
16
|
+
ON memory_service_tokens(status, created_at);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
ALTER TABLE memory_facts
|
|
2
|
+
ADD COLUMN IF NOT EXISTS classification VARCHAR(40) NOT NULL DEFAULT 'internal';
|
|
3
|
+
|
|
4
|
+
ALTER TABLE memory_documents
|
|
5
|
+
ADD COLUMN IF NOT EXISTS classification VARCHAR(40) NOT NULL DEFAULT 'unknown';
|
|
6
|
+
|
|
7
|
+
ALTER TABLE memory_chunks
|
|
8
|
+
ADD COLUMN IF NOT EXISTS classification VARCHAR(40) NOT NULL DEFAULT 'unknown';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ALTER TABLE memory_outbox
|
|
2
|
+
ADD COLUMN IF NOT EXISTS workload_class VARCHAR(80) NOT NULL DEFAULT 'projection';
|
|
3
|
+
|
|
4
|
+
ALTER TABLE memory_outbox
|
|
5
|
+
ADD COLUMN IF NOT EXISTS fairness_key VARCHAR(160);
|
|
6
|
+
|
|
7
|
+
UPDATE memory_outbox
|
|
8
|
+
SET fairness_key = aggregate_type || ':' || aggregate_id
|
|
9
|
+
WHERE fairness_key IS NULL;
|
|
10
|
+
|
|
11
|
+
ALTER TABLE memory_outbox
|
|
12
|
+
ADD COLUMN IF NOT EXISTS last_safe_diagnostic_code VARCHAR(120);
|
|
13
|
+
|
|
14
|
+
CREATE INDEX IF NOT EXISTS ix_memory_outbox_workload_fairness
|
|
15
|
+
ON memory_outbox(status, workload_class, fairness_key, next_attempt_at);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
ALTER TABLE memory_facts
|
|
2
|
+
ADD COLUMN IF NOT EXISTS category VARCHAR(80);
|
|
3
|
+
|
|
4
|
+
ALTER TABLE memory_facts
|
|
5
|
+
ADD COLUMN IF NOT EXISTS tags_json JSON NOT NULL DEFAULT '[]';
|
|
6
|
+
|
|
7
|
+
ALTER TABLE memory_facts
|
|
8
|
+
ADD COLUMN IF NOT EXISTS ttl_policy VARCHAR(80);
|
|
9
|
+
|
|
10
|
+
ALTER TABLE memory_facts
|
|
11
|
+
ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
|
|
12
|
+
|
|
13
|
+
CREATE INDEX IF NOT EXISTS ix_memory_facts_taxonomy
|
|
14
|
+
ON memory_facts (space_id, memory_scope_id, category, status);
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_asset_extraction_jobs (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
asset_id VARCHAR(80) NOT NULL,
|
|
4
|
+
space_id VARCHAR(80) NOT NULL,
|
|
5
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
6
|
+
thread_id VARCHAR(80),
|
|
7
|
+
parser_profile VARCHAR(80) NOT NULL,
|
|
8
|
+
parser_config_hash VARCHAR(80) NOT NULL,
|
|
9
|
+
source_sha256_hex VARCHAR(80) NOT NULL,
|
|
10
|
+
parser_name VARCHAR(120),
|
|
11
|
+
parser_version VARCHAR(120),
|
|
12
|
+
model_version VARCHAR(120),
|
|
13
|
+
status VARCHAR(40) NOT NULL DEFAULT 'pending',
|
|
14
|
+
attempt_count INTEGER NOT NULL DEFAULT 0,
|
|
15
|
+
safe_error_code VARCHAR(120),
|
|
16
|
+
safe_error_message VARCHAR(500),
|
|
17
|
+
result_document_ids_json JSON NOT NULL DEFAULT '[]',
|
|
18
|
+
metadata_json JSON NOT NULL DEFAULT '{}',
|
|
19
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
20
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
21
|
+
started_at TIMESTAMPTZ,
|
|
22
|
+
finished_at TIMESTAMPTZ,
|
|
23
|
+
lease_owner VARCHAR(120),
|
|
24
|
+
lease_expires_at TIMESTAMPTZ,
|
|
25
|
+
heartbeat_at TIMESTAMPTZ,
|
|
26
|
+
retry_after_at TIMESTAMPTZ,
|
|
27
|
+
cancellation_requested_at TIMESTAMPTZ,
|
|
28
|
+
retry_disposition VARCHAR(40)
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_jobs_asset_status
|
|
32
|
+
ON memory_asset_extraction_jobs(asset_id, status, created_at);
|
|
33
|
+
|
|
34
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_jobs_scope_status
|
|
35
|
+
ON memory_asset_extraction_jobs(space_id, memory_scope_id, status, updated_at);
|
|
36
|
+
|
|
37
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_asset_extraction_jobs_active_profile
|
|
38
|
+
ON memory_asset_extraction_jobs(
|
|
39
|
+
asset_id,
|
|
40
|
+
parser_profile,
|
|
41
|
+
parser_config_hash,
|
|
42
|
+
source_sha256_hex
|
|
43
|
+
)
|
|
44
|
+
WHERE status IN ('pending', 'running', 'succeeded');
|
|
45
|
+
|
|
46
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_jobs_running_lease
|
|
47
|
+
ON memory_asset_extraction_jobs(status, lease_expires_at, heartbeat_at);
|
|
48
|
+
|
|
49
|
+
CREATE TABLE IF NOT EXISTS memory_asset_extraction_artifacts (
|
|
50
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
51
|
+
job_id VARCHAR(80) NOT NULL,
|
|
52
|
+
asset_id VARCHAR(80) NOT NULL,
|
|
53
|
+
artifact_type VARCHAR(80) NOT NULL,
|
|
54
|
+
storage_backend VARCHAR(80) NOT NULL,
|
|
55
|
+
storage_key VARCHAR(500) NOT NULL,
|
|
56
|
+
sha256_hex VARCHAR(80) NOT NULL,
|
|
57
|
+
byte_size INTEGER NOT NULL,
|
|
58
|
+
metadata_json JSON NOT NULL DEFAULT '{}',
|
|
59
|
+
created_at TIMESTAMPTZ NOT NULL
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_artifacts_job
|
|
63
|
+
ON memory_asset_extraction_artifacts(job_id, artifact_type);
|
|
64
|
+
|
|
65
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_artifacts_asset
|
|
66
|
+
ON memory_asset_extraction_artifacts(asset_id, created_at);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
2
|
+
ADD COLUMN IF NOT EXISTS lease_owner VARCHAR(120);
|
|
3
|
+
|
|
4
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
5
|
+
ADD COLUMN IF NOT EXISTS lease_expires_at TIMESTAMPTZ;
|
|
6
|
+
|
|
7
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
8
|
+
ADD COLUMN IF NOT EXISTS heartbeat_at TIMESTAMPTZ;
|
|
9
|
+
|
|
10
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
11
|
+
ADD COLUMN IF NOT EXISTS retry_after_at TIMESTAMPTZ;
|
|
12
|
+
|
|
13
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
14
|
+
ADD COLUMN IF NOT EXISTS cancellation_requested_at TIMESTAMPTZ;
|
|
15
|
+
|
|
16
|
+
ALTER TABLE memory_asset_extraction_jobs
|
|
17
|
+
ADD COLUMN IF NOT EXISTS retry_disposition VARCHAR(40);
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS ix_asset_extraction_jobs_running_lease
|
|
20
|
+
ON memory_asset_extraction_jobs(status, lease_expires_at, heartbeat_at);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_usage_records (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
subject_type VARCHAR(40) NOT NULL,
|
|
4
|
+
subject_id VARCHAR(80) NOT NULL,
|
|
5
|
+
space_id VARCHAR(80) NOT NULL,
|
|
6
|
+
memory_scope_id VARCHAR(80),
|
|
7
|
+
resource VARCHAR(80) NOT NULL,
|
|
8
|
+
quantity INTEGER NOT NULL,
|
|
9
|
+
status VARCHAR(40) NOT NULL,
|
|
10
|
+
source_type VARCHAR(80) NOT NULL,
|
|
11
|
+
source_id VARCHAR(120) NOT NULL,
|
|
12
|
+
idempotency_key VARCHAR(240) NOT NULL,
|
|
13
|
+
window_start TIMESTAMPTZ NOT NULL,
|
|
14
|
+
window_end TIMESTAMPTZ NOT NULL,
|
|
15
|
+
metadata_json JSON NOT NULL DEFAULT '{}',
|
|
16
|
+
created_at TIMESTAMPTZ NOT NULL
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_memory_usage_idempotency
|
|
20
|
+
ON memory_usage_records(idempotency_key);
|
|
21
|
+
|
|
22
|
+
CREATE INDEX IF NOT EXISTS ix_memory_usage_subject_window
|
|
23
|
+
ON memory_usage_records(
|
|
24
|
+
subject_type,
|
|
25
|
+
subject_id,
|
|
26
|
+
resource,
|
|
27
|
+
status,
|
|
28
|
+
window_start,
|
|
29
|
+
window_end
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
CREATE INDEX IF NOT EXISTS ix_memory_usage_space_created
|
|
33
|
+
ON memory_usage_records(space_id, created_at);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_context_link_suggestions (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
space_id VARCHAR(80) NOT NULL,
|
|
4
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
5
|
+
source_type VARCHAR(80) NOT NULL,
|
|
6
|
+
source_id VARCHAR(160) NOT NULL,
|
|
7
|
+
target_type VARCHAR(80) NOT NULL,
|
|
8
|
+
target_id VARCHAR(160) NOT NULL,
|
|
9
|
+
relation_type VARCHAR(80) NOT NULL,
|
|
10
|
+
confidence VARCHAR(40) NOT NULL DEFAULT 'medium',
|
|
11
|
+
reason VARCHAR(320) NOT NULL,
|
|
12
|
+
score DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
13
|
+
status VARCHAR(40) NOT NULL DEFAULT 'pending',
|
|
14
|
+
metadata_json JSON NOT NULL DEFAULT '{}',
|
|
15
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
16
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
17
|
+
reviewed_at TIMESTAMPTZ,
|
|
18
|
+
review_reason VARCHAR(320)
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_context_link_suggestion_pending
|
|
22
|
+
ON memory_context_link_suggestions(
|
|
23
|
+
space_id,
|
|
24
|
+
memory_scope_id,
|
|
25
|
+
source_type,
|
|
26
|
+
source_id,
|
|
27
|
+
target_type,
|
|
28
|
+
target_id,
|
|
29
|
+
relation_type
|
|
30
|
+
)
|
|
31
|
+
WHERE status = 'pending';
|
|
32
|
+
|
|
33
|
+
CREATE INDEX IF NOT EXISTS ix_context_link_suggestions_source
|
|
34
|
+
ON memory_context_link_suggestions(
|
|
35
|
+
space_id,
|
|
36
|
+
memory_scope_id,
|
|
37
|
+
source_type,
|
|
38
|
+
source_id,
|
|
39
|
+
status,
|
|
40
|
+
updated_at
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
CREATE INDEX IF NOT EXISTS ix_context_link_suggestions_status
|
|
44
|
+
ON memory_context_link_suggestions(space_id, memory_scope_id, status, updated_at);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_anchors (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
space_id VARCHAR(80) NOT NULL,
|
|
4
|
+
memory_scope_id VARCHAR(80) NOT NULL,
|
|
5
|
+
kind VARCHAR(40) NOT NULL,
|
|
6
|
+
normalized_key VARCHAR(160) NOT NULL,
|
|
7
|
+
label VARCHAR(240) NOT NULL,
|
|
8
|
+
aliases_json JSON NOT NULL DEFAULT '[]',
|
|
9
|
+
description VARCHAR(500),
|
|
10
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
11
|
+
confidence VARCHAR(40) NOT NULL DEFAULT 'medium',
|
|
12
|
+
evidence_refs_json JSON NOT NULL DEFAULT '[]',
|
|
13
|
+
observed_at TIMESTAMPTZ,
|
|
14
|
+
valid_from TIMESTAMPTZ,
|
|
15
|
+
valid_to TIMESTAMPTZ,
|
|
16
|
+
metadata_json JSON NOT NULL DEFAULT '{}',
|
|
17
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
18
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_memory_anchor_active_key
|
|
22
|
+
ON memory_anchors(space_id, memory_scope_id, kind, normalized_key)
|
|
23
|
+
WHERE status = 'active';
|
|
24
|
+
|
|
25
|
+
CREATE INDEX IF NOT EXISTS ix_memory_anchors_scope_kind
|
|
26
|
+
ON memory_anchors(space_id, memory_scope_id, kind, status, updated_at);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_users (
|
|
2
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
3
|
+
external_ref VARCHAR(200) NOT NULL,
|
|
4
|
+
display_name VARCHAR(240) NOT NULL,
|
|
5
|
+
email VARCHAR(320),
|
|
6
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
7
|
+
metadata_json JSON NOT NULL,
|
|
8
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
9
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_memory_user_external_ref
|
|
13
|
+
ON memory_users(external_ref);
|
|
14
|
+
|
|
15
|
+
CREATE INDEX IF NOT EXISTS ix_memory_users_status
|
|
16
|
+
ON memory_users(status, updated_at);
|
|
17
|
+
|
|
18
|
+
CREATE TABLE IF NOT EXISTS memory_space_memberships (
|
|
19
|
+
id VARCHAR(80) PRIMARY KEY,
|
|
20
|
+
space_id VARCHAR(80) NOT NULL REFERENCES memory_spaces(id),
|
|
21
|
+
user_id VARCHAR(80) NOT NULL REFERENCES memory_users(id),
|
|
22
|
+
role VARCHAR(40) NOT NULL,
|
|
23
|
+
status VARCHAR(40) NOT NULL DEFAULT 'active',
|
|
24
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
25
|
+
updated_at TIMESTAMPTZ NOT NULL
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_memory_space_membership_active_user
|
|
29
|
+
ON memory_space_memberships(space_id, user_id)
|
|
30
|
+
WHERE status = 'active';
|
|
31
|
+
|
|
32
|
+
CREATE INDEX IF NOT EXISTS ix_memory_space_memberships_space
|
|
33
|
+
ON memory_space_memberships(space_id, status, updated_at);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX IF NOT EXISTS ix_memory_space_memberships_user
|
|
36
|
+
ON memory_space_memberships(user_id, status, updated_at);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS memory_comparison_benchmark_runs (
|
|
2
|
+
run_id_sha256 VARCHAR(64) PRIMARY KEY,
|
|
3
|
+
binding_commitment_sha256 VARCHAR(64) NOT NULL,
|
|
4
|
+
infinity_target_identity_sha256 VARCHAR(64) NOT NULL,
|
|
5
|
+
space_id VARCHAR(80) NOT NULL REFERENCES memory_spaces(id),
|
|
6
|
+
space_slug VARCHAR(160) NOT NULL,
|
|
7
|
+
idempotency_key_sha256 VARCHAR(64) NOT NULL,
|
|
8
|
+
registration_fingerprint_sha256 VARCHAR(64) NOT NULL,
|
|
9
|
+
state VARCHAR(40) NOT NULL,
|
|
10
|
+
cleanup_fingerprint_sha256 VARCHAR(64),
|
|
11
|
+
cleanup_receipt_json JSON,
|
|
12
|
+
created_at TIMESTAMPTZ NOT NULL,
|
|
13
|
+
updated_at TIMESTAMPTZ NOT NULL,
|
|
14
|
+
CONSTRAINT ck_memory_comparison_benchmark_run_state
|
|
15
|
+
CHECK (state IN ('active', 'cleanup_pending')),
|
|
16
|
+
CONSTRAINT ck_memory_comparison_benchmark_run_cleanup_state CHECK (
|
|
17
|
+
(state = 'active' AND cleanup_fingerprint_sha256 IS NULL
|
|
18
|
+
AND cleanup_receipt_json IS NULL)
|
|
19
|
+
OR
|
|
20
|
+
(state = 'cleanup_pending' AND cleanup_fingerprint_sha256 IS NOT NULL
|
|
21
|
+
AND cleanup_receipt_json IS NOT NULL)
|
|
22
|
+
),
|
|
23
|
+
CONSTRAINT uq_memory_comparison_benchmark_run_space_id UNIQUE (space_id),
|
|
24
|
+
CONSTRAINT uq_memory_comparison_benchmark_run_space_slug UNIQUE (space_slug),
|
|
25
|
+
CONSTRAINT uq_memory_comparison_benchmark_run_idempotency
|
|
26
|
+
UNIQUE (idempotency_key_sha256)
|
|
27
|
+
);
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
CREATE OR REPLACE FUNCTION memory_comparison_enforce_benchmark_writer_fence()
|
|
2
|
+
RETURNS TRIGGER
|
|
3
|
+
LANGUAGE plpgsql
|
|
4
|
+
AS $$
|
|
5
|
+
DECLARE
|
|
6
|
+
registry_state VARCHAR(40);
|
|
7
|
+
old_space_id VARCHAR(80);
|
|
8
|
+
new_space_id VARCHAR(80);
|
|
9
|
+
BEGIN
|
|
10
|
+
IF TG_TABLE_NAME = 'memory_spaces' THEN
|
|
11
|
+
new_space_id := NEW.id;
|
|
12
|
+
IF TG_OP = 'UPDATE' THEN
|
|
13
|
+
old_space_id := OLD.id;
|
|
14
|
+
END IF;
|
|
15
|
+
ELSE
|
|
16
|
+
new_space_id := NEW.space_id;
|
|
17
|
+
IF TG_OP = 'UPDATE' THEN
|
|
18
|
+
old_space_id := OLD.space_id;
|
|
19
|
+
END IF;
|
|
20
|
+
END IF;
|
|
21
|
+
|
|
22
|
+
IF TG_OP = 'UPDATE' AND old_space_id IS DISTINCT FROM new_space_id THEN
|
|
23
|
+
IF EXISTS (
|
|
24
|
+
SELECT 1
|
|
25
|
+
FROM memory_comparison_benchmark_runs AS benchmark_run
|
|
26
|
+
WHERE benchmark_run.space_id IN (old_space_id, new_space_id)
|
|
27
|
+
) THEN
|
|
28
|
+
RAISE EXCEPTION 'benchmark canonical space identity is immutable'
|
|
29
|
+
USING
|
|
30
|
+
ERRCODE = '23514',
|
|
31
|
+
CONSTRAINT = 'ck_memory_comparison_benchmark_run_writer_fence';
|
|
32
|
+
END IF;
|
|
33
|
+
END IF;
|
|
34
|
+
|
|
35
|
+
IF NEW.status IS DISTINCT FROM 'active' THEN
|
|
36
|
+
RETURN NEW;
|
|
37
|
+
END IF;
|
|
38
|
+
|
|
39
|
+
BEGIN
|
|
40
|
+
SELECT benchmark_run.state
|
|
41
|
+
INTO registry_state
|
|
42
|
+
FROM memory_comparison_benchmark_runs AS benchmark_run
|
|
43
|
+
WHERE benchmark_run.space_id = new_space_id
|
|
44
|
+
FOR SHARE NOWAIT;
|
|
45
|
+
EXCEPTION
|
|
46
|
+
WHEN lock_not_available THEN
|
|
47
|
+
RAISE EXCEPTION 'benchmark canonical writer fence rejected active data'
|
|
48
|
+
USING
|
|
49
|
+
ERRCODE = '23514',
|
|
50
|
+
CONSTRAINT = 'ck_memory_comparison_benchmark_run_writer_fence';
|
|
51
|
+
END;
|
|
52
|
+
|
|
53
|
+
IF registry_state = 'cleanup_pending' THEN
|
|
54
|
+
RAISE EXCEPTION 'benchmark canonical writer fence rejected active data'
|
|
55
|
+
USING
|
|
56
|
+
ERRCODE = '23514',
|
|
57
|
+
CONSTRAINT = 'ck_memory_comparison_benchmark_run_writer_fence';
|
|
58
|
+
END IF;
|
|
59
|
+
|
|
60
|
+
RETURN NEW;
|
|
61
|
+
END;
|
|
62
|
+
$$;
|
|
63
|
+
|
|
64
|
+
DROP TRIGGER IF EXISTS trg_memory_spaces_benchmark_writer_fence ON memory_spaces;
|
|
65
|
+
CREATE TRIGGER trg_memory_spaces_benchmark_writer_fence
|
|
66
|
+
BEFORE INSERT OR UPDATE OF id, status ON memory_spaces
|
|
67
|
+
FOR EACH ROW
|
|
68
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
69
|
+
|
|
70
|
+
DROP TRIGGER IF EXISTS trg_memory_scopes_benchmark_writer_fence ON memory_scopes;
|
|
71
|
+
CREATE TRIGGER trg_memory_scopes_benchmark_writer_fence
|
|
72
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_scopes
|
|
73
|
+
FOR EACH ROW
|
|
74
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
75
|
+
|
|
76
|
+
DROP TRIGGER IF EXISTS trg_memory_threads_benchmark_writer_fence ON memory_threads;
|
|
77
|
+
CREATE TRIGGER trg_memory_threads_benchmark_writer_fence
|
|
78
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_threads
|
|
79
|
+
FOR EACH ROW
|
|
80
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
81
|
+
|
|
82
|
+
DROP TRIGGER IF EXISTS trg_memory_facts_benchmark_writer_fence ON memory_facts;
|
|
83
|
+
CREATE TRIGGER trg_memory_facts_benchmark_writer_fence
|
|
84
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_facts
|
|
85
|
+
FOR EACH ROW
|
|
86
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
87
|
+
|
|
88
|
+
DROP TRIGGER IF EXISTS trg_memory_episodes_benchmark_writer_fence ON memory_episodes;
|
|
89
|
+
CREATE TRIGGER trg_memory_episodes_benchmark_writer_fence
|
|
90
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_episodes
|
|
91
|
+
FOR EACH ROW
|
|
92
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
93
|
+
|
|
94
|
+
DROP TRIGGER IF EXISTS trg_memory_documents_benchmark_writer_fence ON memory_documents;
|
|
95
|
+
CREATE TRIGGER trg_memory_documents_benchmark_writer_fence
|
|
96
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_documents
|
|
97
|
+
FOR EACH ROW
|
|
98
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|
|
99
|
+
|
|
100
|
+
DROP TRIGGER IF EXISTS trg_memory_chunks_benchmark_writer_fence ON memory_chunks;
|
|
101
|
+
CREATE TRIGGER trg_memory_chunks_benchmark_writer_fence
|
|
102
|
+
BEFORE INSERT OR UPDATE OF space_id, status ON memory_chunks
|
|
103
|
+
FOR EACH ROW
|
|
104
|
+
EXECUTE FUNCTION memory_comparison_enforce_benchmark_writer_fence();
|