@sentropic/track 0.10.1 → 0.10.2

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.
@@ -2,8 +2,13 @@ import { type Format } from '../report/format.js';
2
2
  import type { QueryFilter, ReportOptions } from '../report/build.js';
3
3
  import type { TrackReader } from './contract.js';
4
4
  /**
5
- * `report` rendered exactly as the CLI renders it (SPEC §7). When `options.wpTree` is set, the
6
- * Workpackages §2 rollup is appended (Markdown for text/md; carried on `report.wpTree` for json).
5
+ * `report` rendered exactly as the CLI renders it (SPEC §7).
6
+ *
7
+ * Default (no `--wp`): the flat bucket dump, unchanged (back-compat).
8
+ *
9
+ * `--wp` (report-revamp): the CONDUCTOR view ONLY — the 3-table FAIT / À-FAIRE(%·WP) / ATTENDUS
10
+ * status (the owner reports THROUGH it), NOT the flat buckets too. For `json` we carry the structured
11
+ * `wpTree` plus the global `wpTotals` so a conductor can render programmatically.
7
12
  */
8
13
  export declare function reportText(reader: TrackReader, options: ReportOptions, format: Format): string;
9
14
  /** `query` rendered exactly as the CLI renders it: raw JSON for `json`, else the row formatter. */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/read/commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0C,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ9F;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,MAAM,CAGR"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/read/commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAAyD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa9F;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,MAAM,CAGR"}
@@ -2,21 +2,27 @@
2
2
  // these pure functions: a `TrackReader` (no git/fs beyond the event log) + the SAME formatters, with
3
3
  // the adapter supplying `baselineCommit` (CLI from git HEAD, MCP from a tool argument). This is what
4
4
  // makes CLI≡MCP parity STRUCTURAL (one layer), not coincidental.
5
- import { formatReport, formatRows, formatWpTree } from '../report/format.js';
5
+ import { formatReport, formatRows, formatWpConductor, wpTotals } from '../report/format.js';
6
6
  /**
7
- * `report` rendered exactly as the CLI renders it (SPEC §7). When `options.wpTree` is set, the
8
- * Workpackages §2 rollup is appended (Markdown for text/md; carried on `report.wpTree` for json).
7
+ * `report` rendered exactly as the CLI renders it (SPEC §7).
8
+ *
9
+ * Default (no `--wp`): the flat bucket dump, unchanged (back-compat).
10
+ *
11
+ * `--wp` (report-revamp): the CONDUCTOR view ONLY — the 3-table FAIT / À-FAIRE(%·WP) / ATTENDUS
12
+ * status (the owner reports THROUGH it), NOT the flat buckets too. For `json` we carry the structured
13
+ * `wpTree` plus the global `wpTotals` so a conductor can render programmatically.
9
14
  */
10
15
  export function reportText(reader, options, format) {
11
16
  const report = reader.report(options);
12
- const base = formatReport(report, format);
13
- if (!options.wpTree || report.wpTree === undefined || format === 'json')
14
- return base;
15
- const tree = formatWpTree(report.wpTree);
16
- if (tree.length === 0)
17
- return base;
18
- const heading = format === 'md' ? '## WORKPACKAGES' : 'WORKPACKAGES';
19
- return `${base}\n${heading}\n${tree}`;
17
+ if (options.wpTree && report.wpTree !== undefined) {
18
+ if (format === 'json') {
19
+ // Additive: emit the whole report (buckets stay for back-compat) plus the global WP totals.
20
+ return `${JSON.stringify({ ...report, wpTotals: wpTotals(report.wpTree) }, null, 2)}\n`;
21
+ }
22
+ // Structured view ONLY — no flat bucket dump in --wp mode.
23
+ return formatWpConductor(report.wpTree, format);
24
+ }
25
+ return formatReport(report, format);
20
26
  }
21
27
  /** `query` rendered exactly as the CLI renders it: raw JSON for `json`, else the row formatter. */
22
28
  export function queryText(reader, filter, options, format) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/read/commands.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,qGAAqG;AACrG,qGAAqG;AACrG,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAA;AAIzF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,OAAsB,EAAE,MAAc;IACpF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAA;IACpE,OAAO,GAAG,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,CAAA;AACvC,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,MAAmB,EACnB,OAAsB,EACtB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAC5F,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/read/commands.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,qGAAqG;AACrG,qGAAqG;AACrG,iEAAiE;AAEjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAA;AAIxG;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,OAAsB,EAAE,MAAc;IACpF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAErC,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,4FAA4F;YAC5F,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;QACzF,CAAC;QACD,2DAA2D;QAC3D,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACrC,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,MAAmB,EACnB,OAAsB,EACtB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAC5F,CAAC"}
@@ -3,13 +3,38 @@ import type { WpNode } from './rollup.js';
3
3
  export type Format = 'json' | 'text' | 'md';
4
4
  export declare function formatReport(report: Report, format: Format): string;
5
5
  /**
6
- * Render the WP rollup forest as Markdown in agent-stats' shape (Workpackages §2):
6
+ * Render the WP rollup forest in agent-stats' shape (Workpackages §2):
7
7
  * - **WP1 · <title>** (done/total, pct%)
8
8
  * - **WP1.1 · <title>** (done/total, pct%)
9
9
  * - [x] <leaf> / [ ] <leaf>
10
10
  * `total` = `active` (DONE+TO-DO+AWAITED); DROPPED leaves are shown with `[~]` and excluded from %.
11
- * `pct` is `n/a` for a 0/0 node (never 100%). Titles are markdown-escaped (no formatting injection).
11
+ * `pct` is `n/a` for a 0/0 node (never 100%). `format` gates escaping `md` escapes markdown
12
+ * metacharacters (no formatting injection); `text` is CLEAN (no backslash leaks). Defaults to `md`.
12
13
  */
13
- export declare function formatWpTree(tree: readonly WpNode[]): string;
14
+ export declare function formatWpTree(tree: readonly WpNode[], format?: Format): string;
15
+ /** Global totals — the SUM of every WP node's directly-attached leaves across the forest (no double-count). */
16
+ export interface WpTotals {
17
+ done: number;
18
+ active: number;
19
+ dropped: number;
20
+ pct: number | 'n/a';
21
+ }
22
+ /**
23
+ * Sum the forest's leaves ONCE: every non-WP leaf is attached to exactly one node (`directLeaves`
24
+ * stops at sub-WP boundaries), so a flat walk over `node.leaves` is the true global total — never the
25
+ * roots' rolled-up counts (which would double-count nested sub-WP leaves).
26
+ */
27
+ export declare function wpTotals(tree: readonly WpNode[]): WpTotals;
28
+ /**
29
+ * Report-revamp — the 3-table CONDUCTOR view over the WP forest (the owner reports THROUGH this):
30
+ * FAIT — WPs at 100% + a global done/total, pct%.
31
+ * À-FAIRE (%·WP) — one row per non-100% WP `WPn · title — done/active pct%`, then its OPEN leaves
32
+ * (`◦ <title>`); DROPPED shown aside.
33
+ * ATTENDUS — AWAITED (blocked) leaves carrying a derived disposition tag
34
+ * (`décision: owner` when AWAITED-on-a-decision or carrying an open engagementRef,
35
+ * else `action: agent`).
36
+ * `format` gates escaping (md escapes; text is clean). The forest's leaves drive every section.
37
+ */
38
+ export declare function formatWpConductor(tree: readonly WpNode[], format: Format): string;
14
39
  export declare function formatRows(rows: ReportRow[], format: Format): string;
15
40
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAoD3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBnE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAc5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYpE"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAoD3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBnE;AAaD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAenF;AAED,+GAA+G;AAC/G,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAiB1D;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiDjF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYpE"}
@@ -67,23 +67,34 @@ export function formatReport(report, format) {
67
67
  }
68
68
  return lines.join('\n').trimEnd() + '\n';
69
69
  }
70
+ const pctStr = (p) => (p === 'n/a' ? 'n/a' : `${p}%`);
70
71
  /**
71
- * Render the WP rollup forest as Markdown in agent-stats' shape (Workpackages §2):
72
+ * Strip a redundant leading `WPn `/`WPn · `/`WPn -` prefix the WP item TITLE may already carry, so
73
+ * the renderer's derived `${label} · ` is never doubled (`WP1 · WP1 — …`). Case-insensitive on `WP`,
74
+ * tolerant of `—`/`·`/`-` separators and surrounding spaces; a title with no such prefix is unchanged.
75
+ */
76
+ function stripWpPrefix(s) {
77
+ return s.replace(/^WP\d+(?:\.\d+)*\s*[—·-]\s*/i, '');
78
+ }
79
+ /**
80
+ * Render the WP rollup forest in agent-stats' shape (Workpackages §2):
72
81
  * - **WP1 · <title>** (done/total, pct%)
73
82
  * - **WP1.1 · <title>** (done/total, pct%)
74
83
  * - [x] <leaf> / [ ] <leaf>
75
84
  * `total` = `active` (DONE+TO-DO+AWAITED); DROPPED leaves are shown with `[~]` and excluded from %.
76
- * `pct` is `n/a` for a 0/0 node (never 100%). Titles are markdown-escaped (no formatting injection).
85
+ * `pct` is `n/a` for a 0/0 node (never 100%). `format` gates escaping `md` escapes markdown
86
+ * metacharacters (no formatting injection); `text` is CLEAN (no backslash leaks). Defaults to `md`.
77
87
  */
78
- export function formatWpTree(tree) {
88
+ export function formatWpTree(tree, format = 'md') {
79
89
  const lines = [];
80
- const pct = (p) => (p === 'n/a' ? 'n/a' : `${p}%`);
90
+ const bold = (s) => (format === 'md' ? `**${s}**` : s);
81
91
  const render = (node, depth) => {
82
92
  const indent = ' '.repeat(depth);
83
- lines.push(`${indent}- **${node.label} · ${title(node.title, 'md')}** (${node.done}/${node.active}, ${pct(node.pct)})`);
93
+ const label = `${node.label} · ${title(stripWpPrefix(node.title), format)}`;
94
+ lines.push(`${indent}- ${bold(label)} (${node.done}/${node.active}, ${pctStr(node.pct)})`);
84
95
  for (const leaf of node.leaves) {
85
96
  const box = leaf.bucket === 'DONE' ? '[x]' : leaf.bucket === 'DROPPED' ? '[~]' : '[ ]';
86
- lines.push(`${indent} - ${box} ${title(leaf.title, 'md')}`);
97
+ lines.push(`${indent} - ${box} ${title(leaf.title, format)}`);
87
98
  }
88
99
  for (const child of node.children)
89
100
  render(child, depth + 1);
@@ -92,6 +103,117 @@ export function formatWpTree(tree) {
92
103
  render(node, 0);
93
104
  return lines.join('\n') + (lines.length > 0 ? '\n' : '');
94
105
  }
106
+ /**
107
+ * Sum the forest's leaves ONCE: every non-WP leaf is attached to exactly one node (`directLeaves`
108
+ * stops at sub-WP boundaries), so a flat walk over `node.leaves` is the true global total — never the
109
+ * roots' rolled-up counts (which would double-count nested sub-WP leaves).
110
+ */
111
+ export function wpTotals(tree) {
112
+ let done = 0;
113
+ let active = 0;
114
+ let dropped = 0;
115
+ const walk = (node) => {
116
+ for (const l of node.leaves) {
117
+ if (l.bucket === 'DONE') {
118
+ done++;
119
+ active++;
120
+ }
121
+ else if (l.bucket === 'AWAITED' || l.bucket === 'TO-DO') {
122
+ active++;
123
+ }
124
+ else
125
+ dropped++;
126
+ }
127
+ for (const c of node.children)
128
+ walk(c);
129
+ };
130
+ for (const node of tree)
131
+ walk(node);
132
+ return { done, active, dropped, pct: active === 0 ? 'n/a' : Math.round((done / active) * 100) };
133
+ }
134
+ /** Open (non-DONE, non-DROPPED) leaves under a node — what À-FAIRE lists as `◦ <title>`. */
135
+ function openLeaves(node) {
136
+ const out = [];
137
+ const walk = (n) => {
138
+ for (const l of n.leaves)
139
+ if (l.bucket === 'TO-DO' || l.bucket === 'AWAITED')
140
+ out.push(l);
141
+ for (const c of n.children)
142
+ walk(c);
143
+ };
144
+ walk(node);
145
+ return out;
146
+ }
147
+ /** DROPPED leaves under a node — shown aside in À-FAIRE, excluded from %. */
148
+ function droppedLeaves(node) {
149
+ const out = [];
150
+ const walk = (n) => {
151
+ for (const l of n.leaves)
152
+ if (l.bucket === 'DROPPED')
153
+ out.push(l);
154
+ for (const c of n.children)
155
+ walk(c);
156
+ };
157
+ walk(node);
158
+ return out;
159
+ }
160
+ /**
161
+ * Report-revamp — the 3-table CONDUCTOR view over the WP forest (the owner reports THROUGH this):
162
+ * FAIT — WPs at 100% + a global done/total, pct%.
163
+ * À-FAIRE (%·WP) — one row per non-100% WP `WPn · title — done/active pct%`, then its OPEN leaves
164
+ * (`◦ <title>`); DROPPED shown aside.
165
+ * ATTENDUS — AWAITED (blocked) leaves carrying a derived disposition tag
166
+ * (`décision: owner` when AWAITED-on-a-decision or carrying an open engagementRef,
167
+ * else `action: agent`).
168
+ * `format` gates escaping (md escapes; text is clean). The forest's leaves drive every section.
169
+ */
170
+ export function formatWpConductor(tree, format) {
171
+ const lines = [];
172
+ const h = (label) => (format === 'md' ? `## ${label}` : label);
173
+ const wpLabel = (n) => `${n.label} · ${title(stripWpPrefix(n.title), format)}`;
174
+ // Flatten the forest to a label-bearing list so À-FAIRE/FAIT can iterate every (sub-)WP once.
175
+ const flat = [];
176
+ const collect = (n) => {
177
+ flat.push(n);
178
+ for (const c of n.children)
179
+ collect(c);
180
+ };
181
+ for (const n of tree)
182
+ collect(n);
183
+ const totals = wpTotals(tree);
184
+ // ---- FAIT — WPs at 100% + the global progress line ----
185
+ lines.push(h('FAIT'));
186
+ lines.push(`global: ${totals.done}/${totals.active}, ${pctStr(totals.pct)}`);
187
+ const fait = tree.filter((n) => n.pct === 100);
188
+ for (const n of fait)
189
+ lines.push(`- ${wpLabel(n)} (${n.done}/${n.active}, 100%)`);
190
+ lines.push('');
191
+ // ---- À-FAIRE (% par WP) — one row per non-100% top-level WP, its open leaves, dropped aside ----
192
+ lines.push(h('À-FAIRE (% par WP)'));
193
+ for (const n of tree) {
194
+ if (n.pct === 100)
195
+ continue;
196
+ lines.push(`- ${wpLabel(n)} — ${n.done}/${n.active} ${pctStr(n.pct)}`);
197
+ for (const l of openLeaves(n))
198
+ lines.push(` ◦ ${title(l.title, format)}`);
199
+ const dropped = droppedLeaves(n);
200
+ if (dropped.length > 0) {
201
+ lines.push(` (dropped: ${dropped.map((l) => title(l.title, format)).join(', ')})`);
202
+ }
203
+ }
204
+ lines.push('');
205
+ // ---- ATTENDUS (décision) — AWAITED leaves, with a derived disposition tag ----
206
+ lines.push(h('ATTENDUS (décision)'));
207
+ const attendus = flat.flatMap((n) => n.leaves
208
+ .filter((l) => l.bucket === 'AWAITED' || (l.engagementRef !== undefined && l.bucket !== 'DONE' && l.bucket !== 'DROPPED'))
209
+ .map((l) => ({ wp: n, leaf: l })));
210
+ for (const { wp, leaf } of attendus) {
211
+ const owner = leaf.awaitedOnDecision === true || leaf.engagementRef !== undefined;
212
+ const tag = owner ? 'décision: owner' : 'action: agent';
213
+ lines.push(`- ${title(leaf.title, format)} [${wp.label}] — ${tag}`);
214
+ }
215
+ return lines.join('\n').trimEnd() + '\n';
216
+ }
95
217
  export function formatRows(rows, format) {
96
218
  if (format === 'json')
97
219
  return JSON.stringify(rows, null, 2);
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { BUCKETS, bucketOf, type Bucket, type ReportConfig } from './buckets.js';
2
2
  export { buildReport, query, type DecisionRow, type QueryFilter, type Report, type ReportOptions, type ReportRow, } from './build.js';
3
- export { formatReport, formatRows, formatWpTree, type Format } from './format.js';
3
+ export { formatReport, formatRows, formatWpConductor, formatWpTree, wpTotals, type Format, type WpTotals, } from './format.js';
4
4
  export { computeWpTree, type WpLeaf, type WpNode } from './rollup.js';
5
5
  export { effectiveBlockerOpen, effectiveOpenBlockersForItem } from './blocker-status.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EACL,WAAW,EACX,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAEjF,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EACL,WAAW,EACX,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,KAAK,MAAM,EACX,KAAK,QAAQ,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  // report + query: bucket engine with SPEC §7 precedence (AWAITED > DROPPED > DONE > TO-DO).
2
2
  export { BUCKETS, bucketOf } from './buckets.js';
3
3
  export { buildReport, query, } from './build.js';
4
- export { formatReport, formatRows, formatWpTree } from './format.js';
4
+ export { formatReport, formatRows, formatWpConductor, formatWpTree, wpTotals, } from './format.js';
5
5
  // Workpackages §2 — the %-by-WP rollup forest (pure).
6
6
  export { computeWpTree } from './rollup.js';
7
7
  // Commit-relative blocker openness (v2.2a hybrid-A) — `linked-accepted` derived at projection time.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkC,MAAM,cAAc,CAAA;AAChF,OAAO,EACL,WAAW,EACX,KAAK,GAMN,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AACjF,sDAAsD;AACtD,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAA;AACrE,oGAAoG;AACpG,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkC,MAAM,cAAc,CAAA;AAChF,OAAO,EACL,WAAW,EACX,KAAK,GAMN,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GAGT,MAAM,aAAa,CAAA;AACpB,sDAAsD;AACtD,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAA;AACrE,oGAAoG;AACpG,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ItemId } from '../model/item.js';
1
+ import type { ItemId, ItemKind } from '../model/item.js';
2
2
  import type { State } from '../state/fold.js';
3
3
  import { type Bucket, type ReportConfig } from './buckets.js';
4
4
  /** A rolled-up leaf under a WP — its bucket drives both the % counts and the `[x]/[ ]` checkbox. */
@@ -6,6 +6,11 @@ export interface WpLeaf {
6
6
  id: ItemId;
7
7
  title: string;
8
8
  bucket: Bucket;
9
+ kind: ItemKind;
10
+ /** Present ⇒ an h2a ENGAGEMENT backs this leaf (report-revamp: ATTENDUS disposition signal). */
11
+ engagementRef?: string;
12
+ /** An open blocker on this leaf is `kind:'decision'` ⇒ an owner decision is pending (ATTENDUS). */
13
+ awaitedOnDecision?: boolean;
9
14
  }
10
15
  /** A node in the rolled-up WP forest. `id`/`title` are identity; `label` is the derived dotted code. */
11
16
  export interface WpNode {
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/report/rollup.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAEvE,oGAAoG;AACpG,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wGAAwG;AACxG,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;IACnB,8GAA8G;IAC9G,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAwF1E"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/report/rollup.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAGvE,oGAAoG;AACpG,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,QAAQ,CAAA;IACd,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,wGAAwG;AACxG,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;IACnB,8GAA8G;IAC9G,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAuG1E"}
@@ -8,6 +8,7 @@
8
8
  // Parent counts are the SUM of descendant leaves, NEVER the mean of child percentages (Simpson trap).
9
9
  // Each node's dotted display label (`WP1`, `WP1.1`) is DERIVED from tree position, never stored.
10
10
  import { bucketOf } from './buckets.js';
11
+ import { effectiveOpenBlockersForItem } from './blocker-status.js';
11
12
  /** A non-WP leaf reachable from a WP (a non-WP item with no non-WP… actually: any non-WP item). */
12
13
  function isWp(item) {
13
14
  return item.role === 'workpackage';
@@ -56,8 +57,20 @@ export function computeWpTree(state, config) {
56
57
  if (isWp(child))
57
58
  continue; // a sub-WP boundary — its leaves count under IT, not here
58
59
  const grandkids = childrenOf.get(child.id) ?? [];
59
- if (grandkids.length === 0)
60
- out.push({ id: child.id, title: child.title, bucket: bucketOf(state, child, config) });
60
+ if (grandkids.length === 0) {
61
+ const bucket = bucketOf(state, child, config);
62
+ // An open `kind:'decision'` blocker ⇒ an OWNER decision is pending (report-revamp ATTENDUS).
63
+ const awaitedOnDecision = bucket === 'AWAITED' &&
64
+ effectiveOpenBlockersForItem(state, child.id, config.baselineCommit).some((b) => b.kind === 'decision');
65
+ out.push({
66
+ id: child.id,
67
+ title: child.title,
68
+ bucket,
69
+ kind: child.kind,
70
+ ...(child.engagementRef !== undefined ? { engagementRef: child.engagementRef } : {}),
71
+ ...(awaitedOnDecision ? { awaitedOnDecision: true } : {}),
72
+ });
73
+ }
61
74
  else
62
75
  walk(child.id); // non-WP container — descend
63
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/report/rollup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/report/rollup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/track",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "Typed product-backlog and spec/plan/UAT system of record for the sentropic ecosystem (record-only MVP).",
5
5
  "license": "MIT",
6
6
  "author": "Fabien Antoine",