ha-opencode 0.1.1 → 0.2.1
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 +136 -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 +9 -9
- 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/dist/commands.js
CHANGED
|
@@ -1,100 +1,79 @@
|
|
|
1
1
|
import { notify } from "./notify.js";
|
|
2
|
-
import { cleanupStaleSessionsManual } from "./cleanup.js";
|
|
3
2
|
export class CommandHandler {
|
|
4
|
-
|
|
5
|
-
discovery;
|
|
3
|
+
wsClient;
|
|
6
4
|
state;
|
|
7
5
|
client;
|
|
8
|
-
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
11
|
-
this.discovery = discovery;
|
|
6
|
+
instanceToken;
|
|
7
|
+
constructor(wsClient, state, client, instanceToken) {
|
|
8
|
+
this.wsClient = wsClient;
|
|
12
9
|
this.state = state;
|
|
13
10
|
this.client = client;
|
|
14
|
-
this.
|
|
11
|
+
this.instanceToken = instanceToken;
|
|
15
12
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Start listening for commands from Home Assistant.
|
|
15
|
+
*/
|
|
16
|
+
start() {
|
|
17
|
+
this.wsClient.onCommand(this.handleCommand.bind(this));
|
|
18
|
+
this.wsClient.onStateRequest(this.handleStateRequest.bind(this));
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
console.error("[ha-opencode] Invalid command JSON:", payload);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (!command.command) {
|
|
30
|
-
console.error("[ha-opencode] Command missing 'command' field:", payload);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// Trigger Kitty terminal alert for incoming command (skip noisy history requests)
|
|
34
|
-
if (!["get_history", "get_history_since", "get_agents"].includes(command.command)) {
|
|
35
|
-
notify("HA Command Received", `Command: ${command.command}`);
|
|
20
|
+
handleCommand(command, sessionId, data) {
|
|
21
|
+
// Trigger notification for incoming command (skip noisy history requests)
|
|
22
|
+
if (!["get_history", "get_history_since", "get_agents"].includes(command)) {
|
|
23
|
+
notify("HA Command Received", `Command: ${command}`);
|
|
36
24
|
}
|
|
37
25
|
// Handle command asynchronously
|
|
38
|
-
this.processCommand(command).catch((
|
|
39
|
-
|
|
26
|
+
this.processCommand(command, sessionId, data).catch(() => {
|
|
27
|
+
// Silent failure - errors are handled in processCommand
|
|
40
28
|
});
|
|
41
29
|
}
|
|
42
|
-
async processCommand(command) {
|
|
43
|
-
switch (command
|
|
44
|
-
case "
|
|
45
|
-
await this.handlePermissionResponse(
|
|
30
|
+
async processCommand(command, sessionId, data) {
|
|
31
|
+
switch (command) {
|
|
32
|
+
case "respond_permission":
|
|
33
|
+
await this.handlePermissionResponse(sessionId, data);
|
|
46
34
|
break;
|
|
47
|
-
case "
|
|
48
|
-
await this.handlePrompt(
|
|
35
|
+
case "send_prompt":
|
|
36
|
+
await this.handlePrompt(sessionId, data);
|
|
49
37
|
break;
|
|
50
38
|
case "get_history":
|
|
51
|
-
await this.handleGetHistory(
|
|
52
|
-
break;
|
|
53
|
-
case "get_history_since":
|
|
54
|
-
await this.handleGetHistorySince(command);
|
|
55
|
-
break;
|
|
56
|
-
case "cleanup_stale_sessions":
|
|
57
|
-
await this.handleCleanup(command);
|
|
39
|
+
await this.handleGetHistory(sessionId, data);
|
|
58
40
|
break;
|
|
59
41
|
case "get_agents":
|
|
60
|
-
await this.handleGetAgents(
|
|
42
|
+
await this.handleGetAgents(sessionId, data);
|
|
61
43
|
break;
|
|
62
44
|
default:
|
|
63
|
-
notify("Unknown Command", `Unrecognized: ${command
|
|
45
|
+
notify("Unknown Command", `Unrecognized: ${command}`);
|
|
64
46
|
}
|
|
65
47
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
const errorMsg = err instanceof Error ? err.message : "Unknown error";
|
|
78
|
-
notify("Cleanup Failed", errorMsg);
|
|
79
|
-
console.error("[ha-opencode] Failed to run cleanup:", err);
|
|
80
|
-
}
|
|
48
|
+
/**
|
|
49
|
+
* Handle state request from HA - send all current sessions.
|
|
50
|
+
*/
|
|
51
|
+
handleStateRequest() {
|
|
52
|
+
const sessions = this.state.getAllSessions();
|
|
53
|
+
this.wsClient
|
|
54
|
+
.sendStateResponse(this.instanceToken, sessions)
|
|
55
|
+
.catch(() => {
|
|
56
|
+
// Silent failure
|
|
57
|
+
});
|
|
81
58
|
}
|
|
82
|
-
async handlePrompt(command) {
|
|
59
|
+
async handlePrompt(sessionId, command) {
|
|
83
60
|
if (!command.text || command.text.trim() === "") {
|
|
84
61
|
notify("Prompt Error", "Empty prompt text");
|
|
85
62
|
return;
|
|
86
63
|
}
|
|
87
|
-
//
|
|
88
|
-
const
|
|
89
|
-
if (!
|
|
64
|
+
// Use provided session ID or fall back to current
|
|
65
|
+
const targetSessionId = sessionId || this.state.getCurrentSessionId();
|
|
66
|
+
if (!targetSessionId) {
|
|
90
67
|
notify("Prompt Error", "No active session");
|
|
91
68
|
return;
|
|
92
69
|
}
|
|
93
70
|
const agentInfo = command.agent ? ` [${command.agent}]` : "";
|
|
94
|
-
notify("Prompt Received", command.text.substring(0, 50) +
|
|
71
|
+
notify("Prompt Received", command.text.substring(0, 50) +
|
|
72
|
+
(command.text.length > 50 ? "..." : "") +
|
|
73
|
+
agentInfo);
|
|
95
74
|
try {
|
|
96
75
|
await this.client.session.prompt({
|
|
97
|
-
path: { id:
|
|
76
|
+
path: { id: targetSessionId },
|
|
98
77
|
body: {
|
|
99
78
|
agent: command.agent,
|
|
100
79
|
parts: [{ type: "text", text: command.text }],
|
|
@@ -104,92 +83,57 @@ export class CommandHandler {
|
|
|
104
83
|
catch (err) {
|
|
105
84
|
const errorMsg = err instanceof Error ? err.message : "Unknown error";
|
|
106
85
|
notify("Prompt Failed", errorMsg);
|
|
107
|
-
console.error("[ha-opencode] Failed to send prompt:", err);
|
|
108
86
|
}
|
|
109
87
|
}
|
|
110
|
-
async handleGetAgents(command) {
|
|
88
|
+
async handleGetAgents(sessionId, command) {
|
|
111
89
|
try {
|
|
112
90
|
const result = await this.client.app.agents();
|
|
113
91
|
if (!result.data) {
|
|
114
|
-
notify("Agents Error", "No agents data returned");
|
|
115
92
|
return;
|
|
116
93
|
}
|
|
117
|
-
const agents = result.data.map(agent => ({
|
|
94
|
+
const agents = result.data.map((agent) => ({
|
|
118
95
|
name: agent.name,
|
|
119
96
|
description: agent.description,
|
|
120
97
|
mode: agent.mode,
|
|
121
98
|
}));
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
request_id: command.request_id,
|
|
99
|
+
const responseData = {
|
|
100
|
+
session_id: sessionId || this.state.getCurrentSessionId() || "",
|
|
125
101
|
agents,
|
|
126
|
-
};
|
|
127
|
-
await this.mqtt.publish(this.discovery.getResponseTopic(), response, false);
|
|
128
|
-
// Skip notification - agents requests are frequent and noisy
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
// Only log, don't notify - agents requests are frequent
|
|
132
|
-
console.error("[ha-opencode] Failed to fetch agents:", err);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
async handleGetHistory(command) {
|
|
136
|
-
const sessionId = command.session_id || this.state.getCurrentSessionId();
|
|
137
|
-
if (!sessionId) {
|
|
138
|
-
// Skip notification - history requests are frequent and noisy
|
|
139
|
-
console.warn("[ha-opencode] History request with no active session");
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
try {
|
|
143
|
-
const history = await this.fetchSessionHistory(sessionId);
|
|
144
|
-
const response = {
|
|
145
|
-
type: "history",
|
|
146
102
|
request_id: command.request_id,
|
|
147
|
-
session_id: sessionId,
|
|
148
|
-
session_title: history.title,
|
|
149
|
-
messages: history.messages,
|
|
150
|
-
fetched_at: new Date().toISOString(),
|
|
151
103
|
};
|
|
152
|
-
await this.
|
|
153
|
-
// Skip notification - history requests are frequent and noisy
|
|
104
|
+
await this.wsClient.sendAgentsResponse(this.instanceToken, responseData);
|
|
154
105
|
}
|
|
155
|
-
catch
|
|
156
|
-
//
|
|
157
|
-
console.error("[ha-opencode] Failed to fetch history:", err);
|
|
106
|
+
catch {
|
|
107
|
+
// Silent failure
|
|
158
108
|
}
|
|
159
109
|
}
|
|
160
|
-
async
|
|
161
|
-
const
|
|
162
|
-
if (!
|
|
163
|
-
// Skip notification - history requests are frequent and noisy
|
|
164
|
-
console.warn("[ha-opencode] History since request with no active session");
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if (!command.since) {
|
|
168
|
-
console.warn("[ha-opencode] History since request missing 'since' timestamp");
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
const sinceDate = new Date(command.since);
|
|
172
|
-
if (isNaN(sinceDate.getTime())) {
|
|
173
|
-
console.warn("[ha-opencode] History since request with invalid 'since' timestamp:", command.since);
|
|
110
|
+
async handleGetHistory(sessionId, command) {
|
|
111
|
+
const targetSessionId = sessionId || this.state.getCurrentSessionId();
|
|
112
|
+
if (!targetSessionId) {
|
|
174
113
|
return;
|
|
175
114
|
}
|
|
176
115
|
try {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
116
|
+
// Parse optional since parameter
|
|
117
|
+
let sinceDate;
|
|
118
|
+
if (command.since) {
|
|
119
|
+
sinceDate = new Date(command.since);
|
|
120
|
+
if (isNaN(sinceDate.getTime())) {
|
|
121
|
+
sinceDate = undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const history = await this.fetchSessionHistory(targetSessionId, sinceDate);
|
|
125
|
+
const responseData = {
|
|
126
|
+
session_id: targetSessionId,
|
|
182
127
|
session_title: history.title,
|
|
183
128
|
messages: history.messages,
|
|
184
129
|
fetched_at: new Date().toISOString(),
|
|
185
130
|
since: command.since,
|
|
131
|
+
request_id: command.request_id,
|
|
186
132
|
};
|
|
187
|
-
await this.
|
|
188
|
-
// Skip notification - history requests are frequent and noisy
|
|
133
|
+
await this.wsClient.sendHistoryResponse(this.instanceToken, responseData);
|
|
189
134
|
}
|
|
190
|
-
catch
|
|
191
|
-
//
|
|
192
|
-
console.error("[ha-opencode] Failed to fetch history:", err);
|
|
135
|
+
catch {
|
|
136
|
+
// Silent failure
|
|
193
137
|
}
|
|
194
138
|
}
|
|
195
139
|
async fetchSessionHistory(sessionId, since) {
|
|
@@ -208,7 +152,9 @@ export class CommandHandler {
|
|
|
208
152
|
const parts = msg.parts || [];
|
|
209
153
|
// Get timestamp from the message - time.created is a Unix timestamp in milliseconds
|
|
210
154
|
const createdMs = info.time?.created;
|
|
211
|
-
const timestamp = createdMs
|
|
155
|
+
const timestamp = createdMs
|
|
156
|
+
? new Date(createdMs).toISOString()
|
|
157
|
+
: new Date().toISOString();
|
|
212
158
|
const msgDate = new Date(timestamp);
|
|
213
159
|
// Filter by since date if provided
|
|
214
160
|
if (since && msgDate <= since) {
|
|
@@ -258,22 +204,27 @@ export class CommandHandler {
|
|
|
258
204
|
if (info.role === "assistant") {
|
|
259
205
|
historyMsg.model = info.modelID;
|
|
260
206
|
historyMsg.provider = info.providerID;
|
|
261
|
-
historyMsg.tokens_input = info.tokens?.input
|
|
262
|
-
|
|
207
|
+
historyMsg.tokens_input = info.tokens?.input
|
|
208
|
+
? Number(info.tokens.input)
|
|
209
|
+
: undefined;
|
|
210
|
+
historyMsg.tokens_output = info.tokens?.output
|
|
211
|
+
? Number(info.tokens.output)
|
|
212
|
+
: undefined;
|
|
263
213
|
historyMsg.cost = info.cost ? Number(info.cost) : undefined;
|
|
264
214
|
}
|
|
265
215
|
messages.push(historyMsg);
|
|
266
216
|
}
|
|
267
217
|
return { title: sessionTitle, messages };
|
|
268
218
|
}
|
|
269
|
-
async handlePermissionResponse(command) {
|
|
219
|
+
async handlePermissionResponse(_sessionId, command) {
|
|
270
220
|
const pendingPermission = this.state.getPendingPermission();
|
|
271
221
|
if (!pendingPermission) {
|
|
272
222
|
notify("Permission Error", "No pending permission");
|
|
273
223
|
return;
|
|
274
224
|
}
|
|
275
225
|
// Validate permission ID matches
|
|
276
|
-
if (command.permission_id &&
|
|
226
|
+
if (command.permission_id &&
|
|
227
|
+
command.permission_id !== pendingPermission.id) {
|
|
277
228
|
notify("Permission Error", "Permission ID mismatch");
|
|
278
229
|
return;
|
|
279
230
|
}
|
|
@@ -286,7 +237,7 @@ export class CommandHandler {
|
|
|
286
237
|
try {
|
|
287
238
|
await this.client.postSessionIdPermissionsPermissionId({
|
|
288
239
|
path: {
|
|
289
|
-
id: pendingPermission.
|
|
240
|
+
id: pendingPermission.session_id,
|
|
290
241
|
permissionID: pendingPermission.id,
|
|
291
242
|
},
|
|
292
243
|
body: {
|
|
@@ -294,15 +245,16 @@ export class CommandHandler {
|
|
|
294
245
|
},
|
|
295
246
|
});
|
|
296
247
|
// Notify user of successful permission response
|
|
297
|
-
const responseLabel = command.response === "once"
|
|
298
|
-
|
|
248
|
+
const responseLabel = command.response === "once"
|
|
249
|
+
? "Approved (once)"
|
|
250
|
+
: command.response === "always"
|
|
251
|
+
? "Approved (always)"
|
|
299
252
|
: "Rejected";
|
|
300
253
|
notify("Permission Response", responseLabel);
|
|
301
254
|
await this.state.clearPermission();
|
|
302
255
|
}
|
|
303
|
-
catch
|
|
256
|
+
catch {
|
|
304
257
|
notify("Permission Error", "Failed to send response");
|
|
305
|
-
console.error("[ha-opencode] Failed to send permission response:", err);
|
|
306
258
|
}
|
|
307
259
|
}
|
|
308
260
|
}
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Home Assistant connection configuration management.
|
|
3
|
+
*
|
|
4
|
+
* Stores and retrieves the HA connection info (URL, instance token) that is
|
|
5
|
+
* established during pairing. This is stored in a local file so the plugin
|
|
6
|
+
* can automatically reconnect on restart.
|
|
7
|
+
*/
|
|
8
|
+
export interface HAConnectionConfig {
|
|
9
|
+
url: string;
|
|
10
|
+
accessToken: string;
|
|
11
|
+
instanceToken: string;
|
|
12
|
+
instanceId: string;
|
|
13
|
+
pairedAt: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Load saved HA connection configuration.
|
|
17
|
+
* Returns null if no configuration exists.
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadHAConnectionConfig(): Promise<HAConnectionConfig | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Save HA connection configuration.
|
|
22
|
+
*/
|
|
23
|
+
export declare function saveHAConnectionConfig(config: HAConnectionConfig): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Clear saved HA connection configuration.
|
|
26
|
+
* Called when unpairing or when the connection becomes invalid.
|
|
27
|
+
*/
|
|
28
|
+
export declare function clearHAConnectionConfig(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Check if HA connection is configured.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isHAConfigured(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Build WebSocket URL from user-provided Home Assistant URL.
|
|
35
|
+
* Handles various input formats:
|
|
36
|
+
* - http://homeassistant.local:8123 -> ws://homeassistant.local:8123/api/websocket
|
|
37
|
+
* - https://ha.example.com -> wss://ha.example.com/api/websocket
|
|
38
|
+
* - homeassistant.local:8123 -> ws://homeassistant.local:8123/api/websocket
|
|
39
|
+
* - ws://homeassistant.local:8123/api/websocket -> unchanged
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildWebSocketUrl(input: string): string;
|
|
42
|
+
//# sourceMappingURL=ha-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ha-config.d.ts","sourceRoot":"","sources":["../src/ha-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAkBjF;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtF;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA0BvD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Home Assistant connection configuration management.
|
|
3
|
+
*
|
|
4
|
+
* Stores and retrieves the HA connection info (URL, instance token) that is
|
|
5
|
+
* established during pairing. This is stored in a local file so the plugin
|
|
6
|
+
* can automatically reconnect on restart.
|
|
7
|
+
*/
|
|
8
|
+
import { readFile, writeFile, mkdir } from "fs/promises";
|
|
9
|
+
import { existsSync } from "fs";
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
const CONFIG_DIR = join(homedir(), ".config", "opencode");
|
|
13
|
+
const CONFIG_FILE = join(CONFIG_DIR, "ha-connection.json");
|
|
14
|
+
/**
|
|
15
|
+
* Load saved HA connection configuration.
|
|
16
|
+
* Returns null if no configuration exists.
|
|
17
|
+
*/
|
|
18
|
+
export async function loadHAConnectionConfig() {
|
|
19
|
+
try {
|
|
20
|
+
if (!existsSync(CONFIG_FILE)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const content = await readFile(CONFIG_FILE, "utf-8");
|
|
24
|
+
const config = JSON.parse(content);
|
|
25
|
+
// Validate required fields
|
|
26
|
+
if (!config.url || !config.accessToken || !config.instanceToken || !config.instanceId) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Save HA connection configuration.
|
|
37
|
+
*/
|
|
38
|
+
export async function saveHAConnectionConfig(config) {
|
|
39
|
+
try {
|
|
40
|
+
// Ensure config directory exists
|
|
41
|
+
if (!existsSync(CONFIG_DIR)) {
|
|
42
|
+
await mkdir(CONFIG_DIR, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
await writeFile(CONFIG_FILE, JSON.stringify(config, null, 2), "utf-8");
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Clear saved HA connection configuration.
|
|
52
|
+
* Called when unpairing or when the connection becomes invalid.
|
|
53
|
+
*/
|
|
54
|
+
export async function clearHAConnectionConfig() {
|
|
55
|
+
try {
|
|
56
|
+
if (existsSync(CONFIG_FILE)) {
|
|
57
|
+
const { unlink } = await import("fs/promises");
|
|
58
|
+
await unlink(CONFIG_FILE);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Silent failure
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if HA connection is configured.
|
|
67
|
+
*/
|
|
68
|
+
export function isHAConfigured() {
|
|
69
|
+
return existsSync(CONFIG_FILE);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build WebSocket URL from user-provided Home Assistant URL.
|
|
73
|
+
* Handles various input formats:
|
|
74
|
+
* - http://homeassistant.local:8123 -> ws://homeassistant.local:8123/api/websocket
|
|
75
|
+
* - https://ha.example.com -> wss://ha.example.com/api/websocket
|
|
76
|
+
* - homeassistant.local:8123 -> ws://homeassistant.local:8123/api/websocket
|
|
77
|
+
* - ws://homeassistant.local:8123/api/websocket -> unchanged
|
|
78
|
+
*/
|
|
79
|
+
export function buildWebSocketUrl(input) {
|
|
80
|
+
let url = input.trim();
|
|
81
|
+
// Already a websocket URL
|
|
82
|
+
if (url.startsWith("ws://") || url.startsWith("wss://")) {
|
|
83
|
+
// Ensure it ends with the correct path
|
|
84
|
+
if (!url.includes("/api/websocket")) {
|
|
85
|
+
url = url.replace(/\/$/, "") + "/api/websocket";
|
|
86
|
+
}
|
|
87
|
+
return url;
|
|
88
|
+
}
|
|
89
|
+
// HTTP URL
|
|
90
|
+
if (url.startsWith("http://")) {
|
|
91
|
+
url = "ws://" + url.slice(7);
|
|
92
|
+
}
|
|
93
|
+
else if (url.startsWith("https://")) {
|
|
94
|
+
url = "wss://" + url.slice(8);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Plain hostname:port, assume ws://
|
|
98
|
+
url = "ws://" + url;
|
|
99
|
+
}
|
|
100
|
+
// Remove trailing slash and add websocket path
|
|
101
|
+
url = url.replace(/\/$/, "") + "/api/websocket";
|
|
102
|
+
return url;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=ha-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ha-config.js","sourceRoot":"","sources":["../src/ha-config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "source-map-support/register.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type Plugin } from "@opencode-ai/plugin";
|
|
3
3
|
export declare const HomeAssistantPlugin: Plugin;
|
|
4
4
|
export default HomeAssistantPlugin;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAExC,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,qBAAqB,CAAC;AA0BxD,eAAO,MAAM,mBAAmB,EAAE,MA6YjC,CAAC;AAGF,eAAe,mBAAmB,CAAC"}
|