@contraagent/ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/custom-elements.json +3300 -3098
- package/dist/adapters/check-rows.d.ts +2 -0
- package/dist/adapters/check-rows.d.ts.map +1 -1
- package/dist/adapters/check-rows.js +2 -0
- package/dist/adapters/check-rows.js.map +1 -1
- package/dist/adapters/panel-body.d.ts +15 -1
- package/dist/adapters/panel-body.d.ts.map +1 -1
- package/dist/adapters/panel-body.js +27 -0
- package/dist/adapters/panel-body.js.map +1 -1
- package/dist/contraagent-ui.js +684 -641
- package/dist/elements/lists/ca-panel-body.d.ts +16 -3
- package/dist/elements/lists/ca-panel-body.d.ts.map +1 -1
- package/dist/elements/lists/ca-panel-body.js +74 -8
- package/dist/elements/lists/ca-panel-body.js.map +1 -1
- package/dist/elements/overview/ca-overview.d.ts +2 -1
- package/dist/elements/overview/ca-overview.d.ts.map +1 -1
- package/dist/elements/overview/ca-overview.js +8 -1
- package/dist/elements/overview/ca-overview.js.map +1 -1
- package/dist/elements/overview/ca-services.d.ts +25 -0
- package/dist/elements/overview/ca-services.d.ts.map +1 -0
- package/dist/elements/overview/ca-services.js +77 -0
- package/dist/elements/overview/ca-services.js.map +1 -0
- package/dist/elements/overview/index.d.ts +1 -0
- package/dist/elements/overview/index.d.ts.map +1 -1
- package/dist/elements/overview/index.js +1 -0
- package/dist/elements/overview/index.js.map +1 -1
- package/dist/elements/shared/contract-parts.d.ts.map +1 -1
- package/dist/elements/shared/contract-parts.js +18 -2
- package/dist/elements/shared/contract-parts.js.map +1 -1
- package/dist/elements/shell/ca-monitor.d.ts +4 -2
- package/dist/elements/shell/ca-monitor.d.ts.map +1 -1
- package/dist/elements/shell/ca-monitor.js +4 -2
- package/dist/elements/shell/ca-monitor.js.map +1 -1
- package/dist/elements/task/header.d.ts.map +1 -1
- package/dist/elements/task/header.js +7 -3
- package/dist/elements/task/header.js.map +1 -1
- package/dist/locales/ja.d.ts +24 -0
- package/dist/locales/ja.d.ts.map +1 -1
- package/dist/locales/ja.js +24 -0
- package/dist/locales/ja.js.map +1 -1
- package/dist/words/changes.d.ts +2 -2
- package/dist/words/changes.d.ts.map +1 -1
- package/dist/words/changes.js +2 -0
- package/dist/words/changes.js.map +1 -1
- package/dist/words/index.d.ts +1 -0
- package/dist/words/index.d.ts.map +1 -1
- package/dist/words/index.js +1 -0
- package/dist/words/index.js.map +1 -1
- package/dist/words/panels.d.ts +6 -0
- package/dist/words/panels.d.ts.map +1 -1
- package/dist/words/panels.js +13 -0
- package/dist/words/panels.js.map +1 -1
- package/dist/words/services.d.ts +16 -0
- package/dist/words/services.d.ts.map +1 -0
- package/dist/words/services.js +45 -0
- package/dist/words/services.js.map +1 -0
- package/docs/embed.md +4 -1
- package/package.json +3 -3
- package/src/adapters/check-rows.ts +3 -0
- package/src/adapters/panel-body.ts +40 -2
- package/src/elements/lists/ca-panel-body.ts +70 -9
- package/src/elements/overview/ca-overview.ts +8 -1
- package/src/elements/overview/ca-services.ts +66 -0
- package/src/elements/overview/index.ts +1 -0
- package/src/elements/shared/contract-parts.ts +18 -2
- package/src/elements/shell/ca-monitor.ts +4 -2
- package/src/elements/task/header.ts +7 -3
- package/src/locales/ja.ts +24 -0
- package/src/words/changes.ts +4 -2
- package/src/words/index.ts +1 -0
- package/src/words/panels.ts +18 -0
- package/src/words/services.ts +57 -0
- package/dist/core/clock.d.ts +0 -20
- package/dist/core/clock.d.ts.map +0 -1
- package/dist/core/clock.js +0 -45
- package/dist/core/clock.js.map +0 -1
- package/dist/core/route.d.ts +0 -62
- package/dist/core/route.d.ts.map +0 -1
- package/dist/core/route.js +0 -143
- package/dist/core/route.js.map +0 -1
- package/dist/core/router.d.ts +0 -27
- package/dist/core/router.d.ts.map +0 -1
- package/dist/core/router.js +0 -57
- package/dist/core/router.js.map +0 -1
- package/dist/elements/lists/filters.d.ts +0 -28
- package/dist/elements/lists/filters.d.ts.map +0 -1
- package/dist/elements/lists/filters.js +0 -71
- package/dist/elements/lists/filters.js.map +0 -1
- package/dist/elements/overview/ca-pipeline-progress.d.ts +0 -17
- package/dist/elements/overview/ca-pipeline-progress.d.ts.map +0 -1
- package/dist/elements/overview/ca-pipeline-progress.js +0 -119
- package/dist/elements/overview/ca-pipeline-progress.js.map +0 -1
- package/dist/elements/overview/ca-plan-matrix.d.ts +0 -27
- package/dist/elements/overview/ca-plan-matrix.d.ts.map +0 -1
- package/dist/elements/overview/ca-plan-matrix.js +0 -113
- package/dist/elements/overview/ca-plan-matrix.js.map +0 -1
- package/dist/elements/overview/flow-types.d.ts +0 -2
- package/dist/elements/overview/flow-types.d.ts.map +0 -1
- package/dist/elements/overview/flow-types.js +0 -2
- package/dist/elements/overview/flow-types.js.map +0 -1
- package/dist/elements/overview/graph/arrange.d.ts +0 -16
- package/dist/elements/overview/graph/arrange.d.ts.map +0 -1
- package/dist/elements/overview/graph/arrange.js +0 -152
- package/dist/elements/overview/graph/arrange.js.map +0 -1
- package/dist/elements/overview/graph/card.d.ts +0 -64
- package/dist/elements/overview/graph/card.d.ts.map +0 -1
- package/dist/elements/overview/graph/card.js +0 -160
- package/dist/elements/overview/graph/card.js.map +0 -1
- package/dist/elements/overview/graph/flow-index.d.ts +0 -52
- package/dist/elements/overview/graph/flow-index.d.ts.map +0 -1
- package/dist/elements/overview/graph/flow-index.js +0 -121
- package/dist/elements/overview/graph/flow-index.js.map +0 -1
- package/dist/elements/overview/graph/highlight.d.ts +0 -14
- package/dist/elements/overview/graph/highlight.d.ts.map +0 -1
- package/dist/elements/overview/graph/highlight.js +0 -33
- package/dist/elements/overview/graph/highlight.js.map +0 -1
- package/dist/elements/overview/graph/layer.d.ts +0 -32
- package/dist/elements/overview/graph/layer.d.ts.map +0 -1
- package/dist/elements/overview/graph/layer.js +0 -92
- package/dist/elements/overview/graph/layer.js.map +0 -1
- package/dist/elements/overview/graph/layout.d.ts +0 -80
- package/dist/elements/overview/graph/layout.d.ts.map +0 -1
- package/dist/elements/overview/graph/layout.js +0 -261
- package/dist/elements/overview/graph/layout.js.map +0 -1
- package/dist/elements/overview/graph/marks.d.ts +0 -18
- package/dist/elements/overview/graph/marks.d.ts.map +0 -1
- package/dist/elements/overview/graph/marks.js +0 -17
- package/dist/elements/overview/graph/marks.js.map +0 -1
- package/dist/elements/overview/graph/matrix.d.ts +0 -58
- package/dist/elements/overview/graph/matrix.d.ts.map +0 -1
- package/dist/elements/overview/graph/matrix.js +0 -93
- package/dist/elements/overview/graph/matrix.js.map +0 -1
- package/dist/elements/overview/graph/nav.d.ts +0 -15
- package/dist/elements/overview/graph/nav.d.ts.map +0 -1
- package/dist/elements/overview/graph/nav.js +0 -80
- package/dist/elements/overview/graph/nav.js.map +0 -1
- package/dist/elements/overview/graph/pan-zoom.d.ts +0 -83
- package/dist/elements/overview/graph/pan-zoom.d.ts.map +0 -1
- package/dist/elements/overview/graph/pan-zoom.js +0 -189
- package/dist/elements/overview/graph/pan-zoom.js.map +0 -1
- package/dist/elements/overview/graph/paths.d.ts +0 -9
- package/dist/elements/overview/graph/paths.d.ts.map +0 -1
- package/dist/elements/overview/graph/paths.js +0 -44
- package/dist/elements/overview/graph/paths.js.map +0 -1
- package/dist/elements/overview/graph/place-card.d.ts +0 -36
- package/dist/elements/overview/graph/place-card.d.ts.map +0 -1
- package/dist/elements/overview/graph/place-card.js +0 -68
- package/dist/elements/overview/graph/place-card.js.map +0 -1
- package/dist/elements/overview/graph/project.d.ts +0 -31
- package/dist/elements/overview/graph/project.d.ts.map +0 -1
- package/dist/elements/overview/graph/project.js +0 -455
- package/dist/elements/overview/graph/project.js.map +0 -1
- package/dist/elements/overview/graph/selection.d.ts +0 -31
- package/dist/elements/overview/graph/selection.d.ts.map +0 -1
- package/dist/elements/overview/graph/selection.js +0 -44
- package/dist/elements/overview/graph/selection.js.map +0 -1
- package/dist/elements/overview/graph/states.d.ts +0 -6
- package/dist/elements/overview/graph/states.d.ts.map +0 -1
- package/dist/elements/overview/graph/states.js +0 -5
- package/dist/elements/overview/graph/states.js.map +0 -1
- package/dist/elements/overview/graph/types.d.ts +0 -124
- package/dist/elements/overview/graph/types.d.ts.map +0 -1
- package/dist/elements/overview/graph/types.js +0 -3
- package/dist/elements/overview/graph/types.js.map +0 -1
- package/dist/elements/overview/graph/view.d.ts +0 -16
- package/dist/elements/overview/graph/view.d.ts.map +0 -1
- package/dist/elements/overview/graph/view.js +0 -20
- package/dist/elements/overview/graph/view.js.map +0 -1
- package/dist/elements/overview/kpis-model.d.ts +0 -31
- package/dist/elements/overview/kpis-model.d.ts.map +0 -1
- package/dist/elements/overview/kpis-model.js +0 -30
- package/dist/elements/overview/kpis-model.js.map +0 -1
- package/dist/elements/overview/logic.d.ts +0 -442
- package/dist/elements/overview/logic.d.ts.map +0 -1
- package/dist/elements/overview/logic.js +0 -1431
- package/dist/elements/overview/logic.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/dag.d.ts +0 -4
- package/dist/elements/overview/pipeline-graph/dag.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/dag.js +0 -259
- package/dist/elements/overview/pipeline-graph/dag.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/icons.d.ts +0 -5
- package/dist/elements/overview/pipeline-graph/icons.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/icons.js +0 -13
- package/dist/elements/overview/pipeline-graph/icons.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/legend.d.ts +0 -9
- package/dist/elements/overview/pipeline-graph/legend.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/legend.js +0 -59
- package/dist/elements/overview/pipeline-graph/legend.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/matrix.d.ts +0 -4
- package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/matrix.js +0 -193
- package/dist/elements/overview/pipeline-graph/matrix.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/table.d.ts +0 -11
- package/dist/elements/overview/pipeline-graph/table.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/table.js +0 -74
- package/dist/elements/overview/pipeline-graph/table.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/tools.d.ts +0 -5
- package/dist/elements/overview/pipeline-graph/tools.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/tools.js +0 -48
- package/dist/elements/overview/pipeline-graph/tools.js.map +0 -1
- package/dist/elements/overview/pipeline-graph/words.d.ts +0 -45
- package/dist/elements/overview/pipeline-graph/words.d.ts.map +0 -1
- package/dist/elements/overview/pipeline-graph/words.js +0 -108
- package/dist/elements/overview/pipeline-graph/words.js.map +0 -1
- package/dist/elements/overview/place-card.d.ts +0 -36
- package/dist/elements/overview/place-card.d.ts.map +0 -1
- package/dist/elements/overview/place-card.js +0 -68
- package/dist/elements/overview/place-card.js.map +0 -1
- package/dist/elements/overview/timeline-model.d.ts +0 -44
- package/dist/elements/overview/timeline-model.d.ts.map +0 -1
- package/dist/elements/overview/timeline-model.js +0 -53
- package/dist/elements/overview/timeline-model.js.map +0 -1
- package/dist/elements/shared/ca-count.d.ts +0 -17
- package/dist/elements/shared/ca-count.d.ts.map +0 -1
- package/dist/elements/shared/ca-count.js +0 -59
- package/dist/elements/shared/ca-count.js.map +0 -1
- package/dist/elements/shared/ca-elapsed.d.ts +0 -14
- package/dist/elements/shared/ca-elapsed.d.ts.map +0 -1
- package/dist/elements/shared/ca-elapsed.js +0 -33
- package/dist/elements/shared/ca-elapsed.js.map +0 -1
- package/dist/elements/shared/ca-json-tree.d.ts +0 -16
- package/dist/elements/shared/ca-json-tree.d.ts.map +0 -1
- package/dist/elements/shared/ca-json-tree.js +0 -52
- package/dist/elements/shared/ca-json-tree.js.map +0 -1
- package/dist/elements/shared/ca-markdown.d.ts +0 -19
- package/dist/elements/shared/ca-markdown.d.ts.map +0 -1
- package/dist/elements/shared/ca-markdown.js +0 -59
- package/dist/elements/shared/ca-markdown.js.map +0 -1
- package/dist/elements/shared/fact-line.d.ts +0 -4
- package/dist/elements/shared/fact-line.d.ts.map +0 -1
- package/dist/elements/shared/fact-line.js +0 -8
- package/dist/elements/shared/fact-line.js.map +0 -1
- package/dist/elements/task/rounds.d.ts +0 -14
- package/dist/elements/task/rounds.d.ts.map +0 -1
- package/dist/elements/task/rounds.js +0 -59
- package/dist/elements/task/rounds.js.map +0 -1
- package/dist/elements/task/transcript-model.d.ts +0 -106
- package/dist/elements/task/transcript-model.d.ts.map +0 -1
- package/dist/elements/task/transcript-model.js +0 -280
- package/dist/elements/task/transcript-model.js.map +0 -1
- package/dist/elements/task/who.d.ts +0 -5
- package/dist/elements/task/who.d.ts.map +0 -1
- package/dist/elements/task/who.js +0 -30
- package/dist/elements/task/who.js.map +0 -1
- package/dist/events.d.ts +0 -107
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js +0 -5
- package/dist/events.js.map +0 -1
- package/dist/i18n.d.ts +0 -16
- package/dist/i18n.d.ts.map +0 -1
- package/dist/i18n.js +0 -48
- package/dist/i18n.js.map +0 -1
- package/dist/lib/clock.d.ts +0 -20
- package/dist/lib/clock.d.ts.map +0 -1
- package/dist/lib/clock.js +0 -45
- package/dist/lib/clock.js.map +0 -1
- package/dist/lib/format.d.ts +0 -35
- package/dist/lib/format.d.ts.map +0 -1
- package/dist/lib/format.js +0 -117
- package/dist/lib/format.js.map +0 -1
- package/dist/lib/highlight.d.ts +0 -5
- package/dist/lib/highlight.d.ts.map +0 -1
- package/dist/lib/highlight.js +0 -86
- package/dist/lib/highlight.js.map +0 -1
- package/dist/lib/labels.d.ts +0 -103
- package/dist/lib/labels.d.ts.map +0 -1
- package/dist/lib/labels.js +0 -249
- package/dist/lib/labels.js.map +0 -1
- package/dist/lib/markdown.d.ts +0 -13
- package/dist/lib/markdown.d.ts.map +0 -1
- package/dist/lib/markdown.js +0 -118
- package/dist/lib/markdown.js.map +0 -1
- package/dist/lib/memory.d.ts +0 -27
- package/dist/lib/memory.d.ts.map +0 -1
- package/dist/lib/memory.js +0 -117
- package/dist/lib/memory.js.map +0 -1
- package/dist/lib/quota-format.d.ts +0 -28
- package/dist/lib/quota-format.d.ts.map +0 -1
- package/dist/lib/quota-format.js +0 -67
- package/dist/lib/quota-format.js.map +0 -1
- package/dist/lib/scroll.d.ts +0 -16
- package/dist/lib/scroll.d.ts.map +0 -1
- package/dist/lib/scroll.js +0 -70
- package/dist/lib/scroll.js.map +0 -1
- package/dist/lib/status.d.ts +0 -25
- package/dist/lib/status.d.ts.map +0 -1
- package/dist/lib/status.js +0 -40
- package/dist/lib/status.js.map +0 -1
- package/dist/route.d.ts +0 -46
- package/dist/route.d.ts.map +0 -1
- package/dist/route.js +0 -102
- package/dist/route.js.map +0 -1
- package/dist/router.d.ts +0 -23
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js +0 -55
- package/dist/router.js.map +0 -1
- package/dist/styles/base.d.ts +0 -11
- package/dist/styles/base.d.ts.map +0 -1
- package/dist/styles/base.js +0 -241
- package/dist/styles/base.js.map +0 -1
- package/dist/styles/chips.d.ts +0 -2
- package/dist/styles/chips.d.ts.map +0 -1
- package/dist/styles/chips.js +0 -18
- package/dist/styles/chips.js.map +0 -1
- package/dist/styles/executor-icon.d.ts +0 -3
- package/dist/styles/executor-icon.d.ts.map +0 -1
- package/dist/styles/executor-icon.js +0 -9
- package/dist/styles/executor-icon.js.map +0 -1
- package/dist/styles/facts.d.ts +0 -2
- package/dist/styles/facts.d.ts.map +0 -1
- package/dist/styles/facts.js +0 -7
- package/dist/styles/facts.js.map +0 -1
- package/dist/styles/index.d.ts +0 -17
- package/dist/styles/index.d.ts.map +0 -1
- package/dist/styles/index.js +0 -16
- package/dist/styles/index.js.map +0 -1
- package/dist/styles/layout.d.ts +0 -2
- package/dist/styles/layout.d.ts.map +0 -1
- package/dist/styles/layout.js +0 -30
- package/dist/styles/layout.js.map +0 -1
- package/dist/styles/legend.d.ts +0 -2
- package/dist/styles/legend.d.ts.map +0 -1
- package/dist/styles/legend.js +0 -8
- package/dist/styles/legend.js.map +0 -1
- package/dist/styles/meter.d.ts +0 -3
- package/dist/styles/meter.d.ts.map +0 -1
- package/dist/styles/meter.js +0 -9
- package/dist/styles/meter.js.map +0 -1
- package/dist/styles/motion.d.ts +0 -2
- package/dist/styles/motion.d.ts.map +0 -1
- package/dist/styles/motion.js +0 -27
- package/dist/styles/motion.js.map +0 -1
- package/dist/styles/prose.d.ts +0 -3
- package/dist/styles/prose.d.ts.map +0 -1
- package/dist/styles/prose.js +0 -59
- package/dist/styles/prose.js.map +0 -1
- package/dist/styles/reset.d.ts +0 -2
- package/dist/styles/reset.d.ts.map +0 -1
- package/dist/styles/reset.js +0 -13
- package/dist/styles/reset.js.map +0 -1
- package/dist/styles/status.d.ts +0 -2
- package/dist/styles/status.d.ts.map +0 -1
- package/dist/styles/status.js +0 -52
- package/dist/styles/status.js.map +0 -1
- package/dist/styles/text.d.ts +0 -2
- package/dist/styles/text.d.ts.map +0 -1
- package/dist/styles/text.js +0 -21
- package/dist/styles/text.js.map +0 -1
- package/dist/styles/theme-sheet.d.ts +0 -12
- package/dist/styles/theme-sheet.d.ts.map +0 -1
- package/dist/styles/theme-sheet.js +0 -24
- package/dist/styles/theme-sheet.js.map +0 -1
- package/dist/styles/themes.d.ts +0 -75
- package/dist/styles/themes.d.ts.map +0 -1
- package/dist/styles/themes.js +0 -452
- package/dist/styles/themes.js.map +0 -1
- package/dist/styles/tokens.d.ts +0 -8
- package/dist/styles/tokens.d.ts.map +0 -1
- package/dist/styles/tokens.js +0 -32
- package/dist/styles/tokens.js.map +0 -1
- package/dist/themes/boot.d.ts +0 -7
- package/dist/themes/boot.d.ts.map +0 -1
- package/dist/themes/boot.js +0 -14
- package/dist/themes/boot.js.map +0 -1
- package/dist/themes/choice.d.ts +0 -16
- package/dist/themes/choice.d.ts.map +0 -1
- package/dist/themes/choice.js +0 -45
- package/dist/themes/choice.js.map +0 -1
- package/dist/themes/data.d.ts +0 -42
- package/dist/themes/data.d.ts.map +0 -1
- package/dist/themes/data.js +0 -356
- package/dist/themes/data.js.map +0 -1
- package/dist/themes/index.d.ts +0 -5
- package/dist/themes/index.d.ts.map +0 -1
- package/dist/themes/index.js +0 -8
- package/dist/themes/index.js.map +0 -1
- package/dist/themes/sheet.d.ts +0 -12
- package/dist/themes/sheet.d.ts.map +0 -1
- package/dist/themes/sheet.js +0 -24
- package/dist/themes/sheet.js.map +0 -1
- package/dist/themes/tokens-list.d.ts +0 -15
- package/dist/themes/tokens-list.d.ts.map +0 -1
- package/dist/themes/tokens-list.js +0 -62
- package/dist/themes/tokens-list.js.map +0 -1
- package/dist/words/units.d.ts +0 -9
- package/dist/words/units.d.ts.map +0 -1
- package/dist/words/units.js +0 -12
- package/dist/words/units.js.map +0 -1
|
@@ -1,455 +0,0 @@
|
|
|
1
|
-
// The pipeline graph, by layer: the plan projected onto one layer of its flow.
|
|
2
|
-
// --- the pipeline graph, by layer ---------------------------------------------------
|
|
3
|
-
//
|
|
4
|
-
// The run as a graph of what its flow's code did, one layer at a time. A layer is
|
|
5
|
-
// a prefix of the flow path (the names of the functions a task was created in,
|
|
6
|
-
// outermost first). At a layer, a task created in the layer's own function is
|
|
7
|
-
// shown in a kind node (its plan group); a task created deeper is shown in the
|
|
8
|
-
// node of the function the layer's function called on the way (a function node).
|
|
9
|
-
// The same rule applies at every depth. Nodes whose call sites sit in the same
|
|
10
|
-
// loop of the layer's function are drawn in one loop box, a nested loop's box
|
|
11
|
-
// inside it; each box counts its own loop's passes (`flow[].loops[].pass`). Edges
|
|
12
|
-
// are the tasks' `after` (data) and `created_from` (created after those results),
|
|
13
|
-
// projected onto the layer's nodes; an edge from a task outside the layer is an
|
|
14
|
-
// incoming stub. Inside each node, one mark per unit, in the same unit order
|
|
15
|
-
// everywhere in the layer.
|
|
16
|
-
//
|
|
17
|
-
// The drawing is a layered (Sugiyama) layout of the compound graph, by container
|
|
18
|
-
// (the layer's top level, then each loop box, a box being one item of its parent):
|
|
19
|
-
// layers by longest path, with the edges that go back to a loop's next pass left
|
|
20
|
-
// out; a point (`~...`) on every layer a long edge crosses, so no edge runs over a
|
|
21
|
-
// node; crossings reduced by barycentre sweeps; then coordinates from the measured
|
|
22
|
-
// sizes (`layoutGraph`), every edge routed through those points and bending only in
|
|
23
|
-
// the gaps between layers. The order depends on structure only, never on states,
|
|
24
|
-
// and keeps a previous order: nodes that appear later are appended to their layer.
|
|
25
|
-
import { isPython } from '@contraagent/api';
|
|
26
|
-
import { orderRows, push, rankLayers, isPoint } from './arrange.js';
|
|
27
|
-
import { boxChain, cmpPasses, indexOf, instanceOf, loopsAt, passesAt, placeOf, shortName, startsWith } from './flow-index.js';
|
|
28
|
-
import { worstOf, worstState } from './states.js';
|
|
29
|
-
import { LOOP_SEGMENT, } from './types.js';
|
|
30
|
-
/** Who runs a kind node's tasks: a coding agent, Python, or both (`mixed`). */
|
|
31
|
-
function executorOf(ns) {
|
|
32
|
-
const py = ns.filter(isPython).length;
|
|
33
|
-
return py === 0 ? 'agent' : py === ns.length ? 'python' : 'mixed';
|
|
34
|
-
}
|
|
35
|
-
const CALL_STATE = { running: 'running', returned: 'done', raised: 'failed', closed: 'failed' };
|
|
36
|
-
/** A flow call stopped with an error: it raised, or it was closed. */
|
|
37
|
-
const callFailed = (c) => c?.state === 'raised' || c?.state === 'closed';
|
|
38
|
-
export function taskMark(ts, unit) {
|
|
39
|
-
const ns = ts.map((t) => t.n);
|
|
40
|
-
const key = (ns.find((n) => n.state === 'running') ?? ns[ns.length - 1] ?? { key: '' }).key;
|
|
41
|
-
return { key, unit, state: worstState(ns), count: ns.length, keys: ns.map((n) => n.key) };
|
|
42
|
-
}
|
|
43
|
-
/** A kind node's marks: one per unit, and one per task without a unit. */
|
|
44
|
-
function kindMarks(ts) {
|
|
45
|
-
const byUnit = new Map();
|
|
46
|
-
const single = [];
|
|
47
|
-
for (const t of ts) {
|
|
48
|
-
if (t.n.unit)
|
|
49
|
-
push(byUnit, t.n.unit, t);
|
|
50
|
-
else
|
|
51
|
-
single.push(taskMark([t], ''));
|
|
52
|
-
}
|
|
53
|
-
return { byUnit: new Map([...byUnit].map(([u, xs]) => [u, taskMark(xs, u)])), single };
|
|
54
|
-
}
|
|
55
|
-
function instances(ts, d, calls) {
|
|
56
|
-
const by = new Map();
|
|
57
|
-
for (const t of ts) {
|
|
58
|
-
const { id, own } = instanceOf(t, d, calls);
|
|
59
|
-
const x = by.get(id) ?? by.set(id, { id, own, tasks: [], unit: '' }).get(id);
|
|
60
|
-
x?.tasks.push(t);
|
|
61
|
-
}
|
|
62
|
-
for (const x of by.values()) {
|
|
63
|
-
const us = new Set(x.tasks.map((t) => t.n.unit || ''));
|
|
64
|
-
x.unit = us.size === 1 ? [...us][0] : '';
|
|
65
|
-
}
|
|
66
|
-
return [...by.values()];
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* A function node's marks: its flow calls, one mark per unit when a call's tasks share one unit, else one per call.
|
|
70
|
-
* A call's state is the most severe of its own (raised or closed: failed) and its tasks' (those of the calls it
|
|
71
|
-
* started included), so a call that caught a task's failure and returned still shows it.
|
|
72
|
-
*/
|
|
73
|
-
export function flowMarks(ts, d, name, calls) {
|
|
74
|
-
const markOf = (xs, unit) => {
|
|
75
|
-
const own = xs.map((x) => (x.own ? calls?.get(x.id) : undefined));
|
|
76
|
-
const states = xs.map((x, i) => {
|
|
77
|
-
const c = own[i];
|
|
78
|
-
const tasks = worstState(x.tasks.map((t) => t.n));
|
|
79
|
-
return c && CALL_STATE[c.state] ? worstOf([CALL_STATE[c.state], tasks]) : tasks;
|
|
80
|
-
});
|
|
81
|
-
const tasks = xs.flatMap((x) => x.tasks);
|
|
82
|
-
const keys = tasks.map((t) => t.n.key);
|
|
83
|
-
const last = xs.find((_, i) => states[i] === 'running') ?? xs[xs.length - 1];
|
|
84
|
-
const failed = own.find(callFailed);
|
|
85
|
-
const mark = { key: last?.id ?? '', unit, state: worstOf(states), count: keys.length, keys, flow: name, counts: taskCounts(tasks) };
|
|
86
|
-
return failed ? { ...mark, error: failed.error ?? '' } : mark;
|
|
87
|
-
};
|
|
88
|
-
const byUnit = new Map();
|
|
89
|
-
const single = [];
|
|
90
|
-
const xs = instances(ts, d, calls);
|
|
91
|
-
for (const x of xs) {
|
|
92
|
-
if (x.unit)
|
|
93
|
-
push(byUnit, x.unit, x);
|
|
94
|
-
else
|
|
95
|
-
single.push(markOf([x], ''));
|
|
96
|
-
}
|
|
97
|
-
const errors = calls ? xs.filter((x) => x.own && callFailed(calls.get(x.id))).length : 0;
|
|
98
|
-
return { byUnit: new Map([...byUnit].map(([u, ys]) => [u, markOf(ys, u)])), single, calls: xs.length, errors };
|
|
99
|
-
}
|
|
100
|
-
/** Tasks by state. */
|
|
101
|
-
function taskCounts(ts) {
|
|
102
|
-
const c = { total: ts.length, done: 0, failed: 0, running: 0, pending: 0, skipped: 0, blocked: 0 };
|
|
103
|
-
for (const t of ts)
|
|
104
|
-
c[t.n.state] += 1;
|
|
105
|
-
return c;
|
|
106
|
-
}
|
|
107
|
-
/** 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). */
|
|
108
|
-
function latestPass(ts, d) {
|
|
109
|
-
const most = new Map();
|
|
110
|
-
for (const t of ts) {
|
|
111
|
-
const u = t.n.unit || '';
|
|
112
|
-
const had = most.get(u);
|
|
113
|
-
if (!had || cmpPasses(passesAt(t, d), had) > 0)
|
|
114
|
-
most.set(u, passesAt(t, d));
|
|
115
|
-
}
|
|
116
|
-
return ts.filter((t) => cmpPasses(passesAt(t, d), most.get(t.n.unit || '') ?? []) === 0);
|
|
117
|
-
}
|
|
118
|
-
/** How many passes each unit's tasks in a node ran in (distinct pass lists at depth `d`). */
|
|
119
|
-
function passesByUnit(ts, d) {
|
|
120
|
-
const seen = new Map();
|
|
121
|
-
for (const t of ts) {
|
|
122
|
-
const u = t.n.unit || '';
|
|
123
|
-
(seen.get(u) ?? seen.set(u, new Set()).get(u))?.add(passesAt(t, d).join('.'));
|
|
124
|
-
}
|
|
125
|
-
return new Map([...seen].map(([u, s]) => [u, s.size]));
|
|
126
|
-
}
|
|
127
|
-
/** A mark with its pass count, when it is more than 1. */
|
|
128
|
-
const withPasses = (m, n) => (n && n > 1 ? { ...m, passes: n } : m);
|
|
129
|
-
export function project(plan, path, prev, down = false) {
|
|
130
|
-
const ix = indexOf(plan);
|
|
131
|
-
const d = path.length;
|
|
132
|
-
const inside = ix.tasks.filter((t) => startsWith(t.path, path));
|
|
133
|
-
const drafts = new Map();
|
|
134
|
-
const nodeOfKey = new Map();
|
|
135
|
-
for (const t of inside) {
|
|
136
|
-
const p = placeOf(t, d);
|
|
137
|
-
const x = drafts.get(p.id) ?? drafts.set(p.id, { ...p, tasks: [] }).get(p.id);
|
|
138
|
-
x?.tasks.push(t);
|
|
139
|
-
nodeOfKey.set(t.n.key, p.id);
|
|
140
|
-
}
|
|
141
|
-
const marks = new Map();
|
|
142
|
-
const shownOf = new Map(); // node id -> the tasks it counts
|
|
143
|
-
const boxOf = new Map(); // node id -> its innermost loop box
|
|
144
|
-
const boxParent = new Map(); // loop box -> the box it nests in
|
|
145
|
-
for (const x of drafts.values()) {
|
|
146
|
-
const chain = boxChain(x.loops);
|
|
147
|
-
const inner = chain[chain.length - 1] ?? null;
|
|
148
|
-
chain.forEach((box, i) => boxParent.set(box, chain[i - 1] ?? null));
|
|
149
|
-
if (inner)
|
|
150
|
-
boxOf.set(x.id, inner);
|
|
151
|
-
// In a loop box, a unit's mark is its latest pass, and counts the passes it ran in.
|
|
152
|
-
const shown = inner ? latestPass(x.tasks, d) : x.tasks;
|
|
153
|
-
shownOf.set(x.id, shown);
|
|
154
|
-
const m = x.type === 'kind' ? kindMarks(shown) : flowMarks(shown, d, x.name, ix.calls);
|
|
155
|
-
if (inner) {
|
|
156
|
-
const per = passesByUnit(x.tasks, d);
|
|
157
|
-
m.byUnit = new Map([...m.byUnit].map(([u, mk]) => [u, withPasses(mk, per.get(u))]));
|
|
158
|
-
}
|
|
159
|
-
marks.set(x.id, m);
|
|
160
|
-
}
|
|
161
|
-
const units = [...new Set([...marks.values()].flatMap((m) => [...m.byUnit.keys()]))].sort((a, b) => (ix.unitRank.get(a) ?? 0) - (ix.unitRank.get(b) ?? 0));
|
|
162
|
-
// Each box's own loop: its last pass, and the passes each unit ran of it (its
|
|
163
|
-
// distinct passes, those of the loops around it included).
|
|
164
|
-
const boxLast = new Map();
|
|
165
|
-
const boxRan = new Map();
|
|
166
|
-
for (const x of drafts.values()) {
|
|
167
|
-
const chain = boxChain(x.loops);
|
|
168
|
-
for (const t of x.tasks) {
|
|
169
|
-
const ps = passesAt(t, d);
|
|
170
|
-
chain.forEach((box, i) => {
|
|
171
|
-
boxLast.set(box, Math.max(boxLast.get(box) ?? 1, ps[i] ?? 1));
|
|
172
|
-
const per = boxRan.get(box) ?? boxRan.set(box, new Map()).get(box);
|
|
173
|
-
const u = t.n.unit || '';
|
|
174
|
-
(per?.get(u) ?? per?.set(u, new Set()).get(u))?.add(ps.slice(0, i + 1).join('.'));
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// The loop boxes an id sits in, innermost first (for a box id, itself first).
|
|
179
|
-
const boxPath = (id) => {
|
|
180
|
-
const out = [];
|
|
181
|
-
let b = id.startsWith(LOOP_SEGMENT) ? id : (boxOf.get(id) ?? null);
|
|
182
|
-
while (b) {
|
|
183
|
-
out.push(b);
|
|
184
|
-
b = boxParent.get(b) ?? null;
|
|
185
|
-
}
|
|
186
|
-
return out;
|
|
187
|
-
};
|
|
188
|
-
// The direct child of `container` (a box, or '' for the layer's top level) that holds a node `id`.
|
|
189
|
-
const itemIn = (id, container) => {
|
|
190
|
-
const bp = boxPath(id);
|
|
191
|
-
if (container === '')
|
|
192
|
-
return bp[bp.length - 1] ?? id;
|
|
193
|
-
const i = bp.indexOf(container);
|
|
194
|
-
return i < 0 ? undefined : i === 0 ? id : bp[i - 1];
|
|
195
|
-
};
|
|
196
|
-
// The deepest loop box holding both ends of an edge (the layer's top level when none).
|
|
197
|
-
const commonBox = (a, b) => {
|
|
198
|
-
const bp = boxPath(a);
|
|
199
|
-
return bp.find((x) => boxPath(b).includes(x)) ?? '';
|
|
200
|
-
};
|
|
201
|
-
// The container a slot is in: a stub's is the top level.
|
|
202
|
-
const containerOf = (id) => (id.startsWith('stub:') ? '' : (boxOf.get(id) ?? ''));
|
|
203
|
-
// Edges, projected onto the layer's nodes; from outside it, stubs. An edge whose
|
|
204
|
-
// every task joins a later pass of a loop around both ends goes back to the next pass.
|
|
205
|
-
const inOrder = new Set();
|
|
206
|
-
const pairs = new Map();
|
|
207
|
-
const stubs = new Map();
|
|
208
|
-
const outside = (o) => {
|
|
209
|
-
let c = 0;
|
|
210
|
-
while (c < d && o.path[c] === path[c])
|
|
211
|
-
c++;
|
|
212
|
-
const p = placeOf(o, c);
|
|
213
|
-
return { id: `stub:${c}:${p.id}`, label: p.type === 'kind' ? (ix.labels.get(p.name) ?? p.name) : shortName(p.name) };
|
|
214
|
-
};
|
|
215
|
-
for (const t of inside) {
|
|
216
|
-
const to = nodeOfKey.get(t.n.key);
|
|
217
|
-
const link = (dep, type) => {
|
|
218
|
-
const from = nodeOfKey.get(dep);
|
|
219
|
-
if (from === to) {
|
|
220
|
-
if (type === 'after')
|
|
221
|
-
inOrder.add(to);
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
if (from !== undefined) {
|
|
225
|
-
const o = ix.byKey.get(dep);
|
|
226
|
-
const a = loopsAt(o, d);
|
|
227
|
-
const b = loopsAt(t, d);
|
|
228
|
-
let k = 0;
|
|
229
|
-
while (k < a.length && a[k] === b[k])
|
|
230
|
-
k++;
|
|
231
|
-
const same = cmpPasses(passesAt(o, d).slice(0, k), passesAt(t, d).slice(0, k)) === 0;
|
|
232
|
-
const key = `${from}\u0000${to}\u0000${type}`;
|
|
233
|
-
const e = pairs.get(key) ?? pairs.set(key, { from, to, type, tasks: new Set(), samePass: false }).get(key);
|
|
234
|
-
e?.tasks.add(t.n.key);
|
|
235
|
-
if (e && same)
|
|
236
|
-
e.samePass = true;
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
const o = ix.byKey.get(dep);
|
|
240
|
-
if (!o)
|
|
241
|
-
return; // not in the plan yet
|
|
242
|
-
const s = outside(o);
|
|
243
|
-
const k = `${s.id}\u0000${to}\u0000${type}`;
|
|
244
|
-
(stubs.get(k) ?? stubs.set(k, { ...s, to, type, tasks: new Set() }).get(k))?.tasks.add(t.n.key);
|
|
245
|
-
};
|
|
246
|
-
for (const dep of t.n.after ?? [])
|
|
247
|
-
link(dep, 'after');
|
|
248
|
-
for (const dep of t.from)
|
|
249
|
-
link(dep, 'created');
|
|
250
|
-
}
|
|
251
|
-
// A created_from edge is drawn only where no after edge joins the same two.
|
|
252
|
-
const all = [...pairs.values()].filter((e) => e.type === 'after' || !pairs.has(`${e.from}\u0000${e.to}\u0000after`));
|
|
253
|
-
const stubList = [...stubs.values()].filter((s) => s.type === 'after' || !stubs.has(`${s.id}\u0000${s.to}\u0000after`));
|
|
254
|
-
// Layers, by container: the layer's top level, then each loop box (its own nodes
|
|
255
|
-
// and the loop boxes nested in it). Each box is one item of its parent.
|
|
256
|
-
const containers = ['', ...boxParent.keys()];
|
|
257
|
-
const kidsOf = new Map(containers.map((c) => [c, []]));
|
|
258
|
-
for (const id of drafts.keys()) {
|
|
259
|
-
for (const c of containers) {
|
|
260
|
-
const it = itemIn(id, c);
|
|
261
|
-
if (it !== undefined && !kidsOf.get(c)?.includes(it))
|
|
262
|
-
kidsOf.get(c)?.push(it);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
const lay = new Map();
|
|
266
|
-
for (const c of containers) {
|
|
267
|
-
const kids = kidsOf.get(c) ?? [];
|
|
268
|
-
const prevRows = c === '' ? prev?.layers : prev?.boxes[c];
|
|
269
|
-
const fixed = new Map();
|
|
270
|
-
prevRows?.forEach((row, i) => row.forEach((id) => kids.includes(id) && fixed.set(id, i)));
|
|
271
|
-
// An edge back to a loop's next pass does not set the layers.
|
|
272
|
-
const es = all
|
|
273
|
-
.filter((e) => e.samePass && commonBox(e.from, e.to) === c)
|
|
274
|
-
.map((e) => [itemIn(e.from, c), itemIn(e.to, c)]);
|
|
275
|
-
lay.set(c, rankLayers(kids, es, fixed));
|
|
276
|
-
}
|
|
277
|
-
// Stubs, in the top level: in the layer before the first they lead to (a new first layer when that is the first).
|
|
278
|
-
const top = lay.get('');
|
|
279
|
-
const stubIds = [...new Set(stubList.map((s) => s.id))];
|
|
280
|
-
const prevTop = new Map();
|
|
281
|
-
prev?.layers.forEach((row, i) => row.forEach((id) => prevTop.set(id, i)));
|
|
282
|
-
const stubAt = new Map(stubIds.map((id) => [id, prevTop.get(id) ?? Math.min(...stubList.filter((s) => s.id === id).map((s) => top.get(itemIn(s.to, '')) ?? 0)) - 1]));
|
|
283
|
-
if ([...stubAt.values()].some((l) => l < 0)) {
|
|
284
|
-
for (const [id, l] of top)
|
|
285
|
-
top.set(id, l + 1);
|
|
286
|
-
for (const [id, l] of stubAt)
|
|
287
|
-
stubAt.set(id, l + 1);
|
|
288
|
-
}
|
|
289
|
-
for (const [id, l] of stubAt)
|
|
290
|
-
top.set(id, l);
|
|
291
|
-
const layerOf = (c, id) => lay.get(c)?.get(id) ?? 0;
|
|
292
|
-
const lastLayer = (c) => Math.max(0, ...(lay.get(c)?.values() ?? []));
|
|
293
|
-
// Every edge whose ends are not in a later layer than its start goes back: not drawn.
|
|
294
|
-
const isBack = (from, to) => {
|
|
295
|
-
const c = commonBox(from, to);
|
|
296
|
-
return layerOf(c, itemIn(from, c)) >= layerOf(c, itemIn(to, c));
|
|
297
|
-
};
|
|
298
|
-
const edges = all.map((e) => ({ from: e.from, to: e.to, tasks: e.tasks.size, type: e.type, back: isBack(e.from, e.to) }));
|
|
299
|
-
// Each container's rows: its items by layer, a previous order kept, new items after it.
|
|
300
|
-
const rows = new Map();
|
|
301
|
-
for (const c of containers) {
|
|
302
|
-
const prevRows = c === '' ? prev?.layers : prev?.boxes[c];
|
|
303
|
-
const kept = (prevRows ?? []).flat();
|
|
304
|
-
const ids = [...(c === '' ? [...stubIds] : []), ...(kidsOf.get(c) ?? [])];
|
|
305
|
-
ids.sort((a, b) => {
|
|
306
|
-
const ka = kept.indexOf(a);
|
|
307
|
-
const kb = kept.indexOf(b);
|
|
308
|
-
return (ka < 0 ? Infinity : ka) - (kb < 0 ? Infinity : kb);
|
|
309
|
-
});
|
|
310
|
-
const r = Array.from({ length: lastLayer(c) + 1 }, () => []);
|
|
311
|
-
for (const id of ids)
|
|
312
|
-
r[layerOf(c, id)]?.push(id);
|
|
313
|
-
rows.set(c, r);
|
|
314
|
-
}
|
|
315
|
-
// Routes: the drawn edges through points on the layers they cross. The points of
|
|
316
|
-
// edges from one place (of one type) are shared, so their lines run as one.
|
|
317
|
-
const routes = [];
|
|
318
|
-
const points = new Set();
|
|
319
|
-
const point = (c, origin, type, l) => {
|
|
320
|
-
const id = `~${c}|${origin}|${type}|${l}`;
|
|
321
|
-
if (!points.has(id)) {
|
|
322
|
-
points.add(id);
|
|
323
|
-
rows.get(c)?.[l]?.push(id);
|
|
324
|
-
}
|
|
325
|
-
return { id, in: c };
|
|
326
|
-
};
|
|
327
|
-
// A point beside a box, in its layer of the container around it: an edge that leaves or
|
|
328
|
-
// enters the box through its side, between two of its layers, passes there.
|
|
329
|
-
const byPoint = (c, box, origin, type) => {
|
|
330
|
-
const l = layerOf(c, box);
|
|
331
|
-
const id = `~${c}|by:${box}|${origin}|${type}|${l}`;
|
|
332
|
-
if (!points.has(id)) {
|
|
333
|
-
points.add(id);
|
|
334
|
-
rows.get(c)?.[l]?.push(id);
|
|
335
|
-
}
|
|
336
|
-
return { id, in: c };
|
|
337
|
-
};
|
|
338
|
-
// An edge enters a box at its near side only to reach the box's first layer (and,
|
|
339
|
-
// top to bottom, not even then: the box's label is on that side); else through its
|
|
340
|
-
// side, next to the layer it goes to. It leaves at the far side only from the box's
|
|
341
|
-
// last layer, else through its side. So it runs inside a box only where it starts or ends.
|
|
342
|
-
const route = (from, to, type) => {
|
|
343
|
-
const c = from.startsWith('stub:') ? '' : commonBox(from, to);
|
|
344
|
-
let curIn = containerOf(from);
|
|
345
|
-
let cur = from;
|
|
346
|
-
const steps = [{ id: from, in: curIn }];
|
|
347
|
-
// Out of the boxes around the source, up to the common container.
|
|
348
|
-
while (curIn !== c) {
|
|
349
|
-
const up = boxParent.get(curIn) ?? '';
|
|
350
|
-
steps.push({ id: curIn, in: up });
|
|
351
|
-
if (layerOf(curIn, cur) < lastLayer(curIn))
|
|
352
|
-
steps.push(byPoint(up, curIn, cur, type));
|
|
353
|
-
cur = curIn;
|
|
354
|
-
curIn = up;
|
|
355
|
-
}
|
|
356
|
-
// Across the common container, then into the boxes around the target.
|
|
357
|
-
const target = itemIn(to, c);
|
|
358
|
-
for (let l = layerOf(c, cur) + 1; l < layerOf(c, target); l++)
|
|
359
|
-
steps.push(point(c, cur, type, l));
|
|
360
|
-
const bp = boxPath(to);
|
|
361
|
-
const inward = bp.slice(0, c === '' ? bp.length : bp.indexOf(c)).reverse();
|
|
362
|
-
const origin = `>${c}:${cur}`;
|
|
363
|
-
let k = c;
|
|
364
|
-
for (const box of inward) {
|
|
365
|
-
const n = itemIn(to, box);
|
|
366
|
-
if (layerOf(box, n) > 0 || down)
|
|
367
|
-
steps.push(byPoint(k, box, origin, type));
|
|
368
|
-
steps.push({ id: box, in: k });
|
|
369
|
-
k = box;
|
|
370
|
-
}
|
|
371
|
-
steps.push({ id: to, in: k });
|
|
372
|
-
return steps;
|
|
373
|
-
};
|
|
374
|
-
for (const e of edges)
|
|
375
|
-
if (!e.back)
|
|
376
|
-
routes.push({ from: e.from, to: e.to, type: e.type, steps: route(e.from, e.to, e.type) });
|
|
377
|
-
for (const s of stubList)
|
|
378
|
-
routes.push({ from: s.id, to: s.to, type: s.type, steps: route(s.id, s.to, s.type) });
|
|
379
|
-
// The order within each layer.
|
|
380
|
-
const slots = {};
|
|
381
|
-
for (const c of containers) {
|
|
382
|
-
const links = [];
|
|
383
|
-
const lv = new Map((rows.get(c) ?? []).flatMap((r, i) => r.map((id) => [id, i])));
|
|
384
|
-
for (const r of routes)
|
|
385
|
-
for (let i = 1; i < r.steps.length; i++) {
|
|
386
|
-
const a = r.steps[i - 1];
|
|
387
|
-
const b = r.steps[i];
|
|
388
|
-
if (a.in === c && b.in === c && lv.get(a.id) !== lv.get(b.id))
|
|
389
|
-
links.push([a.id, b.id]);
|
|
390
|
-
}
|
|
391
|
-
const hasPrev = c === '' ? !!prev : !!prev?.boxes[c];
|
|
392
|
-
// A point beside a box is right after it.
|
|
393
|
-
slots[c] = orderRows(rows.get(c) ?? [], links, hasPrev).map((row) => {
|
|
394
|
-
const by = row.filter((id) => id.includes('|by:'));
|
|
395
|
-
const rest = row.filter((id) => !id.includes('|by:'));
|
|
396
|
-
return rest.flatMap((id) => [id, ...by.filter((p) => p.includes(`|by:${id}|`))]);
|
|
397
|
-
});
|
|
398
|
-
}
|
|
399
|
-
const real = (r) => r.map((row) => row.filter((id) => !isPoint(id)));
|
|
400
|
-
const boxes = [...boxParent.keys()].map((id) => {
|
|
401
|
-
const spread = new Map();
|
|
402
|
-
for (const [u, ran] of boxRan.get(id) ?? [])
|
|
403
|
-
if (u)
|
|
404
|
-
spread.set(ran.size, (spread.get(ran.size) ?? 0) + 1);
|
|
405
|
-
return {
|
|
406
|
-
id,
|
|
407
|
-
loop: Number(id.slice(LOOP_SEGMENT.length).split('.').pop()),
|
|
408
|
-
file: inside[0]?.frames[d - 1]?.file ?? '',
|
|
409
|
-
parent: boxParent.get(id) ?? null,
|
|
410
|
-
passes: boxLast.get(id) ?? 1,
|
|
411
|
-
spread: [...spread].sort((a, b) => a[0] - b[0]),
|
|
412
|
-
layers: real(slots[id] ?? []).filter((r) => r.length),
|
|
413
|
-
};
|
|
414
|
-
});
|
|
415
|
-
const outerRows = real(slots[''] ?? []).map((row) => row.filter((id) => !id.startsWith('stub:')));
|
|
416
|
-
const nodeOf = (x) => {
|
|
417
|
-
const m = marks.get(x.id);
|
|
418
|
-
const hasUnits = m.byUnit.size > 0;
|
|
419
|
-
return {
|
|
420
|
-
id: x.id,
|
|
421
|
-
type: x.type,
|
|
422
|
-
name: x.name,
|
|
423
|
-
label: x.type === 'kind' ? (ix.labels.get(x.name) ?? x.name) : shortName(x.name),
|
|
424
|
-
kinds: [...new Set(x.tasks.map((t) => t.n.kind))],
|
|
425
|
-
executor: x.type === 'flow' ? null : executorOf(x.tasks.map((t) => t.n)),
|
|
426
|
-
box: boxOf.get(x.id) ?? null,
|
|
427
|
-
units: hasUnits ? units.map((u) => m.byUnit.get(u) ?? null) : [],
|
|
428
|
-
single: m.single,
|
|
429
|
-
inOrder: inOrder.has(x.id),
|
|
430
|
-
counts: taskCounts(shownOf.get(x.id) ?? []),
|
|
431
|
-
calls: m.calls ?? 0,
|
|
432
|
-
errors: m.errors ?? 0,
|
|
433
|
-
};
|
|
434
|
-
};
|
|
435
|
-
const byBox = new Map(boxes.map((b) => [b.id, b]));
|
|
436
|
-
// Every node id, in drawing order: expand each loop box to the nodes nested in it.
|
|
437
|
-
const expand = (ids) => ids.flatMap((id) => (id.startsWith(LOOP_SEGMENT) ? expand((byBox.get(id)?.layers ?? []).flat()) : [id]));
|
|
438
|
-
return {
|
|
439
|
-
graph: {
|
|
440
|
-
path: [...path],
|
|
441
|
-
nodes: expand(outerRows.flat()).map((id) => nodeOf(drafts.get(id))),
|
|
442
|
-
layers: outerRows.filter((r) => r.length),
|
|
443
|
-
boxes,
|
|
444
|
-
edges,
|
|
445
|
-
stubs: stubList.map((s) => ({ id: s.id, label: s.label, to: s.to, tasks: s.tasks.size, type: s.type })),
|
|
446
|
-
units,
|
|
447
|
-
slots,
|
|
448
|
-
routes,
|
|
449
|
-
order: { layers: real(slots[''] ?? []), boxes: Object.fromEntries(boxes.map((b) => [b.id, real(slots[b.id] ?? [])])) },
|
|
450
|
-
},
|
|
451
|
-
drafts,
|
|
452
|
-
ix,
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
//# sourceMappingURL=project.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../src/elements/overview/graph/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { PassMatrix } from './matrix.js';
|
|
2
|
-
import type { GraphMark, GraphNode, LayerGraph, LoopBox, NodeCounts } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* A mark's selection id: its node, the passes of its column in a loop's passes
|
|
5
|
-
* (`|1.2`), and its unit, or its key for a mark without one (`kind:review@7#gamma`).
|
|
6
|
-
*/
|
|
7
|
-
export declare const markSel: (node: string, m: Pick<GraphMark, "unit" | "key">, passes?: readonly number[]) => string;
|
|
8
|
-
/** 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. */
|
|
9
|
-
export type Selected = {
|
|
10
|
-
type: 'mark';
|
|
11
|
-
id: string;
|
|
12
|
-
node: GraphNode;
|
|
13
|
-
mark: GraphMark;
|
|
14
|
-
passes: number[];
|
|
15
|
-
} | {
|
|
16
|
-
type: 'node';
|
|
17
|
-
id: string;
|
|
18
|
-
node: GraphNode;
|
|
19
|
-
} | {
|
|
20
|
-
type: 'box';
|
|
21
|
-
id: string;
|
|
22
|
-
box: LoopBox;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* What `sel` names in a layer's graph, or, with `matrix`, in a loop's passes (a mark
|
|
26
|
-
* there names its column's passes); null when it names nothing there.
|
|
27
|
-
*/
|
|
28
|
-
export declare function selected(g: LayerGraph, matrix: PassMatrix | null, sel: string): Selected | null;
|
|
29
|
-
/** The tasks of a layer's nodes by state, added up. */
|
|
30
|
-
export declare function layerCounts(nodes: readonly Pick<GraphNode, 'counts'>[]): NodeCounts;
|
|
31
|
-
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../src/elements/overview/graph/selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,SAAQ,SAAS,MAAM,EAAO,KAAG,MAC/B,CAAC;AAE7E,2HAA2H;AAC3H,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAsB/F;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,UAAU,CAInF"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A mark's selection id: its node, the passes of its column in a loop's passes
|
|
3
|
-
* (`|1.2`), and its unit, or its key for a mark without one (`kind:review@7#gamma`).
|
|
4
|
-
*/
|
|
5
|
-
export const markSel = (node, m, passes = []) => `${node}${passes.length ? `|${passes.join('.')}` : ''}#${m.unit || m.key}`;
|
|
6
|
-
/**
|
|
7
|
-
* What `sel` names in a layer's graph, or, with `matrix`, in a loop's passes (a mark
|
|
8
|
-
* there names its column's passes); null when it names nothing there.
|
|
9
|
-
*/
|
|
10
|
-
export function selected(g, matrix, sel) {
|
|
11
|
-
if (!sel)
|
|
12
|
-
return null;
|
|
13
|
-
const hash = sel.indexOf('#');
|
|
14
|
-
if (hash < 0) {
|
|
15
|
-
const node = g.nodes.find((n) => n.id === sel);
|
|
16
|
-
if (node)
|
|
17
|
-
return { type: 'node', id: sel, node };
|
|
18
|
-
const box = g.boxes.find((b) => b.id === sel);
|
|
19
|
-
return box ? { type: 'box', id: sel, box } : null;
|
|
20
|
-
}
|
|
21
|
-
const [nodeId = '', pass] = sel.slice(0, hash).split('|');
|
|
22
|
-
const who = sel.slice(hash + 1);
|
|
23
|
-
const is = (m) => !!m && (m.unit ? m.unit === who : m.key === who);
|
|
24
|
-
if (pass !== undefined) {
|
|
25
|
-
if (!matrix)
|
|
26
|
-
return null;
|
|
27
|
-
const ci = matrix.columns.findIndex((c) => c.node.id === nodeId && c.passes.join('.') === pass);
|
|
28
|
-
const col = matrix.columns[ci];
|
|
29
|
-
const mark = matrix.rows.map((r) => r.cells[ci]).find(is);
|
|
30
|
-
return col && mark ? { type: 'mark', id: sel, node: col.node, mark, passes: col.passes } : null;
|
|
31
|
-
}
|
|
32
|
-
const node = g.nodes.find((n) => n.id === nodeId);
|
|
33
|
-
const mark = node ? [...node.units, ...node.single].find(is) : undefined;
|
|
34
|
-
return node && mark ? { type: 'mark', id: sel, node, mark, passes: [] } : null;
|
|
35
|
-
}
|
|
36
|
-
/** The tasks of a layer's nodes by state, added up. */
|
|
37
|
-
export function layerCounts(nodes) {
|
|
38
|
-
const c = { total: 0, done: 0, failed: 0, running: 0, pending: 0, skipped: 0, blocked: 0 };
|
|
39
|
-
for (const n of nodes)
|
|
40
|
-
for (const k of Object.keys(c))
|
|
41
|
-
c[k] += n.counts[k];
|
|
42
|
-
return c;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/elements/overview/graph/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PlanNode, TaskState } from '@contraagent/api';
|
|
2
|
-
export declare const SEVERITY: Record<TaskState, number>;
|
|
3
|
-
/** The state a mark of several tasks shows: the most severe of them. */
|
|
4
|
-
export declare const worstState: (nodes: readonly PlanNode[]) => TaskState;
|
|
5
|
-
export declare const worstOf: (states: readonly TaskState[]) => TaskState;
|
|
6
|
-
//# sourceMappingURL=states.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../src/elements/overview/graph/states.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAA0E,CAAC;AAE1H,wEAAwE;AACxE,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,QAAQ,EAAE,KAAG,SACoC,CAAC;AAE7F,eAAO,MAAM,OAAO,GAAI,QAAQ,SAAS,SAAS,EAAE,KAAG,SAA4F,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export const SEVERITY = { failed: 5, running: 4, blocked: 3, pending: 2, skipped: 1, done: 0 };
|
|
2
|
-
/** The state a mark of several tasks shows: the most severe of them. */
|
|
3
|
-
export const worstState = (nodes) => nodes.reduce((a, n) => (SEVERITY[n.state] > SEVERITY[a] ? n.state : a), 'done');
|
|
4
|
-
export const worstOf = (states) => states.reduce((a, s) => (SEVERITY[s] > SEVERITY[a] ? s : a), 'done');
|
|
5
|
-
//# sourceMappingURL=states.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../../../src/elements/overview/graph/states.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAA8B,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAE1H,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA0B,EAAa,EAAE,CAClE,KAAK,CAAC,MAAM,CAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAA4B,EAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC"}
|