@sympoies/dsh-telegram 0.0.0-bootstrap.0 → 0.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.
Files changed (194) hide show
  1. package/LICENSE +1 -2
  2. package/NOTICE +19 -0
  3. package/README.md +588 -2
  4. package/cordis.patch.yml +14 -0
  5. package/lib/access.d.ts +76 -0
  6. package/lib/access.d.ts.map +1 -0
  7. package/lib/access.js +137 -0
  8. package/lib/access.js.map +1 -0
  9. package/lib/client.js +835 -0
  10. package/lib/commands.d.ts +51 -0
  11. package/lib/commands.d.ts.map +1 -0
  12. package/lib/commands.js +83 -0
  13. package/lib/commands.js.map +1 -0
  14. package/lib/config.d.ts +125 -0
  15. package/lib/config.d.ts.map +1 -0
  16. package/lib/config.js +97 -0
  17. package/lib/config.js.map +1 -0
  18. package/lib/diagnostics.d.ts +58 -0
  19. package/lib/diagnostics.d.ts.map +1 -0
  20. package/lib/diagnostics.js +59 -0
  21. package/lib/diagnostics.js.map +1 -0
  22. package/lib/failures.d.ts +71 -0
  23. package/lib/failures.d.ts.map +1 -0
  24. package/lib/failures.js +139 -0
  25. package/lib/failures.js.map +1 -0
  26. package/lib/harness/host.d.ts +106 -0
  27. package/lib/harness/host.d.ts.map +1 -0
  28. package/lib/harness/host.js +142 -0
  29. package/lib/harness/host.js.map +1 -0
  30. package/lib/harness/message.d.ts +45 -0
  31. package/lib/harness/message.d.ts.map +1 -0
  32. package/lib/harness/message.js +28 -0
  33. package/lib/harness/message.js.map +1 -0
  34. package/lib/harness/model-selection.d.ts +82 -0
  35. package/lib/harness/model-selection.d.ts.map +1 -0
  36. package/lib/harness/model-selection.js +103 -0
  37. package/lib/harness/model-selection.js.map +1 -0
  38. package/lib/harness/questions-seam.d.ts +34 -0
  39. package/lib/harness/questions-seam.d.ts.map +1 -0
  40. package/lib/harness/questions-seam.js +45 -0
  41. package/lib/harness/questions-seam.js.map +1 -0
  42. package/lib/harness/types.d.ts +108 -0
  43. package/lib/harness/types.d.ts.map +1 -0
  44. package/lib/harness/types.js +23 -0
  45. package/lib/harness/types.js.map +1 -0
  46. package/lib/index.d.ts +65 -0
  47. package/lib/index.d.ts.map +1 -0
  48. package/lib/index.js +977 -0
  49. package/lib/index.js.map +1 -0
  50. package/lib/interact/approvals.d.ts +59 -0
  51. package/lib/interact/approvals.d.ts.map +1 -0
  52. package/lib/interact/approvals.js +132 -0
  53. package/lib/interact/approvals.js.map +1 -0
  54. package/lib/interact/pending.d.ts +56 -0
  55. package/lib/interact/pending.d.ts.map +1 -0
  56. package/lib/interact/pending.js +89 -0
  57. package/lib/interact/pending.js.map +1 -0
  58. package/lib/interact/questions.d.ts +100 -0
  59. package/lib/interact/questions.d.ts.map +1 -0
  60. package/lib/interact/questions.js +255 -0
  61. package/lib/interact/questions.js.map +1 -0
  62. package/lib/interact/surface.d.ts +33 -0
  63. package/lib/interact/surface.d.ts.map +1 -0
  64. package/lib/interact/surface.js +39 -0
  65. package/lib/interact/surface.js.map +1 -0
  66. package/lib/interact/text-capture.d.ts +38 -0
  67. package/lib/interact/text-capture.d.ts.map +1 -0
  68. package/lib/interact/text-capture.js +75 -0
  69. package/lib/interact/text-capture.js.map +1 -0
  70. package/lib/media/collect.d.ts +157 -0
  71. package/lib/media/collect.d.ts.map +1 -0
  72. package/lib/media/collect.js +235 -0
  73. package/lib/media/collect.js.map +1 -0
  74. package/lib/media/extractor.d.ts +117 -0
  75. package/lib/media/extractor.d.ts.map +1 -0
  76. package/lib/media/extractor.js +207 -0
  77. package/lib/media/extractor.js.map +1 -0
  78. package/lib/media/intake.d.ts +57 -0
  79. package/lib/media/intake.d.ts.map +1 -0
  80. package/lib/media/intake.js +115 -0
  81. package/lib/media/intake.js.map +1 -0
  82. package/lib/media/limits.d.ts +69 -0
  83. package/lib/media/limits.d.ts.map +1 -0
  84. package/lib/media/limits.js +97 -0
  85. package/lib/media/limits.js.map +1 -0
  86. package/lib/media/ocr.d.ts +66 -0
  87. package/lib/media/ocr.d.ts.map +1 -0
  88. package/lib/media/ocr.js +131 -0
  89. package/lib/media/ocr.js.map +1 -0
  90. package/lib/media/screenshot.d.ts +57 -0
  91. package/lib/media/screenshot.d.ts.map +1 -0
  92. package/lib/media/screenshot.js +101 -0
  93. package/lib/media/screenshot.js.map +1 -0
  94. package/lib/media/vision.d.ts +60 -0
  95. package/lib/media/vision.d.ts.map +1 -0
  96. package/lib/media/vision.js +74 -0
  97. package/lib/media/vision.js.map +1 -0
  98. package/lib/render/clamp.d.ts +34 -0
  99. package/lib/render/clamp.d.ts.map +1 -0
  100. package/lib/render/clamp.js +65 -0
  101. package/lib/render/clamp.js.map +1 -0
  102. package/lib/render/escape.d.ts +15 -0
  103. package/lib/render/escape.d.ts.map +1 -0
  104. package/lib/render/escape.js +17 -0
  105. package/lib/render/escape.js.map +1 -0
  106. package/lib/reply/activity.d.ts +31 -0
  107. package/lib/reply/activity.d.ts.map +1 -0
  108. package/lib/reply/activity.js +88 -0
  109. package/lib/reply/activity.js.map +1 -0
  110. package/lib/reply/rich-stream.d.ts +173 -0
  111. package/lib/reply/rich-stream.d.ts.map +1 -0
  112. package/lib/reply/rich-stream.js +286 -0
  113. package/lib/reply/rich-stream.js.map +1 -0
  114. package/lib/reply/split-markdown.d.ts +21 -0
  115. package/lib/reply/split-markdown.d.ts.map +1 -0
  116. package/lib/reply/split-markdown.js +87 -0
  117. package/lib/reply/split-markdown.js.map +1 -0
  118. package/lib/reply/turn-bridge.d.ts +143 -0
  119. package/lib/reply/turn-bridge.d.ts.map +1 -0
  120. package/lib/reply/turn-bridge.js +182 -0
  121. package/lib/reply/turn-bridge.js.map +1 -0
  122. package/lib/router.d.ts +415 -0
  123. package/lib/router.d.ts.map +1 -0
  124. package/lib/router.js +663 -0
  125. package/lib/router.js.map +1 -0
  126. package/lib/secrets.d.ts +30 -0
  127. package/lib/secrets.d.ts.map +1 -0
  128. package/lib/secrets.js +51 -0
  129. package/lib/secrets.js.map +1 -0
  130. package/lib/session/bindings.d.ts +81 -0
  131. package/lib/session/bindings.d.ts.map +1 -0
  132. package/lib/session/bindings.js +170 -0
  133. package/lib/session/bindings.js.map +1 -0
  134. package/lib/session/history.d.ts +50 -0
  135. package/lib/session/history.d.ts.map +1 -0
  136. package/lib/session/history.js +127 -0
  137. package/lib/session/history.js.map +1 -0
  138. package/lib/session/models.d.ts +99 -0
  139. package/lib/session/models.d.ts.map +1 -0
  140. package/lib/session/models.js +123 -0
  141. package/lib/session/models.js.map +1 -0
  142. package/lib/session/permission.d.ts +83 -0
  143. package/lib/session/permission.d.ts.map +1 -0
  144. package/lib/session/permission.js +107 -0
  145. package/lib/session/permission.js.map +1 -0
  146. package/lib/session/picker.d.ts +49 -0
  147. package/lib/session/picker.d.ts.map +1 -0
  148. package/lib/session/picker.js +107 -0
  149. package/lib/session/picker.js.map +1 -0
  150. package/lib/session/preferences.d.ts +55 -0
  151. package/lib/session/preferences.d.ts.map +1 -0
  152. package/lib/session/preferences.js +102 -0
  153. package/lib/session/preferences.js.map +1 -0
  154. package/lib/session/recovery.d.ts +66 -0
  155. package/lib/session/recovery.d.ts.map +1 -0
  156. package/lib/session/recovery.js +112 -0
  157. package/lib/session/recovery.js.map +1 -0
  158. package/lib/session/runner.d.ts +223 -0
  159. package/lib/session/runner.d.ts.map +1 -0
  160. package/lib/session/runner.js +260 -0
  161. package/lib/session/runner.js.map +1 -0
  162. package/lib/session/workspaces.d.ts +28 -0
  163. package/lib/session/workspaces.d.ts.map +1 -0
  164. package/lib/session/workspaces.js +53 -0
  165. package/lib/session/workspaces.js.map +1 -0
  166. package/lib/telegram/addressing.d.ts +39 -0
  167. package/lib/telegram/addressing.d.ts.map +1 -0
  168. package/lib/telegram/addressing.js +81 -0
  169. package/lib/telegram/addressing.js.map +1 -0
  170. package/lib/telegram/albums.d.ts +46 -0
  171. package/lib/telegram/albums.d.ts.map +1 -0
  172. package/lib/telegram/albums.js +104 -0
  173. package/lib/telegram/albums.js.map +1 -0
  174. package/lib/telegram/api.d.ts +238 -0
  175. package/lib/telegram/api.d.ts.map +1 -0
  176. package/lib/telegram/api.js +518 -0
  177. package/lib/telegram/api.js.map +1 -0
  178. package/lib/telegram/poller.d.ts +59 -0
  179. package/lib/telegram/poller.d.ts.map +1 -0
  180. package/lib/telegram/poller.js +94 -0
  181. package/lib/telegram/poller.js.map +1 -0
  182. package/lib/telegram/types.d.ts +130 -0
  183. package/lib/telegram/types.d.ts.map +1 -0
  184. package/lib/telegram/types.js +9 -0
  185. package/lib/telegram/types.js.map +1 -0
  186. package/lib/telegram/typing.d.ts +47 -0
  187. package/lib/telegram/typing.d.ts.map +1 -0
  188. package/lib/telegram/typing.js +91 -0
  189. package/lib/telegram/typing.js.map +1 -0
  190. package/lib/versions.d.ts +63 -0
  191. package/lib/versions.d.ts.map +1 -0
  192. package/lib/versions.js +135 -0
  193. package/lib/versions.js.map +1 -0
  194. package/package.json +94 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Approving the agent's tool calls from Telegram.
3
+ *
4
+ * The harness asks for approval through the `approval/request` waterfall.
5
+ * Unlike questions, that seam composes: a listener either decides or calls
6
+ * `next()` to pass the request on. This answerer decides only for sessions it
7
+ * owns and declines everything else, so the browser keeps answering for its
8
+ * own sessions.
9
+ *
10
+ * The seam fails closed by design — a missing or throwing answerer yields
11
+ * `'unavailable'`, which the harness treats as a refusal. That is the right
12
+ * default and this module preserves it: if the chat cannot be reached, the
13
+ * answer is `'unavailable'`, never an accidental grant.
14
+ */
15
+ import type { ApprovalOutcome, ApprovalRequest } from '../harness/types.js';
16
+ import type { ChatSurface, ChatTarget } from './surface.js';
17
+ import type { PendingRegistry } from './pending.js';
18
+ /** A decoded approval button press. */
19
+ interface Press {
20
+ readonly token: string;
21
+ readonly index: number;
22
+ }
23
+ /** Everything the answerer needs from the rest of the plugin. */
24
+ export interface ApprovalAnswererOptions {
25
+ readonly surface: ChatSurface;
26
+ readonly pending: PendingRegistry<unknown>;
27
+ /** Resolve a session id to its Telegram chat, or undefined when unbound. */
28
+ readonly targetOf: (sessionId: string) => ChatTarget | undefined;
29
+ }
30
+ export declare class TelegramApprovalAnswerer {
31
+ private readonly options;
32
+ constructor(options: ApprovalAnswererOptions);
33
+ /**
34
+ * Decide one approval, or decline to.
35
+ *
36
+ * @param request - the pending decision from the harness waterfall.
37
+ * @returns the outcome, or `undefined` when this session is not a Telegram
38
+ * one and the caller should pass the request along.
39
+ */
40
+ decide(request: ApprovalRequest): Promise<ApprovalOutcome | undefined>;
41
+ /**
42
+ * Route one button press.
43
+ *
44
+ * @param data - raw `callback_data` from the update.
45
+ * @returns whether the press belonged to an open approval.
46
+ */
47
+ handleCallback(data: string | undefined): boolean;
48
+ /** Replace the prompt with its outcome and take the buttons away. */
49
+ private retire;
50
+ }
51
+ /**
52
+ * Decode `callback_data` produced by this module.
53
+ *
54
+ * @param data - raw callback data, from an untrusted update.
55
+ * @returns the press, or undefined when it belongs elsewhere or is malformed.
56
+ */
57
+ export declare function decodeApprovalCallback(data: string | undefined): Press | undefined;
58
+ export {};
59
+ //# sourceMappingURL=approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/interact/approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAmBnD,uCAAuC;AACvC,UAAU,KAAK;IACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAA;CACjE;AAED,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,uBAAuB;IAE7D;;;;;;OAMG;IACG,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAmC5E;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAMjD,qEAAqE;YACvD,MAAM;CAUrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAWlF"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Approving the agent's tool calls from Telegram.
3
+ *
4
+ * The harness asks for approval through the `approval/request` waterfall.
5
+ * Unlike questions, that seam composes: a listener either decides or calls
6
+ * `next()` to pass the request on. This answerer decides only for sessions it
7
+ * owns and declines everything else, so the browser keeps answering for its
8
+ * own sessions.
9
+ *
10
+ * The seam fails closed by design — a missing or throwing answerer yields
11
+ * `'unavailable'`, which the harness treats as a refusal. That is the right
12
+ * default and this module preserves it: if the chat cannot be reached, the
13
+ * answer is `'unavailable'`, never an accidental grant.
14
+ */
15
+ import { escapeHtml } from '../render/escape.js';
16
+ import { escapeWithin } from '../render/clamp.js';
17
+ /** Prefix marking callback data as belonging to an approval. */
18
+ const KIND = 'a';
19
+ /**
20
+ * Budgets for the two model-authored parts, chosen to leave the assembled
21
+ * message comfortably inside Telegram's 4096-character limit. A prompt that
22
+ * cannot be sent is an approval nobody is asked about.
23
+ */
24
+ const TOOL_NAME_BUDGET = 120;
25
+ const REASON_BUDGET = 2600;
26
+ /** Button order, and the outcome each press produces. */
27
+ const CHOICES = [
28
+ { text: '✅ Allow once', outcome: 'allowed-once' },
29
+ { text: '⛔ Reject', outcome: 'rejected' },
30
+ ];
31
+ export class TelegramApprovalAnswerer {
32
+ options;
33
+ constructor(options) {
34
+ this.options = options;
35
+ }
36
+ /**
37
+ * Decide one approval, or decline to.
38
+ *
39
+ * @param request - the pending decision from the harness waterfall.
40
+ * @returns the outcome, or `undefined` when this session is not a Telegram
41
+ * one and the caller should pass the request along.
42
+ */
43
+ async decide(request) {
44
+ const sessionId = request.agent.session.id ?? request.agent.id;
45
+ const target = this.options.targetOf(sessionId);
46
+ if (!target)
47
+ return undefined;
48
+ if (request.signal?.aborted)
49
+ return 'cancelled';
50
+ let messageId;
51
+ const waiter = this.options.pending.open({
52
+ ...(request.signal ? { signal: request.signal } : {}),
53
+ onCancel: () => void this.retire(target, messageId, request, 'Cancelled.'),
54
+ });
55
+ try {
56
+ messageId = await this.options.surface.send(target, renderRequest(request), buildKeyboard(waiter.token));
57
+ }
58
+ catch {
59
+ // Fail closed: an unreachable chat must never read as consent.
60
+ this.options.pending.cancel(waiter.token);
61
+ return 'unavailable';
62
+ }
63
+ const press = (await waiter.promise);
64
+ if (!press)
65
+ return 'cancelled';
66
+ const choice = CHOICES[press.index];
67
+ if (!choice)
68
+ return 'unavailable';
69
+ await this.retire(target, messageId, request, choice.text);
70
+ return choice.outcome;
71
+ }
72
+ /**
73
+ * Route one button press.
74
+ *
75
+ * @param data - raw `callback_data` from the update.
76
+ * @returns whether the press belonged to an open approval.
77
+ */
78
+ handleCallback(data) {
79
+ const press = decodeApprovalCallback(data);
80
+ if (!press)
81
+ return false;
82
+ return this.options.pending.settle(press.token, press);
83
+ }
84
+ /** Replace the prompt with its outcome and take the buttons away. */
85
+ async retire(target, messageId, request, outcome) {
86
+ if (messageId === undefined)
87
+ return;
88
+ const html = `${renderRequest(request)}\n\n<b>${escapeHtml(outcome)}</b>`;
89
+ await this.options.surface.edit(target, messageId, html, []).catch(() => undefined);
90
+ }
91
+ }
92
+ /**
93
+ * Decode `callback_data` produced by this module.
94
+ *
95
+ * @param data - raw callback data, from an untrusted update.
96
+ * @returns the press, or undefined when it belongs elsewhere or is malformed.
97
+ */
98
+ export function decodeApprovalCallback(data) {
99
+ if (data === undefined)
100
+ return undefined;
101
+ const parts = data.split(':');
102
+ if (parts.length !== 3 || parts[0] !== KIND)
103
+ return undefined;
104
+ const token = parts[1];
105
+ const index = Number(parts[2]);
106
+ if (token === '' || !Number.isInteger(index))
107
+ return undefined;
108
+ return { token, index };
109
+ }
110
+ /**
111
+ * The prompt itself. The reason is model-authored, so it is escaped rather
112
+ * than rendered as markdown — an approval prompt is the last place to let
113
+ * generated text control the formatting.
114
+ */
115
+ function renderRequest(request) {
116
+ const lines = [
117
+ `🔐 <b>Approval needed</b>`,
118
+ `Tool: <code>${escapeWithin(request.toolName, TOOL_NAME_BUDGET)}</code>`,
119
+ ];
120
+ if (request.reason) {
121
+ lines.push('');
122
+ lines.push(`<blockquote>${escapeWithin(request.reason, REASON_BUDGET)}</blockquote>`);
123
+ }
124
+ return lines.join('\n');
125
+ }
126
+ /** One button per outcome, each on its own row so neither is mispressed. */
127
+ function buildKeyboard(token) {
128
+ return CHOICES.map((choice, index) => [
129
+ { text: choice.text, callbackData: `${KIND}:${token}:${index}` },
130
+ ]);
131
+ }
132
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/interact/approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOjD,gEAAgE;AAChE,MAAM,IAAI,GAAG,GAAG,CAAA;AAEhB;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC5B,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B,yDAAyD;AACzD,MAAM,OAAO,GAA4E;IACvF,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE;IACjD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;CAC1C,CAAA;AAgBD,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAEjE;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,OAAwB;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAA;QAE7B,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,WAAW,CAAA;QAE/C,IAAI,SAA6B,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;SAC3E,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CACzC,MAAM,EACN,aAAa,CAAC,OAAO,CAAC,EACtB,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAC5B,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;YAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAsB,CAAA;QACzD,IAAI,CAAC,KAAK;YAAE,OAAO,WAAW,CAAA;QAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM;YAAE,OAAO,aAAa,CAAA;QAEjC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1D,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,IAAwB;QACrC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,qEAAqE;IAC7D,KAAK,CAAC,MAAM,CAClB,MAAkB,EAClB,SAA6B,EAC7B,OAAwB,EACxB,OAAe;QAEf,IAAI,SAAS,KAAK,SAAS;YAAE,OAAM;QACnC,MAAM,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,UAAU,CAAC,OAAO,CAAC,MAAM,CAAA;QACzE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACrF,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAE7D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAW,CAAA;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE9D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,eAAe,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,SAAS;KACzE,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,eAAe,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,EAAE;KACjE,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Waiters keyed by a short token.
3
+ *
4
+ * Every interactive prompt this plugin sends — a question, an approval — is a
5
+ * promise the agent is blocked on, parked here until a button press arrives
6
+ * minutes later in a completely separate HTTP request. The token is the only
7
+ * thing that survives that round trip: it travels inside Telegram's
8
+ * `callback_data`, which is capped at 64 bytes and shares that space with a
9
+ * kind prefix and an option index. Hence short tokens rather than UUIDs.
10
+ *
11
+ * Settling is first-claimant-wins. A user can press two buttons before the
12
+ * first press is acknowledged, a signal can abort mid-press, and the plugin
13
+ * can unload underneath both — so the registry removes the entry before
14
+ * resolving, and every later claim is a no-op rather than a double-resolve.
15
+ */
16
+ /** A registered waiter: the token to route presses by, and its settlement. */
17
+ export interface PendingWaiter<T> {
18
+ /** Short id carried in `callback_data`. */
19
+ readonly token: string;
20
+ /** Resolves with the settled value, or `undefined` when cancelled. */
21
+ readonly promise: Promise<T | undefined>;
22
+ }
23
+ /** Options for one waiter. */
24
+ export interface OpenOptions {
25
+ /** Cancels the waiter when it aborts (the agent gave up, the turn ended). */
26
+ readonly signal?: AbortSignal;
27
+ /** Runs on cancellation only — never after an answer. Used to retire the keyboard. */
28
+ readonly onCancel?: () => void;
29
+ }
30
+ export declare class PendingRegistry<T> {
31
+ private readonly entries;
32
+ /**
33
+ * Park a new waiter.
34
+ *
35
+ * @param options - cancellation signal and cleanup hook.
36
+ * @returns the routing token and the promise the caller awaits.
37
+ */
38
+ open(options: OpenOptions): PendingWaiter<T>;
39
+ /**
40
+ * Deliver an answer.
41
+ *
42
+ * @param token - the token from the pressed button.
43
+ * @param value - the answer to resolve with.
44
+ * @returns whether this call was the one that settled the waiter.
45
+ */
46
+ settle(token: string, value: T): boolean;
47
+ /** Whether a token still routes to an open waiter. */
48
+ has(token: string): boolean;
49
+ /** Cancel one waiter, resolving it with `undefined` and running its hook. */
50
+ cancel(token: string): boolean;
51
+ /** Cancel every open waiter — the plugin is unloading. */
52
+ dispose(): void;
53
+ /** A short, collision-free token drawn from a UUID's entropy. */
54
+ private mintToken;
55
+ }
56
+ //# sourceMappingURL=pending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/interact/pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,8EAA8E;AAC9E,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;CACzC;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AASD,qBAAa,eAAe,CAAC,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC;IAsB5C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO;IAUxC,sDAAsD;IACtD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3B,6EAA6E;IAC7E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAW9B,0DAA0D;IAC1D,OAAO,IAAI,IAAI;IAIf,iEAAiE;IACjE,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Waiters keyed by a short token.
3
+ *
4
+ * Every interactive prompt this plugin sends — a question, an approval — is a
5
+ * promise the agent is blocked on, parked here until a button press arrives
6
+ * minutes later in a completely separate HTTP request. The token is the only
7
+ * thing that survives that round trip: it travels inside Telegram's
8
+ * `callback_data`, which is capped at 64 bytes and shares that space with a
9
+ * kind prefix and an option index. Hence short tokens rather than UUIDs.
10
+ *
11
+ * Settling is first-claimant-wins. A user can press two buttons before the
12
+ * first press is acknowledged, a signal can abort mid-press, and the plugin
13
+ * can unload underneath both — so the registry removes the entry before
14
+ * resolving, and every later claim is a no-op rather than a double-resolve.
15
+ */
16
+ import { randomUUID } from 'node:crypto';
17
+ export class PendingRegistry {
18
+ entries = new Map();
19
+ /**
20
+ * Park a new waiter.
21
+ *
22
+ * @param options - cancellation signal and cleanup hook.
23
+ * @returns the routing token and the promise the caller awaits.
24
+ */
25
+ open(options) {
26
+ const token = this.mintToken();
27
+ let settle = () => undefined;
28
+ const promise = new Promise((resolve) => {
29
+ settle = resolve;
30
+ });
31
+ const onAbort = () => this.cancel(token);
32
+ const entry = {
33
+ settle,
34
+ detach: () => options.signal?.removeEventListener('abort', onAbort),
35
+ onCancel: options.onCancel,
36
+ };
37
+ this.entries.set(token, entry);
38
+ if (options.signal?.aborted)
39
+ this.cancel(token);
40
+ else
41
+ options.signal?.addEventListener('abort', onAbort, { once: true });
42
+ return { token, promise };
43
+ }
44
+ /**
45
+ * Deliver an answer.
46
+ *
47
+ * @param token - the token from the pressed button.
48
+ * @param value - the answer to resolve with.
49
+ * @returns whether this call was the one that settled the waiter.
50
+ */
51
+ settle(token, value) {
52
+ const entry = this.entries.get(token);
53
+ if (!entry)
54
+ return false;
55
+ this.entries.delete(token);
56
+ entry.detach();
57
+ entry.settle(value);
58
+ return true;
59
+ }
60
+ /** Whether a token still routes to an open waiter. */
61
+ has(token) {
62
+ return this.entries.has(token);
63
+ }
64
+ /** Cancel one waiter, resolving it with `undefined` and running its hook. */
65
+ cancel(token) {
66
+ const entry = this.entries.get(token);
67
+ if (!entry)
68
+ return false;
69
+ this.entries.delete(token);
70
+ entry.detach();
71
+ entry.settle(undefined);
72
+ entry.onCancel?.();
73
+ return true;
74
+ }
75
+ /** Cancel every open waiter — the plugin is unloading. */
76
+ dispose() {
77
+ for (const token of [...this.entries.keys()])
78
+ this.cancel(token);
79
+ }
80
+ /** A short, collision-free token drawn from a UUID's entropy. */
81
+ mintToken() {
82
+ for (;;) {
83
+ const token = randomUUID().replace(/-/g, '').slice(0, 12);
84
+ if (!this.entries.has(token))
85
+ return token;
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/interact/pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAyBxC,MAAM,OAAO,eAAe;IACT,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;IAEtD;;;;;OAKG;IACH,IAAI,CAAC,OAAoB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAE9B,IAAI,MAAM,GAAmC,GAAG,EAAE,CAAC,SAAS,CAAA;QAC5D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,GAAG,OAAO,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,KAAK,GAAa;YACtB,MAAM;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;YACnE,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE9B,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;;YAC1C,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAEvE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAa,EAAE,KAAQ;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1B,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sDAAsD;IACtD,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,6EAA6E;IAC7E,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1B,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACvB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0DAA0D;IAC1D,OAAO;QACL,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC;IAED,iEAAiE;IACzD,SAAS;QACf,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;QAC5C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Answering the agent's questions from Telegram.
3
+ *
4
+ * This is the half of the plugin that has no equivalent in the existing
5
+ * channel bridge. When the agent calls `ask_user_question`, the harness blocks
6
+ * the tool call on `ctx.userQuestions.ask()` and waits for the single
7
+ * registered UI provider to return an answer. Until now that provider was
8
+ * always the browser, so a conversation held entirely in Telegram would stall
9
+ * on the first question with no way to answer it.
10
+ *
11
+ * This provider renders each question as a message with an inline keyboard,
12
+ * parks the promise, and resolves it when a button is pressed — minutes later,
13
+ * in a different HTTP request, possibly on a different device.
14
+ *
15
+ * Two details are load-bearing:
16
+ *
17
+ * - **Delegation.** The harness allows exactly one provider. When the browser
18
+ * already registered one, this provider takes over and forwards every
19
+ * question that does not belong to a Telegram-bound session back to it, so
20
+ * installing this plugin never takes the web UI's questions away.
21
+ * - **Multi-select re-parks.** A toggle is not an answer, so each press settles
22
+ * its waiter and opens a fresh one for the redrawn keyboard. The token
23
+ * changes every round, which also makes a stale button inert.
24
+ */
25
+ import type { AskUserQuestionAnswer, UserQuestionProvider, UserQuestionRequest } from '../harness/types.js';
26
+ import type { ChatSurface, ChatTarget } from './surface.js';
27
+ import type { PendingRegistry } from './pending.js';
28
+ /** Thrown when the agent abandons a question before the user answers it. */
29
+ export declare class QuestionCancelledError extends Error {
30
+ constructor();
31
+ }
32
+ /** Thrown when a question arrives for a session with nowhere to ask it. */
33
+ export declare class NoChatError extends Error {
34
+ constructor(sessionId: string);
35
+ }
36
+ /** What one button press means. */
37
+ interface Press {
38
+ readonly token: string;
39
+ readonly index: number;
40
+ }
41
+ /** Everything the provider needs from the rest of the plugin. */
42
+ export interface QuestionProviderOptions {
43
+ /** Where prompts are posted and revised. */
44
+ readonly surface: ChatSurface;
45
+ /** Parked waiters, shared with the update dispatcher that routes presses. */
46
+ readonly pending: PendingRegistry<unknown>;
47
+ /** Resolve a session id to its Telegram chat, or undefined when unbound. */
48
+ readonly targetOf: (sessionId: string) => ChatTarget | undefined;
49
+ /** Read the next plain-text message in a chat — the "Other" answer path. */
50
+ readonly readText: (target: ChatTarget, signal?: AbortSignal) => Promise<string | undefined>;
51
+ /** The provider registered before this one; receives every non-Telegram question. */
52
+ readonly fallback?: UserQuestionProvider;
53
+ }
54
+ export declare class TelegramQuestionProvider implements UserQuestionProvider {
55
+ private readonly options;
56
+ /**
57
+ * Where non-Telegram questions go. Settable after construction because the
58
+ * incumbent provider is only knowable at the moment this one displaces it.
59
+ */
60
+ private fallback;
61
+ constructor(options: QuestionProviderOptions);
62
+ /**
63
+ * Point delegation at the provider this one displaced.
64
+ *
65
+ * @param provider - the incumbent, which keeps answering its own sessions.
66
+ */
67
+ setFallback(provider: UserQuestionProvider | undefined): void;
68
+ /**
69
+ * Ask the human, one question at a time.
70
+ *
71
+ * @param request - the questions, the owning agent, and the agent's signal.
72
+ * @returns the answers, in request order.
73
+ * @throws {NoChatError} when the session has no Telegram chat and no
74
+ * provider to delegate to.
75
+ * @throws {QuestionCancelledError} when the agent gives up first.
76
+ */
77
+ ask(request: UserQuestionRequest): Promise<AskUserQuestionAnswer>;
78
+ /**
79
+ * Route one button press.
80
+ *
81
+ * @param data - raw `callback_data` from the update.
82
+ * @returns whether the press belonged to an open question.
83
+ */
84
+ handleCallback(data: string | undefined): boolean;
85
+ /** Ask one question and hold the chat open until it is answered. */
86
+ private askOne;
87
+ /** A question with no options is an open one: read the user's next message. */
88
+ private askFreeText;
89
+ /** Replace a prompt with its outcome and take the buttons away. */
90
+ private retire;
91
+ }
92
+ /**
93
+ * Decode `callback_data` produced by this module.
94
+ *
95
+ * @param data - raw callback data, from an untrusted update.
96
+ * @returns the press, or undefined when the data belongs elsewhere or is malformed.
97
+ */
98
+ export declare function decodeCallback(data: string | undefined): Press | undefined;
99
+ export {};
100
+ //# sourceMappingURL=questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/interact/questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAGrB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAyBnD,4EAA4E;AAC5E,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD;AAED,2EAA2E;AAC3E,qBAAa,WAAY,SAAQ,KAAK;gBACxB,SAAS,EAAE,MAAM;CAI9B;AAED,mCAAmC;AACnC,UAAU,KAAK;IACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAA;IAChE,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5F,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CACzC;AAED,qBAAa,wBAAyB,YAAW,oBAAoB;IAOvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAkC;gBAErB,OAAO,EAAE,uBAAuB;IAI7D;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;IAI7D;;;;;;;;OAQG;IACG,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgBvE;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAMjD,oEAAoE;YACtD,MAAM;IAuDpB,+EAA+E;YACjE,WAAW;IAWzB,mEAAmE;YACrD,MAAM;CAUrB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAW1E"}