@moxxy/plugin-telegram 0.43.0 → 0.45.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.
- package/dist/channel/callback-handler.d.ts +4 -0
- package/dist/channel/callback-handler.d.ts.map +1 -1
- package/dist/channel/callback-handler.js +8 -0
- package/dist/channel/callback-handler.js.map +1 -1
- package/dist/channel/frame-pump.d.ts +3 -1
- package/dist/channel/frame-pump.d.ts.map +1 -1
- package/dist/channel/frame-pump.js +3 -2
- package/dist/channel/frame-pump.js.map +1 -1
- package/dist/channel/mirror.d.ts +1 -1
- package/dist/channel/mirror.d.ts.map +1 -1
- package/dist/channel/mirror.js +1 -0
- package/dist/channel/mirror.js.map +1 -1
- package/dist/channel/question-cards.d.ts +37 -0
- package/dist/channel/question-cards.d.ts.map +1 -0
- package/dist/channel/question-cards.js +46 -0
- package/dist/channel/question-cards.js.map +1 -0
- package/dist/channel/send-images.d.ts +31 -0
- package/dist/channel/send-images.d.ts.map +1 -0
- package/dist/channel/send-images.js +58 -0
- package/dist/channel/send-images.js.map +1 -0
- package/dist/channel/slash-handler.js +1 -1
- package/dist/channel/slash-handler.js.map +1 -1
- package/dist/channel/text-handler.d.ts +4 -1
- package/dist/channel/text-handler.d.ts.map +1 -1
- package/dist/channel/text-handler.js +5 -1
- package/dist/channel/text-handler.js.map +1 -1
- package/dist/channel/turn-runner.d.ts.map +1 -1
- package/dist/channel/turn-runner.js +4 -0
- package/dist/channel/turn-runner.js.map +1 -1
- package/dist/channel.d.ts +3 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +18 -1
- package/dist/channel.js.map +1 -1
- package/dist/permission.d.ts +1 -1
- package/dist/permission.d.ts.map +1 -1
- package/dist/permission.js +5 -3
- package/dist/permission.js.map +1 -1
- package/dist/render.d.ts +17 -5
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +51 -29
- package/dist/render.js.map +1 -1
- package/package.json +7 -7
- package/src/channel/callback-handler.test.ts +37 -0
- package/src/channel/callback-handler.ts +10 -0
- package/src/channel/frame-pump.ts +5 -2
- package/src/channel/mirror.ts +2 -1
- package/src/channel/question-cards.test.ts +61 -0
- package/src/channel/question-cards.ts +70 -0
- package/src/channel/send-images.test.ts +66 -0
- package/src/channel/send-images.ts +75 -0
- package/src/channel/slash-handler.ts +1 -1
- package/src/channel/text-handler.test.ts +34 -0
- package/src/channel/text-handler.ts +8 -2
- package/src/channel/turn-runner.test.ts +26 -3
- package/src/channel/turn-runner.ts +3 -0
- package/src/channel.ts +19 -0
- package/src/permission.test.ts +19 -0
- package/src/permission.ts +5 -3
- package/src/render.test.ts +100 -4
- package/src/render.ts +66 -32
|
@@ -3,6 +3,7 @@ import type { ClientSession as Session } from '@moxxy/sdk';
|
|
|
3
3
|
import type { TelegramPermissionResolver } from '../permission.js';
|
|
4
4
|
import type { TelegramApprovalResolver } from '../approval.js';
|
|
5
5
|
import type { TelegramModel } from './model.js';
|
|
6
|
+
import { type ChatQuestions } from '@moxxy/channel-kit';
|
|
6
7
|
export interface AwaitingApprovalText {
|
|
7
8
|
approvalId: string;
|
|
8
9
|
optionId: string;
|
|
@@ -17,6 +18,8 @@ export interface CallbackState {
|
|
|
17
18
|
readonly pairing: {
|
|
18
19
|
isAuthorized(chatId: number): boolean;
|
|
19
20
|
};
|
|
21
|
+
/** The conversation's open Questions, answered by their buttons. */
|
|
22
|
+
readonly questions: Pick<ChatQuestions, 'press'>;
|
|
20
23
|
}
|
|
21
24
|
export interface CallbackCallbacks {
|
|
22
25
|
/** Latch an in-flight approval awaiting a text follow-up. */
|
|
@@ -27,6 +30,7 @@ export interface CallbackCallbacks {
|
|
|
27
30
|
/** Inline-keyboard callback router. Dispatches by prefix:
|
|
28
31
|
* - `perm:` → permission resolver
|
|
29
32
|
* - `appr:` → approval resolver
|
|
33
|
+
* - `q:` → a Question's answer buttons
|
|
30
34
|
* - `mprov:` → the model picker's screens (a provider's models, or back)
|
|
31
35
|
* - `model:` → this bot's model (`provider::model` or `default`)
|
|
32
36
|
* - `mode:` → mode switch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback-handler.d.ts","sourceRoot":"","sources":["../../src/channel/callback-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"callback-handler.d.ts","sourceRoot":"","sources":["../../src/channel/callback-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE;QAAE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC5D,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;IAClE,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { setCategoryDefault } from '@moxxy/config';
|
|
2
2
|
import { isSelectableMode } from '@moxxy/sdk';
|
|
3
3
|
import { PROVIDER_PREFIX, modelScreen, providerScreen } from './model-picker.js';
|
|
4
|
+
import { QUESTION_BUTTON_PREFIX } from '@moxxy/channel-kit';
|
|
4
5
|
/** Inline-keyboard callback router. Dispatches by prefix:
|
|
5
6
|
* - `perm:` → permission resolver
|
|
6
7
|
* - `appr:` → approval resolver
|
|
8
|
+
* - `q:` → a Question's answer buttons
|
|
7
9
|
* - `mprov:` → the model picker's screens (a provider's models, or back)
|
|
8
10
|
* - `model:` → this bot's model (`provider::model` or `default`)
|
|
9
11
|
* - `mode:` → mode switch
|
|
@@ -36,6 +38,12 @@ export async function handleCallback(ctx, state, cb) {
|
|
|
36
38
|
await handleAppr(ctx, data, state, cb);
|
|
37
39
|
return;
|
|
38
40
|
}
|
|
41
|
+
if (data.startsWith(QUESTION_BUTTON_PREFIX)) {
|
|
42
|
+
// Answer the click at once (the card itself shows what changed).
|
|
43
|
+
await ctx.answerCallbackQuery();
|
|
44
|
+
await state.questions.press(data);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
39
47
|
if (data.startsWith(PROVIDER_PREFIX)) {
|
|
40
48
|
await showPickerScreen(ctx, data.slice(PROVIDER_PREFIX.length), cb);
|
|
41
49
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback-handler.js","sourceRoot":"","sources":["../../src/channel/callback-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"callback-handler.js","sourceRoot":"","sources":["../../src/channel/callback-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface FramePumpLogger {
|
|
|
6
6
|
export interface FramePumpOptions {
|
|
7
7
|
readonly editFrameMs: number;
|
|
8
8
|
readonly logger?: FramePumpLogger;
|
|
9
|
+
/** The name of the agent of the session's active agent connection ("Codex"), read when a frame is drawn. */
|
|
10
|
+
readonly agentName?: () => string | undefined;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Drives the throttled "compose snapshot → send/edit one message" loop
|
|
@@ -24,7 +26,7 @@ export declare class FramePump {
|
|
|
24
26
|
private readonly editFrameMs;
|
|
25
27
|
private readonly logger?;
|
|
26
28
|
private bot;
|
|
27
|
-
private renderer;
|
|
29
|
+
private readonly renderer;
|
|
28
30
|
private pump;
|
|
29
31
|
constructor(opts: FramePumpOptions);
|
|
30
32
|
attachBot(bot: Bot | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-pump.d.ts","sourceRoot":"","sources":["../../src/channel/frame-pump.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAIlC,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAG9D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"frame-pump.d.ts","sourceRoot":"","sources":["../../src/channel/frame-pump.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAIlC,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAG9D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,4GAA4G;IAC5G,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAkB;IAC1C,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,IAAI,CAAmC;gBAEnC,IAAI,EAAE,gBAAgB;IAMlC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;IAIhC;6DACyD;IACzD,IAAI,WAAW,IAAI,YAAY,CAE9B;IAED,aAAa,IAAI,IAAI;IAIrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqB/B,OAAO,IAAI,IAAI;IAKf,YAAY,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C;;8BAE0B;YACZ,SAAS;YAcT,SAAS;IAkBvB;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9E;;;;OAIG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAuBrE"}
|
|
@@ -20,12 +20,13 @@ export class FramePump {
|
|
|
20
20
|
editFrameMs;
|
|
21
21
|
logger;
|
|
22
22
|
bot = null;
|
|
23
|
-
renderer
|
|
23
|
+
renderer;
|
|
24
24
|
pump = null;
|
|
25
25
|
constructor(opts) {
|
|
26
26
|
this.editFrameMs = opts.editFrameMs;
|
|
27
27
|
if (opts.logger)
|
|
28
28
|
this.logger = opts.logger;
|
|
29
|
+
this.renderer = new TurnRenderer(opts.agentName ? { agentName: opts.agentName } : {});
|
|
29
30
|
}
|
|
30
31
|
attachBot(bot) {
|
|
31
32
|
this.bot = bot;
|
|
@@ -44,7 +45,7 @@ export class FramePump {
|
|
|
44
45
|
editFrameMs: this.editFrameMs,
|
|
45
46
|
// Only the FINAL frame collapses the activity trace into its expandable
|
|
46
47
|
// box — mid-stream frames keep it open so the user watches work land live.
|
|
47
|
-
frame: (final) => composeFrame(this.renderer.snapshot({
|
|
48
|
+
frame: (final) => composeFrame(this.renderer.snapshot({ final })),
|
|
48
49
|
// The final flush must produce at least one message so the user isn't
|
|
49
50
|
// left with the typing indicator dangling.
|
|
50
51
|
emptyFinalText: '<i>(no output)</i>',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-pump.js","sourceRoot":"","sources":["../../src/channel/frame-pump.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"frame-pump.js","sourceRoot":"","sources":["../../src/channel/frame-pump.ts"],"names":[],"mappings":"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"}
|
package/dist/channel/mirror.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ForeignTurnMirror, MirrorTarget, type TurnCoordinator } from '@moxxy/ch
|
|
|
2
2
|
import { type TelegramSender } from './send-rich.js';
|
|
3
3
|
export type { TelegramSender } from './send-rich.js';
|
|
4
4
|
export interface TelegramMirrorOptions {
|
|
5
|
-
readonly turns: Pick<TurnCoordinator, 'mirrorPrompt' | 'mirrorText'>;
|
|
5
|
+
readonly turns: Pick<TurnCoordinator, 'mirrorPrompt' | 'mirrorText' | 'mirrorAgentTurn' | 'mirrorHelperAnswer' | 'mirrorNoReply'>;
|
|
6
6
|
/** The running bot's API, or null while it is stopped. */
|
|
7
7
|
readonly api: () => TelegramSender | null;
|
|
8
8
|
/** The paired chat, or null while unpaired. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/channel/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEnE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/channel/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEnE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,YAAY,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,CAAC,CAAC;IAClI,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;CAC/E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG;IACjE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACvC,CAcA"}
|
package/dist/channel/mirror.js
CHANGED
|
@@ -16,6 +16,7 @@ export function createTelegramMirror(opts) {
|
|
|
16
16
|
await sendMarkdown(api, chatId, text);
|
|
17
17
|
},
|
|
18
18
|
formatPrompt: (prompt) => `_typed in moxxy:_ ${prompt}`,
|
|
19
|
+
formatAgentTurn: (name) => `_agent continued:_ ${name}`,
|
|
19
20
|
onError: (err) => opts.logger?.warn('telegram mirror failed', { err: String(err) }),
|
|
20
21
|
});
|
|
21
22
|
return { mirror, target };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mirror.js","sourceRoot":"","sources":["../../src/channel/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AAanE;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA2B;IAI9D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAS,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAS;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG;gBAAE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,MAAM,EAAE;QACvD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACpF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"mirror.js","sourceRoot":"","sources":["../../src/channel/mirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAwB,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AAanE;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA2B;IAI9D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAS,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAS;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG;gBAAE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,MAAM,EAAE;QACvD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,IAAI,EAAE;QACvD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACpF,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { QuestionUpdate } from '@moxxy/channel-kit';
|
|
2
|
+
interface InlineKeyboardMarkup {
|
|
3
|
+
inline_keyboard: Array<Array<{
|
|
4
|
+
text: string;
|
|
5
|
+
callback_data: string;
|
|
6
|
+
}>>;
|
|
7
|
+
}
|
|
8
|
+
/** The two Bot API calls a Question card needs (grammy's `bot.api` has both). */
|
|
9
|
+
export interface QuestionCardApi {
|
|
10
|
+
sendMessage(chatId: number, text: string, other?: {
|
|
11
|
+
readonly reply_markup?: InlineKeyboardMarkup;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
readonly message_id: number;
|
|
14
|
+
}>;
|
|
15
|
+
editMessageText(chatId: number, messageId: number, text: string, other?: {
|
|
16
|
+
readonly reply_markup?: InlineKeyboardMarkup;
|
|
17
|
+
}): Promise<unknown>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Draws the Questions `ChatQuestions` hands over as Telegram messages: a card
|
|
21
|
+
* with an inline keyboard, edited in place as picks change and stripped of
|
|
22
|
+
* its buttons once the question closes.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TelegramQuestionCards {
|
|
25
|
+
private readonly deps;
|
|
26
|
+
private readonly messages;
|
|
27
|
+
constructor(deps: {
|
|
28
|
+
readonly api: () => QuestionCardApi | null;
|
|
29
|
+
readonly chatId: () => number | null;
|
|
30
|
+
readonly logger?: {
|
|
31
|
+
warn(msg: string, meta?: Record<string, unknown>): void;
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
render(update: QuestionUpdate): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=question-cards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-cards.d.ts","sourceRoot":"","sources":["../../src/channel/question-cards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIvE,UAAU,oBAAoB;IAC5B,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACxE;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,WAAW,CACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,eAAe,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;KAAE,GACvD,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAKD;;;;GAIG;AACH,qBAAa,qBAAqB;IAI9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAGnC,IAAI,EAAE;QACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;QAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;SAAE,CAAC;KAC/E;IAGG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBpD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { truncate } from './html.js';
|
|
2
|
+
/** Telegram allows 4096 characters a message; a card stays well under it. */
|
|
3
|
+
const CARD_LIMIT = 3500;
|
|
4
|
+
/**
|
|
5
|
+
* Draws the Questions `ChatQuestions` hands over as Telegram messages: a card
|
|
6
|
+
* with an inline keyboard, edited in place as picks change and stripped of
|
|
7
|
+
* its buttons once the question closes.
|
|
8
|
+
*/
|
|
9
|
+
export class TelegramQuestionCards {
|
|
10
|
+
deps;
|
|
11
|
+
messages = new Map();
|
|
12
|
+
constructor(deps) {
|
|
13
|
+
this.deps = deps;
|
|
14
|
+
}
|
|
15
|
+
async render(update) {
|
|
16
|
+
const api = this.deps.api();
|
|
17
|
+
const chatId = this.deps.chatId();
|
|
18
|
+
if (!api || chatId === null)
|
|
19
|
+
return;
|
|
20
|
+
try {
|
|
21
|
+
if (update.kind === 'problem') {
|
|
22
|
+
await api.sendMessage(chatId, update.text);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const text = truncate(update.card.text, CARD_LIMIT);
|
|
26
|
+
const markup = keyboard(update.card);
|
|
27
|
+
const messageId = this.messages.get(update.card.questionId);
|
|
28
|
+
if (update.kind === 'show' || messageId === undefined) {
|
|
29
|
+
const sent = await api.sendMessage(chatId, text, { reply_markup: markup });
|
|
30
|
+
this.messages.set(update.card.questionId, sent.message_id);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await api.editMessageText(chatId, messageId, text, { reply_markup: markup });
|
|
34
|
+
}
|
|
35
|
+
if (update.kind === 'closed')
|
|
36
|
+
this.messages.delete(update.card.questionId);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
this.deps.logger?.warn('telegram question card failed', { err: String(err) });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function keyboard(card) {
|
|
44
|
+
return { inline_keyboard: card.rows.map((row) => row.map((button) => ({ text: button.label, callback_data: button.data }))) };
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=question-cards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-cards.js","sourceRoot":"","sources":["../../src/channel/question-cards.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAsBrC,6EAA6E;AAC7E,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAIb;IAHF,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD,YACmB,IAIhB;QAJgB,SAAI,GAAJ,IAAI,CAIpB;IACA,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,MAAsB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QACpC,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,IAAkB;IAClC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChI,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { InputFile } from 'grammy';
|
|
2
|
+
import { type ImageUploadLimits } from '@moxxy/channel-kit';
|
|
3
|
+
import type { ToolImage } from '@moxxy/sdk';
|
|
4
|
+
/** The slice of grammy's `Api` sending a turn's images needs (the real client satisfies it). */
|
|
5
|
+
export interface TelegramImageSender {
|
|
6
|
+
sendPhoto(chatId: number, photo: InputFile): Promise<unknown>;
|
|
7
|
+
sendDocument(chatId: number, document: InputFile): Promise<unknown>;
|
|
8
|
+
sendMediaGroup(chatId: number, media: ReadonlyArray<{
|
|
9
|
+
type: 'photo';
|
|
10
|
+
media: InputFile;
|
|
11
|
+
}>): Promise<unknown>;
|
|
12
|
+
sendMessage(chatId: number, text: string, opts?: {
|
|
13
|
+
parse_mode?: 'HTML';
|
|
14
|
+
}): Promise<unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* An album holds 10 photos and a photo may be 10 MB; a turn sends its latest
|
|
18
|
+
* 10 images. Bot API uploads are capped at 50 MB per request.
|
|
19
|
+
*/
|
|
20
|
+
export declare const TELEGRAM_IMAGE_LIMITS: ImageUploadLimits;
|
|
21
|
+
export interface SendImagesLogger {
|
|
22
|
+
warn(msg: string, meta?: Record<string, unknown>): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Send the images tools returned in a turn under its reply: one as a photo,
|
|
26
|
+
* several as an album, an image Telegram cannot show as a photo as a file.
|
|
27
|
+
* A failed upload is logged and the rest still go; images left out (too many,
|
|
28
|
+
* too large) are counted in one line.
|
|
29
|
+
*/
|
|
30
|
+
export declare function sendToolImages(api: TelegramImageSender, chatId: number, images: ReadonlyArray<ToolImage>, logger?: SendImagesLogger): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=send-images.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-images.d.ts","sourceRoot":"","sources":["../../src/channel/send-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,gGAAgG;AAChG,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5G,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7F;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAKnC,CAAC;AAKF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,EAChC,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { InputFile } from 'grammy';
|
|
2
|
+
import { imageUploads } from '@moxxy/channel-kit';
|
|
3
|
+
/**
|
|
4
|
+
* An album holds 10 photos and a photo may be 10 MB; a turn sends its latest
|
|
5
|
+
* 10 images. Bot API uploads are capped at 50 MB per request.
|
|
6
|
+
*/
|
|
7
|
+
export const TELEGRAM_IMAGE_LIMITS = {
|
|
8
|
+
perMessage: 10,
|
|
9
|
+
maxMessageBytes: 50_000_000,
|
|
10
|
+
maxFileBytes: 10_000_000,
|
|
11
|
+
maxImages: 10,
|
|
12
|
+
};
|
|
13
|
+
/** Types Telegram shows as a photo; any other image goes out as a file. */
|
|
14
|
+
const PHOTO_TYPES = new Set(['image/png', 'image/jpeg', 'image/jpg', 'image/webp']);
|
|
15
|
+
/**
|
|
16
|
+
* Send the images tools returned in a turn under its reply: one as a photo,
|
|
17
|
+
* several as an album, an image Telegram cannot show as a photo as a file.
|
|
18
|
+
* A failed upload is logged and the rest still go; images left out (too many,
|
|
19
|
+
* too large) are counted in one line.
|
|
20
|
+
*/
|
|
21
|
+
export async function sendToolImages(api, chatId, images, logger) {
|
|
22
|
+
const { batches, left } = imageUploads(images, TELEGRAM_IMAGE_LIMITS);
|
|
23
|
+
for (const batch of batches) {
|
|
24
|
+
try {
|
|
25
|
+
if (batch.length > 1 && batch.every(isPhoto)) {
|
|
26
|
+
await api.sendMediaGroup(chatId, batch.map((file) => ({ type: 'photo', media: inputFile(file) })));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
for (const file of batch) {
|
|
30
|
+
if (isPhoto(file))
|
|
31
|
+
await api.sendPhoto(chatId, inputFile(file));
|
|
32
|
+
else
|
|
33
|
+
await api.sendDocument(chatId, inputFile(file));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
logger?.warn('telegram image upload failed', { err: String(err) });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (left > 0) {
|
|
42
|
+
try {
|
|
43
|
+
await api.sendMessage(chatId, `<i>${left} more image${left === 1 ? '' : 's'} not sent (too many or too large).</i>`, {
|
|
44
|
+
parse_mode: 'HTML',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
logger?.warn('telegram image note failed', { err: String(err) });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function isPhoto(file) {
|
|
53
|
+
return PHOTO_TYPES.has(file.mediaType);
|
|
54
|
+
}
|
|
55
|
+
function inputFile(file) {
|
|
56
|
+
return new InputFile(file.bytes, file.name);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=send-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-images.js","sourceRoot":"","sources":["../../src/channel/send-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAA4C,MAAM,oBAAoB,CAAC;AAW5F;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,UAAU,EAAE,EAAE;IACd,eAAe,EAAE,UAAU;IAC3B,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,2EAA2E;AAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAMpF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAwB,EACxB,MAAc,EACd,MAAgC,EAChC,MAAyB;IAEzB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,OAAO,CAAC,IAAI,CAAC;wBAAE,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;;wBAC3D,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wCAAwC,EAAE;gBACnH,UAAU,EAAE,MAAM;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAiB;IAChC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,IAAiB;IAClC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -124,7 +124,7 @@ async function renderModelPicker(ctx, model) {
|
|
|
124
124
|
await ctx.reply(screen.text, { parse_mode: 'HTML', reply_markup: screen.keyboard });
|
|
125
125
|
}
|
|
126
126
|
async function renderModePicker(ctx, session) {
|
|
127
|
-
// Special modes
|
|
127
|
+
// Special modes are hidden from the
|
|
128
128
|
// picker the same way they are in the TUI. See ModeDef.special.
|
|
129
129
|
const modes = session.modes.list().filter(isSelectableMode);
|
|
130
130
|
if (modes.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-handler.js","sourceRoot":"","sources":["../../src/channel/slash-handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"slash-handler.js","sourceRoot":"","sources":["../../src/channel/slash-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { TelegramApprovalResolver } from '../approval.js';
|
|
|
4
4
|
import type { TelegramPermissionResolver } from '../permission.js';
|
|
5
5
|
import type { ChannelHandle } from '@moxxy/sdk';
|
|
6
6
|
import type { FramePump } from './frame-pump.js';
|
|
7
|
+
import { type ChatQuestions } from '@moxxy/channel-kit';
|
|
7
8
|
import type { TelegramModel } from './model.js';
|
|
8
9
|
import type { AwaitingApprovalText } from './callback-handler.js';
|
|
9
10
|
import type { PairingHandler } from './pairing-handler.js';
|
|
@@ -20,6 +21,8 @@ export interface TextHandlerDeps {
|
|
|
20
21
|
readonly approvalResolver: TelegramApprovalResolver;
|
|
21
22
|
readonly permissionResolver: TelegramPermissionResolver;
|
|
22
23
|
readonly framePump: FramePump;
|
|
24
|
+
/** The conversation's open Questions; a plain reply answers the latest one. */
|
|
25
|
+
readonly questions: Pick<ChatQuestions, 'typed'>;
|
|
23
26
|
}
|
|
24
27
|
export interface TextHandlerCallbacks {
|
|
25
28
|
readonly setAwaitingApprovalText: (state: AwaitingApprovalText | null) => void;
|
|
@@ -38,7 +41,7 @@ export interface TextHandlerCallbacks {
|
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Top-level dispatch for inbound text messages: authorization gate,
|
|
41
|
-
* awaiting-approval-text capture, /cancel, slash routing, and finally
|
|
44
|
+
* awaiting-approval-text capture, a reply to an open Question, /cancel, slash routing, and finally
|
|
42
45
|
* the user-turn path.
|
|
43
46
|
*/
|
|
44
47
|
export declare function handleTextMessage(ctx: Context, state: TextHandlerState, deps: TextHandlerDeps, cb: TextHandlerCallbacks): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-handler.d.ts","sourceRoot":"","sources":["../../src/channel/text-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"text-handler.d.ts","sourceRoot":"","sources":["../../src/channel/text-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/E,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;wEAEoE;IACpE,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,oBAAoB,GACvB,OAAO,CAAC,IAAI,CAAC,CAoEf"}
|
|
@@ -2,7 +2,7 @@ import { applySessionAction } from '@moxxy/channel-kit';
|
|
|
2
2
|
import { runSlash } from './slash-handler.js';
|
|
3
3
|
/**
|
|
4
4
|
* Top-level dispatch for inbound text messages: authorization gate,
|
|
5
|
-
* awaiting-approval-text capture, /cancel, slash routing, and finally
|
|
5
|
+
* awaiting-approval-text capture, a reply to an open Question, /cancel, slash routing, and finally
|
|
6
6
|
* the user-turn path.
|
|
7
7
|
*/
|
|
8
8
|
export async function handleTextMessage(ctx, state, deps, cb) {
|
|
@@ -33,6 +33,10 @@ export async function handleTextMessage(ctx, state, deps, cb) {
|
|
|
33
33
|
}
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
+
// A reply to an open Question answers it; the turn that asked waits on it,
|
|
37
|
+
// so this too comes before the busy guard.
|
|
38
|
+
if (!text.startsWith('/') && (await deps.questions.typed(text)))
|
|
39
|
+
return;
|
|
36
40
|
// /cancel works even while busy; everything else routes through
|
|
37
41
|
// runSlash or the user-turn path.
|
|
38
42
|
if (text === '/cancel') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-handler.js","sourceRoot":"","sources":["../../src/channel/text-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"text-handler.js","sourceRoot":"","sources":["../../src/channel/text-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,QAKhC,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,QAGM,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC;4DACwD;IACxD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { channelTurnContext, driveTurn, subscribeTurn } from '@moxxy/channel-kit';
|
|
2
|
+
import { sendToolImages } from './send-images.js';
|
|
2
3
|
/** What the model must know about replying on Telegram (see channelTurnContext). */
|
|
3
4
|
export const TELEGRAM_TURN_CONTEXT = channelTurnContext({
|
|
4
5
|
service: 'Telegram',
|
|
@@ -47,6 +48,9 @@ export async function runUserTurn(ctx, deps, opts) {
|
|
|
47
48
|
signal: controller.signal,
|
|
48
49
|
});
|
|
49
50
|
await framePump.flush(true);
|
|
51
|
+
// The images tools returned go out under the reply.
|
|
52
|
+
if (bot)
|
|
53
|
+
await sendToolImages(bot.api, chatId, framePump.renderState.images(), logger);
|
|
50
54
|
// The text reply is now out. Speak the final assistant body if a voice
|
|
51
55
|
// reply is wired — isolated so a synth/transcode/transport failure can
|
|
52
56
|
// never break (or re-report) the already-delivered text turn.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-runner.js","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-runner.js","sourceRoot":"","sources":["../../src/channel/turn-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/channel.d.ts
CHANGED
|
@@ -58,6 +58,9 @@ export declare class TelegramChannel implements Channel<TelegramStartOpts> {
|
|
|
58
58
|
private readonly framePump;
|
|
59
59
|
private readonly typing;
|
|
60
60
|
private readonly pairing;
|
|
61
|
+
private readonly questions;
|
|
62
|
+
private readonly questionCards;
|
|
63
|
+
private detachQuestions;
|
|
61
64
|
constructor(opts: TelegramChannelOptions);
|
|
62
65
|
/** This channel's connect value (see {@link Channel.requestUrl}): the resolved
|
|
63
66
|
* bot's `t.me` link, surfaced by control surfaces as a QR / open-bot step.
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAEV,OAAO,EACP,aAAa,EACb,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAuB9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QACxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KACzD,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,eAAgB,YAAW,OAAO,CAAC,iBAAiB,CAAC;IAChE,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,GAAG,CAAoB;IAM/B,OAAO,CAAC,OAAO,CAAuB;IAItC,OAAO,CAAC,eAAe,CAAuB;IAI9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAqB;IAClC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAIzE,OAAO,CAAC,YAAY,CAAS;IAS7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAK/C,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,eAAe,CAA6B;gBAExC,IAAI,EAAE,sBAAsB;IAgCxC;;uFAEmF;IACnF,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED;;+CAE2C;IAC3C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,mBAAmB;IAUrB,KAAK,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsKjE,YAAY,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAInD,MAAM,IAAI,IAAI;IAId;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAIxD,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;IAgClB,0EAA0E;YAC5D,eAAe;IAS7B;;;;;OAKG;YACW,cAAc;IAkB5B;;;;;;OAMG;YACW,WAAW;IAUzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAM5B,qEAAqE;IACrE,OAAO,CAAC,WAAW;IAOnB,qEAAqE;IACrE,OAAO,CAAC,QAAQ;YAIF,WAAW;IA+CzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;CAoBzB"}
|