@contraagent/ui 0.0.0-stage → 0.1.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 (1037) hide show
  1. package/README.md +130 -2
  2. package/custom-elements.json +7084 -0
  3. package/dist/adapters/check-rows.d.ts +18 -0
  4. package/dist/adapters/check-rows.d.ts.map +1 -0
  5. package/dist/adapters/check-rows.js +75 -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 +20 -0
  76. package/dist/adapters/panel-body.d.ts.map +1 -0
  77. package/dist/adapters/panel-body.js +63 -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 +985 -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/clock.d.ts +20 -0
  137. package/dist/core/clock.d.ts.map +1 -0
  138. package/dist/core/clock.js +45 -0
  139. package/dist/core/clock.js.map +1 -0
  140. package/dist/core/events.d.ts +107 -0
  141. package/dist/core/events.d.ts.map +1 -0
  142. package/dist/core/events.js +5 -0
  143. package/dist/core/events.js.map +1 -0
  144. package/dist/core/i18n.d.ts +21 -0
  145. package/dist/core/i18n.d.ts.map +1 -0
  146. package/dist/core/i18n.js +71 -0
  147. package/dist/core/i18n.js.map +1 -0
  148. package/dist/core/index.d.ts +5 -0
  149. package/dist/core/index.d.ts.map +1 -0
  150. package/dist/core/index.js +7 -0
  151. package/dist/core/index.js.map +1 -0
  152. package/dist/core/memory.d.ts +51 -0
  153. package/dist/core/memory.d.ts.map +1 -0
  154. package/dist/core/memory.js +174 -0
  155. package/dist/core/memory.js.map +1 -0
  156. package/dist/core/route.d.ts +62 -0
  157. package/dist/core/route.d.ts.map +1 -0
  158. package/dist/core/route.js +143 -0
  159. package/dist/core/route.js.map +1 -0
  160. package/dist/core/router.d.ts +27 -0
  161. package/dist/core/router.d.ts.map +1 -0
  162. package/dist/core/router.js +57 -0
  163. package/dist/core/router.js.map +1 -0
  164. package/dist/core/scroll.d.ts +21 -0
  165. package/dist/core/scroll.d.ts.map +1 -0
  166. package/dist/core/scroll.js +74 -0
  167. package/dist/core/scroll.js.map +1 -0
  168. package/dist/core/view-route.d.ts +62 -0
  169. package/dist/core/view-route.d.ts.map +1 -0
  170. package/dist/core/view-route.js +143 -0
  171. package/dist/core/view-route.js.map +1 -0
  172. package/dist/core/view-router.d.ts +27 -0
  173. package/dist/core/view-router.d.ts.map +1 -0
  174. package/dist/core/view-router.js +57 -0
  175. package/dist/core/view-router.js.map +1 -0
  176. package/dist/define/all.d.ts +13 -0
  177. package/dist/define/all.d.ts.map +1 -0
  178. package/dist/define/all.js +14 -0
  179. package/dist/define/all.js.map +1 -0
  180. package/dist/define/contracts.d.ts +2 -0
  181. package/dist/define/contracts.d.ts.map +1 -0
  182. package/dist/define/contracts.js +3 -0
  183. package/dist/define/contracts.js.map +1 -0
  184. package/dist/define/definitions.d.ts +3 -0
  185. package/dist/define/definitions.d.ts.map +1 -0
  186. package/dist/define/definitions.js +4 -0
  187. package/dist/define/definitions.js.map +1 -0
  188. package/dist/define/journal-table.d.ts +2 -0
  189. package/dist/define/journal-table.d.ts.map +1 -0
  190. package/dist/define/journal-table.js +3 -0
  191. package/dist/define/journal-table.js.map +1 -0
  192. package/dist/define/kpis.d.ts +2 -0
  193. package/dist/define/kpis.d.ts.map +1 -0
  194. package/dist/define/kpis.js +3 -0
  195. package/dist/define/kpis.js.map +1 -0
  196. package/dist/define/monitor.d.ts +2 -0
  197. package/dist/define/monitor.d.ts.map +1 -0
  198. package/dist/define/monitor.js +3 -0
  199. package/dist/define/monitor.js.map +1 -0
  200. package/dist/define/overview.d.ts +2 -0
  201. package/dist/define/overview.d.ts.map +1 -0
  202. package/dist/define/overview.js +3 -0
  203. package/dist/define/overview.js.map +1 -0
  204. package/dist/define/pipeline-graph.d.ts +2 -0
  205. package/dist/define/pipeline-graph.d.ts.map +1 -0
  206. package/dist/define/pipeline-graph.js +3 -0
  207. package/dist/define/pipeline-graph.js.map +1 -0
  208. package/dist/define/procs.d.ts +3 -0
  209. package/dist/define/procs.d.ts.map +1 -0
  210. package/dist/define/procs.js +4 -0
  211. package/dist/define/procs.js.map +1 -0
  212. package/dist/define/task-table.d.ts +2 -0
  213. package/dist/define/task-table.d.ts.map +1 -0
  214. package/dist/define/task-table.js +3 -0
  215. package/dist/define/task-table.js.map +1 -0
  216. package/dist/define/task-view.d.ts +2 -0
  217. package/dist/define/task-view.d.ts.map +1 -0
  218. package/dist/define/task-view.js +3 -0
  219. package/dist/define/task-view.js.map +1 -0
  220. package/dist/define/timeline.d.ts +2 -0
  221. package/dist/define/timeline.d.ts.map +1 -0
  222. package/dist/define/timeline.js +3 -0
  223. package/dist/define/timeline.js.map +1 -0
  224. package/dist/define/transcript.d.ts +2 -0
  225. package/dist/define/transcript.d.ts.map +1 -0
  226. package/dist/define/transcript.js +3 -0
  227. package/dist/define/transcript.js.map +1 -0
  228. package/dist/elements/lists/ca-contracts.d.ts +46 -0
  229. package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
  230. package/dist/elements/lists/ca-contracts.js +199 -0
  231. package/dist/elements/lists/ca-contracts.js.map +1 -0
  232. package/dist/elements/lists/ca-definitions.d.ts +41 -0
  233. package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
  234. package/dist/elements/lists/ca-definitions.js +182 -0
  235. package/dist/elements/lists/ca-definitions.js.map +1 -0
  236. package/dist/elements/lists/ca-journal-table.d.ts +37 -0
  237. package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
  238. package/dist/elements/lists/ca-journal-table.js +170 -0
  239. package/dist/elements/lists/ca-journal-table.js.map +1 -0
  240. package/dist/elements/lists/ca-panel-body.d.ts +29 -0
  241. package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
  242. package/dist/elements/lists/ca-panel-body.js +144 -0
  243. package/dist/elements/lists/ca-panel-body.js.map +1 -0
  244. package/dist/elements/lists/ca-panel-view.d.ts +21 -0
  245. package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
  246. package/dist/elements/lists/ca-panel-view.js +59 -0
  247. package/dist/elements/lists/ca-panel-view.js.map +1 -0
  248. package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
  249. package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
  250. package/dist/elements/lists/ca-proc-tree.js +63 -0
  251. package/dist/elements/lists/ca-proc-tree.js.map +1 -0
  252. package/dist/elements/lists/ca-procs-view.d.ts +27 -0
  253. package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
  254. package/dist/elements/lists/ca-procs-view.js +91 -0
  255. package/dist/elements/lists/ca-procs-view.js.map +1 -0
  256. package/dist/elements/lists/ca-task-table.d.ts +33 -0
  257. package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
  258. package/dist/elements/lists/ca-task-table.js +115 -0
  259. package/dist/elements/lists/ca-task-table.js.map +1 -0
  260. package/dist/elements/lists/filters.d.ts +28 -0
  261. package/dist/elements/lists/filters.d.ts.map +1 -0
  262. package/dist/elements/lists/filters.js +71 -0
  263. package/dist/elements/lists/filters.js.map +1 -0
  264. package/dist/elements/lists/index.d.ts +9 -0
  265. package/dist/elements/lists/index.d.ts.map +1 -0
  266. package/dist/elements/lists/index.js +9 -0
  267. package/dist/elements/lists/index.js.map +1 -0
  268. package/dist/elements/overview/ca-kpis.d.ts +32 -0
  269. package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
  270. package/dist/elements/overview/ca-kpis.js +62 -0
  271. package/dist/elements/overview/ca-kpis.js.map +1 -0
  272. package/dist/elements/overview/ca-model-usage.d.ts +25 -0
  273. package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
  274. package/dist/elements/overview/ca-model-usage.js +118 -0
  275. package/dist/elements/overview/ca-model-usage.js.map +1 -0
  276. package/dist/elements/overview/ca-overview.d.ts +66 -0
  277. package/dist/elements/overview/ca-overview.d.ts.map +1 -0
  278. package/dist/elements/overview/ca-overview.js +456 -0
  279. package/dist/elements/overview/ca-overview.js.map +1 -0
  280. package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
  281. package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
  282. package/dist/elements/overview/ca-pipeline-graph.js +616 -0
  283. package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
  284. package/dist/elements/overview/ca-pipeline-progress.d.ts +17 -0
  285. package/dist/elements/overview/ca-pipeline-progress.d.ts.map +1 -0
  286. package/dist/elements/overview/ca-pipeline-progress.js +119 -0
  287. package/dist/elements/overview/ca-pipeline-progress.js.map +1 -0
  288. package/dist/elements/overview/ca-plan-matrix.d.ts +27 -0
  289. package/dist/elements/overview/ca-plan-matrix.d.ts.map +1 -0
  290. package/dist/elements/overview/ca-plan-matrix.js +113 -0
  291. package/dist/elements/overview/ca-plan-matrix.js.map +1 -0
  292. package/dist/elements/overview/ca-quota.d.ts +42 -0
  293. package/dist/elements/overview/ca-quota.d.ts.map +1 -0
  294. package/dist/elements/overview/ca-quota.js +179 -0
  295. package/dist/elements/overview/ca-quota.js.map +1 -0
  296. package/dist/elements/overview/ca-run-driver.d.ts +33 -0
  297. package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
  298. package/dist/elements/overview/ca-run-driver.js +146 -0
  299. package/dist/elements/overview/ca-run-driver.js.map +1 -0
  300. package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
  301. package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
  302. package/dist/elements/overview/ca-spend-breakdown.js +108 -0
  303. package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
  304. package/dist/elements/overview/ca-timeline.d.ts +28 -0
  305. package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
  306. package/dist/elements/overview/ca-timeline.js +72 -0
  307. package/dist/elements/overview/ca-timeline.js.map +1 -0
  308. package/dist/elements/overview/ca-workers.d.ts +23 -0
  309. package/dist/elements/overview/ca-workers.d.ts.map +1 -0
  310. package/dist/elements/overview/ca-workers.js +86 -0
  311. package/dist/elements/overview/ca-workers.js.map +1 -0
  312. package/dist/elements/overview/flow-types.d.ts +2 -0
  313. package/dist/elements/overview/flow-types.d.ts.map +1 -0
  314. package/dist/elements/overview/flow-types.js +2 -0
  315. package/dist/elements/overview/flow-types.js.map +1 -0
  316. package/dist/elements/overview/graph/arrange.d.ts +16 -0
  317. package/dist/elements/overview/graph/arrange.d.ts.map +1 -0
  318. package/dist/elements/overview/graph/arrange.js +152 -0
  319. package/dist/elements/overview/graph/arrange.js.map +1 -0
  320. package/dist/elements/overview/graph/card.d.ts +64 -0
  321. package/dist/elements/overview/graph/card.d.ts.map +1 -0
  322. package/dist/elements/overview/graph/card.js +160 -0
  323. package/dist/elements/overview/graph/card.js.map +1 -0
  324. package/dist/elements/overview/graph/flow-index.d.ts +52 -0
  325. package/dist/elements/overview/graph/flow-index.d.ts.map +1 -0
  326. package/dist/elements/overview/graph/flow-index.js +121 -0
  327. package/dist/elements/overview/graph/flow-index.js.map +1 -0
  328. package/dist/elements/overview/graph/highlight.d.ts +14 -0
  329. package/dist/elements/overview/graph/highlight.d.ts.map +1 -0
  330. package/dist/elements/overview/graph/highlight.js +33 -0
  331. package/dist/elements/overview/graph/highlight.js.map +1 -0
  332. package/dist/elements/overview/graph/layer.d.ts +32 -0
  333. package/dist/elements/overview/graph/layer.d.ts.map +1 -0
  334. package/dist/elements/overview/graph/layer.js +92 -0
  335. package/dist/elements/overview/graph/layer.js.map +1 -0
  336. package/dist/elements/overview/graph/layout.d.ts +80 -0
  337. package/dist/elements/overview/graph/layout.d.ts.map +1 -0
  338. package/dist/elements/overview/graph/layout.js +261 -0
  339. package/dist/elements/overview/graph/layout.js.map +1 -0
  340. package/dist/elements/overview/graph/marks.d.ts +18 -0
  341. package/dist/elements/overview/graph/marks.d.ts.map +1 -0
  342. package/dist/elements/overview/graph/marks.js +17 -0
  343. package/dist/elements/overview/graph/marks.js.map +1 -0
  344. package/dist/elements/overview/graph/matrix.d.ts +58 -0
  345. package/dist/elements/overview/graph/matrix.d.ts.map +1 -0
  346. package/dist/elements/overview/graph/matrix.js +93 -0
  347. package/dist/elements/overview/graph/matrix.js.map +1 -0
  348. package/dist/elements/overview/graph/nav.d.ts +15 -0
  349. package/dist/elements/overview/graph/nav.d.ts.map +1 -0
  350. package/dist/elements/overview/graph/nav.js +80 -0
  351. package/dist/elements/overview/graph/nav.js.map +1 -0
  352. package/dist/elements/overview/graph/pan-zoom.d.ts +83 -0
  353. package/dist/elements/overview/graph/pan-zoom.d.ts.map +1 -0
  354. package/dist/elements/overview/graph/pan-zoom.js +189 -0
  355. package/dist/elements/overview/graph/pan-zoom.js.map +1 -0
  356. package/dist/elements/overview/graph/paths.d.ts +9 -0
  357. package/dist/elements/overview/graph/paths.d.ts.map +1 -0
  358. package/dist/elements/overview/graph/paths.js +44 -0
  359. package/dist/elements/overview/graph/paths.js.map +1 -0
  360. package/dist/elements/overview/graph/place-card.d.ts +36 -0
  361. package/dist/elements/overview/graph/place-card.d.ts.map +1 -0
  362. package/dist/elements/overview/graph/place-card.js +68 -0
  363. package/dist/elements/overview/graph/place-card.js.map +1 -0
  364. package/dist/elements/overview/graph/project.d.ts +31 -0
  365. package/dist/elements/overview/graph/project.d.ts.map +1 -0
  366. package/dist/elements/overview/graph/project.js +455 -0
  367. package/dist/elements/overview/graph/project.js.map +1 -0
  368. package/dist/elements/overview/graph/selection.d.ts +31 -0
  369. package/dist/elements/overview/graph/selection.d.ts.map +1 -0
  370. package/dist/elements/overview/graph/selection.js +44 -0
  371. package/dist/elements/overview/graph/selection.js.map +1 -0
  372. package/dist/elements/overview/graph/states.d.ts +6 -0
  373. package/dist/elements/overview/graph/states.d.ts.map +1 -0
  374. package/dist/elements/overview/graph/states.js +5 -0
  375. package/dist/elements/overview/graph/states.js.map +1 -0
  376. package/dist/elements/overview/graph/types.d.ts +124 -0
  377. package/dist/elements/overview/graph/types.d.ts.map +1 -0
  378. package/dist/elements/overview/graph/types.js +3 -0
  379. package/dist/elements/overview/graph/types.js.map +1 -0
  380. package/dist/elements/overview/graph/view.d.ts +16 -0
  381. package/dist/elements/overview/graph/view.d.ts.map +1 -0
  382. package/dist/elements/overview/graph/view.js +20 -0
  383. package/dist/elements/overview/graph/view.js.map +1 -0
  384. package/dist/elements/overview/index.d.ts +10 -0
  385. package/dist/elements/overview/index.d.ts.map +1 -0
  386. package/dist/elements/overview/index.js +10 -0
  387. package/dist/elements/overview/index.js.map +1 -0
  388. package/dist/elements/overview/kpis-model.d.ts +31 -0
  389. package/dist/elements/overview/kpis-model.d.ts.map +1 -0
  390. package/dist/elements/overview/kpis-model.js +30 -0
  391. package/dist/elements/overview/kpis-model.js.map +1 -0
  392. package/dist/elements/overview/logic.d.ts +442 -0
  393. package/dist/elements/overview/logic.d.ts.map +1 -0
  394. package/dist/elements/overview/logic.js +1431 -0
  395. package/dist/elements/overview/logic.js.map +1 -0
  396. package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
  397. package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
  398. package/dist/elements/overview/pipeline-graph/actions.js +42 -0
  399. package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
  400. package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
  401. package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
  402. package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
  403. package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
  404. package/dist/elements/overview/pipeline-graph/dag.d.ts +4 -0
  405. package/dist/elements/overview/pipeline-graph/dag.d.ts.map +1 -0
  406. package/dist/elements/overview/pipeline-graph/dag.js +259 -0
  407. package/dist/elements/overview/pipeline-graph/dag.js.map +1 -0
  408. package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
  409. package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
  410. package/dist/elements/overview/pipeline-graph/host.js +2 -0
  411. package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
  412. package/dist/elements/overview/pipeline-graph/icons.d.ts +5 -0
  413. package/dist/elements/overview/pipeline-graph/icons.d.ts.map +1 -0
  414. package/dist/elements/overview/pipeline-graph/icons.js +13 -0
  415. package/dist/elements/overview/pipeline-graph/icons.js.map +1 -0
  416. package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
  417. package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
  418. package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
  419. package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
  420. package/dist/elements/overview/pipeline-graph/legend.d.ts +9 -0
  421. package/dist/elements/overview/pipeline-graph/legend.d.ts.map +1 -0
  422. package/dist/elements/overview/pipeline-graph/legend.js +59 -0
  423. package/dist/elements/overview/pipeline-graph/legend.js.map +1 -0
  424. package/dist/elements/overview/pipeline-graph/matrix.d.ts +4 -0
  425. package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +1 -0
  426. package/dist/elements/overview/pipeline-graph/matrix.js +193 -0
  427. package/dist/elements/overview/pipeline-graph/matrix.js.map +1 -0
  428. package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
  429. package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
  430. package/dist/elements/overview/pipeline-graph/outline.js +111 -0
  431. package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
  432. package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
  433. package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
  434. package/dist/elements/overview/pipeline-graph/strings.js +49 -0
  435. package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
  436. package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
  437. package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
  438. package/dist/elements/overview/pipeline-graph/styles.js +96 -0
  439. package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
  440. package/dist/elements/overview/pipeline-graph/table.d.ts +11 -0
  441. package/dist/elements/overview/pipeline-graph/table.d.ts.map +1 -0
  442. package/dist/elements/overview/pipeline-graph/table.js +74 -0
  443. package/dist/elements/overview/pipeline-graph/table.js.map +1 -0
  444. package/dist/elements/overview/pipeline-graph/tools.d.ts +5 -0
  445. package/dist/elements/overview/pipeline-graph/tools.d.ts.map +1 -0
  446. package/dist/elements/overview/pipeline-graph/tools.js +48 -0
  447. package/dist/elements/overview/pipeline-graph/tools.js.map +1 -0
  448. package/dist/elements/overview/pipeline-graph/words.d.ts +45 -0
  449. package/dist/elements/overview/pipeline-graph/words.d.ts.map +1 -0
  450. package/dist/elements/overview/pipeline-graph/words.js +108 -0
  451. package/dist/elements/overview/pipeline-graph/words.js.map +1 -0
  452. package/dist/elements/overview/place-card.d.ts +36 -0
  453. package/dist/elements/overview/place-card.d.ts.map +1 -0
  454. package/dist/elements/overview/place-card.js +68 -0
  455. package/dist/elements/overview/place-card.js.map +1 -0
  456. package/dist/elements/overview/timeline-model.d.ts +44 -0
  457. package/dist/elements/overview/timeline-model.d.ts.map +1 -0
  458. package/dist/elements/overview/timeline-model.js +53 -0
  459. package/dist/elements/overview/timeline-model.js.map +1 -0
  460. package/dist/elements/shared/ca-count.d.ts +17 -0
  461. package/dist/elements/shared/ca-count.d.ts.map +1 -0
  462. package/dist/elements/shared/ca-count.js +59 -0
  463. package/dist/elements/shared/ca-count.js.map +1 -0
  464. package/dist/elements/shared/ca-definition.d.ts +26 -0
  465. package/dist/elements/shared/ca-definition.d.ts.map +1 -0
  466. package/dist/elements/shared/ca-definition.js +202 -0
  467. package/dist/elements/shared/ca-definition.js.map +1 -0
  468. package/dist/elements/shared/ca-elapsed.d.ts +14 -0
  469. package/dist/elements/shared/ca-elapsed.d.ts.map +1 -0
  470. package/dist/elements/shared/ca-elapsed.js +33 -0
  471. package/dist/elements/shared/ca-elapsed.js.map +1 -0
  472. package/dist/elements/shared/ca-json-tree.d.ts +16 -0
  473. package/dist/elements/shared/ca-json-tree.d.ts.map +1 -0
  474. package/dist/elements/shared/ca-json-tree.js +52 -0
  475. package/dist/elements/shared/ca-json-tree.js.map +1 -0
  476. package/dist/elements/shared/ca-markdown.d.ts +19 -0
  477. package/dist/elements/shared/ca-markdown.d.ts.map +1 -0
  478. package/dist/elements/shared/ca-markdown.js +59 -0
  479. package/dist/elements/shared/ca-markdown.js.map +1 -0
  480. package/dist/elements/shared/contract-parts.d.ts +35 -0
  481. package/dist/elements/shared/contract-parts.d.ts.map +1 -0
  482. package/dist/elements/shared/contract-parts.js +151 -0
  483. package/dist/elements/shared/contract-parts.js.map +1 -0
  484. package/dist/elements/shared/fact-line.d.ts +4 -0
  485. package/dist/elements/shared/fact-line.d.ts.map +1 -0
  486. package/dist/elements/shared/fact-line.js +8 -0
  487. package/dist/elements/shared/fact-line.js.map +1 -0
  488. package/dist/elements/shared/file-card.d.ts +17 -0
  489. package/dist/elements/shared/file-card.d.ts.map +1 -0
  490. package/dist/elements/shared/file-card.js +37 -0
  491. package/dist/elements/shared/file-card.js.map +1 -0
  492. package/dist/elements/shared/prompt-text.d.ts +5 -0
  493. package/dist/elements/shared/prompt-text.d.ts.map +1 -0
  494. package/dist/elements/shared/prompt-text.js +13 -0
  495. package/dist/elements/shared/prompt-text.js.map +1 -0
  496. package/dist/elements/shared/task-chip.d.ts +10 -0
  497. package/dist/elements/shared/task-chip.d.ts.map +1 -0
  498. package/dist/elements/shared/task-chip.js +19 -0
  499. package/dist/elements/shared/task-chip.js.map +1 -0
  500. package/dist/elements/shell/ca-clock.d.ts +13 -0
  501. package/dist/elements/shell/ca-clock.d.ts.map +1 -0
  502. package/dist/elements/shell/ca-clock.js +30 -0
  503. package/dist/elements/shell/ca-clock.js.map +1 -0
  504. package/dist/elements/shell/ca-hosts.d.ts +21 -0
  505. package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
  506. package/dist/elements/shell/ca-hosts.js +97 -0
  507. package/dist/elements/shell/ca-hosts.js.map +1 -0
  508. package/dist/elements/shell/ca-monitor.d.ts +180 -0
  509. package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
  510. package/dist/elements/shell/ca-monitor.js +547 -0
  511. package/dist/elements/shell/ca-monitor.js.map +1 -0
  512. package/dist/elements/shell/ca-run-picker.d.ts +71 -0
  513. package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
  514. package/dist/elements/shell/ca-run-picker.js +313 -0
  515. package/dist/elements/shell/ca-run-picker.js.map +1 -0
  516. package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
  517. package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
  518. package/dist/elements/shell/ca-theme-switch.js +186 -0
  519. package/dist/elements/shell/ca-theme-switch.js.map +1 -0
  520. package/dist/elements/shell/ca-toasts.d.ts +23 -0
  521. package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
  522. package/dist/elements/shell/ca-toasts.js +88 -0
  523. package/dist/elements/shell/ca-toasts.js.map +1 -0
  524. package/dist/elements/shell/header.d.ts +13 -0
  525. package/dist/elements/shell/header.d.ts.map +1 -0
  526. package/dist/elements/shell/header.js +38 -0
  527. package/dist/elements/shell/header.js.map +1 -0
  528. package/dist/elements/shell/styles.d.ts +2 -0
  529. package/dist/elements/shell/styles.d.ts.map +1 -0
  530. package/dist/elements/shell/styles.js +72 -0
  531. package/dist/elements/shell/styles.js.map +1 -0
  532. package/dist/elements/shell/tabs.d.ts +32 -0
  533. package/dist/elements/shell/tabs.d.ts.map +1 -0
  534. package/dist/elements/shell/tabs.js +125 -0
  535. package/dist/elements/shell/tabs.js.map +1 -0
  536. package/dist/elements/shell/views.d.ts +27 -0
  537. package/dist/elements/shell/views.d.ts.map +1 -0
  538. package/dist/elements/shell/views.js +55 -0
  539. package/dist/elements/shell/views.js.map +1 -0
  540. package/dist/elements/task/ca-task-view.d.ts +55 -0
  541. package/dist/elements/task/ca-task-view.d.ts.map +1 -0
  542. package/dist/elements/task/ca-task-view.js +199 -0
  543. package/dist/elements/task/ca-task-view.js.map +1 -0
  544. package/dist/elements/task/ca-transcript.d.ts +74 -0
  545. package/dist/elements/task/ca-transcript.d.ts.map +1 -0
  546. package/dist/elements/task/ca-transcript.js +241 -0
  547. package/dist/elements/task/ca-transcript.js.map +1 -0
  548. package/dist/elements/task/context.d.ts +57 -0
  549. package/dist/elements/task/context.d.ts.map +1 -0
  550. package/dist/elements/task/context.js +61 -0
  551. package/dist/elements/task/context.js.map +1 -0
  552. package/dist/elements/task/header.d.ts +9 -0
  553. package/dist/elements/task/header.d.ts.map +1 -0
  554. package/dist/elements/task/header.js +287 -0
  555. package/dist/elements/task/header.js.map +1 -0
  556. package/dist/elements/task/index.d.ts +3 -0
  557. package/dist/elements/task/index.d.ts.map +1 -0
  558. package/dist/elements/task/index.js +3 -0
  559. package/dist/elements/task/index.js.map +1 -0
  560. package/dist/elements/task/inputs.d.ts +28 -0
  561. package/dist/elements/task/inputs.d.ts.map +1 -0
  562. package/dist/elements/task/inputs.js +27 -0
  563. package/dist/elements/task/inputs.js.map +1 -0
  564. package/dist/elements/task/panes/definition.d.ts +5 -0
  565. package/dist/elements/task/panes/definition.d.ts.map +1 -0
  566. package/dist/elements/task/panes/definition.js +5 -0
  567. package/dist/elements/task/panes/definition.js.map +1 -0
  568. package/dist/elements/task/panes/io.d.ts +8 -0
  569. package/dist/elements/task/panes/io.d.ts.map +1 -0
  570. package/dist/elements/task/panes/io.js +184 -0
  571. package/dist/elements/task/panes/io.js.map +1 -0
  572. package/dist/elements/task/panes/transcript.d.ts +5 -0
  573. package/dist/elements/task/panes/transcript.d.ts.map +1 -0
  574. package/dist/elements/task/panes/transcript.js +29 -0
  575. package/dist/elements/task/panes/transcript.js.map +1 -0
  576. package/dist/elements/task/rounds.d.ts +14 -0
  577. package/dist/elements/task/rounds.d.ts.map +1 -0
  578. package/dist/elements/task/rounds.js +59 -0
  579. package/dist/elements/task/rounds.js.map +1 -0
  580. package/dist/elements/task/styles.d.ts +2 -0
  581. package/dist/elements/task/styles.d.ts.map +1 -0
  582. package/dist/elements/task/styles.js +66 -0
  583. package/dist/elements/task/styles.js.map +1 -0
  584. package/dist/elements/task/transcript-model.d.ts +106 -0
  585. package/dist/elements/task/transcript-model.d.ts.map +1 -0
  586. package/dist/elements/task/transcript-model.js +280 -0
  587. package/dist/elements/task/transcript-model.js.map +1 -0
  588. package/dist/elements/task/who.d.ts +5 -0
  589. package/dist/elements/task/who.d.ts.map +1 -0
  590. package/dist/elements/task/who.js +30 -0
  591. package/dist/elements/task/who.js.map +1 -0
  592. package/dist/elements/trends/ca-trends.d.ts +55 -0
  593. package/dist/elements/trends/ca-trends.d.ts.map +1 -0
  594. package/dist/elements/trends/ca-trends.js +213 -0
  595. package/dist/elements/trends/ca-trends.js.map +1 -0
  596. package/dist/events.d.ts +107 -0
  597. package/dist/events.d.ts.map +1 -0
  598. package/dist/events.js +5 -0
  599. package/dist/events.js.map +1 -0
  600. package/dist/i18n.d.ts +16 -0
  601. package/dist/i18n.d.ts.map +1 -0
  602. package/dist/i18n.js +48 -0
  603. package/dist/i18n.js.map +1 -0
  604. package/dist/index.d.ts +14 -0
  605. package/dist/index.d.ts.map +1 -0
  606. package/dist/index.js +22 -0
  607. package/dist/index.js.map +1 -0
  608. package/dist/lib/clock.d.ts +20 -0
  609. package/dist/lib/clock.d.ts.map +1 -0
  610. package/dist/lib/clock.js +45 -0
  611. package/dist/lib/clock.js.map +1 -0
  612. package/dist/lib/format.d.ts +35 -0
  613. package/dist/lib/format.d.ts.map +1 -0
  614. package/dist/lib/format.js +117 -0
  615. package/dist/lib/format.js.map +1 -0
  616. package/dist/lib/highlight.d.ts +5 -0
  617. package/dist/lib/highlight.d.ts.map +1 -0
  618. package/dist/lib/highlight.js +86 -0
  619. package/dist/lib/highlight.js.map +1 -0
  620. package/dist/lib/labels.d.ts +103 -0
  621. package/dist/lib/labels.d.ts.map +1 -0
  622. package/dist/lib/labels.js +249 -0
  623. package/dist/lib/labels.js.map +1 -0
  624. package/dist/lib/markdown.d.ts +13 -0
  625. package/dist/lib/markdown.d.ts.map +1 -0
  626. package/dist/lib/markdown.js +118 -0
  627. package/dist/lib/markdown.js.map +1 -0
  628. package/dist/lib/memory.d.ts +27 -0
  629. package/dist/lib/memory.d.ts.map +1 -0
  630. package/dist/lib/memory.js +117 -0
  631. package/dist/lib/memory.js.map +1 -0
  632. package/dist/lib/quota-format.d.ts +28 -0
  633. package/dist/lib/quota-format.d.ts.map +1 -0
  634. package/dist/lib/quota-format.js +67 -0
  635. package/dist/lib/quota-format.js.map +1 -0
  636. package/dist/lib/scroll.d.ts +16 -0
  637. package/dist/lib/scroll.d.ts.map +1 -0
  638. package/dist/lib/scroll.js +70 -0
  639. package/dist/lib/scroll.js.map +1 -0
  640. package/dist/lib/status.d.ts +25 -0
  641. package/dist/lib/status.d.ts.map +1 -0
  642. package/dist/lib/status.js +40 -0
  643. package/dist/lib/status.js.map +1 -0
  644. package/dist/lib/tone.d.ts +29 -0
  645. package/dist/lib/tone.d.ts.map +1 -0
  646. package/dist/lib/tone.js +97 -0
  647. package/dist/lib/tone.js.map +1 -0
  648. package/dist/lib/trends.d.ts +15 -0
  649. package/dist/lib/trends.d.ts.map +1 -0
  650. package/dist/lib/trends.js +36 -0
  651. package/dist/lib/trends.js.map +1 -0
  652. package/dist/locales/codes.d.ts +14 -0
  653. package/dist/locales/codes.d.ts.map +1 -0
  654. package/dist/locales/codes.js +21 -0
  655. package/dist/locales/codes.js.map +1 -0
  656. package/dist/locales/ja.d.ts +761 -0
  657. package/dist/locales/ja.d.ts.map +1 -0
  658. package/dist/locales/ja.js +767 -0
  659. package/dist/locales/ja.js.map +1 -0
  660. package/dist/route.d.ts +46 -0
  661. package/dist/route.d.ts.map +1 -0
  662. package/dist/route.js +102 -0
  663. package/dist/route.js.map +1 -0
  664. package/dist/router.d.ts +23 -0
  665. package/dist/router.d.ts.map +1 -0
  666. package/dist/router.js +55 -0
  667. package/dist/router.js.map +1 -0
  668. package/dist/styles/base.d.ts +11 -0
  669. package/dist/styles/base.d.ts.map +1 -0
  670. package/dist/styles/base.js +241 -0
  671. package/dist/styles/base.js.map +1 -0
  672. package/dist/styles/chips.d.ts +2 -0
  673. package/dist/styles/chips.d.ts.map +1 -0
  674. package/dist/styles/chips.js +18 -0
  675. package/dist/styles/chips.js.map +1 -0
  676. package/dist/styles/executor-icon.d.ts +3 -0
  677. package/dist/styles/executor-icon.d.ts.map +1 -0
  678. package/dist/styles/executor-icon.js +9 -0
  679. package/dist/styles/executor-icon.js.map +1 -0
  680. package/dist/styles/facts.d.ts +2 -0
  681. package/dist/styles/facts.d.ts.map +1 -0
  682. package/dist/styles/facts.js +7 -0
  683. package/dist/styles/facts.js.map +1 -0
  684. package/dist/styles/index.d.ts +17 -0
  685. package/dist/styles/index.d.ts.map +1 -0
  686. package/dist/styles/index.js +16 -0
  687. package/dist/styles/index.js.map +1 -0
  688. package/dist/styles/layout.d.ts +2 -0
  689. package/dist/styles/layout.d.ts.map +1 -0
  690. package/dist/styles/layout.js +30 -0
  691. package/dist/styles/layout.js.map +1 -0
  692. package/dist/styles/legend.d.ts +2 -0
  693. package/dist/styles/legend.d.ts.map +1 -0
  694. package/dist/styles/legend.js +8 -0
  695. package/dist/styles/legend.js.map +1 -0
  696. package/dist/styles/meter.d.ts +3 -0
  697. package/dist/styles/meter.d.ts.map +1 -0
  698. package/dist/styles/meter.js +9 -0
  699. package/dist/styles/meter.js.map +1 -0
  700. package/dist/styles/motion.d.ts +2 -0
  701. package/dist/styles/motion.d.ts.map +1 -0
  702. package/dist/styles/motion.js +27 -0
  703. package/dist/styles/motion.js.map +1 -0
  704. package/dist/styles/prose.d.ts +3 -0
  705. package/dist/styles/prose.d.ts.map +1 -0
  706. package/dist/styles/prose.js +59 -0
  707. package/dist/styles/prose.js.map +1 -0
  708. package/dist/styles/reset.d.ts +2 -0
  709. package/dist/styles/reset.d.ts.map +1 -0
  710. package/dist/styles/reset.js +13 -0
  711. package/dist/styles/reset.js.map +1 -0
  712. package/dist/styles/status.d.ts +2 -0
  713. package/dist/styles/status.d.ts.map +1 -0
  714. package/dist/styles/status.js +52 -0
  715. package/dist/styles/status.js.map +1 -0
  716. package/dist/styles/text.d.ts +2 -0
  717. package/dist/styles/text.d.ts.map +1 -0
  718. package/dist/styles/text.js +21 -0
  719. package/dist/styles/text.js.map +1 -0
  720. package/dist/styles/theme-sheet.d.ts +12 -0
  721. package/dist/styles/theme-sheet.d.ts.map +1 -0
  722. package/dist/styles/theme-sheet.js +24 -0
  723. package/dist/styles/theme-sheet.js.map +1 -0
  724. package/dist/styles/themes.d.ts +75 -0
  725. package/dist/styles/themes.d.ts.map +1 -0
  726. package/dist/styles/themes.js +452 -0
  727. package/dist/styles/themes.js.map +1 -0
  728. package/dist/styles/tokens.d.ts +8 -0
  729. package/dist/styles/tokens.d.ts.map +1 -0
  730. package/dist/styles/tokens.js +32 -0
  731. package/dist/styles/tokens.js.map +1 -0
  732. package/dist/themes/boot.d.ts +7 -0
  733. package/dist/themes/boot.d.ts.map +1 -0
  734. package/dist/themes/boot.js +14 -0
  735. package/dist/themes/boot.js.map +1 -0
  736. package/dist/themes/choice.d.ts +16 -0
  737. package/dist/themes/choice.d.ts.map +1 -0
  738. package/dist/themes/choice.js +45 -0
  739. package/dist/themes/choice.js.map +1 -0
  740. package/dist/themes/data.d.ts +42 -0
  741. package/dist/themes/data.d.ts.map +1 -0
  742. package/dist/themes/data.js +356 -0
  743. package/dist/themes/data.js.map +1 -0
  744. package/dist/themes/index.d.ts +5 -0
  745. package/dist/themes/index.d.ts.map +1 -0
  746. package/dist/themes/index.js +8 -0
  747. package/dist/themes/index.js.map +1 -0
  748. package/dist/themes/sheet.d.ts +12 -0
  749. package/dist/themes/sheet.d.ts.map +1 -0
  750. package/dist/themes/sheet.js +24 -0
  751. package/dist/themes/sheet.js.map +1 -0
  752. package/dist/themes/tokens-list.d.ts +15 -0
  753. package/dist/themes/tokens-list.d.ts.map +1 -0
  754. package/dist/themes/tokens-list.js +62 -0
  755. package/dist/themes/tokens-list.js.map +1 -0
  756. package/dist/words/api-error.d.ts +4 -0
  757. package/dist/words/api-error.d.ts.map +1 -0
  758. package/dist/words/api-error.js +13 -0
  759. package/dist/words/api-error.js.map +1 -0
  760. package/dist/words/attempts.d.ts +17 -0
  761. package/dist/words/attempts.d.ts.map +1 -0
  762. package/dist/words/attempts.js +26 -0
  763. package/dist/words/attempts.js.map +1 -0
  764. package/dist/words/causes.d.ts +33 -0
  765. package/dist/words/causes.d.ts.map +1 -0
  766. package/dist/words/causes.js +58 -0
  767. package/dist/words/causes.js.map +1 -0
  768. package/dist/words/changes.d.ts +9 -0
  769. package/dist/words/changes.d.ts.map +1 -0
  770. package/dist/words/changes.js +21 -0
  771. package/dist/words/changes.js.map +1 -0
  772. package/dist/words/claims.d.ts +9 -0
  773. package/dist/words/claims.d.ts.map +1 -0
  774. package/dist/words/claims.js +12 -0
  775. package/dist/words/claims.js.map +1 -0
  776. package/dist/words/context.d.ts +18 -0
  777. package/dist/words/context.d.ts.map +1 -0
  778. package/dist/words/context.js +39 -0
  779. package/dist/words/context.js.map +1 -0
  780. package/dist/words/contract.d.ts +25 -0
  781. package/dist/words/contract.d.ts.map +1 -0
  782. package/dist/words/contract.js +52 -0
  783. package/dist/words/contract.js.map +1 -0
  784. package/dist/words/credential.d.ts +5 -0
  785. package/dist/words/credential.d.ts.map +1 -0
  786. package/dist/words/credential.js +7 -0
  787. package/dist/words/credential.js.map +1 -0
  788. package/dist/words/executor.d.ts +12 -0
  789. package/dist/words/executor.d.ts.map +1 -0
  790. package/dist/words/executor.js +20 -0
  791. package/dist/words/executor.js.map +1 -0
  792. package/dist/words/export.d.ts +8 -0
  793. package/dist/words/export.d.ts.map +1 -0
  794. package/dist/words/export.js +17 -0
  795. package/dist/words/export.js.map +1 -0
  796. package/dist/words/format.d.ts +36 -0
  797. package/dist/words/format.d.ts.map +1 -0
  798. package/dist/words/format.js +109 -0
  799. package/dist/words/format.js.map +1 -0
  800. package/dist/words/hops.d.ts +12 -0
  801. package/dist/words/hops.d.ts.map +1 -0
  802. package/dist/words/hops.js +27 -0
  803. package/dist/words/hops.js.map +1 -0
  804. package/dist/words/hosts.d.ts +18 -0
  805. package/dist/words/hosts.d.ts.map +1 -0
  806. package/dist/words/hosts.js +22 -0
  807. package/dist/words/hosts.js.map +1 -0
  808. package/dist/words/index.d.ts +27 -0
  809. package/dist/words/index.d.ts.map +1 -0
  810. package/dist/words/index.js +31 -0
  811. package/dist/words/index.js.map +1 -0
  812. package/dist/words/models.d.ts +10 -0
  813. package/dist/words/models.d.ts.map +1 -0
  814. package/dist/words/models.js +45 -0
  815. package/dist/words/models.js.map +1 -0
  816. package/dist/words/outcome.d.ts +14 -0
  817. package/dist/words/outcome.d.ts.map +1 -0
  818. package/dist/words/outcome.js +58 -0
  819. package/dist/words/outcome.js.map +1 -0
  820. package/dist/words/panels.d.ts +11 -0
  821. package/dist/words/panels.d.ts.map +1 -0
  822. package/dist/words/panels.js +50 -0
  823. package/dist/words/panels.js.map +1 -0
  824. package/dist/words/passes.d.ts +11 -0
  825. package/dist/words/passes.d.ts.map +1 -0
  826. package/dist/words/passes.js +13 -0
  827. package/dist/words/passes.js.map +1 -0
  828. package/dist/words/preflight.d.ts +28 -0
  829. package/dist/words/preflight.d.ts.map +1 -0
  830. package/dist/words/preflight.js +30 -0
  831. package/dist/words/preflight.js.map +1 -0
  832. package/dist/words/priority.d.ts +5 -0
  833. package/dist/words/priority.d.ts.map +1 -0
  834. package/dist/words/priority.js +7 -0
  835. package/dist/words/priority.js.map +1 -0
  836. package/dist/words/prompt.d.ts +10 -0
  837. package/dist/words/prompt.d.ts.map +1 -0
  838. package/dist/words/prompt.js +17 -0
  839. package/dist/words/prompt.js.map +1 -0
  840. package/dist/words/quota.d.ts +35 -0
  841. package/dist/words/quota.d.ts.map +1 -0
  842. package/dist/words/quota.js +102 -0
  843. package/dist/words/quota.js.map +1 -0
  844. package/dist/words/rests.d.ts +26 -0
  845. package/dist/words/rests.d.ts.map +1 -0
  846. package/dist/words/rests.js +77 -0
  847. package/dist/words/rests.js.map +1 -0
  848. package/dist/words/rounds.d.ts +14 -0
  849. package/dist/words/rounds.d.ts.map +1 -0
  850. package/dist/words/rounds.js +60 -0
  851. package/dist/words/rounds.js.map +1 -0
  852. package/dist/words/row-extras.d.ts +7 -0
  853. package/dist/words/row-extras.d.ts.map +1 -0
  854. package/dist/words/row-extras.js +26 -0
  855. package/dist/words/row-extras.js.map +1 -0
  856. package/dist/words/run-line.d.ts +40 -0
  857. package/dist/words/run-line.d.ts.map +1 -0
  858. package/dist/words/run-line.js +66 -0
  859. package/dist/words/run-line.js.map +1 -0
  860. package/dist/words/stop.d.ts +6 -0
  861. package/dist/words/stop.d.ts.map +1 -0
  862. package/dist/words/stop.js +69 -0
  863. package/dist/words/stop.js.map +1 -0
  864. package/dist/words/table.d.ts +4 -0
  865. package/dist/words/table.d.ts.map +1 -0
  866. package/dist/words/table.js +8 -0
  867. package/dist/words/table.js.map +1 -0
  868. package/dist/words/task-definition.d.ts +23 -0
  869. package/dist/words/task-definition.d.ts.map +1 -0
  870. package/dist/words/task-definition.js +27 -0
  871. package/dist/words/task-definition.js.map +1 -0
  872. package/dist/words/time-box.d.ts +8 -0
  873. package/dist/words/time-box.d.ts.map +1 -0
  874. package/dist/words/time-box.js +12 -0
  875. package/dist/words/time-box.js.map +1 -0
  876. package/dist/words/trends.d.ts +86 -0
  877. package/dist/words/trends.d.ts.map +1 -0
  878. package/dist/words/trends.js +104 -0
  879. package/dist/words/trends.js.map +1 -0
  880. package/dist/words/units.d.ts +9 -0
  881. package/dist/words/units.d.ts.map +1 -0
  882. package/dist/words/units.js +12 -0
  883. package/dist/words/units.js.map +1 -0
  884. package/docs/embed.md +118 -0
  885. package/docs/events.md +38 -0
  886. package/docs/examples/embed.html +31 -0
  887. package/docs/examples/journal.ts +32 -0
  888. package/docs/examples/live-transcript.ts +22 -0
  889. package/docs/examples/vite/index.html +30 -0
  890. package/docs/examples/vite/main.ts +23 -0
  891. package/docs/languages.md +48 -0
  892. package/docs/live-data.md +17 -0
  893. package/docs/theming.md +21 -0
  894. package/docs/tsconfig.json +14 -0
  895. package/package.json +131 -4
  896. package/src/adapters/check-rows.ts +78 -0
  897. package/src/adapters/filters.ts +76 -0
  898. package/src/adapters/graph/compound.ts +359 -0
  899. package/src/adapters/graph/flow-index.ts +154 -0
  900. package/src/adapters/graph/highlight.ts +40 -0
  901. package/src/adapters/graph/input.ts +236 -0
  902. package/src/adapters/graph/layer.ts +92 -0
  903. package/src/adapters/graph/matrix.ts +133 -0
  904. package/src/adapters/graph/plans.fixture.ts +194 -0
  905. package/src/adapters/graph/project.ts +358 -0
  906. package/src/adapters/graph/selection.ts +54 -0
  907. package/src/adapters/graph/states.ts +10 -0
  908. package/src/adapters/graph/types.ts +148 -0
  909. package/src/adapters/graph/words.ts +146 -0
  910. package/src/adapters/index.ts +22 -0
  911. package/src/adapters/journal-columns.ts +200 -0
  912. package/src/adapters/kpi-tiles.ts +211 -0
  913. package/src/adapters/lanes.ts +98 -0
  914. package/src/adapters/model-shares.ts +62 -0
  915. package/src/adapters/panel-body.ts +74 -0
  916. package/src/adapters/preflight.ts +27 -0
  917. package/src/adapters/task-columns.ts +120 -0
  918. package/src/adapters/transcript/index.ts +14 -0
  919. package/src/adapters/transcript/model.ts +156 -0
  920. package/src/adapters/transcript/rounds.ts +86 -0
  921. package/src/adapters/transcript/sections.ts +82 -0
  922. package/src/adapters/transcript/web.ts +40 -0
  923. package/src/adapters/transcript/who.ts +53 -0
  924. package/src/adapters/trends.ts +337 -0
  925. package/src/controllers/locale.ts +47 -0
  926. package/src/controllers/shortcuts.ts +69 -0
  927. package/src/controllers/stream.ts +103 -0
  928. package/src/controllers/task-detail.ts +54 -0
  929. package/src/controllers/theme.ts +73 -0
  930. package/src/core/events.ts +120 -0
  931. package/src/core/i18n.ts +76 -0
  932. package/src/core/index.ts +6 -0
  933. package/src/core/memory.ts +177 -0
  934. package/src/core/scroll.ts +73 -0
  935. package/src/core/view-route.ts +177 -0
  936. package/src/core/view-router.ts +66 -0
  937. package/src/define/all.ts +13 -0
  938. package/src/define/contracts.ts +2 -0
  939. package/src/define/definitions.ts +3 -0
  940. package/src/define/journal-table.ts +2 -0
  941. package/src/define/kpis.ts +2 -0
  942. package/src/define/monitor.ts +2 -0
  943. package/src/define/overview.ts +2 -0
  944. package/src/define/pipeline-graph.ts +2 -0
  945. package/src/define/procs.ts +3 -0
  946. package/src/define/task-table.ts +2 -0
  947. package/src/define/task-view.ts +2 -0
  948. package/src/define/timeline.ts +2 -0
  949. package/src/define/transcript.ts +2 -0
  950. package/src/elements/lists/ca-contracts.ts +204 -0
  951. package/src/elements/lists/ca-definitions.ts +170 -0
  952. package/src/elements/lists/ca-journal-table.ts +141 -0
  953. package/src/elements/lists/ca-panel-body.ts +139 -0
  954. package/src/elements/lists/ca-panel-view.ts +50 -0
  955. package/src/elements/lists/ca-proc-tree.ts +57 -0
  956. package/src/elements/lists/ca-procs-view.ts +89 -0
  957. package/src/elements/lists/ca-task-table.ts +94 -0
  958. package/src/elements/lists/index.ts +8 -0
  959. package/src/elements/overview/ca-kpis.ts +51 -0
  960. package/src/elements/overview/ca-model-usage.ts +113 -0
  961. package/src/elements/overview/ca-overview.ts +492 -0
  962. package/src/elements/overview/ca-pipeline-graph.ts +617 -0
  963. package/src/elements/overview/ca-quota.ts +164 -0
  964. package/src/elements/overview/ca-run-driver.ts +140 -0
  965. package/src/elements/overview/ca-spend-breakdown.ts +107 -0
  966. package/src/elements/overview/ca-timeline.ts +57 -0
  967. package/src/elements/overview/ca-workers.ts +82 -0
  968. package/src/elements/overview/index.ts +9 -0
  969. package/src/elements/overview/pipeline-graph/actions.ts +45 -0
  970. package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
  971. package/src/elements/overview/pipeline-graph/host.ts +26 -0
  972. package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
  973. package/src/elements/overview/pipeline-graph/outline.ts +150 -0
  974. package/src/elements/overview/pipeline-graph/strings.ts +53 -0
  975. package/src/elements/overview/pipeline-graph/styles.ts +97 -0
  976. package/src/elements/shared/ca-definition.ts +206 -0
  977. package/src/elements/shared/contract-parts.ts +158 -0
  978. package/src/elements/shared/file-card.ts +49 -0
  979. package/src/elements/shared/prompt-text.ts +13 -0
  980. package/src/elements/shared/task-chip.ts +18 -0
  981. package/src/elements/shell/ca-clock.ts +27 -0
  982. package/src/elements/shell/ca-hosts.ts +93 -0
  983. package/src/elements/shell/ca-monitor.ts +526 -0
  984. package/src/elements/shell/ca-run-picker.ts +284 -0
  985. package/src/elements/shell/ca-theme-switch.ts +170 -0
  986. package/src/elements/shell/ca-toasts.ts +100 -0
  987. package/src/elements/shell/header.ts +45 -0
  988. package/src/elements/shell/styles.ts +72 -0
  989. package/src/elements/shell/tabs.ts +143 -0
  990. package/src/elements/shell/views.ts +67 -0
  991. package/src/elements/task/ca-task-view.ts +157 -0
  992. package/src/elements/task/ca-transcript.ts +214 -0
  993. package/src/elements/task/context.ts +105 -0
  994. package/src/elements/task/header.ts +292 -0
  995. package/src/elements/task/index.ts +2 -0
  996. package/src/elements/task/inputs.ts +46 -0
  997. package/src/elements/task/panes/definition.ts +7 -0
  998. package/src/elements/task/panes/io.ts +190 -0
  999. package/src/elements/task/panes/transcript.ts +29 -0
  1000. package/src/elements/task/styles.ts +66 -0
  1001. package/src/elements/trends/ca-trends.ts +204 -0
  1002. package/src/index.ts +23 -0
  1003. package/src/lib/tone.ts +109 -0
  1004. package/src/lib/trends.ts +44 -0
  1005. package/src/locales/codes.ts +23 -0
  1006. package/src/locales/ja.ts +771 -0
  1007. package/src/words/api-error.ts +17 -0
  1008. package/src/words/attempts.ts +28 -0
  1009. package/src/words/causes.ts +67 -0
  1010. package/src/words/changes.ts +27 -0
  1011. package/src/words/claims.ts +16 -0
  1012. package/src/words/context.ts +47 -0
  1013. package/src/words/contract.ts +63 -0
  1014. package/src/words/credential.ts +8 -0
  1015. package/src/words/executor.ts +22 -0
  1016. package/src/words/export.ts +22 -0
  1017. package/src/words/format.ts +107 -0
  1018. package/src/words/hops.ts +30 -0
  1019. package/src/words/hosts.ts +37 -0
  1020. package/src/words/index.ts +30 -0
  1021. package/src/words/models.ts +50 -0
  1022. package/src/words/outcome.ts +61 -0
  1023. package/src/words/panels.ts +53 -0
  1024. package/src/words/passes.ts +18 -0
  1025. package/src/words/preflight.ts +53 -0
  1026. package/src/words/priority.ts +8 -0
  1027. package/src/words/prompt.ts +20 -0
  1028. package/src/words/quota.ts +108 -0
  1029. package/src/words/rests.ts +96 -0
  1030. package/src/words/rounds.ts +56 -0
  1031. package/src/words/row-extras.ts +24 -0
  1032. package/src/words/run-line.ts +77 -0
  1033. package/src/words/stop.ts +65 -0
  1034. package/src/words/table.ts +10 -0
  1035. package/src/words/task-definition.ts +37 -0
  1036. package/src/words/time-box.ts +21 -0
  1037. package/src/words/trends.ts +118 -0
@@ -0,0 +1,236 @@
1
+ // A layer of the run's flow as `<cae-layered-graph>` takes it, and a loop's passes
2
+ // as `<cae-mark-matrix>` takes them: the pipeline graph's words on the generic model.
3
+ import { deriveRun, type JournalRow, type Plan } from '@contraagent/api';
4
+ import type { GraphClusterInput, GraphInput, GraphMark, GraphNodeInput, GraphOrder } from '@contraagent/elements/graph';
5
+ import type { MarkMatrixInput, MatrixHeadCell, MatrixMark } from '@contraagent/elements/matrix';
6
+ import type { Fact } from '@contraagent/elements/primitives';
7
+ import { msg, str } from '@lit/localize';
8
+ import { facts, listText } from '../../words/format.js';
9
+ import { loopLabel, notStartedCause, passCount, passLabel, passSpread } from '../../words/index.js';
10
+ import type { TaskLinks } from './highlight.js';
11
+ import { passMatrix, sortRows, type MatrixSort, type PassMatrix } from './matrix.js';
12
+ import { edgeStyle, project, type Projection } from './project.js';
13
+ import { markSel } from './selection.js';
14
+ import type { GraphNode, LayerMark, LayerModel, LoopBox } from './types.js';
15
+ import { doneOf, exceptions, executorWord, markText, nodeLabel, nodeTip, where, type ExceptionClass, type MarkContext } from './words.js';
16
+
17
+ /** What the words of the marks read: the run's tasks, why a task did not start, and the run being live. */
18
+ export interface GraphWordsContext {
19
+ plan: Plan;
20
+ journal: readonly JournalRow[];
21
+ /** The run id: paths in a cause are shown relative to it. */
22
+ run: string;
23
+ live: boolean;
24
+ links: TaskLinks;
25
+ }
26
+
27
+ /** A note's tone by the class of a node's fact. */
28
+ const NOTE_TONE: Record<ExceptionClass, Fact['tone']> = { err: 'failed', warn: 'attention', live: 'running', mut: 'muted' };
29
+
30
+
31
+ /** Why a task did not start, in words ('' when it is not known). */
32
+ export function causeOf(x: Pick<GraphWordsContext, 'plan' | 'journal' | 'run'>): (key: string) => string {
33
+ return (key) => {
34
+ const { outcomes } = deriveRun(x.journal, x.plan);
35
+ const t = outcomes.get(key);
36
+ return t ? notStartedCause(t, outcomes, x.run) : '';
37
+ };
38
+ }
39
+
40
+ const markContext = (x: GraphWordsContext): ((m: LayerMark) => MarkContext) => {
41
+ const cause = causeOf(x);
42
+ return (m) => ({ task: x.links.byKey.get(m.key), causeOf: cause, live: x.live });
43
+ };
44
+
45
+ /** Where a loop is, as its box and its passes name it: "Loop at flow.py:12". */
46
+ const loopAt = (b: Pick<LoopBox, 'loop' | 'file'>): string => msg(str`Loop at ${where(b.loop, b.file)}`);
47
+
48
+ /** The executors' icons, as `executorIcon` draws them: `agent`, `python`. */
49
+ const iconsOf = (n: GraphNode): string[] => (n.executor === 'mixed' ? ['agent', 'python'] : n.executor ? [n.executor] : []);
50
+
51
+ /**
52
+ * The layer as the generic graph takes it: a node per kind or function (an agent
53
+ * task's node with an accent, a function node with an inner view), a cluster per
54
+ * loop box (it cycles: its return is the loop's next pass), a solid edge per
55
+ * `after` and a dashed one per `created_from`, and the units as the series. Its
56
+ * nodes are in the plan's order, as `arrange` reads them. With `open`, a function node
57
+ * can be drawn open (`toggle`), and each function drawn open (`LayerModel.fns`) is a
58
+ * cluster named by its path, each part a link to its own layer.
59
+ */
60
+ export function graphInput(m: LayerModel, x: GraphWordsContext, open = false): GraphInput {
61
+ const ctx = markContext(x);
62
+ const mark = (n: GraphNode, mk: LayerMark): GraphMark => {
63
+ const { name, parts } = markText(n.label, mk, ctx(mk));
64
+ return {
65
+ id: markSel(n.id, mk),
66
+ state: mk.state,
67
+ label: facts(name, ...parts),
68
+ tip: [name, parts[0] ?? ''].filter(Boolean).join('\n'),
69
+ ...(mk.passes ? { badge: String(mk.passes) } : {}),
70
+ name: mk.unit || mk.key,
71
+ drill: !!mk.flow,
72
+ };
73
+ };
74
+ const nodes = m.nodes.map((n): GraphNodeInput => {
75
+ const c = n.counts;
76
+ return {
77
+ id: n.id,
78
+ label: n.label,
79
+ tip: nodeTip(n),
80
+ summary: nodeLabel(n, m, x.live),
81
+ cluster: n.box,
82
+ icons: iconsOf(n),
83
+ accent: n.executor === 'agent',
84
+ drill: n.type === 'flow',
85
+ marks: n.units.map((mk) => mk && mark(n, mk)),
86
+ loose: n.single.map((mk) => mark(n, mk)),
87
+ counts: c,
88
+ progress: { done: c.done, total: c.total, label: doneOf(c) },
89
+ notes: exceptions(n, x.live).map(([cls, text]) => ({ text, tone: NOTE_TONE[cls] })),
90
+ // Finished (done and skipped) only sets the frame's look; the count is of the tasks done.
91
+ look: c.failed || n.errors ? 'failed' : c.running ? 'running' : c.done + c.skipped === c.total ? 'done' : undefined,
92
+ // A function can be drawn open, where the layer is drawn with its functions (not in a loop's passes).
93
+ ...(n.type === 'flow' && open ? { toggle: 'closed' as const } : {}),
94
+ };
95
+ });
96
+ // A function drawn open: a cluster named by its path, its count and what is not done under its name.
97
+ const fns = m.fns.map((f): GraphClusterInput => {
98
+ const first = (f.parts[0] as (typeof f.parts)[number]).node;
99
+ const label = f.parts.map((p) => p.node.label).join(' › ');
100
+ const c = first.counts;
101
+ const notes = exceptions(first, x.live).map(([, text]) => text);
102
+ return {
103
+ id: f.id,
104
+ parent: f.parent,
105
+ label,
106
+ tip: first.name,
107
+ note: `${c.done}/${c.total}`,
108
+ ...(notes.length ? { detail: facts(...notes) } : {}),
109
+ summary: facts(label, nodeLabel(first, m, x.live)),
110
+ chipLabel: msg(str`Inside ${label}`),
111
+ chipTip: facts(msg('Function'), label),
112
+ drill: true,
113
+ cycle: false,
114
+ toggle: 'open',
115
+ path: f.parts.map((p) => ({ id: p.id, label: p.node.label, tip: p.node.name })),
116
+ };
117
+ });
118
+ const clusters = m.boxes.map((b): GraphClusterInput => {
119
+ const at = loopAt(b);
120
+ const spread = b.spread.length > 1 ? passSpread(b.spread) : '';
121
+ const passes = passCount(b.passes);
122
+ return {
123
+ id: b.id,
124
+ parent: b.parent,
125
+ label: loopLabel(),
126
+ tip: facts(loopLabel(), at),
127
+ note: passes,
128
+ ...(spread ? { detail: spread, detailTip: msg('Units by number of passes') } : {}),
129
+ summary: facts(at, passes, spread),
130
+ chipLabel: facts(msg(str`Passes of the loop at ${where(b.loop, b.file)}`), passes),
131
+ chipTip: facts(at, passes),
132
+ drill: true,
133
+ cycle: true,
134
+ };
135
+ });
136
+ return {
137
+ series: m.units,
138
+ nodes,
139
+ clusters: [...clusters, ...fns],
140
+ edges: m.edges.map((e) => ({ from: e.from, to: e.to, style: edgeStyle(e.type), weight: e.tasks, ranks: e.samePass })),
141
+ stubs: m.stubs.map((s) => ({ id: s.id, label: s.label, to: s.to, style: edgeStyle(s.type), weight: s.tasks })),
142
+ };
143
+ }
144
+
145
+ /** The layer `path` of the plan, as the generic graph takes it, and its projection (for the card's facts and a loop's passes). */
146
+ export function graphFromPlan(plan: Plan, path: readonly string[], x: Omit<GraphWordsContext, 'plan'>): { input: GraphInput; proj: Projection } {
147
+ const proj = project(plan, path);
148
+ return { input: graphInput(proj.model, { ...x, plan }), proj };
149
+ }
150
+
151
+ /** How a loop's units can be sorted, and the words for each. */
152
+ export const matrixSorts = (): { id: MatrixSort; label: string }[] => [
153
+ { id: 'order', label: msg('Scheduled order') },
154
+ { id: 'passes', label: msg('Number of passes') },
155
+ { id: 'state', label: msg('Status', { id: 'status', desc: 'The status of a task: done, failed, not started' }) },
156
+ ];
157
+
158
+ /**
159
+ * A loop's passes as the generic mark matrix takes them: a row per unit (sorted by
160
+ * `sort`), a column per node and pass under a group per pass (a nested loop's passes
161
+ * as groups inside each pass of the outer one).
162
+ */
163
+ export function matrixInput(mx: PassMatrix, sort: MatrixSort, x: GraphWordsContext): MarkMatrixInput {
164
+ const ctx = markContext(x);
165
+ const box = mx.box;
166
+ const caption = loopAt(box);
167
+ const units = mx.rows.filter((r) => r.unit).length;
168
+ const cell = (ci: number, mk: LayerMark): MatrixMark => {
169
+ const col = mx.columns[ci];
170
+ const label = col?.node.label ?? '';
171
+ const passes = col?.passes ?? [];
172
+ const { name, parts } = markText(label, mk, ctx(mk), listText(passes.map(passLabel)));
173
+ return { id: markSel(col?.node.id ?? '', mk, passes), state: mk.state, label: facts(name, ...parts), tip: [name, parts[0] ?? ''].filter(Boolean).join('\n'), drill: !!mk.flow };
174
+ };
175
+ const head = mx.head.map((row) =>
176
+ row.map((hd): MatrixHeadCell => {
177
+ if (hd.type === 'pass')
178
+ return {
179
+ id: `${hd.box.id}|${hd.pass}`,
180
+ label: passLabel(hd.pass),
181
+ tip: hd.box.id === box.id ? loopAt(hd.box) : msg(str`Nested loop at ${where(hd.box.loop, hd.box.file)}`),
182
+ span: hd.span,
183
+ rows: hd.rows,
184
+ type: 'group',
185
+ };
186
+ if (hd.type === 'loop')
187
+ return { id: hd.box.id, label: loopLabel(), tip: msg(str`Nested loop at ${where(hd.box.loop, hd.box.file)}`), code: true, span: hd.span, rows: hd.rows, type: 'group' };
188
+ const n = hd.node;
189
+ const flow = n.type === 'flow';
190
+ return {
191
+ id: `${n.id}|${hd.passes.join('.')}`,
192
+ label: n.label,
193
+ tip: flow ? msg(str`Function ${n.name}`) : facts(n.label, executorWord(n)),
194
+ summary: flow ? n.label : facts(n.label, executorWord(n)),
195
+ icons: n.executor && n.executor !== 'mixed' ? [n.executor] : [],
196
+ span: hd.span,
197
+ rows: hd.rows,
198
+ type: 'column',
199
+ };
200
+ }),
201
+ );
202
+ return {
203
+ caption,
204
+ ...(box.file ? { captionTip: `${box.file}:${box.loop}` } : {}),
205
+ label: facts(caption, passCount(box.passes)),
206
+ facts: [passCount(box.passes), box.spread.length > 1 ? passSpread(box.spread) : '', units === 1 ? msg('1 unit') : msg(str`${units} units`)].filter(Boolean),
207
+ head,
208
+ columns: mx.columns.map((c) => ({ id: `${c.node.id}|${c.passes.join('.')}`, groups: c.passes.map((_, k) => c.passes.slice(0, k + 1).join('.')) })),
209
+ rows: sortRows(mx.rows, sort).map((r) => ({
210
+ id: r.unit,
211
+ label: r.unit || msg('No unit'),
212
+ tip: r.unit || msg('Tasks that run once per run, not once per unit'),
213
+ muted: !r.unit,
214
+ value: r.passes,
215
+ strong: r.passes > 1,
216
+ cells: r.cells.map((mk, ci) => mk && cell(ci, mk)),
217
+ })),
218
+ value: { label: msg('Passes'), tip: msg('Passes of this loop') },
219
+ sorts: matrixSorts(),
220
+ sort,
221
+ };
222
+ }
223
+
224
+ /** The loop box `box` of layer `path` with its passes unrolled (`passMatrix`), as the generic mark matrix takes it; null when the layer has no such box. */
225
+ export function matrixFromPlan(
226
+ plan: Plan,
227
+ path: readonly string[],
228
+ box: string,
229
+ prev: GraphOrder | undefined,
230
+ sort: MatrixSort,
231
+ x: Omit<GraphWordsContext, 'plan'>,
232
+ proj?: Projection,
233
+ ): { input: MarkMatrixInput; matrix: PassMatrix } | null {
234
+ const matrix = passMatrix(plan, path, box, prev, proj);
235
+ return matrix && { input: matrixInput(matrix, sort, { ...x, plan }), matrix };
236
+ }
@@ -0,0 +1,92 @@
1
+ // The layers of the run's flow: the graph of one, the one the graph opens on, and
2
+ // the layer a view route's segments name.
3
+ import type { Plan } from '@contraagent/api';
4
+ import { arrange, type GraphOrder } from '@contraagent/elements/graph';
5
+ import { indexOf, instanceOf, placeOf, shortName, startsWith, type FlowTask } from './flow-index.js';
6
+ import { arranged, project, shapeOf } from './project.js';
7
+ import { LOOP_SEGMENT, type LayerGraph } from './types.js';
8
+
9
+ /**
10
+ * The layer `path` of the plan's flow. Pass the `order` of the last graph of this layer as
11
+ * `prev` to keep its nodes in place; `down` lays out the edge paths for a drawing top to bottom
12
+ * (a box's label is then on the side its edges come in).
13
+ */
14
+ export function layerGraph(plan: Plan, path: readonly string[] = [], prev?: GraphOrder, down = false): LayerGraph {
15
+ const { model } = project(plan, path);
16
+ return arranged(model, arrange(shapeOf(model), prev, down));
17
+ }
18
+
19
+ /**
20
+ * The layer the graph opens on: from the top, down while a layer has a single
21
+ * node and it is a function's. It stops at a single function node whose flow call
22
+ * raised or was closed, so a run that failed inside a flow opens on the node that
23
+ * shows it, not inside it. A failed or not started task does not stop it: the layer
24
+ * below shows that task's own mark. A static flow lands on its kinds.
25
+ */
26
+ export function autoLayer(plan: Plan): string[] {
27
+ const ix = indexOf(plan);
28
+ const path: string[] = [];
29
+ // The failure sites: flow calls that raised or were closed with no raised descendant.
30
+ // The graph stops on the node that shows one, not inside it. A plan with no flow calls
31
+ // cannot tell its failure sites, so it descends as if there were none.
32
+ const raised = new Set<string>();
33
+ if (ix.calls) for (const c of ix.calls.values()) if (c.state === 'raised' || c.state === 'closed') raised.add(c.id);
34
+ const isSite = (id: string): boolean => raised.has(id) && ![...raised].some((r) => r !== id && r.startsWith(`${id}.`));
35
+ for (;;) {
36
+ let only: { id: string; name: string } | null = null;
37
+ let one = true;
38
+ const mine: FlowTask[] = [];
39
+ for (const t of ix.tasks) {
40
+ if (!startsWith(t.path, path)) continue;
41
+ const p = placeOf(t, path.length);
42
+ if (p.type === 'kind' || (only && only.id !== p.id)) {
43
+ one = false;
44
+ break;
45
+ }
46
+ only = p;
47
+ mine.push(t);
48
+ }
49
+ // Stop before entering a single function node that is itself a failure site.
50
+ const atSite = mine.some((t) => isSite(instanceOf(t, path.length, ix.calls).id));
51
+ if (!one || !only || atSite) return path;
52
+ path.push(only.name);
53
+ }
54
+ }
55
+
56
+ /** A layer's segments: its path, and the loop box entered at its end (null when none). */
57
+ export function splitLayer(segments: readonly string[]): { path: string[]; loop: string | null } {
58
+ const last = segments[segments.length - 1];
59
+ return last?.startsWith(LOOP_SEGMENT) ? { path: segments.slice(0, -1), loop: last } : { path: [...segments], loop: null };
60
+ }
61
+
62
+ /**
63
+ * The layer `segments` names, as the plan has it: the segments themselves when the
64
+ * plan has that layer (a prefix of a task's flow path, and the loop box after it);
65
+ * else, when the last function is named by its `module.qualname` (or, failing that,
66
+ * its name) and the plan reaches it by one flow path only, that flow path, with the
67
+ * loop box when the layer there has it. Null when the plan has no such layer.
68
+ */
69
+ export function resolveLayer(plan: Plan, segments: readonly string[]): string[] | null {
70
+ const { path, loop } = splitLayer(segments);
71
+ const ix = indexOf(plan);
72
+ const hasLoop = (p: readonly string[]) => !loop || project(plan, p).model.boxes.some((b) => b.id === loop);
73
+ if (ix.tasks.some((t) => startsWith(t.path, path))) return hasLoop(path) ? [...segments] : null;
74
+ const name = path[path.length - 1];
75
+ if (name === undefined) return null;
76
+ const found = (match: (fn: string) => boolean): string[][] => {
77
+ const by = new Map<string, string[]>();
78
+ for (const t of ix.tasks) t.path.forEach((fn, i) => match(fn) && by.set(t.path.slice(0, i + 1).join('/'), t.path.slice(0, i + 1)));
79
+ return [...by.values()];
80
+ };
81
+ const exact = found((fn) => fn === name);
82
+ const named = exact.length ? exact : found((fn) => shortName(fn) === name);
83
+ const only = named.length === 1 ? (named[0] as string[]) : null;
84
+ return only && hasLoop(only) ? (loop ? [...only, loop] : only) : null;
85
+ }
86
+
87
+ /** One level up from `segments`: null at the top (the layer the graph opens on, `auto`), [] for that layer. */
88
+ export function parentLayer(segments: readonly string[], auto: readonly string[]): string[] | null {
89
+ if (segments.length <= auto.length) return null;
90
+ const up = segments.slice(0, -1);
91
+ return up.length <= auto.length ? [] : up;
92
+ }
@@ -0,0 +1,133 @@
1
+ // A loop's passes: a loop box unrolled into units by (node, pass).
2
+ import type { Plan, TaskState } from '@contraagent/api';
3
+ import { arrange, type GraphOrder } from '@contraagent/elements/graph';
4
+ import { cmpPasses, passesAt, push, type FlowTask } from './flow-index.js';
5
+ import { arranged, flowMarks, project, shapeOf, taskMark, type Draft, type Projection } from './project.js';
6
+ import { SEVERITY, worstOf } from './states.js';
7
+ import { LOOP_SEGMENT, type LayerMark, type GraphNode, type LoopBox } from './types.js';
8
+
9
+ /** A column of a loop's passes: one node, in one pass of each loop from the unrolled box down to the node's own box. */
10
+ export interface MatrixColumn {
11
+ node: GraphNode;
12
+ /** The passes, the unrolled box's loop first. */
13
+ passes: number[];
14
+ }
15
+
16
+ /** A header cell over the columns: a pass of a loop, a nested loop, or a node. */
17
+ export type MatrixHead =
18
+ | { type: 'pass'; box: LoopBox; pass: number; span: number; rows: number }
19
+ | { type: 'loop'; box: LoopBox; span: number; rows: number }
20
+ | { type: 'node'; node: GraphNode; passes: number[]; span: number; rows: number };
21
+
22
+ export interface MatrixRow {
23
+ /** The unit, or '' for the tasks without one. */
24
+ unit: string;
25
+ /** How many passes of the unrolled loop it ran (in every run of the loop). */
26
+ passes: number;
27
+ /** The most severe state of its marks. */
28
+ state: TaskState;
29
+ /** One per column: its mark, or null where it has none. */
30
+ cells: (LayerMark | null)[];
31
+ }
32
+
33
+ /** A loop box with its passes unrolled: a row per unit, a column per (node, pass), nested loops as nested column groups. */
34
+ export interface PassMatrix {
35
+ box: LoopBox;
36
+ columns: MatrixColumn[];
37
+ /** The header rows, outermost first; a node's cell spans down to the last. */
38
+ head: MatrixHead[][];
39
+ /** The units that have a task in the box, in the layer's order; the tasks without a unit last. */
40
+ rows: MatrixRow[];
41
+ }
42
+
43
+ type ColTree = { type: 'pass'; box: LoopBox; pass: number; kids: ColTree[] } | { type: 'loop'; box: LoopBox; kids: ColTree[] } | { type: 'node'; node: GraphNode; passes: number[] };
44
+
45
+ /**
46
+ * The loop box `box` of layer `path` with its passes unrolled; null when the layer has
47
+ * no such box. Each task is in the column of its node and of its passes of the box's
48
+ * loop and of every loop nested in it, so an inner loop's passes are counted within
49
+ * each pass of the outer one. A column no task reached is left out. The columns
50
+ * follow the order of the layer drawn left to right with `prev` (its graph's order);
51
+ * `proj` is the layer's projection when the caller has it.
52
+ */
53
+ export function passMatrix(plan: Plan, path: readonly string[], box: string, prev?: GraphOrder, proj: Projection = project(plan, path)): PassMatrix | null {
54
+ const { drafts, ix } = proj;
55
+ const graph = arranged(proj.model, arrange(shapeOf(proj.model), prev, false));
56
+ const b = graph.boxes.find((x) => x.id === box);
57
+ if (!b) return null;
58
+ const d = path.length;
59
+ const i0 = b.id.slice(LOOP_SEGMENT.length).split('.').length - 1;
60
+ const byBox = new Map(graph.boxes.map((x) => [x.id, x]));
61
+ const byNode = new Map(graph.nodes.map((n) => [n.id, n]));
62
+ const rel = (t: FlowTask) => passesAt(t, d).slice(i0);
63
+ const leaves = (x: LoopBox): string[] => x.layers.flat().flatMap((id) => (byBox.has(id) ? leaves(byBox.get(id) as LoopBox) : [id]));
64
+ const tasksOf = (x: LoopBox): FlowTask[] => leaves(x).flatMap((id) => drafts.get(id)?.tasks ?? []);
65
+ const same = (a: readonly number[], p: readonly number[]) => a.length === p.length && cmpPasses(a, p) === 0;
66
+ const build = (x: LoopBox, prefix: number[]): ColTree[] => {
67
+ const k = prefix.length;
68
+ const passes = [...new Set(tasksOf(x).map(rel).filter((v) => v.length > k && cmpPasses(v.slice(0, k), prefix) === 0).map((v) => v[k] as number))].sort((a, c) => a - c);
69
+ return passes.flatMap((p): ColTree[] => {
70
+ const at = [...prefix, p];
71
+ const kids = x.layers.flat().flatMap((id): ColTree[] => {
72
+ const inner = byBox.get(id);
73
+ if (inner) {
74
+ const sub = build(inner, at);
75
+ return sub.length ? [{ type: 'loop', box: inner, kids: sub }] : [];
76
+ }
77
+ const node = byNode.get(id);
78
+ return node && drafts.get(id)?.tasks.some((t) => same(rel(t), at)) ? [{ type: 'node', node, passes: at }] : [];
79
+ });
80
+ return kids.length ? [{ type: 'pass', box: x, pass: p, kids }] : [];
81
+ });
82
+ };
83
+ const tree = build(b, []);
84
+ const columns: MatrixColumn[] = [];
85
+ const width = (t: ColTree): number => (t.type === 'node' ? 1 : t.kids.reduce((a, k) => a + width(k), 0));
86
+ const depthOf = (t: ColTree): number => (t.type === 'node' ? 1 : 1 + Math.max(0, ...t.kids.map(depthOf)));
87
+ const rowsN = Math.max(1, ...tree.map(depthOf));
88
+ const head: MatrixHead[][] = Array.from({ length: rowsN }, () => []);
89
+ const walk = (t: ColTree, level: number): void => {
90
+ const row = head[level] as MatrixHead[];
91
+ if (t.type === 'node') {
92
+ row.push({ type: 'node', node: t.node, passes: t.passes, span: 1, rows: rowsN - level });
93
+ columns.push({ node: t.node, passes: t.passes });
94
+ return;
95
+ }
96
+ row.push(t.type === 'pass' ? { type: 'pass', box: t.box, pass: t.pass, span: width(t), rows: 1 } : { type: 'loop', box: t.box, span: width(t), rows: 1 });
97
+ for (const k of t.kids) walk(k, level + 1);
98
+ };
99
+ for (const t of tree) walk(t, 0);
100
+
101
+ const mine = tasksOf(b);
102
+ const unitsIn = new Set(mine.map((t) => t.n.unit || ''));
103
+ const rowUnits = [...graph.units.filter((u) => unitsIn.has(u)), ...(unitsIn.has('') ? [''] : [])];
104
+ const cellTasks = new Map<string, FlowTask[]>(); // `${column}\0${unit}`
105
+ columns.forEach((c, ci) => {
106
+ for (const t of drafts.get(c.node.id)?.tasks ?? []) if (same(rel(t), c.passes)) push(cellTasks, `${ci}\u0000${t.n.unit || ''}`, t);
107
+ });
108
+ const markOf = (c: MatrixColumn, ts: readonly FlowTask[], unit: string): LayerMark | null => {
109
+ const x = drafts.get(c.node.id) as Draft;
110
+ if (x.type === 'kind') return taskMark(ts, unit);
111
+ const m = flowMarks(ts, d, x.name, ix.calls);
112
+ return unit ? (m.byUnit.get(unit) ?? m.single[0] ?? null) : (m.single[0] ?? null);
113
+ };
114
+ const rows = rowUnits.map((unit): MatrixRow => {
115
+ const cells = columns.map((c, ci) => {
116
+ const ts = cellTasks.get(`${ci}\u0000${unit}`);
117
+ return ts?.length ? markOf(c, ts, unit) : null;
118
+ });
119
+ const passes = new Set(mine.filter((t) => (t.n.unit || '') === unit).map((t) => passesAt(t, d).slice(0, i0 + 1).join('.'))).size;
120
+ return { unit, passes, state: worstOf(cells.filter((m): m is LayerMark => m !== null).map((m) => m.state)), cells };
121
+ });
122
+ return { box: b, columns, head, rows };
123
+ }
124
+
125
+ /** How a loop's units are sorted: as scheduled, most passes first, or the most severe state first. */
126
+ export type MatrixSort = 'order' | 'passes' | 'state';
127
+
128
+ /** `rows` sorted by `by`; a tie keeps the scheduled order. */
129
+ export function sortRows(rows: readonly MatrixRow[], by: MatrixSort): MatrixRow[] {
130
+ const ix = new Map(rows.map((r, i) => [r, i]));
131
+ const key = (r: MatrixRow) => (by === 'passes' ? -r.passes : by === 'state' ? -SEVERITY[r.state] : 0);
132
+ return [...rows].sort((a, b) => key(a) - key(b) || (ix.get(a) ?? 0) - (ix.get(b) ?? 0));
133
+ }
@@ -0,0 +1,194 @@
1
+ // Synthetic plans for the graph's tests, as a run writes them: a task's flow path
2
+ // (outermost first) with the loops around each call site, what its flow call had
3
+ // received when it was created, and its flow call. Test code only: the build leaves
4
+ // `*.fixture.ts` out.
5
+ import type { FlowCallNode, Frame, Plan, PlanNode } from '@contraagent/api';
6
+
7
+ export const node = (key: string, unit: string, group: string, state: PlanNode['state'], extra: Partial<PlanNode> = {}): PlanNode => ({
8
+ key, kind: group, unit, group, state, level: 0, ...extra,
9
+ });
10
+ export const group = (id: string, counts: Partial<Plan['groups'][number]> = {}): Plan['groups'][number] => ({
11
+ id, label: id, total: 0, done: 0, partial: 0, failed: 0, running: 0, pending: 0, skipped: 0, blocked: 0, ...counts,
12
+ });
13
+
14
+ /** A frame of a flow path, with the loops around its call site (each at pass 1). */
15
+ export const F = (fn: string, ...loops: number[]): Frame => ({ function: fn, file: 'flow.py', line: 1, loops: loops.map((line) => ({ line, pass: 1 })) });
16
+
17
+ /**
18
+ * A task created by a flow. `pass` is the pass of the innermost loop around the
19
+ * task's own call site; `passes`, one pass per loop around it, outermost first.
20
+ */
21
+ export const ft = (
22
+ key: string,
23
+ unit: string,
24
+ kind: string,
25
+ state: PlanNode['state'],
26
+ flow: Frame[],
27
+ { pass = 1, passes, ...extra }: Partial<PlanNode> & { pass?: number; passes?: number[] } = {},
28
+ ): PlanNode => {
29
+ const last = flow[flow.length - 1];
30
+ const loops = last?.loops ?? [];
31
+ const at = (i: number) => passes?.[i] ?? (i === loops.length - 1 ? pass : 1);
32
+ const own = last && loops.length ? [...flow.slice(0, -1), { ...last, loops: loops.map((l, i) => ({ ...l, pass: at(i) })) }] : flow;
33
+ return node(key, unit, kind, state, { flow: own, flow_call: '0', created_from: [], ...extra });
34
+ };
35
+ export const planOf = (nodes: PlanNode[], flow_calls?: FlowCallNode[]): Plan => {
36
+ const groups = [...new Set(nodes.map((n) => n.group))].map((g) => group(g));
37
+ return flow_calls ? { nodes, groups, flow_calls } : { nodes, groups };
38
+ };
39
+ export const call = (id: string, fn: string, state: FlowCallNode['state'] = 'returned'): FlowCallNode => ({
40
+ id, parent: id.includes('.') ? id.slice(0, id.lastIndexOf('.')) : null, function: fn, flow: [], state,
41
+ });
42
+
43
+ export const RUN = 'flows.run_all';
44
+ export const LOOP = 'flows.review_loop';
45
+ export const AT = 7; // the line of review_loop's `while`
46
+
47
+ /**
48
+ * run_all: prepare each unit (Python), then review_loop(u) for every unit as one batch,
49
+ * then report on what they returned. review_loop: summarize, check, and while the review
50
+ * is not ok: fix, score (Python), check. `passes[u]` is how many times u went round.
51
+ */
52
+ export function reviewRun(passes: Record<string, number>, opts: { calls?: boolean; failed?: string } = {}): Plan {
53
+ const nodes: PlanNode[] = [];
54
+ const top = [F(RUN)];
55
+ const inLoop = [F(RUN), F(LOOP)];
56
+ const looped = [F(RUN), F(LOOP, AT)];
57
+ const finals: string[] = [];
58
+ const lastChecks: string[] = [];
59
+ Object.entries(passes).forEach(([u, n], i) => {
60
+ const c = `0.${i + 1}`;
61
+ const bad = opts.failed === u;
62
+ nodes.push(ft(`prepare-${u}`, u, 'prepare', 'done', top, { executor: 'python' }));
63
+ nodes.push(ft(`summarize-${u}`, u, 'summarize', 'done', inLoop, { flow_call: c, after: [`prepare-${u}`], created_from: [`prepare-${u}`] }));
64
+ let summary = `summarize-${u}`;
65
+ let check = `check-${u}`;
66
+ nodes.push(ft(check, u, 'check', 'done', inLoop, { flow_call: c, after: [summary], created_from: [summary] }));
67
+ for (let p = 1; p <= n; p++) {
68
+ const sfx = p === 1 ? '' : `~${p}`;
69
+ const fix = `fix-${u}${sfx}`;
70
+ const score = `score-${u}${sfx}`;
71
+ const last = p === n;
72
+ nodes.push(ft(fix, u, 'fix', bad && last ? 'failed' : 'done', looped, { flow_call: c, pass: p, after: [summary, check], created_from: [check] }));
73
+ if (bad && last) break;
74
+ nodes.push(ft(score, u, 'score', 'done', looped, { flow_call: c, pass: p, executor: 'python', after: [fix], created_from: [fix] }));
75
+ const next = `check-${u}~${p + 1}`;
76
+ nodes.push(ft(next, u, 'check', 'done', looped, { flow_call: c, pass: p, after: [fix], created_from: [score] }));
77
+ summary = fix;
78
+ check = next;
79
+ }
80
+ finals.push(summary);
81
+ lastChecks.push(check);
82
+ });
83
+ const failed = opts.failed !== undefined;
84
+ if (!failed) nodes.push(ft('report', '', 'report', 'done', top, { after: finals, created_from: lastChecks }));
85
+ const units = Object.keys(passes);
86
+ const calls = [call('0', RUN, failed ? 'raised' : 'returned'), ...units.map((u, i) => call(`0.${i + 1}`, LOOP, opts.failed === u ? 'raised' : 'returned'))];
87
+ return planOf(nodes, opts.calls ? calls : undefined);
88
+ }
89
+
90
+ export const UNITS = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta'];
91
+
92
+ /** The demo as a static flow: prepare -> summarize -> { review, write_note }, review -> report (one task, no unit). */
93
+ export function staticDemo(stateOf: (key: string) => PlanNode['state'] = (k) => (k.endsWith('zeta') ? 'blocked' : 'done'), flow?: Frame[]): Plan {
94
+ const extra = (x: Partial<PlanNode>): Partial<PlanNode> => (flow ? { ...x, flow, flow_call: '0' } : x);
95
+ const nodes: PlanNode[] = [];
96
+ for (const u of UNITS) {
97
+ nodes.push(node(`prepare-${u}`, u, 'prepare', u === 'zeta' ? 'failed' : stateOf(`prepare-${u}`), extra({})));
98
+ nodes.push(node(`summarize-${u}`, u, 'summarize', stateOf(`summarize-${u}`), extra({ after: [`prepare-${u}`] })));
99
+ nodes.push(node(`review-${u}`, u, 'review', stateOf(`review-${u}`), extra({ after: [`summarize-${u}`] })));
100
+ nodes.push(node(`write_note-${u}`, u, 'write_note', stateOf(`write_note-${u}`), extra({ after: [`summarize-${u}`] })));
101
+ }
102
+ nodes.push(node('report', '', 'report', 'blocked', extra({ after: UNITS.map((u) => `review-${u}`) })));
103
+ return { groups: ['prepare', 'summarize', 'review', 'write_note', 'report'].map((g) => group(g)), nodes };
104
+ }
105
+
106
+ /** scan(u): for each column (the outer `for`, line 30), propose it, then while not ok verify and refine it (the inner `while`, line 33). */
107
+ export const SCAN = 'flows.scan';
108
+ export function nestedLoops(): Plan {
109
+ const outer = 30;
110
+ const inner = 33;
111
+ const at = (loops: number[]) => [F(RUN), F(SCAN, ...loops)];
112
+ return planOf(
113
+ [
114
+ ft('propose-a', 'a', 'propose', 'done', at([outer]), { flow_call: '0.1', passes: [1] }),
115
+ ft('verify-a', 'a', 'verify', 'done', at([outer, inner]), { flow_call: '0.1', passes: [1, 1], executor: 'python', after: ['propose-a'] }),
116
+ ft('refine-a', 'a', 'refine', 'done', at([outer, inner]), { flow_call: '0.1', passes: [1, 1], after: ['verify-a'] }),
117
+ ft('verify-a~2', 'a', 'verify', 'done', at([outer, inner]), { flow_call: '0.1', passes: [1, 2], executor: 'python', after: ['refine-a'] }),
118
+ ft('propose-a~2', 'a', 'propose', 'done', at([outer]), { flow_call: '0.1', passes: [2] }),
119
+ ft('verify-a~3', 'a', 'verify', 'failed', at([outer, inner]), { flow_call: '0.1', passes: [2, 1], executor: 'python', after: ['propose-a~2'] }),
120
+ ft('propose-b', 'b', 'propose', 'done', at([outer]), { flow_call: '0.2', passes: [1] }),
121
+ ft('verify-b', 'b', 'verify', 'done', at([outer, inner]), { flow_call: '0.2', passes: [1, 1], executor: 'python', after: ['propose-b'] }),
122
+ ],
123
+ [call('0', RUN), call('0.1', SCAN), call('0.2', SCAN)],
124
+ );
125
+ }
126
+
127
+ /** Plans of every shape the graph draws, by name: the input of the graph's order snapshot. */
128
+ export function shapes(): Record<string, Plan> {
129
+ const L = [F(RUN), F(LOOP, AT)];
130
+ const inRL = [F(RUN), F(LOOP)];
131
+ const REFINE = 'flows.refine';
132
+ const POLISH = 'flows.polish';
133
+ const deep = [
134
+ ft('draft-a', 'a', 'draft', 'done', [F(RUN), F(LOOP), F(REFINE)], { flow_call: '0.1' }),
135
+ ft('tune-a', 'a', 'tune', 'running', [F(RUN), F(LOOP), F(REFINE), F(POLISH)], { flow_call: '0.1.1', after: ['draft-a'] }),
136
+ ft('report', '', 'report', 'pending', [F(RUN)], { after: ['tune-a'] }),
137
+ ];
138
+ const at = (loops: number[]) => [F(RUN), F(SCAN, ...loops)];
139
+ return {
140
+ 'static demo': staticDemo(),
141
+ 'static demo, running': staticDemo((k) => (k.startsWith('review') ? 'running' : 'pending')),
142
+ 'static demo under one function': staticDemo(undefined, [F('flows.pipeline')]),
143
+ 'cycle and waits inside a node': planOf([
144
+ node('a1', 'u', 'a', 'done'),
145
+ node('a2', 'v', 'a', 'done', { after: ['a1', 'not-yet'] }),
146
+ node('b1', 'u', 'b', 'done', { after: ['c1'] }),
147
+ node('c1', 'u', 'c', 'done', { after: ['b1'] }),
148
+ ]),
149
+ 'long edge': planOf([node('a-u', 'u', 'a', 'done'), node('b-u', 'u', 'b', 'done', { after: ['a-u'] }), node('c-u', 'u', 'c', 'done', { after: ['b-u'] }), node('d-u', 'u', 'd', 'done', { after: ['c-u', 'a-u'] })]),
150
+ crossing: planOf([
151
+ node('x1-u', 'u', 'x1', 'done'), node('x2-u', 'u', 'x2', 'done'),
152
+ node('y1-u', 'u', 'y1', 'done', { after: ['x2-u'] }), node('y2-u', 'u', 'y2', 'done', { after: ['x1-u'] }),
153
+ ]),
154
+ 'review loop, calls': reviewRun({ a: 0, b: 1 }, { calls: true }),
155
+ 'review loop, 2 passes': reviewRun({ a: 1, b: 2 }),
156
+ 'review loop, spread': reviewRun({ a: 1, b: 3, c: 0, d: 1, e: 2 }),
157
+ 'review loop, failed': reviewRun({ a: 1, b: 3, c: 0, d: 2 }, { failed: 'd' }),
158
+ 'review loop, calls, failed': reviewRun({ a: 0, b: 1, c: 2 }, { calls: true, failed: 'c' }),
159
+ branch: planOf([
160
+ ft('check-a', 'a', 'check', 'done', inRL, { flow_call: '0.1' }),
161
+ ft('check-b', 'b', 'check', 'done', inRL, { flow_call: '0.2' }),
162
+ ft('publish-a', 'a', 'publish', 'done', inRL, { flow_call: '0.1', created_from: ['check-a'] }),
163
+ ft('escalate-b', 'b', 'escalate', 'running', inRL, { flow_call: '0.2', created_from: ['check-b'] }),
164
+ ]),
165
+ 'fan-out': planOf(
166
+ [
167
+ ft('part-a/1', 'a/1', 'part', 'done', inRL, { flow_call: '0.1' }),
168
+ ft('part-a/2', 'a/2', 'part', 'failed', inRL, { flow_call: '0.1' }),
169
+ ft('part-b/1', 'b/1', 'part', 'done', inRL, { flow_call: '0.2' }),
170
+ ft('part-b/2', 'b/2', 'part', 'done', inRL, { flow_call: '0.2' }),
171
+ ft('merge', '', 'merge', 'blocked', [F(RUN)], { after: ['part-a/1', 'part-a/2', 'part-b/1', 'part-b/2'] }),
172
+ ],
173
+ [call('0', RUN, 'running'), call('0.1', LOOP, 'raised'), call('0.2', LOOP)],
174
+ ),
175
+ 'deep, calls': planOf(deep, [call('0', RUN, 'running'), call('0.1', LOOP, 'running'), call('0.1.1', POLISH, 'running')]),
176
+ 'deep, no calls': planOf(deep),
177
+ 'nested loops': nestedLoops(),
178
+ 'nested boxes': planOf([
179
+ ft('rank-a', 'a', 'rank', 'done', at([])),
180
+ ft('propose-a', 'a', 'propose', 'done', at([30]), { created_from: ['rank-a'] }),
181
+ ft('verify-a', 'a', 'verify', 'done', at([30, 33]), { after: ['propose-a'] }),
182
+ ft('refine-a', 'a', 'refine', 'done', at([30, 33]), { after: ['verify-a', 'propose-a'] }),
183
+ ft('report-a', 'a', 'report', 'done', at([]), { after: ['refine-a'] }),
184
+ ]),
185
+ 'into and out of a box': planOf([
186
+ ft('s-u', 'u', 's', 'done', inRL),
187
+ ft('a-u', 'u', 'a', 'done', L, { after: ['s-u'] }),
188
+ ft('b-u', 'u', 'b', 'done', L, { after: ['a-u'] }),
189
+ ft('c-u', 'u', 'c', 'done', L, { after: ['b-u', 's-u'] }),
190
+ ft('w-u', 'u', 'w', 'done', inRL, { after: ['b-u', 's-u', 'c-u'] }),
191
+ ]),
192
+ 'loop of one layer': planOf([ft('a-u', 'u', 'a', 'done', L), ft('a-u~2', 'u', 'a', 'done', L, { pass: 2 })]),
193
+ };
194
+ }