@coffeerunhobby/mcp-ha-connect 2.1.1 → 2.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.
Files changed (106) hide show
  1. package/README.md +23 -5
  2. package/dist/config.d.ts +4 -0
  3. package/dist/config.js +6 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/haClient/automations.d.ts +18 -2
  6. package/dist/haClient/automations.js +25 -7
  7. package/dist/haClient/automations.js.map +1 -1
  8. package/dist/haClient/events.d.ts +60 -7
  9. package/dist/haClient/events.js +252 -47
  10. package/dist/haClient/events.js.map +1 -1
  11. package/dist/haClient/index.d.ts +2 -1
  12. package/dist/haClient/index.js +4 -3
  13. package/dist/haClient/index.js.map +1 -1
  14. package/dist/haClient/wsCommand.d.ts +16 -0
  15. package/dist/haClient/wsCommand.js +36 -0
  16. package/dist/haClient/wsCommand.js.map +1 -0
  17. package/dist/omadaClient/client.d.ts +33 -1
  18. package/dist/omadaClient/client.js +61 -2
  19. package/dist/omadaClient/client.js.map +1 -1
  20. package/dist/omadaClient/index.d.ts +7 -0
  21. package/dist/omadaClient/index.js +6 -0
  22. package/dist/omadaClient/index.js.map +1 -1
  23. package/dist/omadaClient/request.d.ts +5 -0
  24. package/dist/omadaClient/request.js +11 -2
  25. package/dist/omadaClient/request.js.map +1 -1
  26. package/dist/ownerQuestions/service.d.ts +167 -0
  27. package/dist/ownerQuestions/service.js +439 -0
  28. package/dist/ownerQuestions/service.js.map +1 -0
  29. package/dist/server/common.d.ts +3 -0
  30. package/dist/server/common.js +2 -1
  31. package/dist/server/common.js.map +1 -1
  32. package/dist/server/http.js +30 -6
  33. package/dist/server/http.js.map +1 -1
  34. package/dist/server/stream.d.ts +2 -0
  35. package/dist/server/stream.js +2 -1
  36. package/dist/server/stream.js.map +1 -1
  37. package/dist/tools/common.d.ts +1 -1
  38. package/dist/tools/common.js +9 -2
  39. package/dist/tools/common.js.map +1 -1
  40. package/dist/tools/homeassistant/askOwner.d.ts +29 -0
  41. package/dist/tools/homeassistant/askOwner.js +85 -0
  42. package/dist/tools/homeassistant/askOwner.js.map +1 -0
  43. package/dist/tools/homeassistant/getAutomationTrace.d.ts +5 -0
  44. package/dist/tools/homeassistant/getAutomationTrace.js +10 -5
  45. package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -1
  46. package/dist/tools/index.d.ts +3 -0
  47. package/dist/tools/index.js +5 -1
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/tools/omada/blockClient.js +3 -1
  50. package/dist/tools/omada/blockClient.js.map +1 -1
  51. package/dist/tools/omada/deleteClient.d.ts +3 -0
  52. package/dist/tools/omada/deleteClient.js +15 -0
  53. package/dist/tools/omada/deleteClient.js.map +1 -0
  54. package/dist/tools/omada/index.js +7 -2
  55. package/dist/tools/omada/index.js.map +1 -1
  56. package/dist/tools/omada/listBlockedClients.d.ts +3 -0
  57. package/dist/tools/omada/listBlockedClients.js +9 -0
  58. package/dist/tools/omada/listBlockedClients.js.map +1 -0
  59. package/dist/tools/omada/namespace.js +17 -0
  60. package/dist/tools/omada/namespace.js.map +1 -1
  61. package/dist/utils/plainText.d.ts +22 -0
  62. package/dist/utils/plainText.js +39 -0
  63. package/dist/utils/plainText.js.map +1 -0
  64. package/dist/utils/redact.d.ts +21 -0
  65. package/dist/utils/redact.js +53 -0
  66. package/dist/utils/redact.js.map +1 -0
  67. package/dist/version.d.ts +1 -1
  68. package/dist/version.js +1 -1
  69. package/docs/CHANGELOG.md +24 -0
  70. package/openapi.json +1 -1
  71. package/package.json +1 -1
  72. package/src/config.ts +10 -0
  73. package/src/haClient/automations.ts +39 -7
  74. package/src/haClient/events.ts +289 -56
  75. package/src/haClient/index.ts +10 -4
  76. package/src/haClient/wsCommand.ts +44 -0
  77. package/src/omadaClient/client.ts +82 -4
  78. package/src/omadaClient/index.ts +9 -1
  79. package/src/omadaClient/request.ts +13 -2
  80. package/src/ownerQuestions/service.ts +536 -0
  81. package/src/server/common.ts +5 -1
  82. package/src/server/http.ts +30 -6
  83. package/src/server/stream.ts +4 -1
  84. package/src/tools/common.ts +9 -2
  85. package/src/tools/homeassistant/askOwner.ts +133 -0
  86. package/src/tools/homeassistant/getAutomationTrace.ts +13 -7
  87. package/src/tools/index.ts +8 -1
  88. package/src/tools/omada/blockClient.ts +3 -1
  89. package/src/tools/omada/deleteClient.ts +27 -0
  90. package/src/tools/omada/index.ts +7 -2
  91. package/src/tools/omada/listBlockedClients.ts +17 -0
  92. package/src/tools/omada/namespace.ts +19 -0
  93. package/src/utils/plainText.ts +48 -0
  94. package/src/utils/redact.ts +59 -0
  95. package/src/version.ts +1 -1
  96. package/tests/config.test.ts +12 -0
  97. package/tests/haClient/automationTrace.test.ts +59 -0
  98. package/tests/haClient/automations.test.ts +16 -0
  99. package/tests/haClient/events.test.ts +455 -0
  100. package/tests/haClient/eventsTls.test.ts +52 -0
  101. package/tests/omadaClient/clientBlocks.test.ts +170 -0
  102. package/tests/ownerQuestions/service.test.ts +499 -0
  103. package/tests/ownerQuestions/tools.test.ts +186 -0
  104. package/tests/tools/homeassistant/handlers.test.ts +10 -1
  105. package/tests/tools/omada/graph.test.ts +13 -2
  106. package/tests/utils/redact.test.ts +105 -0
@@ -1,5 +1,5 @@
1
1
  import type { ActiveClientInfo, ClientActivity, ClientBlockStatus, ClientPastConnection, ClientRateLimitSetting, GetClientActivityOptions, ListClientsPastConnectionsOptions, OmadaClientInfo, RateLimitProfile } from '../types/index.js';
2
- import type { RequestHandler } from './request.js';
2
+ import { type RequestHandler } from './request.js';
3
3
  import type { SiteOperations } from './site.js';
4
4
  /**
5
5
  * Client-related operations for the Omada API.
@@ -96,4 +96,36 @@ export declare class ClientOperations {
96
96
  * @returns Status object confirming the client was unblocked
97
97
  */
98
98
  unblockClient(clientMac: string, siteId?: string): Promise<ClientBlockStatus>;
99
+ /**
100
+ * Clients the controller remembers (online or not), with their block state.
101
+ * OperationId: getKnownClients (GET /insight/clients)
102
+ */
103
+ listKnownClients(siteId?: string): Promise<KnownClient[]>;
104
+ /** Known clients that are currently blocked. */
105
+ listBlockedClients(siteId?: string): Promise<KnownClient[]>;
106
+ /**
107
+ * Delete the controller's record of a client: its name, history and block
108
+ * state. Clears an orphaned block that the unblock endpoint can no longer reach.
109
+ * OperationId: deleteClient (DELETE /clients/{clientMac})
110
+ */
111
+ deleteClient(clientMac: string, siteId?: string): Promise<{
112
+ mac: string;
113
+ siteId: string;
114
+ deleted: true;
115
+ }>;
116
+ private findKnownClient;
117
+ }
118
+ /** Omada error code: "This client does not exist." */
119
+ export declare const CLIENT_DOES_NOT_EXIST = -41004;
120
+ /** A known client (KnownClientVO), as GET /insight/clients returns it. */
121
+ export interface KnownClient {
122
+ mac: string;
123
+ name?: string;
124
+ wireless?: boolean;
125
+ guest?: boolean;
126
+ lastSeen?: number;
127
+ block?: boolean;
128
+ [field: string]: unknown;
99
129
  }
130
+ /** "4c:1d:96:8d:37:c7", "4C-1D-96-8D-37-C7" and "4c1d968d37c7" compare equal. */
131
+ export declare function normalizeMac(mac: string): string;
@@ -1,3 +1,4 @@
1
+ import { OmadaApiError } from './request.js';
1
2
  /**
2
3
  * Client-related operations for the Omada API.
3
4
  */
@@ -192,9 +193,67 @@ export class ClientOperations {
192
193
  */
193
194
  async unblockClient(clientMac, siteId) {
194
195
  const resolvedSiteId = this.site.resolveSiteId(siteId);
195
- const response = await this.request.post(this.buildPath(`/sites/${encodeURIComponent(resolvedSiteId)}/clients/${encodeURIComponent(clientMac)}/unblock`));
196
+ try {
197
+ const response = await this.request.post(this.buildPath(`/sites/${encodeURIComponent(resolvedSiteId)}/clients/${encodeURIComponent(clientMac)}/unblock`));
198
+ this.request.ensureSuccess(response);
199
+ return { mac: clientMac, siteId: resolvedSiteId, blocked: false };
200
+ }
201
+ catch (error) {
202
+ // The controller may report this with HTTP 200 or an HTTP error status.
203
+ if (!(error instanceof OmadaApiError) || error.errorCode !== CLIENT_DOES_NOT_EXIST) {
204
+ throw error;
205
+ }
206
+ }
207
+ // The unblock endpoint only knows clients the controller still treats as
208
+ // current; a blocked client cannot reconnect, so after a while it drops
209
+ // out and the API can no longer unblock it. Check the known-clients list.
210
+ const known = await this.findKnownClient(clientMac, resolvedSiteId);
211
+ // Only an explicit block=false proves the client is unblocked; a record
212
+ // without block state proves nothing.
213
+ if (known?.block === false) {
214
+ return { mac: clientMac, siteId: resolvedSiteId, blocked: false };
215
+ }
216
+ throw new Error(known
217
+ ? `Omada's API cannot unblock ${clientMac}: the client is offline and the controller no longer treats it as current. ` +
218
+ 'Unblock it in the Omada web UI (Insights > Known Clients), or remove its record with omada_deleteClient.'
219
+ : `Omada has no record of ${clientMac}, but its access points may still refuse it (an orphaned block). ` +
220
+ 'Try omada_deleteClient, or let the device reconnect by cable so the controller sees it again, then unblock it.');
221
+ }
222
+ /**
223
+ * Clients the controller remembers (online or not), with their block state.
224
+ * OperationId: getKnownClients (GET /insight/clients)
225
+ */
226
+ async listKnownClients(siteId) {
227
+ const resolvedSiteId = this.site.resolveSiteId(siteId);
228
+ return await this.request.fetchPaginated(this.buildPath(`/sites/${encodeURIComponent(resolvedSiteId)}/insight/clients`));
229
+ }
230
+ /** Known clients that are currently blocked. */
231
+ async listBlockedClients(siteId) {
232
+ return (await this.listKnownClients(siteId)).filter((client) => client.block === true);
233
+ }
234
+ /**
235
+ * Delete the controller's record of a client: its name, history and block
236
+ * state. Clears an orphaned block that the unblock endpoint can no longer reach.
237
+ * OperationId: deleteClient (DELETE /clients/{clientMac})
238
+ */
239
+ async deleteClient(clientMac, siteId) {
240
+ const resolvedSiteId = this.site.resolveSiteId(siteId);
241
+ const response = await this.request.request({
242
+ method: 'DELETE',
243
+ url: this.buildPath(`/sites/${encodeURIComponent(resolvedSiteId)}/clients/${encodeURIComponent(clientMac)}`),
244
+ });
196
245
  this.request.ensureSuccess(response);
197
- return { mac: clientMac, siteId: resolvedSiteId, blocked: false };
246
+ return { mac: clientMac, siteId: resolvedSiteId, deleted: true };
247
+ }
248
+ async findKnownClient(clientMac, siteId) {
249
+ const wanted = normalizeMac(clientMac);
250
+ return (await this.listKnownClients(siteId)).find((client) => normalizeMac(client.mac) === wanted);
198
251
  }
199
252
  }
253
+ /** Omada error code: "This client does not exist." */
254
+ export const CLIENT_DOES_NOT_EXIST = -41004;
255
+ /** "4c:1d:96:8d:37:c7", "4C-1D-96-8D-37-C7" and "4c1d968d37c7" compare equal. */
256
+ export function normalizeMac(mac) {
257
+ return mac.replace(/[^0-9a-f]/gi, '').toUpperCase();
258
+ }
200
259
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/omadaClient/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/omadaClient/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ActiveClientInfo, ClientActivity, ClientBlockStatus, ClientPastConnection, ClientRateLimitSetting, GetClientActivityOptions, GetDeviceStatsOptions, GetThreatListOptions, ListClientsPastConnectionsOptions, OmadaClientInfo, OmadaDeviceInfo, OmadaDeviceStats, OmadaSiteSummary, OswStackDetail, PaginatedResult, RateLimitProfile, ThreatInfo } from '../types/index.js';
2
+ import { type KnownClient } from './client.js';
2
3
  import { type SsidEnableResult } from './network.js';
3
4
  import { type RequestOptions } from './request.js';
4
5
  import { type SiteNtpChangeResult } from './site.js';
@@ -48,6 +49,12 @@ export declare class OmadaClient {
48
49
  disableClientRateLimit(clientMac: string, siteId?: string): Promise<ClientRateLimitSetting>;
49
50
  blockClient(clientMac: string, siteId?: string): Promise<ClientBlockStatus>;
50
51
  unblockClient(clientMac: string, siteId?: string): Promise<ClientBlockStatus>;
52
+ listBlockedClients(siteId?: string): Promise<KnownClient[]>;
53
+ deleteClient(clientMac: string, siteId?: string): Promise<{
54
+ mac: string;
55
+ siteId: string;
56
+ deleted: true;
57
+ }>;
51
58
  getThreatList(options: GetThreatListOptions): Promise<PaginatedResult<ThreatInfo>>;
52
59
  getInternetInfo(siteId?: string): Promise<unknown>;
53
60
  getPortForwardingStatus(type: 'User' | 'UPnP', siteId?: string, page?: number, pageSize?: number): Promise<PaginatedResult<unknown>>;
@@ -103,6 +103,12 @@ export class OmadaClient {
103
103
  async unblockClient(clientMac, siteId) {
104
104
  return await this.clientOps.unblockClient(clientMac, siteId);
105
105
  }
106
+ async listBlockedClients(siteId) {
107
+ return await this.clientOps.listBlockedClients(siteId);
108
+ }
109
+ async deleteClient(clientMac, siteId) {
110
+ return await this.clientOps.deleteClient(clientMac, siteId);
111
+ }
106
112
  // Security operations
107
113
  async getThreatList(options) {
108
114
  return await this.securityOps.getThreatList(options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/omadaClient/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/omadaClient/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { OmadaApiResponse } from '../types/index.js';
2
2
  import type { AuthManager } from './auth.js';
3
+ /** An error the Omada controller reported, with its structured errorCode when it gave one. */
4
+ export declare class OmadaApiError extends Error {
5
+ readonly errorCode?: number | undefined;
6
+ constructor(message: string, errorCode?: number | undefined);
7
+ }
3
8
  export interface RequestOptions {
4
9
  method?: string;
5
10
  url: string;
@@ -1,6 +1,15 @@
1
1
  import { logger } from '../utils/logger.js';
2
2
  import { createTlsDispatcher, tlsAwareFetch } from '../utils/tlsDispatcher.js';
3
3
  const DEFAULT_PAGE_SIZE = 200;
4
+ /** An error the Omada controller reported, with its structured errorCode when it gave one. */
5
+ export class OmadaApiError extends Error {
6
+ errorCode;
7
+ constructor(message, errorCode) {
8
+ super(message);
9
+ this.errorCode = errorCode;
10
+ this.name = 'OmadaApiError';
11
+ }
12
+ }
4
13
  /**
5
14
  * HTTP request handler for Omada API calls with authentication and retry logic.
6
15
  */
@@ -138,7 +147,7 @@ export class RequestHandler {
138
147
  if (errorCode !== undefined && errorCode !== 0) {
139
148
  parts.push(`(errorCode ${errorCode})`);
140
149
  }
141
- throw new Error(`Omada API request failed: ${parts.join(' ')}`);
150
+ throw new OmadaApiError(`Omada API request failed: ${parts.join(' ')}`, errorCode);
142
151
  }
143
152
  return responseData;
144
153
  }
@@ -195,7 +204,7 @@ export class RequestHandler {
195
204
  errorCode: response.errorCode,
196
205
  message: response.msg,
197
206
  });
198
- throw new Error(response.msg ?? 'Omada API request failed');
207
+ throw new OmadaApiError(response.msg ?? 'Omada API request failed', response.errorCode);
199
208
  }
200
209
  return (response.result ?? {});
201
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/omadaClient/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/omadaClient/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Owner questions: ask the owner a yes/no-style question as an actionable phone
3
+ * notification and collect the button they tap.
4
+ *
5
+ * Stateless by design: everything needed to recognise a question travels in
6
+ * signed identifiers, so a server restart does not lose open questions.
7
+ * - The requestId given to the caller carries the question, title, buttons,
8
+ * target, expiry, the asking token's `sub` and a random nonce, signed with a
9
+ * key derived from the server secret.
10
+ * - Each button's action id carries the nonce, the button index, the expiry,
11
+ * the target and its own signature, so a tap that arrives after a restart is
12
+ * still verified and attributed. The secret never leaves the server, and the
13
+ * requestId is not enough to forge a button id.
14
+ * Only answers (and cancellations) are kept in memory until they are read. A tap
15
+ * that lands while the server is down is lost; the question then expires as NO.
16
+ *
17
+ * A tap counts only if Home Assistant reports it as coming from a mobile app
18
+ * webhook (origin REMOTE, with a user), so an automation that fires a fake
19
+ * `mobile_app_notification_action` event (origin LOCAL) cannot approve anything.
20
+ * With `allowedUserIds` (MCP_OWNER_QUESTIONS_HA_USERS) only those HA users can answer.
21
+ *
22
+ * Known limit, accepted: cancellations and answers are remembered in memory
23
+ * only, while a button's signed id stays valid until the question expires. After
24
+ * a restart, re-sending an old button id through Home Assistant's own API (which
25
+ * needs an HA login, and the id from HA's history) could answer a question that
26
+ * had been cancelled or denied. The phone itself no longer shows the buttons.
27
+ * Anyone with that access can already control the house directly.
28
+ */
29
+ export declare const ACTION_EVENT = "mobile_app_notification_action";
30
+ export declare const LIMITS: {
31
+ readonly questionChars: 256;
32
+ readonly titleChars: 60;
33
+ readonly buttonChars: 20;
34
+ readonly maxButtons: 3;
35
+ readonly minTimeoutSeconds: 60;
36
+ readonly maxTimeoutSeconds: number;
37
+ readonly defaultTimeoutSeconds: 600;
38
+ readonly maxWaitSeconds: 50;
39
+ readonly maxOpenPerCaller: 3;
40
+ readonly maxPerCallerPerHour: 30;
41
+ };
42
+ export interface AskOwnerInput {
43
+ question: string;
44
+ title: string;
45
+ buttons: string[];
46
+ target: string;
47
+ timeoutSeconds: number;
48
+ channel?: string;
49
+ importance?: 'high' | 'default' | 'low' | 'min';
50
+ }
51
+ export type OwnerAnswer = {
52
+ status: 'answered';
53
+ index: number;
54
+ button: string;
55
+ answeredAt: string;
56
+ answeredBy: string;
57
+ question: string;
58
+ buttons: string[];
59
+ } | {
60
+ status: 'pending';
61
+ expiresAt: string;
62
+ question: string;
63
+ buttons: string[];
64
+ } | {
65
+ status: 'timeout';
66
+ expiredAt: string;
67
+ question: string;
68
+ buttons: string[];
69
+ } | {
70
+ status: 'cancelled';
71
+ cancelledAt: string;
72
+ question: string;
73
+ buttons: string[];
74
+ } | {
75
+ status: 'unknown';
76
+ reason: string;
77
+ };
78
+ export interface OwnerQuestionDeps {
79
+ /** Calls `notify.<target>`. */
80
+ notify: (target: string, serviceData: Record<string, unknown>) => Promise<unknown>;
81
+ /**
82
+ * Subscribes to a Home Assistant event type. Rejects if Home Assistant refuses
83
+ * it now; `onRejected` reports a refusal seen later (e.g. after a reconnect).
84
+ */
85
+ subscribe: (eventType: string, callback: (event: ActionEvent) => void, onRejected: (error: Error) => void) => Promise<unknown>;
86
+ /** Key material for signing (the server's auth secret); a random key is used when absent. */
87
+ secret?: string;
88
+ /** HA user ids allowed to answer; empty or absent = any HA user. */
89
+ allowedUserIds?: string[];
90
+ now?: () => number;
91
+ }
92
+ export interface ActionEvent {
93
+ event_type: string;
94
+ data: {
95
+ action?: unknown;
96
+ [key: string]: unknown;
97
+ };
98
+ origin: string;
99
+ time_fired?: string;
100
+ context: {
101
+ user_id: string | null;
102
+ };
103
+ }
104
+ export declare class OwnerQuestionService {
105
+ private readonly deps;
106
+ private readonly key;
107
+ private readonly now;
108
+ /** Final outcomes by nonce, until the question's expiry passes. */
109
+ private readonly outcomes;
110
+ /** Open questions per caller sub: nonce -> expiry (ms). */
111
+ private readonly open;
112
+ /** Ask timestamps per caller sub, for the hourly cap. */
113
+ private readonly asked;
114
+ /** Pollers waiting for an outcome, by nonce. */
115
+ private readonly waiters;
116
+ /** Expiry timers by nonce (best effort: lost on restart; the phone also times out on its own). */
117
+ private readonly expiryTimers;
118
+ /** Labels and target of open questions, for nicer confirmations while the server stays up. */
119
+ private readonly known;
120
+ private sweepTimer;
121
+ /** Why questions cannot be answered right now (Home Assistant refused the tap subscription). */
122
+ private unavailable;
123
+ constructor(deps: OwnerQuestionDeps);
124
+ start(): Promise<void>;
125
+ stop(): void;
126
+ ask(input: AskOwnerInput, caller: string): Promise<{
127
+ requestId: string;
128
+ expiresAt: string;
129
+ }>;
130
+ getAnswer(requestId: string, caller: string, waitSeconds: number): Promise<OwnerAnswer>;
131
+ cancel(requestId: string, caller: string): Promise<OwnerAnswer>;
132
+ /** Handle a `mobile_app_notification_action` event. Exposed for tests. */
133
+ handleActionEvent(event: ActionEvent): void;
134
+ private signRequest;
135
+ private verifyRequest;
136
+ private actionId;
137
+ private parseActionId;
138
+ private hmac;
139
+ private safeEqual;
140
+ private tagFor;
141
+ private assertOwner;
142
+ private settledAnswer;
143
+ private pendingAnswer;
144
+ private settle;
145
+ private wake;
146
+ private waitForOutcome;
147
+ private scheduleExpiry;
148
+ private replaceNotification;
149
+ private enforceRateLimits;
150
+ private reserve;
151
+ private release;
152
+ /**
153
+ * Periodic cleanup, independent of new activity: outcomes a day after their
154
+ * question expired (a caller polling that late sees "timeout"), labels of
155
+ * expired questions, and rate-limit entries that no longer count.
156
+ * Exposed for tests.
157
+ */
158
+ sweep(): void;
159
+ /** Sizes of the in-memory state, for tests and diagnostics. */
160
+ stateSize(): {
161
+ outcomes: number;
162
+ known: number;
163
+ open: number;
164
+ asked: number;
165
+ waiters: number;
166
+ };
167
+ }