@llblab/pi-kit 0.12.1 → 0.14.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 (299) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -2
  3. package/node_modules/@llblab/pi-state-flow/AGENTS.md +7 -7
  4. package/node_modules/@llblab/pi-state-flow/BACKLOG.md +8 -9
  5. package/node_modules/@llblab/pi-state-flow/CHANGELOG.md +26 -0
  6. package/node_modules/@llblab/pi-state-flow/README.md +1 -3
  7. package/node_modules/@llblab/pi-state-flow/dist/index.d.ts +21 -0
  8. package/node_modules/@llblab/pi-state-flow/dist/index.js +20 -0
  9. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.d.ts +39 -0
  10. package/node_modules/@llblab/pi-state-flow/dist/lib/acquisition.js +78 -0
  11. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.d.ts +110 -0
  12. package/node_modules/@llblab/pi-state-flow/dist/lib/artifact.js +334 -0
  13. package/node_modules/@llblab/pi-state-flow/dist/lib/compaction.d.ts +49 -0
  14. package/node_modules/@llblab/pi-state-flow/dist/lib/compaction.js +67 -0
  15. package/node_modules/@llblab/pi-state-flow/dist/lib/config.d.ts +11 -0
  16. package/node_modules/@llblab/pi-state-flow/dist/lib/config.js +53 -0
  17. package/node_modules/@llblab/pi-state-flow/dist/lib/context.d.ts +23 -0
  18. package/node_modules/@llblab/pi-state-flow/dist/lib/context.js +109 -0
  19. package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.d.ts +111 -0
  20. package/node_modules/@llblab/pi-state-flow/dist/lib/continuation.js +189 -0
  21. package/node_modules/@llblab/pi-state-flow/dist/lib/discovery.d.ts +21 -0
  22. package/node_modules/@llblab/pi-state-flow/dist/lib/discovery.js +125 -0
  23. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.d.ts +102 -0
  24. package/node_modules/@llblab/pi-state-flow/dist/lib/durable.js +507 -0
  25. package/node_modules/@llblab/pi-state-flow/dist/lib/episode.d.ts +8 -0
  26. package/node_modules/@llblab/pi-state-flow/dist/lib/episode.js +27 -0
  27. package/node_modules/@llblab/pi-state-flow/dist/lib/extension.d.ts +22 -0
  28. package/node_modules/@llblab/pi-state-flow/dist/lib/extension.js +1263 -0
  29. package/node_modules/@llblab/pi-state-flow/dist/lib/git.d.ts +72 -0
  30. package/node_modules/@llblab/pi-state-flow/dist/lib/git.js +565 -0
  31. package/node_modules/@llblab/pi-state-flow/dist/lib/history.d.ts +22 -0
  32. package/node_modules/@llblab/pi-state-flow/dist/lib/history.js +79 -0
  33. package/node_modules/@llblab/pi-state-flow/dist/lib/json.d.ts +12 -0
  34. package/node_modules/@llblab/pi-state-flow/dist/lib/json.js +109 -0
  35. package/node_modules/@llblab/pi-state-flow/dist/lib/logging.d.ts +25 -0
  36. package/node_modules/@llblab/pi-state-flow/dist/lib/logging.js +24 -0
  37. package/node_modules/@llblab/pi-state-flow/dist/lib/maintenance.d.ts +36 -0
  38. package/node_modules/@llblab/pi-state-flow/dist/lib/maintenance.js +98 -0
  39. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.d.ts +15 -0
  40. package/node_modules/@llblab/pi-state-flow/dist/lib/memory.js +42 -0
  41. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.d.ts +13 -0
  42. package/node_modules/@llblab/pi-state-flow/dist/lib/migration.js +133 -0
  43. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.d.ts +7 -0
  44. package/node_modules/@llblab/pi-state-flow/dist/lib/protocol.js +59 -0
  45. package/node_modules/@llblab/pi-state-flow/dist/lib/publication.d.ts +69 -0
  46. package/node_modules/@llblab/pi-state-flow/dist/lib/publication.js +335 -0
  47. package/node_modules/@llblab/pi-state-flow/dist/lib/query.d.ts +27 -0
  48. package/node_modules/@llblab/pi-state-flow/dist/lib/query.js +35 -0
  49. package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.d.ts +8 -0
  50. package/node_modules/@llblab/pi-state-flow/dist/lib/recovery.js +27 -0
  51. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.d.ts +36 -0
  52. package/node_modules/@llblab/pi-state-flow/dist/lib/rehydration.js +38 -0
  53. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.d.ts +142 -0
  54. package/node_modules/@llblab/pi-state-flow/dist/lib/runtime.js +529 -0
  55. package/node_modules/@llblab/pi-state-flow/dist/lib/session.d.ts +21 -0
  56. package/node_modules/@llblab/pi-state-flow/dist/lib/session.js +44 -0
  57. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.d.ts +25 -0
  58. package/node_modules/@llblab/pi-state-flow/dist/lib/skills.js +131 -0
  59. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.d.ts +88 -0
  60. package/node_modules/@llblab/pi-state-flow/dist/lib/snapshot.js +255 -0
  61. package/node_modules/@llblab/pi-state-flow/dist/lib/state.d.ts +55 -0
  62. package/node_modules/@llblab/pi-state-flow/dist/lib/state.js +31 -0
  63. package/node_modules/@llblab/pi-state-flow/dist/lib/status.d.ts +38 -0
  64. package/node_modules/@llblab/pi-state-flow/dist/lib/status.js +79 -0
  65. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.d.ts +46 -0
  66. package/node_modules/@llblab/pi-state-flow/dist/lib/storage.js +217 -0
  67. package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.d.ts +98 -0
  68. package/node_modules/@llblab/pi-state-flow/dist/lib/telegram.js +231 -0
  69. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.d.ts +39 -0
  70. package/node_modules/@llblab/pi-state-flow/dist/lib/temporal.js +203 -0
  71. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.d.ts +25 -0
  72. package/node_modules/@llblab/pi-state-flow/dist/lib/transition.js +204 -0
  73. package/node_modules/@llblab/pi-state-flow/dist/package.json +79 -0
  74. package/node_modules/@llblab/pi-state-flow/dist/pi-state-flow/index.js +1 -0
  75. package/node_modules/@llblab/pi-state-flow/dist/skills/state-flow-memory/SKILL.md +138 -0
  76. package/node_modules/@llblab/pi-state-flow/docs/architecture.md +11 -5
  77. package/node_modules/@llblab/pi-state-flow/docs/compatibility.md +5 -1
  78. package/node_modules/@llblab/pi-state-flow/docs/filesystem-recovery.md +3 -3
  79. package/node_modules/@llblab/pi-state-flow/docs/usage.md +6 -4
  80. package/node_modules/@llblab/pi-state-flow/index.ts +1 -0
  81. package/node_modules/@llblab/pi-state-flow/lib/compaction.ts +17 -1
  82. package/node_modules/@llblab/pi-state-flow/lib/config.ts +6 -1
  83. package/node_modules/@llblab/pi-state-flow/lib/durable.ts +88 -96
  84. package/node_modules/@llblab/pi-state-flow/lib/extension.ts +64 -12
  85. package/node_modules/@llblab/pi-state-flow/lib/git.ts +32 -188
  86. package/node_modules/@llblab/pi-state-flow/lib/migration.ts +84 -48
  87. package/node_modules/@llblab/pi-state-flow/lib/query.ts +40 -0
  88. package/node_modules/@llblab/pi-state-flow/lib/recovery.ts +7 -30
  89. package/node_modules/@llblab/pi-state-flow/lib/runtime.ts +48 -50
  90. package/node_modules/@llblab/pi-state-flow/lib/snapshot.ts +41 -97
  91. package/node_modules/@llblab/pi-state-flow/lib/storage.ts +17 -12
  92. package/node_modules/@llblab/pi-state-flow/lib/telegram.ts +4 -4
  93. package/node_modules/@llblab/pi-state-flow/package.json +23 -6
  94. package/node_modules/@llblab/pi-state-flow/skills/state-flow-memory/SKILL.md +3 -1
  95. package/node_modules/@llblab/pi-telegram/AGENTS.md +5 -3
  96. package/node_modules/@llblab/pi-telegram/BACKLOG.md +0 -6
  97. package/node_modules/@llblab/pi-telegram/CHANGELOG.md +22 -0
  98. package/node_modules/@llblab/pi-telegram/README.md +6 -3
  99. package/node_modules/@llblab/pi-telegram/dist/api/activity.d.ts +6 -0
  100. package/node_modules/@llblab/pi-telegram/dist/api/activity.js +6 -0
  101. package/node_modules/@llblab/pi-telegram/dist/api/commands.d.ts +6 -0
  102. package/node_modules/@llblab/pi-telegram/dist/api/commands.js +6 -0
  103. package/node_modules/@llblab/pi-telegram/dist/api/delivery.d.ts +6 -0
  104. package/node_modules/@llblab/pi-telegram/dist/api/delivery.js +6 -0
  105. package/node_modules/@llblab/pi-telegram/dist/api/inbound.d.ts +6 -0
  106. package/node_modules/@llblab/pi-telegram/dist/api/inbound.js +6 -0
  107. package/node_modules/@llblab/pi-telegram/dist/api/keyboard.d.ts +6 -0
  108. package/node_modules/@llblab/pi-telegram/dist/api/keyboard.js +6 -0
  109. package/node_modules/@llblab/pi-telegram/dist/api/outbound.d.ts +6 -0
  110. package/node_modules/@llblab/pi-telegram/dist/api/outbound.js +6 -0
  111. package/node_modules/@llblab/pi-telegram/dist/api/sections.d.ts +7 -0
  112. package/node_modules/@llblab/pi-telegram/dist/api/sections.js +6 -0
  113. package/node_modules/@llblab/pi-telegram/dist/api/status.d.ts +6 -0
  114. package/node_modules/@llblab/pi-telegram/dist/api/status.js +6 -0
  115. package/node_modules/@llblab/pi-telegram/dist/api/updates.d.ts +6 -0
  116. package/node_modules/@llblab/pi-telegram/dist/api/updates.js +6 -0
  117. package/node_modules/@llblab/pi-telegram/dist/api/voice.d.ts +6 -0
  118. package/node_modules/@llblab/pi-telegram/dist/api/voice.js +6 -0
  119. package/node_modules/@llblab/pi-telegram/dist/index.d.ts +6 -0
  120. package/node_modules/@llblab/pi-telegram/dist/index.js +6 -0
  121. package/node_modules/@llblab/pi-telegram/dist/lib/activity-verbosity.d.ts +52 -0
  122. package/node_modules/@llblab/pi-telegram/dist/lib/activity-verbosity.js +596 -0
  123. package/node_modules/@llblab/pi-telegram/dist/lib/activity.d.ts +220 -0
  124. package/node_modules/@llblab/pi-telegram/dist/lib/activity.js +574 -0
  125. package/node_modules/@llblab/pi-telegram/dist/lib/agent-messages.d.ts +28 -0
  126. package/node_modules/@llblab/pi-telegram/dist/lib/agent-messages.js +86 -0
  127. package/node_modules/@llblab/pi-telegram/dist/lib/bindings.d.ts +250 -0
  128. package/node_modules/@llblab/pi-telegram/dist/lib/bindings.js +936 -0
  129. package/node_modules/@llblab/pi-telegram/dist/lib/bus-api.d.ts +18 -0
  130. package/node_modules/@llblab/pi-telegram/dist/lib/bus-api.js +254 -0
  131. package/node_modules/@llblab/pi-telegram/dist/lib/bus-follower.d.ts +464 -0
  132. package/node_modules/@llblab/pi-telegram/dist/lib/bus-follower.js +1689 -0
  133. package/node_modules/@llblab/pi-telegram/dist/lib/bus-leader.d.ts +292 -0
  134. package/node_modules/@llblab/pi-telegram/dist/lib/bus-leader.js +2242 -0
  135. package/node_modules/@llblab/pi-telegram/dist/lib/bus-transport.d.ts +64 -0
  136. package/node_modules/@llblab/pi-telegram/dist/lib/bus-transport.js +140 -0
  137. package/node_modules/@llblab/pi-telegram/dist/lib/bus.d.ts +518 -0
  138. package/node_modules/@llblab/pi-telegram/dist/lib/bus.js +2055 -0
  139. package/node_modules/@llblab/pi-telegram/dist/lib/channel-posts.d.ts +170 -0
  140. package/node_modules/@llblab/pi-telegram/dist/lib/channel-posts.js +611 -0
  141. package/node_modules/@llblab/pi-telegram/dist/lib/command-templates.d.ts +70 -0
  142. package/node_modules/@llblab/pi-telegram/dist/lib/command-templates.js +744 -0
  143. package/node_modules/@llblab/pi-telegram/dist/lib/commands.d.ts +541 -0
  144. package/node_modules/@llblab/pi-telegram/dist/lib/commands.js +1155 -0
  145. package/node_modules/@llblab/pi-telegram/dist/lib/config.d.ts +252 -0
  146. package/node_modules/@llblab/pi-telegram/dist/lib/config.js +889 -0
  147. package/node_modules/@llblab/pi-telegram/dist/lib/delivery.d.ts +163 -0
  148. package/node_modules/@llblab/pi-telegram/dist/lib/delivery.js +542 -0
  149. package/node_modules/@llblab/pi-telegram/dist/lib/extension.d.ts +7 -0
  150. package/node_modules/@llblab/pi-telegram/dist/lib/extension.js +1604 -0
  151. package/node_modules/@llblab/pi-telegram/dist/lib/generative-app-worker.mjs +104 -0
  152. package/node_modules/@llblab/pi-telegram/dist/lib/generative-apps.d.ts +212 -0
  153. package/node_modules/@llblab/pi-telegram/dist/lib/generative-apps.js +1006 -0
  154. package/node_modules/@llblab/pi-telegram/dist/lib/inbound.d.ts +91 -0
  155. package/node_modules/@llblab/pi-telegram/dist/lib/inbound.js +502 -0
  156. package/node_modules/@llblab/pi-telegram/dist/lib/journal.d.ts +665 -0
  157. package/node_modules/@llblab/pi-telegram/dist/lib/journal.js +3701 -0
  158. package/node_modules/@llblab/pi-telegram/dist/lib/keyboard.d.ts +23 -0
  159. package/node_modules/@llblab/pi-telegram/dist/lib/keyboard.js +37 -0
  160. package/node_modules/@llblab/pi-telegram/dist/lib/lifecycle.d.ts +157 -0
  161. package/node_modules/@llblab/pi-telegram/dist/lib/lifecycle.js +395 -0
  162. package/node_modules/@llblab/pi-telegram/dist/lib/locks.d.ts +164 -0
  163. package/node_modules/@llblab/pi-telegram/dist/lib/locks.js +1208 -0
  164. package/node_modules/@llblab/pi-telegram/dist/lib/logging.d.ts +50 -0
  165. package/node_modules/@llblab/pi-telegram/dist/lib/logging.js +274 -0
  166. package/node_modules/@llblab/pi-telegram/dist/lib/media.d.ts +181 -0
  167. package/node_modules/@llblab/pi-telegram/dist/lib/media.js +602 -0
  168. package/node_modules/@llblab/pi-telegram/dist/lib/menu-model.d.ts +217 -0
  169. package/node_modules/@llblab/pi-telegram/dist/lib/menu-model.js +663 -0
  170. package/node_modules/@llblab/pi-telegram/dist/lib/menu-queue.d.ts +37 -0
  171. package/node_modules/@llblab/pi-telegram/dist/lib/menu-queue.js +408 -0
  172. package/node_modules/@llblab/pi-telegram/dist/lib/menu-settings.d.ts +115 -0
  173. package/node_modules/@llblab/pi-telegram/dist/lib/menu-settings.js +595 -0
  174. package/node_modules/@llblab/pi-telegram/dist/lib/menu-status.d.ts +32 -0
  175. package/node_modules/@llblab/pi-telegram/dist/lib/menu-status.js +112 -0
  176. package/node_modules/@llblab/pi-telegram/dist/lib/menu-thinking.d.ts +29 -0
  177. package/node_modules/@llblab/pi-telegram/dist/lib/menu-thinking.js +82 -0
  178. package/node_modules/@llblab/pi-telegram/dist/lib/menu.d.ts +171 -0
  179. package/node_modules/@llblab/pi-telegram/dist/lib/menu.js +323 -0
  180. package/node_modules/@llblab/pi-telegram/dist/lib/model.d.ts +127 -0
  181. package/node_modules/@llblab/pi-telegram/dist/lib/model.js +409 -0
  182. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-attachments.d.ts +241 -0
  183. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-attachments.js +639 -0
  184. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-buttons.d.ts +69 -0
  185. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-buttons.js +248 -0
  186. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-markup.d.ts +42 -0
  187. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-markup.js +678 -0
  188. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-voice.d.ts +55 -0
  189. package/node_modules/@llblab/pi-telegram/dist/lib/outbound-voice.js +152 -0
  190. package/node_modules/@llblab/pi-telegram/dist/lib/outbound.d.ts +185 -0
  191. package/node_modules/@llblab/pi-telegram/dist/lib/outbound.js +516 -0
  192. package/node_modules/@llblab/pi-telegram/dist/lib/ownership.d.ts +77 -0
  193. package/node_modules/@llblab/pi-telegram/dist/lib/ownership.js +174 -0
  194. package/node_modules/@llblab/pi-telegram/dist/lib/paths.d.ts +40 -0
  195. package/node_modules/@llblab/pi-telegram/dist/lib/paths.js +94 -0
  196. package/node_modules/@llblab/pi-telegram/dist/lib/pi.d.ts +72 -0
  197. package/node_modules/@llblab/pi-telegram/dist/lib/pi.js +121 -0
  198. package/node_modules/@llblab/pi-telegram/dist/lib/polling.d.ts +351 -0
  199. package/node_modules/@llblab/pi-telegram/dist/lib/polling.js +1196 -0
  200. package/node_modules/@llblab/pi-telegram/dist/lib/preview.d.ts +192 -0
  201. package/node_modules/@llblab/pi-telegram/dist/lib/preview.js +614 -0
  202. package/node_modules/@llblab/pi-telegram/dist/lib/prompt-templates.d.ts +24 -0
  203. package/node_modules/@llblab/pi-telegram/dist/lib/prompt-templates.js +118 -0
  204. package/node_modules/@llblab/pi-telegram/dist/lib/prompts.d.ts +57 -0
  205. package/node_modules/@llblab/pi-telegram/dist/lib/prompts.js +167 -0
  206. package/node_modules/@llblab/pi-telegram/dist/lib/queue.d.ts +766 -0
  207. package/node_modules/@llblab/pi-telegram/dist/lib/queue.js +1965 -0
  208. package/node_modules/@llblab/pi-telegram/dist/lib/recovery.d.ts +86 -0
  209. package/node_modules/@llblab/pi-telegram/dist/lib/recovery.js +285 -0
  210. package/node_modules/@llblab/pi-telegram/dist/lib/rendering.d.ts +20 -0
  211. package/node_modules/@llblab/pi-telegram/dist/lib/rendering.js +983 -0
  212. package/node_modules/@llblab/pi-telegram/dist/lib/replies.d.ts +214 -0
  213. package/node_modules/@llblab/pi-telegram/dist/lib/replies.js +737 -0
  214. package/node_modules/@llblab/pi-telegram/dist/lib/routing.d.ts +207 -0
  215. package/node_modules/@llblab/pi-telegram/dist/lib/routing.js +2282 -0
  216. package/node_modules/@llblab/pi-telegram/dist/lib/runtime.d.ts +172 -0
  217. package/node_modules/@llblab/pi-telegram/dist/lib/runtime.js +402 -0
  218. package/node_modules/@llblab/pi-telegram/dist/lib/sections.d.ts +165 -0
  219. package/node_modules/@llblab/pi-telegram/dist/lib/sections.js +327 -0
  220. package/node_modules/@llblab/pi-telegram/dist/lib/setup.d.ts +82 -0
  221. package/node_modules/@llblab/pi-telegram/dist/lib/setup.js +150 -0
  222. package/node_modules/@llblab/pi-telegram/dist/lib/skills.d.ts +8 -0
  223. package/node_modules/@llblab/pi-telegram/dist/lib/skills.js +12 -0
  224. package/node_modules/@llblab/pi-telegram/dist/lib/status.d.ts +442 -0
  225. package/node_modules/@llblab/pi-telegram/dist/lib/status.js +1000 -0
  226. package/node_modules/@llblab/pi-telegram/dist/lib/sync.d.ts +179 -0
  227. package/node_modules/@llblab/pi-telegram/dist/lib/sync.js +782 -0
  228. package/node_modules/@llblab/pi-telegram/dist/lib/target.d.ts +20 -0
  229. package/node_modules/@llblab/pi-telegram/dist/lib/target.js +27 -0
  230. package/node_modules/@llblab/pi-telegram/dist/lib/telegram-api.d.ts +541 -0
  231. package/node_modules/@llblab/pi-telegram/dist/lib/telegram-api.js +1159 -0
  232. package/node_modules/@llblab/pi-telegram/dist/lib/text-groups.d.ts +89 -0
  233. package/node_modules/@llblab/pi-telegram/dist/lib/text-groups.js +317 -0
  234. package/node_modules/@llblab/pi-telegram/dist/lib/thread-cleanup-manager.d.ts +288 -0
  235. package/node_modules/@llblab/pi-telegram/dist/lib/thread-cleanup-manager.js +560 -0
  236. package/node_modules/@llblab/pi-telegram/dist/lib/thread-display.d.ts +46 -0
  237. package/node_modules/@llblab/pi-telegram/dist/lib/thread-display.js +257 -0
  238. package/node_modules/@llblab/pi-telegram/dist/lib/thread-naming.d.ts +46 -0
  239. package/node_modules/@llblab/pi-telegram/dist/lib/thread-naming.js +78 -0
  240. package/node_modules/@llblab/pi-telegram/dist/lib/thread-reconciler.d.ts +239 -0
  241. package/node_modules/@llblab/pi-telegram/dist/lib/thread-reconciler.js +644 -0
  242. package/node_modules/@llblab/pi-telegram/dist/lib/threads.d.ts +621 -0
  243. package/node_modules/@llblab/pi-telegram/dist/lib/threads.js +3679 -0
  244. package/node_modules/@llblab/pi-telegram/dist/lib/time-injection.d.ts +15 -0
  245. package/node_modules/@llblab/pi-telegram/dist/lib/time-injection.js +56 -0
  246. package/node_modules/@llblab/pi-telegram/dist/lib/turns.d.ts +109 -0
  247. package/node_modules/@llblab/pi-telegram/dist/lib/turns.js +500 -0
  248. package/node_modules/@llblab/pi-telegram/dist/lib/updates.d.ts +1290 -0
  249. package/node_modules/@llblab/pi-telegram/dist/lib/updates.js +3634 -0
  250. package/node_modules/@llblab/pi-telegram/dist/lib/voice.d.ts +117 -0
  251. package/node_modules/@llblab/pi-telegram/dist/lib/voice.js +174 -0
  252. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-admission.d.ts +264 -0
  253. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-admission.js +1136 -0
  254. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-retirement.d.ts +219 -0
  255. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-retirement.js +587 -0
  256. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-slots.d.ts +30 -0
  257. package/node_modules/@llblab/pi-telegram/dist/lib/workspace-slots.js +54 -0
  258. package/node_modules/@llblab/pi-telegram/dist/package.json +126 -0
  259. package/node_modules/@llblab/pi-telegram/dist/pi-telegram/index.js +1 -0
  260. package/node_modules/@llblab/pi-telegram/dist/skills/generated-control-surface/SKILL.md +107 -0
  261. package/node_modules/@llblab/pi-telegram/dist/skills/generated-control-surface/references/capability-adapters.md +27 -0
  262. package/node_modules/@llblab/pi-telegram/dist/skills/generated-control-surface/references/layout-and-state.md +37 -0
  263. package/node_modules/@llblab/pi-telegram/dist/skills/generative-apps/SKILL.md +115 -0
  264. package/node_modules/@llblab/pi-telegram/dist/skills/show-me/SKILL.md +166 -0
  265. package/node_modules/@llblab/pi-telegram/dist/skills/show-me/references/telegram-surfaces.md +43 -0
  266. package/node_modules/@llblab/pi-telegram/dist/skills/telegram-bridge/SKILL.md +129 -0
  267. package/node_modules/@llblab/pi-telegram/dist/skills/telegram-bridge/references/configuration.md +15 -0
  268. package/node_modules/@llblab/pi-telegram/dist/skills/telegram-bridge/references/delivery-and-threads.md +27 -0
  269. package/node_modules/@llblab/pi-telegram/dist/skills/telegram-bridge/references/diagnosis.md +18 -0
  270. package/node_modules/@llblab/pi-telegram/docs/README.md +2 -0
  271. package/node_modules/@llblab/pi-telegram/docs/architecture.md +4 -2
  272. package/node_modules/@llblab/pi-telegram/docs/compact-matrix-literal.md +10 -3
  273. package/node_modules/@llblab/pi-telegram/docs/generative-apps.md +15 -13
  274. package/node_modules/@llblab/pi-telegram/docs/multi-instance-bus.md +6 -4
  275. package/node_modules/@llblab/pi-telegram/docs/outbound.md +1 -1
  276. package/node_modules/@llblab/pi-telegram/docs/public-api.md +3 -3
  277. package/node_modules/@llblab/pi-telegram/lib/bindings.ts +89 -6
  278. package/node_modules/@llblab/pi-telegram/lib/bus-follower.ts +12 -5
  279. package/node_modules/@llblab/pi-telegram/lib/bus-leader.ts +44 -19
  280. package/node_modules/@llblab/pi-telegram/lib/bus.ts +4 -1
  281. package/node_modules/@llblab/pi-telegram/lib/commands.ts +2 -2
  282. package/node_modules/@llblab/pi-telegram/lib/config.ts +14 -7
  283. package/node_modules/@llblab/pi-telegram/lib/delivery.ts +38 -6
  284. package/node_modules/@llblab/pi-telegram/lib/extension.ts +7 -0
  285. package/node_modules/@llblab/pi-telegram/lib/generative-apps.ts +379 -13
  286. package/node_modules/@llblab/pi-telegram/lib/menu-settings.ts +20 -6
  287. package/node_modules/@llblab/pi-telegram/lib/outbound-markup.ts +16 -7
  288. package/node_modules/@llblab/pi-telegram/lib/status.ts +9 -15
  289. package/node_modules/@llblab/pi-telegram/lib/telegram-api.ts +12 -1
  290. package/node_modules/@llblab/pi-telegram/lib/thread-display.ts +96 -18
  291. package/node_modules/@llblab/pi-telegram/package.json +56 -13
  292. package/node_modules/@llblab/pi-telegram/scripts/build-dist.mjs +44 -0
  293. package/node_modules/@llblab/pi-telegram/scripts/measure-bus.mjs +8 -1
  294. package/node_modules/@llblab/pi-telegram/scripts/measure-workspace.mjs +8 -1
  295. package/node_modules/@llblab/pi-telegram/skills/generative-apps/SKILL.md +1 -1
  296. package/node_modules/@llblab/pi-telegram/skills/show-me/SKILL.md +1 -1
  297. package/node_modules/@llblab/pi-telegram/skills/show-me/references/telegram-surfaces.md +1 -1
  298. package/node_modules/@llblab/pi-telegram/skills/telegram-bridge/SKILL.md +1 -1
  299. package/package.json +7 -7
@@ -0,0 +1,464 @@
1
+ /**
2
+ * Telegram bus follower runtime
3
+ * Zones: multi-instance bus, follower lifecycle, manual registration
4
+ * Owns this Pi instance's follower-side bus behavior: manual registration,
5
+ * heartbeat, forwarded-update receiving, and follower-routed API calls.
6
+ * It must not spawn Pi processes or create hidden Telegram-originated instances.
7
+ */
8
+ import * as Sync from "./sync.ts";
9
+ import * as Threads from "./threads.ts";
10
+ import { type TelegramUpdateJournalStoreOptions } from "./journal.ts";
11
+ import type { TelegramLockEntry, TelegramLockState } from "./locks.ts";
12
+ import type { TelegramQueueHandoffPayload, TelegramQueueHandoffStageResult } from "./queue.ts";
13
+ import type { TelegramTarget } from "./target.ts";
14
+ import { type TelegramBusAgentMessage, type TelegramBusAgentTargetSelector, type TelegramBusEnvelope, type TelegramBusForwardOwnership, type TelegramBusProtocolIdentity, type TelegramBusSocketPathSource } from "./bus.ts";
15
+ import type { TelegramConfigStore, TelegramThreadDisplayMode } from "./config.ts";
16
+ import { type TelegramWorkspaceAdmissionLedger } from "./workspace-admission.ts";
17
+ export declare const TELEGRAM_BUS_FOLLOWER_PROMOTION_GRACE_MS = 2500;
18
+ export declare const TELEGRAM_FOLLOWER_SESSION_HANDOFF_TTL_MS = 30000;
19
+ export declare const TELEGRAM_BUS_FOLLOWER_CLIENT_TIMEOUT_MS = 30000;
20
+ export declare const TELEGRAM_BUS_FOLLOWER_REGISTRATION_WAIT_MS = 30000;
21
+ export declare const TELEGRAM_BUS_FOLLOWER_REGISTRATION_RETRY_ATTEMPTS: number;
22
+ export declare const TELEGRAM_BUS_FOLLOWER_REGISTRATION_RETRY_DELAY_MS: number;
23
+ export interface TelegramFollowerSessionHandoff {
24
+ pid: number;
25
+ instanceId: string;
26
+ createdAtMs: number;
27
+ target: TelegramTarget;
28
+ slot?: string;
29
+ threadName?: string;
30
+ }
31
+ export declare function getTelegramFollowerSessionHandoff(): TelegramFollowerSessionHandoff | undefined;
32
+ export declare function setTelegramFollowerSessionHandoff(handoff: TelegramFollowerSessionHandoff | undefined): void;
33
+ export declare function isTelegramFollowerSessionHandoffFresh(handoff: TelegramFollowerSessionHandoff | undefined, options?: {
34
+ pid?: number;
35
+ nowMs?: number;
36
+ ttlMs?: number;
37
+ }): handoff is TelegramFollowerSessionHandoff;
38
+ export interface TelegramBusFollowerRegistrationRuntime<TContext> {
39
+ registerWithLeader: (ctx: TContext, leader: {
40
+ busSocketPath?: string;
41
+ busSecret?: string;
42
+ }, options?: {
43
+ target?: TelegramTarget;
44
+ previousInstanceId?: string;
45
+ restoreWorkspace?: boolean;
46
+ }) => Promise<boolean>;
47
+ setContext: (ctx: TContext) => void;
48
+ disconnectFromLeader?: () => Promise<boolean>;
49
+ renameThread?: (target: TelegramTarget & {
50
+ threadId: number;
51
+ }, threadName: string) => Promise<string>;
52
+ resetThreadName?: (target: TelegramTarget & {
53
+ threadId: number;
54
+ }) => Promise<string>;
55
+ setThreadDisplayMode?: (mode: TelegramThreadDisplayMode) => Promise<void>;
56
+ stop: () => void;
57
+ }
58
+ export interface TelegramBusFollowerSessionReplacementSuspenderDeps {
59
+ registrationState: Pick<TelegramBusFollowerRegistrationState, "isRegistered" | "getTarget" | "getSlot" | "getThreadName">;
60
+ instanceId: string;
61
+ suspendPolling: () => Promise<void>;
62
+ isLeader?: () => boolean;
63
+ getLeaderBinding?: () => TelegramBusFollowerPromotedBinding | undefined;
64
+ getActiveContext?: () => {
65
+ cwd?: string;
66
+ } | undefined;
67
+ getActiveProfileName?: () => string | undefined;
68
+ recordRuntimeEvent: (category: string, error: unknown, details?: Record<string, unknown>) => void;
69
+ getNowMs?: () => number;
70
+ getPid?: () => number;
71
+ }
72
+ export interface TelegramBusFollowerSessionRefreshHookDeps<TContext> {
73
+ registrationState: Pick<TelegramBusFollowerRegistrationState, "isRegistered">;
74
+ registrationRuntime: Pick<TelegramBusFollowerRegistrationRuntime<TContext>, "registerWithLeader" | "setContext">;
75
+ getLeaderState: () => TelegramLockState;
76
+ isSessionActive?: (ctx: TContext) => boolean;
77
+ updateStatus: (ctx: TContext) => void;
78
+ recordRuntimeEvent: (category: string, error: unknown, details?: Record<string, unknown>) => void;
79
+ }
80
+ export type TelegramBusFollowerControlLifecyclePhase = "electing";
81
+ export interface TelegramBusFollowerControlState {
82
+ getActiveAuthSecret: () => string | undefined;
83
+ setActiveAuthSecret: (secret: string | undefined) => void;
84
+ getLifecyclePhase: () => TelegramBusFollowerControlLifecyclePhase | undefined;
85
+ setLifecyclePhase: (phase: TelegramBusFollowerControlLifecyclePhase | undefined) => void;
86
+ }
87
+ export interface TelegramBusFollowerRegistrationState {
88
+ isRegistered: () => boolean;
89
+ getTarget: () => TelegramTarget | undefined;
90
+ getSlot: () => string | undefined;
91
+ getThreadName: () => string | undefined;
92
+ getDisplayTitle: () => string | undefined;
93
+ setDisplayTitle: (title: string, generation: string) => boolean;
94
+ getGeneration: () => string | undefined;
95
+ beginRecovery: () => number;
96
+ cancelRecovery: () => void;
97
+ waitForGeneration: (timeoutMs?: number) => Promise<string | undefined>;
98
+ getLeaderProtocol: () => TelegramBusProtocolIdentity | undefined;
99
+ getEligibleElectionSlots: () => readonly string[];
100
+ setEligibleElectionSlots: (slots: readonly string[]) => void;
101
+ setRegistered: (registered: boolean, target?: TelegramTarget, metadata?: {
102
+ slot?: string;
103
+ threadName?: string;
104
+ displayTitle?: string;
105
+ generation?: string;
106
+ leaderProtocol?: TelegramBusProtocolIdentity;
107
+ }) => void;
108
+ }
109
+ export interface TelegramBusForwardedUpdateReceiverRuntime {
110
+ start: () => Promise<void>;
111
+ stop: () => Promise<void>;
112
+ }
113
+ export interface TelegramBusFollowerDurableAdmissionResult {
114
+ deliveryId: string;
115
+ sourceUpdateId: number;
116
+ }
117
+ export interface TelegramBusFollowerDurableAdmissionPort<TContext> {
118
+ admit: (envelope: Extract<TelegramBusEnvelope, {
119
+ kind: "leader.forwardCallback" | "leader.forwardReaction" | "leader.forwardMessage" | "leader.forwardEditedMessage" | "leader.wakeInputCustody";
120
+ }>, ctx: TContext) => Promise<TelegramBusFollowerDurableAdmissionResult>;
121
+ }
122
+ export interface TelegramBusFollowerClientRuntimeDeps<TMessage = unknown> {
123
+ socketPath: TelegramBusSocketPathSource;
124
+ instanceId: string;
125
+ getApiAuthSecret?: () => string | undefined;
126
+ getForwardingAuthSecret?: () => string | undefined;
127
+ getRegistrationGeneration: () => string | undefined;
128
+ waitForRegistrationGeneration?: (timeoutMs?: number) => Promise<string | undefined>;
129
+ getForwardCommentBatchPosition?: (message: TMessage) => "comment" | "forward" | undefined;
130
+ validateForwardOwnership?: (ownership: TelegramBusForwardOwnership) => boolean;
131
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
132
+ timeoutMs?: number;
133
+ }
134
+ export interface TelegramBusFollowerApiCallerDeps {
135
+ socketPath: TelegramBusSocketPathSource;
136
+ instanceId: string;
137
+ createRequestId: () => string;
138
+ getAuthSecret?: () => string | undefined;
139
+ getRegistrationGeneration: () => string | undefined;
140
+ waitForRegistrationGeneration?: (timeoutMs?: number) => Promise<string | undefined>;
141
+ getNowMs?: () => number;
142
+ timeoutMs?: number;
143
+ }
144
+ export interface TelegramBusFollowerRegistrationRuntimeDeps<TContext extends {
145
+ cwd?: string;
146
+ }> {
147
+ instanceId: string;
148
+ createRequestId: () => string;
149
+ protocolIdentity: TelegramBusProtocolIdentity;
150
+ getLeaderAuthSecret?: (leader: {
151
+ busSecret?: string;
152
+ }) => string | undefined;
153
+ setActiveAuthSecret?: (secret: string | undefined) => void;
154
+ followerBusSocketPath?: string;
155
+ getFollowerBusSocketPath?: () => string;
156
+ getLeaderSocketPath?: () => string;
157
+ startReceiving?: () => Promise<void>;
158
+ stopReceiving?: () => Promise<void> | void;
159
+ registrationState?: TelegramBusFollowerRegistrationState;
160
+ isContextActive?: (ctx: TContext) => boolean;
161
+ getProfileKey?: (ctx: TContext) => string | undefined;
162
+ getThreadName?: (ctx: TContext) => string | undefined;
163
+ getNowMs?: () => number;
164
+ getPid?: () => number;
165
+ getProcessBirthId?: () => string;
166
+ getSessionId?: (ctx: TContext) => string | undefined;
167
+ getSessionGeneration?: () => number;
168
+ timeoutMs?: number;
169
+ registrationTimeoutMs?: number;
170
+ registrationRetryAttempts?: number;
171
+ registrationRetryDelayMs?: number;
172
+ heartbeatMs?: number;
173
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
174
+ onHeartbeatFailure?: (error: unknown, ctx: TContext) => Promise<void> | void;
175
+ onRegistered?: (ctx: TContext) => Promise<void> | void;
176
+ onDisplayTitleChanged?: (ctx: TContext) => void;
177
+ }
178
+ export declare function createTelegramManualFollowerProfileKeyResolver(input: {
179
+ getActiveProfileName: () => string | undefined;
180
+ manualFollowerOwnerId: string;
181
+ }): () => string;
182
+ export interface TelegramBusFollowerElection {
183
+ expectedOwner?: TelegramLockEntry;
184
+ }
185
+ export type TelegramBusFollowerPromotionHandler<TContext> = (ctx: TContext, binding: TelegramBusFollowerPromotedBinding, election: TelegramBusFollowerElection) => Promise<boolean>;
186
+ type TelegramBusFollowerWorkspaceAdmissionDeps = {
187
+ getWorkspaceAdmission?: () => Pick<TelegramWorkspaceAdmissionLedger, "acquireAdmission" | "releaseAdmission"> | undefined;
188
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
189
+ };
190
+ export declare function createTelegramBusFollowerPromotionHandler<TContext extends {
191
+ cwd: string;
192
+ }>(input: {
193
+ topicTargetStore: Threads.TelegramTopicTargetStore;
194
+ instanceId: string;
195
+ getActiveProfileName: () => string | undefined;
196
+ getSessionId?: (ctx: TContext) => string | undefined;
197
+ startLeader: (ctx: TContext, election: TelegramBusFollowerElection, onAcquired: () => Promise<void>) => Promise<boolean>;
198
+ recordRuntimeEvent: (category: string, error: unknown, details?: Record<string, unknown>) => void;
199
+ getNowMs?: () => number;
200
+ getPid?: () => number;
201
+ getWorkspaceAdmission?: TelegramBusFollowerWorkspaceAdmissionDeps["getWorkspaceAdmission"];
202
+ }): TelegramBusFollowerPromotionHandler<TContext>;
203
+ export interface TelegramBusFollowerTargetReplacementHandlerDeps<TContext> {
204
+ topicTargetStore: Pick<Threads.TelegramTopicTargetStore, "load" | "list" | "markStaleByTarget" | "upsert" | "persist">;
205
+ registrationState: Pick<TelegramBusFollowerRegistrationState, "getTarget" | "getSlot" | "setRegistered" | "getGeneration">;
206
+ instanceId: string;
207
+ getManualFollowerProfileKey: () => string;
208
+ manualFollowerOwnerId: string;
209
+ getSyncState: () => Sync.TelegramSyncState;
210
+ setSyncState: (state: Sync.TelegramSyncState) => void;
211
+ getNowMs?: () => number;
212
+ updateStatus: (ctx: TContext) => void;
213
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
214
+ getWorkspaceAdmission?: TelegramBusFollowerWorkspaceAdmissionDeps["getWorkspaceAdmission"];
215
+ }
216
+ export type TelegramBusFollowerLeaderState = {
217
+ kind: "inactive";
218
+ } | {
219
+ kind: "active-here";
220
+ lock: TelegramBusFollowerLeaderLock;
221
+ } | {
222
+ kind: "active-elsewhere";
223
+ lock: TelegramBusFollowerLeaderLock;
224
+ } | {
225
+ kind: "stale";
226
+ lock: TelegramBusFollowerLeaderLock;
227
+ };
228
+ export type TelegramBusFollowerLeaderLock = TelegramLockEntry;
229
+ export interface TelegramBusFollowerPromotedBinding {
230
+ target?: TelegramTarget;
231
+ slot?: string;
232
+ threadName?: string;
233
+ }
234
+ export interface TelegramBusFollowerHeartbeatRecoveryHandlerDeps<TContext> {
235
+ registrationState: Pick<TelegramBusFollowerRegistrationState, "getTarget" | "getSlot" | "getThreadName" | "getEligibleElectionSlots" | "beginRecovery" | "setRegistered">;
236
+ getRegistrationRuntime: () => TelegramBusFollowerRegistrationRuntime<TContext>;
237
+ getLeaderState: () => TelegramBusFollowerLeaderState;
238
+ setLifecyclePhase: (phase: "electing" | undefined) => void;
239
+ updateStatus: (ctx: TContext) => void;
240
+ promoteToLeader: (ctx: TContext, binding: TelegramBusFollowerPromotedBinding, election: TelegramBusFollowerElection) => Promise<boolean>;
241
+ sleep?: (ms: number) => Promise<void>;
242
+ scheduleRetry?: (retry: () => void, delayMs: number) => void;
243
+ getActiveContext?: () => TContext | undefined;
244
+ promotionGraceMs?: number;
245
+ recordRuntimeEvent: (category: string, error: unknown, details?: Record<string, unknown>) => void;
246
+ }
247
+ export interface TelegramBusForwardedUpdateReceiverRuntimeDeps<TContext> {
248
+ socketPath: TelegramBusSocketPathSource;
249
+ instanceId: string;
250
+ getAuthSecret?: () => string | undefined;
251
+ getRegistrationGeneration: () => string | undefined;
252
+ getRecipientBindingKey: () => string | undefined;
253
+ durableAdmission: TelegramBusFollowerDurableAdmissionPort<TContext>;
254
+ sourceReferenceAdmission?: TelegramBusFollowerDurableAdmissionPort<TContext>;
255
+ isSourceReferenceAdmissionEnabled?: () => boolean;
256
+ hasAuthenticatedSourceReferenceTransport?: () => boolean;
257
+ getContext: () => TContext | undefined;
258
+ handleInputCustodyHandoff?: (envelope: Extract<TelegramBusEnvelope, {
259
+ kind: "leader.offerInputCustodyHandoff";
260
+ }>, ctx: TContext) => Promise<unknown> | unknown;
261
+ handleQueueHandoff?: (envelope: Extract<TelegramBusEnvelope, {
262
+ kind: "leader.offerQueueHandoff";
263
+ }>, ctx: TContext) => Promise<TelegramQueueHandoffStageResult> | TelegramQueueHandoffStageResult;
264
+ handleReplaceTarget?: (input: {
265
+ target: TelegramTarget & {
266
+ threadId: number;
267
+ };
268
+ oldTarget?: TelegramTarget & {
269
+ threadId: number;
270
+ };
271
+ reason: "thread-restore";
272
+ registrationGeneration: string;
273
+ }, ctx: TContext) => Promise<void> | void;
274
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
275
+ }
276
+ export interface TelegramBusFollowerRuntimeAssembly<TContext> {
277
+ receiver: TelegramBusForwardedUpdateReceiverRuntime;
278
+ registration: TelegramBusFollowerRegistrationRuntime<TContext>;
279
+ }
280
+ export interface TelegramBusFollowerRuntimeAssemblyPorts<TContext extends {
281
+ cwd?: string;
282
+ }> {
283
+ instanceId: string;
284
+ registrationState: TelegramBusFollowerRegistrationState;
285
+ recordRuntimeEvent: (category: string, error: unknown, details?: Record<string, unknown>) => void;
286
+ receiver: Omit<TelegramBusForwardedUpdateReceiverRuntimeDeps<TContext>, "handleReplaceTarget" | "instanceId" | "recordRuntimeEvent" | "getRegistrationGeneration">;
287
+ targetReplacement: Omit<TelegramBusFollowerTargetReplacementHandlerDeps<TContext>, "registrationState" | "instanceId" | "recordRuntimeEvent">;
288
+ recovery: Omit<TelegramBusFollowerHeartbeatRecoveryHandlerDeps<TContext>, "getRegistrationRuntime" | "registrationState" | "recordRuntimeEvent">;
289
+ registration: Omit<TelegramBusFollowerRegistrationRuntimeDeps<TContext>, "startReceiving" | "stopReceiving" | "onHeartbeatFailure" | "instanceId" | "registrationState" | "recordRuntimeEvent" | "protocolIdentity"> & {
290
+ protocolIdentity: TelegramBusProtocolIdentity;
291
+ };
292
+ }
293
+ export declare function createTelegramBusFollowerRuntimeAssembly<TContext extends {
294
+ cwd?: string;
295
+ }>(ports: TelegramBusFollowerRuntimeAssemblyPorts<TContext>): TelegramBusFollowerRuntimeAssembly<TContext>;
296
+ export declare function createTelegramBusFollowerTargetReplacementHandler<TContext>(deps: TelegramBusFollowerTargetReplacementHandlerDeps<TContext>): NonNullable<TelegramBusForwardedUpdateReceiverRuntimeDeps<TContext>["handleReplaceTarget"]>;
297
+ export declare function createTelegramBusFollowerClientRuntime<TContext, TReactionUpdate, TCallbackQuery, TMessage = unknown>(deps: TelegramBusFollowerClientRuntimeDeps<TMessage>): {
298
+ createRequestId: () => string;
299
+ callApi: (method: string, args: unknown[]) => Promise<unknown>;
300
+ agentMessages: {
301
+ resolveTarget: (selector: TelegramBusAgentTargetSelector) => Promise<TelegramTarget & {
302
+ threadId: number;
303
+ }>;
304
+ routeMessage: (message: TelegramBusAgentMessage) => Promise<void>;
305
+ };
306
+ foreignOwnedUpdateForwarder: {
307
+ forwardCallback: (input: {
308
+ query: TCallbackQuery;
309
+ ownership: TelegramBusForwardOwnership;
310
+ ctx: TContext;
311
+ }) => Promise<import("./bus.ts").TelegramBusForeignUpdateSettlement>;
312
+ forwardReaction: (input: {
313
+ reactionUpdate: TReactionUpdate;
314
+ ownership: TelegramBusForwardOwnership;
315
+ ctx: TContext;
316
+ }) => Promise<import("./bus.ts").TelegramBusForeignUpdateSettlement>;
317
+ forwardMessage: (input: {
318
+ message: TMessage;
319
+ ownership: TelegramBusForwardOwnership;
320
+ ctx: TContext;
321
+ }) => Promise<import("./bus.ts").TelegramBusForeignUpdateSettlement>;
322
+ forwardEditedMessage: (input: {
323
+ message: TMessage;
324
+ ownership: TelegramBusForwardOwnership;
325
+ ctx: TContext;
326
+ }) => Promise<import("./bus.ts").TelegramBusForeignUpdateSettlement>;
327
+ };
328
+ queueHandoff: (input: {
329
+ recipientInstanceId: string;
330
+ recipientRegistrationGeneration: string;
331
+ donorProcessId: number;
332
+ donorProcessBirthId: string;
333
+ donorSessionGeneration: number;
334
+ donorAcquisitionId: string;
335
+ donorAcquiredAtMs: number;
336
+ handoffToken: string;
337
+ payload: TelegramQueueHandoffPayload;
338
+ }) => Promise<TelegramQueueHandoffStageResult>;
339
+ targetController: {
340
+ replaceTarget: (input: {
341
+ follower: import("./bus.ts").TelegramBusFollowerView;
342
+ target: TelegramTarget & {
343
+ threadId: number;
344
+ };
345
+ oldTarget?: TelegramTarget & {
346
+ threadId: number;
347
+ };
348
+ reason: "thread-restore";
349
+ }) => Promise<boolean>;
350
+ };
351
+ };
352
+ export declare function createTelegramBusFollowerQueueHandoffClient(deps: TelegramBusFollowerApiCallerDeps): (input: {
353
+ recipientInstanceId: string;
354
+ recipientRegistrationGeneration: string;
355
+ donorProcessId: number;
356
+ donorProcessBirthId: string;
357
+ donorSessionGeneration: number;
358
+ donorAcquisitionId: string;
359
+ donorAcquiredAtMs: number;
360
+ handoffToken: string;
361
+ payload: TelegramQueueHandoffPayload;
362
+ }) => Promise<TelegramQueueHandoffStageResult>;
363
+ export declare function createTelegramBusAgentMessageClient(deps: TelegramBusFollowerApiCallerDeps): {
364
+ resolveTarget: (selector: TelegramBusAgentTargetSelector) => Promise<TelegramTarget & {
365
+ threadId: number;
366
+ }>;
367
+ routeMessage: (message: TelegramBusAgentMessage) => Promise<void>;
368
+ };
369
+ export declare function createTelegramBusFollowerApiCaller(deps: TelegramBusFollowerApiCallerDeps): (method: string, args: unknown[]) => Promise<unknown>;
370
+ export declare function createTelegramBusFollowerSessionReplacementSuspender(deps: TelegramBusFollowerSessionReplacementSuspenderDeps): () => Promise<void>;
371
+ export declare function createTelegramBusFollowerSessionRefreshHook<TContext>(deps: TelegramBusFollowerSessionRefreshHookDeps<TContext>): (_event: unknown, ctx: TContext) => Promise<void>;
372
+ export declare function createTelegramBusFollowerControlState(): TelegramBusFollowerControlState;
373
+ export declare function createTelegramBusFollowerRegistrationState(options?: {
374
+ onAvailabilityChanged?: () => void;
375
+ }): TelegramBusFollowerRegistrationState;
376
+ export declare function createTelegramBusFollowerHeartbeatRecoveryHandler<TContext>(deps: TelegramBusFollowerHeartbeatRecoveryHandlerDeps<TContext>): (error: unknown, ctx: TContext) => Promise<void>;
377
+ export declare function createTelegramBusFollowerRegistrationRuntime<TContext extends {
378
+ cwd?: string;
379
+ }>(deps: TelegramBusFollowerRegistrationRuntimeDeps<TContext>): TelegramBusFollowerRegistrationRuntime<TContext>;
380
+ /** Bind source-owned sender checks to the journal's already-admitted synchronous v1 hook. */
381
+ export declare function createTelegramBusFollowerPairedAdmission(deps: {
382
+ profileName: string;
383
+ tokenSha256: string;
384
+ configStore: Pick<TelegramConfigStore, "withPairedUserAdmission">;
385
+ assertExecutionCurrent: () => void;
386
+ }): NonNullable<TelegramUpdateJournalStoreOptions["withPairedAdmission"]>;
387
+ export declare function prepareTelegramBusFollowerJournaledUpdateForExecution<TUpdate extends {
388
+ message?: unknown;
389
+ } & Record<string, unknown>>(update: TUpdate, prepareForwardedMessage: (message: NonNullable<TUpdate["message"]>, position: "comment" | "forward") => void): TUpdate;
390
+ export declare function createTelegramBusFollowerDurableAdmissionRuntime<TContext>(deps: {
391
+ journal: {
392
+ appendBatch(updates: readonly ({
393
+ update_id: number;
394
+ } & Record<string, unknown>)[]): unknown;
395
+ };
396
+ signalWorker: (ctx: TContext) => void;
397
+ }): TelegramBusFollowerDurableAdmissionPort<TContext>;
398
+ export interface TelegramBusFollowerInputCustodyBundle<TContext> {
399
+ acceptHandoff(input: {
400
+ sourceRecoveryKey: string;
401
+ recipientBindingKey: string;
402
+ source: {
403
+ journalBindingKey: string;
404
+ tokenSha256: string;
405
+ updateId: number;
406
+ };
407
+ handoffId: string;
408
+ }, ctx: TContext): unknown;
409
+ wakeSource(input: TelegramBusFollowerDurableAdmissionResult & {
410
+ recipientBindingKey: string;
411
+ sourceRecoveryKey: string;
412
+ sourceClaim: {
413
+ acquisitionId: string;
414
+ handoffId: string;
415
+ };
416
+ }, ctx: TContext): void;
417
+ resolveForwardReference(input: {
418
+ sourceUpdateId: number;
419
+ recipientBindingKey: string;
420
+ }): {
421
+ sourceRecoveryKey: string;
422
+ source: {
423
+ updateId: number;
424
+ owner: {
425
+ acquisitionId: string;
426
+ handoffId: string;
427
+ };
428
+ };
429
+ } | undefined;
430
+ }
431
+ export declare function createTelegramBusFollowerInputCustodyPorts<TContext>(deps: {
432
+ getInputCustodyBus(): TelegramBusFollowerInputCustodyBundle<TContext> | undefined;
433
+ }): {
434
+ isSourceReferenceAdmissionEnabled: () => boolean;
435
+ handleInputCustodyHandoff(envelope: Extract<TelegramBusEnvelope, {
436
+ kind: "leader.offerInputCustodyHandoff";
437
+ }>, ctx: TContext): unknown;
438
+ sourceReferenceAdmission: TelegramBusFollowerDurableAdmissionPort<TContext>;
439
+ resolveInputCustodyReference(input: {
440
+ sourceUpdateId: number;
441
+ recipientBindingKey: string;
442
+ }): {
443
+ sourceRecoveryKey: string;
444
+ source: {
445
+ updateId: number;
446
+ owner: {
447
+ acquisitionId: string;
448
+ handoffId: string;
449
+ };
450
+ };
451
+ } | undefined;
452
+ };
453
+ export declare function createTelegramBusFollowerSourceReferenceAdmissionRuntime<TContext>(deps: {
454
+ wakeSource: (input: TelegramBusFollowerDurableAdmissionResult & {
455
+ recipientBindingKey: string;
456
+ sourceRecoveryKey: string;
457
+ sourceClaim: {
458
+ acquisitionId: string;
459
+ handoffId: string;
460
+ };
461
+ }, ctx: TContext) => Promise<void> | void;
462
+ }): TelegramBusFollowerDurableAdmissionPort<TContext>;
463
+ export declare function createTelegramBusForwardedUpdateReceiverRuntime<TContext>(deps: TelegramBusForwardedUpdateReceiverRuntimeDeps<TContext>): TelegramBusForwardedUpdateReceiverRuntime;
464
+ export {};