@contraagent/ui 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (731) hide show
  1. package/README.md +137 -2
  2. package/custom-elements.json +7286 -0
  3. package/dist/adapters/check-rows.d.ts +20 -0
  4. package/dist/adapters/check-rows.d.ts.map +1 -0
  5. package/dist/adapters/check-rows.js +77 -0
  6. package/dist/adapters/check-rows.js.map +1 -0
  7. package/dist/adapters/filters.d.ts +29 -0
  8. package/dist/adapters/filters.d.ts.map +1 -0
  9. package/dist/adapters/filters.js +74 -0
  10. package/dist/adapters/filters.js.map +1 -0
  11. package/dist/adapters/graph/compound.d.ts +93 -0
  12. package/dist/adapters/graph/compound.d.ts.map +1 -0
  13. package/dist/adapters/graph/compound.js +322 -0
  14. package/dist/adapters/graph/compound.js.map +1 -0
  15. package/dist/adapters/graph/flow-index.d.ts +54 -0
  16. package/dist/adapters/graph/flow-index.d.ts.map +1 -0
  17. package/dist/adapters/graph/flow-index.js +129 -0
  18. package/dist/adapters/graph/flow-index.js.map +1 -0
  19. package/dist/adapters/graph/highlight.d.ts +14 -0
  20. package/dist/adapters/graph/highlight.d.ts.map +1 -0
  21. package/dist/adapters/graph/highlight.js +33 -0
  22. package/dist/adapters/graph/highlight.js.map +1 -0
  23. package/dist/adapters/graph/input.d.ts +50 -0
  24. package/dist/adapters/graph/input.d.ts.map +1 -0
  25. package/dist/adapters/graph/input.js +201 -0
  26. package/dist/adapters/graph/input.js.map +1 -0
  27. package/dist/adapters/graph/layer.d.ts +33 -0
  28. package/dist/adapters/graph/layer.d.ts.map +1 -0
  29. package/dist/adapters/graph/layer.js +94 -0
  30. package/dist/adapters/graph/layer.js.map +1 -0
  31. package/dist/adapters/graph/matrix.d.ts +62 -0
  32. package/dist/adapters/graph/matrix.d.ts.map +1 -0
  33. package/dist/adapters/graph/matrix.js +96 -0
  34. package/dist/adapters/graph/matrix.js.map +1 -0
  35. package/dist/adapters/graph/project.d.ts +49 -0
  36. package/dist/adapters/graph/project.d.ts.map +1 -0
  37. package/dist/adapters/graph/project.js +319 -0
  38. package/dist/adapters/graph/project.js.map +1 -0
  39. package/dist/adapters/graph/selection.d.ts +31 -0
  40. package/dist/adapters/graph/selection.d.ts.map +1 -0
  41. package/dist/adapters/graph/selection.js +48 -0
  42. package/dist/adapters/graph/selection.js.map +1 -0
  43. package/dist/adapters/graph/states.d.ts +6 -0
  44. package/dist/adapters/graph/states.d.ts.map +1 -0
  45. package/dist/adapters/graph/states.js +5 -0
  46. package/dist/adapters/graph/states.js.map +1 -0
  47. package/dist/adapters/graph/types.d.ts +141 -0
  48. package/dist/adapters/graph/types.d.ts.map +1 -0
  49. package/dist/adapters/graph/types.js +3 -0
  50. package/dist/adapters/graph/types.js.map +1 -0
  51. package/dist/adapters/graph/words.d.ts +48 -0
  52. package/dist/adapters/graph/words.d.ts.map +1 -0
  53. package/dist/adapters/graph/words.js +128 -0
  54. package/dist/adapters/graph/words.js.map +1 -0
  55. package/dist/adapters/index.d.ts +18 -0
  56. package/dist/adapters/index.d.ts.map +1 -0
  57. package/dist/adapters/index.js +23 -0
  58. package/dist/adapters/index.js.map +1 -0
  59. package/dist/adapters/journal-columns.d.ts +21 -0
  60. package/dist/adapters/journal-columns.d.ts.map +1 -0
  61. package/dist/adapters/journal-columns.js +179 -0
  62. package/dist/adapters/journal-columns.js.map +1 -0
  63. package/dist/adapters/kpi-tiles.d.ts +47 -0
  64. package/dist/adapters/kpi-tiles.d.ts.map +1 -0
  65. package/dist/adapters/kpi-tiles.js +173 -0
  66. package/dist/adapters/kpi-tiles.js.map +1 -0
  67. package/dist/adapters/lanes.d.ts +31 -0
  68. package/dist/adapters/lanes.d.ts.map +1 -0
  69. package/dist/adapters/lanes.js +75 -0
  70. package/dist/adapters/lanes.js.map +1 -0
  71. package/dist/adapters/model-shares.d.ts +27 -0
  72. package/dist/adapters/model-shares.d.ts.map +1 -0
  73. package/dist/adapters/model-shares.js +52 -0
  74. package/dist/adapters/model-shares.js.map +1 -0
  75. package/dist/adapters/panel-body.d.ts +34 -0
  76. package/dist/adapters/panel-body.d.ts.map +1 -0
  77. package/dist/adapters/panel-body.js +90 -0
  78. package/dist/adapters/panel-body.js.map +1 -0
  79. package/dist/adapters/preflight.d.ts +12 -0
  80. package/dist/adapters/preflight.d.ts.map +1 -0
  81. package/dist/adapters/preflight.js +15 -0
  82. package/dist/adapters/preflight.js.map +1 -0
  83. package/dist/adapters/task-columns.d.ts +19 -0
  84. package/dist/adapters/task-columns.d.ts.map +1 -0
  85. package/dist/adapters/task-columns.js +107 -0
  86. package/dist/adapters/task-columns.js.map +1 -0
  87. package/dist/adapters/transcript/index.d.ts +6 -0
  88. package/dist/adapters/transcript/index.d.ts.map +1 -0
  89. package/dist/adapters/transcript/index.js +8 -0
  90. package/dist/adapters/transcript/index.js.map +1 -0
  91. package/dist/adapters/transcript/model.d.ts +42 -0
  92. package/dist/adapters/transcript/model.d.ts.map +1 -0
  93. package/dist/adapters/transcript/model.js +128 -0
  94. package/dist/adapters/transcript/model.js.map +1 -0
  95. package/dist/adapters/transcript/rounds.d.ts +15 -0
  96. package/dist/adapters/transcript/rounds.d.ts.map +1 -0
  97. package/dist/adapters/transcript/rounds.js +74 -0
  98. package/dist/adapters/transcript/rounds.js.map +1 -0
  99. package/dist/adapters/transcript/sections.d.ts +18 -0
  100. package/dist/adapters/transcript/sections.d.ts.map +1 -0
  101. package/dist/adapters/transcript/sections.js +69 -0
  102. package/dist/adapters/transcript/sections.js.map +1 -0
  103. package/dist/adapters/transcript/web.d.ts +12 -0
  104. package/dist/adapters/transcript/web.d.ts.map +1 -0
  105. package/dist/adapters/transcript/web.js +39 -0
  106. package/dist/adapters/transcript/web.js.map +1 -0
  107. package/dist/adapters/transcript/who.d.ts +15 -0
  108. package/dist/adapters/transcript/who.d.ts.map +1 -0
  109. package/dist/adapters/transcript/who.js +42 -0
  110. package/dist/adapters/transcript/who.js.map +1 -0
  111. package/dist/adapters/trends.d.ts +11 -0
  112. package/dist/adapters/trends.d.ts.map +1 -0
  113. package/dist/adapters/trends.js +316 -0
  114. package/dist/adapters/trends.js.map +1 -0
  115. package/dist/contraagent-ui.js +1028 -0
  116. package/dist/controllers/locale.d.ts +25 -0
  117. package/dist/controllers/locale.d.ts.map +1 -0
  118. package/dist/controllers/locale.js +33 -0
  119. package/dist/controllers/locale.js.map +1 -0
  120. package/dist/controllers/shortcuts.d.ts +29 -0
  121. package/dist/controllers/shortcuts.d.ts.map +1 -0
  122. package/dist/controllers/shortcuts.js +51 -0
  123. package/dist/controllers/shortcuts.js.map +1 -0
  124. package/dist/controllers/stream.d.ts +41 -0
  125. package/dist/controllers/stream.d.ts.map +1 -0
  126. package/dist/controllers/stream.js +90 -0
  127. package/dist/controllers/stream.js.map +1 -0
  128. package/dist/controllers/task-detail.d.ts +22 -0
  129. package/dist/controllers/task-detail.d.ts.map +1 -0
  130. package/dist/controllers/task-detail.js +50 -0
  131. package/dist/controllers/task-detail.js.map +1 -0
  132. package/dist/controllers/theme.d.ts +32 -0
  133. package/dist/controllers/theme.d.ts.map +1 -0
  134. package/dist/controllers/theme.js +56 -0
  135. package/dist/controllers/theme.js.map +1 -0
  136. package/dist/core/events.d.ts +107 -0
  137. package/dist/core/events.d.ts.map +1 -0
  138. package/dist/core/events.js +5 -0
  139. package/dist/core/events.js.map +1 -0
  140. package/dist/core/i18n.d.ts +21 -0
  141. package/dist/core/i18n.d.ts.map +1 -0
  142. package/dist/core/i18n.js +71 -0
  143. package/dist/core/i18n.js.map +1 -0
  144. package/dist/core/index.d.ts +5 -0
  145. package/dist/core/index.d.ts.map +1 -0
  146. package/dist/core/index.js +7 -0
  147. package/dist/core/index.js.map +1 -0
  148. package/dist/core/memory.d.ts +51 -0
  149. package/dist/core/memory.d.ts.map +1 -0
  150. package/dist/core/memory.js +174 -0
  151. package/dist/core/memory.js.map +1 -0
  152. package/dist/core/scroll.d.ts +21 -0
  153. package/dist/core/scroll.d.ts.map +1 -0
  154. package/dist/core/scroll.js +74 -0
  155. package/dist/core/scroll.js.map +1 -0
  156. package/dist/core/view-route.d.ts +62 -0
  157. package/dist/core/view-route.d.ts.map +1 -0
  158. package/dist/core/view-route.js +143 -0
  159. package/dist/core/view-route.js.map +1 -0
  160. package/dist/core/view-router.d.ts +27 -0
  161. package/dist/core/view-router.d.ts.map +1 -0
  162. package/dist/core/view-router.js +57 -0
  163. package/dist/core/view-router.js.map +1 -0
  164. package/dist/define/all.d.ts +13 -0
  165. package/dist/define/all.d.ts.map +1 -0
  166. package/dist/define/all.js +14 -0
  167. package/dist/define/all.js.map +1 -0
  168. package/dist/define/contracts.d.ts +2 -0
  169. package/dist/define/contracts.d.ts.map +1 -0
  170. package/dist/define/contracts.js +3 -0
  171. package/dist/define/contracts.js.map +1 -0
  172. package/dist/define/definitions.d.ts +3 -0
  173. package/dist/define/definitions.d.ts.map +1 -0
  174. package/dist/define/definitions.js +4 -0
  175. package/dist/define/definitions.js.map +1 -0
  176. package/dist/define/journal-table.d.ts +2 -0
  177. package/dist/define/journal-table.d.ts.map +1 -0
  178. package/dist/define/journal-table.js +3 -0
  179. package/dist/define/journal-table.js.map +1 -0
  180. package/dist/define/kpis.d.ts +2 -0
  181. package/dist/define/kpis.d.ts.map +1 -0
  182. package/dist/define/kpis.js +3 -0
  183. package/dist/define/kpis.js.map +1 -0
  184. package/dist/define/monitor.d.ts +2 -0
  185. package/dist/define/monitor.d.ts.map +1 -0
  186. package/dist/define/monitor.js +3 -0
  187. package/dist/define/monitor.js.map +1 -0
  188. package/dist/define/overview.d.ts +2 -0
  189. package/dist/define/overview.d.ts.map +1 -0
  190. package/dist/define/overview.js +3 -0
  191. package/dist/define/overview.js.map +1 -0
  192. package/dist/define/pipeline-graph.d.ts +2 -0
  193. package/dist/define/pipeline-graph.d.ts.map +1 -0
  194. package/dist/define/pipeline-graph.js +3 -0
  195. package/dist/define/pipeline-graph.js.map +1 -0
  196. package/dist/define/procs.d.ts +3 -0
  197. package/dist/define/procs.d.ts.map +1 -0
  198. package/dist/define/procs.js +4 -0
  199. package/dist/define/procs.js.map +1 -0
  200. package/dist/define/task-table.d.ts +2 -0
  201. package/dist/define/task-table.d.ts.map +1 -0
  202. package/dist/define/task-table.js +3 -0
  203. package/dist/define/task-table.js.map +1 -0
  204. package/dist/define/task-view.d.ts +2 -0
  205. package/dist/define/task-view.d.ts.map +1 -0
  206. package/dist/define/task-view.js +3 -0
  207. package/dist/define/task-view.js.map +1 -0
  208. package/dist/define/timeline.d.ts +2 -0
  209. package/dist/define/timeline.d.ts.map +1 -0
  210. package/dist/define/timeline.js +3 -0
  211. package/dist/define/timeline.js.map +1 -0
  212. package/dist/define/transcript.d.ts +2 -0
  213. package/dist/define/transcript.d.ts.map +1 -0
  214. package/dist/define/transcript.js +3 -0
  215. package/dist/define/transcript.js.map +1 -0
  216. package/dist/elements/lists/ca-contracts.d.ts +46 -0
  217. package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
  218. package/dist/elements/lists/ca-contracts.js +199 -0
  219. package/dist/elements/lists/ca-contracts.js.map +1 -0
  220. package/dist/elements/lists/ca-definitions.d.ts +41 -0
  221. package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
  222. package/dist/elements/lists/ca-definitions.js +182 -0
  223. package/dist/elements/lists/ca-definitions.js.map +1 -0
  224. package/dist/elements/lists/ca-journal-table.d.ts +37 -0
  225. package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
  226. package/dist/elements/lists/ca-journal-table.js +170 -0
  227. package/dist/elements/lists/ca-journal-table.js.map +1 -0
  228. package/dist/elements/lists/ca-panel-body.d.ts +42 -0
  229. package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
  230. package/dist/elements/lists/ca-panel-body.js +210 -0
  231. package/dist/elements/lists/ca-panel-body.js.map +1 -0
  232. package/dist/elements/lists/ca-panel-view.d.ts +21 -0
  233. package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
  234. package/dist/elements/lists/ca-panel-view.js +59 -0
  235. package/dist/elements/lists/ca-panel-view.js.map +1 -0
  236. package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
  237. package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
  238. package/dist/elements/lists/ca-proc-tree.js +63 -0
  239. package/dist/elements/lists/ca-proc-tree.js.map +1 -0
  240. package/dist/elements/lists/ca-procs-view.d.ts +27 -0
  241. package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
  242. package/dist/elements/lists/ca-procs-view.js +91 -0
  243. package/dist/elements/lists/ca-procs-view.js.map +1 -0
  244. package/dist/elements/lists/ca-task-table.d.ts +33 -0
  245. package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
  246. package/dist/elements/lists/ca-task-table.js +115 -0
  247. package/dist/elements/lists/ca-task-table.js.map +1 -0
  248. package/dist/elements/lists/index.d.ts +9 -0
  249. package/dist/elements/lists/index.d.ts.map +1 -0
  250. package/dist/elements/lists/index.js +9 -0
  251. package/dist/elements/lists/index.js.map +1 -0
  252. package/dist/elements/overview/ca-kpis.d.ts +32 -0
  253. package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
  254. package/dist/elements/overview/ca-kpis.js +62 -0
  255. package/dist/elements/overview/ca-kpis.js.map +1 -0
  256. package/dist/elements/overview/ca-model-usage.d.ts +25 -0
  257. package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
  258. package/dist/elements/overview/ca-model-usage.js +118 -0
  259. package/dist/elements/overview/ca-model-usage.js.map +1 -0
  260. package/dist/elements/overview/ca-overview.d.ts +67 -0
  261. package/dist/elements/overview/ca-overview.d.ts.map +1 -0
  262. package/dist/elements/overview/ca-overview.js +463 -0
  263. package/dist/elements/overview/ca-overview.js.map +1 -0
  264. package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
  265. package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
  266. package/dist/elements/overview/ca-pipeline-graph.js +616 -0
  267. package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
  268. package/dist/elements/overview/ca-quota.d.ts +42 -0
  269. package/dist/elements/overview/ca-quota.d.ts.map +1 -0
  270. package/dist/elements/overview/ca-quota.js +179 -0
  271. package/dist/elements/overview/ca-quota.js.map +1 -0
  272. package/dist/elements/overview/ca-run-driver.d.ts +33 -0
  273. package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
  274. package/dist/elements/overview/ca-run-driver.js +146 -0
  275. package/dist/elements/overview/ca-run-driver.js.map +1 -0
  276. package/dist/elements/overview/ca-services.d.ts +25 -0
  277. package/dist/elements/overview/ca-services.d.ts.map +1 -0
  278. package/dist/elements/overview/ca-services.js +77 -0
  279. package/dist/elements/overview/ca-services.js.map +1 -0
  280. package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
  281. package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
  282. package/dist/elements/overview/ca-spend-breakdown.js +108 -0
  283. package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
  284. package/dist/elements/overview/ca-timeline.d.ts +28 -0
  285. package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
  286. package/dist/elements/overview/ca-timeline.js +72 -0
  287. package/dist/elements/overview/ca-timeline.js.map +1 -0
  288. package/dist/elements/overview/ca-workers.d.ts +23 -0
  289. package/dist/elements/overview/ca-workers.d.ts.map +1 -0
  290. package/dist/elements/overview/ca-workers.js +86 -0
  291. package/dist/elements/overview/ca-workers.js.map +1 -0
  292. package/dist/elements/overview/index.d.ts +11 -0
  293. package/dist/elements/overview/index.d.ts.map +1 -0
  294. package/dist/elements/overview/index.js +11 -0
  295. package/dist/elements/overview/index.js.map +1 -0
  296. package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
  297. package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
  298. package/dist/elements/overview/pipeline-graph/actions.js +42 -0
  299. package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
  300. package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
  301. package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
  302. package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
  303. package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
  304. package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
  305. package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
  306. package/dist/elements/overview/pipeline-graph/host.js +2 -0
  307. package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
  308. package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
  309. package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
  310. package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
  311. package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
  312. package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
  313. package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
  314. package/dist/elements/overview/pipeline-graph/outline.js +111 -0
  315. package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
  316. package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
  317. package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
  318. package/dist/elements/overview/pipeline-graph/strings.js +49 -0
  319. package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
  320. package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
  321. package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
  322. package/dist/elements/overview/pipeline-graph/styles.js +96 -0
  323. package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
  324. package/dist/elements/shared/ca-definition.d.ts +26 -0
  325. package/dist/elements/shared/ca-definition.d.ts.map +1 -0
  326. package/dist/elements/shared/ca-definition.js +202 -0
  327. package/dist/elements/shared/ca-definition.js.map +1 -0
  328. package/dist/elements/shared/contract-parts.d.ts +35 -0
  329. package/dist/elements/shared/contract-parts.d.ts.map +1 -0
  330. package/dist/elements/shared/contract-parts.js +167 -0
  331. package/dist/elements/shared/contract-parts.js.map +1 -0
  332. package/dist/elements/shared/file-card.d.ts +17 -0
  333. package/dist/elements/shared/file-card.d.ts.map +1 -0
  334. package/dist/elements/shared/file-card.js +37 -0
  335. package/dist/elements/shared/file-card.js.map +1 -0
  336. package/dist/elements/shared/prompt-text.d.ts +5 -0
  337. package/dist/elements/shared/prompt-text.d.ts.map +1 -0
  338. package/dist/elements/shared/prompt-text.js +13 -0
  339. package/dist/elements/shared/prompt-text.js.map +1 -0
  340. package/dist/elements/shared/task-chip.d.ts +10 -0
  341. package/dist/elements/shared/task-chip.d.ts.map +1 -0
  342. package/dist/elements/shared/task-chip.js +19 -0
  343. package/dist/elements/shared/task-chip.js.map +1 -0
  344. package/dist/elements/shell/ca-clock.d.ts +13 -0
  345. package/dist/elements/shell/ca-clock.d.ts.map +1 -0
  346. package/dist/elements/shell/ca-clock.js +30 -0
  347. package/dist/elements/shell/ca-clock.js.map +1 -0
  348. package/dist/elements/shell/ca-hosts.d.ts +21 -0
  349. package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
  350. package/dist/elements/shell/ca-hosts.js +97 -0
  351. package/dist/elements/shell/ca-hosts.js.map +1 -0
  352. package/dist/elements/shell/ca-monitor.d.ts +182 -0
  353. package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
  354. package/dist/elements/shell/ca-monitor.js +549 -0
  355. package/dist/elements/shell/ca-monitor.js.map +1 -0
  356. package/dist/elements/shell/ca-run-picker.d.ts +71 -0
  357. package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
  358. package/dist/elements/shell/ca-run-picker.js +313 -0
  359. package/dist/elements/shell/ca-run-picker.js.map +1 -0
  360. package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
  361. package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
  362. package/dist/elements/shell/ca-theme-switch.js +186 -0
  363. package/dist/elements/shell/ca-theme-switch.js.map +1 -0
  364. package/dist/elements/shell/ca-toasts.d.ts +23 -0
  365. package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
  366. package/dist/elements/shell/ca-toasts.js +88 -0
  367. package/dist/elements/shell/ca-toasts.js.map +1 -0
  368. package/dist/elements/shell/header.d.ts +13 -0
  369. package/dist/elements/shell/header.d.ts.map +1 -0
  370. package/dist/elements/shell/header.js +38 -0
  371. package/dist/elements/shell/header.js.map +1 -0
  372. package/dist/elements/shell/styles.d.ts +2 -0
  373. package/dist/elements/shell/styles.d.ts.map +1 -0
  374. package/dist/elements/shell/styles.js +72 -0
  375. package/dist/elements/shell/styles.js.map +1 -0
  376. package/dist/elements/shell/tabs.d.ts +32 -0
  377. package/dist/elements/shell/tabs.d.ts.map +1 -0
  378. package/dist/elements/shell/tabs.js +125 -0
  379. package/dist/elements/shell/tabs.js.map +1 -0
  380. package/dist/elements/shell/views.d.ts +27 -0
  381. package/dist/elements/shell/views.d.ts.map +1 -0
  382. package/dist/elements/shell/views.js +55 -0
  383. package/dist/elements/shell/views.js.map +1 -0
  384. package/dist/elements/task/ca-task-view.d.ts +55 -0
  385. package/dist/elements/task/ca-task-view.d.ts.map +1 -0
  386. package/dist/elements/task/ca-task-view.js +199 -0
  387. package/dist/elements/task/ca-task-view.js.map +1 -0
  388. package/dist/elements/task/ca-transcript.d.ts +74 -0
  389. package/dist/elements/task/ca-transcript.d.ts.map +1 -0
  390. package/dist/elements/task/ca-transcript.js +241 -0
  391. package/dist/elements/task/ca-transcript.js.map +1 -0
  392. package/dist/elements/task/context.d.ts +57 -0
  393. package/dist/elements/task/context.d.ts.map +1 -0
  394. package/dist/elements/task/context.js +61 -0
  395. package/dist/elements/task/context.js.map +1 -0
  396. package/dist/elements/task/header.d.ts +9 -0
  397. package/dist/elements/task/header.d.ts.map +1 -0
  398. package/dist/elements/task/header.js +291 -0
  399. package/dist/elements/task/header.js.map +1 -0
  400. package/dist/elements/task/index.d.ts +3 -0
  401. package/dist/elements/task/index.d.ts.map +1 -0
  402. package/dist/elements/task/index.js +3 -0
  403. package/dist/elements/task/index.js.map +1 -0
  404. package/dist/elements/task/inputs.d.ts +28 -0
  405. package/dist/elements/task/inputs.d.ts.map +1 -0
  406. package/dist/elements/task/inputs.js +27 -0
  407. package/dist/elements/task/inputs.js.map +1 -0
  408. package/dist/elements/task/panes/definition.d.ts +5 -0
  409. package/dist/elements/task/panes/definition.d.ts.map +1 -0
  410. package/dist/elements/task/panes/definition.js +5 -0
  411. package/dist/elements/task/panes/definition.js.map +1 -0
  412. package/dist/elements/task/panes/io.d.ts +8 -0
  413. package/dist/elements/task/panes/io.d.ts.map +1 -0
  414. package/dist/elements/task/panes/io.js +184 -0
  415. package/dist/elements/task/panes/io.js.map +1 -0
  416. package/dist/elements/task/panes/transcript.d.ts +5 -0
  417. package/dist/elements/task/panes/transcript.d.ts.map +1 -0
  418. package/dist/elements/task/panes/transcript.js +29 -0
  419. package/dist/elements/task/panes/transcript.js.map +1 -0
  420. package/dist/elements/task/styles.d.ts +2 -0
  421. package/dist/elements/task/styles.d.ts.map +1 -0
  422. package/dist/elements/task/styles.js +66 -0
  423. package/dist/elements/task/styles.js.map +1 -0
  424. package/dist/elements/trends/ca-trends.d.ts +55 -0
  425. package/dist/elements/trends/ca-trends.d.ts.map +1 -0
  426. package/dist/elements/trends/ca-trends.js +213 -0
  427. package/dist/elements/trends/ca-trends.js.map +1 -0
  428. package/dist/index.d.ts +14 -0
  429. package/dist/index.d.ts.map +1 -0
  430. package/dist/index.js +22 -0
  431. package/dist/index.js.map +1 -0
  432. package/dist/lib/tone.d.ts +29 -0
  433. package/dist/lib/tone.d.ts.map +1 -0
  434. package/dist/lib/tone.js +97 -0
  435. package/dist/lib/tone.js.map +1 -0
  436. package/dist/lib/trends.d.ts +15 -0
  437. package/dist/lib/trends.d.ts.map +1 -0
  438. package/dist/lib/trends.js +36 -0
  439. package/dist/lib/trends.js.map +1 -0
  440. package/dist/locales/codes.d.ts +14 -0
  441. package/dist/locales/codes.d.ts.map +1 -0
  442. package/dist/locales/codes.js +21 -0
  443. package/dist/locales/codes.js.map +1 -0
  444. package/dist/locales/ja.d.ts +785 -0
  445. package/dist/locales/ja.d.ts.map +1 -0
  446. package/dist/locales/ja.js +791 -0
  447. package/dist/locales/ja.js.map +1 -0
  448. package/dist/words/api-error.d.ts +4 -0
  449. package/dist/words/api-error.d.ts.map +1 -0
  450. package/dist/words/api-error.js +13 -0
  451. package/dist/words/api-error.js.map +1 -0
  452. package/dist/words/attempts.d.ts +17 -0
  453. package/dist/words/attempts.d.ts.map +1 -0
  454. package/dist/words/attempts.js +26 -0
  455. package/dist/words/attempts.js.map +1 -0
  456. package/dist/words/causes.d.ts +33 -0
  457. package/dist/words/causes.d.ts.map +1 -0
  458. package/dist/words/causes.js +58 -0
  459. package/dist/words/causes.js.map +1 -0
  460. package/dist/words/changes.d.ts +9 -0
  461. package/dist/words/changes.d.ts.map +1 -0
  462. package/dist/words/changes.js +23 -0
  463. package/dist/words/changes.js.map +1 -0
  464. package/dist/words/claims.d.ts +9 -0
  465. package/dist/words/claims.d.ts.map +1 -0
  466. package/dist/words/claims.js +12 -0
  467. package/dist/words/claims.js.map +1 -0
  468. package/dist/words/context.d.ts +18 -0
  469. package/dist/words/context.d.ts.map +1 -0
  470. package/dist/words/context.js +39 -0
  471. package/dist/words/context.js.map +1 -0
  472. package/dist/words/contract.d.ts +25 -0
  473. package/dist/words/contract.d.ts.map +1 -0
  474. package/dist/words/contract.js +52 -0
  475. package/dist/words/contract.js.map +1 -0
  476. package/dist/words/credential.d.ts +5 -0
  477. package/dist/words/credential.d.ts.map +1 -0
  478. package/dist/words/credential.js +7 -0
  479. package/dist/words/credential.js.map +1 -0
  480. package/dist/words/executor.d.ts +12 -0
  481. package/dist/words/executor.d.ts.map +1 -0
  482. package/dist/words/executor.js +20 -0
  483. package/dist/words/executor.js.map +1 -0
  484. package/dist/words/export.d.ts +8 -0
  485. package/dist/words/export.d.ts.map +1 -0
  486. package/dist/words/export.js +17 -0
  487. package/dist/words/export.js.map +1 -0
  488. package/dist/words/format.d.ts +36 -0
  489. package/dist/words/format.d.ts.map +1 -0
  490. package/dist/words/format.js +109 -0
  491. package/dist/words/format.js.map +1 -0
  492. package/dist/words/hops.d.ts +12 -0
  493. package/dist/words/hops.d.ts.map +1 -0
  494. package/dist/words/hops.js +27 -0
  495. package/dist/words/hops.js.map +1 -0
  496. package/dist/words/hosts.d.ts +18 -0
  497. package/dist/words/hosts.d.ts.map +1 -0
  498. package/dist/words/hosts.js +22 -0
  499. package/dist/words/hosts.js.map +1 -0
  500. package/dist/words/index.d.ts +28 -0
  501. package/dist/words/index.d.ts.map +1 -0
  502. package/dist/words/index.js +32 -0
  503. package/dist/words/index.js.map +1 -0
  504. package/dist/words/models.d.ts +10 -0
  505. package/dist/words/models.d.ts.map +1 -0
  506. package/dist/words/models.js +45 -0
  507. package/dist/words/models.js.map +1 -0
  508. package/dist/words/outcome.d.ts +14 -0
  509. package/dist/words/outcome.d.ts.map +1 -0
  510. package/dist/words/outcome.js +58 -0
  511. package/dist/words/outcome.js.map +1 -0
  512. package/dist/words/panels.d.ts +17 -0
  513. package/dist/words/panels.d.ts.map +1 -0
  514. package/dist/words/panels.js +63 -0
  515. package/dist/words/panels.js.map +1 -0
  516. package/dist/words/passes.d.ts +11 -0
  517. package/dist/words/passes.d.ts.map +1 -0
  518. package/dist/words/passes.js +13 -0
  519. package/dist/words/passes.js.map +1 -0
  520. package/dist/words/preflight.d.ts +28 -0
  521. package/dist/words/preflight.d.ts.map +1 -0
  522. package/dist/words/preflight.js +30 -0
  523. package/dist/words/preflight.js.map +1 -0
  524. package/dist/words/priority.d.ts +5 -0
  525. package/dist/words/priority.d.ts.map +1 -0
  526. package/dist/words/priority.js +7 -0
  527. package/dist/words/priority.js.map +1 -0
  528. package/dist/words/prompt.d.ts +10 -0
  529. package/dist/words/prompt.d.ts.map +1 -0
  530. package/dist/words/prompt.js +17 -0
  531. package/dist/words/prompt.js.map +1 -0
  532. package/dist/words/quota.d.ts +35 -0
  533. package/dist/words/quota.d.ts.map +1 -0
  534. package/dist/words/quota.js +102 -0
  535. package/dist/words/quota.js.map +1 -0
  536. package/dist/words/rests.d.ts +26 -0
  537. package/dist/words/rests.d.ts.map +1 -0
  538. package/dist/words/rests.js +77 -0
  539. package/dist/words/rests.js.map +1 -0
  540. package/dist/words/rounds.d.ts +14 -0
  541. package/dist/words/rounds.d.ts.map +1 -0
  542. package/dist/words/rounds.js +60 -0
  543. package/dist/words/rounds.js.map +1 -0
  544. package/dist/words/row-extras.d.ts +7 -0
  545. package/dist/words/row-extras.d.ts.map +1 -0
  546. package/dist/words/row-extras.js +26 -0
  547. package/dist/words/row-extras.js.map +1 -0
  548. package/dist/words/run-line.d.ts +40 -0
  549. package/dist/words/run-line.d.ts.map +1 -0
  550. package/dist/words/run-line.js +66 -0
  551. package/dist/words/run-line.js.map +1 -0
  552. package/dist/words/services.d.ts +16 -0
  553. package/dist/words/services.d.ts.map +1 -0
  554. package/dist/words/services.js +45 -0
  555. package/dist/words/services.js.map +1 -0
  556. package/dist/words/stop.d.ts +6 -0
  557. package/dist/words/stop.d.ts.map +1 -0
  558. package/dist/words/stop.js +69 -0
  559. package/dist/words/stop.js.map +1 -0
  560. package/dist/words/table.d.ts +4 -0
  561. package/dist/words/table.d.ts.map +1 -0
  562. package/dist/words/table.js +8 -0
  563. package/dist/words/table.js.map +1 -0
  564. package/dist/words/task-definition.d.ts +23 -0
  565. package/dist/words/task-definition.d.ts.map +1 -0
  566. package/dist/words/task-definition.js +27 -0
  567. package/dist/words/task-definition.js.map +1 -0
  568. package/dist/words/time-box.d.ts +8 -0
  569. package/dist/words/time-box.d.ts.map +1 -0
  570. package/dist/words/time-box.js +12 -0
  571. package/dist/words/time-box.js.map +1 -0
  572. package/dist/words/trends.d.ts +86 -0
  573. package/dist/words/trends.d.ts.map +1 -0
  574. package/dist/words/trends.js +104 -0
  575. package/dist/words/trends.js.map +1 -0
  576. package/docs/embed.md +121 -0
  577. package/docs/events.md +38 -0
  578. package/docs/examples/embed.html +31 -0
  579. package/docs/examples/journal.ts +32 -0
  580. package/docs/examples/live-transcript.ts +22 -0
  581. package/docs/examples/vite/index.html +30 -0
  582. package/docs/examples/vite/main.ts +23 -0
  583. package/docs/languages.md +48 -0
  584. package/docs/live-data.md +17 -0
  585. package/docs/theming.md +21 -0
  586. package/docs/tsconfig.json +14 -0
  587. package/package.json +131 -4
  588. package/src/adapters/check-rows.ts +81 -0
  589. package/src/adapters/filters.ts +76 -0
  590. package/src/adapters/graph/compound.ts +359 -0
  591. package/src/adapters/graph/flow-index.ts +154 -0
  592. package/src/adapters/graph/highlight.ts +40 -0
  593. package/src/adapters/graph/input.ts +236 -0
  594. package/src/adapters/graph/layer.ts +92 -0
  595. package/src/adapters/graph/matrix.ts +133 -0
  596. package/src/adapters/graph/plans.fixture.ts +194 -0
  597. package/src/adapters/graph/project.ts +358 -0
  598. package/src/adapters/graph/selection.ts +54 -0
  599. package/src/adapters/graph/states.ts +10 -0
  600. package/src/adapters/graph/types.ts +148 -0
  601. package/src/adapters/graph/words.ts +146 -0
  602. package/src/adapters/index.ts +22 -0
  603. package/src/adapters/journal-columns.ts +200 -0
  604. package/src/adapters/kpi-tiles.ts +211 -0
  605. package/src/adapters/lanes.ts +98 -0
  606. package/src/adapters/model-shares.ts +62 -0
  607. package/src/adapters/panel-body.ts +112 -0
  608. package/src/adapters/preflight.ts +27 -0
  609. package/src/adapters/task-columns.ts +120 -0
  610. package/src/adapters/transcript/index.ts +14 -0
  611. package/src/adapters/transcript/model.ts +156 -0
  612. package/src/adapters/transcript/rounds.ts +86 -0
  613. package/src/adapters/transcript/sections.ts +82 -0
  614. package/src/adapters/transcript/web.ts +40 -0
  615. package/src/adapters/transcript/who.ts +53 -0
  616. package/src/adapters/trends.ts +337 -0
  617. package/src/controllers/locale.ts +47 -0
  618. package/src/controllers/shortcuts.ts +69 -0
  619. package/src/controllers/stream.ts +103 -0
  620. package/src/controllers/task-detail.ts +54 -0
  621. package/src/controllers/theme.ts +73 -0
  622. package/src/core/events.ts +120 -0
  623. package/src/core/i18n.ts +76 -0
  624. package/src/core/index.ts +6 -0
  625. package/src/core/memory.ts +177 -0
  626. package/src/core/scroll.ts +73 -0
  627. package/src/core/view-route.ts +177 -0
  628. package/src/core/view-router.ts +66 -0
  629. package/src/define/all.ts +13 -0
  630. package/src/define/contracts.ts +2 -0
  631. package/src/define/definitions.ts +3 -0
  632. package/src/define/journal-table.ts +2 -0
  633. package/src/define/kpis.ts +2 -0
  634. package/src/define/monitor.ts +2 -0
  635. package/src/define/overview.ts +2 -0
  636. package/src/define/pipeline-graph.ts +2 -0
  637. package/src/define/procs.ts +3 -0
  638. package/src/define/task-table.ts +2 -0
  639. package/src/define/task-view.ts +2 -0
  640. package/src/define/timeline.ts +2 -0
  641. package/src/define/transcript.ts +2 -0
  642. package/src/elements/lists/ca-contracts.ts +204 -0
  643. package/src/elements/lists/ca-definitions.ts +170 -0
  644. package/src/elements/lists/ca-journal-table.ts +141 -0
  645. package/src/elements/lists/ca-panel-body.ts +200 -0
  646. package/src/elements/lists/ca-panel-view.ts +50 -0
  647. package/src/elements/lists/ca-proc-tree.ts +57 -0
  648. package/src/elements/lists/ca-procs-view.ts +89 -0
  649. package/src/elements/lists/ca-task-table.ts +94 -0
  650. package/src/elements/lists/index.ts +8 -0
  651. package/src/elements/overview/ca-kpis.ts +51 -0
  652. package/src/elements/overview/ca-model-usage.ts +113 -0
  653. package/src/elements/overview/ca-overview.ts +499 -0
  654. package/src/elements/overview/ca-pipeline-graph.ts +617 -0
  655. package/src/elements/overview/ca-quota.ts +164 -0
  656. package/src/elements/overview/ca-run-driver.ts +140 -0
  657. package/src/elements/overview/ca-services.ts +66 -0
  658. package/src/elements/overview/ca-spend-breakdown.ts +107 -0
  659. package/src/elements/overview/ca-timeline.ts +57 -0
  660. package/src/elements/overview/ca-workers.ts +82 -0
  661. package/src/elements/overview/index.ts +10 -0
  662. package/src/elements/overview/pipeline-graph/actions.ts +45 -0
  663. package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
  664. package/src/elements/overview/pipeline-graph/host.ts +26 -0
  665. package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
  666. package/src/elements/overview/pipeline-graph/outline.ts +150 -0
  667. package/src/elements/overview/pipeline-graph/strings.ts +53 -0
  668. package/src/elements/overview/pipeline-graph/styles.ts +97 -0
  669. package/src/elements/shared/ca-definition.ts +206 -0
  670. package/src/elements/shared/contract-parts.ts +174 -0
  671. package/src/elements/shared/file-card.ts +49 -0
  672. package/src/elements/shared/prompt-text.ts +13 -0
  673. package/src/elements/shared/task-chip.ts +18 -0
  674. package/src/elements/shell/ca-clock.ts +27 -0
  675. package/src/elements/shell/ca-hosts.ts +93 -0
  676. package/src/elements/shell/ca-monitor.ts +528 -0
  677. package/src/elements/shell/ca-run-picker.ts +284 -0
  678. package/src/elements/shell/ca-theme-switch.ts +170 -0
  679. package/src/elements/shell/ca-toasts.ts +100 -0
  680. package/src/elements/shell/header.ts +45 -0
  681. package/src/elements/shell/styles.ts +72 -0
  682. package/src/elements/shell/tabs.ts +143 -0
  683. package/src/elements/shell/views.ts +67 -0
  684. package/src/elements/task/ca-task-view.ts +157 -0
  685. package/src/elements/task/ca-transcript.ts +214 -0
  686. package/src/elements/task/context.ts +105 -0
  687. package/src/elements/task/header.ts +296 -0
  688. package/src/elements/task/index.ts +2 -0
  689. package/src/elements/task/inputs.ts +46 -0
  690. package/src/elements/task/panes/definition.ts +7 -0
  691. package/src/elements/task/panes/io.ts +190 -0
  692. package/src/elements/task/panes/transcript.ts +29 -0
  693. package/src/elements/task/styles.ts +66 -0
  694. package/src/elements/trends/ca-trends.ts +204 -0
  695. package/src/index.ts +23 -0
  696. package/src/lib/tone.ts +109 -0
  697. package/src/lib/trends.ts +44 -0
  698. package/src/locales/codes.ts +23 -0
  699. package/src/locales/ja.ts +795 -0
  700. package/src/words/api-error.ts +17 -0
  701. package/src/words/attempts.ts +28 -0
  702. package/src/words/causes.ts +67 -0
  703. package/src/words/changes.ts +29 -0
  704. package/src/words/claims.ts +16 -0
  705. package/src/words/context.ts +47 -0
  706. package/src/words/contract.ts +63 -0
  707. package/src/words/credential.ts +8 -0
  708. package/src/words/executor.ts +22 -0
  709. package/src/words/export.ts +22 -0
  710. package/src/words/format.ts +107 -0
  711. package/src/words/hops.ts +30 -0
  712. package/src/words/hosts.ts +37 -0
  713. package/src/words/index.ts +31 -0
  714. package/src/words/models.ts +50 -0
  715. package/src/words/outcome.ts +61 -0
  716. package/src/words/panels.ts +71 -0
  717. package/src/words/passes.ts +18 -0
  718. package/src/words/preflight.ts +53 -0
  719. package/src/words/priority.ts +8 -0
  720. package/src/words/prompt.ts +20 -0
  721. package/src/words/quota.ts +108 -0
  722. package/src/words/rests.ts +96 -0
  723. package/src/words/rounds.ts +56 -0
  724. package/src/words/row-extras.ts +24 -0
  725. package/src/words/run-line.ts +77 -0
  726. package/src/words/services.ts +57 -0
  727. package/src/words/stop.ts +65 -0
  728. package/src/words/table.ts +10 -0
  729. package/src/words/task-definition.ts +37 -0
  730. package/src/words/time-box.ts +21 -0
  731. package/src/words/trends.ts +118 -0
@@ -0,0 +1,36 @@
1
+ export { esc, fmtDur } from '@contraagent/elements';
2
+ /**
3
+ * An ISO time in the reader's time zone, as the UI locale writes it: `10:38:40`,
4
+ * or with the date `Oct 12, 10:38:40` (the month as a word, so no reader takes
5
+ * the day for the month). '' when there is no time.
6
+ */
7
+ export declare function localTime(ts: string | null | undefined, withDate?: boolean, locale?: string): string;
8
+ /** An ISO time as `just now`, `5m ago`, `3h ago`, `2d ago` (the run picker only; rows and chips show `localTime`). */
9
+ export declare function relAgo(iso: string | null | undefined, now?: number): string;
10
+ /** `s` as a sentence on its own: its first letter upper-cased (a phrase that also follows a colon starts lower case). */
11
+ export declare const sentence: (s: string) => string;
12
+ /** The facts of one row, chip or line, in order, without the empty ones (for `factLine`). */
13
+ export declare const factList: (...xs: (string | null | undefined | false)[]) => string[];
14
+ /** Facts of one row, chip or line, in order: `attempt 1 | done | 0.2s`. Empty facts are left out. */
15
+ export declare const facts: (...xs: (string | null | undefined | false)[]) => string;
16
+ /**
17
+ * Words a reader reads as a list, as the UI locale writes one: `Pass 1, Pass 2, and Pass 3`
18
+ * in English, `1 周目、2 周目、3 周目` in Japanese. Codes and identifiers are joined with `, ` instead.
19
+ */
20
+ export declare function listText(items: readonly string[], locale?: string): string;
21
+ /** `kind · unit`, or the bare kind for a run-scope task. */
22
+ export declare const kindUnit: (x: {
23
+ kind?: string | null | undefined;
24
+ unit?: string | null | undefined;
25
+ }, sep?: string) => string;
26
+ /** The first line of a text, cut at 100 characters. */
27
+ export declare function firstLine(s: string | null | undefined): string;
28
+ /** A token count, compact: `950`, `1.2k`, `34k`, `1.3M`. */
29
+ export declare function tokenCount(n: number | null | undefined): string;
30
+ /** A cost in USD: `$0.041`, `$1.23`, `<$0.001`; '—' when none was reported. */
31
+ export declare function usd(v: number | null | undefined): string;
32
+ /** A row's unread event types with their counts (`session_settled ×2, x ×1`); '' when none. */
33
+ export declare function unreadEvents(rows: readonly {
34
+ unread_events?: Record<string, number> | null;
35
+ }[]): string;
36
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/words/format.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmBpD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,UAAQ,EAAE,MAAM,GAAE,MAAoB,GAAG,MAAM,CAK/G;AAED,sHAAsH;AACtH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,MAAM,CAQ/E;AAED,yHAAyH;AACzH,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,MAAiE,CAAC;AAEvG,6FAA6F;AAC7F,eAAO,MAAM,QAAQ,GAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAG,MAAM,EAAwC,CAAC;AAEvH,qGAAqG;AACrG,eAAO,MAAM,KAAK,GAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAG,MAAqC,CAAC;AAI3G;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,GAAE,MAAoB,GAAG,MAAM,CAOvF;AAED,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,GAAI,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EAAE,YAAW,KAAG,MAClE,CAAC;AAEjD,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAK9D;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAM/D;AAED,+EAA+E;AAC/E,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMxD;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,MAAM,CAIvG"}
@@ -0,0 +1,109 @@
1
+ // Durations, times and small text helpers shared by the views.
2
+ import { msg, str } from '@lit/localize';
3
+ import { getLocale } from '../core/i18n.js';
4
+ // The formats that read the same in every language are the generic package's.
5
+ export { esc, fmtDur } from '@contraagent/elements';
6
+ const formats = new Map();
7
+ function formatter(locale, withDate) {
8
+ const id = `${locale}|${withDate}`;
9
+ let f = formats.get(id);
10
+ if (!f) {
11
+ f = new Intl.DateTimeFormat(locale, {
12
+ ...(withDate ? { month: 'short', day: 'numeric' } : {}),
13
+ hour: '2-digit',
14
+ minute: '2-digit',
15
+ second: '2-digit',
16
+ hourCycle: 'h23',
17
+ });
18
+ formats.set(id, f);
19
+ }
20
+ return f;
21
+ }
22
+ /**
23
+ * An ISO time in the reader's time zone, as the UI locale writes it: `10:38:40`,
24
+ * or with the date `Oct 12, 10:38:40` (the month as a word, so no reader takes
25
+ * the day for the month). '' when there is no time.
26
+ */
27
+ export function localTime(ts, withDate = false, locale = getLocale()) {
28
+ if (!ts)
29
+ return '';
30
+ const d = new Date(ts);
31
+ if (Number.isNaN(d.getTime()))
32
+ return ts;
33
+ return formatter(locale, withDate).format(d);
34
+ }
35
+ /** An ISO time as `just now`, `5m ago`, `3h ago`, `2d ago` (the run picker only; rows and chips show `localTime`). */
36
+ export function relAgo(iso, now = Date.now()) {
37
+ const t = Date.parse(iso || '');
38
+ if (Number.isNaN(t))
39
+ return '';
40
+ const s = Math.max(0, (now - t) / 1000);
41
+ if (s < 60)
42
+ return msg('just now');
43
+ if (s < 3600)
44
+ return msg(str `${Math.floor(s / 60)}m ago`);
45
+ if (s < 86400)
46
+ return msg(str `${Math.floor(s / 3600)}h ago`);
47
+ return msg(str `${Math.floor(s / 86400)}d ago`);
48
+ }
49
+ /** `s` as a sentence on its own: its first letter upper-cased (a phrase that also follows a colon starts lower case). */
50
+ export const sentence = (s) => s.charAt(0).toLocaleUpperCase(getLocale()) + s.slice(1);
51
+ /** The facts of one row, chip or line, in order, without the empty ones (for `factLine`). */
52
+ export const factList = (...xs) => xs.filter((x) => !!x);
53
+ /** Facts of one row, chip or line, in order: `attempt 1 | done | 0.2s`. Empty facts are left out. */
54
+ export const facts = (...xs) => factList(...xs).join(' | ');
55
+ const lists = new Map();
56
+ /**
57
+ * Words a reader reads as a list, as the UI locale writes one: `Pass 1, Pass 2, and Pass 3`
58
+ * in English, `1 周目、2 周目、3 周目` in Japanese. Codes and identifiers are joined with `, ` instead.
59
+ */
60
+ export function listText(items, locale = getLocale()) {
61
+ let f = lists.get(locale);
62
+ if (!f) {
63
+ f = new Intl.ListFormat(locale, { type: 'conjunction' });
64
+ lists.set(locale, f);
65
+ }
66
+ return f.format(items);
67
+ }
68
+ /** `kind · unit`, or the bare kind for a run-scope task. */
69
+ export const kindUnit = (x, sep = ' · ') => `${x.kind ?? ''}${x.unit ? sep + x.unit : ''}`;
70
+ /** The first line of a text, cut at 100 characters. */
71
+ export function firstLine(s) {
72
+ const t = (s || '').trim();
73
+ if (!t)
74
+ return '';
75
+ const l = (t.split('\n')[0] || '').trim();
76
+ return l.length > 100 ? `${l.slice(0, 100)}…` : l;
77
+ }
78
+ /** A token count, compact: `950`, `1.2k`, `34k`, `1.3M`. */
79
+ export function tokenCount(n) {
80
+ const v = n ?? 0;
81
+ if (v < 1000)
82
+ return String(Math.round(v));
83
+ if (v < 10_000)
84
+ return `${(v / 1000).toFixed(1).replace(/\.0$/, '')}k`;
85
+ if (v < 1_000_000)
86
+ return `${Math.round(v / 1000)}k`;
87
+ return `${(v / 1_000_000).toFixed(1).replace(/\.0$/, '')}M`;
88
+ }
89
+ /** A cost in USD: `$0.041`, `$1.23`, `<$0.001`; '—' when none was reported. */
90
+ export function usd(v) {
91
+ if (v === null || v === undefined)
92
+ return '—';
93
+ if (v === 0)
94
+ return '$0';
95
+ if (v < 0.001)
96
+ return '<$0.001';
97
+ if (v < 1)
98
+ return `$${v.toFixed(3)}`; // fixed decimals, so columns of costs line up
99
+ return `$${v.toFixed(2)}`;
100
+ }
101
+ /** A row's unread event types with their counts (`session_settled ×2, x ×1`); '' when none. */
102
+ export function unreadEvents(rows) {
103
+ const total = new Map();
104
+ for (const r of rows)
105
+ for (const [k, n] of Object.entries(r.unread_events ?? {}))
106
+ total.set(k, (total.get(k) ?? 0) + n);
107
+ return [...total].map(([k, n]) => `${k} ×${n}`).join(', ');
108
+ }
109
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/words/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Hop, SkippedHop } from '@contraagent/api';
2
+ /** What a model switch is, for tooltips and the transcript's legend. */
3
+ export declare const modelSwitchTip: () => string;
4
+ /**
5
+ * A model switch in words, the one form every view uses:
6
+ * `primary-model (rate limited) → fallback-model`; '' for a single hop.
7
+ * The hops passed over without an agent session (`skipped`: their identity was
8
+ * paused) come first: `primary-model (identity paused) → fallback-model`.
9
+ * With `time`, the attempt's time follows: `... → fallback-model | 0.2s`.
10
+ */
11
+ export declare function modelSwitch(hops: readonly Hop[] | null | undefined, time?: number | null, skipped?: readonly SkippedHop[] | null): string;
12
+ //# sourceMappingURL=hops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hops.d.ts","sourceRoot":"","sources":["../../src/words/hops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMxD,wEAAwE;AACxE,eAAO,MAAM,cAAc,QAAO,MAAuF,CAAC;AAK1H;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,GAAG,MAAM,CASzI"}
@@ -0,0 +1,27 @@
1
+ import { msg, str } from '@lit/localize';
2
+ import { fmtDur } from './format.js';
3
+ import { skippedHopStep } from './rests.js';
4
+ import { stopLabel } from './stop.js';
5
+ /** What a model switch is, for tooltips and the transcript's legend. */
6
+ export const modelSwitchTip = () => msg('A new agent session on the next model after a failed one (Router hops)');
7
+ /** One hop's model, or its route when the journal names no model. */
8
+ const hopModel = (h) => h.model || h.route || '—';
9
+ /**
10
+ * A model switch in words, the one form every view uses:
11
+ * `primary-model (rate limited) → fallback-model`; '' for a single hop.
12
+ * The hops passed over without an agent session (`skipped`: their identity was
13
+ * paused) come first: `primary-model (identity paused) → fallback-model`.
14
+ * With `time`, the attempt's time follows: `... → fallback-model | 0.2s`.
15
+ */
16
+ export function modelSwitch(hops, time, skipped) {
17
+ const passed = [...new Map((skipped ?? []).map((h) => [h.route || h.model, h])).values()];
18
+ if (!hops || hops.length + passed.length < 2 || !hops.length)
19
+ return '';
20
+ const steps = [
21
+ ...passed.map(skippedHopStep),
22
+ ...hops.map((h, i) => (i < hops.length - 1 ? msg(str `${hopModel(h)} (${stopLabel(h.stop)})`) : hopModel(h))),
23
+ ];
24
+ const chain = steps.join(' → ');
25
+ return time === undefined || time === null ? chain : `${chain} | ${fmtDur(time)}`;
26
+ }
27
+ //# sourceMappingURL=hops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hops.js","sourceRoot":"","sources":["../../src/words/hops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;AAE1H,qEAAqE;AACrE,MAAM,QAAQ,GAAG,CAAC,CAA+B,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAuC,EAAE,IAAoB,EAAE,OAAsC;IAC/H,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC7B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7G,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACpF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { HostSummary } from '@contraagent/api';
2
+ /** A run whose host stopped reporting (`RunSummary.unresponsive`), as a status value. */
3
+ export declare const noReportLabel: () => string;
4
+ /** A host's state: `up`, or `no report` (its reports stopped, or it never reported). */
5
+ export declare const hostStateLabel: (h: Pick<HostSummary, "up">) => string;
6
+ /** A host's state with the time of its last report where one is known: `no report since Oct 13, 10:41:03`. */
7
+ export declare const hostStateSince: (h: Pick<HostSummary, "up" | "last_seen">) => string;
8
+ /** When a host last reported: `Last report Oct 13, 10:41:03`; '' when it never did. */
9
+ export declare const lastReport: (h: Pick<HostSummary, "last_seen"> | undefined) => string;
10
+ /** A host's id as a fact: `Host h1`; for a run whose run.json names none, `No host id`. */
11
+ export declare const hostFact: (id: string) => string;
12
+ /** How many runs: `1 run`, `4 runs`. */
13
+ export declare const runCount: (n: number) => string;
14
+ /** How many runs have no report from their host: `1 with no report from host`. */
15
+ export declare const noReportCount: (n: number) => string;
16
+ /** The hosts in one line: `2 hosts | 1 with no report`. */
17
+ export declare function hostsLine(hosts: readonly Pick<HostSummary, 'up'>[]): string;
18
+ //# sourceMappingURL=hosts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosts.d.ts","sourceRoot":"","sources":["../../src/words/hosts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,yFAAyF;AACzF,eAAO,MAAM,aAAa,QAAO,MAAoC,CAAC;AAEtE,wFAAwF;AACxF,eAAO,MAAM,cAAc,GAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAG,MACyB,CAAC;AAEtF,8GAA8G;AAC9G,eAAO,MAAM,cAAc,GAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,KAAG,MAC4B,CAAC;AAEvG,uFAAuF;AACvF,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,SAAS,KAAG,MACA,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,MAAyD,CAAC;AAEhG,wCAAwC;AACxC,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,MAAwD,CAAC;AAE9F,kFAAkF;AAClF,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAAiD,CAAC;AAE5F,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,CAG3E"}
@@ -0,0 +1,22 @@
1
+ import { msg, str } from '@lit/localize';
2
+ import { facts, localTime } from './format.js';
3
+ /** A run whose host stopped reporting (`RunSummary.unresponsive`), as a status value. */
4
+ export const noReportLabel = () => msg('no report from host');
5
+ /** A host's state: `up`, or `no report` (its reports stopped, or it never reported). */
6
+ export const hostStateLabel = (h) => h.up ? msg('up', { desc: 'A host whose reports keep arriving' }) : msg('no report');
7
+ /** A host's state with the time of its last report where one is known: `no report since Oct 13, 10:41:03`. */
8
+ export const hostStateSince = (h) => !h.up && h.last_seen ? msg(str `no report since ${localTime(h.last_seen, true)}`) : hostStateLabel(h);
9
+ /** When a host last reported: `Last report Oct 13, 10:41:03`; '' when it never did. */
10
+ export const lastReport = (h) => h?.last_seen ? msg(str `Last report ${localTime(h.last_seen, true)}`) : '';
11
+ /** A host's id as a fact: `Host h1`; for a run whose run.json names none, `No host id`. */
12
+ export const hostFact = (id) => (id ? msg(str `Host ${id}`) : msg('No host id'));
13
+ /** How many runs: `1 run`, `4 runs`. */
14
+ export const runCount = (n) => (n === 1 ? msg('1 run') : msg(str `${n} runs`));
15
+ /** How many runs have no report from their host: `1 with no report from host`. */
16
+ export const noReportCount = (n) => msg(str `${n} with no report from host`);
17
+ /** The hosts in one line: `2 hosts | 1 with no report`. */
18
+ export function hostsLine(hosts) {
19
+ const quiet = hosts.filter((h) => !h.up).length;
20
+ return facts(hosts.length === 1 ? msg('1 host') : msg(str `${hosts.length} hosts`), quiet ? msg(str `${quiet} with no report`) : '');
21
+ }
22
+ //# sourceMappingURL=hosts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hosts.js","sourceRoot":"","sources":["../../src/words/hosts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/C,yFAAyF;AACzF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEtE,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAA0B,EAAU,EAAE,CACnE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAEtF,8GAA8G;AAC9G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwC,EAAU,EAAE,CACjF,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,mBAAmB,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEvG,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAA6C,EAAU,EAAE,CAClF,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,eAAe,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE5E,2FAA2F;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAEhG,wCAAwC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9F,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAE5F,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,KAAyC;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,MAAM,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrI,CAAC"}
@@ -0,0 +1,28 @@
1
+ export * from './format.js';
2
+ export * from './outcome.js';
3
+ export * from './stop.js';
4
+ export * from './causes.js';
5
+ export * from './attempts.js';
6
+ export * from './passes.js';
7
+ export * from './credential.js';
8
+ export * from './hops.js';
9
+ export * from './quota.js';
10
+ export * from './contract.js';
11
+ export * from './run-line.js';
12
+ export * from './hosts.js';
13
+ export * from './table.js';
14
+ export * from './changes.js';
15
+ export * from './claims.js';
16
+ export * from './rests.js';
17
+ export * from './services.js';
18
+ export * from './time-box.js';
19
+ export * from './row-extras.js';
20
+ export * from './models.js';
21
+ export * from './panels.js';
22
+ export * from './export.js';
23
+ export * from './trends.js';
24
+ export * from './priority.js';
25
+ export * from './context.js';
26
+ export * from './preflight.js';
27
+ export * from './task-definition.js';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/words/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,32 @@
1
+ // The words the UI shows for run data, in the reader's terms. The code's own
2
+ // terms (stop values, plan states, round, hop, attempt ...) stay in the data and
3
+ // in tooltips; what the reader sees comes from here, so every screen says the
4
+ // same thing for the same state. The mapping is listed in packages/ui/WORDS.md.
5
+ export * from './format.js';
6
+ export * from './outcome.js';
7
+ export * from './stop.js';
8
+ export * from './causes.js';
9
+ export * from './attempts.js';
10
+ export * from './passes.js';
11
+ export * from './credential.js';
12
+ export * from './hops.js';
13
+ export * from './quota.js';
14
+ export * from './contract.js';
15
+ export * from './run-line.js';
16
+ export * from './hosts.js';
17
+ export * from './table.js';
18
+ export * from './changes.js';
19
+ export * from './claims.js';
20
+ export * from './rests.js';
21
+ export * from './services.js';
22
+ export * from './time-box.js';
23
+ export * from './row-extras.js';
24
+ export * from './models.js';
25
+ export * from './panels.js';
26
+ export * from './export.js';
27
+ export * from './trends.js';
28
+ export * from './priority.js';
29
+ export * from './context.js';
30
+ export * from './preflight.js';
31
+ export * from './task-definition.js';
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/words/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,iFAAiF;AACjF,8EAA8E;AAC9E,gFAAgF;AAChF,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ModelMeasure, ModelUsage } from '@contraagent/api';
2
+ /** A measure's name: the name of the column it is in, too. */
3
+ export declare function measureLabel(m: ModelMeasure): string;
4
+ /** What a measure counts, for its tooltip. */
5
+ export declare function measureTip(m: ModelMeasure): string;
6
+ /** A model's amount of `measure` in words: `$0.12`, `12.3k`, `2m 05s`, `4`; '—' for no cost reported. */
7
+ export declare function measureText(u: ModelUsage, m: ModelMeasure): string;
8
+ /** The name the parts of a share past the colours fold into. */
9
+ export declare const otherModels: () => string;
10
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/words/models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKjE,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAWpD;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAWlD;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAWlE;AAED,gEAAgE;AAChE,eAAO,MAAM,WAAW,QAAO,MAA6B,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { modelTokens } from '@contraagent/api';
2
+ import { msg } from '@lit/localize';
3
+ import { fmtDur, tokenCount, usd } from './format.js';
4
+ /** A measure's name: the name of the column it is in, too. */
5
+ export function measureLabel(m) {
6
+ switch (m) {
7
+ case 'cost':
8
+ return msg('Cost');
9
+ case 'tokens':
10
+ return msg('Tokens');
11
+ case 'time':
12
+ return msg('Time');
13
+ case 'sessions':
14
+ return msg('Agent sessions');
15
+ }
16
+ }
17
+ /** What a measure counts, for its tooltip. */
18
+ export function measureTip(m) {
19
+ switch (m) {
20
+ case 'cost':
21
+ return msg('Reported by the coding agent');
22
+ case 'tokens':
23
+ return msg('Input, output, cache read and cache write');
24
+ case 'time':
25
+ return msg('Time of the agent sessions, summed');
26
+ case 'sessions':
27
+ return msg('Agent sessions started on the model');
28
+ }
29
+ }
30
+ /** A model's amount of `measure` in words: `$0.12`, `12.3k`, `2m 05s`, `4`; '—' for no cost reported. */
31
+ export function measureText(u, m) {
32
+ switch (m) {
33
+ case 'cost':
34
+ return u.cost_usd === null || u.cost_usd === undefined ? '—' : usd(u.cost_usd);
35
+ case 'tokens':
36
+ return tokenCount(modelTokens(u));
37
+ case 'time':
38
+ return fmtDur(u.wall_s ?? 0);
39
+ case 'sessions':
40
+ return String(u.sessions);
41
+ }
42
+ }
43
+ /** The name the parts of a share past the colours fold into. */
44
+ export const otherModels = () => msg('Other models');
45
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/words/models.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,CAAe;IAC1C,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,UAAU,CAAC,CAAe;IACxC,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC1D,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACnD,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,WAAW,CAAC,CAAa,EAAE,CAAe;IACxD,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjF,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type Outcome, type PlanNode } from '@contraagent/api';
2
+ /** What happened to a task. */
3
+ export declare function outcomeLabel(o: Outcome): string;
4
+ /** What happened to a task, in a run that is `live` or over: a task still waiting when the run ended is "not run". */
5
+ export declare const taskStatusLabel: (o: Outcome, live: boolean) => string;
6
+ /** A plan node's state (the task matrix, progress by kind). */
7
+ export declare const planStateLabel: (s: PlanNode["state"]) => string;
8
+ /**
9
+ * How many tasks are in a state, number first: "3 failed", "2 not started".
10
+ * A count only: a cause ("review · zeta failed") has its own message.
11
+ * `not_run`: waiting when the run ended.
12
+ */
13
+ export declare function stateCount(s: Outcome | 'not_run', n: number): string;
14
+ //# sourceMappingURL=outcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../src/words/outcome.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5E,+BAA+B;AAC/B,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAmB/C;AAED,sHAAsH;AACtH,eAAO,MAAM,eAAe,GAAI,GAAG,OAAO,EAAE,MAAM,OAAO,KAAG,MAAuE,CAAC;AAEpI,+DAA+D;AAC/D,eAAO,MAAM,cAAc,GAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAG,MAAsC,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBpE"}
@@ -0,0 +1,58 @@
1
+ // A task's outcome in words: its status, a count of tasks in a state, a plan
2
+ // state. The code's terms (`recovered`, `blocked`) stay in the data and in
3
+ // tooltips; the words are the reader's (packages/ui/WORDS.md).
4
+ import { planOutcome } from '@contraagent/api';
5
+ import { msg, str } from '@lit/localize';
6
+ /** What happened to a task. */
7
+ export function outcomeLabel(o) {
8
+ switch (o) {
9
+ case 'done':
10
+ return msg('done', { id: 'outcome-done', desc: 'The status of a task: done' });
11
+ case 'recovered':
12
+ return msg('done after retrying');
13
+ case 'partial':
14
+ return msg('partly done', { id: 'outcome-partial', desc: 'The status of a task whose output is a placeholder: a service it needed was unavailable (partial)' });
15
+ case 'failed':
16
+ return msg('failed');
17
+ case 'not_started':
18
+ return msg('not started');
19
+ case 'running':
20
+ return msg('running');
21
+ case 'waiting':
22
+ return msg('waiting');
23
+ case 'skipped':
24
+ return msg('skipped');
25
+ }
26
+ }
27
+ /** What happened to a task, in a run that is `live` or over: a task still waiting when the run ended is "not run". */
28
+ export const taskStatusLabel = (o, live) => (o === 'waiting' && !live ? msg('not run') : outcomeLabel(o));
29
+ /** A plan node's state (the task matrix, progress by kind). */
30
+ export const planStateLabel = (s) => outcomeLabel(planOutcome(s));
31
+ /**
32
+ * How many tasks are in a state, number first: "3 failed", "2 not started".
33
+ * A count only: a cause ("review · zeta failed") has its own message.
34
+ * `not_run`: waiting when the run ended.
35
+ */
36
+ export function stateCount(s, n) {
37
+ switch (s) {
38
+ case 'done':
39
+ return msg(str `${n} done`);
40
+ case 'recovered':
41
+ return msg(str `${n} done after retrying`);
42
+ case 'partial':
43
+ return msg(str `${n} partly done`);
44
+ case 'failed':
45
+ return msg(str `${n} failed`);
46
+ case 'not_started':
47
+ return msg(str `${n} not started`);
48
+ case 'running':
49
+ return msg(str `${n} running`);
50
+ case 'waiting':
51
+ return msg(str `${n} waiting`);
52
+ case 'skipped':
53
+ return msg(str `${n} skipped`);
54
+ case 'not_run':
55
+ return msg(str `${n} not run`);
56
+ }
57
+ }
58
+ //# sourceMappingURL=outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../src/words/outcome.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,+DAA+D;AAC/D,OAAO,EAAE,WAAW,EAA+B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,+BAA+B;AAC/B,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACjF,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,mGAAmG,EAAE,CAAC,CAAC;QAClK,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,sHAAsH;AACtH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAU,EAAE,IAAa,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpI,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAU,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7F;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAsB,EAAE,CAAS;IAC1D,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5C,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,KAAK,aAAa;YAChB,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ValueFormat } from '@contraagent/api';
2
+ import type { ChartStrings } from '@contraagent/elements/charts';
3
+ import type { CodeStrings } from '@contraagent/elements/code';
4
+ import type { TreeStrings } from '@contraagent/elements/tree';
5
+ /** A fraction as a percent: `97%`, `4.5%` under 10, `<0.1%` above 0. */
6
+ export declare function fractionPct(v: number): string;
7
+ /** A number of a body in words, by its format (`usd`, `pct` a fraction, `duration` seconds, `tokens`). */
8
+ export declare function numberText(format: ValueFormat | null | undefined): (v: number) => string;
9
+ /** A cell of a table body in words: a number by its format, a `datetime` as an absolute time, '—' when empty. */
10
+ export declare function cellText(value: unknown, format: ValueFormat | null | undefined): string;
11
+ /** The words of a chart, in the UI's language. */
12
+ export declare const chartStrings: () => Partial<ChartStrings>;
13
+ /** The words of a code body (`<cae-code>`), in the UI's language. */
14
+ export declare const codeStrings: () => Partial<CodeStrings>;
15
+ /** The words of a tree body (`<cae-tree>`), in the UI's language. */
16
+ export declare const treeStrings: () => Partial<TreeStrings>;
17
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../../src/words/panels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAK9D,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAKD,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAaxF;AAED,iHAAiH;AACjH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMvF;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY,QAAO,OAAO,CAAC,YAAY,CASlD,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,WAAW,CAShD,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,WAAW,CAAiC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { msg, str } from '@lit/localize';
2
+ import { getLocale } from '../core/i18n.js';
3
+ import { fmtDur, localTime, tokenCount, usd } from './format.js';
4
+ /** A fraction as a percent: `97%`, `4.5%` under 10, `<0.1%` above 0. */
5
+ export function fractionPct(v) {
6
+ const p = v * 100;
7
+ if (p > 0 && p < 0.05)
8
+ return '<0.1%';
9
+ return Math.abs(p) < 10 ? `${Math.round(p * 10) / 10}%` : `${Math.round(p)}%`;
10
+ }
11
+ /** A number as it is, up to two decimals. */
12
+ const plain = (v) => String(Math.round(v * 100) / 100);
13
+ /** A number of a body in words, by its format (`usd`, `pct` a fraction, `duration` seconds, `tokens`). */
14
+ export function numberText(format) {
15
+ switch (format) {
16
+ case 'usd':
17
+ return usd;
18
+ case 'pct':
19
+ return fractionPct;
20
+ case 'duration':
21
+ return fmtDur;
22
+ case 'tokens':
23
+ return tokenCount;
24
+ default:
25
+ return plain;
26
+ }
27
+ }
28
+ /** A cell of a table body in words: a number by its format, a `datetime` as an absolute time, '—' when empty. */
29
+ export function cellText(value, format) {
30
+ if (value === null || value === undefined || value === '')
31
+ return '—';
32
+ if (format === 'datetime' && typeof value === 'string')
33
+ return localTime(value, true) || value;
34
+ if (typeof value === 'number')
35
+ return numberText(format)(value);
36
+ if (typeof value === 'boolean')
37
+ return String(value);
38
+ return typeof value === 'string' ? value : JSON.stringify(value);
39
+ }
40
+ /** The words of a chart, in the UI's language. */
41
+ export const chartStrings = () => ({
42
+ empty: msg('No values'),
43
+ showTable: msg('Show table'),
44
+ showChart: msg('Show chart'),
45
+ label: msg('Label', { desc: 'Column of a chart\'s table view: the label of each point or bar' }),
46
+ other: msg('Other', { desc: 'The series of a chart past the sixth, summed into one' }),
47
+ total: msg('Total'),
48
+ none: '—',
49
+ scale: (low, high) => msg(str `${low} to ${high}`, { desc: 'A heatmap\'s colour scale: its lowest and highest value' }),
50
+ });
51
+ /** The words of a code body (`<cae-code>`), in the UI's language. */
52
+ export const codeStrings = () => ({
53
+ copy: msg('Copy'),
54
+ copied: msg('Copied'),
55
+ wrap: msg('Wrap lines'),
56
+ empty: msg('No text'),
57
+ cut: (shown, total) => msg(str `First ${shown.toLocaleString(getLocale())} of ${total.toLocaleString(getLocale())} lines`, {
58
+ desc: 'A code body cut short: the lines shown of all its lines',
59
+ }),
60
+ });
61
+ /** The words of a tree body (`<cae-tree>`), in the UI's language. */
62
+ export const treeStrings = () => ({ empty: msg('No items') });
63
+ //# sourceMappingURL=panels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.js","sourceRoot":"","sources":["../../src/words/panels.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEjE,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,OAAO,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAChF,CAAC;AAED,6CAA6C;AAC7C,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAEvE,0GAA0G;AAC1G,MAAM,UAAU,UAAU,CAAC,MAAsC;IAC/D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,GAAG,CAAC;QACb,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,MAAsC;IAC7E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACtE,IAAI,MAAM,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC;IAC/F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,GAA0B,EAAE,CAAC,CAAC;IACxD,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC;IACvB,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iEAAiE,EAAE,CAAC;IAChG,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,uDAAuD,EAAE,CAAC;IACtF,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,GAAG,OAAO,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,yDAAyD,EAAE,CAAC;CACvI,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAyB,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC;IACrB,GAAG,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CACpC,GAAG,CAAC,GAAG,CAAA,SAAS,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;QACjG,IAAI,EAAE,yDAAyD;KAChE,CAAC;CACL,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAyB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** A loop's pass (`flow[].loops[].pass`), as the reader counts it: "Pass 1", "Pass 2" ... (never an attempt). */
2
+ export declare const passLabel: (pass: number) => string;
3
+ /** A loop box's pass count: "1 pass", "up to 3 passes" (its loop's last pass). */
4
+ export declare const passCount: (n: number) => string;
5
+ /** How many passes a unit ran: "1 pass", "3 passes". */
6
+ export declare const passesRan: (n: number) => string;
7
+ /** How many units ran each number of passes of a loop: "1 pass: 4 | 2 passes: 1". */
8
+ export declare const passSpread: (spread: readonly (readonly [number, number])[]) => string;
9
+ /** A loop of the flow (a loop box, a breadcrumb level). */
10
+ export declare const loopLabel: () => string;
11
+ //# sourceMappingURL=passes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passes.d.ts","sourceRoot":"","sources":["../../src/words/passes.ts"],"names":[],"mappings":"AAGA,iHAAiH;AACjH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAgC,CAAC;AAE1E,kFAAkF;AAClF,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAgE,CAAC;AAEvG,wDAAwD;AACxD,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAA0D,CAAC;AAEjG,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAG,MACqC,CAAC;AAElH,2DAA2D;AAC3D,eAAO,MAAM,SAAS,QAAO,MAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ // A loop's passes and the loop itself, in words.
2
+ import { msg, str } from '@lit/localize';
3
+ /** A loop's pass (`flow[].loops[].pass`), as the reader counts it: "Pass 1", "Pass 2" ... (never an attempt). */
4
+ export const passLabel = (pass) => msg(str `Pass ${pass}`);
5
+ /** A loop box's pass count: "1 pass", "up to 3 passes" (its loop's last pass). */
6
+ export const passCount = (n) => (n <= 1 ? msg('1 pass') : msg(str `up to ${n} passes`));
7
+ /** How many passes a unit ran: "1 pass", "3 passes". */
8
+ export const passesRan = (n) => (n <= 1 ? msg('1 pass') : msg(str `${n} passes`));
9
+ /** How many units ran each number of passes of a loop: "1 pass: 4 | 2 passes: 1". */
10
+ export const passSpread = (spread) => spread.map(([n, units]) => (n <= 1 ? msg(str `1 pass: ${units}`) : msg(str `${n} passes: ${units}`))).join(' | ');
11
+ /** A loop of the flow (a loop box, a breadcrumb level). */
12
+ export const loopLabel = () => msg('loop');
13
+ //# sourceMappingURL=passes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passes.js","sourceRoot":"","sources":["../../src/words/passes.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,iHAAiH;AACjH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,QAAQ,IAAI,EAAE,CAAC,CAAC;AAE1E,kFAAkF;AAClF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAEvG,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjG,qFAAqF;AACrF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA8C,EAAU,EAAE,CACnF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAElH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC"}