@0xmaxma/claude-gateway 2.0.5 → 2.0.7

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 (435) hide show
  1. package/README.md +14 -1
  2. package/dist/agent/builtin-commands.js +5 -5
  3. package/dist/agent/builtin-commands.js.map +1 -1
  4. package/dist/agent/command-help.d.ts +9 -0
  5. package/dist/agent/command-help.d.ts.map +1 -0
  6. package/dist/agent/command-help.js +50 -0
  7. package/dist/agent/command-help.js.map +1 -0
  8. package/dist/agent/dreaming/index.d.ts +6 -3
  9. package/dist/agent/dreaming/index.d.ts.map +1 -1
  10. package/dist/agent/dreaming/index.js +21 -1
  11. package/dist/agent/dreaming/index.js.map +1 -1
  12. package/dist/agent/knowledge/reflection.d.ts +7 -4
  13. package/dist/agent/knowledge/reflection.d.ts.map +1 -1
  14. package/dist/agent/knowledge/reflection.js +19 -1
  15. package/dist/agent/knowledge/reflection.js.map +1 -1
  16. package/dist/agent/runner.d.ts +51 -3
  17. package/dist/agent/runner.d.ts.map +1 -1
  18. package/dist/agent/runner.js +228 -107
  19. package/dist/agent/runner.js.map +1 -1
  20. package/dist/agent/session-compaction-scheduler.d.ts +22 -0
  21. package/dist/agent/session-compaction-scheduler.d.ts.map +1 -0
  22. package/dist/agent/session-compaction-scheduler.js +40 -0
  23. package/dist/agent/session-compaction-scheduler.js.map +1 -0
  24. package/dist/agent/session-confirmations.d.ts +12 -0
  25. package/dist/agent/session-confirmations.d.ts.map +1 -0
  26. package/dist/agent/session-confirmations.js +43 -0
  27. package/dist/agent/session-confirmations.js.map +1 -0
  28. package/dist/agent/session-status.d.ts +7 -0
  29. package/dist/agent/session-status.d.ts.map +1 -0
  30. package/dist/agent/session-status.js +16 -0
  31. package/dist/agent/session-status.js.map +1 -0
  32. package/dist/agent/skill-learning/index.d.ts +5 -1
  33. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  34. package/dist/agent/skill-learning/index.js +23 -1
  35. package/dist/agent/skill-learning/index.js.map +1 -1
  36. package/dist/agent/skill-learning/notifier.d.ts +2 -1
  37. package/dist/agent/skill-learning/notifier.d.ts.map +1 -1
  38. package/dist/agent/skill-learning/notifier.js +1 -0
  39. package/dist/agent/skill-learning/notifier.js.map +1 -1
  40. package/dist/api/apps-router.d.ts.map +1 -1
  41. package/dist/api/apps-router.js +1 -3
  42. package/dist/api/apps-router.js.map +1 -1
  43. package/dist/api/cron-router.d.ts +1 -1
  44. package/dist/api/cron-router.d.ts.map +1 -1
  45. package/dist/api/cron-router.js +4 -4
  46. package/dist/api/cron-router.js.map +1 -1
  47. package/dist/api/dashboard-processes.d.ts +86 -0
  48. package/dist/api/dashboard-processes.d.ts.map +1 -0
  49. package/dist/api/dashboard-processes.js +155 -0
  50. package/dist/api/dashboard-processes.js.map +1 -0
  51. package/dist/api/dashboard-sessions.d.ts +15 -0
  52. package/dist/api/dashboard-sessions.d.ts.map +1 -0
  53. package/dist/api/dashboard-sessions.js +66 -0
  54. package/dist/api/dashboard-sessions.js.map +1 -0
  55. package/dist/api/gateway-router.d.ts +3 -4
  56. package/dist/api/gateway-router.d.ts.map +1 -1
  57. package/dist/api/gateway-router.js +177 -66
  58. package/dist/api/gateway-router.js.map +1 -1
  59. package/dist/api/memory-activity.d.ts +18 -0
  60. package/dist/api/memory-activity.d.ts.map +1 -0
  61. package/dist/api/memory-activity.js +97 -0
  62. package/dist/api/memory-activity.js.map +1 -0
  63. package/dist/api/oauth-connectors-router.d.ts +1 -1
  64. package/dist/api/oauth-connectors-router.d.ts.map +1 -1
  65. package/dist/api/oauth-connectors-router.js +11 -21
  66. package/dist/api/oauth-connectors-router.js.map +1 -1
  67. package/dist/api/router.d.ts +1 -1
  68. package/dist/api/router.d.ts.map +1 -1
  69. package/dist/api/router.js +3 -9
  70. package/dist/api/router.js.map +1 -1
  71. package/dist/api/share-router.d.ts +1 -1
  72. package/dist/api/share-router.d.ts.map +1 -1
  73. package/dist/api/share-router.js +1 -1
  74. package/dist/api/share-router.js.map +1 -1
  75. package/dist/api/slack-webhook-router.js +1 -1
  76. package/dist/api/slack-webhook-router.js.map +1 -1
  77. package/dist/api/voice-router.d.ts +1 -0
  78. package/dist/api/voice-router.d.ts.map +1 -1
  79. package/dist/api/voice-router.js +7 -0
  80. package/dist/api/voice-router.js.map +1 -1
  81. package/dist/apps/agent-container-migration.d.ts +2 -0
  82. package/dist/apps/agent-container-migration.d.ts.map +1 -1
  83. package/dist/apps/agent-container-migration.js +59 -2
  84. package/dist/apps/agent-container-migration.js.map +1 -1
  85. package/dist/apps/agent-manager.d.ts +4 -2
  86. package/dist/apps/agent-manager.d.ts.map +1 -1
  87. package/dist/apps/agent-manager.js +39 -3
  88. package/dist/apps/agent-manager.js.map +1 -1
  89. package/dist/apps/installer.d.ts +4 -3
  90. package/dist/apps/installer.d.ts.map +1 -1
  91. package/dist/apps/installer.js +8 -4
  92. package/dist/apps/installer.js.map +1 -1
  93. package/dist/build-provenance.json +8 -0
  94. package/dist/cli/args.js +1 -1
  95. package/dist/cli/args.js.map +1 -1
  96. package/dist/cli/commands/app.d.ts.map +1 -1
  97. package/dist/cli/commands/app.js +39 -3
  98. package/dist/cli/commands/app.js.map +1 -1
  99. package/dist/cli/commands/doctor.d.ts.map +1 -1
  100. package/dist/cli/commands/doctor.js +6 -2
  101. package/dist/cli/commands/doctor.js.map +1 -1
  102. package/dist/cli/commands/safemode.d.ts +2 -0
  103. package/dist/cli/commands/safemode.d.ts.map +1 -0
  104. package/dist/cli/commands/safemode.js +279 -0
  105. package/dist/cli/commands/safemode.js.map +1 -0
  106. package/dist/cli/dependencies.d.ts +2 -0
  107. package/dist/cli/dependencies.d.ts.map +1 -1
  108. package/dist/cli/dependencies.js +81 -0
  109. package/dist/cli/dependencies.js.map +1 -1
  110. package/dist/cli/index.d.ts.map +1 -1
  111. package/dist/cli/index.js +11 -1
  112. package/dist/cli/index.js.map +1 -1
  113. package/dist/cli/manager.d.ts.map +1 -1
  114. package/dist/cli/manager.js +4 -1
  115. package/dist/cli/manager.js.map +1 -1
  116. package/dist/config/agent-lifecycle.d.ts +26 -0
  117. package/dist/config/agent-lifecycle.d.ts.map +1 -0
  118. package/dist/config/agent-lifecycle.js +63 -0
  119. package/dist/config/agent-lifecycle.js.map +1 -0
  120. package/dist/config/loader.d.ts.map +1 -1
  121. package/dist/config/loader.js +11 -0
  122. package/dist/config/loader.js.map +1 -1
  123. package/dist/config/reload-policy.d.ts +9 -0
  124. package/dist/config/reload-policy.d.ts.map +1 -0
  125. package/dist/config/reload-policy.js +62 -0
  126. package/dist/config/reload-policy.js.map +1 -0
  127. package/dist/config/watcher.d.ts +3 -2
  128. package/dist/config/watcher.d.ts.map +1 -1
  129. package/dist/config/watcher.js +34 -51
  130. package/dist/config/watcher.js.map +1 -1
  131. package/dist/cron/tool-schemas.d.ts +296 -0
  132. package/dist/cron/tool-schemas.d.ts.map +1 -0
  133. package/dist/cron/tool-schemas.js +122 -0
  134. package/dist/cron/tool-schemas.js.map +1 -0
  135. package/dist/index.js +141 -158
  136. package/dist/index.js.map +1 -1
  137. package/dist/orchestration/agent-tool-schemas.js +5 -5
  138. package/dist/orchestration/agent-tool-schemas.js.map +1 -1
  139. package/dist/orchestration/background-work.d.ts +9 -0
  140. package/dist/orchestration/background-work.d.ts.map +1 -0
  141. package/dist/orchestration/background-work.js +49 -0
  142. package/dist/orchestration/background-work.js.map +1 -0
  143. package/dist/orchestration/bridge.d.ts +6 -15
  144. package/dist/orchestration/bridge.d.ts.map +1 -1
  145. package/dist/orchestration/bridge.js +67 -32
  146. package/dist/orchestration/bridge.js.map +1 -1
  147. package/dist/orchestration/capabilities.d.ts.map +1 -1
  148. package/dist/orchestration/capabilities.js +18 -10
  149. package/dist/orchestration/capabilities.js.map +1 -1
  150. package/dist/orchestration/capacity.d.ts +3 -2
  151. package/dist/orchestration/capacity.d.ts.map +1 -1
  152. package/dist/orchestration/capacity.js +7 -0
  153. package/dist/orchestration/capacity.js.map +1 -1
  154. package/dist/orchestration/channel-controls.d.ts.map +1 -1
  155. package/dist/orchestration/channel-controls.js +3 -2
  156. package/dist/orchestration/channel-controls.js.map +1 -1
  157. package/dist/orchestration/cli-skills.d.ts +5 -0
  158. package/dist/orchestration/cli-skills.d.ts.map +1 -1
  159. package/dist/orchestration/compact-measurements.d.ts +21 -0
  160. package/dist/orchestration/compact-measurements.d.ts.map +1 -0
  161. package/dist/orchestration/compact-measurements.js +62 -0
  162. package/dist/orchestration/compact-measurements.js.map +1 -0
  163. package/dist/orchestration/config.d.ts +4 -0
  164. package/dist/orchestration/config.d.ts.map +1 -1
  165. package/dist/orchestration/config.js +1 -1
  166. package/dist/orchestration/config.js.map +1 -1
  167. package/dist/orchestration/container-tool-schemas.d.ts +37 -0
  168. package/dist/orchestration/container-tool-schemas.d.ts.map +1 -0
  169. package/dist/orchestration/container-tool-schemas.js +27 -0
  170. package/dist/orchestration/container-tool-schemas.js.map +1 -0
  171. package/dist/orchestration/container.d.ts.map +1 -1
  172. package/dist/orchestration/container.js +7 -0
  173. package/dist/orchestration/container.js.map +1 -1
  174. package/dist/orchestration/context-delivery.d.ts +32 -0
  175. package/dist/orchestration/context-delivery.d.ts.map +1 -0
  176. package/dist/orchestration/context-delivery.js +101 -0
  177. package/dist/orchestration/context-delivery.js.map +1 -0
  178. package/dist/orchestration/conversation-intake.d.ts +10 -6
  179. package/dist/orchestration/conversation-intake.d.ts.map +1 -1
  180. package/dist/orchestration/conversation-intake.js +22 -8
  181. package/dist/orchestration/conversation-intake.js.map +1 -1
  182. package/dist/orchestration/dashboard-charts.d.ts +32 -0
  183. package/dist/orchestration/dashboard-charts.d.ts.map +1 -0
  184. package/dist/orchestration/dashboard-charts.js +77 -0
  185. package/dist/orchestration/dashboard-charts.js.map +1 -0
  186. package/dist/orchestration/dashboard-reader-worker.js +28 -10
  187. package/dist/orchestration/dashboard-reader-worker.js.map +1 -1
  188. package/dist/orchestration/dashboard-reader.d.ts +1 -1
  189. package/dist/orchestration/dashboard-reader.d.ts.map +1 -1
  190. package/dist/orchestration/dashboard-reader.js +2 -2
  191. package/dist/orchestration/dashboard-reader.js.map +1 -1
  192. package/dist/orchestration/decision-context.d.ts +1 -1
  193. package/dist/orchestration/decision-context.d.ts.map +1 -1
  194. package/dist/orchestration/decision-context.js +3 -3
  195. package/dist/orchestration/decision-context.js.map +1 -1
  196. package/dist/orchestration/gateway-tasks/controller.d.ts +29 -0
  197. package/dist/orchestration/gateway-tasks/controller.d.ts.map +1 -0
  198. package/dist/orchestration/gateway-tasks/controller.js +139 -0
  199. package/dist/orchestration/gateway-tasks/controller.js.map +1 -0
  200. package/dist/orchestration/gateway-tasks/safemode.d.ts +19 -0
  201. package/dist/orchestration/gateway-tasks/safemode.d.ts.map +1 -0
  202. package/dist/orchestration/gateway-tasks/safemode.js +128 -0
  203. package/dist/orchestration/gateway-tasks/safemode.js.map +1 -0
  204. package/dist/orchestration/mutation-recovery.d.ts +3 -2
  205. package/dist/orchestration/mutation-recovery.d.ts.map +1 -1
  206. package/dist/orchestration/mutation-recovery.js +8 -0
  207. package/dist/orchestration/mutation-recovery.js.map +1 -1
  208. package/dist/orchestration/native-compact.d.ts +4 -1
  209. package/dist/orchestration/native-compact.d.ts.map +1 -1
  210. package/dist/orchestration/native-compact.js +6 -2
  211. package/dist/orchestration/native-compact.js.map +1 -1
  212. package/dist/orchestration/process-turn.d.ts +12 -2
  213. package/dist/orchestration/process-turn.d.ts.map +1 -1
  214. package/dist/orchestration/process-turn.js +48 -8
  215. package/dist/orchestration/process-turn.js.map +1 -1
  216. package/dist/orchestration/recovery.d.ts.map +1 -1
  217. package/dist/orchestration/recovery.js +4 -2
  218. package/dist/orchestration/recovery.js.map +1 -1
  219. package/dist/orchestration/runtime.d.ts +23 -1
  220. package/dist/orchestration/runtime.d.ts.map +1 -1
  221. package/dist/orchestration/runtime.js +191 -21
  222. package/dist/orchestration/runtime.js.map +1 -1
  223. package/dist/orchestration/session-compaction.d.ts +59 -0
  224. package/dist/orchestration/session-compaction.d.ts.map +1 -0
  225. package/dist/orchestration/session-compaction.js +212 -0
  226. package/dist/orchestration/session-compaction.js.map +1 -0
  227. package/dist/orchestration/skills.d.ts +2 -0
  228. package/dist/orchestration/skills.d.ts.map +1 -1
  229. package/dist/orchestration/skills.js +4 -3
  230. package/dist/orchestration/skills.js.map +1 -1
  231. package/dist/orchestration/task-controls.d.ts +12 -0
  232. package/dist/orchestration/task-controls.d.ts.map +1 -1
  233. package/dist/orchestration/task-controls.js +3 -1
  234. package/dist/orchestration/task-controls.js.map +1 -1
  235. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  236. package/dist/orchestration/tasks/driver.js +100 -13
  237. package/dist/orchestration/tasks/driver.js.map +1 -1
  238. package/dist/orchestration/tasks/pool.d.ts +2 -0
  239. package/dist/orchestration/tasks/pool.d.ts.map +1 -1
  240. package/dist/orchestration/tasks/pool.js +4 -0
  241. package/dist/orchestration/tasks/pool.js.map +1 -1
  242. package/dist/orchestration/tasks/scheduler.d.ts.map +1 -1
  243. package/dist/orchestration/tasks/scheduler.js +4 -0
  244. package/dist/orchestration/tasks/scheduler.js.map +1 -1
  245. package/dist/orchestration/tasks/service.d.ts +4 -0
  246. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  247. package/dist/orchestration/tasks/service.js +38 -8
  248. package/dist/orchestration/tasks/service.js.map +1 -1
  249. package/dist/orchestration/token-ledger.d.ts +8 -0
  250. package/dist/orchestration/token-ledger.d.ts.map +1 -1
  251. package/dist/orchestration/token-ledger.js +7 -2
  252. package/dist/orchestration/token-ledger.js.map +1 -1
  253. package/dist/orchestration/token-usage.d.ts +3 -0
  254. package/dist/orchestration/token-usage.d.ts.map +1 -1
  255. package/dist/orchestration/token-usage.js +12 -3
  256. package/dist/orchestration/token-usage.js.map +1 -1
  257. package/dist/orchestration/types.d.ts +19 -1
  258. package/dist/orchestration/types.d.ts.map +1 -1
  259. package/dist/orchestration/types.js.map +1 -1
  260. package/dist/orchestration/worker-crons.d.ts +5 -0
  261. package/dist/orchestration/worker-crons.d.ts.map +1 -0
  262. package/dist/orchestration/worker-crons.js +84 -0
  263. package/dist/orchestration/worker-crons.js.map +1 -0
  264. package/dist/orchestration/worker-harness.d.ts +15 -0
  265. package/dist/orchestration/worker-harness.d.ts.map +1 -0
  266. package/dist/orchestration/worker-harness.js +72 -0
  267. package/dist/orchestration/worker-harness.js.map +1 -0
  268. package/dist/safemode/config.d.ts +7 -0
  269. package/dist/safemode/config.d.ts.map +1 -0
  270. package/dist/safemode/config.js +67 -0
  271. package/dist/safemode/config.js.map +1 -0
  272. package/dist/safemode/context.d.ts +7 -0
  273. package/dist/safemode/context.d.ts.map +1 -0
  274. package/dist/safemode/context.js +397 -0
  275. package/dist/safemode/context.js.map +1 -0
  276. package/dist/safemode/external-owners.d.ts +19 -0
  277. package/dist/safemode/external-owners.d.ts.map +1 -0
  278. package/dist/safemode/external-owners.js +229 -0
  279. package/dist/safemode/external-owners.js.map +1 -0
  280. package/dist/safemode/native.d.ts +38 -0
  281. package/dist/safemode/native.d.ts.map +1 -0
  282. package/dist/safemode/native.js +220 -0
  283. package/dist/safemode/native.js.map +1 -0
  284. package/dist/safemode/params.d.ts +10 -0
  285. package/dist/safemode/params.d.ts.map +1 -0
  286. package/dist/safemode/params.js +86 -0
  287. package/dist/safemode/params.js.map +1 -0
  288. package/dist/safemode/provenance.d.ts +45 -0
  289. package/dist/safemode/provenance.d.ts.map +1 -0
  290. package/dist/safemode/provenance.js +153 -0
  291. package/dist/safemode/provenance.js.map +1 -0
  292. package/dist/safemode/runner.d.ts +17 -0
  293. package/dist/safemode/runner.d.ts.map +1 -0
  294. package/dist/safemode/runner.js +398 -0
  295. package/dist/safemode/runner.js.map +1 -0
  296. package/dist/safemode/store.d.ts +56 -0
  297. package/dist/safemode/store.d.ts.map +1 -0
  298. package/dist/safemode/store.js +451 -0
  299. package/dist/safemode/store.js.map +1 -0
  300. package/dist/session/codex-auth.d.ts +37 -0
  301. package/dist/session/codex-auth.d.ts.map +1 -0
  302. package/dist/session/codex-auth.js +266 -0
  303. package/dist/session/codex-auth.js.map +1 -0
  304. package/dist/session/codex-container-runtime.d.ts +15 -0
  305. package/dist/session/codex-container-runtime.d.ts.map +1 -0
  306. package/dist/session/codex-container-runtime.js +85 -0
  307. package/dist/session/codex-container-runtime.js.map +1 -0
  308. package/dist/session/codex-context-defaults.json +5 -0
  309. package/dist/session/codex-context.d.ts +13 -0
  310. package/dist/session/codex-context.d.ts.map +1 -0
  311. package/dist/session/codex-context.js +27 -0
  312. package/dist/session/codex-context.js.map +1 -0
  313. package/dist/session/codex-extension-discovery.d.ts +21 -0
  314. package/dist/session/codex-extension-discovery.d.ts.map +1 -0
  315. package/dist/session/codex-extension-discovery.js +132 -0
  316. package/dist/session/codex-extension-discovery.js.map +1 -0
  317. package/dist/session/codex-native-mcp-client.d.ts +37 -0
  318. package/dist/session/codex-native-mcp-client.d.ts.map +1 -0
  319. package/dist/session/codex-native-mcp-client.js +164 -0
  320. package/dist/session/codex-native-mcp-client.js.map +1 -0
  321. package/dist/session/codex-policy.d.ts +6 -0
  322. package/dist/session/codex-policy.d.ts.map +1 -0
  323. package/dist/session/codex-policy.js +17 -0
  324. package/dist/session/codex-policy.js.map +1 -0
  325. package/dist/session/codex-process.d.ts +114 -0
  326. package/dist/session/codex-process.d.ts.map +1 -0
  327. package/dist/session/codex-process.js +759 -0
  328. package/dist/session/codex-process.js.map +1 -0
  329. package/dist/session/codex-runtime.d.ts +20 -0
  330. package/dist/session/codex-runtime.d.ts.map +1 -0
  331. package/dist/session/codex-runtime.js +182 -0
  332. package/dist/session/codex-runtime.js.map +1 -0
  333. package/dist/session/codex-tool-capture.d.ts +35 -0
  334. package/dist/session/codex-tool-capture.d.ts.map +1 -0
  335. package/dist/session/codex-tool-capture.js +178 -0
  336. package/dist/session/codex-tool-capture.js.map +1 -0
  337. package/dist/session/container-connectors.d.ts +10 -0
  338. package/dist/session/container-connectors.d.ts.map +1 -0
  339. package/dist/session/container-connectors.js +41 -0
  340. package/dist/session/container-connectors.js.map +1 -0
  341. package/dist/session/container-extensions.d.ts +4 -0
  342. package/dist/session/container-extensions.d.ts.map +1 -0
  343. package/dist/session/container-extensions.js +45 -0
  344. package/dist/session/container-extensions.js.map +1 -0
  345. package/dist/session/managed-connectors.d.ts +16 -0
  346. package/dist/session/managed-connectors.d.ts.map +1 -0
  347. package/dist/session/managed-connectors.js +25 -0
  348. package/dist/session/managed-connectors.js.map +1 -0
  349. package/dist/session/process-diagnostics.d.ts +14 -0
  350. package/dist/session/process-diagnostics.d.ts.map +1 -0
  351. package/dist/session/process-diagnostics.js +39 -0
  352. package/dist/session/process-diagnostics.js.map +1 -0
  353. package/dist/session/process.d.ts +4 -0
  354. package/dist/session/process.d.ts.map +1 -1
  355. package/dist/session/process.js +21 -16
  356. package/dist/session/process.js.map +1 -1
  357. package/dist/session/request-tool-capture.d.ts +1 -1
  358. package/dist/session/request-tool-capture.d.ts.map +1 -1
  359. package/dist/session/runtime-profile.d.ts +8 -0
  360. package/dist/session/runtime-profile.d.ts.map +1 -1
  361. package/dist/session/runtime-profile.js +3 -2
  362. package/dist/session/runtime-profile.js.map +1 -1
  363. package/dist/session/worker-environment.d.ts +5 -0
  364. package/dist/session/worker-environment.d.ts.map +1 -0
  365. package/dist/session/worker-environment.js +27 -0
  366. package/dist/session/worker-environment.js.map +1 -0
  367. package/dist/session/worker-extensions.d.ts +20 -0
  368. package/dist/session/worker-extensions.d.ts.map +1 -0
  369. package/dist/session/worker-extensions.js +322 -0
  370. package/dist/session/worker-extensions.js.map +1 -0
  371. package/dist/skills/loader.d.ts +2 -0
  372. package/dist/skills/loader.d.ts.map +1 -1
  373. package/dist/skills/loader.js.map +1 -1
  374. package/dist/types.d.ts +33 -0
  375. package/dist/types.d.ts.map +1 -1
  376. package/dist/ui/codex-context.d.ts +4 -0
  377. package/dist/ui/codex-context.d.ts.map +1 -0
  378. package/dist/ui/codex-context.js +15 -0
  379. package/dist/ui/codex-context.js.map +1 -0
  380. package/dist/ui/dashboard-charts.d.ts +3 -0
  381. package/dist/ui/dashboard-charts.d.ts.map +1 -0
  382. package/dist/ui/dashboard-charts.js +130 -0
  383. package/dist/ui/dashboard-charts.js.map +1 -0
  384. package/dist/ui/dashboard-client.d.ts.map +1 -1
  385. package/dist/ui/dashboard-client.js +20 -21
  386. package/dist/ui/dashboard-client.js.map +1 -1
  387. package/dist/ui/dashboard-controls.d.ts +4 -0
  388. package/dist/ui/dashboard-controls.d.ts.map +1 -0
  389. package/dist/ui/dashboard-controls.js +27 -0
  390. package/dist/ui/dashboard-controls.js.map +1 -0
  391. package/dist/ui/dashboard-presentation.d.ts +4 -1
  392. package/dist/ui/dashboard-presentation.d.ts.map +1 -1
  393. package/dist/ui/dashboard-presentation.js +13 -7
  394. package/dist/ui/dashboard-presentation.js.map +1 -1
  395. package/dist/ui/dashboard-range.d.ts +3 -3
  396. package/dist/ui/dashboard-range.d.ts.map +1 -1
  397. package/dist/ui/dashboard-range.js +21 -5
  398. package/dist/ui/dashboard-range.js.map +1 -1
  399. package/dist/ui/dashboard-theme.d.ts +3 -1
  400. package/dist/ui/dashboard-theme.d.ts.map +1 -1
  401. package/dist/ui/dashboard-theme.js +80 -3
  402. package/dist/ui/dashboard-theme.js.map +1 -1
  403. package/dist/ui/memory-activity.d.ts +4 -0
  404. package/dist/ui/memory-activity.d.ts.map +1 -0
  405. package/dist/ui/memory-activity.js +115 -0
  406. package/dist/ui/memory-activity.js.map +1 -0
  407. package/dist/ui/token-report-client.d.ts +1 -1
  408. package/dist/ui/token-report-client.d.ts.map +1 -1
  409. package/dist/ui/token-report-client.js +1 -1
  410. package/dist/ui/token-report.d.ts +4 -0
  411. package/dist/ui/token-report.d.ts.map +1 -1
  412. package/dist/ui/token-report.js +38 -23
  413. package/dist/ui/token-report.js.map +1 -1
  414. package/dist/ui/web-ui.d.ts +1 -1
  415. package/dist/ui/web-ui.d.ts.map +1 -1
  416. package/dist/ui/web-ui.js +68 -370
  417. package/dist/ui/web-ui.js.map +1 -1
  418. package/mcp/capability-catalog.ts +2 -0
  419. package/mcp/extension-catalog.ts +18 -0
  420. package/mcp/lazy-connector.ts +4 -2
  421. package/mcp/lazy-tools.test.ts +29 -0
  422. package/mcp/modules.ts +1 -0
  423. package/mcp/server.ts +2 -2
  424. package/mcp/tools/cron/module.ts +8 -114
  425. package/mcp/tools/discord/commands.ts +4 -1
  426. package/mcp/tools/safemode/module.test.ts +29 -0
  427. package/mcp/tools/telegram/receiver-server.ts +33 -39
  428. package/mcp/tools/telegram/session-browser.ts +10 -0
  429. package/mcp/tools/telegram/task-detail.ts +2 -1
  430. package/package.json +3 -2
  431. package/scripts/orchestration/audit-codex-context.cjs +83 -0
  432. package/scripts/orchestration/benchmark-worker-harnesses.cjs +112 -0
  433. package/scripts/orchestration/smoke-codex-extensions.ts +29 -0
  434. package/scripts/orchestration/smoke-codex-worker.cjs +166 -0
  435. package/scripts/orchestration/smoke-safemode-codex.cjs +66 -0
@@ -0,0 +1,32 @@
1
+ import { OrchestrationStore } from './store';
2
+ export interface ContextDeliveryScope {
3
+ conversationId: string;
4
+ principalId: string;
5
+ bindingId: string;
6
+ cliSessionId: string;
7
+ resume: boolean;
8
+ }
9
+ export interface ContextDeliveryPlan {
10
+ readonly fresh: boolean;
11
+ /** Select complete changed/new values and stage their fingerprints. */
12
+ select<T>(bucket: string, items: T[], key: (value: T) => string): T[];
13
+ includes(bucket: string, key: string): boolean;
14
+ mark(bucket: string, key: string, value: unknown): void;
15
+ /** Canonical reference whose image bytes were supplied to this CLI context. */
16
+ imageReference(ref: string): string | undefined;
17
+ /** Stage an image reference; return the prior canonical ref if its bytes are known. */
18
+ rememberImage(ref: string, digest: string): string | undefined;
19
+ /** Call only after successful, noninterrupted CLI completion. False means stale. */
20
+ commit(): boolean;
21
+ /** A compact boundary forgets delivery knowledge, never canonical history. */
22
+ invalidate(): void;
23
+ }
24
+ /** Durable knowledge of what this CLI context has seen; contains no prompt payloads. */
25
+ export declare class ContextDelivery {
26
+ private readonly store;
27
+ constructor(store: OrchestrationStore);
28
+ /** A CLI transcript can serve several channel conversations in one session. */
29
+ invalidateConversation(conversationId: string): void;
30
+ begin(scope: ContextDeliveryScope): ContextDeliveryPlan;
31
+ }
32
+ //# sourceMappingURL=context-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-delivery.d.ts","sourceRoot":"","sources":["../../src/orchestration/context-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAG1D,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,+EAA+E;IAC/E,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,uFAAuF;IACvF,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,oFAAoF;IACpF,MAAM,IAAI,OAAO,CAAC;IAClB,8EAA8E;IAC9E,UAAU,IAAI,IAAI,CAAC;CACpB;AAED,wFAAwF;AACxF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IAatD,+EAA+E;IAC/E,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAYpD,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,mBAAmB;CA+DxD"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextDelivery = void 0;
4
+ const store_1 = require("./store");
5
+ const types_1 = require("./types");
6
+ /** Durable knowledge of what this CLI context has seen; contains no prompt payloads. */
7
+ class ContextDelivery {
8
+ constructor(store) {
9
+ this.store = store;
10
+ store.run(`CREATE TABLE IF NOT EXISTS context_delivery(
11
+ conversation_id TEXT NOT NULL REFERENCES conversations(id),
12
+ principal_id TEXT NOT NULL,
13
+ binding_id TEXT NOT NULL REFERENCES conversation_bindings(id),
14
+ cli_session_id TEXT NOT NULL,
15
+ revision INTEGER NOT NULL,
16
+ fingerprints_json TEXT NOT NULL,
17
+ PRIMARY KEY(conversation_id,principal_id,binding_id))`);
18
+ store.run(`CREATE TABLE IF NOT EXISTS context_delivery_generations(
19
+ conversation_id TEXT PRIMARY KEY REFERENCES conversations(id),generation INTEGER NOT NULL)`);
20
+ }
21
+ /** A CLI transcript can serve several channel conversations in one session. */
22
+ invalidateConversation(conversationId) {
23
+ this.store.transaction(() => {
24
+ const conversations = this.store.all(`SELECT id FROM conversations WHERE agent_session_id=
25
+ (SELECT agent_session_id FROM conversations WHERE id=?)`, conversationId);
26
+ for (const row of conversations) {
27
+ this.store.run(`INSERT INTO context_delivery_generations VALUES(?,1)
28
+ ON CONFLICT(conversation_id) DO UPDATE SET generation=generation+1`, row.id);
29
+ this.store.run("UPDATE context_delivery SET revision=revision+1,fingerprints_json='[]' WHERE conversation_id=?", row.id);
30
+ }
31
+ });
32
+ }
33
+ begin(scope) {
34
+ const { conversationId, principalId, bindingId, cliSessionId, resume } = scope;
35
+ const store = this.store;
36
+ store.assertMember(conversationId, principalId);
37
+ if (!store.get('SELECT id FROM conversation_bindings WHERE id=? AND conversation_id=?', bindingId, conversationId))
38
+ throw new types_1.OrchestrationError('ACCESS_DENIED');
39
+ if (!cliSessionId)
40
+ throw new types_1.OrchestrationError('INVALID_INPUT');
41
+ const ids = [conversationId, principalId, bindingId];
42
+ const row = store.get('SELECT * FROM context_delivery WHERE conversation_id=? AND principal_id=? AND binding_id=?', ...ids);
43
+ const revision = row ? Number(row.revision) : 0;
44
+ const generation = Number(store.get('SELECT generation FROM context_delivery_generations WHERE conversation_id=?', conversationId)?.generation ?? 0);
45
+ const fresh = !resume || row?.cli_session_id !== cliSessionId || row.fingerprints_json === '[]';
46
+ // Existing installations have no checkpoint: replay once, then remember only
47
+ // the data delivered by the successful turn. A failed bootstrap writes nothing.
48
+ const hashes = new Map(resume && row?.cli_session_id === cliSessionId
49
+ ? JSON.parse(String(row.fingerprints_json)) : []);
50
+ const entryKey = (bucket, key) => JSON.stringify([bucket, key]);
51
+ let closed = false;
52
+ return {
53
+ fresh,
54
+ select(bucket, items, key) {
55
+ return items.filter(value => {
56
+ const id = entryKey(bucket, key(value)), hash = (0, store_1.payloadHash)(value);
57
+ if (hashes.get(id) === hash)
58
+ return false;
59
+ hashes.set(id, hash);
60
+ return true;
61
+ });
62
+ },
63
+ includes: (bucket, key) => hashes.has(entryKey(bucket, key)),
64
+ mark: (bucket, key, value) => { hashes.set(entryKey(bucket, key), (0, store_1.payloadHash)(value)); },
65
+ imageReference: ref => hashes.get(entryKey('image-ref', ref)),
66
+ rememberImage(ref, digest) {
67
+ const prior = hashes.get(entryKey('image-digest-ref', digest));
68
+ const canonical = prior ?? ref;
69
+ hashes.set(entryKey('image-digest-ref', digest), canonical);
70
+ hashes.set(entryKey('image-ref', ref), canonical);
71
+ return prior;
72
+ },
73
+ commit() {
74
+ if (closed)
75
+ return false;
76
+ closed = true;
77
+ return store.transaction(() => {
78
+ if (Number(store.get('SELECT generation FROM context_delivery_generations WHERE conversation_id=?', conversationId)?.generation ?? 0) !== generation)
79
+ return false;
80
+ const serialized = JSON.stringify([...hashes]);
81
+ const result = row
82
+ ? store.run(`UPDATE context_delivery SET cli_session_id=?,revision=revision+1,fingerprints_json=?
83
+ WHERE conversation_id=? AND principal_id=? AND binding_id=? AND revision=?`, cliSessionId, serialized, ...ids, revision)
84
+ : store.run('INSERT OR IGNORE INTO context_delivery VALUES(?,?,?,?,1,?)', ...ids, cliSessionId, serialized);
85
+ return Number(result.changes) === 1;
86
+ });
87
+ },
88
+ invalidate() {
89
+ closed = true;
90
+ // Keep a revision tombstone even if no successful turn has committed yet;
91
+ // otherwise an older bootstrap plan could resurrect pre-compact knowledge.
92
+ store.run(`INSERT INTO context_delivery VALUES(?,?,?,?,1,'[]')
93
+ ON CONFLICT(conversation_id,principal_id,binding_id) DO UPDATE SET
94
+ revision=context_delivery.revision+1,fingerprints_json='[]'`, ...ids, cliSessionId);
95
+ hashes.clear();
96
+ },
97
+ };
98
+ }
99
+ }
100
+ exports.ContextDelivery = ContextDelivery;
101
+ //# sourceMappingURL=context-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-delivery.js","sourceRoot":"","sources":["../../src/orchestration/context-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { OrchestrationStore } from './store';
2
2
  import { CommandContext } from './types';
3
3
  export interface IntakeChoice {
4
- mode: 'ready' | 'wait' | 'update';
4
+ mode: 'ready' | 'wait' | 'update' | 'resolve';
5
+ resolution?: string;
5
6
  acknowledgement?: string;
6
7
  preparation?: string;
7
8
  clarification?: string;
8
9
  task_id?: string;
9
10
  }
10
- export declare const INTAKE_OVERLAY = "Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.\nBefore any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.\nready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed to the user and speech is attempted when enabled; it is not a private classification, instruction to yourself, or reasoning field. Do not add a waiting period. A successful acknowledgement permits dispatch even when audio is unavailable. If a task tool fails, explain the failure and never claim work started without a successful receipt.\nwait: the user is supplying materials without an action, promises an attachment that has not arrived, or says the instruction will follow. Inspect available images now. Preserve useful facts in preparation, clearly distinguishing observed contents from instructions. Supply one short clarification to ask only if no further input arrives for the configured intake wait interval. Do not speculate about unavailable link contents. End this turn without user-facing text; the gateway owns the waiting timer. Each new item will be read as it arrives.\nupdate: the user changes or supplements a specific existing task. Supply its exact task_id and acknowledge the change; use task_update/task_answer, not an independent duplicate. If the target is ambiguous, ask a precise question instead of guessing.\nNever create work merely to acknowledge material. A complete instruction arriving after materials is ready now; do not request another waiting interval. Preserve all unchanged requirements and refer to the original input/attachment IDs. Urgent stop or prohibition may call task_cancel before acknowledgement; do not delay fencing unsafe work for speech playback.";
11
+ export declare const INTAKE_OVERLAY = "Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.\nPending deferredDispatch means an earlier authorized task command did not commit because newer input arrived. Reconcile it with the latest user messages now: dispatch the still-authorized work (including queued continuations), or use mode=resolve with a concrete resolution explaining cancellation, replacement, or why no work remains. After committing the corresponding work, call mode=resolve with its task_id and a resolution explaining how it fulfills the pending request. Unrelated task receipts do not resolve it. A casual reply or acknowledgement does not resolve it. NEW_INPUT_PENDING applies only to that earlier turn, not a permanent execution outage. Never blindly replay a deferred command against changed instructions.\nBefore any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.\nready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed to the user and speech is attempted when enabled; it is not a private classification, instruction to yourself, or reasoning field. Do not add a waiting period. A successful acknowledgement permits dispatch even when audio is unavailable. If a task tool fails, explain the failure and never claim work started without a successful receipt.\nwait: the user is supplying materials without an action, promises an attachment that has not arrived, or says the instruction will follow. Inspect available images now. Preserve useful facts in preparation, clearly distinguishing observed contents from instructions. Supply one short clarification to ask only if no further input arrives for the configured intake wait interval. Do not speculate about unavailable link contents. End this turn without user-facing text; the gateway owns the waiting timer. Each new item will be read as it arrives.\nupdate: the user changes or supplements a specific existing task. Supply its exact task_id and acknowledge the change; use task_update/task_answer, not an independent duplicate. If the target is ambiguous, ask a precise question instead of guessing.\nNever create work merely to acknowledge material. A complete instruction arriving after materials is ready now; do not request another waiting interval. Preserve all unchanged requirements and refer to the original input/attachment IDs. Urgent stop or prohibition may call task_cancel before acknowledgement; do not delay fencing unsafe work for speech playback.";
11
12
  /** Durable preparation is scoped by conversation AND authenticated principal.
12
13
  * Source inputs remain canonical; this cache only supplements their full contents. */
13
14
  export declare class ConversationIntake {
@@ -15,16 +16,19 @@ export declare class ConversationIntake {
15
16
  constructor(store: OrchestrationStore);
16
17
  context(conversationId: string, principalId: string, bindingId?: string): any;
17
18
  touch(inputId: string): void;
18
- /** A direct answer can consume preparation from an older decision. Never
19
- * discard newer material or another binding's pending context. */
20
- consume(inputId: string): void;
19
+ /** Persist interrupted admission without replaying an uncommitted command. */
20
+ deferDispatch(inputId: string): void;
21
+ /** Direct replies consume materials, but not unresolved deferred work. */
22
+ consume(inputId: string, dispatchResolved?: boolean): void;
21
23
  choose(context: CommandContext, choice: IntakeChoice): {
24
+ deferredDispatch?: boolean | undefined;
25
+ resolution: string;
22
26
  acknowledgement: string;
23
27
  clarification: string;
24
28
  preparation: string;
25
29
  inputIds: string[];
26
30
  preparedInputSeq: string | number | null;
27
- mode: "ready" | "wait" | "update";
31
+ mode: "ready" | "wait" | "update" | "resolve";
28
32
  task_id?: string;
29
33
  };
30
34
  due(waitMs?: number, now?: number): import("./store").Row[];
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-intake.d.ts","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,cAAc,ioEAKgV,CAAC;AAE5W;sFACsF;AACtF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IAQ7C,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAMvE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B;sEACkE;IAClE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY;;;;;;cA7C9C,OAAO,GAAG,MAAM,GAAG,QAAQ;kBAIvB,MAAM;;IAqEhB,GAAG,CAAC,MAAM,SAAO,EAAE,GAAG,SAAa;CAUpC"}
1
+ {"version":3,"file":"conversation-intake.d.ts","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,cAAc,81FAMgV,CAAC;AAE5W;sFACsF;AACtF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IAQ7C,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAMvE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B,8EAA8E;IAC9E,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpC,0EAA0E;IAC1E,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,IAAI;IAMxD,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY;;;;;;;;cArD9C,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS;kBAKnC,MAAM;;IAkFhB,GAAG,CAAC,MAAM,SAAO,EAAE,GAAG,SAAa;CAUpC"}
@@ -4,6 +4,7 @@ exports.ConversationIntake = exports.INTAKE_OVERLAY = void 0;
4
4
  const store_1 = require("./store");
5
5
  const types_1 = require("./types");
6
6
  exports.INTAKE_OVERLAY = `Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.
7
+ Pending deferredDispatch means an earlier authorized task command did not commit because newer input arrived. Reconcile it with the latest user messages now: dispatch the still-authorized work (including queued continuations), or use mode=resolve with a concrete resolution explaining cancellation, replacement, or why no work remains. After committing the corresponding work, call mode=resolve with its task_id and a resolution explaining how it fulfills the pending request. Unrelated task receipts do not resolve it. A casual reply or acknowledgement does not resolve it. NEW_INPUT_PENDING applies only to that earlier turn, not a permanent execution outage. Never blindly replay a deferred command against changed instructions.
7
8
  Before any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.
8
9
  ready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed to the user and speech is attempted when enabled; it is not a private classification, instruction to yourself, or reasoning field. Do not add a waiting period. A successful acknowledgement permits dispatch even when audio is unavailable. If a task tool fails, explain the failure and never claim work started without a successful receipt.
9
10
  wait: the user is supplying materials without an action, promises an attachment that has not arrived, or says the instruction will follow. Inspect available images now. Preserve useful facts in preparation, clearly distinguishing observed contents from instructions. Supply one short clarification to ask only if no further input arrives for the configured intake wait interval. Do not speculate about unavailable link contents. End this turn without user-facing text; the gateway owns the waiting timer. Each new item will be read as it arrives.
@@ -35,14 +36,21 @@ class ConversationIntake {
35
36
  this.store.run(`UPDATE conversation_intake SET latest_input_seq=?,last_received_at=?
36
37
  WHERE conversation_id=? AND principal_id=? AND binding_id=? AND latest_input_seq<?`, input.input_seq, input.created_at, input.conversation_id, input.principal_id, input.binding_id, input.input_seq);
37
38
  }
38
- /** A direct answer can consume preparation from an older decision. Never
39
- * discard newer material or another binding's pending context. */
40
- consume(inputId) {
39
+ /** Persist interrupted admission without replaying an uncommitted command. */
40
+ deferDispatch(inputId) {
41
+ const input = this.store.get('SELECT * FROM conversation_inputs WHERE id=?', inputId);
42
+ if (!input)
43
+ throw new types_1.OrchestrationError('INPUT_NOT_FOUND');
44
+ this.store.run(`UPDATE conversation_intake SET data_json=json_set(data_json,'$.deferredDispatch',json('true'))
45
+ WHERE conversation_id=? AND principal_id=? AND binding_id=?`, input.conversation_id, input.principal_id, input.binding_id);
46
+ }
47
+ /** Direct replies consume materials, but not unresolved deferred work. */
48
+ consume(inputId, dispatchResolved = false) {
41
49
  const input = this.store.get('SELECT * FROM conversation_inputs WHERE id=?', inputId);
42
50
  if (!input)
43
51
  throw new types_1.OrchestrationError('INPUT_NOT_FOUND');
44
52
  this.store.run(`DELETE FROM conversation_intake WHERE conversation_id=? AND principal_id=?
45
- AND binding_id=? AND latest_input_seq<=?`, input.conversation_id, input.principal_id, input.binding_id, input.input_seq);
53
+ AND binding_id=? AND latest_input_seq<=? AND (? OR COALESCE(json_extract(data_json,'$.deferredDispatch'),0)=0)`, input.conversation_id, input.principal_id, input.binding_id, input.input_seq, dispatchResolved ? 1 : 0);
46
54
  }
47
55
  choose(context, choice) {
48
56
  this.store.assertMember(context.conversationId, context.principalId);
@@ -50,11 +58,11 @@ class ConversationIntake {
50
58
  const input = this.store.get('SELECT * FROM conversation_inputs WHERE id=? AND conversation_id=? AND principal_id=?', context.inputId, context.conversationId, context.principalId);
51
59
  if (!decision || !input)
52
60
  throw new types_1.OrchestrationError('STALE_DECISION');
53
- if (!['ready', 'wait', 'update'].includes(choice.mode))
61
+ if (!['ready', 'wait', 'update', 'resolve'].includes(choice.mode))
54
62
  throw new types_1.OrchestrationError('INVALID_INPUT');
55
- const acknowledgement = choice.mode !== 'wait' ? (0, store_1.boundedText)(choice.acknowledgement ?? '', 600) : '';
63
+ const acknowledgement = choice.mode !== 'wait' && choice.mode !== 'resolve' ? (0, store_1.boundedText)(choice.acknowledgement ?? '', 600) : '';
56
64
  const clarification = choice.mode === 'wait' ? (0, store_1.boundedText)(choice.clarification ?? '', 600) : '';
57
- if ((choice.mode !== 'wait' && !acknowledgement.trim()) || (choice.mode === 'wait' && !clarification.trim()))
65
+ if ((choice.mode !== 'wait' && choice.mode !== 'resolve' && !acknowledgement.trim()) || (choice.mode === 'wait' && !clarification.trim()))
58
66
  throw new types_1.OrchestrationError('INTAKE_MESSAGE_REQUIRED');
59
67
  const preparation = choice.preparation?.trim() ? (0, store_1.boundedText)(choice.preparation, 12000) : '';
60
68
  if (choice.mode === 'update') {
@@ -69,7 +77,13 @@ class ConversationIntake {
69
77
  const inputIds = [...new Set([...(previous?.inputIds ?? []), context.inputId])];
70
78
  if (inputIds.length > 100)
71
79
  throw new types_1.OrchestrationError('INTAKE_TOO_MANY_INPUTS');
72
- const data = { ...choice, acknowledgement, clarification, preparation, inputIds, preparedInputSeq: input.input_seq };
80
+ const resolution = choice.mode === 'resolve' ? (0, store_1.boundedText)(choice.resolution ?? '', 2000).trim() : '';
81
+ if (choice.mode === 'resolve' && (!resolution || !previous?.deferredDispatch))
82
+ throw new types_1.OrchestrationError('INVALID_INPUT');
83
+ if (choice.mode === 'resolve' && choice.task_id && !this.store.get("SELECT action_id FROM task_commands WHERE conversation_id=? AND principal_id=? AND decision_id=? AND task_id=? AND command_type IN ('spawn','update','answer') LIMIT 1", context.conversationId, context.principalId, context.decisionId, choice.task_id))
84
+ throw new types_1.OrchestrationError('INTAKE_RESOLUTION_UNCOMMITTED');
85
+ const data = { ...choice, resolution, acknowledgement, clarification, preparation, inputIds, preparedInputSeq: input.input_seq,
86
+ ...(previous?.deferredDispatch ? { deferredDispatch: true } : {}) };
73
87
  this.store.run(`INSERT INTO conversation_intake (conversation_id,principal_id,binding_id,mode,data_json,
74
88
  latest_input_seq,last_received_at,clarified_seq,decision_id) VALUES(?,?,?,?,?,?,?,?,?)
75
89
  ON CONFLICT(conversation_id,principal_id) DO UPDATE SET binding_id=excluded.binding_id,mode=excluded.mode,data_json=excluded.data_json,
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-intake.js","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-intake.js","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { DatabaseSync } from 'node:sqlite';
2
+ /** Aggregate projected measurements in the isolated reader, never transcripts on the event loop. */
3
+ export declare function readDashboardCharts(db: DatabaseSync, scope: string, timezone: string, now: number): {
4
+ reuseComparison: {
5
+ today: {
6
+ fresh: number;
7
+ write: number;
8
+ read: number;
9
+ measuredTurns: number;
10
+ missingTurns: number;
11
+ };
12
+ yesterday: {
13
+ fresh: number;
14
+ write: number;
15
+ read: number;
16
+ measuredTurns: number;
17
+ missingTurns: number;
18
+ };
19
+ };
20
+ buckets: any[];
21
+ models: any[];
22
+ agent: number;
23
+ worker: number;
24
+ reuse: {
25
+ fresh: number;
26
+ write: number;
27
+ read: number;
28
+ measuredTurns: number;
29
+ missingTurns: number;
30
+ };
31
+ };
32
+ //# sourceMappingURL=dashboard-charts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-charts.d.ts","sourceRoot":"","sources":["../../src/orchestration/dashboard-charts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,oGAAoG;AACpG,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;aAMJ,GAAG,EAAE;YAAgB,GAAG,EAAE;;;;;;;;;;EAoDvH"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readDashboardCharts = readDashboardCharts;
4
+ const dashboard_range_1 = require("../ui/dashboard-range");
5
+ /** Aggregate projected measurements in the isolated reader, never transcripts on the event loop. */
6
+ function readDashboardCharts(db, scope, timezone, now) {
7
+ const since = (0, dashboard_range_1.dashboardSince)(scope, now, timezone);
8
+ const today = (0, dashboard_range_1.dashboardSince)('24h', now, timezone);
9
+ const yesterday = (0, dashboard_range_1.dashboardSince)('24h', today - 1, timezone);
10
+ const dayReuse = () => ({ fresh: 0, write: 0, read: 0, measuredTurns: 0, missingTurns: 0 });
11
+ const exists = (name) => !!db.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name=?").get(name);
12
+ const empty = { reuseComparison: { today: dayReuse(), yesterday: dayReuse() }, buckets: [], models: [], agent: 0, worker: 0,
13
+ reuse: { fresh: 0, write: 0, read: 0, measuredTurns: 0, missingTurns: 0 } };
14
+ if (!exists('token_turns'))
15
+ return empty;
16
+ // Older ledgers may have only part of the lightweight projection: fall back per row.
17
+ const projected = exists('token_turn_metrics');
18
+ const payload = projected ? 'COALESCE(m.payload_json,t.payload_json)' : 't.payload_json';
19
+ const join = projected ? 'LEFT JOIN token_turn_metrics m ON m.id=t.id' : '';
20
+ const clock = new Intl.DateTimeFormat('en-CA', { timeZone: timezone, year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', hourCycle: 'h23' });
21
+ db.function('dashboard_chart_bucket', (at) => {
22
+ const parts = clock.formatToParts(Number(at));
23
+ const part = (type) => parts.find(p => p.type === type).value;
24
+ return scope === '24h' ? part('hour') : part('year') + '-' + part('month') + '-' + part('day');
25
+ });
26
+ const rows = db.prepare(`WITH turns AS (
27
+ SELECT t.role, t.started_at>=? in_period, CASE WHEN t.started_at>=? THEN 1 WHEN t.started_at>=? THEN 0 ELSE -1 END comparison_day, dashboard_chart_bucket(t.started_at) bucket,
28
+ json_extract(${payload},'$.model') model, json_extract(${payload},'$.usage') usage
29
+ FROM token_turns t ${join} WHERE t.started_at>=? AND t.started_at<=?
30
+ ), measured AS (
31
+ SELECT *, json_extract(usage,'$.totalTokens') total,
32
+ json_extract(usage,'$.inputTokens') fresh,
33
+ json_extract(usage,'$.cacheCreationTokens') cache_write,
34
+ json_extract(usage,'$.cacheReadTokens') cache_read FROM turns
35
+ ) SELECT role,bucket,model,in_period,comparison_day,SUM(total) tokens,
36
+ SUM(CASE WHEN fresh>=0 AND cache_write>=0 AND cache_read>=0 THEN fresh ELSE 0 END) fresh,
37
+ SUM(CASE WHEN fresh>=0 AND cache_write>=0 AND cache_read>=0 THEN cache_write ELSE 0 END) cache_write,
38
+ SUM(CASE WHEN fresh>=0 AND cache_write>=0 AND cache_read>=0 THEN cache_read ELSE 0 END) cache_read,
39
+ SUM(CASE WHEN fresh>=0 AND cache_write>=0 AND cache_read>=0 THEN 1 ELSE 0 END) measured,
40
+ SUM(CASE WHEN fresh>=0 AND cache_write>=0 AND cache_read>=0 THEN 0 ELSE 1 END) missing
41
+ FROM measured GROUP BY role,bucket,model,in_period,comparison_day ORDER BY bucket`).all(since, today, yesterday, Math.min(since, yesterday), now);
42
+ const buckets = new Map();
43
+ const models = new Map();
44
+ for (const row of rows) {
45
+ if (row.role !== 'agent' && row.role !== 'worker')
46
+ continue;
47
+ if (row.comparison_day === 0 || row.comparison_day === 1) {
48
+ const day = empty.reuseComparison[row.comparison_day === 1 ? 'today' : 'yesterday'];
49
+ day.fresh += Number(row.fresh);
50
+ day.write += Number(row.cache_write);
51
+ day.read += Number(row.cache_read);
52
+ day.measuredTurns += Number(row.measured);
53
+ day.missingTurns += Number(row.missing);
54
+ }
55
+ if (!row.in_period)
56
+ continue;
57
+ const key = String(row.bucket);
58
+ const bucket = buckets.get(key) ?? { key, agent: 0, worker: 0, fresh: 0, write: 0, read: 0 };
59
+ const tokens = Number(row.tokens ?? 0);
60
+ bucket[row.role] += tokens;
61
+ bucket.fresh += Number(row.fresh);
62
+ bucket.write += Number(row.cache_write);
63
+ bucket.read += Number(row.cache_read);
64
+ buckets.set(key, bucket);
65
+ empty[row.role] += tokens;
66
+ const model = typeof row.model === 'string' && row.model ? row.model : 'Unspecified model';
67
+ if (tokens > 0)
68
+ models.set(model, (models.get(model) ?? 0) + tokens);
69
+ empty.reuse.fresh += Number(row.fresh);
70
+ empty.reuse.write += Number(row.cache_write);
71
+ empty.reuse.read += Number(row.cache_read);
72
+ empty.reuse.measuredTurns += Number(row.measured);
73
+ empty.reuse.missingTurns += Number(row.missing);
74
+ }
75
+ return { ...empty, buckets: [...buckets.values()], models: [...models].map(([name, tokens]) => ({ name, tokens })).sort((a, b) => b.tokens - a.tokens || a.name.localeCompare(b.name)) };
76
+ }
77
+ //# sourceMappingURL=dashboard-charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-charts.js","sourceRoot":"","sources":["../../src/orchestration/dashboard-charts.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dashboard_charts_1 = require("./dashboard-charts");
4
+ const dashboard_range_1 = require("../ui/dashboard-range");
5
+ const compact_measurements_1 = require("./compact-measurements");
3
6
  const context_footprint_1 = require("./context-footprint");
4
7
  const worker_threads_1 = require("worker_threads");
5
8
  const node_sqlite_1 = require("node:sqlite");
@@ -54,6 +57,22 @@ function read(filename, operation, options) {
54
57
  db.exec('BEGIN');
55
58
  try {
56
59
  const adapter = { all, get, attempt: (id) => { const row = get('SELECT payload_json FROM task_attempts WHERE id=?', id); return row ? JSON.parse(row.payload_json) : undefined; } };
60
+ if (operation === 'charts')
61
+ return (0, dashboard_charts_1.readDashboardCharts)(db, options.scope, options.timezone || 'UTC', options.now);
62
+ if (operation === 'compaction') {
63
+ if (!exists('session_compaction_runs') || !exists('session_compaction_items'))
64
+ return options.runId ? undefined : [];
65
+ const rows = options.runId ? all('SELECT * FROM session_compaction_runs WHERE id=?', options.runId) : all('SELECT * FROM session_compaction_runs ORDER BY started_at DESC,id DESC LIMIT 100');
66
+ const runs = rows.map(row => {
67
+ const counts = get("SELECT COUNT(*) total,SUM(json_extract(payload_json,'$.status')='completed') completed,SUM(json_extract(payload_json,'$.status')='failed') failed FROM session_compaction_items WHERE run_id=?", row.id);
68
+ const completed = all("SELECT payload_json FROM session_compaction_items WHERE run_id=? AND json_extract(payload_json,'$.status')='completed' LIMIT 1000", row.id).map(item => JSON.parse(item.payload_json));
69
+ return { ...(0, compact_measurements_1.compactionTotals)(completed), id: String(row.id), agent: options.agentId, kind: 'session_compaction', startedAt: Number(row.started_at), endedAt: row.ended_at == null ? null : Number(row.ended_at), status: String(row.status), config: JSON.parse(row.config_json),
70
+ itemCount: Number(counts.total), completedSessions: Number(counts.completed ?? 0), failedSessions: Number(counts.failed ?? 0),
71
+ ...(options.runId ? { items: all('SELECT payload_json FROM session_compaction_items WHERE run_id=? ORDER BY rowid LIMIT 1000', row.id).map(item => JSON.parse(item.payload_json)) } : {}),
72
+ };
73
+ });
74
+ return options.runId ? runs[0] : runs;
75
+ }
57
76
  if (operation === 'report' || operation === 'session') {
58
77
  if (!get('SELECT id FROM conversations WHERE agent_session_id=?', options.sessionId))
59
78
  return undefined;
@@ -64,7 +83,7 @@ function read(filename, operation, options) {
64
83
  if (operation === 'session') {
65
84
  const session = get('SELECT * FROM conversations WHERE agent_session_id=?', options.sessionId);
66
85
  const offset = Math.max(0, Number(options.offset) || 0);
67
- const tasks = all('SELECT id,state,snapshot_json,updated_at FROM tasks WHERE conversation_id=? AND updated_at>=? ORDER BY updated_at DESC,id LIMIT 50 OFFSET ?', session.id, since, offset).map(t => ({ taskId: t.id, state: t.state, title: JSON.parse(t.snapshot_json).title, updatedAt: t.updated_at }));
86
+ const tasks = all('SELECT id,state,snapshot_json,updated_at FROM tasks WHERE conversation_id=? AND updated_at>=? ORDER BY updated_at DESC,id LIMIT 50 OFFSET ?', session.id, since, offset).map(t => ({ taskId: t.id, state: t.state, title: JSON.parse(t.snapshot_json).title, gatewayTarget: JSON.parse(t.snapshot_json).gatewayTarget, updatedAt: t.updated_at }));
68
87
  // Same activity status the Conversations column shows, so the session drawer's
69
88
  // Context window box can use the same idle-vs-stopped disambiguation as the report page.
70
89
  const activityStatus = conversationActivityStatus(get, all, session.id).status;
@@ -89,13 +108,13 @@ function read(filename, operation, options) {
89
108
  .map(r => JSON.parse(String(r.payload_json)));
90
109
  const instructions = revisions.length ? (0, task_directive_1.normalizeTaskRevisions)(revisions).instructions : undefined;
91
110
  const offset = Math.max(0, Number(options.offset) || 0);
92
- const attempts = all(`SELECT payload_json FROM task_attempts WHERE task_id=? AND COALESCE(json_extract(payload_json,'$.startedAt'),0)>=? ORDER BY generation DESC LIMIT 25 OFFSET ?`, options.taskId, since, offset).map(r => {
111
+ const attempts = all(`SELECT payload_json FROM task_attempts WHERE task_id=? AND COALESCE(json_extract(payload_json,'$.startedAt'),json_extract(payload_json,'$.createdAt'),0)>=? ORDER BY generation DESC LIMIT 25 OFFSET ?`, options.taskId, since, offset).map(r => {
93
112
  const attempt = JSON.parse(r.payload_json);
94
113
  const metrics = exists('token_turns') ? get('SELECT payload_json FROM token_turns WHERE id=? AND session_id=?', attempt.attemptId, options.sessionId) : undefined;
95
114
  const events = all('SELECT type,payload_json,occurred_at FROM worker_events WHERE attempt_id=? ORDER BY local_seq DESC LIMIT 30', attempt.attemptId).map(e => ({ type: e.type, at: e.occurred_at, payload: JSON.parse(e.payload_json) }));
96
115
  return { ...attempt, metrics: metrics ? JSON.parse(metrics.payload_json) : null, events };
97
116
  });
98
- return { snapshot, instructions, attempts, totalAttempts: Number(get("SELECT COUNT(*) n FROM task_attempts WHERE task_id=? AND COALESCE(json_extract(payload_json,'$.startedAt'),0)>=?", options.taskId, since).n), offset };
117
+ return { snapshot, instructions, attempts, totalAttempts: Number(get("SELECT COUNT(*) n FROM task_attempts WHERE task_id=? AND COALESCE(json_extract(payload_json,'$.startedAt'),json_extract(payload_json,'$.createdAt'),0)>=?", options.taskId, since).n), offset };
99
118
  }
100
119
  const offset = Math.max(0, Number(options.offset) || 0), limit = 25;
101
120
  const conversations = all('SELECT c.* FROM conversations c WHERE c.updated_at>=? ORDER BY c.updated_at DESC,c.id DESC LIMIT ? OFFSET ?', since, limit, offset);
@@ -115,8 +134,8 @@ function read(filename, operation, options) {
115
134
  const lastTool = get("SELECT payload_json,occurred_at FROM conversation_events WHERE json_extract(payload_json,'$.task_id')=? AND type='tool.activity' ORDER BY seq DESC LIMIT 1", t.id);
116
135
  const tool = lastTool ? JSON.parse(lastTool.payload_json).payload : undefined;
117
136
  return { taskId: t.id, sessionId: c.agent_session_id, title: snapshot.title, state: t.state, updatedAt: t.updated_at,
118
- createdAt: t.created_at, execution: snapshot.execution, workerId: attempt?.workerId, attemptId: attempt?.attemptId,
119
- workerSessionId: attempt?.sessionId, resumed: attempt?.resumeSession, workstreamId: snapshot.workstreamId,
137
+ createdAt: t.created_at, executionType: snapshot.gatewayTarget ? 'gateway-managed' : 'worker', gatewayTarget: snapshot.gatewayTarget, execution: snapshot.execution, workerId: attempt?.workerId, attemptId: attempt?.attemptId,
138
+ workerSessionId: snapshot.gatewayTarget ? undefined : attempt?.sessionId, targetSessionId: snapshot.gatewayTarget?.sessionId, resumed: attempt?.resumeSession, workstreamId: snapshot.workstreamId,
120
139
  continueTaskId: snapshot.continueTaskId, hostProcessId: t.active_attempt_id ? attempt?.processIdentity?.pid : undefined,
121
140
  tokenSummary: { totalTokens: metrics.totalTokens, allAttemptsTokens: total.totalTokens }, contextTools: metrics.contextTools, loadedTools: metrics.loadedTools, usedTools: metrics.usedTools,
122
141
  lastTool: tool ? { name: tool.name, type: tool.type, is_error: tool.is_error, at: lastTool.occurred_at } : undefined };
@@ -129,12 +148,11 @@ function read(filename, operation, options) {
129
148
  tasks, totalTasks: Number(get('SELECT COUNT(*) n FROM tasks WHERE conversation_id=? AND updated_at>=?', c.id, since).n),
130
149
  workerIds: all('SELECT id FROM worker_pool WHERE conversation_id=?', c.id).map(w => w.id), spawnedAt: 0, uptimeSec: 0, tokens: 0 };
131
150
  });
132
- const today = Date.now() - Date.now() % 86400000;
133
- const usageToday = exists('token_turns') ? all(`SELECT role,CAST((started_at-?)/3600000 AS INTEGER) hour,SUM(json_extract(payload_json,'$.usage.totalTokens')) tokens FROM token_turns WHERE started_at>=? AND json_type(payload_json,'$.usage')='object' GROUP BY role,hour`, today, Math.max(today, since)) : [];
134
- const attention = all(`SELECT t.id taskId,t.state,t.snapshot_json,c.agent_session_id sessionId FROM tasks t JOIN conversations c ON c.id=t.conversation_id WHERE t.updated_at>=? AND t.state IN ('waiting_input','needs_reconciliation') ORDER BY t.updated_at DESC LIMIT 8`, since).map(t => ({ taskId: t.taskId, state: t.state, sessionId: t.sessionId, title: JSON.parse(t.snapshot_json).title }));
135
- const recentWork = all(`SELECT t.id taskId,t.state,t.snapshot_json,t.updated_at updatedAt,c.agent_session_id sessionId FROM tasks t JOIN conversations c ON c.id=t.conversation_id WHERE t.updated_at>=? ORDER BY t.updated_at DESC,t.id DESC LIMIT 6`, today).map(t => ({ taskId: t.taskId, state: t.state, sessionId: t.sessionId, updatedAt: t.updatedAt, title: JSON.parse(t.snapshot_json).title }));
151
+ const today = (0, dashboard_range_1.dashboardSince)('24h', Date.now(), options.timezone || 'UTC');
152
+ const attention = all(`SELECT t.id taskId,t.state,t.snapshot_json,c.agent_session_id sessionId FROM tasks t JOIN conversations c ON c.id=t.conversation_id WHERE t.updated_at>=? AND t.state IN ('waiting_input','needs_reconciliation') ORDER BY t.updated_at DESC LIMIT 8`, since).map(t => ({ taskId: t.taskId, state: t.state, sessionId: t.sessionId, title: JSON.parse(t.snapshot_json).title, gatewayTarget: JSON.parse(t.snapshot_json).gatewayTarget }));
153
+ const recentWork = all(`SELECT t.id taskId,t.state,t.snapshot_json,t.updated_at updatedAt,c.agent_session_id sessionId FROM tasks t JOIN conversations c ON c.id=t.conversation_id WHERE t.updated_at>=? ORDER BY t.updated_at DESC,t.id DESC LIMIT 6`, today).map(t => ({ taskId: t.taskId, state: t.state, sessionId: t.sessionId, updatedAt: t.updatedAt, title: JSON.parse(t.snapshot_json).title, gatewayTarget: JSON.parse(t.snapshot_json).gatewayTarget }));
136
154
  const pool = exists('worker_pool') ? all('SELECT * FROM worker_pool') : [];
137
- return { usageToday, attention, recentWork, managedLegacyIds: all('SELECT agent_session_id FROM conversations WHERE agent_session_id IN (SELECT value FROM json_each(?))', JSON.stringify(options.legacyIds ?? [])).map(c => c.agent_session_id), enabled: true, backend: 'headless', workspaceMode: options.workspaceMode, sessions, tasks: sessions.flatMap(s => s.tasks),
155
+ return { attention, recentWork, managedLegacyIds: all('SELECT agent_session_id FROM conversations WHERE agent_session_id IN (SELECT value FROM json_each(?))', JSON.stringify(options.legacyIds ?? [])).map(c => c.agent_session_id), enabled: true, backend: 'headless', workspaceMode: options.workspaceMode, sessions, tasks: sessions.flatMap(s => s.tasks),
138
156
  pagination: { offset, limit, total: Number(get('SELECT COUNT(*) n FROM conversations WHERE updated_at>=?', since).n) },
139
157
  counts: { sessions: Number(get('SELECT COUNT(*) n FROM conversations WHERE updated_at>=?', since).n), tasks: all('SELECT state,COUNT(*) count FROM tasks WHERE updated_at>=? GROUP BY state', since) },
140
158
  activeAgentSessions: sessions.filter(s => s.isRunning).map(s => s.sessionId),
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-reader-worker.js","sourceRoot":"","sources":["../../src/orchestration/dashboard-reader-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-reader-worker.js","sourceRoot":"","sources":["../../src/orchestration/dashboard-reader-worker.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class DashboardReader {
8
8
  private inflight;
9
9
  private cache;
10
10
  private closed;
11
- read(operation: 'summary' | 'report' | 'task' | 'session', filename: string, options?: Record<string, unknown>): Promise<any>;
11
+ read(operation: 'summary' | 'report' | 'task' | 'session' | 'compaction' | 'charts', filename: string, options?: Record<string, unknown>): Promise<any>;
12
12
  private fail;
13
13
  close(): Promise<void>;
14
14
  }