cognimemo-client 0.9.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.
- cognimemo_client-0.9.2/.gitignore +42 -0
- cognimemo_client-0.9.2/.openapi-generator/FILES +194 -0
- cognimemo_client-0.9.2/.openapi-generator/VERSION +1 -0
- cognimemo_client-0.9.2/.openapi-generator-ignore +23 -0
- cognimemo_client-0.9.2/PKG-INFO +136 -0
- cognimemo_client-0.9.2/README.md +117 -0
- cognimemo_client-0.9.2/cognimemo_client/__init__.py +164 -0
- cognimemo_client-0.9.2/cognimemo_client/cognimemo_client.py +2257 -0
- cognimemo_client-0.9.2/cognimemo_client/py.typed +0 -0
- cognimemo_client-0.9.2/cognimemo_client_api/__init__.py +216 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/__init__.py +20 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/audit_api.py +1046 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/bank_templates_api.py +858 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/banks_api.py +4765 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/directives_api.py +1619 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/document_transfer_api.py +1236 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/documents_api.py +2215 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/entities_api.py +1254 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/files_api.py +361 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/knowledge_base_api.py +2434 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/llm_traces_api.py +834 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/memory_api.py +4536 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/mental_models_api.py +2811 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/monitoring_api.py +1263 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/operations_api.py +1595 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/spaces_api.py +1754 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api/webhooks_api.py +1569 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api_client.py +800 -0
- cognimemo_client-0.9.2/cognimemo_client_api/api_response.py +21 -0
- cognimemo_client-0.9.2/cognimemo_client_api/configuration.py +561 -0
- cognimemo_client-0.9.2/cognimemo_client_api/exceptions.py +199 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/__init__.py +184 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/add_background_request.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/async_operation_submit_response.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/audit_log_entry.py +135 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/audit_log_list_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/audit_log_stats_bucket.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/audit_log_stats_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/background_response.py +105 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_config_response.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_config_update.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_list_item.py +137 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_list_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_llm_health_response.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_profile_response.py +104 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_space_response.py +94 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_stats_response.py +127 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_template_config.py +416 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_template_directive.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_template_import_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_template_manifest.py +128 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/bank_template_mental_model.py +102 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/budget.py +38 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/cancel_operation_response.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/child_operation_status.py +110 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/chunk_data.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/chunk_include_options.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/chunk_response.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/clear_memory_observations_response.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/consolidation_request.py +92 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/consolidation_response.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_bank_request.py +216 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_directive_request.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_folder_request.py +94 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_knowledge_page_response.py +96 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_mental_model_request.py +107 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_mental_model_response.py +94 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_page_request.py +121 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/create_webhook_request.py +104 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/delete_document_response.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/delete_operation_response.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/delete_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/directive_list_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/directive_response.py +113 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/disposition_traits.py +92 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/document_export_submit_response.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/document_import_submit_response.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/document_response.py +143 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/dry_run_extract_request.py +168 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/dry_run_extraction_result.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_detail_response.py +122 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_graph_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_include_options.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_input.py +94 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_list_item.py +112 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_list_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_observation_response.py +94 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/entity_state_response.py +99 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/extracted_fact.py +105 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/features_info.py +107 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/file_retain_response.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/graph_data_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/http_validation_error.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/include_options.py +118 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_node.py +159 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_page_bundle_file.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_page_bundle_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_page_response.py +116 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_page_search_response.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_page_search_result.py +107 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/knowledge_tree_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/label_group_input.py +130 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/label_group_output.py +130 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/label_value.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/list_chunks_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/list_documents_response.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/list_memory_units_response.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/list_tags_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/liveness_response.py +98 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_call_trace.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_operation_health.py +112 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_request_entry.py +219 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_request_list_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_request_stats_bucket.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_request_stats_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/llm_request_token_sums.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/map_field_input.py +125 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/map_field_output.py +125 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/memories_timeseries_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/memory_item.py +185 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/memory_timeseries_bucket.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_delta_operations.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_dry_run_refresh_result.py +201 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_fact_counts.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_list_response.py +101 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_refresh_scope.py +127 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_refresh_scope_tag_groups_inner.py +166 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_refresh_trace.py +185 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_refresh_window.py +102 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_response.py +160 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_retraction.py +98 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_trace_tool_call.py +122 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_trigger_input.py +203 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_trigger_input_tag_groups_inner.py +166 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/mental_model_trigger_output.py +203 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/min_scores.py +113 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/model_not.py +166 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/not1.py +166 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/observation_scope.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/observation_scopes.py +144 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/observation_scopes_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/operation_progress.py +110 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/operation_response.py +166 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/operation_status_response.py +196 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/operations_list_response.py +103 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recall_request.py +172 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recall_response.py +179 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recall_result.py +177 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recall_scores.py +108 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recall_usage.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/recover_consolidation_response.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_based_on.py +115 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_directive.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_fact.py +122 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_include_options.py +98 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_llm_call.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_mental_model.py +96 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_request.py +175 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_response.py +127 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_tool_call.py +100 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reflect_trace.py +105 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/refresh_mental_model_operation_details.py +123 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/reprocess_document_response.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/retain_request.py +111 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/retain_response.py +118 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/retry_operation_response.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/source_facts_include_options.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/space_bank_item.py +109 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/space_bank_list_response.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/space_item.py +111 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/space_list_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_and_input.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_and_output.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_leaf.py +99 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_not_input.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_not_output.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_or_input.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_group_or_output.py +97 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tag_item.py +89 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/temporal_window.py +90 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/timestamp.py +145 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/token_usage.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/tool_calls_include_options.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_directive_request.py +120 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_disposition_request.py +91 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_document_request.py +92 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_document_response.py +87 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_memory_request.py +143 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_mental_model_request.py +125 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_node_request.py +131 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/update_webhook_request.py +124 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/upsert_space_request.py +92 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/validation_error.py +108 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/validation_error_loc_inner.py +138 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/version_response.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/webhook_delivery_list_response.py +102 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/webhook_delivery_response.py +151 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/webhook_http_config.py +93 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/webhook_list_response.py +95 -0
- cognimemo_client-0.9.2/cognimemo_client_api/models/webhook_response.py +127 -0
- cognimemo_client-0.9.2/cognimemo_client_api/py.typed +0 -0
- cognimemo_client-0.9.2/cognimemo_client_api/rest.py +235 -0
- cognimemo_client-0.9.2/openapi-generator-config.yaml +11 -0
- cognimemo_client-0.9.2/pyproject.toml +49 -0
- cognimemo_client-0.9.2/tests/__init__.py +1 -0
- cognimemo_client-0.9.2/tests/test_bank_config_update_payload.py +176 -0
- cognimemo_client-0.9.2/tests/test_directive_query_mapping.py +47 -0
- cognimemo_client-0.9.2/tests/test_export_documents_wrapper.py +113 -0
- cognimemo_client-0.9.2/tests/test_knowledge_base_mapping.py +150 -0
- cognimemo_client-0.9.2/tests/test_main_operations.py +897 -0
- cognimemo_client-0.9.2/tests/test_mental_model_query_mapping.py +102 -0
- cognimemo_client-0.9.2/tests/test_prompt_formatting.py +111 -0
- cognimemo_client-0.9.2/tests/test_recall_min_scores.py +57 -0
- cognimemo_client-0.9.2/tests/test_recall_prefer_observations.py +38 -0
- cognimemo_client-0.9.2/tests/test_recall_temporal_window.py +44 -0
- cognimemo_client-0.9.2/tests/test_reflect_include_tool_calls.py +88 -0
- cognimemo_client-0.9.2/tests/test_reflect_response_parsing.py +125 -0
- cognimemo_client-0.9.2/tests/test_retain_async_kwarg.py +208 -0
- cognimemo_client-0.9.2/tests/test_retain_request_async.py +42 -0
- cognimemo_client-0.9.2/tests/test_retain_resolve_entities_mapping.py +57 -0
- cognimemo_client-0.9.2/tests/test_version.py +57 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
|
|
9
|
+
# Virtual environments
|
|
10
|
+
.venv/
|
|
11
|
+
|
|
12
|
+
# Node
|
|
13
|
+
node_modules/
|
|
14
|
+
**/.next
|
|
15
|
+
|
|
16
|
+
# Environment
|
|
17
|
+
.env
|
|
18
|
+
.env.bak*
|
|
19
|
+
.env.*.bak
|
|
20
|
+
.env.local
|
|
21
|
+
|
|
22
|
+
# IDE
|
|
23
|
+
.idea/
|
|
24
|
+
.vscode/
|
|
25
|
+
*.swp
|
|
26
|
+
*.swo
|
|
27
|
+
|
|
28
|
+
# OS
|
|
29
|
+
.DS_Store
|
|
30
|
+
|
|
31
|
+
# Test
|
|
32
|
+
.pytest_cache/
|
|
33
|
+
.mypy_cache/
|
|
34
|
+
test-results/
|
|
35
|
+
|
|
36
|
+
# MCP / Claude
|
|
37
|
+
.mcp.json
|
|
38
|
+
.claude/*
|
|
39
|
+
|
|
40
|
+
# Docker
|
|
41
|
+
docker-compose.yml
|
|
42
|
+
docker-compose.override.yml
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
.openapi-generator-ignore
|
|
2
|
+
cognimemo_client_api/__init__.py
|
|
3
|
+
cognimemo_client_api/api/__init__.py
|
|
4
|
+
cognimemo_client_api/api/audit_api.py
|
|
5
|
+
cognimemo_client_api/api/bank_templates_api.py
|
|
6
|
+
cognimemo_client_api/api/banks_api.py
|
|
7
|
+
cognimemo_client_api/api/directives_api.py
|
|
8
|
+
cognimemo_client_api/api/document_transfer_api.py
|
|
9
|
+
cognimemo_client_api/api/documents_api.py
|
|
10
|
+
cognimemo_client_api/api/entities_api.py
|
|
11
|
+
cognimemo_client_api/api/files_api.py
|
|
12
|
+
cognimemo_client_api/api/knowledge_base_api.py
|
|
13
|
+
cognimemo_client_api/api/llm_traces_api.py
|
|
14
|
+
cognimemo_client_api/api/memory_api.py
|
|
15
|
+
cognimemo_client_api/api/mental_models_api.py
|
|
16
|
+
cognimemo_client_api/api/monitoring_api.py
|
|
17
|
+
cognimemo_client_api/api/operations_api.py
|
|
18
|
+
cognimemo_client_api/api/spaces_api.py
|
|
19
|
+
cognimemo_client_api/api/webhooks_api.py
|
|
20
|
+
cognimemo_client_api/api_client.py
|
|
21
|
+
cognimemo_client_api/api_response.py
|
|
22
|
+
cognimemo_client_api/configuration.py
|
|
23
|
+
cognimemo_client_api/exceptions.py
|
|
24
|
+
cognimemo_client_api/models/__init__.py
|
|
25
|
+
cognimemo_client_api/models/add_background_request.py
|
|
26
|
+
cognimemo_client_api/models/async_operation_submit_response.py
|
|
27
|
+
cognimemo_client_api/models/audit_log_entry.py
|
|
28
|
+
cognimemo_client_api/models/audit_log_list_response.py
|
|
29
|
+
cognimemo_client_api/models/audit_log_stats_bucket.py
|
|
30
|
+
cognimemo_client_api/models/audit_log_stats_response.py
|
|
31
|
+
cognimemo_client_api/models/background_response.py
|
|
32
|
+
cognimemo_client_api/models/bank_config_response.py
|
|
33
|
+
cognimemo_client_api/models/bank_config_update.py
|
|
34
|
+
cognimemo_client_api/models/bank_list_item.py
|
|
35
|
+
cognimemo_client_api/models/bank_list_response.py
|
|
36
|
+
cognimemo_client_api/models/bank_llm_health_response.py
|
|
37
|
+
cognimemo_client_api/models/bank_profile_response.py
|
|
38
|
+
cognimemo_client_api/models/bank_space_response.py
|
|
39
|
+
cognimemo_client_api/models/bank_stats_response.py
|
|
40
|
+
cognimemo_client_api/models/bank_template_config.py
|
|
41
|
+
cognimemo_client_api/models/bank_template_directive.py
|
|
42
|
+
cognimemo_client_api/models/bank_template_import_response.py
|
|
43
|
+
cognimemo_client_api/models/bank_template_manifest.py
|
|
44
|
+
cognimemo_client_api/models/bank_template_mental_model.py
|
|
45
|
+
cognimemo_client_api/models/budget.py
|
|
46
|
+
cognimemo_client_api/models/cancel_operation_response.py
|
|
47
|
+
cognimemo_client_api/models/child_operation_status.py
|
|
48
|
+
cognimemo_client_api/models/chunk_data.py
|
|
49
|
+
cognimemo_client_api/models/chunk_include_options.py
|
|
50
|
+
cognimemo_client_api/models/chunk_response.py
|
|
51
|
+
cognimemo_client_api/models/clear_memory_observations_response.py
|
|
52
|
+
cognimemo_client_api/models/consolidation_request.py
|
|
53
|
+
cognimemo_client_api/models/consolidation_response.py
|
|
54
|
+
cognimemo_client_api/models/create_bank_request.py
|
|
55
|
+
cognimemo_client_api/models/create_directive_request.py
|
|
56
|
+
cognimemo_client_api/models/create_folder_request.py
|
|
57
|
+
cognimemo_client_api/models/create_knowledge_page_response.py
|
|
58
|
+
cognimemo_client_api/models/create_mental_model_request.py
|
|
59
|
+
cognimemo_client_api/models/create_mental_model_response.py
|
|
60
|
+
cognimemo_client_api/models/create_page_request.py
|
|
61
|
+
cognimemo_client_api/models/create_webhook_request.py
|
|
62
|
+
cognimemo_client_api/models/delete_document_response.py
|
|
63
|
+
cognimemo_client_api/models/delete_operation_response.py
|
|
64
|
+
cognimemo_client_api/models/delete_response.py
|
|
65
|
+
cognimemo_client_api/models/directive_list_response.py
|
|
66
|
+
cognimemo_client_api/models/directive_response.py
|
|
67
|
+
cognimemo_client_api/models/disposition_traits.py
|
|
68
|
+
cognimemo_client_api/models/document_export_submit_response.py
|
|
69
|
+
cognimemo_client_api/models/document_import_submit_response.py
|
|
70
|
+
cognimemo_client_api/models/document_response.py
|
|
71
|
+
cognimemo_client_api/models/dry_run_extract_request.py
|
|
72
|
+
cognimemo_client_api/models/dry_run_extraction_result.py
|
|
73
|
+
cognimemo_client_api/models/entity_detail_response.py
|
|
74
|
+
cognimemo_client_api/models/entity_graph_response.py
|
|
75
|
+
cognimemo_client_api/models/entity_include_options.py
|
|
76
|
+
cognimemo_client_api/models/entity_input.py
|
|
77
|
+
cognimemo_client_api/models/entity_list_item.py
|
|
78
|
+
cognimemo_client_api/models/entity_list_response.py
|
|
79
|
+
cognimemo_client_api/models/entity_observation_response.py
|
|
80
|
+
cognimemo_client_api/models/entity_state_response.py
|
|
81
|
+
cognimemo_client_api/models/extracted_fact.py
|
|
82
|
+
cognimemo_client_api/models/features_info.py
|
|
83
|
+
cognimemo_client_api/models/file_retain_response.py
|
|
84
|
+
cognimemo_client_api/models/graph_data_response.py
|
|
85
|
+
cognimemo_client_api/models/http_validation_error.py
|
|
86
|
+
cognimemo_client_api/models/include_options.py
|
|
87
|
+
cognimemo_client_api/models/knowledge_node.py
|
|
88
|
+
cognimemo_client_api/models/knowledge_page_bundle_file.py
|
|
89
|
+
cognimemo_client_api/models/knowledge_page_bundle_response.py
|
|
90
|
+
cognimemo_client_api/models/knowledge_page_response.py
|
|
91
|
+
cognimemo_client_api/models/knowledge_page_search_response.py
|
|
92
|
+
cognimemo_client_api/models/knowledge_page_search_result.py
|
|
93
|
+
cognimemo_client_api/models/knowledge_tree_response.py
|
|
94
|
+
cognimemo_client_api/models/label_group_input.py
|
|
95
|
+
cognimemo_client_api/models/label_group_output.py
|
|
96
|
+
cognimemo_client_api/models/label_value.py
|
|
97
|
+
cognimemo_client_api/models/list_chunks_response.py
|
|
98
|
+
cognimemo_client_api/models/list_documents_response.py
|
|
99
|
+
cognimemo_client_api/models/list_memory_units_response.py
|
|
100
|
+
cognimemo_client_api/models/list_tags_response.py
|
|
101
|
+
cognimemo_client_api/models/liveness_response.py
|
|
102
|
+
cognimemo_client_api/models/llm_call_trace.py
|
|
103
|
+
cognimemo_client_api/models/llm_operation_health.py
|
|
104
|
+
cognimemo_client_api/models/llm_request_entry.py
|
|
105
|
+
cognimemo_client_api/models/llm_request_list_response.py
|
|
106
|
+
cognimemo_client_api/models/llm_request_stats_bucket.py
|
|
107
|
+
cognimemo_client_api/models/llm_request_stats_response.py
|
|
108
|
+
cognimemo_client_api/models/llm_request_token_sums.py
|
|
109
|
+
cognimemo_client_api/models/map_field_input.py
|
|
110
|
+
cognimemo_client_api/models/map_field_output.py
|
|
111
|
+
cognimemo_client_api/models/memories_timeseries_response.py
|
|
112
|
+
cognimemo_client_api/models/memory_item.py
|
|
113
|
+
cognimemo_client_api/models/memory_timeseries_bucket.py
|
|
114
|
+
cognimemo_client_api/models/mental_model_delta_operations.py
|
|
115
|
+
cognimemo_client_api/models/mental_model_dry_run_refresh_result.py
|
|
116
|
+
cognimemo_client_api/models/mental_model_fact_counts.py
|
|
117
|
+
cognimemo_client_api/models/mental_model_list_response.py
|
|
118
|
+
cognimemo_client_api/models/mental_model_refresh_scope.py
|
|
119
|
+
cognimemo_client_api/models/mental_model_refresh_scope_tag_groups_inner.py
|
|
120
|
+
cognimemo_client_api/models/mental_model_refresh_trace.py
|
|
121
|
+
cognimemo_client_api/models/mental_model_refresh_window.py
|
|
122
|
+
cognimemo_client_api/models/mental_model_response.py
|
|
123
|
+
cognimemo_client_api/models/mental_model_retraction.py
|
|
124
|
+
cognimemo_client_api/models/mental_model_trace_tool_call.py
|
|
125
|
+
cognimemo_client_api/models/mental_model_trigger_input.py
|
|
126
|
+
cognimemo_client_api/models/mental_model_trigger_input_tag_groups_inner.py
|
|
127
|
+
cognimemo_client_api/models/mental_model_trigger_output.py
|
|
128
|
+
cognimemo_client_api/models/min_scores.py
|
|
129
|
+
cognimemo_client_api/models/model_not.py
|
|
130
|
+
cognimemo_client_api/models/not1.py
|
|
131
|
+
cognimemo_client_api/models/observation_scope.py
|
|
132
|
+
cognimemo_client_api/models/observation_scopes.py
|
|
133
|
+
cognimemo_client_api/models/observation_scopes_response.py
|
|
134
|
+
cognimemo_client_api/models/operation_progress.py
|
|
135
|
+
cognimemo_client_api/models/operation_response.py
|
|
136
|
+
cognimemo_client_api/models/operation_status_response.py
|
|
137
|
+
cognimemo_client_api/models/operations_list_response.py
|
|
138
|
+
cognimemo_client_api/models/recall_request.py
|
|
139
|
+
cognimemo_client_api/models/recall_response.py
|
|
140
|
+
cognimemo_client_api/models/recall_result.py
|
|
141
|
+
cognimemo_client_api/models/recall_scores.py
|
|
142
|
+
cognimemo_client_api/models/recall_usage.py
|
|
143
|
+
cognimemo_client_api/models/recover_consolidation_response.py
|
|
144
|
+
cognimemo_client_api/models/reflect_based_on.py
|
|
145
|
+
cognimemo_client_api/models/reflect_directive.py
|
|
146
|
+
cognimemo_client_api/models/reflect_fact.py
|
|
147
|
+
cognimemo_client_api/models/reflect_include_options.py
|
|
148
|
+
cognimemo_client_api/models/reflect_llm_call.py
|
|
149
|
+
cognimemo_client_api/models/reflect_mental_model.py
|
|
150
|
+
cognimemo_client_api/models/reflect_request.py
|
|
151
|
+
cognimemo_client_api/models/reflect_response.py
|
|
152
|
+
cognimemo_client_api/models/reflect_tool_call.py
|
|
153
|
+
cognimemo_client_api/models/reflect_trace.py
|
|
154
|
+
cognimemo_client_api/models/refresh_mental_model_operation_details.py
|
|
155
|
+
cognimemo_client_api/models/reprocess_document_response.py
|
|
156
|
+
cognimemo_client_api/models/retain_request.py
|
|
157
|
+
cognimemo_client_api/models/retain_response.py
|
|
158
|
+
cognimemo_client_api/models/retry_operation_response.py
|
|
159
|
+
cognimemo_client_api/models/source_facts_include_options.py
|
|
160
|
+
cognimemo_client_api/models/space_bank_item.py
|
|
161
|
+
cognimemo_client_api/models/space_bank_list_response.py
|
|
162
|
+
cognimemo_client_api/models/space_item.py
|
|
163
|
+
cognimemo_client_api/models/space_list_response.py
|
|
164
|
+
cognimemo_client_api/models/tag_group_and_input.py
|
|
165
|
+
cognimemo_client_api/models/tag_group_and_output.py
|
|
166
|
+
cognimemo_client_api/models/tag_group_leaf.py
|
|
167
|
+
cognimemo_client_api/models/tag_group_not_input.py
|
|
168
|
+
cognimemo_client_api/models/tag_group_not_output.py
|
|
169
|
+
cognimemo_client_api/models/tag_group_or_input.py
|
|
170
|
+
cognimemo_client_api/models/tag_group_or_output.py
|
|
171
|
+
cognimemo_client_api/models/tag_item.py
|
|
172
|
+
cognimemo_client_api/models/temporal_window.py
|
|
173
|
+
cognimemo_client_api/models/timestamp.py
|
|
174
|
+
cognimemo_client_api/models/token_usage.py
|
|
175
|
+
cognimemo_client_api/models/tool_calls_include_options.py
|
|
176
|
+
cognimemo_client_api/models/update_directive_request.py
|
|
177
|
+
cognimemo_client_api/models/update_disposition_request.py
|
|
178
|
+
cognimemo_client_api/models/update_document_request.py
|
|
179
|
+
cognimemo_client_api/models/update_document_response.py
|
|
180
|
+
cognimemo_client_api/models/update_memory_request.py
|
|
181
|
+
cognimemo_client_api/models/update_mental_model_request.py
|
|
182
|
+
cognimemo_client_api/models/update_node_request.py
|
|
183
|
+
cognimemo_client_api/models/update_webhook_request.py
|
|
184
|
+
cognimemo_client_api/models/upsert_space_request.py
|
|
185
|
+
cognimemo_client_api/models/validation_error.py
|
|
186
|
+
cognimemo_client_api/models/validation_error_loc_inner.py
|
|
187
|
+
cognimemo_client_api/models/version_response.py
|
|
188
|
+
cognimemo_client_api/models/webhook_delivery_list_response.py
|
|
189
|
+
cognimemo_client_api/models/webhook_delivery_response.py
|
|
190
|
+
cognimemo_client_api/models/webhook_http_config.py
|
|
191
|
+
cognimemo_client_api/models/webhook_list_response.py
|
|
192
|
+
cognimemo_client_api/models/webhook_response.py
|
|
193
|
+
cognimemo_client_api/rest.py
|
|
194
|
+
cognimemo_client_api_README.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7.10.0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# OpenAPI Generator Ignore
|
|
2
|
+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
|
3
|
+
|
|
4
|
+
# Use this file to prevent files from being overwritten by the generator.
|
|
5
|
+
# The patterns follow closely to .gitignore or .dockerignore.
|
|
6
|
+
|
|
7
|
+
# As an example, the C# client generator defines ApiClient.cs.
|
|
8
|
+
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
|
9
|
+
#ApiClient.cs
|
|
10
|
+
|
|
11
|
+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
|
12
|
+
#foo/*/qux
|
|
13
|
+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
|
14
|
+
|
|
15
|
+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
|
16
|
+
#foo/**/qux
|
|
17
|
+
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
|
18
|
+
|
|
19
|
+
# You can also negate patterns with an exclamation (!).
|
|
20
|
+
# For example, you can ignore all files in a docs folder with the file extension .md:
|
|
21
|
+
#docs/*.md
|
|
22
|
+
# Then explicitly reverse the ignore rule for a single file:
|
|
23
|
+
#!docs/README.md
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: cognimemo-client
|
|
3
|
+
Version: 0.9.2
|
|
4
|
+
Summary: Python client for Cognimemo - Semantic memory system with personality-driven thinking
|
|
5
|
+
Author: Cognimemo Team
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Requires-Dist: aiohttp-retry>=2.8.3
|
|
9
|
+
Requires-Dist: aiohttp>=3.8.4
|
|
10
|
+
Requires-Dist: pydantic>=2
|
|
11
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
12
|
+
Requires-Dist: typing-extensions>=4.7.1
|
|
13
|
+
Requires-Dist: urllib3<3.0.0,>=2.1.0
|
|
14
|
+
Provides-Extra: test
|
|
15
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
|
|
16
|
+
Requires-Dist: pytest>=7.0.0; extra == 'test'
|
|
17
|
+
Requires-Dist: requests>=2.33.0; extra == 'test'
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# Cognimemo Python Client
|
|
21
|
+
|
|
22
|
+
`@cognimemo/client` — the official Python SDK for the Cognimemo memory layer.
|
|
23
|
+
Talks to the Cognimemo gateway with a per-project API key (Bearer auth).
|
|
24
|
+
|
|
25
|
+
> **Verified working (2026-08-30):** installs clean; every typed helper below and
|
|
26
|
+
> type-filtered / layered recall were smoke-tested against a live gateway. Recall
|
|
27
|
+
> round-trips through the full stack in ~70 ms.
|
|
28
|
+
|
|
29
|
+
## Install
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install cognimemo-client # published as @cognimemo/client
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Quickstart
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from cognimemo_client.cognimemo_client import Cognimemo
|
|
39
|
+
|
|
40
|
+
cm = Cognimemo(base_url="https://api.cognimemo.com", api_key="cmk_live_…")
|
|
41
|
+
|
|
42
|
+
cm.retain(bank_id="jane@acme.com", content="Jane ships on Fridays.")
|
|
43
|
+
res = cm.recall(bank_id="jane@acme.com", query="when does jane ship?")
|
|
44
|
+
for r in res.results:
|
|
45
|
+
print(r.type, r.text, r.occurred_start, r.scores)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Prefer `await cm.aretain(...)` / `await cm.arecall(...)` in async code; the
|
|
49
|
+
non-`a` methods are sync wrappers.
|
|
50
|
+
|
|
51
|
+
## Data model — space (org) → bank (person) → memories
|
|
52
|
+
|
|
53
|
+
Pass `space=` to `retain` / `recall` / `reflect` to scope a bank into its
|
|
54
|
+
organization (the bank is attached on first use), or manage spaces explicitly:
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
cm.create_space("acme", name="Acme Corp")
|
|
58
|
+
cm.retain(bank_id="jane@acme.com", content="Jane prefers dark mode", space="acme")
|
|
59
|
+
cm.recall(bank_id="jane@acme.com", query="what does jane prefer?", space="acme")
|
|
60
|
+
|
|
61
|
+
cm.list_spaces() # orgs with per-org person counts
|
|
62
|
+
cm.list_space_banks("acme") # people inside an org
|
|
63
|
+
cm.add_bank_to_space("acme", "raj@acme.com")
|
|
64
|
+
cm.remove_bank_from_space("acme", "raj@acme.com") # person + memories kept
|
|
65
|
+
cm.delete_space("acme") # people become unassigned, never deleted
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Typed memory blocks
|
|
69
|
+
|
|
70
|
+
Beyond auto-extracted facts/observations, store first-class blocks directly
|
|
71
|
+
(verbatim, no LLM rewrite) — recallable and filterable by type. The eight types
|
|
72
|
+
are `world`, `experience`, `observation`, `procedure`, `reasoning`,
|
|
73
|
+
`preference`, `correction`, `profile`.
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
cm.retain_preference("jane@acme.com", "For day-planning, use personal Gmail, never work mail.")
|
|
77
|
+
cm.retain_procedure("jane@acme.com", ["tag main", "sync Argo", "run sims", "promote"], rationale="never on Friday")
|
|
78
|
+
cm.retain_reasoning("jane@acme.com", "Chose gRPC over REST: p99 latency mattered more than tooling.")
|
|
79
|
+
cm.retain_correction("jane@acme.com", "No — use Xero, not QuickBooks.")
|
|
80
|
+
cm.update_profile("jane@acme.com", "Uses Xero + Slack; admin on the orion cluster.")
|
|
81
|
+
|
|
82
|
+
# any type directly:
|
|
83
|
+
cm.retain(bank_id="jane@acme.com", content="Acme HQ is in Berlin.", fact_type="world")
|
|
84
|
+
|
|
85
|
+
cm.recall(bank_id="jane@acme.com", query="how to deploy", types=["procedure"]) # type-filtered
|
|
86
|
+
cm.recall_layered("jane@acme.com", "policy", space="acme") # blend person + org (__org__:acme)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Typed helpers put the bank in verbatim (`chunks`) mode on first use so the block
|
|
90
|
+
is stored exactly as written.
|
|
91
|
+
|
|
92
|
+
## Layered / org memory
|
|
93
|
+
|
|
94
|
+
Each space has an implicit org bank at `__org__:{space}`. Retain shared knowledge
|
|
95
|
+
there, then blend it into a person's recall (person wins on conflict):
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
cm.retain(bank_id="__org__:acme", content="Deploy freeze every December.")
|
|
99
|
+
cm.recall(bank_id="jane@acme.com", query="deploy policy",
|
|
100
|
+
space="acme", include_org=True) # or cm.recall_layered(...)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Entities
|
|
104
|
+
|
|
105
|
+
Supply entities explicitly (the note-taker model — the agent knows them):
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
cm.retain(bank_id="jane@acme.com",
|
|
109
|
+
content="Jane joined the DeepMind team on Gemini.",
|
|
110
|
+
entities=[{"text": "Jane", "type": "PERSON"},
|
|
111
|
+
{"text": "DeepMind", "type": "ORG"},
|
|
112
|
+
{"text": "Gemini", "type": "PROJECT"}])
|
|
113
|
+
|
|
114
|
+
cm.entities.list_entities("jane@acme.com") # canonicalized, deduped, with mention_count
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
For verbatim ingest without supplied entities, enable no-LLM auto-extraction on
|
|
118
|
+
the bank (off by default): set config `retain_auto_entities: true` and it derives
|
|
119
|
+
proper-noun/acronym entities from the text.
|
|
120
|
+
|
|
121
|
+
## Recall response shape
|
|
122
|
+
|
|
123
|
+
`recall(...)` returns `RecallResponse` with `.results` (a list of `MemoryFact`)
|
|
124
|
+
and `.usage`. Each `MemoryFact` carries:
|
|
125
|
+
|
|
126
|
+
| field | meaning |
|
|
127
|
+
|---|---|
|
|
128
|
+
| `type` | the fact type (world … profile) |
|
|
129
|
+
| `text`, `context` | the memory body (decrypted transparently if encryption is on) |
|
|
130
|
+
| `occurred_start` / `occurred_end` / `mentioned_at` | temporal anchors |
|
|
131
|
+
| `entities` | linked entity names |
|
|
132
|
+
| `scores` | `{final, semantic, keyword}` |
|
|
133
|
+
| `metadata`, `tags`, `document_id`, `chunk_id` | provenance |
|
|
134
|
+
|
|
135
|
+
`.usage` reports `{tokens_used, max_tokens, truncated}` (and `org_blended` for
|
|
136
|
+
layered recall).
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Cognimemo Python Client
|
|
2
|
+
|
|
3
|
+
`@cognimemo/client` — the official Python SDK for the Cognimemo memory layer.
|
|
4
|
+
Talks to the Cognimemo gateway with a per-project API key (Bearer auth).
|
|
5
|
+
|
|
6
|
+
> **Verified working (2026-08-30):** installs clean; every typed helper below and
|
|
7
|
+
> type-filtered / layered recall were smoke-tested against a live gateway. Recall
|
|
8
|
+
> round-trips through the full stack in ~70 ms.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install cognimemo-client # published as @cognimemo/client
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Quickstart
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from cognimemo_client.cognimemo_client import Cognimemo
|
|
20
|
+
|
|
21
|
+
cm = Cognimemo(base_url="https://api.cognimemo.com", api_key="cmk_live_…")
|
|
22
|
+
|
|
23
|
+
cm.retain(bank_id="jane@acme.com", content="Jane ships on Fridays.")
|
|
24
|
+
res = cm.recall(bank_id="jane@acme.com", query="when does jane ship?")
|
|
25
|
+
for r in res.results:
|
|
26
|
+
print(r.type, r.text, r.occurred_start, r.scores)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Prefer `await cm.aretain(...)` / `await cm.arecall(...)` in async code; the
|
|
30
|
+
non-`a` methods are sync wrappers.
|
|
31
|
+
|
|
32
|
+
## Data model — space (org) → bank (person) → memories
|
|
33
|
+
|
|
34
|
+
Pass `space=` to `retain` / `recall` / `reflect` to scope a bank into its
|
|
35
|
+
organization (the bank is attached on first use), or manage spaces explicitly:
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
cm.create_space("acme", name="Acme Corp")
|
|
39
|
+
cm.retain(bank_id="jane@acme.com", content="Jane prefers dark mode", space="acme")
|
|
40
|
+
cm.recall(bank_id="jane@acme.com", query="what does jane prefer?", space="acme")
|
|
41
|
+
|
|
42
|
+
cm.list_spaces() # orgs with per-org person counts
|
|
43
|
+
cm.list_space_banks("acme") # people inside an org
|
|
44
|
+
cm.add_bank_to_space("acme", "raj@acme.com")
|
|
45
|
+
cm.remove_bank_from_space("acme", "raj@acme.com") # person + memories kept
|
|
46
|
+
cm.delete_space("acme") # people become unassigned, never deleted
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Typed memory blocks
|
|
50
|
+
|
|
51
|
+
Beyond auto-extracted facts/observations, store first-class blocks directly
|
|
52
|
+
(verbatim, no LLM rewrite) — recallable and filterable by type. The eight types
|
|
53
|
+
are `world`, `experience`, `observation`, `procedure`, `reasoning`,
|
|
54
|
+
`preference`, `correction`, `profile`.
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
cm.retain_preference("jane@acme.com", "For day-planning, use personal Gmail, never work mail.")
|
|
58
|
+
cm.retain_procedure("jane@acme.com", ["tag main", "sync Argo", "run sims", "promote"], rationale="never on Friday")
|
|
59
|
+
cm.retain_reasoning("jane@acme.com", "Chose gRPC over REST: p99 latency mattered more than tooling.")
|
|
60
|
+
cm.retain_correction("jane@acme.com", "No — use Xero, not QuickBooks.")
|
|
61
|
+
cm.update_profile("jane@acme.com", "Uses Xero + Slack; admin on the orion cluster.")
|
|
62
|
+
|
|
63
|
+
# any type directly:
|
|
64
|
+
cm.retain(bank_id="jane@acme.com", content="Acme HQ is in Berlin.", fact_type="world")
|
|
65
|
+
|
|
66
|
+
cm.recall(bank_id="jane@acme.com", query="how to deploy", types=["procedure"]) # type-filtered
|
|
67
|
+
cm.recall_layered("jane@acme.com", "policy", space="acme") # blend person + org (__org__:acme)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Typed helpers put the bank in verbatim (`chunks`) mode on first use so the block
|
|
71
|
+
is stored exactly as written.
|
|
72
|
+
|
|
73
|
+
## Layered / org memory
|
|
74
|
+
|
|
75
|
+
Each space has an implicit org bank at `__org__:{space}`. Retain shared knowledge
|
|
76
|
+
there, then blend it into a person's recall (person wins on conflict):
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
cm.retain(bank_id="__org__:acme", content="Deploy freeze every December.")
|
|
80
|
+
cm.recall(bank_id="jane@acme.com", query="deploy policy",
|
|
81
|
+
space="acme", include_org=True) # or cm.recall_layered(...)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Entities
|
|
85
|
+
|
|
86
|
+
Supply entities explicitly (the note-taker model — the agent knows them):
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
cm.retain(bank_id="jane@acme.com",
|
|
90
|
+
content="Jane joined the DeepMind team on Gemini.",
|
|
91
|
+
entities=[{"text": "Jane", "type": "PERSON"},
|
|
92
|
+
{"text": "DeepMind", "type": "ORG"},
|
|
93
|
+
{"text": "Gemini", "type": "PROJECT"}])
|
|
94
|
+
|
|
95
|
+
cm.entities.list_entities("jane@acme.com") # canonicalized, deduped, with mention_count
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
For verbatim ingest without supplied entities, enable no-LLM auto-extraction on
|
|
99
|
+
the bank (off by default): set config `retain_auto_entities: true` and it derives
|
|
100
|
+
proper-noun/acronym entities from the text.
|
|
101
|
+
|
|
102
|
+
## Recall response shape
|
|
103
|
+
|
|
104
|
+
`recall(...)` returns `RecallResponse` with `.results` (a list of `MemoryFact`)
|
|
105
|
+
and `.usage`. Each `MemoryFact` carries:
|
|
106
|
+
|
|
107
|
+
| field | meaning |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `type` | the fact type (world … profile) |
|
|
110
|
+
| `text`, `context` | the memory body (decrypted transparently if encryption is on) |
|
|
111
|
+
| `occurred_start` / `occurred_end` / `mentioned_at` | temporal anchors |
|
|
112
|
+
| `entities` | linked entity names |
|
|
113
|
+
| `scores` | `{final, semantic, keyword}` |
|
|
114
|
+
| `metadata`, `tags`, `document_id`, `chunk_id` | provenance |
|
|
115
|
+
|
|
116
|
+
`.usage` reports `{tokens_used, max_tokens, truncated}` (and `org_blended` for
|
|
117
|
+
layered recall).
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Cognimemo Client - Clean, pythonic wrapper for the Cognimemo API.
|
|
3
|
+
|
|
4
|
+
This package provides a high-level ``Cognimemo`` class with simplified methods
|
|
5
|
+
for the most common operations (retain, recall, reflect, banks, mental models,
|
|
6
|
+
directives).
|
|
7
|
+
|
|
8
|
+
For operations not available as convenience methods — such as documents,
|
|
9
|
+
entities, async operations, webhooks, and monitoring — use the low-level API
|
|
10
|
+
clients exposed as properties on the ``Cognimemo`` instance (e.g.
|
|
11
|
+
``client.documents``, ``client.entities``, ``client.operations``).
|
|
12
|
+
All low-level methods are async.
|
|
13
|
+
|
|
14
|
+
Quick start::
|
|
15
|
+
|
|
16
|
+
from cognimemo_client import Cognimemo
|
|
17
|
+
|
|
18
|
+
client = Cognimemo(base_url="http://localhost:8888")
|
|
19
|
+
|
|
20
|
+
# Store a memory
|
|
21
|
+
client.retain(bank_id="alice", content="Alice loves AI")
|
|
22
|
+
|
|
23
|
+
# Search memories
|
|
24
|
+
response = client.recall(bank_id="alice", query="What does Alice like?")
|
|
25
|
+
for r in response.results:
|
|
26
|
+
print(r.text)
|
|
27
|
+
|
|
28
|
+
# Generate contextual answer
|
|
29
|
+
answer = client.reflect(bank_id="alice", query="What are my interests?")
|
|
30
|
+
print(answer.text)
|
|
31
|
+
|
|
32
|
+
Low-level API access::
|
|
33
|
+
|
|
34
|
+
import asyncio
|
|
35
|
+
|
|
36
|
+
# List documents
|
|
37
|
+
docs = asyncio.run(client.documents.list_documents("alice"))
|
|
38
|
+
|
|
39
|
+
# Check operation status
|
|
40
|
+
status = asyncio.run(client.operations.get_operation_status("alice", "op-id"))
|
|
41
|
+
|
|
42
|
+
# List entities
|
|
43
|
+
entities = asyncio.run(client.entities.list_entities("alice"))
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
from cognimemo_client_api.models.bank_profile_response import BankProfileResponse
|
|
47
|
+
from cognimemo_client_api.models.disposition_traits import DispositionTraits
|
|
48
|
+
from cognimemo_client_api.models.list_memory_units_response import ListMemoryUnitsResponse
|
|
49
|
+
from cognimemo_client_api.models.recall_response import RecallResponse as _RecallResponse
|
|
50
|
+
from cognimemo_client_api.models.recall_result import RecallResult as _RecallResult
|
|
51
|
+
from cognimemo_client_api.models.reflect_fact import ReflectFact
|
|
52
|
+
from cognimemo_client_api.models.reflect_response import ReflectResponse
|
|
53
|
+
|
|
54
|
+
# Re-export response types for convenient access
|
|
55
|
+
from cognimemo_client_api.models.retain_response import RetainResponse
|
|
56
|
+
from cognimemo_client_api.models.version_response import VersionResponse
|
|
57
|
+
|
|
58
|
+
from .cognimemo_client import Cognimemo
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# Add cleaner __repr__ and __iter__ for REPL usability
|
|
62
|
+
def _recall_result_repr(self):
|
|
63
|
+
text_preview = self.text[:80] + "..." if len(self.text) > 80 else self.text
|
|
64
|
+
return f"RecallResult(id='{self.id[:8]}...', type='{self.type}', text='{text_preview}')"
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _recall_response_repr(self):
|
|
68
|
+
count = len(self.results) if self.results else 0
|
|
69
|
+
extras = []
|
|
70
|
+
if self.trace:
|
|
71
|
+
extras.append("trace=True")
|
|
72
|
+
if self.entities:
|
|
73
|
+
extras.append(f"entities={len(self.entities)}")
|
|
74
|
+
if self.chunks:
|
|
75
|
+
extras.append(f"chunks={len(self.chunks)}")
|
|
76
|
+
extras_str = ", " + ", ".join(extras) if extras else ""
|
|
77
|
+
return f"RecallResponse({count} results{extras_str})"
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _recall_response_iter(self):
|
|
81
|
+
"""Iterate directly over results for convenience."""
|
|
82
|
+
return iter(self.results or [])
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def _recall_response_len(self):
|
|
86
|
+
"""Return number of results."""
|
|
87
|
+
return len(self.results) if self.results else 0
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _recall_response_getitem(self, index):
|
|
91
|
+
"""Access results by index."""
|
|
92
|
+
return self.results[index]
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def _recall_response_to_prompt_string(self) -> str:
|
|
96
|
+
"""Serialize the recall response to a string suitable for LLM prompts.
|
|
97
|
+
|
|
98
|
+
Builds a prompt containing:
|
|
99
|
+
- Facts: each result as a JSON object with ``text``, ``context``, and
|
|
100
|
+
temporal fields (``occurred_start``, ``occurred_end``, ``mentioned_at``).
|
|
101
|
+
If the result has a ``chunk_id`` matching a chunk in the response, the
|
|
102
|
+
chunk text is included as ``source_chunk``.
|
|
103
|
+
- Entities: entity summaries from observations, formatted as sections.
|
|
104
|
+
|
|
105
|
+
This mirrors the format used internally by Cognimemo's reflect operation.
|
|
106
|
+
"""
|
|
107
|
+
import json
|
|
108
|
+
|
|
109
|
+
chunks_map = self.chunks or {}
|
|
110
|
+
sections: list[str] = []
|
|
111
|
+
|
|
112
|
+
# Facts
|
|
113
|
+
formatted_facts: list[dict] = []
|
|
114
|
+
for result in self.results or []:
|
|
115
|
+
fact_obj: dict = {"text": result.text}
|
|
116
|
+
if result.context:
|
|
117
|
+
fact_obj["context"] = result.context
|
|
118
|
+
for field in ("occurred_start", "occurred_end", "mentioned_at"):
|
|
119
|
+
value = getattr(result, field, None)
|
|
120
|
+
if value:
|
|
121
|
+
fact_obj[field] = value
|
|
122
|
+
if result.chunk_id and result.chunk_id in chunks_map:
|
|
123
|
+
fact_obj["source_chunk"] = chunks_map[result.chunk_id].text
|
|
124
|
+
formatted_facts.append(fact_obj)
|
|
125
|
+
sections.append("FACTS:\n" + json.dumps(formatted_facts, indent=2))
|
|
126
|
+
|
|
127
|
+
# Entities
|
|
128
|
+
if self.entities:
|
|
129
|
+
entity_parts: list[str] = []
|
|
130
|
+
for name, state in self.entities.items():
|
|
131
|
+
if state.observations:
|
|
132
|
+
obs_text = state.observations[0].text
|
|
133
|
+
entity_parts.append(f"## {name}\n{obs_text}")
|
|
134
|
+
if entity_parts:
|
|
135
|
+
sections.append("ENTITIES:\n" + "\n\n".join(entity_parts))
|
|
136
|
+
|
|
137
|
+
return "\n\n".join(sections)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
_RecallResponse.to_prompt_string = _recall_response_to_prompt_string
|
|
141
|
+
|
|
142
|
+
_RecallResult.__repr__ = _recall_result_repr
|
|
143
|
+
_RecallResponse.__repr__ = _recall_response_repr
|
|
144
|
+
_RecallResponse.__iter__ = _recall_response_iter
|
|
145
|
+
_RecallResponse.__len__ = _recall_response_len
|
|
146
|
+
_RecallResponse.__getitem__ = _recall_response_getitem
|
|
147
|
+
|
|
148
|
+
# Re-export with patched repr
|
|
149
|
+
RecallResult = _RecallResult
|
|
150
|
+
RecallResponse = _RecallResponse
|
|
151
|
+
|
|
152
|
+
__all__ = [
|
|
153
|
+
"Cognimemo",
|
|
154
|
+
# Response types
|
|
155
|
+
"RetainResponse",
|
|
156
|
+
"RecallResponse",
|
|
157
|
+
"RecallResult",
|
|
158
|
+
"ReflectResponse",
|
|
159
|
+
"ReflectFact",
|
|
160
|
+
"ListMemoryUnitsResponse",
|
|
161
|
+
"BankProfileResponse",
|
|
162
|
+
"DispositionTraits",
|
|
163
|
+
"VersionResponse",
|
|
164
|
+
]
|