@honkio/mcp 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +193 -65
  2. package/dist/auth.d.ts +40 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +98 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/client.d.ts +43 -5
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +97 -22
  9. package/dist/client.js.map +1 -1
  10. package/dist/http.d.ts +51 -0
  11. package/dist/http.d.ts.map +1 -0
  12. package/dist/http.js +248 -0
  13. package/dist/http.js.map +1 -0
  14. package/dist/index.d.ts +0 -9
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +19 -46
  17. package/dist/index.js.map +1 -1
  18. package/dist/log.d.ts +10 -0
  19. package/dist/log.d.ts.map +1 -0
  20. package/dist/log.js +10 -0
  21. package/dist/log.js.map +1 -0
  22. package/dist/prompts.d.ts +1 -1
  23. package/dist/prompts.d.ts.map +1 -1
  24. package/dist/prompts.js +23 -23
  25. package/dist/prompts.js.map +1 -1
  26. package/dist/rateLimit.d.ts +50 -0
  27. package/dist/rateLimit.d.ts.map +1 -0
  28. package/dist/rateLimit.js +85 -0
  29. package/dist/rateLimit.js.map +1 -0
  30. package/dist/resources.d.ts +1 -1
  31. package/dist/resources.d.ts.map +1 -1
  32. package/dist/resources.js +4 -4
  33. package/dist/resources.js.map +1 -1
  34. package/dist/server.d.ts +7 -0
  35. package/dist/server.d.ts.map +1 -0
  36. package/dist/server.js +46 -0
  37. package/dist/server.js.map +1 -0
  38. package/dist/toolMeta.d.ts +20 -0
  39. package/dist/toolMeta.d.ts.map +1 -0
  40. package/dist/toolMeta.js +81 -0
  41. package/dist/toolMeta.js.map +1 -0
  42. package/dist/tools.d.ts +10 -1
  43. package/dist/tools.d.ts.map +1 -1
  44. package/dist/tools.js +344 -209
  45. package/dist/tools.js.map +1 -1
  46. package/package.json +16 -7
package/dist/client.d.ts CHANGED
@@ -4,16 +4,31 @@
4
4
  export interface HonkioClientOptions {
5
5
  apiKey: string;
6
6
  baseUrl?: string;
7
+ /** Account id already known for this key, so the first account-scoped call does not look it up. */
8
+ accountId?: string;
9
+ /** Sent as X-MCP-Service-Key. Required when the credential is an OAuth access token: the API honours those only from this service. */
10
+ serviceKey?: string;
7
11
  }
8
12
  export declare class HonkioError extends Error {
9
13
  readonly status: number;
10
14
  readonly code: string;
11
- constructor(status: number, code: string, message: string);
15
+ readonly details?: unknown | undefined;
16
+ readonly body?: Record<string, unknown> | undefined;
17
+ constructor(status: number, code: string, message: string, details?: unknown | undefined, body?: Record<string, unknown> | undefined);
12
18
  }
13
19
  export declare class HonkioClient {
14
20
  private readonly apiKey;
15
21
  private readonly baseUrl;
22
+ private accountId;
23
+ private readonly serviceKey;
16
24
  constructor(options: HonkioClientOptions);
25
+ /**
26
+ * The account this key belongs to, looked up once per client instance. A
27
+ * stdio process has one key for its whole life; an HTTP request builds a
28
+ * fresh client per call, seeded from the verifier's cache, so neither ever
29
+ * asks the API twice.
30
+ */
31
+ currentAccountId(): Promise<string>;
17
32
  private request;
18
33
  sendMessage(params: {
19
34
  from: string;
@@ -39,15 +54,25 @@ export declare class HonkioClient {
39
54
  }>;
40
55
  getMessage(id: string): Promise<Record<string, unknown>>;
41
56
  searchPhoneNumbers(query?: {
42
- area_code?: string;
57
+ area_codes?: string;
43
58
  limit?: number;
44
59
  }): Promise<unknown[]>;
60
+ listAreaCodes(): Promise<{
61
+ data: unknown[];
62
+ }>;
45
63
  provisionPhoneNumber(phoneNumber: string): Promise<Record<string, unknown>>;
46
64
  listPhoneNumbers(): Promise<{
47
65
  data: unknown[];
48
66
  }>;
49
67
  getPhoneNumber(id: string): Promise<Record<string, unknown>>;
50
68
  releasePhoneNumber(id: string): Promise<void>;
69
+ requestNumberAllowance(params: {
70
+ requested_limit: number;
71
+ reason: string;
72
+ }): Promise<Record<string, unknown>>;
73
+ listNumberAllowanceRequests(): Promise<{
74
+ data: unknown[];
75
+ }>;
51
76
  recordConsent(params: {
52
77
  phone_number: string;
53
78
  consent_type: 'express' | 'implied';
@@ -99,12 +124,14 @@ export declare class HonkioClient {
99
124
  checkVerification(verificationId: string, code: string): Promise<Record<string, unknown>>;
100
125
  getVerification(verificationId: string): Promise<Record<string, unknown>>;
101
126
  listVerifications(query?: {
102
- phone_number?: string;
103
- status?: string;
104
- page?: number;
105
127
  limit?: number;
128
+ offset?: number;
129
+ status?: string;
106
130
  }): Promise<{
107
131
  data: unknown[];
132
+ total: number;
133
+ limit: number;
134
+ offset: number;
108
135
  }>;
109
136
  createWebhook(params: {
110
137
  url: string;
@@ -154,15 +181,26 @@ export declare class HonkioClient {
154
181
  from?: string;
155
182
  to?: string;
156
183
  }): Promise<Record<string, unknown>>;
184
+ listTransactions(id: string, query?: {
185
+ limit?: number;
186
+ before?: string;
187
+ }): Promise<{
188
+ transactions: unknown[];
189
+ has_more: boolean;
190
+ }>;
157
191
  getSendLimit(): Promise<Record<string, unknown>>;
158
192
  requestSendLimit(params: {
159
193
  requested_limit?: number;
160
194
  reason: string;
161
195
  }): Promise<Record<string, unknown>>;
196
+ listSendLimitRequests(): Promise<{
197
+ data: unknown[];
198
+ }>;
162
199
  getTopupAllowance(accountId: string): Promise<Record<string, unknown>>;
163
200
  createApiKey(accountId: string, params?: {
164
201
  mode?: 'live' | 'test';
165
202
  label?: string;
203
+ permissions?: Record<string, string>;
166
204
  }): Promise<Record<string, unknown>>;
167
205
  revokeApiKey(accountId: string, keyId: string): Promise<void>;
168
206
  rotateApiKey(accountId: string, keyId: string): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -7,21 +7,76 @@ const REQUEST_TIMEOUT_MS = 15_000;
7
7
  export class HonkioError extends Error {
8
8
  status;
9
9
  code;
10
- constructor(status, code, message) {
10
+ details;
11
+ body;
12
+ constructor(status, code, message,
13
+ // The response body's `details` (an AJV validation array, or an ad hoc
14
+ // object like `{reason: 'account_suspended'}`), when present. Optional
15
+ // and appended last so every existing call site — none of which passes
16
+ // it — keeps compiling and behaving exactly as before.
17
+ details,
18
+ // The full parsed response body, when it was a JSON object. Some error
19
+ // bodies carry extra top-level fields beyond the standard error shape
20
+ // (e.g. `attempts_remaining` on a verify-check 422) — keeping the whole
21
+ // body lets formatError surface any of those without every call site
22
+ // needing to know which field names to look for.
23
+ body) {
11
24
  super(message);
12
25
  this.status = status;
13
26
  this.code = code;
27
+ this.details = details;
28
+ this.body = body;
14
29
  this.name = 'HonkioError';
15
30
  }
16
31
  }
17
32
  export class HonkioClient {
18
33
  apiKey;
19
34
  baseUrl;
35
+ accountId;
36
+ serviceKey;
20
37
  constructor(options) {
21
38
  this.apiKey = options.apiKey;
22
39
  this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
40
+ this.accountId = options.accountId;
41
+ this.serviceKey = options.serviceKey;
42
+ }
43
+ /**
44
+ * The account this key belongs to, looked up once per client instance. A
45
+ * stdio process has one key for its whole life; an HTTP request builds a
46
+ * fresh client per call, seeded from the verifier's cache, so neither ever
47
+ * asks the API twice.
48
+ */
49
+ async currentAccountId() {
50
+ if (this.accountId)
51
+ return this.accountId;
52
+ const me = await this.getCurrentAccount();
53
+ this.accountId = me.account.id;
54
+ return this.accountId;
23
55
  }
24
56
  async request(method, path, body, query, extraHeaders) {
57
+ // Every id in a path comes from a tool argument, i.e. from the model. Call
58
+ // sites encode each segment, which turns a crafted id into one harmless
59
+ // segment; this catches any call site that ever forgets, so the request
60
+ // fails here instead of quietly resolving somewhere else. Segments are
61
+ // decoded (once — the same number of times the URL itself will be) before
62
+ // the check, so an encoded dot segment ("..%2Fx", one raw segment) is
63
+ // compared as "../x" and passes, while a bare ".." — or a segment that
64
+ // decodes to it, or fails to decode at all — is refused.
65
+ for (const segment of path.replace(/^\//, '').split('/')) {
66
+ if (segment === '') {
67
+ throw new HonkioError(400, 'INVALID_ID', 'An identifier contained path characters and was refused.');
68
+ }
69
+ let decoded;
70
+ try {
71
+ decoded = decodeURIComponent(segment);
72
+ }
73
+ catch {
74
+ throw new HonkioError(400, 'INVALID_ID', 'An identifier contained path characters and was refused.');
75
+ }
76
+ if (decoded === '.' || decoded === '..') {
77
+ throw new HonkioError(400, 'INVALID_ID', 'An identifier contained path characters and was refused.');
78
+ }
79
+ }
25
80
  let url = `${this.baseUrl}${path}`;
26
81
  if (query) {
27
82
  const params = new URLSearchParams();
@@ -39,6 +94,7 @@ export class HonkioClient {
39
94
  'Authorization': `Bearer ${this.apiKey}`,
40
95
  'Content-Type': 'application/json',
41
96
  'Accept': 'application/json',
97
+ ...(this.serviceKey ? { 'X-MCP-Service-Key': this.serviceKey } : {}),
42
98
  ...extraHeaders,
43
99
  },
44
100
  ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
@@ -55,7 +111,11 @@ export class HonkioClient {
55
111
  if (!res.ok) {
56
112
  const code = data?.code ?? 'UNKNOWN_ERROR';
57
113
  const message = data?.message ?? text ?? `HTTP ${res.status}`;
58
- throw new HonkioError(res.status, code, message);
114
+ const details = data?.details;
115
+ const body = data !== null && typeof data === 'object' && !Array.isArray(data)
116
+ ? data
117
+ : undefined;
118
+ throw new HonkioError(res.status, code, message, details, body);
59
119
  }
60
120
  return data;
61
121
  }
@@ -68,12 +128,15 @@ export class HonkioClient {
68
128
  return this.request('GET', '/v1/messages', undefined, query);
69
129
  }
70
130
  getMessage(id) {
71
- return this.request('GET', `/v1/messages/${id}`);
131
+ return this.request('GET', `/v1/messages/${encodeURIComponent(id)}`);
72
132
  }
73
133
  // ── Phone Numbers ─────────────────────────────────────────
74
134
  searchPhoneNumbers(query) {
75
135
  return this.request('GET', '/v1/phone-numbers/search', undefined, query);
76
136
  }
137
+ listAreaCodes() {
138
+ return this.request('GET', '/v1/phone-numbers/area-codes');
139
+ }
77
140
  provisionPhoneNumber(phoneNumber) {
78
141
  return this.request('POST', '/v1/phone-numbers', { phone_number: phoneNumber });
79
142
  }
@@ -81,10 +144,16 @@ export class HonkioClient {
81
144
  return this.request('GET', '/v1/phone-numbers');
82
145
  }
83
146
  getPhoneNumber(id) {
84
- return this.request('GET', `/v1/phone-numbers/${id}`);
147
+ return this.request('GET', `/v1/phone-numbers/${encodeURIComponent(id)}`);
85
148
  }
86
149
  releasePhoneNumber(id) {
87
- return this.request('DELETE', `/v1/phone-numbers/${id}`);
150
+ return this.request('DELETE', `/v1/phone-numbers/${encodeURIComponent(id)}`);
151
+ }
152
+ requestNumberAllowance(params) {
153
+ return this.request('POST', '/v1/phone-numbers/allowance-requests', params);
154
+ }
155
+ listNumberAllowanceRequests() {
156
+ return this.request('GET', '/v1/phone-numbers/allowance-requests');
88
157
  }
89
158
  // ── Compliance: Consents ──────────────────────────────────
90
159
  recordConsent(params) {
@@ -126,10 +195,10 @@ export class HonkioClient {
126
195
  return this.request('POST', '/v1/verify', params);
127
196
  }
128
197
  checkVerification(verificationId, code) {
129
- return this.request('POST', `/v1/verify/${verificationId}/check`, { code });
198
+ return this.request('POST', `/v1/verify/${encodeURIComponent(verificationId)}/check`, { code });
130
199
  }
131
200
  getVerification(verificationId) {
132
- return this.request('GET', `/v1/verify/${verificationId}`);
201
+ return this.request('GET', `/v1/verify/${encodeURIComponent(verificationId)}`);
133
202
  }
134
203
  listVerifications(query) {
135
204
  return this.request('GET', '/v1/verify', undefined, query);
@@ -142,28 +211,28 @@ export class HonkioClient {
142
211
  return this.request('GET', '/v1/webhooks');
143
212
  }
144
213
  getWebhook(id) {
145
- return this.request('GET', `/v1/webhooks/${id}`);
214
+ return this.request('GET', `/v1/webhooks/${encodeURIComponent(id)}`);
146
215
  }
147
216
  updateWebhook(id, params) {
148
- return this.request('PATCH', `/v1/webhooks/${id}`, params);
217
+ return this.request('PATCH', `/v1/webhooks/${encodeURIComponent(id)}`, params);
149
218
  }
150
219
  deleteWebhook(id) {
151
- return this.request('DELETE', `/v1/webhooks/${id}`);
220
+ return this.request('DELETE', `/v1/webhooks/${encodeURIComponent(id)}`);
152
221
  }
153
222
  listWebhookDeliveries(webhookId, query) {
154
- return this.request('GET', `/v1/webhooks/${webhookId}/deliveries`, undefined, query);
223
+ return this.request('GET', `/v1/webhooks/${encodeURIComponent(webhookId)}/deliveries`, undefined, query);
155
224
  }
156
225
  reactivateWebhook(webhookId) {
157
- return this.request('POST', `/v1/webhooks/${webhookId}/reactivate`);
226
+ return this.request('POST', `/v1/webhooks/${encodeURIComponent(webhookId)}/reactivate`);
158
227
  }
159
228
  listWebhookDeadLetters(webhookId, query) {
160
- return this.request('GET', `/v1/webhooks/${webhookId}/dead-letters`, undefined, query);
229
+ return this.request('GET', `/v1/webhooks/${encodeURIComponent(webhookId)}/dead-letters`, undefined, query);
161
230
  }
162
231
  replayWebhookDeadLetter(deadLetterId) {
163
- return this.request('POST', `/v1/webhooks/dead-letters/${deadLetterId}/replay`);
232
+ return this.request('POST', `/v1/webhooks/dead-letters/${encodeURIComponent(deadLetterId)}/replay`);
164
233
  }
165
234
  discardWebhookDeadLetter(deadLetterId) {
166
- return this.request('DELETE', `/v1/webhooks/dead-letters/${deadLetterId}`);
235
+ return this.request('DELETE', `/v1/webhooks/dead-letters/${encodeURIComponent(deadLetterId)}`);
167
236
  }
168
237
  // ── Account ───────────────────────────────────────────────
169
238
  /**
@@ -177,13 +246,16 @@ export class HonkioClient {
177
246
  return this.request('GET', '/v1/accounts/me');
178
247
  }
179
248
  getAccount(id) {
180
- return this.request('GET', `/v1/accounts/${id}`);
249
+ return this.request('GET', `/v1/accounts/${encodeURIComponent(id)}`);
181
250
  }
182
251
  updateAccount(id, params) {
183
- return this.request('PATCH', `/v1/accounts/${id}`, params);
252
+ return this.request('PATCH', `/v1/accounts/${encodeURIComponent(id)}`, params);
184
253
  }
185
254
  getUsage(id, query) {
186
- return this.request('GET', `/v1/accounts/${id}/usage`, undefined, query);
255
+ return this.request('GET', `/v1/accounts/${encodeURIComponent(id)}/usage`, undefined, query);
256
+ }
257
+ listTransactions(id, query) {
258
+ return this.request('GET', `/v1/accounts/${encodeURIComponent(id)}/transactions`, undefined, query);
187
259
  }
188
260
  // ── Sending limits ────────────────────────────────────────────
189
261
  getSendLimit() {
@@ -192,17 +264,20 @@ export class HonkioClient {
192
264
  requestSendLimit(params) {
193
265
  return this.request('POST', '/v1/send-limit/requests', params);
194
266
  }
267
+ listSendLimitRequests() {
268
+ return this.request('GET', '/v1/send-limit/requests');
269
+ }
195
270
  getTopupAllowance(accountId) {
196
- return this.request('GET', `/v1/accounts/${accountId}/topup-allowance`);
271
+ return this.request('GET', `/v1/accounts/${encodeURIComponent(accountId)}/topup-allowance`);
197
272
  }
198
273
  createApiKey(accountId, params) {
199
- return this.request('POST', `/v1/accounts/${accountId}/api-keys`, params ?? {});
274
+ return this.request('POST', `/v1/accounts/${encodeURIComponent(accountId)}/api-keys`, params ?? {});
200
275
  }
201
276
  revokeApiKey(accountId, keyId) {
202
- return this.request('DELETE', `/v1/accounts/${accountId}/api-keys/${keyId}`);
277
+ return this.request('DELETE', `/v1/accounts/${encodeURIComponent(accountId)}/api-keys/${encodeURIComponent(keyId)}`);
203
278
  }
204
279
  rotateApiKey(accountId, keyId) {
205
- return this.request('POST', `/v1/accounts/${accountId}/api-keys/${keyId}/rotate`);
280
+ return this.request('POST', `/v1/accounts/${encodeURIComponent(accountId)}/api-keys/${encodeURIComponent(keyId)}/rotate`);
206
281
  }
207
282
  }
208
283
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HonkIO MCP server, hosted Streamable HTTP transport: what mcp.honkio.ca runs.
4
+ *
5
+ * POST /mcp the MCP endpoint (Origin check, then API-key gate, then MCP)
6
+ * GET /healthz liveness for Railway
7
+ *
8
+ * Every request builds a fresh McpServer around a HonkioClient carrying the
9
+ * caller's key, so nothing is shared between callers and the process holds no
10
+ * session state. The verifier cache is the only thing that outlives a request.
11
+ */
12
+ import { type Server } from 'node:http';
13
+ import { KeyVerifier } from './auth.js';
14
+ import { type Logger } from './log.js';
15
+ export declare const DEFAULT_REQUESTS_PER_MINUTE = 300;
16
+ export declare const DEFAULT_FAILURES_PER_MINUTE = 10;
17
+ export interface HttpServerOptions {
18
+ apiBaseUrl: string;
19
+ /** Origins allowed to call the endpoint from a browser. Any other Origin header is refused. */
20
+ allowedOrigins?: string[];
21
+ logger?: Logger;
22
+ verifier?: KeyVerifier;
23
+ /** Per-address caps, fixed one-minute windows. Defaults 300 requests and 10 failed requests. */
24
+ rateLimit?: {
25
+ requestsPerMinute?: number;
26
+ failuresPerMinute?: number;
27
+ };
28
+ /** Proxy hops that append to X-Forwarded-For in front of this process. Railway's edge is one. Default 1. */
29
+ trustedProxies?: number;
30
+ /** The URL access tokens are bound to (RFC 8707 resource). Default https://mcp.honkio.ca/mcp. */
31
+ publicUrl?: string;
32
+ /** This service's key at the API (MCP_SERVICE_KEY); enables OAuth access tokens. Unset means API keys only. */
33
+ serviceKey?: string;
34
+ }
35
+ /** Keep in step with api/src/services/oauth/scopes.ts. */
36
+ export declare const SCOPES: readonly ["messages:read", "messages:send", "numbers:read", "numbers:manage", "compliance:read", "compliance:write", "verify", "webhooks:read", "webhooks:manage", "account:read", "account:manage"];
37
+ export declare const DEFAULT_PUBLIC_URL = "https://mcp.honkio.ca/mcp";
38
+ export interface HttpServerHandle {
39
+ server: Server;
40
+ close(): Promise<void>;
41
+ }
42
+ export declare function createHttpServer(opts: HttpServerOptions): HttpServerHandle;
43
+ export declare function startHttpServer(opts: HttpServerOptions & {
44
+ port: number;
45
+ host?: string;
46
+ }): Promise<{
47
+ url: string;
48
+ port: number;
49
+ close(): Promise<void>;
50
+ }>;
51
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AACH,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAOjG,OAAO,EAAiB,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAIrD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,gGAAgG;IAChG,SAAS,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,4GAA4G;IAC5G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0DAA0D;AAC1D,eAAO,MAAM,MAAM,sMAGT,CAAC;AAEX,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAyL1E;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAOhE"}