pi-harness-runtime 1.1.398 → 1.1.403

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 (613) hide show
  1. package/AGENTS.md +44 -2
  2. package/CHANGELOG.md +28 -0
  3. package/RULES.md +28 -0
  4. package/harness/agent-handoff.ts +2 -3
  5. package/harness/autonomous-review.ts +1 -1
  6. package/harness/blackboard.ts +2 -3
  7. package/harness/context-compact-orchestrator.ts +1 -1
  8. package/harness/context-window-manager.ts +2 -2
  9. package/harness/e2e/playwright-runner.ts +6 -4
  10. package/harness/herdr-agents.ts +1 -1
  11. package/harness/job-state-machine.ts +1 -1
  12. package/harness/langchain/daemon.ts +3 -3
  13. package/harness/langchain/graph.ts +2 -2
  14. package/harness/langchain/ping-pong-middleware.ts +2 -2
  15. package/harness/loop-code-agent.ts +6 -4
  16. package/harness/loop-controller.ts +1 -1
  17. package/harness/loop-review-agent.ts +1 -1
  18. package/harness/loop-types.ts +1 -1
  19. package/harness/master-planner.ts +1 -1
  20. package/harness/project-detector/detector.ts +1 -2
  21. package/harness/repair-engine.ts +2 -4
  22. package/harness/service-diagnostics.ts +1 -1
  23. package/harness/skill-sync.ts +3 -3
  24. package/index.ts +276 -55
  25. package/mirror.ts +1 -1
  26. package/package.json +5 -3
  27. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
  28. package/packages/a2a-adapter/dist/discovery.js +0 -1
  29. package/packages/a2a-adapter/dist/discovery.js.map +1 -1
  30. package/packages/a2a-adapter/package.json +1 -1
  31. package/packages/a2a-adapter/src/discovery.ts +0 -1
  32. package/packages/agent-policy/package.json +1 -1
  33. package/packages/architecture-generator/package.json +1 -1
  34. package/packages/auth/dist/index.d.ts +9 -0
  35. package/packages/auth/dist/index.d.ts.map +1 -0
  36. package/packages/auth/dist/index.js +9 -0
  37. package/packages/auth/dist/index.js.map +1 -0
  38. package/packages/auth/package.json +1 -1
  39. package/packages/auth/src/index.ts +9 -0
  40. package/packages/autonomous-refactor/package.json +1 -1
  41. package/packages/autonomous-runtime/package.json +1 -1
  42. package/packages/cache-strategy/package.json +1 -1
  43. package/packages/capability-registry/package.json +1 -1
  44. package/packages/checkpoint/package.json +1 -1
  45. package/packages/cli-plugin-sdk/package.json +1 -1
  46. package/packages/clipboard/package.json +1 -1
  47. package/packages/clipboard-plugin/package.json +1 -1
  48. package/packages/code-generation/package.json +1 -1
  49. package/packages/code-review/package.json +1 -1
  50. package/packages/codex-adapter/package.json +1 -1
  51. package/packages/codex-watcher/package.json +1 -1
  52. package/packages/config-capture/dist/index.d.ts +52 -0
  53. package/packages/config-capture/dist/index.d.ts.map +1 -0
  54. package/packages/config-capture/dist/index.js +261 -0
  55. package/packages/config-capture/dist/index.js.map +1 -0
  56. package/packages/config-capture/package.json +1 -1
  57. package/packages/connection-runtime/package.json +1 -1
  58. package/packages/context-compiler/package.json +1 -1
  59. package/packages/context-discovery/package.json +1 -1
  60. package/packages/context-manager/package.json +1 -1
  61. package/packages/contracts/package.json +1 -1
  62. package/packages/cookie-sanitizer/package.json +1 -1
  63. package/packages/cost-optimizer/package.json +1 -1
  64. package/packages/dependency-analyzer/package.json +1 -1
  65. package/packages/django-plugin/package.json +1 -1
  66. package/packages/doc-generator/package.json +1 -1
  67. package/packages/durable-review/package.json +1 -1
  68. package/packages/e2e-tester/package.json +1 -1
  69. package/packages/evaluation-engine/package.json +1 -1
  70. package/packages/evaluation-runner/package.json +1 -1
  71. package/packages/event-bus/package.json +1 -1
  72. package/packages/event-sink/package.json +1 -1
  73. package/packages/event-store/package.json +1 -1
  74. package/packages/experience-replay/package.json +1 -1
  75. package/packages/feedback-collector/package.json +1 -1
  76. package/packages/file-copy-helper/dist/extension.d.ts +15 -0
  77. package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
  78. package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
  79. package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
  80. package/packages/file-copy-helper/dist/extension.debug.js +215 -0
  81. package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
  82. package/packages/file-copy-helper/dist/extension.js +222 -0
  83. package/packages/file-copy-helper/dist/extension.js.map +1 -0
  84. package/packages/file-copy-helper/dist/index.d.ts +3 -0
  85. package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
  86. package/packages/file-copy-helper/dist/index.js +3 -0
  87. package/packages/file-copy-helper/dist/index.js.map +1 -0
  88. package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
  89. package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
  90. package/packages/file-copy-helper/dist/intent-detector.js +348 -0
  91. package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
  92. package/packages/file-copy-helper/package.json +1 -1
  93. package/packages/framework-detector/package.json +1 -1
  94. package/packages/framework-plugin-sdk/package.json +1 -1
  95. package/packages/frappe-plugin/package.json +1 -1
  96. package/packages/generic-web-plugin/package.json +1 -1
  97. package/packages/health-monitor/package.json +1 -1
  98. package/packages/intent-analyzer/package.json +1 -1
  99. package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
  100. package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
  101. package/packages/jev-judge/dist/auto-continue.js +267 -22
  102. package/packages/jev-judge/dist/auto-continue.js.map +1 -1
  103. package/packages/jev-judge/dist/index.d.ts +2 -0
  104. package/packages/jev-judge/dist/index.d.ts.map +1 -1
  105. package/packages/jev-judge/dist/index.js +2 -0
  106. package/packages/jev-judge/dist/index.js.map +1 -1
  107. package/packages/jev-judge/dist/question-risk.d.ts +53 -0
  108. package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
  109. package/packages/jev-judge/dist/question-risk.js +105 -0
  110. package/packages/jev-judge/dist/question-risk.js.map +1 -0
  111. package/packages/jev-judge/package.json +1 -1
  112. package/packages/jev-judge/src/auto-continue.ts +426 -29
  113. package/packages/jev-judge/src/index.ts +4 -0
  114. package/packages/jev-judge/src/question-risk.ts +155 -0
  115. package/packages/jev-judge/tests/auto-continue-context.test.ts +243 -0
  116. package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
  117. package/packages/jev-judge/tests/question-risk.test.ts +129 -0
  118. package/packages/knowledge-graph/package.json +1 -1
  119. package/packages/knowledge-retrieval/package.json +1 -1
  120. package/packages/laravel-plugin/package.json +1 -1
  121. package/packages/learning-engine/package.json +1 -1
  122. package/packages/logging/README.md +36 -3
  123. package/packages/logging/dist/config.d.ts +7 -0
  124. package/packages/logging/dist/config.d.ts.map +1 -1
  125. package/packages/logging/dist/config.js +14 -0
  126. package/packages/logging/dist/config.js.map +1 -1
  127. package/packages/logging/dist/incidents/schema.d.ts +111 -0
  128. package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
  129. package/packages/logging/dist/incidents/schema.js +0 -0
  130. package/packages/logging/dist/incidents/schema.js.map +1 -0
  131. package/packages/logging/dist/index.d.ts +2 -0
  132. package/packages/logging/dist/index.d.ts.map +1 -1
  133. package/packages/logging/dist/index.js +2 -0
  134. package/packages/logging/dist/index.js.map +1 -1
  135. package/packages/logging/dist/server/http.d.ts +4 -3
  136. package/packages/logging/dist/server/http.d.ts.map +1 -1
  137. package/packages/logging/dist/server/http.js +35 -3
  138. package/packages/logging/dist/server/http.js.map +1 -1
  139. package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
  140. package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
  141. package/packages/logging/dist/server/incident-qdrant.js +129 -0
  142. package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
  143. package/packages/logging/dist/server/incident-store.d.ts +76 -0
  144. package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
  145. package/packages/logging/dist/server/incident-store.js +157 -0
  146. package/packages/logging/dist/server/incident-store.js.map +1 -0
  147. package/packages/logging/dist/server/index.d.ts +4 -0
  148. package/packages/logging/dist/server/index.d.ts.map +1 -1
  149. package/packages/logging/dist/server/index.js +2 -0
  150. package/packages/logging/dist/server/index.js.map +1 -1
  151. package/packages/logging/dist/server/service.d.ts +33 -0
  152. package/packages/logging/dist/server/service.d.ts.map +1 -1
  153. package/packages/logging/dist/server/service.js +63 -0
  154. package/packages/logging/dist/server/service.js.map +1 -1
  155. package/packages/logging/dist/shipper.d.ts +74 -3
  156. package/packages/logging/dist/shipper.d.ts.map +1 -1
  157. package/packages/logging/dist/shipper.js +88 -5
  158. package/packages/logging/dist/shipper.js.map +1 -1
  159. package/packages/logging/dist/singleton.d.ts.map +1 -1
  160. package/packages/logging/dist/singleton.js +1 -0
  161. package/packages/logging/dist/singleton.js.map +1 -1
  162. package/packages/logging/package.json +1 -1
  163. package/packages/logging/src/config.ts +22 -0
  164. package/packages/logging/src/incidents/schema.ts +0 -0
  165. package/packages/logging/src/index.ts +17 -0
  166. package/packages/logging/src/server/http.ts +42 -3
  167. package/packages/logging/src/server/incident-qdrant.ts +177 -0
  168. package/packages/logging/src/server/incident-store.ts +192 -0
  169. package/packages/logging/src/server/index.ts +21 -0
  170. package/packages/logging/src/server/service.ts +79 -0
  171. package/packages/logging/src/shipper.ts +120 -5
  172. package/packages/logging/src/singleton.ts +1 -0
  173. package/packages/logging/test/fanout.test.ts +186 -0
  174. package/packages/logging/test/incidents.test.ts +404 -0
  175. package/packages/mcp-adapter/package.json +1 -1
  176. package/packages/memory-engine/package.json +1 -1
  177. package/packages/milestone-manager/package.json +1 -1
  178. package/packages/model-registry/package.json +1 -1
  179. package/packages/nextjs-plugin/package.json +1 -1
  180. package/packages/notification/dist/adapters/detail-format.d.ts +10 -2
  181. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -1
  182. package/packages/notification/dist/adapters/detail-format.js +39 -0
  183. package/packages/notification/dist/adapters/detail-format.js.map +1 -1
  184. package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
  185. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  186. package/packages/notification/dist/adapters/line-adapter.js +84 -7
  187. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  188. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  189. package/packages/notification/dist/adapters/telegram-adapter.js +6 -2
  190. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  191. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  192. package/packages/notification/dist/notification-center.js +59 -7
  193. package/packages/notification/dist/notification-center.js.map +1 -1
  194. package/packages/notification/dist/pending-question.d.ts +69 -2
  195. package/packages/notification/dist/pending-question.d.ts.map +1 -1
  196. package/packages/notification/dist/pending-question.js +88 -2
  197. package/packages/notification/dist/pending-question.js.map +1 -1
  198. package/packages/notification/dist/types.d.ts +18 -0
  199. package/packages/notification/dist/types.d.ts.map +1 -1
  200. package/packages/notification/package.json +1 -1
  201. package/packages/notification/src/adapters/detail-format.ts +42 -2
  202. package/packages/notification/src/adapters/line-adapter.ts +94 -7
  203. package/packages/notification/src/adapters/telegram-adapter.ts +6 -2
  204. package/packages/notification/src/notification-center.ts +65 -8
  205. package/packages/notification/src/pending-question.ts +160 -8
  206. package/packages/notification/src/types.ts +18 -0
  207. package/packages/notification/test/approval-payload.test.ts +269 -0
  208. package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
  209. package/packages/observability/package.json +1 -1
  210. package/packages/okf-indexer/dist/index.d.ts +9 -0
  211. package/packages/okf-indexer/dist/index.d.ts.map +1 -0
  212. package/packages/okf-indexer/dist/index.js +9 -0
  213. package/packages/okf-indexer/dist/index.js.map +1 -0
  214. package/packages/okf-indexer/package.json +1 -1
  215. package/packages/okf-indexer/src/index.ts +9 -0
  216. package/packages/paperclip-integration/package.json +1 -1
  217. package/packages/performance-optimizer/package.json +1 -1
  218. package/packages/permission-mode/package.json +1 -1
  219. package/packages/privilege-broker/package.json +1 -1
  220. package/packages/project-analyzer/package.json +1 -1
  221. package/packages/project-bootstrap/package.json +1 -1
  222. package/packages/projection-engine/package.json +1 -1
  223. package/packages/prompt-compiler/package.json +1 -1
  224. package/packages/prompt-versioning/package.json +1 -1
  225. package/packages/provider-adapter-sdk/package.json +1 -1
  226. package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
  227. package/packages/provider-router/dist/types.d.ts +2 -2
  228. package/packages/provider-router/dist/types.d.ts.map +1 -1
  229. package/packages/provider-router/dist/types.js +1 -1
  230. package/packages/provider-router/package.json +1 -1
  231. package/packages/provider-router/src/types.ts +2 -2
  232. package/packages/provider-selector/package.json +1 -1
  233. package/packages/providers/package.json +1 -1
  234. package/packages/qdrant-skills/package.json +1 -1
  235. package/packages/quota-manager/package.json +1 -1
  236. package/packages/rate-limiter/package.json +1 -1
  237. package/packages/react-vite-plugin/package.json +1 -1
  238. package/packages/relay/package.json +1 -1
  239. package/packages/release-manager/package.json +1 -1
  240. package/packages/requirement-compiler/package.json +1 -1
  241. package/packages/runtime/package.json +1 -1
  242. package/packages/scheduler/dist/index.d.ts +9 -0
  243. package/packages/scheduler/dist/index.d.ts.map +1 -0
  244. package/packages/scheduler/dist/index.js +9 -0
  245. package/packages/scheduler/dist/index.js.map +1 -0
  246. package/packages/scheduler/dist/scheduler.d.ts +17 -0
  247. package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
  248. package/packages/scheduler/dist/scheduler.js +41 -0
  249. package/packages/scheduler/dist/scheduler.js.map +1 -0
  250. package/packages/scheduler/package.json +1 -1
  251. package/packages/scheduler/src/index.ts +9 -0
  252. package/packages/scheduler-adapter/package.json +1 -1
  253. package/packages/session/package.json +1 -1
  254. package/packages/session-api/package.json +1 -1
  255. package/packages/session-export/package.json +1 -1
  256. package/packages/shared-context/dist/index.d.ts +7 -0
  257. package/packages/shared-context/dist/index.d.ts.map +1 -0
  258. package/packages/shared-context/dist/index.js +7 -0
  259. package/packages/shared-context/dist/index.js.map +1 -0
  260. package/packages/shared-context/dist/shared-context.d.ts +12 -0
  261. package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
  262. package/packages/shared-context/dist/shared-context.js +39 -0
  263. package/packages/shared-context/dist/shared-context.js.map +1 -0
  264. package/packages/shared-context/package.json +1 -1
  265. package/packages/skill-mcp-client/dist/client.d.ts +56 -0
  266. package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
  267. package/packages/skill-mcp-client/dist/client.js +101 -0
  268. package/packages/skill-mcp-client/dist/client.js.map +1 -0
  269. package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
  270. package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
  271. package/packages/skill-mcp-client/dist/errors.js +68 -0
  272. package/packages/skill-mcp-client/dist/errors.js.map +1 -0
  273. package/packages/skill-mcp-client/dist/index.d.ts +9 -0
  274. package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
  275. package/packages/skill-mcp-client/dist/index.js +9 -0
  276. package/packages/skill-mcp-client/dist/index.js.map +1 -0
  277. package/packages/skill-mcp-client/dist/types.d.ts +106 -0
  278. package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
  279. package/packages/skill-mcp-client/dist/types.js +14 -0
  280. package/packages/skill-mcp-client/dist/types.js.map +1 -0
  281. package/packages/skill-mcp-client/package.json +1 -1
  282. package/packages/skill-registry/package.json +1 -1
  283. package/packages/skills/package.json +1 -5
  284. package/packages/sprint-planner/package.json +1 -1
  285. package/packages/subscription-engine/package.json +1 -1
  286. package/packages/task-compiler/package.json +1 -1
  287. package/packages/telegram/package.json +1 -1
  288. package/packages/telegram/src/agent-messages.d.ts +28 -0
  289. package/packages/telegram/src/agent-messages.js +90 -0
  290. package/packages/telegram/src/bindings.d.ts +296 -0
  291. package/packages/telegram/src/bindings.js +1086 -0
  292. package/packages/telegram/src/bus.d.ts +759 -0
  293. package/packages/telegram/src/bus.js +2732 -0
  294. package/packages/telegram/src/commands.d.ts +761 -0
  295. package/packages/telegram/src/commands.js +2622 -0
  296. package/packages/telegram/src/config.d.ts +222 -0
  297. package/packages/telegram/src/config.js +844 -0
  298. package/packages/telegram/src/delivery.d.ts +161 -0
  299. package/packages/telegram/src/delivery.js +550 -0
  300. package/packages/telegram/src/extension.d.ts +7 -0
  301. package/packages/telegram/src/extension.js +2444 -0
  302. package/packages/telegram/src/inbound.d.ts +94 -0
  303. package/packages/telegram/src/inbound.js +478 -0
  304. package/packages/telegram/src/index.d.ts +6 -0
  305. package/packages/telegram/src/index.js +6 -0
  306. package/packages/telegram/src/keyboard.d.ts +21 -0
  307. package/packages/telegram/src/keyboard.js +37 -0
  308. package/packages/telegram/src/lifecycle.d.ts +210 -0
  309. package/packages/telegram/src/lifecycle.js +538 -0
  310. package/packages/telegram/src/pi.d.ts +76 -0
  311. package/packages/telegram/src/pi.js +130 -0
  312. package/packages/telegram/src/polling.d.ts +332 -0
  313. package/packages/telegram/src/polling.js +1219 -0
  314. package/packages/telegram/src/replies.d.ts +210 -0
  315. package/packages/telegram/src/replies.js +752 -0
  316. package/packages/telegram/src/routing.d.ts +388 -0
  317. package/packages/telegram/src/routing.js +7886 -0
  318. package/packages/telegram/src/runtime.d.ts +159 -0
  319. package/packages/telegram/src/runtime.js +351 -0
  320. package/packages/telegram/src/telegram-api.d.ts +564 -0
  321. package/packages/telegram/src/telegram-api.js +1332 -0
  322. package/packages/telegram/src/turns.d.ts +108 -0
  323. package/packages/telegram/src/turns.js +482 -0
  324. package/packages/telegram/src/updates.d.ts +1545 -0
  325. package/packages/telegram/src/updates.js +6420 -0
  326. package/packages/tencentdb-memory/package.json +1 -1
  327. package/packages/tencentdb-sync/package.json +1 -1
  328. package/packages/test-data-generator/package.json +1 -1
  329. package/packages/test-generator/package.json +1 -1
  330. package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
  331. package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
  332. package/packages/todo-bd-sync/dist/detector.js +132 -0
  333. package/packages/todo-bd-sync/dist/detector.js.map +1 -0
  334. package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
  335. package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
  336. package/packages/todo-bd-sync/dist/extension.js +35 -0
  337. package/packages/todo-bd-sync/dist/extension.js.map +1 -0
  338. package/packages/todo-bd-sync/dist/index.d.ts +87 -0
  339. package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
  340. package/packages/todo-bd-sync/dist/index.js +296 -0
  341. package/packages/todo-bd-sync/dist/index.js.map +1 -0
  342. package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
  343. package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
  344. package/packages/todo-bd-sync/dist/sync.js +290 -0
  345. package/packages/todo-bd-sync/dist/sync.js.map +1 -0
  346. package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
  347. package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
  348. package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
  349. package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
  350. package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
  351. package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
  352. package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
  353. package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
  354. package/packages/todo-bd-sync/dist/types.d.ts +65 -0
  355. package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
  356. package/packages/todo-bd-sync/dist/types.js +67 -0
  357. package/packages/todo-bd-sync/dist/types.js.map +1 -0
  358. package/packages/todo-bd-sync/package.json +1 -1
  359. package/packages/token-estimation/dist/index.d.ts +94 -0
  360. package/packages/token-estimation/dist/index.d.ts.map +1 -0
  361. package/packages/token-estimation/dist/index.js +115 -0
  362. package/packages/token-estimation/dist/index.js.map +1 -0
  363. package/packages/token-estimation/package.json +1 -1
  364. package/packages/token-optimizer/package.json +1 -1
  365. package/packages/trajectory/package.json +1 -1
  366. package/packages/tui/package.json +1 -1
  367. package/packages/types/dist/ai-providers.d.ts +36 -0
  368. package/packages/types/dist/ai-providers.d.ts.map +1 -0
  369. package/packages/types/dist/ai-providers.js +66 -0
  370. package/packages/types/dist/ai-providers.js.map +1 -0
  371. package/packages/types/dist/index.d.ts +12 -0
  372. package/packages/types/dist/index.d.ts.map +1 -0
  373. package/packages/types/dist/index.js +12 -0
  374. package/packages/types/dist/index.js.map +1 -0
  375. package/packages/types/package.json +5 -5
  376. package/packages/types/src/index.ts +12 -0
  377. package/packages/voice-api/package.json +1 -1
  378. package/packages/webmcp-tester/package.json +1 -1
  379. package/packages/wiki/package.json +1 -1
  380. package/packages/workflow-events/package.json +1 -1
  381. package/packages/workspace-scanner/package.json +1 -1
  382. package/packages/worktree/package.json +1 -1
  383. package/packages/worktree/worktree.ts +1 -1
  384. package/packages/write-review/package.json +1 -1
  385. package/renderer.ts +1 -1
  386. package/scripts/build-packages.ts +162 -0
  387. package/scripts/relay-client.ts +2 -2
  388. package/scripts/typecheck-packages.mjs +3 -3
  389. package/scripts/unified-webhook-server.ts +22 -10
  390. package/scripts/verify-package-contents.ts +345 -0
  391. package/scripts/ws-server.ts +1 -1
  392. package/tracker.ts +1 -1
  393. package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
  394. package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
  395. package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
  396. package/harness/browser-scrapers/index.d.ts +0 -29
  397. package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
  398. package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
  399. package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
  400. package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
  401. package/harness/e2e/browser-scrapers/index.d.ts +0 -30
  402. package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
  403. package/harness/langchain/agents.d.ts +0 -143
  404. package/harness/langchain/agents.test.d.ts +0 -2
  405. package/harness/langchain/checkpointer.d.ts +0 -48
  406. package/harness/langchain/checkpointer.test.d.ts +0 -8
  407. package/harness/langchain/cron-cli.d.ts +0 -12
  408. package/harness/langchain/daemon.d.ts +0 -161
  409. package/harness/langchain/daemon.test.d.ts +0 -11
  410. package/harness/langchain/file-tools.d.ts +0 -97
  411. package/harness/langchain/graph.d.ts +0 -706
  412. package/harness/langchain/model-router.d.ts +0 -63
  413. package/harness/langchain/model-router.test.d.ts +0 -2
  414. package/harness/langchain/models.d.ts +0 -72
  415. package/harness/langchain/ping-pong-middleware.d.ts +0 -28
  416. package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
  417. package/harness/langchain/run.d.ts +0 -15
  418. package/harness/langchain/scoreboard.test.d.ts +0 -13
  419. package/harness/langchain/status-line.d.ts +0 -91
  420. package/harness/langchain/status-line.test.d.ts +0 -8
  421. package/harness/langchain/surge.d.ts +0 -111
  422. package/harness/langchain/surge.test.d.ts +0 -10
  423. package/harness/langchain/widget.d.ts +0 -105
  424. package/harness/langchain/widget.test.d.ts +0 -8
  425. package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
  426. package/packages/autonomous-runtime/dist/worker.js +0 -133
  427. package/packages/capability-registry/src/types.d.ts +0 -47
  428. package/packages/clipboard/dist/clipboard.d.ts +0 -11
  429. package/packages/clipboard/dist/clipboard.js +0 -40
  430. package/packages/clipboard/dist/index.d.ts +0 -2
  431. package/packages/clipboard/dist/index.js +0 -2
  432. package/packages/clipboard/dist/types.d.ts +0 -13
  433. package/packages/clipboard/dist/types.js +0 -5
  434. package/packages/context-discovery/dist/discover.d.ts +0 -3
  435. package/packages/context-discovery/dist/discover.js +0 -42
  436. package/packages/context-discovery/dist/discovery.d.ts +0 -28
  437. package/packages/context-discovery/dist/discovery.js +0 -21
  438. package/packages/context-discovery/dist/index.d.ts +0 -3
  439. package/packages/context-discovery/dist/index.js +0 -2
  440. package/packages/context-discovery/dist/types.d.ts +0 -16
  441. package/packages/context-discovery/dist/types.js +0 -2
  442. package/packages/event-bus/dist/bus.d.ts +0 -15
  443. package/packages/event-bus/dist/bus.js +0 -90
  444. package/packages/event-bus/dist/index.d.ts +0 -4
  445. package/packages/event-bus/dist/index.js +0 -3
  446. package/packages/event-bus/dist/test/bus.test.js +0 -52
  447. package/packages/event-bus/dist/types.d.ts +0 -27
  448. package/packages/event-bus/dist/types.js +0 -10
  449. package/packages/event-store/dist/index.d.ts +0 -3
  450. package/packages/event-store/dist/index.js +0 -2
  451. package/packages/event-store/dist/store.d.ts +0 -15
  452. package/packages/event-store/dist/store.js +0 -131
  453. package/packages/event-store/dist/test/store.test.js +0 -57
  454. package/packages/event-store/dist/types.d.ts +0 -48
  455. package/packages/event-store/dist/types.js +0 -5
  456. package/packages/event-store/src/types.d.ts +0 -48
  457. package/packages/file-copy-helper/dist/src/extension.js +0 -186
  458. package/packages/model-registry/src/types.d.ts +0 -63
  459. package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
  460. package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
  461. package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
  462. package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
  463. package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
  464. package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
  465. package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
  466. package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
  467. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
  468. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
  469. package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
  470. package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
  471. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
  472. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
  473. package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
  474. package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
  475. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
  476. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
  477. package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
  478. package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
  479. package/packages/notification/dist/src/base-adapter.d.ts +0 -36
  480. package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
  481. package/packages/notification/dist/src/base-adapter.js +0 -39
  482. package/packages/notification/dist/src/base-adapter.js.map +0 -1
  483. package/packages/notification/dist/src/index.d.ts +0 -12
  484. package/packages/notification/dist/src/index.d.ts.map +0 -1
  485. package/packages/notification/dist/src/index.js +0 -12
  486. package/packages/notification/dist/src/index.js.map +0 -1
  487. package/packages/notification/dist/src/notification-center.d.ts +0 -89
  488. package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
  489. package/packages/notification/dist/src/notification-center.js +0 -356
  490. package/packages/notification/dist/src/notification-center.js.map +0 -1
  491. package/packages/notification/dist/src/notification-policy.d.ts +0 -66
  492. package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
  493. package/packages/notification/dist/src/notification-policy.js +0 -153
  494. package/packages/notification/dist/src/notification-policy.js.map +0 -1
  495. package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
  496. package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
  497. package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
  498. package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
  499. package/packages/notification/dist/src/types.d.ts +0 -106
  500. package/packages/notification/dist/src/types.d.ts.map +0 -1
  501. package/packages/notification/dist/src/types.js +0 -7
  502. package/packages/notification/dist/src/types.js.map +0 -1
  503. package/packages/projection-engine/dist/engine.d.ts +0 -61
  504. package/packages/projection-engine/dist/engine.js +0 -76
  505. package/packages/projection-engine/dist/index.d.ts +0 -2
  506. package/packages/projection-engine/dist/index.js +0 -2
  507. package/packages/projection-engine/dist/project.d.ts +0 -3
  508. package/packages/projection-engine/dist/project.js +0 -24
  509. package/packages/projection-engine/dist/types.d.ts +0 -55
  510. package/packages/projection-engine/dist/types.js +0 -5
  511. package/packages/projection-engine/src/types.d.ts +0 -55
  512. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
  513. package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
  514. package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
  515. package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
  516. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
  517. package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
  518. package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
  519. package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
  520. package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
  521. package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
  522. package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
  523. package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
  524. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
  525. package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
  526. package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
  527. package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
  528. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
  529. package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
  530. package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
  531. package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
  532. package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
  533. package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
  534. package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
  535. package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
  536. package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
  537. package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
  538. package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
  539. package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
  540. package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
  541. package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
  542. package/packages/provider-router/dist/provider-router/src/index.js +0 -25
  543. package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
  544. package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
  545. package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
  546. package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
  547. package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
  548. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
  549. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
  550. package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
  551. package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
  552. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
  553. package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
  554. package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
  555. package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
  556. package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
  557. package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
  558. package/packages/provider-router/dist/provider-router/src/types.js +0 -10
  559. package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
  560. package/packages/provider-router/dist/src/index.d.ts +0 -23
  561. package/packages/provider-router/dist/src/index.d.ts.map +0 -1
  562. package/packages/provider-router/dist/src/index.js +0 -25
  563. package/packages/provider-router/dist/src/index.js.map +0 -1
  564. package/packages/provider-router/dist/src/policy.d.ts +0 -10
  565. package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
  566. package/packages/provider-router/dist/src/policy.js +0 -45
  567. package/packages/provider-router/dist/src/policy.js.map +0 -1
  568. package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
  569. package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
  570. package/packages/provider-router/dist/src/provider-router.js +0 -222
  571. package/packages/provider-router/dist/src/provider-router.js.map +0 -1
  572. package/packages/provider-router/dist/src/strategies.d.ts +0 -19
  573. package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
  574. package/packages/provider-router/dist/src/strategies.js +0 -110
  575. package/packages/provider-router/dist/src/strategies.js.map +0 -1
  576. package/packages/provider-router/dist/src/types.d.ts +0 -91
  577. package/packages/provider-router/dist/src/types.d.ts.map +0 -1
  578. package/packages/provider-router/dist/src/types.js +0 -10
  579. package/packages/provider-router/dist/src/types.js.map +0 -1
  580. package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
  581. package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
  582. package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
  583. package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
  584. package/packages/session-api/dist/api.d.ts +0 -83
  585. package/packages/session-api/dist/api.js +0 -35
  586. package/packages/session-api/dist/index.d.ts +0 -2
  587. package/packages/session-api/dist/index.js +0 -2
  588. package/packages/session-api/dist/types.d.ts +0 -22
  589. package/packages/session-api/dist/types.js +0 -5
  590. package/packages/session-export/dist/exporter.d.ts +0 -28
  591. package/packages/session-export/dist/exporter.js +0 -38
  592. package/packages/session-export/dist/index.d.ts +0 -2
  593. package/packages/session-export/dist/index.js +0 -2
  594. package/packages/session-export/dist/types.d.ts +0 -20
  595. package/packages/session-export/dist/types.js +0 -5
  596. package/packages/subscription-engine/dist/engine.d.ts +0 -13
  597. package/packages/subscription-engine/dist/engine.js +0 -40
  598. package/packages/subscription-engine/dist/index.d.ts +0 -2
  599. package/packages/subscription-engine/dist/index.js +0 -2
  600. package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
  601. package/packages/subscription-engine/dist/subscriptions.js +0 -32
  602. package/packages/subscription-engine/dist/types.d.ts +0 -24
  603. package/packages/subscription-engine/dist/types.js +0 -5
  604. package/packages/trajectory/test/store.test.d.ts +0 -2
  605. package/packages/workflow-events/dist/events.d.ts +0 -38
  606. package/packages/workflow-events/dist/events.js +0 -46
  607. package/packages/workflow-events/dist/index.d.ts +0 -2
  608. package/packages/workflow-events/dist/index.js +0 -2
  609. package/packages/workflow-events/dist/pipeline.d.ts +0 -21
  610. package/packages/workflow-events/dist/pipeline.js +0 -27
  611. package/packages/workflow-events/dist/types.d.ts +0 -110
  612. package/packages/workflow-events/dist/types.js +0 -5
  613. package/packages/workflow-events/src/types.d.ts +0 -110
@@ -0,0 +1,759 @@
1
+ /**
2
+ * Telegram multi-instance bus protocol and IPC helpers
3
+ * Zones: multi-instance bus, local IPC contract, live instance routing
4
+ * Owns serializable bus envelopes, socket/auth helpers, local IPC client/server primitives,
5
+ * cross-instance forwarding helpers, and the live follower registry model.
6
+ */
7
+ import { type TelegramBusEndpointLayout, type TelegramBusTransportEventRecorder, type TelegramBusTransportRetryPolicy } from "./bus-transport.ts";
8
+ import type { TelegramThreadDisplayMode } from "./config.ts";
9
+ import { type TelegramLockEntry, type TelegramLockState } from "./locks.ts";
10
+ import { type TelegramQueueHandoffPayload } from "./queue.ts";
11
+ import { type TelegramTarget } from "./target.ts";
12
+ import { type TelegramSessionReplacementIntent } from "./threads.ts";
13
+ interface TelegramBusProcessRuntime {
14
+ instanceId: string;
15
+ processId: number;
16
+ processBirthId: string;
17
+ manualFollowerOwnerId: string;
18
+ getLeaderSocketPath: () => string;
19
+ getFollowerSocketPath: () => string;
20
+ }
21
+ export declare function createCurrentTelegramBusProcessRuntime(input: {
22
+ getActiveProfileName: () => string | undefined;
23
+ endpointLayout?: TelegramBusEndpointLayout;
24
+ pid?: number;
25
+ parentPid?: number;
26
+ createdAtMs?: number;
27
+ }): TelegramBusProcessRuntime;
28
+ export declare function createTelegramBusProcessRuntime(input: {
29
+ getActiveProfileName: () => string | undefined;
30
+ endpointLayout?: TelegramBusEndpointLayout;
31
+ pid: number;
32
+ parentPid: number;
33
+ parentProcessIdentity?: string;
34
+ createdAtMs: number;
35
+ }): TelegramBusProcessRuntime;
36
+ export declare function createTelegramBusAuthSecret(): string;
37
+ export declare const TELEGRAM_BUS_CAPABILITY_DURABLE_FOLLOWER_ADMISSION: "durable-follower-admission-v1";
38
+ export declare const TELEGRAM_BUS_CAPABILITY_QUEUE_HANDOFF: "queue-handoff-v1";
39
+ export declare const TELEGRAM_BUS_CAPABILITY_INPUT_CUSTODY_REFERENCE: "input-custody-reference-v1";
40
+ export declare const TELEGRAM_BUS_CAPABILITY_WORKSPACE_THREAD_RENAME: "workspace-thread-rename-v1";
41
+ export declare const TELEGRAM_BUS_CAPABILITY_THREAD_DISPLAY_MODE: "thread-display-mode-v1";
42
+ export declare const TELEGRAM_BUS_CAPABILITY_DIRECTORY_DISPLAY_FORMAT: "directory-display-format-v1";
43
+ export declare const TELEGRAM_BUS_CAPABILITY_WORKSPACE_FOLLOWER_AUTO_CONNECT: "workspace-follower-auto-connect-v1";
44
+ export declare const TELEGRAM_BUS_CAPABILITY_SESSION_REPLACEMENT_INTENT: "session-replacement-intent-v1";
45
+ export declare const TELEGRAM_BUS_CAPABILITY_WORKSPACE_RESTORE: "workspace-restore-v1";
46
+ export declare const TELEGRAM_BUS_CAPABILITY_LIVE_REBIND_SAVE: "live-thread-rebind-save-v1";
47
+ export declare const TELEGRAM_BUS_CAPABILITY_LIVE_REBIND_APPLY: "live-thread-rebind-apply-v1";
48
+ export declare const TELEGRAM_BUS_CAPABILITY_LIVE_REBIND_SETTLE: "live-thread-rebind-settle-v1";
49
+ /** Restricted recipient text/menu delivery; negotiated identity and captured effect authority remain required. */
50
+ export declare const TELEGRAM_BUS_CAPABILITY_SELECTED_MENU_DELIVERY: "selected-menu-delivery-v1";
51
+ /** Versioned held-command set; syntax is shared, while the captured recipient Commands registry owns supported plans. */
52
+ export declare const TELEGRAM_BUS_CAPABILITY_LIVE_REBIND_COMMAND_SET: "live-thread-rebind-command-set-v1";
53
+ /** Every live rebinding needs the save/apply/settle trio; held command selections additionally need these two. */
54
+ export declare const TELEGRAM_BUS_LIVE_REBIND_CAPABILITIES: readonly ["live-thread-rebind-save-v1", "live-thread-rebind-apply-v1", "live-thread-rebind-settle-v1"];
55
+ export declare const TELEGRAM_BUS_HELD_COMMAND_CAPABILITIES: readonly ["live-thread-rebind-command-set-v1", "selected-menu-delivery-v1"];
56
+ export interface TelegramBusSelectedCommandInput {
57
+ name: string;
58
+ target: TelegramTarget & {
59
+ threadId: number;
60
+ };
61
+ }
62
+ export type TelegramBusSelectedMenuTextEffect = {
63
+ text: string;
64
+ parseMode?: "HTML";
65
+ replyMarkup?: {
66
+ inline_keyboard: {
67
+ text: string;
68
+ callback_data: string;
69
+ }[][];
70
+ };
71
+ } & ({
72
+ kind: "send-text";
73
+ replyToMessageId?: number;
74
+ } | {
75
+ kind: "edit-text";
76
+ messageId: number;
77
+ });
78
+ /** Serializable identity/effect description, never a process-local callback or standalone delivery grant. */
79
+ export interface TelegramBusSelectedMenuDelivery {
80
+ kind: "follower.deliverSelectedMenu";
81
+ requestId: string;
82
+ instanceId: string;
83
+ registrationGeneration: string;
84
+ operationId: string;
85
+ recipient: {
86
+ sessionId: string;
87
+ sessionGeneration: number;
88
+ processId: number;
89
+ processBirthId: string;
90
+ profileKey: string;
91
+ journalBindingKey: string;
92
+ target: TelegramTarget & {
93
+ threadId: number;
94
+ };
95
+ };
96
+ executor: {
97
+ instanceId: string;
98
+ leaderEpoch: string;
99
+ };
100
+ operatorUserId: number;
101
+ effect: TelegramBusSelectedMenuTextEffect;
102
+ sentAtMs: number;
103
+ }
104
+ export interface TelegramBusSelectedMenuDeliveryObservation {
105
+ operationId: string;
106
+ recipient: TelegramBusSelectedMenuDelivery["recipient"];
107
+ registrationGeneration: string;
108
+ effect: TelegramBusSelectedMenuTextEffect["kind"];
109
+ messageId: number;
110
+ }
111
+ /** Closed wire projection of prepared recipient source; independent of journal implementation and never a removal grant. */
112
+ export interface TelegramBusPreparedCommandSource {
113
+ journalBindingKey: string;
114
+ updateId: number;
115
+ sourceSha256: string;
116
+ }
117
+ export interface TelegramBusLiveRebindSaveObservation {
118
+ operationId: string;
119
+ recipient: {
120
+ instanceId: string;
121
+ sessionId: string;
122
+ generation: string;
123
+ bindingKey: string;
124
+ };
125
+ sourceUpdateIds: number[];
126
+ selectedCommand?: TelegramBusSelectedCommandInput;
127
+ preparedSource?: TelegramBusPreparedCommandSource;
128
+ status: "saved";
129
+ }
130
+ /** Read-only warm observation; semantic completion and exact source ACK are distinct from detached delivery. */
131
+ export interface TelegramBusLiveRebindCommandObservation extends Omit<TelegramBusLiveRebindSaveObservation, "status" | "preparedSource" | "selectedCommand"> {
132
+ status: "command-observed";
133
+ selectedCommand: TelegramBusSelectedCommandInput;
134
+ preparedSource: TelegramBusPreparedCommandSource;
135
+ command: "completed" | "unknown" | "not-issued";
136
+ sourceAck?: TelegramBusPreparedCommandSource;
137
+ }
138
+ export interface TelegramBusLiveRebindWorkState {
139
+ sessionBusy: boolean;
140
+ targetWork: boolean;
141
+ deliveryPending: boolean;
142
+ unknown: boolean;
143
+ }
144
+ export interface TelegramBusLiveRebindWorkObservation extends Omit<TelegramBusLiveRebindSaveObservation, "status"> {
145
+ status: "observed";
146
+ oldTarget: TelegramTarget & {
147
+ threadId: number;
148
+ };
149
+ work: TelegramBusLiveRebindWorkState;
150
+ }
151
+ export interface TelegramBusLiveRebindSettlementObservation extends Omit<TelegramBusLiveRebindSaveObservation, "status"> {
152
+ action: "release" | "discard";
153
+ status: "released" | "discarded" | "protected" | "unknown";
154
+ }
155
+ export interface TelegramBusLiveRebindApplyObservation extends Omit<TelegramBusLiveRebindSaveObservation, "status"> {
156
+ status: "saved" | "applied";
157
+ target: TelegramTarget & {
158
+ threadId: number;
159
+ };
160
+ slot: string;
161
+ }
162
+ export interface TelegramBusWorkspaceRestoreObservation {
163
+ operationId: string;
164
+ recipient: {
165
+ kind: "follower";
166
+ instanceId: string;
167
+ sessionId: string;
168
+ generation: string;
169
+ };
170
+ target: TelegramTarget & {
171
+ threadId: number;
172
+ };
173
+ slot: string;
174
+ ready: boolean;
175
+ }
176
+ export interface TelegramBusProtocolIdentity {
177
+ protocolVersion: number;
178
+ runtimeBuild: string;
179
+ capabilities: string[];
180
+ }
181
+ interface TelegramBusProtocolCompatibility {
182
+ compatible: boolean;
183
+ reason?: "missing-identity" | "version-mismatch" | "missing-capability";
184
+ missingCapabilities: string[];
185
+ }
186
+ export declare function createTelegramBusProtocolIdentity(input: {
187
+ runtimeBuild: string;
188
+ capabilities?: readonly string[];
189
+ }): TelegramBusProtocolIdentity;
190
+ export declare function createTelegramCurrentBusProtocolIdentity(capabilities?: readonly string[]): TelegramBusProtocolIdentity;
191
+ export declare function hasTelegramBusCapability(identity: TelegramBusProtocolIdentity | undefined, capability: string): boolean;
192
+ export declare function getTelegramInputCustodyPeerReadiness(followers: readonly Pick<TelegramBusFollowerView, "registrationGeneration" | "protocol">[]): ("ready" | "legacy" | "unknown")[];
193
+ /** Both peers advertise every required capability over a compatible protocol; reads only the two identities. */
194
+ export declare function hasTelegramBusSharedCapabilities(local: TelegramBusProtocolIdentity, remote: TelegramBusProtocolIdentity | undefined, required: readonly string[]): boolean;
195
+ export declare function getTelegramBusProtocolCompatibility(input: {
196
+ local: TelegramBusProtocolIdentity;
197
+ remote?: TelegramBusProtocolIdentity;
198
+ }): TelegramBusProtocolCompatibility;
199
+ export declare function getTelegramBusSocketPath(agentDir?: string, platform?: NodeJS.Platform, profileName?: string, layout?: TelegramBusEndpointLayout): string;
200
+ export declare function getTelegramBusFollowerSocketPath(instanceId: string, agentDir?: string, platform?: NodeJS.Platform, profileName?: string, layout?: TelegramBusEndpointLayout): string;
201
+ export interface TelegramBusInstanceRegistration {
202
+ instanceId: string;
203
+ previousInstanceId?: string;
204
+ profileKey?: string;
205
+ threadName?: string;
206
+ slot?: string;
207
+ cwd?: string;
208
+ sessionId?: string;
209
+ pid?: number;
210
+ target?: TelegramTarget;
211
+ busSocketPath?: string;
212
+ registrationGeneration?: string;
213
+ protocol?: TelegramBusProtocolIdentity;
214
+ sessionGeneration?: number;
215
+ processBirthId?: string;
216
+ connectedAtMs: number;
217
+ }
218
+ export interface TelegramBusFollowerView extends TelegramBusInstanceRegistration {
219
+ lastHeartbeatMs: number;
220
+ }
221
+ /** Whether a live follower is still exactly the captured registration: identity, process, session, endpoint and negotiated protocol. */
222
+ export declare function isSameTelegramBusFollowerRegistration(live: TelegramBusInstanceRegistration, captured: TelegramBusInstanceRegistration): boolean;
223
+ export declare function getTelegramFollowerTargetOwnership(input: {
224
+ target: TelegramTarget;
225
+ followers: readonly TelegramBusFollowerView[];
226
+ activeThreadRecords?: readonly {
227
+ status?: string;
228
+ instanceId?: string;
229
+ profileKey?: string;
230
+ owner?: {
231
+ kind?: string;
232
+ };
233
+ target: TelegramTarget;
234
+ }[];
235
+ currentInstanceId?: string;
236
+ }): {
237
+ instanceId: string;
238
+ ownerGeneration: string;
239
+ recipientBindingKey: string;
240
+ protocolIdentity: TelegramBusProtocolIdentity;
241
+ } | undefined;
242
+ export declare function markTelegramBusAggregateDelivery<T extends Record<string, unknown>>(body: T): T;
243
+ export declare function markTelegramBusCrossTargetDelivery<T extends Record<string, unknown>>(body: T): T;
244
+ export declare function stripTelegramBusApiMetadata<T extends Record<string, unknown>>(body: T): T;
245
+ export declare function isTelegramFollowerApiCallAllowed(input: {
246
+ follower: TelegramBusFollowerView;
247
+ method: string;
248
+ args: unknown[];
249
+ isMessageOwned?: (chatId: number, messageId: number) => boolean;
250
+ }): boolean;
251
+ interface TelegramFollowerApiCallAuthorizationInput {
252
+ follower: TelegramBusFollowerView;
253
+ method: string;
254
+ args: unknown[];
255
+ }
256
+ export declare function createTelegramFollowerApiCallAuthorizer(deps: {
257
+ isMessageOwned(input: {
258
+ chatId: number;
259
+ messageId: number;
260
+ follower: TelegramBusFollowerView;
261
+ }): boolean;
262
+ }): (input: TelegramFollowerApiCallAuthorizationInput) => boolean;
263
+ export interface TelegramBusAgentTargetSelector {
264
+ chatId?: number;
265
+ threadId?: number;
266
+ threadName?: string;
267
+ }
268
+ export interface TelegramBusAgentMessage {
269
+ target: TelegramTarget & {
270
+ threadId: number;
271
+ };
272
+ messageId: number;
273
+ text: string;
274
+ }
275
+ export interface TelegramBusFollowerDeliveryIdentity {
276
+ deliveryId: string;
277
+ sourceUpdateId: number;
278
+ recipientBindingKey: string;
279
+ sourceRecoveryKey?: string;
280
+ sourceClaim?: {
281
+ acquisitionId: string;
282
+ handoffId: string;
283
+ };
284
+ }
285
+ type TelegramBusForeignUpdateFailureClass = "source-update-identity-missing" | "recipient-binding-missing" | "recipient-generation-missing" | "source-reference-missing" | "recipient-ownership-stale" | "transport-failed" | "acknowledgement-missing" | "acknowledgement-rejected" | "acknowledgement-mismatched" | "durable-receipt-missing" | "durable-receipt-mismatched";
286
+ export type TelegramBusForeignUpdateSettlement = {
287
+ status: "accepted";
288
+ delivery: TelegramBusFollowerDeliveryIdentity;
289
+ } | {
290
+ status: "retryable" | "terminal-rejected";
291
+ failureClass: TelegramBusForeignUpdateFailureClass;
292
+ message: string;
293
+ delivery?: TelegramBusFollowerDeliveryIdentity;
294
+ sourceUpdateId?: number;
295
+ };
296
+ export declare function createTelegramBusFollowerDeliveryIdentity(input: {
297
+ kind: "leader.forwardCallback" | "leader.forwardReaction" | "leader.forwardMessage" | "leader.forwardEditedMessage" | "leader.wakeInputCustody";
298
+ recipientBindingKey: string;
299
+ sourceUpdateId: number;
300
+ sourceRecoveryKey?: string;
301
+ sourceClaim?: {
302
+ acquisitionId: string;
303
+ handoffId: string;
304
+ };
305
+ }): TelegramBusFollowerDeliveryIdentity;
306
+ export declare function canUseTelegramBusInputCustodyReference(input: {
307
+ local?: TelegramBusProtocolIdentity;
308
+ remote?: TelegramBusProtocolIdentity;
309
+ }): boolean;
310
+ export declare function createTelegramBusFollowerSourceReferenceDeliveryIdentity(input: {
311
+ kind: "leader.forwardCallback" | "leader.forwardReaction" | "leader.forwardMessage" | "leader.forwardEditedMessage" | "leader.wakeInputCustody";
312
+ recipientBindingKey: string;
313
+ sourceRecoveryKey: string;
314
+ source: {
315
+ updateId: number;
316
+ owner: {
317
+ acquisitionId: string;
318
+ handoffId?: string;
319
+ };
320
+ };
321
+ }): TelegramBusFollowerDeliveryIdentity;
322
+ export type TelegramBusEnvelope = ({
323
+ kind: "follower.register";
324
+ requestId: string;
325
+ registration: TelegramBusInstanceRegistration;
326
+ } | {
327
+ kind: "follower.restoreWorkspace";
328
+ requestId: string;
329
+ registration: TelegramBusInstanceRegistration;
330
+ } | {
331
+ kind: "follower.heartbeat";
332
+ requestId: string;
333
+ instanceId: string;
334
+ registrationGeneration?: string;
335
+ sentAtMs: number;
336
+ } | {
337
+ kind: "follower.disconnect";
338
+ requestId: string;
339
+ instanceId: string;
340
+ registrationGeneration?: string;
341
+ sentAtMs: number;
342
+ } | {
343
+ kind: "follower.setThreadDisplayMode";
344
+ requestId: string;
345
+ instanceId: string;
346
+ registrationGeneration: string;
347
+ mode: TelegramThreadDisplayMode;
348
+ } | {
349
+ kind: "follower.renameThread";
350
+ requestId: string;
351
+ instanceId: string;
352
+ registrationGeneration: string;
353
+ target: TelegramTarget & {
354
+ threadId: number;
355
+ };
356
+ threadName: string;
357
+ sentAtMs: number;
358
+ } | {
359
+ kind: "follower.resetThreadName";
360
+ requestId: string;
361
+ instanceId: string;
362
+ registrationGeneration: string;
363
+ target: TelegramTarget & {
364
+ threadId: number;
365
+ };
366
+ sentAtMs: number;
367
+ } | {
368
+ kind: "follower.publishSessionReplacement" | "follower.settleSessionReplacement";
369
+ requestId: string;
370
+ instanceId: string;
371
+ registrationGeneration: string;
372
+ intent: TelegramSessionReplacementIntent;
373
+ sentAtMs: number;
374
+ } | {
375
+ kind: "leader.forwardCallback";
376
+ requestId: string;
377
+ recipientInstanceId: string;
378
+ recipientRegistrationGeneration: string;
379
+ delivery: TelegramBusFollowerDeliveryIdentity;
380
+ query: unknown;
381
+ sentAtMs: number;
382
+ } | {
383
+ kind: "leader.forwardReaction";
384
+ requestId: string;
385
+ recipientInstanceId: string;
386
+ recipientRegistrationGeneration: string;
387
+ delivery: TelegramBusFollowerDeliveryIdentity;
388
+ reactionUpdate: unknown;
389
+ sentAtMs: number;
390
+ } | {
391
+ kind: "leader.forwardMessage";
392
+ requestId: string;
393
+ recipientInstanceId: string;
394
+ recipientRegistrationGeneration: string;
395
+ delivery: TelegramBusFollowerDeliveryIdentity;
396
+ message: unknown;
397
+ forwardCommentBatchPosition?: "comment" | "forward";
398
+ sentAtMs: number;
399
+ } | {
400
+ kind: "leader.forwardEditedMessage";
401
+ requestId: string;
402
+ recipientInstanceId: string;
403
+ recipientRegistrationGeneration: string;
404
+ delivery: TelegramBusFollowerDeliveryIdentity;
405
+ message: unknown;
406
+ sentAtMs: number;
407
+ } | {
408
+ kind: "leader.offerInputCustodyHandoff";
409
+ requestId: string;
410
+ recipientInstanceId: string;
411
+ recipientRegistrationGeneration: string;
412
+ recipientBindingKey: string;
413
+ sourceRecoveryKey: string;
414
+ source: {
415
+ journalBindingKey: string;
416
+ tokenSha256: string;
417
+ updateId: number;
418
+ };
419
+ handoffId: string;
420
+ sentAtMs: number;
421
+ } | {
422
+ kind: "leader.wakeInputCustody";
423
+ requestId: string;
424
+ recipientInstanceId: string;
425
+ recipientRegistrationGeneration: string;
426
+ delivery: TelegramBusFollowerDeliveryIdentity;
427
+ sentAtMs: number;
428
+ } | {
429
+ kind: "leader.prepareLiveRebind";
430
+ requestId: string;
431
+ recipientInstanceId: string;
432
+ recipientRegistrationGeneration: string;
433
+ recipientSessionId: string;
434
+ recipientBindingKey: string;
435
+ operationId: string;
436
+ updates: ({
437
+ update_id: number;
438
+ } & Record<string, unknown>)[];
439
+ selectedCommand?: TelegramBusSelectedCommandInput;
440
+ sentAtMs: number;
441
+ } | {
442
+ kind: "leader.applyLiveRebind";
443
+ requestId: string;
444
+ recipientInstanceId: string;
445
+ recipientRegistrationGeneration: string;
446
+ recipientSessionId: string;
447
+ recipientBindingKey: string;
448
+ operationId: string;
449
+ sourceUpdateIds: number[];
450
+ mode: "apply" | "inspect";
451
+ preparedSource?: TelegramBusPreparedCommandSource;
452
+ selectedCommand?: TelegramBusSelectedCommandInput;
453
+ sentAtMs: number;
454
+ } | {
455
+ kind: "leader.settleLiveRebind";
456
+ requestId: string;
457
+ recipientInstanceId: string;
458
+ recipientRegistrationGeneration: string;
459
+ recipientSessionId: string;
460
+ recipientBindingKey: string;
461
+ operationId: string;
462
+ sourceUpdateIds: number[];
463
+ mode: "release" | "discard" | "observe" | "observe-command";
464
+ oldTarget?: TelegramTarget & {
465
+ threadId: number;
466
+ };
467
+ preparedSource?: TelegramBusPreparedCommandSource;
468
+ selectedCommand?: TelegramBusSelectedCommandInput;
469
+ sentAtMs: number;
470
+ } | {
471
+ kind: "leader.workspaceRestore";
472
+ requestId: string;
473
+ recipientInstanceId: string;
474
+ recipientRegistrationGeneration: string;
475
+ operationId: string;
476
+ mode: "apply" | "inspect";
477
+ sentAtMs: number;
478
+ } | {
479
+ kind: "leader.offerQueueHandoff";
480
+ requestId: string;
481
+ recipientInstanceId: string;
482
+ recipientRegistrationGeneration: string;
483
+ donorInstanceId: string;
484
+ donorProcessId: number;
485
+ donorProcessBirthId: string;
486
+ donorSessionGeneration: number;
487
+ donorAcquisitionId: string;
488
+ donorAcquiredAtMs: number;
489
+ handoffToken: string;
490
+ payload: TelegramQueueHandoffPayload;
491
+ sentAtMs: number;
492
+ } | {
493
+ kind: "follower.offerQueueHandoff";
494
+ requestId: string;
495
+ instanceId: string;
496
+ registrationGeneration: string;
497
+ recipientInstanceId: string;
498
+ recipientRegistrationGeneration: string;
499
+ donorProcessId: number;
500
+ donorProcessBirthId: string;
501
+ donorSessionGeneration: number;
502
+ donorAcquisitionId: string;
503
+ donorAcquiredAtMs: number;
504
+ handoffToken: string;
505
+ payload: TelegramQueueHandoffPayload;
506
+ sentAtMs: number;
507
+ } | {
508
+ kind: "follower.resolveAgentTarget";
509
+ requestId: string;
510
+ instanceId: string;
511
+ registrationGeneration?: string;
512
+ selector: TelegramBusAgentTargetSelector;
513
+ sentAtMs: number;
514
+ } | {
515
+ kind: "follower.routeAgentMessage";
516
+ requestId: string;
517
+ instanceId: string;
518
+ registrationGeneration?: string;
519
+ message: TelegramBusAgentMessage;
520
+ sentAtMs: number;
521
+ } | TelegramBusSelectedMenuDelivery | {
522
+ kind: "follower.callApi";
523
+ requestId: string;
524
+ instanceId: string;
525
+ registrationGeneration?: string;
526
+ method: string;
527
+ args: unknown[];
528
+ sentAtMs: number;
529
+ } | {
530
+ /** Side-effect-free leader liveness probe; any acknowledgement proves a responsive event loop. */
531
+ kind: "bus.probe";
532
+ requestId: string;
533
+ } | {
534
+ kind: "bus.ack";
535
+ requestId: string;
536
+ ok: boolean;
537
+ message?: string;
538
+ result?: unknown;
539
+ protocol?: TelegramBusProtocolIdentity;
540
+ error?: {
541
+ code: "commit-unknown" | "request-id-collision" | "ledger-overloaded" | "incompatible-protocol" | "stale-target" | "workspace-binding-unavailable";
542
+ method?: string;
543
+ chatId?: number;
544
+ threadId?: number;
545
+ };
546
+ }) & {
547
+ auth?: string;
548
+ };
549
+ /** Follower-staged queue handoff offer before the follower adds its own request and registration framing. */
550
+ export type TelegramBusFollowerQueueHandoffOffer = Omit<Extract<TelegramBusEnvelope, {
551
+ kind: "follower.offerQueueHandoff";
552
+ }>, "kind" | "requestId" | "instanceId" | "registrationGeneration" | "sentAtMs" | "auth">;
553
+ /** Leader-routed queue handoff offer as donors and leaders exchange it before envelope framing. */
554
+ export type TelegramBusLeaderQueueHandoffOffer = Omit<Extract<TelegramBusEnvelope, {
555
+ kind: "leader.offerQueueHandoff";
556
+ }>, "kind">;
557
+ type TelegramBusEnvelopeTrafficClass = "bootstrap" | "generation-fenced" | "response";
558
+ export declare function getTelegramBusEnvelopeTrafficClass(envelope: TelegramBusEnvelope): TelegramBusEnvelopeTrafficClass;
559
+ export declare function createTelegramBusRequestId(input: {
560
+ instanceId: string;
561
+ sequence: number;
562
+ }): string;
563
+ export declare function createTelegramBusRequestIdFactory(instanceId: string): () => string;
564
+ export declare function encodeTelegramBusEnvelope(envelope: TelegramBusEnvelope): string;
565
+ export declare function parseTelegramBusEnvelope(line: string): TelegramBusEnvelope | undefined;
566
+ /**
567
+ * One leader liveness observation. `silent` (connected or connecting, no answer within the window) and
568
+ * `unreachable` (an endpoint that refuses connections: nobody listens) can support a takeover. A missing endpoint is
569
+ * `unknown`: a live classic-mode leader has no socket at all. Any bytes or an orderly close prove the peer's event
570
+ * loop handled the connection, so even an older leader rejecting the unknown kind is `responsive`.
571
+ */
572
+ export type TelegramBusLeaderProbeResult = "responsive" | "silent" | "unreachable" | "unknown";
573
+ export declare function probeTelegramBusLeader(input: {
574
+ socketPath: TelegramBusSocketPathSource;
575
+ secret?: string;
576
+ timeoutMs?: number;
577
+ }): Promise<TelegramBusLeaderProbeResult>;
578
+ /**
579
+ * Takeover evidence replacing the retired file heartbeat: a full silent window, or an unreachable endpoint
580
+ * confirmed again after one more window (a just-started leader binds its socket well within it). The owner must
581
+ * stay the same throughout; the lock acquisition then CAS-checks that exact owner.
582
+ */
583
+ export declare function proveTelegramBusLeaderUnresponsive(input: {
584
+ probe: () => Promise<TelegramBusLeaderProbeResult>;
585
+ isSameOwner: () => boolean;
586
+ sleep: (ms: number) => Promise<void>;
587
+ windowMs?: number;
588
+ }): Promise<boolean>;
589
+ /** Composition-ready takeover proof for one profile's leader lock and endpoint. */
590
+ export declare function createTelegramBusLeaderUnresponsivenessProof(deps: {
591
+ getLeaderState: () => TelegramLockState;
592
+ getLeaderSocketPath: () => string;
593
+ probe?: typeof probeTelegramBusLeader;
594
+ sleep?: (ms: number) => Promise<void>;
595
+ }): (owner: TelegramLockEntry) => Promise<boolean>;
596
+ interface TelegramBusLocalServer {
597
+ start: () => Promise<void>;
598
+ stop: () => Promise<void>;
599
+ ensureEndpoint: () => Promise<boolean>;
600
+ }
601
+ export type TelegramBusSocketPathSource = string | (() => string);
602
+ export declare function resolveTelegramBusSocketPath(source: TelegramBusSocketPathSource, platform?: NodeJS.Platform | string): string;
603
+ interface TelegramBusLocalServerDeps {
604
+ socketPath: TelegramBusSocketPathSource;
605
+ handleEnvelope: (envelope: TelegramBusEnvelope) => Promise<TelegramBusEnvelope | undefined> | TelegramBusEnvelope | undefined;
606
+ recordTransportEvent?: TelegramBusTransportEventRecorder;
607
+ beforeEndpointPublication?: () => Promise<void> | void;
608
+ commitEndpointPublication?: (commit: () => void) => boolean;
609
+ requestLedgerMaxEntries?: number;
610
+ shouldDropResponse?: (request: TelegramBusEnvelope, response: TelegramBusEnvelope) => boolean;
611
+ }
612
+ /** Local IPC issuance proof only: this callback/error never enters the envelope or certifies a remote API effect. */
613
+ export declare class TelegramBusLocalAuthorityError extends Error {
614
+ readonly requestIssued: boolean;
615
+ constructor(requestIssued: boolean, reason?: string);
616
+ }
617
+ interface TelegramBusLocalClientOptions {
618
+ assertAuthority?: () => void;
619
+ socketPath: string;
620
+ envelope: TelegramBusEnvelope;
621
+ timeoutMs?: number;
622
+ retry?: TelegramBusTransportRetryPolicy;
623
+ recordTransportEvent?: TelegramBusTransportEventRecorder;
624
+ }
625
+ interface TelegramBusForeignOwnedForwarderDeps<TMessage = unknown> {
626
+ socketPath: TelegramBusSocketPathSource;
627
+ createRequestId: () => string;
628
+ getNowMs?: () => number;
629
+ timeoutMs?: number;
630
+ getAuthSecret?: () => string | undefined;
631
+ getForwardCommentBatchPosition?: (message: TMessage) => "comment" | "forward" | undefined;
632
+ localProtocolIdentity?: TelegramBusProtocolIdentity;
633
+ validateForwardOwnership?: (ownership: TelegramBusForwardOwnership) => boolean;
634
+ resolveInputCustodyReference?: (input: {
635
+ sourceUpdateId: number;
636
+ recipientBindingKey: string;
637
+ }) => {
638
+ sourceRecoveryKey: string;
639
+ source: {
640
+ updateId: number;
641
+ owner: {
642
+ acquisitionId: string;
643
+ handoffId?: string;
644
+ };
645
+ };
646
+ } | undefined;
647
+ recordRuntimeEvent?: (category: string, error: unknown, details?: Record<string, unknown>) => void;
648
+ }
649
+ export interface TelegramBusForwardOwnership {
650
+ instanceId: string;
651
+ ownerGeneration?: string;
652
+ recipientBindingKey?: string;
653
+ protocolIdentity?: TelegramBusProtocolIdentity;
654
+ }
655
+ export declare function isTelegramBusForwardOwnershipCurrent(expected: TelegramBusForwardOwnership, current: TelegramBusForwardOwnership | undefined): boolean;
656
+ export declare function createTelegramBusForeignOwnedUpdateForwarder<TContext, TReactionUpdate, TCallbackQuery, TMessage = unknown>(deps: TelegramBusForeignOwnedForwarderDeps<TMessage>): {
657
+ forwardCallback: (input: {
658
+ query: TCallbackQuery;
659
+ ownership: TelegramBusForwardOwnership;
660
+ ctx: TContext;
661
+ }) => Promise<TelegramBusForeignUpdateSettlement>;
662
+ forwardReaction: (input: {
663
+ reactionUpdate: TReactionUpdate;
664
+ ownership: TelegramBusForwardOwnership;
665
+ ctx: TContext;
666
+ }) => Promise<TelegramBusForeignUpdateSettlement>;
667
+ forwardMessage: (input: {
668
+ message: TMessage;
669
+ ownership: TelegramBusForwardOwnership;
670
+ ctx: TContext;
671
+ }) => Promise<TelegramBusForeignUpdateSettlement>;
672
+ forwardEditedMessage: (input: {
673
+ message: TMessage;
674
+ ownership: TelegramBusForwardOwnership;
675
+ ctx: TContext;
676
+ }) => Promise<TelegramBusForeignUpdateSettlement>;
677
+ };
678
+ export declare function listTelegramBusLiveThreadTargets(input: {
679
+ leaderTarget?: TelegramTarget;
680
+ followers: readonly TelegramBusFollowerView[];
681
+ }): TelegramTarget[];
682
+ /** Caller owns the durable one-shot apply grant. Inspections never grant another apply. */
683
+ export declare function createTelegramBusWorkspaceRestoreController(deps: {
684
+ getFollower: (instanceId: string) => TelegramBusFollowerView | undefined;
685
+ localProtocolIdentity: TelegramBusProtocolIdentity;
686
+ createRequestId: () => string;
687
+ getAuthSecret: () => string | undefined;
688
+ timeoutMs?: number;
689
+ }): (input: {
690
+ operationId: string;
691
+ instanceId: string;
692
+ sessionId: string;
693
+ slot: string;
694
+ target: TelegramTarget & {
695
+ threadId: number;
696
+ };
697
+ oldTarget: TelegramTarget & {
698
+ threadId: number;
699
+ };
700
+ mode: "apply" | "inspect";
701
+ isCurrent: () => boolean;
702
+ }) => Promise<TelegramBusWorkspaceRestoreObservation | undefined>;
703
+ /** Each capability has its own effect boundary; transport retries never replay save/dispatch/disposal. */
704
+ export declare function createTelegramBusLiveRebindController(deps: {
705
+ getFollower(instanceId: string): TelegramBusFollowerView | undefined;
706
+ localProtocolIdentity: TelegramBusProtocolIdentity;
707
+ createRequestId(): string;
708
+ getAuthSecret(): string | undefined;
709
+ timeoutMs?: number;
710
+ }): (input: {
711
+ operationId: string;
712
+ instanceId: string;
713
+ sessionId: string;
714
+ recipientBindingKey: string;
715
+ isCurrent(): boolean;
716
+ selectedCommand?: TelegramBusSelectedCommandInput;
717
+ preparedSource?: TelegramBusPreparedCommandSource;
718
+ } & ({
719
+ updates: ({
720
+ update_id: number;
721
+ } & Record<string, unknown>)[];
722
+ } | {
723
+ mode: "apply" | "inspect" | "release" | "discard" | "observe" | "observe-command";
724
+ sourceUpdateIds: number[];
725
+ slot: string;
726
+ target: TelegramTarget & {
727
+ threadId: number;
728
+ };
729
+ oldTarget: TelegramTarget & {
730
+ threadId: number;
731
+ };
732
+ })) => Promise<TelegramBusLiveRebindSaveObservation | TelegramBusLiveRebindApplyObservation | TelegramBusLiveRebindSettlementObservation | TelegramBusLiveRebindWorkObservation | TelegramBusLiveRebindCommandObservation | undefined>;
733
+ export declare function isTelegramBusEnvelopeAuthorized(envelope: TelegramBusEnvelope, secret: string | undefined): boolean;
734
+ /** Negative acknowledgement carrying only a diagnostic message. */
735
+ export declare function rejectTelegramBusRequest(requestId: string, message: string): Extract<TelegramBusEnvelope, {
736
+ kind: "bus.ack";
737
+ }>;
738
+ export declare function createUnauthorizedBusAck(requestId: string): TelegramBusEnvelope;
739
+ export declare function createTelegramBusLocalServer(deps: TelegramBusLocalServerDeps): TelegramBusLocalServer;
740
+ export declare function sendTelegramBusLocalEnvelope(options: TelegramBusLocalClientOptions): Promise<TelegramBusEnvelope | undefined>;
741
+ export interface TelegramBusFollowerRegistry {
742
+ register: (registration: TelegramBusInstanceRegistration) => TelegramBusFollowerView;
743
+ heartbeat: (instanceId: string, nowMs: number) => TelegramBusFollowerView | undefined;
744
+ get: (instanceId: string) => TelegramBusFollowerView | undefined;
745
+ getByTarget: (target: TelegramTarget) => TelegramBusFollowerView | undefined;
746
+ list: () => TelegramBusFollowerView[];
747
+ remove: (instanceId: string) => boolean;
748
+ clear: () => void;
749
+ observeUnregistered: (follower: TelegramBusFollowerView) => {
750
+ isCurrent: () => boolean;
751
+ release: () => void;
752
+ };
753
+ pruneStale: (nowMs: number, staleAfterMs: number) => TelegramBusFollowerView[];
754
+ }
755
+ export declare function createTelegramBusForwardOwnershipValidator(registry: Pick<TelegramBusFollowerRegistry, "get">): (ownership: TelegramBusForwardOwnership) => boolean;
756
+ export declare function createTelegramBusFollowerRegistry(): TelegramBusFollowerRegistry;
757
+ /** Shared closed text-effect codec; parsing alone supplies no recipient or issuance authority. */
758
+ export declare function parseTelegramBusSelectedMenuTextEffect(effect: unknown): TelegramBusSelectedMenuTextEffect | undefined;
759
+ export {};