cognimemo-client 0.9.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. cognimemo_client/__init__.py +164 -0
  2. cognimemo_client/cognimemo_client.py +2257 -0
  3. cognimemo_client/py.typed +0 -0
  4. cognimemo_client-0.9.2.dist-info/METADATA +136 -0
  5. cognimemo_client-0.9.2.dist-info/RECORD +199 -0
  6. cognimemo_client-0.9.2.dist-info/WHEEL +4 -0
  7. cognimemo_client_api/__init__.py +216 -0
  8. cognimemo_client_api/api/__init__.py +20 -0
  9. cognimemo_client_api/api/audit_api.py +1046 -0
  10. cognimemo_client_api/api/bank_templates_api.py +858 -0
  11. cognimemo_client_api/api/banks_api.py +4765 -0
  12. cognimemo_client_api/api/directives_api.py +1619 -0
  13. cognimemo_client_api/api/document_transfer_api.py +1236 -0
  14. cognimemo_client_api/api/documents_api.py +2215 -0
  15. cognimemo_client_api/api/entities_api.py +1254 -0
  16. cognimemo_client_api/api/files_api.py +361 -0
  17. cognimemo_client_api/api/knowledge_base_api.py +2434 -0
  18. cognimemo_client_api/api/llm_traces_api.py +834 -0
  19. cognimemo_client_api/api/memory_api.py +4536 -0
  20. cognimemo_client_api/api/mental_models_api.py +2811 -0
  21. cognimemo_client_api/api/monitoring_api.py +1263 -0
  22. cognimemo_client_api/api/operations_api.py +1595 -0
  23. cognimemo_client_api/api/spaces_api.py +1754 -0
  24. cognimemo_client_api/api/webhooks_api.py +1569 -0
  25. cognimemo_client_api/api_client.py +800 -0
  26. cognimemo_client_api/api_response.py +21 -0
  27. cognimemo_client_api/configuration.py +561 -0
  28. cognimemo_client_api/exceptions.py +199 -0
  29. cognimemo_client_api/models/__init__.py +184 -0
  30. cognimemo_client_api/models/add_background_request.py +89 -0
  31. cognimemo_client_api/models/async_operation_submit_response.py +89 -0
  32. cognimemo_client_api/models/audit_log_entry.py +135 -0
  33. cognimemo_client_api/models/audit_log_list_response.py +103 -0
  34. cognimemo_client_api/models/audit_log_stats_bucket.py +91 -0
  35. cognimemo_client_api/models/audit_log_stats_response.py +103 -0
  36. cognimemo_client_api/models/background_response.py +105 -0
  37. cognimemo_client_api/models/bank_config_response.py +91 -0
  38. cognimemo_client_api/models/bank_config_update.py +87 -0
  39. cognimemo_client_api/models/bank_list_item.py +137 -0
  40. cognimemo_client_api/models/bank_list_response.py +101 -0
  41. cognimemo_client_api/models/bank_llm_health_response.py +97 -0
  42. cognimemo_client_api/models/bank_profile_response.py +104 -0
  43. cognimemo_client_api/models/bank_space_response.py +94 -0
  44. cognimemo_client_api/models/bank_stats_response.py +127 -0
  45. cognimemo_client_api/models/bank_template_config.py +416 -0
  46. cognimemo_client_api/models/bank_template_directive.py +95 -0
  47. cognimemo_client_api/models/bank_template_import_response.py +101 -0
  48. cognimemo_client_api/models/bank_template_manifest.py +128 -0
  49. cognimemo_client_api/models/bank_template_mental_model.py +102 -0
  50. cognimemo_client_api/models/budget.py +38 -0
  51. cognimemo_client_api/models/cancel_operation_response.py +91 -0
  52. cognimemo_client_api/models/child_operation_status.py +110 -0
  53. cognimemo_client_api/models/chunk_data.py +93 -0
  54. cognimemo_client_api/models/chunk_include_options.py +87 -0
  55. cognimemo_client_api/models/chunk_response.py +97 -0
  56. cognimemo_client_api/models/clear_memory_observations_response.py +87 -0
  57. cognimemo_client_api/models/consolidation_request.py +92 -0
  58. cognimemo_client_api/models/consolidation_response.py +89 -0
  59. cognimemo_client_api/models/create_bank_request.py +216 -0
  60. cognimemo_client_api/models/create_directive_request.py +95 -0
  61. cognimemo_client_api/models/create_folder_request.py +94 -0
  62. cognimemo_client_api/models/create_knowledge_page_response.py +96 -0
  63. cognimemo_client_api/models/create_mental_model_request.py +107 -0
  64. cognimemo_client_api/models/create_mental_model_response.py +94 -0
  65. cognimemo_client_api/models/create_page_request.py +121 -0
  66. cognimemo_client_api/models/create_webhook_request.py +104 -0
  67. cognimemo_client_api/models/delete_document_response.py +93 -0
  68. cognimemo_client_api/models/delete_operation_response.py +91 -0
  69. cognimemo_client_api/models/delete_response.py +101 -0
  70. cognimemo_client_api/models/directive_list_response.py +101 -0
  71. cognimemo_client_api/models/directive_response.py +113 -0
  72. cognimemo_client_api/models/disposition_traits.py +92 -0
  73. cognimemo_client_api/models/document_export_submit_response.py +89 -0
  74. cognimemo_client_api/models/document_import_submit_response.py +89 -0
  75. cognimemo_client_api/models/document_response.py +143 -0
  76. cognimemo_client_api/models/dry_run_extract_request.py +168 -0
  77. cognimemo_client_api/models/dry_run_extraction_result.py +101 -0
  78. cognimemo_client_api/models/entity_detail_response.py +122 -0
  79. cognimemo_client_api/models/entity_graph_response.py +95 -0
  80. cognimemo_client_api/models/entity_include_options.py +87 -0
  81. cognimemo_client_api/models/entity_input.py +94 -0
  82. cognimemo_client_api/models/entity_list_item.py +112 -0
  83. cognimemo_client_api/models/entity_list_response.py +101 -0
  84. cognimemo_client_api/models/entity_observation_response.py +94 -0
  85. cognimemo_client_api/models/entity_state_response.py +99 -0
  86. cognimemo_client_api/models/extracted_fact.py +105 -0
  87. cognimemo_client_api/models/features_info.py +107 -0
  88. cognimemo_client_api/models/file_retain_response.py +87 -0
  89. cognimemo_client_api/models/graph_data_response.py +95 -0
  90. cognimemo_client_api/models/http_validation_error.py +95 -0
  91. cognimemo_client_api/models/include_options.py +118 -0
  92. cognimemo_client_api/models/knowledge_node.py +159 -0
  93. cognimemo_client_api/models/knowledge_page_bundle_file.py +89 -0
  94. cognimemo_client_api/models/knowledge_page_bundle_response.py +95 -0
  95. cognimemo_client_api/models/knowledge_page_response.py +116 -0
  96. cognimemo_client_api/models/knowledge_page_search_response.py +97 -0
  97. cognimemo_client_api/models/knowledge_page_search_result.py +107 -0
  98. cognimemo_client_api/models/knowledge_tree_response.py +95 -0
  99. cognimemo_client_api/models/label_group_input.py +130 -0
  100. cognimemo_client_api/models/label_group_output.py +130 -0
  101. cognimemo_client_api/models/label_value.py +89 -0
  102. cognimemo_client_api/models/list_chunks_response.py +101 -0
  103. cognimemo_client_api/models/list_documents_response.py +93 -0
  104. cognimemo_client_api/models/list_memory_units_response.py +93 -0
  105. cognimemo_client_api/models/list_tags_response.py +101 -0
  106. cognimemo_client_api/models/liveness_response.py +98 -0
  107. cognimemo_client_api/models/llm_call_trace.py +89 -0
  108. cognimemo_client_api/models/llm_operation_health.py +112 -0
  109. cognimemo_client_api/models/llm_request_entry.py +219 -0
  110. cognimemo_client_api/models/llm_request_list_response.py +103 -0
  111. cognimemo_client_api/models/llm_request_stats_bucket.py +97 -0
  112. cognimemo_client_api/models/llm_request_stats_response.py +103 -0
  113. cognimemo_client_api/models/llm_request_token_sums.py +93 -0
  114. cognimemo_client_api/models/map_field_input.py +125 -0
  115. cognimemo_client_api/models/map_field_output.py +125 -0
  116. cognimemo_client_api/models/memories_timeseries_response.py +103 -0
  117. cognimemo_client_api/models/memory_item.py +185 -0
  118. cognimemo_client_api/models/memory_timeseries_bucket.py +93 -0
  119. cognimemo_client_api/models/mental_model_delta_operations.py +89 -0
  120. cognimemo_client_api/models/mental_model_dry_run_refresh_result.py +201 -0
  121. cognimemo_client_api/models/mental_model_fact_counts.py +89 -0
  122. cognimemo_client_api/models/mental_model_list_response.py +101 -0
  123. cognimemo_client_api/models/mental_model_refresh_scope.py +127 -0
  124. cognimemo_client_api/models/mental_model_refresh_scope_tag_groups_inner.py +166 -0
  125. cognimemo_client_api/models/mental_model_refresh_trace.py +185 -0
  126. cognimemo_client_api/models/mental_model_refresh_window.py +102 -0
  127. cognimemo_client_api/models/mental_model_response.py +160 -0
  128. cognimemo_client_api/models/mental_model_retraction.py +98 -0
  129. cognimemo_client_api/models/mental_model_trace_tool_call.py +122 -0
  130. cognimemo_client_api/models/mental_model_trigger_input.py +203 -0
  131. cognimemo_client_api/models/mental_model_trigger_input_tag_groups_inner.py +166 -0
  132. cognimemo_client_api/models/mental_model_trigger_output.py +203 -0
  133. cognimemo_client_api/models/min_scores.py +113 -0
  134. cognimemo_client_api/models/model_not.py +166 -0
  135. cognimemo_client_api/models/not1.py +166 -0
  136. cognimemo_client_api/models/observation_scope.py +89 -0
  137. cognimemo_client_api/models/observation_scopes.py +144 -0
  138. cognimemo_client_api/models/observation_scopes_response.py +95 -0
  139. cognimemo_client_api/models/operation_progress.py +110 -0
  140. cognimemo_client_api/models/operation_response.py +166 -0
  141. cognimemo_client_api/models/operation_status_response.py +196 -0
  142. cognimemo_client_api/models/operations_list_response.py +103 -0
  143. cognimemo_client_api/models/recall_request.py +172 -0
  144. cognimemo_client_api/models/recall_response.py +179 -0
  145. cognimemo_client_api/models/recall_result.py +177 -0
  146. cognimemo_client_api/models/recall_scores.py +108 -0
  147. cognimemo_client_api/models/recall_usage.py +93 -0
  148. cognimemo_client_api/models/recover_consolidation_response.py +87 -0
  149. cognimemo_client_api/models/reflect_based_on.py +115 -0
  150. cognimemo_client_api/models/reflect_directive.py +91 -0
  151. cognimemo_client_api/models/reflect_fact.py +122 -0
  152. cognimemo_client_api/models/reflect_include_options.py +98 -0
  153. cognimemo_client_api/models/reflect_llm_call.py +89 -0
  154. cognimemo_client_api/models/reflect_mental_model.py +96 -0
  155. cognimemo_client_api/models/reflect_request.py +175 -0
  156. cognimemo_client_api/models/reflect_response.py +127 -0
  157. cognimemo_client_api/models/reflect_tool_call.py +100 -0
  158. cognimemo_client_api/models/reflect_trace.py +105 -0
  159. cognimemo_client_api/models/refresh_mental_model_operation_details.py +123 -0
  160. cognimemo_client_api/models/reprocess_document_response.py +91 -0
  161. cognimemo_client_api/models/retain_request.py +111 -0
  162. cognimemo_client_api/models/retain_response.py +118 -0
  163. cognimemo_client_api/models/retry_operation_response.py +91 -0
  164. cognimemo_client_api/models/source_facts_include_options.py +89 -0
  165. cognimemo_client_api/models/space_bank_item.py +109 -0
  166. cognimemo_client_api/models/space_bank_list_response.py +97 -0
  167. cognimemo_client_api/models/space_item.py +111 -0
  168. cognimemo_client_api/models/space_list_response.py +95 -0
  169. cognimemo_client_api/models/tag_group_and_input.py +97 -0
  170. cognimemo_client_api/models/tag_group_and_output.py +97 -0
  171. cognimemo_client_api/models/tag_group_leaf.py +99 -0
  172. cognimemo_client_api/models/tag_group_not_input.py +93 -0
  173. cognimemo_client_api/models/tag_group_not_output.py +93 -0
  174. cognimemo_client_api/models/tag_group_or_input.py +97 -0
  175. cognimemo_client_api/models/tag_group_or_output.py +97 -0
  176. cognimemo_client_api/models/tag_item.py +89 -0
  177. cognimemo_client_api/models/temporal_window.py +90 -0
  178. cognimemo_client_api/models/timestamp.py +145 -0
  179. cognimemo_client_api/models/token_usage.py +95 -0
  180. cognimemo_client_api/models/tool_calls_include_options.py +87 -0
  181. cognimemo_client_api/models/update_directive_request.py +120 -0
  182. cognimemo_client_api/models/update_disposition_request.py +91 -0
  183. cognimemo_client_api/models/update_document_request.py +92 -0
  184. cognimemo_client_api/models/update_document_response.py +87 -0
  185. cognimemo_client_api/models/update_memory_request.py +143 -0
  186. cognimemo_client_api/models/update_mental_model_request.py +125 -0
  187. cognimemo_client_api/models/update_node_request.py +131 -0
  188. cognimemo_client_api/models/update_webhook_request.py +124 -0
  189. cognimemo_client_api/models/upsert_space_request.py +92 -0
  190. cognimemo_client_api/models/validation_error.py +108 -0
  191. cognimemo_client_api/models/validation_error_loc_inner.py +138 -0
  192. cognimemo_client_api/models/version_response.py +93 -0
  193. cognimemo_client_api/models/webhook_delivery_list_response.py +102 -0
  194. cognimemo_client_api/models/webhook_delivery_response.py +151 -0
  195. cognimemo_client_api/models/webhook_http_config.py +93 -0
  196. cognimemo_client_api/models/webhook_list_response.py +95 -0
  197. cognimemo_client_api/models/webhook_response.py +127 -0
  198. cognimemo_client_api/py.typed +0 -0
  199. cognimemo_client_api/rest.py +235 -0
@@ -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
+ ]