cortexdbai 0.10.1__tar.gz → 0.10.2__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.1 → cortexdbai-0.10.2}/PKG-INFO +2 -2
  2. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/README.md +1 -1
  3. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/__init__.py +71 -71
  4. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/v1/client.py +26 -2
  5. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/pyproject.toml +1 -1
  6. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/.gitignore +0 -0
  7. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/__init__.py +0 -0
  8. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ag2/__init__.py +0 -0
  9. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ag2/agent.py +0 -0
  10. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ag2/tools.py +0 -0
  11. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/agno/__init__.py +0 -0
  12. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/agno/memory.py +0 -0
  13. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/agno/tools.py +0 -0
  14. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/autogen/__init__.py +0 -0
  15. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/autogen/agent.py +0 -0
  16. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/autogen/tools.py +0 -0
  17. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/beeai/__init__.py +0 -0
  18. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/beeai/memory.py +0 -0
  19. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/beeai/tools.py +0 -0
  20. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/camel/__init__.py +0 -0
  21. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/camel/memory.py +0 -0
  22. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/camel/tools.py +0 -0
  23. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/controlflow/__init__.py +0 -0
  24. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/controlflow/memory.py +0 -0
  25. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/crewai/__init__.py +0 -0
  26. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/crewai/memory.py +0 -0
  27. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/crewai/tools.py +0 -0
  28. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/deepinfra/__init__.py +0 -0
  29. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/deepinfra/config.py +0 -0
  30. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/deepinfra/embeddings.py +0 -0
  31. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/deepinfra/openai_compat.py +0 -0
  32. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dify/__init__.py +0 -0
  33. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dify/manifest.yaml +0 -0
  34. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dify/tool.py +0 -0
  35. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dspy/__init__.py +0 -0
  36. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dspy/memory.py +0 -0
  37. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/dspy/retriever.py +0 -0
  38. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/fireworks/__init__.py +0 -0
  39. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/fireworks/config.py +0 -0
  40. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/fireworks/embeddings.py +0 -0
  41. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/fireworks/openai_compat.py +0 -0
  42. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/flowise/__init__.py +0 -0
  43. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/flowise/node.py +0 -0
  44. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/google_adk/__init__.py +0 -0
  45. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/google_adk/tools.py +0 -0
  46. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/groq/__init__.py +0 -0
  47. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/groq/config.py +0 -0
  48. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/groq/embeddings.py +0 -0
  49. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/groq/openai_compat.py +0 -0
  50. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/hermes/__init__.py +0 -0
  51. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/hermes/provider.py +0 -0
  52. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/instructor/__init__.py +0 -0
  53. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/instructor/memory.py +0 -0
  54. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langchain/__init__.py +0 -0
  55. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langchain/memory.py +0 -0
  56. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langchain/retriever.py +0 -0
  57. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langchain/tools.py +0 -0
  58. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langgraph/__init__.py +0 -0
  59. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/langgraph/memory.py +0 -0
  60. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/letta/__init__.py +0 -0
  61. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/letta/storage.py +0 -0
  62. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/llamaindex/__init__.py +0 -0
  63. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/llamaindex/memory.py +0 -0
  64. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/nemo_guardrails/__init__.py +0 -0
  65. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/nemo_guardrails/actions.py +0 -0
  66. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/nemo_guardrails/knowledge_base.py +0 -0
  67. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ollama/__init__.py +0 -0
  68. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ollama/config.py +0 -0
  69. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/ollama/embeddings.py +0 -0
  70. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/openai_agents/__init__.py +0 -0
  71. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/openai_agents/tools.py +0 -0
  72. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/prefect/__init__.py +0 -0
  73. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/prefect/blocks.py +0 -0
  74. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/prefect/tasks.py +0 -0
  75. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/pydanticai/__init__.py +0 -0
  76. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/pydanticai/dependencies.py +0 -0
  77. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/pydanticai/tools.py +0 -0
  78. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/smolagents/__init__.py +0 -0
  79. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/smolagents/tools.py +0 -0
  80. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/temporal/__init__.py +0 -0
  81. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/temporal/activities.py +0 -0
  82. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/temporal/interceptor.py +0 -0
  83. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/together/__init__.py +0 -0
  84. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/together/config.py +0 -0
  85. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/together/embeddings.py +0 -0
  86. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/together/openai_compat.py +0 -0
  87. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/vllm/__init__.py +0 -0
  88. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/vllm/config.py +0 -0
  89. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/vllm/embeddings.py +0 -0
  90. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/integrations/vllm/openai_compat.py +0 -0
  91. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/py.typed +0 -0
  92. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/v1/__init__.py +0 -0
  93. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/cortexdb/v1/exceptions.py +0 -0
  94. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/tests/__init__.py +0 -0
  95. {cortexdbai-0.10.1 → cortexdbai-0.10.2}/tests/test_conflicts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cortexdbai
3
- Version: 0.10.1
3
+ Version: 0.10.2
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
@@ -187,7 +187,7 @@ ans = c.answer("ws:demo", "What changed in payments recently?")
187
187
 
188
188
  # Forget — GDPR erasure. confirm_all wipes the whole scope.
189
189
  c.forget("ws:demo", confirm_all=True, cascade="redact_events",
190
- audit_note="GDPR Article 17 request")
190
+ reason="GDPR Article 17 request")
191
191
 
192
192
  # Layer reads (paginated { items, has_more }).
193
193
  c.events("ws:demo")
@@ -74,7 +74,7 @@ ans = c.answer("ws:demo", "What changed in payments recently?")
74
74
 
75
75
  # Forget — GDPR erasure. confirm_all wipes the whole scope.
76
76
  c.forget("ws:demo", confirm_all=True, cascade="redact_events",
77
- audit_note="GDPR Article 17 request")
77
+ reason="GDPR Article 17 request")
78
78
 
79
79
  # Layer reads (paginated { items, has_more }).
80
80
  c.events("ws:demo")
@@ -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.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
- ]
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
+ ]
@@ -384,7 +384,9 @@ class V1Client:
384
384
  processor. A ``triple`` (subject/predicate/object dict, see
385
385
  :func:`_envelope`) writes a fact deterministically — no LLM extractor
386
386
  in the loop (server >= v0.7.0). ``wait`` selects sync semantics:
387
- ``captured``, ``indexed``, ``consolidated``."""
387
+ ``captured``, ``indexed``, ``consolidated`` (``accepted`` is a valid
388
+ alias for the omitted default on server >= v0.8.7; anything else
389
+ 422s listing the valid values)."""
388
390
  env = _envelope(
389
391
  scope,
390
392
  role=role,
@@ -458,7 +460,10 @@ class V1Client:
458
460
  ``wait`` turns the batch into a barrier: pass ``"indexed"`` (or
459
461
  ``"consolidated"`` etc.) to block until every accepted event reaches
460
462
  that stage before returning — the batch analogue of
461
- :meth:`experience`'s ``wait``, ideal for bulk-ingest-then-recall."""
463
+ :meth:`experience`'s ``wait``, ideal for bulk-ingest-then-recall.
464
+ Items whose envelope carries a ``triple`` write their facts
465
+ deterministically in bulk too (server >= v0.8.7; older servers only
466
+ did this on the single-write endpoint)."""
462
467
  envelopes = [
463
468
  _envelope(
464
469
  scope=str(item.get("scope", scope)),
@@ -900,6 +905,25 @@ class V1Client:
900
905
  Requires ``diagnostics.read``. Stability: ``experimental``."""
901
906
  return self._get("/v1/admin/layers/stats")
902
907
 
908
+ def index_audit(
909
+ self,
910
+ *,
911
+ repair: bool = False,
912
+ scope: Optional[str] = None,
913
+ ) -> dict:
914
+ """``POST /v1/admin/index-audit`` — WAL↔search-index self-audit.
915
+ Reports events whose search-index entries are missing; with
916
+ ``repair=True`` re-indexes them from stored state (server >= v0.8.7
917
+ also rebuilds missing content rows from the WAL event content).
918
+ ``scope`` restricts the audit and repair to one scope subtree
919
+ (honored on server >= v0.8.7; silently ignored before). Requires
920
+ ``diagnostics.read``. Synchronous full-WAL walk — can take seconds
921
+ to minutes on a large store. Stability: ``experimental``."""
922
+ body: dict = {"repair": repair}
923
+ if scope is not None:
924
+ body["scope"] = scope
925
+ return self._post("/v1/admin/index-audit", body)
926
+
903
927
  # ── low-level transport ──────────────────────────────────────────
904
928
 
905
929
  def _get(
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "cortexdbai"
7
- version = "0.10.1"
7
+ version = "0.10.2"
8
8
  description = "The Long-Term Memory Layer for AI Systems"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
File without changes