@m1kad0/hannah-proto 4.5.0 → 4.6.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 +21 -0
- package/dist/compat_interceptor.js +6 -6
- package/dist/compat_versions.js +176 -88
- package/dist/descriptor.binpb +0 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/v1/activity_log.d.ts +60 -0
- package/dist/v1/activity_log.js +453 -0
- package/dist/v1/agent.d.ts +433 -0
- package/dist/v1/agent.js +2527 -0
- package/dist/v1/automation.d.ts +54 -0
- package/dist/v1/automation.js +303 -0
- package/dist/v1/car_state.d.ts +72 -0
- package/dist/v1/car_state.js +516 -0
- package/dist/v1/channel.d.ts +102 -0
- package/dist/v1/channel.js +587 -0
- package/dist/v1/control.d.ts +383 -0
- package/dist/v1/control.js +3879 -0
- package/dist/v1/device_control_menu.d.ts +88 -0
- package/dist/v1/device_control_menu.js +629 -0
- package/dist/v1/event_stream.d.ts +63 -0
- package/dist/v1/event_stream.js +494 -0
- package/dist/v1/hannah.d.ts +1644 -0
- package/dist/v1/hannah.js +968 -0
- package/dist/v1/index.d.ts +22 -0
- package/dist/v1/index.js +58 -0
- package/dist/v1/infrastructure.d.ts +98 -0
- package/dist/v1/infrastructure.js +652 -0
- package/dist/v1/logging.d.ts +189 -0
- package/dist/v1/logging.js +775 -0
- package/dist/v1/messages.d.ts +56 -0
- package/dist/v1/messages.js +398 -0
- package/dist/v1/satellite.d.ts +90 -0
- package/dist/v1/satellite.js +637 -0
- package/dist/v1/satellite_provisioning.d.ts +33 -0
- package/dist/v1/satellite_provisioning.js +84 -0
- package/dist/v1/satellite_proxy.d.ts +100 -0
- package/dist/v1/satellite_proxy.js +546 -0
- package/dist/v1/shared.d.ts +54 -0
- package/dist/v1/shared.js +249 -0
- package/dist/v1/speaker_enrollment.d.ts +44 -0
- package/dist/v1/speaker_enrollment.js +157 -0
- package/dist/v1/timer_admin.d.ts +42 -0
- package/dist/v1/timer_admin.js +273 -0
- package/dist/v1/timer_service.d.ts +133 -0
- package/dist/v1/timer_service.js +945 -0
- package/dist/v1/user_registry.d.ts +187 -0
- package/dist/v1/user_registry.js +1612 -0
- package/dist/v1/wakeword_capture.d.ts +101 -0
- package/dist/v1/wakeword_capture.js +611 -0
- package/dist/v1/weather.d.ts +81 -0
- package/dist/v1/weather.js +366 -0
- package/package.json +1 -1
|
@@ -0,0 +1,968 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v2.12.1
|
|
5
|
+
// protoc unknown
|
|
6
|
+
// source: hannah/v1/hannah.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.HannahServiceClient = exports.HannahServiceService = exports.protobufPackage = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const grpc_js_1 = require("@grpc/grpc-js");
|
|
11
|
+
const activity_log_1 = require("./activity_log");
|
|
12
|
+
const agent_1 = require("./agent");
|
|
13
|
+
const automation_1 = require("./automation");
|
|
14
|
+
const car_state_1 = require("./car_state");
|
|
15
|
+
const channel_1 = require("./channel");
|
|
16
|
+
const control_1 = require("./control");
|
|
17
|
+
const device_control_menu_1 = require("./device_control_menu");
|
|
18
|
+
const event_stream_1 = require("./event_stream");
|
|
19
|
+
const infrastructure_1 = require("./infrastructure");
|
|
20
|
+
const messages_1 = require("./messages");
|
|
21
|
+
const satellite_1 = require("./satellite");
|
|
22
|
+
const satellite_provisioning_1 = require("./satellite_provisioning");
|
|
23
|
+
const satellite_proxy_1 = require("./satellite_proxy");
|
|
24
|
+
const shared_1 = require("./shared");
|
|
25
|
+
const speaker_enrollment_1 = require("./speaker_enrollment");
|
|
26
|
+
const timer_admin_1 = require("./timer_admin");
|
|
27
|
+
const timer_service_1 = require("./timer_service");
|
|
28
|
+
const user_registry_1 = require("./user_registry");
|
|
29
|
+
const wakeword_capture_1 = require("./wakeword_capture");
|
|
30
|
+
exports.protobufPackage = "hannah.v1";
|
|
31
|
+
exports.HannahServiceService = {
|
|
32
|
+
/** --- User Registry --- */
|
|
33
|
+
getUsers: {
|
|
34
|
+
path: "/hannah.v1.HannahService/GetUsers",
|
|
35
|
+
requestStream: false,
|
|
36
|
+
responseStream: false,
|
|
37
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.GetUsersRequest.encode(value).finish()),
|
|
38
|
+
requestDeserialize: (value) => user_registry_1.GetUsersRequest.decode(value),
|
|
39
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.GetUsersResponse.encode(value).finish()),
|
|
40
|
+
responseDeserialize: (value) => user_registry_1.GetUsersResponse.decode(value),
|
|
41
|
+
},
|
|
42
|
+
getUser: {
|
|
43
|
+
path: "/hannah.v1.HannahService/GetUser",
|
|
44
|
+
requestStream: false,
|
|
45
|
+
responseStream: false,
|
|
46
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.GetUserRequest.encode(value).finish()),
|
|
47
|
+
requestDeserialize: (value) => user_registry_1.GetUserRequest.decode(value),
|
|
48
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.UserResponse.encode(value).finish()),
|
|
49
|
+
responseDeserialize: (value) => user_registry_1.UserResponse.decode(value),
|
|
50
|
+
},
|
|
51
|
+
linkAccount: {
|
|
52
|
+
path: "/hannah.v1.HannahService/LinkAccount",
|
|
53
|
+
requestStream: false,
|
|
54
|
+
responseStream: false,
|
|
55
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.LinkAccountRequest.encode(value).finish()),
|
|
56
|
+
requestDeserialize: (value) => user_registry_1.LinkAccountRequest.decode(value),
|
|
57
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
58
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
59
|
+
},
|
|
60
|
+
unlinkAccount: {
|
|
61
|
+
path: "/hannah.v1.HannahService/UnlinkAccount",
|
|
62
|
+
requestStream: false,
|
|
63
|
+
responseStream: false,
|
|
64
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.UnlinkAccountRequest.encode(value).finish()),
|
|
65
|
+
requestDeserialize: (value) => user_registry_1.UnlinkAccountRequest.decode(value),
|
|
66
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
67
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* One-time token for linking an account via the service's adapter (e.g. Telegram deep link).
|
|
71
|
+
* Redeemed by the adapter over ChannelConnect.
|
|
72
|
+
*/
|
|
73
|
+
createLinkToken: {
|
|
74
|
+
path: "/hannah.v1.HannahService/CreateLinkToken",
|
|
75
|
+
requestStream: false,
|
|
76
|
+
responseStream: false,
|
|
77
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.CreateLinkTokenRequest.encode(value).finish()),
|
|
78
|
+
requestDeserialize: (value) => user_registry_1.CreateLinkTokenRequest.decode(value),
|
|
79
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.CreateLinkTokenResponse.encode(value).finish()),
|
|
80
|
+
responseDeserialize: (value) => user_registry_1.CreateLinkTokenResponse.decode(value),
|
|
81
|
+
},
|
|
82
|
+
setTrustLevel: {
|
|
83
|
+
path: "/hannah.v1.HannahService/SetTrustLevel",
|
|
84
|
+
requestStream: false,
|
|
85
|
+
responseStream: false,
|
|
86
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.SetTrustLevelRequest.encode(value).finish()),
|
|
87
|
+
requestDeserialize: (value) => user_registry_1.SetTrustLevelRequest.decode(value),
|
|
88
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
89
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
90
|
+
},
|
|
91
|
+
setSystemMessages: {
|
|
92
|
+
path: "/hannah.v1.HannahService/SetSystemMessages",
|
|
93
|
+
requestStream: false,
|
|
94
|
+
responseStream: false,
|
|
95
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.SetSystemMessagesRequest.encode(value).finish()),
|
|
96
|
+
requestDeserialize: (value) => user_registry_1.SetSystemMessagesRequest.decode(value),
|
|
97
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
98
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
99
|
+
},
|
|
100
|
+
/**
|
|
101
|
+
* Enable/disable an automation service (e.g. "telegram_autoresponder") for a user.
|
|
102
|
+
* Pushes a live update to any connected AutomationConnect stream registered for it.
|
|
103
|
+
*/
|
|
104
|
+
setAutomation: {
|
|
105
|
+
path: "/hannah.v1.HannahService/SetAutomation",
|
|
106
|
+
requestStream: false,
|
|
107
|
+
responseStream: false,
|
|
108
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.SetAutomationRequest.encode(value).finish()),
|
|
109
|
+
requestDeserialize: (value) => user_registry_1.SetAutomationRequest.decode(value),
|
|
110
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
111
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
112
|
+
},
|
|
113
|
+
login: {
|
|
114
|
+
path: "/hannah.v1.HannahService/Login",
|
|
115
|
+
requestStream: false,
|
|
116
|
+
responseStream: false,
|
|
117
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.LoginRequest.encode(value).finish()),
|
|
118
|
+
requestDeserialize: (value) => user_registry_1.LoginRequest.decode(value),
|
|
119
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.UserResponse.encode(value).finish()),
|
|
120
|
+
responseDeserialize: (value) => user_registry_1.UserResponse.decode(value),
|
|
121
|
+
},
|
|
122
|
+
/** --- User-Verwaltung (Admin-UI, #27 Phase 6) --- */
|
|
123
|
+
createUser: {
|
|
124
|
+
path: "/hannah.v1.HannahService/CreateUser",
|
|
125
|
+
requestStream: false,
|
|
126
|
+
responseStream: false,
|
|
127
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.CreateUserRequest.encode(value).finish()),
|
|
128
|
+
requestDeserialize: (value) => user_registry_1.CreateUserRequest.decode(value),
|
|
129
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.CreateUserResponse.encode(value).finish()),
|
|
130
|
+
responseDeserialize: (value) => user_registry_1.CreateUserResponse.decode(value),
|
|
131
|
+
},
|
|
132
|
+
updateUser: {
|
|
133
|
+
path: "/hannah.v1.HannahService/UpdateUser",
|
|
134
|
+
requestStream: false,
|
|
135
|
+
responseStream: false,
|
|
136
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.UpdateUserRequest.encode(value).finish()),
|
|
137
|
+
requestDeserialize: (value) => user_registry_1.UpdateUserRequest.decode(value),
|
|
138
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
139
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
140
|
+
},
|
|
141
|
+
deleteUser: {
|
|
142
|
+
path: "/hannah.v1.HannahService/DeleteUser",
|
|
143
|
+
requestStream: false,
|
|
144
|
+
responseStream: false,
|
|
145
|
+
requestSerialize: (value) => Buffer.from(user_registry_1.DeleteUserRequest.encode(value).finish()),
|
|
146
|
+
requestDeserialize: (value) => user_registry_1.DeleteUserRequest.decode(value),
|
|
147
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
148
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
149
|
+
},
|
|
150
|
+
/** Residents (Roomies/Guests/Pets) aus dem ioBroker-Adapter-Cache — fürs "Resident verknüpfen"-Dropdown. */
|
|
151
|
+
getResidents: {
|
|
152
|
+
path: "/hannah.v1.HannahService/GetResidents",
|
|
153
|
+
requestStream: false,
|
|
154
|
+
responseStream: false,
|
|
155
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
156
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
157
|
+
responseSerialize: (value) => Buffer.from(user_registry_1.GetResidentsResponse.encode(value).finish()),
|
|
158
|
+
responseDeserialize: (value) => user_registry_1.GetResidentsResponse.decode(value),
|
|
159
|
+
},
|
|
160
|
+
/**
|
|
161
|
+
* --- Device Control Menu ---
|
|
162
|
+
* Returns all rooms and devices with current state — for building control menus.
|
|
163
|
+
*/
|
|
164
|
+
getDevices: {
|
|
165
|
+
path: "/hannah.v1.HannahService/GetDevices",
|
|
166
|
+
requestStream: false,
|
|
167
|
+
responseStream: false,
|
|
168
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
169
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
170
|
+
responseSerialize: (value) => Buffer.from(device_control_menu_1.GetDevicesResponse.encode(value).finish()),
|
|
171
|
+
responseDeserialize: (value) => device_control_menu_1.GetDevicesResponse.decode(value),
|
|
172
|
+
},
|
|
173
|
+
/** Directly set a device state (bypasses NLU). Trust level check is done by the caller. */
|
|
174
|
+
controlDevice: {
|
|
175
|
+
path: "/hannah.v1.HannahService/ControlDevice",
|
|
176
|
+
requestStream: false,
|
|
177
|
+
responseStream: false,
|
|
178
|
+
requestSerialize: (value) => Buffer.from(device_control_menu_1.ControlDeviceRequest.encode(value).finish()),
|
|
179
|
+
requestDeserialize: (value) => device_control_menu_1.ControlDeviceRequest.decode(value),
|
|
180
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
181
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
182
|
+
},
|
|
183
|
+
/**
|
|
184
|
+
* --- Control ---
|
|
185
|
+
* Submit a plain-text command; Hannah processes it through NLU and returns the answer.
|
|
186
|
+
*/
|
|
187
|
+
submitText: {
|
|
188
|
+
path: "/hannah.v1.HannahService/SubmitText",
|
|
189
|
+
requestStream: false,
|
|
190
|
+
responseStream: false,
|
|
191
|
+
requestSerialize: (value) => Buffer.from(control_1.SubmitTextRequest.encode(value).finish()),
|
|
192
|
+
requestDeserialize: (value) => control_1.SubmitTextRequest.decode(value),
|
|
193
|
+
responseSerialize: (value) => Buffer.from(control_1.SubmitTextResponse.encode(value).finish()),
|
|
194
|
+
responseDeserialize: (value) => control_1.SubmitTextResponse.decode(value),
|
|
195
|
+
},
|
|
196
|
+
/** Submit a voice message (OGG/Opus bytes); Hannah does STT → NLU → TTS and returns the result. */
|
|
197
|
+
submitVoice: {
|
|
198
|
+
path: "/hannah.v1.HannahService/SubmitVoice",
|
|
199
|
+
requestStream: false,
|
|
200
|
+
responseStream: false,
|
|
201
|
+
requestSerialize: (value) => Buffer.from(control_1.SubmitVoiceRequest.encode(value).finish()),
|
|
202
|
+
requestDeserialize: (value) => control_1.SubmitVoiceRequest.decode(value),
|
|
203
|
+
responseSerialize: (value) => Buffer.from(control_1.SubmitVoiceResponse.encode(value).finish()),
|
|
204
|
+
responseDeserialize: (value) => control_1.SubmitVoiceResponse.decode(value),
|
|
205
|
+
},
|
|
206
|
+
/** Send a TTS announcement to one satellite or all ("all"). */
|
|
207
|
+
announce: {
|
|
208
|
+
path: "/hannah.v1.HannahService/Announce",
|
|
209
|
+
requestStream: false,
|
|
210
|
+
responseStream: false,
|
|
211
|
+
requestSerialize: (value) => Buffer.from(control_1.AnnounceRequest.encode(value).finish()),
|
|
212
|
+
requestDeserialize: (value) => control_1.AnnounceRequest.decode(value),
|
|
213
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
214
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
215
|
+
},
|
|
216
|
+
/**
|
|
217
|
+
* Send a notification from ioBroker to Hannah. Returns ok=true when queued.
|
|
218
|
+
* direct=true: skip LLM reformulation. severity: "alert"|"notify"|"info".
|
|
219
|
+
*/
|
|
220
|
+
notify: {
|
|
221
|
+
path: "/hannah.v1.HannahService/Notify",
|
|
222
|
+
requestStream: false,
|
|
223
|
+
responseStream: false,
|
|
224
|
+
requestSerialize: (value) => Buffer.from(agent_1.AgentNotification.encode(value).finish()),
|
|
225
|
+
requestDeserialize: (value) => agent_1.AgentNotification.decode(value),
|
|
226
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
227
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
228
|
+
},
|
|
229
|
+
/** List all known satellites (DB + live status merged). */
|
|
230
|
+
getSatellites: {
|
|
231
|
+
path: "/hannah.v1.HannahService/GetSatellites",
|
|
232
|
+
requestStream: false,
|
|
233
|
+
responseStream: false,
|
|
234
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
235
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
236
|
+
responseSerialize: (value) => Buffer.from(satellite_1.GetSatellitesResponse.encode(value).finish()),
|
|
237
|
+
responseDeserialize: (value) => satellite_1.GetSatellitesResponse.decode(value),
|
|
238
|
+
},
|
|
239
|
+
/** --- Satellites (Admin-UI, #27 Phase 2) --- */
|
|
240
|
+
setSatelliteRoom: {
|
|
241
|
+
path: "/hannah.v1.HannahService/SetSatelliteRoom",
|
|
242
|
+
requestStream: false,
|
|
243
|
+
responseStream: false,
|
|
244
|
+
requestSerialize: (value) => Buffer.from(satellite_1.SetSatelliteRoomRequest.encode(value).finish()),
|
|
245
|
+
requestDeserialize: (value) => satellite_1.SetSatelliteRoomRequest.decode(value),
|
|
246
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
247
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
248
|
+
},
|
|
249
|
+
setSatelliteDisplayName: {
|
|
250
|
+
path: "/hannah.v1.HannahService/SetSatelliteDisplayName",
|
|
251
|
+
requestStream: false,
|
|
252
|
+
responseStream: false,
|
|
253
|
+
requestSerialize: (value) => Buffer.from(satellite_1.SetSatelliteDisplayNameRequest.encode(value).finish()),
|
|
254
|
+
requestDeserialize: (value) => satellite_1.SetSatelliteDisplayNameRequest.decode(value),
|
|
255
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
256
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
257
|
+
},
|
|
258
|
+
/** Assign a satellite to a Person (User), independent of its room. #31 */
|
|
259
|
+
setSatelliteOwner: {
|
|
260
|
+
path: "/hannah.v1.HannahService/SetSatelliteOwner",
|
|
261
|
+
requestStream: false,
|
|
262
|
+
responseStream: false,
|
|
263
|
+
requestSerialize: (value) => Buffer.from(satellite_1.SetSatelliteOwnerRequest.encode(value).finish()),
|
|
264
|
+
requestDeserialize: (value) => satellite_1.SetSatelliteOwnerRequest.decode(value),
|
|
265
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
266
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
267
|
+
},
|
|
268
|
+
/**
|
|
269
|
+
* Toggle whether the satellite's mic reopens after a Smalltalk answer instead of
|
|
270
|
+
* waiting for wake-word/PTT again (silence-timeout lives in the satellite firmware). #158
|
|
271
|
+
*/
|
|
272
|
+
setSatelliteSmalltalkFollowup: {
|
|
273
|
+
path: "/hannah.v1.HannahService/SetSatelliteSmalltalkFollowup",
|
|
274
|
+
requestStream: false,
|
|
275
|
+
responseStream: false,
|
|
276
|
+
requestSerialize: (value) => Buffer.from(satellite_1.SetSatelliteSmalltalkFollowupRequest.encode(value).finish()),
|
|
277
|
+
requestDeserialize: (value) => satellite_1.SetSatelliteSmalltalkFollowupRequest.decode(value),
|
|
278
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
279
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
280
|
+
},
|
|
281
|
+
/** Delete existing satellite */
|
|
282
|
+
deleteSatellite: {
|
|
283
|
+
path: "/hannah.v1.HannahService/DeleteSatellite",
|
|
284
|
+
requestStream: false,
|
|
285
|
+
responseStream: false,
|
|
286
|
+
requestSerialize: (value) => Buffer.from(satellite_1.DeleteSatelliteRequest.encode(value).finish()),
|
|
287
|
+
requestDeserialize: (value) => satellite_1.DeleteSatelliteRequest.decode(value),
|
|
288
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
289
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
290
|
+
},
|
|
291
|
+
/** --- Rooms/Groups (Admin-UI, #27 Phase 1) --- */
|
|
292
|
+
getRooms: {
|
|
293
|
+
path: "/hannah.v1.HannahService/GetRooms",
|
|
294
|
+
requestStream: false,
|
|
295
|
+
responseStream: false,
|
|
296
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
297
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
298
|
+
responseSerialize: (value) => Buffer.from(control_1.GetRoomsResponse.encode(value).finish()),
|
|
299
|
+
responseDeserialize: (value) => control_1.GetRoomsResponse.decode(value),
|
|
300
|
+
},
|
|
301
|
+
getGroups: {
|
|
302
|
+
path: "/hannah.v1.HannahService/GetGroups",
|
|
303
|
+
requestStream: false,
|
|
304
|
+
responseStream: false,
|
|
305
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
306
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
307
|
+
responseSerialize: (value) => Buffer.from(control_1.GetGroupsResponse.encode(value).finish()),
|
|
308
|
+
responseDeserialize: (value) => control_1.GetGroupsResponse.decode(value),
|
|
309
|
+
},
|
|
310
|
+
createGroup: {
|
|
311
|
+
path: "/hannah.v1.HannahService/CreateGroup",
|
|
312
|
+
requestStream: false,
|
|
313
|
+
responseStream: false,
|
|
314
|
+
requestSerialize: (value) => Buffer.from(control_1.CreateGroupRequest.encode(value).finish()),
|
|
315
|
+
requestDeserialize: (value) => control_1.CreateGroupRequest.decode(value),
|
|
316
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
317
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
318
|
+
},
|
|
319
|
+
updateGroup: {
|
|
320
|
+
path: "/hannah.v1.HannahService/UpdateGroup",
|
|
321
|
+
requestStream: false,
|
|
322
|
+
responseStream: false,
|
|
323
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateGroupRequest.encode(value).finish()),
|
|
324
|
+
requestDeserialize: (value) => control_1.UpdateGroupRequest.decode(value),
|
|
325
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
326
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
327
|
+
},
|
|
328
|
+
deleteGroup: {
|
|
329
|
+
path: "/hannah.v1.HannahService/DeleteGroup",
|
|
330
|
+
requestStream: false,
|
|
331
|
+
responseStream: false,
|
|
332
|
+
requestSerialize: (value) => Buffer.from(control_1.DeleteGroupRequest.encode(value).finish()),
|
|
333
|
+
requestDeserialize: (value) => control_1.DeleteGroupRequest.decode(value),
|
|
334
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
335
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
336
|
+
},
|
|
337
|
+
setGroupSatellites: {
|
|
338
|
+
path: "/hannah.v1.HannahService/SetGroupSatellites",
|
|
339
|
+
requestStream: false,
|
|
340
|
+
responseStream: false,
|
|
341
|
+
requestSerialize: (value) => Buffer.from(control_1.SetGroupSatellitesRequest.encode(value).finish()),
|
|
342
|
+
requestDeserialize: (value) => control_1.SetGroupSatellitesRequest.decode(value),
|
|
343
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
344
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
345
|
+
},
|
|
346
|
+
/** --- Triggers (Admin-UI, #28) --- */
|
|
347
|
+
getTriggers: {
|
|
348
|
+
path: "/hannah.v1.HannahService/GetTriggers",
|
|
349
|
+
requestStream: false,
|
|
350
|
+
responseStream: false,
|
|
351
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
352
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
353
|
+
responseSerialize: (value) => Buffer.from(control_1.GetTriggersResponse.encode(value).finish()),
|
|
354
|
+
responseDeserialize: (value) => control_1.GetTriggersResponse.decode(value),
|
|
355
|
+
},
|
|
356
|
+
createTrigger: {
|
|
357
|
+
path: "/hannah.v1.HannahService/CreateTrigger",
|
|
358
|
+
requestStream: false,
|
|
359
|
+
responseStream: false,
|
|
360
|
+
requestSerialize: (value) => Buffer.from(control_1.CreateTriggerRequest.encode(value).finish()),
|
|
361
|
+
requestDeserialize: (value) => control_1.CreateTriggerRequest.decode(value),
|
|
362
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
363
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
364
|
+
},
|
|
365
|
+
updateTrigger: {
|
|
366
|
+
path: "/hannah.v1.HannahService/UpdateTrigger",
|
|
367
|
+
requestStream: false,
|
|
368
|
+
responseStream: false,
|
|
369
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateTriggerRequest.encode(value).finish()),
|
|
370
|
+
requestDeserialize: (value) => control_1.UpdateTriggerRequest.decode(value),
|
|
371
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
372
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
373
|
+
},
|
|
374
|
+
deleteTrigger: {
|
|
375
|
+
path: "/hannah.v1.HannahService/DeleteTrigger",
|
|
376
|
+
requestStream: false,
|
|
377
|
+
responseStream: false,
|
|
378
|
+
requestSerialize: (value) => Buffer.from(control_1.DeleteTriggerRequest.encode(value).finish()),
|
|
379
|
+
requestDeserialize: (value) => control_1.DeleteTriggerRequest.decode(value),
|
|
380
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
381
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
382
|
+
},
|
|
383
|
+
/** --- Alarms (Wecker, #4) --- */
|
|
384
|
+
getAlarms: {
|
|
385
|
+
path: "/hannah.v1.HannahService/GetAlarms",
|
|
386
|
+
requestStream: false,
|
|
387
|
+
responseStream: false,
|
|
388
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
389
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
390
|
+
responseSerialize: (value) => Buffer.from(control_1.GetAlarmsResponse.encode(value).finish()),
|
|
391
|
+
responseDeserialize: (value) => control_1.GetAlarmsResponse.decode(value),
|
|
392
|
+
},
|
|
393
|
+
createAlarm: {
|
|
394
|
+
path: "/hannah.v1.HannahService/CreateAlarm",
|
|
395
|
+
requestStream: false,
|
|
396
|
+
responseStream: false,
|
|
397
|
+
requestSerialize: (value) => Buffer.from(control_1.CreateAlarmRequest.encode(value).finish()),
|
|
398
|
+
requestDeserialize: (value) => control_1.CreateAlarmRequest.decode(value),
|
|
399
|
+
responseSerialize: (value) => Buffer.from(control_1.CreateAlarmResponse.encode(value).finish()),
|
|
400
|
+
responseDeserialize: (value) => control_1.CreateAlarmResponse.decode(value),
|
|
401
|
+
},
|
|
402
|
+
updateAlarm: {
|
|
403
|
+
path: "/hannah.v1.HannahService/UpdateAlarm",
|
|
404
|
+
requestStream: false,
|
|
405
|
+
responseStream: false,
|
|
406
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateAlarmRequest.encode(value).finish()),
|
|
407
|
+
requestDeserialize: (value) => control_1.UpdateAlarmRequest.decode(value),
|
|
408
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
409
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
410
|
+
},
|
|
411
|
+
deleteAlarm: {
|
|
412
|
+
path: "/hannah.v1.HannahService/DeleteAlarm",
|
|
413
|
+
requestStream: false,
|
|
414
|
+
responseStream: false,
|
|
415
|
+
requestSerialize: (value) => Buffer.from(control_1.DeleteAlarmRequest.encode(value).finish()),
|
|
416
|
+
requestDeserialize: (value) => control_1.DeleteAlarmRequest.decode(value),
|
|
417
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
418
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
419
|
+
},
|
|
420
|
+
/**
|
|
421
|
+
* --- Settings (Admin-UI, #27 Phase 5) ---
|
|
422
|
+
* CreateSetting/DeleteSetting wurden mit #115 entfernt: ble.tags/cars haben jetzt
|
|
423
|
+
* eigene Modelle+CRUD (unten), nlu/iobroker.state_names/llm.system_prompt sind immer
|
|
424
|
+
* vorab bekannt/geseedet — es gibt keinen verbleibenden Bedarf, neue Settings anzulegen.
|
|
425
|
+
*/
|
|
426
|
+
getSettings: {
|
|
427
|
+
path: "/hannah.v1.HannahService/GetSettings",
|
|
428
|
+
requestStream: false,
|
|
429
|
+
responseStream: false,
|
|
430
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
431
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
432
|
+
responseSerialize: (value) => Buffer.from(control_1.GetSettingsResponse.encode(value).finish()),
|
|
433
|
+
responseDeserialize: (value) => control_1.GetSettingsResponse.decode(value),
|
|
434
|
+
},
|
|
435
|
+
updateConfig: {
|
|
436
|
+
path: "/hannah.v1.HannahService/UpdateConfig",
|
|
437
|
+
requestStream: false,
|
|
438
|
+
responseStream: false,
|
|
439
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateConfigRequest.encode(value).finish()),
|
|
440
|
+
requestDeserialize: (value) => control_1.UpdateConfigRequest.decode(value),
|
|
441
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
442
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
443
|
+
},
|
|
444
|
+
/** --- BLE Tags (Admin-UI, #115 — eigenes Modell statt Settings-JSON-Blob) --- */
|
|
445
|
+
getBleTags: {
|
|
446
|
+
path: "/hannah.v1.HannahService/GetBleTags",
|
|
447
|
+
requestStream: false,
|
|
448
|
+
responseStream: false,
|
|
449
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
450
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
451
|
+
responseSerialize: (value) => Buffer.from(control_1.GetBleTagsResponse.encode(value).finish()),
|
|
452
|
+
responseDeserialize: (value) => control_1.GetBleTagsResponse.decode(value),
|
|
453
|
+
},
|
|
454
|
+
createBleTag: {
|
|
455
|
+
path: "/hannah.v1.HannahService/CreateBleTag",
|
|
456
|
+
requestStream: false,
|
|
457
|
+
responseStream: false,
|
|
458
|
+
requestSerialize: (value) => Buffer.from(control_1.CreateBleTagRequest.encode(value).finish()),
|
|
459
|
+
requestDeserialize: (value) => control_1.CreateBleTagRequest.decode(value),
|
|
460
|
+
responseSerialize: (value) => Buffer.from(control_1.CreateBleTagResponse.encode(value).finish()),
|
|
461
|
+
responseDeserialize: (value) => control_1.CreateBleTagResponse.decode(value),
|
|
462
|
+
},
|
|
463
|
+
updateBleTag: {
|
|
464
|
+
path: "/hannah.v1.HannahService/UpdateBleTag",
|
|
465
|
+
requestStream: false,
|
|
466
|
+
responseStream: false,
|
|
467
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateBleTagRequest.encode(value).finish()),
|
|
468
|
+
requestDeserialize: (value) => control_1.UpdateBleTagRequest.decode(value),
|
|
469
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
470
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
471
|
+
},
|
|
472
|
+
deleteBleTag: {
|
|
473
|
+
path: "/hannah.v1.HannahService/DeleteBleTag",
|
|
474
|
+
requestStream: false,
|
|
475
|
+
responseStream: false,
|
|
476
|
+
requestSerialize: (value) => Buffer.from(control_1.DeleteBleTagRequest.encode(value).finish()),
|
|
477
|
+
requestDeserialize: (value) => control_1.DeleteBleTagRequest.decode(value),
|
|
478
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
479
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
480
|
+
},
|
|
481
|
+
/** --- Presence Sources (Admin-UI, hannah#294 — presence fusion) --- */
|
|
482
|
+
getPresenceSources: {
|
|
483
|
+
path: "/hannah.v1.HannahService/GetPresenceSources",
|
|
484
|
+
requestStream: false,
|
|
485
|
+
responseStream: false,
|
|
486
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
487
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
488
|
+
responseSerialize: (value) => Buffer.from(control_1.GetPresenceSourcesResponse.encode(value).finish()),
|
|
489
|
+
responseDeserialize: (value) => control_1.GetPresenceSourcesResponse.decode(value),
|
|
490
|
+
},
|
|
491
|
+
createPresenceSource: {
|
|
492
|
+
path: "/hannah.v1.HannahService/CreatePresenceSource",
|
|
493
|
+
requestStream: false,
|
|
494
|
+
responseStream: false,
|
|
495
|
+
requestSerialize: (value) => Buffer.from(control_1.CreatePresenceSourceRequest.encode(value).finish()),
|
|
496
|
+
requestDeserialize: (value) => control_1.CreatePresenceSourceRequest.decode(value),
|
|
497
|
+
responseSerialize: (value) => Buffer.from(control_1.CreatePresenceSourceResponse.encode(value).finish()),
|
|
498
|
+
responseDeserialize: (value) => control_1.CreatePresenceSourceResponse.decode(value),
|
|
499
|
+
},
|
|
500
|
+
updatePresenceSource: {
|
|
501
|
+
path: "/hannah.v1.HannahService/UpdatePresenceSource",
|
|
502
|
+
requestStream: false,
|
|
503
|
+
responseStream: false,
|
|
504
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdatePresenceSourceRequest.encode(value).finish()),
|
|
505
|
+
requestDeserialize: (value) => control_1.UpdatePresenceSourceRequest.decode(value),
|
|
506
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
507
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
508
|
+
},
|
|
509
|
+
deletePresenceSource: {
|
|
510
|
+
path: "/hannah.v1.HannahService/DeletePresenceSource",
|
|
511
|
+
requestStream: false,
|
|
512
|
+
responseStream: false,
|
|
513
|
+
requestSerialize: (value) => Buffer.from(control_1.DeletePresenceSourceRequest.encode(value).finish()),
|
|
514
|
+
requestDeserialize: (value) => control_1.DeletePresenceSourceRequest.decode(value),
|
|
515
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
516
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
517
|
+
},
|
|
518
|
+
/** --- Cars (Admin-UI, #115 — eigenes Modell + user_to_car-Pivot statt Settings-JSON-Blob) --- */
|
|
519
|
+
getCars: {
|
|
520
|
+
path: "/hannah.v1.HannahService/GetCars",
|
|
521
|
+
requestStream: false,
|
|
522
|
+
responseStream: false,
|
|
523
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
524
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
525
|
+
responseSerialize: (value) => Buffer.from(control_1.GetCarsResponse.encode(value).finish()),
|
|
526
|
+
responseDeserialize: (value) => control_1.GetCarsResponse.decode(value),
|
|
527
|
+
},
|
|
528
|
+
createCar: {
|
|
529
|
+
path: "/hannah.v1.HannahService/CreateCar",
|
|
530
|
+
requestStream: false,
|
|
531
|
+
responseStream: false,
|
|
532
|
+
requestSerialize: (value) => Buffer.from(control_1.CreateCarRequest.encode(value).finish()),
|
|
533
|
+
requestDeserialize: (value) => control_1.CreateCarRequest.decode(value),
|
|
534
|
+
responseSerialize: (value) => Buffer.from(control_1.CreateCarResponse.encode(value).finish()),
|
|
535
|
+
responseDeserialize: (value) => control_1.CreateCarResponse.decode(value),
|
|
536
|
+
},
|
|
537
|
+
updateCar: {
|
|
538
|
+
path: "/hannah.v1.HannahService/UpdateCar",
|
|
539
|
+
requestStream: false,
|
|
540
|
+
responseStream: false,
|
|
541
|
+
requestSerialize: (value) => Buffer.from(control_1.UpdateCarRequest.encode(value).finish()),
|
|
542
|
+
requestDeserialize: (value) => control_1.UpdateCarRequest.decode(value),
|
|
543
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
544
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
545
|
+
},
|
|
546
|
+
deleteCar: {
|
|
547
|
+
path: "/hannah.v1.HannahService/DeleteCar",
|
|
548
|
+
requestStream: false,
|
|
549
|
+
responseStream: false,
|
|
550
|
+
requestSerialize: (value) => Buffer.from(control_1.DeleteCarRequest.encode(value).finish()),
|
|
551
|
+
requestDeserialize: (value) => control_1.DeleteCarRequest.decode(value),
|
|
552
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
553
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
554
|
+
},
|
|
555
|
+
/**
|
|
556
|
+
* --- Car state (Live-VW-Connect-Status, unabhängig von der Car-Konfiguration oben) ---
|
|
557
|
+
* Returns the current cached car state (available=false if no data received yet).
|
|
558
|
+
*/
|
|
559
|
+
getCarState: {
|
|
560
|
+
path: "/hannah.v1.HannahService/GetCarState",
|
|
561
|
+
requestStream: false,
|
|
562
|
+
responseStream: false,
|
|
563
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
564
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
565
|
+
responseSerialize: (value) => Buffer.from(car_state_1.CarStateResponse.encode(value).finish()),
|
|
566
|
+
responseDeserialize: (value) => car_state_1.CarStateResponse.decode(value),
|
|
567
|
+
},
|
|
568
|
+
/** Returns all tracked car states (one per configured car). */
|
|
569
|
+
getAllCarStates: {
|
|
570
|
+
path: "/hannah.v1.HannahService/GetAllCarStates",
|
|
571
|
+
requestStream: false,
|
|
572
|
+
responseStream: false,
|
|
573
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
574
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
575
|
+
responseSerialize: (value) => Buffer.from(car_state_1.GetAllCarStatesResponse.encode(value).finish()),
|
|
576
|
+
responseDeserialize: (value) => car_state_1.GetAllCarStatesResponse.decode(value),
|
|
577
|
+
},
|
|
578
|
+
/**
|
|
579
|
+
* --- Event stream ---
|
|
580
|
+
* Opens a server-side stream; Hannah pushes events as they occur.
|
|
581
|
+
* Pass event_types to filter (empty = all events).
|
|
582
|
+
* Known event types: "car.parked", "resident.arrived", "resident.departed", "satellite.firmware"
|
|
583
|
+
*/
|
|
584
|
+
subscribeEvents: {
|
|
585
|
+
path: "/hannah.v1.HannahService/SubscribeEvents",
|
|
586
|
+
requestStream: false,
|
|
587
|
+
responseStream: true,
|
|
588
|
+
requestSerialize: (value) => Buffer.from(event_stream_1.EventFilter.encode(value).finish()),
|
|
589
|
+
requestDeserialize: (value) => event_stream_1.EventFilter.decode(value),
|
|
590
|
+
responseSerialize: (value) => Buffer.from(event_stream_1.HannahEvent.encode(value).finish()),
|
|
591
|
+
responseDeserialize: (value) => event_stream_1.HannahEvent.decode(value),
|
|
592
|
+
},
|
|
593
|
+
/**
|
|
594
|
+
* --- Firmware Manager ---
|
|
595
|
+
* Trigger an immediate OTA update for a satellite (bypasses residents check).
|
|
596
|
+
*/
|
|
597
|
+
triggerFirmwareUpdate: {
|
|
598
|
+
path: "/hannah.v1.HannahService/TriggerFirmwareUpdate",
|
|
599
|
+
requestStream: false,
|
|
600
|
+
responseStream: false,
|
|
601
|
+
requestSerialize: (value) => Buffer.from(event_stream_1.TriggerFirmwareUpdateRequest.encode(value).finish()),
|
|
602
|
+
requestDeserialize: (value) => event_stream_1.TriggerFirmwareUpdateRequest.decode(value),
|
|
603
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
604
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
605
|
+
},
|
|
606
|
+
/**
|
|
607
|
+
* Trigger an ordered remote restart (esp_restart()) of a satellite over MQTT.
|
|
608
|
+
* Diagnostic/rejuvenation tool for suspected resource exhaustion (heap fragmentation
|
|
609
|
+
* after long uptime) — works even when the satellite's OTA/webserver no longer
|
|
610
|
+
* respond, since MQTT stays alive in that failure mode.
|
|
611
|
+
*/
|
|
612
|
+
triggerSatelliteRestart: {
|
|
613
|
+
path: "/hannah.v1.HannahService/TriggerSatelliteRestart",
|
|
614
|
+
requestStream: false,
|
|
615
|
+
responseStream: false,
|
|
616
|
+
requestSerialize: (value) => Buffer.from(event_stream_1.TriggerSatelliteRestartRequest.encode(value).finish()),
|
|
617
|
+
requestDeserialize: (value) => event_stream_1.TriggerSatelliteRestartRequest.decode(value),
|
|
618
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
619
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
620
|
+
},
|
|
621
|
+
/**
|
|
622
|
+
* --- Wakeword Capture ---
|
|
623
|
+
* Put a satellite in audio-capture mode for wakeword training data collection.
|
|
624
|
+
* While captured: wakeword detection is suspended, speaker is muted, DND is active.
|
|
625
|
+
* Hannah relays raw PCM chunks from the satellite to the collector via StreamSatelliteAudio.
|
|
626
|
+
* The stream stays open until the collector disconnects; Hannah then auto-releases the satellite.
|
|
627
|
+
*/
|
|
628
|
+
requestSatelliteCapture: {
|
|
629
|
+
path: "/hannah.v1.HannahService/RequestSatelliteCapture",
|
|
630
|
+
requestStream: false,
|
|
631
|
+
responseStream: false,
|
|
632
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.SatelliteCaptureRequest.encode(value).finish()),
|
|
633
|
+
requestDeserialize: (value) => wakeword_capture_1.SatelliteCaptureRequest.decode(value),
|
|
634
|
+
responseSerialize: (value) => Buffer.from(wakeword_capture_1.SatelliteCaptureResponse.encode(value).finish()),
|
|
635
|
+
responseDeserialize: (value) => wakeword_capture_1.SatelliteCaptureResponse.decode(value),
|
|
636
|
+
},
|
|
637
|
+
releaseSatelliteCapture: {
|
|
638
|
+
path: "/hannah.v1.HannahService/ReleaseSatelliteCapture",
|
|
639
|
+
requestStream: false,
|
|
640
|
+
responseStream: false,
|
|
641
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.SatelliteCaptureRequest.encode(value).finish()),
|
|
642
|
+
requestDeserialize: (value) => wakeword_capture_1.SatelliteCaptureRequest.decode(value),
|
|
643
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
644
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
645
|
+
},
|
|
646
|
+
streamSatelliteAudio: {
|
|
647
|
+
path: "/hannah.v1.HannahService/StreamSatelliteAudio",
|
|
648
|
+
requestStream: false,
|
|
649
|
+
responseStream: true,
|
|
650
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.SatelliteCaptureRequest.encode(value).finish()),
|
|
651
|
+
requestDeserialize: (value) => wakeword_capture_1.SatelliteCaptureRequest.decode(value),
|
|
652
|
+
responseSerialize: (value) => Buffer.from(wakeword_capture_1.SatelliteAudioChunk.encode(value).finish()),
|
|
653
|
+
responseDeserialize: (value) => wakeword_capture_1.SatelliteAudioChunk.decode(value),
|
|
654
|
+
},
|
|
655
|
+
/**
|
|
656
|
+
* Play a plink sound on the satellite, then hold virtual PTT for record_duration seconds.
|
|
657
|
+
* Returns after PTT is released — Collector calls this in a loop for guided hey-hannah collection.
|
|
658
|
+
*/
|
|
659
|
+
triggerPlink: {
|
|
660
|
+
path: "/hannah.v1.HannahService/TriggerPlink",
|
|
661
|
+
requestStream: false,
|
|
662
|
+
responseStream: false,
|
|
663
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.TriggerPlinkRequest.encode(value).finish()),
|
|
664
|
+
requestDeserialize: (value) => wakeword_capture_1.TriggerPlinkRequest.decode(value),
|
|
665
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
666
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
667
|
+
},
|
|
668
|
+
/**
|
|
669
|
+
* Bidirectional stream between the Collector and Hannah Core, analogous to TimerConnect.
|
|
670
|
+
* The Collector initiates and holds the connection open; Hannah pushes CaptureCommands
|
|
671
|
+
* down to start/stop satellite captures instead of the Collector polling for them.
|
|
672
|
+
*/
|
|
673
|
+
collectorConnect: {
|
|
674
|
+
path: "/hannah.v1.HannahService/CollectorConnect",
|
|
675
|
+
requestStream: true,
|
|
676
|
+
responseStream: true,
|
|
677
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.CollectorMessage.encode(value).finish()),
|
|
678
|
+
requestDeserialize: (value) => wakeword_capture_1.CollectorMessage.decode(value),
|
|
679
|
+
responseSerialize: (value) => Buffer.from(wakeword_capture_1.CaptureCommand.encode(value).finish()),
|
|
680
|
+
responseDeserialize: (value) => wakeword_capture_1.CaptureCommand.decode(value),
|
|
681
|
+
},
|
|
682
|
+
/**
|
|
683
|
+
* Unary trigger for external callers (e.g. WebUI) that can't hold a CollectorConnect
|
|
684
|
+
* stream themselves — Hannah relays the command over its own CollectorConnect stream
|
|
685
|
+
* to the connected Collector. Fails with ok=false if no Collector is connected.
|
|
686
|
+
*/
|
|
687
|
+
triggerCollectorCapture: {
|
|
688
|
+
path: "/hannah.v1.HannahService/TriggerCollectorCapture",
|
|
689
|
+
requestStream: false,
|
|
690
|
+
responseStream: false,
|
|
691
|
+
requestSerialize: (value) => Buffer.from(wakeword_capture_1.CaptureCommand.encode(value).finish()),
|
|
692
|
+
requestDeserialize: (value) => wakeword_capture_1.CaptureCommand.decode(value),
|
|
693
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
694
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
695
|
+
},
|
|
696
|
+
/**
|
|
697
|
+
* --- Satellite Proxy (Go gRPC proxy) ---
|
|
698
|
+
* Bidirectional keepalive stream. Proxy sends heartbeats; Hannah sends TTS
|
|
699
|
+
* audio commands back (for announcements). While this stream is open, Hannah
|
|
700
|
+
* disables its own UDP server. If the stream drops, Hannah re-enables UDP.
|
|
701
|
+
*/
|
|
702
|
+
registerProxy: {
|
|
703
|
+
path: "/hannah.v1.HannahService/RegisterProxy",
|
|
704
|
+
requestStream: true,
|
|
705
|
+
responseStream: true,
|
|
706
|
+
requestSerialize: (value) => Buffer.from(satellite_proxy_1.ProxyHeartbeat.encode(value).finish()),
|
|
707
|
+
requestDeserialize: (value) => satellite_proxy_1.ProxyHeartbeat.decode(value),
|
|
708
|
+
responseSerialize: (value) => Buffer.from(satellite_proxy_1.ProxyCommand.encode(value).finish()),
|
|
709
|
+
responseDeserialize: (value) => satellite_proxy_1.ProxyCommand.decode(value),
|
|
710
|
+
},
|
|
711
|
+
/**
|
|
712
|
+
* Submit a complete satellite audio session for processing.
|
|
713
|
+
* Hannah runs the full pipeline (STT → NLU → TTS → MQTT status) and returns
|
|
714
|
+
* the result so the proxy can play TTS audio back to the satellite.
|
|
715
|
+
*/
|
|
716
|
+
submitSatelliteAudio: {
|
|
717
|
+
path: "/hannah.v1.HannahService/SubmitSatelliteAudio",
|
|
718
|
+
requestStream: false,
|
|
719
|
+
responseStream: false,
|
|
720
|
+
requestSerialize: (value) => Buffer.from(satellite_proxy_1.SubmitSatelliteAudioRequest.encode(value).finish()),
|
|
721
|
+
requestDeserialize: (value) => satellite_proxy_1.SubmitSatelliteAudioRequest.decode(value),
|
|
722
|
+
responseSerialize: (value) => Buffer.from(satellite_proxy_1.SubmitSatelliteAudioResponse.encode(value).finish()),
|
|
723
|
+
responseDeserialize: (value) => satellite_proxy_1.SubmitSatelliteAudioResponse.decode(value),
|
|
724
|
+
},
|
|
725
|
+
/**
|
|
726
|
+
* Notify Hannah that a satellite registered or disconnected via the proxy.
|
|
727
|
+
* Hannah updates its room registry (hannah/rooms MQTT) immediately.
|
|
728
|
+
*/
|
|
729
|
+
notifySatelliteRegistered: {
|
|
730
|
+
path: "/hannah.v1.HannahService/NotifySatelliteRegistered",
|
|
731
|
+
requestStream: false,
|
|
732
|
+
responseStream: false,
|
|
733
|
+
requestSerialize: (value) => Buffer.from(satellite_proxy_1.SatelliteRegistration.encode(value).finish()),
|
|
734
|
+
requestDeserialize: (value) => satellite_proxy_1.SatelliteRegistration.decode(value),
|
|
735
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
736
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
737
|
+
},
|
|
738
|
+
notifySatelliteGone: {
|
|
739
|
+
path: "/hannah.v1.HannahService/NotifySatelliteGone",
|
|
740
|
+
requestStream: false,
|
|
741
|
+
responseStream: false,
|
|
742
|
+
requestSerialize: (value) => Buffer.from(satellite_proxy_1.SatelliteRegistration.encode(value).finish()),
|
|
743
|
+
requestDeserialize: (value) => satellite_proxy_1.SatelliteRegistration.decode(value),
|
|
744
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
745
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
746
|
+
},
|
|
747
|
+
/**
|
|
748
|
+
* --- Satellite Provisioning ---
|
|
749
|
+
* Called by the ioBroker adapter before WebFlash to pre-register a seed + display name + room.
|
|
750
|
+
* When the satellite first connects with that seed, Hannah links serial → pre-config and clears the seed.
|
|
751
|
+
*/
|
|
752
|
+
provisionSatellite: {
|
|
753
|
+
path: "/hannah.v1.HannahService/ProvisionSatellite",
|
|
754
|
+
requestStream: false,
|
|
755
|
+
responseStream: false,
|
|
756
|
+
requestSerialize: (value) => Buffer.from(satellite_provisioning_1.ProvisionSatelliteRequest.encode(value).finish()),
|
|
757
|
+
requestDeserialize: (value) => satellite_provisioning_1.ProvisionSatelliteRequest.decode(value),
|
|
758
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
759
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
760
|
+
},
|
|
761
|
+
/**
|
|
762
|
+
* --- Speaker Enrollment ---
|
|
763
|
+
* Trigger a guided voice-enrollment dialog for user_id at satellite_id (hannah#8);
|
|
764
|
+
* Core orchestrates the dialog itself. EnrollVoiceprint stays available as the
|
|
765
|
+
* low-level "store one already-captured sample" call — kept for now (additive,
|
|
766
|
+
* no hard cut) until hannah#8 confirms Core no longer needs it as an external RPC.
|
|
767
|
+
*/
|
|
768
|
+
startVoiceEnrollment: {
|
|
769
|
+
path: "/hannah.v1.HannahService/StartVoiceEnrollment",
|
|
770
|
+
requestStream: false,
|
|
771
|
+
responseStream: false,
|
|
772
|
+
requestSerialize: (value) => Buffer.from(speaker_enrollment_1.StartVoiceEnrollmentRequest.encode(value).finish()),
|
|
773
|
+
requestDeserialize: (value) => speaker_enrollment_1.StartVoiceEnrollmentRequest.decode(value),
|
|
774
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
775
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
776
|
+
},
|
|
777
|
+
enrollVoiceprint: {
|
|
778
|
+
path: "/hannah.v1.HannahService/EnrollVoiceprint",
|
|
779
|
+
requestStream: false,
|
|
780
|
+
responseStream: false,
|
|
781
|
+
requestSerialize: (value) => Buffer.from(speaker_enrollment_1.EnrollVoiceprintRequest.encode(value).finish()),
|
|
782
|
+
requestDeserialize: (value) => speaker_enrollment_1.EnrollVoiceprintRequest.decode(value),
|
|
783
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
784
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
785
|
+
},
|
|
786
|
+
/**
|
|
787
|
+
* --- Timer Service ---
|
|
788
|
+
* Bidirectional stream between the Hannah Timer Service and Hannah Core.
|
|
789
|
+
* The Timer Service initiates the connection; if Hannah restarts, the service reconnects.
|
|
790
|
+
* Hannah sends timer commands (create, cancel, list); the service fires events when timers expire.
|
|
791
|
+
*/
|
|
792
|
+
timerConnect: {
|
|
793
|
+
path: "/hannah.v1.HannahService/TimerConnect",
|
|
794
|
+
requestStream: true,
|
|
795
|
+
responseStream: true,
|
|
796
|
+
requestSerialize: (value) => Buffer.from(timer_service_1.TimerMessage.encode(value).finish()),
|
|
797
|
+
requestDeserialize: (value) => timer_service_1.TimerMessage.decode(value),
|
|
798
|
+
responseSerialize: (value) => Buffer.from(timer_service_1.TimerCommand.encode(value).finish()),
|
|
799
|
+
responseDeserialize: (value) => timer_service_1.TimerCommand.decode(value),
|
|
800
|
+
},
|
|
801
|
+
/**
|
|
802
|
+
* --- Timer Admin ---
|
|
803
|
+
* Query and cancel timers independent of the TimerConnect stream — e.g. for an
|
|
804
|
+
* Admin-UI or Telegram bot listing/cancelling a user's active timers.
|
|
805
|
+
*/
|
|
806
|
+
getTimers: {
|
|
807
|
+
path: "/hannah.v1.HannahService/GetTimers",
|
|
808
|
+
requestStream: false,
|
|
809
|
+
responseStream: false,
|
|
810
|
+
requestSerialize: (value) => Buffer.from(timer_admin_1.GetTimersRequest.encode(value).finish()),
|
|
811
|
+
requestDeserialize: (value) => timer_admin_1.GetTimersRequest.decode(value),
|
|
812
|
+
responseSerialize: (value) => Buffer.from(timer_admin_1.GetTimersResponse.encode(value).finish()),
|
|
813
|
+
responseDeserialize: (value) => timer_admin_1.GetTimersResponse.decode(value),
|
|
814
|
+
},
|
|
815
|
+
deleteTimer: {
|
|
816
|
+
path: "/hannah.v1.HannahService/DeleteTimer",
|
|
817
|
+
requestStream: false,
|
|
818
|
+
responseStream: false,
|
|
819
|
+
requestSerialize: (value) => Buffer.from(timer_admin_1.DeleteTimerRequest.encode(value).finish()),
|
|
820
|
+
requestDeserialize: (value) => timer_admin_1.DeleteTimerRequest.decode(value),
|
|
821
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
822
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
823
|
+
},
|
|
824
|
+
/**
|
|
825
|
+
* --- ioBroker Agent ---
|
|
826
|
+
* Single bidirectional stream between the HannahAgent ioBroker adapter and Hannah Core.
|
|
827
|
+
* The adapter pushes state updates (device states, presence, text commands);
|
|
828
|
+
* Hannah pushes device-control commands and on-demand state-subscription requests back.
|
|
829
|
+
* The adapter initiates the connection; if Hannah restarts, the adapter reconnects.
|
|
830
|
+
*/
|
|
831
|
+
agentConnect: {
|
|
832
|
+
path: "/hannah.v1.HannahService/AgentConnect",
|
|
833
|
+
requestStream: true,
|
|
834
|
+
responseStream: true,
|
|
835
|
+
requestSerialize: (value) => Buffer.from(agent_1.AgentMessage.encode(value).finish()),
|
|
836
|
+
requestDeserialize: (value) => agent_1.AgentMessage.decode(value),
|
|
837
|
+
responseSerialize: (value) => Buffer.from(agent_1.AgentCommand.encode(value).finish()),
|
|
838
|
+
responseDeserialize: (value) => agent_1.AgentCommand.decode(value),
|
|
839
|
+
},
|
|
840
|
+
/**
|
|
841
|
+
* --- Automations ---
|
|
842
|
+
* Bidirectional stream for external automation services (e.g. telegram_autoresponder).
|
|
843
|
+
* The service sends an AutomationRegister identifying itself, then Hannah replies with
|
|
844
|
+
* an AutomationSnapshot (all users with it currently enabled) followed by live
|
|
845
|
+
* AutomationStateChanged deltas as users toggle it via SetAutomation/voice.
|
|
846
|
+
* Chosen over SubscribeEvents so a reconnecting service always gets a fresh snapshot
|
|
847
|
+
* instead of missing state changes that happened while it was offline.
|
|
848
|
+
*/
|
|
849
|
+
automationConnect: {
|
|
850
|
+
path: "/hannah.v1.HannahService/AutomationConnect",
|
|
851
|
+
requestStream: true,
|
|
852
|
+
responseStream: true,
|
|
853
|
+
requestSerialize: (value) => Buffer.from(automation_1.AutomationMessage.encode(value).finish()),
|
|
854
|
+
requestDeserialize: (value) => automation_1.AutomationMessage.decode(value),
|
|
855
|
+
responseSerialize: (value) => Buffer.from(automation_1.AutomationCommand.encode(value).finish()),
|
|
856
|
+
responseDeserialize: (value) => automation_1.AutomationCommand.decode(value),
|
|
857
|
+
},
|
|
858
|
+
/**
|
|
859
|
+
* --- Channels ---
|
|
860
|
+
* Bidirectional stream for channel adapters (e.g. the Telegram service). The adapter
|
|
861
|
+
* sends a ChannelRegister and keeps the stream open; it counts as available exactly as
|
|
862
|
+
* long as the stream is open. A second registration for the same service replaces the
|
|
863
|
+
* first. Link tokens (CreateLinkToken) are redeemed over this stream.
|
|
864
|
+
*/
|
|
865
|
+
channelConnect: {
|
|
866
|
+
path: "/hannah.v1.HannahService/ChannelConnect",
|
|
867
|
+
requestStream: true,
|
|
868
|
+
responseStream: true,
|
|
869
|
+
requestSerialize: (value) => Buffer.from(channel_1.ChannelMessage.encode(value).finish()),
|
|
870
|
+
requestDeserialize: (value) => channel_1.ChannelMessage.decode(value),
|
|
871
|
+
responseSerialize: (value) => Buffer.from(channel_1.ChannelCommand.encode(value).finish()),
|
|
872
|
+
responseDeserialize: (value) => channel_1.ChannelCommand.decode(value),
|
|
873
|
+
},
|
|
874
|
+
/** Currently connected channel adapters and whether they support account linking. */
|
|
875
|
+
getChannels: {
|
|
876
|
+
path: "/hannah.v1.HannahService/GetChannels",
|
|
877
|
+
requestStream: false,
|
|
878
|
+
responseStream: false,
|
|
879
|
+
requestSerialize: (value) => Buffer.from(shared_1.Empty.encode(value).finish()),
|
|
880
|
+
requestDeserialize: (value) => shared_1.Empty.decode(value),
|
|
881
|
+
responseSerialize: (value) => Buffer.from(channel_1.GetChannelsResponse.encode(value).finish()),
|
|
882
|
+
responseDeserialize: (value) => channel_1.GetChannelsResponse.decode(value),
|
|
883
|
+
},
|
|
884
|
+
/**
|
|
885
|
+
* --- Infrastructure ---
|
|
886
|
+
* Service discovery for components: Hannah sends an InfrastructureSnapshot of all
|
|
887
|
+
* currently available infrastructure services (e.g. the log collector) right after
|
|
888
|
+
* subscribing, followed by ServiceAvailable/ServiceUnavailable deltas.
|
|
889
|
+
*/
|
|
890
|
+
subscribeInfrastructure: {
|
|
891
|
+
path: "/hannah.v1.HannahService/SubscribeInfrastructure",
|
|
892
|
+
requestStream: false,
|
|
893
|
+
responseStream: true,
|
|
894
|
+
requestSerialize: (value) => Buffer.from(infrastructure_1.InfrastructureFilter.encode(value).finish()),
|
|
895
|
+
requestDeserialize: (value) => infrastructure_1.InfrastructureFilter.decode(value),
|
|
896
|
+
responseSerialize: (value) => Buffer.from(infrastructure_1.InfrastructureMessage.encode(value).finish()),
|
|
897
|
+
responseDeserialize: (value) => infrastructure_1.InfrastructureMessage.decode(value),
|
|
898
|
+
},
|
|
899
|
+
/**
|
|
900
|
+
* Bidirectional stream for the log collector. The collector sends a LogCollectorRegister
|
|
901
|
+
* and keeps the stream open; it counts as available exactly as long as the stream is
|
|
902
|
+
* open, and a second registration for the same instance replaces the first (same
|
|
903
|
+
* semantics as ChannelConnect). Not related to CollectorConnect (wakeword capture).
|
|
904
|
+
*/
|
|
905
|
+
logCollectorConnect: {
|
|
906
|
+
path: "/hannah.v1.HannahService/LogCollectorConnect",
|
|
907
|
+
requestStream: true,
|
|
908
|
+
responseStream: true,
|
|
909
|
+
requestSerialize: (value) => Buffer.from(infrastructure_1.LogCollectorMessage.encode(value).finish()),
|
|
910
|
+
requestDeserialize: (value) => infrastructure_1.LogCollectorMessage.decode(value),
|
|
911
|
+
responseSerialize: (value) => Buffer.from(infrastructure_1.LogCollectorCommand.encode(value).finish()),
|
|
912
|
+
responseDeserialize: (value) => infrastructure_1.LogCollectorCommand.decode(value),
|
|
913
|
+
},
|
|
914
|
+
/**
|
|
915
|
+
* --- Activity Log ---
|
|
916
|
+
* Read access to the Activity Log (#220) for external consumers (WebUI). List returns
|
|
917
|
+
* full entry detail inline (transcript, intent + intent_meta, answer text) with
|
|
918
|
+
* cursor-based pagination; audio is fetched separately, decoded server-side from the
|
|
919
|
+
* stored WAV and streamed as raw PCM chunks.
|
|
920
|
+
*/
|
|
921
|
+
listActivityLog: {
|
|
922
|
+
path: "/hannah.v1.HannahService/ListActivityLog",
|
|
923
|
+
requestStream: false,
|
|
924
|
+
responseStream: false,
|
|
925
|
+
requestSerialize: (value) => Buffer.from(activity_log_1.ListActivityLogRequest.encode(value).finish()),
|
|
926
|
+
requestDeserialize: (value) => activity_log_1.ListActivityLogRequest.decode(value),
|
|
927
|
+
responseSerialize: (value) => Buffer.from(activity_log_1.ListActivityLogResponse.encode(value).finish()),
|
|
928
|
+
responseDeserialize: (value) => activity_log_1.ListActivityLogResponse.decode(value),
|
|
929
|
+
},
|
|
930
|
+
streamActivityAudio: {
|
|
931
|
+
path: "/hannah.v1.HannahService/StreamActivityAudio",
|
|
932
|
+
requestStream: false,
|
|
933
|
+
responseStream: true,
|
|
934
|
+
requestSerialize: (value) => Buffer.from(activity_log_1.StreamActivityAudioRequest.encode(value).finish()),
|
|
935
|
+
requestDeserialize: (value) => activity_log_1.StreamActivityAudioRequest.decode(value),
|
|
936
|
+
responseSerialize: (value) => Buffer.from(activity_log_1.ActivityAudioChunk.encode(value).finish()),
|
|
937
|
+
responseDeserialize: (value) => activity_log_1.ActivityAudioChunk.decode(value),
|
|
938
|
+
},
|
|
939
|
+
/** --- Messages (passive per-user mailbox, third notification type) --- */
|
|
940
|
+
createMessage: {
|
|
941
|
+
path: "/hannah.v1.HannahService/CreateMessage",
|
|
942
|
+
requestStream: false,
|
|
943
|
+
responseStream: false,
|
|
944
|
+
requestSerialize: (value) => Buffer.from(messages_1.CreateMessageRequest.encode(value).finish()),
|
|
945
|
+
requestDeserialize: (value) => messages_1.CreateMessageRequest.decode(value),
|
|
946
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
947
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
948
|
+
},
|
|
949
|
+
listMessages: {
|
|
950
|
+
path: "/hannah.v1.HannahService/ListMessages",
|
|
951
|
+
requestStream: false,
|
|
952
|
+
responseStream: false,
|
|
953
|
+
requestSerialize: (value) => Buffer.from(messages_1.ListMessagesRequest.encode(value).finish()),
|
|
954
|
+
requestDeserialize: (value) => messages_1.ListMessagesRequest.decode(value),
|
|
955
|
+
responseSerialize: (value) => Buffer.from(messages_1.ListMessagesResponse.encode(value).finish()),
|
|
956
|
+
responseDeserialize: (value) => messages_1.ListMessagesResponse.decode(value),
|
|
957
|
+
},
|
|
958
|
+
deleteMessage: {
|
|
959
|
+
path: "/hannah.v1.HannahService/DeleteMessage",
|
|
960
|
+
requestStream: false,
|
|
961
|
+
responseStream: false,
|
|
962
|
+
requestSerialize: (value) => Buffer.from(messages_1.DeleteMessageRequest.encode(value).finish()),
|
|
963
|
+
requestDeserialize: (value) => messages_1.DeleteMessageRequest.decode(value),
|
|
964
|
+
responseSerialize: (value) => Buffer.from(shared_1.StatusResponse.encode(value).finish()),
|
|
965
|
+
responseDeserialize: (value) => shared_1.StatusResponse.decode(value),
|
|
966
|
+
},
|
|
967
|
+
};
|
|
968
|
+
exports.HannahServiceClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.HannahServiceService, "hannah.v1.HannahService");
|