cortexdbai 0.12.0__tar.gz → 0.13.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.
- cortexdbai-0.13.1/COVERAGE.md +329 -0
- cortexdbai-0.13.1/PKG-INFO +1099 -0
- cortexdbai-0.13.1/README.md +984 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/__init__.py +21 -3
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/v1/__init__.py +84 -3
- cortexdbai-0.13.1/cortexdb/v1/_transport.py +501 -0
- cortexdbai-0.13.1/cortexdb/v1/_wire.py +898 -0
- cortexdbai-0.13.1/cortexdb/v1/auth.py +211 -0
- cortexdbai-0.13.1/cortexdb/v1/client.py +1677 -0
- cortexdbai-0.13.1/cortexdb/v1/consistency.py +144 -0
- cortexdbai-0.13.1/cortexdb/v1/errors.py +5428 -0
- cortexdbai-0.13.1/cortexdb/v1/exceptions.py +398 -0
- cortexdbai-0.13.1/cortexdb/v1/models.py +10280 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/__init__.py +7 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/access.py +862 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/admin.py +456 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/code.py +372 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/core.py +2063 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/erasure.py +179 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/native.py +137 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/org.py +461 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/rest.py +651 -0
- cortexdbai-0.13.1/cortexdb/v1/ops/scim.py +321 -0
- cortexdbai-0.13.1/cortexdb/v1/records.py +142 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/pyproject.toml +1 -1
- cortexdbai-0.13.1/scripts/error_codes.json +2724 -0
- cortexdbai-0.13.1/scripts/generate_errors.py +215 -0
- cortexdbai-0.13.1/scripts/generate_models.py +319 -0
- cortexdbai-0.13.1/tests/_harness.py +224 -0
- cortexdbai-0.13.1/tests/conftest.py +22 -0
- cortexdbai-0.13.1/tests/live/__init__.py +0 -0
- cortexdbai-0.13.1/tests/live/conftest.py +229 -0
- cortexdbai-0.13.1/tests/live/test_live_shared_memory.py +1075 -0
- cortexdbai-0.13.1/tests/test_access_api.py +425 -0
- cortexdbai-0.13.1/tests/test_admin_and_rest.py +249 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_admin_retention.py +28 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_answer_unavailable.py +4 -1
- cortexdbai-0.13.1/tests/test_client_parity.py +129 -0
- cortexdbai-0.13.1/tests/test_consistency.py +97 -0
- cortexdbai-0.13.1/tests/test_erasures_forget.py +144 -0
- cortexdbai-0.13.1/tests/test_errors_and_auth.py +418 -0
- cortexdbai-0.13.1/tests/test_org_routes.py +189 -0
- cortexdbai-0.13.1/tests/test_read_write_fields.py +129 -0
- cortexdbai-0.13.1/tests/test_readme_examples.py +50 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_recall_hints_capabilities.py +4 -2
- cortexdbai-0.13.1/tests/test_scim.py +106 -0
- cortexdbai-0.13.1/tests/test_streams.py +82 -0
- cortexdbai-0.13.1/tests/test_with_options.py +43 -0
- cortexdbai-0.12.0/PKG-INFO +0 -366
- cortexdbai-0.12.0/README.md +0 -251
- cortexdbai-0.12.0/cortexdb/v1/client.py +0 -3243
- cortexdbai-0.12.0/cortexdb/v1/exceptions.py +0 -132
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/LICENSE +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ag2/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ag2/agent.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ag2/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/agno/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/agno/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/agno/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/autogen/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/autogen/agent.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/autogen/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/beeai/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/beeai/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/beeai/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/camel/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/camel/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/camel/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/controlflow/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/controlflow/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/crewai/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/crewai/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/crewai/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/deepinfra/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/deepinfra/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/deepinfra/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/deepinfra/openai_compat.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dify/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dify/manifest.yaml +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dify/tool.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dspy/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dspy/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/dspy/retriever.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/fireworks/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/fireworks/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/fireworks/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/fireworks/openai_compat.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/flowise/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/flowise/node.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/google_adk/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/google_adk/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/groq/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/groq/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/groq/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/groq/openai_compat.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/hermes/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/hermes/provider.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/instructor/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/instructor/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langchain/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langchain/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langchain/retriever.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langchain/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langgraph/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/langgraph/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/letta/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/letta/storage.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/llamaindex/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/llamaindex/memory.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/nemo_guardrails/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/nemo_guardrails/actions.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/nemo_guardrails/knowledge_base.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ollama/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ollama/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/ollama/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/openai_agents/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/openai_agents/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/prefect/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/prefect/blocks.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/prefect/tasks.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/pydanticai/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/pydanticai/dependencies.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/pydanticai/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/smolagents/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/smolagents/tools.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/temporal/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/temporal/activities.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/temporal/interceptor.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/together/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/together/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/together/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/together/openai_compat.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/vllm/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/vllm/config.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/vllm/embeddings.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/integrations/vllm/openai_compat.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/py.typed +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/v1/diagnostics.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/v1/fragments.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/cortexdb/v1/source.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/__init__.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_code_namespace.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_conflicts.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_delete_blob.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_integration_write_barriers.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_matched_fragments.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_signup.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_source.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_unknown_method_guidance.py +0 -0
- {cortexdbai-0.12.0 → cortexdbai-0.13.1}/tests/test_v093_surfaces.py +0 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# `cortexdbai` coverage of the CortexDB 0.14.0 v1 API
|
|
2
|
+
|
|
3
|
+
Every route the 0.14.0 server serves to clients, and the `cortexdbai` method that calls it. Every method exists in
|
|
4
|
+
`V1Client` and in `AsyncV1Client` under the same name, with the same parameters (both are built from the same
|
|
5
|
+
builders, `cortexdb/v1/ops/`, and `tests/test_client_parity.py` pins it). Kept up to date with the SDK: a route the
|
|
6
|
+
server adds goes in this table in the same change.
|
|
7
|
+
|
|
8
|
+
## How the list was made
|
|
9
|
+
|
|
10
|
+
- **The server's route table.** Every `.route("…")` under `crates/cortex-api/src/` that is compiled into the binary
|
|
11
|
+
(test code is skipped the way `scripts/openapi_route_diff.py` skips it), for the public prefixes the OpenAPI gate
|
|
12
|
+
covers: `/v1/`, `/access/`, `/.well-known/` and `/scim/`. That is `crates/cortex-api/src/v1/router.rs` and every
|
|
13
|
+
router it mounts (`access_routes.rs`, `access_change_routes.rs`, `access_watch.rs`, `app_routes.rs`,
|
|
14
|
+
`directory_routes.rs`, `scim_routes.rs`, `restore_routes.rs`, `rollup_routes.rs`, `publish_routes.rs`,
|
|
15
|
+
`forget_routes*.rs`, `code_routes.rs`, `commitment_routes.rs`, `source_erasure_routes.rs` and the rest).
|
|
16
|
+
- **Base:** `origin/sharedcontext` at `4618df85`, the final 0.14.0 server, 206 paths and 237 operations (a path with
|
|
17
|
+
two methods is two rows). The field families are in the second table.
|
|
18
|
+
- **The method column** is read from the SDK itself: each method's docstring names its route first.
|
|
19
|
+
- **Status:** `covered` (both clients), or `not covered` with the reason.
|
|
20
|
+
|
|
21
|
+
## How it is tested
|
|
22
|
+
|
|
23
|
+
- **Unit** (`tests/`, run by CI's `pytest -q` in `sdks/python`): every method on both clients sends the same
|
|
24
|
+
request (`test_client_parity.py`), and each route family's tests pin its requests and its answers' handling.
|
|
25
|
+
- **Live** (`tests/live/`, against a release binary of the merged tree, `CORTEXDB_BINARY=… pytest tests/live`): one
|
|
26
|
+
org's life in 25 legs, run once on each client. The last leg calls every route the others do not, and checks that
|
|
27
|
+
each answers by its contract on a default server: 2xx, or the documented refusal of a switch the server leaves off
|
|
28
|
+
(`CODE_PLANE_DISABLED`, `COHORT_DISABLED`, `ICE_OFF`, plans' 404, the native memory host's routes, which a
|
|
29
|
+
plain server does not mount). With `CORTEXDB_LIVE_ROUTES=<file>` the run records every request it sent: on 0.14.0
|
|
30
|
+
it reaches 229 of the 235 covered operations (signup's class method included); the other six are aliases of reached routes (`GET /v1/health`,
|
|
31
|
+
`/v1/ready`, `/v1/understanding/coverage`, `/v1/understanding/{id}` and `/{id}/related`, `POST
|
|
32
|
+
/v1/experiences`), which the method's own route serves.
|
|
33
|
+
|
|
34
|
+
## Not part of the SDK
|
|
35
|
+
|
|
36
|
+
These are served by the binary but are not the v1 API a client calls:
|
|
37
|
+
|
|
38
|
+
| Route | Why not |
|
|
39
|
+
|---|---|
|
|
40
|
+
| `POST`, `GET`, `DELETE /mcp` | The HTTP MCP server (`CORTEX_MCP=on`): an MCP client's transport, covered by MCP clients, not by this SDK |
|
|
41
|
+
| `/internal/ui/*` | The embedded console's own routes (settings, features, license, updater); 403 on a data node, not routed by an ingress |
|
|
42
|
+
| `/metrics` | Prometheus text exposition, for a scraper |
|
|
43
|
+
| `/`, `/status`, `/assets/*`, `/docs*`, `/openapi.json` | The console and its static files; `/openapi.json` is the same document as `GET /v1/openapi.json` |
|
|
44
|
+
| `/shard/v1/*`, `/node/v1/*` | A cluster's internal mTLS routes, between nodes |
|
|
45
|
+
| `GET /.well-known/oauth-protected-resource`, `/.well-known/oauth-protected-resource/mcp` | The MCP server's OAuth protected-resource metadata (RFC 9728), read by MCP clients; listed below because the OpenAPI gate covers `/.well-known/` |
|
|
46
|
+
|
|
47
|
+
## Summary
|
|
48
|
+
|
|
49
|
+
237 operations: 235 covered by both clients, 2 not covered (each row says why).
|
|
50
|
+
|
|
51
|
+
Before the 0.14.0 work (`cortexdbai` 0.12.0), 67 operations were reached, 49 of them only partly (38 had no
|
|
52
|
+
`AsyncV1Client` method), and none of the shared-memory routes.
|
|
53
|
+
|
|
54
|
+
## Routes
|
|
55
|
+
|
|
56
|
+
| Route | Family | Method (`V1Client` and `AsyncV1Client`) | Status |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| `GET /.well-known/authzen-configuration` | AuthZEN | `authzen_configuration` | covered |
|
|
59
|
+
| `GET /.well-known/oauth-protected-resource` | MCP metadata | - | not covered: the MCP server's OAuth metadata, for MCP clients (see above) |
|
|
60
|
+
| `GET /.well-known/oauth-protected-resource/mcp` | MCP metadata | - | not covered: the MCP server's OAuth metadata, for MCP clients (see above) |
|
|
61
|
+
| `POST /access/v1/evaluation` | AuthZEN | `authzen_evaluation` | covered |
|
|
62
|
+
| `POST /access/v1/search/resource` | AuthZEN | `authzen_search_resource` | covered |
|
|
63
|
+
| `GET /scim/v2/Groups` | SCIM | `scim.list_groups` | covered |
|
|
64
|
+
| `POST /scim/v2/Groups` | SCIM | `scim.create_group` | covered |
|
|
65
|
+
| `DELETE /scim/v2/Groups/{id}` | SCIM | `scim.delete_group` | covered |
|
|
66
|
+
| `GET /scim/v2/Groups/{id}` | SCIM | `scim.get_group` | covered |
|
|
67
|
+
| `PATCH /scim/v2/Groups/{id}` | SCIM | `scim.patch_group` | covered |
|
|
68
|
+
| `PUT /scim/v2/Groups/{id}` | SCIM | `scim.replace_group` | covered |
|
|
69
|
+
| `GET /scim/v2/ResourceTypes` | SCIM | `scim.resource_types` | covered |
|
|
70
|
+
| `GET /scim/v2/ResourceTypes/{id}` | SCIM | `scim.resource_type` | covered |
|
|
71
|
+
| `GET /scim/v2/Schemas` | SCIM | `scim.schemas` | covered |
|
|
72
|
+
| `GET /scim/v2/Schemas/{id}` | SCIM | `scim.schema` | covered |
|
|
73
|
+
| `GET /scim/v2/ServiceProviderConfig` | SCIM | `scim.service_provider_config` | covered |
|
|
74
|
+
| `GET /scim/v2/Users` | SCIM | `scim.list_users` | covered |
|
|
75
|
+
| `POST /scim/v2/Users` | SCIM | `scim.create_user` | covered |
|
|
76
|
+
| `DELETE /scim/v2/Users/{id}` | SCIM | `scim.delete_user` | covered |
|
|
77
|
+
| `GET /scim/v2/Users/{id}` | SCIM | `scim.get_user` | covered |
|
|
78
|
+
| `PATCH /scim/v2/Users/{id}` | SCIM | `scim.patch_user` | covered |
|
|
79
|
+
| `PUT /scim/v2/Users/{id}` | SCIM | `scim.replace_user` | covered |
|
|
80
|
+
| `POST /v1/access/accounts/resolve` | Source containers | `access_resolve_accounts` | covered |
|
|
81
|
+
| `POST /v1/access/changes` | Change sets | `changeset_stage` | covered |
|
|
82
|
+
| `DELETE /v1/access/changes/{id}` | Change sets | `changeset_discard` | covered |
|
|
83
|
+
| `GET /v1/access/changes/{id}` | Change sets | `changeset_get` | covered |
|
|
84
|
+
| `POST /v1/access/changes/{id}/activate` | Change sets | `changeset_activate` | covered |
|
|
85
|
+
| `POST /v1/access/changes/{id}/parts` | Change sets | `changeset_add_parts` | covered |
|
|
86
|
+
| `POST /v1/access/changes/{id}/preview` | Change sets | `changeset_preview` | covered |
|
|
87
|
+
| `POST /v1/access/check` | Access API | `access_check` | covered |
|
|
88
|
+
| `GET /v1/access/enrich` | Access API | `access_enrich` | covered |
|
|
89
|
+
| `POST /v1/access/explain` | Access API | `access_explain` | covered |
|
|
90
|
+
| `GET /v1/access/limits` | Access API | `access_limits` | covered |
|
|
91
|
+
| `POST /v1/access/lookup/principals` | Access API | `access_lookup_principals` | covered |
|
|
92
|
+
| `POST /v1/access/lookup/scopes` | Access API | `access_lookup_scopes` | covered |
|
|
93
|
+
| `GET /v1/access/notices` | Watch and notices | `access_notices` | covered |
|
|
94
|
+
| `POST /v1/access/notices/ack` | Watch and notices | `access_notices_ack` | covered |
|
|
95
|
+
| `GET /v1/access/records` | Restores | `access_records` | covered |
|
|
96
|
+
| `POST /v1/access/rehome` | Source containers | `access_rehome` | covered |
|
|
97
|
+
| `POST /v1/access/restore/ack` | Restores | `access_restore_ack` | covered |
|
|
98
|
+
| `POST /v1/access/texts/erase` | Access API | `access_texts_erase` | covered |
|
|
99
|
+
| `GET /v1/access/watch` | Watch and notices | `access_watch` | covered |
|
|
100
|
+
| `GET /v1/access/watermarks` | Source containers | `access_watermarks` | covered |
|
|
101
|
+
| `PUT /v1/access/watermarks` | Source containers | `access_watermark_put` | covered |
|
|
102
|
+
| `GET /v1/admin/access/report` | Access admin | `admin_access_report` | covered |
|
|
103
|
+
| `POST /v1/admin/access/restore` | Restores | `admin_access_restore` | covered |
|
|
104
|
+
| `POST /v1/admin/access/tenant-binding` | Access admin | `admin_tenant_binding` | covered |
|
|
105
|
+
| `GET /v1/admin/access/tenant-settings` | Access admin | `admin_tenant_settings` | covered |
|
|
106
|
+
| `PUT /v1/admin/access/tenant-settings` | Access admin | `admin_set_tenant_settings` | covered |
|
|
107
|
+
| `POST /v1/admin/auth/reload` | Access admin | `admin_auth_reload` | covered |
|
|
108
|
+
| `GET /v1/admin/cohort/status` | Cohort (xscope) | `admin_cohort_status` | covered |
|
|
109
|
+
| `POST /v1/admin/cohort/warm` | Cohort (xscope) | `admin_cohort_warm` | covered |
|
|
110
|
+
| `POST /v1/admin/compaction/dedup` | Admin | `admin_compaction_dedup` | covered |
|
|
111
|
+
| `GET /v1/admin/compile-dead-letter` | Admin | `admin_compile_dead_letter` | covered |
|
|
112
|
+
| `POST /v1/admin/derived/rederive` | Admin | `admin_rederive` | covered |
|
|
113
|
+
| `GET /v1/admin/derived/rederive/{job_id}` | Admin | `admin_rederive_status` | covered |
|
|
114
|
+
| `POST /v1/admin/derived/resolver/unmerge` | Admin | `admin_resolver_unmerge` | covered |
|
|
115
|
+
| `GET /v1/admin/events/{id}/chunks` | Admin | `event_chunks` | covered |
|
|
116
|
+
| `GET /v1/admin/health` | Admin | `health` | covered |
|
|
117
|
+
| `POST /v1/admin/ice/owner` | Admin | `admin_ice_owner` | covered |
|
|
118
|
+
| `POST /v1/admin/ice/seal` | Admin | `admin_ice_seal` | covered |
|
|
119
|
+
| `GET /v1/admin/ice/status` | Admin | `admin_ice_status` | covered |
|
|
120
|
+
| `POST /v1/admin/index-audit` | Admin | `index_audit` | covered |
|
|
121
|
+
| `GET /v1/admin/index-audit/orphan-blobs` | Admin | `admin_orphan_blobs` | covered |
|
|
122
|
+
| `POST /v1/admin/index-audit/reinclude` | Admin | `admin_reinclude` | covered |
|
|
123
|
+
| `POST /v1/admin/index-audit/source-blob-links` | Admin | `admin_source_blob_links` | covered |
|
|
124
|
+
| `GET /v1/admin/layers/stats` | Admin | `layer_stats` | covered |
|
|
125
|
+
| `GET /v1/admin/metrics` | Admin | `admin_metrics` | covered |
|
|
126
|
+
| `GET /v1/admin/native-memory` | Admin | `admin_native_memory` | covered |
|
|
127
|
+
| `POST /v1/admin/persist` | Admin | `admin_persist` | covered |
|
|
128
|
+
| `GET /v1/admin/plans/{subtree}` | Admin | `admin_plan` | covered |
|
|
129
|
+
| `PUT /v1/admin/plans/{subtree}` | Admin | `admin_set_plan` | covered |
|
|
130
|
+
| `GET /v1/admin/ready` | Admin | `ready` | covered |
|
|
131
|
+
| `GET /v1/admin/retention` | Admin | `retention_status` | covered |
|
|
132
|
+
| `DELETE /v1/admin/retention/policies` | Admin | `retention_policy_delete` | covered |
|
|
133
|
+
| `GET /v1/admin/retention/policies` | Admin | `retention_policy_get` | covered |
|
|
134
|
+
| `PUT /v1/admin/retention/policies` | Admin | `retention_policy_set` | covered |
|
|
135
|
+
| `POST /v1/admin/retention/sweep` | Admin | `retention_sweep` | covered |
|
|
136
|
+
| `GET /v1/admin/rollups/status` | Rollups | `admin_rollups_status` | covered |
|
|
137
|
+
| `POST /v1/admin/scopes/migrate` | Admin | `admin_scope_migrate` | covered |
|
|
138
|
+
| `GET /v1/admin/scopes/migrate/{id}` | Admin | `admin_scope_migration` | covered |
|
|
139
|
+
| `GET /v1/admin/usage` | Admin | `admin_usage` | covered |
|
|
140
|
+
| `GET /v1/admin/usage/subtrees` | Admin | `admin_usage_subtrees` | covered |
|
|
141
|
+
| `POST /v1/admin/vector-hygiene` | Admin | `admin_vector_hygiene` | covered |
|
|
142
|
+
| `GET /v1/admin/version` | Admin | `version` | covered |
|
|
143
|
+
| `GET /v1/admin/wal` | Admin | `wal_status` | covered |
|
|
144
|
+
| `POST /v1/admin/wal/compact` | Admin | `wal_compact` | covered |
|
|
145
|
+
| `POST /v1/answer` | Read | `answer`, `answer_stream` | covered |
|
|
146
|
+
| `GET /v1/apps/{id}` | Applications | `app_get` | covered |
|
|
147
|
+
| `PUT /v1/apps/{id}` | Applications | `app_put` | covered |
|
|
148
|
+
| `GET /v1/audit` | Audit | `audit_list` | covered |
|
|
149
|
+
| `GET /v1/audit/chain` | Audit | `audit_chain` | covered |
|
|
150
|
+
| `POST /v1/audit/chain/verify` | Audit | `audit_chain_verify` | covered |
|
|
151
|
+
| `POST /v1/audit/verify` | Audit | `audit_verify` | covered |
|
|
152
|
+
| `GET /v1/audit/{id}` | Audit | `audit_get` | covered |
|
|
153
|
+
| `POST /v1/auth/revoke` | Auth | `revoke_token` | covered |
|
|
154
|
+
| `POST /v1/auth/signup` | Auth | `signup` | covered |
|
|
155
|
+
| `POST /v1/auth/tokens` | Auth | `mint_agent_token`, `mint_app_token`, `mint_token` | covered |
|
|
156
|
+
| `GET /v1/auth/whoami` | Auth | `whoami` | covered |
|
|
157
|
+
| `GET /v1/beliefs` | Layers | `beliefs` | covered |
|
|
158
|
+
| `POST /v1/beliefs` | Layers | `create_belief` | covered |
|
|
159
|
+
| `POST /v1/beliefs/build` | Layers | `build_beliefs` | covered |
|
|
160
|
+
| `GET /v1/beliefs/history` | Layers | `belief_history` | covered |
|
|
161
|
+
| `GET /v1/beliefs/why` | Layers | `belief_why` | covered |
|
|
162
|
+
| `POST /v1/blobs` | Blobs | `upload_blob` | covered |
|
|
163
|
+
| `DELETE /v1/blobs/idempotent` | Blobs | `retire_blob_keyed` | covered |
|
|
164
|
+
| `POST /v1/blobs/idempotent` | Blobs | `upload_blob_keyed` | covered |
|
|
165
|
+
| `GET /v1/blobs/idempotent/status` | Blobs | `blob_keyed_status` | covered |
|
|
166
|
+
| `DELETE /v1/blobs/{id}` | Blobs | `delete_blob` | covered |
|
|
167
|
+
| `GET /v1/blobs/{id}` | Blobs | `get_blob` | covered |
|
|
168
|
+
| `GET /v1/claims` | Layers | `query_claims` | covered |
|
|
169
|
+
| `GET /v1/claims/history` | Layers | `claim_history` | covered |
|
|
170
|
+
| `GET /v1/code/calls` | Code plane | `code.calls` | covered |
|
|
171
|
+
| `POST /v1/code/certify` | Code plane | `code.certify` | covered |
|
|
172
|
+
| `POST /v1/code/context` | Code plane | `code.context` | covered |
|
|
173
|
+
| `GET /v1/code/coverage/status` | Code plane | `code.coverage_status` | covered |
|
|
174
|
+
| `GET /v1/code/export-index` | Code plane | `code.export_index` | covered |
|
|
175
|
+
| `POST /v1/code/gc` | Code plane | `code.gc` | covered |
|
|
176
|
+
| `POST /v1/code/graph/export` | Code plane | `code.graph_export` | covered |
|
|
177
|
+
| `POST /v1/code/graph/query` | Code plane | `code.graph_query` | covered |
|
|
178
|
+
| `GET /v1/code/history/for-symbol` | Code plane | `code.history_for_symbol` | covered |
|
|
179
|
+
| `GET /v1/code/impact` | Code plane | `code.impact` | covered |
|
|
180
|
+
| `POST /v1/code/import-index` | Code plane | `code.import_index` | covered |
|
|
181
|
+
| `POST /v1/code/import/coverage` | Code plane | `code.import_coverage` | covered |
|
|
182
|
+
| `POST /v1/code/import/scip` | Code plane | `code.import_scip` | covered |
|
|
183
|
+
| `POST /v1/code/inventory` | Code plane | `code.inventory` | covered |
|
|
184
|
+
| `GET /v1/code/matrix` | Code plane | `code.matrix` | covered |
|
|
185
|
+
| `DELETE /v1/code/pins` | Code plane | `code.unpin` | covered |
|
|
186
|
+
| `POST /v1/code/pins` | Code plane | `code.pin` | covered |
|
|
187
|
+
| `GET /v1/code/repos` | Code plane | `code.repos` | covered |
|
|
188
|
+
| `POST /v1/code/repos` | Code plane | `code.register_repo` | covered |
|
|
189
|
+
| `DELETE /v1/code/repos/{name}` | Code plane | `code.remove_repo` | covered |
|
|
190
|
+
| `GET /v1/code/repos/{name}` | Code plane | `code.repo_status` | covered |
|
|
191
|
+
| `GET /v1/code/symbol/resolve` | Code plane | `code.resolve_symbol` | covered |
|
|
192
|
+
| `GET /v1/code/symbol/search` | Code plane | `code.search_symbols` | covered |
|
|
193
|
+
| `GET /v1/code/tests/for-change` | Code plane | `code.tests_for_change` | covered |
|
|
194
|
+
| `POST /v1/code/workspace/context` | Code plane | `code.workspace_context` | covered |
|
|
195
|
+
| `POST /v1/cohort/query` | Cohort (xscope) | `cohort_query` | covered |
|
|
196
|
+
| `GET /v1/cohort/vocabulary` | Cohort (xscope) | `cohort_vocabulary` | covered |
|
|
197
|
+
| `POST /v1/compose` | Read | `compose` | covered |
|
|
198
|
+
| `GET /v1/concepts` | Layers | `concepts` | covered |
|
|
199
|
+
| `GET /v1/concepts/coverage` | Layers | `concepts_coverage` | covered |
|
|
200
|
+
| `GET /v1/concepts/{id}` | Layers | `concept` | covered |
|
|
201
|
+
| `GET /v1/concepts/{id}/history` | Layers | `concept_history` | covered |
|
|
202
|
+
| `GET /v1/concepts/{id}/related` | Layers | `concept_related` | covered |
|
|
203
|
+
| `GET /v1/conflicts` | Layers | `list_conflicts` | covered |
|
|
204
|
+
| `GET /v1/conflicts/{id}` | Layers | `get_conflict` | covered |
|
|
205
|
+
| `POST /v1/conflicts/{id}/resolve` | Layers | `resolve_conflict` | covered |
|
|
206
|
+
| `GET /v1/derivation/status` | Layers | `derivation_status` | covered |
|
|
207
|
+
| `GET /v1/directory` | Directory | `directory_search` | covered |
|
|
208
|
+
| `DELETE /v1/directory/{id}` | Directory | `directory_delete` | covered |
|
|
209
|
+
| `GET /v1/directory/{id}` | Directory | `directory_get` | covered |
|
|
210
|
+
| `PUT /v1/directory/{id}` | Directory | `directory_put` | covered |
|
|
211
|
+
| `GET /v1/episodes` | Layers | `episodes` | covered |
|
|
212
|
+
| `POST /v1/episodes/build` | Layers | `build_episodes` | covered |
|
|
213
|
+
| `POST /v1/erasures` | Erasures | `erase` | covered |
|
|
214
|
+
| `POST /v1/erasures/person` | Erasures | `erase_person` | covered |
|
|
215
|
+
| `POST /v1/erasures/preview` | Erasures | `erasure_preview` | covered |
|
|
216
|
+
| `POST /v1/erasures/tenant` | Erasures | `erase_tenant` | covered |
|
|
217
|
+
| `GET /v1/erasures/{id}` | Erasures | `erasure_status` | covered |
|
|
218
|
+
| `POST /v1/erasures/{id}/cancel` | Erasures | `erasure_cancel` | covered |
|
|
219
|
+
| `GET /v1/erasures/{id}/receipt` | Erasures | `erasure_receipt` | covered |
|
|
220
|
+
| `GET /v1/erasures/{id}/verify` | Erasures | `erasure_verify` | covered |
|
|
221
|
+
| `GET /v1/events` | Layers | `events` | covered |
|
|
222
|
+
| `GET /v1/events/{id}` | Layers | `event` | covered |
|
|
223
|
+
| `POST /v1/experience` | Write | `experience` | covered |
|
|
224
|
+
| `POST /v1/experience/bulk` | Write | `experience_bulk` | covered |
|
|
225
|
+
| `POST /v1/experience/resume` | Write | `native.capture_resume` | covered |
|
|
226
|
+
| `GET /v1/experience/status` | Write | `write_status` | covered |
|
|
227
|
+
| `POST /v1/experience/status` | Write | `native.capture_status` | covered |
|
|
228
|
+
| `POST /v1/experiences` | Write | `experience_bulk` | covered |
|
|
229
|
+
| `POST /v1/export` | Import and export | `export`, `import_data` | covered |
|
|
230
|
+
| `GET /v1/facts` | Layers | `facts` | covered |
|
|
231
|
+
| `GET /v1/facts/timeline` | Layers | `facts_timeline` | covered |
|
|
232
|
+
| `GET /v1/facts/{id}` | Layers | `fact` | covered |
|
|
233
|
+
| `POST /v1/forget` | Forget | `forget` | covered |
|
|
234
|
+
| `POST /v1/forget/preview` | Forget | `forget_preview` | covered |
|
|
235
|
+
| `GET /v1/health` | Service and policy | `health` | covered |
|
|
236
|
+
| `POST /v1/import` | Import and export | `import_data` | covered |
|
|
237
|
+
| `POST /v1/import/jsonl` | Import and export | `import_jsonl` | covered |
|
|
238
|
+
| `POST /v1/import/letta` | Import and export | `import_letta` | covered |
|
|
239
|
+
| `POST /v1/import/mem0` | Import and export | `import_mem0` | covered |
|
|
240
|
+
| `POST /v1/import/openai` | Import and export | `import_openai` | covered |
|
|
241
|
+
| `POST /v1/import/zep` | Import and export | `import_zep` | covered |
|
|
242
|
+
| `GET /v1/import/{id}` | Import and export | `import_status` | covered |
|
|
243
|
+
| `GET /v1/lifecycle` | Lifecycle | `lifecycle_events` | covered |
|
|
244
|
+
| `GET /v1/lifecycle/event/{lce_id}` | Lifecycle | `lifecycle_event` | covered |
|
|
245
|
+
| `GET /v1/lifecycle/memory-event/{evt_id}` | Lifecycle | `lifecycle_memory_event` | covered |
|
|
246
|
+
| `POST /v1/lifecycle/memory-event/{evt_id}/cancel` | Lifecycle | `cancel_event` | covered |
|
|
247
|
+
| `GET /v1/lifecycle/stream` | Lifecycle | `lifecycle_stream` | covered |
|
|
248
|
+
| `POST /v1/memory/commitments/commands` | Native memory host | `native.commitment_command` | covered |
|
|
249
|
+
| `POST /v1/memory/commitments/current` | Native memory host | `native.commitment_current` | covered |
|
|
250
|
+
| `POST /v1/memory/commitments/evidence` | Native memory host | `native.commitment_evidence` | covered |
|
|
251
|
+
| `POST /v1/memory/commitments/status` | Native memory host | `native.commitment_status` | covered |
|
|
252
|
+
| `POST /v1/memory/source-erasure/commands` | Native memory host | `native.source_erasure_command` | covered |
|
|
253
|
+
| `POST /v1/memory/source-erasure/discovered-commands` | Native memory host | `native.source_erasure_discovered_command` | covered |
|
|
254
|
+
| `POST /v1/memory/source-erasure/discovery` | Native memory host | `native.source_erasure_discovery` | covered |
|
|
255
|
+
| `POST /v1/memory/source-erasure/progress` | Native memory host | `native.source_erasure_progress` | covered |
|
|
256
|
+
| `POST /v1/memory/source-erasure/refusals` | Native memory host | `native.source_erasure_refusal` | covered |
|
|
257
|
+
| `POST /v1/memory/source-erasure/status` | Native memory host | `native.source_erasure_status` | covered |
|
|
258
|
+
| `GET /v1/openapi.json` | Service and policy | `openapi` | covered |
|
|
259
|
+
| `GET /v1/plan` | Service and policy | `plan` | covered |
|
|
260
|
+
| `GET /v1/policy/deployment` | Service and policy | `policy_deployment` | covered |
|
|
261
|
+
| `GET /v1/policy/effective` | Service and policy | `policy_effective` | covered |
|
|
262
|
+
| `POST /v1/publish` | Publish | `publish` | covered |
|
|
263
|
+
| `GET /v1/ready` | Service and policy | `ready` | covered |
|
|
264
|
+
| `POST /v1/recall` | Read | `recall` | covered |
|
|
265
|
+
| `POST /v1/recall/stream` | Read | `recall_stream` | covered |
|
|
266
|
+
| `GET /v1/rollups` | Rollups | `rollups` | covered |
|
|
267
|
+
| `GET /v1/rollups/totals` | Rollups | `rollup_totals` | covered |
|
|
268
|
+
| `GET /v1/rollups/{id}` | Rollups | `rollup` | covered |
|
|
269
|
+
| `GET /v1/schemas` | Service and policy | `schemas` | covered |
|
|
270
|
+
| `GET /v1/schemas/{name}` | Service and policy | `schema` | covered |
|
|
271
|
+
| `DELETE /v1/scopes` | Scopes | `scope_delete` | covered |
|
|
272
|
+
| `GET /v1/scopes` | Scopes | `scope_get` | covered |
|
|
273
|
+
| `POST /v1/scopes` | Scopes | `scope_register` | covered |
|
|
274
|
+
| `GET /v1/scopes/list` | Scopes | `scopes_list` | covered |
|
|
275
|
+
| `PUT /v1/scopes/members` | Scopes | `scope_set_members` | covered |
|
|
276
|
+
| `POST /v1/scopes/prune` | Scopes | `scopes_prune` | covered |
|
|
277
|
+
| `PUT /v1/scopes/tree` | Scopes | `scope_set_tree` | covered |
|
|
278
|
+
| `GET /v1/temporal/phrases` | Vocabularies and phrases | `temporal_phrases` | covered |
|
|
279
|
+
| `POST /v1/temporal/phrases` | Vocabularies and phrases | `add_temporal_phrase` | covered |
|
|
280
|
+
| `DELETE /v1/temporal/phrases/{name}` | Vocabularies and phrases | `delete_temporal_phrase` | covered |
|
|
281
|
+
| `GET /v1/understanding` | Layers | `understanding` | covered |
|
|
282
|
+
| `GET /v1/understanding/coverage` | Layers | `concepts_coverage` | covered |
|
|
283
|
+
| `POST /v1/understanding/synthesize` | Layers | `synthesize` | covered |
|
|
284
|
+
| `GET /v1/understanding/synthesize/{id}` | Layers | `synthesis_status` | covered |
|
|
285
|
+
| `GET /v1/understanding/{id}` | Layers | `concept` | covered |
|
|
286
|
+
| `GET /v1/understanding/{id}/history` | Layers | `understanding_history` | covered |
|
|
287
|
+
| `GET /v1/understanding/{id}/related` | Layers | `concept_related` | covered |
|
|
288
|
+
| `GET /v1/usage` | Service and policy | `usage` | covered |
|
|
289
|
+
| `GET /v1/vocabularies` | Vocabularies and phrases | `vocabularies` | covered |
|
|
290
|
+
| `POST /v1/vocabularies` | Vocabularies and phrases | `create_vocabulary` | covered |
|
|
291
|
+
| `DELETE /v1/vocabularies/{name}` | Vocabularies and phrases | `delete_vocabulary` | covered |
|
|
292
|
+
| `GET /v1/vocabularies/{name}` | Vocabularies and phrases | `vocabulary` | covered |
|
|
293
|
+
| `PATCH /v1/vocabularies/{name}` | Vocabularies and phrases | `update_vocabulary` | covered |
|
|
294
|
+
| `PUT /v1/vocabularies/{name}` | Vocabularies and phrases | `replace_vocabulary` | covered |
|
|
295
|
+
|
|
296
|
+
## Fields, headers and errors of 0.14.0
|
|
297
|
+
|
|
298
|
+
| Family | Where | SDK | Status |
|
|
299
|
+
|---|---|---|---|
|
|
300
|
+
| `consistency: {}` / `{"at_least": token}` (`consistency_tokens_v1`) | `/v1/recall`, `/v1/recall/stream`, `/v1/answer`, `/v1/compose`, `POST /v1/access/{check,explain,lookup/scopes,lookup/principals}` | `consistency=True` or `consistency=<token>` | covered |
|
|
301
|
+
| `?consistency=1` | `POST /v1/experience`, `/v1/experience/bulk`, `/v1/experiences`, `POST /v1/scopes`, `PUT /v1/scopes/{members,tree}`, `DELETE /v1/scopes` | `consistency=True` | covered on the write routes |
|
|
302
|
+
| `?at_least=<token>` | `GET /v1/events`, `/v1/events/{id}`, the fact, belief, episode and concept reads, `GET /v1/scopes`, `GET /v1/experience/status` | `at_least=<token>` | covered on the routes the SDK reaches |
|
|
303
|
+
| `consistency_token`, `consistency_reset`, `derived_through`, `access_restored_at` in responses | every route above | typed in `cortexdb.v1.models`; `ConsistencyTokens` records them per root | covered |
|
|
304
|
+
| `extra_scopes` (up to 40, `extra_scopes_40_v1`) | `/v1/recall`, `/v1/recall/stream`, `/v1/answer`, `/v1/compose` | `extra_scopes=[...]` (more than 40 is a `ValueError` before the call) | covered |
|
|
305
|
+
| `coverage: true` (`recall_coverage_v1`) | the same four routes | `coverage=True`; `Coverage` in `cortexdb.v1.models` | covered |
|
|
306
|
+
| `beliefs: "merged"` (`beliefs_merged_v1`) | the same four routes; `GET /v1/beliefs/why` `merges`, `scopes`, `scope` | `beliefs="merged"`; `belief_why(..., merges=, scopes=, scope=)` | covered |
|
|
307
|
+
| `mounts: "default"` (`recall_mounts_v1`) | the same four routes | `mounts="default"` | covered |
|
|
308
|
+
| `provenance` (`write_provenance_v1`) | `POST /v1/experience`, each `/v1/experience/bulk` and `/v1/experiences` item, `/v1/import/jsonl` lines, `POST /v1/beliefs` | `provenance=[...]` on `experience`, a bulk item's `"provenance"`, a JSONL line's own field, `create_belief(..., provenance=)` | covered |
|
|
309
|
+
| The read-free forget (`forget_by_key_v1`): `selector.idempotency_keys`, `selector.capture_keys` | `POST /v1/forget`, `/v1/forget/preview` | `idempotency_keys=[key or (key, caller)]`, `capture_keys=[label]` | covered |
|
|
310
|
+
| `subject: {email}` with `confirm: true` (`party_erasure_v1`) | `POST /v1/erasures`, `/v1/erasures/preview` | `erase(root, subject_email=..., confirm=True)`, `erasure_preview(root, subject_email=...)` | covered |
|
|
311
|
+
| Server-sent events: `plan`, `layer`, `context_block`, `token`, `citations`, `done`, `error` | `/v1/recall/stream`, `/v1/answer` with `stream: true`, `/v1/lifecycle/stream` | `recall_stream`, `answer_stream`, `lifecycle_stream` yield `StreamEvent`s (async iterators on `AsyncV1Client`); an `error` event raises | covered |
|
|
312
|
+
| `X-Cortex-Break-Glass: reason=…; ticket=…[; note=…]` (`operator_break_glass_v1`) | every operator-key request under `CORTEX_OPERATOR_DATA_READS=deny`, the tenant's or the deployment's | `client.break_glass(reason, ticket, note)`, `with_options(break_glass=...)`; `break_glass_header` checks the form | covered |
|
|
313
|
+
| `X-Cortex-Subject-Token` (`subject_token_shadow_v1`) | the trusted operator's requests | `with_options(subject_token=...)` | covered |
|
|
314
|
+
| Chain fields of a mint (`act`, `app`, `client`, `run`, `run_start`, `taint`; `mint_chain_v1`) and `tenant` | `POST /v1/auth/tokens` | `mint_token(...)`, `mint_agent_token`, `mint_app_token`; `check_mint` refuses locally what the server always refuses; `with_token` | covered |
|
|
315
|
+
| `purpose` (`read_purpose_v1`) | `/v1/recall`, `/v1/recall/stream`, `/v1/answer`, `/v1/compose`, `POST /v1/access/{check,explain}` | `purpose="..."` (`[a-z0-9_-]{1,64}`, a `ValueError` otherwise); a read refused for want of its purpose raises `PolicyDeniedError` with `reason == "purpose_required"` and `purpose` | covered |
|
|
316
|
+
| `?scope=` on the by-id reads (a scope that does not hold the row is 404) | `/v1/facts/{id}`, `/v1/beliefs/{why,history}`, `/v1/concepts/{id}[/history,/related]`, `/v1/understanding/{id}[/history,/related]`, `/v1/conflicts/{id}[/resolve]`, `/v1/lifecycle/event/{id}`, `/v1/admin/events/{id}/chunks`, `/v1/erasures/{id}[/receipt,/verify]` | `scope=` | covered |
|
|
317
|
+
| `include_vectors=true` | the layer listings and the fact and concept reads by id | `include_vectors=True` | covered |
|
|
318
|
+
| Paging: `cursor` / `next_cursor` / `has_more` (the events' `le1.` cursor newest first, the scope list, the layers) | `GET /v1/events`, `/v1/scopes/list`, `/v1/facts`, `/v1/beliefs`, `/v1/episodes`, `/v1/understanding`, `/v1/concepts` and the access listings | `cursor=`, `pages(method, ...)` | covered |
|
|
319
|
+
| `as_of` on the timeline; `?at_least=` and the token on `GET /v1/access/records`; `?consistency=1` on `POST /v1/publish` | those routes | `as_of=`, `at_least=`, `consistency=True` | covered |
|
|
320
|
+
| `idempotency_key` on a declared belief; `owner` on `POST /v1/scopes`; `scope` on a temporal phrase; `batch_id` on the lifecycle stream | those routes | `idempotency_key=`, `owner=`, `scope=`, `batch_id=` | covered |
|
|
321
|
+
| `events_under_legal_hold`, `derived_under_legal_hold`, and `matched` counting what a hold kept | `POST /v1/forget`, `/v1/forget/preview` | in the answer (documented on both methods) | covered |
|
|
322
|
+
| `in_band`, `in_band_parts` of a change set's preview; the operator key's in-band activation under `deny` (`BREAK_GLASS_REQUIRED` class `in_band`, `NOTICE_UNAVAILABLE`, `REGISTRY_STALE`) | `POST /v1/access/changes/{id}/preview`, `/activate` | `ChangeSetPreview` in `cortexdb.v1.models`; `client.break_glass(...).changeset_activate(...)` | covered |
|
|
323
|
+
| A change set's 202 while its evaluation runs (0.14.1; `Retry-After`, a preview's `{state: "previewing"}`) | `POST /v1/access/changes`, `/{id}/parts`, `/{id}/preview`, `/{id}/activate` | sent again after `Retry-After` for at most `wait` seconds (`CHANGESET_WAIT_SECONDS`), then `V1EvaluationPendingError`; `wait=0` returns `EvaluationPending` | covered |
|
|
324
|
+
| `operator_plane` of a tenant binding, its dry run's included (0.14.1) | `POST /v1/admin/access/tenant-binding` | `TenantBindingResponse` in `cortexdb.v1.models`; `admin_tenant_binding` | covered |
|
|
325
|
+
| `deployment_mode` (`tenant_access_settings_v1`) | `GET`, `PUT /v1/admin/access/tenant-settings`; the access report's `tenant_settings` | `TenantAccessSettings` in `cortexdb.v1.models` | covered |
|
|
326
|
+
| `resend` of a write status (`"no"` for a failed write, never re-sent; `"new_key"` gone) | `GET /v1/experience/status` | `write_status(...)`; `IndexingFailedError` says never to re-send | covered |
|
|
327
|
+
| An omitted `X-Cortex-Actor` (issuers-file `prefix`, `hash` and `directory` tokens; SCIM clients) | every route | `actor=None`, `with_options(actor=None)`; derived from a token's `sub` when no `actor` is given (none for a mapped subject) | covered |
|
|
328
|
+
| `view` left to the server (granular at an org tree's shared scope) | `/v1/recall`, `/v1/answer`, `/v1/compose` | `view=None` (the default) | covered |
|
|
329
|
+
| Typed errors with `retriable` and `details` | every route | one class per code (`cortexdb.v1.errors`, 363 codes from `scripts/error_codes.json`, built from the error catalog, `docs/API_REFERENCE_V1.md` §16) under status-family classes; documented `details` keys as properties; `retry_after` | covered |
|