tau-all-agent 0.1.0

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 (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/extensions/answer.ts +601 -0
  4. package/extensions/branch-term.ts +405 -0
  5. package/extensions/btw.ts +444 -0
  6. package/extensions/ghostty.ts +301 -0
  7. package/extensions/git-diff-stats.ts +277 -0
  8. package/extensions/git-pr-status.ts +286 -0
  9. package/extensions/insights.ts +2367 -0
  10. package/extensions/interlude.ts +144 -0
  11. package/extensions/loop.ts +529 -0
  12. package/extensions/memory.ts +1889 -0
  13. package/extensions/notify.ts +161 -0
  14. package/extensions/openai-fast.ts +227 -0
  15. package/extensions/openai-verbosity.ts +223 -0
  16. package/extensions/review.ts +4347 -0
  17. package/extensions/sandbox/index.ts +2578 -0
  18. package/extensions/telegram/README.md +81 -0
  19. package/extensions/telegram/daemon.mjs +1942 -0
  20. package/extensions/telegram/index.ts +1073 -0
  21. package/extensions/telegram/message-text.d.mts +1 -0
  22. package/extensions/telegram/message-text.mjs +16 -0
  23. package/extensions/usage/anthropic.ts +198 -0
  24. package/extensions/usage/github-copilot.ts +204 -0
  25. package/extensions/usage/google-gemini-cli.ts +232 -0
  26. package/extensions/usage/index.ts +2310 -0
  27. package/extensions/usage/minimax.ts +208 -0
  28. package/extensions/usage/openai-codex.ts +180 -0
  29. package/extensions/usage/openrouter.ts +168 -0
  30. package/extensions/usage/providers.ts +26 -0
  31. package/extensions/usage/shared.ts +156 -0
  32. package/extensions/usage/types.ts +53 -0
  33. package/extensions/usage/zai.ts +186 -0
  34. package/extensions/websearch/README.md +68 -0
  35. package/extensions/websearch/browser/chromium.ts +330 -0
  36. package/extensions/websearch/browser/discovery.ts +75 -0
  37. package/extensions/websearch/browser/firefox.ts +150 -0
  38. package/extensions/websearch/browser/sqlite.ts +38 -0
  39. package/extensions/websearch/config.ts +76 -0
  40. package/extensions/websearch/index.ts +312 -0
  41. package/extensions/websearch/normalize.ts +155 -0
  42. package/extensions/websearch/providers/anthropic.pi.ts +139 -0
  43. package/extensions/websearch/providers/gemini.browser.ts +185 -0
  44. package/extensions/websearch/providers/gemini.pi.ts +108 -0
  45. package/extensions/websearch/providers/openai-codex.browser.ts +77 -0
  46. package/extensions/websearch/providers/openai-codex.pi.ts +49 -0
  47. package/extensions/websearch/providers/openai-codex.shared.ts +123 -0
  48. package/extensions/websearch/providers/pi-model.shared.ts +86 -0
  49. package/extensions/websearch/providers/search-prompt.shared.ts +17 -0
  50. package/extensions/websearch/providers/shared.ts +76 -0
  51. package/extensions/websearch/types.ts +52 -0
  52. package/extensions/worktree.ts +2223 -0
  53. package/package.json +76 -0
  54. package/skills/browser-tools/SKILL.md +253 -0
  55. package/skills/browser-tools/scripts/browser-content.js +100 -0
  56. package/skills/browser-tools/scripts/browser-cookies.js +33 -0
  57. package/skills/browser-tools/scripts/browser-dismiss-cookies.js +455 -0
  58. package/skills/browser-tools/scripts/browser-eval.js +75 -0
  59. package/skills/browser-tools/scripts/browser-logs-tail.js +89 -0
  60. package/skills/browser-tools/scripts/browser-nav.js +28 -0
  61. package/skills/browser-tools/scripts/browser-net-summary.js +115 -0
  62. package/skills/browser-tools/scripts/browser-pick.js +133 -0
  63. package/skills/browser-tools/scripts/browser-screenshot.js +18 -0
  64. package/skills/browser-tools/scripts/browser-start.js +281 -0
  65. package/skills/browser-tools/scripts/browser-watch.js +321 -0
  66. package/skills/browser-tools/scripts/utils.js +60 -0
  67. package/skills/git-clean-history/SKILL.md +45 -0
  68. package/skills/git-commit/SKILL.md +55 -0
  69. package/skills/homeassistant-ops/SKILL.md +184 -0
  70. package/skills/homeassistant-ops/references/api.md +64 -0
  71. package/skills/homeassistant-ops/references/id_conventions.md +71 -0
  72. package/skills/homeassistant-ops/references/playbook.md +150 -0
  73. package/skills/homeassistant-ops/scripts/ha_ops.js +2942 -0
  74. package/skills/openscad/SKILL.md +149 -0
  75. package/skills/openscad/examples/parametric_box.scad +92 -0
  76. package/skills/openscad/examples/phone_stand.scad +95 -0
  77. package/skills/openscad/scripts/common.sh +49 -0
  78. package/skills/openscad/scripts/export-stl.sh +56 -0
  79. package/skills/openscad/scripts/extract-params.sh +147 -0
  80. package/skills/openscad/scripts/multi-preview.sh +68 -0
  81. package/skills/openscad/scripts/preview.sh +74 -0
  82. package/skills/openscad/scripts/render-with-params.sh +91 -0
  83. package/skills/openscad/scripts/validate.sh +46 -0
  84. package/skills/oracle/SKILL.md +64 -0
  85. package/skills/oracle/scripts/oracle +249 -0
  86. package/skills/oracle/scripts/oracle-bundle +227 -0
  87. package/skills/sentry/SKILL.md +198 -0
  88. package/skills/sentry/lib/auth.js +99 -0
  89. package/skills/sentry/scripts/fetch-event.js +325 -0
  90. package/skills/sentry/scripts/fetch-issue.js +368 -0
  91. package/skills/sentry/scripts/list-issues.js +245 -0
  92. package/skills/sentry/scripts/search-events.js +291 -0
  93. package/skills/sentry/scripts/search-logs.js +234 -0
  94. package/skills/update-changelog/SKILL.md +135 -0
  95. package/skills/web-design/SKILL.md +117 -0
@@ -0,0 +1,64 @@
1
+ # API cheat sheet
2
+
3
+ This skill prefers the official Home Assistant **REST** + **WebSocket** APIs (not SSH-ing into the host).
4
+
5
+ ## Auth
6
+
7
+ - Use a **long-lived access token**.
8
+ - REST: `Authorization: Bearer $HA_TOKEN`
9
+ - WS: connect to `$HA_URL/api/websocket`, then send:
10
+ - `{"type":"auth","access_token":"..."}` after `auth_required`
11
+
12
+ ## REST endpoints used most often
13
+
14
+ - Core discovery:
15
+ - `GET /api/config` (location name, latitude/longitude, version, etc)
16
+ - `GET /api/services` (what services exist + schemas)
17
+ - Events list (handy when tailing):
18
+ - `GET /api/events`
19
+ - Entity state inventory:
20
+ - `GET /api/states`
21
+ - `GET /api/states/<entity_id>`
22
+ - Call a service:
23
+ - `POST /api/services/<domain>/<service>`
24
+ - Example domain/service: `homeassistant/turn_on`, `light/turn_off`
25
+ - Automations (UI-stored YAML / `automations.yaml`):
26
+ - `GET /api/config/automation/config/<id>`
27
+ - `POST /api/config/automation/config/<id>` (replace full config)
28
+ - Scripts and scenes (when present in your build/version):
29
+ - `GET /api/config/script/config/<id>` / `POST /api/config/script/config/<id>`
30
+ - `GET /api/config/scene/config/<id>` / `POST /api/config/scene/config/<id>`
31
+ - Config entry flows (used for helper creation, e.g. `group` integration):
32
+ - `POST /api/config/config_entries/flow` with `{"handler":"group"}`
33
+ - Continue flow by POSTing to `/api/config/config_entries/flow/<flow_id>`
34
+ - Update options via:
35
+ - `POST /api/config/config_entries/options/flow` with `{"handler":"<config_entry_id>"}`
36
+ - Continue via `/api/config/config_entries/options/flow/<flow_id>`
37
+
38
+ ## WebSocket message types used most often
39
+
40
+ Registries:
41
+
42
+ - `config/area_registry/list`
43
+ - `config/device_registry/list`
44
+ - `config/entity_registry/list`
45
+ - `config/entity_registry/get` with `{"entity_id":"switch.kitchen_lights"}`
46
+ - `config/entity_registry/update` with fields like:
47
+ - `{"entity_id":"switch.kitchen_lights","name":"Kitchen Lights"}`
48
+ - `{"entity_id":"switch.old","new_entity_id":"switch.new"}`
49
+ - `{"entity_id":"switch.kitchen_lights","area_id":"kitchen"}`
50
+ - Hide from UI: `{"entity_id":"sensor.foo","hidden_by":"user"}` (unhide with `hidden_by: null`)
51
+ - Disable: `{"entity_id":"sensor.foo","disabled_by":"user"}` (enable with `disabled_by: null`)
52
+
53
+ Events (for debugging):
54
+
55
+ - `subscribe_events` with optional `{"event_type":"state_changed"}` or `{"event_type":"zha_event"}`
56
+
57
+ ## Notes / gotchas
58
+
59
+ - Friendly names shown in the UI typically come from the entity registry’s `name` override; update via `config/entity_registry/update`.
60
+ - `use_blueprint.input` is **not templatable**; blueprint triggers (e.g., `platform: state entity_id: !input ...`) require a static entity list at config-load time.
61
+ - HA “group helpers” are great for UI organization, but they don’t make Zigbee unicast faster; they just expand to member service calls.
62
+ - Dashboard editing depends on dashboard mode:
63
+ - Auto-generated Overview is strategy-driven (not layout-editable).
64
+ - Storage dashboards can usually be fetched/updated via Lovelace APIs; YAML dashboards are file-managed.
@@ -0,0 +1,71 @@
1
+ # ID conventions
2
+
3
+ This is a practical naming scheme for `entity_id`s (and helper ids) that stays readable, stable, and automation-friendly.
4
+
5
+ ## Basic grammar
6
+
7
+ `<domain>.<object_id>`
8
+
9
+ - `domain` is the entity type (`switch`, `sensor`, `cover`, `automation`, ...).
10
+ - `object_id` is lowercase, with tokens separated by underscores.
11
+
12
+ Recommended object_id shape:
13
+
14
+ `<location>[_<sub_location>...]_<kind>[_<n>]`
15
+
16
+ Where:
17
+
18
+ - `<location>` is usually the area slug (e.g., `bedroom`, `livingroom`, `storageroom`).
19
+ - `<kind>` is the thing (`lights`, `cove`, `blind`, `thermometer_temperature`, ...).
20
+ - `<n>` is a numeric suffix when there are multiple similar entities.
21
+
22
+ ## Area/location slugs
23
+
24
+ Common patterns in this instance:
25
+
26
+ - Multi-word areas are usually concatenated: `Living Room` → `livingroom`, `Storage Room` → `storageroom`.
27
+ - Apostrophes are dropped: `Leonardo's Room` → `leonardosroom`.
28
+ - Floor/range areas use semantic tokens:
29
+ - `Hall -1` → `hallminus1`
30
+ - `Stairs -1-0` → `stairsminus10`
31
+ - `Stairs 0-1` → `stairs01`, `Stairs 1-2` → `stairs12`, `Stairs 2-3` → `stairs23`
32
+
33
+ ## Lights / Cove switch circuits
34
+
35
+ Switch-controlled lighting circuits use `switch.*` entities:
36
+
37
+ - Circuit (main): `switch.<location>_lights` or `switch.<location>_cove`
38
+ - Additional switches (multi-control): `switch.<location>_lights_2`, `switch.<location>_lights_3`, ...
39
+
40
+ Guideline:
41
+
42
+ - Keep the “main” physical switch as the suffix-less id.
43
+ - Use numeric suffixes only for extra physical switches.
44
+
45
+ ## Helper groups
46
+
47
+ Use `_group` to avoid collisions with “real” entities and to make refactoring safer:
48
+
49
+ - Switch group helper: `switch.<location>_lights_group` / `switch.<location>_cove_group`
50
+
51
+ Recommended helper options:
52
+
53
+ - “Hide members” ON (so Overview shows only the group)
54
+ - “All entities” OFF (explicit membership)
55
+ - Area set explicitly to the intended area (usually the area of the primary member)
56
+
57
+ ## Examples
58
+
59
+ - Multi-switch lighting circuit:
60
+ - Members: `switch.bedroom_lights`, `switch.bedroom_lights_2`, `switch.bedroom_lights_3`
61
+ - Helper: `switch.bedroom_lights_group`
62
+ - Shared circuit across areas:
63
+ - `switch.diningroom_livingroom_lights`
64
+ - Stairs segment controlling another area:
65
+ - `switch.stairsminus10_hall_lights` (stairs segment is part of the id; “Hall Lights” is the controlled circuit)
66
+
67
+ ## When to rename entity_ids (and when not to)
68
+
69
+ - Rename early (right after adding a device) if the entity_id is ugly/vendor-ish.
70
+ - Avoid renaming stable ids unless you also have a plan to update references.
71
+ - Always use a reference finder before/after large id migrations (automations, scripts, scenes, dashboards, templates).
@@ -0,0 +1,150 @@
1
+ # Home Assistant ops playbook
2
+
3
+ Use this as a checklist of common operations. Prefer small, reviewable changes and keep a before/after log.
4
+
5
+ ## 0) Decide how to apply the change
6
+
7
+ - **Prefer API (REST/WS)** when you want validation, no restarts, and live feedback.
8
+ - **Prefer config YAML** when the thing is explicitly YAML-managed in your setup (packages, custom integrations, etc).
9
+ - **Avoid editing `.storage/*` directly** on a live instance; use the registries/flows APIs instead.
10
+
11
+ ## 1) Inventory / discovery
12
+
13
+ Pick the smallest truth source that answers the question:
14
+
15
+ - **Current runtime state**: `/api/states` (REST)
16
+ - **Registries (source of truth for names/areas/disabled/hidden)**:
17
+ - areas: `config/area_registry/list` (WS)
18
+ - devices: `config/device_registry/list` (WS)
19
+ - entities: `config/entity_registry/list` (WS)
20
+ - **Snapshot for diff/rollback**: run `scripts/ha_ops.js snapshot` before/after bulk changes to capture registries + key configs in one JSON file.
21
+ - **Backup audit** (good for planning changes offline):
22
+ - `.storage/core.entity_registry`, `.storage/core.device_registry`, `.storage/core.area_registry`
23
+
24
+ Snapshot tips:
25
+
26
+ - Default output is already stable for diffs (sorted keys; registries sorted by id), so `diff -u before.json after.json` is usually enough.
27
+ - Skip noisy sections when you don’t need them (e.g., `--no-lovelace`, `--no-scenes`); avoid `--include-states` for long-lived baselines.
28
+
29
+ ## 2) Naming and IDs
30
+
31
+ ### Friendly names vs entity_id
32
+
33
+ - **Friendly name (UI label)**: change via `config/entity_registry/update` with `name=...`.
34
+ - **Entity ID**: change via `config/entity_registry/update` with `new_entity_id=...`.
35
+ - House style for entity ids: see `references/id_conventions.md`.
36
+
37
+ Guidelines:
38
+
39
+ - Keep a consistent convention (area prefixing is usually best for repeated device types).
40
+ - Don’t rename just to rename: aim for fewer surprises in voice control, dashboards, and automations.
41
+ - For “noisy” entities (RSSI/LQI/firmware/identify): prefer hiding/disabling over renaming.
42
+
43
+ ### Ref updates (important)
44
+
45
+ Entity ID changes can break references in:
46
+
47
+ - automations, scripts, scenes, dashboards
48
+ - template sensors, trigger IDs, notify targets
49
+ - **group helper memberships** (config entry–based groups do NOT auto-update when member entity_ids are renamed; members silently disappear)
50
+
51
+ Make a plan to **search and update references** before applying large ID renames.
52
+
53
+ Tip: use `scripts/ha_ops.js find-references` with `--map-json` to locate old ids in automations/dashboards/backups.
54
+ Add `--json-out ha_refs.json` when you want a machine-readable report for follow-up tooling.
55
+
56
+ ### Rename/migrate checklist (entity_id or helper id)
57
+
58
+ Use this whenever changing `entity_id`s (or helper ids) in bulk:
59
+
60
+ 1. Snapshot baseline: `scripts/ha_ops.js snapshot` (keep the JSON).
61
+ 2. Find references: `scripts/ha_ops.js find-references --needle <old>` (or `--map-json rename_map.json`).
62
+ 3. Write a rename map (`old -> new`) and a timestamped change log (markdown).
63
+ 4. Apply renames via WS `config/entity_registry/update` in small batches (stop if a target id already exists).
64
+ 5. Update group helper memberships: `scripts/ha_ops.js update-groups --map-json rename_map.json` (renames are not propagated to config entry–based groups automatically).
65
+ 6. Update references (automations/scripts/scenes/dashboards/templates) and re-run the reference finder until clean.
66
+ 7. Validate behavior: automation traces + event tail (`state_changed`, `zha_event`) for the specific entities.
67
+ 8. Snapshot after and diff with baseline (fast way to confirm what actually changed).
68
+
69
+ ## 3) Areas, floors, labels
70
+
71
+ Use these to reduce UI clutter and improve automation targeting:
72
+
73
+ - Assign devices/entities to an area (usually device-level, sometimes entity-level).
74
+ - Prefer areas for UI grouping and “overview” naming conventions.
75
+ - Use labels/tags when you want cross-cutting collections (e.g., “security”, “critical”, “outdoor”).
76
+
77
+ ## 4) Helpers and groups (UI + maintainability)
78
+
79
+ Common helpers:
80
+
81
+ - `group` helpers (light/switch/cover): reduce dashboard clutter; make targeting easier.
82
+ - `input_boolean`, `input_select`, `input_number`, `timer`: encode state machines and modes.
83
+ - `scene`, `script`: normalize complex actions into reusable building blocks.
84
+
85
+ Notes:
86
+
87
+ - HA “group helpers” can “Hide members” so only the group shows up in Overview.
88
+ - Groups don’t speed up unicast devices; they help maintainability.
89
+
90
+ ## 5) Automations, scripts, scenes
91
+
92
+ ### Safe editing strategy
93
+
94
+ 1. Fetch current config (API).
95
+ 2. Make minimal changes (prefer surgical edits).
96
+ 3. POST the full updated config back (API validates).
97
+ 4. Verify behavior using traces and event tailing.
98
+
99
+ ### Loop-avoidance patterns
100
+
101
+ If an automation changes entities that can re-trigger it:
102
+
103
+ - Use `this.context.id` / `trigger.to_state.context.parent_id` guards (blueprint-style).
104
+ - Use `mode` deliberately (`restart`, `queued`, `parallel`) to avoid oscillation.
105
+ - Avoid “invert/toggle” logic unless you can prove idempotence.
106
+
107
+ ### Blueprints
108
+
109
+ - Blueprint **inputs aren’t templatable**; triggers need static entity lists at config-load time.
110
+ - If you want “dynamic membership”, either:
111
+ - keep automations listing members and update the list when the group changes, or
112
+ - change the blueprint to trigger broadly (`state_changed`) and filter membership at runtime (more overhead/complexity).
113
+
114
+ ## 6) Zigbee / ZHA (when relevant)
115
+
116
+ - `zha_event` is useful for debugging, but it doesn’t imply Zigbee groupcast/binding.
117
+ - HA “group helpers” are UI/helpers; they expand into member calls and don’t make Zigbee unicast faster.
118
+ - Zigbee groupcast/binding is a separate ZHA concept and depends on device support.
119
+
120
+ ## 7) Dashboards / UI compaction
121
+
122
+ - Auto-generated Overview: you mainly influence it by **hiding/disabling entities** and using helpers/groups.
123
+ - Manual dashboards: use `grid`/`tile` cards to put many covers on one row; use stacks; create “Maintenance” views for noisy entities.
124
+
125
+ ### Hide vs disable (mini-guide)
126
+
127
+ - **Hide from UI**: keeps the entity available to automations/services, but reduces dashboard noise (especially auto-generated Overview). Prefer this for “member” entities of helpers/groups and for diagnostics you still want available.
128
+ - **Disable entity**: removes it from normal use (often stops the integration from setting it up). Use this only when you’re sure nothing relies on it (or it’s a duplicated/unsupported feature). Disabling can break automations/cards that reference the entity.
129
+
130
+ Rules of thumb:
131
+
132
+ - If you still want to target it in an automation/script, **hide** it (don’t disable).
133
+ - If it’s never used and you want it gone from lists/pickers (and possibly reduce polling), **disable** it.
134
+ - When in doubt, hide first; disable later after a few days of “nothing broke”.
135
+
136
+ ## 8) Rollback strategy
137
+
138
+ Before risky operations:
139
+
140
+ - Keep a mapping of `old -> new` for entity names and IDs.
141
+ - Keep one markdown log per run (timestamped).
142
+ - Keep pre/post `ha_snapshot_*.json` files so you can diff and reconstruct intent later.
143
+ - To revert registry changes to a baseline snapshot: `scripts/ha_ops.js rollback <snapshot_before.json> --dry-run` then `--yes`.
144
+ - Prefer incremental changes so rollback is “undo the last run”, not “rebuild everything”.
145
+
146
+ ## 9) Integrations and config entries
147
+
148
+ - Many helpers/integrations are configured via config entry flows (and sometimes require reload/restart).
149
+ - Prefer options flows over editing `.storage/*` when something is integration-owned.
150
+ - After changing options, verify entities didn’t get re-created with new ids/names.