aethergraph 0.1.0a1__py3-none-any.whl → 0.1.0a2__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.
- aethergraph/__init__.py +4 -10
- aethergraph/__main__.py +293 -0
- aethergraph/api/v1/__init__.py +0 -0
- aethergraph/api/v1/agents.py +46 -0
- aethergraph/api/v1/apps.py +70 -0
- aethergraph/api/v1/artifacts.py +415 -0
- aethergraph/api/v1/channels.py +89 -0
- aethergraph/api/v1/deps.py +168 -0
- aethergraph/api/v1/graphs.py +259 -0
- aethergraph/api/v1/identity.py +25 -0
- aethergraph/api/v1/memory.py +353 -0
- aethergraph/api/v1/misc.py +47 -0
- aethergraph/api/v1/pagination.py +29 -0
- aethergraph/api/v1/runs.py +568 -0
- aethergraph/api/v1/schemas.py +535 -0
- aethergraph/api/v1/session.py +323 -0
- aethergraph/api/v1/stats.py +201 -0
- aethergraph/api/v1/viz.py +152 -0
- aethergraph/config/config.py +22 -0
- aethergraph/config/loader.py +3 -2
- aethergraph/config/storage.py +209 -0
- aethergraph/contracts/__init__.py +0 -0
- aethergraph/contracts/services/__init__.py +0 -0
- aethergraph/contracts/services/artifacts.py +27 -14
- aethergraph/contracts/services/memory.py +45 -17
- aethergraph/contracts/services/metering.py +129 -0
- aethergraph/contracts/services/runs.py +50 -0
- aethergraph/contracts/services/sessions.py +87 -0
- aethergraph/contracts/services/state_stores.py +3 -0
- aethergraph/contracts/services/viz.py +44 -0
- aethergraph/contracts/storage/artifact_index.py +88 -0
- aethergraph/contracts/storage/artifact_store.py +99 -0
- aethergraph/contracts/storage/async_kv.py +34 -0
- aethergraph/contracts/storage/blob_store.py +50 -0
- aethergraph/contracts/storage/doc_store.py +35 -0
- aethergraph/contracts/storage/event_log.py +31 -0
- aethergraph/contracts/storage/vector_index.py +48 -0
- aethergraph/core/__init__.py +0 -0
- aethergraph/core/execution/forward_scheduler.py +13 -2
- aethergraph/core/execution/global_scheduler.py +21 -15
- aethergraph/core/execution/step_forward.py +10 -1
- aethergraph/core/graph/__init__.py +0 -0
- aethergraph/core/graph/graph_builder.py +8 -4
- aethergraph/core/graph/graph_fn.py +156 -15
- aethergraph/core/graph/graph_spec.py +8 -0
- aethergraph/core/graph/graphify.py +146 -27
- aethergraph/core/graph/node_spec.py +0 -2
- aethergraph/core/graph/node_state.py +3 -0
- aethergraph/core/graph/task_graph.py +39 -1
- aethergraph/core/runtime/__init__.py +0 -0
- aethergraph/core/runtime/ad_hoc_context.py +64 -4
- aethergraph/core/runtime/base_service.py +28 -4
- aethergraph/core/runtime/execution_context.py +13 -15
- aethergraph/core/runtime/graph_runner.py +222 -37
- aethergraph/core/runtime/node_context.py +510 -6
- aethergraph/core/runtime/node_services.py +12 -5
- aethergraph/core/runtime/recovery.py +15 -1
- aethergraph/core/runtime/run_manager.py +783 -0
- aethergraph/core/runtime/run_manager_local.py +204 -0
- aethergraph/core/runtime/run_registration.py +2 -2
- aethergraph/core/runtime/run_types.py +89 -0
- aethergraph/core/runtime/runtime_env.py +136 -7
- aethergraph/core/runtime/runtime_metering.py +71 -0
- aethergraph/core/runtime/runtime_registry.py +36 -13
- aethergraph/core/runtime/runtime_services.py +194 -6
- aethergraph/core/tools/builtins/toolset.py +1 -1
- aethergraph/core/tools/toolkit.py +5 -0
- aethergraph/plugins/agents/default_chat_agent copy.py +90 -0
- aethergraph/plugins/agents/default_chat_agent.py +171 -0
- aethergraph/plugins/agents/shared.py +81 -0
- aethergraph/plugins/channel/adapters/webui.py +112 -112
- aethergraph/plugins/channel/routes/webui_routes.py +367 -102
- aethergraph/plugins/channel/utils/slack_utils.py +115 -59
- aethergraph/plugins/channel/utils/telegram_utils.py +88 -47
- aethergraph/plugins/channel/websockets/weibui_ws.py +172 -0
- aethergraph/runtime/__init__.py +15 -0
- aethergraph/server/app_factory.py +190 -34
- aethergraph/server/clients/channel_client.py +202 -0
- aethergraph/server/http/channel_http_routes.py +116 -0
- aethergraph/server/http/channel_ws_routers.py +45 -0
- aethergraph/server/loading.py +117 -0
- aethergraph/server/server.py +131 -0
- aethergraph/server/server_state.py +240 -0
- aethergraph/server/start.py +227 -66
- aethergraph/server/ui_static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- aethergraph/server/ui_static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- aethergraph/server/ui_static/assets/index-BR5GtXcZ.css +1 -0
- aethergraph/server/ui_static/assets/index-CQ0HZZ83.js +400 -0
- aethergraph/server/ui_static/index.html +15 -0
- aethergraph/server/ui_static/logo.png +0 -0
- aethergraph/services/artifacts/__init__.py +0 -0
- aethergraph/services/artifacts/facade.py +1239 -132
- aethergraph/services/auth/{dev.py → authn.py} +0 -8
- aethergraph/services/auth/authz.py +100 -0
- aethergraph/services/channel/__init__.py +0 -0
- aethergraph/services/channel/channel_bus.py +19 -1
- aethergraph/services/channel/factory.py +13 -1
- aethergraph/services/channel/ingress.py +311 -0
- aethergraph/services/channel/queue_adapter.py +75 -0
- aethergraph/services/channel/session.py +502 -19
- aethergraph/services/container/default_container.py +122 -43
- aethergraph/services/continuations/continuation.py +6 -0
- aethergraph/services/continuations/stores/fs_store.py +19 -0
- aethergraph/services/eventhub/event_hub.py +76 -0
- aethergraph/services/kv/__init__.py +0 -0
- aethergraph/services/kv/ephemeral.py +244 -0
- aethergraph/services/llm/__init__.py +0 -0
- aethergraph/services/llm/generic_client copy.py +691 -0
- aethergraph/services/llm/generic_client.py +1288 -187
- aethergraph/services/llm/providers.py +3 -1
- aethergraph/services/llm/types.py +47 -0
- aethergraph/services/llm/utils.py +284 -0
- aethergraph/services/logger/std.py +3 -0
- aethergraph/services/mcp/__init__.py +9 -0
- aethergraph/services/mcp/http_client.py +38 -0
- aethergraph/services/mcp/service.py +225 -1
- aethergraph/services/mcp/stdio_client.py +41 -6
- aethergraph/services/mcp/ws_client.py +44 -2
- aethergraph/services/memory/__init__.py +0 -0
- aethergraph/services/memory/distillers/llm_long_term.py +234 -0
- aethergraph/services/memory/distillers/llm_meta_summary.py +398 -0
- aethergraph/services/memory/distillers/long_term.py +225 -0
- aethergraph/services/memory/facade/__init__.py +3 -0
- aethergraph/services/memory/facade/chat.py +440 -0
- aethergraph/services/memory/facade/core.py +447 -0
- aethergraph/services/memory/facade/distillation.py +424 -0
- aethergraph/services/memory/facade/rag.py +410 -0
- aethergraph/services/memory/facade/results.py +315 -0
- aethergraph/services/memory/facade/retrieval.py +139 -0
- aethergraph/services/memory/facade/types.py +77 -0
- aethergraph/services/memory/facade/utils.py +43 -0
- aethergraph/services/memory/facade_dep.py +1539 -0
- aethergraph/services/memory/factory.py +9 -3
- aethergraph/services/memory/utils.py +10 -0
- aethergraph/services/metering/eventlog_metering.py +470 -0
- aethergraph/services/metering/noop.py +25 -4
- aethergraph/services/rag/__init__.py +0 -0
- aethergraph/services/rag/facade.py +279 -23
- aethergraph/services/rag/index_factory.py +2 -2
- aethergraph/services/rag/node_rag.py +317 -0
- aethergraph/services/rate_limit/inmem_rate_limit.py +24 -0
- aethergraph/services/registry/__init__.py +0 -0
- aethergraph/services/registry/agent_app_meta.py +419 -0
- aethergraph/services/registry/registry_key.py +1 -1
- aethergraph/services/registry/unified_registry.py +74 -6
- aethergraph/services/scope/scope.py +159 -0
- aethergraph/services/scope/scope_factory.py +164 -0
- aethergraph/services/state_stores/serialize.py +5 -0
- aethergraph/services/state_stores/utils.py +2 -1
- aethergraph/services/viz/__init__.py +0 -0
- aethergraph/services/viz/facade.py +413 -0
- aethergraph/services/viz/viz_service.py +69 -0
- aethergraph/storage/artifacts/artifact_index_jsonl.py +180 -0
- aethergraph/storage/artifacts/artifact_index_sqlite.py +426 -0
- aethergraph/storage/artifacts/cas_store.py +422 -0
- aethergraph/storage/artifacts/fs_cas.py +18 -0
- aethergraph/storage/artifacts/s3_cas.py +14 -0
- aethergraph/storage/artifacts/utils.py +124 -0
- aethergraph/storage/blob/fs_blob.py +86 -0
- aethergraph/storage/blob/s3_blob.py +115 -0
- aethergraph/storage/continuation_store/fs_cont.py +283 -0
- aethergraph/storage/continuation_store/inmem_cont.py +146 -0
- aethergraph/storage/continuation_store/kvdoc_cont.py +261 -0
- aethergraph/storage/docstore/fs_doc.py +63 -0
- aethergraph/storage/docstore/sqlite_doc.py +31 -0
- aethergraph/storage/docstore/sqlite_doc_sync.py +90 -0
- aethergraph/storage/eventlog/fs_event.py +136 -0
- aethergraph/storage/eventlog/sqlite_event.py +47 -0
- aethergraph/storage/eventlog/sqlite_event_sync.py +178 -0
- aethergraph/storage/factory.py +432 -0
- aethergraph/storage/fs_utils.py +28 -0
- aethergraph/storage/graph_state_store/state_store.py +64 -0
- aethergraph/storage/kv/inmem_kv.py +103 -0
- aethergraph/storage/kv/layered_kv.py +52 -0
- aethergraph/storage/kv/sqlite_kv.py +39 -0
- aethergraph/storage/kv/sqlite_kv_sync.py +98 -0
- aethergraph/storage/memory/event_persist.py +68 -0
- aethergraph/storage/memory/fs_persist.py +118 -0
- aethergraph/{services/memory/hotlog_kv.py → storage/memory/hotlog.py} +8 -2
- aethergraph/{services → storage}/memory/indices.py +31 -7
- aethergraph/storage/metering/meter_event.py +55 -0
- aethergraph/storage/runs/doc_store.py +280 -0
- aethergraph/storage/runs/inmen_store.py +82 -0
- aethergraph/storage/runs/sqlite_run_store.py +403 -0
- aethergraph/storage/sessions/doc_store.py +183 -0
- aethergraph/storage/sessions/inmem_store.py +110 -0
- aethergraph/storage/sessions/sqlite_session_store.py +399 -0
- aethergraph/storage/vector_index/chroma_index.py +138 -0
- aethergraph/storage/vector_index/faiss_index.py +179 -0
- aethergraph/storage/vector_index/sqlite_index.py +187 -0
- {aethergraph-0.1.0a1.dist-info → aethergraph-0.1.0a2.dist-info}/METADATA +138 -31
- aethergraph-0.1.0a2.dist-info/RECORD +356 -0
- aethergraph-0.1.0a2.dist-info/entry_points.txt +3 -0
- aethergraph/services/artifacts/factory.py +0 -35
- aethergraph/services/artifacts/fs_store.py +0 -656
- aethergraph/services/artifacts/jsonl_index.py +0 -123
- aethergraph/services/artifacts/sqlite_index.py +0 -209
- aethergraph/services/memory/distillers/episode.py +0 -116
- aethergraph/services/memory/distillers/rolling.py +0 -74
- aethergraph/services/memory/facade.py +0 -633
- aethergraph/services/memory/persist_fs.py +0 -40
- aethergraph/services/rag/index/base.py +0 -27
- aethergraph/services/rag/index/faiss_index.py +0 -121
- aethergraph/services/rag/index/sqlite_index.py +0 -134
- aethergraph-0.1.0a1.dist-info/RECORD +0 -182
- aethergraph-0.1.0a1.dist-info/entry_points.txt +0 -2
- {aethergraph-0.1.0a1.dist-info → aethergraph-0.1.0a2.dist-info}/WHEEL +0 -0
- {aethergraph-0.1.0a1.dist-info → aethergraph-0.1.0a2.dist-info}/licenses/LICENSE +0 -0
- {aethergraph-0.1.0a1.dist-info → aethergraph-0.1.0a2.dist-info}/licenses/NOTICE +0 -0
- {aethergraph-0.1.0a1.dist-info → aethergraph-0.1.0a2.dist-info}/top_level.txt +0 -0
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
import pickle
|
|
5
|
-
from typing import Any
|
|
6
|
-
|
|
7
|
-
import numpy as np
|
|
8
|
-
|
|
9
|
-
try:
|
|
10
|
-
import faiss
|
|
11
|
-
except Exception:
|
|
12
|
-
faiss = None
|
|
13
|
-
|
|
14
|
-
from .base import VectorIndex
|
|
15
|
-
|
|
16
|
-
"""A simple FAISS index per corpus (L2 on normalized vectors ~ cosine).
|
|
17
|
-
Stores vectors as BLOBs along with metadata in a simple schema.
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class FAISSVectorIndex(VectorIndex):
|
|
22
|
-
"""A simple FAISS index per corpus (L2 on normalized vectors ~ cosine)."""
|
|
23
|
-
|
|
24
|
-
def __init__(self, index_path: str, dim: int | None = None):
|
|
25
|
-
super().__init__(index_path)
|
|
26
|
-
self.dim = dim # optional default; will infer on first add
|
|
27
|
-
os.makedirs(index_path, exist_ok=True)
|
|
28
|
-
|
|
29
|
-
def _paths(self, corpus_id: str):
|
|
30
|
-
base = os.path.join(self.index_path, corpus_id)
|
|
31
|
-
return base + ".index", base + ".meta.pkl"
|
|
32
|
-
|
|
33
|
-
def _load(self, corpus_id: str):
|
|
34
|
-
idx_path, meta_path = self._paths(corpus_id)
|
|
35
|
-
if not (os.path.exists(idx_path) and os.path.exists(meta_path)):
|
|
36
|
-
return None, []
|
|
37
|
-
if faiss is None:
|
|
38
|
-
raise RuntimeError("FAISS not installed")
|
|
39
|
-
index = faiss.read_index(idx_path)
|
|
40
|
-
with open(meta_path, "rb") as f:
|
|
41
|
-
metas = pickle.load(f)
|
|
42
|
-
return index, metas
|
|
43
|
-
|
|
44
|
-
def _save(self, corpus_id: str, index, metas):
|
|
45
|
-
idx_path, meta_path = self._paths(corpus_id)
|
|
46
|
-
if faiss is None:
|
|
47
|
-
raise RuntimeError("FAISS not installed")
|
|
48
|
-
faiss.write_index(index, idx_path)
|
|
49
|
-
with open(meta_path, "wb") as f:
|
|
50
|
-
pickle.dump(metas, f)
|
|
51
|
-
|
|
52
|
-
async def add(
|
|
53
|
-
self,
|
|
54
|
-
corpus_id: str,
|
|
55
|
-
chunk_ids: list[str],
|
|
56
|
-
vectors: list[list[float]],
|
|
57
|
-
metas: list[dict[str, Any]],
|
|
58
|
-
):
|
|
59
|
-
if faiss is None:
|
|
60
|
-
raise RuntimeError("FAISS not installed")
|
|
61
|
-
vecs = np.asarray(vectors, dtype=np.float32)
|
|
62
|
-
# normalize for cosine
|
|
63
|
-
norms = np.linalg.norm(vecs, axis=1, keepdims=True) + 1e-9
|
|
64
|
-
vecs = vecs / norms
|
|
65
|
-
d = vecs.shape[1]
|
|
66
|
-
index, old_metas = self._load(corpus_id)
|
|
67
|
-
if index is None:
|
|
68
|
-
index = faiss.IndexFlatIP(d) # cosine via normalized dot
|
|
69
|
-
old_metas = []
|
|
70
|
-
index.add(vecs)
|
|
71
|
-
for cid, m in zip(chunk_ids, metas, strict=True):
|
|
72
|
-
old_metas.append({"chunk_id": cid, "meta": m})
|
|
73
|
-
self._save(corpus_id, index, old_metas)
|
|
74
|
-
|
|
75
|
-
async def delete(self, corpus_id: str, chunk_ids: list[str] | None = None):
|
|
76
|
-
# Simple approach: rebuild if filtering; or delete entire corpus.
|
|
77
|
-
if not chunk_ids:
|
|
78
|
-
idx_path, meta_path = self._paths(corpus_id)
|
|
79
|
-
for p in (idx_path, meta_path):
|
|
80
|
-
if os.path.exists(p):
|
|
81
|
-
os.remove(p)
|
|
82
|
-
else:
|
|
83
|
-
index, metas = self._load(corpus_id)
|
|
84
|
-
if index is None:
|
|
85
|
-
return
|
|
86
|
-
# Rebuild without those ids
|
|
87
|
-
keep = [i for i, m in enumerate(metas) if m["chunk_id"] not in set(chunk_ids)]
|
|
88
|
-
if not keep:
|
|
89
|
-
await self.delete(corpus_id, None)
|
|
90
|
-
return
|
|
91
|
-
# Need stored vectors to rebuild — this simple implementation does not persist them.
|
|
92
|
-
# In production, persist vectors or recompute from text.
|
|
93
|
-
raise NotImplementedError(
|
|
94
|
-
"Selective delete requires stored vectors; not implemented here."
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
async def list_chunks(self, corpus_id: str) -> list[str]:
|
|
98
|
-
_, metas = self._load(corpus_id)
|
|
99
|
-
return [m["chunk_id"] for m in metas] if metas else []
|
|
100
|
-
|
|
101
|
-
async def search(self, corpus_id: str, query_vec: list[float], k: int):
|
|
102
|
-
if faiss is None:
|
|
103
|
-
raise RuntimeError("FAISS not installed")
|
|
104
|
-
index, metas = self._load(corpus_id)
|
|
105
|
-
if index is None:
|
|
106
|
-
return []
|
|
107
|
-
q = np.asarray([query_vec], dtype=np.float32)
|
|
108
|
-
q = q / (np.linalg.norm(q, axis=1, keepdims=True) + 1e-9)
|
|
109
|
-
D, I = index.search(q, k) # noqa: E741
|
|
110
|
-
out = []
|
|
111
|
-
for score, idx in zip(D[0].tolist(), I[0].tolist(), strict=True):
|
|
112
|
-
if idx < 0 or idx >= len(metas):
|
|
113
|
-
continue
|
|
114
|
-
out.append(
|
|
115
|
-
{
|
|
116
|
-
"chunk_id": metas[idx]["chunk_id"],
|
|
117
|
-
"score": float(score),
|
|
118
|
-
"meta": metas[idx]["meta"],
|
|
119
|
-
}
|
|
120
|
-
)
|
|
121
|
-
return out
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
import os
|
|
5
|
-
import sqlite3
|
|
6
|
-
from typing import Any
|
|
7
|
-
|
|
8
|
-
import numpy as np
|
|
9
|
-
|
|
10
|
-
from .base import VectorIndex
|
|
11
|
-
|
|
12
|
-
"""A simple SQLite-based vector index per corpus (brute-force cosine similarity).
|
|
13
|
-
Stores vectors as BLOBs along with metadata in a simple schema.
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
SCHEMA = """
|
|
18
|
-
CREATE TABLE IF NOT EXISTS chunks (
|
|
19
|
-
corpus_id TEXT,
|
|
20
|
-
chunk_id TEXT,
|
|
21
|
-
meta_json TEXT,
|
|
22
|
-
PRIMARY KEY (corpus_id, chunk_id)
|
|
23
|
-
);
|
|
24
|
-
CREATE TABLE IF NOT EXISTS embeddings (
|
|
25
|
-
corpus_id TEXT,
|
|
26
|
-
chunk_id TEXT,
|
|
27
|
-
vec BLOB, -- np.float32 array bytes
|
|
28
|
-
norm REAL,
|
|
29
|
-
PRIMARY KEY (corpus_id, chunk_id)
|
|
30
|
-
);
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def _ensure_db(path: str):
|
|
35
|
-
os.makedirs(os.path.dirname(path), exist_ok=True)
|
|
36
|
-
conn = sqlite3.connect(path)
|
|
37
|
-
try:
|
|
38
|
-
for stmt in SCHEMA.strip().split(";\n"):
|
|
39
|
-
s = stmt.strip()
|
|
40
|
-
if s:
|
|
41
|
-
conn.execute(s)
|
|
42
|
-
conn.commit()
|
|
43
|
-
finally:
|
|
44
|
-
conn.close()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class SQLiteVectorIndex(VectorIndex):
|
|
48
|
-
def __init__(self, index_path: str):
|
|
49
|
-
super().__init__(index_path)
|
|
50
|
-
self.db_path = os.path.join(index_path, "index.sqlite")
|
|
51
|
-
_ensure_db(self.db_path)
|
|
52
|
-
|
|
53
|
-
def _connect(self):
|
|
54
|
-
return sqlite3.connect(self.db_path)
|
|
55
|
-
|
|
56
|
-
async def add(
|
|
57
|
-
self,
|
|
58
|
-
corpus_id: str,
|
|
59
|
-
chunk_ids: list[str],
|
|
60
|
-
vectors: list[list[float]],
|
|
61
|
-
metas: list[dict[str, Any]],
|
|
62
|
-
):
|
|
63
|
-
conn = self._connect()
|
|
64
|
-
try:
|
|
65
|
-
cur = conn.cursor()
|
|
66
|
-
for cid, vec, meta in zip(chunk_ids, vectors, metas, strict=True):
|
|
67
|
-
v = np.asarray(vec, dtype=np.float32)
|
|
68
|
-
norm = float(np.linalg.norm(v) + 1e-9)
|
|
69
|
-
cur.execute(
|
|
70
|
-
"REPLACE INTO chunks(corpus_id,chunk_id,meta_json) VALUES(?,?,?)",
|
|
71
|
-
(corpus_id, cid, json.dumps(meta, ensure_ascii=False)),
|
|
72
|
-
)
|
|
73
|
-
cur.execute(
|
|
74
|
-
"REPLACE INTO embeddings(corpus_id,chunk_id,vec,norm) VALUES(?,?,?,?)",
|
|
75
|
-
(corpus_id, cid, v.tobytes(), norm),
|
|
76
|
-
)
|
|
77
|
-
conn.commit()
|
|
78
|
-
finally:
|
|
79
|
-
conn.close()
|
|
80
|
-
|
|
81
|
-
async def delete(self, corpus_id: str, chunk_ids: list[str] | None = None):
|
|
82
|
-
conn = self._connect()
|
|
83
|
-
try:
|
|
84
|
-
cur = conn.cursor()
|
|
85
|
-
if chunk_ids:
|
|
86
|
-
q = f"DELETE FROM chunks WHERE corpus_id=? AND chunk_id IN ({','.join(['?'] * len(chunk_ids))})"
|
|
87
|
-
cur.execute(q, [corpus_id, *chunk_ids])
|
|
88
|
-
q2 = f"DELETE FROM embeddings WHERE corpus_id=? AND chunk_id IN ({','.join(['?'] * len(chunk_ids))})"
|
|
89
|
-
cur.execute(q2, [corpus_id, *chunk_ids])
|
|
90
|
-
else:
|
|
91
|
-
cur.execute("DELETE FROM chunks WHERE corpus_id=?", (corpus_id,))
|
|
92
|
-
cur.execute("DELETE FROM embeddings WHERE corpus_id=?", (corpus_id,))
|
|
93
|
-
conn.commit()
|
|
94
|
-
finally:
|
|
95
|
-
conn.close()
|
|
96
|
-
|
|
97
|
-
async def list_chunks(self, corpus_id: str) -> list[str]:
|
|
98
|
-
conn = self._connect()
|
|
99
|
-
try:
|
|
100
|
-
cur = conn.cursor()
|
|
101
|
-
cur.execute("SELECT chunk_id FROM chunks WHERE corpus_id=?", (corpus_id,))
|
|
102
|
-
return [r[0] for r in cur.fetchall()]
|
|
103
|
-
finally:
|
|
104
|
-
conn.close()
|
|
105
|
-
|
|
106
|
-
async def search(
|
|
107
|
-
self, corpus_id: str, query_vec: list[float], k: int
|
|
108
|
-
) -> list[dict[str, Any]]: # Brute-force cosine similarity. Loads vectors for that corpus.
|
|
109
|
-
q = np.asarray(query_vec, dtype=np.float32)
|
|
110
|
-
qn = float(np.linalg.norm(q) + 1e-9)
|
|
111
|
-
|
|
112
|
-
conn = self._connect()
|
|
113
|
-
try:
|
|
114
|
-
cur = conn.cursor()
|
|
115
|
-
cur.execute(
|
|
116
|
-
"SELECT e.chunk_id, e.vec, e.norm, c.meta_json FROM embeddings e JOIN chunks c USING(corpus_id,chunk_id) WHERE e.corpus_id=?",
|
|
117
|
-
(corpus_id,),
|
|
118
|
-
)
|
|
119
|
-
rows = cur.fetchall()
|
|
120
|
-
finally:
|
|
121
|
-
conn.close()
|
|
122
|
-
|
|
123
|
-
scores = []
|
|
124
|
-
for chunk_id, vec_bytes, norm, meta_json in rows:
|
|
125
|
-
v = np.frombuffer(vec_bytes, dtype=np.float32)
|
|
126
|
-
score = float(np.dot(q, v) / (qn * norm))
|
|
127
|
-
scores.append((score, chunk_id, meta_json))
|
|
128
|
-
|
|
129
|
-
scores.sort(reverse=True, key=lambda x: x[0])
|
|
130
|
-
top = scores[:k]
|
|
131
|
-
out = []
|
|
132
|
-
for score, chunk_id, meta_json in top:
|
|
133
|
-
out.append({"chunk_id": chunk_id, "score": score, "meta": json.loads(meta_json)})
|
|
134
|
-
return out
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
aethergraph/__init__.py,sha256=LuzSyqu0jmt4YxwHdgFn-OM_5EsO66YI55QKaDa-N9w,1290
|
|
2
|
-
aethergraph/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
aethergraph/config/config.py,sha256=OJewUlLyNFJhKgnDTsPvZQvaw1Z6FfuBbRbpxJq_VJg,4182
|
|
4
|
-
aethergraph/config/context.py,sha256=dn0-6LG52fdVDzSJjq9GDv7BWaO9ncM1LJ54FVGLmXc,451
|
|
5
|
-
aethergraph/config/llm.py,sha256=_oi_JeuX-IpPhj-Y5oBeLlebFnjWr7xYyzmgpIjT7dk,785
|
|
6
|
-
aethergraph/config/loader.py,sha256=x_t6QLYnCCgZ8-805IMioZjaK0_Cinl1tqMBr4_84us,2031
|
|
7
|
-
aethergraph/config/runtime.py,sha256=tYcs2QPmhgcePLJJPnbmJ9xd69S_qvYJm2Kt5OWziR4,194
|
|
8
|
-
aethergraph/contracts/errors/errors.py,sha256=EELKbyU65wzSaoiW4UDKkIcDmVs3jUi-UyuwtAizXQ0,1421
|
|
9
|
-
aethergraph/contracts/services/artifacts.py,sha256=kq9Do-MFChneJzHfnDjrTs71fnXdT5mBSpovhF0fZ4M,4500
|
|
10
|
-
aethergraph/contracts/services/channel.py,sha256=VcAWdklLaADCKEWr6eH4eFwtwgib6aDtul-28Q8Q_7A,2846
|
|
11
|
-
aethergraph/contracts/services/continuations.py,sha256=n7joRpMjFEQ61k5UgMmG1qzmzFxn8yFJeufGV2ojUHU,1021
|
|
12
|
-
aethergraph/contracts/services/eventbus.py,sha256=p6l_Ebmk0h6zF6nrq2RP83Y21jjlSiSoCFY3Nhzt_-g,366
|
|
13
|
-
aethergraph/contracts/services/kv.py,sha256=82q_tQEQ1YfhQPU1CbotIMPcwYAO0pu0VkKdy6_LRKo,1072
|
|
14
|
-
aethergraph/contracts/services/llm.py,sha256=viAwFGbyzC3k4Fw22lnc_Jezi9lMopkHPBoM53TdjXY,583
|
|
15
|
-
aethergraph/contracts/services/mcp.py,sha256=X24iufFK8GaijqgMXhVQNgbiVobMbHppOmf8J7A5Uzs,626
|
|
16
|
-
aethergraph/contracts/services/memory.py,sha256=NYJz9n1ixbJGpHNLw0pX9Fyinb9KTV97NFBF1XVxgKw,3721
|
|
17
|
-
aethergraph/contracts/services/resume.py,sha256=5TyP9KP_NnavWMG2R_ZR-o6aKNg09oOI0KwXLgcztm8,856
|
|
18
|
-
aethergraph/contracts/services/state_stores.py,sha256=irNCfZBy4n-0jySSLk-ZmJKaWvkAT9Htu5L5sf8ePlo,997
|
|
19
|
-
aethergraph/contracts/services/wakeup.py,sha256=RyKg0doETHWTu4ki4Wne9VpBkvSA4D9fN078ipjW94Q,879
|
|
20
|
-
aethergraph/core/execution/base_scheduler.py,sha256=nhcusZQp7KO-6V6h4wv0Zvx_YLvrGVmI8aks0f4Z6ec,2475
|
|
21
|
-
aethergraph/core/execution/forward_scheduler.py,sha256=wbjxxeoRNjumcZuDpSGYZ6xFKWrewJcxmKG3AjPUh5w,33866
|
|
22
|
-
aethergraph/core/execution/global_scheduler.py,sha256=xM3JdmCdCh7ndhUtBBwEUfbrDO1mdIJOefY-iiJORtg,25871
|
|
23
|
-
aethergraph/core/execution/retry_policy.py,sha256=zLHYs8ZX3yaPYSUBp_9oyMaj1RvQmv_JBkPl_aBg-rc,810
|
|
24
|
-
aethergraph/core/execution/step_forward.py,sha256=GR-x9CX28ZMWbe4WP9iE4SiHWd6r48gRRxOMtaD_7tA,14758
|
|
25
|
-
aethergraph/core/execution/step_result.py,sha256=-ywMoVghqvEKsbi5hceEt_uMCetp-_6BajdD36W4oQs,698
|
|
26
|
-
aethergraph/core/execution/wait_types.py,sha256=QYRR3MyIhOeSrbLtLXj9n9OIU8Sck5YHpeHsdwuQHzc,2826
|
|
27
|
-
aethergraph/core/graph/graph_builder.py,sha256=l7IQsMrJREbLyd2CiUbvJrtwvU5eZZ8_iRLMpxAoxRs,7142
|
|
28
|
-
aethergraph/core/graph/graph_fn.py,sha256=yuj-Bxyg65Y293O3JeuDi5BPvM3nZnY1M_QJd2CbH_Y,7471
|
|
29
|
-
aethergraph/core/graph/graph_io.py,sha256=uoUtTQP6TO-MZ0CszPAR6tiKOxfKSz-Y6wUMK8P38NU,2560
|
|
30
|
-
aethergraph/core/graph/graph_refs.py,sha256=_6daCyA2uQzB-fxUBPAjTARgCF8Juh0d0kTHHwGeiKI,5049
|
|
31
|
-
aethergraph/core/graph/graph_spec.py,sha256=D5QsQNwQyvyCOnmin__4MAXgw_HUVGIMVyNN69aK9eU,3796
|
|
32
|
-
aethergraph/core/graph/graph_state.py,sha256=z4_3gBGZ6gBzJH9E5YUbGc5EtRAP611xiXFW6WArwIE,2394
|
|
33
|
-
aethergraph/core/graph/graphify.py,sha256=gpTK4bWAFT-fHo_n0E7HrSMQqlsPvig16OV-0CdzUOg,4713
|
|
34
|
-
aethergraph/core/graph/interpreter.py,sha256=b9aNzr8Z4G_gsnDcJxd5ci8fQRdAsOqOnGM24DPHTNU,4807
|
|
35
|
-
aethergraph/core/graph/node_handle.py,sha256=eGo5h5cG2ogbYnRl8phcyHs6-4QtOeWNizgZKh4dKbM,1117
|
|
36
|
-
aethergraph/core/graph/node_spec.py,sha256=pXcSdjLFb9riWH7khh-E2oPOJLTN8pFIZXVYqLX_rXk,1451
|
|
37
|
-
aethergraph/core/graph/node_state.py,sha256=5XMrDv8F0rpGUQn3licTTZOVzRJ_5nBDeaXpn6MWHGI,2034
|
|
38
|
-
aethergraph/core/graph/task_graph.py,sha256=NpVX-D_CDNg1uhcuNInAuush7KeVmTXMJu4tna5RlWE,30586
|
|
39
|
-
aethergraph/core/graph/task_node.py,sha256=Hg-rVwKfViPtD0hsU5Z381Zw7ecxOxYXyGqvQ25qr-M,2143
|
|
40
|
-
aethergraph/core/graph/utils.py,sha256=7H-2PCirgBfiUsNd0-C1yG3Y8x9zuWh5OXue_Gx32g8,1245
|
|
41
|
-
aethergraph/core/graph/visualize.py,sha256=TFRNJmcakAc2MqWASUvTGGDf8XJx38t5EW4tfyAj3ag,8110
|
|
42
|
-
aethergraph/core/runtime/ad_hoc_context.py,sha256=gd-CGfMp-UEy458OLKtNRC6-IzFKnLchuX3ufc1tOEU,1680
|
|
43
|
-
aethergraph/core/runtime/base_service.py,sha256=LXESFb0hf-gUMCRS25wymELaXAKpLsOtIUr1LbKZEaU,4778
|
|
44
|
-
aethergraph/core/runtime/bind_adapter.py,sha256=HlPJyPxiNF8nlzBqsDeDiiSkeVr2gq7oEDR_7vX1f6k,1097
|
|
45
|
-
aethergraph/core/runtime/bound_memory.py,sha256=uKxvmyP56G14pReJN_B0_kKdKHHoKkJFCmyjB-_COiE,2242
|
|
46
|
-
aethergraph/core/runtime/execution_context.py,sha256=_QceHQch2e6aDRAO4c7JtIhQvPyFlLSqvZNluz3Y_Z4,9344
|
|
47
|
-
aethergraph/core/runtime/graph_runner.py,sha256=t_tvIa51fiSSNhg6ZUs08mIaUiA41KKubqeooyZUn2Y,12539
|
|
48
|
-
aethergraph/core/runtime/lifecycle.py,sha256=xPoGDWxNp-MEufM19VmQXoBOzr9HHErCDAEIqpYSIyQ,776
|
|
49
|
-
aethergraph/core/runtime/node_context.py,sha256=sG3ZbyyWK6G-Is27eABH5sKwR_RWcMItG6vmc0fasq8,7114
|
|
50
|
-
aethergraph/core/runtime/node_services.py,sha256=8_MVKYANZnSS7UWsfNGRFhwejgsnNDqs4pmnpSDBLn4,1339
|
|
51
|
-
aethergraph/core/runtime/recovery.py,sha256=DGIICAKpPyfFQDUz5sux1MamWrm5E3BMWdZXm--3wYk,5766
|
|
52
|
-
aethergraph/core/runtime/run_registration.py,sha256=oouS-GZgiK2A_3agFPqv1vJjkZCAPLcy56ijzKL6GOM,1305
|
|
53
|
-
aethergraph/core/runtime/runtime_env.py,sha256=yTAWG3wh1ZgdHnMYV2SGe2Ya_gZr9zG4QzqsX6ND86w,5321
|
|
54
|
-
aethergraph/core/runtime/runtime_registry.py,sha256=ik2VMWEWVSHc1xsUGZHu4krKE4cTZ-Lvab_Vv9j6KBA,1081
|
|
55
|
-
aethergraph/core/runtime/runtime_services.py,sha256=O9ma7HWbpnmf8UTUtDML8KLUeAYUY5EQ3deyV9rXv6k,6269
|
|
56
|
-
aethergraph/core/runtime/wakeup_watcher.py,sha256=Exw8chz7UXqfKVObuYjY-byRAyYk9pw_stlXqzkuct0,1496
|
|
57
|
-
aethergraph/core/tools/__init__.py,sha256=_IITFxrr0evTGMHyjFGUrFcZysm0LSPg2g6IiSsRRMo,298
|
|
58
|
-
aethergraph/core/tools/toolkit.py,sha256=DsmLqemYXlFMulALLdXKctopUe8R_rRiK58dktx0TaM,18944
|
|
59
|
-
aethergraph/core/tools/waitable.py,sha256=xcJIvgKY11HszCeleu9Hm6sgD1KRwmJ-A5rjDcRd2Rs,4053
|
|
60
|
-
aethergraph/core/tools/builtins/channel_tools.py,sha256=Ho2nM6WeViHJKE26MnB-eHPaPW9R8N1axE0WpGo4XGk,5710
|
|
61
|
-
aethergraph/core/tools/builtins/toolset.py,sha256=5pJ4pYHEmwp9WrQ7Z7FyUk6RpSWQ2X5_OyT6TbmYTCE,3555
|
|
62
|
-
aethergraph/plugins/channel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
-
aethergraph/plugins/channel/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
-
aethergraph/plugins/channel/adapters/console.py,sha256=Fe620-lVD42xKaX7y69TwU-n_iKoe91omNefZciLDeE,4242
|
|
65
|
-
aethergraph/plugins/channel/adapters/file.py,sha256=rd0vKMTX5UojKUTm_L5gQIOE2oTRP7EqI2rrTAI01TI,3374
|
|
66
|
-
aethergraph/plugins/channel/adapters/slack.py,sha256=pmbvU-u_4VxH_QVnm6vFMlH6gJ57yPulnxdb-l3sqmo,11245
|
|
67
|
-
aethergraph/plugins/channel/adapters/telegram.py,sha256=OldJo21nrG9rEHygDQU1GDhg0HzJPv-3v6E8VtKJ6fY,12279
|
|
68
|
-
aethergraph/plugins/channel/adapters/webhook.py,sha256=28j2PL3OXiUugecTtGfl0t3J0h24hu7RSir3QHQlhbs,3811
|
|
69
|
-
aethergraph/plugins/channel/adapters/webui.py,sha256=JZ3g0Z4zx1WI0TZ_S4ilyKU9m1mQgomVuuPiUBbrYHM,4703
|
|
70
|
-
aethergraph/plugins/channel/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
aethergraph/plugins/channel/routes/console_routes.py,sha256=k6KPPEROBMU9yenBm2qSOix7QLRoSY8lXwPt0uVqtlU,3395
|
|
72
|
-
aethergraph/plugins/channel/routes/slack_routes.py,sha256=4fzJWEOzU3lbcB7ToXrxfkdN9Kt-B2Hkgl-FSsO2xLI,1354
|
|
73
|
-
aethergraph/plugins/channel/routes/telegram_routes.py,sha256=OJ2pZmLr8vmLpAtFlVjtG0kS4fv7sh_2j6Rm-MB0oTI,809
|
|
74
|
-
aethergraph/plugins/channel/routes/webui_routes.py,sha256=_ogCHF2WR33QTx2Djo93qWyjNwBG86ZZwXevdIV3dUU,4351
|
|
75
|
-
aethergraph/plugins/channel/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
-
aethergraph/plugins/channel/utils/slack_utils.py,sha256=SBS5YrIhklv6Mk-s49_4ttGt58GRoqqU-rMXVJwidMM,10264
|
|
77
|
-
aethergraph/plugins/channel/utils/telegram_utils.py,sha256=FyHIYOdGZBfjrrpGPqAA0PQ4RlLV25s7Vz_m4a-sF8w,12132
|
|
78
|
-
aethergraph/plugins/channel/websockets/slack_ws.py,sha256=7zU28StFGFfFSAT1I2u2OGsP7QchO5wU1Hz-w3vyn08,2842
|
|
79
|
-
aethergraph/plugins/channel/websockets/telegram_polling.py,sha256=R0Enc4v-9po2cxvlXxIDJvk8RAzm_yp_sCF3JCFAdo4,5922
|
|
80
|
-
aethergraph/plugins/mcp/fs_server.py,sha256=skRjoA7crAUiYQwy8npwzu51PhhNKP8eBkDwHZF1tSs,3858
|
|
81
|
-
aethergraph/plugins/mcp/http_server.py,sha256=wQrV4wdqkStKuj8f2pblbik9ohQDj-yT87hRAOgMWO8,3153
|
|
82
|
-
aethergraph/plugins/mcp/ws_server.py,sha256=zMcMJJnzWQ5GTTlIfZyDQasgaAxXrH1nq281aQKJZbs,6603
|
|
83
|
-
aethergraph/plugins/net/http.py,sha256=2CiSzUCNGd0dl-ld0Z2RU1OgkMKm8t1188wmt27SLjo,299
|
|
84
|
-
aethergraph/plugins/utils/data_io.py,sha256=7gfd8jUUmYJmAupwno7O9TwteVWsjY_Tnp0qB1QBQLg,10824
|
|
85
|
-
aethergraph/runner/__init__.py,sha256=l90QHNCvY7rLgHQSKxWA3faiqXF8pt_2mApMuUgR37c,190
|
|
86
|
-
aethergraph/runtime/__init__.py,sha256=A8xUT42-698yg9ycfJmg2mD9EI-OE0vz7eIJoTDb3dQ,1715
|
|
87
|
-
aethergraph/server/__init__.py,sha256=sAOwqEBX6vWES6_D0CBDCYcpVaIM6pz8El-mGxp3zpA,133
|
|
88
|
-
aethergraph/server/app_factory.py,sha256=xB-wuXjh1-u6Rv7G2YZK-WM3R6lXiwrxxKnpxJVocxk,2993
|
|
89
|
-
aethergraph/server/start.py,sha256=QWIgIJhH5OzKN6qp03jzlDg8GRk39etk4sslF1TY1Ew,3288
|
|
90
|
-
aethergraph/services/__init__.py,sha256=SX50b1u1rFsHaMr4UAj5RhJzh0fEmx2l-cZ31MNA_EA,482
|
|
91
|
-
aethergraph/services/artifacts/facade.py,sha256=bdS2iR4Bax4aHSCtIae5WKYclWHJAIaEI6M_H8DdEyU,10656
|
|
92
|
-
aethergraph/services/artifacts/factory.py,sha256=vTDYChY7S1SXtbcFU2-ZoM9bj_-_X8fm44zhvgXvyHc,1120
|
|
93
|
-
aethergraph/services/artifacts/fs_store.py,sha256=s3HtZ8z68o7YbDM_45hhw23Q51vwTv-p6XH9lYydGp4,24204
|
|
94
|
-
aethergraph/services/artifacts/jsonl_index.py,sha256=Y4YABM-ybslTj-M-8rZnhqabuKH3EKx5qNw-MzTcJkY,4944
|
|
95
|
-
aethergraph/services/artifacts/paths.py,sha256=Q3mtLvK418HP4cjYF3SA9TgI_lH_uK0NJd4lqUKk_-w,926
|
|
96
|
-
aethergraph/services/artifacts/sqlite_index.py,sha256=_ztXa2TwGGO_kNoeIIX1VEKM_aQzHZVkgRmVKt1MVQA,7202
|
|
97
|
-
aethergraph/services/artifacts/utils.py,sha256=0VfMrsGUVZPyvO_lA3lXtKZqLCYES5VxJBqoVZdRd9w,4471
|
|
98
|
-
aethergraph/services/auth/dev.py,sha256=KziwuOmHgBPA_ORAIWmDgNYaGFNa7TwQjku8mAblgXw,521
|
|
99
|
-
aethergraph/services/channel/channel_bus.py,sha256=oS612apQdkmWduN8zaAhoFm_vJaPptVPE6suygG2iVo,11997
|
|
100
|
-
aethergraph/services/channel/factory.py,sha256=xrFqfm2FoM1u5LsRpSp5LIOsuR_WnVkAC5E0xanSUaw,1743
|
|
101
|
-
aethergraph/services/channel/session.py,sha256=HwH9G1n7O0uzSIGkuvTDXroruIEfzm3t21rVhLXX80U,18834
|
|
102
|
-
aethergraph/services/channel/wait_helpers.py,sha256=40NbvSZsMPOQGelb6sP4bpF6XeelFVeBaGQ3L5dF6qo,1975
|
|
103
|
-
aethergraph/services/clock/clock.py,sha256=XIt_7NxkpHd_rmbXhHJqWKW3icXu8fdAmmj2rV97bDk,190
|
|
104
|
-
aethergraph/services/container/default_container.py,sha256=usUnPdAQ-4z0pZ_6oHdSOzWE8Hpl8lhk89t8EkF5_cA,10950
|
|
105
|
-
aethergraph/services/continuations/continuation.py,sha256=ExQYImsKCUAQND44Yhu-iYqEY6BxCc5O54ApTAYVAWQ,1851
|
|
106
|
-
aethergraph/services/continuations/factory.py,sha256=fNL0ykF28ahFRKg0Wn_9SAqjaE-S2DLfBkULFMK6v4w,1291
|
|
107
|
-
aethergraph/services/continuations/stores/fs_store.py,sha256=z0bfay6DyAxBNGWJmoN6ibxaUOGFao_DDtVinZ18DSw,10547
|
|
108
|
-
aethergraph/services/continuations/stores/inmem_store.py,sha256=QyRzEK8uQ2fIHHmAlFj9UsBzs8Ub5PUWz15eSDNG4sY,3573
|
|
109
|
-
aethergraph/services/eventbus/inmem.py,sha256=F8C89icPi8ZDcnhb_E4Gt4Q0PEIm7HLLzWGWjJ4aot4,677
|
|
110
|
-
aethergraph/services/features/static.py,sha256=-zefImm-eq_nZNEJzs1N3okgpHGm8cPHVLgjNdSQ-yk,296
|
|
111
|
-
aethergraph/services/kv/ephemeral.py,sha256=_CgycBaLzSzUotH_BLRpKch78WDNmNaZspxWDVQXhG8,3036
|
|
112
|
-
aethergraph/services/kv/factory.py,sha256=V4Q5qUb9Ykhw8tg-UK8QfH1T4E8wybhVOI3dlfZ0J-Q,819
|
|
113
|
-
aethergraph/services/kv/layered.py,sha256=TsUA1pKCeKyxNfTcTFQyobV8vBrsCoH1KyZ40Ge9-Pc,1523
|
|
114
|
-
aethergraph/services/kv/sqlite_kv.py,sha256=PjeRpBDXLXvuioHBbk1JgASDpFCqUtlJL70OEaUYAZA,4796
|
|
115
|
-
aethergraph/services/llm/factory.py,sha256=rfZkGOj7KLNIT_SEJCyTMnA1_GX3JhXZ1ezCDbsYJEU,5546
|
|
116
|
-
aethergraph/services/llm/generic_client.py,sha256=tD26Tn8OAsBHl_glDJHfcQozIt64PxeMm8KIHDHaOCw,20612
|
|
117
|
-
aethergraph/services/llm/providers.py,sha256=PfiAn2OhXEv8FR1jlPaA7kBI60_gWvrw_2SxYXfgMC8,128
|
|
118
|
-
aethergraph/services/llm/service.py,sha256=3uDHQrVTKZc9ptKnLPfZyqiaoN017jVvcrY0Kx6kOHA,3754
|
|
119
|
-
aethergraph/services/logger/base.py,sha256=BuWtFvS0Y9Y_f0_8Do3zfdM58gE70MfIPA6_M1qSI8I,1321
|
|
120
|
-
aethergraph/services/logger/compat.py,sha256=2BSbKv23oWn1ccIQ4NgX079IV94QTg3Z8PlrDfZ6x0c,1838
|
|
121
|
-
aethergraph/services/logger/formatters.py,sha256=2MvYRq5VPWQGwplgokGBtJX9EYULpaHGItDjTTKW2J0,3655
|
|
122
|
-
aethergraph/services/logger/std.py,sha256=EyxbhiHqKR-To3h3Tt9Ff2LVGxemdiCtkbcnTpzftE0,7346
|
|
123
|
-
aethergraph/services/mcp/helpers.py,sha256=lMSViIO3dZD-fHpFMBosr9SdBYgD3GMwd23XswxduOQ,819
|
|
124
|
-
aethergraph/services/mcp/http_client.py,sha256=y8EUZDMwiLVPOheyXiw5eksPp0NoZzjqP3PxXFYAFgo,2311
|
|
125
|
-
aethergraph/services/mcp/mcp_tools.py,sha256=uUXmKvYmVmLvcABIptZ5MzbYC0cDPCgCFppr4O2tKM4,837
|
|
126
|
-
aethergraph/services/mcp/registry.py,sha256=CM8ZfeIHmI0UlPxLITZL_dZv83VXtwPX6ZUb5gZnauM,460
|
|
127
|
-
aethergraph/services/mcp/service.py,sha256=BYvVFqrJnCWwt5rDEKibVoMWgoYpXkrsRf-4hsPLzQY,3637
|
|
128
|
-
aethergraph/services/mcp/stdio_client.py,sha256=nm2tVc4EvJ7MY23S7H9lRpkL-c8G9i3RWBSDYlV4FJI,2728
|
|
129
|
-
aethergraph/services/mcp/ws_client.py,sha256=ctCJzfhVjGXpPbbU2lUQ7ebP5OaqC6GFQm0QbigEDLs,4088
|
|
130
|
-
aethergraph/services/memory/bound.py,sha256=tfsy-RWe4QAAGUDcrzNp54ZRgSZS8g5Irm8hSwmiG9Y,3515
|
|
131
|
-
aethergraph/services/memory/facade.py,sha256=mVycybD27qIJi6gQMneiCp6wsLwKNBZkbOxfqiXJvpM,25079
|
|
132
|
-
aethergraph/services/memory/factory.py,sha256=0FnkMmCAqs4-mgWJiG1lsit9hRh1tI4PIHKEk4BzRHA,2579
|
|
133
|
-
aethergraph/services/memory/hotlog_kv.py,sha256=JVWssYsL-t4asokwq918c1vIa4EVyyi1iyk4uv1Ul1Y,991
|
|
134
|
-
aethergraph/services/memory/indices.py,sha256=Vs1b8JT9xCrHuipTQh6JGlgjFVHiRL4bAuLv2V8vxQc,2799
|
|
135
|
-
aethergraph/services/memory/io_helpers.py,sha256=HOFgVVwoM0erpBu6OtiPlBmjf0L5zHREPm0YtClFz9A,2033
|
|
136
|
-
aethergraph/services/memory/persist_fs.py,sha256=3mPxXfNTObPUzsxdBoPiG4fZ4haLM-GLmjE9oIVhnis,1427
|
|
137
|
-
aethergraph/services/memory/resolver.py,sha256=TiMBJO1ALRO4_7CwafbZ-V70b1ldMLCLHdrn2cN8nuk,5261
|
|
138
|
-
aethergraph/services/memory/distillers/episode.py,sha256=dWsqPGNhMt9KAIKqvNzeCFl4rFCoZ0evR03phVP8kg0,3629
|
|
139
|
-
aethergraph/services/memory/distillers/rolling.py,sha256=vc3Ezecg7hHDYRoCMK3h6UgFC2HsEF1dWzJmiQ-ExTU,2562
|
|
140
|
-
aethergraph/services/metering/noop.py,sha256=d6BJMiRGYpStqMtTv7MPNmVm5z9u9gWCVjUez2Cohss,139
|
|
141
|
-
aethergraph/services/prompts/file_store.py,sha256=z3tyoekJFTs3XVqFjLEC0wmVmdYj8vWDt9L5-GZ_UDg,1429
|
|
142
|
-
aethergraph/services/rag/chunker.py,sha256=WsjlciEUAVn-31nuDJiDcEkM-JtWB6Cp5aYfFC0mpmE,936
|
|
143
|
-
aethergraph/services/rag/facade.py,sha256=8btDrY9405OVKrasBZuzTm5SnANgwI-GMRagCEtvv64,24003
|
|
144
|
-
aethergraph/services/rag/index_factory.py,sha256=jwk7HExXVRxLEkjUjIUwpFFcadQplUup50P6icmD8WY,1741
|
|
145
|
-
aethergraph/services/rag/index/base.py,sha256=814bRi5kO8ZNyPTVo8x1QGEo6hxdmSd4peeUINbfFbg,819
|
|
146
|
-
aethergraph/services/rag/index/faiss_index.py,sha256=9SUNN98fLAkiS-a488sU2zo6_Fn4mxwV6Rz9TmtxErM,4460
|
|
147
|
-
aethergraph/services/rag/index/sqlite_index.py,sha256=anGAgFi_NJqCU71LEsNbEs-un_P4hOEq5LNvO-tFbOM,4524
|
|
148
|
-
aethergraph/services/rag/parsers/md.py,sha256=2rxCBCk0TWQ3CBkOiBSoKUifhNzhaq2JXS6W33uFGM4,196
|
|
149
|
-
aethergraph/services/rag/parsers/pdf.py,sha256=GkNZqz-Yq01iJ6ABTF77wQpI0Y0lHsjdXybKrsnEDiM,375
|
|
150
|
-
aethergraph/services/rag/parsers/txt.py,sha256=2rxCBCk0TWQ3CBkOiBSoKUifhNzhaq2JXS6W33uFGM4,196
|
|
151
|
-
aethergraph/services/rag/utils/hybrid.py,sha256=2as5XZBUWb5EsP_S8YUvvtNZDWyCqSwKd0mjG0SFLj4,1196
|
|
152
|
-
aethergraph/services/rag/utils/make_fs_key.py,sha256=VaJmJUhXIlAckGWfRDPFew07qPBOI_X_NlB75cjP_s4,1658
|
|
153
|
-
aethergraph/services/redactor/simple.py,sha256=uuO7BPHjZ28pncWUjuxRymlN253WWq9lcTRPjkFPybg,505
|
|
154
|
-
aethergraph/services/registry/key_parsing.py,sha256=DeCCrFms2Zx4VO6ONj7M02xPJYv29Ol6gIWAl8bq4js,1334
|
|
155
|
-
aethergraph/services/registry/registry_key.py,sha256=s5ZBdeEyC_3_fkwt44VOiXYacgy9MEITb8qC8Etv8L4,569
|
|
156
|
-
aethergraph/services/registry/unified_registry.py,sha256=nXGmvDJAH0OCYNKDPIC4az5FXLrpI8kUasVPp9v7mhQ,7021
|
|
157
|
-
aethergraph/services/resume/multi_scheduler_resume_bus.py,sha256=ZeQnG1KXKWw2vk4rcgJePYdzPNWOI5m__ZDIHQetibk,2274
|
|
158
|
-
aethergraph/services/resume/router.py,sha256=NYS9uLaq2AB0j5x_VWlEkRRzApxlmlcePigm8vhEqtE,2856
|
|
159
|
-
aethergraph/services/schedulers/registry.py,sha256=tHQKHFqKEzoxzV0e-hTkrPjlGw5ou1BAxk3dzyVMfZY,1200
|
|
160
|
-
aethergraph/services/secrets/base.py,sha256=St9bnXjqNuybq8W2q0IWC-bsboOv8GQDOypGPPsqpNE,204
|
|
161
|
-
aethergraph/services/secrets/env.py,sha256=Zqo-KlyQ_qucZ1Ul2pIUnPheeWqlou4gftWYmhqPIc4,149
|
|
162
|
-
aethergraph/services/state_stores/externalize.py,sha256=jaItE8sOqM7NvjAPka8TOC0c0jhunXBiTJhrROSv3ng,3761
|
|
163
|
-
aethergraph/services/state_stores/graph_observer.py,sha256=OZz81iwqExDlicVHEyGVcAoC7h0QTCPLZSeKABcNvIs,5061
|
|
164
|
-
aethergraph/services/state_stores/json_store.py,sha256=WeoAtCsHdR8Hdewn4zOl_EguvFVSuUXAR5D_85g3mt0,2611
|
|
165
|
-
aethergraph/services/state_stores/resume_policy.py,sha256=_EY8Vvmm7JVyABlKRcI07uMkT4rdzlUKBoWnk_a0UZI,3850
|
|
166
|
-
aethergraph/services/state_stores/serialize.py,sha256=ocTtOovEbSoHKXWy_4qmw83uI-YhV7ewfYyLPRZUn5g,8684
|
|
167
|
-
aethergraph/services/state_stores/utils.py,sha256=OB9OYTYzxFZB75wTKYfCn8QA6gYyfpZ_YAEvx2dHH_8,2761
|
|
168
|
-
aethergraph/services/state_stores/validate.py,sha256=wqaY15P6Gk6CUg9Y3TYPVVmGIojl5UK8D_RiLKGKDsk,2564
|
|
169
|
-
aethergraph/services/tracing/noop.py,sha256=iM_3aVPVj-AK-rRzDIV49PVoq0SF1nkJA0f2SDbMYqE,478
|
|
170
|
-
aethergraph/services/waits/wait_registry.py,sha256=MQJp7AxV7rJE7cEcnleOgK9-4wgMcPPJJkberkICxcQ,3492
|
|
171
|
-
aethergraph/services/wakeup/memory_queue.py,sha256=b2MVBXnpages8kKEy5t3lXhs1GBHDQKv7GLK209PMJM,1956
|
|
172
|
-
aethergraph/services/wakeup/scanner_producer.py,sha256=lkaok9cqeyaxrRjf1YSZd4woz1pOoKeqnL7MZlh1L_s,2047
|
|
173
|
-
aethergraph/services/wakeup/worker.py,sha256=3xbZEaEKPWfaWLWR4KQ6lb_DD34ktK9hDP3VM3UEsdk,1110
|
|
174
|
-
aethergraph/tools/__init__.py,sha256=X6UEYgaxAoB532m40LPo0uMvMierk3gmVvsjM7MA4ow,458
|
|
175
|
-
aethergraph/utils/optdeps.py,sha256=wlIq0e_WBTXBgYGqzYxaCcg_D47vDccqY3sql5zKbW4,285
|
|
176
|
-
aethergraph-0.1.0a1.dist-info/licenses/LICENSE,sha256=JcWMZSXRGzXgAJMkTpqHvmyXtsYoAwRcB0rnNS0cRCE,10034
|
|
177
|
-
aethergraph-0.1.0a1.dist-info/licenses/NOTICE,sha256=10TYfrFmJdzpCWge_f-DYyDtYDzU2MtE5qtQr4Sm8kc,1338
|
|
178
|
-
aethergraph-0.1.0a1.dist-info/METADATA,sha256=ITSvhmv21zKTrLYSvYmta1D8OfAvkDNnQWtWsppuE7E,18759
|
|
179
|
-
aethergraph-0.1.0a1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
180
|
-
aethergraph-0.1.0a1.dist-info/entry_points.txt,sha256=pil9_sSqwRH9PTc06Uk86D_XeQeE5b5o2n2U1Of7XrA,58
|
|
181
|
-
aethergraph-0.1.0a1.dist-info/top_level.txt,sha256=omXbbeG3KmSv0unFePBbnmxe6L0k9E5CSoANPs7FMkY,12
|
|
182
|
-
aethergraph-0.1.0a1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|