@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
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTokenReportHtml = generateTokenReportHtml;
4
+ const codex_context_1 = require("./codex-context");
5
+ const dashboard_controls_1 = require("./dashboard-controls");
4
6
  const dashboard_range_1 = require("./dashboard-range");
5
7
  const token_report_client_1 = require("./token-report-client");
6
8
  const dashboard_presentation_1 = require("./dashboard-presentation");
@@ -9,8 +11,8 @@ function escape(value) {
9
11
  return String(value ?? '').replace(/[&<>"']/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' })[c]);
10
12
  }
11
13
  function n(value) { return (0, dashboard_presentation_1.compactNumber)(value); }
12
- function tools(label, names) {
13
- return `<div title="${escape(names?.join(', ') || 'Not recorded')}">${label}: ${names == null ? '—' : n(names.length)}</div>`;
14
+ function tools(label, names, harness) {
15
+ return `<div title="${escape(names?.map(name => harness === 'codex' && name === 'Bash' ? 'Shell' : name).join(', ') || 'Not recorded')}">${label}: ${names == null ? '—' : n(names.length)}</div>`;
14
16
  }
15
17
  function cacheWrite(usage) {
16
18
  const total = usage?.cacheCreationTokens;
@@ -44,8 +46,10 @@ function conversationDetails(turn) {
44
46
  /** Compact wait duration ("9s", "2m 21s", "1h 04m"). Input is untrusted: a missing or
45
47
  * nonsensical value yields '' so the caller simply renders nothing. */
46
48
  function waited(ms) {
47
- if (typeof ms !== 'number' || !Number.isFinite(ms) || ms < 0)
49
+ if (typeof ms !== 'number' || !Number.isFinite(ms) || ms <= 0)
48
50
  return '';
51
+ if (ms < 1000)
52
+ return Math.round(ms) + 'ms';
49
53
  const s = Math.round(ms / 1000);
50
54
  if (s < 60)
51
55
  return s + 's';
@@ -53,6 +57,17 @@ function waited(ms) {
53
57
  return Math.floor(s / 60) + 'm ' + String(s % 60).padStart(2, '0') + 's';
54
58
  return Math.floor(s / 3600) + 'h ' + String(Math.floor(s % 3600 / 60)).padStart(2, '0') + 'm';
55
59
  }
60
+ /** Wall time for this turn only; queued inputs have not started execution. */
61
+ function turnElapsed(turn) {
62
+ if (turn.pending)
63
+ return '—';
64
+ const start = new Date(turn.startedAt).getTime();
65
+ const ended = turn.endedAt !== undefined;
66
+ if (!ended && ['completed', 'failed', 'cancelled', 'stopped', 'ended'].includes(turn.state || ''))
67
+ return '—';
68
+ const end = ended ? new Date(turn.endedAt).getTime() : Date.now();
69
+ return waited(end - start) || '—';
70
+ }
56
71
  /** The row's stable identity label.
57
72
  *
58
73
  * Every branch reads a STORED value: conversation_inputs.input_seq for an agent turn and
@@ -67,15 +82,15 @@ function turnLabel(turn) {
67
82
  return 'Attempt #' + turn.attemptGeneration;
68
83
  return 'Unnumbered turn';
69
84
  }
70
- function time(value) {
85
+ function time(value, timezone = 'UTC') {
71
86
  const date = new Date(value);
72
- return Number.isFinite(date.getTime()) ? date.toLocaleString('en-GB', { timeZone: 'UTC', day: '2-digit', month: 'short', hour: '2-digit', minute: '2-digit', second: '2-digit' }) + ' UTC' : '—';
87
+ return Number.isFinite(date.getTime()) ? date.toLocaleString('en-GB', { timeZone: timezone, day: '2-digit', month: 'short', hour: '2-digit', minute: '2-digit', second: '2-digit' }) + ' ' + timezone : '—';
73
88
  }
74
89
  /** Turn/Date display: "Xs/m/h ago" within the last 24h (full datetime on hover),
75
90
  * switching to the full inline datetime once older than a day. */
76
- function relativeTime(value) {
91
+ function relativeTime(value, timezone = 'UTC') {
77
92
  const t = new Date(value).getTime();
78
- const full = time(value);
93
+ const full = time(value, timezone);
79
94
  if (!Number.isFinite(t))
80
95
  return { label: '—', title: '' };
81
96
  const diff = Date.now() - t, day = 86400000;
@@ -90,16 +105,17 @@ function relativeTime(value) {
90
105
  label = Math.round(diff / 3600000) + 'h ago';
91
106
  return { label, title: full };
92
107
  }
93
- function footprintHtml(footprint) {
108
+ function footprintHtml(footprint, timezone = 'UTC') {
94
109
  const parts = (footprint?.rows || []).filter(r => (r.name.startsWith('↳ ') || r.name.startsWith('Agent gateway tool schemas')) && r.hasContent !== false && r.tokens != null && r.tokens > 0);
95
110
  const total = parts.reduce((sum, r) => sum + r.tokens, 0);
96
- const colors = ['#e98524', '#8e65d1', '#258fca', '#cf528b', '#359986', '#c19527', '#5c78d2', '#b66645', '#77843f', '#986499'];
111
+ const colors = dashboard_presentation_1.dashboardChartPalette;
97
112
  const names = ['AGENTS.md', 'IDENTITY.md', 'SOUL.md', 'USER.md', 'MEMORY.md', 'HEARTBEAT.md', 'Skill catalog', 'Memory rules', 'Memory retrieval instructions'];
98
113
  const color = (name) => { const i = names.indexOf(name.replace(/^↳ /, '')); return colors[i < 0 ? 9 : i]; };
99
114
  const items = parts.map(r => { const name = r.name.replace(/^↳ /, ''); const source = footprint?.rows.find(row => row.name === name + ' · source file'); return { name, tokens: r.tokens, color: color(r.name), note: source?.tokens != null ? 'Included in bootstrap: ' + n(r.tokens) + '; full source file: ' + n(source.tokens) + ' estimated tokens.' : r.note }; });
100
- return `<section id="report-footprint"><div class="report-toolbar"><h2 style="margin:0">Context bootstrap</h2><strong style="margin-left:auto">${total ? n(total) + ' estimated tokens' : '—'}</strong></div>${total ? `<div class="stacked-distribution" aria-label="Estimated context tokens by source">${items.map(r => `<span class="segment" style="background:${r.color};width:${r.tokens / total * 100}%" title="${escape(r.name)}: ${n(r.tokens)} tokens"></span>`).join('')}</div><div class="distribution-legend">${items.map(r => `<div class="distribution-item" title="${escape(r.note)}"><i style="background:${r.color}"></i><span>${escape(r.name)}</span><strong>${n(r.tokens)}</strong></div>`).join('')}</div>` : '<p class="muted">—</p>'}<p class="muted">Current CLAUDE.md sections after context budgets, plus Agent gateway tool schemas. Hover a file to compare its included portion with the full source file; MEMORY.md may be longer on disk. Estimated with cl100k_base, not historical turn attribution or the selected model’s exact token count. Excludes section headers, conversation history, runtime overlays, CLI instructions/tools and provider framing. ${footprint ? 'Checked ' + escape(time(footprint.observedAt)) + ' · refreshes every 30s.' : ''}</p></section>`;
115
+ return `<section id="report-footprint"><div class="report-toolbar"><h2 style="margin:0">Context bootstrap</h2><strong style="margin-left:auto">${total ? n(total) + ' estimated tokens' : '—'}</strong></div>${total ? `<div class="stacked-distribution" aria-label="Estimated context tokens by source">${items.map(r => `<span class="segment" style="background:${r.color};width:${r.tokens / total * 100}%" title="${escape(r.name)}: ${n(r.tokens)} tokens"></span>`).join('')}</div><div class="distribution-legend">${items.map(r => `<div class="distribution-item" title="${escape(r.note)}"><i style="background:${r.color}"></i><span>${escape(r.name)}</span><strong>${n(r.tokens)}</strong></div>`).join('')}</div>` : '<p class="muted">—</p>'}<p class="muted">Current CLAUDE.md sections after context budgets, plus Agent gateway tool schemas. Hover a file to compare its included portion with the full source file; MEMORY.md may be longer on disk. Estimated with cl100k_base, not historical turn attribution or the selected model’s exact token count. Excludes section headers, conversation history, runtime overlays, CLI instructions/tools and provider framing. ${footprint ? 'Checked ' + escape(time(footprint.observedAt, timezone)) + ' · refreshes every 30s.' : ''}</p></section>`;
101
116
  }
102
117
  function generateTokenReportHtml(agentId, report) {
118
+ const timezone = report.timezone || 'UTC';
103
119
  const labels = { input: 'Agent · User input', report: 'Agent · Progress / results', worker: 'Worker' };
104
120
  const categories = new Map();
105
121
  for (const turn of report.turns.filter(t => t.usage))
@@ -142,25 +158,24 @@ function generateTokenReportHtml(agentId, report) {
142
158
  const title = turn.category === 'report' ? (turn.responseText || turn.taskTitle || 'Task progress / results') : (turn.taskTitle || turn.inputTexts?.find(t => t.trim()) || turn.responseText || 'No conversation text recorded');
143
159
  const number = turnLabel(turn);
144
160
  const badge = turn.category === 'input' ? modality : labels[turn.category] || turn.category;
145
- const started = relativeTime(turn.startedAt);
146
- // Turns run one at a time per session by design, so a message can sit accepted for
147
- // minutes before its own turn starts. Show that wait rather than leaving a slow turn
148
- // looking broken; below ~2s it is just noise.
161
+ const started = relativeTime(turn.startedAt, timezone);
162
+ // Show live queue duration only while pending; historical wait belongs in details.
149
163
  const wait = waited(turn.queuedMs);
150
164
  const waitLine = turn.pending
151
- ? `<small class="turn-wait" title="Accepted ${escape(time(turn.startedAt))}; waiting for the previous turn in this session to finish">Waiting ${escape(wait || '0s')}</small>`
152
- : (wait && (turn.queuedMs ?? 0) >= 2000 ? `<small class="turn-wait" title="Time between accepting this message and its turn starting; turns run one at a time per session">Queued ${escape(wait)}</small>` : '');
165
+ ? `<small class="turn-wait" title="Accepted ${escape(time(turn.startedAt, timezone))}; waiting for the previous turn in this session to finish">Queued${wait ? ' · ' + escape(wait) : ''}</small>`
166
+ : '';
153
167
  const pendingNote = turn.pending ? '<p class="muted">This message has been accepted and is waiting for the previous turn in this session to finish. Token usage is recorded once its own turn runs, so this row is not counted in any total.</p>' : '';
154
- return `<tr class="turn-row${turn.pending ? ' turn-pending' : ''}" tabindex="0" aria-expanded="false" data-turn-id="${escape(turn.id)}" data-category="${escape(turn.category)}" data-model="${escape(turn.model || '')}" data-status="${escape(turn.state || '')}"><td><strong>${escape(number)}</strong><small title="${escape(started.title)}">${escape(started.label)}</small>${waitLine}<small class="cell-model" title="${escape(turn.model)}">${escape(turn.model || '—')}</small></td><td><span class="turn-kind ${escape(turn.category)}">${escape(badge)}</span><strong class="turn-excerpt" title="${escape(title.slice(0, 1000))}">${escape(title.slice(0, 180))}${title.length > 180 ? '…' : ''}</strong>${turn.state ? statusBadge(turn.state) : ''}</td><td>${n(turn.usage?.inputTokens)}</td><td>${cacheWrite(turn.usage)}</td><td>${n(turn.usage?.cacheReadTokens)}</td><td>${n(turn.usage?.outputTokens)}</td><td><strong>${n(turn.usage?.totalTokens)}</strong></td><td>${turn.usage ? '<strong>' + cachedRatio(turn.usage.inputTokens, turn.usage.cacheReadTokens, turn.usage.cacheCreationTokens).toFixed(2) + '%</strong>' : '—'}</td><td>${tools('Loaded', turn.contextTools)}${tools('Used', turn.usedTools)}</td></tr><tr class="turn-extra" hidden data-turn-id="${escape(turn.id)}" data-category="${escape(turn.category)}"><td colspan="9"><h3>Conversation & request details</h3><p class="muted">Role: ${escape(turn.role)} · Turn ${escape(turn.id)}${turn.taskId ? ' · Task ' + escape(turn.taskId) : ''}${turn.endedAt ? ' · Ended ' + escape(time(turn.endedAt)) : ''}${wait ? ' · ' + escape(turn.pending ? 'Waiting ' + wait : 'Queued ' + wait + ' before starting') : ''}</p>${pendingNote}${conversationDetails(turn)}${requestDetails(turn.requests, turn.usage)}${turn.contextTools ? '<h3>Loaded tools</h3>' + (0, dashboard_presentation_1.toolNameList)(turn.contextTools) : ''}<h3>Used tools</h3>${(0, dashboard_presentation_1.toolNameList)(turn.usedTools)}<p class="muted">Loaded counts distinct schemas observed in requests, including referenced deferred tools. Used counts distinct tool names executed. ${turn.schemaCoverage ? `Schema capture: ${turn.schemaCoverage.measured}/${turn.schemaCoverage.total} observed requests.` : 'Schema capture was not recorded for this turn.'}</p></td></tr>`;
168
+ return `<tr class="turn-row${turn.pending ? ' turn-pending' : ''}" tabindex="0" aria-expanded="false" data-turn-id="${escape(turn.id)}" data-category="${escape(turn.category)}" data-model="${escape(turn.model || '')}" data-status="${escape(turn.state || '')}"><td><strong>${escape(number)}</strong><small title="${escape(started.title)}">${escape(started.label)}</small>${waitLine}<small class="cell-model" title="${escape(turn.model)}">${escape(turn.model || '—')}</small></td><td><span class="turn-kind ${escape(turn.category)}">${escape(badge)}</span><strong class="turn-excerpt" title="${escape(title.slice(0, 1000))}">${escape(title.slice(0, 180))}${title.length > 180 ? '…' : ''}</strong>${turn.state ? statusBadge(turn.state) : ''}</td><td>${n(turn.usage?.inputTokens)}</td><td>${cacheWrite(turn.usage)}</td><td>${n(turn.usage?.cacheReadTokens)}</td><td>${n(turn.usage?.outputTokens)}</td><td><strong>${n(turn.usage?.totalTokens)}</strong></td><td>${turn.usage ? '<strong>' + cachedRatio(turn.usage.inputTokens, turn.usage.cacheReadTokens, turn.usage.cacheCreationTokens).toFixed(2) + '%</strong>' : '—'}</td><td>${tools('Loaded', turn.contextTools)}${tools('Used', turn.usedTools, turn.harness)}</td></tr><tr class="turn-extra" hidden data-turn-id="${escape(turn.id)}" data-category="${escape(turn.category)}"><td colspan="9"><h3>Conversation & request details</h3><div class="turn-metadata muted"><div>Role: ${escape(turn.role)}</div>${turn.role === 'worker' ? '<div>Harness: ' + (turn.harness ? '<span class="harness-badge ' + (turn.harness === 'codex' ? 'harness-codex' : 'harness-claude') + '">' + (turn.harness === 'codex' ? 'Codex' : 'Claude Code') + '</span>' : '') + '</div>' : ''}<div>Model: ${escape(turn.model || '—')}</div><div>Turn ${escape(turn.id)}</div>${turn.taskId ? '<div>Task ' + escape(turn.taskId) + '</div>' : ''}${wait ? '<div>' + escape(turn.pending ? 'Waiting ' + wait : 'Waited ' + wait + ' before starting') + '</div>' : ''}<div>${turn.pending ? 'Queued since' : 'Started'} ${escape(time(turn.startedAt, timezone))}</div><div>Elapsed: ${escape(turnElapsed(turn))}</div></div>${pendingNote}${(0, codex_context_1.codexContextHtml)(turn.contextWindow)}${conversationDetails(turn)}${requestDetails(turn.requests, turn.usage)}${turn.contextTools ? '<h3>Loaded tools</h3>' + (0, dashboard_presentation_1.toolNameList)(turn.contextTools) : ''}<h3>Used tools</h3>${(0, dashboard_presentation_1.toolNameList)(turn.usedTools, turn.harness)}<p class="muted">Loaded counts distinct schemas observed in requests, including referenced deferred tools. Used counts distinct tool names executed. ${turn.schemaCoverage ? `Schema capture: ${turn.schemaCoverage.measured}/${turn.schemaCoverage.total} observed requests.` : 'Schema capture was not recorded for this turn.'}</p></td></tr>`;
155
169
  }).join('');
156
- return `<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Session token report · Claude Gateway</title>${dashboard_theme_1.dashboardFontLink}<style>${dashboard_theme_1.dashboardTheme}
157
- body{padding:28px;background:var(--bg);color:var(--text);font:15px/1.7 system-ui,-apple-system,"Noto Sans Thai",sans-serif}main{max-width:1560px;margin:auto;min-width:0}h1{font-size:28px;margin:20px 0 12px}h2{font-size:17px;color:var(--text);margin:0 0 20px}.report-header{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.report-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.cards .card{padding:22px}.card strong{display:block;font-size:30px;font-weight:500;margin-top:10px}section{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;margin-top:22px}.muted{font-size:11px;color:var(--muted);overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto;background:var(--raised);padding:16px;border-radius:10px;font:12px/1.7 ui-monospace,monospace}a{color:var(--accent)}.report-pager{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:12px;padding:18px 0}.report-pager-nav{display:inline-flex;gap:8px;flex-wrap:wrap}.turn-filters{align-items:stretch}.turn-filters .range-toggle button,.turn-filters select,.turn-filters input{font-size:12px}.turn-filters input{flex:1;min-width:160px;max-width:380px}.stacked-distribution{display:flex;height:24px;overflow:hidden;border-radius:8px;margin:14px 0 22px;background:var(--raised)}.segment{height:100%}.input{--category:#329eda}.report{--category:#ea8a23}.worker{--category:#9661d9}.segment+.segment{border-left:3px solid var(--panel)}.segment,.distribution-item i{background:var(--category)}.distribution-legend{display:flex;gap:24px;flex-wrap:wrap}.distribution-item{display:flex;gap:8px;align-items:center;font-size:11px}.distribution-item i{height:9px;width:9px;border-radius:3px}.turn-kind{display:inline-block;padding:3px 8px;border-radius:5px;background:color-mix(in srgb,var(--category) 12%,var(--panel));color:var(--category);font-size:10px;font-weight:550}.turn-excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.7;margin:7px 0;font-weight:500}.cache-write{display:inline-flex;flex-wrap:wrap;gap:0 4px;max-width:100%;white-space:normal}.cache-duration{font-size:11px;color:var(--muted);white-space:nowrap}.report-table{width:100%;min-width:1000px;table-layout:fixed}.report-table>thead>tr>th,.report-table>tbody>.turn-row>td{padding:12px 8px}.report-table>tbody>.turn-row>td:nth-child(n+3){white-space:nowrap;font-size:14px}.report-table td:not(:first-child){font-variant-numeric:tabular-nums}.report-table .turn-extra td{padding-top:0}.turn-extra summary{font-size:11px;color:var(--muted);cursor:pointer}.turn-extra table{min-width:760px}.turn-extra details{margin:8px 0}.report-table details p{max-width:100%;overflow-wrap:anywhere;white-space:normal}.report-table th{white-space:normal;line-height:1.4}.report-table td small{font-size:10px}.report-table .turn-row>td:first-child>strong,.report-table .turn-row>td:first-child>small{display:block}.cell-model{overflow-wrap:anywhere;white-space:normal}.report-table td{border-bottom:0}.turn-extra td{border-bottom:1px solid var(--line)!important}.report-table details{font-size:11px}body[data-theme=dark]{color:var(--text)}@media(max-width:700px){body{padding:16px}.cards{grid-template-columns:1fr}section{padding:16px}}
170
+ return `<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Session token report · Claude Gateway</title>${dashboard_theme_1.dashboardFontLink}<style>.harness-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;font-size:11px;line-height:1.4;font-weight:500;vertical-align:middle}.harness-codex{background:var(--bluebg);color:var(--blue)}.harness-claude{background:var(--yellowbg);color:var(--yellow)}.turn-metadata{display:grid;gap:6px;margin:12px 0 18px;overflow-wrap:anywhere}${dashboard_theme_1.dashboardTheme}
171
+ body{padding:28px;background:var(--bg);color:var(--text);font:15px/1.7 system-ui,-apple-system,"Noto Sans Thai",sans-serif}main{max-width:1560px;margin:auto;min-width:0}h1{font-size:28px;margin:20px 0 12px}h2{font-size:17px;color:var(--text);margin:0 0 20px}.report-title{margin:24px 0 18px}.report-header{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:24px}.report-identity{display:flex;flex-direction:column;gap:10px;min-width:0}.report-identity-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}.report-session{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13px;overflow-wrap:anywhere}.report-range{flex:0 0 auto}.report-range .range-toggle{flex-wrap:nowrap}.report-range .range-toggle button{min-width:44px}.report-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.cards .card{padding:22px}.card strong{display:block;font-size:30px;font-weight:500;margin-top:10px}section{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;margin-top:22px}.muted{font-size:11px;color:var(--muted);overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto;background:var(--raised);padding:16px;border-radius:10px;font:12px/1.7 ui-monospace,monospace}a{color:var(--accent)}.report-pager{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:12px;padding:18px 0}.report-pager-nav{display:inline-flex;gap:8px;flex-wrap:wrap}.stacked-distribution{display:flex;height:24px;overflow:hidden;border-radius:8px;margin:14px 0 22px;background:var(--raised)}.segment{height:100%}.input{--category:var(--token-agent)}.report{--category:var(--token-report)}.worker{--category:var(--token-worker)}.segment+.segment{border-left:3px solid var(--panel)}.segment,.distribution-item i{background:var(--category)}.distribution-legend{display:flex;gap:24px;flex-wrap:wrap}.distribution-item{display:flex;gap:8px;align-items:center;font-size:11px}.distribution-item i{height:9px;width:9px;border-radius:3px}.turn-kind{display:inline-block;padding:3px 8px;border-radius:5px;background:color-mix(in srgb,var(--category) 12%,var(--panel));color:var(--category);font-size:10px;font-weight:550}.turn-excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.7;margin:7px 0;font-weight:500}.cache-write{display:inline-flex;flex-wrap:wrap;gap:0 4px;max-width:100%;white-space:normal}.cache-duration{font-size:11px;color:var(--muted);white-space:nowrap}.report-table{width:100%;min-width:1000px;table-layout:fixed}.report-table>thead>tr>th,.report-table>tbody>.turn-row>td{padding:12px 8px}.report-table>tbody>.turn-row>td:nth-child(n+3){white-space:nowrap;font-size:14px}.report-table td:not(:first-child){font-variant-numeric:tabular-nums}.report-table .turn-extra td{padding-top:0}.turn-extra summary{font-size:11px;color:var(--muted);cursor:pointer}.turn-extra table{min-width:760px}.turn-extra details{margin:8px 0}.report-table details p{max-width:100%;overflow-wrap:anywhere;white-space:normal}.report-table th{white-space:normal;line-height:1.4}.report-table td small{font-size:10px}.report-table .turn-row>td:first-child>strong,.report-table .turn-row>td:first-child>small{display:block}.cell-model{overflow-wrap:anywhere;white-space:normal}.report-table td{border-bottom:0}.turn-extra td{border-bottom:1px solid var(--line)!important}.report-table details{font-size:11px}body[data-theme=dark]{color:var(--text)}@media(max-width:700px){body{padding:16px}.cards{grid-template-columns:1fr}section{padding:16px}}
158
172
  .report-table,.footprint-table{font-size:13px;line-height:1.7}.report-table td small,.muted{font-size:12px}.turn-kind,.report-table details,.turn-extra summary,.distribution-item{font-size:12px}.turn-excerpt{font-weight:650}.report-table td>strong,.distribution-item strong,.footprint-table td:first-child,.footprint-table td:nth-child(2){font-weight:700}.report-table th,.footprint-table th{font-size:12px;letter-spacing:.03em}.footprint-table{min-width:800px;table-layout:fixed}.footprint-table th:first-child{width:30%}.footprint-table th:nth-child(2),.footprint-table th:nth-child(3){width:15%}.footprint-table td{overflow-wrap:anywhere}
159
173
  .report-table .turn-extra{font-size:13px;line-height:1.7}.report-table .turn-extra p,.report-table .turn-extra .muted,.report-table .turn-extra summary,.report-table .turn-extra pre,.report-table .turn-extra td{font-size:13px;line-height:1.7}.report-table .turn-extra h3{font-size:13px;font-weight:700;margin:18px 0 8px}.report-table .turn-extra pre{font-family:inherit;font-weight:400}.turn-status{display:flex;align-items:center;gap:8px}.turn-status .badge{font-size:12px;font-weight:500}.turn-extra>td>details>summary{font-weight:600}
160
- .report-table .turn-row[aria-expanded=true]{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.report-table .turn-pending{background:color-mix(in srgb,#a16c11 9%,var(--panel))}.report-table .turn-pending>td:first-child{box-shadow:inset 3px 0 0 #a16c11}.turn-wait{color:#a16c11;font-weight:600;overflow-wrap:anywhere;white-space:normal}#report-drawer h1{font-size:22px;margin:18px 0 12px}#report-drawer h3{font-size:14px;font-weight:700;margin:18px 0 8px}#report-drawer .muted{font-size:12px}#report-drawer table{width:100%;border-collapse:collapse;font-size:12px;margin:10px 0}#report-drawer th,#report-drawer td{padding:7px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}#report-drawer .request-details,#report-drawer .conversation-details{margin-top:10px}#report-drawer [data-report-close]{float:right;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 12px;font-size:12px}
161
- </style></head><body><main><div class="report-toolbar"><a href="../dashboard">← Dashboard</a><span id="report-live" class="muted" role="status">Live · every 5s</span><button id="report-theme" style="margin-left:auto">Light / dark</button></div><h1>Session token report</h1><div class="report-header">${(0, dashboard_presentation_1.agentBadge)(agentId)}<span id="report-status">${statusBadge(headerStatus)}</span>${(0, dashboard_presentation_1.channelBadge)(report.source || '')}<span class="muted" title="${escape(report.sessionId)}">Session ${escape(report.sessionId)}</span>${(0, dashboard_range_1.rangeButtons)("report-scope", scope)}</div><div class="cards" id="report-totals">${contextWindowBox}<div class="card box-agent">Agent tokens<strong>${roleMeasured('agent') ? n(report.totals.agentTokens) : '—'}</strong>${roleMeasured('agent') ? cachedLineFor(agentU) : ''}</div><div class="card box-worker">Worker tokens<strong>${roleMeasured('worker') ? n(report.totals.workerTokens) : '—'}</strong>${roleMeasured('worker') ? cachedLineFor(workerU) : ''}</div><div class="card box-total">Total tokens<strong>${measured ? n(report.totals.totalTokens) : '—'}</strong>${measured ? cachedLineFor(totalU) : ''}</div></div><p class="muted">${report.since ? 'Turns started since ' + escape(time(report.since)) + '.' : 'All recorded turns.'} Totals include all pages. Token volume includes input, cache creation, cache reads and output; these percentages are not monetary costs. Missing measurements are shown as —. Input is the uncached portion; cache write creates cached context; cache read reuses context; output includes reported thinking. Total tokens is the sum of input, cache write, cache read and output.</p>${footprintHtml(report.contextFootprint)}<section id="report-distribution"><h2>Token distribution</h2>${total ? `<div class="stacked-distribution">${distribution}</div><div class="distribution-legend">${legend}</div>` : '<p>No recorded token usage.</p>'}</section><section><h2>Turn details</h2><div class="report-toolbar turn-filters"><div id="turn-category" class="range-toggle" role="group" aria-label="Filter turns on this page by purpose">${[['', 'All'], ['input', 'User input'], ['report', 'Progress / result'], ['worker', 'Worker']].map(([value, label]) => `<button type="button" data-purpose="${value}" aria-pressed="${value === ''}">${label}</button>`).join('')}</div><div id="turn-status" class="range-toggle" role="group" aria-label="Filter turns on this page by status"><button type="button" data-status="" aria-pressed="true">All</button>${statusBuckets.map(([value, label]) => `<button type="button" data-status="${value}" aria-pressed="false">${label}</button>`).join('')}</div><select id="turn-model" aria-label="Filter turns on this page by model"><option value="">All models</option>${models.map(m => `<option value="${escape(m)}">${escape(m)}</option>`).join('')}</select><input id="turn-search" placeholder="Search this page's messages or models" aria-label="Search turns on this page"></div>${pager}<div class="table-scroll"><table class="data-table report-table"><colgroup>${[120, 0, 96, 96, 96, 96, 96, 96, 96].map(width => width ? `<col style="width:${width}px">` : '<col>').join('')}</colgroup><thead><tr><th>Turn / Date</th><th>Conversation / assignment</th><th title="Uncached input only. Total input = input + cache write + cache read.">Input</th><th>Cache write</th><th>Cache read</th><th>Output</th><th>Totals</th><th title="Cache read ÷ (input + cache read + cache write)">%Cached</th><th>Tools</th></tr></thead><tbody>${rows || '<tr><td colspan="9">No recorded turns in this scope.</td></tr>'}</tbody></table></div>${pager}</section></main><div id="report-drawer-back" class="dash-drawer-back"><section id="report-drawer" class="dash-drawer" role="dialog" aria-modal="true" aria-label="Recorded turn details" tabindex="-1"></section></div><script>
174
+ .report-table .turn-row[aria-expanded=true]{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.report-table .turn-pending{background:color-mix(in srgb,#a16c11 9%,var(--panel))}.report-table .turn-pending>td:first-child{box-shadow:inset 3px 0 0 #a16c11}.turn-wait{color:#a16c11;font-weight:600;overflow-wrap:anywhere;white-space:normal}#report-drawer .muted{font-size:12px}#report-drawer table{width:100%;border-collapse:collapse;font-size:12px;margin:10px 0}#report-drawer th,#report-drawer td{padding:7px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}#report-drawer .request-details,#report-drawer .conversation-details{margin-top:10px}
175
+ </style></head><body><main><div class="report-toolbar"><a href="../dashboard">← Dashboard</a><span id="report-live" class="muted" role="status">Live · every 5s</span>${(0, dashboard_controls_1.themeButtonHtml)('report-theme')}</div><h1 class="report-title">Session token report</h1><div class="report-header"><div class="report-identity"><div class="report-identity-meta">${(0, dashboard_presentation_1.agentBadge)(agentId)}<span id="report-status">${statusBadge(headerStatus)}</span>${(0, dashboard_presentation_1.channelBadge)(report.source || '')}</div><div class="report-session"><span class="muted">Session</span><span>${escape(report.sessionId)}</span></div></div><div class="report-range turn-filters">${(0, dashboard_range_1.rangeButtons)("report-scope", scope, timezone)}</div></div><div class="cards" id="report-totals">${contextWindowBox}<div class="card box-agent">Agent tokens<strong>${roleMeasured('agent') ? n(report.totals.agentTokens) : '—'}</strong>${roleMeasured('agent') ? cachedLineFor(agentU) : ''}</div><div class="card box-worker">Worker tokens<strong>${roleMeasured('worker') ? n(report.totals.workerTokens) : '—'}</strong>${roleMeasured('worker') ? cachedLineFor(workerU) : ''}</div><div class="card box-total">Total tokens<strong>${measured ? n(report.totals.totalTokens) : '—'}</strong>${measured ? cachedLineFor(totalU) : ''}</div></div><p class="muted">${report.since ? 'Turns started since ' + escape(time(report.since, timezone)) + '.' : 'All recorded turns.'} Totals include all pages. Token volume includes input, cache creation, cache reads and output; these percentages are not monetary costs. Missing measurements are shown as —. Input is the uncached portion; cache write creates cached context; cache read reuses context; output includes reported thinking. Total tokens is the sum of input, cache write, cache read and output.</p>${footprintHtml(report.contextFootprint, timezone)}<section id="report-distribution"><h2>Token distribution</h2>${total ? `<div class="stacked-distribution">${distribution}</div><div class="distribution-legend">${legend}</div>` : '<p>No recorded token usage.</p>'}</section><section><h2>Turn details</h2><div class="report-toolbar turn-filters"><div id="turn-category" class="range-toggle" role="group" aria-label="Filter turns on this page by purpose">${[['', 'All'], ['input', 'User input'], ['report', 'Progress / result'], ['worker', 'Worker']].map(([value, label]) => `<button type="button" data-purpose="${value}" aria-pressed="${value === ''}">${label}</button>`).join('')}</div><div id="turn-status" class="range-toggle" role="group" aria-label="Filter turns on this page by status"><button type="button" data-status="" aria-pressed="true">All</button>${statusBuckets.map(([value, label]) => `<button type="button" data-status="${value}" aria-pressed="false">${label}</button>`).join('')}</div><select id="turn-model" aria-label="Filter turns on this page by model"><option value="">All models</option>${models.map(m => `<option value="${escape(m)}">${escape(m)}</option>`).join('')}</select><input id="turn-search" placeholder="Search this page's messages or models" aria-label="Search turns on this page"></div>${pager}<div class="table-scroll"><table class="data-table report-table"><colgroup>${[120, 0, 96, 96, 96, 96, 96, 96, 96].map(width => width ? `<col style="width:${width}px">` : '<col>').join('')}</colgroup><thead><tr><th>Turn / Date</th><th>Conversation / assignment</th><th title="Uncached input only. Total input = input + cache write + cache read.">Input</th><th>Cache write</th><th>Cache read</th><th>Output</th><th>Totals</th><th title="Cache read ÷ (input + cache read + cache write)">%Cached</th><th>Tools</th></tr></thead><tbody>${rows || '<tr><td colspan="9">No recorded turns in this scope.</td></tr>'}</tbody></table></div>${pager}</section></main><div id="report-drawer-back" class="dash-drawer-back"><section id="report-drawer" class="dash-drawer" role="dialog" aria-modal="true" aria-label="Recorded turn details" tabindex="-1"></section></div><script>
176
+ const dashboardTimezone=${JSON.stringify(timezone).replace(/</g, '\\u003c')};
162
177
  document.getElementById('report-scope').onclick=function(e){var button=e.target.closest('[data-range]');if(!button)return;var url=new URL(location.href);url.searchParams.set('scope',button.dataset.range);url.searchParams.set('offset','0');location.href=url.href;};
163
- document.getElementById('report-theme').onclick=function(){var r=document.documentElement;r.dataset.theme=r.dataset.theme==='dark'?'light':'dark';};
178
+ ${dashboard_controls_1.dashboardControlsClient}
164
179
  var reportSelected=null,reportFocus=null;
165
180
  function reportExtraFor(id){var found=null;document.querySelectorAll('.turn-extra').forEach(function(r){if(r.dataset.turnId===id)found=r;});return found;}
166
181
  function reportRenderDrawer(){
@@ -168,7 +183,7 @@ function reportRenderDrawer(){
168
183
  document.querySelectorAll('.turn-row').forEach(function(r){r.setAttribute('aria-expanded',String(Boolean(reportSelected)&&r.dataset.turnId===reportSelected));});
169
184
  var extra=reportSelected?reportExtraFor(reportSelected):null,cell=extra?extra.querySelector('td'):null;
170
185
  if(!reportSelected||!cell){reportSelected=null;back.classList.remove('open');document.body.style.overflow='';if(panel.dataset.turn!==undefined){panel.innerHTML='';delete panel.dataset.turn;delete panel.dataset.html;}document.querySelectorAll('.turn-row').forEach(function(r){r.setAttribute('aria-expanded','false');});return;}
171
- var html='<button data-report-close aria-label="Close details">Close ×</button><h1>Turn details</h1>'+cell.innerHTML;
186
+ var html=dashboardCloseButton('report')+'<h1>Turn details</h1>'+cell.innerHTML;
172
187
  back.classList.add('open');document.body.style.overflow='hidden';
173
188
  if(panel.dataset.turn===reportSelected&&panel.dataset.html===html)return;
174
189
  var sameTurn=panel.dataset.turn===reportSelected,scroll=panel.scrollTop,focused=panel.contains(document.activeElement),closeFocused=document.activeElement&&document.activeElement.hasAttribute('data-report-close');
@@ -1 +1 @@
1
- {"version":3,"file":"token-report.js","sourceRoot":"","sources":["../../src/ui/token-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-report.js","sourceRoot":"","sources":["../../src/ui/token-report.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Generates a self-contained HTML dashboard page for the gateway status UI.
3
3
  * No external dependencies except xterm.js CDN for PTY viewer.
4
4
  */
5
- export declare function generateDashboardHtml(): string;
5
+ export declare function generateDashboardHtml(timezone?: string): string;
6
6
  /**
7
7
  * Minimal, self-contained login page served at GET /dashboard when API keys are
8
8
  * configured and the request has no valid dashboard session cookie. Posts the
@@ -1 +1 @@
1
- {"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA07D9C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,SAAK,GAAG,MAAM,CA6F7D"}
1
+ {"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,SAAQ,GAAG,MAAM,CAyoD9D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,SAAK,GAAG,MAAM,CA6F7D"}