cortexdbai 0.10.0__tar.gz → 0.10.1__tar.gz

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 (95) hide show
  1. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/.gitignore +12 -0
  2. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/PKG-INFO +1 -1
  3. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/__init__.py +71 -71
  4. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/v1/client.py +1 -1
  5. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/pyproject.toml +186 -186
  6. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/README.md +0 -0
  7. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/__init__.py +0 -0
  8. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ag2/__init__.py +0 -0
  9. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ag2/agent.py +0 -0
  10. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ag2/tools.py +0 -0
  11. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/agno/__init__.py +0 -0
  12. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/agno/memory.py +0 -0
  13. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/agno/tools.py +0 -0
  14. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/autogen/__init__.py +0 -0
  15. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/autogen/agent.py +0 -0
  16. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/autogen/tools.py +0 -0
  17. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/beeai/__init__.py +0 -0
  18. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/beeai/memory.py +0 -0
  19. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/beeai/tools.py +0 -0
  20. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/camel/__init__.py +0 -0
  21. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/camel/memory.py +0 -0
  22. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/camel/tools.py +0 -0
  23. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/controlflow/__init__.py +0 -0
  24. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/controlflow/memory.py +0 -0
  25. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/crewai/__init__.py +0 -0
  26. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/crewai/memory.py +0 -0
  27. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/crewai/tools.py +0 -0
  28. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/deepinfra/__init__.py +0 -0
  29. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/deepinfra/config.py +0 -0
  30. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/deepinfra/embeddings.py +0 -0
  31. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/deepinfra/openai_compat.py +0 -0
  32. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dify/__init__.py +0 -0
  33. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dify/manifest.yaml +0 -0
  34. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dify/tool.py +0 -0
  35. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dspy/__init__.py +0 -0
  36. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dspy/memory.py +0 -0
  37. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/dspy/retriever.py +0 -0
  38. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/fireworks/__init__.py +0 -0
  39. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/fireworks/config.py +0 -0
  40. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/fireworks/embeddings.py +0 -0
  41. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/fireworks/openai_compat.py +0 -0
  42. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/flowise/__init__.py +0 -0
  43. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/flowise/node.py +0 -0
  44. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/google_adk/__init__.py +0 -0
  45. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/google_adk/tools.py +0 -0
  46. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/groq/__init__.py +0 -0
  47. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/groq/config.py +0 -0
  48. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/groq/embeddings.py +0 -0
  49. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/groq/openai_compat.py +0 -0
  50. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/hermes/__init__.py +0 -0
  51. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/hermes/provider.py +0 -0
  52. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/instructor/__init__.py +0 -0
  53. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/instructor/memory.py +0 -0
  54. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langchain/__init__.py +0 -0
  55. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langchain/memory.py +0 -0
  56. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langchain/retriever.py +0 -0
  57. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langchain/tools.py +0 -0
  58. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langgraph/__init__.py +0 -0
  59. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/langgraph/memory.py +0 -0
  60. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/letta/__init__.py +0 -0
  61. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/letta/storage.py +0 -0
  62. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/llamaindex/__init__.py +0 -0
  63. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/llamaindex/memory.py +0 -0
  64. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/nemo_guardrails/__init__.py +0 -0
  65. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/nemo_guardrails/actions.py +0 -0
  66. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/nemo_guardrails/knowledge_base.py +0 -0
  67. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ollama/__init__.py +0 -0
  68. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ollama/config.py +0 -0
  69. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/ollama/embeddings.py +0 -0
  70. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/openai_agents/__init__.py +0 -0
  71. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/openai_agents/tools.py +0 -0
  72. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/prefect/__init__.py +0 -0
  73. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/prefect/blocks.py +0 -0
  74. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/prefect/tasks.py +0 -0
  75. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/pydanticai/__init__.py +0 -0
  76. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/pydanticai/dependencies.py +0 -0
  77. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/pydanticai/tools.py +0 -0
  78. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/smolagents/__init__.py +0 -0
  79. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/smolagents/tools.py +0 -0
  80. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/temporal/__init__.py +0 -0
  81. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/temporal/activities.py +0 -0
  82. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/temporal/interceptor.py +0 -0
  83. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/together/__init__.py +0 -0
  84. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/together/config.py +0 -0
  85. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/together/embeddings.py +0 -0
  86. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/together/openai_compat.py +0 -0
  87. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/vllm/__init__.py +0 -0
  88. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/vllm/config.py +0 -0
  89. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/vllm/embeddings.py +0 -0
  90. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/integrations/vllm/openai_compat.py +0 -0
  91. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/py.typed +0 -0
  92. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/v1/__init__.py +0 -0
  93. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/cortexdb/v1/exceptions.py +0 -0
  94. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/tests/__init__.py +0 -0
  95. {cortexdbai-0.10.0 → cortexdbai-0.10.1}/tests/test_conflicts.py +0 -0
@@ -80,3 +80,15 @@ local-instance/
80
80
 
81
81
  # doc-claims verifier scratch output
82
82
  tools/verifier_out*/
83
+
84
+ # Generated benchmark / runtime data (audit M-10: hundreds of untracked
85
+ # data dirs at the workspace root slow every git status/search and risk
86
+ # being packaged; results JSONs are artifacts, never source)
87
+ benchmarks/data_*/
88
+ benchmarks/**/fast_results/
89
+ data_*/
90
+ *_data/
91
+ cortexdb_data*/
92
+ server_results/
93
+ *.log
94
+ docker_build.log
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cortexdbai
3
- Version: 0.10.0
3
+ Version: 0.10.1
4
4
  Summary: The Long-Term Memory Layer for AI Systems
5
5
  Project-URL: Homepage, https://cortexdb.ai
6
6
  Project-URL: Documentation, https://docs.cortexdb.ai
@@ -1,71 +1,71 @@
1
- """CortexDB Python SDK — the long-term memory layer for AI systems.
2
-
3
- The SDK is a thin HTTP client over the v1 API surface that cortexdb
4
- exposes by default on port 3141. The top-level :class:`Cortex` class
5
- (alias :class:`V1Client`) is what you should reach for.
6
-
7
- Quick start::
8
-
9
- from cortexdb import Cortex
10
-
11
- # Local docker run with no auth (CORTEX_API_KEY unset on the server):
12
- with Cortex("http://localhost:3141") as c:
13
- c.experience("ws:demo", text="Priya at Acme signed for 200 seats.")
14
- pack = c.recall("ws:demo", query="How many seats did Acme sign for?")
15
- print(pack)
16
-
17
- # Hosted / multi-tenant deployment with PASETO bearer + actor header:
18
- with Cortex(
19
- "https://api-v1.cortexdb.ai",
20
- actor="user:alice",
21
- bearer="eyJ...",
22
- ) as c:
23
- out = c.answer(
24
- "org:initech/user:alice",
25
- question="What did Alice say about coffee?",
26
- )
27
-
28
- Versions ≤ 0.2.x exposed a separate ``cortexdb.Cortex`` class targeting
29
- the legacy ``/v1/remember`` endpoints. That surface was retired in 0.3.0
30
- because the cortexdb binary's public port now only serves the v1 API;
31
- the legacy endpoints survive only as an internal bench-compat helper.
32
- If you need them, pin ``cortexdbai<0.3``.
33
- """
34
-
35
- from cortexdb.v1 import V1Client, AsyncV1Client
36
- from cortexdb.v1.exceptions import (
37
- V1APIError,
38
- V1AuthError,
39
- V1ConnectionError,
40
- V1Error,
41
- V1NotConfiguredError,
42
- V1PolicyDeniedError,
43
- V1RateLimitError,
44
- V1TimeoutError,
45
- )
46
- from cortexdb import v1 # the explicit submodule namespace
47
-
48
- # Ergonomic top-level aliases. New code can write either form.
49
- Cortex = V1Client
50
- AsyncCortex = AsyncV1Client
51
-
52
- __version__ = "0.10.0"
53
- __all__ = [
54
- # Clients (preferred top-level names)
55
- "Cortex",
56
- "AsyncCortex",
57
- # Explicit v1 names (identical classes, kept for code that pinned them)
58
- "V1Client",
59
- "AsyncV1Client",
60
- # Submodule
61
- "v1",
62
- # Exceptions
63
- "V1Error",
64
- "V1APIError",
65
- "V1AuthError",
66
- "V1ConnectionError",
67
- "V1TimeoutError",
68
- "V1RateLimitError",
69
- "V1NotConfiguredError",
70
- "V1PolicyDeniedError",
71
- ]
1
+ """CortexDB Python SDK — the long-term memory layer for AI systems.
2
+
3
+ The SDK is a thin HTTP client over the v1 API surface that cortexdb
4
+ exposes by default on port 3141. The top-level :class:`Cortex` class
5
+ (alias :class:`V1Client`) is what you should reach for.
6
+
7
+ Quick start::
8
+
9
+ from cortexdb import Cortex
10
+
11
+ # Local docker run with no auth (CORTEX_API_KEY unset on the server):
12
+ with Cortex("http://localhost:3141") as c:
13
+ c.experience("ws:demo", text="Priya at Acme signed for 200 seats.")
14
+ pack = c.recall("ws:demo", query="How many seats did Acme sign for?")
15
+ print(pack)
16
+
17
+ # Hosted / multi-tenant deployment with PASETO bearer + actor header:
18
+ with Cortex(
19
+ "https://api-v1.cortexdb.ai",
20
+ actor="user:alice",
21
+ bearer="eyJ...",
22
+ ) as c:
23
+ out = c.answer(
24
+ "org:initech/user:alice",
25
+ question="What did Alice say about coffee?",
26
+ )
27
+
28
+ Versions ≤ 0.2.x exposed a separate ``cortexdb.Cortex`` class targeting
29
+ the legacy ``/v1/remember`` endpoints. That surface was retired in 0.3.0
30
+ because the cortexdb binary's public port now only serves the v1 API;
31
+ the legacy endpoints survive only as an internal bench-compat helper.
32
+ If you need them, pin ``cortexdbai<0.3``.
33
+ """
34
+
35
+ from cortexdb.v1 import V1Client, AsyncV1Client
36
+ from cortexdb.v1.exceptions import (
37
+ V1APIError,
38
+ V1AuthError,
39
+ V1ConnectionError,
40
+ V1Error,
41
+ V1NotConfiguredError,
42
+ V1PolicyDeniedError,
43
+ V1RateLimitError,
44
+ V1TimeoutError,
45
+ )
46
+ from cortexdb import v1 # the explicit submodule namespace
47
+
48
+ # Ergonomic top-level aliases. New code can write either form.
49
+ Cortex = V1Client
50
+ AsyncCortex = AsyncV1Client
51
+
52
+ __version__ = "0.10.1"
53
+ __all__ = [
54
+ # Clients (preferred top-level names)
55
+ "Cortex",
56
+ "AsyncCortex",
57
+ # Explicit v1 names (identical classes, kept for code that pinned them)
58
+ "V1Client",
59
+ "AsyncV1Client",
60
+ # Submodule
61
+ "v1",
62
+ # Exceptions
63
+ "V1Error",
64
+ "V1APIError",
65
+ "V1AuthError",
66
+ "V1ConnectionError",
67
+ "V1TimeoutError",
68
+ "V1RateLimitError",
69
+ "V1NotConfiguredError",
70
+ "V1PolicyDeniedError",
71
+ ]
@@ -33,7 +33,7 @@ from cortexdb.v1.exceptions import (
33
33
 
34
34
 
35
35
  DEFAULT_TIMEOUT_SECONDS = 60.0
36
- DEFAULT_API_URL = "http://localhost:3142"
36
+ DEFAULT_API_URL = "http://localhost:3141"
37
37
 
38
38
 
39
39
  # ── Internal helpers ────────────────────────────────────────────────────────
@@ -1,186 +1,186 @@
1
- [build-system]
2
- requires = ["hatchling"]
3
- build-backend = "hatchling.build"
4
-
5
- [project]
6
- name = "cortexdbai"
7
- version = "0.10.0"
8
- description = "The Long-Term Memory Layer for AI Systems"
9
- readme = "README.md"
10
- license = "Apache-2.0"
11
- # 3.10+: the v1 module uses PEP 604 unions (`str | None`) in TypedDict
12
- # field annotations, which Python 3.9 cannot evaluate at class-definition
13
- # time even with `from __future__ import annotations`. Python 3.9 hit
14
- # end-of-life on 2025-10-31. Declaring >=3.10 means `pip install
15
- # cortexdbai` on 3.9 fails immediately with a clear "requires Python
16
- # 3.10+" error from pip — not a silent install followed by an obscure
17
- # `TypeError: Unable to evaluate type annotation 'str | None'` on the
18
- # first import.
19
- requires-python = ">=3.10"
20
- authors = [
21
- { name = "Prashant Malik", email = "prashant@cortexdb.ai" },
22
- ]
23
- keywords = ["ai", "memory", "llm", "knowledge-graph", "event-sourcing", "cortexdb"]
24
- classifiers = [
25
- "Development Status :: 4 - Beta",
26
- "Intended Audience :: Developers",
27
- "Programming Language :: Python :: 3",
28
- "Programming Language :: Python :: 3.10",
29
- "Programming Language :: Python :: 3.11",
30
- "Programming Language :: Python :: 3.12",
31
- "Programming Language :: Python :: 3.13",
32
- "Topic :: Scientific/Engineering :: Artificial Intelligence",
33
- "Topic :: Database",
34
- "Typing :: Typed",
35
- ]
36
- dependencies = [
37
- "requests>=2.31",
38
- "httpx>=0.24",
39
- "pydantic>=2.0",
40
- "tenacity>=8.0",
41
- ]
42
-
43
- [project.optional-dependencies]
44
- async = [
45
- "httpx[http2]",
46
- ]
47
- dev = [
48
- "pytest>=8.0",
49
- "pytest-asyncio>=0.23",
50
- "ruff>=0.4",
51
- ]
52
-
53
- # --- Framework / provider integrations -------------------------------------
54
- # Each extra pulls in only the third-party framework needed by the matching
55
- # submodule under `cortexdb.integrations.<name>`. The CortexDB client itself
56
- # is always the base package, so it is never listed here. Nothing under
57
- # `cortexdb.integrations` is imported at `import cortexdb` time — importing a
58
- # submodule without its extra raises a clean ModuleNotFoundError.
59
- autogen = [
60
- "ag2>=0.4",
61
- ]
62
- ag2 = [
63
- "ag2>=0.4",
64
- ]
65
- agno = [
66
- "agno>=1.0",
67
- ]
68
- langchain = [
69
- "langchain-core>=0.3",
70
- ]
71
- beeai = [
72
- "beeai-framework>=0.1",
73
- ]
74
- camel = [
75
- "camel-ai>=0.2",
76
- ]
77
- controlflow = [
78
- "controlflow>=0.11",
79
- ]
80
- crewai = [
81
- "crewai>=0.80",
82
- ]
83
- dify = []
84
- dspy = [
85
- "dspy>=2.0",
86
- ]
87
- flowise = []
88
- google-adk = [
89
- "google-adk>=0.1",
90
- ]
91
- hermes = []
92
- instructor = [
93
- "instructor>=1.0",
94
- "pydantic>=2.0",
95
- ]
96
- langgraph = [
97
- "langchain-core>=0.3",
98
- "langgraph-checkpoint>=2.0",
99
- ]
100
- letta = [
101
- "letta>=0.1",
102
- ]
103
- llamaindex = [
104
- "llama-index-core>=0.11",
105
- ]
106
- nemo-guardrails = [
107
- "nemoguardrails>=0.9",
108
- ]
109
- openai-agents = [
110
- "openai-agents>=0.1",
111
- ]
112
- prefect = [
113
- "prefect>=3.0",
114
- ]
115
- pydanticai = [
116
- "pydantic-ai>=0.1",
117
- ]
118
- smolagents = [
119
- "smolagents>=1.0",
120
- ]
121
- temporal = [
122
- "temporalio>=1.7",
123
- ]
124
- groq = [
125
- "httpx>=0.27",
126
- ]
127
- fireworks = [
128
- "httpx>=0.27",
129
- ]
130
- together = [
131
- "httpx>=0.27",
132
- ]
133
- deepinfra = [
134
- "httpx>=0.27",
135
- ]
136
- ollama = [
137
- "httpx>=0.27",
138
- ]
139
- vllm = [
140
- "httpx>=0.27",
141
- ]
142
- # Convenience: every framework/provider integration at once.
143
- all-integrations = [
144
- "ag2>=0.4",
145
- "agno>=1.0",
146
- "langchain-core>=0.3",
147
- "beeai-framework>=0.1",
148
- "camel-ai>=0.2",
149
- "controlflow>=0.11",
150
- "crewai>=0.80",
151
- "dspy>=2.0",
152
- "google-adk>=0.1",
153
- "instructor>=1.0",
154
- "langchain-core>=0.3",
155
- "langgraph-checkpoint>=2.0",
156
- "letta>=0.1",
157
- "llama-index-core>=0.11",
158
- "nemoguardrails>=0.9",
159
- "openai-agents>=0.1",
160
- "prefect>=3.0",
161
- "pydantic-ai>=0.1",
162
- "smolagents>=1.0",
163
- "temporalio>=1.7",
164
- "httpx>=0.27",
165
- ]
166
-
167
- [project.urls]
168
- Homepage = "https://cortexdb.ai"
169
- Documentation = "https://docs.cortexdb.ai"
170
- Repository = "https://github.com/cortexdb/cortexdb"
171
- Issues = "https://github.com/cortexdb/cortexdb/issues"
172
- Changelog = "https://github.com/cortexdb/cortexdb/blob/main/CHANGELOG.md"
173
-
174
- [tool.hatch.build.targets.wheel]
175
- packages = ["cortexdb"]
176
-
177
- [tool.ruff]
178
- target-version = "py310"
179
- line-length = 100
180
-
181
- [tool.ruff.lint]
182
- select = ["E", "F", "W", "I", "N", "UP", "B", "A", "SIM", "TCH"]
183
-
184
- [tool.pytest.ini_options]
185
- asyncio_mode = "auto"
186
- testpaths = ["tests"]
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "cortexdbai"
7
+ version = "0.10.1"
8
+ description = "The Long-Term Memory Layer for AI Systems"
9
+ readme = "README.md"
10
+ license = "Apache-2.0"
11
+ # 3.10+: the v1 module uses PEP 604 unions (`str | None`) in TypedDict
12
+ # field annotations, which Python 3.9 cannot evaluate at class-definition
13
+ # time even with `from __future__ import annotations`. Python 3.9 hit
14
+ # end-of-life on 2025-10-31. Declaring >=3.10 means `pip install
15
+ # cortexdbai` on 3.9 fails immediately with a clear "requires Python
16
+ # 3.10+" error from pip — not a silent install followed by an obscure
17
+ # `TypeError: Unable to evaluate type annotation 'str | None'` on the
18
+ # first import.
19
+ requires-python = ">=3.10"
20
+ authors = [
21
+ { name = "Prashant Malik", email = "prashant@cortexdb.ai" },
22
+ ]
23
+ keywords = ["ai", "memory", "llm", "knowledge-graph", "event-sourcing", "cortexdb"]
24
+ classifiers = [
25
+ "Development Status :: 4 - Beta",
26
+ "Intended Audience :: Developers",
27
+ "Programming Language :: Python :: 3",
28
+ "Programming Language :: Python :: 3.10",
29
+ "Programming Language :: Python :: 3.11",
30
+ "Programming Language :: Python :: 3.12",
31
+ "Programming Language :: Python :: 3.13",
32
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
33
+ "Topic :: Database",
34
+ "Typing :: Typed",
35
+ ]
36
+ dependencies = [
37
+ "requests>=2.31",
38
+ "httpx>=0.24",
39
+ "pydantic>=2.0",
40
+ "tenacity>=8.0",
41
+ ]
42
+
43
+ [project.optional-dependencies]
44
+ async = [
45
+ "httpx[http2]",
46
+ ]
47
+ dev = [
48
+ "pytest>=8.0",
49
+ "pytest-asyncio>=0.23",
50
+ "ruff>=0.4",
51
+ ]
52
+
53
+ # --- Framework / provider integrations -------------------------------------
54
+ # Each extra pulls in only the third-party framework needed by the matching
55
+ # submodule under `cortexdb.integrations.<name>`. The CortexDB client itself
56
+ # is always the base package, so it is never listed here. Nothing under
57
+ # `cortexdb.integrations` is imported at `import cortexdb` time — importing a
58
+ # submodule without its extra raises a clean ModuleNotFoundError.
59
+ autogen = [
60
+ "ag2>=0.4",
61
+ ]
62
+ ag2 = [
63
+ "ag2>=0.4",
64
+ ]
65
+ agno = [
66
+ "agno>=1.0",
67
+ ]
68
+ langchain = [
69
+ "langchain-core>=0.3",
70
+ ]
71
+ beeai = [
72
+ "beeai-framework>=0.1",
73
+ ]
74
+ camel = [
75
+ "camel-ai>=0.2",
76
+ ]
77
+ controlflow = [
78
+ "controlflow>=0.11",
79
+ ]
80
+ crewai = [
81
+ "crewai>=0.80",
82
+ ]
83
+ dify = []
84
+ dspy = [
85
+ "dspy>=2.0",
86
+ ]
87
+ flowise = []
88
+ google-adk = [
89
+ "google-adk>=0.1",
90
+ ]
91
+ hermes = []
92
+ instructor = [
93
+ "instructor>=1.0",
94
+ "pydantic>=2.0",
95
+ ]
96
+ langgraph = [
97
+ "langchain-core>=0.3",
98
+ "langgraph-checkpoint>=2.0",
99
+ ]
100
+ letta = [
101
+ "letta>=0.1",
102
+ ]
103
+ llamaindex = [
104
+ "llama-index-core>=0.11",
105
+ ]
106
+ nemo-guardrails = [
107
+ "nemoguardrails>=0.9",
108
+ ]
109
+ openai-agents = [
110
+ "openai-agents>=0.1",
111
+ ]
112
+ prefect = [
113
+ "prefect>=3.0",
114
+ ]
115
+ pydanticai = [
116
+ "pydantic-ai>=0.1",
117
+ ]
118
+ smolagents = [
119
+ "smolagents>=1.0",
120
+ ]
121
+ temporal = [
122
+ "temporalio>=1.7",
123
+ ]
124
+ groq = [
125
+ "httpx>=0.27",
126
+ ]
127
+ fireworks = [
128
+ "httpx>=0.27",
129
+ ]
130
+ together = [
131
+ "httpx>=0.27",
132
+ ]
133
+ deepinfra = [
134
+ "httpx>=0.27",
135
+ ]
136
+ ollama = [
137
+ "httpx>=0.27",
138
+ ]
139
+ vllm = [
140
+ "httpx>=0.27",
141
+ ]
142
+ # Convenience: every framework/provider integration at once.
143
+ all-integrations = [
144
+ "ag2>=0.4",
145
+ "agno>=1.0",
146
+ "langchain-core>=0.3",
147
+ "beeai-framework>=0.1",
148
+ "camel-ai>=0.2",
149
+ "controlflow>=0.11",
150
+ "crewai>=0.80",
151
+ "dspy>=2.0",
152
+ "google-adk>=0.1",
153
+ "instructor>=1.0",
154
+ "langchain-core>=0.3",
155
+ "langgraph-checkpoint>=2.0",
156
+ "letta>=0.1",
157
+ "llama-index-core>=0.11",
158
+ "nemoguardrails>=0.9",
159
+ "openai-agents>=0.1",
160
+ "prefect>=3.0",
161
+ "pydantic-ai>=0.1",
162
+ "smolagents>=1.0",
163
+ "temporalio>=1.7",
164
+ "httpx>=0.27",
165
+ ]
166
+
167
+ [project.urls]
168
+ Homepage = "https://cortexdb.ai"
169
+ Documentation = "https://docs.cortexdb.ai"
170
+ Repository = "https://github.com/cortexdb/cortexdb"
171
+ Issues = "https://github.com/cortexdb/cortexdb/issues"
172
+ Changelog = "https://github.com/cortexdb/cortexdb/blob/main/CHANGELOG.md"
173
+
174
+ [tool.hatch.build.targets.wheel]
175
+ packages = ["cortexdb"]
176
+
177
+ [tool.ruff]
178
+ target-version = "py310"
179
+ line-length = 100
180
+
181
+ [tool.ruff.lint]
182
+ select = ["E", "F", "W", "I", "N", "UP", "B", "A", "SIM", "TCH"]
183
+
184
+ [tool.pytest.ini_options]
185
+ asyncio_mode = "auto"
186
+ testpaths = ["tests"]
File without changes