cortexdbai 0.10.2__tar.gz → 0.10.3__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.
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/PKG-INFO +1 -1
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/__init__.py +1 -1
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/v1/client.py +31 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/pyproject.toml +186 -186
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/.gitignore +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/README.md +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ag2/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ag2/agent.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ag2/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/agno/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/agno/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/agno/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/autogen/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/autogen/agent.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/autogen/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/beeai/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/beeai/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/beeai/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/camel/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/camel/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/camel/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/controlflow/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/controlflow/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/crewai/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/crewai/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/crewai/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/deepinfra/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/deepinfra/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/deepinfra/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/deepinfra/openai_compat.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dify/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dify/manifest.yaml +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dify/tool.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dspy/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dspy/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/dspy/retriever.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/fireworks/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/fireworks/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/fireworks/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/fireworks/openai_compat.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/flowise/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/flowise/node.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/google_adk/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/google_adk/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/groq/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/groq/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/groq/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/groq/openai_compat.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/hermes/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/hermes/provider.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/instructor/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/instructor/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langchain/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langchain/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langchain/retriever.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langchain/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langgraph/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/langgraph/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/letta/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/letta/storage.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/llamaindex/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/llamaindex/memory.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/nemo_guardrails/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/nemo_guardrails/actions.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/nemo_guardrails/knowledge_base.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ollama/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ollama/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/ollama/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/openai_agents/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/openai_agents/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/prefect/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/prefect/blocks.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/prefect/tasks.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/pydanticai/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/pydanticai/dependencies.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/pydanticai/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/smolagents/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/smolagents/tools.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/temporal/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/temporal/activities.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/temporal/interceptor.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/together/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/together/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/together/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/together/openai_compat.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/vllm/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/vllm/config.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/vllm/embeddings.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/vllm/openai_compat.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/py.typed +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/v1/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/v1/exceptions.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/tests/__init__.py +0 -0
- {cortexdbai-0.10.2 → cortexdbai-0.10.3}/tests/test_conflicts.py +0 -0
|
@@ -445,6 +445,24 @@ class V1Client:
|
|
|
445
445
|
_raise_for_response(r.status_code, r.text)
|
|
446
446
|
return r.json() if r.text else {}
|
|
447
447
|
|
|
448
|
+
def delete_blob(self, blob_id: str) -> dict:
|
|
449
|
+
"""``DELETE /v1/blobs/{id}`` — purge an uploaded object.
|
|
450
|
+
|
|
451
|
+
Only the uploader may delete a blob; someone else's blob answers
|
|
452
|
+
404. Note that forgetting the experience which referenced a blob
|
|
453
|
+
removes the *memory*, not the *object* — deleting a file that was
|
|
454
|
+
uploaded here means both calls."""
|
|
455
|
+
try:
|
|
456
|
+
r = self._session.delete(
|
|
457
|
+
f"{self.api_url}/v1/blobs/{blob_id}", timeout=self.timeout
|
|
458
|
+
)
|
|
459
|
+
except requests.Timeout as e:
|
|
460
|
+
raise V1TimeoutError(str(e)) from e
|
|
461
|
+
except requests.ConnectionError as e:
|
|
462
|
+
raise V1ConnectionError(str(e)) from e
|
|
463
|
+
_raise_for_response(r.status_code, r.text)
|
|
464
|
+
return r.json() if r.text else {}
|
|
465
|
+
|
|
448
466
|
def experience_bulk(
|
|
449
467
|
self,
|
|
450
468
|
scope: str,
|
|
@@ -1128,6 +1146,19 @@ class AsyncV1Client:
|
|
|
1128
1146
|
_raise_for_response(r.status_code, r.text)
|
|
1129
1147
|
return r.json() if r.text else {}
|
|
1130
1148
|
|
|
1149
|
+
async def delete_blob(self, blob_id: str) -> dict:
|
|
1150
|
+
"""``DELETE /v1/blobs/{id}`` — purge an uploaded object (uploader
|
|
1151
|
+
only). Forgetting the referencing experience removes the memory, not
|
|
1152
|
+
the object; deleting an uploaded file means both calls."""
|
|
1153
|
+
try:
|
|
1154
|
+
r = await self._client.delete(f"{self.api_url}/v1/blobs/{blob_id}")
|
|
1155
|
+
except httpx.TimeoutException as e:
|
|
1156
|
+
raise V1TimeoutError(str(e)) from e
|
|
1157
|
+
except httpx.HTTPError as e:
|
|
1158
|
+
raise V1ConnectionError(str(e)) from e
|
|
1159
|
+
_raise_for_response(r.status_code, r.text)
|
|
1160
|
+
return r.json() if r.text else {}
|
|
1161
|
+
|
|
1131
1162
|
async def recall(
|
|
1132
1163
|
self,
|
|
1133
1164
|
scope: str,
|
|
@@ -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.
|
|
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.3"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cortexdbai-0.10.2 → cortexdbai-0.10.3}/cortexdb/integrations/nemo_guardrails/knowledge_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|