@llblab/pi-telegram 0.46.0 → 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.
Files changed (199) hide show
  1. package/BACKLOG.md +0 -1
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +2 -2
  4. package/dist/api/activity.d.ts +6 -0
  5. package/dist/api/activity.js +6 -0
  6. package/dist/api/commands.d.ts +6 -0
  7. package/dist/api/commands.js +6 -0
  8. package/dist/api/delivery.d.ts +6 -0
  9. package/dist/api/delivery.js +6 -0
  10. package/dist/api/inbound.d.ts +6 -0
  11. package/dist/api/inbound.js +6 -0
  12. package/dist/api/keyboard.d.ts +6 -0
  13. package/dist/api/keyboard.js +6 -0
  14. package/dist/api/outbound.d.ts +6 -0
  15. package/dist/api/outbound.js +6 -0
  16. package/dist/api/sections.d.ts +7 -0
  17. package/dist/api/sections.js +6 -0
  18. package/dist/api/status.d.ts +6 -0
  19. package/dist/api/status.js +6 -0
  20. package/dist/api/updates.d.ts +6 -0
  21. package/dist/api/updates.js +6 -0
  22. package/dist/api/voice.d.ts +6 -0
  23. package/dist/api/voice.js +6 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.js +6 -0
  26. package/dist/lib/activity-verbosity.d.ts +52 -0
  27. package/dist/lib/activity-verbosity.js +596 -0
  28. package/dist/lib/activity.d.ts +220 -0
  29. package/dist/lib/activity.js +574 -0
  30. package/dist/lib/agent-messages.d.ts +28 -0
  31. package/dist/lib/agent-messages.js +86 -0
  32. package/dist/lib/bindings.d.ts +250 -0
  33. package/dist/lib/bindings.js +936 -0
  34. package/dist/lib/bus-api.d.ts +18 -0
  35. package/dist/lib/bus-api.js +254 -0
  36. package/dist/lib/bus-follower.d.ts +464 -0
  37. package/dist/lib/bus-follower.js +1686 -0
  38. package/dist/lib/bus-leader.d.ts +292 -0
  39. package/dist/lib/bus-leader.js +2242 -0
  40. package/dist/lib/bus-transport.d.ts +64 -0
  41. package/dist/lib/bus-transport.js +140 -0
  42. package/dist/lib/bus.d.ts +518 -0
  43. package/dist/lib/bus.js +2055 -0
  44. package/dist/lib/channel-posts.d.ts +170 -0
  45. package/dist/lib/channel-posts.js +611 -0
  46. package/dist/lib/command-templates.d.ts +70 -0
  47. package/dist/lib/command-templates.js +744 -0
  48. package/dist/lib/commands.d.ts +541 -0
  49. package/dist/lib/commands.js +1155 -0
  50. package/dist/lib/config.d.ts +252 -0
  51. package/dist/lib/config.js +889 -0
  52. package/dist/lib/delivery.d.ts +163 -0
  53. package/dist/lib/delivery.js +542 -0
  54. package/dist/lib/extension.d.ts +7 -0
  55. package/dist/lib/extension.js +1608 -0
  56. package/dist/lib/generative-app-worker.mjs +104 -0
  57. package/dist/lib/generative-apps.d.ts +212 -0
  58. package/dist/lib/generative-apps.js +1006 -0
  59. package/dist/lib/inbound.d.ts +91 -0
  60. package/dist/lib/inbound.js +502 -0
  61. package/dist/lib/journal.d.ts +665 -0
  62. package/dist/lib/journal.js +3701 -0
  63. package/dist/lib/keyboard.d.ts +23 -0
  64. package/dist/lib/keyboard.js +37 -0
  65. package/dist/lib/lifecycle.d.ts +157 -0
  66. package/dist/lib/lifecycle.js +395 -0
  67. package/dist/lib/locks.d.ts +164 -0
  68. package/dist/lib/locks.js +1208 -0
  69. package/dist/lib/logging.d.ts +50 -0
  70. package/dist/lib/logging.js +274 -0
  71. package/dist/lib/media.d.ts +181 -0
  72. package/dist/lib/media.js +602 -0
  73. package/dist/lib/menu-model.d.ts +217 -0
  74. package/dist/lib/menu-model.js +663 -0
  75. package/dist/lib/menu-queue.d.ts +37 -0
  76. package/dist/lib/menu-queue.js +408 -0
  77. package/dist/lib/menu-settings.d.ts +116 -0
  78. package/dist/lib/menu-settings.js +595 -0
  79. package/dist/lib/menu-status.d.ts +32 -0
  80. package/dist/lib/menu-status.js +112 -0
  81. package/dist/lib/menu-thinking.d.ts +29 -0
  82. package/dist/lib/menu-thinking.js +82 -0
  83. package/dist/lib/menu.d.ts +171 -0
  84. package/dist/lib/menu.js +323 -0
  85. package/dist/lib/model.d.ts +127 -0
  86. package/dist/lib/model.js +409 -0
  87. package/dist/lib/outbound-attachments.d.ts +241 -0
  88. package/dist/lib/outbound-attachments.js +639 -0
  89. package/dist/lib/outbound-buttons.d.ts +69 -0
  90. package/dist/lib/outbound-buttons.js +248 -0
  91. package/dist/lib/outbound-markup.d.ts +42 -0
  92. package/dist/lib/outbound-markup.js +678 -0
  93. package/dist/lib/outbound-voice.d.ts +55 -0
  94. package/dist/lib/outbound-voice.js +152 -0
  95. package/dist/lib/outbound.d.ts +185 -0
  96. package/dist/lib/outbound.js +516 -0
  97. package/dist/lib/ownership.d.ts +77 -0
  98. package/dist/lib/ownership.js +174 -0
  99. package/dist/lib/paths.d.ts +40 -0
  100. package/dist/lib/paths.js +94 -0
  101. package/dist/lib/pi.d.ts +72 -0
  102. package/dist/lib/pi.js +121 -0
  103. package/dist/lib/polling.d.ts +351 -0
  104. package/dist/lib/polling.js +1196 -0
  105. package/dist/lib/preview.d.ts +192 -0
  106. package/dist/lib/preview.js +614 -0
  107. package/dist/lib/prompt-templates.d.ts +24 -0
  108. package/dist/lib/prompt-templates.js +118 -0
  109. package/dist/lib/prompts.d.ts +57 -0
  110. package/dist/lib/prompts.js +167 -0
  111. package/dist/lib/queue.d.ts +766 -0
  112. package/dist/lib/queue.js +1965 -0
  113. package/dist/lib/recovery.d.ts +86 -0
  114. package/dist/lib/recovery.js +285 -0
  115. package/dist/lib/rendering.d.ts +20 -0
  116. package/dist/lib/rendering.js +983 -0
  117. package/dist/lib/replies.d.ts +214 -0
  118. package/dist/lib/replies.js +737 -0
  119. package/dist/lib/routing.d.ts +207 -0
  120. package/dist/lib/routing.js +2282 -0
  121. package/dist/lib/runtime.d.ts +172 -0
  122. package/dist/lib/runtime.js +402 -0
  123. package/dist/lib/sections.d.ts +165 -0
  124. package/dist/lib/sections.js +327 -0
  125. package/dist/lib/setup.d.ts +82 -0
  126. package/dist/lib/setup.js +150 -0
  127. package/dist/lib/skills.d.ts +8 -0
  128. package/dist/lib/skills.js +12 -0
  129. package/dist/lib/status.d.ts +442 -0
  130. package/dist/lib/status.js +1006 -0
  131. package/dist/lib/sync.d.ts +179 -0
  132. package/dist/lib/sync.js +782 -0
  133. package/dist/lib/target.d.ts +20 -0
  134. package/dist/lib/target.js +27 -0
  135. package/dist/lib/telegram-api.d.ts +541 -0
  136. package/dist/lib/telegram-api.js +1159 -0
  137. package/dist/lib/text-groups.d.ts +89 -0
  138. package/dist/lib/text-groups.js +317 -0
  139. package/dist/lib/thread-cleanup-manager.d.ts +288 -0
  140. package/dist/lib/thread-cleanup-manager.js +560 -0
  141. package/dist/lib/thread-display.d.ts +46 -0
  142. package/dist/lib/thread-display.js +257 -0
  143. package/dist/lib/thread-naming.d.ts +46 -0
  144. package/dist/lib/thread-naming.js +78 -0
  145. package/dist/lib/thread-reconciler.d.ts +239 -0
  146. package/dist/lib/thread-reconciler.js +644 -0
  147. package/dist/lib/threads.d.ts +621 -0
  148. package/dist/lib/threads.js +3679 -0
  149. package/dist/lib/time-injection.d.ts +15 -0
  150. package/dist/lib/time-injection.js +56 -0
  151. package/dist/lib/turns.d.ts +109 -0
  152. package/dist/lib/turns.js +500 -0
  153. package/dist/lib/updates.d.ts +1290 -0
  154. package/dist/lib/updates.js +3634 -0
  155. package/dist/lib/voice.d.ts +117 -0
  156. package/dist/lib/voice.js +174 -0
  157. package/dist/lib/workspace-admission.d.ts +264 -0
  158. package/dist/lib/workspace-admission.js +1136 -0
  159. package/dist/lib/workspace-retirement.d.ts +219 -0
  160. package/dist/lib/workspace-retirement.js +587 -0
  161. package/dist/lib/workspace-slots.d.ts +30 -0
  162. package/dist/lib/workspace-slots.js +54 -0
  163. package/dist/package.json +126 -0
  164. package/dist/pi-telegram/index.js +1 -0
  165. package/dist/skills/generated-control-surface/SKILL.md +107 -0
  166. package/dist/skills/generated-control-surface/references/capability-adapters.md +27 -0
  167. package/dist/skills/generated-control-surface/references/layout-and-state.md +37 -0
  168. package/dist/skills/generative-apps/SKILL.md +115 -0
  169. package/dist/skills/show-me/SKILL.md +166 -0
  170. package/dist/skills/show-me/references/telegram-surfaces.md +43 -0
  171. package/dist/skills/telegram-bridge/SKILL.md +129 -0
  172. package/dist/skills/telegram-bridge/references/configuration.md +15 -0
  173. package/dist/skills/telegram-bridge/references/delivery-and-threads.md +27 -0
  174. package/dist/skills/telegram-bridge/references/diagnosis.md +18 -0
  175. package/docs/architecture.md +1 -1
  176. package/docs/compact-matrix-literal.md +10 -3
  177. package/docs/generative-apps.md +15 -13
  178. package/docs/multi-instance-bus.md +4 -2
  179. package/docs/outbound.md +1 -1
  180. package/docs/public-api.md +2 -2
  181. package/lib/bindings.ts +89 -6
  182. package/lib/bus-follower.ts +7 -3
  183. package/lib/bus-leader.ts +44 -19
  184. package/lib/bus.ts +4 -1
  185. package/lib/commands.ts +2 -2
  186. package/lib/config.ts +14 -7
  187. package/lib/delivery.ts +38 -6
  188. package/lib/extension.ts +19 -0
  189. package/lib/generative-apps.ts +379 -13
  190. package/lib/menu-settings.ts +21 -5
  191. package/lib/outbound-markup.ts +16 -7
  192. package/lib/telegram-api.ts +12 -1
  193. package/lib/thread-display.ts +96 -18
  194. package/package.json +56 -13
  195. package/scripts/build-dist.mjs +44 -0
  196. package/scripts/measure-bus.mjs +8 -1
  197. package/scripts/measure-workspace.mjs +8 -1
  198. package/skills/generative-apps/SKILL.md +1 -1
  199. package/skills/telegram-bridge/SKILL.md +1 -1
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Telegram bridge binding composition
3
+ * Zones: telegram, pi agent, orchestration
4
+ * Owns pi-facing tool, command, and lifecycle hook registration for the entrypoint
5
+ */
6
+ import * as Activity from "./activity.ts";
7
+ import * as ActivityVerbosity from "./activity-verbosity.ts";
8
+ import * as ChannelPosts from "./channel-posts.ts";
9
+ import * as Commands from "./commands.ts";
10
+ import * as Config from "./config.ts";
11
+ import * as Keyboard from "./keyboard.ts";
12
+ import * as Lifecycle from "./lifecycle.ts";
13
+ import * as Locks from "./locks.ts";
14
+ import * as Model from "./model.ts";
15
+ import * as OutboundAttachments from "./outbound-attachments.ts";
16
+ import * as OutboundHandlers from "./outbound.ts";
17
+ import * as Pi from "./pi.ts";
18
+ import * as Preview from "./preview.ts";
19
+ import * as Prompts from "./prompts.ts";
20
+ import * as Queue from "./queue.ts";
21
+ import * as Routing from "./routing.ts";
22
+ import * as Runtime from "./runtime.ts";
23
+ import * as Setup from "./setup.ts";
24
+ import * as Status from "./status.ts";
25
+ import * as TelegramApi from "./telegram-api.ts";
26
+ import type { TelegramTarget } from "./target.ts";
27
+ import * as GenerativeApps from "./generative-apps.ts";
28
+ type ActivePiModel = NonNullable<Pi.ExtensionContext["model"]>;
29
+ type TelegramRuntimeEventRecorder = (category: string, error: unknown, details?: Record<string, unknown>) => void;
30
+ type TelegramBridgeStatusUpdater = Status.TelegramStatusRuntime<Pi.ExtensionContext>["updateStatus"];
31
+ type TelegramAgentTargetResolver = NonNullable<OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["resolveAgentTarget"]>;
32
+ type TelegramAgentMessageRouter = NonNullable<OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["routeAgentMessage"]>;
33
+ export interface TelegramQueueBindingRuntime<TContext> {
34
+ mutation: Queue.TelegramQueueMutationController<TContext>;
35
+ dispatchNext: (ctx: TContext) => void;
36
+ requestNextDispatchAnnouncement: () => void;
37
+ watchdog: Queue.TelegramQueueDispatchWatchdogRuntime<TContext>;
38
+ }
39
+ export declare function createTelegramQueueBindingRuntime<TContext>(deps: {
40
+ store: Queue.TelegramQueueStateStore<TContext>;
41
+ queue: Pick<Runtime.TelegramBridgeRuntime["queue"], "allocateItemOrder">;
42
+ lifecycle: Pick<Runtime.TelegramBridgeRuntime["lifecycle"], "isCompactionInProgress" | "hasDispatchPending">;
43
+ activeTurn: Pick<Queue.TelegramActiveTurnStore, "has">;
44
+ admission: {
45
+ getSettlement: () => {
46
+ onItemsDiscarded: (items: readonly Queue.TelegramQueueItem<TContext>[], ctx: TContext) => void;
47
+ isItemReady: (item: Queue.TelegramQueueItem<TContext>) => boolean;
48
+ onPromptHandedOff?: (item: Queue.PendingTelegramTurn, ctx: TContext) => void;
49
+ onControlSettled: (item: Queue.PendingTelegramControlItem<TContext>, ctx: TContext) => void;
50
+ } | undefined;
51
+ hasPendingQueueMutationForItem: (item: Queue.TelegramQueueItem<TContext>) => boolean;
52
+ };
53
+ transportStamp: Pick<Queue.TelegramTransportStampRuntime, "isActive">;
54
+ deferredDispatch: Pick<Queue.TelegramDeferredQueueDispatchRuntime<TContext>, "isBound" | "getGeneration" | "isGenerationActive">;
55
+ promptDispatch: Runtime.TelegramPromptDispatchRuntime<TContext>;
56
+ isIdle: (ctx: TContext) => boolean;
57
+ hasPendingMessages: (ctx: TContext) => boolean;
58
+ updateStatus: (ctx: TContext, error?: string) => void;
59
+ sendTextReply: Queue.TelegramQueueDispatchRuntimeDeps<TContext>["sendTextReply"];
60
+ sendUserMessage: Queue.TelegramQueueDispatchRuntimeDeps<TContext>["sendUserMessage"];
61
+ recordRuntimeEvent?: TelegramRuntimeEventRecorder;
62
+ }): TelegramQueueBindingRuntime<TContext>;
63
+ export interface TelegramGenerativeAppLiveSurfaceBinding {
64
+ get: () => GenerativeApps.GenerativeAppLiveSurfaceRuntime<GenerativeApps.TelegramBindLiveHandle> | undefined;
65
+ set: (runtime: GenerativeApps.GenerativeAppLiveSurfaceRuntime<GenerativeApps.TelegramBindLiveHandle> | undefined) => void;
66
+ shutdown: () => void;
67
+ }
68
+ export declare function createTelegramGenerativeAppLiveSurfaceBinding(): TelegramGenerativeAppLiveSurfaceBinding;
69
+ export declare function createTelegramGenerativeAppBoundButtonActionInvoker<TQuery extends {
70
+ message?: {
71
+ chat?: {
72
+ id?: number;
73
+ };
74
+ message_id?: number;
75
+ message_thread_id?: number;
76
+ };
77
+ }>(deps: {
78
+ agentDir: string;
79
+ assertExecutionCurrent: (query: TQuery) => void;
80
+ getExecutionFence: (query: TQuery) => GenerativeApps.GenerativeAppExecutionFence | undefined;
81
+ getActiveProfileName?: () => string | undefined;
82
+ getLiveSurfaceRuntime?: () => GenerativeApps.GenerativeAppLiveSurfaceRuntime<GenerativeApps.TelegramBindLiveHandle> | undefined;
83
+ planOutput: ReturnType<typeof OutboundHandlers.createTelegramOutboundReplyPlanner>;
84
+ sendMarkdownReply: (chatId: number, replyToMessageId: number, markdown: string, options?: {
85
+ replyMarkup?: OutboundHandlers.TelegramOutboundButtonMarkup;
86
+ }) => Promise<unknown>;
87
+ editInteractiveMessage?: (chatId: number, messageId: number, markdown: string, mode: "markdown", replyMarkup: OutboundHandlers.TelegramOutboundButtonMarkup) => Promise<void>;
88
+ recordRuntimeEvent: TelegramRuntimeEventRecorder;
89
+ }): (action: OutboundHandlers.TelegramOutboundButtonAction, query: TQuery) => Promise<false | "new" | "edit">;
90
+ export interface TelegramAgentMessageToolRoutingRuntime {
91
+ resolveAgentTarget: TelegramAgentTargetResolver;
92
+ routeAgentMessage: TelegramAgentMessageRouter;
93
+ canSendDirect: () => boolean;
94
+ }
95
+ export declare function createTelegramAgentMessageToolRoutingRuntime(deps: {
96
+ ownsLeader: () => boolean;
97
+ ownsDirectDelivery: () => boolean;
98
+ isFollowerRegistered: () => boolean;
99
+ getSourceTarget: () => TelegramTarget | undefined;
100
+ getSourceThreadName: () => string | undefined;
101
+ local: {
102
+ resolveTarget: (selector: Parameters<TelegramAgentTargetResolver>[0], sourceTarget?: TelegramTarget) => Awaited<ReturnType<TelegramAgentTargetResolver>> | undefined;
103
+ route: (input: {
104
+ sourceTarget?: TelegramTarget;
105
+ sourceThreadName?: string;
106
+ message: Parameters<TelegramAgentMessageRouter>[0];
107
+ }) => Promise<void>;
108
+ };
109
+ follower: {
110
+ resolveTarget: TelegramAgentTargetResolver;
111
+ routeMessage: TelegramAgentMessageRouter;
112
+ };
113
+ }): TelegramAgentMessageToolRoutingRuntime;
114
+ export interface TelegramAssistantOutputBindingRuntime<TTransportStamp> {
115
+ runtime: Activity.TelegramAssistantOutputRuntime;
116
+ observeEvent: (event: Activity.TelegramActivityEvent) => void;
117
+ authority: Routing.TelegramAssistantOutputAuthorityRuntime<TTransportStamp>;
118
+ }
119
+ export declare function createTelegramAssistantOutputBindingRuntime<TTransportStamp>(deps: {
120
+ authority: {
121
+ getPreferredTarget: () => OutboundAttachments.TelegramQueuedOutboundAttachmentTurnView["target"] | undefined;
122
+ getFallbackChatId: () => number | undefined;
123
+ getTransportStamp: () => TTransportStamp;
124
+ isTransportStampActive: (stamp: TTransportStamp) => boolean;
125
+ ownsDirect: () => boolean;
126
+ getDirectEpoch: () => number | string | undefined;
127
+ isFollowerRegistered: () => boolean;
128
+ getFollowerGeneration: () => string | undefined;
129
+ };
130
+ sender: Parameters<typeof OutboundHandlers.createTelegramAssistantOutputSender<TTransportStamp>>[0];
131
+ waitForActivityIdle?: () => Promise<void>;
132
+ prepareTelegramPreview?: () => Activity.TelegramAssistantOutputPreparation | undefined;
133
+ enqueue?: Activity.TelegramActivityPublicationRuntime["enqueue"];
134
+ recordRuntimeEvent: TelegramRuntimeEventRecorder;
135
+ }): TelegramAssistantOutputBindingRuntime<TTransportStamp>;
136
+ type TelegramAssistantOutputAuthority<TTransportStamp> = ReturnType<Routing.TelegramAssistantOutputAuthorityRuntime<TTransportStamp>["captureAuthority"]>;
137
+ export interface TelegramBridgePublicationRuntime {
138
+ enqueue: Activity.TelegramActivityPublicationRuntime["enqueue"];
139
+ reserve: Activity.TelegramActivityPublicationRuntime["reserve"];
140
+ capture: () => {
141
+ target?: Queue.TelegramQueueTarget;
142
+ isCurrent: () => boolean;
143
+ };
144
+ }
145
+ export interface TelegramActivityBindingRuntime {
146
+ publicationRuntime: TelegramBridgePublicationRuntime;
147
+ activityRuntime: Activity.TelegramActivityRuntime;
148
+ activityVerbosityRuntime: ActivityVerbosity.TelegramActivityVerbosityRuntime;
149
+ assistantOutputRuntime: Activity.TelegramAssistantOutputRuntime;
150
+ }
151
+ /** Compose public activity fanout, verbosity, and assistant output ordering. */
152
+ export declare function createTelegramActivityBindingRuntime<TTransportStamp>(deps: {
153
+ generation: string;
154
+ assistantOutput: Omit<Parameters<typeof createTelegramAssistantOutputBindingRuntime<TTransportStamp>>[0], "waitForActivityIdle" | "enqueue">;
155
+ activityVerbosity: Omit<Parameters<typeof ActivityVerbosity.createTelegramActivityVerbosityRuntime<TelegramAssistantOutputAuthority<TTransportStamp>>>[0], "captureAuthority" | "isAuthorityActive" | "recordFailure" | "enqueue">;
156
+ }): TelegramActivityBindingRuntime;
157
+ interface TelegramCommandsAndToolsBindingDeps {
158
+ pi: Pi.ExtensionAPI;
159
+ agentDir: string;
160
+ configStore: Config.TelegramConfigStore;
161
+ persistConfig: (config?: Config.TelegramConfig) => Promise<void>;
162
+ setup: Setup.TelegramSetupGuard;
163
+ activeTurnRuntime: Queue.TelegramActiveTurnStore<Queue.PendingTelegramTurn>;
164
+ lockedPollingRuntime: Locks.TelegramLockedPollingRuntime<Pi.ExtensionContext>;
165
+ stopPolling?: () => Promise<void | string>;
166
+ recoverPollingStart?: Commands.TelegramBridgeCommandRegistrationDeps["recoverPollingStart"];
167
+ getDisconnectThreadName?: () => string | undefined;
168
+ setRequestedThreadNameForPollingStart?: (threadName: string | undefined) => void;
169
+ validateThreadName?: Commands.TelegramBridgeCommandRegistrationDeps["validateThreadName"];
170
+ onTransportChanged?: () => Promise<void> | void;
171
+ getStatusLines: (options?: Status.TelegramBridgeStatusLineOptions) => string[];
172
+ buttonActionStore: OutboundHandlers.TelegramButtonActionStore;
173
+ sendMarkdownReply: (chatId: number, replyToMessageId: number | undefined, markdown: string, options?: {
174
+ replyMarkup?: unknown;
175
+ target?: {
176
+ chatId: number;
177
+ threadId?: number;
178
+ };
179
+ }) => Promise<number | undefined>;
180
+ sendChannelMarkdownMessage: NonNullable<OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["sendChannelMarkdownMessage"]>;
181
+ sendChannelMediaMessage: NonNullable<OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["sendChannelMediaMessage"]>;
182
+ listChannelPosts: ChannelPosts.TelegramChannelPostJournalStore["list"];
183
+ mutateChannelPost(input: {
184
+ action: "edit" | "delete";
185
+ operationId: string;
186
+ mutationId: string;
187
+ markdown?: string;
188
+ }): Promise<ChannelPosts.TelegramChannelPostRecord>;
189
+ callMultipart: OutboundHandlers.TelegramVoiceReplySenderDeps["sendMultipart"];
190
+ getDefaultChatId: () => number | undefined;
191
+ getDefaultTarget?: () => OutboundAttachments.TelegramQueuedOutboundAttachmentTurnView["target"];
192
+ resolveAgentTarget?: OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["resolveAgentTarget"];
193
+ routeAgentMessage?: OutboundAttachments.TelegramOutboundMessageToolRegistrationDeps["routeAgentMessage"];
194
+ canSendDirect: () => boolean;
195
+ setGenerativeAppLiveSurfaceRuntime?: (runtime: GenerativeApps.GenerativeAppLiveSurfaceRuntime<GenerativeApps.TelegramBindLiveHandle> | undefined) => void;
196
+ updateStatus: TelegramBridgeStatusUpdater;
197
+ recordRuntimeEvent: TelegramRuntimeEventRecorder;
198
+ }
199
+ export declare function registerTelegramCommandsAndTools({ pi, agentDir, configStore, persistConfig, setup, activeTurnRuntime, lockedPollingRuntime, stopPolling, recoverPollingStart, getDisconnectThreadName, setRequestedThreadNameForPollingStart, validateThreadName, onTransportChanged, getStatusLines, buttonActionStore, sendMarkdownReply, sendChannelMarkdownMessage, sendChannelMediaMessage, listChannelPosts, mutateChannelPost, callMultipart, getDefaultChatId, getDefaultTarget, resolveAgentTarget, routeAgentMessage, canSendDirect, setGenerativeAppLiveSurfaceRuntime, recordRuntimeEvent, updateStatus, }: TelegramCommandsAndToolsBindingDeps): void;
200
+ interface TelegramLifecycleBindingDeps {
201
+ pi: Pi.ExtensionAPI;
202
+ publicationRuntime: TelegramBridgePublicationRuntime;
203
+ activityRuntime: Activity.TelegramActivityRuntime;
204
+ activityVerbosityRuntime?: ActivityVerbosity.TelegramActivityVerbosityRuntime;
205
+ assistantOutputRuntime: Pick<Activity.TelegramAssistantOutputRuntime, "start" | "waitForIdle" | "stop">;
206
+ sessionLifecycleRuntime: Pick<Lifecycle.TelegramLifecycleRegistrationDeps, "onSessionStart" | "onSessionShutdown" | "onModelSelect">;
207
+ configStore: Pick<Config.TelegramConfigStore, "get" | "getOutboundHandlers" | "hasBotToken" | "load">;
208
+ abort: Runtime.TelegramRuntimeAbortPort;
209
+ typing: Runtime.TelegramRuntimeTypingPort;
210
+ lifecycle: Runtime.TelegramRuntimeLifecyclePort;
211
+ activeTurnRuntime: Queue.TelegramActiveTurnStore<Queue.PendingTelegramTurn>;
212
+ telegramQueueStore: Queue.TelegramQueueStore<Pi.ExtensionContext>;
213
+ modelSwitchController: Model.TelegramModelSwitchController<Pi.ExtensionContext, Model.ScopedTelegramModel<ActivePiModel>>;
214
+ previewRuntime: Preview.TelegramAssistantPreviewRuntime<Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>;
215
+ promptDispatchRuntime: Runtime.TelegramPromptDispatchRuntime<Pi.ExtensionContext>;
216
+ deferredQueueDispatchRuntime: Queue.TelegramDeferredQueueDispatchRuntime<Pi.ExtensionContext>;
217
+ modelContextAvailabilityRuntime: Prompts.TelegramModelContextAvailabilityRuntime;
218
+ disconnectOnQuit?: () => Promise<unknown>;
219
+ shutdownGenerativeAppLiveSurfaces?: () => void;
220
+ resolveAutomaticThreadCleanupEnabled?: () => boolean | Promise<boolean>;
221
+ buttonActionStore: OutboundHandlers.TelegramButtonActionStore;
222
+ callMultipart: OutboundHandlers.TelegramVoiceReplySenderDeps["sendMultipart"];
223
+ sendChatAction: NonNullable<OutboundHandlers.TelegramVoiceReplySenderDeps["sendChatAction"]>;
224
+ sendRecordVoiceAction: NonNullable<OutboundHandlers.TelegramVoiceReplySenderDeps["sendRecordVoiceAction"]>;
225
+ sendMarkdownReply: Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["sendMarkdownReply"];
226
+ sendTextReply: Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["sendTextReply"] & NonNullable<OutboundHandlers.TelegramVoiceReplySenderDeps["sendTextReply"]>;
227
+ dispatchNextQueuedTelegramTurn: (ctx: Pi.ExtensionContext) => void;
228
+ onPromptHandedOff?: (turn: Queue.PendingTelegramTurn, ctx: Pi.ExtensionContext) => void;
229
+ answerGuestQuery: TelegramApi.TelegramBridgeApiRuntime["answerGuestQuery"];
230
+ deleteMessage: TelegramApi.TelegramBridgeApiRuntime["deleteMessage"];
231
+ sendGuestReply: NonNullable<Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["sendGuestReply"]>;
232
+ editGuestReply?: Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["editGuestReply"];
233
+ stopGuestPlaceholder?: Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["stopGuestPlaceholder"];
234
+ preparePreviewDelivery?: Queue.TelegramAgentEndRuntimeDeps<Queue.PendingTelegramTurn>["preparePreviewDelivery"];
235
+ finalizeMarkdownPreview: Queue.TelegramAgentEndHookRuntimeDeps<Queue.PendingTelegramTurn, Pi.ExtensionContext, Pi.AgentEndEvent["messages"][number], Keyboard.TelegramInlineKeyboardMarkup>["finalizeMarkdownPreview"];
236
+ proactivePushTargetGetter: () => Queue.TelegramQueueTarget | undefined;
237
+ getAssistantRenderingMode: () => "rich" | "html";
238
+ recordMessageOwnership?: (input: {
239
+ chatId: number;
240
+ messageId: number;
241
+ target?: Queue.TelegramQueueTarget;
242
+ }) => void;
243
+ canSendAgentActivity: (ctx: Pi.ExtensionContext) => boolean;
244
+ isSessionContextActive: (ctx: Pi.ExtensionContext) => boolean;
245
+ isTurnTransportActive?: (turn: Queue.PendingTelegramTurn) => boolean;
246
+ updateStatus: TelegramBridgeStatusUpdater;
247
+ recordRuntimeEvent: TelegramRuntimeEventRecorder;
248
+ }
249
+ export declare function registerTelegramLifecycleRuntimeHooks({ pi, publicationRuntime, activityRuntime, activityVerbosityRuntime, assistantOutputRuntime, sessionLifecycleRuntime, configStore, abort, typing, lifecycle, activeTurnRuntime, telegramQueueStore, modelSwitchController, previewRuntime, promptDispatchRuntime, deferredQueueDispatchRuntime, modelContextAvailabilityRuntime, disconnectOnQuit, shutdownGenerativeAppLiveSurfaces, resolveAutomaticThreadCleanupEnabled, buttonActionStore, callMultipart, sendChatAction, sendRecordVoiceAction, sendMarkdownReply, sendTextReply, dispatchNextQueuedTelegramTurn, onPromptHandedOff, answerGuestQuery, deleteMessage, sendGuestReply, editGuestReply, stopGuestPlaceholder, preparePreviewDelivery, finalizeMarkdownPreview, proactivePushTargetGetter, getAssistantRenderingMode, recordMessageOwnership, canSendAgentActivity, isSessionContextActive, isTurnTransportActive, updateStatus, recordRuntimeEvent, }: TelegramLifecycleBindingDeps): void;
250
+ export {};