elastro-client 1.3.48__tar.gz → 1.3.49__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.
- {elastro_client-1.3.48/elastro_client.egg-info → elastro_client-1.3.49}/PKG-INFO +1 -1
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/__init__.py +1 -1
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/memory.py +79 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49/elastro_client.egg-info}/PKG-INFO +1 -1
- {elastro_client-1.3.48 → elastro_client-1.3.49}/pyproject.toml +1 -1
- {elastro_client-1.3.48 → elastro_client-1.3.49}/.coveragerc +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/LICENSE +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/MANIFEST.in +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/README.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/advanced_features.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/api_reference.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/cli_usage.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/commands_reference.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/getting_started.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/roadmap.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/docs/troubleshooting.md +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/advanced/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/advanced/aggregations.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/advanced/query_builder.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/advanced/scroll.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/art.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/cli.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/cluster.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/config.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/daemon.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/datastream.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/document.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/gui.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/ilm.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/index.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/index_recipes.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/ingest.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/ml.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/painless_commands.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/rag.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/script.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/security.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/snapshot.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/tasks.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/telemetry.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/template.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/tools.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/commands/utils.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/completion.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/cli/output.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/config/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/config/defaults.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/config/loader.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/client.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/daemon.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/datastream.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/document.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/document_bulk.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/errors.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/ilm.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/index.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/logger.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/query_builder.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/rag/ast_parser.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/rag/ingestor.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/snapshot.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/core/validation.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/assets/index-CeUjjtn-.css +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/assets/index-DNdGuJvV.js +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/elastro.svg +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/favicon.ico +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/index.html +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/gui/vite.svg +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/py.typed +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/server.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/utils/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/utils/aliases.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/utils/health.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/utils/snapshots.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro/utils/templates.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/SOURCES.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/dependency_links.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/entry_points.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/requires.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/top_level.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/client.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/config_usage.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/datastreams.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/debug_connection.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/document_operations.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/index_management.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/examples/search.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/pytest.ini +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/requirements.txt +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/setup.cfg +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/setup.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/conftest.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/fixtures/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/fixtures/datastream_fixtures.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/fixtures/document_fixtures.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/fixtures/index_fixtures.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_aggregations_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_client_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_datastream_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_docs_quickstart.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_document_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_index_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_query_builder_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_scroll_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_workflow_integration.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/manual/test_es.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/advanced/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/advanced/test_aggregations.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/advanced/test_query_builder.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/advanced/test_scroll.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/config/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/config/test_defaults.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/config/test_loader.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_client.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_datastream.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_document.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_document_bulk.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_errors.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_index.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/core/test_validation.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/utils/__init__.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/utils/test_aliases.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/utils/test_health.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/utils/test_snapshots.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/unit/utils/test_templates.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/verify_api_actions.py +0 -0
- {elastro_client-1.3.48 → elastro_client-1.3.49}/tests/verify_cli_e2e.py +0 -0
|
@@ -161,3 +161,82 @@ def prune_memory(
|
|
|
161
161
|
import sys
|
|
162
162
|
|
|
163
163
|
sys.exit(1)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@memory_group.command("wake")
|
|
167
|
+
@click.argument("heuristic_query")
|
|
168
|
+
@click.option(
|
|
169
|
+
"--anchor",
|
|
170
|
+
"anchor_hash",
|
|
171
|
+
default="",
|
|
172
|
+
help="Deterministic tool hash to anchor the activation wave",
|
|
173
|
+
)
|
|
174
|
+
@click.option("--k", default=5, help="Top-K bounded node subset (500-1k tokens max)")
|
|
175
|
+
@click.pass_obj
|
|
176
|
+
def wake_memory(
|
|
177
|
+
client: ElasticsearchClient,
|
|
178
|
+
heuristic_query: str,
|
|
179
|
+
anchor_hash: str,
|
|
180
|
+
k: int,
|
|
181
|
+
) -> None:
|
|
182
|
+
"""
|
|
183
|
+
Primed Activation 'Wake' Query: Bounded Activation Wave.
|
|
184
|
+
Uses exponential decay (TTL) on timestamps and strictly bounds the subgraph
|
|
185
|
+
context to slash API latency.
|
|
186
|
+
"""
|
|
187
|
+
index_name = "agent_semantic_memory"
|
|
188
|
+
|
|
189
|
+
from typing import Dict, Any, List
|
|
190
|
+
|
|
191
|
+
# Core textual RAG retrieval
|
|
192
|
+
must_clauses: List[Dict[str, Any]] = [
|
|
193
|
+
{
|
|
194
|
+
"multi_match": {
|
|
195
|
+
"query": heuristic_query,
|
|
196
|
+
"fields": ["subject^3", "content", "tags"],
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
# Deterministic API Hash anchoring
|
|
202
|
+
if anchor_hash:
|
|
203
|
+
must_clauses.append({"term": {"anchor_hash": anchor_hash}})
|
|
204
|
+
|
|
205
|
+
# Exponential TTL Similarity Decay (Bioelectric node stimulation mimicry)
|
|
206
|
+
function_score_query = {
|
|
207
|
+
"function_score": {
|
|
208
|
+
"query": {"bool": {"must": must_clauses}},
|
|
209
|
+
"functions": [
|
|
210
|
+
{"exp": {"timestamp": {"scale": "7d", "offset": "1d", "decay": 0.5}}}
|
|
211
|
+
],
|
|
212
|
+
"boost_mode": "multiply",
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
search_body: Dict[str, Any] = {
|
|
217
|
+
"size": k,
|
|
218
|
+
"query": function_score_query,
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
try:
|
|
222
|
+
response = client.client.search(index=index_name, body=search_body)
|
|
223
|
+
hits = response.get("hits", {}).get("hits", [])
|
|
224
|
+
|
|
225
|
+
click.secho(f"Primed Activation Wave [{len(hits)} Nodes Awakened]", fg="cyan")
|
|
226
|
+
for hit in hits:
|
|
227
|
+
if not isinstance(hit, dict):
|
|
228
|
+
continue
|
|
229
|
+
source = hit.get("_source", {})
|
|
230
|
+
score = hit.get("_score", 0.0)
|
|
231
|
+
click.echo(
|
|
232
|
+
f"\n[STIMULATED] {source.get('subject', 'Untitled')} (Score: {score:.2f})"
|
|
233
|
+
)
|
|
234
|
+
click.echo(f" {source.get('content', '')}")
|
|
235
|
+
if source.get("anchor_hash"):
|
|
236
|
+
click.echo(f" Anchor: {source['anchor_hash']}")
|
|
237
|
+
|
|
238
|
+
except Exception as e:
|
|
239
|
+
click.secho(f"Activation wave failed: {e}", fg="red", err=True)
|
|
240
|
+
import sys
|
|
241
|
+
|
|
242
|
+
sys.exit(1)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "elastro-client"
|
|
7
|
-
version = "1.3.
|
|
7
|
+
version = "1.3.49"
|
|
8
8
|
description = "A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9,<3.14"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/elastro_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_aggregations_integration.py
RENAMED
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_client_integration.py
RENAMED
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_datastream_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_document_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_query_builder_integration.py
RENAMED
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_scroll_integration.py
RENAMED
|
File without changes
|
{elastro_client-1.3.48 → elastro_client-1.3.49}/tests/integration/test_workflow_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|