@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,88 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { isBad, runRelative } from '@contraagent/api';
8
+ import { msg, str } from '@lit/localize';
9
+ import { LitElement, css, html, nothing } from 'lit';
10
+ import { customElement, state } from 'lit/decorators.js';
11
+ import { repeat } from 'lit/directives/repeat.js';
12
+ import { base } from '@contraagent/elements/styles';
13
+ import { facts, fmtDur, kindUnit } from '../../words/format.js';
14
+ import { modelSwitch, stopLabel } from '../../words/index.js';
15
+ /** The notice for a journal row that just arrived: its kind, title and line (`CaToasts.show`'s arguments). */
16
+ export function rowToast(row, run) {
17
+ const name = kindUnit(row);
18
+ const reason = runRelative(row.reason, run).slice(0, 110);
19
+ if (row.stop === 'invalid_input')
20
+ return ['attention', msg(str `${name}: not started`), reason];
21
+ if (isBad(row))
22
+ return ['failed', msg(str `${name}: ${stopLabel(row.stop)}`), reason];
23
+ if (row.stop === 'partial')
24
+ return ['attention', msg(str `${name}: ${stopLabel(row.stop)}`), reason];
25
+ const sw = modelSwitch(row.hops, row.wall_s, row.skipped_hops);
26
+ if (sw)
27
+ return ['agent', msg(str `${name}: model switch`), sw.slice(0, 110)];
28
+ return ['done', msg(str `${name}: done`), facts(fmtDur(row.wall_s), row.model)];
29
+ }
30
+ const ICON = { done: '✓', failed: '✕', attention: '◌', running: '●', agent: '✦' };
31
+ const SHOW_MS = 5200;
32
+ const MAX = 4;
33
+ /**
34
+ * Short notices in a corner; each leaves on its own after a few seconds. A
35
+ * screen reader hears each one: a failure at once, the others when it is idle.
36
+ */
37
+ let CaToasts = class CaToasts extends LitElement {
38
+ constructor() {
39
+ super(...arguments);
40
+ this.toasts = [];
41
+ this.next = 0;
42
+ }
43
+ static { this.styles = [
44
+ base,
45
+ css `
46
+ :host { position: fixed; right: 18px; bottom: 18px; display: flex; flex-direction: column; gap: 8px; z-index: 60; pointer-events: none; }
47
+ .toast { pointer-events: auto; min-width: 240px; max-width: 380px; padding: 10px 14px; border-radius: 11px;
48
+ background: var(--panel2); border: 1px solid var(--line2); box-shadow: 0 18px 40px color-mix(in srgb, var(--shadow) 60%, transparent);
49
+ display: flex; gap: 10px; align-items: flex-start; animation: toast-in 0.35s var(--ease) both; }
50
+ .toast.out { animation: toast-out 0.35s var(--ease) both; }
51
+ .ti { font-size: 16px; line-height: 1.2; }
52
+ b { display: block; font-size: 12.5px; }
53
+ span.sub { font-size: 11.5px; color: var(--text-muted); }
54
+ .ti { color: var(--text-muted); }
55
+ .toast[data-tone] .ti { color: var(--tone); }
56
+ .toast[data-tone='failed'], .toast[data-tone='attention'] { border-color: color-mix(in srgb, var(--tone) 50%, var(--line2)); }
57
+ .agent .ti { color: var(--agent); }
58
+ `,
59
+ ]; }
60
+ show(kind, title, sub = '') {
61
+ const t = { id: this.next++, kind, title, sub, out: false };
62
+ this.toasts = [...this.toasts, t].slice(-MAX);
63
+ setTimeout(() => {
64
+ this.toasts = this.toasts.map((x) => (x.id === t.id ? { ...x, out: true } : x));
65
+ setTimeout(() => (this.toasts = this.toasts.filter((x) => x.id !== t.id)), 400);
66
+ }, SHOW_MS);
67
+ }
68
+ render() {
69
+ // The notices as a screen reader hears them: failures at once (`role="alert"`), the others when it is idle (`role="status"`).
70
+ const said = (urgent) => repeat(this.toasts.filter((t) => !t.out && (t.kind === 'failed') === urgent), (t) => t.id, (t) => html `<p>${facts(t.title, t.sub)}</p>`);
71
+ return html `<div class="sr" role="status" aria-live="polite">${said(false)}</div>
72
+ <div class="sr" role="alert" aria-live="assertive">${said(true)}</div>
73
+ <div aria-hidden="true" style="display:contents">
74
+ ${repeat(this.toasts, (t) => t.id, (t) => html `<div class="toast ${t.kind === 'agent' ? 'agent' : ''} ${t.out ? 'out' : ''}" data-tone=${t.kind === 'agent' ? nothing : t.kind}>
75
+ <span class="ti">${ICON[t.kind]}</span>
76
+ <div><b>${t.title}</b>${t.sub ? html `<span class="sub">${t.sub}</span>` : nothing}</div>
77
+ </div>`)}
78
+ </div>`;
79
+ }
80
+ };
81
+ __decorate([
82
+ state()
83
+ ], CaToasts.prototype, "toasts", void 0);
84
+ CaToasts = __decorate([
85
+ customElement('ca-toasts')
86
+ ], CaToasts);
87
+ export { CaToasts };
88
+ //# sourceMappingURL=ca-toasts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-toasts.js","sourceRoot":"","sources":["../../../src/elements/shell/ca-toasts.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAa9D,8GAA8G;AAC9G,MAAM,UAAU,QAAQ,CAAC,GAAe,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACrF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACpG,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,EAAE;QAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,IAAI,GAA8B,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC7G,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,GAAG,GAAG,CAAC,CAAC;AAEd;;;GAGG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAmBY,WAAM,GAAY,EAAE,CAAC;QAC9B,SAAI,GAAG,CAAC,CAAC;IAgCnB,CAAC;aAnDiB,WAAM,GAAG;QACvB,IAAI;QACJ,GAAG,CAAA;;;;;;;;;;;;;KAaF;KACF,AAhBqB,CAgBpB;IAKF,IAAI,CAAC,IAAe,EAAE,KAAa,EAAE,GAAG,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAU,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAEQ,MAAM;QACb,8HAA8H;QAC9H,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,EAAE,CAC/B,MAAM,CACJ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,MAAM,CAAC,EACrE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAC7C,CAAC;QACJ,OAAO,IAAI,CAAA,oDAAoD,IAAI,CAAC,KAAK,CAAC;2DACnB,IAAI,CAAC,IAAI,CAAC;;UAE3D,MAAM,CACN,IAAI,CAAC,MAAM,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,qBAAqB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;+BACtH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;sBACrB,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA,qBAAqB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO;iBAC5E,CACR;aACI,CAAC;IACZ,CAAC;;AAhCgB;IAAhB,KAAK,EAAE;wCAA8B;AAnB3B,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAoDpB"}
@@ -0,0 +1,13 @@
1
+ import type { Activity } from '@contraagent/api';
2
+ import { type TemplateResult } from 'lit';
3
+ /**
4
+ * The brand mark (braces around a spark, the favicon's drawing) and the monitor's title.
5
+ * The braces take the text colour and the spark goes from the accent to the agent colour,
6
+ * so the mark follows the theme; the gradient's id is unique in the element's shadow root.
7
+ */
8
+ export declare const brand: (title: string) => TemplateResult;
9
+ /** The tasks running now, the first three by name; each chip opens its task (sent from `host`). */
10
+ export declare const nowLine: (host: EventTarget, acts: readonly Activity[]) => TemplateResult;
11
+ /** Whether the feed is connected: a dot, with its words as its accessible name and its tooltip. */
12
+ export declare const connection: (connected: boolean) => TemplateResult;
13
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/elements/shell/header.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIzD;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,cAmB7B,CAAC;AAEV,mGAAmG;AACnG,eAAO,MAAM,OAAO,GAAI,MAAM,WAAW,EAAE,MAAM,SAAS,QAAQ,EAAE,KAAG,cAGjD,CAAC;AAEvB,mGAAmG;AACnG,eAAO,MAAM,UAAU,GAAI,WAAW,OAAO,KAAG,cAG/C,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { msg } from '@lit/localize';
2
+ import { html, nothing } from 'lit';
3
+ import { kindUnit } from '../../words/format.js';
4
+ import { taskChip } from '../shared/task-chip.js';
5
+ /**
6
+ * The brand mark (braces around a spark, the favicon's drawing) and the monitor's title.
7
+ * The braces take the text colour and the spark goes from the accent to the agent colour,
8
+ * so the mark follows the theme; the gradient's id is unique in the element's shadow root.
9
+ */
10
+ export const brand = (title) => html `<div class="brand">
11
+ <svg viewBox="12 12 96 96" aria-hidden="true">
12
+ <defs>
13
+ <linearGradient id="brand-spark" x1="0" y1="0" x2="1" y2="1">
14
+ <stop offset="0" class="spark-a" />
15
+ <stop offset="1" class="spark-b" />
16
+ </linearGradient>
17
+ </defs>
18
+ <g class="logo-braces" fill="none" stroke-width="14" stroke-linecap="round" stroke-linejoin="round">
19
+ <path d="M48 22 C36 22 36 30 36 38 L36 50 C36 56 32 60 26 60 C32 60 36 64 36 70 L36 82 C36 90 36 98 48 98" />
20
+ <path d="M72 22 C84 22 84 30 84 38 L84 50 C84 56 88 60 94 60 C88 60 84 64 84 70 L84 82 C84 90 84 98 72 98" />
21
+ </g>
22
+ <g class="logo-spark">
23
+ <path d="M60 45 C61.6 56 64 58.4 75 60 C64 61.6 61.6 64 60 75 C58.4 64 56 61.6 45 60 C56 58.4 58.4 56 60 45 Z"
24
+ fill="url(#brand-spark)" transform="translate(60 60) scale(1.15) translate(-60 -60)" />
25
+ </g>
26
+ </svg>
27
+ <span title=${title}>${title}</span>
28
+ </div>`;
29
+ /** The tasks running now, the first three by name; each chip opens its task (sent from `host`). */
30
+ export const nowLine = (host, acts) => html `<span class="nowline">${acts.length
31
+ ? msg(html `Running ${acts.slice(0, 3).map((a) => taskChip(host, kindUnit(a), { key: a.key }))}${acts.length > 3 ? html ` <span>+${acts.length - 3}</span>` : nothing}`)
32
+ : nothing}</span>`;
33
+ /** Whether the feed is connected: a dot, with its words as its accessible name and its tooltip. */
34
+ export const connection = (connected) => {
35
+ const words = connected ? msg('Connected to the monitor server') : msg('Not connected to the monitor server');
36
+ return html `<span role="img" aria-label=${words} title=${words}><span class="live-dot ${connected ? '' : 'off'}"></span></span>`;
37
+ };
38
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/elements/shell/header.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAkB,EAAE,CACrD,IAAI,CAAA;;;;;;;;;;;;;;;;;kBAiBY,KAAK,IAAI,KAAK;SACvB,CAAC;AAEV,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAiB,EAAE,IAAyB,EAAkB,EAAE,CACtF,IAAI,CAAA,yBAAyB,IAAI,CAAC,MAAM;IACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,WAAW,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtK,CAAC,CAAC,OAAO,SAAS,CAAC;AAEvB,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAkB,EAAkB,EAAE;IAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC9G,OAAO,IAAI,CAAA,+BAA+B,KAAK,UAAU,KAAK,0BAA0B,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC;AACnI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const monitorStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/elements/shell/styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,yBAiEzB,CAAC"}
@@ -0,0 +1,72 @@
1
+ // The styles of `ca-monitor`: its header, the filter bar and the view below.
2
+ // The tab list's are in `tabs.ts`. The monitor is a container (`ca-monitor`):
3
+ // its parts follow the width it is given, not the window's, so it fits any box
4
+ // of a page that embeds it.
5
+ import { css } from 'lit';
6
+ export const monitorStyles = css `
7
+ :host { display: flex; flex-direction: column; height: 100%; min-height: 0; font: 13px/1.5 var(--sans); color: var(--text);
8
+ background: var(--backdrop); container: ca-monitor / inline-size; }
9
+ header { flex: none; display: flex; gap: 14px; align-items: center; padding: 10px 18px; border-bottom: 1px solid var(--line);
10
+ background: color-mix(in srgb, var(--bg) 75%, transparent); backdrop-filter: blur(10px); position: relative; z-index: 20; }
11
+ .brand { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; letter-spacing: 0.02em; }
12
+ /* the name stays on one line and whole up to a third of the width; the run button gives up its width instead */
13
+ .brand { flex: none; max-width: 30cqi; white-space: nowrap; }
14
+ .brand span { overflow: hidden; text-overflow: ellipsis; }
15
+ .brand svg { width: 22px; height: 22px; flex: none; }
16
+ .logo-braces { stroke: var(--text); }
17
+ .spark-a { stop-color: var(--accent); }
18
+ .spark-b { stop-color: var(--agent); }
19
+ .logo-spark { transform-origin: 60px 60px; }
20
+ :host([live]) .logo-spark { animation: core-beat 1.8s var(--ease) infinite; }
21
+ .runbtn { display: flex; align-items: center; gap: 10px; min-width: min(150px, 100%); max-width: 52cqi; cursor: pointer; padding: 6px 13px;
22
+ border-radius: 999px; background: var(--panel); border: 1px solid var(--line); color: var(--text); transition: border-color 0.2s, background 0.2s; }
23
+ .runbtn:hover { border-color: var(--line2); background: var(--panel2); }
24
+ .rn { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: none; max-width: 40%; }
25
+ .rs { color: var(--text-muted); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
26
+ .chev { color: var(--text-muted); }
27
+ /* a hub: the run's host, after its name */
28
+ .hostchip { flex: none; font-family: var(--mono); font-size: 11px; color: var(--text-2); padding: 0 7px; border: 1px solid var(--line2);
29
+ border-radius: 999px; white-space: nowrap; max-width: 24ch; overflow: hidden; text-overflow: ellipsis; }
30
+ .runbtn .pill { flex: none; font-size: 11px; }
31
+ ca-run-picker { inset-inline-start: 110px; }
32
+ /* the controls keep their width; the name and the run button give theirs */
33
+ .hdr-right { margin-left: auto; display: flex; align-items: center; gap: 12px; flex: none; white-space: nowrap; }
34
+ .nowline { font-size: 12px; color: var(--text-2); white-space: nowrap; overflow: hidden; max-width: 40cqi;
35
+ display: inline-flex; align-items: center; gap: 4px; }
36
+ .clock { font-family: var(--mono); font-size: 11.5px; color: var(--text-muted); }
37
+ .langs { --cae-segmented-radius: 999px; --cae-segmented-height: auto; --cae-segmented-padding: 2px 9px; --cae-segmented-font-size: 11px;
38
+ --cae-segmented-divider: 0; --cae-segmented-hover: var(--text-2); }
39
+ .live-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--status-running); display: inline-block; animation: breathe 1.8s ease-in-out infinite; }
40
+ .live-dot.off { background: var(--line2); animation: none; box-shadow: none; }
41
+
42
+ .bar { flex: none; display: flex; gap: 8px; padding: 8px 18px; border-top: 1px solid var(--line); align-items: center; flex-wrap: wrap; }
43
+ .bar select, .bar input { background: var(--panel); color: var(--text); border: 1px solid var(--line); border-radius: 8px;
44
+ padding: 5px 9px; outline: none; font: inherit; font-size: 12px; }
45
+ .bar input:focus, .bar select:focus { border-color: var(--focus); box-shadow: 0 0 0 calc(var(--focus-width) - 2px) var(--focus); }
46
+
47
+ .api-error { flex: none; margin: 0; padding: 8px 18px; color: var(--status-failed); font: 12px var(--mono); overflow-wrap: anywhere; }
48
+ .api-error:empty { padding: 0; }
49
+ main { border-top: 1px solid var(--line); flex: 1 1 auto; min-height: 0; overflow: auto; padding: 16px 18px 48px; }
50
+ main.stream { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 16px; }
51
+ /* too narrow for one line: the controls go under the name and the run button */
52
+ @container ca-monitor (max-width: 1000px) {
53
+ header { flex-wrap: wrap; row-gap: 8px; }
54
+ }
55
+ @container ca-monitor (max-width: 760px) {
56
+ header { gap: 8px; padding: 8px 12px; }
57
+ /* the run button takes the rest of the first line; its run line gives up its width first */
58
+ .runbtn { flex: 1 1 0; min-width: 0; max-width: none; }
59
+ /* the run picker spans the header, 16px from each side */
60
+ ca-run-picker { inset-inline: 16px; width: auto; }
61
+ .hdr-right { width: 100%; margin-left: 0; flex-wrap: wrap; row-gap: 6px; }
62
+ .nowline { max-width: none; flex: 1 1 100%; }
63
+ main { padding: 12px 12px 40px; }
64
+ .bar { padding: 8px 12px; }
65
+ .bar input { flex: 1 1 10em; min-width: 0; }
66
+ }
67
+ @container ca-monitor (max-width: 420px) {
68
+ .brand { max-width: 40cqi; }
69
+ .runbtn { padding: 6px 10px; gap: 8px; }
70
+ }
71
+ `;
72
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/elements/shell/styles.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiE/B,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type Info } from '@contraagent/api';
2
+ import { type TemplateResult } from 'lit';
3
+ import type { Tab } from '../../core/view-route.js';
4
+ import type { Tone } from '../../lib/tone.js';
5
+ export interface TabInfo {
6
+ id: Tab;
7
+ label: string;
8
+ icon: string;
9
+ tip?: string;
10
+ panel: boolean;
11
+ }
12
+ /** Every tab, in the current locale: the built-in ones, then one per custom view computed per run (`panels`; a trends panel is not a run's tab). */
13
+ export declare function monitorTabs(panels: Info['panels']): TabInfo[];
14
+ /** The id of tab `i` in the tab list, which the view below it (`role="tabpanel"`) names as its label. */
15
+ export declare const tabId: (i: number) => string;
16
+ /**
17
+ * The tab list: `current` selected, a count per tab from `badge` (none when it
18
+ * returns null or ''), and the key hints. `pick` is called with a tab clicked.
19
+ * Each tab controls the element with the id `panel`. The arrow keys, Home and
20
+ * End move the focus between the tabs (a `RovingFocusController` over `.tab`
21
+ * in the host); Enter and Space select one.
22
+ */
23
+ export declare function tabBar(tabs: TabInfo[], current: Tab, badge: (id: Tab) => [string | number, Tone] | null, pick: (id: Tab) => void, panel: string,
24
+ /** Show the hint for the single-key shortcuts. */
25
+ keys?: boolean): TemplateResult;
26
+ /**
27
+ * Move the line under the selected tab to it (after a render, a resize); when
28
+ * the selection changed, scroll the tab list so the selected tab is in view.
29
+ */
30
+ export declare function moveTabIndicator(root: ParentNode): void;
31
+ export declare const tabStyles: import("lit").CSSResult;
32
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/elements/shell/tabs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAaD,oJAAoJ;AACpJ,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,EAAE,CAW7D;AAED,yGAAyG;AACzG,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,MAAoB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,EAClD,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,EACvB,KAAK,EAAE,MAAM;AACb,kDAAkD;AAClD,IAAI,UAAO,GACV,cAAc,CAqBhB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAevD;AAED,eAAO,MAAM,SAAS,yBAoCrB,CAAC"}
@@ -0,0 +1,125 @@
1
+ // The monitor's tab list: the built-in views, then the custom views; each tab
2
+ // with its count, and the line under the selected one. The selected tab is
3
+ // bold and underlined, not only coloured. A list wider than the monitor
4
+ // scrolls sideways, with a shade at each edge that has more tabs past it.
5
+ import { isRunPanel } from '@contraagent/api';
6
+ import { msg, str } from '@lit/localize';
7
+ import { css, html, nothing } from 'lit';
8
+ import { toneAttr } from '@contraagent/elements';
9
+ /** The built-in tabs, in the current locale (call at render time). */
10
+ const builtinTabs = () => [
11
+ { id: 'overview', label: msg('Overview'), icon: '◎' },
12
+ { id: 'tasks', label: msg('Tasks', { id: 'tab-tasks', desc: 'Tab: the list of tasks' }), icon: '≡' },
13
+ { id: 'journal', label: msg('History'), icon: '▤', tip: 'journal.jsonl' },
14
+ { id: 'outputs', label: msg('Outputs'), icon: '▣' },
15
+ { id: 'definitions', label: msg('Definitions'), icon: '⌘' },
16
+ { id: 'procs', label: msg('Processes'), icon: '⚙' },
17
+ { id: 'stream', label: msg('Task detail'), icon: '✦' },
18
+ ];
19
+ /** Every tab, in the current locale: the built-in ones, then one per custom view computed per run (`panels`; a trends panel is not a run's tab). */
20
+ export function monitorTabs(panels) {
21
+ return [
22
+ ...builtinTabs().map((t) => ({ ...t, panel: false })),
23
+ ...panels.filter(isRunPanel).map((p) => ({
24
+ id: `panel:${p.name}`,
25
+ label: p.title || p.name,
26
+ icon: p.icon || '▤',
27
+ tip: p.description ? msg(str `${p.description} (custom view)`) : msg('Custom view'),
28
+ panel: true,
29
+ })),
30
+ ];
31
+ }
32
+ /** The id of tab `i` in the tab list, which the view below it (`role="tabpanel"`) names as its label. */
33
+ export const tabId = (i) => `tab-${i}`;
34
+ /**
35
+ * The tab list: `current` selected, a count per tab from `badge` (none when it
36
+ * returns null or ''), and the key hints. `pick` is called with a tab clicked.
37
+ * Each tab controls the element with the id `panel`. The arrow keys, Home and
38
+ * End move the focus between the tabs (a `RovingFocusController` over `.tab`
39
+ * in the host); Enter and Space select one.
40
+ */
41
+ export function tabBar(tabs, current, badge, pick, panel,
42
+ /** Show the hint for the single-key shortcuts. */
43
+ keys = true) {
44
+ return html `<nav data-scroll="x">
45
+ <div class="tabs" role="tablist" aria-label=${msg('Views', { desc: 'The label of the list of tabs: Overview, Tasks, History, ...' })}>
46
+ ${tabs.map((t, i) => {
47
+ const b = badge(t.id);
48
+ const sel = t.id === current;
49
+ return html `${t.panel && !tabs[i - 1]?.panel ? html `<span class="tab-sep" aria-hidden="true" title=${msg('Custom views')}></span>` : nothing}
50
+ <button type="button" role="tab" id=${tabId(i)} aria-selected=${sel ? 'true' : 'false'} aria-controls=${panel}
51
+ class="tab ${t.panel ? 'panel-tab' : ''} ${sel ? 'sel' : ''}" title=${t.tip ?? nothing} @click=${() => pick(t.id)}>
52
+ <span class="tab-ic" aria-hidden="true">${t.icon}</span><span class="tab-label" data-label=${t.label}>${t.label}</span>${b && b[0] !== ''
53
+ ? html `<span class="badge" data-tone=${toneAttr(b[1])}>${b[0]}</span>`
54
+ : nothing}
55
+ </button>`;
56
+ })}
57
+ </div>
58
+ <span class="tab-ind init" aria-hidden="true"></span>
59
+ ${keys ? html `<span class="tabhint meta" role="note" aria-label=${msg('Keyboard shortcuts')}
60
+ ><span aria-hidden="true"><span class="kbd">1</span>–<span class="kbd">${Math.min(9, tabs.length)}</span> ${msg('Tabs')} |
61
+ <span class="kbd">r</span> ${msg('Runs')} | <span class="kbd">/</span> ${msg('Filter')}</span></span
62
+ >` : nothing}
63
+ </nav>`;
64
+ }
65
+ /**
66
+ * Move the line under the selected tab to it (after a render, a resize); when
67
+ * the selection changed, scroll the tab list so the selected tab is in view.
68
+ */
69
+ export function moveTabIndicator(root) {
70
+ const sel = root.querySelector('.tab.sel');
71
+ const ind = root.querySelector('.tab-ind');
72
+ if (!sel || !ind)
73
+ return;
74
+ ind.style.left = `${sel.offsetLeft + 10}px`;
75
+ ind.style.width = `${Math.max(12, sel.offsetWidth - 20)}px`;
76
+ if (ind.classList.contains('init'))
77
+ requestAnimationFrame(() => ind.classList.remove('init'));
78
+ const nav = ind.parentElement;
79
+ if (nav && ind.dataset['tab'] !== sel.id) {
80
+ ind.dataset['tab'] = sel.id;
81
+ const edge = 24;
82
+ if (sel.offsetLeft - edge < nav.scrollLeft)
83
+ nav.scrollLeft = Math.max(0, sel.offsetLeft - edge);
84
+ else if (sel.offsetLeft + sel.offsetWidth + edge > nav.scrollLeft + nav.clientWidth)
85
+ nav.scrollLeft = sel.offsetLeft + sel.offsetWidth + edge - nav.clientWidth;
86
+ }
87
+ }
88
+ export const tabStyles = css `
89
+ /* Scroll shades: a cover at each end of the tabs (moves with them) over a shade at each edge of the list (stays):
90
+ the shade shows at an edge while more tabs lie past it. */
91
+ nav { flex: none; display: flex; gap: 2px; padding: 6px 18px 0; position: relative; overflow-x: auto; scrollbar-width: none; align-items: center;
92
+ --shade: color-mix(in srgb, var(--text) 22%, transparent);
93
+ background:
94
+ linear-gradient(to right, var(--backdrop) 40%, transparent) left / 32px 100% no-repeat local,
95
+ linear-gradient(to left, var(--backdrop) 40%, transparent) right / 32px 100% no-repeat local,
96
+ radial-gradient(farthest-side at 0 50%, var(--shade), transparent) left / 12px 100% no-repeat scroll,
97
+ radial-gradient(farthest-side at 100% 50%, var(--shade), transparent) right / 12px 100% no-repeat scroll; }
98
+ nav::-webkit-scrollbar { display: none; }
99
+ .tabs { flex: none; display: flex; gap: 2px; align-items: center; }
100
+ .tab { position: relative; background: none; border: none; padding: 8px 14px 11px; color: var(--text-muted); cursor: pointer;
101
+ font-weight: 500; white-space: nowrap; transition: color 0.2s; }
102
+ .tab:hover { color: var(--text-2); }
103
+ .tab.sel { color: var(--text); font-weight: 600; }
104
+ /* The label keeps the width of its bold form, so the tabs do not move when the selection does. */
105
+ .tab-label { display: inline-flex; flex-direction: column; }
106
+ .tab-label::after { content: attr(data-label); font-weight: 600; height: 0; overflow: hidden; visibility: hidden; }
107
+ .tab-ic { opacity: 0.55; margin-right: 6px; font-size: 12px; }
108
+ .tab.sel .tab-ic { opacity: 1; color: var(--accent); }
109
+ .badge { margin-left: 6px; font-size: 10px; font-weight: 500; padding: 0 6px; border-radius: 999px; background: var(--raise); color: var(--text-2); font-variant-numeric: tabular-nums; }
110
+ .badge[data-tone] { background: var(--tone-bg); color: var(--tone); }
111
+ .tab-sep { width: 1px; height: 18px; background: var(--line2); margin: 0 8px 3px; flex: none; align-self: center; }
112
+ .tab-ind { position: absolute; bottom: 0; left: 0; width: 0; height: 2px; border-radius: 2px;
113
+ background: var(--accent); transition: left 0.3s var(--ease), width 0.3s var(--ease); }
114
+ .tab-ind.init { transition: none; }
115
+ .tabhint { margin-left: auto; padding-left: 12px; white-space: nowrap; }
116
+ /* In a narrow monitor the tabs keep the line: no key hints. */
117
+ @container ca-monitor (max-width: 900px) {
118
+ .tabhint { display: none; }
119
+ }
120
+ @container ca-monitor (max-width: 760px) {
121
+ nav { padding: 4px 8px 0; }
122
+ .tab { padding: 8px 10px 11px; }
123
+ }
124
+ `;
125
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/elements/shell/tabs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type MonitorClient, type MonitorSnapshot, type RunDerived } from '@contraagent/api';
2
+ import { type TemplateResult } from 'lit';
3
+ import type { ViewRoute } from '../../core/view-route.js';
4
+ import '../overview/ca-overview.js';
5
+ import '../lists/ca-task-table.js';
6
+ import '../lists/ca-journal-table.js';
7
+ import '../lists/ca-contracts.js';
8
+ import '../lists/ca-definitions.js';
9
+ import '../lists/ca-procs-view.js';
10
+ import '../lists/ca-panel-view.js';
11
+ import '../task/ca-task-view.js';
12
+ export interface TabViewData {
13
+ snap: MonitorSnapshot;
14
+ viewRoute: ViewRoute;
15
+ /** `deriveRun` of the run's journal and plan. */
16
+ derived: RunDerived;
17
+ /** The text filter, as typed. */
18
+ q: string;
19
+ client: MonitorClient;
20
+ baseUrl: string;
21
+ }
22
+ /**
23
+ * The view of `viewRoute.tab`; with no run, a blank page that says there are no
24
+ * runs once the server's run list says so (the API's error is above it).
25
+ */
26
+ export declare function tabView({ snap, viewRoute, derived, q, client, baseUrl }: TabViewData): TemplateResult;
27
+ //# sourceMappingURL=views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../../src/elements/shell/views.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsD,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjJ,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,4BAA4B,CAAC;AACpC,OAAO,2BAA2B,CAAC;AACnC,OAAO,8BAA8B,CAAC;AACtC,OAAO,0BAA0B,CAAC;AAClC,OAAO,4BAA4B,CAAC;AACpC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,OAAO,EAAE,UAAU,CAAC;IACpB,iCAAiC;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,cAAc,CAmCrG"}
@@ -0,0 +1,55 @@
1
+ // The view under the monitor's tabs: the element the view route's tab shows, given
2
+ // the data it reads.
3
+ import { hostOf, isRunLive, latestTask, runActivity, runRow } from '@contraagent/api';
4
+ import { msg } from '@lit/localize';
5
+ import { html, nothing } from 'lit';
6
+ import { mixedReplay } from '../../words/run-line.js';
7
+ import '../overview/ca-overview.js';
8
+ import '../lists/ca-task-table.js';
9
+ import '../lists/ca-journal-table.js';
10
+ import '../lists/ca-contracts.js';
11
+ import '../lists/ca-definitions.js';
12
+ import '../lists/ca-procs-view.js';
13
+ import '../lists/ca-panel-view.js';
14
+ import '../task/ca-task-view.js';
15
+ /**
16
+ * The view of `viewRoute.tab`; with no run, a blank page that says there are no
17
+ * runs once the server's run list says so (the API's error is above it).
18
+ */
19
+ export function tabView({ snap, viewRoute, derived, q, client, baseUrl }) {
20
+ const { state } = snap;
21
+ if (!viewRoute.run) {
22
+ return html `<div class="blank">${snap.runsLoaded && !snap.error
23
+ ? html `<span class="ic" aria-hidden="true">✦</span><b>${msg('No runs yet', { id: 'no-runs-yet' })}</b>`
24
+ : nothing}</div>`;
25
+ }
26
+ const summary = runRow(snap.runs, snap.run);
27
+ const live = isRunLive(state, summary);
28
+ switch (viewRoute.tab) {
29
+ case 'overview':
30
+ return html `<ca-overview .state=${state} .summary=${summary} .host=${hostOf(snap.hosts?.hosts, summary)} .info=${snap.info} .run=${viewRoute.run} .layer=${viewRoute.layer} .unit=${viewRoute.unit} .sel=${viewRoute.sel}></ca-overview>`;
31
+ case 'tasks':
32
+ return html `<ca-task-table .run=${viewRoute.run} .journal=${state.journal} .plan=${state.plan} .kind=${viewRoute.kind} .q=${q} ?live=${live}></ca-task-table>`;
33
+ case 'journal':
34
+ return html `<ca-journal-table .run=${viewRoute.run} .rows=${state.journal} .plan=${state.plan} .fresh=${snap.fresh} .kind=${viewRoute.kind} .stop=${viewRoute.stop} .q=${q}
35
+ .extras=${summary?.row_extras ?? []} ?replay-marks=${mixedReplay(summary)}></ca-journal-table>`;
36
+ case 'outputs':
37
+ return html `<ca-contracts .run=${viewRoute.run} .outputs=${state.outputs} .journal=${state.journal} .plan=${state.plan}></ca-contracts>`;
38
+ case 'definitions':
39
+ return html `<ca-definitions .client=${client} .run=${viewRoute.run} .journal=${state.journal} .plan=${state.plan} .live=${live}
40
+ .selected=${viewRoute.def}></ca-definitions>`;
41
+ case 'procs':
42
+ return html `<ca-procs-view .procs=${state.procs} ?unresponsive=${runActivity(summary, !!state.procs?.alive) === 'unresponsive'}
43
+ ?exported=${!!snap.info.export}></ca-procs-view>`;
44
+ case 'stream':
45
+ return html `<ca-task-view .client=${client} .journal=${state.journal} .plan=${state.plan} base-url=${baseUrl} .run=${viewRoute.run}
46
+ .taskKey=${viewRoute.key ?? latestTask(derived.rows)} .view=${viewRoute.view} .round=${viewRoute.round} .live=${live}
47
+ ?exported=${!!snap.info.export} ?replay-marks=${mixedReplay(summary)}></ca-task-view>`;
48
+ default: {
49
+ const name = viewRoute.tab.slice('panel:'.length);
50
+ const info = snap.info.panels.find((p) => p.name === name);
51
+ return html `<ca-panel-view .name=${name} .panel=${info} .data=${state.panels[name]}></ca-panel-view>`;
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../../src/elements/shell/views.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type JournalRow, type MonitorClient, type Plan } from '@contraagent/api';
2
+ import { LitElement, type PropertyValues } from 'lit';
3
+ import { type TaskView } from '../../core/view-route.js';
4
+ import './ca-transcript.js';
5
+ /**
6
+ * One task: who ran it, every finished attempt, and four views of it: the
7
+ * transcript (live), its input (params, upstream outputs, declared inputs, the
8
+ * prompt), its output (files against their contracts, the result, who uses it)
9
+ * and its definition. Sends `ca-navigate` with `view` or `round`, and
10
+ * `ca-open-task` for a linked task.
11
+ *
12
+ * @fires ca-navigate - `{view}` or `{round}`: another view or round of this task
13
+ * @fires ca-open-task - `{key}`: an upstream or downstream task was clicked
14
+ */
15
+ export declare class CaTaskView extends LitElement {
16
+ static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
17
+ client: MonitorClient;
18
+ baseUrl: string;
19
+ run: string;
20
+ /** A task key; null when there is no task to show. */
21
+ taskKey: string | null;
22
+ view: TaskView;
23
+ /** The round shown, 1-based; null follows the latest. */
24
+ round: number | null;
25
+ /** The run is live. */
26
+ live: boolean;
27
+ /** The whole run's journal: the subscription readings other tasks took after this one, and what happened to the tasks it reads from. Optional. */
28
+ journal: JournalRow[];
29
+ /** The run's plan: whether a task with no attempt is waiting or not started, and which earlier task stopped it. Optional. */
30
+ plan: Plan | null;
31
+ /** Read from an export (`Info.export`): it holds no transcript. */
32
+ exported: boolean;
33
+ /** The run is a replay that also launched (`mixedReplay`): each attempt played from its recording is marked. */
34
+ replayMarks: boolean;
35
+ private readonly detail;
36
+ private transcriptEl?;
37
+ private launches;
38
+ private shownRound;
39
+ private rounds;
40
+ /** What happened to every task of the run (`deriveRun` of `journal` and `plan`), by key. */
41
+ private outcomes;
42
+ protected willUpdate(changed: PropertyValues<this>): void;
43
+ /** The view shown: a Python task has no transcript, so it opens on its output. */
44
+ private shownView;
45
+ private revealSearch;
46
+ render(): import("lit").TemplateResult<1>;
47
+ private renderViews;
48
+ private renderPane;
49
+ }
50
+ declare global {
51
+ interface HTMLElementTagNameMap {
52
+ 'ca-task-view': CaTaskView;
53
+ }
54
+ }
55
+ //# sourceMappingURL=ca-task-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-task-view.d.ts","sourceRoot":"","sources":["../../../src/elements/task/ca-task-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAoB,KAAK,aAAa,EAAE,KAAK,IAAI,EAAqC,MAAM,kBAAkB,CAAC;AAElJ,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKrE,OAAO,oBAAoB,CAAC;AAkB5B;;;;;;;;;GASG;AACH,qBAEa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,0DAAyE;IAE/D,MAAM,EAAG,aAAa,CAAC;IAClB,OAAO,SAAM;IACtC,GAAG,SAAM;IACrB,sDAAsD;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClD,IAAI,EAAE,QAAQ,CAAgB;IAC1C,yDAAyD;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5D,uBAAuB;IACM,IAAI,UAAS;IAC1C,kJAAkJ;IAClH,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3D,6HAA6H;IAC7F,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzD,mEAAmE;IACtC,QAAQ,UAAS;IAC9C,gHAAgH;IACxD,WAAW,UAAS;IAE5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACjC,OAAO,CAAC,YAAY,CAAC,CAAe;IACnD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,MAAM,CAAmB;IAC1C,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAA+C;cAE5C,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAUlE,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IAKX,MAAM;IAqCf,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,UAAU;CAKnB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}