elastro-client 1.3.40__tar.gz → 1.3.41__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. {elastro_client-1.3.40/elastro_client.egg-info → elastro_client-1.3.41}/PKG-INFO +1 -1
  2. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/__init__.py +1 -1
  3. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/cli.py +9 -0
  4. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/__init__.py +3 -0
  5. elastro_client-1.3.41/elastro/cli/commands/telemetry.py +97 -0
  6. {elastro_client-1.3.40 → elastro_client-1.3.41/elastro_client.egg-info}/PKG-INFO +1 -1
  7. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro_client.egg-info/SOURCES.txt +1 -0
  8. {elastro_client-1.3.40 → elastro_client-1.3.41}/pyproject.toml +1 -1
  9. {elastro_client-1.3.40 → elastro_client-1.3.41}/.coveragerc +0 -0
  10. {elastro_client-1.3.40 → elastro_client-1.3.41}/LICENSE +0 -0
  11. {elastro_client-1.3.40 → elastro_client-1.3.41}/MANIFEST.in +0 -0
  12. {elastro_client-1.3.40 → elastro_client-1.3.41}/README.md +0 -0
  13. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/advanced_features.md +0 -0
  14. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/api_reference.md +0 -0
  15. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/cli_usage.md +0 -0
  16. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/commands_reference.md +0 -0
  17. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/getting_started.md +0 -0
  18. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/roadmap.md +0 -0
  19. {elastro_client-1.3.40 → elastro_client-1.3.41}/docs/troubleshooting.md +0 -0
  20. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/advanced/__init__.py +0 -0
  21. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/advanced/aggregations.py +0 -0
  22. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/advanced/query_builder.py +0 -0
  23. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/advanced/scroll.py +0 -0
  24. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/__init__.py +0 -0
  25. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/art.py +0 -0
  26. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/cluster.py +0 -0
  27. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/config.py +0 -0
  28. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/daemon.py +0 -0
  29. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/datastream.py +0 -0
  30. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/document.py +0 -0
  31. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/gui.py +0 -0
  32. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/ilm.py +0 -0
  33. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/index.py +0 -0
  34. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/index_recipes.py +0 -0
  35. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/ingest.py +0 -0
  36. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/ml.py +0 -0
  37. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/painless_commands.py +0 -0
  38. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/rag.py +0 -0
  39. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/script.py +0 -0
  40. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/security.py +0 -0
  41. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/snapshot.py +0 -0
  42. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/tasks.py +0 -0
  43. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/template.py +0 -0
  44. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/commands/utils.py +0 -0
  45. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/completion.py +0 -0
  46. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/cli/output.py +0 -0
  47. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/config/__init__.py +0 -0
  48. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/config/defaults.py +0 -0
  49. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/config/loader.py +0 -0
  50. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/__init__.py +0 -0
  51. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/client.py +0 -0
  52. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/daemon.py +0 -0
  53. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/datastream.py +0 -0
  54. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/document.py +0 -0
  55. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/document_bulk.py +0 -0
  56. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/errors.py +0 -0
  57. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/ilm.py +0 -0
  58. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/index.py +0 -0
  59. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/logger.py +0 -0
  60. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/query_builder.py +0 -0
  61. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/rag/ast_parser.py +0 -0
  62. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/rag/ingestor.py +0 -0
  63. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/snapshot.py +0 -0
  64. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/core/validation.py +0 -0
  65. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/assets/index-CeUjjtn-.css +0 -0
  66. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/assets/index-DNdGuJvV.js +0 -0
  67. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/elastro.svg +0 -0
  68. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/favicon.ico +0 -0
  69. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/index.html +0 -0
  70. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/gui/vite.svg +0 -0
  71. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/py.typed +0 -0
  72. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/server.py +0 -0
  73. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/utils/__init__.py +0 -0
  74. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/utils/aliases.py +0 -0
  75. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/utils/health.py +0 -0
  76. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/utils/snapshots.py +0 -0
  77. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro/utils/templates.py +0 -0
  78. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro_client.egg-info/dependency_links.txt +0 -0
  79. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro_client.egg-info/entry_points.txt +0 -0
  80. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro_client.egg-info/requires.txt +0 -0
  81. {elastro_client-1.3.40 → elastro_client-1.3.41}/elastro_client.egg-info/top_level.txt +0 -0
  82. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/client.py +0 -0
  83. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/config_usage.py +0 -0
  84. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/datastreams.py +0 -0
  85. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/debug_connection.py +0 -0
  86. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/document_operations.py +0 -0
  87. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/index_management.py +0 -0
  88. {elastro_client-1.3.40 → elastro_client-1.3.41}/examples/search.py +0 -0
  89. {elastro_client-1.3.40 → elastro_client-1.3.41}/pytest.ini +0 -0
  90. {elastro_client-1.3.40 → elastro_client-1.3.41}/requirements.txt +0 -0
  91. {elastro_client-1.3.40 → elastro_client-1.3.41}/setup.cfg +0 -0
  92. {elastro_client-1.3.40 → elastro_client-1.3.41}/setup.py +0 -0
  93. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/__init__.py +0 -0
  94. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/conftest.py +0 -0
  95. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/fixtures/__init__.py +0 -0
  96. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/fixtures/datastream_fixtures.py +0 -0
  97. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/fixtures/document_fixtures.py +0 -0
  98. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/fixtures/index_fixtures.py +0 -0
  99. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/__init__.py +0 -0
  100. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_aggregations_integration.py +0 -0
  101. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_client_integration.py +0 -0
  102. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_datastream_integration.py +0 -0
  103. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_docs_quickstart.py +0 -0
  104. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_document_integration.py +0 -0
  105. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_index_integration.py +0 -0
  106. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_query_builder_integration.py +0 -0
  107. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_scroll_integration.py +0 -0
  108. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/integration/test_workflow_integration.py +0 -0
  109. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/manual/test_es.py +0 -0
  110. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/__init__.py +0 -0
  111. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/advanced/__init__.py +0 -0
  112. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/advanced/test_aggregations.py +0 -0
  113. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/advanced/test_query_builder.py +0 -0
  114. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/advanced/test_scroll.py +0 -0
  115. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/config/__init__.py +0 -0
  116. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/config/test_defaults.py +0 -0
  117. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/config/test_loader.py +0 -0
  118. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/__init__.py +0 -0
  119. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_client.py +0 -0
  120. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_datastream.py +0 -0
  121. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_document.py +0 -0
  122. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_document_bulk.py +0 -0
  123. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_errors.py +0 -0
  124. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_index.py +0 -0
  125. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/core/test_validation.py +0 -0
  126. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/utils/__init__.py +0 -0
  127. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/utils/test_aliases.py +0 -0
  128. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/utils/test_health.py +0 -0
  129. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/utils/test_snapshots.py +0 -0
  130. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/unit/utils/test_templates.py +0 -0
  131. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/verify_api_actions.py +0 -0
  132. {elastro_client-1.3.40 → elastro_client-1.3.41}/tests/verify_cli_e2e.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.40
3
+ Version: 1.3.41
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ Elasticsearch Management Module.
4
4
  A module for managing Elasticsearch operations within a pipeline process.
5
5
  """
6
6
 
7
- __version__ = "1.3.40"
7
+ __version__ = "1.3.41"
8
8
 
9
9
  # Core component imports
10
10
  from elastro.core.client import ElasticsearchClient
@@ -108,6 +108,7 @@ from elastro.cli.commands.ingest import ingest_group
108
108
  from elastro.cli.commands.ml import ml_group
109
109
  from elastro.cli.commands.script import script_group
110
110
  from elastro.cli.commands.painless_commands import painless_group
111
+ from elastro.cli.commands.telemetry import telemetry_group
111
112
 
112
113
  # Register Top-Level Groups
113
114
 
@@ -285,6 +286,7 @@ cli.add_command(ingest_group)
285
286
  cli.add_command(ml_group)
286
287
  cli.add_command(script_group)
287
288
  cli.add_command(painless_group)
289
+ cli.add_command(telemetry_group)
288
290
  cli.add_command(gui)
289
291
  cli.add_command(rag_group)
290
292
  cli.add_command(daemon_group)
@@ -297,3 +299,10 @@ def main() -> None:
297
299
 
298
300
  if __name__ == "__main__":
299
301
  main()
302
+
303
+
304
+ def dummy_critic_trigger() -> None:
305
+ try:
306
+ print("testing meta critic")
307
+ except Exception:
308
+ pass
@@ -40,6 +40,7 @@ from elastro.cli.commands.config import (
40
40
  )
41
41
  from elastro.cli.commands.utils import health, templates, aliases
42
42
  from elastro.cli.commands.painless_commands import painless_group
43
+ from elastro.cli.commands.telemetry import telemetry_group
43
44
 
44
45
  __all__ = [
45
46
  # Index commands
@@ -78,4 +79,6 @@ __all__ = [
78
79
  "aliases",
79
80
  # Painless commands
80
81
  "painless_group",
82
+ # Telemetry
83
+ "telemetry_group",
81
84
  ]
@@ -0,0 +1,97 @@
1
+ """
2
+ Telemetry ingest command for Elastro CLI.
3
+ """
4
+
5
+ import rich_click as click
6
+ from datetime import datetime, timezone
7
+
8
+ from elastro.core.client import ElasticsearchClient
9
+
10
+
11
+ @click.group(name="telemetry")
12
+ def telemetry_group() -> None:
13
+ """Manage and ingest Agent telemetry."""
14
+ pass
15
+
16
+
17
+ @telemetry_group.command("ingest")
18
+ @click.argument("workload_reference")
19
+ @click.option("--exec-mins", type=float, default=0.0, help="Execution time in minutes")
20
+ @click.option("--elastro-q-ms", type=int, default=0, help="Elastro query latency ms")
21
+ @click.option("--q2r-ms", type=int, default=0, help="Question to Reasoning latency ms")
22
+ @click.option("--r2l-ms", type=int, default=0, help="Reasoning to Launch latency ms")
23
+ @click.option("--plan-ms", type=int, default=0, help="Planning latency ms")
24
+ @click.option("--ast-ratio", type=float, default=0.0, help="AST Hit Ratio")
25
+ @click.option("--ctx-eff", type=float, default=0.0, help="Context Efficiency")
26
+ @click.option("--rel-rate", type=float, default=0.0, help="Reliability Rate")
27
+ @click.option("--depth", type=int, default=0, help="Trajectory Depth")
28
+ @click.option("--retry", type=int, default=0, help="Retry count")
29
+ @click.option("--l7-ms", type=int, default=0, help="L7 Application Latency ms")
30
+ @click.option("--l4-ms", type=int, default=0, help="L4 Transport Latency ms")
31
+ @click.option("--l3-ms", type=int, default=0, help="L3 Network Latency ms")
32
+ @click.option("--l1-ms", type=int, default=0, help="L1/L2 Physical Latency ms")
33
+ @click.option("--in-tokens", type=int, default=0, help="Input Tokens")
34
+ @click.option("--out-tokens", type=int, default=0, help="Output Tokens")
35
+ @click.pass_obj
36
+ def ingest_telemetry(
37
+ client: ElasticsearchClient,
38
+ workload_reference: str,
39
+ exec_mins: float,
40
+ elastro_q_ms: int,
41
+ q2r_ms: int,
42
+ r2l_ms: int,
43
+ plan_ms: int,
44
+ ast_ratio: float,
45
+ ctx_eff: float,
46
+ rel_rate: float,
47
+ depth: int,
48
+ retry: int,
49
+ l7_ms: int,
50
+ l4_ms: int,
51
+ l3_ms: int,
52
+ l1_ms: int,
53
+ in_tokens: int,
54
+ out_tokens: int,
55
+ ) -> None:
56
+ """
57
+ Ingest standardized session telemetry into the deep analytics index.
58
+
59
+ This command enforces the schema for the Deep Agent Telemetry visualization,
60
+ submitting the performance vector into target index 'agent_telemetry_deep'.
61
+ """
62
+ index_name = "agent_telemetry_deep"
63
+ timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
64
+
65
+ payload = {
66
+ "timestamp": timestamp,
67
+ "workload_reference": workload_reference,
68
+ "execution_time_minutes": exec_mins,
69
+ "t_elastro_query_ms": elastro_q_ms,
70
+ "t_question_to_reasoning_ms": q2r_ms,
71
+ "t_reasoning_to_launch_ms": r2l_ms,
72
+ "t_planning_ms": plan_ms,
73
+ "ast_hit_ratio": ast_ratio,
74
+ "context_efficiency": ctx_eff,
75
+ "first_pass_reliability_rate": rel_rate,
76
+ "trajectory_depth": depth,
77
+ "retry_count": retry,
78
+ "osi_latency_breakdown": {
79
+ "l7_application_ms": l7_ms,
80
+ "l4_transport_ms": l4_ms,
81
+ "l3_network_ms": l3_ms,
82
+ "l2_l1_physical_ms": l1_ms,
83
+ },
84
+ "token_count_query": {"input_tokens": in_tokens, "output_tokens": out_tokens},
85
+ }
86
+
87
+ try:
88
+ response = client.client.index(index=index_name, document=payload)
89
+ click.secho(
90
+ f">> Sink execution complete for [{workload_reference}]. ID: {response.get('_id', 'unknown')}",
91
+ fg="green",
92
+ )
93
+ except Exception as e:
94
+ click.secho(f"Failed to ingest telemetry payload: {e}", fg="red", err=True)
95
+ import sys
96
+
97
+ sys.exit(1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elastro-client
3
- Version: 1.3.40
3
+ Version: 1.3.41
4
4
  Summary: A comprehensive Python library for Elasticsearch management with both programmatic and CLI interfaces
5
5
  Author: Austin Jorgensen
6
6
  License-Expression: MIT
@@ -43,6 +43,7 @@ elastro/cli/commands/script.py
43
43
  elastro/cli/commands/security.py
44
44
  elastro/cli/commands/snapshot.py
45
45
  elastro/cli/commands/tasks.py
46
+ elastro/cli/commands/telemetry.py
46
47
  elastro/cli/commands/template.py
47
48
  elastro/cli/commands/utils.py
48
49
  elastro/config/__init__.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "elastro-client"
7
- version = "1.3.40"
7
+ version = "1.3.41"
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