rememberstack 0.1.0__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 (186) hide show
  1. rememberstack/__init__.py +9 -0
  2. rememberstack/adapters/__init__.py +42 -0
  3. rememberstack/adapters/codex_writer.py +221 -0
  4. rememberstack/adapters/markitdown_converter.py +42 -0
  5. rememberstack/adapters/openrouter.py +136 -0
  6. rememberstack/adapters/selfhost/__init__.py +54 -0
  7. rememberstack/adapters/selfhost/forget.py +66 -0
  8. rememberstack/adapters/selfhost/git.py +374 -0
  9. rememberstack/adapters/selfhost/lance.py +328 -0
  10. rememberstack/adapters/selfhost/minio.py +279 -0
  11. rememberstack/adapters/selfhost/mounts.py +249 -0
  12. rememberstack/adapters/selfhost/object_store.py +130 -0
  13. rememberstack/adapters/selfhost/projection.py +80 -0
  14. rememberstack/adapters/selfhost/queue.py +137 -0
  15. rememberstack/adapters/selfhost/telemetry.py +45 -0
  16. rememberstack/adapters/selfhost/watcher.py +70 -0
  17. rememberstack/adapters/testing/__init__.py +15 -0
  18. rememberstack/adapters/testing/cost_meter.py +13 -0
  19. rememberstack/adapters/testing/model_provider.py +83 -0
  20. rememberstack/adapters/testing/queue.py +43 -0
  21. rememberstack/adapters/testing/telemetry.py +22 -0
  22. rememberstack/client.py +19 -0
  23. rememberstack/core/__init__.py +127 -0
  24. rememberstack/core/blockizer.py +189 -0
  25. rememberstack/core/chunker.py +216 -0
  26. rememberstack/core/consumption_skill.py +275 -0
  27. rememberstack/core/conversion.py +76 -0
  28. rememberstack/core/core_manifest.py +598 -0
  29. rememberstack/core/extension_packs.py +124 -0
  30. rememberstack/core/forget.py +17 -0
  31. rememberstack/core/knowledge_authored.py +276 -0
  32. rememberstack/core/knowledge_compile.py +215 -0
  33. rememberstack/core/knowledge_fact_sheet.py +210 -0
  34. rememberstack/core/knowledge_hashing.py +68 -0
  35. rememberstack/core/knowledge_planner.py +64 -0
  36. rememberstack/core/knowledge_writer.py +175 -0
  37. rememberstack/core/ranking.py +200 -0
  38. rememberstack/core/recipe_linter.py +149 -0
  39. rememberstack/core/section_snap.py +209 -0
  40. rememberstack/core/storage_routing.py +27 -0
  41. rememberstack/eval/__init__.py +53 -0
  42. rememberstack/eval/consumption.py +141 -0
  43. rememberstack/eval/contradiction.py +184 -0
  44. rememberstack/eval/harness.py +136 -0
  45. rememberstack/eval/lifecycle.py +400 -0
  46. rememberstack/eval/operational_scale.py +49 -0
  47. rememberstack/eval/resolution.py +255 -0
  48. rememberstack/eval/retrieval_spikes.py +50 -0
  49. rememberstack/eval/skeleton.py +231 -0
  50. rememberstack/llm/__init__.py +1 -0
  51. rememberstack/model/__init__.py +589 -0
  52. rememberstack/model/adjudication.py +100 -0
  53. rememberstack/model/auth.py +27 -0
  54. rememberstack/model/blocks.py +30 -0
  55. rememberstack/model/chunks.py +190 -0
  56. rememberstack/model/claims.py +162 -0
  57. rememberstack/model/client.py +98 -0
  58. rememberstack/model/clustering.py +54 -0
  59. rememberstack/model/component_version.py +124 -0
  60. rememberstack/model/consumption.py +88 -0
  61. rememberstack/model/conversion.py +31 -0
  62. rememberstack/model/deployment.py +53 -0
  63. rememberstack/model/documents.py +168 -0
  64. rememberstack/model/envelope.py +513 -0
  65. rememberstack/model/evaluation.py +72 -0
  66. rememberstack/model/forget.py +143 -0
  67. rememberstack/model/git.py +13 -0
  68. rememberstack/model/knowledge.py +840 -0
  69. rememberstack/model/knowledge_authored.py +325 -0
  70. rememberstack/model/knowledge_planner.py +431 -0
  71. rememberstack/model/lifecycle.py +42 -0
  72. rememberstack/model/model_provider.py +78 -0
  73. rememberstack/model/mounts.py +24 -0
  74. rememberstack/model/object_store.py +21 -0
  75. rememberstack/model/operational_scale.py +59 -0
  76. rememberstack/model/operations.py +153 -0
  77. rememberstack/model/processing.py +228 -0
  78. rememberstack/model/queue.py +73 -0
  79. rememberstack/model/recipes.py +83 -0
  80. rememberstack/model/relations.py +79 -0
  81. rememberstack/model/resolution.py +83 -0
  82. rememberstack/model/retrieval_spikes.py +62 -0
  83. rememberstack/model/sections.py +120 -0
  84. rememberstack/model/telemetry.py +30 -0
  85. rememberstack/ports/__init__.py +29 -0
  86. rememberstack/ports/auth.py +16 -0
  87. rememberstack/ports/connector.py +23 -0
  88. rememberstack/ports/cost_meter.py +17 -0
  89. rememberstack/ports/forget.py +20 -0
  90. rememberstack/ports/git.py +20 -0
  91. rememberstack/ports/model_provider.py +28 -0
  92. rememberstack/ports/mounts.py +16 -0
  93. rememberstack/ports/object_store.py +27 -0
  94. rememberstack/ports/p1_index.py +92 -0
  95. rememberstack/ports/purge.py +93 -0
  96. rememberstack/ports/queue.py +23 -0
  97. rememberstack/ports/telemetry.py +21 -0
  98. rememberstack/profiles/__init__.py +22 -0
  99. rememberstack/profiles/selfhost.py +324 -0
  100. rememberstack/profiles/selfhost_forget.py +158 -0
  101. rememberstack/profiles/selfhost_operations.py +95 -0
  102. rememberstack/py.typed +1 -0
  103. rememberstack/spine/__init__.py +93 -0
  104. rememberstack/spine/admission.py +26 -0
  105. rememberstack/spine/backfill.py +168 -0
  106. rememberstack/spine/catalog_contract.py +742 -0
  107. rememberstack/spine/chunk_catalog.py +237 -0
  108. rememberstack/spine/claim_catalog.py +298 -0
  109. rememberstack/spine/clustering.py +740 -0
  110. rememberstack/spine/component_versions.py +208 -0
  111. rememberstack/spine/consumption.py +81 -0
  112. rememberstack/spine/deployment_bootstrap.py +445 -0
  113. rememberstack/spine/document_catalog.py +621 -0
  114. rememberstack/spine/entity_registry.py +205 -0
  115. rememberstack/spine/extension_packs.py +220 -0
  116. rememberstack/spine/fact_catalog.py +571 -0
  117. rememberstack/spine/forget.py +1753 -0
  118. rememberstack/spine/knowledge.py +5467 -0
  119. rememberstack/spine/lifecycle.py +1071 -0
  120. rememberstack/spine/migrations/__init__.py +1 -0
  121. rememberstack/spine/migrations/_helpers.py +153 -0
  122. rememberstack/spine/migrations/env.py +58 -0
  123. rememberstack/spine/migrations/script.py.mako +27 -0
  124. rememberstack/spine/migrations/versions/__init__.py +1 -0
  125. rememberstack/spine/migrations/versions/p0_02_0001_extensions_enums.py +189 -0
  126. rememberstack/spine/migrations/versions/p0_02_0002_infrastructure_registries.py +321 -0
  127. rememberstack/spine/migrations/versions/p0_02_0003_entities_evaluation_e0_e1.py +631 -0
  128. rememberstack/spine/migrations/versions/p0_02_0004_claims_facts_evidence.py +411 -0
  129. rememberstack/spine/migrations/versions/p0_02_0005_projection_knowledge_retrieval.py +391 -0
  130. rememberstack/spine/migrations/versions/p0_02_0006_partitions_views.py +158 -0
  131. rememberstack/spine/migrations/versions/p2_06_0007_invalidated_outcome.py +26 -0
  132. rememberstack/spine/migrations/versions/p3_01_0008_document_version_target.py +58 -0
  133. rememberstack/spine/migrations/versions/p3_05_0009_reconcile_stage.py +27 -0
  134. rememberstack/spine/migrations/versions/p3_07_0010_lifecycle_eval_suite.py +25 -0
  135. rememberstack/spine/migrations/versions/p4_01_0011_survivor_view_rewrite.py +57 -0
  136. rememberstack/spine/migrations/versions/p6_02_0012_knowledge_compile_recovery.py +58 -0
  137. rememberstack/spine/migrations/versions/p6_04_0013_knowledge_writer_ledger.py +46 -0
  138. rememberstack/spine/migrations/versions/p6_05_0014_knowledge_planner_runtime.py +217 -0
  139. rememberstack/spine/migrations/versions/p6_06_0015_authored_dispatch_runtime.py +38 -0
  140. rememberstack/spine/migrations/versions/p7_02_0016_operational_eval_suite.py +19 -0
  141. rememberstack/spine/migrations/versions/p7_05_0017_hard_forget.py +55 -0
  142. rememberstack/spine/observation_adjudication.py +778 -0
  143. rememberstack/spine/operations.py +298 -0
  144. rememberstack/spine/projection.py +662 -0
  145. rememberstack/spine/recipes.py +276 -0
  146. rememberstack/spine/resolver.py +763 -0
  147. rememberstack/spine/review.py +650 -0
  148. rememberstack/spine/settings.py +22 -0
  149. rememberstack/spine/supersession.py +510 -0
  150. rememberstack/spine/sync.py +128 -0
  151. rememberstack/spine/work_ledger.py +816 -0
  152. rememberstack/surfaces/__init__.py +110 -0
  153. rememberstack/surfaces/cli.py +447 -0
  154. rememberstack/surfaces/consumption_skill.py +87 -0
  155. rememberstack/surfaces/graph_queries.py +698 -0
  156. rememberstack/surfaces/http_api.py +377 -0
  157. rememberstack/surfaces/mcp.py +67 -0
  158. rememberstack/surfaces/query_engine.py +1591 -0
  159. rememberstack/surfaces/recipe_executor.py +185 -0
  160. rememberstack/surfaces/recipe_surface.py +219 -0
  161. rememberstack/surfaces/remote_mcp.py +133 -0
  162. rememberstack/surfaces/sdk.py +324 -0
  163. rememberstack/workers/__init__.py +155 -0
  164. rememberstack/workers/base.py +312 -0
  165. rememberstack/workers/e0.py +577 -0
  166. rememberstack/workers/e1.py +425 -0
  167. rememberstack/workers/e2.py +525 -0
  168. rememberstack/workers/e3.py +434 -0
  169. rememberstack/workers/forget.py +299 -0
  170. rememberstack/workers/knowledge_authored.py +146 -0
  171. rememberstack/workers/knowledge_driver.py +735 -0
  172. rememberstack/workers/knowledge_fact_sheet.py +123 -0
  173. rememberstack/workers/knowledge_planner.py +325 -0
  174. rememberstack/workers/knowledge_writer.py +393 -0
  175. rememberstack/workers/operations.py +42 -0
  176. rememberstack/workers/p1.py +234 -0
  177. rememberstack/workers/p2.py +513 -0
  178. rememberstack/workers/p2_analytics.py +276 -0
  179. rememberstack/workers/p3.py +673 -0
  180. rememberstack/workers/reconcile.py +485 -0
  181. rememberstack/workers/sync.py +168 -0
  182. rememberstack-0.1.0.dist-info/METADATA +213 -0
  183. rememberstack-0.1.0.dist-info/RECORD +186 -0
  184. rememberstack-0.1.0.dist-info/WHEEL +4 -0
  185. rememberstack-0.1.0.dist-info/entry_points.txt +2 -0
  186. rememberstack-0.1.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,324 @@
1
+ """The dependency-light typed HTTP SDK (D62 client surface).
2
+
3
+ The SDK knows only the deployment API and typed wire values. It carries no
4
+ Postgres, worker, model-provider, or adapter dependency, so the base wheel can
5
+ be installed in an agent harness without installing the server runtime.
6
+ """
7
+
8
+ from collections.abc import Mapping
9
+ from datetime import datetime
10
+ from datetime import timedelta
11
+ import mimetypes
12
+ from pathlib import Path
13
+ from typing import Literal
14
+ from typing import TypeVar
15
+ from uuid import UUID
16
+
17
+ import httpx
18
+ from pydantic import BaseModel
19
+ from pydantic import Field
20
+ from pydantic import SecretStr
21
+ from pydantic import ValidationError
22
+ from pydantic_settings import BaseSettings
23
+ from pydantic_settings import SettingsConfigDict
24
+
25
+ from rememberstack.model.client import ConnectorCreate
26
+ from rememberstack.model.client import ConnectorDescriptor
27
+ from rememberstack.model.client import ToolDescriptor
28
+ from rememberstack.model.documents import IngestedVersion
29
+ from rememberstack.model.envelope import Envelope
30
+
31
+ _ModelT = TypeVar("_ModelT", bound=BaseModel)
32
+
33
+
34
+ class ClientSettings(BaseSettings):
35
+ """How a client reaches one deployment API."""
36
+
37
+ model_config = SettingsConfigDict(env_prefix="REMEMBERSTACK_", extra="ignore")
38
+
39
+ api_url: str = "http://127.0.0.1:8000"
40
+ api_authorization: SecretStr | None = None
41
+ api_timeout_seconds: float = Field(default=30.0, gt=0)
42
+
43
+
44
+ class MemoryApiError(Exception):
45
+ """The deployment API was unreachable or returned an unusable response."""
46
+
47
+ def __init__(self, *, status_code: int, detail: str) -> None:
48
+ super().__init__(f"API {status_code}: {detail}")
49
+ self.status_code = status_code
50
+ self.detail = detail
51
+
52
+
53
+ class MemoryClient:
54
+ """Typed synchronous client for query, ingest, and connector management."""
55
+
56
+ def __init__(
57
+ self,
58
+ *,
59
+ base_url: str | None = None,
60
+ authorization: str | None = None,
61
+ client: httpx.Client | None = None,
62
+ timeout: float | None = None,
63
+ settings: ClientSettings | None = None,
64
+ ) -> None:
65
+ """Bind either an owned HTTP client or an injected transport client."""
66
+ if client is not None and any(
67
+ value is not None for value in (base_url, authorization, timeout, settings)
68
+ ):
69
+ raise ValueError(
70
+ "an injected client cannot be combined with client settings"
71
+ )
72
+ self._owned = client is None
73
+ if client is not None:
74
+ self._client = client
75
+ return
76
+ resolved = settings or ClientSettings.model_validate({})
77
+ resolved_authorization = authorization or (
78
+ resolved.api_authorization.get_secret_value()
79
+ if resolved.api_authorization is not None
80
+ else None
81
+ )
82
+ self._client = httpx.Client(
83
+ base_url=base_url or resolved.api_url,
84
+ headers=(
85
+ {"Authorization": resolved_authorization}
86
+ if resolved_authorization
87
+ else None
88
+ ),
89
+ timeout=(timeout if timeout is not None else resolved.api_timeout_seconds),
90
+ )
91
+
92
+ @classmethod
93
+ def from_settings(cls) -> "MemoryClient":
94
+ """Build from the deployment API environment settings."""
95
+ return cls(settings=ClientSettings.model_validate({}))
96
+
97
+ def __enter__(self) -> "MemoryClient":
98
+ return self
99
+
100
+ def __exit__(self, *_args: object) -> None:
101
+ self.close()
102
+
103
+ def close(self) -> None:
104
+ """Close only a transport the SDK created itself."""
105
+ if self._owned:
106
+ self._client.close()
107
+
108
+ def recipes(self) -> tuple[ToolDescriptor, ...]:
109
+ """Return the deployment recipe registry as typed tool descriptors."""
110
+ payload = self._json("GET", "/recipes")
111
+ if not isinstance(payload, list):
112
+ raise MemoryApiError(
113
+ status_code=200, detail="GET /recipes did not return a list"
114
+ )
115
+ return tuple(
116
+ _validated(ToolDescriptor, item, endpoint="GET /recipes")
117
+ for item in payload
118
+ )
119
+
120
+ def run_recipe(
121
+ self, *, name: str, arguments: Mapping[str, object] | None = None
122
+ ) -> Envelope:
123
+ """Run one registry recipe and return its self-accounting envelope."""
124
+ return _validated(
125
+ Envelope,
126
+ self._json("POST", f"/recipe/{name}", json_body=dict(arguments or {})),
127
+ endpoint=f"POST /recipe/{name}",
128
+ )
129
+
130
+ def resolve(
131
+ self,
132
+ *,
133
+ name: str,
134
+ entity_type: str | None = None,
135
+ context_entity_ids: tuple[UUID, ...] = (),
136
+ ) -> Envelope:
137
+ """Resolve a name, optionally using bounded focal-entity context."""
138
+ params: list[tuple[str, str]] = [("name", name)]
139
+ if entity_type is not None:
140
+ params.append(("entity_type", entity_type))
141
+ params.extend(
142
+ ("context_entity_ids", str(value)) for value in context_entity_ids
143
+ )
144
+ return _validated(
145
+ Envelope,
146
+ self._json("GET", "/resolve", params=tuple(params)),
147
+ endpoint="GET /resolve",
148
+ )
149
+
150
+ def search_claims(self, *, query: str, k: int = 10) -> Envelope:
151
+ """Search source claims; the returned envelope remains evidence grain."""
152
+ return _validated(
153
+ Envelope,
154
+ self._json("GET", "/search/claims", params={"query": query, "k": k}),
155
+ endpoint="GET /search/claims",
156
+ )
157
+
158
+ def hydrate_relation(self, *, relation_id: UUID) -> Envelope:
159
+ """Hydrate a relation through evidence to its source documents."""
160
+ return _validated(
161
+ Envelope,
162
+ self._json("GET", f"/hydrate/relation/{relation_id}"),
163
+ endpoint=f"GET /hydrate/relation/{relation_id}",
164
+ )
165
+
166
+ def ingest(
167
+ self,
168
+ source: bytes | Path,
169
+ *,
170
+ filename: str | None = None,
171
+ mime: str | None = None,
172
+ title: str | None = None,
173
+ source_kind: str | None = None,
174
+ source_ref: str | None = None,
175
+ source_modified_at: datetime | None = None,
176
+ versioning_mode: Literal["snapshot", "living"] = "snapshot",
177
+ source_version_ref: str | None = None,
178
+ ) -> IngestedVersion:
179
+ """Push bytes through E0, optionally as a stable document lineage.
180
+
181
+ ``source_kind`` and ``source_ref`` are a pair. Reusing them creates a
182
+ new immutable version of the same document when the bytes change.
183
+ """
184
+ if (source_kind is None) != (source_ref is None):
185
+ raise ValueError("source_kind and source_ref must be supplied together")
186
+ if source_kind is None and (
187
+ source_modified_at is not None
188
+ or source_version_ref is not None
189
+ or versioning_mode != "snapshot"
190
+ ):
191
+ raise ValueError(
192
+ "source timestamps, revisions, and living mode require"
193
+ " source_kind/source_ref"
194
+ )
195
+ if source_modified_at is not None and (
196
+ source_modified_at.tzinfo is None
197
+ or source_modified_at.utcoffset() != timedelta(0)
198
+ ):
199
+ raise ValueError("source_modified_at must be timezone-aware UTC")
200
+ if isinstance(source, Path):
201
+ content = source.read_bytes()
202
+ filename = filename or source.name
203
+ mime = mime or mimetypes.guess_type(source.name)[0]
204
+ else:
205
+ content = source
206
+ if not filename:
207
+ raise ValueError("filename is required when ingesting bytes")
208
+ if not mime:
209
+ mime = "application/octet-stream"
210
+ params: dict[str, str] = {
211
+ "filename": filename,
212
+ "mime": mime,
213
+ "versioning_mode": versioning_mode,
214
+ }
215
+ for key, value in (
216
+ ("title", title),
217
+ ("source_kind", source_kind),
218
+ ("source_ref", source_ref),
219
+ (
220
+ "source_modified_at",
221
+ source_modified_at.isoformat() if source_modified_at else None,
222
+ ),
223
+ ("source_version_ref", source_version_ref),
224
+ ):
225
+ if value is not None:
226
+ params[key] = value
227
+ return _validated(
228
+ IngestedVersion,
229
+ self._json(
230
+ "POST",
231
+ "/ingest",
232
+ params=params,
233
+ content=content,
234
+ headers={"Content-Type": "application/octet-stream"},
235
+ ),
236
+ endpoint="POST /ingest",
237
+ )
238
+
239
+ def connectors(self) -> tuple[ConnectorDescriptor, ...]:
240
+ """List deployment-side connectors without executing any client-side."""
241
+ payload = self._json("GET", "/connectors")
242
+ if not isinstance(payload, list):
243
+ raise MemoryApiError(
244
+ status_code=200, detail="GET /connectors did not return a list"
245
+ )
246
+ return tuple(
247
+ _validated(ConnectorDescriptor, item, endpoint="GET /connectors")
248
+ for item in payload
249
+ )
250
+
251
+ def add_connector(self, *, connector: ConnectorCreate) -> ConnectorDescriptor:
252
+ """Create deployment-side connector configuration."""
253
+ return _validated(
254
+ ConnectorDescriptor,
255
+ self._json(
256
+ "POST", "/connectors", json_body=connector.model_dump(mode="json")
257
+ ),
258
+ endpoint="POST /connectors",
259
+ )
260
+
261
+ def pause_connector(self, *, connector_id: UUID) -> ConnectorDescriptor:
262
+ """Pause connector execution in the deployment."""
263
+ return _validated(
264
+ ConnectorDescriptor,
265
+ self._json("POST", f"/connectors/{connector_id}/pause"),
266
+ endpoint=f"POST /connectors/{connector_id}/pause",
267
+ )
268
+
269
+ def connector_status(self, *, connector_id: UUID) -> ConnectorDescriptor:
270
+ """Return one connector's deployment-side status."""
271
+ return _validated(
272
+ ConnectorDescriptor,
273
+ self._json("GET", f"/connectors/{connector_id}"),
274
+ endpoint=f"GET /connectors/{connector_id}",
275
+ )
276
+
277
+ def _json(
278
+ self,
279
+ method: str,
280
+ path: str,
281
+ *,
282
+ params: Mapping[str, str | int] | tuple[tuple[str, str], ...] | None = None,
283
+ json_body: object | None = None,
284
+ content: bytes | None = None,
285
+ headers: dict[str, str] | None = None,
286
+ ) -> object:
287
+ """Send one request, map typed HTTP failure, and decode JSON."""
288
+ try:
289
+ response = self._client.request(
290
+ method,
291
+ path,
292
+ params=params,
293
+ json=json_body,
294
+ content=content,
295
+ headers=headers,
296
+ )
297
+ except httpx.HTTPError as error:
298
+ raise MemoryApiError(status_code=0, detail=str(error)) from error
299
+ if not response.is_success:
300
+ detail = response.text
301
+ try:
302
+ body = response.json()
303
+ except ValueError:
304
+ body = None
305
+ if isinstance(body, dict) and "detail" in body:
306
+ detail = str(body["detail"])
307
+ raise MemoryApiError(status_code=response.status_code, detail=detail)
308
+ try:
309
+ return response.json()
310
+ except ValueError as error:
311
+ raise MemoryApiError(
312
+ status_code=response.status_code,
313
+ detail=f"{method} {path} returned invalid JSON",
314
+ ) from error
315
+
316
+
317
+ def _validated(model: type[_ModelT], payload: object, *, endpoint: str) -> _ModelT:
318
+ """Validate one JSON-mode response or raise the SDK's public error type."""
319
+ try:
320
+ return model.model_validate(payload, strict=False)
321
+ except (ValidationError, TypeError) as error:
322
+ raise MemoryApiError(
323
+ status_code=200, detail=f"{endpoint} returned an invalid response body"
324
+ ) from error
@@ -0,0 +1,155 @@
1
+ """Pipeline worker package: the handler model, the runner, and stage handlers."""
2
+
3
+ from rememberstack.workers.base import HandlerOutcome
4
+ from rememberstack.workers.base import HandlerRegistry
5
+ from rememberstack.workers.base import RunResult
6
+ from rememberstack.workers.base import StageHandler
7
+ from rememberstack.workers.base import Worker
8
+ from rememberstack.workers.e0 import ConvertHandler
9
+ from rememberstack.workers.e0 import E0_CONVERT_VERSION
10
+ from rememberstack.workers.e0 import E0_STRUCTURE_VERSION
11
+ from rememberstack.workers.e0 import StructureHandler
12
+ from rememberstack.workers.e0 import StructurerSettings
13
+ from rememberstack.workers.e0 import UPLOAD_SOURCE_KIND
14
+ from rememberstack.workers.e0 import UploadIngestor
15
+ from rememberstack.workers.e1 import ChunkHandler
16
+ from rememberstack.workers.e1 import E1_CHUNK_VERSION
17
+ from rememberstack.workers.e1 import E1_EMBED_VERSION
18
+ from rememberstack.workers.e1 import E1Settings
19
+ from rememberstack.workers.e1 import E2_EXTRACTOR_VERSION
20
+ from rememberstack.workers.e1 import EmbedChunksHandler
21
+ from rememberstack.workers.e2 import E2Settings
22
+ from rememberstack.workers.e2 import ExtractClaimsHandler
23
+ from rememberstack.workers.e3 import AdjudicateSupersessionHandler
24
+ from rememberstack.workers.e3 import E3_NORMALIZER_VERSION
25
+ from rememberstack.workers.e3 import E3Settings
26
+ from rememberstack.workers.e3 import NormalizeRelationsHandler
27
+ from rememberstack.workers.forget import ForgetKnowledgeRebuilder
28
+ from rememberstack.workers.forget import ForgetProjectionRebuilder
29
+ from rememberstack.workers.forget import HardForgetHandler
30
+ from rememberstack.workers.forget import HardForgetReadiness
31
+ from rememberstack.workers.forget import HardForgetService
32
+ from rememberstack.workers.forget import KnowledgeCycleForgetRebuilder
33
+ from rememberstack.workers.forget import ProjectionPairForgetRebuilder
34
+ from rememberstack.workers.knowledge_authored import KnowledgeAuthoredSynchronizer
35
+ from rememberstack.workers.knowledge_authored import KnowledgeDispatchHandler
36
+ from rememberstack.workers.knowledge_authored import KnowledgeWorkflowDispatcher
37
+ from rememberstack.workers.knowledge_driver import KNOWLEDGE_DRIVER_VERSION
38
+ from rememberstack.workers.knowledge_driver import KnowledgeCommitDriver
39
+ from rememberstack.workers.knowledge_driver import KnowledgeCommitSettings
40
+ from rememberstack.workers.knowledge_driver import KnowledgePageCompiler
41
+ from rememberstack.workers.knowledge_driver import KnowledgeRoutingDriver
42
+ from rememberstack.workers.knowledge_fact_sheet import KNOWLEDGE_FACT_SHEET_VERSION
43
+ from rememberstack.workers.knowledge_fact_sheet import KnowledgeFactSheetCompileError
44
+ from rememberstack.workers.knowledge_fact_sheet import KnowledgeFactSheetCompiler
45
+ from rememberstack.workers.knowledge_planner import KNOWLEDGE_PLANNER_VERSION
46
+ from rememberstack.workers.knowledge_planner import KnowledgePlannerError
47
+ from rememberstack.workers.knowledge_planner import KnowledgePlannerSession
48
+ from rememberstack.workers.knowledge_planner import KnowledgePlannerSettings
49
+ from rememberstack.workers.knowledge_planner import KnowledgePlannerWorker
50
+ from rememberstack.workers.knowledge_writer import KNOWLEDGE_WRITER_VERSION
51
+ from rememberstack.workers.knowledge_writer import KnowledgePageCompilerRouter
52
+ from rememberstack.workers.knowledge_writer import KnowledgeProseCompiler
53
+ from rememberstack.workers.knowledge_writer import KnowledgeWriterError
54
+ from rememberstack.workers.knowledge_writer import KnowledgeWriterSession
55
+ from rememberstack.workers.knowledge_writer import KnowledgeWriterSettings
56
+ from rememberstack.workers.operations import DeadLetterReplayer
57
+ from rememberstack.workers.p1 import EmbedClaimsHandler
58
+ from rememberstack.workers.p1 import FACT_LABEL_VERSION
59
+ from rememberstack.workers.p1 import LabelFactsHandler
60
+ from rememberstack.workers.p1 import P1_EMBED_CLAIMS_VERSION
61
+ from rememberstack.workers.p1 import P1Settings
62
+ from rememberstack.workers.p2 import GraphRebuildSettings
63
+ from rememberstack.workers.p2 import GraphRebuildWorker
64
+ from rememberstack.workers.p2 import GraphSnapshotReader
65
+ from rememberstack.workers.p2 import SnapshotValidationError
66
+ from rememberstack.workers.p2_analytics import AnalyticsSettings
67
+ from rememberstack.workers.p2_analytics import COMMUNITY_DETECTOR_VERSION
68
+ from rememberstack.workers.p2_analytics import GraphAnalyticsWorker
69
+ from rememberstack.workers.p3 import CorpusFsBuilder
70
+ from rememberstack.workers.p3 import CorpusFsSettings
71
+ from rememberstack.workers.p3 import P3_BUILDER_VERSION
72
+ from rememberstack.workers.reconcile import CycleFinalizer
73
+ from rememberstack.workers.reconcile import DeletionService
74
+ from rememberstack.workers.reconcile import RECONCILE_VERSION
75
+ from rememberstack.workers.reconcile import ReconcileHandler
76
+ from rememberstack.workers.sync import SyncCycleRunner
77
+ from rememberstack.workers.sync import SyncSettings
78
+
79
+ __all__ = (
80
+ "AdjudicateSupersessionHandler",
81
+ "ChunkHandler",
82
+ "ConvertHandler",
83
+ "E1Settings",
84
+ "E1_CHUNK_VERSION",
85
+ "E1_EMBED_VERSION",
86
+ "E2Settings",
87
+ "E2_EXTRACTOR_VERSION",
88
+ "EmbedChunksHandler",
89
+ "E3Settings",
90
+ "E3_NORMALIZER_VERSION",
91
+ "ExtractClaimsHandler",
92
+ "EmbedClaimsHandler",
93
+ "FACT_LABEL_VERSION",
94
+ "LabelFactsHandler",
95
+ "KnowledgeRoutingDriver",
96
+ "KnowledgeAuthoredSynchronizer",
97
+ "KnowledgeDispatchHandler",
98
+ "KnowledgeWorkflowDispatcher",
99
+ "KnowledgeCommitDriver",
100
+ "KnowledgeCommitSettings",
101
+ "KNOWLEDGE_DRIVER_VERSION",
102
+ "KnowledgePageCompiler",
103
+ "KnowledgeFactSheetCompileError",
104
+ "KnowledgeFactSheetCompiler",
105
+ "KNOWLEDGE_FACT_SHEET_VERSION",
106
+ "KNOWLEDGE_PLANNER_VERSION",
107
+ "KnowledgePlannerError",
108
+ "KnowledgePlannerSession",
109
+ "KnowledgePlannerSettings",
110
+ "KnowledgePlannerWorker",
111
+ "KNOWLEDGE_WRITER_VERSION",
112
+ "KnowledgePageCompilerRouter",
113
+ "KnowledgeProseCompiler",
114
+ "KnowledgeWriterError",
115
+ "KnowledgeWriterSettings",
116
+ "KnowledgeWriterSession",
117
+ "NormalizeRelationsHandler",
118
+ "P1Settings",
119
+ "P1_EMBED_CLAIMS_VERSION",
120
+ "E0_CONVERT_VERSION",
121
+ "E0_STRUCTURE_VERSION",
122
+ "HandlerOutcome",
123
+ "HandlerRegistry",
124
+ "ForgetKnowledgeRebuilder",
125
+ "ForgetProjectionRebuilder",
126
+ "HardForgetHandler",
127
+ "HardForgetReadiness",
128
+ "HardForgetService",
129
+ "KnowledgeCycleForgetRebuilder",
130
+ "ProjectionPairForgetRebuilder",
131
+ "RunResult",
132
+ "StageHandler",
133
+ "CorpusFsBuilder",
134
+ "CorpusFsSettings",
135
+ "P3_BUILDER_VERSION",
136
+ "AnalyticsSettings",
137
+ "COMMUNITY_DETECTOR_VERSION",
138
+ "GraphAnalyticsWorker",
139
+ "GraphRebuildSettings",
140
+ "GraphRebuildWorker",
141
+ "GraphSnapshotReader",
142
+ "SnapshotValidationError",
143
+ "CycleFinalizer",
144
+ "DeletionService",
145
+ "DeadLetterReplayer",
146
+ "ReconcileHandler",
147
+ "RECONCILE_VERSION",
148
+ "StructureHandler",
149
+ "StructurerSettings",
150
+ "SyncCycleRunner",
151
+ "SyncSettings",
152
+ "UPLOAD_SOURCE_KIND",
153
+ "UploadIngestor",
154
+ "Worker",
155
+ )