@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.
- package/README.md +130 -2
- package/custom-elements.json +7084 -0
- package/dist/adapters/check-rows.d.ts +18 -0
- package/dist/adapters/check-rows.d.ts.map +1 -0
- package/dist/adapters/check-rows.js +75 -0
- package/dist/adapters/check-rows.js.map +1 -0
- package/dist/adapters/filters.d.ts +29 -0
- package/dist/adapters/filters.d.ts.map +1 -0
- package/dist/adapters/filters.js +74 -0
- package/dist/adapters/filters.js.map +1 -0
- package/dist/adapters/graph/compound.d.ts +93 -0
- package/dist/adapters/graph/compound.d.ts.map +1 -0
- package/dist/adapters/graph/compound.js +322 -0
- package/dist/adapters/graph/compound.js.map +1 -0
- package/dist/adapters/graph/flow-index.d.ts +54 -0
- package/dist/adapters/graph/flow-index.d.ts.map +1 -0
- package/dist/adapters/graph/flow-index.js +129 -0
- package/dist/adapters/graph/flow-index.js.map +1 -0
- package/dist/adapters/graph/highlight.d.ts +14 -0
- package/dist/adapters/graph/highlight.d.ts.map +1 -0
- package/dist/adapters/graph/highlight.js +33 -0
- package/dist/adapters/graph/highlight.js.map +1 -0
- package/dist/adapters/graph/input.d.ts +50 -0
- package/dist/adapters/graph/input.d.ts.map +1 -0
- package/dist/adapters/graph/input.js +201 -0
- package/dist/adapters/graph/input.js.map +1 -0
- package/dist/adapters/graph/layer.d.ts +33 -0
- package/dist/adapters/graph/layer.d.ts.map +1 -0
- package/dist/adapters/graph/layer.js +94 -0
- package/dist/adapters/graph/layer.js.map +1 -0
- package/dist/adapters/graph/matrix.d.ts +62 -0
- package/dist/adapters/graph/matrix.d.ts.map +1 -0
- package/dist/adapters/graph/matrix.js +96 -0
- package/dist/adapters/graph/matrix.js.map +1 -0
- package/dist/adapters/graph/project.d.ts +49 -0
- package/dist/adapters/graph/project.d.ts.map +1 -0
- package/dist/adapters/graph/project.js +319 -0
- package/dist/adapters/graph/project.js.map +1 -0
- package/dist/adapters/graph/selection.d.ts +31 -0
- package/dist/adapters/graph/selection.d.ts.map +1 -0
- package/dist/adapters/graph/selection.js +48 -0
- package/dist/adapters/graph/selection.js.map +1 -0
- package/dist/adapters/graph/states.d.ts +6 -0
- package/dist/adapters/graph/states.d.ts.map +1 -0
- package/dist/adapters/graph/states.js +5 -0
- package/dist/adapters/graph/states.js.map +1 -0
- package/dist/adapters/graph/types.d.ts +141 -0
- package/dist/adapters/graph/types.d.ts.map +1 -0
- package/dist/adapters/graph/types.js +3 -0
- package/dist/adapters/graph/types.js.map +1 -0
- package/dist/adapters/graph/words.d.ts +48 -0
- package/dist/adapters/graph/words.d.ts.map +1 -0
- package/dist/adapters/graph/words.js +128 -0
- package/dist/adapters/graph/words.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/journal-columns.d.ts +21 -0
- package/dist/adapters/journal-columns.d.ts.map +1 -0
- package/dist/adapters/journal-columns.js +179 -0
- package/dist/adapters/journal-columns.js.map +1 -0
- package/dist/adapters/kpi-tiles.d.ts +47 -0
- package/dist/adapters/kpi-tiles.d.ts.map +1 -0
- package/dist/adapters/kpi-tiles.js +173 -0
- package/dist/adapters/kpi-tiles.js.map +1 -0
- package/dist/adapters/lanes.d.ts +31 -0
- package/dist/adapters/lanes.d.ts.map +1 -0
- package/dist/adapters/lanes.js +75 -0
- package/dist/adapters/lanes.js.map +1 -0
- package/dist/adapters/model-shares.d.ts +27 -0
- package/dist/adapters/model-shares.d.ts.map +1 -0
- package/dist/adapters/model-shares.js +52 -0
- package/dist/adapters/model-shares.js.map +1 -0
- package/dist/adapters/panel-body.d.ts +20 -0
- package/dist/adapters/panel-body.d.ts.map +1 -0
- package/dist/adapters/panel-body.js +63 -0
- package/dist/adapters/panel-body.js.map +1 -0
- package/dist/adapters/preflight.d.ts +12 -0
- package/dist/adapters/preflight.d.ts.map +1 -0
- package/dist/adapters/preflight.js +15 -0
- package/dist/adapters/preflight.js.map +1 -0
- package/dist/adapters/task-columns.d.ts +19 -0
- package/dist/adapters/task-columns.d.ts.map +1 -0
- package/dist/adapters/task-columns.js +107 -0
- package/dist/adapters/task-columns.js.map +1 -0
- package/dist/adapters/transcript/index.d.ts +6 -0
- package/dist/adapters/transcript/index.d.ts.map +1 -0
- package/dist/adapters/transcript/index.js +8 -0
- package/dist/adapters/transcript/index.js.map +1 -0
- package/dist/adapters/transcript/model.d.ts +42 -0
- package/dist/adapters/transcript/model.d.ts.map +1 -0
- package/dist/adapters/transcript/model.js +128 -0
- package/dist/adapters/transcript/model.js.map +1 -0
- package/dist/adapters/transcript/rounds.d.ts +15 -0
- package/dist/adapters/transcript/rounds.d.ts.map +1 -0
- package/dist/adapters/transcript/rounds.js +74 -0
- package/dist/adapters/transcript/rounds.js.map +1 -0
- package/dist/adapters/transcript/sections.d.ts +18 -0
- package/dist/adapters/transcript/sections.d.ts.map +1 -0
- package/dist/adapters/transcript/sections.js +69 -0
- package/dist/adapters/transcript/sections.js.map +1 -0
- package/dist/adapters/transcript/web.d.ts +12 -0
- package/dist/adapters/transcript/web.d.ts.map +1 -0
- package/dist/adapters/transcript/web.js +39 -0
- package/dist/adapters/transcript/web.js.map +1 -0
- package/dist/adapters/transcript/who.d.ts +15 -0
- package/dist/adapters/transcript/who.d.ts.map +1 -0
- package/dist/adapters/transcript/who.js +42 -0
- package/dist/adapters/transcript/who.js.map +1 -0
- package/dist/adapters/trends.d.ts +11 -0
- package/dist/adapters/trends.d.ts.map +1 -0
- package/dist/adapters/trends.js +316 -0
- package/dist/adapters/trends.js.map +1 -0
- package/dist/contraagent-ui.js +985 -0
- package/dist/controllers/locale.d.ts +25 -0
- package/dist/controllers/locale.d.ts.map +1 -0
- package/dist/controllers/locale.js +33 -0
- package/dist/controllers/locale.js.map +1 -0
- package/dist/controllers/shortcuts.d.ts +29 -0
- package/dist/controllers/shortcuts.d.ts.map +1 -0
- package/dist/controllers/shortcuts.js +51 -0
- package/dist/controllers/shortcuts.js.map +1 -0
- package/dist/controllers/stream.d.ts +41 -0
- package/dist/controllers/stream.d.ts.map +1 -0
- package/dist/controllers/stream.js +90 -0
- package/dist/controllers/stream.js.map +1 -0
- package/dist/controllers/task-detail.d.ts +22 -0
- package/dist/controllers/task-detail.d.ts.map +1 -0
- package/dist/controllers/task-detail.js +50 -0
- package/dist/controllers/task-detail.js.map +1 -0
- package/dist/controllers/theme.d.ts +32 -0
- package/dist/controllers/theme.d.ts.map +1 -0
- package/dist/controllers/theme.js +56 -0
- package/dist/controllers/theme.js.map +1 -0
- package/dist/core/clock.d.ts +20 -0
- package/dist/core/clock.d.ts.map +1 -0
- package/dist/core/clock.js +45 -0
- package/dist/core/clock.js.map +1 -0
- package/dist/core/events.d.ts +107 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +5 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/i18n.d.ts +21 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/i18n.js +71 -0
- package/dist/core/i18n.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/memory.d.ts +51 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +174 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/route.d.ts +62 -0
- package/dist/core/route.d.ts.map +1 -0
- package/dist/core/route.js +143 -0
- package/dist/core/route.js.map +1 -0
- package/dist/core/router.d.ts +27 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +57 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/scroll.d.ts +21 -0
- package/dist/core/scroll.d.ts.map +1 -0
- package/dist/core/scroll.js +74 -0
- package/dist/core/scroll.js.map +1 -0
- package/dist/core/view-route.d.ts +62 -0
- package/dist/core/view-route.d.ts.map +1 -0
- package/dist/core/view-route.js +143 -0
- package/dist/core/view-route.js.map +1 -0
- package/dist/core/view-router.d.ts +27 -0
- package/dist/core/view-router.d.ts.map +1 -0
- package/dist/core/view-router.js +57 -0
- package/dist/core/view-router.js.map +1 -0
- package/dist/define/all.d.ts +13 -0
- package/dist/define/all.d.ts.map +1 -0
- package/dist/define/all.js +14 -0
- package/dist/define/all.js.map +1 -0
- package/dist/define/contracts.d.ts +2 -0
- package/dist/define/contracts.d.ts.map +1 -0
- package/dist/define/contracts.js +3 -0
- package/dist/define/contracts.js.map +1 -0
- package/dist/define/definitions.d.ts +3 -0
- package/dist/define/definitions.d.ts.map +1 -0
- package/dist/define/definitions.js +4 -0
- package/dist/define/definitions.js.map +1 -0
- package/dist/define/journal-table.d.ts +2 -0
- package/dist/define/journal-table.d.ts.map +1 -0
- package/dist/define/journal-table.js +3 -0
- package/dist/define/journal-table.js.map +1 -0
- package/dist/define/kpis.d.ts +2 -0
- package/dist/define/kpis.d.ts.map +1 -0
- package/dist/define/kpis.js +3 -0
- package/dist/define/kpis.js.map +1 -0
- package/dist/define/monitor.d.ts +2 -0
- package/dist/define/monitor.d.ts.map +1 -0
- package/dist/define/monitor.js +3 -0
- package/dist/define/monitor.js.map +1 -0
- package/dist/define/overview.d.ts +2 -0
- package/dist/define/overview.d.ts.map +1 -0
- package/dist/define/overview.js +3 -0
- package/dist/define/overview.js.map +1 -0
- package/dist/define/pipeline-graph.d.ts +2 -0
- package/dist/define/pipeline-graph.d.ts.map +1 -0
- package/dist/define/pipeline-graph.js +3 -0
- package/dist/define/pipeline-graph.js.map +1 -0
- package/dist/define/procs.d.ts +3 -0
- package/dist/define/procs.d.ts.map +1 -0
- package/dist/define/procs.js +4 -0
- package/dist/define/procs.js.map +1 -0
- package/dist/define/task-table.d.ts +2 -0
- package/dist/define/task-table.d.ts.map +1 -0
- package/dist/define/task-table.js +3 -0
- package/dist/define/task-table.js.map +1 -0
- package/dist/define/task-view.d.ts +2 -0
- package/dist/define/task-view.d.ts.map +1 -0
- package/dist/define/task-view.js +3 -0
- package/dist/define/task-view.js.map +1 -0
- package/dist/define/timeline.d.ts +2 -0
- package/dist/define/timeline.d.ts.map +1 -0
- package/dist/define/timeline.js +3 -0
- package/dist/define/timeline.js.map +1 -0
- package/dist/define/transcript.d.ts +2 -0
- package/dist/define/transcript.d.ts.map +1 -0
- package/dist/define/transcript.js +3 -0
- package/dist/define/transcript.js.map +1 -0
- package/dist/elements/lists/ca-contracts.d.ts +46 -0
- package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
- package/dist/elements/lists/ca-contracts.js +199 -0
- package/dist/elements/lists/ca-contracts.js.map +1 -0
- package/dist/elements/lists/ca-definitions.d.ts +41 -0
- package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
- package/dist/elements/lists/ca-definitions.js +182 -0
- package/dist/elements/lists/ca-definitions.js.map +1 -0
- package/dist/elements/lists/ca-journal-table.d.ts +37 -0
- package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-journal-table.js +170 -0
- package/dist/elements/lists/ca-journal-table.js.map +1 -0
- package/dist/elements/lists/ca-panel-body.d.ts +29 -0
- package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-body.js +144 -0
- package/dist/elements/lists/ca-panel-body.js.map +1 -0
- package/dist/elements/lists/ca-panel-view.d.ts +21 -0
- package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-view.js +59 -0
- package/dist/elements/lists/ca-panel-view.js.map +1 -0
- package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
- package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
- package/dist/elements/lists/ca-proc-tree.js +63 -0
- package/dist/elements/lists/ca-proc-tree.js.map +1 -0
- package/dist/elements/lists/ca-procs-view.d.ts +27 -0
- package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-procs-view.js +91 -0
- package/dist/elements/lists/ca-procs-view.js.map +1 -0
- package/dist/elements/lists/ca-task-table.d.ts +33 -0
- package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-task-table.js +115 -0
- package/dist/elements/lists/ca-task-table.js.map +1 -0
- package/dist/elements/lists/filters.d.ts +28 -0
- package/dist/elements/lists/filters.d.ts.map +1 -0
- package/dist/elements/lists/filters.js +71 -0
- package/dist/elements/lists/filters.js.map +1 -0
- package/dist/elements/lists/index.d.ts +9 -0
- package/dist/elements/lists/index.d.ts.map +1 -0
- package/dist/elements/lists/index.js +9 -0
- package/dist/elements/lists/index.js.map +1 -0
- package/dist/elements/overview/ca-kpis.d.ts +32 -0
- package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
- package/dist/elements/overview/ca-kpis.js +62 -0
- package/dist/elements/overview/ca-kpis.js.map +1 -0
- package/dist/elements/overview/ca-model-usage.d.ts +25 -0
- package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
- package/dist/elements/overview/ca-model-usage.js +118 -0
- package/dist/elements/overview/ca-model-usage.js.map +1 -0
- package/dist/elements/overview/ca-overview.d.ts +66 -0
- package/dist/elements/overview/ca-overview.d.ts.map +1 -0
- package/dist/elements/overview/ca-overview.js +456 -0
- package/dist/elements/overview/ca-overview.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.js +616 -0
- package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts +17 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.js +119 -0
- package/dist/elements/overview/ca-pipeline-progress.js.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts +27 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.js +113 -0
- package/dist/elements/overview/ca-plan-matrix.js.map +1 -0
- package/dist/elements/overview/ca-quota.d.ts +42 -0
- package/dist/elements/overview/ca-quota.d.ts.map +1 -0
- package/dist/elements/overview/ca-quota.js +179 -0
- package/dist/elements/overview/ca-quota.js.map +1 -0
- package/dist/elements/overview/ca-run-driver.d.ts +33 -0
- package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
- package/dist/elements/overview/ca-run-driver.js +146 -0
- package/dist/elements/overview/ca-run-driver.js.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.js +108 -0
- package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
- package/dist/elements/overview/ca-timeline.d.ts +28 -0
- package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
- package/dist/elements/overview/ca-timeline.js +72 -0
- package/dist/elements/overview/ca-timeline.js.map +1 -0
- package/dist/elements/overview/ca-workers.d.ts +23 -0
- package/dist/elements/overview/ca-workers.d.ts.map +1 -0
- package/dist/elements/overview/ca-workers.js +86 -0
- package/dist/elements/overview/ca-workers.js.map +1 -0
- package/dist/elements/overview/flow-types.d.ts +2 -0
- package/dist/elements/overview/flow-types.d.ts.map +1 -0
- package/dist/elements/overview/flow-types.js +2 -0
- package/dist/elements/overview/flow-types.js.map +1 -0
- package/dist/elements/overview/graph/arrange.d.ts +16 -0
- package/dist/elements/overview/graph/arrange.d.ts.map +1 -0
- package/dist/elements/overview/graph/arrange.js +152 -0
- package/dist/elements/overview/graph/arrange.js.map +1 -0
- package/dist/elements/overview/graph/card.d.ts +64 -0
- package/dist/elements/overview/graph/card.d.ts.map +1 -0
- package/dist/elements/overview/graph/card.js +160 -0
- package/dist/elements/overview/graph/card.js.map +1 -0
- package/dist/elements/overview/graph/flow-index.d.ts +52 -0
- package/dist/elements/overview/graph/flow-index.d.ts.map +1 -0
- package/dist/elements/overview/graph/flow-index.js +121 -0
- package/dist/elements/overview/graph/flow-index.js.map +1 -0
- package/dist/elements/overview/graph/highlight.d.ts +14 -0
- package/dist/elements/overview/graph/highlight.d.ts.map +1 -0
- package/dist/elements/overview/graph/highlight.js +33 -0
- package/dist/elements/overview/graph/highlight.js.map +1 -0
- package/dist/elements/overview/graph/layer.d.ts +32 -0
- package/dist/elements/overview/graph/layer.d.ts.map +1 -0
- package/dist/elements/overview/graph/layer.js +92 -0
- package/dist/elements/overview/graph/layer.js.map +1 -0
- package/dist/elements/overview/graph/layout.d.ts +80 -0
- package/dist/elements/overview/graph/layout.d.ts.map +1 -0
- package/dist/elements/overview/graph/layout.js +261 -0
- package/dist/elements/overview/graph/layout.js.map +1 -0
- package/dist/elements/overview/graph/marks.d.ts +18 -0
- package/dist/elements/overview/graph/marks.d.ts.map +1 -0
- package/dist/elements/overview/graph/marks.js +17 -0
- package/dist/elements/overview/graph/marks.js.map +1 -0
- package/dist/elements/overview/graph/matrix.d.ts +58 -0
- package/dist/elements/overview/graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/graph/matrix.js +93 -0
- package/dist/elements/overview/graph/matrix.js.map +1 -0
- package/dist/elements/overview/graph/nav.d.ts +15 -0
- package/dist/elements/overview/graph/nav.d.ts.map +1 -0
- package/dist/elements/overview/graph/nav.js +80 -0
- package/dist/elements/overview/graph/nav.js.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts +83 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.js +189 -0
- package/dist/elements/overview/graph/pan-zoom.js.map +1 -0
- package/dist/elements/overview/graph/paths.d.ts +9 -0
- package/dist/elements/overview/graph/paths.d.ts.map +1 -0
- package/dist/elements/overview/graph/paths.js +44 -0
- package/dist/elements/overview/graph/paths.js.map +1 -0
- package/dist/elements/overview/graph/place-card.d.ts +36 -0
- package/dist/elements/overview/graph/place-card.d.ts.map +1 -0
- package/dist/elements/overview/graph/place-card.js +68 -0
- package/dist/elements/overview/graph/place-card.js.map +1 -0
- package/dist/elements/overview/graph/project.d.ts +31 -0
- package/dist/elements/overview/graph/project.d.ts.map +1 -0
- package/dist/elements/overview/graph/project.js +455 -0
- package/dist/elements/overview/graph/project.js.map +1 -0
- package/dist/elements/overview/graph/selection.d.ts +31 -0
- package/dist/elements/overview/graph/selection.d.ts.map +1 -0
- package/dist/elements/overview/graph/selection.js +44 -0
- package/dist/elements/overview/graph/selection.js.map +1 -0
- package/dist/elements/overview/graph/states.d.ts +6 -0
- package/dist/elements/overview/graph/states.d.ts.map +1 -0
- package/dist/elements/overview/graph/states.js +5 -0
- package/dist/elements/overview/graph/states.js.map +1 -0
- package/dist/elements/overview/graph/types.d.ts +124 -0
- package/dist/elements/overview/graph/types.d.ts.map +1 -0
- package/dist/elements/overview/graph/types.js +3 -0
- package/dist/elements/overview/graph/types.js.map +1 -0
- package/dist/elements/overview/graph/view.d.ts +16 -0
- package/dist/elements/overview/graph/view.d.ts.map +1 -0
- package/dist/elements/overview/graph/view.js +20 -0
- package/dist/elements/overview/graph/view.js.map +1 -0
- package/dist/elements/overview/index.d.ts +10 -0
- package/dist/elements/overview/index.d.ts.map +1 -0
- package/dist/elements/overview/index.js +10 -0
- package/dist/elements/overview/index.js.map +1 -0
- package/dist/elements/overview/kpis-model.d.ts +31 -0
- package/dist/elements/overview/kpis-model.d.ts.map +1 -0
- package/dist/elements/overview/kpis-model.js +30 -0
- package/dist/elements/overview/kpis-model.js.map +1 -0
- package/dist/elements/overview/logic.d.ts +442 -0
- package/dist/elements/overview/logic.d.ts.map +1 -0
- package/dist/elements/overview/logic.js +1431 -0
- package/dist/elements/overview/logic.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.js +42 -0
- package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.js +259 -0
- package/dist/elements/overview/pipeline-graph/dag.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.js +2 -0
- package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.js +13 -0
- package/dist/elements/overview/pipeline-graph/icons.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
- package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts +9 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.js +59 -0
- package/dist/elements/overview/pipeline-graph/legend.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.js +193 -0
- package/dist/elements/overview/pipeline-graph/matrix.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.js +111 -0
- package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.js +49 -0
- package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.js +96 -0
- package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.js +74 -0
- package/dist/elements/overview/pipeline-graph/table.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.js +48 -0
- package/dist/elements/overview/pipeline-graph/tools.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts +45 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.js +108 -0
- package/dist/elements/overview/pipeline-graph/words.js.map +1 -0
- package/dist/elements/overview/place-card.d.ts +36 -0
- package/dist/elements/overview/place-card.d.ts.map +1 -0
- package/dist/elements/overview/place-card.js +68 -0
- package/dist/elements/overview/place-card.js.map +1 -0
- package/dist/elements/overview/timeline-model.d.ts +44 -0
- package/dist/elements/overview/timeline-model.d.ts.map +1 -0
- package/dist/elements/overview/timeline-model.js +53 -0
- package/dist/elements/overview/timeline-model.js.map +1 -0
- package/dist/elements/shared/ca-count.d.ts +17 -0
- package/dist/elements/shared/ca-count.d.ts.map +1 -0
- package/dist/elements/shared/ca-count.js +59 -0
- package/dist/elements/shared/ca-count.js.map +1 -0
- package/dist/elements/shared/ca-definition.d.ts +26 -0
- package/dist/elements/shared/ca-definition.d.ts.map +1 -0
- package/dist/elements/shared/ca-definition.js +202 -0
- package/dist/elements/shared/ca-definition.js.map +1 -0
- package/dist/elements/shared/ca-elapsed.d.ts +14 -0
- package/dist/elements/shared/ca-elapsed.d.ts.map +1 -0
- package/dist/elements/shared/ca-elapsed.js +33 -0
- package/dist/elements/shared/ca-elapsed.js.map +1 -0
- package/dist/elements/shared/ca-json-tree.d.ts +16 -0
- package/dist/elements/shared/ca-json-tree.d.ts.map +1 -0
- package/dist/elements/shared/ca-json-tree.js +52 -0
- package/dist/elements/shared/ca-json-tree.js.map +1 -0
- package/dist/elements/shared/ca-markdown.d.ts +19 -0
- package/dist/elements/shared/ca-markdown.d.ts.map +1 -0
- package/dist/elements/shared/ca-markdown.js +59 -0
- package/dist/elements/shared/ca-markdown.js.map +1 -0
- package/dist/elements/shared/contract-parts.d.ts +35 -0
- package/dist/elements/shared/contract-parts.d.ts.map +1 -0
- package/dist/elements/shared/contract-parts.js +151 -0
- package/dist/elements/shared/contract-parts.js.map +1 -0
- package/dist/elements/shared/fact-line.d.ts +4 -0
- package/dist/elements/shared/fact-line.d.ts.map +1 -0
- package/dist/elements/shared/fact-line.js +8 -0
- package/dist/elements/shared/fact-line.js.map +1 -0
- package/dist/elements/shared/file-card.d.ts +17 -0
- package/dist/elements/shared/file-card.d.ts.map +1 -0
- package/dist/elements/shared/file-card.js +37 -0
- package/dist/elements/shared/file-card.js.map +1 -0
- package/dist/elements/shared/prompt-text.d.ts +5 -0
- package/dist/elements/shared/prompt-text.d.ts.map +1 -0
- package/dist/elements/shared/prompt-text.js +13 -0
- package/dist/elements/shared/prompt-text.js.map +1 -0
- package/dist/elements/shared/task-chip.d.ts +10 -0
- package/dist/elements/shared/task-chip.d.ts.map +1 -0
- package/dist/elements/shared/task-chip.js +19 -0
- package/dist/elements/shared/task-chip.js.map +1 -0
- package/dist/elements/shell/ca-clock.d.ts +13 -0
- package/dist/elements/shell/ca-clock.d.ts.map +1 -0
- package/dist/elements/shell/ca-clock.js +30 -0
- package/dist/elements/shell/ca-clock.js.map +1 -0
- package/dist/elements/shell/ca-hosts.d.ts +21 -0
- package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
- package/dist/elements/shell/ca-hosts.js +97 -0
- package/dist/elements/shell/ca-hosts.js.map +1 -0
- package/dist/elements/shell/ca-monitor.d.ts +180 -0
- package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
- package/dist/elements/shell/ca-monitor.js +547 -0
- package/dist/elements/shell/ca-monitor.js.map +1 -0
- package/dist/elements/shell/ca-run-picker.d.ts +71 -0
- package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
- package/dist/elements/shell/ca-run-picker.js +313 -0
- package/dist/elements/shell/ca-run-picker.js.map +1 -0
- package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
- package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
- package/dist/elements/shell/ca-theme-switch.js +186 -0
- package/dist/elements/shell/ca-theme-switch.js.map +1 -0
- package/dist/elements/shell/ca-toasts.d.ts +23 -0
- package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
- package/dist/elements/shell/ca-toasts.js +88 -0
- package/dist/elements/shell/ca-toasts.js.map +1 -0
- package/dist/elements/shell/header.d.ts +13 -0
- package/dist/elements/shell/header.d.ts.map +1 -0
- package/dist/elements/shell/header.js +38 -0
- package/dist/elements/shell/header.js.map +1 -0
- package/dist/elements/shell/styles.d.ts +2 -0
- package/dist/elements/shell/styles.d.ts.map +1 -0
- package/dist/elements/shell/styles.js +72 -0
- package/dist/elements/shell/styles.js.map +1 -0
- package/dist/elements/shell/tabs.d.ts +32 -0
- package/dist/elements/shell/tabs.d.ts.map +1 -0
- package/dist/elements/shell/tabs.js +125 -0
- package/dist/elements/shell/tabs.js.map +1 -0
- package/dist/elements/shell/views.d.ts +27 -0
- package/dist/elements/shell/views.d.ts.map +1 -0
- package/dist/elements/shell/views.js +55 -0
- package/dist/elements/shell/views.js.map +1 -0
- package/dist/elements/task/ca-task-view.d.ts +55 -0
- package/dist/elements/task/ca-task-view.d.ts.map +1 -0
- package/dist/elements/task/ca-task-view.js +199 -0
- package/dist/elements/task/ca-task-view.js.map +1 -0
- package/dist/elements/task/ca-transcript.d.ts +74 -0
- package/dist/elements/task/ca-transcript.d.ts.map +1 -0
- package/dist/elements/task/ca-transcript.js +241 -0
- package/dist/elements/task/ca-transcript.js.map +1 -0
- package/dist/elements/task/context.d.ts +57 -0
- package/dist/elements/task/context.d.ts.map +1 -0
- package/dist/elements/task/context.js +61 -0
- package/dist/elements/task/context.js.map +1 -0
- package/dist/elements/task/header.d.ts +9 -0
- package/dist/elements/task/header.d.ts.map +1 -0
- package/dist/elements/task/header.js +287 -0
- package/dist/elements/task/header.js.map +1 -0
- package/dist/elements/task/index.d.ts +3 -0
- package/dist/elements/task/index.d.ts.map +1 -0
- package/dist/elements/task/index.js +3 -0
- package/dist/elements/task/index.js.map +1 -0
- package/dist/elements/task/inputs.d.ts +28 -0
- package/dist/elements/task/inputs.d.ts.map +1 -0
- package/dist/elements/task/inputs.js +27 -0
- package/dist/elements/task/inputs.js.map +1 -0
- package/dist/elements/task/panes/definition.d.ts +5 -0
- package/dist/elements/task/panes/definition.d.ts.map +1 -0
- package/dist/elements/task/panes/definition.js +5 -0
- package/dist/elements/task/panes/definition.js.map +1 -0
- package/dist/elements/task/panes/io.d.ts +8 -0
- package/dist/elements/task/panes/io.d.ts.map +1 -0
- package/dist/elements/task/panes/io.js +184 -0
- package/dist/elements/task/panes/io.js.map +1 -0
- package/dist/elements/task/panes/transcript.d.ts +5 -0
- package/dist/elements/task/panes/transcript.d.ts.map +1 -0
- package/dist/elements/task/panes/transcript.js +29 -0
- package/dist/elements/task/panes/transcript.js.map +1 -0
- package/dist/elements/task/rounds.d.ts +14 -0
- package/dist/elements/task/rounds.d.ts.map +1 -0
- package/dist/elements/task/rounds.js +59 -0
- package/dist/elements/task/rounds.js.map +1 -0
- package/dist/elements/task/styles.d.ts +2 -0
- package/dist/elements/task/styles.d.ts.map +1 -0
- package/dist/elements/task/styles.js +66 -0
- package/dist/elements/task/styles.js.map +1 -0
- package/dist/elements/task/transcript-model.d.ts +106 -0
- package/dist/elements/task/transcript-model.d.ts.map +1 -0
- package/dist/elements/task/transcript-model.js +280 -0
- package/dist/elements/task/transcript-model.js.map +1 -0
- package/dist/elements/task/who.d.ts +5 -0
- package/dist/elements/task/who.d.ts.map +1 -0
- package/dist/elements/task/who.js +30 -0
- package/dist/elements/task/who.js.map +1 -0
- package/dist/elements/trends/ca-trends.d.ts +55 -0
- package/dist/elements/trends/ca-trends.d.ts.map +1 -0
- package/dist/elements/trends/ca-trends.js +213 -0
- package/dist/elements/trends/ca-trends.js.map +1 -0
- package/dist/events.d.ts +107 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +5 -0
- package/dist/events.js.map +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +48 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/clock.d.ts +20 -0
- package/dist/lib/clock.d.ts.map +1 -0
- package/dist/lib/clock.js +45 -0
- package/dist/lib/clock.js.map +1 -0
- package/dist/lib/format.d.ts +35 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +117 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/highlight.d.ts +5 -0
- package/dist/lib/highlight.d.ts.map +1 -0
- package/dist/lib/highlight.js +86 -0
- package/dist/lib/highlight.js.map +1 -0
- package/dist/lib/labels.d.ts +103 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +249 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/lib/markdown.d.ts +13 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +118 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/memory.d.ts +27 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +117 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/quota-format.d.ts +28 -0
- package/dist/lib/quota-format.d.ts.map +1 -0
- package/dist/lib/quota-format.js +67 -0
- package/dist/lib/quota-format.js.map +1 -0
- package/dist/lib/scroll.d.ts +16 -0
- package/dist/lib/scroll.d.ts.map +1 -0
- package/dist/lib/scroll.js +70 -0
- package/dist/lib/scroll.js.map +1 -0
- package/dist/lib/status.d.ts +25 -0
- package/dist/lib/status.d.ts.map +1 -0
- package/dist/lib/status.js +40 -0
- package/dist/lib/status.js.map +1 -0
- package/dist/lib/tone.d.ts +29 -0
- package/dist/lib/tone.d.ts.map +1 -0
- package/dist/lib/tone.js +97 -0
- package/dist/lib/tone.js.map +1 -0
- package/dist/lib/trends.d.ts +15 -0
- package/dist/lib/trends.d.ts.map +1 -0
- package/dist/lib/trends.js +36 -0
- package/dist/lib/trends.js.map +1 -0
- package/dist/locales/codes.d.ts +14 -0
- package/dist/locales/codes.d.ts.map +1 -0
- package/dist/locales/codes.js +21 -0
- package/dist/locales/codes.js.map +1 -0
- package/dist/locales/ja.d.ts +761 -0
- package/dist/locales/ja.d.ts.map +1 -0
- package/dist/locales/ja.js +767 -0
- package/dist/locales/ja.js.map +1 -0
- package/dist/route.d.ts +46 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +102 -0
- package/dist/route.js.map +1 -0
- package/dist/router.d.ts +23 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +55 -0
- package/dist/router.js.map +1 -0
- package/dist/styles/base.d.ts +11 -0
- package/dist/styles/base.d.ts.map +1 -0
- package/dist/styles/base.js +241 -0
- package/dist/styles/base.js.map +1 -0
- package/dist/styles/chips.d.ts +2 -0
- package/dist/styles/chips.d.ts.map +1 -0
- package/dist/styles/chips.js +18 -0
- package/dist/styles/chips.js.map +1 -0
- package/dist/styles/executor-icon.d.ts +3 -0
- package/dist/styles/executor-icon.d.ts.map +1 -0
- package/dist/styles/executor-icon.js +9 -0
- package/dist/styles/executor-icon.js.map +1 -0
- package/dist/styles/facts.d.ts +2 -0
- package/dist/styles/facts.d.ts.map +1 -0
- package/dist/styles/facts.js +7 -0
- package/dist/styles/facts.js.map +1 -0
- package/dist/styles/index.d.ts +17 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +16 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/layout.d.ts +2 -0
- package/dist/styles/layout.d.ts.map +1 -0
- package/dist/styles/layout.js +30 -0
- package/dist/styles/layout.js.map +1 -0
- package/dist/styles/legend.d.ts +2 -0
- package/dist/styles/legend.d.ts.map +1 -0
- package/dist/styles/legend.js +8 -0
- package/dist/styles/legend.js.map +1 -0
- package/dist/styles/meter.d.ts +3 -0
- package/dist/styles/meter.d.ts.map +1 -0
- package/dist/styles/meter.js +9 -0
- package/dist/styles/meter.js.map +1 -0
- package/dist/styles/motion.d.ts +2 -0
- package/dist/styles/motion.d.ts.map +1 -0
- package/dist/styles/motion.js +27 -0
- package/dist/styles/motion.js.map +1 -0
- package/dist/styles/prose.d.ts +3 -0
- package/dist/styles/prose.d.ts.map +1 -0
- package/dist/styles/prose.js +59 -0
- package/dist/styles/prose.js.map +1 -0
- package/dist/styles/reset.d.ts +2 -0
- package/dist/styles/reset.d.ts.map +1 -0
- package/dist/styles/reset.js +13 -0
- package/dist/styles/reset.js.map +1 -0
- package/dist/styles/status.d.ts +2 -0
- package/dist/styles/status.d.ts.map +1 -0
- package/dist/styles/status.js +52 -0
- package/dist/styles/status.js.map +1 -0
- package/dist/styles/text.d.ts +2 -0
- package/dist/styles/text.d.ts.map +1 -0
- package/dist/styles/text.js +21 -0
- package/dist/styles/text.js.map +1 -0
- package/dist/styles/theme-sheet.d.ts +12 -0
- package/dist/styles/theme-sheet.d.ts.map +1 -0
- package/dist/styles/theme-sheet.js +24 -0
- package/dist/styles/theme-sheet.js.map +1 -0
- package/dist/styles/themes.d.ts +75 -0
- package/dist/styles/themes.d.ts.map +1 -0
- package/dist/styles/themes.js +452 -0
- package/dist/styles/themes.js.map +1 -0
- package/dist/styles/tokens.d.ts +8 -0
- package/dist/styles/tokens.d.ts.map +1 -0
- package/dist/styles/tokens.js +32 -0
- package/dist/styles/tokens.js.map +1 -0
- package/dist/themes/boot.d.ts +7 -0
- package/dist/themes/boot.d.ts.map +1 -0
- package/dist/themes/boot.js +14 -0
- package/dist/themes/boot.js.map +1 -0
- package/dist/themes/choice.d.ts +16 -0
- package/dist/themes/choice.d.ts.map +1 -0
- package/dist/themes/choice.js +45 -0
- package/dist/themes/choice.js.map +1 -0
- package/dist/themes/data.d.ts +42 -0
- package/dist/themes/data.d.ts.map +1 -0
- package/dist/themes/data.js +356 -0
- package/dist/themes/data.js.map +1 -0
- package/dist/themes/index.d.ts +5 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +8 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/sheet.d.ts +12 -0
- package/dist/themes/sheet.d.ts.map +1 -0
- package/dist/themes/sheet.js +24 -0
- package/dist/themes/sheet.js.map +1 -0
- package/dist/themes/tokens-list.d.ts +15 -0
- package/dist/themes/tokens-list.d.ts.map +1 -0
- package/dist/themes/tokens-list.js +62 -0
- package/dist/themes/tokens-list.js.map +1 -0
- package/dist/words/api-error.d.ts +4 -0
- package/dist/words/api-error.d.ts.map +1 -0
- package/dist/words/api-error.js +13 -0
- package/dist/words/api-error.js.map +1 -0
- package/dist/words/attempts.d.ts +17 -0
- package/dist/words/attempts.d.ts.map +1 -0
- package/dist/words/attempts.js +26 -0
- package/dist/words/attempts.js.map +1 -0
- package/dist/words/causes.d.ts +33 -0
- package/dist/words/causes.d.ts.map +1 -0
- package/dist/words/causes.js +58 -0
- package/dist/words/causes.js.map +1 -0
- package/dist/words/changes.d.ts +9 -0
- package/dist/words/changes.d.ts.map +1 -0
- package/dist/words/changes.js +21 -0
- package/dist/words/changes.js.map +1 -0
- package/dist/words/claims.d.ts +9 -0
- package/dist/words/claims.d.ts.map +1 -0
- package/dist/words/claims.js +12 -0
- package/dist/words/claims.js.map +1 -0
- package/dist/words/context.d.ts +18 -0
- package/dist/words/context.d.ts.map +1 -0
- package/dist/words/context.js +39 -0
- package/dist/words/context.js.map +1 -0
- package/dist/words/contract.d.ts +25 -0
- package/dist/words/contract.d.ts.map +1 -0
- package/dist/words/contract.js +52 -0
- package/dist/words/contract.js.map +1 -0
- package/dist/words/credential.d.ts +5 -0
- package/dist/words/credential.d.ts.map +1 -0
- package/dist/words/credential.js +7 -0
- package/dist/words/credential.js.map +1 -0
- package/dist/words/executor.d.ts +12 -0
- package/dist/words/executor.d.ts.map +1 -0
- package/dist/words/executor.js +20 -0
- package/dist/words/executor.js.map +1 -0
- package/dist/words/export.d.ts +8 -0
- package/dist/words/export.d.ts.map +1 -0
- package/dist/words/export.js +17 -0
- package/dist/words/export.js.map +1 -0
- package/dist/words/format.d.ts +36 -0
- package/dist/words/format.d.ts.map +1 -0
- package/dist/words/format.js +109 -0
- package/dist/words/format.js.map +1 -0
- package/dist/words/hops.d.ts +12 -0
- package/dist/words/hops.d.ts.map +1 -0
- package/dist/words/hops.js +27 -0
- package/dist/words/hops.js.map +1 -0
- package/dist/words/hosts.d.ts +18 -0
- package/dist/words/hosts.d.ts.map +1 -0
- package/dist/words/hosts.js +22 -0
- package/dist/words/hosts.js.map +1 -0
- package/dist/words/index.d.ts +27 -0
- package/dist/words/index.d.ts.map +1 -0
- package/dist/words/index.js +31 -0
- package/dist/words/index.js.map +1 -0
- package/dist/words/models.d.ts +10 -0
- package/dist/words/models.d.ts.map +1 -0
- package/dist/words/models.js +45 -0
- package/dist/words/models.js.map +1 -0
- package/dist/words/outcome.d.ts +14 -0
- package/dist/words/outcome.d.ts.map +1 -0
- package/dist/words/outcome.js +58 -0
- package/dist/words/outcome.js.map +1 -0
- package/dist/words/panels.d.ts +11 -0
- package/dist/words/panels.d.ts.map +1 -0
- package/dist/words/panels.js +50 -0
- package/dist/words/panels.js.map +1 -0
- package/dist/words/passes.d.ts +11 -0
- package/dist/words/passes.d.ts.map +1 -0
- package/dist/words/passes.js +13 -0
- package/dist/words/passes.js.map +1 -0
- package/dist/words/preflight.d.ts +28 -0
- package/dist/words/preflight.d.ts.map +1 -0
- package/dist/words/preflight.js +30 -0
- package/dist/words/preflight.js.map +1 -0
- package/dist/words/priority.d.ts +5 -0
- package/dist/words/priority.d.ts.map +1 -0
- package/dist/words/priority.js +7 -0
- package/dist/words/priority.js.map +1 -0
- package/dist/words/prompt.d.ts +10 -0
- package/dist/words/prompt.d.ts.map +1 -0
- package/dist/words/prompt.js +17 -0
- package/dist/words/prompt.js.map +1 -0
- package/dist/words/quota.d.ts +35 -0
- package/dist/words/quota.d.ts.map +1 -0
- package/dist/words/quota.js +102 -0
- package/dist/words/quota.js.map +1 -0
- package/dist/words/rests.d.ts +26 -0
- package/dist/words/rests.d.ts.map +1 -0
- package/dist/words/rests.js +77 -0
- package/dist/words/rests.js.map +1 -0
- package/dist/words/rounds.d.ts +14 -0
- package/dist/words/rounds.d.ts.map +1 -0
- package/dist/words/rounds.js +60 -0
- package/dist/words/rounds.js.map +1 -0
- package/dist/words/row-extras.d.ts +7 -0
- package/dist/words/row-extras.d.ts.map +1 -0
- package/dist/words/row-extras.js +26 -0
- package/dist/words/row-extras.js.map +1 -0
- package/dist/words/run-line.d.ts +40 -0
- package/dist/words/run-line.d.ts.map +1 -0
- package/dist/words/run-line.js +66 -0
- package/dist/words/run-line.js.map +1 -0
- package/dist/words/stop.d.ts +6 -0
- package/dist/words/stop.d.ts.map +1 -0
- package/dist/words/stop.js +69 -0
- package/dist/words/stop.js.map +1 -0
- package/dist/words/table.d.ts +4 -0
- package/dist/words/table.d.ts.map +1 -0
- package/dist/words/table.js +8 -0
- package/dist/words/table.js.map +1 -0
- package/dist/words/task-definition.d.ts +23 -0
- package/dist/words/task-definition.d.ts.map +1 -0
- package/dist/words/task-definition.js +27 -0
- package/dist/words/task-definition.js.map +1 -0
- package/dist/words/time-box.d.ts +8 -0
- package/dist/words/time-box.d.ts.map +1 -0
- package/dist/words/time-box.js +12 -0
- package/dist/words/time-box.js.map +1 -0
- package/dist/words/trends.d.ts +86 -0
- package/dist/words/trends.d.ts.map +1 -0
- package/dist/words/trends.js +104 -0
- package/dist/words/trends.js.map +1 -0
- package/dist/words/units.d.ts +9 -0
- package/dist/words/units.d.ts.map +1 -0
- package/dist/words/units.js +12 -0
- package/dist/words/units.js.map +1 -0
- package/docs/embed.md +118 -0
- package/docs/events.md +38 -0
- package/docs/examples/embed.html +31 -0
- package/docs/examples/journal.ts +32 -0
- package/docs/examples/live-transcript.ts +22 -0
- package/docs/examples/vite/index.html +30 -0
- package/docs/examples/vite/main.ts +23 -0
- package/docs/languages.md +48 -0
- package/docs/live-data.md +17 -0
- package/docs/theming.md +21 -0
- package/docs/tsconfig.json +14 -0
- package/package.json +131 -4
- package/src/adapters/check-rows.ts +78 -0
- package/src/adapters/filters.ts +76 -0
- package/src/adapters/graph/compound.ts +359 -0
- package/src/adapters/graph/flow-index.ts +154 -0
- package/src/adapters/graph/highlight.ts +40 -0
- package/src/adapters/graph/input.ts +236 -0
- package/src/adapters/graph/layer.ts +92 -0
- package/src/adapters/graph/matrix.ts +133 -0
- package/src/adapters/graph/plans.fixture.ts +194 -0
- package/src/adapters/graph/project.ts +358 -0
- package/src/adapters/graph/selection.ts +54 -0
- package/src/adapters/graph/states.ts +10 -0
- package/src/adapters/graph/types.ts +148 -0
- package/src/adapters/graph/words.ts +146 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/journal-columns.ts +200 -0
- package/src/adapters/kpi-tiles.ts +211 -0
- package/src/adapters/lanes.ts +98 -0
- package/src/adapters/model-shares.ts +62 -0
- package/src/adapters/panel-body.ts +74 -0
- package/src/adapters/preflight.ts +27 -0
- package/src/adapters/task-columns.ts +120 -0
- package/src/adapters/transcript/index.ts +14 -0
- package/src/adapters/transcript/model.ts +156 -0
- package/src/adapters/transcript/rounds.ts +86 -0
- package/src/adapters/transcript/sections.ts +82 -0
- package/src/adapters/transcript/web.ts +40 -0
- package/src/adapters/transcript/who.ts +53 -0
- package/src/adapters/trends.ts +337 -0
- package/src/controllers/locale.ts +47 -0
- package/src/controllers/shortcuts.ts +69 -0
- package/src/controllers/stream.ts +103 -0
- package/src/controllers/task-detail.ts +54 -0
- package/src/controllers/theme.ts +73 -0
- package/src/core/events.ts +120 -0
- package/src/core/i18n.ts +76 -0
- package/src/core/index.ts +6 -0
- package/src/core/memory.ts +177 -0
- package/src/core/scroll.ts +73 -0
- package/src/core/view-route.ts +177 -0
- package/src/core/view-router.ts +66 -0
- package/src/define/all.ts +13 -0
- package/src/define/contracts.ts +2 -0
- package/src/define/definitions.ts +3 -0
- package/src/define/journal-table.ts +2 -0
- package/src/define/kpis.ts +2 -0
- package/src/define/monitor.ts +2 -0
- package/src/define/overview.ts +2 -0
- package/src/define/pipeline-graph.ts +2 -0
- package/src/define/procs.ts +3 -0
- package/src/define/task-table.ts +2 -0
- package/src/define/task-view.ts +2 -0
- package/src/define/timeline.ts +2 -0
- package/src/define/transcript.ts +2 -0
- package/src/elements/lists/ca-contracts.ts +204 -0
- package/src/elements/lists/ca-definitions.ts +170 -0
- package/src/elements/lists/ca-journal-table.ts +141 -0
- package/src/elements/lists/ca-panel-body.ts +139 -0
- package/src/elements/lists/ca-panel-view.ts +50 -0
- package/src/elements/lists/ca-proc-tree.ts +57 -0
- package/src/elements/lists/ca-procs-view.ts +89 -0
- package/src/elements/lists/ca-task-table.ts +94 -0
- package/src/elements/lists/index.ts +8 -0
- package/src/elements/overview/ca-kpis.ts +51 -0
- package/src/elements/overview/ca-model-usage.ts +113 -0
- package/src/elements/overview/ca-overview.ts +492 -0
- package/src/elements/overview/ca-pipeline-graph.ts +617 -0
- package/src/elements/overview/ca-quota.ts +164 -0
- package/src/elements/overview/ca-run-driver.ts +140 -0
- package/src/elements/overview/ca-spend-breakdown.ts +107 -0
- package/src/elements/overview/ca-timeline.ts +57 -0
- package/src/elements/overview/ca-workers.ts +82 -0
- package/src/elements/overview/index.ts +9 -0
- package/src/elements/overview/pipeline-graph/actions.ts +45 -0
- package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
- package/src/elements/overview/pipeline-graph/host.ts +26 -0
- package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
- package/src/elements/overview/pipeline-graph/outline.ts +150 -0
- package/src/elements/overview/pipeline-graph/strings.ts +53 -0
- package/src/elements/overview/pipeline-graph/styles.ts +97 -0
- package/src/elements/shared/ca-definition.ts +206 -0
- package/src/elements/shared/contract-parts.ts +158 -0
- package/src/elements/shared/file-card.ts +49 -0
- package/src/elements/shared/prompt-text.ts +13 -0
- package/src/elements/shared/task-chip.ts +18 -0
- package/src/elements/shell/ca-clock.ts +27 -0
- package/src/elements/shell/ca-hosts.ts +93 -0
- package/src/elements/shell/ca-monitor.ts +526 -0
- package/src/elements/shell/ca-run-picker.ts +284 -0
- package/src/elements/shell/ca-theme-switch.ts +170 -0
- package/src/elements/shell/ca-toasts.ts +100 -0
- package/src/elements/shell/header.ts +45 -0
- package/src/elements/shell/styles.ts +72 -0
- package/src/elements/shell/tabs.ts +143 -0
- package/src/elements/shell/views.ts +67 -0
- package/src/elements/task/ca-task-view.ts +157 -0
- package/src/elements/task/ca-transcript.ts +214 -0
- package/src/elements/task/context.ts +105 -0
- package/src/elements/task/header.ts +292 -0
- package/src/elements/task/index.ts +2 -0
- package/src/elements/task/inputs.ts +46 -0
- package/src/elements/task/panes/definition.ts +7 -0
- package/src/elements/task/panes/io.ts +190 -0
- package/src/elements/task/panes/transcript.ts +29 -0
- package/src/elements/task/styles.ts +66 -0
- package/src/elements/trends/ca-trends.ts +204 -0
- package/src/index.ts +23 -0
- package/src/lib/tone.ts +109 -0
- package/src/lib/trends.ts +44 -0
- package/src/locales/codes.ts +23 -0
- package/src/locales/ja.ts +771 -0
- package/src/words/api-error.ts +17 -0
- package/src/words/attempts.ts +28 -0
- package/src/words/causes.ts +67 -0
- package/src/words/changes.ts +27 -0
- package/src/words/claims.ts +16 -0
- package/src/words/context.ts +47 -0
- package/src/words/contract.ts +63 -0
- package/src/words/credential.ts +8 -0
- package/src/words/executor.ts +22 -0
- package/src/words/export.ts +22 -0
- package/src/words/format.ts +107 -0
- package/src/words/hops.ts +30 -0
- package/src/words/hosts.ts +37 -0
- package/src/words/index.ts +30 -0
- package/src/words/models.ts +50 -0
- package/src/words/outcome.ts +61 -0
- package/src/words/panels.ts +53 -0
- package/src/words/passes.ts +18 -0
- package/src/words/preflight.ts +53 -0
- package/src/words/priority.ts +8 -0
- package/src/words/prompt.ts +20 -0
- package/src/words/quota.ts +108 -0
- package/src/words/rests.ts +96 -0
- package/src/words/rounds.ts +56 -0
- package/src/words/row-extras.ts +24 -0
- package/src/words/run-line.ts +77 -0
- package/src/words/stop.ts +65 -0
- package/src/words/table.ts +10 -0
- package/src/words/task-definition.ts +37 -0
- package/src/words/time-box.ts +21 -0
- package/src/words/trends.ts +118 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
// The pipeline graph, by layer: the plan projected onto one layer of its flow.
|
|
2
|
+
//
|
|
3
|
+
// The run as a graph of what its flow's code did, one layer at a time. A layer is
|
|
4
|
+
// a prefix of the flow path (the names of the functions a task was created in,
|
|
5
|
+
// outermost first). At a layer, a task created in the layer's own function is
|
|
6
|
+
// shown in a kind node (its plan group); a task created deeper is shown in the
|
|
7
|
+
// node of the function the layer's function called on the way (a function node).
|
|
8
|
+
// The same rule applies at every depth. Nodes whose call sites sit in the same
|
|
9
|
+
// loop of the layer's function are drawn in one loop box, a nested loop's box
|
|
10
|
+
// inside it; each box counts its own loop's passes (`flow[].loops[].pass`). Edges
|
|
11
|
+
// are the tasks' `after` (data) and `created_from` (created after those results),
|
|
12
|
+
// projected onto the layer's nodes; an edge from a task outside the layer is an
|
|
13
|
+
// incoming stub. Inside each node, one mark per unit, in the same unit order
|
|
14
|
+
// everywhere in the layer.
|
|
15
|
+
//
|
|
16
|
+
// The drawing's order is `arrange` (@contraagent/elements): a loop box is a
|
|
17
|
+
// cluster, an edge back to a loop's next pass does not set the layers.
|
|
18
|
+
import { isPython, type FlowCallNode, type Plan, type PlanNode, type TaskState, type TimeBoxRecord } from '@contraagent/api';
|
|
19
|
+
import type { Arrangement, EdgeStyle, GraphShape } from '@contraagent/elements/graph';
|
|
20
|
+
import { boxChain, cmpPasses, indexOf, instanceOf, loopsAt, passesAt, placeOf, push, shortName, startsWith, type FlowIndex, type FlowTask } from './flow-index.js';
|
|
21
|
+
import { worstOf, worstState } from './states.js';
|
|
22
|
+
import { LOOP_SEGMENT, type GraphNode, type LayerGraph, type LayerMark, type LayerModel, type LoopBox, type NodeCounts } from './types.js';
|
|
23
|
+
|
|
24
|
+
/** Who runs a kind node's tasks: a coding agent, Python, or both (`mixed`). */
|
|
25
|
+
function executorOf(ns: readonly PlanNode[]): 'agent' | 'python' | 'mixed' {
|
|
26
|
+
const py = ns.filter(isPython).length;
|
|
27
|
+
return py === 0 ? 'agent' : py === ns.length ? 'python' : 'mixed';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const CALL_STATE: Record<FlowCallNode['state'], TaskState> = { running: 'running', returned: 'done', raised: 'failed', closed: 'failed' };
|
|
31
|
+
|
|
32
|
+
/** A flow call stopped with an error: it raised, or it was closed. */
|
|
33
|
+
const callFailed = (c: FlowCallNode | undefined): c is FlowCallNode => c?.state === 'raised' || c?.state === 'closed';
|
|
34
|
+
|
|
35
|
+
export function taskMark(ts: readonly FlowTask[], unit: string): LayerMark {
|
|
36
|
+
const ns = ts.map((t) => t.n);
|
|
37
|
+
const key = (ns.find((n) => n.state === 'running') ?? ns[ns.length - 1] ?? { key: '' }).key;
|
|
38
|
+
return { key, unit, state: worstState(ns), count: ns.length, keys: ns.map((n) => n.key) };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface Marks {
|
|
42
|
+
byUnit: Map<string, LayerMark>;
|
|
43
|
+
single: LayerMark[];
|
|
44
|
+
/** A function node's flow calls, and those that raised or were closed. */
|
|
45
|
+
calls?: number;
|
|
46
|
+
errors?: number;
|
|
47
|
+
/** A function node's first own flow call with a deadline of its own (`time_box`), else null. */
|
|
48
|
+
timeBox?: TimeBoxRecord | null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** A kind node's marks: one per unit, and one per task without a unit. */
|
|
52
|
+
function kindMarks(ts: readonly FlowTask[]): Marks {
|
|
53
|
+
const byUnit = new Map<string, FlowTask[]>();
|
|
54
|
+
const single: LayerMark[] = [];
|
|
55
|
+
for (const t of ts) {
|
|
56
|
+
if (t.n.unit) push(byUnit, t.n.unit, t);
|
|
57
|
+
else single.push(taskMark([t], ''));
|
|
58
|
+
}
|
|
59
|
+
return { byUnit: new Map([...byUnit].map(([u, xs]) => [u, taskMark(xs, u)])), single };
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface Instance {
|
|
63
|
+
id: string;
|
|
64
|
+
own: boolean;
|
|
65
|
+
tasks: FlowTask[];
|
|
66
|
+
/** The one unit of its tasks, or '' when they have several (or none). */
|
|
67
|
+
unit: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function instances(ts: readonly FlowTask[], d: number, calls: Map<string, FlowCallNode> | null): Instance[] {
|
|
71
|
+
const by = new Map<string, Instance>();
|
|
72
|
+
for (const t of ts) {
|
|
73
|
+
const { id, own } = instanceOf(t, d, calls);
|
|
74
|
+
const x = by.get(id) ?? by.set(id, { id, own, tasks: [], unit: '' }).get(id);
|
|
75
|
+
x?.tasks.push(t);
|
|
76
|
+
}
|
|
77
|
+
for (const x of by.values()) {
|
|
78
|
+
const us = new Set(x.tasks.map((t) => t.n.unit || ''));
|
|
79
|
+
x.unit = us.size === 1 ? ([...us][0] as string) : '';
|
|
80
|
+
}
|
|
81
|
+
return [...by.values()];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* A function node's marks: its flow calls, one mark per unit when a call's tasks share one unit, else one per call.
|
|
86
|
+
* A call's state is the most severe of its own (raised or closed: failed) and its tasks' (those of the calls it
|
|
87
|
+
* started included), so a call that caught a task's failure and returned still shows it.
|
|
88
|
+
*/
|
|
89
|
+
export function flowMarks(ts: readonly FlowTask[], d: number, name: string, calls: Map<string, FlowCallNode> | null): Marks {
|
|
90
|
+
const markOf = (xs: readonly Instance[], unit: string): LayerMark => {
|
|
91
|
+
const own = xs.map((x) => (x.own ? calls?.get(x.id) : undefined));
|
|
92
|
+
const states = xs.map((x, i): TaskState => {
|
|
93
|
+
const c = own[i];
|
|
94
|
+
const tasks = worstState(x.tasks.map((t) => t.n));
|
|
95
|
+
return c && CALL_STATE[c.state] ? worstOf([CALL_STATE[c.state], tasks]) : tasks;
|
|
96
|
+
});
|
|
97
|
+
const tasks = xs.flatMap((x) => x.tasks);
|
|
98
|
+
const keys = tasks.map((t) => t.n.key);
|
|
99
|
+
const last = xs.find((_, i) => states[i] === 'running') ?? xs[xs.length - 1];
|
|
100
|
+
const failed = own.find(callFailed);
|
|
101
|
+
const mark: LayerMark = { key: last?.id ?? '', unit, state: worstOf(states), count: keys.length, keys, flow: name, counts: taskCounts(tasks) };
|
|
102
|
+
const box = last?.own ? calls?.get(last.id)?.time_box : null;
|
|
103
|
+
const deadlineAt = box ? deadlineOf(box) : '';
|
|
104
|
+
const withBox = deadlineAt ? { ...mark, deadlineAt } : mark;
|
|
105
|
+
return failed ? { ...withBox, error: failed.error ?? '' } : withBox;
|
|
106
|
+
};
|
|
107
|
+
const byUnit = new Map<string, Instance[]>();
|
|
108
|
+
const single: LayerMark[] = [];
|
|
109
|
+
const xs = instances(ts, d, calls);
|
|
110
|
+
for (const x of xs) {
|
|
111
|
+
if (x.unit) push(byUnit, x.unit, x);
|
|
112
|
+
else single.push(markOf([x], ''));
|
|
113
|
+
}
|
|
114
|
+
const errors = calls ? xs.filter((x) => x.own && callFailed(calls.get(x.id))).length : 0;
|
|
115
|
+
const timeBox = xs.map((x) => (x.own ? calls?.get(x.id)?.time_box : null)).find((b) => b) ?? null;
|
|
116
|
+
return { byUnit: new Map([...byUnit].map(([u, ys]) => [u, markOf(ys, u)])), single, calls: xs.length, errors, timeBox };
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** When a flow call's own deadline falls: its start plus `deadline_s` (UTC ISO 8601); '' when its start is not known. */
|
|
120
|
+
export function deadlineOf(box: TimeBoxRecord): string {
|
|
121
|
+
const t = Date.parse(box.started_at);
|
|
122
|
+
return Number.isNaN(t) ? '' : new Date(t + box.deadline_s * 1000).toISOString();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** Tasks by state. */
|
|
126
|
+
function taskCounts(ts: readonly FlowTask[]): NodeCounts {
|
|
127
|
+
const c: NodeCounts = { total: ts.length, done: 0, partial: 0, failed: 0, running: 0, pending: 0, skipped: 0, blocked: 0 };
|
|
128
|
+
for (const t of ts) c[t.n.state] += 1;
|
|
129
|
+
return c;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** The tasks of each unit's latest pass, by the passes of the loops around them at depth `d` (tasks without a unit count as one unit). */
|
|
133
|
+
function latestPass(ts: readonly FlowTask[], d: number): FlowTask[] {
|
|
134
|
+
const most = new Map<string, number[]>();
|
|
135
|
+
for (const t of ts) {
|
|
136
|
+
const u = t.n.unit || '';
|
|
137
|
+
const had = most.get(u);
|
|
138
|
+
if (!had || cmpPasses(passesAt(t, d), had) > 0) most.set(u, passesAt(t, d));
|
|
139
|
+
}
|
|
140
|
+
return ts.filter((t) => cmpPasses(passesAt(t, d), most.get(t.n.unit || '') ?? []) === 0);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** How many passes each unit's tasks in a node ran in (distinct pass lists at depth `d`). */
|
|
144
|
+
function passesByUnit(ts: readonly FlowTask[], d: number): Map<string, number> {
|
|
145
|
+
const seen = new Map<string, Set<string>>();
|
|
146
|
+
for (const t of ts) {
|
|
147
|
+
const u = t.n.unit || '';
|
|
148
|
+
(seen.get(u) ?? seen.set(u, new Set()).get(u))?.add(passesAt(t, d).join('.'));
|
|
149
|
+
}
|
|
150
|
+
return new Map([...seen].map(([u, s]) => [u, s.size]));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** A mark with its pass count, when it is more than 1. */
|
|
154
|
+
const withPasses = (m: LayerMark, n: number | undefined): LayerMark => (n && n > 1 ? { ...m, passes: n } : m);
|
|
155
|
+
|
|
156
|
+
export interface Draft {
|
|
157
|
+
id: string;
|
|
158
|
+
type: 'kind' | 'flow';
|
|
159
|
+
name: string;
|
|
160
|
+
loops: number[];
|
|
161
|
+
tasks: FlowTask[];
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export interface Projection {
|
|
165
|
+
model: LayerModel;
|
|
166
|
+
drafts: Map<string, Draft>;
|
|
167
|
+
ix: FlowIndex;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** The layer `path` of the plan, as the plan has it: its nodes, loop boxes, edges and stubs, not yet arranged. */
|
|
171
|
+
export function project(plan: Plan, path: readonly string[]): Projection {
|
|
172
|
+
const ix = indexOf(plan);
|
|
173
|
+
return projectTasks(ix, path, ix.tasks.filter((t) => startsWith(t.path, path)));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* The layer `path` of the tasks `inside` (each with that prefix): its nodes, loop boxes,
|
|
178
|
+
* edges and stubs, as `project` has them. A function drawn open (`compound.ts`) is the
|
|
179
|
+
* layer of the tasks of its node alone.
|
|
180
|
+
*/
|
|
181
|
+
export function projectTasks(ix: FlowIndex, path: readonly string[], inside: readonly FlowTask[]): Projection {
|
|
182
|
+
const d = path.length;
|
|
183
|
+
const drafts = new Map<string, Draft>();
|
|
184
|
+
const nodeOfKey = new Map<string, string>();
|
|
185
|
+
for (const t of inside) {
|
|
186
|
+
const p = placeOf(t, d);
|
|
187
|
+
const x = drafts.get(p.id) ?? drafts.set(p.id, { ...p, tasks: [] }).get(p.id);
|
|
188
|
+
x?.tasks.push(t);
|
|
189
|
+
nodeOfKey.set(t.n.key, p.id);
|
|
190
|
+
}
|
|
191
|
+
const marks = new Map<string, Marks>();
|
|
192
|
+
const shownOf = new Map<string, FlowTask[]>(); // node id -> the tasks it counts
|
|
193
|
+
const boxOf = new Map<string, string>(); // node id -> its innermost loop box
|
|
194
|
+
const boxParent = new Map<string, string | null>(); // loop box -> the box it nests in
|
|
195
|
+
for (const x of drafts.values()) {
|
|
196
|
+
const chain = boxChain(x.loops);
|
|
197
|
+
const inner = chain[chain.length - 1] ?? null;
|
|
198
|
+
chain.forEach((box, i) => boxParent.set(box, chain[i - 1] ?? null));
|
|
199
|
+
if (inner) boxOf.set(x.id, inner);
|
|
200
|
+
// In a loop box, a unit's mark is its latest pass, and counts the passes it ran in.
|
|
201
|
+
const shown = inner ? latestPass(x.tasks, d) : x.tasks;
|
|
202
|
+
shownOf.set(x.id, shown);
|
|
203
|
+
const m = x.type === 'kind' ? kindMarks(shown) : flowMarks(shown, d, x.name, ix.calls);
|
|
204
|
+
if (inner) {
|
|
205
|
+
const per = passesByUnit(x.tasks, d);
|
|
206
|
+
m.byUnit = new Map([...m.byUnit].map(([u, mk]) => [u, withPasses(mk, per.get(u))]));
|
|
207
|
+
}
|
|
208
|
+
marks.set(x.id, m);
|
|
209
|
+
}
|
|
210
|
+
const units = [...new Set([...marks.values()].flatMap((m) => [...m.byUnit.keys()]))].sort(
|
|
211
|
+
(a, b) => (ix.unitRank.get(a) ?? 0) - (ix.unitRank.get(b) ?? 0),
|
|
212
|
+
);
|
|
213
|
+
|
|
214
|
+
// Each box's own loop: its last pass, and the passes each unit ran of it (its
|
|
215
|
+
// distinct passes, those of the loops around it included).
|
|
216
|
+
const boxLast = new Map<string, number>();
|
|
217
|
+
const boxRan = new Map<string, Map<string, Set<string>>>();
|
|
218
|
+
for (const x of drafts.values()) {
|
|
219
|
+
const chain = boxChain(x.loops);
|
|
220
|
+
for (const t of x.tasks) {
|
|
221
|
+
const ps = passesAt(t, d);
|
|
222
|
+
chain.forEach((box, i) => {
|
|
223
|
+
boxLast.set(box, Math.max(boxLast.get(box) ?? 1, ps[i] ?? 1));
|
|
224
|
+
const per = boxRan.get(box) ?? boxRan.set(box, new Map()).get(box);
|
|
225
|
+
const u = t.n.unit || '';
|
|
226
|
+
(per?.get(u) ?? per?.set(u, new Set()).get(u))?.add(ps.slice(0, i + 1).join('.'));
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Edges, projected onto the layer's nodes; from outside it, stubs. An edge whose
|
|
232
|
+
// every task joins a later pass of a loop around both ends goes back to the next pass.
|
|
233
|
+
const inOrder = new Set<string>();
|
|
234
|
+
const pairs = new Map<string, { from: string; to: string; type: 'after' | 'created'; tasks: Set<string>; samePass: boolean }>();
|
|
235
|
+
const stubs = new Map<string, { id: string; label: string; to: string; type: 'after' | 'created'; tasks: Set<string> }>();
|
|
236
|
+
const outside = (o: FlowTask): { id: string; label: string } => {
|
|
237
|
+
let c = 0;
|
|
238
|
+
while (c < d && o.path[c] === path[c]) c++;
|
|
239
|
+
const p = placeOf(o, c);
|
|
240
|
+
return { id: `stub:${c}:${p.id}`, label: p.type === 'kind' ? (ix.labels.get(p.name) ?? p.name) : shortName(p.name) };
|
|
241
|
+
};
|
|
242
|
+
for (const t of inside) {
|
|
243
|
+
const to = nodeOfKey.get(t.n.key) as string;
|
|
244
|
+
const link = (dep: string, type: 'after' | 'created') => {
|
|
245
|
+
const from = nodeOfKey.get(dep);
|
|
246
|
+
if (from === to) {
|
|
247
|
+
if (type === 'after') inOrder.add(to);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (from !== undefined) {
|
|
251
|
+
const o = ix.byKey.get(dep) as FlowTask;
|
|
252
|
+
const a = loopsAt(o, d);
|
|
253
|
+
const b = loopsAt(t, d);
|
|
254
|
+
let k = 0;
|
|
255
|
+
while (k < a.length && a[k] === b[k]) k++;
|
|
256
|
+
const same = cmpPasses(passesAt(o, d).slice(0, k), passesAt(t, d).slice(0, k)) === 0;
|
|
257
|
+
const key = `${from}\u0000${to}\u0000${type}`;
|
|
258
|
+
const e = pairs.get(key) ?? pairs.set(key, { from, to, type, tasks: new Set(), samePass: false }).get(key);
|
|
259
|
+
e?.tasks.add(t.n.key);
|
|
260
|
+
if (e && same) e.samePass = true;
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const o = ix.byKey.get(dep);
|
|
264
|
+
if (!o) return; // not in the plan yet
|
|
265
|
+
const s = outside(o);
|
|
266
|
+
const k = `${s.id}\u0000${to}\u0000${type}`;
|
|
267
|
+
(stubs.get(k) ?? stubs.set(k, { ...s, to, type, tasks: new Set() }).get(k))?.tasks.add(t.n.key);
|
|
268
|
+
};
|
|
269
|
+
for (const dep of t.n.after ?? []) link(dep, 'after');
|
|
270
|
+
for (const dep of t.from) link(dep, 'created');
|
|
271
|
+
}
|
|
272
|
+
// A created_from edge is drawn only where no after edge joins the same two.
|
|
273
|
+
const all = [...pairs.values()].filter((e) => e.type === 'after' || !pairs.has(`${e.from}\u0000${e.to}\u0000after`));
|
|
274
|
+
const stubList = [...stubs.values()].filter((s) => s.type === 'after' || !stubs.has(`${s.id}\u0000${s.to}\u0000after`));
|
|
275
|
+
|
|
276
|
+
const boxes: LoopBox[] = [...boxParent.keys()].map((id) => {
|
|
277
|
+
const spread = new Map<number, number>();
|
|
278
|
+
for (const [u, ran] of boxRan.get(id) ?? []) if (u) spread.set(ran.size, (spread.get(ran.size) ?? 0) + 1);
|
|
279
|
+
return {
|
|
280
|
+
id,
|
|
281
|
+
local: id,
|
|
282
|
+
layer: [...path],
|
|
283
|
+
loop: Number(id.slice(LOOP_SEGMENT.length).split('.').pop()),
|
|
284
|
+
file: inside[0]?.frames[d - 1]?.file ?? '',
|
|
285
|
+
parent: boxParent.get(id) ?? null,
|
|
286
|
+
passes: boxLast.get(id) ?? 1,
|
|
287
|
+
spread: [...spread].sort((a, b) => a[0] - b[0]),
|
|
288
|
+
layers: [],
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
const nodeOf = (x: Draft): GraphNode => {
|
|
293
|
+
const m = marks.get(x.id) as Marks;
|
|
294
|
+
const hasUnits = m.byUnit.size > 0;
|
|
295
|
+
return {
|
|
296
|
+
id: x.id,
|
|
297
|
+
type: x.type,
|
|
298
|
+
name: x.name,
|
|
299
|
+
label: x.type === 'kind' ? (ix.labels.get(x.name) ?? x.name) : shortName(x.name),
|
|
300
|
+
layer: [...path],
|
|
301
|
+
kinds: [...new Set(x.tasks.map((t) => t.n.kind))],
|
|
302
|
+
executor: x.type === 'flow' ? null : executorOf(x.tasks.map((t) => t.n)),
|
|
303
|
+
box: boxOf.get(x.id) ?? null,
|
|
304
|
+
units: hasUnits ? units.map((u) => m.byUnit.get(u) ?? null) : [],
|
|
305
|
+
single: m.single,
|
|
306
|
+
inOrder: inOrder.has(x.id),
|
|
307
|
+
counts: taskCounts(shownOf.get(x.id) ?? []),
|
|
308
|
+
calls: m.calls ?? 0,
|
|
309
|
+
errors: m.errors ?? 0,
|
|
310
|
+
timeBox: m.timeBox ?? null,
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
return {
|
|
314
|
+
model: {
|
|
315
|
+
path: [...path],
|
|
316
|
+
nodes: [...drafts.values()].map(nodeOf),
|
|
317
|
+
boxes,
|
|
318
|
+
fns: [],
|
|
319
|
+
edges: all.map((e) => ({ from: e.from, to: e.to, tasks: e.tasks.size, type: e.type, samePass: e.samePass, back: false })),
|
|
320
|
+
stubs: stubList.map((s) => ({ id: s.id, label: s.label, to: s.to, tasks: s.tasks.size, type: s.type })),
|
|
321
|
+
units,
|
|
322
|
+
},
|
|
323
|
+
drafts,
|
|
324
|
+
ix,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/** How an edge of the layer is drawn: an `after` edge solid, a `created` one dashed. */
|
|
329
|
+
export const edgeStyle = (type: 'after' | 'created'): EdgeStyle => (type === 'after' ? 'solid' : 'dashed');
|
|
330
|
+
|
|
331
|
+
/** What `arrange` reads of a layer: its nodes in their loop boxes, the boxes (each a loop: it cycles), and the links. */
|
|
332
|
+
export function shapeOf(m: LayerModel): GraphShape {
|
|
333
|
+
return {
|
|
334
|
+
nodes: m.nodes.map((n) => ({ id: n.id, cluster: n.box })),
|
|
335
|
+
clusters: [
|
|
336
|
+
...m.boxes.map((b) => ({ id: b.id, parent: b.parent, cycle: true })),
|
|
337
|
+
...m.fns.map((f) => ({ id: f.id, parent: f.parent, cycle: false })),
|
|
338
|
+
],
|
|
339
|
+
edges: m.edges.map((e) => ({ from: e.from, to: e.to, style: edgeStyle(e.type), ranks: e.samePass })),
|
|
340
|
+
stubs: m.stubs.map((s) => ({ id: s.id, to: s.to, style: edgeStyle(s.type) })),
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/** The layer arranged: its nodes in drawing order, each loop box with its layers, the edges that go back marked. */
|
|
345
|
+
export function arranged(m: LayerModel, a: Arrangement): LayerGraph {
|
|
346
|
+
const nodes = new Map(m.nodes.map((n) => [n.id, n]));
|
|
347
|
+
const layersOf = new Map(a.clusters.map((c) => [c.id, c.layers]));
|
|
348
|
+
return {
|
|
349
|
+
...a,
|
|
350
|
+
path: m.path,
|
|
351
|
+
nodes: a.drawn.map((id) => nodes.get(id) as GraphNode),
|
|
352
|
+
boxes: m.boxes.map((b) => ({ ...b, layers: layersOf.get(b.id) ?? [] })),
|
|
353
|
+
fns: m.fns,
|
|
354
|
+
edges: m.edges.map((e, i) => ({ ...e, back: a.back[i] ?? false })),
|
|
355
|
+
stubs: m.stubs,
|
|
356
|
+
units: m.units,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// What a selection id names in a layer's graph or in a loop's passes.
|
|
2
|
+
import type { PassMatrix } from './matrix.js';
|
|
3
|
+
import type { LayerMark, GraphNode, LayerGraph, LoopBox, NodeCounts } from './types.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A mark's selection id: its node, the passes of its column in a loop's passes
|
|
7
|
+
* (`|1.2`), and its unit, or its key for a mark without one (`kind:review@7#gamma`).
|
|
8
|
+
*/
|
|
9
|
+
export const markSel = (node: string, m: Pick<LayerMark, 'unit' | 'key'>, passes: readonly number[] = []): string =>
|
|
10
|
+
`${node}${passes.length ? `|${passes.join('.')}` : ''}#${m.unit || m.key}`;
|
|
11
|
+
|
|
12
|
+
/** What a selection id names: a mark (with its node, and its column's passes in a loop's passes), a node or a loop box. */
|
|
13
|
+
export type Selected =
|
|
14
|
+
| { type: 'mark'; id: string; node: GraphNode; mark: LayerMark; passes: number[] }
|
|
15
|
+
| { type: 'node'; id: string; node: GraphNode }
|
|
16
|
+
| { type: 'box'; id: string; box: LoopBox };
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* What `sel` names in a layer's graph, or, with `matrix`, in a loop's passes (a mark
|
|
20
|
+
* there names its column's passes); null when it names nothing there.
|
|
21
|
+
*/
|
|
22
|
+
export function parseSelection(g: LayerGraph, matrix: PassMatrix | null, sel: string): Selected | null {
|
|
23
|
+
if (!sel) return null;
|
|
24
|
+
const hash = sel.indexOf('#');
|
|
25
|
+
if (hash < 0) {
|
|
26
|
+
const node = g.nodes.find((n) => n.id === sel);
|
|
27
|
+
if (node) return { type: 'node', id: sel, node };
|
|
28
|
+
const box = g.boxes.find((b) => b.id === sel);
|
|
29
|
+
if (box) return { type: 'box', id: sel, box };
|
|
30
|
+
// A function drawn open, or a part of its path: its node, as it is drawn closed.
|
|
31
|
+
const part = g.fns.flatMap((f) => f.parts).find((p) => p.id === sel);
|
|
32
|
+
return part ? { type: 'node', id: sel, node: part.node } : null;
|
|
33
|
+
}
|
|
34
|
+
const [nodeId = '', pass] = sel.slice(0, hash).split('|');
|
|
35
|
+
const who = sel.slice(hash + 1);
|
|
36
|
+
const is = (m: LayerMark | null | undefined): m is LayerMark => !!m && (m.unit ? m.unit === who : m.key === who);
|
|
37
|
+
if (pass !== undefined) {
|
|
38
|
+
if (!matrix) return null;
|
|
39
|
+
const ci = matrix.columns.findIndex((c) => c.node.id === nodeId && c.passes.join('.') === pass);
|
|
40
|
+
const col = matrix.columns[ci];
|
|
41
|
+
const mark = matrix.rows.map((r) => r.cells[ci]).find(is);
|
|
42
|
+
return col && mark ? { type: 'mark', id: sel, node: col.node, mark, passes: col.passes } : null;
|
|
43
|
+
}
|
|
44
|
+
const node = g.nodes.find((n) => n.id === nodeId);
|
|
45
|
+
const mark = node ? [...node.units, ...node.single].find(is) : undefined;
|
|
46
|
+
return node && mark ? { type: 'mark', id: sel, node, mark, passes: [] } : null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** The tasks of a layer's nodes by state, added up. */
|
|
50
|
+
export function layerCounts(nodes: readonly Pick<GraphNode, 'counts'>[]): NodeCounts {
|
|
51
|
+
const c: NodeCounts = { total: 0, done: 0, partial: 0, failed: 0, running: 0, pending: 0, skipped: 0, blocked: 0 };
|
|
52
|
+
for (const n of nodes) for (const k of Object.keys(c) as (keyof NodeCounts)[]) c[k] += n.counts[k];
|
|
53
|
+
return c;
|
|
54
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// A task's states by severity: the one a mark of several tasks shows.
|
|
2
|
+
import type { PlanNode, TaskState } from '@contraagent/api';
|
|
3
|
+
|
|
4
|
+
export const SEVERITY: Record<TaskState, number> = { failed: 6, running: 5, blocked: 4, partial: 3, pending: 2, skipped: 1, done: 0 };
|
|
5
|
+
|
|
6
|
+
/** The state a mark of several tasks shows: the most severe of them. */
|
|
7
|
+
export const worstState = (nodes: readonly PlanNode[]): TaskState =>
|
|
8
|
+
nodes.reduce<TaskState>((a, n) => (SEVERITY[n.state] > SEVERITY[a] ? n.state : a), 'done');
|
|
9
|
+
|
|
10
|
+
export const worstOf = (states: readonly TaskState[]): TaskState => states.reduce<TaskState>((a, s) => (SEVERITY[s] > SEVERITY[a] ? s : a), 'done');
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// The pipeline graph's model: one layer of the run's flow, as `project` reads it
|
|
2
|
+
// from the plan and `layerGraph` gives it arranged (`arrange` of @contraagent/elements).
|
|
3
|
+
import type { PlanGroup, TaskState, TimeBoxRecord } from '@contraagent/api';
|
|
4
|
+
import type { Arrangement } from '@contraagent/elements/graph';
|
|
5
|
+
|
|
6
|
+
/** A layer segment that enters a loop box: `loop:<line>`, `loop:<outer>.<inner>` for a nested one. */
|
|
7
|
+
export const LOOP_SEGMENT = 'loop:';
|
|
8
|
+
|
|
9
|
+
/** One mark of a node: a unit's tasks (a kind node), or a unit's flow calls (a function node). */
|
|
10
|
+
export interface LayerMark {
|
|
11
|
+
/** The task it opens (the running one, else the last), or the flow call it stands for. */
|
|
12
|
+
key: string;
|
|
13
|
+
unit: string;
|
|
14
|
+
state: TaskState;
|
|
15
|
+
/** The tasks it stands for. */
|
|
16
|
+
count: number;
|
|
17
|
+
keys: string[];
|
|
18
|
+
/** A function node's mark: the function (`module.qualname`) it enters. */
|
|
19
|
+
flow?: string;
|
|
20
|
+
/** In a loop box: the passes its unit's tasks (or flow calls) of this node ran in, when more than 1. */
|
|
21
|
+
passes?: number;
|
|
22
|
+
/** A function node's mark: its tasks by state (those of the flow calls it started included). */
|
|
23
|
+
counts?: NodeCounts;
|
|
24
|
+
/** A function node's mark whose flow call raised or was closed: what it raised (`<type>: <message>`), '' when not recorded. */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** A function node's mark whose flow call has a deadline of its own (`time_box`): when it falls (UTC ISO 8601). */
|
|
27
|
+
deadlineAt?: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type NodeCounts = Required<Pick<PlanGroup, 'total' | 'done' | 'partial' | 'failed' | 'running' | 'pending' | 'skipped' | 'blocked'>>;
|
|
31
|
+
|
|
32
|
+
export interface GraphNode {
|
|
33
|
+
id: string;
|
|
34
|
+
/** `kind`: tasks created in the layer's own function; `flow`: tasks created in a function it called. */
|
|
35
|
+
type: 'kind' | 'flow';
|
|
36
|
+
/** The plan group's id, or the function's `module.qualname`. */
|
|
37
|
+
name: string;
|
|
38
|
+
label: string;
|
|
39
|
+
/** The layer it is in (function names, outermost first): the layer shown, or a function's drawn open inside it. */
|
|
40
|
+
layer: string[];
|
|
41
|
+
/** The kinds of its tasks. */
|
|
42
|
+
kinds: string[];
|
|
43
|
+
/** A kind node: who runs its tasks (`mixed` when its kinds differ); null for a function node. */
|
|
44
|
+
executor: 'agent' | 'python' | 'mixed' | null;
|
|
45
|
+
/** The loop box it is drawn in (its innermost), or null. */
|
|
46
|
+
box: string | null;
|
|
47
|
+
/** One slot per unit of the layer, in the layer's unit order: null where the unit has no mark here. Empty for a node without units. */
|
|
48
|
+
units: (LayerMark | null)[];
|
|
49
|
+
/** Its marks without a unit. */
|
|
50
|
+
single: LayerMark[];
|
|
51
|
+
/** Its tasks also wait for each other. */
|
|
52
|
+
inOrder: boolean;
|
|
53
|
+
/** Its tasks by state (in a function node, those of the flow calls they started included); in a loop box, each unit's latest pass. */
|
|
54
|
+
counts: NodeCounts;
|
|
55
|
+
/** A function node: its flow calls (in a loop box, each unit's latest pass); 0 for a kind node. */
|
|
56
|
+
calls: number;
|
|
57
|
+
/** A function node: those of its flow calls that raised or were closed. */
|
|
58
|
+
errors: number;
|
|
59
|
+
/** A function node whose flow calls have a deadline of their own (`time_box`): the first one's; null otherwise. */
|
|
60
|
+
timeBox: TimeBoxRecord | null;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** The nodes created by one loop of the layer's function; a nested loop is a box inside it. */
|
|
64
|
+
export interface LoopBox {
|
|
65
|
+
/** Its id in the graph: `local`, or, in a function drawn open, prefixed with that function's place. */
|
|
66
|
+
id: string;
|
|
67
|
+
/** `loop:<line>`, `loop:<outer>.<inner>` for a nested loop: its segment in its layer. */
|
|
68
|
+
local: string;
|
|
69
|
+
/** The layer it is in (function names, outermost first). */
|
|
70
|
+
layer: string[];
|
|
71
|
+
/** The loop's first line. */
|
|
72
|
+
loop: number;
|
|
73
|
+
/** The file the loop is in (the layer's function's file, as recorded); '' when not known. */
|
|
74
|
+
file: string;
|
|
75
|
+
/** The loop box this one is nested in, or null when it is at the layer's top level. */
|
|
76
|
+
parent: string | null;
|
|
77
|
+
/** Its last pass: the most passes of this loop (never a nested loop's) in one run of it. */
|
|
78
|
+
passes: number;
|
|
79
|
+
/** How many units ran each number of passes of it, fewest first: `[[1, 4], [2, 1]]`. */
|
|
80
|
+
spread: [passes: number, units: number][];
|
|
81
|
+
/** Its items (node ids and nested loop box ids) by layer, each layer in drawing order. */
|
|
82
|
+
layers: string[][];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A function drawn open: a cluster holding its layer's nodes, edges and loop boxes
|
|
87
|
+
* (`compound.ts`). A chain of functions, each the only function in the layer of the one
|
|
88
|
+
* before, is one of these, named by its path.
|
|
89
|
+
*/
|
|
90
|
+
export interface FlowBox {
|
|
91
|
+
/** `fx::<place>` of its first part. */
|
|
92
|
+
id: string;
|
|
93
|
+
/** What it is drawn in: a loop box, another function drawn open, or null (the layer shown). */
|
|
94
|
+
parent: string | null;
|
|
95
|
+
/** The functions it holds open, outermost first: each with its place, and its node as it is drawn closed. */
|
|
96
|
+
parts: { id: string; key: string; node: GraphNode }[];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface GraphEdge {
|
|
100
|
+
from: string;
|
|
101
|
+
to: string;
|
|
102
|
+
/** Tasks of `to` joined to a task of `from`. */
|
|
103
|
+
tasks: number;
|
|
104
|
+
/** `after`: waits for its output; `created`: created after its result (and does not wait for its output). */
|
|
105
|
+
type: 'after' | 'created';
|
|
106
|
+
/** Some task of it joins a task in the same pass of every loop around both ends: it sets the layers (else it goes back to a loop's next pass). */
|
|
107
|
+
samePass: boolean;
|
|
108
|
+
/** It goes back to a loop's next pass (or otherwise closes a cycle): the loop box stands for it, it is not drawn. */
|
|
109
|
+
back: boolean;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** An edge from a task outside the layer, named by the node it is in at the nearest layer that holds both. */
|
|
113
|
+
export interface GraphStub {
|
|
114
|
+
id: string;
|
|
115
|
+
label: string;
|
|
116
|
+
to: string;
|
|
117
|
+
tasks: number;
|
|
118
|
+
type: 'after' | 'created';
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** A layer as the plan has it, before it is arranged: its nodes in the plan's order, its loop boxes without their layers. */
|
|
122
|
+
export interface LayerModel {
|
|
123
|
+
/** The layer: function names, outermost first. */
|
|
124
|
+
path: string[];
|
|
125
|
+
nodes: GraphNode[];
|
|
126
|
+
boxes: LoopBox[];
|
|
127
|
+
/** Its functions drawn open ([]: a layer drawn alone). */
|
|
128
|
+
fns: FlowBox[];
|
|
129
|
+
edges: GraphEdge[];
|
|
130
|
+
stubs: GraphStub[];
|
|
131
|
+
/** The units with a mark in this layer, in the order the run first scheduled them. */
|
|
132
|
+
units: string[];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** A layer of the run's flow, arranged: its nodes in drawing order, each loop box with its layers, each edge that goes back marked. */
|
|
136
|
+
export interface LayerGraph extends Arrangement {
|
|
137
|
+
/** The layer: function names, outermost first. */
|
|
138
|
+
path: string[];
|
|
139
|
+
/** Every node, in drawing order. */
|
|
140
|
+
nodes: GraphNode[];
|
|
141
|
+
boxes: LoopBox[];
|
|
142
|
+
/** Its functions drawn open ([]: a layer drawn alone). */
|
|
143
|
+
fns: FlowBox[];
|
|
144
|
+
edges: GraphEdge[];
|
|
145
|
+
stubs: GraphStub[];
|
|
146
|
+
/** The units with a mark in this layer, in the order the run first scheduled them. */
|
|
147
|
+
units: string[];
|
|
148
|
+
}
|