@unbrained/pm-web 2026.6.9 → 2026.6.13-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.
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["plan.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { api } from '../api.js';
6
6
  import { escHtml } from '../utils.js';
7
7
  import { toast } from '../components/toast.js';
8
8
  import { showModal, hideModal, createModal, confirmDialog } from '../components/modals.js';
9
+ import { buildPlanExecutionSnapshot, buildPlanAgentBrief, buildNextStepPrompt, type AnalyzedPlanStep, type PlanExecutionSnapshot } from './plan-execution.js';
9
10
 
10
11
  // ─── Types ───────────────────────────────────────────────────
11
12
 
@@ -39,6 +40,8 @@ type PlanData = {
39
40
  // ─── State ───────────────────────────────────────────────────
40
41
 
41
42
  let currentPlanId: string | null = null;
43
+ let currentPlanData: PlanData | null = null;
44
+ let currentExecutionSnapshot: PlanExecutionSnapshot | null = null;
42
45
 
43
46
  // ─── Helpers ─────────────────────────────────────────────────
44
47
 
@@ -60,10 +63,96 @@ function stepStatusBadge(status?: string): string {
60
63
  return `<span style="font-size:11px;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,${color} 18%,transparent);color:${color};font-weight:600;letter-spacing:.3px">${escHtml(s)}</span>`;
61
64
  }
62
65
 
63
- function renderStepRow(step: PlanStep, planId: string): string {
66
+ function metricBadge(label: string, value: string, color: string): string {
67
+ return `
68
+ <div style="padding:8px 10px;border-radius:8px;background:color-mix(in srgb,${color} 14%, var(--bg-card));border:1px solid color-mix(in srgb,${color} 28%, var(--border));min-width:95px">
69
+ <div style="font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px">${escHtml(label)}</div>
70
+ <div style="font-size:14px;font-weight:600;color:${color};margin-top:2px">${escHtml(value)}</div>
71
+ </div>`;
72
+ }
73
+
74
+ function renderDependencyHint(analyzed?: AnalyzedPlanStep): string {
75
+ if (!analyzed || analyzed.dependsOn.length === 0 || analyzed.isDone || analyzed.isBlocked) return '';
76
+
77
+ if (analyzed.incompleteDependencies.length === 0 && analyzed.unresolvedDependencies.length === 0) {
78
+ return `<div style="font-size:12px;color:var(--text-muted);margin-top:3px">Dependencies complete: ${escHtml(analyzed.dependsOn.join(', '))}</div>`;
79
+ }
80
+
81
+ const blockers = [
82
+ ...analyzed.incompleteDependencies,
83
+ ...analyzed.unresolvedDependencies.map(dep => `${dep} (missing)`),
84
+ ];
85
+ return `<div style="font-size:12px;color:var(--warning,#f59e0b);margin-top:3px">Waiting on: ${escHtml(blockers.join(', '))}</div>`;
86
+ }
87
+
88
+ function renderExecutionFocus(planId: string, snapshot: PlanExecutionSnapshot): string {
89
+ const next = snapshot.nextReadyStep;
90
+ const waitingPreview = snapshot.waitingSteps.slice(0, 2).map(step => {
91
+ const blockers = [
92
+ ...step.incompleteDependencies,
93
+ ...step.unresolvedDependencies.map(dep => `${dep} (missing)`),
94
+ ];
95
+ return `
96
+ <li style="font-size:12px;color:var(--text-secondary);line-height:1.5">
97
+ <span style="font-family:'JetBrains Mono',monospace;color:var(--text-muted)">[${escHtml(step.ref)}]</span>
98
+ ${escHtml(step.title)} - waiting on ${escHtml(blockers.join(', '))}
99
+ </li>`;
100
+ }).join('');
101
+ const blockedPreview = snapshot.blockedStepDetails.slice(0, 2).map(step => `
102
+ <li style="font-size:12px;color:var(--text-secondary);line-height:1.5">
103
+ <span style="font-family:'JetBrains Mono',monospace;color:var(--text-muted)">[${escHtml(step.ref)}]</span>
104
+ ${escHtml(step.title)}
105
+ ${step.blockedReason ? `<span style="color:var(--status-blocked)"> - ${escHtml(step.blockedReason)}</span>` : ''}
106
+ </li>`).join('');
107
+
108
+ return `
109
+ <div style="margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)">
110
+ <div style="display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:flex-start">
111
+ <div>
112
+ <div style="font-size:13px;font-weight:600">Execution Focus</div>
113
+ <div style="font-size:12px;color:var(--text-muted);margin-top:2px">Dependency-aware summary to guide agent execution.</div>
114
+ </div>
115
+ <div style="display:flex;gap:6px;flex-wrap:wrap">
116
+ <button class="btn btn-ghost btn-sm" onclick="window.__app.copyPlanAgentBrief('${escHtml(planId)}')" title="Copy dependency and status summary">Copy agent brief</button>
117
+ ${next ? `<button class="btn btn-secondary btn-sm" onclick="window.__app.copyPlanNextStepPrompt('${escHtml(planId)}','${escHtml(next.ref)}')" title="Copy prompt for the next ready step">Copy next-step prompt</button>` : ''}
118
+ </div>
119
+ </div>
120
+ <div style="display:flex;gap:8px;flex-wrap:wrap;margin-top:10px">
121
+ ${metricBadge('Complete', `${snapshot.completedSteps}/${snapshot.totalSteps}`, 'var(--status-closed)')}
122
+ ${metricBadge('Ready', String(snapshot.readySteps.length), 'var(--accent)')}
123
+ ${metricBadge('Waiting', String(snapshot.waitingSteps.length), 'var(--warning,#f59e0b)')}
124
+ ${metricBadge('Blocked', String(snapshot.blockedStepDetails.length), 'var(--status-blocked)')}
125
+ </div>
126
+ ${next
127
+ ? `<div style="margin-top:10px;font-size:12px;color:var(--text-secondary)">Next ready step: <span style="font-family:'JetBrains Mono',monospace;color:var(--text-muted)">[${escHtml(next.ref)}]</span> <strong>${escHtml(next.title)}</strong></div>`
128
+ : '<div style="margin-top:10px;font-size:12px;color:var(--text-muted)">No ready steps right now. Resolve blockers or dependencies to continue.</div>'}
129
+ ${waitingPreview
130
+ ? `<div style="margin-top:8px">
131
+ <div style="font-size:12px;font-weight:600;color:var(--text-secondary)">Waiting queue</div>
132
+ <ul style="margin:6px 0 0 16px;padding:0;display:flex;flex-direction:column;gap:4px">${waitingPreview}</ul>
133
+ ${snapshot.waitingSteps.length > 2 ? `<div style="font-size:11px;color:var(--text-muted);margin-top:4px">+ ${snapshot.waitingSteps.length - 2} more waiting step(s)</div>` : ''}
134
+ </div>`
135
+ : ''}
136
+ ${blockedPreview
137
+ ? `<div style="margin-top:8px">
138
+ <div style="font-size:12px;font-weight:600;color:var(--status-blocked)">Blocked steps</div>
139
+ <ul style="margin:6px 0 0 16px;padding:0;display:flex;flex-direction:column;gap:4px">${blockedPreview}</ul>
140
+ ${snapshot.blockedStepDetails.length > 2 ? `<div style="font-size:11px;color:var(--text-muted);margin-top:4px">+ ${snapshot.blockedStepDetails.length - 2} more blocked step(s)</div>` : ''}
141
+ </div>`
142
+ : ''}
143
+ </div>`;
144
+ }
145
+
146
+ function renderStepRow(step: PlanStep, planId: string, analyzed?: AnalyzedPlanStep): string {
64
147
  const ref = stepRef(step);
65
148
  const isDone = ['done', 'completed'].includes((step.status || '').toLowerCase());
66
149
  const isBlocked = (step.status || '').toLowerCase() === 'blocked';
150
+ const isWaiting = !!analyzed && !analyzed.isDone && !analyzed.isBlocked
151
+ && (analyzed.incompleteDependencies.length > 0 || analyzed.unresolvedDependencies.length > 0);
152
+ const promptTitle = isBlocked
153
+ ? 'Copy blocker-resolution prompt'
154
+ : (isWaiting ? 'Copy dependency-resolution prompt' : 'Copy execution prompt');
155
+ const dependencyHint = renderDependencyHint(analyzed);
67
156
  return `
68
157
  <div class="plan-step-row" data-step-ref="${escHtml(ref)}">
69
158
  <div style="flex:1;min-width:0">
@@ -73,9 +162,11 @@ function renderStepRow(step: PlanStep, planId: string): string {
73
162
  ${stepStatusBadge(step.status)}
74
163
  </div>
75
164
  ${step.description ? `<div style="font-size:12px;color:var(--text-muted);margin-top:3px">${escHtml(step.description)}</div>` : ''}
165
+ ${dependencyHint}
76
166
  ${isBlocked && (step.blockedReason || step.blocked_reason) ? `<div style="font-size:12px;color:var(--status-blocked);margin-top:3px">Blocked: ${escHtml(step.blockedReason || step.blocked_reason || '')}</div>` : ''}
77
167
  </div>
78
168
  <div style="display:flex;gap:6px;flex-shrink:0">
169
+ ${!isDone ? `<button class="btn btn-ghost btn-sm" onclick="window.__app.copyPlanNextStepPrompt('${escHtml(planId)}','${escHtml(ref)}')" title="${escHtml(promptTitle)}" ${isBlocked ? 'style="color:var(--status-blocked)"' : ''}>⧉</button>` : ''}
79
170
  ${!isDone ? `<button class="btn btn-ghost btn-sm" onclick="window.__app.planCompleteStep('${escHtml(planId)}','${escHtml(ref)}')" title="Mark complete">✓</button>` : ''}
80
171
  ${!isBlocked && !isDone ? `<button class="btn btn-ghost btn-sm" onclick="window.__app.planBlockStepPrompt('${escHtml(planId)}','${escHtml(ref)}')" title="Block">⊘</button>` : ''}
81
172
  <button class="btn btn-ghost btn-sm" onclick="window.__app.planRemoveStep('${escHtml(planId)}','${escHtml(ref)}')" title="Remove" style="color:var(--danger,#f87171)">✕</button>
@@ -112,6 +203,9 @@ export function renderPlanView(): string {
112
203
  export async function initPlanView(): Promise<void> {
113
204
  const el = document.getElementById('content-plan');
114
205
  if (!el) return;
206
+ currentPlanId = null;
207
+ currentPlanData = null;
208
+ currentExecutionSnapshot = null;
115
209
  if (!state.currentProject) {
116
210
  el.innerHTML = '<div class="empty-state"><div class="empty-state-text">No project selected</div></div>';
117
211
  return;
@@ -134,6 +228,9 @@ async function loadPlanList(): Promise<void> {
134
228
  if (subEl) subEl.textContent = state.currentProject.name;
135
229
 
136
230
  if (items.length === 0) {
231
+ currentPlanId = null;
232
+ currentPlanData = null;
233
+ currentExecutionSnapshot = null;
137
234
  listEl.innerHTML = '<div class="empty-state" style="padding:16px"><div class="empty-state-text">No plans yet</div></div>';
138
235
  return;
139
236
  }
@@ -172,38 +269,144 @@ export async function openPlanDetail(planId: string): Promise<void> {
172
269
  const data = await api('GET', `/projects/${state.currentProject.id}/pm/plan/${encodeURIComponent(planId)}`) as any;
173
270
  const plan = (data.plan || data) as PlanData;
174
271
  const steps = plan.steps || [];
272
+ const snapshot = buildPlanExecutionSnapshot(steps);
273
+ currentPlanData = plan;
274
+ currentExecutionSnapshot = snapshot;
175
275
 
176
276
  const isApproved = !!(plan.approvedAt || plan.approved_at);
177
277
 
178
- detailEl.innerHTML = `
179
- <div class="card">
180
- <div class="card-header" style="display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px">
181
- <div>
182
- <div class="card-title">${escHtml(plan.title || planId)}</div>
183
- <div style="font-size:12px;color:var(--text-muted);margin-top:2px;font-family:'JetBrains Mono',monospace">${escHtml(plan.id || planId)}</div>
184
- </div>
185
- <div style="display:flex;gap:8px;flex-wrap:wrap">
186
- ${!isApproved ? `<button class="btn btn-secondary btn-sm" onclick="window.__app.planApprove('${escHtml(planId)}')">✓ Approve</button>` : '<span style="font-size:12px;color:var(--status-closed)">✓ Approved</span>'}
187
- <button class="btn btn-primary btn-sm" onclick="window.__app.planMaterializePrompt('${escHtml(planId)}')">⇗ Materialize</button>
188
- <button class="btn btn-ghost btn-sm" onclick="window.__app.planEditPrompt('${escHtml(planId)}','${escHtml(plan.title||'')}')" title="Edit plan">✎</button>
189
- <button class="btn btn-ghost btn-sm" style="color:var(--danger,#f87171)" onclick="window.__app.planDeletePrompt('${escHtml(planId)}')" title="Delete plan">✕</button>
190
- </div>
191
- </div>
192
- <div class="card-body">
193
- ${plan.description ? `<div style="font-size:13px;color:var(--text-secondary);margin-bottom:12px">${escHtml(plan.description)}</div>` : ''}
194
- ${plan.scope ? `<div style="font-size:12px;color:var(--text-muted);margin-bottom:8px">Scope: ${escHtml(plan.scope)}</div>` : ''}
195
- <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px">
196
- <div style="font-size:13px;font-weight:600">Steps (${steps.length})</div>
197
- <button class="btn btn-ghost btn-sm" onclick="window.__app.openAddStepModal('${escHtml(planId)}')">+ Add Step</button>
198
- </div>
199
- <div id="plan-steps-list">
200
- ${steps.length === 0
201
- ? '<div style="font-size:13px;color:var(--text-muted);padding:8px 0">No steps yet. Add the first step to get started.</div>'
202
- : steps.map(s => renderStepRow(s, planId)).join('')}
203
- </div>
204
- </div>
205
- </div>`;
278
+ const card = document.createElement('div');
279
+ card.className = 'card';
280
+
281
+ const header = document.createElement('div');
282
+ header.className = 'card-header';
283
+ header.style.display = 'flex';
284
+ header.style.alignItems = 'center';
285
+ header.style.justifyContent = 'space-between';
286
+ header.style.flexWrap = 'wrap';
287
+ header.style.gap = '8px';
288
+
289
+ const heading = document.createElement('div');
290
+ const titleEl = document.createElement('div');
291
+ titleEl.className = 'card-title';
292
+ titleEl.textContent = plan.title || planId;
293
+ const idEl = document.createElement('div');
294
+ idEl.style.fontSize = '12px';
295
+ idEl.style.color = 'var(--text-muted)';
296
+ idEl.style.marginTop = '2px';
297
+ idEl.style.fontFamily = "'JetBrains Mono',monospace";
298
+ idEl.textContent = plan.id || planId;
299
+ heading.append(titleEl, idEl);
300
+
301
+ const actions = document.createElement('div');
302
+ actions.style.display = 'flex';
303
+ actions.style.gap = '8px';
304
+ actions.style.flexWrap = 'wrap';
305
+
306
+ if (!isApproved) {
307
+ const approveBtn = document.createElement('button');
308
+ approveBtn.className = 'btn btn-secondary btn-sm';
309
+ approveBtn.textContent = '✓ Approve';
310
+ approveBtn.addEventListener('click', () => { void planApprove(planId); });
311
+ actions.appendChild(approveBtn);
312
+ } else {
313
+ const approvedLabel = document.createElement('span');
314
+ approvedLabel.style.fontSize = '12px';
315
+ approvedLabel.style.color = 'var(--status-closed)';
316
+ approvedLabel.textContent = '✓ Approved';
317
+ actions.appendChild(approvedLabel);
318
+ }
319
+
320
+ const materializeBtn = document.createElement('button');
321
+ materializeBtn.className = 'btn btn-primary btn-sm';
322
+ materializeBtn.textContent = '⇗ Materialize';
323
+ materializeBtn.addEventListener('click', () => planMaterializePrompt(planId));
324
+ actions.appendChild(materializeBtn);
325
+
326
+ const editBtn = document.createElement('button');
327
+ editBtn.className = 'btn btn-ghost btn-sm';
328
+ editBtn.title = 'Edit plan';
329
+ editBtn.textContent = '✎';
330
+ editBtn.addEventListener('click', () => planEditPrompt(planId, plan.title || ''));
331
+ actions.appendChild(editBtn);
332
+
333
+ const deleteBtn = document.createElement('button');
334
+ deleteBtn.className = 'btn btn-ghost btn-sm';
335
+ deleteBtn.title = 'Delete plan';
336
+ deleteBtn.style.color = 'var(--danger,#f87171)';
337
+ deleteBtn.textContent = '✕';
338
+ deleteBtn.addEventListener('click', () => planDeletePrompt(planId));
339
+ actions.appendChild(deleteBtn);
340
+
341
+ header.append(heading, actions);
342
+
343
+ const body = document.createElement('div');
344
+ body.className = 'card-body';
345
+
346
+ if (plan.description) {
347
+ const descEl = document.createElement('div');
348
+ descEl.style.fontSize = '13px';
349
+ descEl.style.color = 'var(--text-secondary)';
350
+ descEl.style.marginBottom = '12px';
351
+ descEl.textContent = plan.description;
352
+ body.appendChild(descEl);
353
+ }
354
+
355
+ if (plan.scope) {
356
+ const scopeEl = document.createElement('div');
357
+ scopeEl.style.fontSize = '12px';
358
+ scopeEl.style.color = 'var(--text-muted)';
359
+ scopeEl.style.marginBottom = '8px';
360
+ scopeEl.textContent = `Scope: ${plan.scope}`;
361
+ body.appendChild(scopeEl);
362
+ }
363
+
364
+ const focusTemplate = document.createElement('template');
365
+ focusTemplate.innerHTML = renderExecutionFocus(planId, snapshot);
366
+ body.appendChild(focusTemplate.content);
367
+
368
+ const stepsHeader = document.createElement('div');
369
+ stepsHeader.style.display = 'flex';
370
+ stepsHeader.style.alignItems = 'center';
371
+ stepsHeader.style.justifyContent = 'space-between';
372
+ stepsHeader.style.marginBottom = '8px';
373
+
374
+ const stepsTitle = document.createElement('div');
375
+ stepsTitle.style.fontSize = '13px';
376
+ stepsTitle.style.fontWeight = '600';
377
+ stepsTitle.textContent = `Steps (${steps.length})`;
378
+
379
+ const addStepBtn = document.createElement('button');
380
+ addStepBtn.className = 'btn btn-ghost btn-sm';
381
+ addStepBtn.textContent = '+ Add Step';
382
+ addStepBtn.addEventListener('click', () => openAddStepModal(planId));
383
+
384
+ stepsHeader.append(stepsTitle, addStepBtn);
385
+ body.appendChild(stepsHeader);
386
+
387
+ const stepsList = document.createElement('div');
388
+ stepsList.id = 'plan-steps-list';
389
+ if (steps.length === 0) {
390
+ const emptySteps = document.createElement('div');
391
+ emptySteps.style.fontSize = '13px';
392
+ emptySteps.style.color = 'var(--text-muted)';
393
+ emptySteps.style.padding = '8px 0';
394
+ emptySteps.textContent = 'No steps yet. Add the first step to get started.';
395
+ stepsList.appendChild(emptySteps);
396
+ } else {
397
+ steps.forEach((step, index) => {
398
+ const rowTemplate = document.createElement('template');
399
+ rowTemplate.innerHTML = renderStepRow(step, planId, snapshot.allSteps[index]);
400
+ stepsList.appendChild(rowTemplate.content);
401
+ });
402
+ }
403
+ body.appendChild(stepsList);
404
+
405
+ card.append(header, body);
406
+ detailEl.replaceChildren(card);
206
407
  } catch(err: unknown) {
408
+ currentPlanData = null;
409
+ currentExecutionSnapshot = null;
207
410
  detailEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
208
411
  }
209
412
  }
@@ -434,6 +637,65 @@ export async function submitMaterializePlan(planId: string): Promise<void> {
434
637
  }
435
638
  }
436
639
 
640
+ async function copyTextWithFallback(modalTitle: string, text: string, successMessage: string): Promise<void> {
641
+ if (navigator.clipboard?.writeText) {
642
+ try {
643
+ await navigator.clipboard.writeText(text);
644
+ toast(successMessage, 'success');
645
+ return;
646
+ } catch {
647
+ // Fall through to manual-copy modal.
648
+ }
649
+ }
650
+
651
+ const modalId = 'plan-copy-fallback-modal';
652
+ createModal(modalId, modalTitle, `
653
+ <p style="font-size:12px;color:var(--text-muted);margin-bottom:8px">Clipboard access is unavailable in this browser context. Copy manually:</p>
654
+ <textarea class="form-textarea" id="plan-copy-fallback-text" rows="12" spellcheck="false"></textarea>`,
655
+ `<button class="btn btn-primary" onclick="window.__app.hideModal('${modalId}')">Close</button>`);
656
+ showModal(modalId);
657
+ const el = document.getElementById('plan-copy-fallback-text') as HTMLTextAreaElement | null;
658
+ if (el) {
659
+ el.value = text;
660
+ el.focus();
661
+ el.select();
662
+ }
663
+ toast('Clipboard blocked. Opened manual copy panel.', 'info');
664
+ }
665
+
666
+ function getCurrentPlanContext(planId: string): { plan: PlanData; snapshot: PlanExecutionSnapshot } | null {
667
+ const activeId = currentPlanData?.id || currentPlanId;
668
+ if (!currentPlanData || !currentExecutionSnapshot || activeId !== planId) {
669
+ toast('Open this plan first to generate prompts', 'info');
670
+ return null;
671
+ }
672
+ return { plan: currentPlanData, snapshot: currentExecutionSnapshot };
673
+ }
674
+
675
+ export async function copyPlanAgentBrief(planId: string): Promise<void> {
676
+ const ctx = getCurrentPlanContext(planId);
677
+ if (!ctx) return;
678
+ const brief = buildPlanAgentBrief(ctx.plan, ctx.snapshot);
679
+ await copyTextWithFallback('Plan Agent Brief', brief, 'Agent brief copied');
680
+ }
681
+
682
+ export async function copyPlanNextStepPrompt(planId: string, stepRef?: string): Promise<void> {
683
+ const ctx = getCurrentPlanContext(planId);
684
+ if (!ctx) return;
685
+
686
+ if (stepRef && !ctx.snapshot.stepByRef[stepRef]) {
687
+ toast(`Step ${stepRef} not found`, 'error');
688
+ return;
689
+ }
690
+ if (!stepRef && !ctx.snapshot.nextReadyStep) {
691
+ toast('No ready step available right now', 'info');
692
+ return;
693
+ }
694
+
695
+ const prompt = buildNextStepPrompt(ctx.plan, ctx.snapshot, stepRef);
696
+ await copyTextWithFallback('Next Step Prompt', prompt, 'Next-step prompt copied');
697
+ }
698
+
437
699
  export function planEditPrompt(planId: string, currentTitle: string): void {
438
700
  createModal('edit-plan-modal', 'Edit Plan', `
439
701
  <div class="form-group">
@@ -481,6 +743,8 @@ export function planDeletePrompt(planId: string): void {
481
743
  await api('DELETE', `/projects/${state.currentProject.id}/pm/plan/${encodeURIComponent(planId)}`, {});
482
744
  toast('Plan deleted', 'success');
483
745
  currentPlanId = null;
746
+ currentPlanData = null;
747
+ currentExecutionSnapshot = null;
484
748
  const detailEl = document.getElementById('plan-detail-panel');
485
749
  if (detailEl) detailEl.innerHTML = '<div class="empty-state"><div class="empty-state-text">Select a plan to view its steps</div></div>';
486
750
  await loadPlanList();