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.
Files changed (776) hide show
  1. contextsynapse/__init__.py +107 -0
  2. contextsynapse/__main__.py +9 -0
  3. contextsynapse/a2a/__init__.py +28 -0
  4. contextsynapse/a2a/client.py +120 -0
  5. contextsynapse/a2a/discovery.py +128 -0
  6. contextsynapse/a2a/handlers.py +164 -0
  7. contextsynapse/a2a/models.py +246 -0
  8. contextsynapse/a2a/streaming.py +92 -0
  9. contextsynapse/a2a/task_manager.py +275 -0
  10. contextsynapse/adapters/__init__.py +98 -0
  11. contextsynapse/adapters/_base.py +298 -0
  12. contextsynapse/adapters/autogen/__init__.py +4 -0
  13. contextsynapse/adapters/autogen/tools.py +34 -0
  14. contextsynapse/adapters/crewai/__init__.py +4 -0
  15. contextsynapse/adapters/crewai/tools.py +63 -0
  16. contextsynapse/adapters/langchain/__init__.py +19 -0
  17. contextsynapse/adapters/langchain/message_history.py +17 -0
  18. contextsynapse/adapters/langchain/retriever.py +158 -0
  19. contextsynapse/adapters/langchain/tools.py +43 -0
  20. contextsynapse/adapters/langgraph/__init__.py +21 -0
  21. contextsynapse/adapters/langgraph/checkpoint.py +223 -0
  22. contextsynapse/adapters/langgraph/context_tools.py +341 -0
  23. contextsynapse/adapters/langgraph/message_history.py +138 -0
  24. contextsynapse/adapters/langgraph/tools.py +43 -0
  25. contextsynapse/adapters/llamaindex/__init__.py +4 -0
  26. contextsynapse/adapters/llamaindex/tools.py +64 -0
  27. contextsynapse/adapters/openai/__init__.py +24 -0
  28. contextsynapse/adapters/openai/tools.py +206 -0
  29. contextsynapse/adapters/pydantic_ai/__init__.py +4 -0
  30. contextsynapse/adapters/pydantic_ai/tools.py +36 -0
  31. contextsynapse/adapters/swarm/__init__.py +4 -0
  32. contextsynapse/adapters/swarm/tools.py +44 -0
  33. contextsynapse/agents/__init__.py +6 -0
  34. contextsynapse/agents/auto_capture.py +80 -0
  35. contextsynapse/agents/dispatcher.py +299 -0
  36. contextsynapse/agents/notifications.py +112 -0
  37. contextsynapse/aiql/__init__.py +71 -0
  38. contextsynapse/aiql/cache.py +341 -0
  39. contextsynapse/aiql/compiler/__init__.py +62 -0
  40. contextsynapse/aiql/compiler/optimizer.py +126 -0
  41. contextsynapse/aiql/compiler/planner.py +366 -0
  42. contextsynapse/aiql/compiler/statistics.py +235 -0
  43. contextsynapse/aiql/compiler/validator.py +425 -0
  44. contextsynapse/aiql/engine/__init__.py +11 -0
  45. contextsynapse/aiql/engine/chunk_storage.py +2584 -0
  46. contextsynapse/aiql/engine/executor.py +7737 -0
  47. contextsynapse/aiql/engine/extraction_integration.py +442 -0
  48. contextsynapse/aiql/engine/graph_builder.py +405 -0
  49. contextsynapse/aiql/engine/node_creation_from_normalized.py +691 -0
  50. contextsynapse/aiql/engine/performance_monitor.py +289 -0
  51. contextsynapse/aiql/engine/postprocessing.py +365 -0
  52. contextsynapse/aiql/engine/ray_stage_executors.py +918 -0
  53. contextsynapse/aiql/engine/redis_cache.py +106 -0
  54. contextsynapse/aiql/engine/streaming_json.py +366 -0
  55. contextsynapse/aiql/engine/streaming_parquet.py +568 -0
  56. contextsynapse/aiql/engine/streaming_ray_chunking.py +419 -0
  57. contextsynapse/aiql/grammar/__init__.py +14 -0
  58. contextsynapse/aiql/grammar/aiql_grammar.py +1822 -0
  59. contextsynapse/aiql/grammar/base.py +71 -0
  60. contextsynapse/aiql/parser/__init__.py +46 -0
  61. contextsynapse/aiql/parser/aiql_parser.py +11330 -0
  62. contextsynapse/aiql/parser/base_parser.py +47 -0
  63. contextsynapse/api/__init__.py +5 -0
  64. contextsynapse/api/a2a_router.py +233 -0
  65. contextsynapse/api/admin_router.py +140 -0
  66. contextsynapse/api/agent_worker_router.py +978 -0
  67. contextsynapse/api/algorithms_router.py +317 -0
  68. contextsynapse/api/api.py +4144 -0
  69. contextsynapse/api/audit.py +204 -0
  70. contextsynapse/api/auth.py +441 -0
  71. contextsynapse/api/auth_router.py +537 -0
  72. contextsynapse/api/billing.py +261 -0
  73. contextsynapse/api/billing_router.py +275 -0
  74. contextsynapse/api/boundary_router.py +452 -0
  75. contextsynapse/api/cognition_router.py +116 -0
  76. contextsynapse/api/connector_router.py +237 -0
  77. contextsynapse/api/context_router.py +1619 -0
  78. contextsynapse/api/dashboard_router.py +11367 -0
  79. contextsynapse/api/errors.py +183 -0
  80. contextsynapse/api/events.py +88 -0
  81. contextsynapse/api/experiment_bootstrap.py +321 -0
  82. contextsynapse/api/experiment_orchestrator.py +1078 -0
  83. contextsynapse/api/experiment_router.py +2089 -0
  84. contextsynapse/api/feature_gate.py +89 -0
  85. contextsynapse/api/federation_router.py +108 -0
  86. contextsynapse/api/integrations.py +567 -0
  87. contextsynapse/api/integrations_router.py +461 -0
  88. contextsynapse/api/intelligence_router.py +1028 -0
  89. contextsynapse/api/metering.py +155 -0
  90. contextsynapse/api/metrics.py +112 -0
  91. contextsynapse/api/models.py +38 -0
  92. contextsynapse/api/monitoring_router.py +174 -0
  93. contextsynapse/api/pipeline_router.py +1437 -0
  94. contextsynapse/api/playground_conn.py +116 -0
  95. contextsynapse/api/projects_router.py +131 -0
  96. contextsynapse/api/queries_router.py +282 -0
  97. contextsynapse/api/quota.py +95 -0
  98. contextsynapse/api/rate_limit.py +64 -0
  99. contextsynapse/api/search_router.py +261 -0
  100. contextsynapse/api/shield_router.py +447 -0
  101. contextsynapse/api/tenant_guard.py +103 -0
  102. contextsynapse/api/tenant_quotas.py +231 -0
  103. contextsynapse/api/tenants.py +305 -0
  104. contextsynapse/api/users.py +646 -0
  105. contextsynapse/api/v1.py +167 -0
  106. contextsynapse/api/vertical_builder_router.py +387 -0
  107. contextsynapse/benchmark/__init__.py +15 -0
  108. contextsynapse/benchmark/__main__.py +64 -0
  109. contextsynapse/benchmark/agents.py +338 -0
  110. contextsynapse/benchmark/live_ab.py +338 -0
  111. contextsynapse/benchmark/reporter.py +149 -0
  112. contextsynapse/benchmark/runner.py +264 -0
  113. contextsynapse/benchmark/savings.py +266 -0
  114. contextsynapse/benchmark/token_counter.py +212 -0
  115. contextsynapse/benchmark/workloads.py +289 -0
  116. contextsynapse/buffer/__init__.py +154 -0
  117. contextsynapse/buffer/base.py +257 -0
  118. contextsynapse/buffer/duckdb_buffer.py +246 -0
  119. contextsynapse/buffer/file_buffer.py +229 -0
  120. contextsynapse/buffer/lmdb_buffer.py +286 -0
  121. contextsynapse/buffer/local_buffer.py +154 -0
  122. contextsynapse/buffer/redis_buffer.py +211 -0
  123. contextsynapse/buffer/sqlite_buffer.py +266 -0
  124. contextsynapse/cache.py +2 -0
  125. contextsynapse/cli/__init__.py +40 -0
  126. contextsynapse/cli/cli.py +475 -0
  127. contextsynapse/cli/config_cli.py +177 -0
  128. contextsynapse/cli/scaffold.py +465 -0
  129. contextsynapse/cognition/__init__.py +31 -0
  130. contextsynapse/cognition/derivation.py +55 -0
  131. contextsynapse/cognition/events.py +135 -0
  132. contextsynapse/cognition/feedback.py +52 -0
  133. contextsynapse/cognition/hallucination.py +90 -0
  134. contextsynapse/cognition/invalidation.py +70 -0
  135. contextsynapse/cognition/read_tracker.py +50 -0
  136. contextsynapse/collaboration.py +2 -0
  137. contextsynapse/comparison.py +2 -0
  138. contextsynapse/config/__init__.py +10 -0
  139. contextsynapse/config/connectors/amfi_nav.yaml +18 -0
  140. contextsynapse/config/connectors/auto_sector.yaml +20 -0
  141. contextsynapse/config/connectors/banking_sector.yaml +20 -0
  142. contextsynapse/config/connectors/energy_sector.yaml +20 -0
  143. contextsynapse/config/connectors/fmcg_sector.yaml +20 -0
  144. contextsynapse/config/connectors/nsdl_fpi.yaml +9 -0
  145. contextsynapse/config/connectors/nse_price.yaml +61 -0
  146. contextsynapse/config/connectors/pharma_sector.yaml +20 -0
  147. contextsynapse/config/connectors/rbi_dbie.yaml +12 -0
  148. contextsynapse/config/context_presets/ai_research.json +25 -0
  149. contextsynapse/config/context_presets/chatgpt_conversations.json +19 -0
  150. contextsynapse/config/context_presets/claude_conversations.json +19 -0
  151. contextsynapse/config/context_presets/legal_compliance.json +21 -0
  152. contextsynapse/config/context_presets/meeting_notes.json +21 -0
  153. contextsynapse/config/context_presets/slack_engineering.json +21 -0
  154. contextsynapse/config/context_presets/tech_climate.json +24 -0
  155. contextsynapse/config/context_presets/toi_politics.json +25 -0
  156. contextsynapse/config/database_config.py +453 -0
  157. contextsynapse/config/deployment.py +221 -0
  158. contextsynapse/config/gpt_action_schema.json +164 -0
  159. contextsynapse/config/indicators/india_macro.yaml +213 -0
  160. contextsynapse/config/logging_config.py +88 -0
  161. contextsynapse/config/mode_config.py +223 -0
  162. contextsynapse/config/schemas/api_spec.yaml +48 -0
  163. contextsynapse/config/schemas/architecture_doc.yaml +51 -0
  164. contextsynapse/config/schemas/chat_history.yaml +90 -0
  165. contextsynapse/config/schemas/chatgpt_conversation.yaml +101 -0
  166. contextsynapse/config/schemas/claude_conversation.yaml +148 -0
  167. contextsynapse/config/schemas/contract.yaml +48 -0
  168. contextsynapse/config/schemas/conversation.yaml +167 -0
  169. contextsynapse/config/schemas/database.yaml +74 -0
  170. contextsynapse/config/schemas/decision.yaml +72 -0
  171. contextsynapse/config/schemas/ecommerce.yaml +56 -0
  172. contextsynapse/config/schemas/education.yaml +42 -0
  173. contextsynapse/config/schemas/healthcare.yaml +133 -0
  174. contextsynapse/config/schemas/hr_document.yaml +48 -0
  175. contextsynapse/config/schemas/invoice.yaml +40 -0
  176. contextsynapse/config/schemas/knowledge_base.yaml +75 -0
  177. contextsynapse/config/schemas/legal.yaml +42 -0
  178. contextsynapse/config/schemas/marketing_content.yaml +48 -0
  179. contextsynapse/config/schemas/meeting_notes.yaml +51 -0
  180. contextsynapse/config/schemas/news_article.yaml +61 -0
  181. contextsynapse/config/schemas/real_estate.yaml +49 -0
  182. contextsynapse/config/schemas/requirements_doc.yaml +48 -0
  183. contextsynapse/config/schemas/research_paper.yaml +56 -0
  184. contextsynapse/config/schemas/resume.yaml +49 -0
  185. contextsynapse/config/schemas/retail.yaml +42 -0
  186. contextsynapse/config/schemas/rule_meta.yaml +173 -0
  187. contextsynapse/config/schemas/rules.yaml +72 -0
  188. contextsynapse/config/schemas/screener_meta.yaml +236 -0
  189. contextsynapse/config/schemas/sdlc.yaml +103 -0
  190. contextsynapse/config/schemas/session_graph.yaml +172 -0
  191. contextsynapse/config/schemas/support_ticket.yaml +48 -0
  192. contextsynapse/config/schemas/web.yaml +64 -0
  193. contextsynapse/config/sensors/earnings_calendar.yaml +52 -0
  194. contextsynapse/config/sensors/global_risk.yaml +53 -0
  195. contextsynapse/config/sensors/government_policy.yaml +54 -0
  196. contextsynapse/config/sensors/supply_chain.yaml +50 -0
  197. contextsynapse/config/sensors/templates/behavioral.yaml +56 -0
  198. contextsynapse/config/sensors/templates/equity_sentiment.yaml +48 -0
  199. contextsynapse/config/sensors/templates/global_macro.yaml +47 -0
  200. contextsynapse/config/sensors/templates/market_data.yaml +118 -0
  201. contextsynapse/config/sensors/templates/sector_technical.yaml +47 -0
  202. contextsynapse/config/sensors/weather.yaml +52 -0
  203. contextsynapse/config/storage_strategy.py +202 -0
  204. contextsynapse/config/templates/competitive_intel.yaml +39 -0
  205. contextsynapse/config/templates/geopolitical_risk.yaml +46 -0
  206. contextsynapse/config/templates/market_analysis.yaml +58 -0
  207. contextsynapse/connectors/__init__.py +15 -0
  208. contextsynapse/connectors/api_router.py +121 -0
  209. contextsynapse/connectors/base.py +357 -0
  210. contextsynapse/connectors/financial/audio.py +170 -0
  211. contextsynapse/connectors/financial/youtube.py +272 -0
  212. contextsynapse/connectors/github.py +164 -0
  213. contextsynapse/connectors/jira.py +120 -0
  214. contextsynapse/connectors/kafka_connector.py +124 -0
  215. contextsynapse/connectors/pipeline_connector.py +747 -0
  216. contextsynapse/connectors/registry.py +116 -0
  217. contextsynapse/connectors/scheduler.py +87 -0
  218. contextsynapse/connectors/universal.py +360 -0
  219. contextsynapse/context/__init__.py +96 -0
  220. contextsynapse/context/__main__.py +4 -0
  221. contextsynapse/context/acl.py +125 -0
  222. contextsynapse/context/agent_card.py +201 -0
  223. contextsynapse/context/agent_memory.py +814 -0
  224. contextsynapse/context/agents.py +472 -0
  225. contextsynapse/context/agents_redis.py +391 -0
  226. contextsynapse/context/assembled.py +204 -0
  227. contextsynapse/context/attribution.py +113 -0
  228. contextsynapse/context/blob.py +184 -0
  229. contextsynapse/context/boundaries.py +187 -0
  230. contextsynapse/context/boundary.py +507 -0
  231. contextsynapse/context/bundle.py +155 -0
  232. contextsynapse/context/cli.py +519 -0
  233. contextsynapse/context/collaboration.py +165 -0
  234. contextsynapse/context/compiler.py +604 -0
  235. contextsynapse/context/composite.py +536 -0
  236. contextsynapse/context/compression.py +147 -0
  237. contextsynapse/context/context_manager.py +888 -0
  238. contextsynapse/context/context_schema.py +90 -0
  239. contextsynapse/context/context_schema.yaml +105 -0
  240. contextsynapse/context/context_units.py +891 -0
  241. contextsynapse/context/conversation.py +488 -0
  242. contextsynapse/context/dedup.py +207 -0
  243. contextsynapse/context/document_processor.py +698 -0
  244. contextsynapse/context/embedding_hooks.py +338 -0
  245. contextsynapse/context/execution_schema.py +274 -0
  246. contextsynapse/context/fan_out.py +138 -0
  247. contextsynapse/context/frozen.py +80 -0
  248. contextsynapse/context/gravity.py +227 -0
  249. contextsynapse/context/hub.py +1401 -0
  250. contextsynapse/context/ingest.py +391 -0
  251. contextsynapse/context/injection.py +226 -0
  252. contextsynapse/context/interaction_graphifier.py +562 -0
  253. contextsynapse/context/layers.py +574 -0
  254. contextsynapse/context/projection.py +1195 -0
  255. contextsynapse/context/promotion.py +634 -0
  256. contextsynapse/context/proof.py +131 -0
  257. contextsynapse/context/propagation.py +577 -0
  258. contextsynapse/context/pubsub.py +135 -0
  259. contextsynapse/context/quality.py +1054 -0
  260. contextsynapse/context/quality_tracker.py +270 -0
  261. contextsynapse/context/scoping.py +370 -0
  262. contextsynapse/context/seed.py +992 -0
  263. contextsynapse/context/session.py +1142 -0
  264. contextsynapse/context/session_graph.py +593 -0
  265. contextsynapse/context/session_memory.py +309 -0
  266. contextsynapse/context/session_resolver.py +111 -0
  267. contextsynapse/context/skill_learning.py +237 -0
  268. contextsynapse/context/smart_budget.py +129 -0
  269. contextsynapse/context/source_policy.py +242 -0
  270. contextsynapse/context/store_factory.py +53 -0
  271. contextsynapse/context/sync.py +648 -0
  272. contextsynapse/context/token.py +236 -0
  273. contextsynapse/context/vector_integration.py +297 -0
  274. contextsynapse/context/webhooks.py +194 -0
  275. contextsynapse/context/working_memory.py +224 -0
  276. contextsynapse/core/__init__.py +18 -0
  277. contextsynapse/core/archiver.py +237 -0
  278. contextsynapse/core/change_stream.py +282 -0
  279. contextsynapse/core/checkpoint.py +310 -0
  280. contextsynapse/core/cloud_storage.py +387 -0
  281. contextsynapse/core/context_state.py +651 -0
  282. contextsynapse/core/cron.py +324 -0
  283. contextsynapse/core/datasource.py +643 -0
  284. contextsynapse/core/db.py +289 -0
  285. contextsynapse/core/federation.py +283 -0
  286. contextsynapse/core/graph_coordinator.py +201 -0
  287. contextsynapse/core/graph_intelligence.py +388 -0
  288. contextsynapse/core/graph_structures.py +106 -0
  289. contextsynapse/core/graph_sync.py +157 -0
  290. contextsynapse/core/hybrid_graph_storage.py +2998 -0
  291. contextsynapse/core/lifecycle.py +691 -0
  292. contextsynapse/core/multiworker.py +378 -0
  293. contextsynapse/core/pruning.py +312 -0
  294. contextsynapse/core/redis_registry.py +524 -0
  295. contextsynapse/core/registry.py +1043 -0
  296. contextsynapse/core/registry_factory.py +51 -0
  297. contextsynapse/core/registry_metadata.py +294 -0
  298. contextsynapse/core/replay.py +354 -0
  299. contextsynapse/core/replication.py +339 -0
  300. contextsynapse/core/time_travel.py +260 -0
  301. contextsynapse/core/write_behind.py +152 -0
  302. contextsynapse/core/write_context.py +39 -0
  303. contextsynapse/db/__init__.py +1 -0
  304. contextsynapse/db/postgres.py +267 -0
  305. contextsynapse/db/profile.py +236 -0
  306. contextsynapse/db/rules.py +328 -0
  307. contextsynapse/demo/__init__.py +0 -0
  308. contextsynapse/demo/report.py +147 -0
  309. contextsynapse/demo/runner.py +520 -0
  310. contextsynapse/demo/scenario.py +165 -0
  311. contextsynapse/demo/session_demo.py +280 -0
  312. contextsynapse/demo/session_report.py +143 -0
  313. contextsynapse/demo/universal_runner.py +257 -0
  314. contextsynapse/engine/__init__.py +15 -0
  315. contextsynapse/engine/core.py +555 -0
  316. contextsynapse/extraction/__init__.py +69 -0
  317. contextsynapse/extraction/cli.py +274 -0
  318. contextsynapse/extraction/config.py +107 -0
  319. contextsynapse/extraction/examples/example_usage.py +118 -0
  320. contextsynapse/extraction/examples/sample_manifest.json +53 -0
  321. contextsynapse/extraction/examples/sample_normalized.json +185 -0
  322. contextsynapse/extraction/extract_engine.py +440 -0
  323. contextsynapse/extraction/extractors/__init__.py +37 -0
  324. contextsynapse/extraction/extractors/chat_export_extractor.py +189 -0
  325. contextsynapse/extraction/extractors/csv_extractor.py +83 -0
  326. contextsynapse/extraction/extractors/docx_extractor.py +129 -0
  327. contextsynapse/extraction/extractors/excel_extractor.py +152 -0
  328. contextsynapse/extraction/extractors/html_extractor.py +146 -0
  329. contextsynapse/extraction/extractors/pdf_extractor.py +635 -0
  330. contextsynapse/extraction/extractors/pdf_extractor_layoutparser.py +408 -0
  331. contextsynapse/extraction/extractors/register_extractors.py +63 -0
  332. contextsynapse/extraction/extractors/text_extractor.py +65 -0
  333. contextsynapse/extraction/extractors/txt_extractor.py +120 -0
  334. contextsynapse/extraction/extractors/website_extractor.py +246 -0
  335. contextsynapse/extraction/fact_extractor.py +236 -0
  336. contextsynapse/extraction/file_manager.py +353 -0
  337. contextsynapse/extraction/hierarchy.py +239 -0
  338. contextsynapse/extraction/id_generator.py +450 -0
  339. contextsynapse/extraction/layout_detector.py +409 -0
  340. contextsynapse/extraction/llm_entity_extractor.py +301 -0
  341. contextsynapse/extraction/normalized_store.py +480 -0
  342. contextsynapse/extraction/normalizer.py +594 -0
  343. contextsynapse/extraction/parquet_writer.py +598 -0
  344. contextsynapse/extraction/post_processors/__init__.py +40 -0
  345. contextsynapse/extraction/post_processors/column_reorganizer.py +507 -0
  346. contextsynapse/extraction/ray_normalization.py +233 -0
  347. contextsynapse/extraction/ray_runner.py +207 -0
  348. contextsynapse/extraction/redis_schema_registry.py +222 -0
  349. contextsynapse/extraction/registry.py +204 -0
  350. contextsynapse/extraction/schema_loader.py +663 -0
  351. contextsynapse/extraction/schema_registry.py +230 -0
  352. contextsynapse/extraction/semantic_normalizer.py +245 -0
  353. contextsynapse/extraction/version_manager.py +314 -0
  354. contextsynapse/gateway/__init__.py +24 -0
  355. contextsynapse/gateway/action_emitter.py +212 -0
  356. contextsynapse/gateway/cost_tracker.py +508 -0
  357. contextsynapse/gateway/gateway.py +377 -0
  358. contextsynapse/gateway/policy.py +303 -0
  359. contextsynapse/governance/__init__.py +13 -0
  360. contextsynapse/governance/layer.py +513 -0
  361. contextsynapse/ingestion/__init__.py +15 -0
  362. contextsynapse/ingestion/amplifier.py +288 -0
  363. contextsynapse/ingestion/async_ingest.py +463 -0
  364. contextsynapse/ingestion/chunker.py +303 -0
  365. contextsynapse/ingestion/chunking.py +58 -0
  366. contextsynapse/ingestion/cleaner.py +190 -0
  367. contextsynapse/ingestion/cleanse.py +252 -0
  368. contextsynapse/ingestion/connectors/__init__.py +38 -0
  369. contextsynapse/ingestion/connectors/base.py +300 -0
  370. contextsynapse/ingestion/connectors/chatgpt_memory.py +247 -0
  371. contextsynapse/ingestion/connectors/claude_memory.py +274 -0
  372. contextsynapse/ingestion/connectors/sap_ingestor.py +208 -0
  373. contextsynapse/ingestion/content_detector.py +80 -0
  374. contextsynapse/ingestion/content_monitor.py +502 -0
  375. contextsynapse/ingestion/dedup.py +106 -0
  376. contextsynapse/ingestion/feed.py +640 -0
  377. contextsynapse/ingestion/filters.py +461 -0
  378. contextsynapse/ingestion/graph_builder.py +705 -0
  379. contextsynapse/ingestion/input_classifier.py +307 -0
  380. contextsynapse/ingestion/job_manager.py +571 -0
  381. contextsynapse/ingestion/llm_extractor.py +610 -0
  382. contextsynapse/ingestion/orchestrator.py +116 -0
  383. contextsynapse/ingestion/parsers/__init__.py +19 -0
  384. contextsynapse/ingestion/parsers/graph_parser_registry.py +103 -0
  385. contextsynapse/ingestion/parsers/graphml_parser.py +141 -0
  386. contextsynapse/ingestion/parsers/jsonld_parser.py +171 -0
  387. contextsynapse/ingestion/parsers/rdf_parser.py +150 -0
  388. contextsynapse/ingestion/pipeline_context.py +228 -0
  389. contextsynapse/ingestion/pipeline_store.py +1195 -0
  390. contextsynapse/ingestion/queue.py +133 -0
  391. contextsynapse/ingestion/reprocess.py +179 -0
  392. contextsynapse/ingestion/scenario_router.py +224 -0
  393. contextsynapse/ingestion/schema_extractor.py +759 -0
  394. contextsynapse/ingestion/schema_validator.py +274 -0
  395. contextsynapse/ingestion/sdlc_ingest.py +87 -0
  396. contextsynapse/ingestion/smart_ingest.py +2451 -0
  397. contextsynapse/ingestion/source_connector.py +171 -0
  398. contextsynapse/ingestion/stage_executor.py +2095 -0
  399. contextsynapse/ingestion/stages/__init__.py +9 -0
  400. contextsynapse/ingestion/stages/tabular_to_graph.py +289 -0
  401. contextsynapse/ingestion/strategies.py +386 -0
  402. contextsynapse/ingestion/universal/__init__.py +4 -0
  403. contextsynapse/ingestion/universal/_operator_registry.py +59 -0
  404. contextsynapse/ingestion/universal/ingest_content.py +32 -0
  405. contextsynapse/ingestion/universal/operators/__init__.py +1 -0
  406. contextsynapse/ingestion/universal/operators/base.py +19 -0
  407. contextsynapse/ingestion/universal/operators/build_edges.py +75 -0
  408. contextsynapse/ingestion/universal/operators/cluster_topics.py +397 -0
  409. contextsynapse/ingestion/universal/operators/deduplicate.py +45 -0
  410. contextsynapse/ingestion/universal/operators/detect_signals.py +90 -0
  411. contextsynapse/ingestion/universal/operators/embed.py +80 -0
  412. contextsynapse/ingestion/universal/operators/extract_entities.py +253 -0
  413. contextsynapse/ingestion/universal/operators/extract_preferences.py +117 -0
  414. contextsynapse/ingestion/universal/operators/filter_content.py +69 -0
  415. contextsynapse/ingestion/universal/operators/index_bm25.py +52 -0
  416. contextsynapse/ingestion/universal/operators/infer_domains.py +69 -0
  417. contextsynapse/ingestion/universal/operators/link_cross_reference.py +210 -0
  418. contextsynapse/ingestion/universal/operators/parse_records.py +66 -0
  419. contextsynapse/ingestion/universal/operators/resolve_entities.py +261 -0
  420. contextsynapse/ingestion/universal/operators/scanners/__init__.py +16 -0
  421. contextsynapse/ingestion/universal/operators/scanners/edges.py +173 -0
  422. contextsynapse/ingestion/universal/operators/scanners/git.py +187 -0
  423. contextsynapse/ingestion/universal/operators/scanners/github.py +135 -0
  424. contextsynapse/ingestion/universal/operators/scanners/github_api.py +509 -0
  425. contextsynapse/ingestion/universal/operators/scanners/helpers.py +67 -0
  426. contextsynapse/ingestion/universal/operators/scanners/jira.py +65 -0
  427. contextsynapse/ingestion/universal/operators/scanners/llm_enrichment.py +82 -0
  428. contextsynapse/ingestion/universal/operators/scanners/repo.py +149 -0
  429. contextsynapse/ingestion/universal/operators/sdlc_scan.py +213 -0
  430. contextsynapse/ingestion/universal/operators/spec_scanner.py +149 -0
  431. contextsynapse/ingestion/universal/operators/store_documents.py +72 -0
  432. contextsynapse/ingestion/universal/operators/synthesize_cu.py +180 -0
  433. contextsynapse/ingestion/universal/operators/validate_gate.py +65 -0
  434. contextsynapse/ingestion/universal/parsers/__init__.py +5 -0
  435. contextsynapse/ingestion/universal/parsers/record_parser.py +203 -0
  436. contextsynapse/ingestion/universal/parsers/turn_parser.py +329 -0
  437. contextsynapse/ingestion/universal/shared_signals.py +161 -0
  438. contextsynapse/ingestion/universal/stage_executor.py +219 -0
  439. contextsynapse/ingestion/web_crawler.py +265 -0
  440. contextsynapse/intelligence/__init__.py +53 -0
  441. contextsynapse/intelligence/alerts.py +198 -0
  442. contextsynapse/intelligence/collector.py +655 -0
  443. contextsynapse/intelligence/comparison.py +198 -0
  444. contextsynapse/intelligence/config.py +56 -0
  445. contextsynapse/intelligence/conflict_detector.py +182 -0
  446. contextsynapse/intelligence/context_gaps.py +192 -0
  447. contextsynapse/intelligence/context_radar.py +135 -0
  448. contextsynapse/intelligence/correlation_engine.py +416 -0
  449. contextsynapse/intelligence/correlation_template.py +120 -0
  450. contextsynapse/intelligence/dedup.py +296 -0
  451. contextsynapse/intelligence/event_bus.py +91 -0
  452. contextsynapse/intelligence/feedback_loop.py +101 -0
  453. contextsynapse/intelligence/freshness.py +307 -0
  454. contextsynapse/intelligence/fundamental_feed.py +551 -0
  455. contextsynapse/intelligence/geo_data.py +170 -0
  456. contextsynapse/intelligence/geo_reference.py +112 -0
  457. contextsynapse/intelligence/graph_fusion.py +465 -0
  458. contextsynapse/intelligence/heuristics.py +176 -0
  459. contextsynapse/intelligence/impact_tracker.py +336 -0
  460. contextsynapse/intelligence/macro_indicators.py +319 -0
  461. contextsynapse/intelligence/ocr.py +104 -0
  462. contextsynapse/intelligence/persistence.py +267 -0
  463. contextsynapse/intelligence/pipeline_health.py +130 -0
  464. contextsynapse/intelligence/price_feed.py +221 -0
  465. contextsynapse/intelligence/rate_limiter.py +130 -0
  466. contextsynapse/intelligence/reactive.py +411 -0
  467. contextsynapse/intelligence/runtime_context.py +390 -0
  468. contextsynapse/intelligence/sentiment_decay.py +426 -0
  469. contextsynapse/intelligence/session.py +277 -0
  470. contextsynapse/intelligence/signal_hierarchy.py +438 -0
  471. contextsynapse/intelligence/signals.py +185 -0
  472. contextsynapse/intelligence/source_watcher.py +132 -0
  473. contextsynapse/intelligence/table_enricher.py +256 -0
  474. contextsynapse/intelligence/tagger.py +319 -0
  475. contextsynapse/intelligence/timeseries.py +209 -0
  476. contextsynapse/intelligence/tracker.py +318 -0
  477. contextsynapse/intelligence/watchdog.py +392 -0
  478. contextsynapse/intelligence/watchdog_manager.py +263 -0
  479. contextsynapse/intelligence/webhook_receiver.py +165 -0
  480. contextsynapse/intelligence/weight_learner.py +234 -0
  481. contextsynapse/llm/__init__.py +8 -0
  482. contextsynapse/llm/client.py +348 -0
  483. contextsynapse/llm/rate_limiter.py +166 -0
  484. contextsynapse/logging_config.py +2 -0
  485. contextsynapse/marketplace/__init__.py +7 -0
  486. contextsynapse/marketplace/registry.py +173 -0
  487. contextsynapse/mcp/__init__.py +11 -0
  488. contextsynapse/mcp/__main__.py +4 -0
  489. contextsynapse/mcp/auth_middleware.py +212 -0
  490. contextsynapse/mcp/connection_pool.py +128 -0
  491. contextsynapse/mcp/server.py +986 -0
  492. contextsynapse/mcp/session_context.py +67 -0
  493. contextsynapse/memory/__init__.py +34 -0
  494. contextsynapse/memory/engine.py +475 -0
  495. contextsynapse/memory/temporal.py +327 -0
  496. contextsynapse/metadata/__init__.py +12 -0
  497. contextsynapse/metadata/metadata_db.py +272 -0
  498. contextsynapse/metadata/metadata_query_tool.py +300 -0
  499. contextsynapse/metadata/metadata_tracker.py +425 -0
  500. contextsynapse/models/__init__.py +27 -0
  501. contextsynapse/models/embedding_service.py +360 -0
  502. contextsynapse/models/model_registry.py +228 -0
  503. contextsynapse/multiworker.py +2 -0
  504. contextsynapse/pipelines/__init__.py +1 -0
  505. contextsynapse/pipelines/executor.py +851 -0
  506. contextsynapse/pipelines/filters.py +189 -0
  507. contextsynapse/pipelines/models.py +176 -0
  508. contextsynapse/pipelines/scheduler.py +268 -0
  509. contextsynapse/playground/__init__.py +1 -0
  510. contextsynapse/playground/templates.py +85 -0
  511. contextsynapse/plugins/__init__.py +43 -0
  512. contextsynapse/plugins/api.py +66 -0
  513. contextsynapse/plugins/base.py +350 -0
  514. contextsynapse/plugins/domain_interface.py +508 -0
  515. contextsynapse/plugins/domain_loader.py +241 -0
  516. contextsynapse/plugins/loader.py +148 -0
  517. contextsynapse/plugins/registry.py +265 -0
  518. contextsynapse/project/__init__.py +11 -0
  519. contextsynapse/project/code_context.py +807 -0
  520. contextsynapse/project/connectors/__init__.py +4 -0
  521. contextsynapse/project/connectors/github_connector.py +113 -0
  522. contextsynapse/project/connectors/jira_connector.py +160 -0
  523. contextsynapse/project/graph.py +1023 -0
  524. contextsynapse/project/project_context.py +545 -0
  525. contextsynapse/project/scanner_registry.py +61 -0
  526. contextsynapse/project/schema_manager.py +322 -0
  527. contextsynapse/project/schemas/knowledge.yaml +59 -0
  528. contextsynapse/project/schemas/sdlc.yaml +369 -0
  529. contextsynapse/project/sdlc_schema.py +172 -0
  530. contextsynapse/project/spec_parser.py +85 -0
  531. contextsynapse/project/task_lock.py +181 -0
  532. contextsynapse/project/task_stream.py +203 -0
  533. contextsynapse/project/team_tools.py +537 -0
  534. contextsynapse/py.typed +0 -0
  535. contextsynapse/realtime/__init__.py +6 -0
  536. contextsynapse/realtime/collaboration.py +147 -0
  537. contextsynapse/rules/__init__.py +10 -0
  538. contextsynapse/rules/engine.py +116 -0
  539. contextsynapse/rules/evaluators/__init__.py +6 -0
  540. contextsynapse/rules/evaluators/aggregate.py +205 -0
  541. contextsynapse/rules/evaluators/custom.py +170 -0
  542. contextsynapse/rules/evaluators/pre_action.py +125 -0
  543. contextsynapse/rules/evaluators/temporal.py +129 -0
  544. contextsynapse/rules/loader.py +52 -0
  545. contextsynapse/rules/models.py +124 -0
  546. contextsynapse/rules/universal.py +393 -0
  547. contextsynapse/scheduler.py +229 -0
  548. contextsynapse/schema/__init__.py +42 -0
  549. contextsynapse/schema/compiler.py +252 -0
  550. contextsynapse/schema/composer.py +158 -0
  551. contextsynapse/schema/dedup.py +73 -0
  552. contextsynapse/schema/derivation.py +172 -0
  553. contextsynapse/schema/sdl.py +326 -0
  554. contextsynapse/schema/validation_gate.py +124 -0
  555. contextsynapse/sdk/__init__.py +63 -0
  556. contextsynapse/sdk/agent.py +214 -0
  557. contextsynapse/sdk/client.py +269 -0
  558. contextsynapse/sdk/exceptions.py +23 -0
  559. contextsynapse/sdk/models.py +78 -0
  560. contextsynapse/sdk/session.py +408 -0
  561. contextsynapse/sdk/tracked.py +218 -0
  562. contextsynapse/sdk/worker.py +266 -0
  563. contextsynapse/sdk/workspace_client.py +98 -0
  564. contextsynapse/sdk/ws.py +41 -0
  565. contextsynapse/search/__init__.py +20 -0
  566. contextsynapse/search/embedding_cache.py +140 -0
  567. contextsynapse/search/enhanced_search.py +152 -0
  568. contextsynapse/search/fulltext.py +130 -0
  569. contextsynapse/search/graph_search.py +634 -0
  570. contextsynapse/search/lmdb_index.py +1218 -0
  571. contextsynapse/search/nl_to_aiql.py +199 -0
  572. contextsynapse/search/rag.py +1346 -0
  573. contextsynapse/search/rag_cache.py +167 -0
  574. contextsynapse/search/reasoning_chain.py +231 -0
  575. contextsynapse/search/redis_search.py +207 -0
  576. contextsynapse/search/retrieval_quality.py +314 -0
  577. contextsynapse/search/semantic_query.py +455 -0
  578. contextsynapse/search/text_resolver.py +159 -0
  579. contextsynapse/search/whoosh_search.py +373 -0
  580. contextsynapse/security/__init__.py +17 -0
  581. contextsynapse/security/audit.py +297 -0
  582. contextsynapse/security/audit_logger.py +97 -0
  583. contextsynapse/security/audit_trail.py +270 -0
  584. contextsynapse/security/auth_unified.py +284 -0
  585. contextsynapse/security/auto_tagger.py +230 -0
  586. contextsynapse/security/data_security.py +218 -0
  587. contextsynapse/security/encryption.py +207 -0
  588. contextsynapse/security/identity.py +447 -0
  589. contextsynapse/security/jwt_identity.py +59 -0
  590. contextsynapse/security/middleware.py +336 -0
  591. contextsynapse/security/pii.py +233 -0
  592. contextsynapse/security/rbac.py +96 -0
  593. contextsynapse/security/rls.py +205 -0
  594. contextsynapse/security/sanitize.py +233 -0
  595. contextsynapse/security/scoped_encryption.py +131 -0
  596. contextsynapse/security/tenant.py +401 -0
  597. contextsynapse/shield/__init__.py +21 -0
  598. contextsynapse/shield/anomaly.py +56 -0
  599. contextsynapse/shield/permissions.py +99 -0
  600. contextsynapse/shield/profile.py +103 -0
  601. contextsynapse/shield/shield.py +108 -0
  602. contextsynapse/shield/trust_engine.py +69 -0
  603. contextsynapse/skills/__init__.py +14 -0
  604. contextsynapse/skills/engine.py +233 -0
  605. contextsynapse/skills/loader.py +59 -0
  606. contextsynapse/skills/models.py +139 -0
  607. contextsynapse/storage/__init__.py +7 -0
  608. contextsynapse/storage/cache.py +208 -0
  609. contextsynapse/storage/columnar_store_v2.py +178 -0
  610. contextsynapse/storage/csr_graph_storage.py +587 -0
  611. contextsynapse/storage/csr_store.py +388 -0
  612. contextsynapse/storage/document_store.py +491 -0
  613. contextsynapse/storage/hnsw_index.py +294 -0
  614. contextsynapse/storage/hybrid_store_v2.py +278 -0
  615. contextsynapse/storage/lmdb_graph_storage.py +366 -0
  616. contextsynapse/storage/migration.py +279 -0
  617. contextsynapse/storage/namespace_store.py +346 -0
  618. contextsynapse/storage/pure_graph_storage.py +185 -0
  619. contextsynapse/storage/redis_graph_adapter.py +186 -0
  620. contextsynapse/storage/redis_graph_storage.py +375 -0
  621. contextsynapse/storage/router/__init__.py +29 -0
  622. contextsynapse/storage/router/duckdb_store.py +398 -0
  623. contextsynapse/storage/router/factory.py +83 -0
  624. contextsynapse/storage/router/interface.py +125 -0
  625. contextsynapse/storage/router/postgres_store.py +339 -0
  626. contextsynapse/storage/router/resolver.py +192 -0
  627. contextsynapse/storage/router/router.py +300 -0
  628. contextsynapse/storage/single_file_storage.py +391 -0
  629. contextsynapse/storage/storage_manager.py +214 -0
  630. contextsynapse/storage/storage_query_optimizer.py +314 -0
  631. contextsynapse/storage/wal.py +359 -0
  632. contextsynapse/temporal/__init__.py +0 -0
  633. contextsynapse/temporal/storage.py +106 -0
  634. contextsynapse/tests/__init__.py +11 -0
  635. contextsynapse/tests/regression/__init__.py +1 -0
  636. contextsynapse/tests/regression/add_metadata.py +395 -0
  637. contextsynapse/tests/regression/add_skip_flags.py +85 -0
  638. contextsynapse/tests/regression/cases/test_basic_create_node.yaml +20 -0
  639. contextsynapse/tests/regression/cases/test_basic_select.yaml +21 -0
  640. contextsynapse/tests/regression/cases/test_blockchain_audit_trail.yaml +37 -0
  641. contextsynapse/tests/regression/cases/test_blockchain_audit_trail_filtered.yaml +39 -0
  642. contextsynapse/tests/regression/cases/test_blockchain_blocks_range.yaml +39 -0
  643. contextsynapse/tests/regression/cases/test_blockchain_get_block.yaml +35 -0
  644. contextsynapse/tests/regression/cases/test_blockchain_latest_block.yaml +35 -0
  645. contextsynapse/tests/regression/cases/test_blockchain_length.yaml +37 -0
  646. contextsynapse/tests/regression/cases/test_blockchain_merkle_root.yaml +37 -0
  647. contextsynapse/tests/regression/cases/test_blockchain_verify.yaml +35 -0
  648. contextsynapse/tests/regression/cases/test_blockchain_verify_block.yaml +35 -0
  649. contextsynapse/tests/regression/cases/test_create_edge.yaml +28 -0
  650. contextsynapse/tests/regression/cases/test_delete_edge_basic.yaml +29 -0
  651. contextsynapse/tests/regression/cases/test_delete_node_basic.yaml +29 -0
  652. contextsynapse/tests/regression/cases/test_evaluation_mrr.yaml +40 -0
  653. contextsynapse/tests/regression/cases/test_evaluation_ndcg.yaml +40 -0
  654. contextsynapse/tests/regression/cases/test_evaluation_precision.yaml +40 -0
  655. contextsynapse/tests/regression/cases/test_evaluation_recall.yaml +40 -0
  656. contextsynapse/tests/regression/cases/test_group_by_basic.yaml +56 -0
  657. contextsynapse/tests/regression/cases/test_match_node_basic.yaml +29 -0
  658. contextsynapse/tests/regression/cases/test_match_node_with_order_limit.yaml +31 -0
  659. contextsynapse/tests/regression/cases/test_namespace_switch.yaml +18 -0
  660. contextsynapse/tests/regression/cases/test_pipeline_cascaded.yaml +61 -0
  661. contextsynapse/tests/regression/cases/test_pipeline_fixed_size_chunking.yaml +48 -0
  662. contextsynapse/tests/regression/cases/test_pipeline_gpt4_chunking.yaml +54 -0
  663. contextsynapse/tests/regression/cases/test_pipeline_hybrid_indexing.yaml +57 -0
  664. contextsynapse/tests/regression/cases/test_pipeline_large_embedding.yaml +52 -0
  665. contextsynapse/tests/regression/cases/test_pipeline_paragraph_chunking.yaml +49 -0
  666. contextsynapse/tests/regression/cases/test_pipeline_recursive_chunking.yaml +47 -0
  667. contextsynapse/tests/regression/cases/test_pipeline_run_pipeline.yaml +56 -0
  668. contextsynapse/tests/regression/cases/test_pipeline_section_based_chunking.yaml +53 -0
  669. contextsynapse/tests/regression/cases/test_pipeline_semantic_chunking.yaml +51 -0
  670. contextsynapse/tests/regression/cases/test_pipeline_with_entity_extraction.yaml +57 -0
  671. contextsynapse/tests/regression/cases/test_pipeline_with_relationships.yaml +62 -0
  672. contextsynapse/tests/regression/cases/test_rag_evaluation.yaml +38 -0
  673. contextsynapse/tests/regression/cases/test_rag_graph_bfs_with_eval.yaml +48 -0
  674. contextsynapse/tests/regression/cases/test_rag_graph_centrality.yaml +40 -0
  675. contextsynapse/tests/regression/cases/test_rag_graph_centrality_eval.yaml +35 -0
  676. contextsynapse/tests/regression/cases/test_rag_graph_community.yaml +40 -0
  677. contextsynapse/tests/regression/cases/test_rag_graph_community_eval.yaml +35 -0
  678. contextsynapse/tests/regression/cases/test_rag_graph_dfs_with_eval.yaml +35 -0
  679. contextsynapse/tests/regression/cases/test_rag_graph_multi_hop_eval.yaml +35 -0
  680. contextsynapse/tests/regression/cases/test_rag_graph_path.yaml +40 -0
  681. contextsynapse/tests/regression/cases/test_rag_graph_search_basic.yaml +38 -0
  682. contextsynapse/tests/regression/cases/test_rag_graph_search_bfs.yaml +52 -0
  683. contextsynapse/tests/regression/cases/test_rag_graph_search_dfs.yaml +41 -0
  684. contextsynapse/tests/regression/cases/test_rag_graph_search_multi_hop.yaml +43 -0
  685. contextsynapse/tests/regression/cases/test_rag_graph_search_shortest_path.yaml +41 -0
  686. contextsynapse/tests/regression/cases/test_rag_graph_search_weighted.yaml +43 -0
  687. contextsynapse/tests/regression/cases/test_rag_graph_shortest_path_eval.yaml +35 -0
  688. contextsynapse/tests/regression/cases/test_rag_graph_traversal.yaml +30 -0
  689. contextsynapse/tests/regression/cases/test_rag_graph_weighted_eval.yaml +35 -0
  690. contextsynapse/tests/regression/cases/test_rag_hybrid_search.yaml +33 -0
  691. contextsynapse/tests/regression/cases/test_rag_hybrid_with_prompt_embedding.yaml +44 -0
  692. contextsynapse/tests/regression/cases/test_rag_keyword_search.yaml +32 -0
  693. contextsynapse/tests/regression/cases/test_rag_multi_hop_graph.yaml +32 -0
  694. contextsynapse/tests/regression/cases/test_rag_path_based.yaml +34 -0
  695. contextsynapse/tests/regression/cases/test_rag_profile_based.yaml +32 -0
  696. contextsynapse/tests/regression/cases/test_rag_vector_search.yaml +32 -0
  697. contextsynapse/tests/regression/cases/test_rag_weighted_graph.yaml +34 -0
  698. contextsynapse/tests/regression/cases/test_rag_weighted_hybrid.yaml +31 -0
  699. contextsynapse/tests/regression/cases/test_semantic_boundary_chunking.yaml +57 -0
  700. contextsynapse/tests/regression/cases/test_semantic_boundary_detection.yaml +33 -0
  701. contextsynapse/tests/regression/cases/test_semantic_hash_function.yaml +30 -0
  702. contextsynapse/tests/regression/cases/test_semantic_hash_with_model.yaml +31 -0
  703. contextsynapse/tests/regression/cases/test_tcs_ingestion_fixed_size.yaml +44 -0
  704. contextsynapse/tests/regression/cases/test_tcs_ingestion_recursive.yaml +46 -0
  705. contextsynapse/tests/regression/cases/test_tcs_ingestion_section.yaml +46 -0
  706. contextsynapse/tests/regression/cases/test_tcs_ingestion_semantic.yaml +44 -0
  707. contextsynapse/tests/regression/cases/test_time_travel_as_of.yaml +35 -0
  708. contextsynapse/tests/regression/cases/test_time_travel_at_commit.yaml +33 -0
  709. contextsynapse/tests/regression/cases/test_time_travel_at_timestamp.yaml +33 -0
  710. contextsynapse/tests/regression/cases/test_time_travel_for_system_time_all.yaml +37 -0
  711. contextsynapse/tests/regression/cases/test_time_travel_versions_between.yaml +39 -0
  712. contextsynapse/tests/regression/cases/test_traverse_basic.yaml +31 -0
  713. contextsynapse/tests/regression/cases/test_traverse_max_depth.yaml +34 -0
  714. contextsynapse/tests/regression/cases/test_update_edge_basic.yaml +29 -0
  715. contextsynapse/tests/regression/evaluation_metrics.py +227 -0
  716. contextsynapse/tests/regression/regression_runner.py +1081 -0
  717. contextsynapse/tests/regression/setup_regression_data.py +212 -0
  718. contextsynapse/tests/regression/test_basic_only.py +84 -0
  719. contextsynapse/tests/regression/test_namespace_creation.py +29 -0
  720. contextsynapse/tests/regression/test_single_fix.py +61 -0
  721. contextsynapse/tests/regression/test_single_query.py +20 -0
  722. contextsynapse/tests/regression/validate_test_syntax.py +179 -0
  723. contextsynapse/tests/test_advanced_features.py +347 -0
  724. contextsynapse/tests/test_aiql_summary.py +283 -0
  725. contextsynapse/tests/test_all_aiql_queries.py +948 -0
  726. contextsynapse/tests/test_all_create_queries.py +213 -0
  727. contextsynapse/tests/test_api_vs_native.py +280 -0
  728. contextsynapse/tests/test_chunking_dedup.py +199 -0
  729. contextsynapse/tests/test_connectors.py +171 -0
  730. contextsynapse/tests/test_edges_and_match.py +202 -0
  731. contextsynapse/tests/test_extraction_pipeline_integration.py +581 -0
  732. contextsynapse/tests/test_name_property.py +224 -0
  733. contextsynapse/tests/test_node_edge_metadata.py +250 -0
  734. contextsynapse/tests/test_playground_conn.py +114 -0
  735. contextsynapse/tests/test_query_cache.py +213 -0
  736. contextsynapse/tests/test_source_policy_auth.py +348 -0
  737. contextsynapse/tests/test_temporal_and_domain.py +224 -0
  738. contextsynapse/tests/test_time_travel_e2e.py +571 -0
  739. contextsynapse/tests/test_traversal_and_aggregation.py +275 -0
  740. contextsynapse/tools/__init__.py +36 -0
  741. contextsynapse/tools/a2a_tools.py +106 -0
  742. contextsynapse/tools/cognition_tools.py +118 -0
  743. contextsynapse/tools/context.py +905 -0
  744. contextsynapse/tools/formatting.py +92 -0
  745. contextsynapse/tools/gateway_tools.py +186 -0
  746. contextsynapse/tools/graph.py +1700 -0
  747. contextsynapse/tools/intelligence.py +235 -0
  748. contextsynapse/tools/memory.py +118 -0
  749. contextsynapse/tools/registry.py +373 -0
  750. contextsynapse/tools/shield_tools.py +159 -0
  751. contextsynapse/tools/tasks.py +341 -0
  752. contextsynapse/tools/workspace_tools.py +124 -0
  753. contextsynapse/utils/__init__.py +15 -0
  754. contextsynapse/utils/config_loader.py +198 -0
  755. contextsynapse/utils/env_loader.py +156 -0
  756. contextsynapse/utils/file_utils.py +288 -0
  757. contextsynapse/utils/logging_optimizer.py +119 -0
  758. contextsynapse/vector/__init__.py +30 -0
  759. contextsynapse/vector/chroma_vector_store.py +152 -0
  760. contextsynapse/vector/custom_vector_store.py +537 -0
  761. contextsynapse/vector/faiss_vector_store.py +296 -0
  762. contextsynapse/vector/qdrant_vector_store.py +163 -0
  763. contextsynapse/vector/vector_db.py +953 -0
  764. contextsynapse/vector/vector_db_manager.py +197 -0
  765. contextsynapse/workspace/__init__.py +27 -0
  766. contextsynapse/workspace/base.py +94 -0
  767. contextsynapse/workspace/git.py +228 -0
  768. contextsynapse/workspace/github.py +78 -0
  769. contextsynapse/workspace/local.py +73 -0
  770. contextsynapse/workspace/tools.py +222 -0
  771. contextsynapse-1.0.0.dist-info/METADATA +847 -0
  772. contextsynapse-1.0.0.dist-info/RECORD +776 -0
  773. contextsynapse-1.0.0.dist-info/WHEEL +5 -0
  774. contextsynapse-1.0.0.dist-info/entry_points.txt +4 -0
  775. contextsynapse-1.0.0.dist-info/licenses/LICENSE +200 -0
  776. 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
+ [![CI](https://github.com/contextsynapse/contextsynapse/actions/workflows/ci.yml/badge.svg)](https://github.com/contextsynapse/contextsynapse/actions)
92
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
93
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](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).