hindsight-client 0.0.13__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 (134) hide show
  1. hindsight_client/__init__.py +26 -0
  2. hindsight_client/hindsight_client.py +432 -0
  3. hindsight_client-0.0.13.dist-info/METADATA +56 -0
  4. hindsight_client-0.0.13.dist-info/RECORD +134 -0
  5. hindsight_client-0.0.13.dist-info/WHEEL +4 -0
  6. hindsight_client_api/__init__.py +126 -0
  7. hindsight_client_api/api/__init__.py +6 -0
  8. hindsight_client_api/api/default_api.py +5976 -0
  9. hindsight_client_api/api/monitoring_api.py +281 -0
  10. hindsight_client_api/api_client.py +807 -0
  11. hindsight_client_api/api_response.py +21 -0
  12. hindsight_client_api/configuration.py +572 -0
  13. hindsight_client_api/docs/AddBackgroundRequest.md +31 -0
  14. hindsight_client_api/docs/BackgroundResponse.md +31 -0
  15. hindsight_client_api/docs/BankListItem.md +35 -0
  16. hindsight_client_api/docs/BankListResponse.md +30 -0
  17. hindsight_client_api/docs/BankProfileResponse.md +33 -0
  18. hindsight_client_api/docs/Budget.md +15 -0
  19. hindsight_client_api/docs/ChunkData.md +33 -0
  20. hindsight_client_api/docs/ChunkIncludeOptions.md +30 -0
  21. hindsight_client_api/docs/ChunkResponse.md +35 -0
  22. hindsight_client_api/docs/CreateBankRequest.md +32 -0
  23. hindsight_client_api/docs/DefaultApi.md +1569 -0
  24. hindsight_client_api/docs/DeleteResponse.md +30 -0
  25. hindsight_client_api/docs/DocumentResponse.md +36 -0
  26. hindsight_client_api/docs/EntityDetailResponse.md +36 -0
  27. hindsight_client_api/docs/EntityIncludeOptions.md +30 -0
  28. hindsight_client_api/docs/EntityListItem.md +35 -0
  29. hindsight_client_api/docs/EntityListResponse.md +30 -0
  30. hindsight_client_api/docs/EntityObservationResponse.md +31 -0
  31. hindsight_client_api/docs/EntityStateResponse.md +32 -0
  32. hindsight_client_api/docs/GraphDataResponse.md +33 -0
  33. hindsight_client_api/docs/HTTPValidationError.md +29 -0
  34. hindsight_client_api/docs/IncludeOptions.md +31 -0
  35. hindsight_client_api/docs/ListDocumentsResponse.md +33 -0
  36. hindsight_client_api/docs/ListMemoryUnitsResponse.md +33 -0
  37. hindsight_client_api/docs/MemoryItem.md +34 -0
  38. hindsight_client_api/docs/MetadataFilter.md +32 -0
  39. hindsight_client_api/docs/MonitoringApi.md +72 -0
  40. hindsight_client_api/docs/PersonalityTraits.md +35 -0
  41. hindsight_client_api/docs/RecallRequest.md +37 -0
  42. hindsight_client_api/docs/RecallResponse.md +33 -0
  43. hindsight_client_api/docs/RecallResult.md +40 -0
  44. hindsight_client_api/docs/ReflectFact.md +35 -0
  45. hindsight_client_api/docs/ReflectIncludeOptions.md +30 -0
  46. hindsight_client_api/docs/ReflectRequest.md +34 -0
  47. hindsight_client_api/docs/ReflectResponse.md +31 -0
  48. hindsight_client_api/docs/RetainRequest.md +31 -0
  49. hindsight_client_api/docs/RetainResponse.md +33 -0
  50. hindsight_client_api/docs/UpdatePersonalityRequest.md +30 -0
  51. hindsight_client_api/docs/ValidationError.md +31 -0
  52. hindsight_client_api/docs/ValidationErrorLocInner.md +28 -0
  53. hindsight_client_api/exceptions.py +219 -0
  54. hindsight_client_api/models/__init__.py +54 -0
  55. hindsight_client_api/models/add_background_request.py +89 -0
  56. hindsight_client_api/models/background_response.py +98 -0
  57. hindsight_client_api/models/bank_list_item.py +111 -0
  58. hindsight_client_api/models/bank_list_response.py +95 -0
  59. hindsight_client_api/models/bank_profile_response.py +97 -0
  60. hindsight_client_api/models/budget.py +38 -0
  61. hindsight_client_api/models/chunk_data.py +93 -0
  62. hindsight_client_api/models/chunk_include_options.py +87 -0
  63. hindsight_client_api/models/chunk_response.py +97 -0
  64. hindsight_client_api/models/create_bank_request.py +110 -0
  65. hindsight_client_api/models/delete_response.py +87 -0
  66. hindsight_client_api/models/document_response.py +104 -0
  67. hindsight_client_api/models/entity_detail_response.py +122 -0
  68. hindsight_client_api/models/entity_include_options.py +87 -0
  69. hindsight_client_api/models/entity_list_item.py +112 -0
  70. hindsight_client_api/models/entity_list_response.py +95 -0
  71. hindsight_client_api/models/entity_observation_response.py +94 -0
  72. hindsight_client_api/models/entity_state_response.py +99 -0
  73. hindsight_client_api/models/graph_data_response.py +93 -0
  74. hindsight_client_api/models/http_validation_error.py +95 -0
  75. hindsight_client_api/models/include_options.py +107 -0
  76. hindsight_client_api/models/list_documents_response.py +93 -0
  77. hindsight_client_api/models/list_memory_units_response.py +93 -0
  78. hindsight_client_api/models/memory_item.py +116 -0
  79. hindsight_client_api/models/metadata_filter.py +96 -0
  80. hindsight_client_api/models/personality_traits.py +98 -0
  81. hindsight_client_api/models/recall_request.py +129 -0
  82. hindsight_client_api/models/recall_response.py +142 -0
  83. hindsight_client_api/models/recall_result.py +152 -0
  84. hindsight_client_api/models/reflect_fact.py +122 -0
  85. hindsight_client_api/models/reflect_include_options.py +87 -0
  86. hindsight_client_api/models/reflect_request.py +118 -0
  87. hindsight_client_api/models/reflect_response.py +97 -0
  88. hindsight_client_api/models/retain_request.py +97 -0
  89. hindsight_client_api/models/retain_response.py +93 -0
  90. hindsight_client_api/models/update_personality_request.py +91 -0
  91. hindsight_client_api/models/validation_error.py +99 -0
  92. hindsight_client_api/models/validation_error_loc_inner.py +138 -0
  93. hindsight_client_api/rest.py +213 -0
  94. hindsight_client_api/test/__init__.py +0 -0
  95. hindsight_client_api/test/test_add_background_request.py +53 -0
  96. hindsight_client_api/test/test_background_response.py +53 -0
  97. hindsight_client_api/test/test_bank_list_item.py +60 -0
  98. hindsight_client_api/test/test_bank_list_response.py +68 -0
  99. hindsight_client_api/test/test_bank_profile_response.py +58 -0
  100. hindsight_client_api/test/test_budget.py +33 -0
  101. hindsight_client_api/test/test_chunk_data.py +57 -0
  102. hindsight_client_api/test/test_chunk_include_options.py +51 -0
  103. hindsight_client_api/test/test_chunk_response.py +62 -0
  104. hindsight_client_api/test/test_create_bank_request.py +53 -0
  105. hindsight_client_api/test/test_default_api.py +178 -0
  106. hindsight_client_api/test/test_delete_response.py +52 -0
  107. hindsight_client_api/test/test_document_response.py +64 -0
  108. hindsight_client_api/test/test_entity_detail_response.py +71 -0
  109. hindsight_client_api/test/test_entity_include_options.py +51 -0
  110. hindsight_client_api/test/test_entity_list_item.py +61 -0
  111. hindsight_client_api/test/test_entity_list_response.py +56 -0
  112. hindsight_client_api/test/test_entity_observation_response.py +53 -0
  113. hindsight_client_api/test/test_entity_state_response.py +64 -0
  114. hindsight_client_api/test/test_graph_data_response.py +82 -0
  115. hindsight_client_api/test/test_http_validation_error.py +58 -0
  116. hindsight_client_api/test/test_include_options.py +54 -0
  117. hindsight_client_api/test/test_list_documents_response.py +66 -0
  118. hindsight_client_api/test/test_list_memory_units_response.py +66 -0
  119. hindsight_client_api/test/test_memory_item.py +58 -0
  120. hindsight_client_api/test/test_metadata_filter.py +54 -0
  121. hindsight_client_api/test/test_monitoring_api.py +38 -0
  122. hindsight_client_api/test/test_personality_traits.py +62 -0
  123. hindsight_client_api/test/test_recall_request.py +67 -0
  124. hindsight_client_api/test/test_recall_response.py +76 -0
  125. hindsight_client_api/test/test_recall_result.py +67 -0
  126. hindsight_client_api/test/test_reflect_fact.py +57 -0
  127. hindsight_client_api/test/test_reflect_include_options.py +51 -0
  128. hindsight_client_api/test/test_reflect_request.py +59 -0
  129. hindsight_client_api/test/test_reflect_response.py +55 -0
  130. hindsight_client_api/test/test_retain_request.py +57 -0
  131. hindsight_client_api/test/test_retain_response.py +58 -0
  132. hindsight_client_api/test/test_update_personality_request.py +52 -0
  133. hindsight_client_api/test/test_validation_error.py +60 -0
  134. hindsight_client_api/test/test_validation_error_loc_inner.py +50 -0
@@ -0,0 +1,26 @@
1
+ """
2
+ Hindsight Client - Clean, pythonic wrapper for the Hindsight API.
3
+
4
+ This package provides a high-level interface for common Hindsight operations.
5
+ For advanced use cases, use the auto-generated API client directly.
6
+
7
+ Example:
8
+ ```python
9
+ from hindsight_client import Hindsight
10
+
11
+ client = Hindsight(base_url="http://localhost:8888")
12
+
13
+ # Store a memory
14
+ client.put(agent_id="alice", content="Alice loves AI")
15
+
16
+ # Search memories
17
+ results = client.search(agent_id="alice", query="What does Alice like?")
18
+
19
+ # Generate contextual answer
20
+ answer = client.think(agent_id="alice", query="What are my interests?")
21
+ ```
22
+ """
23
+
24
+ from .hindsight_client import Hindsight
25
+
26
+ __all__ = ["Hindsight"]
@@ -0,0 +1,432 @@
1
+ """
2
+ Clean, pythonic wrapper for the Hindsight API client.
3
+
4
+ This file is MAINTAINED and NOT auto-generated. It provides a high-level,
5
+ easy-to-use interface on top of the auto-generated OpenAPI client.
6
+ """
7
+
8
+ import asyncio
9
+ from typing import Optional, List, Dict, Any
10
+ from datetime import datetime
11
+
12
+ import hindsight_client_api
13
+ from hindsight_client_api.api import default_api
14
+ from hindsight_client_api.models import (
15
+ recall_request,
16
+ retain_request,
17
+ memory_item,
18
+ reflect_request,
19
+ )
20
+
21
+
22
+ def _run_async(coro):
23
+ """Run an async coroutine synchronously."""
24
+ try:
25
+ loop = asyncio.get_event_loop()
26
+ except RuntimeError:
27
+ loop = asyncio.new_event_loop()
28
+ asyncio.set_event_loop(loop)
29
+
30
+ return loop.run_until_complete(coro)
31
+
32
+
33
+ class Hindsight:
34
+ """
35
+ High-level, easy-to-use Hindsight API client.
36
+
37
+ Example:
38
+ ```python
39
+ from hindsight_client import Hindsight
40
+
41
+ client = Hindsight(base_url="http://localhost:8888")
42
+
43
+ # Store a memory
44
+ client.retain(bank_id="alice", content="Alice loves AI")
45
+
46
+ # Recall memories
47
+ results = client.recall(bank_id="alice", query="What does Alice like?")
48
+
49
+ # Generate contextual answer
50
+ answer = client.reflect(bank_id="alice", query="What are my interests?")
51
+ ```
52
+ """
53
+
54
+ def __init__(self, base_url: str, timeout: float = 30.0):
55
+ """
56
+ Initialize the Hindsight client.
57
+
58
+ Args:
59
+ base_url: The base URL of the Hindsight API server
60
+ timeout: Request timeout in seconds (default: 30.0)
61
+ """
62
+ config = hindsight_client_api.Configuration(host=base_url)
63
+ self._api_client = hindsight_client_api.ApiClient(config)
64
+ self._api = default_api.DefaultApi(self._api_client)
65
+
66
+ def __enter__(self):
67
+ """Context manager entry."""
68
+ return self
69
+
70
+ def __exit__(self, exc_type, exc_val, exc_tb):
71
+ """Context manager exit."""
72
+ self.close()
73
+
74
+ def close(self):
75
+ """Close the API client."""
76
+ if self._api_client:
77
+ _run_async(self._api_client.close())
78
+
79
+ # Simplified methods for main operations
80
+
81
+ def retain(
82
+ self,
83
+ bank_id: str,
84
+ content: str,
85
+ timestamp: Optional[datetime] = None,
86
+ context: Optional[str] = None,
87
+ document_id: Optional[str] = None,
88
+ metadata: Optional[Dict[str, str]] = None,
89
+ ) -> Dict[str, Any]:
90
+ """
91
+ Store a single memory (simplified interface).
92
+
93
+ Args:
94
+ bank_id: The memory bank ID
95
+ content: Memory content
96
+ timestamp: Optional event timestamp
97
+ context: Optional context description
98
+ document_id: Optional document ID for grouping
99
+ metadata: Optional user-defined metadata
100
+
101
+ Returns:
102
+ Response with success status
103
+ """
104
+ return self.retain_batch(
105
+ bank_id=bank_id,
106
+ items=[{"content": content, "timestamp": timestamp, "context": context, "metadata": metadata}],
107
+ document_id=document_id,
108
+ )
109
+
110
+ def retain_batch(
111
+ self,
112
+ bank_id: str,
113
+ items: List[Dict[str, Any]],
114
+ document_id: Optional[str] = None,
115
+ async_: bool = False,
116
+ ) -> Dict[str, Any]:
117
+ """
118
+ Store multiple memories in batch.
119
+
120
+ Args:
121
+ bank_id: The memory bank ID
122
+ items: List of memory items with 'content' and optional 'timestamp', 'context', 'metadata'
123
+ document_id: Optional document ID for grouping memories
124
+ async_: If True, process asynchronously in background (default: False)
125
+
126
+ Returns:
127
+ Response with success status and item count
128
+ """
129
+ memory_items = [
130
+ memory_item.MemoryItem(
131
+ content=item["content"],
132
+ timestamp=item.get("timestamp"),
133
+ context=item.get("context"),
134
+ metadata=item.get("metadata"),
135
+ )
136
+ for item in items
137
+ ]
138
+
139
+ request_obj = retain_request.RetainRequest(
140
+ items=memory_items,
141
+ document_id=document_id,
142
+ async_=async_,
143
+ )
144
+
145
+ response = _run_async(self._api.retain_memories(bank_id, request_obj))
146
+ return response.to_dict() if hasattr(response, 'to_dict') else response
147
+
148
+ def recall(
149
+ self,
150
+ bank_id: str,
151
+ query: str,
152
+ types: Optional[List[str]] = None,
153
+ max_tokens: int = 4096,
154
+ budget: str = "mid",
155
+ ) -> List[Dict[str, Any]]:
156
+ """
157
+ Recall memories using semantic similarity.
158
+
159
+ Args:
160
+ bank_id: The memory bank ID
161
+ query: Search query
162
+ types: Optional list of fact types to filter (world, agent, opinion, observation)
163
+ max_tokens: Maximum tokens in results (default: 4096)
164
+ budget: Budget level for recall - "low", "mid", or "high" (default: "mid")
165
+
166
+ Returns:
167
+ List of recall results
168
+ """
169
+ request_obj = recall_request.RecallRequest(
170
+ query=query,
171
+ types=types,
172
+ budget=budget,
173
+ max_tokens=max_tokens,
174
+ trace=False,
175
+ )
176
+
177
+ response = _run_async(self._api.recall_memories(bank_id, request_obj))
178
+
179
+ if hasattr(response, 'results'):
180
+ return [r.to_dict() if hasattr(r, 'to_dict') else r for r in response.results]
181
+ return []
182
+
183
+ def reflect(
184
+ self,
185
+ bank_id: str,
186
+ query: str,
187
+ budget: str = "low",
188
+ context: Optional[str] = None,
189
+ ) -> Dict[str, Any]:
190
+ """
191
+ Generate a contextual answer based on bank identity and memories.
192
+
193
+ Args:
194
+ bank_id: The memory bank ID
195
+ query: The question or prompt
196
+ budget: Budget level for reflection - "low", "mid", or "high" (default: "low")
197
+ context: Optional additional context
198
+
199
+ Returns:
200
+ Response with answer text and optionally facts used
201
+ """
202
+ request_obj = reflect_request.ReflectRequest(
203
+ query=query,
204
+ budget=budget,
205
+ context=context,
206
+ )
207
+
208
+ response = _run_async(self._api.reflect(bank_id, request_obj))
209
+ return response.to_dict() if hasattr(response, 'to_dict') else response
210
+
211
+ # Full-featured methods (expose more options)
212
+
213
+ def recall_memories(
214
+ self,
215
+ bank_id: str,
216
+ query: str,
217
+ types: Optional[List[str]] = None,
218
+ budget: str = "mid",
219
+ max_tokens: int = 4096,
220
+ trace: bool = False,
221
+ query_timestamp: Optional[str] = None,
222
+ include_entities: bool = True,
223
+ max_entity_tokens: int = 500,
224
+ ) -> Dict[str, Any]:
225
+ """
226
+ Recall memories with all options (full-featured).
227
+
228
+ Args:
229
+ bank_id: The memory bank ID
230
+ query: Search query
231
+ types: Optional list of fact types to filter (world, agent, opinion, observation)
232
+ budget: Budget level - "low", "mid", or "high"
233
+ max_tokens: Maximum tokens in results
234
+ trace: Enable trace output
235
+ query_timestamp: Optional ISO format date string (e.g., '2023-05-30T23:40:00')
236
+ include_entities: Include entity observations in results (default: True)
237
+ max_entity_tokens: Maximum tokens for entity observations (default: 500)
238
+
239
+ Returns:
240
+ Full recall response with results, optional entities, and optional trace
241
+ """
242
+ from hindsight_client_api.models import include_options, entity_include_options
243
+
244
+ include_opts = include_options.IncludeOptions(
245
+ entities=entity_include_options.EntityIncludeOptions(max_tokens=max_entity_tokens) if include_entities else None
246
+ )
247
+
248
+ request_obj = recall_request.RecallRequest(
249
+ query=query,
250
+ types=types,
251
+ budget=budget,
252
+ max_tokens=max_tokens,
253
+ trace=trace,
254
+ query_timestamp=query_timestamp,
255
+ include=include_opts,
256
+ )
257
+
258
+ response = _run_async(self._api.recall_memories(bank_id, request_obj))
259
+ return response.to_dict() if hasattr(response, 'to_dict') else response
260
+
261
+ def list_memories(
262
+ self,
263
+ bank_id: str,
264
+ type: Optional[str] = None,
265
+ search_query: Optional[str] = None,
266
+ limit: int = 100,
267
+ offset: int = 0,
268
+ ) -> Dict[str, Any]:
269
+ """List memory units with pagination."""
270
+ response = _run_async(self._api.list_memories(
271
+ bank_id=bank_id,
272
+ type=type,
273
+ q=search_query,
274
+ limit=limit,
275
+ offset=offset,
276
+ ))
277
+ return response.to_dict() if hasattr(response, 'to_dict') else response
278
+
279
+ def create_bank(
280
+ self,
281
+ bank_id: str,
282
+ name: Optional[str] = None,
283
+ background: Optional[str] = None,
284
+ personality: Optional[Dict[str, float]] = None,
285
+ ) -> Dict[str, Any]:
286
+ """Create or update a memory bank."""
287
+ from hindsight_client_api.models import create_bank_request, personality_traits
288
+
289
+ personality_obj = None
290
+ if personality:
291
+ personality_obj = personality_traits.PersonalityTraits(**personality)
292
+
293
+ request_obj = create_bank_request.CreateBankRequest(
294
+ name=name,
295
+ background=background,
296
+ personality=personality_obj,
297
+ )
298
+
299
+ response = _run_async(self._api.create_or_update_bank(bank_id, request_obj))
300
+ return response.to_dict() if hasattr(response, 'to_dict') else response
301
+
302
+ # Async methods (native async, no _run_async wrapper)
303
+
304
+ async def aretain_batch(
305
+ self,
306
+ bank_id: str,
307
+ items: List[Dict[str, Any]],
308
+ document_id: Optional[str] = None,
309
+ async_: bool = False,
310
+ ) -> Dict[str, Any]:
311
+ """
312
+ Store multiple memories in batch (async).
313
+
314
+ Args:
315
+ bank_id: The memory bank ID
316
+ items: List of memory items with 'content' and optional 'timestamp', 'context', 'metadata'
317
+ document_id: Optional document ID for grouping memories
318
+ async_: If True, process asynchronously in background (default: False)
319
+
320
+ Returns:
321
+ Response with success status and item count
322
+ """
323
+ memory_items = [
324
+ memory_item.MemoryItem(
325
+ content=item["content"],
326
+ timestamp=item.get("timestamp"),
327
+ context=item.get("context"),
328
+ metadata=item.get("metadata"),
329
+ )
330
+ for item in items
331
+ ]
332
+
333
+ request_obj = retain_request.RetainRequest(
334
+ items=memory_items,
335
+ document_id=document_id,
336
+ async_=async_,
337
+ )
338
+
339
+ response = await self._api.retain_memories(bank_id, request_obj)
340
+ return response.to_dict() if hasattr(response, 'to_dict') else response
341
+
342
+ async def aretain(
343
+ self,
344
+ bank_id: str,
345
+ content: str,
346
+ timestamp: Optional[datetime] = None,
347
+ context: Optional[str] = None,
348
+ document_id: Optional[str] = None,
349
+ metadata: Optional[Dict[str, str]] = None,
350
+ ) -> Dict[str, Any]:
351
+ """
352
+ Store a single memory (async).
353
+
354
+ Args:
355
+ bank_id: The memory bank ID
356
+ content: Memory content
357
+ timestamp: Optional event timestamp
358
+ context: Optional context description
359
+ document_id: Optional document ID for grouping
360
+ metadata: Optional user-defined metadata
361
+
362
+ Returns:
363
+ Response with success status
364
+ """
365
+ return await self.aretain_batch(
366
+ bank_id=bank_id,
367
+ items=[{"content": content, "timestamp": timestamp, "context": context, "metadata": metadata}],
368
+ document_id=document_id,
369
+ )
370
+
371
+ async def arecall(
372
+ self,
373
+ bank_id: str,
374
+ query: str,
375
+ types: Optional[List[str]] = None,
376
+ max_tokens: int = 4096,
377
+ budget: str = "mid",
378
+ ) -> List[Dict[str, Any]]:
379
+ """
380
+ Recall memories using semantic similarity (async).
381
+
382
+ Args:
383
+ bank_id: The memory bank ID
384
+ query: Search query
385
+ types: Optional list of fact types to filter (world, agent, opinion, observation)
386
+ max_tokens: Maximum tokens in results (default: 4096)
387
+ budget: Budget level for recall - "low", "mid", or "high" (default: "mid")
388
+
389
+ Returns:
390
+ List of recall results
391
+ """
392
+ request_obj = recall_request.RecallRequest(
393
+ query=query,
394
+ types=types,
395
+ budget=budget,
396
+ max_tokens=max_tokens,
397
+ trace=False,
398
+ )
399
+
400
+ response = await self._api.recall_memories(bank_id, request_obj)
401
+
402
+ if hasattr(response, 'results'):
403
+ return [r.to_dict() if hasattr(r, 'to_dict') else r for r in response.results]
404
+ return []
405
+
406
+ async def areflect(
407
+ self,
408
+ bank_id: str,
409
+ query: str,
410
+ budget: str = "low",
411
+ context: Optional[str] = None,
412
+ ) -> Dict[str, Any]:
413
+ """
414
+ Generate a contextual answer based on bank identity and memories (async).
415
+
416
+ Args:
417
+ bank_id: The memory bank ID
418
+ query: The question or prompt
419
+ budget: Budget level for reflection - "low", "mid", or "high" (default: "low")
420
+ context: Optional additional context
421
+
422
+ Returns:
423
+ Response with answer text and optionally facts used
424
+ """
425
+ request_obj = reflect_request.ReflectRequest(
426
+ query=query,
427
+ budget=budget,
428
+ context=context,
429
+ )
430
+
431
+ response = await self._api.reflect(bank_id, request_obj)
432
+ return response.to_dict() if hasattr(response, 'to_dict') else response
@@ -0,0 +1,56 @@
1
+ Metadata-Version: 2.4
2
+ Name: hindsight-client
3
+ Version: 0.0.13
4
+ Summary: Python client for Hindsight - Semantic memory system with personality-driven thinking
5
+ Author: Hindsight Team
6
+ Requires-Python: >=3.10
7
+ Requires-Dist: aiohttp-retry>=2.8.3
8
+ Requires-Dist: aiohttp>=3.8.4
9
+ Requires-Dist: pydantic>=2
10
+ Requires-Dist: python-dateutil>=2.8.2
11
+ Requires-Dist: typing-extensions>=4.7.1
12
+ Requires-Dist: urllib3<3.0.0,>=2.1.0
13
+ Provides-Extra: test
14
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
15
+ Requires-Dist: pytest>=7.0.0; extra == 'test'
16
+ Description-Content-Type: text/markdown
17
+
18
+ # Hindsight Python Client
19
+
20
+ Python client library for the Hindsight API.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pip install hindsight-client
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ```python
31
+ from hindsight_client import Hindsight
32
+
33
+ client = Hindsight(base_url="http://localhost:8888")
34
+
35
+ # Retain information
36
+ client.retain(
37
+ bank_id="my-bank",
38
+ content="Alice works at Google in Mountain View."
39
+ )
40
+
41
+ # Recall memories
42
+ results = client.recall(
43
+ bank_id="my-bank",
44
+ query="Where does Alice work?"
45
+ )
46
+
47
+ # Reflect and get an opinion
48
+ response = client.reflect(
49
+ bank_id="my-bank",
50
+ query="What do you think about Alice's career?"
51
+ )
52
+ ```
53
+
54
+ ## Documentation
55
+
56
+ For full documentation, visit [hindsight.dev](https://hindsight.dev).
@@ -0,0 +1,134 @@
1
+ hindsight_client/__init__.py,sha256=yDyA5gfFW0MpAl5GIDbfw7Sm1KtocMa-ltStjL6KwnM,711
2
+ hindsight_client/hindsight_client.py,sha256=E_xFdpHmIFVrkS1HkVb-hfYn69_Hh7SzLnjMIDFsm6U,13865
3
+ hindsight_client_api/__init__.py,sha256=XT5Rud7nuVtKKT12yT-fPNjcrKccjDArg2VcDgjq_3I,6052
4
+ hindsight_client_api/api_client.py,sha256=gO_s4kVFGPJMawvNcdoqbpqptHIIKELylVni48b7rqU,27860
5
+ hindsight_client_api/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
6
+ hindsight_client_api/configuration.py,sha256=OV4VlRbFSSxdfxTuo81DlL_QmZbT_-FHn39h-XW7VOQ,17787
7
+ hindsight_client_api/exceptions.py,sha256=d0pwToyNcSfRzoBrHUsBrmcm9hssBErq0zGFO0cAboE,6470
8
+ hindsight_client_api/rest.py,sha256=MRNjKt09uidHHL0RF76t5XlwIXAinJV_uvdkJrDoo1I,7225
9
+ hindsight_client_api/api/__init__.py,sha256=aWzhDj7Q3Q5obQwQA-fOtPO2looklumbsAbnLGl_Fhw,174
10
+ hindsight_client_api/api/default_api.py,sha256=WEGywEiYrX8XY8Uku4mkyT7wpwV0IS7q20J4g4aLdao,235937
11
+ hindsight_client_api/api/monitoring_api.py,sha256=t7UGHKOXLCWET6kgy5CmjDQ54SSVDWwekh0j7XTxw20,10408
12
+ hindsight_client_api/docs/AddBackgroundRequest.md,sha256=co9zT309qLV58Xob8V0vejGlAEEuLTUhbTy-I_CgR1I,1223
13
+ hindsight_client_api/docs/BackgroundResponse.md,sha256=3R8rS922JZv3KHbf910lt_IygRK_Zs-H2DqBoAbdH00,1061
14
+ hindsight_client_api/docs/BankListItem.md,sha256=PQp3pZ6EV4Ah7u43iKGOUWBa7xFvP50dZ8098zWoX38,1114
15
+ hindsight_client_api/docs/BankListResponse.md,sha256=20McKN_iVmyOFzQBGOGo-a0D7P2YJTeh31GJna1P6J8,989
16
+ hindsight_client_api/docs/BankProfileResponse.md,sha256=AUQpiUs65lklpw7v_HTXmwMAcAExjCdgRgD3p8wr_HM,1117
17
+ hindsight_client_api/docs/Budget.md,sha256=UMCVLms95l0XATPyK4VcTQoeGQjRv6FsnaKZ547s0Ow,309
18
+ hindsight_client_api/docs/ChunkData.md,sha256=8HaU0DkJnIcVayGQc52noa-QxoM_lckzfX0p3B0cVsg,1021
19
+ hindsight_client_api/docs/ChunkIncludeOptions.md,sha256=zPqCLDkW7flyLjJdhrBnh97zm8Y7WTs-kkaYI1xK9G0,1088
20
+ hindsight_client_api/docs/ChunkResponse.md,sha256=6qZwJfZATMT2dD8ML8IDJ7eSwF-8bmuKz2pLGU1UYPE,1068
21
+ hindsight_client_api/docs/CreateBankRequest.md,sha256=91V_NCrVUib72AW45rQDam4FCiJ5td_vuSPJVqbSxS0,1107
22
+ hindsight_client_api/docs/DefaultApi.md,sha256=bEYpqUdN-c1Z-SjW0K5nTZw_ZZXDgvZ889wKr8fqA2A,48669
23
+ hindsight_client_api/docs/DeleteResponse.md,sha256=k3NHvJoSjemZDGZ_huMXk0gtNKYkDSyGsQ7PCB5aybI,926
24
+ hindsight_client_api/docs/DocumentResponse.md,sha256=ruwb2llltuJLZ3KoVJ-zwF3C7ELjpjaUNet9OK-4JKQ,1145
25
+ hindsight_client_api/docs/EntityDetailResponse.md,sha256=Ea6SGkeMCZWzhOGyzJ5nP7PU7a6SBit6GL8gWnNyOvA,1308
26
+ hindsight_client_api/docs/EntityIncludeOptions.md,sha256=ldI3RHhT8ub11bc1hmwqCEy4XGzJrFq08NGfEXy7p_Y,1100
27
+ hindsight_client_api/docs/EntityListItem.md,sha256=BpYo9ftZyCHUlB6xPURvCvGu_7YSore0xt8Y_b-4gHA,1125
28
+ hindsight_client_api/docs/EntityListResponse.md,sha256=uwzq605X0L8iHDVR12pIG0t-iVPCgUz5NR39lyWYgqE,1022
29
+ hindsight_client_api/docs/EntityObservationResponse.md,sha256=6-7UxvIKFqGyQaoyHOdadHzXnAigOb2zGHXmpvr6rf0,1109
30
+ hindsight_client_api/docs/EntityStateResponse.md,sha256=08ntXHc69PVXiOGcrg3HwqeYo9wHG5ivfcAvJI-C6eQ,1123
31
+ hindsight_client_api/docs/GraphDataResponse.md,sha256=UIsZmMFNXwKNujVeha8TFPiq4HxZqHOWDXNXbm1yNm8,1119
32
+ hindsight_client_api/docs/HTTPValidationError.md,sha256=IZC9oMGPXsIFy7yeKKgRpZHQXzz0wyIp2ZChHA9MaXI,1008
33
+ hindsight_client_api/docs/IncludeOptions.md,sha256=GZ4xlW2amRYgWq_dL7sdmnrmUdWtdY9FnHqKhotcRoI,1080
34
+ hindsight_client_api/docs/ListDocumentsResponse.md,sha256=knIyqPUGLe1Pg0dLnjrnHgO1RqB7RisKEZWSyiX4oiI,1125
35
+ hindsight_client_api/docs/ListMemoryUnitsResponse.md,sha256=UBFQ1uJd9AAcRHWtgr7hjx86ka_EmPKr5LwH15UO2Mc,1160
36
+ hindsight_client_api/docs/MemoryItem.md,sha256=UaHZE9BQO9BJgsGJL8QfAeuogtCZmFoH4XZshoyLmcI,1045
37
+ hindsight_client_api/docs/MetadataFilter.md,sha256=K7WQ-K1GM4I9nIuCcWCkMVyWqkEKb_xClM3N8QmZp18,1170
38
+ hindsight_client_api/docs/MonitoringApi.md,sha256=CTnVtwDHWBRqMRboIap7uJokLpSmdLWun8yxlK_lQuM,1976
39
+ hindsight_client_api/docs/PersonalityTraits.md,sha256=p6kx-lTP_tWj-8UnwZDySdFj1DHIWCZut1ULkuwMGbA,1309
40
+ hindsight_client_api/docs/RecallRequest.md,sha256=DX3ADDMnKaQBhYasXfEHxQhJwjuKVO8YH5hcyaAZYts,1386
41
+ hindsight_client_api/docs/RecallResponse.md,sha256=VbABZlZwMTaSuqaqAAOOAjkuqaDB4azaQAFP5noJkVc,1173
42
+ hindsight_client_api/docs/RecallResult.md,sha256=1QTIqPN86Gq--tw-LwFVBmO5QD4dj8DbzJqe0ywUrew,1297
43
+ hindsight_client_api/docs/ReflectFact.md,sha256=f9wmQde692is1dF6sw6S5_zIDI9Z_AHSbCvD7ALluLY,1075
44
+ hindsight_client_api/docs/ReflectIncludeOptions.md,sha256=tH-pQeSv0QH9hoLmQhsg0PO5R3jVolDK6JFUG5CHi50,1112
45
+ hindsight_client_api/docs/ReflectRequest.md,sha256=066vUaiiXUf9yau5y7jJLTMDqVcSjOhyckbdj-kdc3A,1235
46
+ hindsight_client_api/docs/ReflectResponse.md,sha256=ziZtjLkXfX7RieaBtL5XC1JxgyG5_1rda-pZHHrQAaA,1019
47
+ hindsight_client_api/docs/RetainRequest.md,sha256=u-IhxRJo2iFWtskDsRpBJJjOdm7mfLGE6j1W6iNTcKY,1090
48
+ hindsight_client_api/docs/RetainResponse.md,sha256=2a3Wz7ilrnQ_BFf6YTqWDmA94gohs8kU9sCR3mJYrj8,1065
49
+ hindsight_client_api/docs/UpdatePersonalityRequest.md,sha256=j7HBHSFWFfR7B8lJqfEY37lorG075uv7R_ShdoeZmRo,1112
50
+ hindsight_client_api/docs/ValidationError.md,sha256=moV1dyA1z8n2DSD18ri7x7GDJujHc6--fbwGr4u8cl4,1001
51
+ hindsight_client_api/docs/ValidationErrorLocInner.md,sha256=WP7Zm2LNt2HZb6XHo0cLvLCrht-EGFKp0i4zD3jPMto,988
52
+ hindsight_client_api/models/__init__.py,sha256=px7xyeosOlkWejYftFpGmWrTKtFi34K95K6GdmyLqLc,3187
53
+ hindsight_client_api/models/add_background_request.py,sha256=UiRFfyOEQ8MYqeleKE2tX5b1ZQNxUQIV8QqGRDx1d9Y,2876
54
+ hindsight_client_api/models/background_response.py,sha256=LrwGkXzBrCWLRQPB4VabaTa5Ugb9fUXPFT6RzKmJwJE,3144
55
+ hindsight_client_api/models/bank_list_item.py,sha256=63XSHeoNRzmoK_7anUssKyWyqso0MbuI8-fYaaxulR8,3681
56
+ hindsight_client_api/models/bank_list_response.py,sha256=8ywzWZEJCj3_02-5twORc7sGWIC6T114G7aDDzOqOh4,2896
57
+ hindsight_client_api/models/bank_profile_response.py,sha256=6cxnw7Dviy5HgvwQsjSZJnuxXv45VHL2BWyO5N9htc0,3030
58
+ hindsight_client_api/models/budget.py,sha256=MxiFUUh-b8sV6rTuVDeAIJduou1FHU8zi_hD5V-JWYg,702
59
+ hindsight_client_api/models/chunk_data.py,sha256=ARH2uO5RWbB6GNgVtzi3ADo7ijKTlWmc5uGuNhkS53k,2828
60
+ hindsight_client_api/models/chunk_include_options.py,sha256=uqlWWYPajjvDsfCouY8Ysw8OYQ3GtR9h7QLmn-8K534,2634
61
+ hindsight_client_api/models/chunk_response.py,sha256=nrwHLEaFTfcYaRhdf2eGa7YOV075fwG09C1sG7IwVUY,2888
62
+ hindsight_client_api/models/create_bank_request.py,sha256=2ymRgmfVtxAzCw41kVlGZhQBgthXaNbE9dNeZQr3bdw,3668
63
+ hindsight_client_api/models/delete_response.py,sha256=ruXyEg7cavfXXmVrWmh_k8Kabpo-ef1iTY_aiOehS5k,2436
64
+ hindsight_client_api/models/document_response.py,sha256=HOJ0TTKF7Bkdii-UyfUOzMNcJhrzrgShSxDq6z2vFjE,3256
65
+ hindsight_client_api/models/entity_detail_response.py,sha256=rHv59Hvk0U5GFw-n4FIT_GMypPNGAuOzzNXu8b7zvCU,4312
66
+ hindsight_client_api/models/entity_include_options.py,sha256=qRo4gnHEKl8GugqNl24ugEV0nSusdEcZycxKU2YgHIM,2635
67
+ hindsight_client_api/models/entity_list_item.py,sha256=RVuWRo5YEE9CPAGsJjQpIPGlCaGYdZMcsTWofn7EHRs,3602
68
+ hindsight_client_api/models/entity_list_response.py,sha256=xi2oBFliGHdr6Oabh3ubZBUYwpsVt9HYPrVpTbr5VSk,2913
69
+ hindsight_client_api/models/entity_observation_response.py,sha256=600r__u4bPWJkEtZ2IF0trnQLdrZp_ybJNUf8BcJiq0,2804
70
+ hindsight_client_api/models/entity_state_response.py,sha256=1b3ZmUT8GWs3u0HTl3Un56kiPXN8tQAgD9EO_C3K2EM,3239
71
+ hindsight_client_api/models/graph_data_response.py,sha256=uzWzj-60AQRObcYplaDeNqbMCJ6tAuGhEBCTpqB0L5g,2721
72
+ hindsight_client_api/models/http_validation_error.py,sha256=GLVEdsmTx9xa8jC11qt5N8-Ich7s8nkXpQp9kIL6lcg,2937
73
+ hindsight_client_api/models/include_options.py,sha256=jqNB_VdponAnlrY6vhRv54UOdBkH3UayJRzOMnD-dpI,3645
74
+ hindsight_client_api/models/list_documents_response.py,sha256=RACBMWojY9yVfQlTt600xG1AFOO20S3SKyh_R24kpzw,2675
75
+ hindsight_client_api/models/list_memory_units_response.py,sha256=_B7-Aw-0VCny98lP3zt9VQomR6zEvSQ84q1CQIXb6Os,2684
76
+ hindsight_client_api/models/memory_item.py,sha256=97_WLBTKBxtE37r39LO1Rv4AuS8SHHmvOqFydD0cVaM,3741
77
+ hindsight_client_api/models/metadata_filter.py,sha256=DsQdItQamsavISgHL4QO8DCwPFCmeoCbvtVtQLU-OWk,3101
78
+ hindsight_client_api/models/personality_traits.py,sha256=Cr1AAtTcWVwackp-wSxsUwYIInfQujbPc2VVyuuumuA,3892
79
+ hindsight_client_api/models/recall_request.py,sha256=ILhJEgnJG-Te4M8lrotE7dqpvkujTWPI2Y2qjGaMpS0,4856
80
+ hindsight_client_api/models/recall_response.py,sha256=PlLOE1_ixkUcDSjKnNng2-8uoL3sGeFgHHQJ8CI-CNE,5103
81
+ hindsight_client_api/models/recall_result.py,sha256=CmIN7BF6zBBwl8hpmce4rHVMB4GS0PwbzUMcQZn2QN0,5402
82
+ hindsight_client_api/models/reflect_fact.py,sha256=PVXV3yTMrVIawv2HMLC-fBOEo4QxQGe0JAgiOsaigaU,3973
83
+ hindsight_client_api/models/reflect_include_options.py,sha256=G1l38KRDvXhYLRTb-Yfwjzh6ETXdU0qX5iLwMSd1mIE,2584
84
+ hindsight_client_api/models/reflect_request.py,sha256=fJ-6xSckV-XTMvM7g-oJVDdj-0InJv8pGIZTvgq6m54,4210
85
+ hindsight_client_api/models/reflect_response.py,sha256=4pS5fgZa34wsdb4HmuSYOS8gu1-gS9akuRU-e77pxAM,3024
86
+ hindsight_client_api/models/retain_request.py,sha256=t6uB_mIrjMsHm5zdwrhPzdqVjoVyqqNijcMRL0_a9iE,3178
87
+ hindsight_client_api/models/retain_response.py,sha256=LmtP9CsPvsfLIYhmz0xsWFHI4AOg1C9CT49D-_Wfing,2796
88
+ hindsight_client_api/models/update_personality_request.py,sha256=y_JDP8wrr93BqgAlzrzNlhVhPKiSETNS-sI9AkrbiYQ,2817
89
+ hindsight_client_api/models/validation_error.py,sha256=iRhOO1MxLQvZiiM5xyMbJSrhJUspG-Bn2HZ-nMCxUhg,3029
90
+ hindsight_client_api/models/validation_error_loc_inner.py,sha256=YmggpQXbrX6V2q-s29sTsI59p72DXi2MoUZPfAVpMZ8,4812
91
+ hindsight_client_api/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ hindsight_client_api/test/test_add_background_request.py,sha256=DS7JQE3xWHmpYvtR09pVQSAO6ci6lacaHaDoMRmQfCw,1463
93
+ hindsight_client_api/test/test_background_response.py,sha256=C1sPSFj9p9PuJIsPU7BSsAxguK8UdCDTfcwnkW79PLs,1543
94
+ hindsight_client_api/test/test_bank_list_item.py,sha256=_htF0NYhrUIgSfxks6YvgVyp18ymolkmZ2UNlEk1yFw,1794
95
+ hindsight_client_api/test/test_bank_list_response.py,sha256=nJ_OfZ2km2LZUc8N78O_AJBSTtg_glFH4vT2begA3X4,2270
96
+ hindsight_client_api/test/test_bank_profile_response.py,sha256=v8EjsEQKfKKSFwGgerydVjzRgJDIuQhluTHVE1fHBnQ,1812
97
+ hindsight_client_api/test/test_budget.py,sha256=QZBlqIwkAqbVs-Fe0DrG460XIuQcN4LWEG6mziRDrtY,587
98
+ hindsight_client_api/test/test_chunk_data.py,sha256=KPi51APTLgtmR2_f5FSH3KQ_fHeC_zC1tEZvattugPE,1433
99
+ hindsight_client_api/test/test_chunk_include_options.py,sha256=kF2kUuw_QhG9D7Rg1L_yJvUvz6QUcZA_yFzR7PwP8t0,1381
100
+ hindsight_client_api/test/test_chunk_response.py,sha256=OOgrcSEef7G1qx17JQ9ApGLreeObocCMdhmirwgg7Uw,1665
101
+ hindsight_client_api/test/test_create_bank_request.py,sha256=ORDjPpEbX1yDaBkIYTg921eAZOStjwSEaWGsCiqkiQA,1526
102
+ hindsight_client_api/test/test_default_api.py,sha256=ymKx13UyTxRlDrKy20UB6DGCRnO97edcXpQEBIxERX0,3759
103
+ hindsight_client_api/test/test_delete_response.py,sha256=Wb7j_7QvyeTdPMbybxHUdYnpr0Cqk-Rqw2nIdLNEkJY,1351
104
+ hindsight_client_api/test/test_document_response.py,sha256=PIGFqjTUslp9I5pKW9Ly0w325oax6cjDNzUf2hM28dk,1775
105
+ hindsight_client_api/test/test_entity_detail_response.py,sha256=VpPyYpGYxtnTKspDbIeLtM4lC9j5hMW97pPUjKaZPjs,2186
106
+ hindsight_client_api/test/test_entity_include_options.py,sha256=vEI63Q0Ejh7IRgH1TxXWVal08WYk1KwBo0n3tdpxBxY,1393
107
+ hindsight_client_api/test/test_entity_list_item.py,sha256=ZL8sK97yWZg_MXlZYDiUsC-IEKZLwQI__8Pwq6nMY_s,1634
108
+ hindsight_client_api/test/test_entity_list_response.py,sha256=nFA6ryE4Eg1m7EGw60_-h3G5ro6t06Qa3yMjHXwERb0,1766
109
+ hindsight_client_api/test/test_entity_observation_response.py,sha256=EEpD8Zf3XcXH0zdQs2Bh81LfGBVPAq9Z5z8C7lfLqv4,1509
110
+ hindsight_client_api/test/test_entity_state_response.py,sha256=TTnOCPQMgdoTCyQb-12ZBIDLQiYXa-7HQZ3P-NVy9Lk,1966
111
+ hindsight_client_api/test/test_graph_data_response.py,sha256=-c8u7AaFG-FjDaktnkMHFsmBYQmlU_ijIBQPFIkoHyI,2206
112
+ hindsight_client_api/test/test_http_validation_error.py,sha256=hzSbwTv55PQ__XRxXX7PXu9nxKECR9LtJvrrN8Mn1aU,1649
113
+ hindsight_client_api/test/test_include_options.py,sha256=nibccUakKvfSa_dLV7trlbnT5ctGA7ytj54KztfVVUQ,1563
114
+ hindsight_client_api/test/test_list_documents_response.py,sha256=EwpI71z-8IdxmWdXIhfejfrg_9_ElaYQDXL0HXWa-js,1810
115
+ hindsight_client_api/test/test_list_memory_units_response.py,sha256=TsNnYc_9aNcczAsSjMd4kFW2Zs7DLe4teWZh5BfLWTY,1835
116
+ hindsight_client_api/test/test_memory_item.py,sha256=H82GmKPm-mmRk_PRY6lqv0QomZ5BV_-TbbgUsG_tp-E,1552
117
+ hindsight_client_api/test/test_metadata_filter.py,sha256=y9zZ1CfVp8Xnfb3bmH-ySvCPgVmc6SIquuyG9TagZbw,1403
118
+ hindsight_client_api/test/test_monitoring_api.py,sha256=E_n9Zea2dBF47iM2493w_daZvx6ErII7CdGn-cad9iY,820
119
+ hindsight_client_api/test/test_personality_traits.py,sha256=sgubpsa-cK9Tt7No-A4aPrDn5OLEXef51FMYwEG85nM,1759
120
+ hindsight_client_api/test/test_recall_request.py,sha256=dTxiICITLrert8NZoUkql3cD286_TjVV0RrhicJhm_E,2033
121
+ hindsight_client_api/test/test_recall_response.py,sha256=K7IJXHOM8u21TOvsdn4jfTcbU7v7BvbNW17iOMQM2vw,3014
122
+ hindsight_client_api/test/test_recall_result.py,sha256=ZDJaN1iQOs9q_mfBpJBTvpAQc-OUTMsCMymPsWV6W2c,1754
123
+ hindsight_client_api/test/test_reflect_fact.py,sha256=dW_Y-0QITw80-XCYjzcmMcHIBNw7C6LVEKGQ97k3bIE,1459
124
+ hindsight_client_api/test/test_reflect_include_options.py,sha256=C1rHezODwNC1u1iLXWnF2YLKInKoYpCEuiREQevq7HM,1469
125
+ hindsight_client_api/test/test_reflect_request.py,sha256=s_bkT4efjMlgUmI_kKmGhjdIQ8hh4TqlZUnW3Q7rIqQ,1725
126
+ hindsight_client_api/test/test_reflect_response.py,sha256=m6ivE97QzgRZjxvlGDlfKOIcIcqfhyauLcu7CTQZvtE,1613
127
+ hindsight_client_api/test/test_retain_request.py,sha256=4_-f9yQR37373t3p-2_FXq9KRWQa3kr0Gw3Z4w56GcQ,1839
128
+ hindsight_client_api/test/test_retain_response.py,sha256=L_83q5aYZAb9mZhHwF7WAe4dkmrOCFe8mSCpCjS5ZLE,1547
129
+ hindsight_client_api/test/test_update_personality_request.py,sha256=g3OO7fy2w4KuxF0phkXIXqJA2o-6fLY8k6lLcw07XSg,1692
130
+ hindsight_client_api/test/test_validation_error.py,sha256=FiG2lcCSznxrbqRk2rcKv1ctpin0gGM5YGReZWMRnkw,1549
131
+ hindsight_client_api/test/test_validation_error_loc_inner.py,sha256=Cy-VdSn1aBCRzpiI-2OSCrK376C5eHDywvbF16KNhMQ,1398
132
+ hindsight_client-0.0.13.dist-info/METADATA,sha256=i_3DdseYFPWPLkzVkujEkKp4anyQGIjXjwB2Qyv4fL0,1266
133
+ hindsight_client-0.0.13.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
134
+ hindsight_client-0.0.13.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any