@entelligentsia/forgecli 1.0.14 → 1.0.20

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/dist/CHANGELOG-forge-plugin.md +61 -0
  3. package/dist/extensions/forgecli/config-layer.d.ts +0 -16
  4. package/dist/extensions/forgecli/config-layer.js +0 -5
  5. package/dist/extensions/forgecli/config-layer.js.map +1 -1
  6. package/dist/extensions/forgecli/context-governor-compaction.d.ts +83 -0
  7. package/dist/extensions/forgecli/context-governor-compaction.js +302 -0
  8. package/dist/extensions/forgecli/context-governor-compaction.js.map +1 -0
  9. package/dist/extensions/forgecli/context-governor.d.ts +173 -0
  10. package/dist/extensions/forgecli/context-governor.js +618 -0
  11. package/dist/extensions/forgecli/context-governor.js.map +1 -0
  12. package/dist/extensions/forgecli/dashboard/component.d.ts +7 -4
  13. package/dist/extensions/forgecli/dashboard/component.js +80 -101
  14. package/dist/extensions/forgecli/dashboard/component.js.map +1 -1
  15. package/dist/extensions/forgecli/dashboard/register.js +7 -21
  16. package/dist/extensions/forgecli/dashboard/register.js.map +1 -1
  17. package/dist/extensions/forgecli/dashboard/theme.d.ts +27 -0
  18. package/dist/extensions/forgecli/dashboard/theme.js +91 -0
  19. package/dist/extensions/forgecli/dashboard/theme.js.map +1 -0
  20. package/dist/extensions/forgecli/fix-bug.js +59 -5
  21. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  22. package/dist/extensions/forgecli/forge-artifact-tool.js +2 -1
  23. package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
  24. package/dist/extensions/forgecli/forge-cli-schema.json +0 -4
  25. package/dist/extensions/forgecli/forge-subagent.d.ts +20 -1
  26. package/dist/extensions/forgecli/forge-subagent.js +17 -3
  27. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  28. package/dist/extensions/forgecli/forge-tools.js +3 -1
  29. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  30. package/dist/extensions/forgecli/hook-dispatcher.d.ts +3 -1
  31. package/dist/extensions/forgecli/hook-dispatcher.js +37 -3
  32. package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
  33. package/dist/extensions/forgecli/index.js +33 -1
  34. package/dist/extensions/forgecli/index.js.map +1 -1
  35. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +19 -14
  36. package/dist/extensions/forgecli/lib/halt-advisor.js +36 -13
  37. package/dist/extensions/forgecli/lib/halt-advisor.js.map +1 -1
  38. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +3 -2
  39. package/dist/extensions/forgecli/orchestrator-status-bar.js +90 -60
  40. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +1 -1
  41. package/dist/extensions/forgecli/run-sprint.d.ts +3 -1
  42. package/dist/extensions/forgecli/run-sprint.js +1 -0
  43. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  44. package/dist/extensions/forgecli/run-task.d.ts +34 -1
  45. package/dist/extensions/forgecli/run-task.js +144 -6
  46. package/dist/extensions/forgecli/run-task.js.map +1 -1
  47. package/dist/extensions/forgecli/thread-switcher.d.ts +4 -1
  48. package/dist/extensions/forgecli/thread-switcher.js +36 -21
  49. package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
  50. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +9 -0
  51. package/dist/forge-payload/.base-pack/workflows/plan_task.md +7 -0
  52. package/dist/forge-payload/.base-pack/workflows/review_code.md +4 -3
  53. package/dist/forge-payload/.base-pack/workflows/review_plan.md +4 -3
  54. package/dist/forge-payload/.base-pack/workflows/validate_task.md +4 -3
  55. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  56. package/dist/forge-payload/.schemas/migrations.json +132 -27
  57. package/dist/forge-payload/meta/workflows/meta-review-implementation.md +4 -3
  58. package/dist/forge-payload/meta/workflows/meta-review-plan.md +4 -3
  59. package/dist/forge-payload/meta/workflows/meta-validate.md +4 -3
  60. package/dist/forge-payload/tools/collate.cjs +32 -0
  61. package/dist/forge-payload/tools/postflight-gate.cjs +56 -10
  62. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import type { Theme } from "@earendil-works/pi-coding-agent";
2
- import type { Component, TUI } from "@earendil-works/pi-tui";
2
+ import type { Component, Focusable, TUI } from "@earendil-works/pi-tui";
3
3
  import type { OrchestratorTree } from "../orchestrator-tree.js";
4
4
  import type { NodeViewModel } from "./view-model.js";
5
5
  export interface DashboardState {
@@ -22,6 +22,7 @@ export declare class DashboardController {
22
22
  private state;
23
23
  private onInvalidate?;
24
24
  private refreshTimer?;
25
+ private disposed;
25
26
  private _handlers;
26
27
  constructor(tree: OrchestratorTree, initialCursorId?: string);
27
28
  setOnInvalidate(cb: () => void): void;
@@ -75,7 +76,11 @@ export declare class DashboardController {
75
76
  dispose(): void;
76
77
  getState(): DashboardState;
77
78
  }
78
- export declare class DashboardComponent implements Component {
79
+ export declare class DashboardComponent implements Component, Focusable {
80
+ /** IL3: Focusable — pi sets this to true when the overlay has
81
+ * keyboard focus. Without this, arrow-key and Escape events are
82
+ * swallowed at the overlay layer. (Lesson from config-TUI commit 07e886f.) */
83
+ focused: boolean;
79
84
  private controller;
80
85
  private theme;
81
86
  private tui;
@@ -86,7 +91,6 @@ export declare class DashboardComponent implements Component {
86
91
  invalidate(): void;
87
92
  dispose(): void;
88
93
  private renderTreePanel;
89
- private nodeGlyph;
90
94
  private renderDetailPanel;
91
95
  /** Render a cancel-confirmation dialog overlaid on the dashboard.
92
96
  * The dashboard content stays visible above and below the dialog.
@@ -97,6 +101,5 @@ export declare class DashboardComponent implements Component {
97
101
  * dismisses the cancel prompt, not the dashboard.
98
102
  */
99
103
  private overlayCancelConfirm;
100
- private statusLabel;
101
104
  private formatMetrics;
102
105
  }
@@ -20,11 +20,20 @@
20
20
  // manages the refresh timer, and handles input. DashboardComponent reads
21
21
  // only from the controller — never directly from the OrchestratorTree model.
22
22
  // This eliminates the boundary violations catalogued in the audit.
23
+ //
24
+ // Iron Laws conformance:
25
+ // IL1 — All visible strings route through dashboard/theme.ts helpers or
26
+ // theme.fg()/bg()/bold(). No raw glyphs.
27
+ // IL2 — Dual-layer width safety: screen renderers call truncateLines(),
28
+ // orchestrator applies truncateToWidth per line.
29
+ // IL3 — DashboardComponent implements Focusable (focused: boolean = false).
30
+ // IL7 — Timer unmount-safety: disposed flag guards interval callbacks.
23
31
  import { matchesKey, Key, truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
24
32
  import { getSessionRegistry } from "../session-registry.js";
25
33
  import { buildViewModel } from "./view-model.js";
26
34
  import { fmtTokenMeter } from "../viewport-renderer.js";
27
35
  import { paintTailLine } from "../viewport-theme.js";
36
+ import { cursor, nodeGlyph, statusLabel, dim, accentBold, warn, bold, border, collapseIndicator, promptExpandIcon, truncateLines, } from "./theme.js";
28
37
  // ── Word-wrap helper ───────────────────────────────────────────────────────────
29
38
  //
30
39
  // Splits a line (which may contain ANSI escape sequences) into multiple
@@ -99,7 +108,8 @@ function wrapLine(line, maxWidth) {
99
108
  lines.push(curLine);
100
109
  }
101
110
  return lines.length > 0 ? lines : [line];
102
- } // ── Refresh timer ───────────────────────────────────────────────────────────
111
+ }
112
+ // ── Refresh timer ───────────────────────────────────────────────────────────
103
113
  const REFRESH_INTERVAL_MS = 1000;
104
114
  // ── Controller ──────────────────────────────────────────────────────────────
105
115
  export class DashboardController {
@@ -108,6 +118,7 @@ export class DashboardController {
108
118
  state;
109
119
  onInvalidate;
110
120
  refreshTimer;
121
+ disposed = false; // IL7: guards interval callbacks after dispose
111
122
  _handlers;
112
123
  constructor(tree, initialCursorId) {
113
124
  this.tree = tree;
@@ -127,12 +138,14 @@ export class DashboardController {
127
138
  // On every model event, rebuild VM then invalidate the view.
128
139
  const onModelChange = () => {
129
140
  this.rebuildViewModel();
130
- this.onInvalidate?.();
141
+ if (!this.disposed)
142
+ this.onInvalidate?.();
131
143
  };
132
144
  const onTreeChange = (id) => {
133
145
  this.rebuildViewModel();
134
146
  this.autoExpandNewNode(id);
135
- this.onInvalidate?.();
147
+ if (!this.disposed)
148
+ this.onInvalidate?.();
136
149
  };
137
150
  this.tree.on("change", onModelChange);
138
151
  this.tree.on("tail", onModelChange);
@@ -268,7 +281,8 @@ export class DashboardController {
268
281
  // Cancel confirmation mode takes priority.
269
282
  if (this.state.cancelTargetId) {
270
283
  this.handleCancelConfirm(data);
271
- this.onInvalidate?.();
284
+ if (!this.disposed)
285
+ this.onInvalidate?.();
272
286
  return;
273
287
  }
274
288
  switch (this.state.focusPanel) {
@@ -279,7 +293,8 @@ export class DashboardController {
279
293
  this.handleDetailInput(data);
280
294
  break;
281
295
  }
282
- this.onInvalidate?.();
296
+ if (!this.disposed)
297
+ this.onInvalidate?.();
283
298
  }
284
299
  handleTreeInput(data) {
285
300
  if (matchesKey(data, Key.up)) {
@@ -478,6 +493,11 @@ export class DashboardController {
478
493
  if (this.refreshTimer)
479
494
  return;
480
495
  this.refreshTimer = setInterval(() => {
496
+ // IL7: guard against firing after dispose.
497
+ if (this.disposed) {
498
+ this.stopRefreshTimer();
499
+ return;
500
+ }
481
501
  if (!this.hasRunningNodes()) {
482
502
  // One last render to settle final frame, then stop timer.
483
503
  this.onInvalidate?.();
@@ -495,6 +515,7 @@ export class DashboardController {
495
515
  }
496
516
  // ── Cleanup ────────────────────────────────────────────────────────────
497
517
  dispose() {
518
+ this.disposed = true; // IL7: set before clearing timer so callback sees it
498
519
  this.stopRefreshTimer();
499
520
  for (const { event, handler } of this._handlers) {
500
521
  this.tree.off(event, handler);
@@ -507,6 +528,10 @@ export class DashboardController {
507
528
  }
508
529
  // ── View ────────────────────────────────────────────────────────────────────
509
530
  export class DashboardComponent {
531
+ /** IL3: Focusable — pi sets this to true when the overlay has
532
+ * keyboard focus. Without this, arrow-key and Escape events are
533
+ * swallowed at the overlay layer. (Lesson from config-TUI commit 07e886f.) */
534
+ focused = false;
510
535
  controller;
511
536
  theme;
512
537
  tui;
@@ -535,7 +560,7 @@ export class DashboardComponent {
535
560
  // ── Right panel: detail ─────────────────────────────────────────
536
561
  const rightLines = selectedNode
537
562
  ? this.renderDetailPanel(selectedNode, rightWidth)
538
- : [this.theme.fg("dim", "Select a node in the tree")];
563
+ : [dim("Select a node in the tree", this.theme)];
539
564
  // ── Compose ─────────────────────────────────────────────────────
540
565
  const termHeight = this.tui.terminal.rows;
541
566
  // Deduct 3 lines for top border, bottom border, and hints footer
@@ -563,35 +588,32 @@ export class DashboardComponent {
563
588
  paddedRightLines.push(rightLines[i + activeScroll] ?? "");
564
589
  }
565
590
  const lines = [];
566
- const border = (s) => this.theme.fg("border", s);
567
- const accent = (s) => this.theme.fg("accent", s);
568
591
  // ── Header ──────────────────────────────────────────────────────
569
592
  const headerText = ` Orchestrator Dashboard `;
570
- const headerPad = contentWidth - visibleWidth(border("")) - visibleWidth(accent(headerText));
571
- lines.push(border("╭") +
572
- accent(headerText) +
573
- border("─".repeat(Math.max(0, headerPad))) +
574
- border("╮"));
593
+ const headerPad = contentWidth - visibleWidth(border("", this.theme)) - visibleWidth(accentBold(headerText, this.theme));
594
+ lines.push(border("╭", this.theme) +
595
+ accentBold(headerText, this.theme) +
596
+ border("─".repeat(Math.max(0, headerPad)), this.theme) +
597
+ border("╮", this.theme));
575
598
  for (let i = 0; i < contentHeight; i++) {
576
599
  const left = truncateToWidth(paddedLeftLines[i], leftWidth);
577
600
  const right = truncateToWidth(paddedRightLines[i], rightWidth);
578
601
  const lPad = leftWidth - visibleWidth(left);
579
602
  const rPad = rightWidth - visibleWidth(right);
580
- lines.push(border("│") +
603
+ lines.push(border("│", this.theme) +
581
604
  left +
582
605
  " ".repeat(Math.max(0, lPad)) +
583
- border("│") +
606
+ border("│", this.theme) +
584
607
  " " +
585
608
  right +
586
609
  " ".repeat(Math.max(0, rPad)) +
587
- border("│"));
610
+ border("│", this.theme));
588
611
  }
589
612
  // ── Footer: bottom border + key hints + model/token meter ────────
590
- const dim = (s) => this.theme.fg("dim", s);
591
613
  const hintsBase = state.cancelTargetId
592
614
  ? " y confirm · n dismiss · esc close"
593
615
  : " ↑↓ nav · → expand · ← back · ⏎ focus · x cancel · esc close";
594
- lines.push(border("╰") + border("─".repeat(contentWidth)) + border("╯"));
616
+ lines.push(border("╰", this.theme) + border("─".repeat(contentWidth), this.theme) + border("╯", this.theme));
595
617
  // Aggregate model + token footer (mirrors ViewportFooterComponent).
596
618
  const aggUsage = this.controller.getAggregateUsage();
597
619
  const aggCompression = this.controller.getAggregateCompression();
@@ -603,18 +625,18 @@ export class DashboardComponent {
603
625
  : (activeModel?.provider ?? activeModel?.model ?? "");
604
626
  let footerLine = "";
605
627
  if (modelLabel && meter) {
606
- footerLine = `${hintsBase} ${dim(modelLabel)} Σ ${meter}${compSuffix}`;
628
+ footerLine = `${hintsBase} ${dim(modelLabel, this.theme)} Σ ${meter}${compSuffix}`;
607
629
  }
608
630
  else if (meter) {
609
631
  footerLine = `${hintsBase} Σ ${meter}${compSuffix}`;
610
632
  }
611
633
  else if (modelLabel) {
612
- footerLine = `${hintsBase} ${dim(modelLabel)}`;
634
+ footerLine = `${hintsBase} ${dim(modelLabel, this.theme)}`;
613
635
  }
614
636
  else {
615
637
  footerLine = hintsBase;
616
638
  }
617
- lines.push(dim(truncateToWidth(footerLine, width)));
639
+ lines.push(dim(truncateToWidth(footerLine, width), this.theme));
618
640
  // ── Overlay cancel confirmation on top of dashboard content ────
619
641
  if (state.cancelTargetId) {
620
642
  return this.overlayCancelConfirm(lines, width, state.cancelTargetId);
@@ -641,11 +663,11 @@ export class DashboardComponent {
641
663
  // ── Tree panel renderer ─────────────────────────────────────────────────
642
664
  renderTreePanel(visibleIds, state, width) {
643
665
  if (visibleIds.length === 0) {
644
- return [this.theme.fg("dim", "No session running")];
666
+ return [dim("No session running", this.theme)];
645
667
  }
646
668
  const lines = [];
647
669
  // Header
648
- lines.push(this.theme.bold(this.theme.fg("accent", " Phases")));
670
+ lines.push(accentBold(" Phases", this.theme));
649
671
  for (const id of visibleIds) {
650
672
  const node = this.controller.getNode(id);
651
673
  if (!node)
@@ -653,93 +675,71 @@ export class DashboardComponent {
653
675
  const isCursor = id === state.cursorId;
654
676
  const depth = node.depth;
655
677
  const indent = " ".repeat(depth * 2);
678
+ // IL1: themed cursor and glyphs — no raw characters.
679
+ const cursorChar = cursor(isCursor, this.theme);
656
680
  // Status glyph
657
- const glyph = this.nodeGlyph(node);
681
+ const glyph = nodeGlyph(node.status, this.theme);
658
682
  // Progress label for orchestrators
659
683
  let label = node.label;
660
684
  if (node.kind === "orchestrator") {
661
685
  const prog = this.controller.getSubtreeProgress(id);
662
686
  label += ` ${prog.completed}/${prog.total}`;
663
687
  }
664
- // Expand indicator
688
+ // Expand/collapse indicator — themed
665
689
  const expandIndicator = node.kind === "orchestrator"
666
690
  ? state.expanded.has(id)
667
691
  ? " "
668
- : "▸"
692
+ : collapseIndicator(this.theme)
669
693
  : " ";
670
694
  // Combine
671
- const prefix = `${indent}${isCursor ? "❯" : " "} ${glyph} ${expandIndicator} `;
695
+ const prefix = `${indent}${cursorChar} ${glyph} ${expandIndicator} `;
672
696
  const styled = isCursor
673
697
  ? this.theme.bold(this.theme.fg("accent", `${prefix}${label}`))
674
698
  : `${prefix}${label}`;
675
699
  lines.push(truncateToWidth(styled, width));
676
700
  }
677
- return lines;
701
+ // IL2: dual-layer width safety — first guard in screen renderer.
702
+ return truncateLines(lines, width);
678
703
  }
679
- nodeGlyph(node) {
680
- switch (node.status) {
681
- case "completed":
682
- return this.theme.fg("success", "✔");
683
- case "running":
684
- return this.theme.fg("accent", "●");
685
- case "cancelling":
686
- return this.theme.fg("warning", "⏳");
687
- case "cancelled":
688
- return this.theme.fg("muted", "⊘");
689
- case "failed":
690
- return this.theme.fg("error", "✗");
691
- case "escalated":
692
- return this.theme.fg("error", "▲");
693
- case "pending":
694
- default:
695
- return this.theme.fg("dim", "○");
696
- }
697
- }
698
- // ── Detail panel renderer ────────────────────────────────────────────────
699
704
  renderDetailPanel(node, width) {
700
705
  const lines = [];
701
- const dim = (s) => this.theme.fg("dim", s);
702
- const accent = (s) => this.theme.fg("accent", s);
703
- const bold = (s) => this.theme.bold(s);
704
- const success = (s) => this.theme.fg("success", s);
705
- const warn = (s) => this.theme.fg("warning", s);
706
706
  // ── Header: label + status (wrap long model strings) ──────────────────
707
- const statusLabel = this.statusLabel(node.status);
707
+ const statusLabelStr = statusLabel(node.status);
708
708
  const modelPart = node.model ? ` · ${node.provider ?? ""} ${node.model}` : "";
709
- lines.push(...wrapLine(`${this.nodeGlyph(node)} ${bold(statusLabel)}${dim(modelPart)}`, width));
709
+ lines.push(...wrapLine(`${nodeGlyph(node.status, this.theme)} ${bold(statusLabelStr, this.theme)}${dim(modelPart, this.theme)}`, width));
710
710
  // ── Metrics line ────────────────────────────────────────────────
711
711
  const metrics = this.formatMetrics(node);
712
712
  if (metrics)
713
- lines.push(...wrapLine(dim(metrics), width));
713
+ lines.push(...wrapLine(dim(metrics, this.theme), width));
714
714
  lines.push("");
715
715
  // ── Orchestrator node: list children ─────────────────────────────
716
716
  if (node.kind === "orchestrator" && node.children.length > 0) {
717
717
  const children = this.controller.getChildren(node.id);
718
- lines.push(...wrapLine(dim(bold(`Agents · ${children.length}`)), width));
718
+ lines.push(...wrapLine(dim(bold(`Agents · ${children.length}`, this.theme), this.theme), width));
719
719
  for (const child of children) {
720
- const cglyph = this.nodeGlyph(child);
720
+ const cglyph = nodeGlyph(child.status, this.theme);
721
721
  const cmodel = child.model ? ` ${child.provider ?? ""} ${child.model}` : "";
722
722
  const cmetrics = this.formatMetrics(child);
723
723
  const cmetricsPart = cmetrics ? ` ${cmetrics}` : "";
724
- lines.push(...wrapLine(` ${cglyph} ${child.label}${dim(cmodel)}${dim(cmetricsPart)}`, width));
724
+ lines.push(...wrapLine(` ${cglyph} ${child.label}${dim(cmodel, this.theme)}${dim(cmetricsPart, this.theme)}`, width));
725
725
  }
726
726
  lines.push("");
727
727
  }
728
728
  // ── Prompt preview (expandable) ─────────────────────────────────
729
729
  if (node.promptPreview) {
730
- const expandIcon = this.controller.getState().promptExpanded ? "▼" : "▶";
730
+ const expandIcon = promptExpandIcon(this.controller.getState().promptExpanded, this.theme);
731
731
  const lineCount = node.promptPreview.split("\n").length;
732
- lines.push(...wrapLine(dim(`${expandIcon} Prompt · ${lineCount} lines · ⏎ expand`), width));
732
+ lines.push(...wrapLine(dim(`${expandIcon} Prompt · ${lineCount} lines · ⏎ expand`, this.theme), width));
733
733
  if (this.controller.getState().promptExpanded) {
734
734
  for (const pline of node.promptPreview.split("\n").slice(0, 20)) {
735
735
  // Indent wrapped prompt lines by 2 spaces
736
736
  const wrapped = wrapLine(pline, Math.max(0, width - 4));
737
737
  for (let i = 0; i < wrapped.length; i++) {
738
- lines.push(dim(i === 0 ? ` ${wrapped[i]}` : ` ${wrapped[i]}`));
738
+ lines.push(dim(i === 0 ? ` ${wrapped[i]}` : ` ${wrapped[i]}`, this.theme));
739
739
  }
740
740
  }
741
741
  if (lineCount > 20) {
742
- lines.push(dim(` … ${lineCount - 20} more lines`));
742
+ lines.push(dim(` … ${lineCount - 20} more lines`, this.theme));
743
743
  }
744
744
  }
745
745
  lines.push("");
@@ -747,7 +747,7 @@ export class DashboardComponent {
747
747
  // ── Activity: running full log of all turns ──────────────────────
748
748
  if (node.kind === "leaf" && node.tailBuffer.length > 0) {
749
749
  const total = node.tailBuffer.length;
750
- lines.push(...wrapLine(dim(`Activity · ${total} log line${total === 1 ? "" : "s"}`), width));
750
+ lines.push(...wrapLine(dim(`Activity · ${total} log line${total === 1 ? "" : "s"}`, this.theme), width));
751
751
  for (const tline of node.tailBuffer) {
752
752
  const painted = paintTailLine(tline, this.theme);
753
753
  lines.push(...wrapLine(painted, width));
@@ -756,7 +756,7 @@ export class DashboardComponent {
756
756
  }
757
757
  // ── Outcome ─────────────────────────────────────────────────────
758
758
  if (node.outcomePreview) {
759
- lines.push(dim("Outcome"));
759
+ lines.push(dim("Outcome", this.theme));
760
760
  for (const oline of node.outcomePreview.split("\n").slice(0, 8)) {
761
761
  const wrapped = wrapLine(oline, Math.max(0, width - 4));
762
762
  for (const wl of wrapped) {
@@ -765,10 +765,11 @@ export class DashboardComponent {
765
765
  }
766
766
  const lineCount = node.outcomePreview.split("\n").length;
767
767
  if (lineCount > 8) {
768
- lines.push(dim(` … ${lineCount - 8} more lines`));
768
+ lines.push(dim(` … ${lineCount - 8} more lines`, this.theme));
769
769
  }
770
770
  }
771
- return lines;
771
+ // IL2: dual-layer width safety — first guard in screen renderer.
772
+ return truncateLines(lines, width);
772
773
  }
773
774
  /** Render a cancel-confirmation dialog overlaid on the dashboard.
774
775
  * The dashboard content stays visible above and below the dialog.
@@ -781,34 +782,30 @@ export class DashboardComponent {
781
782
  overlayCancelConfirm(baseLines, width, targetId) {
782
783
  const node = this.controller.getNode(targetId);
783
784
  const label = node?.label ?? targetId;
784
- const dim = (s) => this.theme.fg("dim", s);
785
- const warn = (s) => this.theme.fg("warning", s);
786
- const bold = (s) => this.theme.bold(s);
787
- const brd = (s) => this.theme.fg("border", s);
788
785
  // Content width is the full width minus the two outer │ borders.
789
786
  const contentWidth = width - 2;
790
787
  // Build the dialog box (narrower than the full content area so it
791
788
  // floats with padding on each side).
792
789
  const dialogW = Math.min(contentWidth, 60);
793
790
  const diagLines = [];
794
- const prompt = warn(`⚠ Cancel ${bold(label)}?`);
795
- const actions = dim("y confirm · n dismiss · esc close");
791
+ const prompt = warn(`⚠ Cancel ${bold(label, this.theme)}?`, this.theme);
792
+ const actions = dim("y confirm · n dismiss · esc close", this.theme);
796
793
  const promptW = visibleWidth(prompt);
797
794
  const actionsW = visibleWidth(actions);
798
- diagLines.push(brd("╭") + brd("─".repeat(dialogW - 2)) + brd("╮"));
799
- diagLines.push(brd("│") + " ".repeat(dialogW - 2) + brd("│"));
795
+ diagLines.push(border("╭", this.theme) + border("─".repeat(dialogW - 2), this.theme) + border("╮", this.theme));
796
+ diagLines.push(border("│", this.theme) + " ".repeat(dialogW - 2) + border("│", this.theme));
800
797
  {
801
798
  // Place prompt and actions side by side when they fit; stack otherwise.
802
799
  const sideBySide = promptW + actionsW + 4 <= dialogW - 2;
803
800
  if (sideBySide) {
804
801
  const contentGap = Math.max(1, dialogW - 4 - promptW - actionsW);
805
- const contentLine = brd("│") + " " + prompt + " ".repeat(contentGap) + actions + " " + brd("│");
802
+ const contentLine = border("│", this.theme) + " " + prompt + " ".repeat(contentGap) + actions + " " + border("│", this.theme);
806
803
  if (visibleWidth(contentLine) < dialogW) {
807
804
  // Pad content line to full dialog width.
808
805
  const pad = dialogW - 2 - visibleWidth(contentLine.slice(1, -1));
809
- diagLines.push(brd("│") +
806
+ diagLines.push(border("│", this.theme) +
810
807
  " " + prompt + " ".repeat(contentGap + Math.max(0, pad)) + actions +
811
- " " + brd("│"));
808
+ " " + border("│", this.theme));
812
809
  }
813
810
  else {
814
811
  diagLines.push(contentLine);
@@ -817,13 +814,13 @@ export class DashboardComponent {
817
814
  else {
818
815
  // Stacked: prompt on one line, actions on the next.
819
816
  const promptPad = Math.max(0, dialogW - 2 - 1 - promptW - 1);
820
- diagLines.push(brd("│") + " " + prompt + " ".repeat(promptPad) + brd("│"));
817
+ diagLines.push(border("│", this.theme) + " " + prompt + " ".repeat(promptPad) + border("│", this.theme));
821
818
  const actionsPad = Math.max(0, dialogW - 2 - 1 - actionsW - 1);
822
- diagLines.push(brd("│") + " " + actions + " ".repeat(actionsPad) + brd("│"));
819
+ diagLines.push(border("│", this.theme) + " " + actions + " ".repeat(actionsPad) + border("│", this.theme));
823
820
  }
824
821
  }
825
- diagLines.push(brd("│") + " ".repeat(dialogW - 2) + brd("│"));
826
- diagLines.push(brd("╰") + brd("─".repeat(dialogW - 2)) + brd("╯"));
822
+ diagLines.push(border("│", this.theme) + " ".repeat(dialogW - 2) + border("│", this.theme));
823
+ diagLines.push(border("╰", this.theme) + border("─".repeat(dialogW - 2), this.theme) + border("╯", this.theme));
827
824
  // Center the dialog vertically within the content rows and
828
825
  // horizontally within the content area, preserving the outer │
829
826
  // borders on every row so the frame stays intact.
@@ -838,28 +835,10 @@ export class DashboardComponent {
838
835
  const rightPad = Math.max(0, contentWidth - leftPad - diagVisW);
839
836
  // Preserve the outer │ borders: left border + centered dialog + right border.
840
837
  result[startRow + i] =
841
- brd("│") + " ".repeat(leftPad) + diagLine + " ".repeat(rightPad) + brd("│");
838
+ border("│", this.theme) + " ".repeat(leftPad) + diagLine + " ".repeat(rightPad) + border("│", this.theme);
842
839
  }
843
840
  return result;
844
841
  }
845
- statusLabel(status) {
846
- switch (status) {
847
- case "completed":
848
- return "Completed";
849
- case "running":
850
- return "Running";
851
- case "cancelling":
852
- return "Cancelling…";
853
- case "cancelled":
854
- return "Cancelled";
855
- case "failed":
856
- return "Failed";
857
- case "escalated":
858
- return "Escalated";
859
- case "pending":
860
- return "Pending";
861
- }
862
- }
863
842
  formatMetrics(node) {
864
843
  const parts = [];
865
844
  if (node.usage.input || node.usage.output || node.usage.cacheRead) {
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/dashboard/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/dashboard/component.ts"],"names":[],"mappings":"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"}