@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
package/dist/core/route.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
// Where the monitor is: one typed value, kept in the URL. Pure: parsing and
|
|
2
|
-
// formatting only; `router.ts` binds it to the browser's history.
|
|
3
|
-
export const BUILTIN_TABS = ['overview', 'tasks', 'journal', 'outputs', 'definitions', 'procs', 'stream'];
|
|
4
|
-
/** What the task view shows next to (or instead of) the transcript. */
|
|
5
|
-
export const TASK_VIEWS = ['transcript', 'input', 'output', 'definition'];
|
|
6
|
-
/** The lengths of a period the trends page offers, in days, ending today. */
|
|
7
|
-
export const TREND_DAYS = [7, 14, 30];
|
|
8
|
-
export const DEFAULT_ROUTE = {
|
|
9
|
-
page: '',
|
|
10
|
-
run: '',
|
|
11
|
-
tab: 'overview',
|
|
12
|
-
key: null,
|
|
13
|
-
view: 'transcript',
|
|
14
|
-
round: null,
|
|
15
|
-
def: null,
|
|
16
|
-
kind: '',
|
|
17
|
-
stop: '',
|
|
18
|
-
q: '',
|
|
19
|
-
layer: '',
|
|
20
|
-
unit: '',
|
|
21
|
-
sel: '',
|
|
22
|
-
days: 14,
|
|
23
|
-
from: '',
|
|
24
|
-
to: '',
|
|
25
|
-
tz: '',
|
|
26
|
-
group: '',
|
|
27
|
-
trendsTab: '',
|
|
28
|
-
};
|
|
29
|
-
const isTab = (t) => BUILTIN_TABS.includes(t) || /^panel:.+/.test(t);
|
|
30
|
-
const isTaskView = (v) => TASK_VIEWS.includes(v);
|
|
31
|
-
export function parseRoute(search) {
|
|
32
|
-
const p = new URLSearchParams(search);
|
|
33
|
-
const tab = p.get('tab') ?? '';
|
|
34
|
-
const view = p.get('view') ?? '';
|
|
35
|
-
const round = Number(p.get('round'));
|
|
36
|
-
const page = p.get('page') === 'hosts' ? 'hosts' : p.get('page') === 'trends' ? 'trends' : '';
|
|
37
|
-
const from = p.get('from') ?? '';
|
|
38
|
-
const to = p.get('to') ?? '';
|
|
39
|
-
const range = /^\d{4}-\d{2}-\d{2}$/.test(from) && /^\d{4}-\d{2}-\d{2}$/.test(to);
|
|
40
|
-
const days = Number(p.get('days'));
|
|
41
|
-
return {
|
|
42
|
-
page,
|
|
43
|
-
// A page of no run names none.
|
|
44
|
-
run: page ? '' : (p.get('run') ?? ''),
|
|
45
|
-
// The trends page's `tab` is its own (`trendsTab`), not a run's.
|
|
46
|
-
tab: page !== 'trends' && isTab(tab) ? tab : 'overview',
|
|
47
|
-
key: p.get('key') || null,
|
|
48
|
-
view: isTaskView(view) ? view : 'transcript',
|
|
49
|
-
round: Number.isInteger(round) && round > 0 ? round : null,
|
|
50
|
-
def: p.get('def') || null,
|
|
51
|
-
kind: p.get('kind') ?? '',
|
|
52
|
-
stop: p.get('stop') ?? '',
|
|
53
|
-
q: p.get('q') ?? '',
|
|
54
|
-
layer: p.get('layer') ?? '',
|
|
55
|
-
unit: p.get('unit') ?? '',
|
|
56
|
-
sel: p.get('sel') ?? '',
|
|
57
|
-
days: range ? 0 : TREND_DAYS.includes(days) ? days : DEFAULT_ROUTE.days,
|
|
58
|
-
from: range ? from : '',
|
|
59
|
-
to: range ? to : '',
|
|
60
|
-
tz: p.get('tz') ?? '',
|
|
61
|
-
group: p.get('group') ?? '',
|
|
62
|
-
trendsTab: page === 'trends' ? (p.get('tab') ?? '') : '',
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
/** The query string for a route: only what differs from the defaults, and only what its tab uses. */
|
|
66
|
-
export function formatRoute(r) {
|
|
67
|
-
if (r.page === 'hosts')
|
|
68
|
-
return '?page=hosts';
|
|
69
|
-
if (r.page === 'trends') {
|
|
70
|
-
const p = new URLSearchParams({ page: 'trends' });
|
|
71
|
-
if (r.days === 0 && r.from && r.to) {
|
|
72
|
-
p.set('from', r.from);
|
|
73
|
-
p.set('to', r.to);
|
|
74
|
-
}
|
|
75
|
-
else if (r.days !== DEFAULT_ROUTE.days)
|
|
76
|
-
p.set('days', String(r.days));
|
|
77
|
-
if (r.tz)
|
|
78
|
-
p.set('tz', r.tz);
|
|
79
|
-
if (r.group)
|
|
80
|
-
p.set('group', r.group);
|
|
81
|
-
if (r.trendsTab)
|
|
82
|
-
p.set('tab', r.trendsTab);
|
|
83
|
-
return `?${p.toString()}`;
|
|
84
|
-
}
|
|
85
|
-
const p = new URLSearchParams();
|
|
86
|
-
if (r.run)
|
|
87
|
-
p.set('run', r.run);
|
|
88
|
-
if (r.tab !== 'overview')
|
|
89
|
-
p.set('tab', r.tab);
|
|
90
|
-
if (r.tab === 'stream') {
|
|
91
|
-
if (r.key)
|
|
92
|
-
p.set('key', r.key);
|
|
93
|
-
if (r.view !== 'transcript')
|
|
94
|
-
p.set('view', r.view);
|
|
95
|
-
if (r.round != null)
|
|
96
|
-
p.set('round', String(r.round));
|
|
97
|
-
}
|
|
98
|
-
if (r.tab === 'definitions' && r.def)
|
|
99
|
-
p.set('def', r.def);
|
|
100
|
-
if (r.tab === 'overview' && r.layer)
|
|
101
|
-
p.set('layer', r.layer);
|
|
102
|
-
if (r.tab === 'overview' && r.unit)
|
|
103
|
-
p.set('unit', r.unit);
|
|
104
|
-
if (r.tab === 'overview' && r.sel)
|
|
105
|
-
p.set('sel', r.sel);
|
|
106
|
-
// The filters of the Tasks and History tabs: kept while another tab is shown (going back finds them), named in the URL only on their tabs.
|
|
107
|
-
const filtered = r.tab === 'tasks' || r.tab === 'journal';
|
|
108
|
-
if (filtered && r.kind)
|
|
109
|
-
p.set('kind', r.kind);
|
|
110
|
-
if (r.tab === 'journal' && r.stop)
|
|
111
|
-
p.set('stop', r.stop);
|
|
112
|
-
if (filtered && r.q)
|
|
113
|
-
p.set('q', r.q);
|
|
114
|
-
const s = p.toString();
|
|
115
|
-
return s ? `?${s}` : '';
|
|
116
|
-
}
|
|
117
|
-
/** Apply a patch. Leaving a task (another key, run) forgets its view and round; another run forgets every selection. */
|
|
118
|
-
export function applyPatch(r, patch) {
|
|
119
|
-
const next = { ...r, ...patch };
|
|
120
|
-
if (patch.run !== undefined && patch.run !== r.run) {
|
|
121
|
-
Object.assign(next, { key: null, def: null, round: null, layer: '', unit: '', sel: '', ...patch });
|
|
122
|
-
}
|
|
123
|
-
// A selection belongs to its layer.
|
|
124
|
-
if (patch.layer !== undefined && patch.layer !== r.layer && patch.sel === undefined)
|
|
125
|
-
next.sel = '';
|
|
126
|
-
if (patch.key !== undefined && patch.key !== r.key) {
|
|
127
|
-
if (patch.view === undefined)
|
|
128
|
-
next.view = 'transcript';
|
|
129
|
-
if (patch.round === undefined)
|
|
130
|
-
next.round = null;
|
|
131
|
-
}
|
|
132
|
-
return next;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Whether going from `a` to `b` is a move to another place (a new history entry,
|
|
136
|
-
* so Back returns) or only a refinement of this one (the entry is replaced, so
|
|
137
|
-
* typing in a filter, highlighting a unit or selecting in the graph does not fill the history).
|
|
138
|
-
*/
|
|
139
|
-
export function isNewPlace(a, b) {
|
|
140
|
-
const place = (r) => formatRoute({ ...r, kind: '', stop: '', q: '', unit: '', sel: '' });
|
|
141
|
-
return place(a) !== place(b);
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=route.js.map
|
package/dist/core/route.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/core/route.ts"],"names":[],"mappings":"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"}
|
package/dist/core/router.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type Route, type RoutePatch } from './route.js';
|
|
2
|
-
export type RouterMode = 'url' | 'memory';
|
|
3
|
-
/** Why the route changed: the page loaded, the app navigated, or the reader went Back/Forward. */
|
|
4
|
-
export type RouteCause = 'init' | 'push' | 'replace' | 'pop';
|
|
5
|
-
export declare class Router {
|
|
6
|
-
private readonly mode;
|
|
7
|
-
private readonly onChange;
|
|
8
|
-
/** Called before a new history entry is pushed: what is kept per entry belongs to the one being left. */
|
|
9
|
-
private readonly onLeave;
|
|
10
|
-
private current;
|
|
11
|
-
constructor(mode: RouterMode, onChange: (route: Route, cause: RouteCause) => void, initial?: RoutePatch,
|
|
12
|
-
/** Called before a new history entry is pushed: what is kept per entry belongs to the one being left. */
|
|
13
|
-
onLeave?: () => void);
|
|
14
|
-
get route(): Route;
|
|
15
|
-
start(): void;
|
|
16
|
-
stop(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Go to the route with `patch` applied. A new place pushes a history entry,
|
|
19
|
-
* a refinement replaces it; `replace` forces replacing (a default filled in,
|
|
20
|
-
* not a step the reader took).
|
|
21
|
-
*/
|
|
22
|
-
navigate(patch: RoutePatch, opts?: {
|
|
23
|
-
replace?: boolean;
|
|
24
|
-
}): void;
|
|
25
|
-
private readonly onPop;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmD,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1G,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC1C,kGAAkG;AAClG,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7D,qBAAa,MAAM;IAIf,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,OAAO,CAAQ;gBAGJ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,EACpE,OAAO,CAAC,EAAE,UAAU;IACpB,yGAAyG;IACxF,OAAO,GAAE,MAAM,IAAe;IAMjD,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAIZ;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAiBnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGpB;CACH"}
|
package/dist/core/router.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
// The route, bound to the browser's history: navigating pushes an entry for a
|
|
2
|
-
// new place and replaces it for a refinement (a filter), Back and Forward
|
|
3
|
-
// restore it. In `memory` mode (an embedded monitor) the URL is left alone.
|
|
4
|
-
import { applyPatch, formatRoute, isNewPlace, parseRoute } from './route.js';
|
|
5
|
-
export class Router {
|
|
6
|
-
constructor(mode, onChange, initial,
|
|
7
|
-
/** Called before a new history entry is pushed: what is kept per entry belongs to the one being left. */
|
|
8
|
-
onLeave = () => { }) {
|
|
9
|
-
this.mode = mode;
|
|
10
|
-
this.onChange = onChange;
|
|
11
|
-
this.onLeave = onLeave;
|
|
12
|
-
this.onPop = () => {
|
|
13
|
-
this.current = parseRoute(location.search);
|
|
14
|
-
this.onChange(this.current, 'pop');
|
|
15
|
-
};
|
|
16
|
-
const base = mode === 'url' ? parseRoute(location.search) : parseRoute('');
|
|
17
|
-
this.current = applyPatch(base, initial ?? {});
|
|
18
|
-
}
|
|
19
|
-
get route() {
|
|
20
|
-
return this.current;
|
|
21
|
-
}
|
|
22
|
-
start() {
|
|
23
|
-
if (this.mode === 'url') {
|
|
24
|
-
history.scrollRestoration = 'manual';
|
|
25
|
-
addEventListener('popstate', this.onPop);
|
|
26
|
-
}
|
|
27
|
-
this.onChange(this.current, 'init');
|
|
28
|
-
}
|
|
29
|
-
stop() {
|
|
30
|
-
if (this.mode === 'url')
|
|
31
|
-
removeEventListener('popstate', this.onPop);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Go to the route with `patch` applied. A new place pushes a history entry,
|
|
35
|
-
* a refinement replaces it; `replace` forces replacing (a default filled in,
|
|
36
|
-
* not a step the reader took).
|
|
37
|
-
*/
|
|
38
|
-
navigate(patch, opts = {}) {
|
|
39
|
-
const next = applyPatch(this.current, patch);
|
|
40
|
-
if (formatRoute(next) === formatRoute(this.current))
|
|
41
|
-
return;
|
|
42
|
-
const push = !opts.replace && isNewPlace(this.current, next);
|
|
43
|
-
this.current = next;
|
|
44
|
-
if (this.mode === 'url') {
|
|
45
|
-
const url = `${location.pathname}${formatRoute(next)}${location.hash}`;
|
|
46
|
-
if (push) {
|
|
47
|
-
this.onLeave();
|
|
48
|
-
history.pushState({}, '', url);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
history.replaceState(history.state, '', url);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
this.onChange(next, push ? 'push' : 'replace');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=router.js.map
|
package/dist/core/router.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAA+B,MAAM,YAAY,CAAC;AAM1G,MAAM,OAAO,MAAM;IAGjB,YACmB,IAAgB,EAChB,QAAmD,EACpE,OAAoB;IACpB,yGAAyG;IACxF,UAAsB,GAAG,EAAE,GAAE,CAAC;QAJ9B,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAA2C;QAGnD,YAAO,GAAP,OAAO,CAAuB;QA4ChC,UAAK,GAAG,GAAS,EAAE;YAClC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;QA7CA,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;YACrC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAiB,EAAE,OAA8B,EAAE;QAC1D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QAC5D,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvE,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CAMF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type JournalRow, type TaskRow } from '@contraagent/api';
|
|
2
|
-
/** Tasks of `kind` (all when ''), whose kind, unit, key or last stop contains `q`. */
|
|
3
|
-
export declare function filterTasks(tasks: readonly TaskRow[], kind: string, q: string): TaskRow[];
|
|
4
|
-
/** The tasks list's order: by `RANK`, then the latest journal row first, then plan order. */
|
|
5
|
-
export declare function sortTasks(tasks: readonly TaskRow[]): TaskRow[];
|
|
6
|
-
/** Keys of tasks that were retried: a try ran after one that ran and failed (`retries`). */
|
|
7
|
-
export declare const retriedKeys: (rows: readonly JournalRow[]) => Set<string>;
|
|
8
|
-
/** A row whose output was sent back to the agent at least once (a fix-up in the same session). */
|
|
9
|
-
export declare const hadFixup: (r: JournalRow) => boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Journal rows of `kind` with `stop` that contain `q`. Besides a stop value,
|
|
12
|
-
* `stop` takes 'bad' (every attempt that did not complete), 'fixup' (attempts
|
|
13
|
-
* whose output was sent back for a fix-up) and 'retried' (every row of a task
|
|
14
|
-
* retried after a failed try, `retries`).
|
|
15
|
-
*/
|
|
16
|
-
export declare function filterJournal(rows: readonly JournalRow[], kind: string, stop: string, q: string): JournalRow[];
|
|
17
|
-
/** Rows per stop, most frequent first. */
|
|
18
|
-
export declare function journalTally(rows: readonly JournalRow[]): [string, number][];
|
|
19
|
-
/**
|
|
20
|
-
* Per task key: how many tries ran (refusals are not tries), and the row index
|
|
21
|
-
* and try number of its last successful try.
|
|
22
|
-
*/
|
|
23
|
-
export declare function attemptFacts(rows: readonly JournalRow[]): Map<string, {
|
|
24
|
-
count: number;
|
|
25
|
-
lastOk: number;
|
|
26
|
-
lastOkTry: number;
|
|
27
|
-
}>;
|
|
28
|
-
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/elements/lists/filters.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,KAAK,UAAU,EAAgB,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3G,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAKzF;AAKD,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAK9D;AAID,4FAA4F;AAC5F,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,UAAU,EAAE,KAAG,GAAG,CAAC,MAAM,CAA6C,CAAC;AAElH,kGAAkG;AAClG,eAAO,MAAM,QAAQ,GAAI,GAAG,UAAU,KAAG,OAA8B,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAW9G;AAED,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAI5E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAY3H"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// The list filters and row facts, pure: what the tasks and journal tabs show
|
|
2
|
-
// for a kind, a stop and a text.
|
|
3
|
-
import { isBad, isLaunched, retries } from '@contraagent/api';
|
|
4
|
-
/** Tasks of `kind` (all when ''), whose kind, unit, key or last stop contains `q`. */
|
|
5
|
-
export function filterTasks(tasks, kind, q) {
|
|
6
|
-
const needle = q.toLowerCase();
|
|
7
|
-
return tasks.filter((t) => (!kind || t.kind === kind) && (!needle || `${t.kind} ${t.unit} ${t.key} ${t.last_stop}`.toLowerCase().includes(needle)));
|
|
8
|
-
}
|
|
9
|
-
/** Failed first, then not started, running and waiting; the rest after them. */
|
|
10
|
-
const RANK = { failed: 0, not_started: 1, running: 2, waiting: 3 };
|
|
11
|
-
/** The tasks list's order: by `RANK`, then the latest journal row first, then plan order. */
|
|
12
|
-
export function sortTasks(tasks) {
|
|
13
|
-
return tasks
|
|
14
|
-
.map((t, i) => ({ t, i }))
|
|
15
|
-
.sort((a, b) => (RANK[a.t.outcome] ?? 9) - (RANK[b.t.outcome] ?? 9) || b.t.last_ts.localeCompare(a.t.last_ts) || a.i - b.i)
|
|
16
|
-
.map((x) => x.t);
|
|
17
|
-
}
|
|
18
|
-
const JOURNAL_TEXT = ['key', 'unit', 'stop', 'kind', 'route', 'reason'];
|
|
19
|
-
/** Keys of tasks that were retried: a try ran after one that ran and failed (`retries`). */
|
|
20
|
-
export const retriedKeys = (rows) => new Set(retries(rows).map((r) => r.key));
|
|
21
|
-
/** A row whose output was sent back to the agent at least once (a fix-up in the same session). */
|
|
22
|
-
export const hadFixup = (r) => (r.rounds ?? 1) > 1;
|
|
23
|
-
/**
|
|
24
|
-
* Journal rows of `kind` with `stop` that contain `q`. Besides a stop value,
|
|
25
|
-
* `stop` takes 'bad' (every attempt that did not complete), 'fixup' (attempts
|
|
26
|
-
* whose output was sent back for a fix-up) and 'retried' (every row of a task
|
|
27
|
-
* retried after a failed try, `retries`).
|
|
28
|
-
*/
|
|
29
|
-
export function filterJournal(rows, kind, stop, q) {
|
|
30
|
-
const needle = q.toLowerCase();
|
|
31
|
-
const retried = stop === 'retried' ? retriedKeys(rows) : null;
|
|
32
|
-
return rows.filter((e) => {
|
|
33
|
-
if (stop === 'bad' && !isBad(e))
|
|
34
|
-
return false;
|
|
35
|
-
if (stop === 'fixup' && !hadFixup(e))
|
|
36
|
-
return false;
|
|
37
|
-
if (retried && !retried.has(e.key))
|
|
38
|
-
return false;
|
|
39
|
-
if (stop && !['bad', 'fixup', 'retried'].includes(stop) && e.stop !== stop)
|
|
40
|
-
return false;
|
|
41
|
-
if (kind && e.kind !== kind)
|
|
42
|
-
return false;
|
|
43
|
-
return !needle || JOURNAL_TEXT.some((k) => String(e[k] ?? '').toLowerCase().includes(needle));
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/** Rows per stop, most frequent first. */
|
|
47
|
-
export function journalTally(rows) {
|
|
48
|
-
const tally = new Map();
|
|
49
|
-
for (const e of rows)
|
|
50
|
-
tally.set(e.stop || '?', (tally.get(e.stop || '?') ?? 0) + 1);
|
|
51
|
-
return [...tally.entries()].sort((a, b) => b[1] - a[1]);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Per task key: how many tries ran (refusals are not tries), and the row index
|
|
55
|
-
* and try number of its last successful try.
|
|
56
|
-
*/
|
|
57
|
-
export function attemptFacts(rows) {
|
|
58
|
-
const facts = new Map();
|
|
59
|
-
rows.forEach((r, i) => {
|
|
60
|
-
const f = facts.get(r.key) ?? { count: 0, lastOk: -1, lastOkTry: 0 };
|
|
61
|
-
if (isLaunched(r))
|
|
62
|
-
f.count++;
|
|
63
|
-
if (r.ok) {
|
|
64
|
-
f.lastOk = i;
|
|
65
|
-
f.lastOkTry = (r.attempt ?? 0) + 1;
|
|
66
|
-
}
|
|
67
|
-
facts.set(r.key, f);
|
|
68
|
-
});
|
|
69
|
-
return facts;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=filters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/elements/lists/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Plan } from '@contraagent/api';
|
|
2
|
-
import { LitElement } from 'lit';
|
|
3
|
-
/** Progress by kind: one node per group of the plan, and the share of tasks finished. */
|
|
4
|
-
export declare class CaPipelineProgress extends LitElement {
|
|
5
|
-
static styles: import("lit").CSSResult[];
|
|
6
|
-
plan: Plan;
|
|
7
|
-
/** The run is running: show how far it is; otherwise how its tasks ended. */
|
|
8
|
-
live: boolean;
|
|
9
|
-
private head;
|
|
10
|
-
render(): import("lit").TemplateResult<1>;
|
|
11
|
-
}
|
|
12
|
-
declare global {
|
|
13
|
-
interface HTMLElementTagNameMap {
|
|
14
|
-
'ca-pipeline-progress': CaPipelineProgress;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=ca-pipeline-progress.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ca-pipeline-progress.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-pipeline-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AA2BrD,yFAAyF;AACzF,qBAEa,kBAAmB,SAAQ,UAAU;IAChD,OAAgB,MAAM,4BAgCpB;IAE8B,IAAI,EAAE,IAAI,CAA6B;IACvE,6EAA6E;IAChD,IAAI,UAAS;IAE1C,OAAO,CAAC,IAAI;IAgBH,MAAM;CAoBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,kBAAkB,CAAC;KAC5C;CACF"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { localized, msg, str } from '@lit/localize';
|
|
8
|
-
import { LitElement, css, html, nothing } from 'lit';
|
|
9
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
10
|
-
import { repeat } from 'lit/directives/repeat.js';
|
|
11
|
-
import { facts } from '../../lib/format.js';
|
|
12
|
-
import { base } from '../../styles/base.js';
|
|
13
|
-
import { progress, result } from './logic.js';
|
|
14
|
-
/** A kind with a failure looks failed; one with work still to do or tasks that never started is partly done. */
|
|
15
|
-
function look(g) {
|
|
16
|
-
const fin = g.done + g.skipped;
|
|
17
|
-
if (g.running)
|
|
18
|
-
return 'cur';
|
|
19
|
-
if (g.failed)
|
|
20
|
-
return 'fail';
|
|
21
|
-
if (fin === g.total)
|
|
22
|
-
return 'done';
|
|
23
|
-
return fin ? 'part' : 'todo';
|
|
24
|
-
}
|
|
25
|
-
/** How far a group is: what is done first, then what needs attention. */
|
|
26
|
-
function sub(g) {
|
|
27
|
-
const fin = g.done + g.skipped;
|
|
28
|
-
const done = msg(str `${fin}/${g.total} done`);
|
|
29
|
-
if (g.running)
|
|
30
|
-
return facts(done, msg(str `${g.running} running`));
|
|
31
|
-
if (g.failed)
|
|
32
|
-
return facts(done, msg(str `${g.failed} failed`));
|
|
33
|
-
return facts(done, g.blocked && fin !== g.total ? msg(str `${g.blocked} not started`) : '');
|
|
34
|
-
}
|
|
35
|
-
/** Progress by kind: one node per group of the plan, and the share of tasks finished. */
|
|
36
|
-
let CaPipelineProgress = class CaPipelineProgress extends LitElement {
|
|
37
|
-
constructor() {
|
|
38
|
-
super(...arguments);
|
|
39
|
-
this.plan = { nodes: [], groups: [] };
|
|
40
|
-
/** The run is running: show how far it is; otherwise how its tasks ended. */
|
|
41
|
-
this.live = false;
|
|
42
|
-
}
|
|
43
|
-
static { this.styles = [
|
|
44
|
-
base,
|
|
45
|
-
css `
|
|
46
|
-
:host { display: block; }
|
|
47
|
-
.pp-head { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
|
|
48
|
-
.pp-pct b { font-size: 26px; font-variant-numeric: tabular-nums; }
|
|
49
|
-
.pp-pct span { display: block; font-size: 11.5px; color: var(--mut); }
|
|
50
|
-
.pp-track { flex: 1; height: 8px; border-radius: 6px; background: #16213a; overflow: hidden; }
|
|
51
|
-
.pp-track i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--ok), var(--live)); transition: width 1s var(--ease); }
|
|
52
|
-
.pps { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
|
|
53
|
-
.pp { position: relative; border-radius: 10px; padding: 8px 10px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.015);
|
|
54
|
-
display: flex; flex-direction: column; gap: 2px; min-width: 0; }
|
|
55
|
-
.pp-n { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 700;
|
|
56
|
-
background: #121b2b; border: 1.5px solid #2a3a54; color: var(--mut); }
|
|
57
|
-
.pp-n .spin { width: 12px; height: 12px; }
|
|
58
|
-
.pp-l { font-size: 12px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
59
|
-
.pp-s { font-size: 10.5px; color: var(--mut); }
|
|
60
|
-
.pp.done { border-color: rgba(52, 211, 153, 0.35); }
|
|
61
|
-
.pp.done .pp-n { background: var(--ok-a); border-color: var(--ok); color: var(--ok); }
|
|
62
|
-
.pp.cur { border-color: var(--live); background: var(--live-a); box-shadow: 0 0 16px rgba(34, 211, 238, 0.15); }
|
|
63
|
-
.pp.cur .pp-n { border-color: var(--live); }
|
|
64
|
-
.pp.fail { border-color: rgba(248, 113, 113, 0.5); }
|
|
65
|
-
.pp.fail .pp-n { border-color: var(--err); color: var(--err); }
|
|
66
|
-
.pp.part { border-color: rgba(251, 191, 36, 0.35); }
|
|
67
|
-
.pp.part .pp-n { border-color: var(--warn); color: var(--warn); }
|
|
68
|
-
.pp.todo { opacity: 0.5; }
|
|
69
|
-
.res { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin-bottom: 14px; font-size: 13px; }
|
|
70
|
-
.res b { font-size: 15px; }
|
|
71
|
-
.res .ok { color: var(--ok); }
|
|
72
|
-
.res .err { color: var(--err); }
|
|
73
|
-
.res .warn { color: var(--warn); }
|
|
74
|
-
`,
|
|
75
|
-
]; }
|
|
76
|
-
head() {
|
|
77
|
-
const { total, done, pct } = progress(this.plan);
|
|
78
|
-
const r = result(this.plan);
|
|
79
|
-
if (this.live || r.left) {
|
|
80
|
-
return html `<div class="pp-head">
|
|
81
|
-
<div class="pp-pct"><b>${pct}%</b><span>${msg(str `${done} of ${total} tasks done`)}</span></div>
|
|
82
|
-
<div class="pp-track"><i style="width:${pct}%"></i></div>
|
|
83
|
-
</div>`;
|
|
84
|
-
}
|
|
85
|
-
return html `<div class="res">
|
|
86
|
-
<span class="ok">${msg(str `${r.done} done`)}</span>
|
|
87
|
-
${r.failed ? html `<span class="err">${msg(str `${r.failed} failed`)}</span>` : nothing}
|
|
88
|
-
${r.notStarted ? html `<span class="warn" title=${msg('Tasks that did not start because an input was not ready')}>${msg(str `${r.notStarted} not started`)}</span>` : nothing}
|
|
89
|
-
</div>`;
|
|
90
|
-
}
|
|
91
|
-
render() {
|
|
92
|
-
const groups = this.plan.groups;
|
|
93
|
-
if (!groups.length) {
|
|
94
|
-
return html `<div class="blank" style="padding:24px"><span class="ic" aria-hidden="true">⇢</span>${this.live ? msg('No tasks scheduled yet') : msg('No tasks scheduled')}</div>`;
|
|
95
|
-
}
|
|
96
|
-
return html `${this.head()}
|
|
97
|
-
<div class="pps">
|
|
98
|
-
${repeat(groups, (g) => g.id, (g, i) => {
|
|
99
|
-
const cls = look(g);
|
|
100
|
-
return html `<div class="pp ${cls}">
|
|
101
|
-
<span class="pp-n" aria-hidden="true">${g.running ? html `<span class="spin"></span>` : cls === 'done' ? '✓' : cls === 'fail' ? '✕' : i + 1}</span>
|
|
102
|
-
<span class="pp-l">${g.label}</span><span class="pp-s">${sub(g)}</span>
|
|
103
|
-
</div>`;
|
|
104
|
-
})}
|
|
105
|
-
</div>`;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
__decorate([
|
|
109
|
-
property({ attribute: false })
|
|
110
|
-
], CaPipelineProgress.prototype, "plan", void 0);
|
|
111
|
-
__decorate([
|
|
112
|
-
property({ type: Boolean })
|
|
113
|
-
], CaPipelineProgress.prototype, "live", void 0);
|
|
114
|
-
CaPipelineProgress = __decorate([
|
|
115
|
-
customElement('ca-pipeline-progress'),
|
|
116
|
-
localized()
|
|
117
|
-
], CaPipelineProgress);
|
|
118
|
-
export { CaPipelineProgress };
|
|
119
|
-
//# sourceMappingURL=ca-pipeline-progress.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ca-pipeline-progress.js","sourceRoot":"","sources":["../../../src/elements/overview/ca-pipeline-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { type JournalRow, type Plan } from '@contraagent/api';
|
|
2
|
-
import { LitElement, nothing } from 'lit';
|
|
3
|
-
/**
|
|
4
|
-
* Units x kinds: one cell per scheduled task, coloured by state, one column per
|
|
5
|
-
* group, however many units the pipeline fans out over. A task that did not
|
|
6
|
-
* start names, in its tooltip, the failed task it waits for (from `journal`).
|
|
7
|
-
* A click on a cell sends `ca-open-task`.
|
|
8
|
-
*
|
|
9
|
-
* @fires ca-open-task - `{key}`: a cell was clicked
|
|
10
|
-
*/
|
|
11
|
-
export declare class CaPlanMatrix extends LitElement {
|
|
12
|
-
static styles: import("lit").CSSResult[];
|
|
13
|
-
plan: Plan;
|
|
14
|
-
/** The finished attempts: they tell which failed task stopped a task that did not start. */
|
|
15
|
-
journal: JournalRow[];
|
|
16
|
-
/** The run id: paths in a cause are shown relative to it. */
|
|
17
|
-
run: string;
|
|
18
|
-
/** The cell's task and state, one fact per line: name, state (with its cause), count, time, key. */
|
|
19
|
-
private cellFacts;
|
|
20
|
-
render(): import("lit").TemplateResult<1> | typeof nothing;
|
|
21
|
-
}
|
|
22
|
-
declare global {
|
|
23
|
-
interface HTMLElementTagNameMap {
|
|
24
|
-
'ca-plan-matrix': CaPlanMatrix;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=ca-plan-matrix.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ca-plan-matrix.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-plan-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,IAAI,EAAkB,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAYrD;;;;;;;GAOG;AACH,qBAEa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAuBpB;IAE8B,IAAI,EAAE,IAAI,CAA6B;IACvE,4FAA4F;IAC5D,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3D,6DAA6D;IACjD,GAAG,SAAM;IAErB,oGAAoG;IACpG,OAAO,CAAC,SAAS;IAWR,MAAM;CA6BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|