pi-harness-runtime 1.1.397 → 1.1.402

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 (624) hide show
  1. package/AGENTS.md +44 -2
  2. package/CHANGELOG.md +21 -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/notification-events.ts +6 -6
  21. package/harness/project-detector/detector.ts +1 -2
  22. package/harness/repair-engine.ts +2 -4
  23. package/harness/service-diagnostics.ts +1 -1
  24. package/harness/skill-sync.ts +3 -3
  25. package/index.ts +276 -55
  26. package/mirror.ts +1 -1
  27. package/package.json +5 -3
  28. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
  29. package/packages/a2a-adapter/dist/discovery.js +0 -1
  30. package/packages/a2a-adapter/dist/discovery.js.map +1 -1
  31. package/packages/a2a-adapter/package.json +1 -1
  32. package/packages/a2a-adapter/src/discovery.ts +0 -1
  33. package/packages/agent-policy/package.json +1 -1
  34. package/packages/architecture-generator/package.json +1 -1
  35. package/packages/auth/dist/index.d.ts +9 -0
  36. package/packages/auth/dist/index.d.ts.map +1 -0
  37. package/packages/auth/dist/index.js +9 -0
  38. package/packages/auth/dist/index.js.map +1 -0
  39. package/packages/auth/package.json +1 -1
  40. package/packages/auth/src/index.ts +9 -0
  41. package/packages/autonomous-refactor/package.json +1 -1
  42. package/packages/autonomous-runtime/package.json +1 -1
  43. package/packages/cache-strategy/package.json +1 -1
  44. package/packages/capability-registry/package.json +1 -1
  45. package/packages/checkpoint/package.json +1 -1
  46. package/packages/cli-plugin-sdk/package.json +1 -1
  47. package/packages/clipboard/package.json +1 -1
  48. package/packages/clipboard-plugin/package.json +1 -1
  49. package/packages/code-generation/package.json +1 -1
  50. package/packages/code-review/package.json +1 -1
  51. package/packages/codex-adapter/package.json +1 -1
  52. package/packages/codex-watcher/package.json +1 -1
  53. package/packages/config-capture/dist/index.d.ts +52 -0
  54. package/packages/config-capture/dist/index.d.ts.map +1 -0
  55. package/packages/config-capture/dist/index.js +261 -0
  56. package/packages/config-capture/dist/index.js.map +1 -0
  57. package/packages/config-capture/package.json +1 -1
  58. package/packages/connection-runtime/package.json +1 -1
  59. package/packages/context-compiler/package.json +1 -1
  60. package/packages/context-discovery/package.json +1 -1
  61. package/packages/context-manager/package.json +1 -1
  62. package/packages/contracts/package.json +1 -1
  63. package/packages/cookie-sanitizer/package.json +1 -1
  64. package/packages/cost-optimizer/package.json +1 -1
  65. package/packages/dependency-analyzer/package.json +1 -1
  66. package/packages/django-plugin/package.json +1 -1
  67. package/packages/doc-generator/package.json +1 -1
  68. package/packages/durable-review/package.json +1 -1
  69. package/packages/e2e-tester/package.json +1 -1
  70. package/packages/evaluation-engine/package.json +1 -1
  71. package/packages/evaluation-runner/package.json +1 -1
  72. package/packages/event-bus/package.json +1 -1
  73. package/packages/event-sink/package.json +1 -1
  74. package/packages/event-store/package.json +1 -1
  75. package/packages/experience-replay/package.json +1 -1
  76. package/packages/feedback-collector/package.json +1 -1
  77. package/packages/file-copy-helper/dist/extension.d.ts +15 -0
  78. package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
  79. package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
  80. package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
  81. package/packages/file-copy-helper/dist/extension.debug.js +215 -0
  82. package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
  83. package/packages/file-copy-helper/dist/extension.js +222 -0
  84. package/packages/file-copy-helper/dist/extension.js.map +1 -0
  85. package/packages/file-copy-helper/dist/index.d.ts +3 -0
  86. package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
  87. package/packages/file-copy-helper/dist/index.js +3 -0
  88. package/packages/file-copy-helper/dist/index.js.map +1 -0
  89. package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
  90. package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
  91. package/packages/file-copy-helper/dist/intent-detector.js +348 -0
  92. package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
  93. package/packages/file-copy-helper/package.json +1 -1
  94. package/packages/framework-detector/package.json +1 -1
  95. package/packages/framework-plugin-sdk/package.json +1 -1
  96. package/packages/frappe-plugin/package.json +1 -1
  97. package/packages/generic-web-plugin/package.json +1 -1
  98. package/packages/health-monitor/package.json +1 -1
  99. package/packages/intent-analyzer/package.json +1 -1
  100. package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
  101. package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
  102. package/packages/jev-judge/dist/auto-continue.js +267 -22
  103. package/packages/jev-judge/dist/auto-continue.js.map +1 -1
  104. package/packages/jev-judge/dist/index.d.ts +2 -0
  105. package/packages/jev-judge/dist/index.d.ts.map +1 -1
  106. package/packages/jev-judge/dist/index.js +2 -0
  107. package/packages/jev-judge/dist/index.js.map +1 -1
  108. package/packages/jev-judge/dist/question-risk.d.ts +50 -0
  109. package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
  110. package/packages/jev-judge/dist/question-risk.js +100 -0
  111. package/packages/jev-judge/dist/question-risk.js.map +1 -0
  112. package/packages/jev-judge/package.json +1 -1
  113. package/packages/jev-judge/src/auto-continue.ts +426 -29
  114. package/packages/jev-judge/src/index.ts +4 -0
  115. package/packages/jev-judge/src/question-risk.ts +151 -0
  116. package/packages/jev-judge/tests/auto-continue-context.test.ts +221 -0
  117. package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
  118. package/packages/jev-judge/tests/question-risk.test.ts +116 -0
  119. package/packages/knowledge-graph/package.json +1 -1
  120. package/packages/knowledge-retrieval/package.json +1 -1
  121. package/packages/laravel-plugin/package.json +1 -1
  122. package/packages/learning-engine/package.json +1 -1
  123. package/packages/logging/README.md +36 -3
  124. package/packages/logging/dist/config.d.ts +7 -0
  125. package/packages/logging/dist/config.d.ts.map +1 -1
  126. package/packages/logging/dist/config.js +14 -0
  127. package/packages/logging/dist/config.js.map +1 -1
  128. package/packages/logging/dist/incidents/schema.d.ts +111 -0
  129. package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
  130. package/packages/logging/dist/incidents/schema.js +0 -0
  131. package/packages/logging/dist/incidents/schema.js.map +1 -0
  132. package/packages/logging/dist/index.d.ts +2 -0
  133. package/packages/logging/dist/index.d.ts.map +1 -1
  134. package/packages/logging/dist/index.js +2 -0
  135. package/packages/logging/dist/index.js.map +1 -1
  136. package/packages/logging/dist/server/http.d.ts +4 -3
  137. package/packages/logging/dist/server/http.d.ts.map +1 -1
  138. package/packages/logging/dist/server/http.js +35 -3
  139. package/packages/logging/dist/server/http.js.map +1 -1
  140. package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
  141. package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
  142. package/packages/logging/dist/server/incident-qdrant.js +129 -0
  143. package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
  144. package/packages/logging/dist/server/incident-store.d.ts +76 -0
  145. package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
  146. package/packages/logging/dist/server/incident-store.js +157 -0
  147. package/packages/logging/dist/server/incident-store.js.map +1 -0
  148. package/packages/logging/dist/server/index.d.ts +4 -0
  149. package/packages/logging/dist/server/index.d.ts.map +1 -1
  150. package/packages/logging/dist/server/index.js +2 -0
  151. package/packages/logging/dist/server/index.js.map +1 -1
  152. package/packages/logging/dist/server/service.d.ts +33 -0
  153. package/packages/logging/dist/server/service.d.ts.map +1 -1
  154. package/packages/logging/dist/server/service.js +63 -0
  155. package/packages/logging/dist/server/service.js.map +1 -1
  156. package/packages/logging/dist/shipper.d.ts +74 -3
  157. package/packages/logging/dist/shipper.d.ts.map +1 -1
  158. package/packages/logging/dist/shipper.js +88 -5
  159. package/packages/logging/dist/shipper.js.map +1 -1
  160. package/packages/logging/dist/singleton.d.ts.map +1 -1
  161. package/packages/logging/dist/singleton.js +1 -0
  162. package/packages/logging/dist/singleton.js.map +1 -1
  163. package/packages/logging/package.json +1 -1
  164. package/packages/logging/src/config.ts +22 -0
  165. package/packages/logging/src/incidents/schema.ts +0 -0
  166. package/packages/logging/src/index.ts +17 -0
  167. package/packages/logging/src/server/http.ts +42 -3
  168. package/packages/logging/src/server/incident-qdrant.ts +177 -0
  169. package/packages/logging/src/server/incident-store.ts +192 -0
  170. package/packages/logging/src/server/index.ts +21 -0
  171. package/packages/logging/src/server/service.ts +79 -0
  172. package/packages/logging/src/shipper.ts +120 -5
  173. package/packages/logging/src/singleton.ts +1 -0
  174. package/packages/logging/test/fanout.test.ts +186 -0
  175. package/packages/logging/test/incidents.test.ts +404 -0
  176. package/packages/mcp-adapter/package.json +1 -1
  177. package/packages/memory-engine/package.json +1 -1
  178. package/packages/milestone-manager/package.json +1 -1
  179. package/packages/model-registry/package.json +1 -1
  180. package/packages/nextjs-plugin/package.json +1 -1
  181. package/packages/notification/dist/adapters/detail-format.d.ts +42 -0
  182. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -0
  183. package/packages/notification/dist/adapters/detail-format.js +94 -0
  184. package/packages/notification/dist/adapters/detail-format.js.map +1 -0
  185. package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -1
  186. package/packages/notification/dist/adapters/email-adapter.js +3 -2
  187. package/packages/notification/dist/adapters/email-adapter.js.map +1 -1
  188. package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
  189. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  190. package/packages/notification/dist/adapters/line-adapter.js +87 -9
  191. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  192. package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -1
  193. package/packages/notification/dist/adapters/ntfy-adapter.js +3 -2
  194. package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -1
  195. package/packages/notification/dist/adapters/telegram-adapter.d.ts +14 -0
  196. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  197. package/packages/notification/dist/adapters/telegram-adapter.js +89 -69
  198. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  199. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  200. package/packages/notification/dist/notification-center.js +60 -7
  201. package/packages/notification/dist/notification-center.js.map +1 -1
  202. package/packages/notification/dist/pending-question.d.ts +69 -2
  203. package/packages/notification/dist/pending-question.d.ts.map +1 -1
  204. package/packages/notification/dist/pending-question.js +88 -2
  205. package/packages/notification/dist/pending-question.js.map +1 -1
  206. package/packages/notification/dist/types.d.ts +21 -0
  207. package/packages/notification/dist/types.d.ts.map +1 -1
  208. package/packages/notification/package.json +1 -1
  209. package/packages/notification/src/adapters/detail-format.ts +114 -0
  210. package/packages/notification/src/adapters/email-adapter.ts +3 -2
  211. package/packages/notification/src/adapters/line-adapter.ts +97 -9
  212. package/packages/notification/src/adapters/ntfy-adapter.ts +3 -2
  213. package/packages/notification/src/adapters/telegram-adapter.ts +98 -76
  214. package/packages/notification/src/notification-center.ts +66 -8
  215. package/packages/notification/src/pending-question.ts +160 -8
  216. package/packages/notification/src/types.ts +21 -0
  217. package/packages/notification/test/approval-payload.test.ts +269 -0
  218. package/packages/notification/test/detail-format.test.ts +106 -0
  219. package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
  220. package/packages/observability/package.json +1 -1
  221. package/packages/okf-indexer/dist/index.d.ts +9 -0
  222. package/packages/okf-indexer/dist/index.d.ts.map +1 -0
  223. package/packages/okf-indexer/dist/index.js +9 -0
  224. package/packages/okf-indexer/dist/index.js.map +1 -0
  225. package/packages/okf-indexer/package.json +1 -1
  226. package/packages/okf-indexer/src/index.ts +9 -0
  227. package/packages/paperclip-integration/package.json +1 -1
  228. package/packages/performance-optimizer/package.json +1 -1
  229. package/packages/permission-mode/package.json +1 -1
  230. package/packages/privilege-broker/package.json +1 -1
  231. package/packages/project-analyzer/package.json +1 -1
  232. package/packages/project-bootstrap/package.json +1 -1
  233. package/packages/projection-engine/package.json +1 -1
  234. package/packages/prompt-compiler/package.json +1 -1
  235. package/packages/prompt-versioning/package.json +1 -1
  236. package/packages/provider-adapter-sdk/package.json +1 -1
  237. package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
  238. package/packages/provider-router/dist/types.d.ts +2 -2
  239. package/packages/provider-router/dist/types.d.ts.map +1 -1
  240. package/packages/provider-router/dist/types.js +1 -1
  241. package/packages/provider-router/package.json +1 -1
  242. package/packages/provider-router/src/types.ts +2 -2
  243. package/packages/provider-selector/package.json +1 -1
  244. package/packages/providers/package.json +1 -1
  245. package/packages/qdrant-skills/package.json +1 -1
  246. package/packages/quota-manager/package.json +1 -1
  247. package/packages/rate-limiter/package.json +1 -1
  248. package/packages/react-vite-plugin/package.json +1 -1
  249. package/packages/relay/package.json +1 -1
  250. package/packages/release-manager/package.json +1 -1
  251. package/packages/requirement-compiler/package.json +1 -1
  252. package/packages/runtime/package.json +1 -1
  253. package/packages/scheduler/dist/index.d.ts +9 -0
  254. package/packages/scheduler/dist/index.d.ts.map +1 -0
  255. package/packages/scheduler/dist/index.js +9 -0
  256. package/packages/scheduler/dist/index.js.map +1 -0
  257. package/packages/scheduler/dist/scheduler.d.ts +17 -0
  258. package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
  259. package/packages/scheduler/dist/scheduler.js +41 -0
  260. package/packages/scheduler/dist/scheduler.js.map +1 -0
  261. package/packages/scheduler/package.json +1 -1
  262. package/packages/scheduler/src/index.ts +9 -0
  263. package/packages/scheduler-adapter/package.json +1 -1
  264. package/packages/session/package.json +1 -1
  265. package/packages/session-api/package.json +1 -1
  266. package/packages/session-export/package.json +1 -1
  267. package/packages/shared-context/dist/index.d.ts +7 -0
  268. package/packages/shared-context/dist/index.d.ts.map +1 -0
  269. package/packages/shared-context/dist/index.js +7 -0
  270. package/packages/shared-context/dist/index.js.map +1 -0
  271. package/packages/shared-context/dist/shared-context.d.ts +12 -0
  272. package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
  273. package/packages/shared-context/dist/shared-context.js +39 -0
  274. package/packages/shared-context/dist/shared-context.js.map +1 -0
  275. package/packages/shared-context/package.json +1 -1
  276. package/packages/skill-mcp-client/dist/client.d.ts +56 -0
  277. package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
  278. package/packages/skill-mcp-client/dist/client.js +101 -0
  279. package/packages/skill-mcp-client/dist/client.js.map +1 -0
  280. package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
  281. package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
  282. package/packages/skill-mcp-client/dist/errors.js +68 -0
  283. package/packages/skill-mcp-client/dist/errors.js.map +1 -0
  284. package/packages/skill-mcp-client/dist/index.d.ts +9 -0
  285. package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
  286. package/packages/skill-mcp-client/dist/index.js +9 -0
  287. package/packages/skill-mcp-client/dist/index.js.map +1 -0
  288. package/packages/skill-mcp-client/dist/types.d.ts +106 -0
  289. package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
  290. package/packages/skill-mcp-client/dist/types.js +14 -0
  291. package/packages/skill-mcp-client/dist/types.js.map +1 -0
  292. package/packages/skill-mcp-client/package.json +1 -1
  293. package/packages/skill-registry/package.json +1 -1
  294. package/packages/skills/package.json +1 -5
  295. package/packages/sprint-planner/package.json +1 -1
  296. package/packages/subscription-engine/package.json +1 -1
  297. package/packages/task-compiler/package.json +1 -1
  298. package/packages/telegram/package.json +1 -1
  299. package/packages/telegram/src/agent-messages.d.ts +28 -0
  300. package/packages/telegram/src/agent-messages.js +90 -0
  301. package/packages/telegram/src/bindings.d.ts +296 -0
  302. package/packages/telegram/src/bindings.js +1086 -0
  303. package/packages/telegram/src/bus.d.ts +759 -0
  304. package/packages/telegram/src/bus.js +2732 -0
  305. package/packages/telegram/src/commands.d.ts +761 -0
  306. package/packages/telegram/src/commands.js +2622 -0
  307. package/packages/telegram/src/config.d.ts +222 -0
  308. package/packages/telegram/src/config.js +844 -0
  309. package/packages/telegram/src/delivery.d.ts +161 -0
  310. package/packages/telegram/src/delivery.js +550 -0
  311. package/packages/telegram/src/extension.d.ts +7 -0
  312. package/packages/telegram/src/extension.js +2444 -0
  313. package/packages/telegram/src/inbound.d.ts +94 -0
  314. package/packages/telegram/src/inbound.js +478 -0
  315. package/packages/telegram/src/index.d.ts +6 -0
  316. package/packages/telegram/src/index.js +6 -0
  317. package/packages/telegram/src/keyboard.d.ts +21 -0
  318. package/packages/telegram/src/keyboard.js +37 -0
  319. package/packages/telegram/src/lifecycle.d.ts +210 -0
  320. package/packages/telegram/src/lifecycle.js +538 -0
  321. package/packages/telegram/src/pi.d.ts +76 -0
  322. package/packages/telegram/src/pi.js +130 -0
  323. package/packages/telegram/src/polling.d.ts +332 -0
  324. package/packages/telegram/src/polling.js +1219 -0
  325. package/packages/telegram/src/replies.d.ts +210 -0
  326. package/packages/telegram/src/replies.js +752 -0
  327. package/packages/telegram/src/routing.d.ts +388 -0
  328. package/packages/telegram/src/routing.js +7886 -0
  329. package/packages/telegram/src/runtime.d.ts +159 -0
  330. package/packages/telegram/src/runtime.js +351 -0
  331. package/packages/telegram/src/telegram-api.d.ts +564 -0
  332. package/packages/telegram/src/telegram-api.js +1332 -0
  333. package/packages/telegram/src/turns.d.ts +108 -0
  334. package/packages/telegram/src/turns.js +482 -0
  335. package/packages/telegram/src/updates.d.ts +1545 -0
  336. package/packages/telegram/src/updates.js +6420 -0
  337. package/packages/tencentdb-memory/package.json +1 -1
  338. package/packages/tencentdb-sync/package.json +1 -1
  339. package/packages/test-data-generator/package.json +1 -1
  340. package/packages/test-generator/package.json +1 -1
  341. package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
  342. package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
  343. package/packages/todo-bd-sync/dist/detector.js +132 -0
  344. package/packages/todo-bd-sync/dist/detector.js.map +1 -0
  345. package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
  346. package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
  347. package/packages/todo-bd-sync/dist/extension.js +35 -0
  348. package/packages/todo-bd-sync/dist/extension.js.map +1 -0
  349. package/packages/todo-bd-sync/dist/index.d.ts +87 -0
  350. package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
  351. package/packages/todo-bd-sync/dist/index.js +296 -0
  352. package/packages/todo-bd-sync/dist/index.js.map +1 -0
  353. package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
  354. package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
  355. package/packages/todo-bd-sync/dist/sync.js +290 -0
  356. package/packages/todo-bd-sync/dist/sync.js.map +1 -0
  357. package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
  358. package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
  359. package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
  360. package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
  361. package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
  362. package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
  363. package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
  364. package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
  365. package/packages/todo-bd-sync/dist/types.d.ts +65 -0
  366. package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
  367. package/packages/todo-bd-sync/dist/types.js +67 -0
  368. package/packages/todo-bd-sync/dist/types.js.map +1 -0
  369. package/packages/todo-bd-sync/package.json +1 -1
  370. package/packages/token-estimation/dist/index.d.ts +94 -0
  371. package/packages/token-estimation/dist/index.d.ts.map +1 -0
  372. package/packages/token-estimation/dist/index.js +115 -0
  373. package/packages/token-estimation/dist/index.js.map +1 -0
  374. package/packages/token-estimation/package.json +1 -1
  375. package/packages/token-optimizer/package.json +1 -1
  376. package/packages/trajectory/package.json +1 -1
  377. package/packages/tui/package.json +1 -1
  378. package/packages/types/dist/ai-providers.d.ts +36 -0
  379. package/packages/types/dist/ai-providers.d.ts.map +1 -0
  380. package/packages/types/dist/ai-providers.js +66 -0
  381. package/packages/types/dist/ai-providers.js.map +1 -0
  382. package/packages/types/dist/index.d.ts +12 -0
  383. package/packages/types/dist/index.d.ts.map +1 -0
  384. package/packages/types/dist/index.js +12 -0
  385. package/packages/types/dist/index.js.map +1 -0
  386. package/packages/types/package.json +5 -5
  387. package/packages/types/src/index.ts +12 -0
  388. package/packages/voice-api/package.json +1 -1
  389. package/packages/webmcp-tester/package.json +1 -1
  390. package/packages/wiki/package.json +1 -1
  391. package/packages/workflow-events/package.json +1 -1
  392. package/packages/workspace-scanner/package.json +1 -1
  393. package/packages/worktree/package.json +1 -1
  394. package/packages/worktree/worktree.ts +1 -1
  395. package/packages/write-review/package.json +1 -1
  396. package/renderer.ts +1 -1
  397. package/scripts/build-packages.ts +162 -0
  398. package/scripts/relay-client.ts +2 -2
  399. package/scripts/typecheck-packages.mjs +3 -3
  400. package/scripts/unified-webhook-server.ts +22 -10
  401. package/scripts/verify-package-contents.ts +345 -0
  402. package/scripts/ws-server.ts +1 -1
  403. package/tracker.ts +1 -1
  404. package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
  405. package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
  406. package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
  407. package/harness/browser-scrapers/index.d.ts +0 -29
  408. package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
  409. package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
  410. package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
  411. package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
  412. package/harness/e2e/browser-scrapers/index.d.ts +0 -30
  413. package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
  414. package/harness/langchain/agents.d.ts +0 -143
  415. package/harness/langchain/agents.test.d.ts +0 -2
  416. package/harness/langchain/checkpointer.d.ts +0 -48
  417. package/harness/langchain/checkpointer.test.d.ts +0 -8
  418. package/harness/langchain/cron-cli.d.ts +0 -12
  419. package/harness/langchain/daemon.d.ts +0 -161
  420. package/harness/langchain/daemon.test.d.ts +0 -11
  421. package/harness/langchain/file-tools.d.ts +0 -97
  422. package/harness/langchain/graph.d.ts +0 -706
  423. package/harness/langchain/model-router.d.ts +0 -63
  424. package/harness/langchain/model-router.test.d.ts +0 -2
  425. package/harness/langchain/models.d.ts +0 -72
  426. package/harness/langchain/ping-pong-middleware.d.ts +0 -28
  427. package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
  428. package/harness/langchain/run.d.ts +0 -15
  429. package/harness/langchain/scoreboard.test.d.ts +0 -13
  430. package/harness/langchain/status-line.d.ts +0 -91
  431. package/harness/langchain/status-line.test.d.ts +0 -8
  432. package/harness/langchain/surge.d.ts +0 -111
  433. package/harness/langchain/surge.test.d.ts +0 -10
  434. package/harness/langchain/widget.d.ts +0 -105
  435. package/harness/langchain/widget.test.d.ts +0 -8
  436. package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
  437. package/packages/autonomous-runtime/dist/worker.js +0 -133
  438. package/packages/capability-registry/src/types.d.ts +0 -47
  439. package/packages/clipboard/dist/clipboard.d.ts +0 -11
  440. package/packages/clipboard/dist/clipboard.js +0 -40
  441. package/packages/clipboard/dist/index.d.ts +0 -2
  442. package/packages/clipboard/dist/index.js +0 -2
  443. package/packages/clipboard/dist/types.d.ts +0 -13
  444. package/packages/clipboard/dist/types.js +0 -5
  445. package/packages/context-discovery/dist/discover.d.ts +0 -3
  446. package/packages/context-discovery/dist/discover.js +0 -42
  447. package/packages/context-discovery/dist/discovery.d.ts +0 -28
  448. package/packages/context-discovery/dist/discovery.js +0 -21
  449. package/packages/context-discovery/dist/index.d.ts +0 -3
  450. package/packages/context-discovery/dist/index.js +0 -2
  451. package/packages/context-discovery/dist/types.d.ts +0 -16
  452. package/packages/context-discovery/dist/types.js +0 -2
  453. package/packages/event-bus/dist/bus.d.ts +0 -15
  454. package/packages/event-bus/dist/bus.js +0 -90
  455. package/packages/event-bus/dist/index.d.ts +0 -4
  456. package/packages/event-bus/dist/index.js +0 -3
  457. package/packages/event-bus/dist/test/bus.test.js +0 -52
  458. package/packages/event-bus/dist/types.d.ts +0 -27
  459. package/packages/event-bus/dist/types.js +0 -10
  460. package/packages/event-store/dist/index.d.ts +0 -3
  461. package/packages/event-store/dist/index.js +0 -2
  462. package/packages/event-store/dist/store.d.ts +0 -15
  463. package/packages/event-store/dist/store.js +0 -131
  464. package/packages/event-store/dist/test/store.test.js +0 -57
  465. package/packages/event-store/dist/types.d.ts +0 -48
  466. package/packages/event-store/dist/types.js +0 -5
  467. package/packages/event-store/src/types.d.ts +0 -48
  468. package/packages/file-copy-helper/dist/src/extension.js +0 -186
  469. package/packages/model-registry/src/types.d.ts +0 -63
  470. package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
  471. package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
  472. package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
  473. package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
  474. package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
  475. package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
  476. package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
  477. package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
  478. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
  479. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
  480. package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
  481. package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
  482. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
  483. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
  484. package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
  485. package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
  486. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
  487. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
  488. package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
  489. package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
  490. package/packages/notification/dist/src/base-adapter.d.ts +0 -36
  491. package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
  492. package/packages/notification/dist/src/base-adapter.js +0 -39
  493. package/packages/notification/dist/src/base-adapter.js.map +0 -1
  494. package/packages/notification/dist/src/index.d.ts +0 -12
  495. package/packages/notification/dist/src/index.d.ts.map +0 -1
  496. package/packages/notification/dist/src/index.js +0 -12
  497. package/packages/notification/dist/src/index.js.map +0 -1
  498. package/packages/notification/dist/src/notification-center.d.ts +0 -89
  499. package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
  500. package/packages/notification/dist/src/notification-center.js +0 -356
  501. package/packages/notification/dist/src/notification-center.js.map +0 -1
  502. package/packages/notification/dist/src/notification-policy.d.ts +0 -66
  503. package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
  504. package/packages/notification/dist/src/notification-policy.js +0 -153
  505. package/packages/notification/dist/src/notification-policy.js.map +0 -1
  506. package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
  507. package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
  508. package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
  509. package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
  510. package/packages/notification/dist/src/types.d.ts +0 -106
  511. package/packages/notification/dist/src/types.d.ts.map +0 -1
  512. package/packages/notification/dist/src/types.js +0 -7
  513. package/packages/notification/dist/src/types.js.map +0 -1
  514. package/packages/projection-engine/dist/engine.d.ts +0 -61
  515. package/packages/projection-engine/dist/engine.js +0 -76
  516. package/packages/projection-engine/dist/index.d.ts +0 -2
  517. package/packages/projection-engine/dist/index.js +0 -2
  518. package/packages/projection-engine/dist/project.d.ts +0 -3
  519. package/packages/projection-engine/dist/project.js +0 -24
  520. package/packages/projection-engine/dist/types.d.ts +0 -55
  521. package/packages/projection-engine/dist/types.js +0 -5
  522. package/packages/projection-engine/src/types.d.ts +0 -55
  523. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
  524. package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
  525. package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
  526. package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
  527. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
  528. package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
  529. package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
  530. package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
  531. package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
  532. package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
  533. package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
  534. package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
  535. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
  536. package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
  537. package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
  538. package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
  539. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
  540. package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
  541. package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
  542. package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
  543. package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
  544. package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
  545. package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
  546. package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
  547. package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
  548. package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
  549. package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
  550. package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
  551. package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
  552. package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
  553. package/packages/provider-router/dist/provider-router/src/index.js +0 -25
  554. package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
  555. package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
  556. package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
  557. package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
  558. package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
  559. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
  560. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
  561. package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
  562. package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
  563. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
  564. package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
  565. package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
  566. package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
  567. package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
  568. package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
  569. package/packages/provider-router/dist/provider-router/src/types.js +0 -10
  570. package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
  571. package/packages/provider-router/dist/src/index.d.ts +0 -23
  572. package/packages/provider-router/dist/src/index.d.ts.map +0 -1
  573. package/packages/provider-router/dist/src/index.js +0 -25
  574. package/packages/provider-router/dist/src/index.js.map +0 -1
  575. package/packages/provider-router/dist/src/policy.d.ts +0 -10
  576. package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
  577. package/packages/provider-router/dist/src/policy.js +0 -45
  578. package/packages/provider-router/dist/src/policy.js.map +0 -1
  579. package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
  580. package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
  581. package/packages/provider-router/dist/src/provider-router.js +0 -222
  582. package/packages/provider-router/dist/src/provider-router.js.map +0 -1
  583. package/packages/provider-router/dist/src/strategies.d.ts +0 -19
  584. package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
  585. package/packages/provider-router/dist/src/strategies.js +0 -110
  586. package/packages/provider-router/dist/src/strategies.js.map +0 -1
  587. package/packages/provider-router/dist/src/types.d.ts +0 -91
  588. package/packages/provider-router/dist/src/types.d.ts.map +0 -1
  589. package/packages/provider-router/dist/src/types.js +0 -10
  590. package/packages/provider-router/dist/src/types.js.map +0 -1
  591. package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
  592. package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
  593. package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
  594. package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
  595. package/packages/session-api/dist/api.d.ts +0 -83
  596. package/packages/session-api/dist/api.js +0 -35
  597. package/packages/session-api/dist/index.d.ts +0 -2
  598. package/packages/session-api/dist/index.js +0 -2
  599. package/packages/session-api/dist/types.d.ts +0 -22
  600. package/packages/session-api/dist/types.js +0 -5
  601. package/packages/session-export/dist/exporter.d.ts +0 -28
  602. package/packages/session-export/dist/exporter.js +0 -38
  603. package/packages/session-export/dist/index.d.ts +0 -2
  604. package/packages/session-export/dist/index.js +0 -2
  605. package/packages/session-export/dist/types.d.ts +0 -20
  606. package/packages/session-export/dist/types.js +0 -5
  607. package/packages/subscription-engine/dist/engine.d.ts +0 -13
  608. package/packages/subscription-engine/dist/engine.js +0 -40
  609. package/packages/subscription-engine/dist/index.d.ts +0 -2
  610. package/packages/subscription-engine/dist/index.js +0 -2
  611. package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
  612. package/packages/subscription-engine/dist/subscriptions.js +0 -32
  613. package/packages/subscription-engine/dist/types.d.ts +0 -24
  614. package/packages/subscription-engine/dist/types.js +0 -5
  615. package/packages/trajectory/test/store.test.d.ts +0 -2
  616. package/packages/workflow-events/dist/events.d.ts +0 -38
  617. package/packages/workflow-events/dist/events.js +0 -46
  618. package/packages/workflow-events/dist/index.d.ts +0 -2
  619. package/packages/workflow-events/dist/index.js +0 -2
  620. package/packages/workflow-events/dist/pipeline.d.ts +0 -21
  621. package/packages/workflow-events/dist/pipeline.js +0 -27
  622. package/packages/workflow-events/dist/types.d.ts +0 -110
  623. package/packages/workflow-events/dist/types.js +0 -5
  624. package/packages/workflow-events/src/types.d.ts +0 -110
@@ -1 +1 @@
1
- {"version":3,"file":"pending-question.js","sourceRoot":"","sources":["../src/pending-question.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pending-question.js","sourceRoot":"","sources":["../src/pending-question.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AA6H3C;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAC5B,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IACpD,eAAe,GAA2B,IAAI,CAAC;IAC/C,mBAAmB,CAA8D;IACjF,kBAAkB,CAAuD;IACzE,MAAM,CAGZ;IAEF,YAAY,MAGX;QACC,IAAI,CAAC,MAAM,GAAG;YACZ,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;YAC3E,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAoE;QAChF,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA6D;QACxE,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,OAAO,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAEF;;OAEG;IACH,cAAc,CAAC,IAAY,EAAE,QAI5B;QAEA,iEAAiE;QACjE,MAAM,iBAAiB,GAA4D,EAAE,CAAC;QACtF,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,CAAC,CAAC;gBAAE,MAAM;YAEhC,wDAAwD;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YAExD,0CAA0C;YAC1C,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7D,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,cAAc,EAAE,CAAC;gBACpB,2CAA2C;gBAC3C,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;gBAC/B,SAAS;YACV,CAAC;YAED,qCAAqC;YACrC,IAAI,aAAa,GAAG,UAAU,CAAC;YAE/B,oCAAoC;YACpC,KAAK,IAAI,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnD,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM;gBACP,CAAC;YACF,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzE,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/E,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,kEAAkE;QAClE,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACnC,wBAAwB;YACxB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEvD,wDAAwD;YACxD,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBACrD,OAAO;oBACN,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,CAAC,CAAC,QAAQ;oBACxB,IAAI;oBACJ,SAAS;iBACT,CAAC;YACH,CAAC;QACF,CAAC;QAED,+EAA+E;QAC/E,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEzD,OAAO;gBACN,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,CAAC,CAAC,QAAQ;gBACxB,IAAI,EAAE,SAAS;gBACf,SAAS;aACT,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,IAAY;QACzC,kDAAkD;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,8CAA8C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACb,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG;YACxB,iBAAiB;YACjB,2BAA2B;YAC3B,cAAc;YACd,mBAAmB;YACnB,yBAAyB;YACzB,oBAAoB;YACpB,0BAA0B;YAC1B,wBAAwB;YACxB,qCAAqC;SACrC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACN,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;oBACzB,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,KAAK;iBAChB,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEA;;OAEG;IACK,cAAc,CAAC,QAAgB,EAAE,QAAgB;QACvD,2EAA2E;QAC3E,IAAI,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEzC,mDAAmD;QACnD,MAAM,eAAe,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjG,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;QAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,6DAA6D;YAC7D,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,mFAAmF;QACnF,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/D,uEAAuE;QACvE,sDAAsD;QACtD,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAChF,MAAM,qBAAqB,GAAG,IAAI,MAAM,CAAC,SAAS,eAAe,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChF,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2BAA2B;QAC3B,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,SAAS,eAAe,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,QAAgB,EAAE,SAAkB;QACxD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAEhC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAErC,uDAAuD;QACvD,MAAM,eAAe,GAAG;YACtB,kBAAkB;YAClB,kCAAkC;YAClC,mBAAmB;YACnB,eAAe;YACf,yBAAyB;SAC1B,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,eAAe,CAAC;YACzB,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,gBAAgB,GAAG;YACvB,iBAAiB;YACjB,2BAA2B;YAC3B,cAAc;YACd,mBAAmB;YACnB,yBAAyB;YACzB,oBAAoB;YACpB,0BAA0B;YAC1B,wBAAwB;YACxB,0CAA0C;SAC3C,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,QAAgB;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAErC,8DAA8D;QAC9D,wEAAwE;QACxE,MAAM,eAAe,GAAG;YACtB,sBAAsB;YACtB,uBAAuB;YACvB,mBAAmB;YACnB,oBAAoB;YACpB,mBAAmB;YACnB,oBAAoB;YACpB,qBAAqB;YACrB,eAAe;YACf,cAAc;YACd,WAAW;YACX,gCAAgC;YAChC,8BAA8B;YAC9B,kBAAkB;YAClB,2BAA2B;YAC3B,uBAAuB;SACxB,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAcd;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,MAAM,QAAQ,GAAoB;YAChC,SAAS;YACT,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,IAAI;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,6BAA6B,EAAE,MAAM,CAAC,IAAI,EAAE,6BAA6B;YACzE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW;YACrC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU;YACnC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO;YACjC,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC3D,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAEhC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE9F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,SAAS,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,OAA4B,EAC5B,SAAkB,EAClB,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG;YAC5C,SAAS;YACT,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YAC/C,KAAK;SACN,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAOP;QACC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iEAAiE;QACjE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;YAC1F,OAAO,CAAC,mBAAmB,EACzB,iCAAiC,MAAM,CAAC,SAAS,YAAY,IAAI,CAAC,eAAe,CAAC,SAAS,yBAAyB,CAAC,CAAC;YACxH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,2DAA2D;QAC3D,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,mBAAmB,EACzB,gCAAgC,IAAI,CAAC,eAAe,CAAC,UAAU,+BAA+B,CAAC,CAAC;YAClG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,mBAAmB,EAAE,qBAAqB,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAE1H,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE;oBAC7C,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,iBAAiB;oBACzB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,YAAY,CACV,SAAiB,EACjB,OAAmB,EACnB,MAAe;QAEf,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,mBAAmB,EACzB,0CAA0C,SAAS,aAAa,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;YACrG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,mBAAmB,EACzB,gCAAgC,IAAI,CAAC,eAAe,CAAC,UAAU,yBAAyB,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7C,OAAO,CAAC,mBAAmB,EACzB,mBAAmB,IAAI,CAAC,eAAe,CAAC,SAAS,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAEnF,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC7C,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;gBAChF,MAAM,EAAE,MAAM,IAAI,OAAO,OAAO,EAAE;gBAClC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE,OAAO,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CACX,MAAc,EACd,SAAiB,EACjB,OAA0B;QAE1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,MAAM,GAAG,EAAE,CAAC;QAClE,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7E,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;YAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,CACL,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS;YAC5C,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,YAAY,CAAC,CAC1F,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,GAAW,WAAW;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;QACzC,OAAO,CAAC,mBAAmB,EAAE,sBAAsB,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,CAAC,mBAAmB,EAAE,qCAAqC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1C,OAAO,CAAC,mBAAmB,EAAE,mCAAmC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;IACpG,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAW,EAAE,GAAG,EAAE,GAAG,IAAI;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,KAAK,UAAU,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;CACF;AAED,yBAAyB;AACzB,IAAI,QAAQ,GAAqC,IAAI,CAAC;AAEtD,MAAM,UAAU,4BAA4B;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAG/C;IACC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -14,6 +14,8 @@ export interface NotificationPayload {
14
14
  redacted?: string[];
15
15
  enableInlineKeyboard?: boolean;
16
16
  actionButtons?: InlineKeyboardButton[];
17
+ /** The canonical pending-question request ID (the approval correlation key). */
18
+ questionId?: string;
17
19
  }
18
20
  export interface NotificationConfig {
19
21
  channels: NotificationChannelConfig[];
@@ -108,6 +110,25 @@ export interface NotificationContext {
108
110
  requirement: string;
109
111
  taskId?: string;
110
112
  taskTitle?: string;
113
+ /** A real failure. Only error events render this under an "Error:" label. */
111
114
  error?: string;
115
+ /** Why the event happened (a resume trigger, a quota detail, a review reason). */
116
+ reason?: string;
117
+ /**
118
+ * Why the work resumed ("post-compact", "provider-overload"). A trigger is
119
+ * not a failure: it renders as "Trigger: ..." in a human wording, never
120
+ * under an "Error:" label.
121
+ */
122
+ trigger?: string;
123
+ /**
124
+ * The canonical pending-question request ID.
125
+ *
126
+ * It is the approval correlation key: the callback data of every Yes/No
127
+ * action points at it. The presentation `jobId` may carry a prefix and
128
+ * must not be used for the correlation.
129
+ */
130
+ questionId?: string;
131
+ /** The kind of the pending question (approval, clarification, ...). */
132
+ questionKind?: string;
112
133
  }
113
134
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,iBAAiB,GAC1B,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,sBAAsB,GACtB,WAAW,GACX,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,GACd,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,GACb,OAAO,GACP,MAAM,CAAC;AAEV,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IAEtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;CAC/E;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzF,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;IAC/C;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACT,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CACrC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/notification",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "pi-harness-runtime — notification",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Shared rendering of the notification detail fields.
3
+ *
4
+ * `details.error` is reserved for events that represent an actual failure. A
5
+ * resume trigger ("provider-overload", "post-compact") or a quota detail is a
6
+ * reason, not an error, and must never be rendered under the "Error:" footer.
7
+ *
8
+ * Every adapter renders the detail fields through this module so the labels
9
+ * stay consistent across Telegram, LINE, ntfy and email.
10
+ */
11
+
12
+ import type { NotificationEvent, NotificationPayload } from "../types.js";
13
+
14
+ /** Events whose `details.error` really is an error. */
15
+ export const ERROR_EVENTS: ReadonlySet<NotificationEvent> = new Set<NotificationEvent>([
16
+ "TaskFailed",
17
+ "E2EFailed",
18
+ "Error",
19
+ ]);
20
+
21
+ export function isErrorEvent(event: NotificationEvent): boolean {
22
+ return ERROR_EVENTS.has(event);
23
+ }
24
+
25
+ export interface DetailLine {
26
+ /** "Error" for a real failure, "Trigger" for a resume trigger, "Reason" for a detail. */
27
+ label: "Error" | "Reason" | "Trigger";
28
+ value: string;
29
+ }
30
+
31
+ /**
32
+ * Human wording for the known resume triggers.
33
+ *
34
+ * The raw code stays in the structured logs; the user facing message gets a
35
+ * wording a human can read.
36
+ */
37
+ const TRIGGER_LABELS: Readonly<Record<string, string>> = {
38
+ "post-compact": "Context compacted",
39
+ "context-compacted": "Context compacted",
40
+ "provider-overload": "Provider overload",
41
+ "quota-reset": "Quota reset",
42
+ "quota-paused": "Quota paused",
43
+ "output-limit": "Output limit reached",
44
+ "session-resume": "Session resumed",
45
+ "auto-resume": "Session auto-resume",
46
+ };
47
+
48
+ /**
49
+ * Turn a trigger code into a human wording.
50
+ *
51
+ * "provider-overload" becomes "Provider overload". An unknown code keeps its
52
+ * words, only the separators and the capitalisation are cleaned up.
53
+ */
54
+ export function formatTriggerValue(value: string): string {
55
+ const trimmed = value.trim();
56
+ if (!trimmed) return "";
57
+
58
+ const known = TRIGGER_LABELS[trimmed.toLowerCase()];
59
+ if (known) return known;
60
+
61
+ const words = trimmed.replace(/[_-]+/g, " ").replace(/\s+/g, " ").trim();
62
+ if (!words) return trimmed;
63
+ return words.charAt(0).toUpperCase() + words.slice(1);
64
+ }
65
+
66
+ function readString(value: unknown): string | undefined {
67
+ if (typeof value !== "string") return undefined;
68
+ const trimmed = value.trim();
69
+ return trimmed.length > 0 ? trimmed : undefined;
70
+ }
71
+
72
+ /**
73
+ * Render the detail fields of a payload as footer lines.
74
+ *
75
+ * - `details.trigger` becomes "Trigger: ..." in a human wording.
76
+ * - `details.reason` becomes "Reason: ..." for every event.
77
+ * - `details.error` becomes "Error: ..." for the error events only.
78
+ * - A legacy `details.error` on a non-error event becomes "Reason: ..." so the
79
+ * information survives when a producer still uses the old field.
80
+ */
81
+ export function formatDetailLines(
82
+ details: NotificationPayload["details"],
83
+ event: NotificationEvent,
84
+ ): DetailLine[] {
85
+ const lines: DetailLine[] = [];
86
+ const trigger = readString(details?.trigger);
87
+ const reason = readString(details?.reason);
88
+ const error = readString(details?.error);
89
+
90
+ if (trigger) {
91
+ lines.push({ label: "Trigger", value: formatTriggerValue(trigger) });
92
+ }
93
+ if (reason) {
94
+ lines.push({ label: "Reason", value: reason });
95
+ }
96
+ if (error) {
97
+ lines.push({ label: isErrorEvent(event) ? "Error" : "Reason", value: error });
98
+ }
99
+
100
+ return lines;
101
+ }
102
+
103
+ /**
104
+ * The same lines as a plain text block, one per line.
105
+ * An empty string when there is nothing to render.
106
+ */
107
+ export function formatDetailText(
108
+ details: NotificationPayload["details"],
109
+ event: NotificationEvent,
110
+ ): string {
111
+ return formatDetailLines(details, event)
112
+ .map((line) => `${line.label}: ${line.value}`)
113
+ .join("\n");
114
+ }
@@ -10,6 +10,7 @@ import type {
10
10
  EmailConfig,
11
11
  } from "../types.js";
12
12
  import { BaseChannelAdapter } from "../base-adapter.js";
13
+ import { formatDetailLines } from "./detail-format.js";
13
14
  import { logInfo } from "../file-logger.js";
14
15
 
15
16
  // Simple SMTP client using built-in net module
@@ -100,8 +101,8 @@ export class EmailAdapter extends BaseChannelAdapter {
100
101
  if (payload.details?.jobId) {
101
102
  lines.push(`Job ID: ${payload.details.jobId}`);
102
103
  }
103
- if (payload.details?.error) {
104
- lines.push("", `Error: ${payload.details.error}`);
104
+ for (const detail of formatDetailLines(payload.details, payload.event)) {
105
+ lines.push("", `${detail.label}: ${detail.value}`);
105
106
  }
106
107
 
107
108
  return lines.join("\n");
@@ -8,8 +8,25 @@ import type {
8
8
  NotificationPayload,
9
9
  NotificationResult,
10
10
  LineConfig,
11
+ InlineKeyboardButton,
11
12
  } from "../types.js";
12
13
  import { BaseChannelAdapter } from "../base-adapter.js";
14
+ import { formatDetailLines } from "./detail-format.js";
15
+
16
+ /**
17
+ * LINE limits the template fields. The complete question does not fit in a
18
+ * template, so it travels as a text message and the template only carries the
19
+ * prompt and the request ID.
20
+ */
21
+ export const LINE_TEMPLATE_TEXT_LIMIT = 200;
22
+ export const LINE_TEMPLATE_TITLE_LIMIT = 40;
23
+ export const LINE_ACTION_LABEL_LIMIT = 20;
24
+ /** LINE accepts at most 100 characters of postback data. */
25
+ export const LINE_POSTBACK_DATA_LIMIT = 100;
26
+ /** LINE accepts at most 4 actions in one template. */
27
+ export const LINE_MAX_ACTIONS = 4;
28
+ /** A LINE text message accepts up to 5000 characters. */
29
+ export const LINE_TEXT_MESSAGE_LIMIT = 4500;
13
30
 
14
31
  /**
15
32
  * The endpoint that validates a channel access token.
@@ -159,7 +176,7 @@ export class LineAdapter extends BaseChannelAdapter {
159
176
  async send(payload: NotificationPayload): Promise<NotificationResult> {
160
177
  try {
161
178
  const cfg = this.config.config as LineConfig;
162
- const message = this.formatMessage(payload);
179
+ const messages = this.buildMessages(payload);
163
180
 
164
181
  const response = await fetch(
165
182
  "https://api.line.me/v2/bot/message/push",
@@ -171,12 +188,7 @@ export class LineAdapter extends BaseChannelAdapter {
171
188
  },
172
189
  body: JSON.stringify({
173
190
  to: cfg.userId,
174
- messages: [
175
- {
176
- type: "text",
177
- text: message,
178
- },
179
- ],
191
+ messages,
180
192
  }),
181
193
  },
182
194
  );
@@ -217,6 +229,82 @@ export class LineAdapter extends BaseChannelAdapter {
217
229
  }
218
230
  }
219
231
 
232
+ /**
233
+ * Build the LINE messages of a payload.
234
+ *
235
+ * Without actions it is one text message. With actions the complete
236
+ * question travels as a text message (a LINE text message holds far more
237
+ * than a template) and a template carries the Yes/No postback actions.
238
+ * Both messages carry the canonical request ID, so the user can tell
239
+ * which request an action belongs to.
240
+ */
241
+ private buildMessages(payload: NotificationPayload): unknown[] {
242
+ const buttons = (payload.details?._actionButtons as InlineKeyboardButton[] | undefined) ?? [];
243
+ const text = this.formatMessage(payload);
244
+
245
+ if (buttons.length === 0) {
246
+ return [{ type: "text", text }];
247
+ }
248
+
249
+ const requestId =
250
+ (typeof payload.questionId === "string" && payload.questionId) ||
251
+ (typeof payload.details?.questionId === "string" ? payload.details.questionId : "") ||
252
+ (typeof payload.details?.jobId === "string" ? payload.details.jobId : "");
253
+ const prompt = "Approve this request?";
254
+ const templateText = requestId ? `${prompt}\nRequest: ${requestId}` : prompt;
255
+
256
+ const actions = buttons.slice(0, LINE_MAX_ACTIONS).map((button) => ({
257
+ type: "postback",
258
+ label: this.formatActionLabel(button.text),
259
+ data: button.callbackData.slice(0, LINE_POSTBACK_DATA_LIMIT),
260
+ }));
261
+
262
+ const messages: unknown[] = this.chunkText(text).map((part) => ({
263
+ type: "text",
264
+ text: part,
265
+ }));
266
+
267
+ messages.push({
268
+ type: "template",
269
+ altText: prompt,
270
+ template: {
271
+ type: "buttons",
272
+ title: prompt.slice(0, LINE_TEMPLATE_TITLE_LIMIT),
273
+ text: templateText.slice(0, LINE_TEMPLATE_TEXT_LIMIT),
274
+ actions,
275
+ },
276
+ });
277
+
278
+ return messages;
279
+ }
280
+
281
+ /**
282
+ * Split a long text into LINE sized text messages.
283
+ */
284
+ private chunkText(text: string, limit = LINE_TEXT_MESSAGE_LIMIT): string[] {
285
+ if (text.length <= limit) return [text];
286
+
287
+ const chunks: string[] = [];
288
+ let rest = text;
289
+ while (rest.length > limit) {
290
+ let cut = rest.lastIndexOf("\n", limit);
291
+ if (cut <= 0) cut = limit;
292
+ chunks.push(rest.slice(0, cut));
293
+ rest = rest.slice(cut);
294
+ }
295
+ if (rest.length > 0) chunks.push(rest);
296
+ return chunks;
297
+ }
298
+
299
+ /**
300
+ * The button label without its emoji. LINE counts the emoji in the 20
301
+ * character label limit.
302
+ */
303
+ private formatActionLabel(label: string): string {
304
+ const plain = label.replace(/[\u{1F300}-\u{1FAFF}\u{2705}\u{274C}\u{2B50}\u{26A0}\u{1F7E1}]/gu, "").trim();
305
+ return (plain || label).slice(0, LINE_ACTION_LABEL_LIMIT);
306
+ }
307
+
220
308
  private formatMessage(payload: NotificationPayload): string {
221
309
  const emoji = this.getEmoji(payload.event);
222
310
  const title = `${emoji} ${payload.title}`;
@@ -228,8 +316,8 @@ export class LineAdapter extends BaseChannelAdapter {
228
316
  if (payload.details?.jobId) {
229
317
  lines.push(`Job: ${payload.details.jobId}`);
230
318
  }
231
- if (payload.details?.error) {
232
- lines.push("", `Error: ${payload.details.error}`);
319
+ for (const detail of formatDetailLines(payload.details, payload.event)) {
320
+ lines.push("", `${detail.label}: ${detail.value}`);
233
321
  }
234
322
 
235
323
  return lines.filter(Boolean).join("\n");
@@ -10,6 +10,7 @@ import type {
10
10
  NtfyConfig,
11
11
  } from "../types.js";
12
12
  import { BaseChannelAdapter } from "../base-adapter.js";
13
+ import { formatDetailLines } from "./detail-format.js";
13
14
 
14
15
  export class NtfyAdapter extends BaseChannelAdapter {
15
16
  readonly id = "ntfy";
@@ -73,8 +74,8 @@ export class NtfyAdapter extends BaseChannelAdapter {
73
74
  if (payload.details?.jobId) {
74
75
  lines.push(`Job: ${payload.details.jobId}`);
75
76
  }
76
- if (payload.details?.error) {
77
- lines.push(`\nError: ${payload.details.error}`);
77
+ for (const detail of formatDetailLines(payload.details, payload.event)) {
78
+ lines.push(`\n${detail.label}: ${detail.value}`);
78
79
  }
79
80
 
80
81
  return lines.join("");
@@ -40,6 +40,7 @@ interface TelegramUpdate {
40
40
  }
41
41
  import { BaseChannelAdapter } from "../base-adapter.js";
42
42
  import { maskString } from "../mask-secrets.js";
43
+ import { formatDetailLines } from "./detail-format.js";
43
44
  import { filterTelegramContent, getSafeNotificationLog } from "../telegram-content-filter.js";
44
45
 
45
46
  /**
@@ -54,6 +55,95 @@ const POLL_RETRY_MAX_ATTEMPTS = 5;
54
55
  const POLL_RETRY_BASE_DELAY_MS = 10_000;
55
56
  const POLL_RETRY_MAX_DELAY_MS = 120_000;
56
57
 
58
+ /**
59
+ * The status label of an event.
60
+ *
61
+ * Use ASCII labels per AGENTS.md convention - emoji render inconsistently
62
+ * across terminals and break the alignment of the machine readable output.
63
+ */
64
+ export function telegramStatusLabel(event: NotificationPayload["event"]): string {
65
+ const labels: Record<string, string> = {
66
+ JobStarted: "[START]",
67
+ TaskCompleted: "[OK]",
68
+ TaskFailed: "[FAIL]",
69
+ QuotaPaused: "[PAUSE]",
70
+ ResumeScheduled: "[RESUME]",
71
+ ContextCompacted: "[COMPACT]",
72
+ OutputLimitContinued: "[CONTINUE]",
73
+ E2EFailed: "[TEST]",
74
+ HumanReviewNeeded: "[REVIEW]",
75
+ ReadyForClient: "[DONE]",
76
+ JobCancelled: "[CANCEL]",
77
+ Error: "[ERROR]",
78
+ WaitingForUserInput: "[INPUT]",
79
+ Info: "[INFO]",
80
+ CodexSessionStarted: "[CODEX]",
81
+ CodexPlanDetected: "[PLAN]",
82
+ AssistantResponse: "[TODO]",
83
+ ToolSummary: "[TOOL]",
84
+ };
85
+ return labels[event] ?? "[MSG]";
86
+ }
87
+
88
+ /**
89
+ * Render the Telegram message of a payload.
90
+ *
91
+ * Exported so the rendering can be tested without a Telegram connection: the
92
+ * detail footer must never label a resume trigger as an error.
93
+ */
94
+ export function buildTelegramMessage(payload: NotificationPayload): string {
95
+ // Mask all fields before rendering - defense in depth
96
+ const maskedTitle = maskString(payload.title);
97
+ const maskedMessage = maskString(payload.message);
98
+ const taskTitle = payload.details?.taskTitle;
99
+ const jobId = payload.details?.jobId;
100
+ const ordinal = payload.details?.ordinal as number | undefined;
101
+ const planPath = payload.details?.planPath as string | undefined;
102
+ const projectRoot = payload.details?.projectRoot as string | undefined;
103
+
104
+ const maskedTaskTitle = typeof taskTitle === "string" ? maskString(taskTitle) : undefined;
105
+ const maskedJobId = typeof jobId === "string" ? maskString(jobId) : undefined;
106
+ const maskedProjectRoot = typeof projectRoot === "string" ? maskString(projectRoot) : undefined;
107
+ const maskedPlanPath = typeof planPath === "string" ? maskString(planPath) : undefined;
108
+
109
+ // Get hostname for multi-machine identification
110
+ const hostTag = `[${hostname()}]`;
111
+
112
+ const label = telegramStatusLabel(payload.event);
113
+ const title = `${label} ${maskedTitle} ${hostTag}`;
114
+ const lines = [title];
115
+
116
+ // Add metadata for Codex events
117
+ if (maskedTaskTitle) {
118
+ lines.push("", `Task: ${maskedTaskTitle}`);
119
+ }
120
+ if (maskedProjectRoot) {
121
+ lines.push(`Root: ${maskedProjectRoot}`);
122
+ }
123
+ if (ordinal !== undefined) {
124
+ lines.push(`Ordinal: ${ordinal}`);
125
+ }
126
+ if (maskedPlanPath) {
127
+ lines.push(`Plan: ${maskedPlanPath}`);
128
+ }
129
+
130
+ // Add message content (artifact content flows through message)
131
+ if (maskedMessage) {
132
+ lines.push("", maskedMessage);
133
+ }
134
+
135
+ if (maskedJobId) {
136
+ lines.push(`Job: ${maskedJobId}`);
137
+ }
138
+ // Detail fields: "Error:" only for real failures, "Reason:" for a trigger.
139
+ for (const detail of formatDetailLines(payload.details, payload.event)) {
140
+ lines.push("", `${detail.label}: ${maskString(detail.value)}`);
141
+ }
142
+
143
+ // Final mask pass on the complete rendered string
144
+ return maskString(lines.filter(Boolean).join("\n"));
145
+ }
146
+
57
147
  export class TelegramAdapter extends BaseChannelAdapter {
58
148
  readonly id = "telegram";
59
149
  readonly type = "telegram";
@@ -648,8 +738,12 @@ return this._botUsername;
648
738
  body.parse_mode = cfg.parseMode;
649
739
  }
650
740
 
651
- // Add inline keyboard if enabled and buttons are configured
652
- if (enableInlineKeyboard && (actionButtons?.length ?? 0) > 0) {
741
+ // The keyboard is attached to the final chunk only. The
742
+ // earlier chunks are the continuation of the same
743
+ // question, and a button on every chunk would offer the
744
+ // same action several times.
745
+ const isLastChunk = i === chunks.length - 1;
746
+ if (isLastChunk && enableInlineKeyboard && (actionButtons?.length ?? 0) > 0) {
653
747
  body.reply_markup = this.buildInlineKeyboard(actionButtons);
654
748
  }
655
749
 
@@ -988,57 +1082,7 @@ return this._botUsername;
988
1082
  }
989
1083
 
990
1084
  private formatMessage(payload: NotificationPayload): string {
991
- // Mask all fields before rendering - defense in depth
992
- const maskedTitle = maskString(payload.title);
993
- const maskedMessage = maskString(payload.message);
994
- const taskTitle = payload.details?.taskTitle;
995
- const jobId = payload.details?.jobId;
996
- const errorVal = payload.details?.error;
997
- const ordinal = payload.details?.ordinal as number | undefined;
998
- const planPath = payload.details?.planPath as string | undefined;
999
- const projectRoot = payload.details?.projectRoot as string | undefined;
1000
-
1001
- const maskedTaskTitle = typeof taskTitle === "string" ? maskString(taskTitle) : undefined;
1002
- const maskedJobId = typeof jobId === "string" ? maskString(jobId) : undefined;
1003
- const maskedError = typeof errorVal === "string" ? maskString(errorVal) : undefined;
1004
- const maskedProjectRoot = typeof projectRoot === "string" ? maskString(projectRoot) : undefined;
1005
- const maskedPlanPath = typeof planPath === "string" ? maskString(planPath) : undefined;
1006
-
1007
- // Get hostname for multi-machine identification
1008
- const hostTag = `[${hostname()}]`;
1009
-
1010
- const label = this.getStatusLabel(payload.event);
1011
- const title = `${label} ${maskedTitle} ${hostTag}`;
1012
- const lines = [title];
1013
-
1014
- // Add metadata for Codex events
1015
- if (maskedTaskTitle) {
1016
- lines.push("", `Task: ${maskedTaskTitle}`);
1017
- }
1018
- if (maskedProjectRoot) {
1019
- lines.push(`Root: ${maskedProjectRoot}`);
1020
- }
1021
- if (ordinal !== undefined) {
1022
- lines.push(`Ordinal: ${ordinal}`);
1023
- }
1024
- if (maskedPlanPath) {
1025
- lines.push(`Plan: ${maskedPlanPath}`);
1026
- }
1027
-
1028
- // Add message content (artifact content flows through message)
1029
- if (maskedMessage) {
1030
- lines.push("", maskedMessage);
1031
- }
1032
-
1033
- if (maskedJobId) {
1034
- lines.push(`Job: ${maskedJobId}`);
1035
- }
1036
- if (maskedError) {
1037
- lines.push("", `Error: ${maskedError}`);
1038
- }
1039
-
1040
- // Final mask pass on the complete rendered string
1041
- return maskString(lines.filter(Boolean).join("\n"));
1085
+ return buildTelegramMessage(payload);
1042
1086
  }
1043
1087
 
1044
1088
  /**
@@ -1076,28 +1120,6 @@ return this._botUsername;
1076
1120
  }
1077
1121
 
1078
1122
  private getStatusLabel(event: NotificationPayload["event"]): string {
1079
- // Use ASCII labels per AGENTS.md convention
1080
- // Avoid emoji which renders inconsistently across terminals
1081
- const labels: Record<string, string> = {
1082
- JobStarted: "[START]",
1083
- TaskCompleted: "[OK]",
1084
- TaskFailed: "[FAIL]",
1085
- QuotaPaused: "[PAUSE]",
1086
- ResumeScheduled: "[RESUME]",
1087
- ContextCompacted: "[COMPACT]",
1088
- OutputLimitContinued: "[CONTINUE]",
1089
- E2EFailed: "[TEST]",
1090
- HumanReviewNeeded: "[REVIEW]",
1091
- ReadyForClient: "[DONE]",
1092
- JobCancelled: "[CANCEL]",
1093
- Error: "[ERROR]",
1094
- WaitingForUserInput: "[INPUT]",
1095
- Info: "[INFO]",
1096
- CodexSessionStarted: "[CODEX]",
1097
- CodexPlanDetected: "[PLAN]",
1098
- AssistantResponse: "[TODO]",
1099
- ToolSummary: "[TOOL]",
1100
- };
1101
- return labels[event] ?? "[MSG]";
1123
+ return telegramStatusLabel(event);
1102
1124
  }
1103
1125
  }