ha-mcp-dev 7.4.1.dev457__tar.gz → 7.4.1.dev458__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.
- {ha_mcp_dev-7.4.1.dev457/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.4.1.dev458}/PKG-INFO +1 -1
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/pyproject.toml +1 -1
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_traces.py +52 -7
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/LICENSE +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/README.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/setup.cfg +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/settings_ui.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "7.4.1.
|
|
7
|
+
version = "7.4.1.dev458"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13,<3.14"
|
|
@@ -7,7 +7,7 @@ to help debug automation and script issues.
|
|
|
7
7
|
|
|
8
8
|
import json
|
|
9
9
|
import logging
|
|
10
|
-
from typing import Annotated, Any
|
|
10
|
+
from typing import Annotated, Any, Literal
|
|
11
11
|
|
|
12
12
|
from fastmcp import Context
|
|
13
13
|
from fastmcp.exceptions import ToolError
|
|
@@ -63,7 +63,7 @@ class TraceTools:
|
|
|
63
63
|
limit: Annotated[
|
|
64
64
|
int,
|
|
65
65
|
Field(
|
|
66
|
-
description="Maximum number of traces to return when listing (default: 10, max: 50)",
|
|
66
|
+
description="Maximum number of traces to return when listing (default: 10, max: 50).",
|
|
67
67
|
default=10,
|
|
68
68
|
ge=1,
|
|
69
69
|
le=50,
|
|
@@ -94,6 +94,21 @@ class TraceTools:
|
|
|
94
94
|
default=None,
|
|
95
95
|
),
|
|
96
96
|
] = None,
|
|
97
|
+
offset: Annotated[
|
|
98
|
+
int,
|
|
99
|
+
Field(
|
|
100
|
+
description="Number of traces to skip from the start of the requested order. Use with `limit` to page through stored traces when `total_available > limit`.",
|
|
101
|
+
default=0,
|
|
102
|
+
ge=0,
|
|
103
|
+
),
|
|
104
|
+
] = 0,
|
|
105
|
+
order: Annotated[
|
|
106
|
+
Literal["newest", "oldest"],
|
|
107
|
+
Field(
|
|
108
|
+
description="Order traces are returned in. 'newest' (default) returns most-recent first; 'oldest' returns chronological-first.",
|
|
109
|
+
default="newest",
|
|
110
|
+
),
|
|
111
|
+
] = "newest",
|
|
97
112
|
ctx: Context | None = None,
|
|
98
113
|
) -> dict[str, Any]:
|
|
99
114
|
"""
|
|
@@ -111,6 +126,8 @@ class TraceTools:
|
|
|
111
126
|
1. List recent traces (omit run_id):
|
|
112
127
|
ha_get_automation_traces("automation.motion_light")
|
|
113
128
|
Returns a summary of recent execution runs with timestamps, triggers, and status.
|
|
129
|
+
Use `offset` to page deeper when `has_more` is true, or `order="oldest"` to
|
|
130
|
+
start from the earliest stored trace instead of the most recent.
|
|
114
131
|
|
|
115
132
|
2. Get detailed trace (provide run_id):
|
|
116
133
|
ha_get_automation_traces("automation.motion_light", run_id="1705312800.123456")
|
|
@@ -268,7 +285,12 @@ class TraceTools:
|
|
|
268
285
|
ctx, progress=3, total=3, message="diagnostics complete"
|
|
269
286
|
)
|
|
270
287
|
return _format_trace_list(
|
|
271
|
-
automation_id,
|
|
288
|
+
automation_id,
|
|
289
|
+
traces_data,
|
|
290
|
+
limit,
|
|
291
|
+
diagnostics,
|
|
292
|
+
offset=offset,
|
|
293
|
+
order=order,
|
|
272
294
|
)
|
|
273
295
|
|
|
274
296
|
await safe_progress(
|
|
@@ -277,7 +299,13 @@ class TraceTools:
|
|
|
277
299
|
total=3,
|
|
278
300
|
message=f"listed {len(traces_data)} traces",
|
|
279
301
|
)
|
|
280
|
-
return _format_trace_list(
|
|
302
|
+
return _format_trace_list(
|
|
303
|
+
automation_id,
|
|
304
|
+
traces_data,
|
|
305
|
+
limit,
|
|
306
|
+
offset=offset,
|
|
307
|
+
order=order,
|
|
308
|
+
)
|
|
281
309
|
|
|
282
310
|
finally:
|
|
283
311
|
await ws_client.disconnect()
|
|
@@ -463,18 +491,32 @@ def _format_trace_list(
|
|
|
463
491
|
traces: list[dict[str, Any]],
|
|
464
492
|
limit: int,
|
|
465
493
|
diagnostics: dict[str, Any] | None = None,
|
|
494
|
+
*,
|
|
495
|
+
offset: int = 0,
|
|
496
|
+
order: Literal["newest", "oldest"] = "newest",
|
|
466
497
|
) -> dict[str, Any]:
|
|
467
498
|
"""Format trace list for AI consumption.
|
|
468
499
|
|
|
469
500
|
Args:
|
|
470
501
|
automation_id: The automation or script entity_id
|
|
471
|
-
traces: List of trace data from Home Assistant
|
|
502
|
+
traces: List of trace data from Home Assistant (oldest-first)
|
|
472
503
|
limit: Maximum number of traces to include
|
|
473
504
|
diagnostics: Optional diagnostic information when traces are empty
|
|
505
|
+
offset: Number of traces to skip from the start of the requested order
|
|
506
|
+
order: 'newest' (default) returns most-recent first; 'oldest' chronological
|
|
474
507
|
"""
|
|
475
|
-
|
|
508
|
+
# HA's trace/list returns traces oldest-first. Pick a window from the end
|
|
509
|
+
# for newest-first, or from the start for oldest-first, with offset for
|
|
510
|
+
# pagination through stored traces beyond `limit`.
|
|
511
|
+
if order == "newest":
|
|
512
|
+
end = len(traces) - offset
|
|
513
|
+
start = max(end - limit, 0)
|
|
514
|
+
window = list(reversed(traces[start:end])) if end > 0 else []
|
|
515
|
+
else:
|
|
516
|
+
window = traces[offset:offset + limit]
|
|
476
517
|
|
|
477
|
-
|
|
518
|
+
formatted_traces = []
|
|
519
|
+
for trace in window:
|
|
478
520
|
# Extract key information from trace
|
|
479
521
|
trace_info: dict[str, Any] = {
|
|
480
522
|
"run_id": trace.get("run_id"),
|
|
@@ -503,6 +545,9 @@ def _format_trace_list(
|
|
|
503
545
|
"automation_id": automation_id,
|
|
504
546
|
"trace_count": len(formatted_traces),
|
|
505
547
|
"total_available": len(traces),
|
|
548
|
+
"offset": offset,
|
|
549
|
+
"order": order,
|
|
550
|
+
"has_more": offset + len(formatted_traces) < len(traces),
|
|
506
551
|
"traces": formatted_traces,
|
|
507
552
|
"hint": "Use run_id with this tool to get detailed trace information",
|
|
508
553
|
}
|
|
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
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/resources/skills-vendor/README.md
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
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/best_practice_checker.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
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_config_scripts.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
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.4.1.dev457 → ha_mcp_dev-7.4.1.dev458}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|