supermemory 3.57.0__tar.gz → 3.59.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. supermemory-3.59.0/.release-please-manifest.json +3 -0
  2. {supermemory-3.57.0 → supermemory-3.59.0}/CHANGELOG.md +16 -0
  3. {supermemory-3.57.0 → supermemory-3.59.0}/PKG-INFO +1 -1
  4. {supermemory-3.57.0 → supermemory-3.59.0}/pyproject.toml +1 -1
  5. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_client.py +16 -0
  6. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_version.py +1 -1
  7. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/documents.py +52 -0
  8. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/client_add_params.py +9 -0
  9. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_create_response.py +2 -2
  10. supermemory-3.59.0/src/supermemory/types/connection_delete_by_id_response.py +17 -0
  11. supermemory-3.59.0/src/supermemory/types/connection_delete_by_provider_response.py +17 -0
  12. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_list_documents_response.py +1 -1
  13. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_add_params.py +9 -0
  14. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_batch_add_params.py +20 -0
  15. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_batch_add_response.py +8 -0
  16. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_list_processing_response.py +9 -0
  17. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_update_params.py +10 -0
  18. supermemory-3.59.0/src/supermemory/types/profile_response.py +200 -0
  19. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_documents_response.py +7 -0
  20. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_execute_response.py +7 -0
  21. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_memories_response.py +7 -3
  22. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_client.py +2 -0
  23. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_documents.py +8 -0
  24. supermemory-3.57.0/.release-please-manifest.json +0 -3
  25. supermemory-3.57.0/src/supermemory/types/connection_delete_by_id_response.py +0 -11
  26. supermemory-3.57.0/src/supermemory/types/connection_delete_by_provider_response.py +0 -11
  27. supermemory-3.57.0/src/supermemory/types/profile_response.py +0 -40
  28. {supermemory-3.57.0 → supermemory-3.59.0}/.gitignore +0 -0
  29. {supermemory-3.57.0 → supermemory-3.59.0}/CONTRIBUTING.md +0 -0
  30. {supermemory-3.57.0 → supermemory-3.59.0}/LICENSE +0 -0
  31. {supermemory-3.57.0 → supermemory-3.59.0}/README.md +0 -0
  32. {supermemory-3.57.0 → supermemory-3.59.0}/SECURITY.md +0 -0
  33. {supermemory-3.57.0 → supermemory-3.59.0}/api.md +0 -0
  34. {supermemory-3.57.0 → supermemory-3.59.0}/bin/check-release-environment +0 -0
  35. {supermemory-3.57.0 → supermemory-3.59.0}/bin/publish-pypi +0 -0
  36. {supermemory-3.57.0 → supermemory-3.59.0}/examples/.keep +0 -0
  37. {supermemory-3.57.0 → supermemory-3.59.0}/noxfile.py +0 -0
  38. {supermemory-3.57.0 → supermemory-3.59.0}/release-please-config.json +0 -0
  39. {supermemory-3.57.0 → supermemory-3.59.0}/requirements-dev.lock +0 -0
  40. {supermemory-3.57.0 → supermemory-3.59.0}/requirements.lock +0 -0
  41. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/__init__.py +0 -0
  42. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_base_client.py +0 -0
  43. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_compat.py +0 -0
  44. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_constants.py +0 -0
  45. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_exceptions.py +0 -0
  46. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_files.py +0 -0
  47. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_models.py +0 -0
  48. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_qs.py +0 -0
  49. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_resource.py +0 -0
  50. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_response.py +0 -0
  51. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_streaming.py +0 -0
  52. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_types.py +0 -0
  53. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/__init__.py +0 -0
  54. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_compat.py +0 -0
  55. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_datetime_parse.py +0 -0
  56. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_json.py +0 -0
  57. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_logs.py +0 -0
  58. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_path.py +0 -0
  59. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_proxy.py +0 -0
  60. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_reflection.py +0 -0
  61. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_resources_proxy.py +0 -0
  62. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_streams.py +0 -0
  63. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_sync.py +0 -0
  64. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_transform.py +0 -0
  65. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_typing.py +0 -0
  66. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/_utils/_utils.py +0 -0
  67. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/lib/.keep +0 -0
  68. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/py.typed +0 -0
  69. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/__init__.py +0 -0
  70. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/connections.py +0 -0
  71. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/memories.py +0 -0
  72. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/search.py +0 -0
  73. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/resources/settings.py +0 -0
  74. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/__init__.py +0 -0
  75. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/add_response.py +0 -0
  76. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/client_profile_params.py +0 -0
  77. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_configure_params.py +0 -0
  78. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_configure_response.py +0 -0
  79. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_create_params.py +0 -0
  80. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_delete_by_id_params.py +0 -0
  81. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_delete_by_provider_params.py +0 -0
  82. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_get_by_id_response.py +0 -0
  83. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_get_by_tag_params.py +0 -0
  84. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_get_by_tag_response.py +0 -0
  85. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_import_params.py +0 -0
  86. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_import_response.py +0 -0
  87. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_list_documents_params.py +0 -0
  88. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_list_params.py +0 -0
  89. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_list_response.py +0 -0
  90. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_resources_params.py +0 -0
  91. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/connection_resources_response.py +0 -0
  92. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_add_response.py +0 -0
  93. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_delete_bulk_params.py +0 -0
  94. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_delete_bulk_response.py +0 -0
  95. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_get_response.py +0 -0
  96. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_list_params.py +0 -0
  97. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_list_response.py +0 -0
  98. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_update_response.py +0 -0
  99. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_upload_file_params.py +0 -0
  100. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/document_upload_file_response.py +0 -0
  101. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/memory_forget_params.py +0 -0
  102. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/memory_forget_response.py +0 -0
  103. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/memory_update_memory_params.py +0 -0
  104. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/memory_update_memory_response.py +0 -0
  105. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_documents_params.py +0 -0
  106. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_execute_params.py +0 -0
  107. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/search_memories_params.py +0 -0
  108. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/setting_get_response.py +0 -0
  109. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/setting_update_params.py +0 -0
  110. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory/types/setting_update_response.py +0 -0
  111. {supermemory-3.57.0 → supermemory-3.59.0}/src/supermemory_new/lib/.keep +0 -0
  112. {supermemory-3.57.0 → supermemory-3.59.0}/tests/__init__.py +0 -0
  113. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/__init__.py +0 -0
  114. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_connections.py +0 -0
  115. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_memories.py +0 -0
  116. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_search.py +0 -0
  117. {supermemory-3.57.0 → supermemory-3.59.0}/tests/api_resources/test_settings.py +0 -0
  118. {supermemory-3.57.0 → supermemory-3.59.0}/tests/conftest.py +0 -0
  119. {supermemory-3.57.0 → supermemory-3.59.0}/tests/sample_file.txt +0 -0
  120. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_client.py +0 -0
  121. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_extract_files.py +0 -0
  122. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_files.py +0 -0
  123. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_models.py +0 -0
  124. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_qs.py +0 -0
  125. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_required_args.py +0 -0
  126. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_response.py +0 -0
  127. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_streaming.py +0 -0
  128. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_transform.py +0 -0
  129. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_utils/test_datetime_parse.py +0 -0
  130. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_utils/test_json.py +0 -0
  131. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_utils/test_path.py +0 -0
  132. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_utils/test_proxy.py +0 -0
  133. {supermemory-3.57.0 → supermemory-3.59.0}/tests/test_utils/test_typing.py +0 -0
  134. {supermemory-3.57.0 → supermemory-3.59.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "3.59.0"
3
+ }
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.59.0 (2026-08-14)
4
+
5
+ Full Changelog: [v3.58.0...v3.59.0](https://github.com/supermemoryai/python-sdk/compare/v3.58.0...v3.59.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([556b996](https://github.com/supermemoryai/python-sdk/commit/556b996208d3408931197190237cc571eb8b1ded))
10
+
11
+ ## 3.58.0 (2026-08-14)
12
+
13
+ Full Changelog: [v3.57.0...v3.58.0](https://github.com/supermemoryai/python-sdk/compare/v3.57.0...v3.58.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([28dce44](https://github.com/supermemoryai/python-sdk/commit/28dce44965387f46bc594b796a6054bb4d0472ea))
18
+
3
19
  ## 3.57.0 (2026-08-11)
4
20
 
5
21
  Full Changelog: [v3.56.0...v3.57.0](https://github.com/supermemoryai/python-sdk/compare/v3.56.0...v3.57.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: supermemory
3
- Version: 3.57.0
3
+ Version: 3.59.0
4
4
  Summary: The official Python library for the supermemory API
5
5
  Project-URL: Homepage, https://github.com/supermemoryai/python-sdk
6
6
  Project-URL: Repository, https://github.com/supermemoryai/python-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "supermemory"
3
- version = "3.57.0"
3
+ version = "3.59.0"
4
4
  description = "The official Python library for the supermemory API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -254,6 +254,7 @@ class Supermemory(SyncAPIClient):
254
254
  container_tag: str | Omit = omit,
255
255
  container_tags: SequenceNotStr[str] | Omit = omit,
256
256
  custom_id: str | Omit = omit,
257
+ document_date: str | Omit = omit,
257
258
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
258
259
  entity_context: str | Omit = omit,
259
260
  filepath: str | Omit = omit,
@@ -280,6 +281,12 @@ class Supermemory(SyncAPIClient):
280
281
  custom_id: Optional custom ID of the document. Max 100 characters, alphanumeric with
281
282
  hyphens, underscores, and dots only.
282
283
 
284
+ document_date: When this document's content is from, as opposed to when it was uploaded.
285
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
286
+ relative dates against this instead of the ingestion time, and documents in a
287
+ batch are processed oldest-first so newer facts correctly supersede older ones.
288
+ Set this whenever you backfill historical content.
289
+
283
290
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
284
291
  memories form from coherent, logical units rather than one isolated entry at a
285
292
  time. "instant" processes each document on its own right away, and bills one
@@ -315,6 +322,7 @@ class Supermemory(SyncAPIClient):
315
322
  "container_tag": container_tag,
316
323
  "container_tags": container_tags,
317
324
  "custom_id": custom_id,
325
+ "document_date": document_date,
318
326
  "dreaming": dreaming,
319
327
  "entity_context": entity_context,
320
328
  "filepath": filepath,
@@ -611,6 +619,7 @@ class AsyncSupermemory(AsyncAPIClient):
611
619
  container_tag: str | Omit = omit,
612
620
  container_tags: SequenceNotStr[str] | Omit = omit,
613
621
  custom_id: str | Omit = omit,
622
+ document_date: str | Omit = omit,
614
623
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
615
624
  entity_context: str | Omit = omit,
616
625
  filepath: str | Omit = omit,
@@ -637,6 +646,12 @@ class AsyncSupermemory(AsyncAPIClient):
637
646
  custom_id: Optional custom ID of the document. Max 100 characters, alphanumeric with
638
647
  hyphens, underscores, and dots only.
639
648
 
649
+ document_date: When this document's content is from, as opposed to when it was uploaded.
650
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
651
+ relative dates against this instead of the ingestion time, and documents in a
652
+ batch are processed oldest-first so newer facts correctly supersede older ones.
653
+ Set this whenever you backfill historical content.
654
+
640
655
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
641
656
  memories form from coherent, logical units rather than one isolated entry at a
642
657
  time. "instant" processes each document on its own right away, and bills one
@@ -672,6 +687,7 @@ class AsyncSupermemory(AsyncAPIClient):
672
687
  "container_tag": container_tag,
673
688
  "container_tags": container_tags,
674
689
  "custom_id": custom_id,
690
+ "document_date": document_date,
675
691
  "dreaming": dreaming,
676
692
  "entity_context": entity_context,
677
693
  "filepath": filepath,
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "supermemory"
4
- __version__ = "3.57.0" # x-release-please-version
4
+ __version__ = "3.59.0" # x-release-please-version
@@ -67,6 +67,7 @@ class DocumentsResource(SyncAPIResource):
67
67
  container_tags: SequenceNotStr[str] | Omit = omit,
68
68
  content: str | Omit = omit,
69
69
  custom_id: str | Omit = omit,
70
+ document_date: str | Omit = omit,
70
71
  filepath: str | Omit = omit,
71
72
  filter_by_metadata: Dict[str, Union[str, float, bool, SequenceNotStr[str]]] | Omit = omit,
72
73
  metadata: Dict[str, Union[str, float, bool, SequenceNotStr[str]]] | Omit = omit,
@@ -102,6 +103,13 @@ class DocumentsResource(SyncAPIResource):
102
103
  custom_id: Optional custom ID of the document. This could be an ID from your database that
103
104
  will uniquely identify this document.
104
105
 
106
+ document_date: When this document's content is from, as opposed to when it was uploaded.
107
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
108
+ relative dates ('yesterday', 'last quarter') against this instead of the
109
+ ingestion time, and documents in a batch are processed oldest-first so newer
110
+ facts correctly supersede older ones. Set this whenever you backfill historical
111
+ content.
112
+
105
113
  filepath: Optional file path for the document (e.g., '/documents/reports/file.pdf'). Used
106
114
  by supermemoryfs to map documents to filesystem paths.
107
115
 
@@ -137,6 +145,7 @@ class DocumentsResource(SyncAPIResource):
137
145
  "container_tags": container_tags,
138
146
  "content": content,
139
147
  "custom_id": custom_id,
148
+ "document_date": document_date,
140
149
  "filepath": filepath,
141
150
  "filter_by_metadata": filter_by_metadata,
142
151
  "metadata": metadata,
@@ -262,6 +271,7 @@ class DocumentsResource(SyncAPIResource):
262
271
  container_tag: str | Omit = omit,
263
272
  container_tags: SequenceNotStr[str] | Omit = omit,
264
273
  custom_id: str | Omit = omit,
274
+ document_date: str | Omit = omit,
265
275
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
266
276
  entity_context: str | Omit = omit,
267
277
  filepath: str | Omit = omit,
@@ -288,6 +298,12 @@ class DocumentsResource(SyncAPIResource):
288
298
  custom_id: Optional custom ID of the document. Max 100 characters, alphanumeric with
289
299
  hyphens, underscores, and dots only.
290
300
 
301
+ document_date: When this document's content is from, as opposed to when it was uploaded.
302
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
303
+ relative dates against this instead of the ingestion time, and documents in a
304
+ batch are processed oldest-first so newer facts correctly supersede older ones.
305
+ Set this whenever you backfill historical content.
306
+
291
307
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
292
308
  memories form from coherent, logical units rather than one isolated entry at a
293
309
  time. "instant" processes each document on its own right away, and bills one
@@ -323,6 +339,7 @@ class DocumentsResource(SyncAPIResource):
323
339
  "container_tag": container_tag,
324
340
  "container_tags": container_tags,
325
341
  "custom_id": custom_id,
342
+ "document_date": document_date,
326
343
  "dreaming": dreaming,
327
344
  "entity_context": entity_context,
328
345
  "filepath": filepath,
@@ -345,6 +362,7 @@ class DocumentsResource(SyncAPIResource):
345
362
  container_tag: str | Omit = omit,
346
363
  container_tags: SequenceNotStr[str] | Omit = omit,
347
364
  content: None | Omit = omit,
365
+ document_date: str | Omit = omit,
348
366
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
349
367
  entity_context: str | Omit = omit,
350
368
  filepath: str | Omit = omit,
@@ -372,6 +390,13 @@ class DocumentsResource(SyncAPIResource):
372
390
  containerized by. This can be an ID for your user, a project ID, or any other
373
391
  identifier you wish to use to group documents.
374
392
 
393
+ document_date: When this document's content is from, as opposed to when it was uploaded.
394
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
395
+ relative dates ('yesterday', 'last quarter') against this instead of the
396
+ ingestion time, and documents in a batch are processed oldest-first so newer
397
+ facts correctly supersede older ones. Set this whenever you backfill historical
398
+ content.
399
+
375
400
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
376
401
  memories form from coherent, logical units rather than one isolated entry at a
377
402
  time. "instant" processes each document on its own right away, and bills one
@@ -413,6 +438,7 @@ class DocumentsResource(SyncAPIResource):
413
438
  "container_tag": container_tag,
414
439
  "container_tags": container_tags,
415
440
  "content": content,
441
+ "document_date": document_date,
416
442
  "dreaming": dreaming,
417
443
  "entity_context": entity_context,
418
444
  "filepath": filepath,
@@ -670,6 +696,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
670
696
  container_tags: SequenceNotStr[str] | Omit = omit,
671
697
  content: str | Omit = omit,
672
698
  custom_id: str | Omit = omit,
699
+ document_date: str | Omit = omit,
673
700
  filepath: str | Omit = omit,
674
701
  filter_by_metadata: Dict[str, Union[str, float, bool, SequenceNotStr[str]]] | Omit = omit,
675
702
  metadata: Dict[str, Union[str, float, bool, SequenceNotStr[str]]] | Omit = omit,
@@ -705,6 +732,13 @@ class AsyncDocumentsResource(AsyncAPIResource):
705
732
  custom_id: Optional custom ID of the document. This could be an ID from your database that
706
733
  will uniquely identify this document.
707
734
 
735
+ document_date: When this document's content is from, as opposed to when it was uploaded.
736
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
737
+ relative dates ('yesterday', 'last quarter') against this instead of the
738
+ ingestion time, and documents in a batch are processed oldest-first so newer
739
+ facts correctly supersede older ones. Set this whenever you backfill historical
740
+ content.
741
+
708
742
  filepath: Optional file path for the document (e.g., '/documents/reports/file.pdf'). Used
709
743
  by supermemoryfs to map documents to filesystem paths.
710
744
 
@@ -740,6 +774,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
740
774
  "container_tags": container_tags,
741
775
  "content": content,
742
776
  "custom_id": custom_id,
777
+ "document_date": document_date,
743
778
  "filepath": filepath,
744
779
  "filter_by_metadata": filter_by_metadata,
745
780
  "metadata": metadata,
@@ -865,6 +900,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
865
900
  container_tag: str | Omit = omit,
866
901
  container_tags: SequenceNotStr[str] | Omit = omit,
867
902
  custom_id: str | Omit = omit,
903
+ document_date: str | Omit = omit,
868
904
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
869
905
  entity_context: str | Omit = omit,
870
906
  filepath: str | Omit = omit,
@@ -891,6 +927,12 @@ class AsyncDocumentsResource(AsyncAPIResource):
891
927
  custom_id: Optional custom ID of the document. Max 100 characters, alphanumeric with
892
928
  hyphens, underscores, and dots only.
893
929
 
930
+ document_date: When this document's content is from, as opposed to when it was uploaded.
931
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
932
+ relative dates against this instead of the ingestion time, and documents in a
933
+ batch are processed oldest-first so newer facts correctly supersede older ones.
934
+ Set this whenever you backfill historical content.
935
+
894
936
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
895
937
  memories form from coherent, logical units rather than one isolated entry at a
896
938
  time. "instant" processes each document on its own right away, and bills one
@@ -926,6 +968,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
926
968
  "container_tag": container_tag,
927
969
  "container_tags": container_tags,
928
970
  "custom_id": custom_id,
971
+ "document_date": document_date,
929
972
  "dreaming": dreaming,
930
973
  "entity_context": entity_context,
931
974
  "filepath": filepath,
@@ -948,6 +991,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
948
991
  container_tag: str | Omit = omit,
949
992
  container_tags: SequenceNotStr[str] | Omit = omit,
950
993
  content: None | Omit = omit,
994
+ document_date: str | Omit = omit,
951
995
  dreaming: Literal["instant", "dynamic"] | Omit = omit,
952
996
  entity_context: str | Omit = omit,
953
997
  filepath: str | Omit = omit,
@@ -975,6 +1019,13 @@ class AsyncDocumentsResource(AsyncAPIResource):
975
1019
  containerized by. This can be an ID for your user, a project ID, or any other
976
1020
  identifier you wish to use to group documents.
977
1021
 
1022
+ document_date: When this document's content is from, as opposed to when it was uploaded.
1023
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
1024
+ relative dates ('yesterday', 'last quarter') against this instead of the
1025
+ ingestion time, and documents in a batch are processed oldest-first so newer
1026
+ facts correctly supersede older ones. Set this whenever you backfill historical
1027
+ content.
1028
+
978
1029
  dreaming: Processing mode. "dynamic" (default) groups related documents together so
979
1030
  memories form from coherent, logical units rather than one isolated entry at a
980
1031
  time. "instant" processes each document on its own right away, and bills one
@@ -1016,6 +1067,7 @@ class AsyncDocumentsResource(AsyncAPIResource):
1016
1067
  "container_tag": container_tag,
1017
1068
  "container_tags": container_tags,
1018
1069
  "content": content,
1070
+ "document_date": document_date,
1019
1071
  "dreaming": dreaming,
1020
1072
  "entity_context": entity_context,
1021
1073
  "filepath": filepath,
@@ -32,6 +32,15 @@ class ClientAddParams(TypedDict, total=False):
32
32
  Max 100 characters, alphanumeric with hyphens, underscores, and dots only.
33
33
  """
34
34
 
35
+ document_date: Annotated[str, PropertyInfo(alias="documentDate")]
36
+ """When this document's content is from, as opposed to when it was uploaded.
37
+
38
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
39
+ relative dates against this instead of the ingestion time, and documents in a
40
+ batch are processed oldest-first so newer facts correctly supersede older ones.
41
+ Set this whenever you backfill historical content.
42
+ """
43
+
35
44
  dreaming: Literal["instant", "dynamic"]
36
45
  """Processing mode.
37
46
 
@@ -12,8 +12,8 @@ __all__ = ["ConnectionCreateResponse"]
12
12
  class ConnectionCreateResponse(BaseModel):
13
13
  id: str
14
14
 
15
- auth_link: str = FieldInfo(alias="authLink")
15
+ auth_link: Optional[str] = FieldInfo(alias="authLink", default=None)
16
16
 
17
- expires_in: str = FieldInfo(alias="expiresIn")
17
+ expires_in: Optional[str] = FieldInfo(alias="expiresIn", default=None)
18
18
 
19
19
  redirects_to: Optional[str] = FieldInfo(alias="redirectsTo", default=None)
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ConnectionDeleteByIDResponse", "ConnectionDeleteByIDResponseItem"]
9
+
10
+
11
+ class ConnectionDeleteByIDResponseItem(BaseModel):
12
+ id: str
13
+
14
+ provider: str
15
+
16
+
17
+ ConnectionDeleteByIDResponse: TypeAlias = List[ConnectionDeleteByIDResponseItem]
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ConnectionDeleteByProviderResponse", "ConnectionDeleteByProviderResponseItem"]
9
+
10
+
11
+ class ConnectionDeleteByProviderResponseItem(BaseModel):
12
+ id: str
13
+
14
+ provider: str
15
+
16
+
17
+ ConnectionDeleteByProviderResponse: TypeAlias = List[ConnectionDeleteByProviderResponseItem]
@@ -11,7 +11,7 @@ __all__ = ["ConnectionListDocumentsResponse", "ConnectionListDocumentsResponseIt
11
11
 
12
12
 
13
13
  class ConnectionListDocumentsResponseItem(BaseModel):
14
- id: str
14
+ id: Optional[str] = None
15
15
 
16
16
  created_at: str = FieldInfo(alias="createdAt")
17
17
 
@@ -32,6 +32,15 @@ class DocumentAddParams(TypedDict, total=False):
32
32
  Max 100 characters, alphanumeric with hyphens, underscores, and dots only.
33
33
  """
34
34
 
35
+ document_date: Annotated[str, PropertyInfo(alias="documentDate")]
36
+ """When this document's content is from, as opposed to when it was uploaded.
37
+
38
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
39
+ relative dates against this instead of the ingestion time, and documents in a
40
+ batch are processed oldest-first so newer facts correctly supersede older ones.
41
+ Set this whenever you backfill historical content.
42
+ """
43
+
35
44
  dreaming: Literal["instant", "dynamic"]
36
45
  """Processing mode.
37
46
 
@@ -30,6 +30,16 @@ class DocumentBatchAddParams(TypedDict, total=False):
30
30
 
31
31
  content: None
32
32
 
33
+ document_date: Annotated[str, PropertyInfo(alias="documentDate")]
34
+ """When this document's content is from, as opposed to when it was uploaded.
35
+
36
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
37
+ relative dates ('yesterday', 'last quarter') against this instead of the
38
+ ingestion time, and documents in a batch are processed oldest-first so newer
39
+ facts correctly supersede older ones. Set this whenever you backfill historical
40
+ content.
41
+ """
42
+
33
43
  dreaming: Literal["instant", "dynamic"]
34
44
  """Processing mode.
35
45
 
@@ -111,6 +121,16 @@ class DocumentsUnionMember0(TypedDict, total=False):
111
121
  document.
112
122
  """
113
123
 
124
+ document_date: Annotated[str, PropertyInfo(alias="documentDate")]
125
+ """When this document's content is from, as opposed to when it was uploaded.
126
+
127
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
128
+ relative dates ('yesterday', 'last quarter') against this instead of the
129
+ ingestion time, and documents in a batch are processed oldest-first so newer
130
+ facts correctly supersede older ones. Set this whenever you backfill historical
131
+ content.
132
+ """
133
+
114
134
  dreaming: Literal["instant", "dynamic"]
115
135
  """Processing mode.
116
136
 
@@ -20,6 +20,14 @@ class Result(BaseModel):
20
20
  error: Optional[str] = None
21
21
  """Error message when status is 'error'"""
22
22
 
23
+ url: Optional[str] = None
24
+ """URL of the failed item, when it had one.
25
+
26
+ Only present on failed items, where it may be the only way to tell which input
27
+ the error belongs to (the id falls back to 'unknown' when the input had neither
28
+ an id nor a customId).
29
+ """
30
+
23
31
 
24
32
  class DocumentBatchAddResponse(BaseModel):
25
33
  failed: float
@@ -14,6 +14,12 @@ class Document(BaseModel):
14
14
  id: str
15
15
  """Unique identifier of the document."""
16
16
 
17
+ connection_id: Optional[str] = FieldInfo(alias="connectionId", default=None)
18
+ """Optional ID of connection the document was created from.
19
+
20
+ This is useful for identifying the source of the document.
21
+ """
22
+
17
23
  created_at: str = FieldInfo(alias="createdAt")
18
24
  """Creation timestamp"""
19
25
 
@@ -36,6 +42,9 @@ class Document(BaseModel):
36
42
  status: Literal["unknown", "queued", "extracting", "chunking", "embedding", "indexing", "done", "failed"]
37
43
  """Status of the document"""
38
44
 
45
+ summary: Optional[str] = None
46
+ """Summary of the document content"""
47
+
39
48
  title: Optional[str] = None
40
49
  """Title of the document"""
41
50
 
@@ -45,6 +45,16 @@ class DocumentUpdateParams(TypedDict, total=False):
45
45
  document.
46
46
  """
47
47
 
48
+ document_date: Annotated[str, PropertyInfo(alias="documentDate")]
49
+ """When this document's content is from, as opposed to when it was uploaded.
50
+
51
+ Accepts YYYY-MM-DD or a full ISO 8601 timestamp. Memory extraction resolves
52
+ relative dates ('yesterday', 'last quarter') against this instead of the
53
+ ingestion time, and documents in a batch are processed oldest-first so newer
54
+ facts correctly supersede older ones. Set this whenever you backfill historical
55
+ content.
56
+ """
57
+
48
58
  filepath: str
49
59
  """Optional file path for the document (e.g., '/documents/reports/file.pdf').
50
60
 
@@ -0,0 +1,200 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._models import BaseModel
9
+
10
+ __all__ = [
11
+ "ProfileResponse",
12
+ "Profile",
13
+ "SearchResults",
14
+ "SearchResultsResult",
15
+ "SearchResultsResultChunk",
16
+ "SearchResultsResultContext",
17
+ "SearchResultsResultContextChild",
18
+ "SearchResultsResultContextParent",
19
+ "SearchResultsResultContextRelated",
20
+ "SearchResultsResultDocument",
21
+ ]
22
+
23
+
24
+ class Profile(BaseModel):
25
+ buckets: Optional[Dict[str, List[str]]] = None
26
+ """Per-bucket memory lists, keyed by bucket key"""
27
+
28
+ dynamic: Optional[List[str]] = None
29
+ """Dynamic profile information (recent memories)"""
30
+
31
+ static: Optional[List[str]] = None
32
+ """Static profile information that remains relevant long-term"""
33
+
34
+
35
+ class SearchResultsResultChunk(BaseModel):
36
+ content: str
37
+ """Content of the chunk"""
38
+
39
+ document_id: str = FieldInfo(alias="documentId")
40
+ """ID of the document this chunk belongs to"""
41
+
42
+ position: float
43
+ """Position of chunk in the document (0-indexed)"""
44
+
45
+
46
+ class SearchResultsResultContextChild(BaseModel):
47
+ memory: str
48
+ """The contextual memory content"""
49
+
50
+ relation: Literal["updates", "extends", "derives"]
51
+ """Relation type between this memory and its parent/child"""
52
+
53
+ updated_at: str = FieldInfo(alias="updatedAt")
54
+ """Contextual memory last update date"""
55
+
56
+ metadata: Optional[Dict[str, object]] = None
57
+ """Contextual memory metadata"""
58
+
59
+ version: Optional[float] = None
60
+ """
61
+ Relative version distance from the primary memory (+1 for direct child, +2 for
62
+ grand-child, etc.)
63
+ """
64
+
65
+
66
+ class SearchResultsResultContextParent(BaseModel):
67
+ memory: str
68
+ """The contextual memory content"""
69
+
70
+ relation: Literal["updates", "extends", "derives"]
71
+ """Relation type between this memory and its parent/child"""
72
+
73
+ updated_at: str = FieldInfo(alias="updatedAt")
74
+ """Contextual memory last update date"""
75
+
76
+ metadata: Optional[Dict[str, object]] = None
77
+ """Contextual memory metadata"""
78
+
79
+ version: Optional[float] = None
80
+ """
81
+ Relative version distance from the primary memory (-1 for direct parent, -2 for
82
+ grand-parent, etc.)
83
+ """
84
+
85
+
86
+ class SearchResultsResultContextRelated(BaseModel):
87
+ memory: str
88
+ """The related memory content"""
89
+
90
+ relation: Literal["extends", "derives"]
91
+ """Relation type"""
92
+
93
+ updated_at: str = FieldInfo(alias="updatedAt")
94
+ """Related memory last update date"""
95
+
96
+ metadata: Optional[Dict[str, object]] = None
97
+ """Related memory metadata"""
98
+
99
+
100
+ class SearchResultsResultContext(BaseModel):
101
+ """
102
+ Object containing version history (parents/children via updates) and related memories (extends/derives)
103
+ """
104
+
105
+ children: Optional[List[SearchResultsResultContextChild]] = None
106
+
107
+ parents: Optional[List[SearchResultsResultContextParent]] = None
108
+
109
+ related: Optional[List[SearchResultsResultContextRelated]] = None
110
+
111
+
112
+ class SearchResultsResultDocument(BaseModel):
113
+ id: str
114
+ """Document ID"""
115
+
116
+ created_at: str = FieldInfo(alias="createdAt")
117
+ """Document creation date"""
118
+
119
+ updated_at: str = FieldInfo(alias="updatedAt")
120
+ """Document last update date"""
121
+
122
+ metadata: Optional[Dict[str, object]] = None
123
+ """Document metadata (only included when documents=true)"""
124
+
125
+ summary: Optional[str] = None
126
+ """Document summary (only included when summaries=true)"""
127
+
128
+ title: Optional[str] = None
129
+ """Document title (only included when documents=true)"""
130
+
131
+ type: Optional[str] = None
132
+ """Document type (only included when documents=true)"""
133
+
134
+
135
+ class SearchResultsResult(BaseModel):
136
+ id: str
137
+ """Memory entry ID or chunk ID"""
138
+
139
+ metadata: Optional[Dict[str, object]] = None
140
+ """Memory metadata"""
141
+
142
+ similarity: float
143
+ """Similarity score between the query and memory entry"""
144
+
145
+ updated_at: str = FieldInfo(alias="updatedAt")
146
+ """Memory last update date"""
147
+
148
+ chunk: Optional[str] = None
149
+ """The chunk content (only present for chunk results from hybrid search)"""
150
+
151
+ chunks: Optional[List[SearchResultsResultChunk]] = None
152
+ """Relevant chunks from associated documents (only included when chunks=true)"""
153
+
154
+ context: Optional[SearchResultsResultContext] = None
155
+ """
156
+ Object containing version history (parents/children via updates) and related
157
+ memories (extends/derives)
158
+ """
159
+
160
+ documents: Optional[List[SearchResultsResultDocument]] = None
161
+ """Associated documents for this memory entry"""
162
+
163
+ filepath: Optional[str] = None
164
+ """Filepath of the source document this memory or chunk came from"""
165
+
166
+ is_aggregated: Optional[bool] = FieldInfo(alias="isAggregated", default=None)
167
+ """Indicates if this memory was created by aggregating multiple source memories"""
168
+
169
+ memory: Optional[str] = None
170
+ """The memory content (only present for memory results)"""
171
+
172
+ root_memory_id: Optional[str] = FieldInfo(alias="rootMemoryId", default=None)
173
+ """ID of the root (first version) memory entry this one descends from.
174
+
175
+ Null for memories that have never been superseded. Only present on memory
176
+ results, not on standalone chunk results.
177
+ """
178
+
179
+ version: Optional[float] = None
180
+ """Version number of this memory entry"""
181
+
182
+
183
+ class SearchResults(BaseModel):
184
+ """Search results if a search query was provided"""
185
+
186
+ results: List[SearchResultsResult]
187
+ """Search results for the provided query"""
188
+
189
+ timing: float
190
+ """Search timing in milliseconds"""
191
+
192
+ total: float
193
+ """Total number of search results"""
194
+
195
+
196
+ class ProfileResponse(BaseModel):
197
+ profile: Profile
198
+
199
+ search_results: Optional[SearchResults] = FieldInfo(alias="searchResults", default=None)
200
+ """Search results if a search query was provided"""