@contraagent/ui 0.8.0 → 0.9.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 +1 -1
- package/custom-elements.json +104 -78
- package/dist/adapters/journal-columns.d.ts +2 -0
- package/dist/adapters/journal-columns.d.ts.map +1 -1
- package/dist/adapters/journal-columns.js +19 -6
- package/dist/adapters/journal-columns.js.map +1 -1
- package/dist/adapters/kpi-tiles.d.ts +8 -3
- package/dist/adapters/kpi-tiles.d.ts.map +1 -1
- package/dist/adapters/kpi-tiles.js +35 -15
- package/dist/adapters/kpi-tiles.js.map +1 -1
- package/dist/adapters/transcript/sections.d.ts +5 -0
- package/dist/adapters/transcript/sections.d.ts.map +1 -1
- package/dist/adapters/transcript/sections.js +7 -1
- package/dist/adapters/transcript/sections.js.map +1 -1
- package/dist/contraagent-ui.js +689 -700
- package/dist/elements/lists/ca-contracts.d.ts +3 -4
- package/dist/elements/lists/ca-contracts.d.ts.map +1 -1
- package/dist/elements/lists/ca-contracts.js +25 -19
- package/dist/elements/lists/ca-contracts.js.map +1 -1
- package/dist/elements/overview/ca-kpis.d.ts +3 -1
- package/dist/elements/overview/ca-kpis.d.ts.map +1 -1
- package/dist/elements/overview/ca-kpis.js +7 -2
- package/dist/elements/overview/ca-kpis.js.map +1 -1
- package/dist/elements/overview/ca-model-usage.d.ts +2 -1
- package/dist/elements/overview/ca-model-usage.d.ts.map +1 -1
- package/dist/elements/overview/ca-model-usage.js +3 -2
- package/dist/elements/overview/ca-model-usage.js.map +1 -1
- package/dist/elements/overview/ca-overview.d.ts +1 -5
- package/dist/elements/overview/ca-overview.d.ts.map +1 -1
- package/dist/elements/overview/ca-overview.js +53 -77
- package/dist/elements/overview/ca-overview.js.map +1 -1
- package/dist/elements/overview/ca-pipeline-graph.d.ts +8 -1
- package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -1
- package/dist/elements/overview/ca-pipeline-graph.js +11 -6
- package/dist/elements/overview/ca-pipeline-graph.js.map +1 -1
- package/dist/elements/overview/ca-run-driver.d.ts.map +1 -1
- package/dist/elements/overview/ca-run-driver.js +6 -5
- package/dist/elements/overview/ca-run-driver.js.map +1 -1
- package/dist/elements/overview/ca-workers.js +1 -1
- package/dist/elements/overview/pipeline-graph/strings.js +3 -3
- package/dist/elements/overview/pipeline-graph/strings.js.map +1 -1
- package/dist/elements/shared/ca-definition.d.ts.map +1 -1
- package/dist/elements/shared/ca-definition.js +1 -2
- package/dist/elements/shared/ca-definition.js.map +1 -1
- package/dist/elements/shell/ca-hosts.d.ts.map +1 -1
- package/dist/elements/shell/ca-hosts.js +1 -2
- package/dist/elements/shell/ca-hosts.js.map +1 -1
- package/dist/elements/shell/ca-monitor.d.ts +3 -1
- package/dist/elements/shell/ca-monitor.d.ts.map +1 -1
- package/dist/elements/shell/ca-monitor.js +20 -9
- package/dist/elements/shell/ca-monitor.js.map +1 -1
- package/dist/elements/shell/ca-run-picker.js +1 -1
- package/dist/elements/shell/ca-run-picker.js.map +1 -1
- package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -1
- package/dist/elements/shell/ca-theme-switch.js +6 -1
- package/dist/elements/shell/ca-theme-switch.js.map +1 -1
- package/dist/elements/task/ca-task-view.js +2 -2
- package/dist/elements/task/ca-task-view.js.map +1 -1
- package/dist/elements/task/ca-transcript.d.ts +3 -0
- package/dist/elements/task/ca-transcript.d.ts.map +1 -1
- package/dist/elements/task/ca-transcript.js +9 -2
- package/dist/elements/task/ca-transcript.js.map +1 -1
- package/dist/elements/task/header.d.ts +3 -0
- package/dist/elements/task/header.d.ts.map +1 -1
- package/dist/elements/task/header.js +22 -13
- package/dist/elements/task/header.js.map +1 -1
- package/dist/elements/task/panes/io.d.ts +1 -1
- package/dist/elements/task/panes/io.d.ts.map +1 -1
- package/dist/elements/task/panes/io.js +14 -21
- package/dist/elements/task/panes/io.js.map +1 -1
- package/dist/elements/trends/ca-trends.d.ts.map +1 -1
- package/dist/elements/trends/ca-trends.js +2 -1
- package/dist/elements/trends/ca-trends.js.map +1 -1
- package/dist/locales/ja.d.ts +16 -29
- package/dist/locales/ja.d.ts.map +1 -1
- package/dist/locales/ja.js +16 -29
- package/dist/locales/ja.js.map +1 -1
- package/dist/words/quota.d.ts +2 -0
- package/dist/words/quota.d.ts.map +1 -1
- package/dist/words/quota.js +4 -0
- package/dist/words/quota.js.map +1 -1
- package/dist/words/run-line.d.ts +5 -3
- package/dist/words/run-line.d.ts.map +1 -1
- package/dist/words/run-line.js +6 -4
- package/dist/words/run-line.js.map +1 -1
- package/dist/words/trends.d.ts +2 -2
- package/dist/words/trends.d.ts.map +1 -1
- package/dist/words/trends.js +5 -3
- package/dist/words/trends.js.map +1 -1
- package/package.json +3 -3
- package/src/adapters/journal-columns.ts +20 -6
- package/src/adapters/kpi-tiles.ts +37 -16
- package/src/adapters/transcript/sections.ts +10 -2
- package/src/elements/lists/ca-contracts.ts +25 -19
- package/src/elements/overview/ca-kpis.ts +4 -2
- package/src/elements/overview/ca-model-usage.ts +3 -2
- package/src/elements/overview/ca-overview.ts +49 -79
- package/src/elements/overview/ca-pipeline-graph.ts +11 -6
- package/src/elements/overview/ca-run-driver.ts +5 -6
- package/src/elements/overview/ca-workers.ts +1 -1
- package/src/elements/overview/pipeline-graph/strings.ts +3 -3
- package/src/elements/shared/ca-definition.ts +1 -2
- package/src/elements/shell/ca-hosts.ts +1 -2
- package/src/elements/shell/ca-monitor.ts +19 -8
- package/src/elements/shell/ca-run-picker.ts +1 -1
- package/src/elements/shell/ca-theme-switch.ts +6 -1
- package/src/elements/task/ca-task-view.ts +2 -2
- package/src/elements/task/ca-transcript.ts +7 -2
- package/src/elements/task/header.ts +24 -14
- package/src/elements/task/panes/io.ts +14 -21
- package/src/elements/trends/ca-trends.ts +2 -1
- package/src/locales/ja.ts +16 -29
- package/src/words/quota.ts +6 -0
- package/src/words/run-line.ts +8 -5
- package/src/words/trends.ts +5 -3
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { type JournalRow, type Outputs, type Plan } from '@contraagent/api';
|
|
2
2
|
import { LitElement } from 'lit';
|
|
3
|
-
/** Output contracts per status, worst first; a line of text when none is declared. */
|
|
4
|
-
export declare function ctChips(outputs: Outputs | null): import("lit").TemplateResult<1> | import("lit").TemplateResult[];
|
|
5
3
|
/** A task as the reader names it: "kind · unit" (a run-scope task: its kind). */
|
|
6
4
|
export declare const taskName: (c: {
|
|
7
5
|
key: string;
|
|
@@ -10,8 +8,9 @@ export declare const taskName: (c: {
|
|
|
10
8
|
}) => string;
|
|
11
9
|
/**
|
|
12
10
|
* The files each task must write (`OutputContract`) and read (`InputContract`),
|
|
13
|
-
* problems first, each
|
|
14
|
-
*
|
|
11
|
+
* problems first, each with the chip of its status, then the passed ones under
|
|
12
|
+
* one chip; each checked field by field against its schema. Links open the
|
|
13
|
+
* task (`ca-open-task`).
|
|
15
14
|
*
|
|
16
15
|
* @fires ca-open-task - `{key, view}`: a link to the task's input, output or transcript
|
|
17
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-contracts.d.ts","sourceRoot":"","sources":["../../../src/elements/lists/ca-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiG,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAoB,MAAM,kBAAkB,CAAC;AAE7L,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ca-contracts.d.ts","sourceRoot":"","sources":["../../../src/elements/lists/ca-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiG,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAoB,MAAM,kBAAkB,CAAC;AAE7L,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAsBrD,iFAAiF;AACjF,eAAO,MAAM,QAAQ,GAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,MACS,CAAC;AAKtF;;;;;;;GAOG;AACH,qBAEa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0DA2BpB;IAE8B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC/D,yDAAyD;IAC7C,GAAG,SAAM;IACrB,6EAA6E;IAC7C,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3D,yGAAyG;IACzE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzD,OAAO,CAAC,QAAQ,CAA+C;IAE/D,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;IAEzD,MAAM;IAkCf,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,GAAG;IAOX,8FAA8F;IAC9F,OAAO,CAAC,UAAU,CAMhB;IAEF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,MAAM;IAgCd,OAAO,CAAC,KAAK;CAcd;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
|
|
@@ -13,17 +13,14 @@ import { emit } from '../../core/events.js';
|
|
|
13
13
|
import { RememberedSet } from '../../core/memory.js';
|
|
14
14
|
import { base } from '@contraagent/elements/styles';
|
|
15
15
|
import { executorIcon, executorIconStyles } from '../../words/executor.js';
|
|
16
|
-
import { kindUnit } from '../../words/format.js';
|
|
17
|
-
import { correctionRoundTip, correctionRoundsLabel, notRunText } from '../../words/contract.js';
|
|
16
|
+
import { facts, kindUnit } from '../../words/format.js';
|
|
17
|
+
import { contractStatusLabel, correctionRoundTip, correctionRoundsLabel, notRunText } from '../../words/contract.js';
|
|
18
18
|
import { contractChip, contractStyles, fieldCheckTable, fileConditions, inputChip } from '../shared/contract-parts.js';
|
|
19
19
|
const CT_ORDER = ['invalid', 'refused', 'failed', 'running', 'pending', 'valid'];
|
|
20
|
-
/** Output contracts per status, worst first
|
|
21
|
-
|
|
20
|
+
/** Output contracts per status that is not passed, worst first: the passed ones head their own group. */
|
|
21
|
+
function ctChips(outputs) {
|
|
22
22
|
const t = outputs?.tally;
|
|
23
|
-
|
|
24
|
-
return chips.length
|
|
25
|
-
? chips.map((k) => contractChip(k, t?.[k]))
|
|
26
|
-
: html `<span class="meta">${msg('No checked files')}</span>`;
|
|
23
|
+
return (t ? CT_ORDER.filter((k) => k !== 'valid' && t[k]) : []).map((k) => contractChip(k, t?.[k]));
|
|
27
24
|
}
|
|
28
25
|
const shortPath = (p) => p.split('/').slice(-2).join('/');
|
|
29
26
|
/** A task as the reader names it: "kind · unit" (a run-scope task: its kind). */
|
|
@@ -32,8 +29,9 @@ export const taskName = (c) => kindUnit({ kind: c.kind || c.key, unit: c.unit &&
|
|
|
32
29
|
const rank = (s) => (s ? CT_ORDER.indexOf(s) : CT_ORDER.length);
|
|
33
30
|
/**
|
|
34
31
|
* The files each task must write (`OutputContract`) and read (`InputContract`),
|
|
35
|
-
* problems first, each
|
|
36
|
-
*
|
|
32
|
+
* problems first, each with the chip of its status, then the passed ones under
|
|
33
|
+
* one chip; each checked field by field against its schema. Links open the
|
|
34
|
+
* task (`ca-open-task`).
|
|
37
35
|
*
|
|
38
36
|
* @fires ca-open-task - `{key, view}`: a link to the task's input, output or transcript
|
|
39
37
|
*/
|
|
@@ -67,6 +65,8 @@ let CaContracts = class CaContracts extends LitElement {
|
|
|
67
65
|
css `
|
|
68
66
|
:host { display: block; container-type: inline-size; }
|
|
69
67
|
.ct-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
|
|
68
|
+
/* the passed outputs: one chip heads them, their rows carry none */
|
|
69
|
+
.passed { margin: 6px 0 0; padding: 10px 0 8px; font: inherit; border-top: 1px solid var(--line); }
|
|
70
70
|
details.ct { border-top: 1px solid var(--line); }
|
|
71
71
|
details.ct > summary { list-style: none; cursor: pointer; padding: 7px 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
|
|
72
72
|
details.ct > summary > * { min-width: 0; overflow-wrap: anywhere; }
|
|
@@ -90,24 +90,30 @@ let CaContracts = class CaContracts extends LitElement {
|
|
|
90
90
|
const cs = this.outputs?.contracts ?? [];
|
|
91
91
|
this.outcomes = this.plan ? deriveRun(this.journal, this.plan).outcomes : new Map();
|
|
92
92
|
if (!cs.length) {
|
|
93
|
-
return html `<div class="blank"><span class="ic" aria-hidden="true">▣</span><b>${msg('No checked files')}</b
|
|
94
|
-
<span>${msg('No task declares an OutputContract or an InputContract')}</span></div>`;
|
|
93
|
+
return html `<div class="blank"><span class="ic" aria-hidden="true">▣</span><b>${facts(msg('No checked files'), msg('no task declares an OutputContract or an InputContract'))}</b></div>`;
|
|
95
94
|
}
|
|
96
95
|
const outs = cs
|
|
97
96
|
.flatMap((c) => (c.outputs ?? []).map((o) => [c, o]))
|
|
98
97
|
.sort(([a, x], [b, y]) => rank(x.status) - rank(y.status) || a.key.localeCompare(b.key));
|
|
99
98
|
const ins = cs.flatMap((c) => (c.inputs ?? []).map((i) => [c, i]));
|
|
99
|
+
const others = outs.filter(([, o]) => o.status !== 'valid');
|
|
100
|
+
const passed = outs.filter(([, o]) => o.status === 'valid');
|
|
101
|
+
const chips = ctChips(this.outputs);
|
|
100
102
|
return html `<div class="g12">
|
|
101
103
|
<section class="panel c12">
|
|
102
|
-
<h3 title=${msg('OutputContract')}>${msg('Outputs')}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
${
|
|
104
|
+
<h3 title=${msg('Files each task must write (OutputContract)')}>${msg('Outputs')}</h3>
|
|
105
|
+
${chips.length ? html `<div class="ct-row">${chips}</div>` : nothing}
|
|
106
|
+
${repeat(others, ([c, o]) => `out|${c.key}|${o.path}`, ([c, o]) => this.outRow(c, o))}
|
|
107
|
+
${passed.length
|
|
108
|
+
? html `<h4 class="passed">${contractChip('valid', passed.length)}</h4>
|
|
109
|
+
<div role="group" aria-label=${contractStatusLabel('valid')}>
|
|
110
|
+
${repeat(passed, ([c, o]) => `out|${c.key}|${o.path}`, ([c, o]) => this.outRow(c, o))}
|
|
111
|
+
</div>`
|
|
112
|
+
: nothing}
|
|
106
113
|
</section>
|
|
107
114
|
${ins.length
|
|
108
115
|
? html `<section class="panel c12">
|
|
109
|
-
<h3 title=${msg('InputContract')}>${msg('Inputs')}
|
|
110
|
-
<span class="r">${msg('Files each task reads')}</span></h3>
|
|
116
|
+
<h3 title=${msg('Files each task reads (InputContract)')}>${msg('Inputs')}</h3>
|
|
111
117
|
${repeat(ins, ([c, i]) => `in|${c.key}|${i.path}`, ([c, i]) => this.inRow(c, i))}
|
|
112
118
|
</section>`
|
|
113
119
|
: nothing}
|
|
@@ -155,7 +161,7 @@ let CaContracts = class CaContracts extends LitElement {
|
|
|
155
161
|
const errors = o.errors ?? [];
|
|
156
162
|
const name = taskName(c);
|
|
157
163
|
// The chip says why there is no file; the size column shows a size only when there is one.
|
|
158
|
-
return this.details(`out|${c.key}|${o.path}`, html `${contractChip(status)}
|
|
164
|
+
return this.details(`out|${c.key}|${o.path}`, html `${status === 'valid' ? nothing : contractChip(status)}
|
|
159
165
|
${rounds > 1 ? html `<span class="meta" title=${correctionRoundTip()}>${correctionRoundsLabel(rounds, status === 'valid')}</span>` : nothing}
|
|
160
166
|
${this.who(c)}
|
|
161
167
|
<span class="jmono jdim ct-path" title=${o.path}>${shortPath(o.path)}</span>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-contracts.js","sourceRoot":"","sources":["../../../src/elements/lists/ca-contracts.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAA2H,MAAM,kBAAkB,CAAC;AAC7L,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ca-contracts.js","sourceRoot":"","sources":["../../../src/elements/lists/ca-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,15 @@ import '@contraagent/elements/tiles/define';
|
|
|
14
14
|
* @csspart label - a tile's label
|
|
15
15
|
* @csspart value - a tile's value
|
|
16
16
|
* @csspart sub - each line under the value
|
|
17
|
-
* @csspart action - a tile's link
|
|
17
|
+
* @csspart action - a tile's link, over the whole tile
|
|
18
18
|
*/
|
|
19
19
|
export declare class CaKpis extends LitElement {
|
|
20
20
|
static styles: import("lit").CSSResult;
|
|
21
21
|
journal: JournalRow[];
|
|
22
22
|
/** The scheduled tasks; without it, tasks are counted from the journal. */
|
|
23
23
|
plan: Plan;
|
|
24
|
+
/** Leaves the kind with the highest cost out of the cost tile, for a page that shows the cost by kind beside it. */
|
|
25
|
+
noHighestCost: boolean;
|
|
24
26
|
private readonly onAction;
|
|
25
27
|
render(): import("lit").TemplateResult<1>;
|
|
26
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-kpis.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-kpis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,oCAAoC,CAAC;AAI5C;;;;;;;;;;;;;;GAcG;AACH,qBAEa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAEpB;IAE8B,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3D,2EAA2E;IAC3C,IAAI,EAAE,IAAI,CAA6B;
|
|
1
|
+
{"version":3,"file":"ca-kpis.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-kpis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,oCAAoC,CAAC;AAI5C;;;;;;;;;;;;;;GAcG;AACH,qBAEa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAEpB;IAE8B,OAAO,EAAE,UAAU,EAAE,CAAM;IAC3D,2EAA2E;IAC3C,IAAI,EAAE,IAAI,CAA6B;IACvE,oHAAoH;IACzD,aAAa,UAAS;IAEjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAKvB;IAEO,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
|
|
@@ -24,7 +24,7 @@ import { emit } from '../../core/events.js';
|
|
|
24
24
|
* @csspart label - a tile's label
|
|
25
25
|
* @csspart value - a tile's value
|
|
26
26
|
* @csspart sub - each line under the value
|
|
27
|
-
* @csspart action - a tile's link
|
|
27
|
+
* @csspart action - a tile's link, over the whole tile
|
|
28
28
|
*/
|
|
29
29
|
let CaKpis = class CaKpis extends LitElement {
|
|
30
30
|
constructor() {
|
|
@@ -32,6 +32,8 @@ let CaKpis = class CaKpis extends LitElement {
|
|
|
32
32
|
this.journal = [];
|
|
33
33
|
/** The scheduled tasks; without it, tasks are counted from the journal. */
|
|
34
34
|
this.plan = { nodes: [], groups: [] };
|
|
35
|
+
/** Leaves the kind with the highest cost out of the cost tile, for a page that shows the cost by kind beside it. */
|
|
36
|
+
this.noHighestCost = false;
|
|
35
37
|
this.onAction = (e) => {
|
|
36
38
|
e.stopPropagation();
|
|
37
39
|
const a = kpiAction(e.detail.action);
|
|
@@ -45,7 +47,7 @@ let CaKpis = class CaKpis extends LitElement {
|
|
|
45
47
|
:host { display: block; }
|
|
46
48
|
`; }
|
|
47
49
|
render() {
|
|
48
|
-
return html `<cae-stat-tiles exportparts="tiles, tile, label, value, sub, action" .tiles=${kpiTiles(this.journal, deriveRun(this.journal, this.plan))} @cae-action=${this.onAction}></cae-stat-tiles>`;
|
|
50
|
+
return html `<cae-stat-tiles exportparts="tiles, tile, label, value, sub, action" .tiles=${kpiTiles(this.journal, deriveRun(this.journal, this.plan), { highestCost: !this.noHighestCost })} @cae-action=${this.onAction}></cae-stat-tiles>`;
|
|
49
51
|
}
|
|
50
52
|
};
|
|
51
53
|
__decorate([
|
|
@@ -54,6 +56,9 @@ __decorate([
|
|
|
54
56
|
__decorate([
|
|
55
57
|
property({ attribute: false })
|
|
56
58
|
], CaKpis.prototype, "plan", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
property({ type: Boolean, attribute: 'no-highest-cost' })
|
|
61
|
+
], CaKpis.prototype, "noHighestCost", void 0);
|
|
57
62
|
CaKpis = __decorate([
|
|
58
63
|
customElement('ca-kpis'),
|
|
59
64
|
localized()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-kpis.js","sourceRoot":"","sources":["../../../src/elements/overview/ca-kpis.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AAGI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QAK2B,YAAO,GAAiB,EAAE,CAAC;QAC3D,2EAA2E;QAC3C,SAAI,GAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ca-kpis.js","sourceRoot":"","sources":["../../../src/elements/overview/ca-kpis.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AAGI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QAK2B,YAAO,GAAiB,EAAE,CAAC;QAC3D,2EAA2E;QAC3C,SAAI,GAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACvE,oHAAoH;QACzD,kBAAa,GAAG,KAAK,CAAC;QAEhE,aAAQ,GAAG,CAAC,CAAkC,EAAQ,EAAE;YACvE,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;;gBACtD,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC;IAKJ,CAAC;aApBiB,WAAM,GAAG,GAAG,CAAA;;GAE3B,AAFqB,CAEpB;IAeO,MAAM;QACb,OAAO,IAAI,CAAA,+EAA+E,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,gBAAgB,IAAI,CAAC,QAAQ,oBAAoB,CAAC;IAC9O,CAAC;;AAf+B;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uCAA4B;AAE3B;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oCAAwC;AAEZ;IAA1D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;6CAAuB;AATtE,MAAM;IAFlB,aAAa,CAAC,SAAS,CAAC;IACxB,SAAS,EAAE;GACC,MAAM,CAqBlB"}
|
|
@@ -3,7 +3,8 @@ import { LitElement } from 'lit';
|
|
|
3
3
|
import '@contraagent/elements/segmented/define';
|
|
4
4
|
/**
|
|
5
5
|
* What each model was used for in a run (`Plan.models`): the share of each model in
|
|
6
|
-
* the chosen measure (cost, tokens, time or agent sessions) as one bar
|
|
6
|
+
* the chosen measure (cost, tokens, time or agent sessions) as one bar (the table
|
|
7
|
+
* names each segment, so the bar has no names under it), and a table
|
|
7
8
|
* of every model with its share and every measure, and its peak context when
|
|
8
9
|
* a session on it reported one. A model keeps its colour, and
|
|
9
10
|
* its place, in the order it was first used, whatever the measure; past six models
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-model-usage.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-model-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,OAAO,wCAAwC,CAAC;AAUhD
|
|
1
|
+
{"version":3,"file":"ca-model-usage.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-model-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErF,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,OAAO,wCAAwC,CAAC;AAUhD;;;;;;;;GAQG;AACH,qBAEa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,0DAyBpB;IAE8B,MAAM,EAAE,SAAS,UAAU,EAAE,CAAM;IACnE,qGAAqG;IAC5F,OAAO,CAAC,OAAO,CAAyB;IAEjD,OAAO,CAAC,MAAM;IAKL,MAAM;CA2ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|
|
@@ -20,7 +20,8 @@ import { tokenCount } from '../../words/format.js';
|
|
|
20
20
|
const COLUMNS = ['cost', 'tokens', 'time', 'sessions'];
|
|
21
21
|
/**
|
|
22
22
|
* What each model was used for in a run (`Plan.models`): the share of each model in
|
|
23
|
-
* the chosen measure (cost, tokens, time or agent sessions) as one bar
|
|
23
|
+
* the chosen measure (cost, tokens, time or agent sessions) as one bar (the table
|
|
24
|
+
* names each segment, so the bar has no names under it), and a table
|
|
24
25
|
* of every model with its share and every measure, and its peak context when
|
|
25
26
|
* a session on it reported one. A model keeps its colour, and
|
|
26
27
|
* its place, in the order it was first used, whatever the measure; past six models
|
|
@@ -77,7 +78,7 @@ let CaModelUsage = class CaModelUsage extends LitElement {
|
|
|
77
78
|
@cae-change=${(e) => (this.measure = e.detail.value)}></cae-segmented>
|
|
78
79
|
</div>`
|
|
79
80
|
: nothing}
|
|
80
|
-
${shareBar(shareParts(this.models, measure), { label: measureLabel(measure) })}
|
|
81
|
+
${shareBar(shareParts(this.models, measure), { label: measureLabel(measure), names: false })}
|
|
81
82
|
<div class="wrap" data-scroll="x" tabindex="0" role="region" aria-label=${msg('Models')}>
|
|
82
83
|
<table>
|
|
83
84
|
<thead>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-model-usage.js","sourceRoot":"","sources":["../../../src/elements/overview/ca-model-usage.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAsC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,OAAO,GAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"ca-model-usage.js","sourceRoot":"","sources":["../../../src/elements/overview/ca-model-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,10 +41,8 @@ export declare class CaOverview extends LitElement {
|
|
|
41
41
|
render(): import("lit").TemplateResult<1>;
|
|
42
42
|
private runningCard;
|
|
43
43
|
private outputs;
|
|
44
|
-
/** While running, how far the run is; once over, how its tasks ended. */
|
|
44
|
+
/** While running, how far the run is; once over, the run's state and the tiles tell how its tasks ended. */
|
|
45
45
|
private progressLine;
|
|
46
|
-
/** "23 attempts | 4 not started": a task that never started has no attempt. */
|
|
47
|
-
private triesLine;
|
|
48
46
|
/** A link's click: no navigation of the page's own, then `go`. */
|
|
49
47
|
private nav;
|
|
50
48
|
private cursor;
|
|
@@ -58,8 +56,6 @@ export declare class CaOverview extends LitElement {
|
|
|
58
56
|
private problems;
|
|
59
57
|
/** A row's second line: one line, the whole of it in its tooltip. */
|
|
60
58
|
private metaLine;
|
|
61
|
-
/** For a finished run with problems: how many tasks are not done (the tasks resume=True runs again). */
|
|
62
|
-
private nextStep;
|
|
63
59
|
}
|
|
64
60
|
declare global {
|
|
65
61
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca-overview.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-overview.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ca-overview.d.ts","sourceRoot":"","sources":["../../../src/elements/overview/ca-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,IAAI,EAET,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAYrD,OAAO,0BAA0B,CAAC;AAClC,OAAO,cAAc,CAAC;AACtB,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,eAAe,CAAC;AACvB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,wBAAwB,CAAC;AAChC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AA0CzB;;;;;;;;;;GAUG;AACH,qBAEa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,0DAoEpB;IAE8B,KAAK,EAAG,QAAQ,CAAC;IACjB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChE,8BAA8B;IACE,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAG,IAAI,CAAC;IAChC,GAAG,SAAM;IACrB,sDAAsD;IAC1C,KAAK,SAAM;IACvB,qEAAqE;IACzD,IAAI,SAAM;IACtB,gEAAgE;IACpD,GAAG,SAAM;IAErB,OAAO,CAAC,EAAE;IAIV,mEAAmE;IACnE,OAAO,CAAC,IAAI;IAIH,MAAM;IA2Ff,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,OAAO;IAuCf,4GAA4G;IAC5G,OAAO,CAAC,YAAY;IAKpB,kEAAkE;IAClE,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,MAAM;IA2Bd,OAAO,CAAC,UAAU;IAqBlB,wFAAwF;IACxF,OAAO,CAAC,UAAU;IAIlB,gIAAgI;IAChI,OAAO,CAAC,OAAO;IAIf,gFAAgF;IAChF,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IA6EhB,qEAAqE;IACrE,OAAO,CAAC,QAAQ;CAGjB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { deriveRun, isPython, isRunLive, isRunPanel, typedBody, liveActivities, progress,
|
|
7
|
+
import { deriveRun, isPython, isRunLive, isRunPanel, typedBody, liveActivities, progress, runAccounts, runRelative, spendOf, } from '@contraagent/api';
|
|
8
8
|
import { localized, msg, str } from '@lit/localize';
|
|
9
9
|
import { LitElement, css, html, nothing } from 'lit';
|
|
10
10
|
import { customElement, property } from 'lit/decorators.js';
|
|
@@ -14,9 +14,9 @@ import { facts, kindUnit, localTime, sentence } from '../../words/format.js';
|
|
|
14
14
|
import { notStartedCause, outcomeLabel, stateCount, stopLabel } from '../../words/index.js';
|
|
15
15
|
import { base } from '@contraagent/elements/styles';
|
|
16
16
|
import { pill, statusWord } from '@contraagent/elements/primitives';
|
|
17
|
-
import {
|
|
17
|
+
import { outcomeTone } from '../../lib/tone.js';
|
|
18
18
|
import { contractChip, formatOf } from '../shared/contract-parts.js';
|
|
19
|
-
import { contractStatusLabel
|
|
19
|
+
import { contractStatusLabel } from '../../words/contract.js';
|
|
20
20
|
import { taskChip } from '../shared/task-chip.js';
|
|
21
21
|
import '../lists/ca-proc-tree.js';
|
|
22
22
|
import './ca-kpis.js';
|
|
@@ -126,11 +126,15 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
126
126
|
}
|
|
127
127
|
.ok { display: flex; align-items: baseline; gap: 6px; color: var(--text-2); }
|
|
128
128
|
.ok span[aria-hidden] { color: var(--status-done); }
|
|
129
|
-
/* a failed output
|
|
130
|
-
.ofl { grid-template-columns:
|
|
131
|
-
.ofl > .jstop { white-space: nowrap; }
|
|
129
|
+
/* a failed output, under the chip of its status: its task and what it is on one line, where under them */
|
|
130
|
+
.ofl { grid-template-columns: minmax(0, 1fr) auto; }
|
|
132
131
|
.ofl > b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
133
|
-
.ofl > .meta {
|
|
132
|
+
.ofl > .meta { overflow: hidden; text-overflow: ellipsis; }
|
|
133
|
+
.ofl > .meta:last-child { grid-column: 1 / -1; }
|
|
134
|
+
.ogroup + .ogroup, .ogroup + .ct-row { margin-top: 10px; }
|
|
135
|
+
/* a heading that is a link to its tab */
|
|
136
|
+
h3 a.hl { color: inherit; text-decoration: none; }
|
|
137
|
+
h3 a.hl:hover { color: var(--accent); text-decoration: underline; }
|
|
134
138
|
.ct-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
|
|
135
139
|
.pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 12px; }
|
|
136
140
|
.pcard { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: start; padding: 12px 14px; border-radius: 10px;
|
|
@@ -152,10 +156,8 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
152
156
|
.ofl > .meta { white-space: nowrap; }
|
|
153
157
|
.stopped { grid-column: 1 / 4; color: var(--text-muted); font-size: 11px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
|
|
154
158
|
.fl.muted { opacity: 0.7; }
|
|
155
|
-
|
|
156
|
-
.
|
|
157
|
-
.next { margin: 10px 2px 2px; font-size: 12px; color: var(--text-2); }
|
|
158
|
-
.next code { font-family: var(--mono); }
|
|
159
|
+
/* the tasks done after retrying: a group of their own under a rule, after the problems */
|
|
160
|
+
.recovered { margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--line); }
|
|
159
161
|
.more { font-size: 12px; margin: 6px 10px 0; }
|
|
160
162
|
`,
|
|
161
163
|
]; }
|
|
@@ -189,29 +191,27 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
189
191
|
<section class="panel enter problems">
|
|
190
192
|
<h3>${msg('Problems')}
|
|
191
193
|
<span class="r"><a class="lnk" href="#" @click=${(e) => this.nav(e, () => emit(this, 'ca-navigate', { tab: 'journal', stop: 'bad' }))}>${msg('Failed attempts in history')}</a></span></h3>
|
|
192
|
-
${this.problems(
|
|
194
|
+
${this.problems()}
|
|
193
195
|
</section>
|
|
194
196
|
<section class="panel enter outputs">
|
|
195
|
-
<h3 title=${msg('Checked files (OutputContract, InputContract)')}>${msg('Outputs')}
|
|
196
|
-
<span class="r"><a class="lnk" href="#" @click=${(e) => this.nav(e, () => this.go('outputs'))}>${msg('All outputs')}</a></span></h3>
|
|
197
|
+
<h3 title=${msg('Checked files (OutputContract, InputContract)')}><a class="hl" href="#" @click=${(e) => this.nav(e, () => this.go('outputs'))}>${msg('Outputs')}</a></h3>
|
|
197
198
|
${this.outputs()}
|
|
198
199
|
</section>
|
|
199
200
|
${running ? html `<div class="row">${this.runningCard(live, busy, max)}</div>` : nothing}
|
|
200
201
|
</div>
|
|
201
202
|
<section class="panel enter">
|
|
202
203
|
<h3 title=${msg('Every task the run scheduled, by kind (plan.jsonl)')}>${msg('Pipeline')}
|
|
203
|
-
|
|
204
|
+
${live ? html `<span class="r">${this.progressLine()}</span>` : nothing}</h3>
|
|
204
205
|
<ca-pipeline-graph .plan=${s.plan} .forecast=${s.forecast} .journal=${s.journal} .run=${this.run} .layer=${this.layer} .unit=${this.unit} .sel=${this.sel} ?live=${live}></ca-pipeline-graph>
|
|
205
206
|
</section>
|
|
206
207
|
<section class="panel enter">
|
|
207
208
|
<h3 title=${msg('Counted from every finished attempt (journal.jsonl)')}>${msg('Totals')}</h3>
|
|
208
|
-
<ca-kpis .journal=${s.journal} .plan=${s.plan}></ca-kpis>
|
|
209
|
+
<ca-kpis .journal=${s.journal} .plan=${s.plan} no-highest-cost></ca-kpis>
|
|
209
210
|
</section>
|
|
210
211
|
<div class="band parts">
|
|
211
212
|
${live
|
|
212
213
|
? html `<section class="panel enter">
|
|
213
|
-
<h3>${msg('Process tree')}
|
|
214
|
-
<span class="r"><a class="lnk" href="#" @click=${(e) => this.nav(e, () => this.go('procs'))}>${msg('All processes')}</a></span></h3>
|
|
214
|
+
<h3><a class="hl" href="#" @click=${(e) => this.nav(e, () => this.go('procs'))}>${msg('Process tree')}</a></h3>
|
|
215
215
|
<ca-proc-tree .procs=${s.procs}></ca-proc-tree>
|
|
216
216
|
</section>`
|
|
217
217
|
: nothing}
|
|
@@ -223,15 +223,13 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
223
223
|
: nothing}
|
|
224
224
|
${s.plan.models?.length
|
|
225
225
|
? html `<section class="panel enter">
|
|
226
|
-
<h3 title=${msg('What the agent sessions spent on each model, each model of a model switch counted separately (Plan.models)')}>${msg('Models')}
|
|
227
|
-
<span class="r">${s.plan.models.length === 1 ? msg('1 model') : msg(str `${s.plan.models.length} models`)}</span></h3>
|
|
226
|
+
<h3 title=${msg('What the agent sessions spent on each model, each model of a model switch counted separately (Plan.models)')}>${msg('Models')}</h3>
|
|
228
227
|
<ca-model-usage .models=${s.plan.models}></ca-model-usage>
|
|
229
228
|
</section>`
|
|
230
229
|
: nothing}
|
|
231
230
|
${runAccounts(s.journal).length || s.plan.rests?.length
|
|
232
231
|
? html `<section class="panel enter">
|
|
233
|
-
<h3 title=${msg('Account-wide | read at each agent session start')}>
|
|
234
|
-
${msg('Subscription usage')}<span class="r">${msg('Per account, first → last reading')}</span></h3>
|
|
232
|
+
<h3 title=${msg('Account-wide | first and last reading per account | read at each agent session start')}>${msg('Subscription usage')}</h3>
|
|
235
233
|
<ca-quota .journal=${s.journal} .caps=${s.plan.quota_caps ?? []} .rests=${s.plan.rests ?? []} .rule=${s.plan.quota_rule ?? ''} ?live=${live}></ca-quota>
|
|
236
234
|
</section>`
|
|
237
235
|
: nothing}
|
|
@@ -255,8 +253,7 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
255
253
|
</section>`
|
|
256
254
|
: nothing}
|
|
257
255
|
<section class="panel enter">
|
|
258
|
-
<h3>${msg('Timeline')}
|
|
259
|
-
<span class="r">${this.triesLine()}</span></h3>
|
|
256
|
+
<h3>${msg('Timeline')}</h3>
|
|
260
257
|
<ca-timeline .journal=${s.journal} .plan=${s.plan} .procs=${s.procs} .live=${live} .run=${this.run}></ca-timeline>
|
|
261
258
|
</section>
|
|
262
259
|
</div>`;
|
|
@@ -274,49 +271,39 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
274
271
|
if (!contracts.length) {
|
|
275
272
|
return html `<div class="meta">${msg('No output files')}</div>`;
|
|
276
273
|
}
|
|
277
|
-
const chips = CT_ORDER.filter((k) => tally[k]);
|
|
278
274
|
// Only what went wrong with a file; tasks that never started are the problems section's.
|
|
279
275
|
const bad = contracts
|
|
280
276
|
.flatMap((c) => (c.outputs ?? []).map((o) => [c, o]))
|
|
281
277
|
.filter(([, o]) => o.status === 'invalid' || o.status === 'failed');
|
|
282
278
|
const shown = bad.slice(0, OUTPUTS_SHOWN);
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
279
|
+
// The rows shown sit under the chip of their status; the other statuses are a row of chips after them.
|
|
280
|
+
const groups = CT_ORDER.filter((k) => tally[k] && shown.some(([, o]) => o.status === k));
|
|
281
|
+
const chips = CT_ORDER.filter((k) => tally[k] && !groups.includes(k));
|
|
282
|
+
return html `${groups.map((k) => html `<div class="ogroup" role="group" aria-label=${contractStatusLabel(k)}>
|
|
283
|
+
<div class="ct-row">${contractChip(k, tally[k])}</div>
|
|
284
|
+
${shown
|
|
285
|
+
.filter(([, o]) => o.status === k)
|
|
286
|
+
.map(([c, o]) => html `<button type="button" class="fl ofl" @click=${() => this.go('outputs')}>
|
|
287
|
+
<b class="jmono" title=${c.key}>${kindUnit({ kind: c.kind, unit: c.unit === c.key ? '' : c.unit })}</b>
|
|
288
|
+
<span class="meta">${formatOf(o)}</span>
|
|
289
|
+
<span class="meta" title=${runRelative(o.errors?.[0] || o.path, this.run)}>${runRelative(o.errors?.[0] || o.path, this.run)}</span>
|
|
290
|
+
</button>`)}
|
|
291
|
+
</div>`)}
|
|
295
292
|
${bad.length > shown.length
|
|
296
293
|
? html `<div class="more"><a class="lnk" href="#" @click=${(e) => this.nav(e, () => this.go('outputs'))}>${bad.length - shown.length === 1
|
|
297
294
|
? msg('1 more output')
|
|
298
295
|
: msg(str `${bad.length - shown.length} more outputs`)}</a></div>`
|
|
299
296
|
: nothing}
|
|
300
|
-
${
|
|
301
|
-
? html `<div class="
|
|
302
|
-
|
|
303
|
-
|
|
297
|
+
${chips.length || !groups.length
|
|
298
|
+
? html `<div class="ct-row">
|
|
299
|
+
${chips.length ? chips.map((k) => contractChip(k, tally[k])) : html `<span class="meta">${msg('No checked files')}</span>`}
|
|
300
|
+
</div>`
|
|
304
301
|
: nothing}`;
|
|
305
302
|
}
|
|
306
|
-
/** While running, how far the run is; once over, how its tasks ended. */
|
|
307
|
-
progressLine(
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
if (live || r.left) {
|
|
311
|
-
const p = progress(plan);
|
|
312
|
-
return facts(msg(str `${p.pct}%`), msg(str `${p.done} of ${p.total} tasks done`), p.partial ? stateCount('partial', p.partial) : '', p.skipped ? stateCount('skipped', p.skipped) : '', p.cancelled ? stateCount('cancelled', p.cancelled) : '');
|
|
313
|
-
}
|
|
314
|
-
return facts(stateCount('done', r.done), r.skipped ? stateCount('skipped', r.skipped) : '', r.failed ? stateCount('failed', r.failed) : '', r.notStarted ? stateCount('not_started', r.notStarted) : '', r.partial ? stateCount('partial', r.partial) : '', r.cancelled ? stateCount('cancelled', r.cancelled) : '');
|
|
315
|
-
}
|
|
316
|
-
/** "23 attempts | 4 not started": a task that never started has no attempt. */
|
|
317
|
-
triesLine() {
|
|
318
|
-
const { tries, notStarted } = deriveRun(this.state.journal, this.state.plan).tries;
|
|
319
|
-
return facts(tries === 1 ? msg('1 attempt') : msg(str `${tries} attempts`), notStarted ? stateCount('not_started', notStarted) : '');
|
|
303
|
+
/** While running, how far the run is; once over, the run's state and the tiles tell how its tasks ended. */
|
|
304
|
+
progressLine() {
|
|
305
|
+
const p = progress(this.state.plan);
|
|
306
|
+
return facts(msg(str `${p.pct}%`), msg(str `${p.done} of ${p.total} tasks done`), p.partial ? stateCount('partial', p.partial) : '', p.skipped ? stateCount('skipped', p.skipped) : '', p.cancelled ? stateCount('cancelled', p.cancelled) : '');
|
|
320
307
|
}
|
|
321
308
|
/** A link's click: no navigation of the page's own, then `go`. */
|
|
322
309
|
nav(e, go) {
|
|
@@ -379,7 +366,7 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
379
366
|
name(t) {
|
|
380
367
|
return kindUnit(t);
|
|
381
368
|
}
|
|
382
|
-
problems(
|
|
369
|
+
problems() {
|
|
383
370
|
const { outcomes, problems } = deriveRun(this.state.journal, this.state.plan);
|
|
384
371
|
const { failed, notStarted, partial, recovered } = problems;
|
|
385
372
|
const issues = failed.length + notStarted.length + partial.length;
|
|
@@ -423,36 +410,25 @@ let CaOverview = class CaOverview extends LitElement {
|
|
|
423
410
|
${this.metaLine(reason(t))}
|
|
424
411
|
</div>`)}
|
|
425
412
|
${rest(partial.length, PROBLEMS_SHOWN, 'partial')}
|
|
426
|
-
${recovered.length
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
413
|
+
${recovered.length
|
|
414
|
+
? html `<div class="recovered" role="group" aria-label=${sentence(outcomeLabel('recovered'))}>${repeat(recovered.slice(0, RECOVERED_SHOWN), (t) => t.key, (t) => {
|
|
415
|
+
const fails = t.tries.filter((a) => !a.ok).length;
|
|
416
|
+
const n = t.tries.length;
|
|
417
|
+
return html `<div class="fl muted" @click=${(e) => this.openRow(e, t)}>
|
|
431
418
|
${statusWord({ text: outcomeLabel('recovered'), tone: outcomeTone('recovered') })}
|
|
432
419
|
${this.nameButton(t)}<span></span>
|
|
433
420
|
<div class="meta">${fails === 1
|
|
434
|
-
|
|
435
|
-
|
|
421
|
+
? msg(str `Done on attempt ${n} | 1 failed attempt`)
|
|
422
|
+
: msg(str `Done on attempt ${n} | ${fails} failed attempts`)}</div>
|
|
436
423
|
</div>`;
|
|
437
|
-
|
|
438
|
-
${rest(recovered.length, RECOVERED_SHOWN, 'retried')}
|
|
439
|
-
|
|
424
|
+
})}
|
|
425
|
+
${rest(recovered.length, RECOVERED_SHOWN, 'retried')}</div>`
|
|
426
|
+
: nothing}`;
|
|
440
427
|
}
|
|
441
428
|
/** A row's second line: one line, the whole of it in its tooltip. */
|
|
442
429
|
metaLine(text) {
|
|
443
430
|
return html `<div class="meta" title=${text}>${text}</div>`;
|
|
444
431
|
}
|
|
445
|
-
/** For a finished run with problems: how many tasks are not done (the tasks resume=True runs again). */
|
|
446
|
-
nextStep(live, problemCount) {
|
|
447
|
-
if (live || !problemCount)
|
|
448
|
-
return nothing;
|
|
449
|
-
const c = deriveRun(this.state.journal, this.state.plan).counts;
|
|
450
|
-
// A partly done task is finished in this run, and not done: a resume runs it again.
|
|
451
|
-
const again = c.total - c.finished + c.partial;
|
|
452
|
-
if (!again)
|
|
453
|
-
return nothing;
|
|
454
|
-
return html `<div class="next" title="resume=True">${msg(str `${again} of ${c.total} tasks not done`)}</div>`;
|
|
455
|
-
}
|
|
456
432
|
};
|
|
457
433
|
__decorate([
|
|
458
434
|
property({ attribute: false })
|