cortexdbai 0.5.0__tar.gz → 0.6.0__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.5.0 → cortexdbai-0.6.0}/.gitignore +3 -3
  2. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/PKG-INFO +7 -1
  3. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/README.md +6 -0
  4. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/__init__.py +71 -71
  5. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/v1/client.py +22 -0
  6. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/pyproject.toml +1 -1
  7. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/__init__.py +0 -0
  8. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ag2/__init__.py +0 -0
  9. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ag2/agent.py +0 -0
  10. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ag2/tools.py +0 -0
  11. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/agno/__init__.py +0 -0
  12. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/agno/memory.py +0 -0
  13. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/agno/tools.py +0 -0
  14. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/autogen/__init__.py +0 -0
  15. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/autogen/agent.py +0 -0
  16. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/autogen/tools.py +0 -0
  17. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/beeai/__init__.py +0 -0
  18. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/beeai/memory.py +0 -0
  19. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/beeai/tools.py +0 -0
  20. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/camel/__init__.py +0 -0
  21. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/camel/memory.py +0 -0
  22. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/camel/tools.py +0 -0
  23. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/controlflow/__init__.py +0 -0
  24. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/controlflow/memory.py +0 -0
  25. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/crewai/__init__.py +0 -0
  26. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/crewai/memory.py +0 -0
  27. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/crewai/tools.py +0 -0
  28. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/deepinfra/__init__.py +0 -0
  29. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/deepinfra/config.py +0 -0
  30. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/deepinfra/embeddings.py +0 -0
  31. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/deepinfra/openai_compat.py +0 -0
  32. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dify/__init__.py +0 -0
  33. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dify/manifest.yaml +0 -0
  34. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dify/tool.py +0 -0
  35. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dspy/__init__.py +0 -0
  36. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dspy/memory.py +0 -0
  37. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/dspy/retriever.py +0 -0
  38. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/fireworks/__init__.py +0 -0
  39. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/fireworks/config.py +0 -0
  40. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/fireworks/embeddings.py +0 -0
  41. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/fireworks/openai_compat.py +0 -0
  42. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/flowise/__init__.py +0 -0
  43. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/flowise/node.py +0 -0
  44. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/google_adk/__init__.py +0 -0
  45. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/google_adk/tools.py +0 -0
  46. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/groq/__init__.py +0 -0
  47. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/groq/config.py +0 -0
  48. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/groq/embeddings.py +0 -0
  49. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/groq/openai_compat.py +0 -0
  50. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/hermes/__init__.py +0 -0
  51. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/hermes/provider.py +0 -0
  52. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/instructor/__init__.py +0 -0
  53. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/instructor/memory.py +0 -0
  54. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langchain/__init__.py +0 -0
  55. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langchain/memory.py +0 -0
  56. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langchain/retriever.py +0 -0
  57. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langchain/tools.py +0 -0
  58. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langgraph/__init__.py +0 -0
  59. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/langgraph/memory.py +0 -0
  60. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/letta/__init__.py +0 -0
  61. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/letta/storage.py +0 -0
  62. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/llamaindex/__init__.py +0 -0
  63. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/llamaindex/memory.py +0 -0
  64. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/nemo_guardrails/__init__.py +0 -0
  65. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/nemo_guardrails/actions.py +0 -0
  66. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/nemo_guardrails/knowledge_base.py +0 -0
  67. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ollama/__init__.py +0 -0
  68. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ollama/config.py +0 -0
  69. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/ollama/embeddings.py +0 -0
  70. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/openai_agents/__init__.py +0 -0
  71. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/openai_agents/tools.py +0 -0
  72. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/prefect/__init__.py +0 -0
  73. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/prefect/blocks.py +0 -0
  74. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/prefect/tasks.py +0 -0
  75. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/pydanticai/__init__.py +0 -0
  76. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/pydanticai/dependencies.py +0 -0
  77. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/pydanticai/tools.py +0 -0
  78. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/smolagents/__init__.py +0 -0
  79. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/smolagents/tools.py +0 -0
  80. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/temporal/__init__.py +0 -0
  81. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/temporal/activities.py +0 -0
  82. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/temporal/interceptor.py +0 -0
  83. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/together/__init__.py +0 -0
  84. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/together/config.py +0 -0
  85. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/together/embeddings.py +0 -0
  86. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/together/openai_compat.py +0 -0
  87. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/vllm/__init__.py +0 -0
  88. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/vllm/config.py +0 -0
  89. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/vllm/embeddings.py +0 -0
  90. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/integrations/vllm/openai_compat.py +0 -0
  91. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/py.typed +0 -0
  92. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/v1/__init__.py +0 -0
  93. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/cortexdb/v1/exceptions.py +0 -0
  94. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/tests/__init__.py +0 -0
  95. {cortexdbai-0.5.0 → cortexdbai-0.6.0}/tests/test_conflicts.py +0 -0
@@ -77,6 +77,6 @@ blog/
77
77
  sales/
78
78
  videos/
79
79
  local-instance/
80
-
81
- # doc-claims verifier scratch output
82
- tools/verifier_out*/
80
+
81
+ # doc-claims verifier scratch output
82
+ tools/verifier_out*/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cortexdbai
3
- Version: 0.5.0
3
+ Version: 0.6.0
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
@@ -173,6 +173,12 @@ print(c.recall(c.actor, query="what did I say?")["context_block"])
173
173
  c.experience("ws:demo", text="Deployed payments-service v3.1 to prod.")
174
174
  c.experience("ws:demo", text="Rolled back auth-gateway.", wait="indexed")
175
175
 
176
+ # Large content: wait="captured" returns at the durable accept point (~10ms);
177
+ # poll write_status to see indexing progress. After a client timeout,
178
+ # found=False or status="failed" both mean re-sending is safe (re-processes).
179
+ c.experience("ws:demo", text=big_transcript, idempotency_key="k1", wait="captured")
180
+ c.write_status(idempotency_key="k1") # {found, status, stages_completed, ...}
181
+
176
182
  # Recall — returns a StratifiedPack { context_block, layers, provenance }.
177
183
  pack = c.recall("ws:demo", query="recent deploys", view="holistic")
178
184
 
@@ -60,6 +60,12 @@ print(c.recall(c.actor, query="what did I say?")["context_block"])
60
60
  c.experience("ws:demo", text="Deployed payments-service v3.1 to prod.")
61
61
  c.experience("ws:demo", text="Rolled back auth-gateway.", wait="indexed")
62
62
 
63
+ # Large content: wait="captured" returns at the durable accept point (~10ms);
64
+ # poll write_status to see indexing progress. After a client timeout,
65
+ # found=False or status="failed" both mean re-sending is safe (re-processes).
66
+ c.experience("ws:demo", text=big_transcript, idempotency_key="k1", wait="captured")
67
+ c.write_status(idempotency_key="k1") # {found, status, stages_completed, ...}
68
+
63
69
  # Recall — returns a StratifiedPack { context_block, layers, provenance }.
64
70
  pack = c.recall("ws:demo", query="recent deploys", view="holistic")
65
71
 
@@ -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.4.3"
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.6.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
+ ]
@@ -384,6 +384,28 @@ class V1Client:
384
384
  path = "/v1/experience" + (f"?wait={wait}" if wait else "")
385
385
  return self._post(path, env)
386
386
 
387
+ def write_status(
388
+ self,
389
+ *,
390
+ idempotency_key: Optional[str] = None,
391
+ event_id: Optional[str] = None,
392
+ ) -> dict:
393
+ """``GET /v1/experience/status`` — did a write land, and how far has
394
+ it progressed? The safe resume path after a client-side timeout, and
395
+ the poll target after ``experience(..., wait="captured")``.
396
+
397
+ Returns ``{found, event_id, status, stages_completed, note}`` where
398
+ ``status`` is ``"captured"`` / ``"indexed"`` / ``"failed"``.
399
+ ``found: False`` (or ``status: "failed"``) means re-sending the same
400
+ write with the same ``idempotency_key`` is safe — it re-processes
401
+ rather than replaying."""
402
+ params: dict = {}
403
+ if idempotency_key is not None:
404
+ params["idempotency_key"] = idempotency_key
405
+ if event_id is not None:
406
+ params["event_id"] = event_id
407
+ return self._get("/v1/experience/status", params=params)
408
+
387
409
  def upload_blob(
388
410
  self, data: bytes, content_type: str = "application/octet-stream"
389
411
  ) -> dict:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "cortexdbai"
7
- version = "0.5.0"
7
+ version = "0.6.0"
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
File without changes