contextsynapse 1.0.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.
- contextsynapse/__init__.py +107 -0
- contextsynapse/__main__.py +9 -0
- contextsynapse/a2a/__init__.py +28 -0
- contextsynapse/a2a/client.py +120 -0
- contextsynapse/a2a/discovery.py +128 -0
- contextsynapse/a2a/handlers.py +164 -0
- contextsynapse/a2a/models.py +246 -0
- contextsynapse/a2a/streaming.py +92 -0
- contextsynapse/a2a/task_manager.py +275 -0
- contextsynapse/adapters/__init__.py +98 -0
- contextsynapse/adapters/_base.py +298 -0
- contextsynapse/adapters/autogen/__init__.py +4 -0
- contextsynapse/adapters/autogen/tools.py +34 -0
- contextsynapse/adapters/crewai/__init__.py +4 -0
- contextsynapse/adapters/crewai/tools.py +63 -0
- contextsynapse/adapters/langchain/__init__.py +19 -0
- contextsynapse/adapters/langchain/message_history.py +17 -0
- contextsynapse/adapters/langchain/retriever.py +158 -0
- contextsynapse/adapters/langchain/tools.py +43 -0
- contextsynapse/adapters/langgraph/__init__.py +21 -0
- contextsynapse/adapters/langgraph/checkpoint.py +223 -0
- contextsynapse/adapters/langgraph/context_tools.py +341 -0
- contextsynapse/adapters/langgraph/message_history.py +138 -0
- contextsynapse/adapters/langgraph/tools.py +43 -0
- contextsynapse/adapters/llamaindex/__init__.py +4 -0
- contextsynapse/adapters/llamaindex/tools.py +64 -0
- contextsynapse/adapters/openai/__init__.py +24 -0
- contextsynapse/adapters/openai/tools.py +206 -0
- contextsynapse/adapters/pydantic_ai/__init__.py +4 -0
- contextsynapse/adapters/pydantic_ai/tools.py +36 -0
- contextsynapse/adapters/swarm/__init__.py +4 -0
- contextsynapse/adapters/swarm/tools.py +44 -0
- contextsynapse/agents/__init__.py +6 -0
- contextsynapse/agents/auto_capture.py +80 -0
- contextsynapse/agents/dispatcher.py +299 -0
- contextsynapse/agents/notifications.py +112 -0
- contextsynapse/aiql/__init__.py +71 -0
- contextsynapse/aiql/cache.py +341 -0
- contextsynapse/aiql/compiler/__init__.py +62 -0
- contextsynapse/aiql/compiler/optimizer.py +126 -0
- contextsynapse/aiql/compiler/planner.py +366 -0
- contextsynapse/aiql/compiler/statistics.py +235 -0
- contextsynapse/aiql/compiler/validator.py +425 -0
- contextsynapse/aiql/engine/__init__.py +11 -0
- contextsynapse/aiql/engine/chunk_storage.py +2584 -0
- contextsynapse/aiql/engine/executor.py +7737 -0
- contextsynapse/aiql/engine/extraction_integration.py +442 -0
- contextsynapse/aiql/engine/graph_builder.py +405 -0
- contextsynapse/aiql/engine/node_creation_from_normalized.py +691 -0
- contextsynapse/aiql/engine/performance_monitor.py +289 -0
- contextsynapse/aiql/engine/postprocessing.py +365 -0
- contextsynapse/aiql/engine/ray_stage_executors.py +918 -0
- contextsynapse/aiql/engine/redis_cache.py +106 -0
- contextsynapse/aiql/engine/streaming_json.py +366 -0
- contextsynapse/aiql/engine/streaming_parquet.py +568 -0
- contextsynapse/aiql/engine/streaming_ray_chunking.py +419 -0
- contextsynapse/aiql/grammar/__init__.py +14 -0
- contextsynapse/aiql/grammar/aiql_grammar.py +1822 -0
- contextsynapse/aiql/grammar/base.py +71 -0
- contextsynapse/aiql/parser/__init__.py +46 -0
- contextsynapse/aiql/parser/aiql_parser.py +11330 -0
- contextsynapse/aiql/parser/base_parser.py +47 -0
- contextsynapse/api/__init__.py +5 -0
- contextsynapse/api/a2a_router.py +233 -0
- contextsynapse/api/admin_router.py +140 -0
- contextsynapse/api/agent_worker_router.py +978 -0
- contextsynapse/api/algorithms_router.py +317 -0
- contextsynapse/api/api.py +4144 -0
- contextsynapse/api/audit.py +204 -0
- contextsynapse/api/auth.py +441 -0
- contextsynapse/api/auth_router.py +537 -0
- contextsynapse/api/billing.py +261 -0
- contextsynapse/api/billing_router.py +275 -0
- contextsynapse/api/boundary_router.py +452 -0
- contextsynapse/api/cognition_router.py +116 -0
- contextsynapse/api/connector_router.py +237 -0
- contextsynapse/api/context_router.py +1619 -0
- contextsynapse/api/dashboard_router.py +11367 -0
- contextsynapse/api/errors.py +183 -0
- contextsynapse/api/events.py +88 -0
- contextsynapse/api/experiment_bootstrap.py +321 -0
- contextsynapse/api/experiment_orchestrator.py +1078 -0
- contextsynapse/api/experiment_router.py +2089 -0
- contextsynapse/api/feature_gate.py +89 -0
- contextsynapse/api/federation_router.py +108 -0
- contextsynapse/api/integrations.py +567 -0
- contextsynapse/api/integrations_router.py +461 -0
- contextsynapse/api/intelligence_router.py +1028 -0
- contextsynapse/api/metering.py +155 -0
- contextsynapse/api/metrics.py +112 -0
- contextsynapse/api/models.py +38 -0
- contextsynapse/api/monitoring_router.py +174 -0
- contextsynapse/api/pipeline_router.py +1437 -0
- contextsynapse/api/playground_conn.py +116 -0
- contextsynapse/api/projects_router.py +131 -0
- contextsynapse/api/queries_router.py +282 -0
- contextsynapse/api/quota.py +95 -0
- contextsynapse/api/rate_limit.py +64 -0
- contextsynapse/api/search_router.py +261 -0
- contextsynapse/api/shield_router.py +447 -0
- contextsynapse/api/tenant_guard.py +103 -0
- contextsynapse/api/tenant_quotas.py +231 -0
- contextsynapse/api/tenants.py +305 -0
- contextsynapse/api/users.py +646 -0
- contextsynapse/api/v1.py +167 -0
- contextsynapse/api/vertical_builder_router.py +387 -0
- contextsynapse/benchmark/__init__.py +15 -0
- contextsynapse/benchmark/__main__.py +64 -0
- contextsynapse/benchmark/agents.py +338 -0
- contextsynapse/benchmark/live_ab.py +338 -0
- contextsynapse/benchmark/reporter.py +149 -0
- contextsynapse/benchmark/runner.py +264 -0
- contextsynapse/benchmark/savings.py +266 -0
- contextsynapse/benchmark/token_counter.py +212 -0
- contextsynapse/benchmark/workloads.py +289 -0
- contextsynapse/buffer/__init__.py +154 -0
- contextsynapse/buffer/base.py +257 -0
- contextsynapse/buffer/duckdb_buffer.py +246 -0
- contextsynapse/buffer/file_buffer.py +229 -0
- contextsynapse/buffer/lmdb_buffer.py +286 -0
- contextsynapse/buffer/local_buffer.py +154 -0
- contextsynapse/buffer/redis_buffer.py +211 -0
- contextsynapse/buffer/sqlite_buffer.py +266 -0
- contextsynapse/cache.py +2 -0
- contextsynapse/cli/__init__.py +40 -0
- contextsynapse/cli/cli.py +475 -0
- contextsynapse/cli/config_cli.py +177 -0
- contextsynapse/cli/scaffold.py +465 -0
- contextsynapse/cognition/__init__.py +31 -0
- contextsynapse/cognition/derivation.py +55 -0
- contextsynapse/cognition/events.py +135 -0
- contextsynapse/cognition/feedback.py +52 -0
- contextsynapse/cognition/hallucination.py +90 -0
- contextsynapse/cognition/invalidation.py +70 -0
- contextsynapse/cognition/read_tracker.py +50 -0
- contextsynapse/collaboration.py +2 -0
- contextsynapse/comparison.py +2 -0
- contextsynapse/config/__init__.py +10 -0
- contextsynapse/config/connectors/amfi_nav.yaml +18 -0
- contextsynapse/config/connectors/auto_sector.yaml +20 -0
- contextsynapse/config/connectors/banking_sector.yaml +20 -0
- contextsynapse/config/connectors/energy_sector.yaml +20 -0
- contextsynapse/config/connectors/fmcg_sector.yaml +20 -0
- contextsynapse/config/connectors/nsdl_fpi.yaml +9 -0
- contextsynapse/config/connectors/nse_price.yaml +61 -0
- contextsynapse/config/connectors/pharma_sector.yaml +20 -0
- contextsynapse/config/connectors/rbi_dbie.yaml +12 -0
- contextsynapse/config/context_presets/ai_research.json +25 -0
- contextsynapse/config/context_presets/chatgpt_conversations.json +19 -0
- contextsynapse/config/context_presets/claude_conversations.json +19 -0
- contextsynapse/config/context_presets/legal_compliance.json +21 -0
- contextsynapse/config/context_presets/meeting_notes.json +21 -0
- contextsynapse/config/context_presets/slack_engineering.json +21 -0
- contextsynapse/config/context_presets/tech_climate.json +24 -0
- contextsynapse/config/context_presets/toi_politics.json +25 -0
- contextsynapse/config/database_config.py +453 -0
- contextsynapse/config/deployment.py +221 -0
- contextsynapse/config/gpt_action_schema.json +164 -0
- contextsynapse/config/indicators/india_macro.yaml +213 -0
- contextsynapse/config/logging_config.py +88 -0
- contextsynapse/config/mode_config.py +223 -0
- contextsynapse/config/schemas/api_spec.yaml +48 -0
- contextsynapse/config/schemas/architecture_doc.yaml +51 -0
- contextsynapse/config/schemas/chat_history.yaml +90 -0
- contextsynapse/config/schemas/chatgpt_conversation.yaml +101 -0
- contextsynapse/config/schemas/claude_conversation.yaml +148 -0
- contextsynapse/config/schemas/contract.yaml +48 -0
- contextsynapse/config/schemas/conversation.yaml +167 -0
- contextsynapse/config/schemas/database.yaml +74 -0
- contextsynapse/config/schemas/decision.yaml +72 -0
- contextsynapse/config/schemas/ecommerce.yaml +56 -0
- contextsynapse/config/schemas/education.yaml +42 -0
- contextsynapse/config/schemas/healthcare.yaml +133 -0
- contextsynapse/config/schemas/hr_document.yaml +48 -0
- contextsynapse/config/schemas/invoice.yaml +40 -0
- contextsynapse/config/schemas/knowledge_base.yaml +75 -0
- contextsynapse/config/schemas/legal.yaml +42 -0
- contextsynapse/config/schemas/marketing_content.yaml +48 -0
- contextsynapse/config/schemas/meeting_notes.yaml +51 -0
- contextsynapse/config/schemas/news_article.yaml +61 -0
- contextsynapse/config/schemas/real_estate.yaml +49 -0
- contextsynapse/config/schemas/requirements_doc.yaml +48 -0
- contextsynapse/config/schemas/research_paper.yaml +56 -0
- contextsynapse/config/schemas/resume.yaml +49 -0
- contextsynapse/config/schemas/retail.yaml +42 -0
- contextsynapse/config/schemas/rule_meta.yaml +173 -0
- contextsynapse/config/schemas/rules.yaml +72 -0
- contextsynapse/config/schemas/screener_meta.yaml +236 -0
- contextsynapse/config/schemas/sdlc.yaml +103 -0
- contextsynapse/config/schemas/session_graph.yaml +172 -0
- contextsynapse/config/schemas/support_ticket.yaml +48 -0
- contextsynapse/config/schemas/web.yaml +64 -0
- contextsynapse/config/sensors/earnings_calendar.yaml +52 -0
- contextsynapse/config/sensors/global_risk.yaml +53 -0
- contextsynapse/config/sensors/government_policy.yaml +54 -0
- contextsynapse/config/sensors/supply_chain.yaml +50 -0
- contextsynapse/config/sensors/templates/behavioral.yaml +56 -0
- contextsynapse/config/sensors/templates/equity_sentiment.yaml +48 -0
- contextsynapse/config/sensors/templates/global_macro.yaml +47 -0
- contextsynapse/config/sensors/templates/market_data.yaml +118 -0
- contextsynapse/config/sensors/templates/sector_technical.yaml +47 -0
- contextsynapse/config/sensors/weather.yaml +52 -0
- contextsynapse/config/storage_strategy.py +202 -0
- contextsynapse/config/templates/competitive_intel.yaml +39 -0
- contextsynapse/config/templates/geopolitical_risk.yaml +46 -0
- contextsynapse/config/templates/market_analysis.yaml +58 -0
- contextsynapse/connectors/__init__.py +15 -0
- contextsynapse/connectors/api_router.py +121 -0
- contextsynapse/connectors/base.py +357 -0
- contextsynapse/connectors/financial/audio.py +170 -0
- contextsynapse/connectors/financial/youtube.py +272 -0
- contextsynapse/connectors/github.py +164 -0
- contextsynapse/connectors/jira.py +120 -0
- contextsynapse/connectors/kafka_connector.py +124 -0
- contextsynapse/connectors/pipeline_connector.py +747 -0
- contextsynapse/connectors/registry.py +116 -0
- contextsynapse/connectors/scheduler.py +87 -0
- contextsynapse/connectors/universal.py +360 -0
- contextsynapse/context/__init__.py +96 -0
- contextsynapse/context/__main__.py +4 -0
- contextsynapse/context/acl.py +125 -0
- contextsynapse/context/agent_card.py +201 -0
- contextsynapse/context/agent_memory.py +814 -0
- contextsynapse/context/agents.py +472 -0
- contextsynapse/context/agents_redis.py +391 -0
- contextsynapse/context/assembled.py +204 -0
- contextsynapse/context/attribution.py +113 -0
- contextsynapse/context/blob.py +184 -0
- contextsynapse/context/boundaries.py +187 -0
- contextsynapse/context/boundary.py +507 -0
- contextsynapse/context/bundle.py +155 -0
- contextsynapse/context/cli.py +519 -0
- contextsynapse/context/collaboration.py +165 -0
- contextsynapse/context/compiler.py +604 -0
- contextsynapse/context/composite.py +536 -0
- contextsynapse/context/compression.py +147 -0
- contextsynapse/context/context_manager.py +888 -0
- contextsynapse/context/context_schema.py +90 -0
- contextsynapse/context/context_schema.yaml +105 -0
- contextsynapse/context/context_units.py +891 -0
- contextsynapse/context/conversation.py +488 -0
- contextsynapse/context/dedup.py +207 -0
- contextsynapse/context/document_processor.py +698 -0
- contextsynapse/context/embedding_hooks.py +338 -0
- contextsynapse/context/execution_schema.py +274 -0
- contextsynapse/context/fan_out.py +138 -0
- contextsynapse/context/frozen.py +80 -0
- contextsynapse/context/gravity.py +227 -0
- contextsynapse/context/hub.py +1401 -0
- contextsynapse/context/ingest.py +391 -0
- contextsynapse/context/injection.py +226 -0
- contextsynapse/context/interaction_graphifier.py +562 -0
- contextsynapse/context/layers.py +574 -0
- contextsynapse/context/projection.py +1195 -0
- contextsynapse/context/promotion.py +634 -0
- contextsynapse/context/proof.py +131 -0
- contextsynapse/context/propagation.py +577 -0
- contextsynapse/context/pubsub.py +135 -0
- contextsynapse/context/quality.py +1054 -0
- contextsynapse/context/quality_tracker.py +270 -0
- contextsynapse/context/scoping.py +370 -0
- contextsynapse/context/seed.py +992 -0
- contextsynapse/context/session.py +1142 -0
- contextsynapse/context/session_graph.py +593 -0
- contextsynapse/context/session_memory.py +309 -0
- contextsynapse/context/session_resolver.py +111 -0
- contextsynapse/context/skill_learning.py +237 -0
- contextsynapse/context/smart_budget.py +129 -0
- contextsynapse/context/source_policy.py +242 -0
- contextsynapse/context/store_factory.py +53 -0
- contextsynapse/context/sync.py +648 -0
- contextsynapse/context/token.py +236 -0
- contextsynapse/context/vector_integration.py +297 -0
- contextsynapse/context/webhooks.py +194 -0
- contextsynapse/context/working_memory.py +224 -0
- contextsynapse/core/__init__.py +18 -0
- contextsynapse/core/archiver.py +237 -0
- contextsynapse/core/change_stream.py +282 -0
- contextsynapse/core/checkpoint.py +310 -0
- contextsynapse/core/cloud_storage.py +387 -0
- contextsynapse/core/context_state.py +651 -0
- contextsynapse/core/cron.py +324 -0
- contextsynapse/core/datasource.py +643 -0
- contextsynapse/core/db.py +289 -0
- contextsynapse/core/federation.py +283 -0
- contextsynapse/core/graph_coordinator.py +201 -0
- contextsynapse/core/graph_intelligence.py +388 -0
- contextsynapse/core/graph_structures.py +106 -0
- contextsynapse/core/graph_sync.py +157 -0
- contextsynapse/core/hybrid_graph_storage.py +2998 -0
- contextsynapse/core/lifecycle.py +691 -0
- contextsynapse/core/multiworker.py +378 -0
- contextsynapse/core/pruning.py +312 -0
- contextsynapse/core/redis_registry.py +524 -0
- contextsynapse/core/registry.py +1043 -0
- contextsynapse/core/registry_factory.py +51 -0
- contextsynapse/core/registry_metadata.py +294 -0
- contextsynapse/core/replay.py +354 -0
- contextsynapse/core/replication.py +339 -0
- contextsynapse/core/time_travel.py +260 -0
- contextsynapse/core/write_behind.py +152 -0
- contextsynapse/core/write_context.py +39 -0
- contextsynapse/db/__init__.py +1 -0
- contextsynapse/db/postgres.py +267 -0
- contextsynapse/db/profile.py +236 -0
- contextsynapse/db/rules.py +328 -0
- contextsynapse/demo/__init__.py +0 -0
- contextsynapse/demo/report.py +147 -0
- contextsynapse/demo/runner.py +520 -0
- contextsynapse/demo/scenario.py +165 -0
- contextsynapse/demo/session_demo.py +280 -0
- contextsynapse/demo/session_report.py +143 -0
- contextsynapse/demo/universal_runner.py +257 -0
- contextsynapse/engine/__init__.py +15 -0
- contextsynapse/engine/core.py +555 -0
- contextsynapse/extraction/__init__.py +69 -0
- contextsynapse/extraction/cli.py +274 -0
- contextsynapse/extraction/config.py +107 -0
- contextsynapse/extraction/examples/example_usage.py +118 -0
- contextsynapse/extraction/examples/sample_manifest.json +53 -0
- contextsynapse/extraction/examples/sample_normalized.json +185 -0
- contextsynapse/extraction/extract_engine.py +440 -0
- contextsynapse/extraction/extractors/__init__.py +37 -0
- contextsynapse/extraction/extractors/chat_export_extractor.py +189 -0
- contextsynapse/extraction/extractors/csv_extractor.py +83 -0
- contextsynapse/extraction/extractors/docx_extractor.py +129 -0
- contextsynapse/extraction/extractors/excel_extractor.py +152 -0
- contextsynapse/extraction/extractors/html_extractor.py +146 -0
- contextsynapse/extraction/extractors/pdf_extractor.py +635 -0
- contextsynapse/extraction/extractors/pdf_extractor_layoutparser.py +408 -0
- contextsynapse/extraction/extractors/register_extractors.py +63 -0
- contextsynapse/extraction/extractors/text_extractor.py +65 -0
- contextsynapse/extraction/extractors/txt_extractor.py +120 -0
- contextsynapse/extraction/extractors/website_extractor.py +246 -0
- contextsynapse/extraction/fact_extractor.py +236 -0
- contextsynapse/extraction/file_manager.py +353 -0
- contextsynapse/extraction/hierarchy.py +239 -0
- contextsynapse/extraction/id_generator.py +450 -0
- contextsynapse/extraction/layout_detector.py +409 -0
- contextsynapse/extraction/llm_entity_extractor.py +301 -0
- contextsynapse/extraction/normalized_store.py +480 -0
- contextsynapse/extraction/normalizer.py +594 -0
- contextsynapse/extraction/parquet_writer.py +598 -0
- contextsynapse/extraction/post_processors/__init__.py +40 -0
- contextsynapse/extraction/post_processors/column_reorganizer.py +507 -0
- contextsynapse/extraction/ray_normalization.py +233 -0
- contextsynapse/extraction/ray_runner.py +207 -0
- contextsynapse/extraction/redis_schema_registry.py +222 -0
- contextsynapse/extraction/registry.py +204 -0
- contextsynapse/extraction/schema_loader.py +663 -0
- contextsynapse/extraction/schema_registry.py +230 -0
- contextsynapse/extraction/semantic_normalizer.py +245 -0
- contextsynapse/extraction/version_manager.py +314 -0
- contextsynapse/gateway/__init__.py +24 -0
- contextsynapse/gateway/action_emitter.py +212 -0
- contextsynapse/gateway/cost_tracker.py +508 -0
- contextsynapse/gateway/gateway.py +377 -0
- contextsynapse/gateway/policy.py +303 -0
- contextsynapse/governance/__init__.py +13 -0
- contextsynapse/governance/layer.py +513 -0
- contextsynapse/ingestion/__init__.py +15 -0
- contextsynapse/ingestion/amplifier.py +288 -0
- contextsynapse/ingestion/async_ingest.py +463 -0
- contextsynapse/ingestion/chunker.py +303 -0
- contextsynapse/ingestion/chunking.py +58 -0
- contextsynapse/ingestion/cleaner.py +190 -0
- contextsynapse/ingestion/cleanse.py +252 -0
- contextsynapse/ingestion/connectors/__init__.py +38 -0
- contextsynapse/ingestion/connectors/base.py +300 -0
- contextsynapse/ingestion/connectors/chatgpt_memory.py +247 -0
- contextsynapse/ingestion/connectors/claude_memory.py +274 -0
- contextsynapse/ingestion/connectors/sap_ingestor.py +208 -0
- contextsynapse/ingestion/content_detector.py +80 -0
- contextsynapse/ingestion/content_monitor.py +502 -0
- contextsynapse/ingestion/dedup.py +106 -0
- contextsynapse/ingestion/feed.py +640 -0
- contextsynapse/ingestion/filters.py +461 -0
- contextsynapse/ingestion/graph_builder.py +705 -0
- contextsynapse/ingestion/input_classifier.py +307 -0
- contextsynapse/ingestion/job_manager.py +571 -0
- contextsynapse/ingestion/llm_extractor.py +610 -0
- contextsynapse/ingestion/orchestrator.py +116 -0
- contextsynapse/ingestion/parsers/__init__.py +19 -0
- contextsynapse/ingestion/parsers/graph_parser_registry.py +103 -0
- contextsynapse/ingestion/parsers/graphml_parser.py +141 -0
- contextsynapse/ingestion/parsers/jsonld_parser.py +171 -0
- contextsynapse/ingestion/parsers/rdf_parser.py +150 -0
- contextsynapse/ingestion/pipeline_context.py +228 -0
- contextsynapse/ingestion/pipeline_store.py +1195 -0
- contextsynapse/ingestion/queue.py +133 -0
- contextsynapse/ingestion/reprocess.py +179 -0
- contextsynapse/ingestion/scenario_router.py +224 -0
- contextsynapse/ingestion/schema_extractor.py +759 -0
- contextsynapse/ingestion/schema_validator.py +274 -0
- contextsynapse/ingestion/sdlc_ingest.py +87 -0
- contextsynapse/ingestion/smart_ingest.py +2451 -0
- contextsynapse/ingestion/source_connector.py +171 -0
- contextsynapse/ingestion/stage_executor.py +2095 -0
- contextsynapse/ingestion/stages/__init__.py +9 -0
- contextsynapse/ingestion/stages/tabular_to_graph.py +289 -0
- contextsynapse/ingestion/strategies.py +386 -0
- contextsynapse/ingestion/universal/__init__.py +4 -0
- contextsynapse/ingestion/universal/_operator_registry.py +59 -0
- contextsynapse/ingestion/universal/ingest_content.py +32 -0
- contextsynapse/ingestion/universal/operators/__init__.py +1 -0
- contextsynapse/ingestion/universal/operators/base.py +19 -0
- contextsynapse/ingestion/universal/operators/build_edges.py +75 -0
- contextsynapse/ingestion/universal/operators/cluster_topics.py +397 -0
- contextsynapse/ingestion/universal/operators/deduplicate.py +45 -0
- contextsynapse/ingestion/universal/operators/detect_signals.py +90 -0
- contextsynapse/ingestion/universal/operators/embed.py +80 -0
- contextsynapse/ingestion/universal/operators/extract_entities.py +253 -0
- contextsynapse/ingestion/universal/operators/extract_preferences.py +117 -0
- contextsynapse/ingestion/universal/operators/filter_content.py +69 -0
- contextsynapse/ingestion/universal/operators/index_bm25.py +52 -0
- contextsynapse/ingestion/universal/operators/infer_domains.py +69 -0
- contextsynapse/ingestion/universal/operators/link_cross_reference.py +210 -0
- contextsynapse/ingestion/universal/operators/parse_records.py +66 -0
- contextsynapse/ingestion/universal/operators/resolve_entities.py +261 -0
- contextsynapse/ingestion/universal/operators/scanners/__init__.py +16 -0
- contextsynapse/ingestion/universal/operators/scanners/edges.py +173 -0
- contextsynapse/ingestion/universal/operators/scanners/git.py +187 -0
- contextsynapse/ingestion/universal/operators/scanners/github.py +135 -0
- contextsynapse/ingestion/universal/operators/scanners/github_api.py +509 -0
- contextsynapse/ingestion/universal/operators/scanners/helpers.py +67 -0
- contextsynapse/ingestion/universal/operators/scanners/jira.py +65 -0
- contextsynapse/ingestion/universal/operators/scanners/llm_enrichment.py +82 -0
- contextsynapse/ingestion/universal/operators/scanners/repo.py +149 -0
- contextsynapse/ingestion/universal/operators/sdlc_scan.py +213 -0
- contextsynapse/ingestion/universal/operators/spec_scanner.py +149 -0
- contextsynapse/ingestion/universal/operators/store_documents.py +72 -0
- contextsynapse/ingestion/universal/operators/synthesize_cu.py +180 -0
- contextsynapse/ingestion/universal/operators/validate_gate.py +65 -0
- contextsynapse/ingestion/universal/parsers/__init__.py +5 -0
- contextsynapse/ingestion/universal/parsers/record_parser.py +203 -0
- contextsynapse/ingestion/universal/parsers/turn_parser.py +329 -0
- contextsynapse/ingestion/universal/shared_signals.py +161 -0
- contextsynapse/ingestion/universal/stage_executor.py +219 -0
- contextsynapse/ingestion/web_crawler.py +265 -0
- contextsynapse/intelligence/__init__.py +53 -0
- contextsynapse/intelligence/alerts.py +198 -0
- contextsynapse/intelligence/collector.py +655 -0
- contextsynapse/intelligence/comparison.py +198 -0
- contextsynapse/intelligence/config.py +56 -0
- contextsynapse/intelligence/conflict_detector.py +182 -0
- contextsynapse/intelligence/context_gaps.py +192 -0
- contextsynapse/intelligence/context_radar.py +135 -0
- contextsynapse/intelligence/correlation_engine.py +416 -0
- contextsynapse/intelligence/correlation_template.py +120 -0
- contextsynapse/intelligence/dedup.py +296 -0
- contextsynapse/intelligence/event_bus.py +91 -0
- contextsynapse/intelligence/feedback_loop.py +101 -0
- contextsynapse/intelligence/freshness.py +307 -0
- contextsynapse/intelligence/fundamental_feed.py +551 -0
- contextsynapse/intelligence/geo_data.py +170 -0
- contextsynapse/intelligence/geo_reference.py +112 -0
- contextsynapse/intelligence/graph_fusion.py +465 -0
- contextsynapse/intelligence/heuristics.py +176 -0
- contextsynapse/intelligence/impact_tracker.py +336 -0
- contextsynapse/intelligence/macro_indicators.py +319 -0
- contextsynapse/intelligence/ocr.py +104 -0
- contextsynapse/intelligence/persistence.py +267 -0
- contextsynapse/intelligence/pipeline_health.py +130 -0
- contextsynapse/intelligence/price_feed.py +221 -0
- contextsynapse/intelligence/rate_limiter.py +130 -0
- contextsynapse/intelligence/reactive.py +411 -0
- contextsynapse/intelligence/runtime_context.py +390 -0
- contextsynapse/intelligence/sentiment_decay.py +426 -0
- contextsynapse/intelligence/session.py +277 -0
- contextsynapse/intelligence/signal_hierarchy.py +438 -0
- contextsynapse/intelligence/signals.py +185 -0
- contextsynapse/intelligence/source_watcher.py +132 -0
- contextsynapse/intelligence/table_enricher.py +256 -0
- contextsynapse/intelligence/tagger.py +319 -0
- contextsynapse/intelligence/timeseries.py +209 -0
- contextsynapse/intelligence/tracker.py +318 -0
- contextsynapse/intelligence/watchdog.py +392 -0
- contextsynapse/intelligence/watchdog_manager.py +263 -0
- contextsynapse/intelligence/webhook_receiver.py +165 -0
- contextsynapse/intelligence/weight_learner.py +234 -0
- contextsynapse/llm/__init__.py +8 -0
- contextsynapse/llm/client.py +348 -0
- contextsynapse/llm/rate_limiter.py +166 -0
- contextsynapse/logging_config.py +2 -0
- contextsynapse/marketplace/__init__.py +7 -0
- contextsynapse/marketplace/registry.py +173 -0
- contextsynapse/mcp/__init__.py +11 -0
- contextsynapse/mcp/__main__.py +4 -0
- contextsynapse/mcp/auth_middleware.py +212 -0
- contextsynapse/mcp/connection_pool.py +128 -0
- contextsynapse/mcp/server.py +986 -0
- contextsynapse/mcp/session_context.py +67 -0
- contextsynapse/memory/__init__.py +34 -0
- contextsynapse/memory/engine.py +475 -0
- contextsynapse/memory/temporal.py +327 -0
- contextsynapse/metadata/__init__.py +12 -0
- contextsynapse/metadata/metadata_db.py +272 -0
- contextsynapse/metadata/metadata_query_tool.py +300 -0
- contextsynapse/metadata/metadata_tracker.py +425 -0
- contextsynapse/models/__init__.py +27 -0
- contextsynapse/models/embedding_service.py +360 -0
- contextsynapse/models/model_registry.py +228 -0
- contextsynapse/multiworker.py +2 -0
- contextsynapse/pipelines/__init__.py +1 -0
- contextsynapse/pipelines/executor.py +851 -0
- contextsynapse/pipelines/filters.py +189 -0
- contextsynapse/pipelines/models.py +176 -0
- contextsynapse/pipelines/scheduler.py +268 -0
- contextsynapse/playground/__init__.py +1 -0
- contextsynapse/playground/templates.py +85 -0
- contextsynapse/plugins/__init__.py +43 -0
- contextsynapse/plugins/api.py +66 -0
- contextsynapse/plugins/base.py +350 -0
- contextsynapse/plugins/domain_interface.py +508 -0
- contextsynapse/plugins/domain_loader.py +241 -0
- contextsynapse/plugins/loader.py +148 -0
- contextsynapse/plugins/registry.py +265 -0
- contextsynapse/project/__init__.py +11 -0
- contextsynapse/project/code_context.py +807 -0
- contextsynapse/project/connectors/__init__.py +4 -0
- contextsynapse/project/connectors/github_connector.py +113 -0
- contextsynapse/project/connectors/jira_connector.py +160 -0
- contextsynapse/project/graph.py +1023 -0
- contextsynapse/project/project_context.py +545 -0
- contextsynapse/project/scanner_registry.py +61 -0
- contextsynapse/project/schema_manager.py +322 -0
- contextsynapse/project/schemas/knowledge.yaml +59 -0
- contextsynapse/project/schemas/sdlc.yaml +369 -0
- contextsynapse/project/sdlc_schema.py +172 -0
- contextsynapse/project/spec_parser.py +85 -0
- contextsynapse/project/task_lock.py +181 -0
- contextsynapse/project/task_stream.py +203 -0
- contextsynapse/project/team_tools.py +537 -0
- contextsynapse/py.typed +0 -0
- contextsynapse/realtime/__init__.py +6 -0
- contextsynapse/realtime/collaboration.py +147 -0
- contextsynapse/rules/__init__.py +10 -0
- contextsynapse/rules/engine.py +116 -0
- contextsynapse/rules/evaluators/__init__.py +6 -0
- contextsynapse/rules/evaluators/aggregate.py +205 -0
- contextsynapse/rules/evaluators/custom.py +170 -0
- contextsynapse/rules/evaluators/pre_action.py +125 -0
- contextsynapse/rules/evaluators/temporal.py +129 -0
- contextsynapse/rules/loader.py +52 -0
- contextsynapse/rules/models.py +124 -0
- contextsynapse/rules/universal.py +393 -0
- contextsynapse/scheduler.py +229 -0
- contextsynapse/schema/__init__.py +42 -0
- contextsynapse/schema/compiler.py +252 -0
- contextsynapse/schema/composer.py +158 -0
- contextsynapse/schema/dedup.py +73 -0
- contextsynapse/schema/derivation.py +172 -0
- contextsynapse/schema/sdl.py +326 -0
- contextsynapse/schema/validation_gate.py +124 -0
- contextsynapse/sdk/__init__.py +63 -0
- contextsynapse/sdk/agent.py +214 -0
- contextsynapse/sdk/client.py +269 -0
- contextsynapse/sdk/exceptions.py +23 -0
- contextsynapse/sdk/models.py +78 -0
- contextsynapse/sdk/session.py +408 -0
- contextsynapse/sdk/tracked.py +218 -0
- contextsynapse/sdk/worker.py +266 -0
- contextsynapse/sdk/workspace_client.py +98 -0
- contextsynapse/sdk/ws.py +41 -0
- contextsynapse/search/__init__.py +20 -0
- contextsynapse/search/embedding_cache.py +140 -0
- contextsynapse/search/enhanced_search.py +152 -0
- contextsynapse/search/fulltext.py +130 -0
- contextsynapse/search/graph_search.py +634 -0
- contextsynapse/search/lmdb_index.py +1218 -0
- contextsynapse/search/nl_to_aiql.py +199 -0
- contextsynapse/search/rag.py +1346 -0
- contextsynapse/search/rag_cache.py +167 -0
- contextsynapse/search/reasoning_chain.py +231 -0
- contextsynapse/search/redis_search.py +207 -0
- contextsynapse/search/retrieval_quality.py +314 -0
- contextsynapse/search/semantic_query.py +455 -0
- contextsynapse/search/text_resolver.py +159 -0
- contextsynapse/search/whoosh_search.py +373 -0
- contextsynapse/security/__init__.py +17 -0
- contextsynapse/security/audit.py +297 -0
- contextsynapse/security/audit_logger.py +97 -0
- contextsynapse/security/audit_trail.py +270 -0
- contextsynapse/security/auth_unified.py +284 -0
- contextsynapse/security/auto_tagger.py +230 -0
- contextsynapse/security/data_security.py +218 -0
- contextsynapse/security/encryption.py +207 -0
- contextsynapse/security/identity.py +447 -0
- contextsynapse/security/jwt_identity.py +59 -0
- contextsynapse/security/middleware.py +336 -0
- contextsynapse/security/pii.py +233 -0
- contextsynapse/security/rbac.py +96 -0
- contextsynapse/security/rls.py +205 -0
- contextsynapse/security/sanitize.py +233 -0
- contextsynapse/security/scoped_encryption.py +131 -0
- contextsynapse/security/tenant.py +401 -0
- contextsynapse/shield/__init__.py +21 -0
- contextsynapse/shield/anomaly.py +56 -0
- contextsynapse/shield/permissions.py +99 -0
- contextsynapse/shield/profile.py +103 -0
- contextsynapse/shield/shield.py +108 -0
- contextsynapse/shield/trust_engine.py +69 -0
- contextsynapse/skills/__init__.py +14 -0
- contextsynapse/skills/engine.py +233 -0
- contextsynapse/skills/loader.py +59 -0
- contextsynapse/skills/models.py +139 -0
- contextsynapse/storage/__init__.py +7 -0
- contextsynapse/storage/cache.py +208 -0
- contextsynapse/storage/columnar_store_v2.py +178 -0
- contextsynapse/storage/csr_graph_storage.py +587 -0
- contextsynapse/storage/csr_store.py +388 -0
- contextsynapse/storage/document_store.py +491 -0
- contextsynapse/storage/hnsw_index.py +294 -0
- contextsynapse/storage/hybrid_store_v2.py +278 -0
- contextsynapse/storage/lmdb_graph_storage.py +366 -0
- contextsynapse/storage/migration.py +279 -0
- contextsynapse/storage/namespace_store.py +346 -0
- contextsynapse/storage/pure_graph_storage.py +185 -0
- contextsynapse/storage/redis_graph_adapter.py +186 -0
- contextsynapse/storage/redis_graph_storage.py +375 -0
- contextsynapse/storage/router/__init__.py +29 -0
- contextsynapse/storage/router/duckdb_store.py +398 -0
- contextsynapse/storage/router/factory.py +83 -0
- contextsynapse/storage/router/interface.py +125 -0
- contextsynapse/storage/router/postgres_store.py +339 -0
- contextsynapse/storage/router/resolver.py +192 -0
- contextsynapse/storage/router/router.py +300 -0
- contextsynapse/storage/single_file_storage.py +391 -0
- contextsynapse/storage/storage_manager.py +214 -0
- contextsynapse/storage/storage_query_optimizer.py +314 -0
- contextsynapse/storage/wal.py +359 -0
- contextsynapse/temporal/__init__.py +0 -0
- contextsynapse/temporal/storage.py +106 -0
- contextsynapse/tests/__init__.py +11 -0
- contextsynapse/tests/regression/__init__.py +1 -0
- contextsynapse/tests/regression/add_metadata.py +395 -0
- contextsynapse/tests/regression/add_skip_flags.py +85 -0
- contextsynapse/tests/regression/cases/test_basic_create_node.yaml +20 -0
- contextsynapse/tests/regression/cases/test_basic_select.yaml +21 -0
- contextsynapse/tests/regression/cases/test_blockchain_audit_trail.yaml +37 -0
- contextsynapse/tests/regression/cases/test_blockchain_audit_trail_filtered.yaml +39 -0
- contextsynapse/tests/regression/cases/test_blockchain_blocks_range.yaml +39 -0
- contextsynapse/tests/regression/cases/test_blockchain_get_block.yaml +35 -0
- contextsynapse/tests/regression/cases/test_blockchain_latest_block.yaml +35 -0
- contextsynapse/tests/regression/cases/test_blockchain_length.yaml +37 -0
- contextsynapse/tests/regression/cases/test_blockchain_merkle_root.yaml +37 -0
- contextsynapse/tests/regression/cases/test_blockchain_verify.yaml +35 -0
- contextsynapse/tests/regression/cases/test_blockchain_verify_block.yaml +35 -0
- contextsynapse/tests/regression/cases/test_create_edge.yaml +28 -0
- contextsynapse/tests/regression/cases/test_delete_edge_basic.yaml +29 -0
- contextsynapse/tests/regression/cases/test_delete_node_basic.yaml +29 -0
- contextsynapse/tests/regression/cases/test_evaluation_mrr.yaml +40 -0
- contextsynapse/tests/regression/cases/test_evaluation_ndcg.yaml +40 -0
- contextsynapse/tests/regression/cases/test_evaluation_precision.yaml +40 -0
- contextsynapse/tests/regression/cases/test_evaluation_recall.yaml +40 -0
- contextsynapse/tests/regression/cases/test_group_by_basic.yaml +56 -0
- contextsynapse/tests/regression/cases/test_match_node_basic.yaml +29 -0
- contextsynapse/tests/regression/cases/test_match_node_with_order_limit.yaml +31 -0
- contextsynapse/tests/regression/cases/test_namespace_switch.yaml +18 -0
- contextsynapse/tests/regression/cases/test_pipeline_cascaded.yaml +61 -0
- contextsynapse/tests/regression/cases/test_pipeline_fixed_size_chunking.yaml +48 -0
- contextsynapse/tests/regression/cases/test_pipeline_gpt4_chunking.yaml +54 -0
- contextsynapse/tests/regression/cases/test_pipeline_hybrid_indexing.yaml +57 -0
- contextsynapse/tests/regression/cases/test_pipeline_large_embedding.yaml +52 -0
- contextsynapse/tests/regression/cases/test_pipeline_paragraph_chunking.yaml +49 -0
- contextsynapse/tests/regression/cases/test_pipeline_recursive_chunking.yaml +47 -0
- contextsynapse/tests/regression/cases/test_pipeline_run_pipeline.yaml +56 -0
- contextsynapse/tests/regression/cases/test_pipeline_section_based_chunking.yaml +53 -0
- contextsynapse/tests/regression/cases/test_pipeline_semantic_chunking.yaml +51 -0
- contextsynapse/tests/regression/cases/test_pipeline_with_entity_extraction.yaml +57 -0
- contextsynapse/tests/regression/cases/test_pipeline_with_relationships.yaml +62 -0
- contextsynapse/tests/regression/cases/test_rag_evaluation.yaml +38 -0
- contextsynapse/tests/regression/cases/test_rag_graph_bfs_with_eval.yaml +48 -0
- contextsynapse/tests/regression/cases/test_rag_graph_centrality.yaml +40 -0
- contextsynapse/tests/regression/cases/test_rag_graph_centrality_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_graph_community.yaml +40 -0
- contextsynapse/tests/regression/cases/test_rag_graph_community_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_graph_dfs_with_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_graph_multi_hop_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_graph_path.yaml +40 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_basic.yaml +38 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_bfs.yaml +52 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_dfs.yaml +41 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_multi_hop.yaml +43 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_shortest_path.yaml +41 -0
- contextsynapse/tests/regression/cases/test_rag_graph_search_weighted.yaml +43 -0
- contextsynapse/tests/regression/cases/test_rag_graph_shortest_path_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_graph_traversal.yaml +30 -0
- contextsynapse/tests/regression/cases/test_rag_graph_weighted_eval.yaml +35 -0
- contextsynapse/tests/regression/cases/test_rag_hybrid_search.yaml +33 -0
- contextsynapse/tests/regression/cases/test_rag_hybrid_with_prompt_embedding.yaml +44 -0
- contextsynapse/tests/regression/cases/test_rag_keyword_search.yaml +32 -0
- contextsynapse/tests/regression/cases/test_rag_multi_hop_graph.yaml +32 -0
- contextsynapse/tests/regression/cases/test_rag_path_based.yaml +34 -0
- contextsynapse/tests/regression/cases/test_rag_profile_based.yaml +32 -0
- contextsynapse/tests/regression/cases/test_rag_vector_search.yaml +32 -0
- contextsynapse/tests/regression/cases/test_rag_weighted_graph.yaml +34 -0
- contextsynapse/tests/regression/cases/test_rag_weighted_hybrid.yaml +31 -0
- contextsynapse/tests/regression/cases/test_semantic_boundary_chunking.yaml +57 -0
- contextsynapse/tests/regression/cases/test_semantic_boundary_detection.yaml +33 -0
- contextsynapse/tests/regression/cases/test_semantic_hash_function.yaml +30 -0
- contextsynapse/tests/regression/cases/test_semantic_hash_with_model.yaml +31 -0
- contextsynapse/tests/regression/cases/test_tcs_ingestion_fixed_size.yaml +44 -0
- contextsynapse/tests/regression/cases/test_tcs_ingestion_recursive.yaml +46 -0
- contextsynapse/tests/regression/cases/test_tcs_ingestion_section.yaml +46 -0
- contextsynapse/tests/regression/cases/test_tcs_ingestion_semantic.yaml +44 -0
- contextsynapse/tests/regression/cases/test_time_travel_as_of.yaml +35 -0
- contextsynapse/tests/regression/cases/test_time_travel_at_commit.yaml +33 -0
- contextsynapse/tests/regression/cases/test_time_travel_at_timestamp.yaml +33 -0
- contextsynapse/tests/regression/cases/test_time_travel_for_system_time_all.yaml +37 -0
- contextsynapse/tests/regression/cases/test_time_travel_versions_between.yaml +39 -0
- contextsynapse/tests/regression/cases/test_traverse_basic.yaml +31 -0
- contextsynapse/tests/regression/cases/test_traverse_max_depth.yaml +34 -0
- contextsynapse/tests/regression/cases/test_update_edge_basic.yaml +29 -0
- contextsynapse/tests/regression/evaluation_metrics.py +227 -0
- contextsynapse/tests/regression/regression_runner.py +1081 -0
- contextsynapse/tests/regression/setup_regression_data.py +212 -0
- contextsynapse/tests/regression/test_basic_only.py +84 -0
- contextsynapse/tests/regression/test_namespace_creation.py +29 -0
- contextsynapse/tests/regression/test_single_fix.py +61 -0
- contextsynapse/tests/regression/test_single_query.py +20 -0
- contextsynapse/tests/regression/validate_test_syntax.py +179 -0
- contextsynapse/tests/test_advanced_features.py +347 -0
- contextsynapse/tests/test_aiql_summary.py +283 -0
- contextsynapse/tests/test_all_aiql_queries.py +948 -0
- contextsynapse/tests/test_all_create_queries.py +213 -0
- contextsynapse/tests/test_api_vs_native.py +280 -0
- contextsynapse/tests/test_chunking_dedup.py +199 -0
- contextsynapse/tests/test_connectors.py +171 -0
- contextsynapse/tests/test_edges_and_match.py +202 -0
- contextsynapse/tests/test_extraction_pipeline_integration.py +581 -0
- contextsynapse/tests/test_name_property.py +224 -0
- contextsynapse/tests/test_node_edge_metadata.py +250 -0
- contextsynapse/tests/test_playground_conn.py +114 -0
- contextsynapse/tests/test_query_cache.py +213 -0
- contextsynapse/tests/test_source_policy_auth.py +348 -0
- contextsynapse/tests/test_temporal_and_domain.py +224 -0
- contextsynapse/tests/test_time_travel_e2e.py +571 -0
- contextsynapse/tests/test_traversal_and_aggregation.py +275 -0
- contextsynapse/tools/__init__.py +36 -0
- contextsynapse/tools/a2a_tools.py +106 -0
- contextsynapse/tools/cognition_tools.py +118 -0
- contextsynapse/tools/context.py +905 -0
- contextsynapse/tools/formatting.py +92 -0
- contextsynapse/tools/gateway_tools.py +186 -0
- contextsynapse/tools/graph.py +1700 -0
- contextsynapse/tools/intelligence.py +235 -0
- contextsynapse/tools/memory.py +118 -0
- contextsynapse/tools/registry.py +373 -0
- contextsynapse/tools/shield_tools.py +159 -0
- contextsynapse/tools/tasks.py +341 -0
- contextsynapse/tools/workspace_tools.py +124 -0
- contextsynapse/utils/__init__.py +15 -0
- contextsynapse/utils/config_loader.py +198 -0
- contextsynapse/utils/env_loader.py +156 -0
- contextsynapse/utils/file_utils.py +288 -0
- contextsynapse/utils/logging_optimizer.py +119 -0
- contextsynapse/vector/__init__.py +30 -0
- contextsynapse/vector/chroma_vector_store.py +152 -0
- contextsynapse/vector/custom_vector_store.py +537 -0
- contextsynapse/vector/faiss_vector_store.py +296 -0
- contextsynapse/vector/qdrant_vector_store.py +163 -0
- contextsynapse/vector/vector_db.py +953 -0
- contextsynapse/vector/vector_db_manager.py +197 -0
- contextsynapse/workspace/__init__.py +27 -0
- contextsynapse/workspace/base.py +94 -0
- contextsynapse/workspace/git.py +228 -0
- contextsynapse/workspace/github.py +78 -0
- contextsynapse/workspace/local.py +73 -0
- contextsynapse/workspace/tools.py +222 -0
- contextsynapse-1.0.0.dist-info/METADATA +847 -0
- contextsynapse-1.0.0.dist-info/RECORD +776 -0
- contextsynapse-1.0.0.dist-info/WHEEL +5 -0
- contextsynapse-1.0.0.dist-info/entry_points.txt +4 -0
- contextsynapse-1.0.0.dist-info/licenses/LICENSE +200 -0
- contextsynapse-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,847 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: contextsynapse
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: ContextSynapse — the shared brain for AI agents — ingest knowledge, build connections, deliver context to any LLM
|
|
5
|
+
Author: ContextSynapse Contributors
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/contextsynapse/contextsynapse
|
|
8
|
+
Project-URL: Documentation, https://github.com/contextsynapse/contextsynapse/tree/main/docs
|
|
9
|
+
Project-URL: Repository, https://github.com/contextsynapse/contextsynapse
|
|
10
|
+
Project-URL: Issues, https://github.com/contextsynapse/contextsynapse/issues
|
|
11
|
+
Keywords: graph-database,rag,agentic-ai,knowledge-graph,context-service
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Database :: Database Engines/Servers
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: fastapi>=0.104.0
|
|
25
|
+
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
26
|
+
Requires-Dist: pydantic>=2.5.0
|
|
27
|
+
Requires-Dist: pyyaml>=6.0
|
|
28
|
+
Requires-Dist: python-multipart>=0.0.6
|
|
29
|
+
Requires-Dist: jinja2>=3.1.0
|
|
30
|
+
Requires-Dist: aiofiles>=23.2.0
|
|
31
|
+
Requires-Dist: networkx>=3.2.0
|
|
32
|
+
Requires-Dist: pandas>=2.0.0
|
|
33
|
+
Requires-Dist: numpy>=1.24.0
|
|
34
|
+
Requires-Dist: whoosh>=2.7.4
|
|
35
|
+
Requires-Dist: scikit-learn>=1.3.0
|
|
36
|
+
Requires-Dist: click>=8.1.0
|
|
37
|
+
Requires-Dist: rich>=13.7.0
|
|
38
|
+
Requires-Dist: lark>=1.1.0
|
|
39
|
+
Requires-Dist: orjson>=3.9.0
|
|
40
|
+
Requires-Dist: beautifulsoup4>=4.12.0
|
|
41
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
42
|
+
Requires-Dist: redis>=5.0.0
|
|
43
|
+
Requires-Dist: requests>=2.31.0
|
|
44
|
+
Requires-Dist: httpx>=0.25.0
|
|
45
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
46
|
+
Requires-Dist: python-jose[cryptography]>=3.3.0
|
|
47
|
+
Requires-Dist: passlib[bcrypt]>=1.7.0
|
|
48
|
+
Requires-Dist: structlog>=23.2.0
|
|
49
|
+
Requires-Dist: slowapi>=0.1.9
|
|
50
|
+
Provides-Extra: prod
|
|
51
|
+
Requires-Dist: gunicorn>=21.2.0; extra == "prod"
|
|
52
|
+
Requires-Dist: prometheus-client>=0.19.0; extra == "prod"
|
|
53
|
+
Requires-Dist: psutil>=5.9.0; extra == "prod"
|
|
54
|
+
Requires-Dist: msgpack>=1.0.7; extra == "prod"
|
|
55
|
+
Requires-Dist: redis>=5.0.0; extra == "prod"
|
|
56
|
+
Provides-Extra: vector
|
|
57
|
+
Requires-Dist: faiss-cpu>=1.7.4; extra == "vector"
|
|
58
|
+
Requires-Dist: chromadb>=0.4.18; extra == "vector"
|
|
59
|
+
Requires-Dist: sentence-transformers>=2.2.2; extra == "vector"
|
|
60
|
+
Provides-Extra: llm
|
|
61
|
+
Requires-Dist: openai>=1.3.0; extra == "llm"
|
|
62
|
+
Requires-Dist: anthropic>=0.7.0; extra == "llm"
|
|
63
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == "llm"
|
|
64
|
+
Requires-Dist: cohere>=4.37.0; extra == "llm"
|
|
65
|
+
Requires-Dist: ollama>=0.1.7; extra == "llm"
|
|
66
|
+
Provides-Extra: mcp
|
|
67
|
+
Requires-Dist: mcp>=1.0.0; extra == "mcp"
|
|
68
|
+
Provides-Extra: cloud
|
|
69
|
+
Requires-Dist: boto3>=1.28.0; extra == "cloud"
|
|
70
|
+
Requires-Dist: google-cloud-storage>=2.10.0; extra == "cloud"
|
|
71
|
+
Requires-Dist: azure-storage-blob>=12.17.0; extra == "cloud"
|
|
72
|
+
Requires-Dist: azure-identity>=1.14.0; extra == "cloud"
|
|
73
|
+
Provides-Extra: dev
|
|
74
|
+
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
75
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
76
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
77
|
+
Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
78
|
+
Requires-Dist: mypy>=1.7.0; extra == "dev"
|
|
79
|
+
Requires-Dist: pre-commit>=3.5.0; extra == "dev"
|
|
80
|
+
Requires-Dist: httpx>=0.25.0; extra == "dev"
|
|
81
|
+
Requires-Dist: pyngrok>=7.0.0; extra == "dev"
|
|
82
|
+
Provides-Extra: plugins
|
|
83
|
+
Provides-Extra: all
|
|
84
|
+
Requires-Dist: contextsynapse[cloud,dev,llm,mcp,prod,vector]; extra == "all"
|
|
85
|
+
Dynamic: license-file
|
|
86
|
+
|
|
87
|
+
# ContextSynapse
|
|
88
|
+
|
|
89
|
+
**The shared brain your agents are missing.** Open-source context engine for AI agents — ingest knowledge, build connections, and deliver the right context to any LLM.
|
|
90
|
+
|
|
91
|
+
[](https://github.com/contextsynapse/contextsynapse/actions)
|
|
92
|
+
[](LICENSE)
|
|
93
|
+
[](https://www.python.org/downloads/)
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## What is ContextSynapse?
|
|
98
|
+
|
|
99
|
+
ContextSynapse is the **shared brain** for your AI agents. It stores knowledge as connected graphs, lets agents remember and recall across sessions, and delivers the right context to any LLM — Claude, GPT, Llama, Gemini, or any other model.
|
|
100
|
+
|
|
101
|
+
**Not a database. Not an agent framework. The context layer between them.**
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Your Agents (any LLM) ContextSynapse Your Data
|
|
105
|
+
+------------------+ +--------------------+ +----------------+
|
|
106
|
+
| Claude agent |----->| |<-----| Documents |
|
|
107
|
+
| GPT agent |----->| Shared Brain |<-----| APIs |
|
|
108
|
+
| Llama agent |----->| |<-----| Databases |
|
|
109
|
+
| Custom agent |----->| Remember, Recall |<-----| Files |
|
|
110
|
+
+------------------+ | Search, Reason | +----------------+
|
|
111
|
+
+--------------------+
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Core capabilities:**
|
|
115
|
+
- **Shared agent memory** — Agents remember, recall, and share knowledge across sessions
|
|
116
|
+
- **Graph RAG** — Retrieve context via keyword, BM25, and vector fusion — relationships that vector-only RAG misses
|
|
117
|
+
- **AIQL query language** — SQL-like syntax with graph patterns, traversals, and hybrid search
|
|
118
|
+
- **Context assembly** — ContextHub builds LLM-ready messages from graph data
|
|
119
|
+
- **MCP server** — Expose your brain as tools for Claude, Copilot, and other AI agents
|
|
120
|
+
- **AgentShield** — Trust scoring, adaptive permissions, PII detection, audit trails
|
|
121
|
+
- **Plugin system** — Build domain-specific verticals on top of the context engine
|
|
122
|
+
- **Any LLM, any framework** — Works with LangChain, CrewAI, AutoGen, OpenAI, Anthropic, and 8+ more
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Quick Start
|
|
127
|
+
|
|
128
|
+
### Install
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
pip install contextsynapse
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 30-Second Demo
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
from contextsynapse import ContextSynapse
|
|
138
|
+
from contextsynapse.aiql import AIQLExecutor
|
|
139
|
+
|
|
140
|
+
# Create a graph and executor
|
|
141
|
+
db = ContextSynapse()
|
|
142
|
+
ex = AIQLExecutor(contextcore=db)
|
|
143
|
+
|
|
144
|
+
# Build a knowledge graph
|
|
145
|
+
ex.execute("CREATE GRAPH company")
|
|
146
|
+
ex.execute("USE GRAPH company")
|
|
147
|
+
ex.execute('CREATE NODE Person {name: "Alice", role: "Engineer", age: 30}')
|
|
148
|
+
ex.execute('CREATE NODE Person {name: "Bob", role: "Manager", age: 42}')
|
|
149
|
+
ex.execute('CREATE NODE Project {name: "Atlas", status: "active"}')
|
|
150
|
+
ex.execute('CREATE EDGE WORKS_ON FROM Person WHERE name = "Alice" TO Project WHERE name = "Atlas"')
|
|
151
|
+
ex.execute('CREATE EDGE MANAGES FROM Person WHERE name = "Bob" TO Project WHERE name = "Atlas"')
|
|
152
|
+
|
|
153
|
+
# Query it
|
|
154
|
+
result = ex.execute("SELECT * FROM Person")
|
|
155
|
+
for node in result.get("nodes", []):
|
|
156
|
+
print(node.properties.get("name"), "—", node.properties.get("role"))
|
|
157
|
+
|
|
158
|
+
# Build LLM-ready context
|
|
159
|
+
from contextsynapse.context.hub import ContextHub
|
|
160
|
+
hub = ContextHub(system_prompt="You are a project analyst.")
|
|
161
|
+
hub.add_nodes(db.get_all_nodes())
|
|
162
|
+
messages = hub.to_messages() # Ready for OpenAI/Anthropic API
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Run the full demo:
|
|
166
|
+
```bash
|
|
167
|
+
python examples/demo.py
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Running the Full Stack
|
|
173
|
+
|
|
174
|
+
ContextSynapse has a Python backend (API server) and a React frontend (dashboard). Three ways to run it:
|
|
175
|
+
|
|
176
|
+
### Option 1: Docker Compose (recommended)
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Clone the repo
|
|
180
|
+
git clone https://github.com/contextsynapse/contextsynapse.git
|
|
181
|
+
cd contextsynapse
|
|
182
|
+
|
|
183
|
+
# Copy env file and set your keys
|
|
184
|
+
cp .env.example .env
|
|
185
|
+
# Edit .env — at minimum set CONTEXTSYNAPSE_ADMIN_KEY and CONTEXTSYNAPSE_JWT_SECRET
|
|
186
|
+
|
|
187
|
+
# Start everything (API + Redis + PostgreSQL)
|
|
188
|
+
docker compose up -d
|
|
189
|
+
|
|
190
|
+
# With the frontend dashboard
|
|
191
|
+
docker compose --profile ui up -d
|
|
192
|
+
|
|
193
|
+
# API: http://localhost:8000
|
|
194
|
+
# Dashboard: http://localhost:3000
|
|
195
|
+
# Redis: localhost:6379
|
|
196
|
+
# Postgres: localhost:5432
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Option 2: Manual Setup
|
|
200
|
+
|
|
201
|
+
**Backend:**
|
|
202
|
+
```bash
|
|
203
|
+
# Create a virtual environment
|
|
204
|
+
python -m venv venv
|
|
205
|
+
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
206
|
+
|
|
207
|
+
# Install with all extras
|
|
208
|
+
pip install -e ".[all]"
|
|
209
|
+
|
|
210
|
+
# Copy and configure environment
|
|
211
|
+
cp .env.example .env
|
|
212
|
+
# Edit .env — set at minimum:
|
|
213
|
+
# CONTEXTSYNAPSE_ADMIN_KEY=your-secure-key
|
|
214
|
+
# CONTEXTSYNAPSE_JWT_SECRET=your-jwt-secret
|
|
215
|
+
|
|
216
|
+
# Start the API server
|
|
217
|
+
uvicorn contextsynapse.api.api:app --host 0.0.0.0 --port 8000 --reload
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Frontend:**
|
|
221
|
+
```bash
|
|
222
|
+
cd frontend
|
|
223
|
+
npm install
|
|
224
|
+
npm start
|
|
225
|
+
# Opens at http://localhost:3000
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Optional services (Redis, PostgreSQL):**
|
|
229
|
+
```bash
|
|
230
|
+
# Redis — needed for multi-agent coordination, caching, agent registry
|
|
231
|
+
docker run -d --name redis -p 6379:6379 redis:7-alpine
|
|
232
|
+
|
|
233
|
+
# PostgreSQL — needed for user auth, tenant management, audit logs
|
|
234
|
+
docker run -d --name postgres -p 5432:5432 \
|
|
235
|
+
-e POSTGRES_DB=contextsynapse \
|
|
236
|
+
-e POSTGRES_USER=contextsynapse \
|
|
237
|
+
-e POSTGRES_PASSWORD=contextsynapse \
|
|
238
|
+
postgres:16-alpine
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Option 3: Minimal (Python library only)
|
|
242
|
+
|
|
243
|
+
No server needed — use ContextSynapse as an in-process graph database:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
pip install contextsynapse
|
|
247
|
+
```
|
|
248
|
+
```python
|
|
249
|
+
from contextsynapse import ContextSynapse
|
|
250
|
+
db = ContextSynapse()
|
|
251
|
+
# Use directly — no API server required
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Integration
|
|
257
|
+
|
|
258
|
+
ContextSynapse connects to your agents via **5 integration paths** — use whichever fits your stack:
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
+-----------+ +-------+ +-----+ +--------+ +---------+
|
|
262
|
+
| MCP Server| | REST | | A2A | | Python | |Framework|
|
|
263
|
+
| (Claude, | | API | |Proto| | SDK | |Adapters |
|
|
264
|
+
| Copilot) | | | | | | | | |
|
|
265
|
+
+-----------+ +-------+ +-----+ +--------+ +---------+
|
|
266
|
+
| | | | |
|
|
267
|
+
+--------+-------+-----+------+------+------+------+-------+
|
|
268
|
+
| | | |
|
|
269
|
+
+-------- ContextSynapse (shared brain) ---+
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### 1. MCP Server (Claude / Copilot / any MCP client)
|
|
273
|
+
|
|
274
|
+
Exposes 29 tools via Model Context Protocol. Two agents using this server share the **same graph**.
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Stdio transport (default — for Claude Desktop, Claude Code)
|
|
278
|
+
python -m contextsynapse.mcp
|
|
279
|
+
|
|
280
|
+
# SSE transport (for web clients, remote agents)
|
|
281
|
+
python -m contextsynapse.mcp --transport sse --port 8100
|
|
282
|
+
|
|
283
|
+
# With namespace and auth
|
|
284
|
+
python -m contextsynapse.mcp --namespace myproject --api-key agent1:secret
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Claude Desktop config (`claude_desktop_config.json`):
|
|
288
|
+
```json
|
|
289
|
+
{
|
|
290
|
+
"mcpServers": {
|
|
291
|
+
"contextsynapse": {
|
|
292
|
+
"command": "python",
|
|
293
|
+
"args": ["-m", "contextsynapse.mcp"]
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Claude Code:
|
|
300
|
+
```bash
|
|
301
|
+
claude mcp add contextsynapse -- python -m contextsynapse.mcp
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**MCP Auth:** Multi-session auth middleware — each agent gets scoped access to their session's graph. Set `CONTEXTSYNAPSE_API_KEY` for authenticated connections.
|
|
305
|
+
|
|
306
|
+
### 2. REST API
|
|
307
|
+
|
|
308
|
+
Full-featured FastAPI server with 30+ route modules:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
uvicorn contextsynapse.api.api:app --host 0.0.0.0 --port 8000
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Key endpoints:
|
|
315
|
+
| Endpoint | Description |
|
|
316
|
+
|----------|-------------|
|
|
317
|
+
| `POST /context/agents` | Register an agent, get API key |
|
|
318
|
+
| `POST /context/sessions` | Create a shared session |
|
|
319
|
+
| `POST /context/sessions/{id}/ingest` | Ingest content into session |
|
|
320
|
+
| `GET /context/search` | Search across contexts |
|
|
321
|
+
| `POST /context/query` | Execute AIQL query |
|
|
322
|
+
| `GET /context/briefing` | Get agent briefing |
|
|
323
|
+
| `POST /experiments/{id}/run` | Run agent experiment |
|
|
324
|
+
| `GET /dashboard/*` | Dashboard data endpoints |
|
|
325
|
+
|
|
326
|
+
Auth: JWT tokens via `POST /auth/login` + `x-admin-key` header for admin ops.
|
|
327
|
+
|
|
328
|
+
### 3. A2A Protocol (Agent-to-Agent)
|
|
329
|
+
|
|
330
|
+
Implements [Google's A2A protocol](https://github.com/google/A2A) for agent interoperability:
|
|
331
|
+
|
|
332
|
+
```python
|
|
333
|
+
from contextsynapse.a2a import Task, TaskState, TextPart, Message
|
|
334
|
+
|
|
335
|
+
# Create a task for another agent
|
|
336
|
+
task = Task(id="task-1", state=TaskState.SUBMITTED)
|
|
337
|
+
task.messages.append(Message(
|
|
338
|
+
role="user",
|
|
339
|
+
parts=[TextPart(text="Analyze TSLA earnings")]
|
|
340
|
+
))
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Features: task state machine, agent card discovery, SSE streaming, artifact exchange.
|
|
344
|
+
|
|
345
|
+
### 4. Python SDK
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
pip install contextsynapse-sdk
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
```python
|
|
352
|
+
from contextsynapse_sdk import ContextSynapseClient
|
|
353
|
+
|
|
354
|
+
# Connect to server
|
|
355
|
+
client = ContextSynapseClient("http://localhost:8000", api_key="your-key")
|
|
356
|
+
|
|
357
|
+
# Register an agent
|
|
358
|
+
agent = client.agents.register("my-bot", role="researcher")
|
|
359
|
+
|
|
360
|
+
# Create a session and work with it
|
|
361
|
+
session = client.sessions.create("research-project")
|
|
362
|
+
session.ingest({"content": "Tesla Q3 revenue was $25.2B", "type": "Fact"})
|
|
363
|
+
results = session.search("Tesla revenue")
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### 5. Framework Adapters
|
|
367
|
+
|
|
368
|
+
Drop-in integration with 8 AI frameworks:
|
|
369
|
+
|
|
370
|
+
| Framework | Import | What you get |
|
|
371
|
+
|-----------|--------|-------------|
|
|
372
|
+
| **LangChain** | `contextsynapse.adapters.langchain` | Retriever, tools, chat message history |
|
|
373
|
+
| **LangGraph** | `contextsynapse.adapters.langgraph` | Checkpoint saver, context tools, message history |
|
|
374
|
+
| **CrewAI** | `contextsynapse.adapters.crewai` | Tool wrappers for CrewAI agents |
|
|
375
|
+
| **AutoGen** | `contextsynapse.adapters.autogen` | Tool wrappers for AutoGen agents |
|
|
376
|
+
| **OpenAI** | `contextsynapse.adapters.openai` | Function definitions for function calling |
|
|
377
|
+
| **LlamaIndex** | `contextsynapse.adapters.llamaindex` | Tool specs for LlamaIndex agents |
|
|
378
|
+
| **PydanticAI** | `contextsynapse.adapters.pydantic_ai` | Tool wrappers for PydanticAI |
|
|
379
|
+
| **Swarm** | `contextsynapse.adapters.swarm` | Tool functions for OpenAI Swarm |
|
|
380
|
+
|
|
381
|
+
```python
|
|
382
|
+
# Example: LangChain retriever
|
|
383
|
+
from contextsynapse.adapters.langchain import AIContextDBRetriever
|
|
384
|
+
retriever = AIContextDBRetriever(db=my_graph, k=10)
|
|
385
|
+
docs = retriever.get_relevant_documents("What is TSLA outlook?")
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## LLM Providers
|
|
391
|
+
|
|
392
|
+
ContextSynapse supports 12+ LLM providers. **No LLM is required for core graph operations** — LLMs are only needed for entity extraction, RAG queries, natural language search, and the agent playground.
|
|
393
|
+
|
|
394
|
+
| Provider | Env Variable | Default Model | Notes |
|
|
395
|
+
|----------|-------------|---------------|-------|
|
|
396
|
+
| **Groq** | `GROQ_API_KEY` | `llama-3.1-8b-instant` | Fastest, free tier available |
|
|
397
|
+
| **OpenAI** | `OPENAI_API_KEY` | `gpt-4o-mini` | Most reliable |
|
|
398
|
+
| **Anthropic** | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` | Best reasoning |
|
|
399
|
+
| **Ollama** | `OLLAMA_HOST` | `gemma3:1b` | Local, no API key needed |
|
|
400
|
+
| **DeepSeek** | `DEEPSEEK_API_KEY` | `deepseek-chat` | Cost-effective |
|
|
401
|
+
| **Together** | `TOGETHER_API_KEY` | `Meta-Llama-3.1-70B-Instruct-Turbo` | Open-source models |
|
|
402
|
+
| **Mistral** | `MISTRAL_API_KEY` | `mistral-large-latest` | EU-hosted |
|
|
403
|
+
| **Cerebras** | `CEREBRAS_API_KEY` | `llama3.1-70b` | Fast inference |
|
|
404
|
+
| **Fireworks** | `FIREWORKS_API_KEY` | `llama-v3p1-70b-instruct` | Serverless |
|
|
405
|
+
| **Perplexity** | `PERPLEXITY_API_KEY` | `sonar-pro` | Search-augmented |
|
|
406
|
+
| **Google Gemini** | `GOOGLE_API_KEY` | `gemini-pro` | Multimodal |
|
|
407
|
+
| **Cohere** | `COHERE_API_KEY` | `command-r-plus` | RAG-optimized |
|
|
408
|
+
|
|
409
|
+
Auto-detection: set any API key and ContextSynapse picks it up. Or specify explicitly:
|
|
410
|
+
```python
|
|
411
|
+
from contextsynapse.llm import get_llm_client
|
|
412
|
+
llm = get_llm_client(provider="groq")
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Security
|
|
418
|
+
|
|
419
|
+
ContextSynapse includes enterprise-grade security out of the box:
|
|
420
|
+
|
|
421
|
+
| Layer | What it does |
|
|
422
|
+
|-------|-------------|
|
|
423
|
+
| **RBAC** | Role-based access control — Admin, Manager, Analyst, Viewer, custom roles |
|
|
424
|
+
| **Row-Level Security** | Tenant-isolated queries — each tenant sees only their data |
|
|
425
|
+
| **AgentShield** | Continuous behavioral auth for AI agents — trust scoring, anomaly detection, adaptive permissions |
|
|
426
|
+
| **PII Detection** | Auto-detect and redact PII (emails, phones, SSNs) before storage |
|
|
427
|
+
| **Field Encryption** | Scoped AES encryption — encrypt specific fields per tenant/scope |
|
|
428
|
+
| **Audit Trail** | Every read/write logged with who, what, when, from where |
|
|
429
|
+
| **JWT Auth** | JWT-based authentication with tenant, role, and scope claims |
|
|
430
|
+
| **Context ACL** | Fine-grained path-based access control on assembled contexts |
|
|
431
|
+
| **Auto-Tagger** | Classify sensitivity level of ingested content automatically |
|
|
432
|
+
| **Security Middleware** | Agent clearance levels, request validation, rate limiting |
|
|
433
|
+
|
|
434
|
+
```python
|
|
435
|
+
from contextsynapse.security import DataSecurity, PIIDetector
|
|
436
|
+
|
|
437
|
+
# Detect PII in text
|
|
438
|
+
pii = PIIDetector()
|
|
439
|
+
result = pii.scan("Contact john@example.com or call 555-0123")
|
|
440
|
+
# → [PIIMatch(type=EMAIL, value="john@example.com"), PIIMatch(type=PHONE, value="555-0123")]
|
|
441
|
+
|
|
442
|
+
# Enforce RBAC
|
|
443
|
+
from contextsynapse.security.rbac import RBACManager
|
|
444
|
+
rbac = RBACManager()
|
|
445
|
+
rbac.check_permission(user_role="analyst", action="read", resource="graph:company")
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## Architecture
|
|
451
|
+
|
|
452
|
+
```
|
|
453
|
+
contextsynapse/
|
|
454
|
+
├── core/ # Graph storage engine (CSR, Redis, LMDB)
|
|
455
|
+
├── aiql/ # AIQL query language (grammar, parser, compiler, executor)
|
|
456
|
+
├── api/ # FastAPI REST API
|
|
457
|
+
├── mcp/ # MCP server for Claude/Copilot
|
|
458
|
+
├── context/ # ContextHub — LLM context building + assembled contexts
|
|
459
|
+
├── storage/ # Storage backends + WAL + namespace store
|
|
460
|
+
├── vector/ # Vector DB integration (NumPy, FAISS, Qdrant, Chroma)
|
|
461
|
+
├── ingestion/ # Universal ingestion pipeline (URL, file, API)
|
|
462
|
+
├── search/ # Graph-enhanced search + RAG + full-text
|
|
463
|
+
├── extraction/ # Entity/fact extraction from documents
|
|
464
|
+
├── security/ # RBAC, RLS, encryption, PII detection, audit
|
|
465
|
+
├── shield/ # AgentShield — behavioral auth + trust engine
|
|
466
|
+
├── governance/ # Data governance layer
|
|
467
|
+
├── a2a/ # Agent-to-agent protocol
|
|
468
|
+
├── adapters/ # Framework adapters (LangChain, CrewAI, etc.)
|
|
469
|
+
├── llm/ # Multi-provider LLM client (12+ providers)
|
|
470
|
+
├── rules/ # Rule engine with temporal + aggregate evaluators
|
|
471
|
+
├── workspace/ # Git/GitHub workspace connectors
|
|
472
|
+
└── plugins/ # Plugin system for vertical applications
|
|
473
|
+
|
|
474
|
+
frontend/ # React dashboard (graph explorer, playground, sessions)
|
|
475
|
+
plugins/ # Domain plugins (installed separately)
|
|
476
|
+
verticals/ # Vertical applications (private, not included in package)
|
|
477
|
+
sdk/ # Python SDK for REST API access
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## Storage Backends
|
|
481
|
+
|
|
482
|
+
| Backend | Best For | Scale |
|
|
483
|
+
|---------|----------|-------|
|
|
484
|
+
| **CSR (in-memory)** | Development, small graphs | ~1M nodes |
|
|
485
|
+
| **Redis** | Multi-worker, shared state | ~10M nodes |
|
|
486
|
+
| **LMDB** | Single-node persistence | ~50M nodes |
|
|
487
|
+
| **PostgreSQL** | Production, horizontal scale | Unlimited |
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
# Redis backend
|
|
491
|
+
CONTEXTSYNAPSE_GRAPH_BACKEND=redis
|
|
492
|
+
CONTEXTSYNAPSE_REDIS_URL=redis://localhost:6379
|
|
493
|
+
|
|
494
|
+
# LMDB backend
|
|
495
|
+
CONTEXTSYNAPSE_STORAGE_BACKEND=lmdb
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Cloud Storage
|
|
499
|
+
|
|
500
|
+
For Kubernetes and ephemeral deployments, graphs persist to cloud storage:
|
|
501
|
+
|
|
502
|
+
| Provider | Backend | Auth | Install |
|
|
503
|
+
|----------|---------|------|---------|
|
|
504
|
+
| **AWS S3** | `s3` | IAM / env credentials | `pip install boto3` |
|
|
505
|
+
| **Google Cloud Storage** | `gcs` | Service account JSON | `pip install google-cloud-storage` |
|
|
506
|
+
| **Azure Blob** | `azure` | Connection string or DefaultAzureCredential | `pip install azure-storage-blob azure-identity` |
|
|
507
|
+
| **MinIO / R2** | `s3` | S3-compatible endpoint | `pip install boto3` |
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
# AWS S3
|
|
511
|
+
CONTEXTSYNAPSE_STORAGE_BACKEND=s3
|
|
512
|
+
CONTEXTSYNAPSE_S3_BUCKET=my-context-graphs
|
|
513
|
+
CONTEXTSYNAPSE_S3_REGION=us-east-1
|
|
514
|
+
|
|
515
|
+
# Google Cloud Storage
|
|
516
|
+
CONTEXTSYNAPSE_STORAGE_BACKEND=gcs
|
|
517
|
+
CONTEXTSYNAPSE_GCS_BUCKET=my-context-graphs
|
|
518
|
+
|
|
519
|
+
# Azure Blob Storage
|
|
520
|
+
CONTEXTSYNAPSE_STORAGE_BACKEND=azure
|
|
521
|
+
CONTEXTSYNAPSE_AZURE_CONTAINER=context-graphs
|
|
522
|
+
CONTEXTSYNAPSE_AZURE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
## Configuration
|
|
528
|
+
|
|
529
|
+
All configuration is via environment variables (prefix `CONTEXTSYNAPSE_`). Copy `.env.example` to `.env` and set what you need — everything has sensible defaults.
|
|
530
|
+
|
|
531
|
+
> **Note:** The older `AICONTEXTDB_*` prefix is still supported for backward compatibility.
|
|
532
|
+
|
|
533
|
+
### Core Settings
|
|
534
|
+
|
|
535
|
+
| Variable | Default | Description |
|
|
536
|
+
|----------|---------|-------------|
|
|
537
|
+
| `CONTEXTSYNAPSE_ADMIN_KEY` | *required* | Admin API key for server mode |
|
|
538
|
+
| `CONTEXTSYNAPSE_JWT_SECRET` | *required* | JWT signing secret for auth |
|
|
539
|
+
| `CONTEXTSYNAPSE_ENV` | `development` | `development` or `production` |
|
|
540
|
+
| `CONTEXTSYNAPSE_CORS_ORIGINS` | `http://localhost:3000` | Allowed CORS origins |
|
|
541
|
+
| `CONTEXTSYNAPSE_RATE_LIMIT_RPM` | `300` | API rate limit (requests/minute) |
|
|
542
|
+
|
|
543
|
+
### Graph Backend
|
|
544
|
+
|
|
545
|
+
| Variable | Default | Options | When to use |
|
|
546
|
+
|----------|---------|---------|-------------|
|
|
547
|
+
| `CONTEXTSYNAPSE_GRAPH_BACKEND` | `csr` | `csr`, `redis`, `lmdb` | `csr` for dev/library, `redis` for multi-worker |
|
|
548
|
+
| `CONTEXTSYNAPSE_REDIS_URL` | — | `redis://host:port` | Set to enable Redis backend |
|
|
549
|
+
| `CONTEXTSYNAPSE_STORAGE_BACKEND` | `csr` | `csr`, `lmdb` | `lmdb` for persistent single-node |
|
|
550
|
+
| `DATABASE_URL` | SQLite | `postgresql://...` | Set for PostgreSQL (users, auth, tenants) |
|
|
551
|
+
|
|
552
|
+
### LLM Providers
|
|
553
|
+
|
|
554
|
+
**Not required for core graph operations.** Only needed for entity extraction, RAG answers, NL queries, and the agent playground. Set any one key — auto-detected:
|
|
555
|
+
|
|
556
|
+
| Provider | Env Variable | Default Model | Speed | Cost |
|
|
557
|
+
|----------|-------------|---------------|-------|------|
|
|
558
|
+
| **Groq** | `GROQ_API_KEY` | `llama-3.1-8b-instant` | Fastest | Free tier |
|
|
559
|
+
| **OpenAI** | `OPENAI_API_KEY` | `gpt-4o-mini` | Fast | Pay-per-use |
|
|
560
|
+
| **Anthropic** | `ANTHROPIC_API_KEY` | `claude-sonnet-4-20250514` | Fast | Pay-per-use |
|
|
561
|
+
| **Ollama** | `OLLAMA_HOST` | `gemma3:1b` | Local | Free (self-hosted) |
|
|
562
|
+
| **DeepSeek** | `DEEPSEEK_API_KEY` | `deepseek-chat` | Fast | Cheapest |
|
|
563
|
+
| **Together** | `TOGETHER_API_KEY` | `Llama-3.1-70B-Instruct` | Fast | Pay-per-use |
|
|
564
|
+
| **Mistral** | `MISTRAL_API_KEY` | `mistral-large-latest` | Fast | EU-hosted |
|
|
565
|
+
| **Cerebras** | `CEREBRAS_API_KEY` | `llama3.1-70b` | Fastest | Free beta |
|
|
566
|
+
| **Fireworks** | `FIREWORKS_API_KEY` | `llama-v3p1-70b-instruct` | Fast | Serverless |
|
|
567
|
+
| **Perplexity** | `PERPLEXITY_API_KEY` | `sonar-pro` | Fast | Search-augmented |
|
|
568
|
+
| **Google** | `GOOGLE_API_KEY` | `gemini-pro` | Fast | Free tier |
|
|
569
|
+
| **Cohere** | `COHERE_API_KEY` | `command-r-plus` | Fast | RAG-optimized |
|
|
570
|
+
|
|
571
|
+
### Embedding Models
|
|
572
|
+
|
|
573
|
+
**Default: Ollama `nomic-embed-text` (768 dims, local, free).** Falls back to NumPy cosine if no embedding model available.
|
|
574
|
+
|
|
575
|
+
| Provider | Model | Dimensions | Notes |
|
|
576
|
+
|----------|-------|-----------|-------|
|
|
577
|
+
| **Ollama** | `nomic-embed-text` | 768 | Default, local, free |
|
|
578
|
+
| **Ollama** | `mxbai-embed-large` | 1024 | Higher quality |
|
|
579
|
+
| **Ollama** | `all-minilm` | 384 | Smallest, fastest |
|
|
580
|
+
| **OpenAI** | `text-embedding-3-small` | 1536 | Best quality/cost |
|
|
581
|
+
| **OpenAI** | `text-embedding-3-large` | 3072 | Highest quality |
|
|
582
|
+
| **Cohere** | `embed-english-v2.0` | 4096 | RAG-optimized |
|
|
583
|
+
| **Gemini** | `text-embedding-004` | 768 | Multimodal |
|
|
584
|
+
| **Mistral** | `mistral-embed` | 1024 | EU-hosted |
|
|
585
|
+
| **Together** | `m2-bert-80M-8k-retrieval` | 768 | Open-source |
|
|
586
|
+
| **Local** | `all-MiniLM-L6-v2` | 384 | sentence-transformers, no API |
|
|
587
|
+
|
|
588
|
+
Configure in `config/config.yaml`:
|
|
589
|
+
```yaml
|
|
590
|
+
embeddings:
|
|
591
|
+
provider: "local" # "local" (sentence-transformers) or "ollama"
|
|
592
|
+
model: "all-MiniLM-L6-v2"
|
|
593
|
+
dimension: 384
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
### Vector Database
|
|
597
|
+
|
|
598
|
+
| Backend | Env Variable | Notes |
|
|
599
|
+
|---------|-------------|-------|
|
|
600
|
+
| **NumPy** (default) | — | Built-in, no setup, good for <100K vectors |
|
|
601
|
+
| **Qdrant** | `QDRANT_URL=http://localhost:6333` | Production, scalable |
|
|
602
|
+
| **FAISS** | `pip install faiss-cpu` | Fast, in-process |
|
|
603
|
+
| **ChromaDB** | `pip install chromadb` | Embedded, easy setup |
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
CONTEXTSYNAPSE_VECTOR_DB_BACKEND=qdrant # or: custom, faiss, chroma
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
### Advanced Settings
|
|
610
|
+
|
|
611
|
+
| Variable | Default | Description |
|
|
612
|
+
|----------|---------|-------------|
|
|
613
|
+
| `CONTEXTSYNAPSE_MAX_GRAPHS` | `50` | Max graphs in memory (LRU eviction) |
|
|
614
|
+
| `CONTEXTSYNAPSE_LLM_CONCURRENCY` | `10` | Max concurrent LLM calls |
|
|
615
|
+
| `CONTEXTSYNAPSE_LLM_RPM` | `100` | LLM rate limit per minute |
|
|
616
|
+
| `CONTEXTSYNAPSE_CONFIDENCE_HALFLIFE_DAYS` | `28` | Memory confidence decay half-life |
|
|
617
|
+
| `CONTEXTSYNAPSE_PRUNE_INTERVAL` | `3600` | Auto-prune interval (seconds) |
|
|
618
|
+
| `CONTEXTSYNAPSE_MCP_MAX_SESSIONS` | `50` | Max concurrent MCP sessions |
|
|
619
|
+
| `CONTEXTSYNAPSE_S3_BUCKET` | — | S3 bucket for cloud graph storage |
|
|
620
|
+
| `CONTEXTSYNAPSE_GCS_BUCKET` | — | Google Cloud Storage bucket |
|
|
621
|
+
| `CONTEXTSYNAPSE_AZURE_CONTAINER` | — | Azure Blob Storage container |
|
|
622
|
+
|
|
623
|
+
### Zero-Config Quick Start
|
|
624
|
+
|
|
625
|
+
ContextSynapse works out of the box with **zero configuration**:
|
|
626
|
+
- Graph: in-memory CSR (no Redis needed)
|
|
627
|
+
- Search: keyword + BM25 index (no vector DB needed)
|
|
628
|
+
- Embedding: NumPy cosine fallback (no embedding model needed)
|
|
629
|
+
- Database: SQLite (no PostgreSQL needed)
|
|
630
|
+
- Encryption: Base64 fallback (no cryptography package needed)
|
|
631
|
+
|
|
632
|
+
Just `pip install contextsynapse` and go.
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## Building Plugins
|
|
637
|
+
|
|
638
|
+
ContextSynapse follows an **open-core model** — the graph engine is open source, and domain-specific applications are built as plugins.
|
|
639
|
+
|
|
640
|
+
```python
|
|
641
|
+
from contextsynapse.plugins import VerticalPlugin, Sensor, PluginSchema
|
|
642
|
+
|
|
643
|
+
class MySensor(Sensor):
|
|
644
|
+
name = "my_data_feed"
|
|
645
|
+
interval_seconds = 300
|
|
646
|
+
|
|
647
|
+
async def collect(self, db):
|
|
648
|
+
return [{"id": "item_1", "type": "MyType", "properties": {"value": 42}}]
|
|
649
|
+
|
|
650
|
+
class MyVertical(VerticalPlugin):
|
|
651
|
+
name = "my_domain"
|
|
652
|
+
version = "0.1.0"
|
|
653
|
+
|
|
654
|
+
def sensors(self):
|
|
655
|
+
return [MySensor()]
|
|
656
|
+
|
|
657
|
+
def schemas(self):
|
|
658
|
+
return [PluginSchema(name="my_schema", node_types={...})]
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
Register via `pyproject.toml`:
|
|
662
|
+
```toml
|
|
663
|
+
[project.entry-points."contextsynapse.plugins"]
|
|
664
|
+
my_domain = "my_package.plugin:MyVertical"
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
---
|
|
668
|
+
|
|
669
|
+
## SDK
|
|
670
|
+
|
|
671
|
+
```bash
|
|
672
|
+
pip install contextsynapse-sdk
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
```python
|
|
676
|
+
from contextsynapse_sdk import ContextSynapseClient
|
|
677
|
+
|
|
678
|
+
client = ContextSynapseClient("http://localhost:8000", api_key="your-key")
|
|
679
|
+
client.add_node("person_1", "Person", {"name": "Alice"})
|
|
680
|
+
results = client.search("Alice")
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## Examples
|
|
686
|
+
|
|
687
|
+
| Example | Description |
|
|
688
|
+
|---------|-------------|
|
|
689
|
+
| [`real_demo.py`](examples/real_demo.py) | **Start here** — startup knowledge graph with PII detection + LLM context |
|
|
690
|
+
| [`demo_graph_rag.py`](examples/demo_graph_rag.py) | **Graph RAG** — document ingestion, keyword search, topic clustering, hybrid retrieval |
|
|
691
|
+
| [`demo_shared_memory.py`](examples/demo_shared_memory.py) | **Shared Memory** — multi-agent remember/recall, cross-agent sharing, versioning |
|
|
692
|
+
| [`demo_memory_layer.py`](examples/demo_memory_layer.py) | **Memory Layer** — 4-tier memory (working/hot/persistent/cold), cross-agent sharing, versioning |
|
|
693
|
+
| [`demo_secure_vault.py`](examples/demo_secure_vault.py) | **Secure Vault** — PII gate, field encryption, AgentShield trust, RBAC, audit trail |
|
|
694
|
+
| [`demo_context_scoring.py`](examples/demo_context_scoring.py) | **Context Quality** — node scoring, freshness detection, quality filtering, usage tracking |
|
|
695
|
+
| [`demo_traceability.py`](examples/demo_traceability.py) | **Traceability** — blockchain hash chains, Merkle roots, proof tokens, tamper detection |
|
|
696
|
+
| [`demo_agent_security.py`](examples/demo_agent_security.py) | **Agent Security** — trust scoring, adaptive permissions, anomaly detection |
|
|
697
|
+
| [`demo.py`](examples/demo.py) | Simple walkthrough — graph, AIQL, context building |
|
|
698
|
+
| [`quickstart.py`](examples/quickstart.py) | Minimal 30-line getting started |
|
|
699
|
+
| [`rag_pipeline.py`](examples/rag_pipeline.py) | RAG pipeline with graph-enhanced retrieval |
|
|
700
|
+
| [`multi_agent.py`](examples/multi_agent.py) | Multi-agent coordination and task queues |
|
|
701
|
+
| [`session_graph_demo.py`](examples/session_graph_demo.py) | Session-based graph management |
|
|
702
|
+
| [`team_workflow.py`](examples/team_workflow.py) | Team collaboration with shared context |
|
|
703
|
+
| [`folder_ingestion_example.py`](examples/folder_ingestion_example.py) | Ingest documents from a folder |
|
|
704
|
+
| [`run_aiql_pipeline.py`](examples/run_aiql_pipeline.py) | AIQL pipeline queries |
|
|
705
|
+
|
|
706
|
+
---
|
|
707
|
+
|
|
708
|
+
## Performance
|
|
709
|
+
|
|
710
|
+
### Graph Operations (CSR in-memory backend)
|
|
711
|
+
|
|
712
|
+
| Operation | 1K nodes | 10K nodes | 50K nodes |
|
|
713
|
+
|-----------|----------|-----------|-----------|
|
|
714
|
+
| Node insert | ~25K ops/s | ~20K ops/s | ~15K ops/s |
|
|
715
|
+
| Edge insert | ~20K ops/s | ~15K ops/s | ~10K ops/s |
|
|
716
|
+
| Node lookup | ~500K ops/s | ~500K ops/s | ~500K ops/s |
|
|
717
|
+
| Neighbor traverse | ~200K ops/s | ~180K ops/s | ~150K ops/s |
|
|
718
|
+
| Memory per node | ~500 bytes | ~600 bytes | ~700 bytes |
|
|
719
|
+
|
|
720
|
+
### Performance Optimizations
|
|
721
|
+
|
|
722
|
+
| Component | Optimization | Impact |
|
|
723
|
+
|-----------|-------------|--------|
|
|
724
|
+
| **CSR Graph** | Compressed Sparse Row format, O(1) neighbor access | 10-100x vs NetworkX |
|
|
725
|
+
| **Lazy CSR Rebuild** | O(1) edge adds, deferred matrix construction | Fast writes, amortized reads |
|
|
726
|
+
| **Property Index** | Hash-based index on node properties | O(1) property lookups |
|
|
727
|
+
| **HNSW Vector Index** | Hierarchical Navigable Small World graph | 100x vs linear scan, sub-ms queries |
|
|
728
|
+
| **LMDB Search Index** | Persistent keyword + BM25 index | Microsecond reads, no rebuild cycle |
|
|
729
|
+
| **Query Cache** | LRU/LFU/TTL eviction, 5000 entries, 500MB cap | Avoid re-computing AIQL queries |
|
|
730
|
+
| **RAG Cache** | 2-tier (Redis + in-process LRU) | Skip redundant LLM calls |
|
|
731
|
+
| **Embedding Cache** | LMDB-backed vector cache | 3-5s saved per cache hit |
|
|
732
|
+
| **Write-Ahead Log** | ACID compliance with checkpoints | Crash recovery, 1000-op checkpoints |
|
|
733
|
+
| **Buffer Manager** | Configurable batching (70% threshold flush) | Smooth write latency |
|
|
734
|
+
| **Connection Pool** | LRU cache, 50 sessions, 30min timeout | Reuse graph connections |
|
|
735
|
+
|
|
736
|
+
### Search & Retrieval Latency
|
|
737
|
+
|
|
738
|
+
| Operation | Latency | Backend |
|
|
739
|
+
|-----------|---------|---------|
|
|
740
|
+
| Keyword search | ~1ms | Inverted index (cached) |
|
|
741
|
+
| BM25 full-text search | ~50ms | LMDB / Whoosh |
|
|
742
|
+
| Agent memory recall | ~10ms | Graph traversal |
|
|
743
|
+
| Working memory cache hit | ~5ms | Redis |
|
|
744
|
+
| Hot memory get/set | ~0.1ms | Redis hash |
|
|
745
|
+
| Vector search | 6-12s | Ollama embedding (local) |
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
## Agent Memory System
|
|
750
|
+
|
|
751
|
+
ContextSynapse provides a 4-tier memory system for AI agents:
|
|
752
|
+
|
|
753
|
+
| Tier | Purpose | Latency | Backend |
|
|
754
|
+
|------|---------|---------|---------|
|
|
755
|
+
| **Working Memory** | Per-agent context cache, reactive invalidation | ~5ms | Redis |
|
|
756
|
+
| **Hot Memory** | Current task, active state (TTL-based) | ~0.1ms | Redis hash |
|
|
757
|
+
| **Agent Memory** | Persistent facts, decisions, preferences with confidence decay | ~10ms | Graph |
|
|
758
|
+
| **Cold Memory** | Time-anchored, recall-at-timestamp, auto-decay | ~50ms | DuckDB |
|
|
759
|
+
|
|
760
|
+
```python
|
|
761
|
+
from contextsynapse.context.agent_memory import AgentMemory
|
|
762
|
+
from contextsynapse.core.registry import GraphRegistry
|
|
763
|
+
|
|
764
|
+
mem = AgentMemory(GraphRegistry(), namespace="shared_brain")
|
|
765
|
+
|
|
766
|
+
# Agent stores a fact
|
|
767
|
+
mem.remember("agent-1", "Revenue grew 8% YoY", tags=["fact", "revenue"], confidence=0.95)
|
|
768
|
+
|
|
769
|
+
# Another agent recalls it
|
|
770
|
+
memories = mem.recall("agent-2", query="revenue", limit=5)
|
|
771
|
+
|
|
772
|
+
# Build LLM context from agent's memories
|
|
773
|
+
hub = mem.build_context("agent-1", system_prompt="You are an analyst.")
|
|
774
|
+
messages = hub.to_messages() # Ready for any LLM API
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
---
|
|
778
|
+
|
|
779
|
+
## Graph RAG
|
|
780
|
+
|
|
781
|
+
ContextSynapse's RAG pipeline combines vector similarity, BM25 full-text, and keyword matching via Reciprocal Rank Fusion:
|
|
782
|
+
|
|
783
|
+
```python
|
|
784
|
+
from contextsynapse.search.rag import hybrid_retrieve, plain_search, topic_scan
|
|
785
|
+
|
|
786
|
+
# Fast keyword search (no LLM needed, ~1ms)
|
|
787
|
+
results = plain_search(db, "connection pool incident", k=10)
|
|
788
|
+
|
|
789
|
+
# Topic clustering (no LLM needed)
|
|
790
|
+
topics = topic_scan(db, graph_name="knowledge_base", max_topics=10)
|
|
791
|
+
|
|
792
|
+
# Hybrid retrieval (vector + BM25 + keyword fusion)
|
|
793
|
+
top_results, sources = hybrid_retrieve(db, "What caused the outage?", k=5)
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
**Why Graph RAG > Vector RAG:** Regular RAG retrieves similar chunks. Graph RAG retrieves chunks *and* follows relationships — connecting incidents to root causes to runbooks. Relationships that pure vector similarity would miss.
|
|
797
|
+
|
|
798
|
+
---
|
|
799
|
+
|
|
800
|
+
## Context Quality Scoring
|
|
801
|
+
|
|
802
|
+
ContextSynapse doesn't just store context — it **measures whether context is any good.**
|
|
803
|
+
|
|
804
|
+
| Layer | What it does | Speed |
|
|
805
|
+
|-------|-------------|-------|
|
|
806
|
+
| **Ingest Gate** | Scores every node 0-100 (connectivity, specificity, source, completeness) | 300K scores/s |
|
|
807
|
+
| **Freshness Detection** | Extracts event dates, classifies as fresh/recent/aging/stale/historical | <1ms |
|
|
808
|
+
| **Quality Filter** | Blocks low-quality nodes before delivery to agents | instant |
|
|
809
|
+
| **Usage Tracking** | Measures if delivered context was actually used (relevance, waste ratio) | per-agent |
|
|
810
|
+
| **Promotion Scoring** | Auto-promotes high-value agent memories to main graph | on-demand |
|
|
811
|
+
|
|
812
|
+
```python
|
|
813
|
+
from contextsynapse.context.quality import score_node
|
|
814
|
+
from contextsynapse.intelligence.freshness import detect_event_date, score_freshness
|
|
815
|
+
|
|
816
|
+
# Score a node at ingest
|
|
817
|
+
score = score_node({"label": "Fact", "properties": {"statement": "Revenue grew 8%", "source_url": "..."}, "edge_count": 4})
|
|
818
|
+
# → 85 (high quality: sourced, connected, specific)
|
|
819
|
+
|
|
820
|
+
# Detect content freshness
|
|
821
|
+
result = detect_event_date("Tesla reported Q3 2026 results on August 15")
|
|
822
|
+
freshness = score_freshness(result.event_date)
|
|
823
|
+
# → freshness="recent", staleness_days=29
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
---
|
|
827
|
+
|
|
828
|
+
## Documentation
|
|
829
|
+
|
|
830
|
+
| Document | Description |
|
|
831
|
+
|----------|-------------|
|
|
832
|
+
| [AIQL Guide](docs/AIQL_GUIDE.md) | Complete AIQL query language reference |
|
|
833
|
+
| [Architecture](docs/ARCHITECTURE.md) | System architecture and design decisions |
|
|
834
|
+
| [Storage Formats](docs/STORAGE_FORMATS.md) | Storage backend details and configuration |
|
|
835
|
+
| [Cloud Deployment](docs/CLOUD_DEPLOYMENT.md) | Production deployment guide |
|
|
836
|
+
| [Contributing](CONTRIBUTING.md) | Development setup and contribution guidelines |
|
|
837
|
+
| [Changelog](CHANGELOG.md) | Version history |
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## Contributing
|
|
842
|
+
|
|
843
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
|
|
844
|
+
|
|
845
|
+
## License
|
|
846
|
+
|
|
847
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|