@llblab/pi-telegram 0.45.11 → 0.47.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/BACKLOG.md +5 -1
- package/CHANGELOG.md +12 -0
- package/README.md +6 -6
- package/dist/api/activity.d.ts +6 -0
- package/dist/api/activity.js +6 -0
- package/dist/api/commands.d.ts +6 -0
- package/dist/api/commands.js +6 -0
- package/dist/api/delivery.d.ts +6 -0
- package/dist/api/delivery.js +6 -0
- package/dist/api/inbound.d.ts +6 -0
- package/dist/api/inbound.js +6 -0
- package/dist/api/keyboard.d.ts +6 -0
- package/dist/api/keyboard.js +6 -0
- package/dist/api/outbound.d.ts +6 -0
- package/dist/api/outbound.js +6 -0
- package/dist/api/sections.d.ts +7 -0
- package/dist/api/sections.js +6 -0
- package/dist/api/status.d.ts +6 -0
- package/dist/api/status.js +6 -0
- package/dist/api/updates.d.ts +6 -0
- package/dist/api/updates.js +6 -0
- package/dist/api/voice.d.ts +6 -0
- package/dist/api/voice.js +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/lib/activity-verbosity.d.ts +52 -0
- package/dist/lib/activity-verbosity.js +596 -0
- package/dist/lib/activity.d.ts +220 -0
- package/dist/lib/activity.js +574 -0
- package/dist/lib/agent-messages.d.ts +28 -0
- package/dist/lib/agent-messages.js +86 -0
- package/dist/lib/bindings.d.ts +250 -0
- package/dist/lib/bindings.js +936 -0
- package/dist/lib/bus-api.d.ts +18 -0
- package/dist/lib/bus-api.js +254 -0
- package/dist/lib/bus-follower.d.ts +464 -0
- package/dist/lib/bus-follower.js +1686 -0
- package/dist/lib/bus-leader.d.ts +292 -0
- package/dist/lib/bus-leader.js +2242 -0
- package/dist/lib/bus-transport.d.ts +64 -0
- package/dist/lib/bus-transport.js +140 -0
- package/dist/lib/bus.d.ts +518 -0
- package/dist/lib/bus.js +2055 -0
- package/dist/lib/channel-posts.d.ts +170 -0
- package/dist/lib/channel-posts.js +611 -0
- package/dist/lib/command-templates.d.ts +70 -0
- package/dist/lib/command-templates.js +744 -0
- package/dist/lib/commands.d.ts +541 -0
- package/dist/lib/commands.js +1155 -0
- package/dist/lib/config.d.ts +252 -0
- package/dist/lib/config.js +889 -0
- package/dist/lib/delivery.d.ts +163 -0
- package/dist/lib/delivery.js +542 -0
- package/dist/lib/extension.d.ts +7 -0
- package/dist/lib/extension.js +1608 -0
- package/dist/lib/generative-app-worker.mjs +104 -0
- package/dist/lib/generative-apps.d.ts +212 -0
- package/dist/lib/generative-apps.js +1006 -0
- package/dist/lib/inbound.d.ts +91 -0
- package/dist/lib/inbound.js +502 -0
- package/dist/lib/journal.d.ts +665 -0
- package/dist/lib/journal.js +3701 -0
- package/dist/lib/keyboard.d.ts +23 -0
- package/dist/lib/keyboard.js +37 -0
- package/dist/lib/lifecycle.d.ts +157 -0
- package/dist/lib/lifecycle.js +395 -0
- package/dist/lib/locks.d.ts +164 -0
- package/dist/lib/locks.js +1208 -0
- package/dist/lib/logging.d.ts +50 -0
- package/dist/lib/logging.js +274 -0
- package/dist/lib/media.d.ts +181 -0
- package/dist/lib/media.js +602 -0
- package/dist/lib/menu-model.d.ts +217 -0
- package/dist/lib/menu-model.js +663 -0
- package/dist/lib/menu-queue.d.ts +37 -0
- package/dist/lib/menu-queue.js +408 -0
- package/dist/lib/menu-settings.d.ts +116 -0
- package/dist/lib/menu-settings.js +595 -0
- package/dist/lib/menu-status.d.ts +32 -0
- package/dist/lib/menu-status.js +112 -0
- package/dist/lib/menu-thinking.d.ts +29 -0
- package/dist/lib/menu-thinking.js +82 -0
- package/dist/lib/menu.d.ts +171 -0
- package/dist/lib/menu.js +323 -0
- package/dist/lib/model.d.ts +127 -0
- package/dist/lib/model.js +409 -0
- package/dist/lib/outbound-attachments.d.ts +241 -0
- package/dist/lib/outbound-attachments.js +639 -0
- package/dist/lib/outbound-buttons.d.ts +69 -0
- package/dist/lib/outbound-buttons.js +248 -0
- package/dist/lib/outbound-markup.d.ts +42 -0
- package/dist/lib/outbound-markup.js +678 -0
- package/dist/lib/outbound-voice.d.ts +55 -0
- package/dist/lib/outbound-voice.js +152 -0
- package/dist/lib/outbound.d.ts +185 -0
- package/dist/lib/outbound.js +516 -0
- package/dist/lib/ownership.d.ts +77 -0
- package/dist/lib/ownership.js +174 -0
- package/dist/lib/paths.d.ts +40 -0
- package/dist/lib/paths.js +94 -0
- package/dist/lib/pi.d.ts +72 -0
- package/dist/lib/pi.js +121 -0
- package/dist/lib/polling.d.ts +351 -0
- package/dist/lib/polling.js +1196 -0
- package/dist/lib/preview.d.ts +192 -0
- package/dist/lib/preview.js +614 -0
- package/dist/lib/prompt-templates.d.ts +24 -0
- package/dist/lib/prompt-templates.js +118 -0
- package/dist/lib/prompts.d.ts +57 -0
- package/dist/lib/prompts.js +167 -0
- package/dist/lib/queue.d.ts +766 -0
- package/dist/lib/queue.js +1965 -0
- package/dist/lib/recovery.d.ts +86 -0
- package/dist/lib/recovery.js +285 -0
- package/dist/lib/rendering.d.ts +20 -0
- package/dist/lib/rendering.js +983 -0
- package/dist/lib/replies.d.ts +214 -0
- package/dist/lib/replies.js +737 -0
- package/dist/lib/routing.d.ts +207 -0
- package/dist/lib/routing.js +2282 -0
- package/dist/lib/runtime.d.ts +172 -0
- package/dist/lib/runtime.js +402 -0
- package/dist/lib/sections.d.ts +165 -0
- package/dist/lib/sections.js +327 -0
- package/dist/lib/setup.d.ts +82 -0
- package/dist/lib/setup.js +150 -0
- package/dist/lib/skills.d.ts +8 -0
- package/dist/lib/skills.js +12 -0
- package/dist/lib/status.d.ts +442 -0
- package/dist/lib/status.js +1006 -0
- package/dist/lib/sync.d.ts +179 -0
- package/dist/lib/sync.js +782 -0
- package/dist/lib/target.d.ts +20 -0
- package/dist/lib/target.js +27 -0
- package/dist/lib/telegram-api.d.ts +541 -0
- package/dist/lib/telegram-api.js +1159 -0
- package/dist/lib/text-groups.d.ts +89 -0
- package/dist/lib/text-groups.js +317 -0
- package/dist/lib/thread-cleanup-manager.d.ts +288 -0
- package/dist/lib/thread-cleanup-manager.js +560 -0
- package/dist/lib/thread-display.d.ts +46 -0
- package/dist/lib/thread-display.js +257 -0
- package/dist/lib/thread-naming.d.ts +46 -0
- package/dist/lib/thread-naming.js +78 -0
- package/dist/lib/thread-reconciler.d.ts +239 -0
- package/dist/lib/thread-reconciler.js +644 -0
- package/dist/lib/threads.d.ts +621 -0
- package/dist/lib/threads.js +3679 -0
- package/dist/lib/time-injection.d.ts +15 -0
- package/dist/lib/time-injection.js +56 -0
- package/dist/lib/turns.d.ts +109 -0
- package/dist/lib/turns.js +500 -0
- package/dist/lib/updates.d.ts +1290 -0
- package/dist/lib/updates.js +3634 -0
- package/dist/lib/voice.d.ts +117 -0
- package/dist/lib/voice.js +174 -0
- package/dist/lib/workspace-admission.d.ts +264 -0
- package/dist/lib/workspace-admission.js +1136 -0
- package/dist/lib/workspace-retirement.d.ts +219 -0
- package/dist/lib/workspace-retirement.js +587 -0
- package/dist/lib/workspace-slots.d.ts +30 -0
- package/dist/lib/workspace-slots.js +54 -0
- package/dist/package.json +126 -0
- package/dist/pi-telegram/index.js +1 -0
- package/dist/skills/generated-control-surface/SKILL.md +107 -0
- package/dist/skills/generated-control-surface/references/capability-adapters.md +27 -0
- package/dist/skills/generated-control-surface/references/layout-and-state.md +37 -0
- package/dist/skills/generative-apps/SKILL.md +115 -0
- package/dist/skills/show-me/SKILL.md +166 -0
- package/dist/skills/show-me/references/telegram-surfaces.md +43 -0
- package/dist/skills/telegram-bridge/SKILL.md +129 -0
- package/dist/skills/telegram-bridge/references/configuration.md +15 -0
- package/dist/skills/telegram-bridge/references/delivery-and-threads.md +27 -0
- package/dist/skills/telegram-bridge/references/diagnosis.md +18 -0
- package/docs/architecture.md +1 -1
- package/docs/compact-matrix-literal.md +10 -3
- package/docs/generative-apps.md +15 -13
- package/docs/multi-instance-bus.md +17 -3
- package/docs/outbound.md +1 -1
- package/docs/public-api.md +2 -2
- package/lib/bindings.ts +89 -6
- package/lib/bus-follower.ts +11 -3
- package/lib/bus-leader.ts +57 -20
- package/lib/bus.ts +12 -2
- package/lib/commands.ts +2 -2
- package/lib/config.ts +14 -7
- package/lib/delivery.ts +38 -6
- package/lib/extension.ts +26 -1
- package/lib/generative-apps.ts +379 -13
- package/lib/menu-settings.ts +21 -5
- package/lib/outbound-markup.ts +16 -7
- package/lib/pi.ts +4 -0
- package/lib/sync.ts +3 -0
- package/lib/telegram-api.ts +12 -1
- package/lib/thread-cleanup-manager.ts +36 -6
- package/lib/thread-display.ts +96 -18
- package/lib/threads.ts +150 -30
- package/package.json +56 -13
- package/scripts/build-dist.mjs +44 -0
- package/scripts/measure-bus.mjs +8 -1
- package/scripts/measure-workspace.mjs +8 -1
- package/skills/generative-apps/SKILL.md +1 -1
- package/skills/show-me/SKILL.md +1 -1
- package/skills/telegram-bridge/SKILL.md +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telegram model menu UI helpers
|
|
3
|
+
* Zones: telegram ui, model controls, menu composition
|
|
4
|
+
* Owns model-menu state, scoped model pages, model callback planning, and model-menu message rendering
|
|
5
|
+
*/
|
|
6
|
+
import type { TelegramInlineKeyboardMarkup } from "./keyboard.ts";
|
|
7
|
+
import { type MenuModel, type ScopedTelegramModel, type ThinkingLevel } from "./model.ts";
|
|
8
|
+
export type TelegramModelScope = "all" | "scoped";
|
|
9
|
+
export interface TelegramModelMenuState<TModel extends MenuModel = MenuModel> {
|
|
10
|
+
chatId: number;
|
|
11
|
+
threadId?: number;
|
|
12
|
+
messageId: number;
|
|
13
|
+
page: number;
|
|
14
|
+
scope: TelegramModelScope;
|
|
15
|
+
scopedModels: ScopedTelegramModel<TModel>[];
|
|
16
|
+
allModels: ScopedTelegramModel<TModel>[];
|
|
17
|
+
note?: string;
|
|
18
|
+
selectedModelIndex?: number;
|
|
19
|
+
selectedModelKey?: string;
|
|
20
|
+
scopedModelPatterns?: string[];
|
|
21
|
+
canMutateScope?: boolean;
|
|
22
|
+
mode: "status" | "model" | "model-pages" | "model-detail" | "thinking" | "queue" | "settings";
|
|
23
|
+
}
|
|
24
|
+
export interface StoredTelegramModelMenuState<TModel extends MenuModel = MenuModel> {
|
|
25
|
+
state: TelegramModelMenuState<TModel>;
|
|
26
|
+
updatedAt: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TelegramModelMenuStoreOptions {
|
|
29
|
+
maxAgeMs: number;
|
|
30
|
+
maxStoredMenus: number;
|
|
31
|
+
now?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface CachedTelegramModelMenuInputs<TModel extends MenuModel = MenuModel> {
|
|
34
|
+
expiresAt: number;
|
|
35
|
+
availableModels: TModel[];
|
|
36
|
+
configuredScopedModelPatterns: string[];
|
|
37
|
+
cliScopedModelPatterns?: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface TelegramModelMenuInputCacheDeps<TModel extends MenuModel = MenuModel> {
|
|
40
|
+
cacheTtlMs: number;
|
|
41
|
+
now?: number;
|
|
42
|
+
reloadSettings: () => Promise<void>;
|
|
43
|
+
refreshAvailableModels: () => TModel[];
|
|
44
|
+
getConfiguredScopedModelPatterns: () => string[] | undefined;
|
|
45
|
+
getCliScopedModelPatterns: () => string[] | undefined;
|
|
46
|
+
}
|
|
47
|
+
export interface TelegramModelMenuRuntimeContext<TModel extends MenuModel = MenuModel> {
|
|
48
|
+
modelRegistry: {
|
|
49
|
+
refresh: () => void;
|
|
50
|
+
getAvailable: () => TModel[];
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface TelegramModelMenuRuntimeOptions<TContext extends TelegramModelMenuRuntimeContext<TModel>, TModel extends MenuModel = MenuModel> {
|
|
54
|
+
chatId: number;
|
|
55
|
+
threadId?: number;
|
|
56
|
+
activeModel: TModel | undefined;
|
|
57
|
+
cachedInputs: CachedTelegramModelMenuInputs<TModel> | undefined;
|
|
58
|
+
cacheTtlMs: number;
|
|
59
|
+
ctx: TContext;
|
|
60
|
+
reloadSettings: () => Promise<void>;
|
|
61
|
+
getConfiguredScopedModelPatterns: () => string[] | undefined;
|
|
62
|
+
getCliScopedModelPatterns?: () => string[] | undefined;
|
|
63
|
+
}
|
|
64
|
+
export interface MenuSettingsManager {
|
|
65
|
+
reload?: () => Promise<void>;
|
|
66
|
+
flush?: () => Promise<void>;
|
|
67
|
+
getEnabledModels: () => string[] | undefined;
|
|
68
|
+
setEnabledModels?: (patterns: string[] | undefined) => void;
|
|
69
|
+
}
|
|
70
|
+
export type TelegramModelMenuStateBuilderContext<TModel extends MenuModel = MenuModel> = TelegramModelMenuRuntimeContext<TModel> & {
|
|
71
|
+
cwd: string;
|
|
72
|
+
};
|
|
73
|
+
export interface TelegramModelMenuStateBuilderDeps<TModel extends MenuModel = MenuModel, TContext extends TelegramModelMenuStateBuilderContext<TModel> = TelegramModelMenuStateBuilderContext<TModel>> {
|
|
74
|
+
runtime: TelegramModelMenuRuntime<TModel>;
|
|
75
|
+
createSettingsManager: (cwd: string) => MenuSettingsManager | PromiseLike<MenuSettingsManager>;
|
|
76
|
+
getActiveModel: (ctx: TContext) => TModel | undefined;
|
|
77
|
+
}
|
|
78
|
+
export type TelegramReplyMarkup = TelegramInlineKeyboardMarkup;
|
|
79
|
+
export interface TelegramMenuMessageRuntimeDeps {
|
|
80
|
+
editInteractiveMessage: (chatId: number, messageId: number, text: string, mode: "markdown" | "html" | "plain", replyMarkup: TelegramReplyMarkup) => Promise<void>;
|
|
81
|
+
sendInteractiveMessage: (chatId: number, text: string, mode: "markdown" | "html" | "plain", replyMarkup: TelegramReplyMarkup, options?: {
|
|
82
|
+
target?: {
|
|
83
|
+
chatId: number;
|
|
84
|
+
threadId?: number;
|
|
85
|
+
};
|
|
86
|
+
}) => Promise<number | undefined>;
|
|
87
|
+
}
|
|
88
|
+
export type TelegramModelMenuCallbackDeps<TModel extends MenuModel = MenuModel> = {
|
|
89
|
+
answerCallbackQuery: (callbackQueryId: string, text?: string) => Promise<void>;
|
|
90
|
+
updateModelMenuMessage: () => Promise<void>;
|
|
91
|
+
updateStatusMessage: () => Promise<void>;
|
|
92
|
+
persistScopedModelPatterns?: (patterns: string[]) => Promise<void>;
|
|
93
|
+
setModel: (model: TModel) => Promise<boolean>;
|
|
94
|
+
setCurrentModel: (model: TModel) => void;
|
|
95
|
+
setThinkingLevel: (level: ThinkingLevel) => void;
|
|
96
|
+
stagePendingModelSwitch: (selection: ScopedTelegramModel<TModel>) => void;
|
|
97
|
+
restartInterruptedTelegramTurn: (selection: ScopedTelegramModel<TModel>) => Promise<boolean> | boolean;
|
|
98
|
+
};
|
|
99
|
+
export interface TelegramModelMenuOpenDeps<TModel extends MenuModel = MenuModel> {
|
|
100
|
+
isIdle: () => boolean;
|
|
101
|
+
canOfferInFlightModelSwitch: () => boolean;
|
|
102
|
+
sendBusyMessage: () => Promise<void>;
|
|
103
|
+
sendNoModelsMessage: () => Promise<void>;
|
|
104
|
+
getModelMenuState: () => Promise<TelegramModelMenuState<TModel>>;
|
|
105
|
+
getActiveModel: () => TModel | undefined;
|
|
106
|
+
sendModelMenu: (state: TelegramModelMenuState<TModel>, activeModel: TModel | undefined) => Promise<number | undefined>;
|
|
107
|
+
storeModelMenuState: (state: TelegramModelMenuState<TModel>) => void;
|
|
108
|
+
}
|
|
109
|
+
export interface BuildTelegramModelMenuStateParams<TModel extends MenuModel = MenuModel> {
|
|
110
|
+
chatId: number;
|
|
111
|
+
threadId?: number;
|
|
112
|
+
activeModel: TModel | undefined;
|
|
113
|
+
availableModels: TModel[];
|
|
114
|
+
configuredScopedModelPatterns: string[];
|
|
115
|
+
cliScopedModelPatterns?: string[];
|
|
116
|
+
}
|
|
117
|
+
export type TelegramMenuMutationResult = "invalid" | "unchanged" | "changed";
|
|
118
|
+
export type TelegramMenuSelectionResult<TModel extends MenuModel = MenuModel> = {
|
|
119
|
+
kind: "invalid";
|
|
120
|
+
} | {
|
|
121
|
+
kind: "missing";
|
|
122
|
+
} | {
|
|
123
|
+
kind: "selected";
|
|
124
|
+
selection: ScopedTelegramModel<TModel>;
|
|
125
|
+
};
|
|
126
|
+
export interface TelegramModelMenuPage<TModel extends MenuModel = MenuModel> {
|
|
127
|
+
page: number;
|
|
128
|
+
pageCount: number;
|
|
129
|
+
start: number;
|
|
130
|
+
items: ScopedTelegramModel<TModel>[];
|
|
131
|
+
}
|
|
132
|
+
export interface TelegramMenuRenderPayload {
|
|
133
|
+
nextMode: TelegramModelMenuState["mode"];
|
|
134
|
+
text: string;
|
|
135
|
+
mode: "markdown" | "html" | "plain";
|
|
136
|
+
replyMarkup: TelegramReplyMarkup;
|
|
137
|
+
}
|
|
138
|
+
export type TelegramModelCallbackPlan<TModel extends MenuModel = MenuModel> = {
|
|
139
|
+
kind: "ignore";
|
|
140
|
+
} | {
|
|
141
|
+
kind: "answer";
|
|
142
|
+
text?: string;
|
|
143
|
+
} | {
|
|
144
|
+
kind: "update-menu";
|
|
145
|
+
text?: string;
|
|
146
|
+
} | {
|
|
147
|
+
kind: "persist-scope";
|
|
148
|
+
patterns: string[];
|
|
149
|
+
text: string;
|
|
150
|
+
} | {
|
|
151
|
+
kind: "refresh-status";
|
|
152
|
+
selection: ScopedTelegramModel<TModel>;
|
|
153
|
+
callbackText: string;
|
|
154
|
+
shouldApplyThinkingLevel: boolean;
|
|
155
|
+
} | {
|
|
156
|
+
kind: "switch-model";
|
|
157
|
+
selection: ScopedTelegramModel<TModel>;
|
|
158
|
+
mode: "idle" | "restart-now" | "restart-after-tool";
|
|
159
|
+
callbackText: string;
|
|
160
|
+
};
|
|
161
|
+
export interface BuildTelegramModelCallbackPlanParams<TModel extends MenuModel = MenuModel> {
|
|
162
|
+
data: string | undefined;
|
|
163
|
+
state: TelegramModelMenuState<TModel>;
|
|
164
|
+
activeModel: TModel | undefined;
|
|
165
|
+
currentThinkingLevel: ThinkingLevel;
|
|
166
|
+
isIdle: boolean;
|
|
167
|
+
canRestartBusyRun: boolean;
|
|
168
|
+
hasActiveToolExecutions: boolean;
|
|
169
|
+
}
|
|
170
|
+
export interface TelegramModelMenuRuntime<TModel extends MenuModel = MenuModel> {
|
|
171
|
+
storeState: (state: TelegramModelMenuState<TModel>) => void;
|
|
172
|
+
getState: (messageId: number | undefined, chatId?: number) => TelegramModelMenuState<TModel> | undefined;
|
|
173
|
+
clear: () => void;
|
|
174
|
+
clearCachedInputs: () => void;
|
|
175
|
+
buildState: <TContext extends TelegramModelMenuRuntimeContext<TModel>>(options: Omit<TelegramModelMenuRuntimeOptions<TContext, TModel>, "cachedInputs" | "cacheTtlMs">) => Promise<TelegramModelMenuState<TModel>>;
|
|
176
|
+
}
|
|
177
|
+
export declare const TELEGRAM_MODEL_PAGE_SIZE = 6;
|
|
178
|
+
export declare const MODEL_MENU_TITLE = "<b>\uD83E\uDD16 Choose a model:</b>";
|
|
179
|
+
export declare const MODEL_PAGE_MENU_TITLE = "<b>Choose a page:</b>";
|
|
180
|
+
export declare const MODEL_DETAIL_MENU_TITLE = "<b>\uD83E\uDD16 Model:</b>";
|
|
181
|
+
export declare function formatScopedModelButtonText<TModel extends MenuModel = MenuModel>(entry: ScopedTelegramModel<TModel>, currentModel: TModel | undefined): string;
|
|
182
|
+
export declare function formatStatusButtonLabel(label: string, value: string): string;
|
|
183
|
+
export declare function getModelMenuItems<TModel extends MenuModel = MenuModel>(state: TelegramModelMenuState<TModel>): ScopedTelegramModel<TModel>[];
|
|
184
|
+
export declare function pruneStoredTelegramModelMenus<TModel extends MenuModel = MenuModel>(menus: Map<string, StoredTelegramModelMenuState<TModel>>, options: TelegramModelMenuStoreOptions): void;
|
|
185
|
+
export declare function storeTelegramModelMenuState<TModel extends MenuModel = MenuModel>(menus: Map<string, StoredTelegramModelMenuState<TModel>>, state: TelegramModelMenuState<TModel>, options: TelegramModelMenuStoreOptions): void;
|
|
186
|
+
export declare function getStoredTelegramModelMenuState<TModel extends MenuModel = MenuModel>(menus: Map<string, StoredTelegramModelMenuState<TModel>>, messageId: number | undefined, options: TelegramModelMenuStoreOptions, chatId?: number): TelegramModelMenuState<TModel> | undefined;
|
|
187
|
+
export declare function createTelegramModelMenuRuntime<TModel extends MenuModel = MenuModel>(options?: Partial<TelegramModelMenuStoreOptions>): TelegramModelMenuRuntime<TModel>;
|
|
188
|
+
export declare function createTelegramModelMenuStateBuilder<TModel extends MenuModel = MenuModel, TContext extends TelegramModelMenuStateBuilderContext<TModel> = TelegramModelMenuStateBuilderContext<TModel>>(deps: TelegramModelMenuStateBuilderDeps<TModel, TContext>): (chatId: number, ctx: TContext, threadId?: number) => Promise<TelegramModelMenuState<TModel>>;
|
|
189
|
+
export declare function resolveCachedTelegramModelMenuInputs<TModel extends MenuModel = MenuModel>(cachedInputs: CachedTelegramModelMenuInputs<TModel> | undefined, deps: TelegramModelMenuInputCacheDeps<TModel>): Promise<CachedTelegramModelMenuInputs<TModel>>;
|
|
190
|
+
export declare function buildTelegramModelMenuState<TModel extends MenuModel = MenuModel>(params: BuildTelegramModelMenuStateParams<TModel>): TelegramModelMenuState<TModel>;
|
|
191
|
+
export declare function buildTelegramModelMenuStateRuntime<TContext extends TelegramModelMenuRuntimeContext<TModel>, TModel extends MenuModel = MenuModel>(options: TelegramModelMenuRuntimeOptions<TContext, TModel>): Promise<{
|
|
192
|
+
state: TelegramModelMenuState<TModel>;
|
|
193
|
+
cachedInputs: CachedTelegramModelMenuInputs<TModel>;
|
|
194
|
+
}>;
|
|
195
|
+
export declare function applyTelegramModelScopeSelection(state: TelegramModelMenuState, value: string | undefined): TelegramMenuMutationResult;
|
|
196
|
+
export declare function applyTelegramModelPageSelection(state: TelegramModelMenuState, value: string | undefined): TelegramMenuMutationResult;
|
|
197
|
+
export declare function getTelegramModelSelection<TModel extends MenuModel = MenuModel>(state: TelegramModelMenuState<TModel>, value: string | undefined): TelegramMenuSelectionResult<TModel>;
|
|
198
|
+
export declare function applyTelegramModelDetailSelection(state: TelegramModelMenuState, value: string | undefined): TelegramMenuMutationResult;
|
|
199
|
+
export declare function getTelegramSelectedDetailModel<TModel extends MenuModel = MenuModel>(state: TelegramModelMenuState<TModel>): TelegramMenuSelectionResult<TModel>;
|
|
200
|
+
export declare function isTelegramModelScoped(state: TelegramModelMenuState, model: MenuModel): boolean;
|
|
201
|
+
export declare function focusTelegramModelListPage(state: TelegramModelMenuState, model: MenuModel, pageSize?: number): void;
|
|
202
|
+
export declare function setTelegramModelScope(state: TelegramModelMenuState, model: MenuModel, enabled: boolean): {
|
|
203
|
+
patterns: string[];
|
|
204
|
+
enabled: boolean;
|
|
205
|
+
};
|
|
206
|
+
export declare function buildTelegramModelCallbackPlan<TModel extends MenuModel = MenuModel>(params: BuildTelegramModelCallbackPlanParams<TModel>): TelegramModelCallbackPlan<TModel>;
|
|
207
|
+
export declare function openTelegramModelMenu<TModel extends MenuModel = MenuModel>(deps: TelegramModelMenuOpenDeps<TModel>): Promise<void>;
|
|
208
|
+
export declare function handleTelegramModelMenuCallbackAction<TModel extends MenuModel = MenuModel>(callbackQueryId: string, params: BuildTelegramModelCallbackPlanParams<TModel>, deps: TelegramModelMenuCallbackDeps<TModel>): Promise<boolean>;
|
|
209
|
+
export declare function getTelegramModelMenuPage(state: TelegramModelMenuState, pageSize: number): TelegramModelMenuPage;
|
|
210
|
+
export declare function buildModelMenuReplyMarkup(state: TelegramModelMenuState, currentModel: MenuModel | undefined, pageSize: number): TelegramReplyMarkup;
|
|
211
|
+
export declare function buildModelDetailMenuReplyMarkup(state: TelegramModelMenuState, currentModel: MenuModel | undefined): TelegramReplyMarkup;
|
|
212
|
+
export declare function buildModelDetailMenuText(state: TelegramModelMenuState): string;
|
|
213
|
+
export declare function buildModelPageMenuReplyMarkup(state: TelegramModelMenuState, pageSize: number): TelegramReplyMarkup;
|
|
214
|
+
export declare function buildTelegramModelPageMenuRenderPayload(state: TelegramModelMenuState): TelegramMenuRenderPayload;
|
|
215
|
+
export declare function buildTelegramModelMenuRenderPayload(state: TelegramModelMenuState, activeModel: MenuModel | undefined): TelegramMenuRenderPayload;
|
|
216
|
+
export declare function updateTelegramModelMenuMessage(state: TelegramModelMenuState, activeModel: MenuModel | undefined, deps: TelegramMenuMessageRuntimeDeps): Promise<void>;
|
|
217
|
+
export declare function sendTelegramModelMenuMessage(state: TelegramModelMenuState, activeModel: MenuModel | undefined, deps: TelegramMenuMessageRuntimeDeps): Promise<number | undefined>;
|