ha-opencode 0.1.1 → 0.2.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.
- package/README.md +119 -236
- package/dist/commands.d.ts +13 -11
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +87 -135
- package/dist/commands.js.map +1 -1
- package/dist/ha-config.d.ts +42 -0
- package/dist/ha-config.d.ts.map +1 -0
- package/dist/ha-config.js +104 -0
- package/dist/ha-config.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -83
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +20 -18
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +99 -108
- package/dist/state.js.map +1 -1
- package/dist/websocket.d.ts +113 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +394 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +6 -5
- package/blueprints/opencode_permission_response.yaml +0 -81
- package/blueprints/opencode_state_notifications.yaml +0 -191
- package/dist/cleanup.d.ts +0 -30
- package/dist/cleanup.d.ts.map +0 -1
- package/dist/cleanup.js +0 -125
- package/dist/cleanup.js.map +0 -1
- package/dist/config.d.ts +0 -28
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -18
- package/dist/config.js.map +0 -1
- package/dist/discovery.d.ts +0 -129
- package/dist/discovery.d.ts.map +0 -1
- package/dist/discovery.js +0 -257
- package/dist/discovery.js.map +0 -1
- package/dist/mqtt.d.ts +0 -16
- package/dist/mqtt.d.ts.map +0 -1
- package/dist/mqtt.js +0 -141
- package/dist/mqtt.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
#
|
|
1
|
+
# OpenCode Home Assistant Plugin
|
|
2
2
|
|
|
3
|
-
OpenCode plugin
|
|
3
|
+
OpenCode plugin that enables real-time integration with Home Assistant via native WebSocket connection.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Monitor and control your OpenCode sessions directly from Home Assistant - get notified when tasks complete, approve permissions from your phone, and even send prompts remotely.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **Session History**: Retrieve conversation history on demand
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
|
|
9
|
+
- **Native WebSocket**: Direct connection to Home Assistant - no MQTT broker required
|
|
10
|
+
- **Secure Pairing**: Simple one-time pairing flow with secure token authentication
|
|
11
|
+
- **Real-time Updates**: Instant session state, model, tool, token, and cost updates
|
|
12
|
+
- **Permission Handling**: Approve/reject tool permissions from Home Assistant or mobile notifications
|
|
13
|
+
- **Session History**: Retrieve full conversation history on demand
|
|
14
|
+
- **Multi-session Support**: Each session gets its own device in Home Assistant
|
|
15
|
+
- **Auto-reconnect**: Persistent connection with automatic reconnection
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
- [OpenCode](https://opencode.ai) AI coding assistant
|
|
20
|
+
- [Home Assistant](https://www.home-assistant.io/) with the companion integration installed:
|
|
21
|
+
- **[ha-opencode](https://github.com/stephengolub/ha-opencode)** - Home Assistant integration (required)
|
|
17
22
|
|
|
18
23
|
## Installation
|
|
19
24
|
|
|
20
|
-
### 1. Install the
|
|
25
|
+
### 1. Install the Plugin
|
|
21
26
|
|
|
22
27
|
```bash
|
|
23
|
-
|
|
28
|
+
# From npm (when published)
|
|
29
|
+
npm install --prefix ~/.config/opencode ha-opencode
|
|
30
|
+
|
|
31
|
+
# Or from local path
|
|
32
|
+
npm install --prefix ~/.config/opencode /path/to/opencode-homeassistant
|
|
24
33
|
```
|
|
25
34
|
|
|
26
|
-
### 2. Add to OpenCode
|
|
35
|
+
### 2. Add to OpenCode Config
|
|
27
36
|
|
|
28
37
|
Add `"ha-opencode"` to the `plugins` array in `~/.config/opencode/opencode.json`:
|
|
29
38
|
|
|
@@ -33,223 +42,94 @@ Add `"ha-opencode"` to the `plugins` array in `~/.config/opencode/opencode.json`
|
|
|
33
42
|
}
|
|
34
43
|
```
|
|
35
44
|
|
|
36
|
-
### 3.
|
|
37
|
-
|
|
38
|
-
Via environment variables:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
export OPENCODE_MQTT_HOST=your-mqtt-broker.local
|
|
42
|
-
export OPENCODE_MQTT_PORT=1883
|
|
43
|
-
export OPENCODE_MQTT_USERNAME=optional-username
|
|
44
|
-
export OPENCODE_MQTT_PASSWORD=optional-password
|
|
45
|
-
export OPENCODE_HA_DISCOVERY_PREFIX=homeassistant # default
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Or via `opencode.json`:
|
|
49
|
-
|
|
50
|
-
```json
|
|
51
|
-
{
|
|
52
|
-
"plugins": ["ha-opencode"],
|
|
53
|
-
"ha-opencode": {
|
|
54
|
-
"mqtt": {
|
|
55
|
-
"host": "your-mqtt-broker.local",
|
|
56
|
-
"port": 1883,
|
|
57
|
-
"username": "optional-username",
|
|
58
|
-
"password": "optional-password"
|
|
59
|
-
},
|
|
60
|
-
"ha": {
|
|
61
|
-
"discoveryPrefix": "homeassistant"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Environment variables take precedence over JSON config.
|
|
68
|
-
|
|
69
|
-
## Session-Based Identity
|
|
70
|
-
|
|
71
|
-
Each OpenCode session creates a unique Home Assistant device:
|
|
72
|
-
|
|
73
|
-
- **Session ID**: `ses_46b09b89bffevq6HeMNIkuvk4B` (generated by OpenCode)
|
|
74
|
-
- **Device ID**: `opencode_46b09b89bffevq6HeMNIkuvk4B` (strips `ses_` prefix)
|
|
75
|
-
- **Initial Name**: `OpenCode - {projectName} - Untitled`
|
|
76
|
-
- **After Title**: `OpenCode - {projectName} - {sessionTitle}`
|
|
77
|
-
|
|
78
|
-
This allows running multiple concurrent OpenCode sessions in the same directory, each with their own entities.
|
|
45
|
+
### 3. Install the Home Assistant Integration
|
|
79
46
|
|
|
80
|
-
|
|
47
|
+
The plugin requires the companion Home Assistant integration. See [ha-opencode](https://github.com/stephengolub/ha-opencode) for installation instructions.
|
|
81
48
|
|
|
82
|
-
|
|
49
|
+
### 4. Pair with Home Assistant
|
|
83
50
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
| `sensor.opencode_*_tokens_output` | Sensor | Output token count |
|
|
92
|
-
| `sensor.opencode_*_cost` | Sensor | Session cost in USD |
|
|
93
|
-
| `sensor.opencode_*_last_activity` | Sensor | Timestamp of last activity |
|
|
94
|
-
| `sensor.opencode_*_permission` | Sensor | Permission request status |
|
|
95
|
-
| `sensor.opencode_*_device_id` | Sensor | Device identifier with command/response topics |
|
|
51
|
+
1. In Home Assistant, go to Settings > Devices & Services
|
|
52
|
+
2. Add the "OpenCode" integration
|
|
53
|
+
3. A pairing code will be displayed (e.g., `ABC12DEF`)
|
|
54
|
+
4. In OpenCode, use the `ha_pair` tool with:
|
|
55
|
+
- Your Home Assistant URL (e.g., `http://homeassistant.local:8123`)
|
|
56
|
+
- A [long-lived access token](https://www.home-assistant.io/docs/authentication/#your-account-profile)
|
|
57
|
+
- The pairing code
|
|
96
58
|
|
|
97
|
-
|
|
59
|
+
Once paired, the plugin will automatically reconnect on subsequent OpenCode sessions.
|
|
98
60
|
|
|
99
|
-
|
|
61
|
+
## Configuration
|
|
100
62
|
|
|
101
|
-
The
|
|
102
|
-
|
|
103
|
-
- `previous_state`: The state before the current one (for automation conditions)
|
|
104
|
-
- `agent`: Primary agent selected by the user
|
|
105
|
-
- `current_agent`: Sub-agent currently being used (if any)
|
|
106
|
-
- `hostname`: Machine hostname where OpenCode is running
|
|
107
|
-
- `error_message`: Error details when in error state
|
|
108
|
-
|
|
109
|
-
### Device ID Entity Attributes
|
|
110
|
-
|
|
111
|
-
The `device_id` entity includes:
|
|
112
|
-
|
|
113
|
-
- `command_topic`: MQTT topic for sending commands
|
|
114
|
-
- `response_topic`: MQTT topic for receiving responses
|
|
115
|
-
- `state_topic_base`: Base topic for all state updates
|
|
116
|
-
- `device_name`: Friendly device name
|
|
117
|
-
- `session_id`: Full session ID (e.g., `ses_46b09b89bffevq6HeMNIkuvk4B`)
|
|
118
|
-
- `project_name`: Project directory name
|
|
119
|
-
|
|
120
|
-
## MQTT Topics
|
|
121
|
-
|
|
122
|
-
For a session with ID `ses_46b09b89bffevq6HeMNIkuvk4B`:
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
# State topics
|
|
126
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/state
|
|
127
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/state/attributes
|
|
128
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/session_title
|
|
129
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/model
|
|
130
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/availability
|
|
131
|
-
|
|
132
|
-
# Commands & responses
|
|
133
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/command
|
|
134
|
-
opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/response
|
|
135
|
-
|
|
136
|
-
# HA Discovery
|
|
137
|
-
homeassistant/sensor/opencode_46b09b89bffevq6HeMNIkuvk4B/state/config
|
|
138
|
-
|
|
139
|
-
# Global cleanup response
|
|
140
|
-
opencode/cleanup/response
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## MQTT Commands
|
|
144
|
-
|
|
145
|
-
Send commands to the `command_topic` (e.g., `opencode/opencode_46b09b89bffevq6HeMNIkuvk4B/command`):
|
|
146
|
-
|
|
147
|
-
### Permission Response
|
|
63
|
+
The plugin stores connection configuration in `~/.config/opencode/ha-config.json` after pairing:
|
|
148
64
|
|
|
149
65
|
```json
|
|
150
66
|
{
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
67
|
+
"url": "ws://homeassistant.local:8123/api/websocket",
|
|
68
|
+
"accessToken": "your-access-token",
|
|
69
|
+
"instanceToken": "generated-during-pairing",
|
|
70
|
+
"instanceId": "instance_abc123"
|
|
154
71
|
}
|
|
155
72
|
```
|
|
156
73
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
### Send Prompt
|
|
160
|
-
|
|
161
|
-
```json
|
|
162
|
-
{
|
|
163
|
-
"command": "prompt",
|
|
164
|
-
"text": "Your prompt text here",
|
|
165
|
-
"session_id": "optional-session-id"
|
|
166
|
-
}
|
|
167
|
-
```
|
|
74
|
+
You can also set the Home Assistant URL and access token via environment variables:
|
|
168
75
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
{
|
|
173
|
-
"command": "get_history",
|
|
174
|
-
"session_id": "optional-session-id",
|
|
175
|
-
"request_id": "optional-correlation-id"
|
|
176
|
-
}
|
|
76
|
+
```bash
|
|
77
|
+
export OPENCODE_HA_URL=http://homeassistant.local:8123
|
|
78
|
+
export OPENCODE_HA_ACCESS_TOKEN=your-access-token
|
|
177
79
|
```
|
|
178
80
|
|
|
179
|
-
|
|
81
|
+
## How It Works
|
|
180
82
|
|
|
181
|
-
```json
|
|
182
|
-
{
|
|
183
|
-
"command": "get_history_since",
|
|
184
|
-
"since": "2024-01-01T00:00:00Z",
|
|
185
|
-
"session_id": "optional-session-id",
|
|
186
|
-
"request_id": "optional-correlation-id"
|
|
187
|
-
}
|
|
188
83
|
```
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
84
|
+
┌─────────────────┐ WebSocket ┌──────────────────┐
|
|
85
|
+
│ │◄────────────────►│ │
|
|
86
|
+
│ OpenCode │ │ Home Assistant │
|
|
87
|
+
│ + Plugin │ │ + Integration │
|
|
88
|
+
│ │ │ │
|
|
89
|
+
└─────────────────┘ └──────────────────┘
|
|
90
|
+
│
|
|
91
|
+
▼
|
|
92
|
+
┌──────────────────┐
|
|
93
|
+
│ Lovelace Card │
|
|
94
|
+
│ Mobile App │
|
|
95
|
+
│ Automations │
|
|
96
|
+
└──────────────────┘
|
|
197
97
|
```
|
|
198
98
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
|
225
|
-
|
|
226
|
-
| `
|
|
227
|
-
| `
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
mkdir -p /path/to/ha/config/blueprints/automation/opencode
|
|
234
|
-
cp blueprints/*.yaml /path/to/ha/config/blueprints/automation/opencode/
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
2. Reload automations in HA (Developer Tools > YAML > Reload Automations)
|
|
238
|
-
|
|
239
|
-
3. Create automations from blueprints:
|
|
240
|
-
- Settings > Automations > Create Automation > Use Blueprint
|
|
241
|
-
- Select the OpenCode blueprint
|
|
242
|
-
- Configure your mobile device and preferences
|
|
243
|
-
|
|
244
|
-
See [ha-card/README.md](ha-card/README.md) for detailed blueprint configuration and automation examples.
|
|
245
|
-
|
|
246
|
-
## Home Assistant Card
|
|
247
|
-
|
|
248
|
-
A custom Lovelace card is included for displaying OpenCode sessions in Home Assistant.
|
|
249
|
-
|
|
250
|
-
See [ha-card/README.md](ha-card/README.md) for installation and usage instructions.
|
|
251
|
-
|
|
252
|
-
> **Note**: The card will be moved to a separate repository ([opencode-card](https://gitlab.com/opencode-home-assistant/opencode-card)) for HACS compatibility. The `ha-card/` directory is structured for easy extraction when that happens.
|
|
99
|
+
1. **Plugin** connects to Home Assistant via WebSocket
|
|
100
|
+
2. **Session updates** are sent in real-time (state, model, tokens, cost, permissions)
|
|
101
|
+
3. **Commands** flow back from HA (send prompt, respond to permission, get history)
|
|
102
|
+
4. **Events** are fired in HA for automations (state changes, permission requests)
|
|
103
|
+
|
|
104
|
+
## Commands from Home Assistant
|
|
105
|
+
|
|
106
|
+
The plugin responds to these commands sent via the Home Assistant integration:
|
|
107
|
+
|
|
108
|
+
| Command | Description |
|
|
109
|
+
|---------|-------------|
|
|
110
|
+
| `send_prompt` | Send a text prompt to the current session |
|
|
111
|
+
| `respond_permission` | Approve (once/always) or reject a permission request |
|
|
112
|
+
| `get_history` | Retrieve session conversation history |
|
|
113
|
+
| `get_agents` | Get list of available agents |
|
|
114
|
+
|
|
115
|
+
## Session Data
|
|
116
|
+
|
|
117
|
+
Each OpenCode session reports the following to Home Assistant:
|
|
118
|
+
|
|
119
|
+
| Data | Description |
|
|
120
|
+
|------|-------------|
|
|
121
|
+
| `state` | Session state: `idle`, `working`, `waiting_permission`, `error` |
|
|
122
|
+
| `title` | Session/conversation title |
|
|
123
|
+
| `model` | AI model being used (e.g., `anthropic/claude-sonnet-4-20250514`) |
|
|
124
|
+
| `current_tool` | Currently executing tool |
|
|
125
|
+
| `tokens_input` | Total input tokens used |
|
|
126
|
+
| `tokens_output` | Total output tokens used |
|
|
127
|
+
| `cost` | Total session cost in USD |
|
|
128
|
+
| `last_activity` | Timestamp of last activity |
|
|
129
|
+
| `agent` | Primary agent selected |
|
|
130
|
+
| `current_agent` | Sub-agent currently executing |
|
|
131
|
+
| `hostname` | Machine hostname |
|
|
132
|
+
| `permission` | Pending permission details (if any) |
|
|
253
133
|
|
|
254
134
|
## Development
|
|
255
135
|
|
|
@@ -274,41 +154,44 @@ npm run test:coverage
|
|
|
274
154
|
|
|
275
155
|
```
|
|
276
156
|
src/
|
|
277
|
-
index.ts
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
blueprints/
|
|
287
|
-
opencode_state_notifications.yaml Mobile notification blueprint
|
|
288
|
-
opencode_permission_response.yaml Permission action handler
|
|
289
|
-
|
|
290
|
-
ha-card/
|
|
291
|
-
src/ Custom Lovelace card source
|
|
292
|
-
dist/ Built card JS
|
|
157
|
+
index.ts Plugin entry point
|
|
158
|
+
websocket.ts Home Assistant WebSocket client
|
|
159
|
+
state.ts Session state tracking
|
|
160
|
+
commands.ts Command handler (prompts, permissions, history)
|
|
161
|
+
ha-config.ts Configuration storage
|
|
162
|
+
notify.ts Terminal notifications (Kitty OSC 99)
|
|
163
|
+
|
|
164
|
+
tests/
|
|
165
|
+
*.test.ts Unit tests
|
|
293
166
|
```
|
|
294
167
|
|
|
295
168
|
## Troubleshooting
|
|
296
169
|
|
|
297
|
-
###
|
|
170
|
+
### Plugin not connecting
|
|
171
|
+
|
|
172
|
+
1. Verify the Home Assistant integration is installed and configured
|
|
173
|
+
2. Check that your access token is valid (test in Developer Tools > API)
|
|
174
|
+
3. Look for connection errors in OpenCode output
|
|
175
|
+
4. Try re-pairing: delete `~/.config/opencode/ha-config.json` and pair again
|
|
298
176
|
|
|
299
|
-
|
|
177
|
+
### Permission responses not working
|
|
300
178
|
|
|
301
|
-
|
|
179
|
+
1. Ensure the session is still active (not disconnected)
|
|
180
|
+
2. Check Home Assistant logs for errors
|
|
181
|
+
3. Verify the permission ID matches the pending permission
|
|
302
182
|
|
|
303
|
-
|
|
183
|
+
### Notifications not appearing
|
|
304
184
|
|
|
305
|
-
|
|
185
|
+
This plugin uses Kitty terminal notifications (OSC 99). Supported terminals:
|
|
186
|
+
- Kitty
|
|
187
|
+
- iTerm2 (with notifications enabled)
|
|
306
188
|
|
|
307
|
-
|
|
189
|
+
If your terminal doesn't support OSC 99, notifications will be silent.
|
|
308
190
|
|
|
309
|
-
|
|
191
|
+
## Related Projects
|
|
310
192
|
|
|
311
|
-
|
|
193
|
+
- **[ha-opencode](https://github.com/stephengolub/ha-opencode)** - Home Assistant integration with Lovelace card and blueprints
|
|
194
|
+
- **[OpenCode](https://opencode.ai)** - AI coding assistant
|
|
312
195
|
|
|
313
196
|
## License
|
|
314
197
|
|
package/dist/commands.d.ts
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import type { OpencodeClient } from "@opencode-ai/sdk";
|
|
2
|
-
import type {
|
|
3
|
-
import type { Discovery } from "./discovery.js";
|
|
2
|
+
import type { HAWebSocketClient } from "./websocket.js";
|
|
4
3
|
import type { StateTracker } from "./state.js";
|
|
5
|
-
import type { HaConfig } from "./config.js";
|
|
6
4
|
export declare class CommandHandler {
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly discovery;
|
|
5
|
+
private readonly wsClient;
|
|
9
6
|
private readonly state;
|
|
10
7
|
private readonly client;
|
|
11
|
-
private readonly
|
|
12
|
-
constructor(
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
private readonly instanceToken;
|
|
9
|
+
constructor(wsClient: HAWebSocketClient, state: StateTracker, client: OpencodeClient, instanceToken: string);
|
|
10
|
+
/**
|
|
11
|
+
* Start listening for commands from Home Assistant.
|
|
12
|
+
*/
|
|
13
|
+
start(): void;
|
|
14
|
+
private handleCommand;
|
|
15
15
|
private processCommand;
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Handle state request from HA - send all current sessions.
|
|
18
|
+
*/
|
|
19
|
+
private handleStateRequest;
|
|
17
20
|
private handlePrompt;
|
|
18
21
|
private handleGetAgents;
|
|
19
22
|
private handleGetHistory;
|
|
20
|
-
private handleGetHistorySince;
|
|
21
23
|
private fetchSessionHistory;
|
|
22
24
|
private handlePermissionResponse;
|
|
23
25
|
}
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,iBAAiB,EAMlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAuB/C,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAGrC,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,MAAM;IAQvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,aAAa;YAgBP,cAAc;IAgC5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,YAAY;YAuCZ,eAAe;YA6Bf,gBAAgB;YAqChB,mBAAmB;YA6FnB,wBAAwB;CAoDvC"}
|