@unbrained/pm-web 2026.6.4 → 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.
@@ -6,8 +6,11 @@ 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 } from './plan-execution.js';
9
10
  // ─── State ───────────────────────────────────────────────────
10
11
  let currentPlanId = null;
12
+ let currentPlanData = null;
13
+ let currentExecutionSnapshot = null;
11
14
  // ─── Helpers ─────────────────────────────────────────────────
12
15
  function stepRef(step) {
13
16
  return step.ref || step.id || '';
@@ -25,10 +28,91 @@ function stepStatusBadge(status) {
25
28
  const color = colors[s] || 'var(--text-muted)';
26
29
  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>`;
27
30
  }
28
- function renderStepRow(step, planId) {
31
+ function metricBadge(label, value, color) {
32
+ return `
33
+ <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">
34
+ <div style="font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px">${escHtml(label)}</div>
35
+ <div style="font-size:14px;font-weight:600;color:${color};margin-top:2px">${escHtml(value)}</div>
36
+ </div>`;
37
+ }
38
+ function renderDependencyHint(analyzed) {
39
+ if (!analyzed || analyzed.dependsOn.length === 0 || analyzed.isDone || analyzed.isBlocked)
40
+ return '';
41
+ if (analyzed.incompleteDependencies.length === 0 && analyzed.unresolvedDependencies.length === 0) {
42
+ return `<div style="font-size:12px;color:var(--text-muted);margin-top:3px">Dependencies complete: ${escHtml(analyzed.dependsOn.join(', '))}</div>`;
43
+ }
44
+ const blockers = [
45
+ ...analyzed.incompleteDependencies,
46
+ ...analyzed.unresolvedDependencies.map(dep => `${dep} (missing)`),
47
+ ];
48
+ return `<div style="font-size:12px;color:var(--warning,#f59e0b);margin-top:3px">Waiting on: ${escHtml(blockers.join(', '))}</div>`;
49
+ }
50
+ function renderExecutionFocus(planId, snapshot) {
51
+ const next = snapshot.nextReadyStep;
52
+ const waitingPreview = snapshot.waitingSteps.slice(0, 2).map(step => {
53
+ const blockers = [
54
+ ...step.incompleteDependencies,
55
+ ...step.unresolvedDependencies.map(dep => `${dep} (missing)`),
56
+ ];
57
+ return `
58
+ <li style="font-size:12px;color:var(--text-secondary);line-height:1.5">
59
+ <span style="font-family:'JetBrains Mono',monospace;color:var(--text-muted)">[${escHtml(step.ref)}]</span>
60
+ ${escHtml(step.title)} - waiting on ${escHtml(blockers.join(', '))}
61
+ </li>`;
62
+ }).join('');
63
+ const blockedPreview = snapshot.blockedStepDetails.slice(0, 2).map(step => `
64
+ <li style="font-size:12px;color:var(--text-secondary);line-height:1.5">
65
+ <span style="font-family:'JetBrains Mono',monospace;color:var(--text-muted)">[${escHtml(step.ref)}]</span>
66
+ ${escHtml(step.title)}
67
+ ${step.blockedReason ? `<span style="color:var(--status-blocked)"> - ${escHtml(step.blockedReason)}</span>` : ''}
68
+ </li>`).join('');
69
+ return `
70
+ <div style="margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elevated)">
71
+ <div style="display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:flex-start">
72
+ <div>
73
+ <div style="font-size:13px;font-weight:600">Execution Focus</div>
74
+ <div style="font-size:12px;color:var(--text-muted);margin-top:2px">Dependency-aware summary to guide agent execution.</div>
75
+ </div>
76
+ <div style="display:flex;gap:6px;flex-wrap:wrap">
77
+ <button class="btn btn-ghost btn-sm" onclick="window.__app.copyPlanAgentBrief('${escHtml(planId)}')" title="Copy dependency and status summary">Copy agent brief</button>
78
+ ${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>` : ''}
79
+ </div>
80
+ </div>
81
+ <div style="display:flex;gap:8px;flex-wrap:wrap;margin-top:10px">
82
+ ${metricBadge('Complete', `${snapshot.completedSteps}/${snapshot.totalSteps}`, 'var(--status-closed)')}
83
+ ${metricBadge('Ready', String(snapshot.readySteps.length), 'var(--accent)')}
84
+ ${metricBadge('Waiting', String(snapshot.waitingSteps.length), 'var(--warning,#f59e0b)')}
85
+ ${metricBadge('Blocked', String(snapshot.blockedStepDetails.length), 'var(--status-blocked)')}
86
+ </div>
87
+ ${next
88
+ ? `<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>`
89
+ : '<div style="margin-top:10px;font-size:12px;color:var(--text-muted)">No ready steps right now. Resolve blockers or dependencies to continue.</div>'}
90
+ ${waitingPreview
91
+ ? `<div style="margin-top:8px">
92
+ <div style="font-size:12px;font-weight:600;color:var(--text-secondary)">Waiting queue</div>
93
+ <ul style="margin:6px 0 0 16px;padding:0;display:flex;flex-direction:column;gap:4px">${waitingPreview}</ul>
94
+ ${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>` : ''}
95
+ </div>`
96
+ : ''}
97
+ ${blockedPreview
98
+ ? `<div style="margin-top:8px">
99
+ <div style="font-size:12px;font-weight:600;color:var(--status-blocked)">Blocked steps</div>
100
+ <ul style="margin:6px 0 0 16px;padding:0;display:flex;flex-direction:column;gap:4px">${blockedPreview}</ul>
101
+ ${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>` : ''}
102
+ </div>`
103
+ : ''}
104
+ </div>`;
105
+ }
106
+ function renderStepRow(step, planId, analyzed) {
29
107
  const ref = stepRef(step);
30
108
  const isDone = ['done', 'completed'].includes((step.status || '').toLowerCase());
31
109
  const isBlocked = (step.status || '').toLowerCase() === 'blocked';
110
+ const isWaiting = !!analyzed && !analyzed.isDone && !analyzed.isBlocked
111
+ && (analyzed.incompleteDependencies.length > 0 || analyzed.unresolvedDependencies.length > 0);
112
+ const promptTitle = isBlocked
113
+ ? 'Copy blocker-resolution prompt'
114
+ : (isWaiting ? 'Copy dependency-resolution prompt' : 'Copy execution prompt');
115
+ const dependencyHint = renderDependencyHint(analyzed);
32
116
  return `
33
117
  <div class="plan-step-row" data-step-ref="${escHtml(ref)}">
34
118
  <div style="flex:1;min-width:0">
@@ -38,9 +122,11 @@ function renderStepRow(step, planId) {
38
122
  ${stepStatusBadge(step.status)}
39
123
  </div>
40
124
  ${step.description ? `<div style="font-size:12px;color:var(--text-muted);margin-top:3px">${escHtml(step.description)}</div>` : ''}
125
+ ${dependencyHint}
41
126
  ${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>` : ''}
42
127
  </div>
43
128
  <div style="display:flex;gap:6px;flex-shrink:0">
129
+ ${!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>` : ''}
44
130
  ${!isDone ? `<button class="btn btn-ghost btn-sm" onclick="window.__app.planCompleteStep('${escHtml(planId)}','${escHtml(ref)}')" title="Mark complete">✓</button>` : ''}
45
131
  ${!isBlocked && !isDone ? `<button class="btn btn-ghost btn-sm" onclick="window.__app.planBlockStepPrompt('${escHtml(planId)}','${escHtml(ref)}')" title="Block">⊘</button>` : ''}
46
132
  <button class="btn btn-ghost btn-sm" onclick="window.__app.planRemoveStep('${escHtml(planId)}','${escHtml(ref)}')" title="Remove" style="color:var(--danger,#f87171)">✕</button>
@@ -75,6 +161,9 @@ export async function initPlanView() {
75
161
  const el = document.getElementById('content-plan');
76
162
  if (!el)
77
163
  return;
164
+ currentPlanId = null;
165
+ currentPlanData = null;
166
+ currentExecutionSnapshot = null;
78
167
  if (!state.currentProject) {
79
168
  el.innerHTML = '<div class="empty-state"><div class="empty-state-text">No project selected</div></div>';
80
169
  return;
@@ -95,6 +184,9 @@ async function loadPlanList() {
95
184
  if (subEl)
96
185
  subEl.textContent = state.currentProject.name;
97
186
  if (items.length === 0) {
187
+ currentPlanId = null;
188
+ currentPlanData = null;
189
+ currentExecutionSnapshot = null;
98
190
  listEl.innerHTML = '<div class="empty-state" style="padding:16px"><div class="empty-state-text">No plans yet</div></div>';
99
191
  return;
100
192
  }
@@ -130,37 +222,127 @@ export async function openPlanDetail(planId) {
130
222
  const data = await api('GET', `/projects/${state.currentProject.id}/pm/plan/${encodeURIComponent(planId)}`);
131
223
  const plan = (data.plan || data);
132
224
  const steps = plan.steps || [];
225
+ const snapshot = buildPlanExecutionSnapshot(steps);
226
+ currentPlanData = plan;
227
+ currentExecutionSnapshot = snapshot;
133
228
  const isApproved = !!(plan.approvedAt || plan.approved_at);
134
- detailEl.innerHTML = `
135
- <div class="card">
136
- <div class="card-header" style="display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px">
137
- <div>
138
- <div class="card-title">${escHtml(plan.title || planId)}</div>
139
- <div style="font-size:12px;color:var(--text-muted);margin-top:2px;font-family:'JetBrains Mono',monospace">${escHtml(plan.id || planId)}</div>
140
- </div>
141
- <div style="display:flex;gap:8px;flex-wrap:wrap">
142
- ${!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>'}
143
- <button class="btn btn-primary btn-sm" onclick="window.__app.planMaterializePrompt('${escHtml(planId)}')">⇗ Materialize</button>
144
- <button class="btn btn-ghost btn-sm" onclick="window.__app.planEditPrompt('${escHtml(planId)}','${escHtml(plan.title || '')}')" title="Edit plan">✎</button>
145
- <button class="btn btn-ghost btn-sm" style="color:var(--danger,#f87171)" onclick="window.__app.planDeletePrompt('${escHtml(planId)}')" title="Delete plan">✕</button>
146
- </div>
147
- </div>
148
- <div class="card-body">
149
- ${plan.description ? `<div style="font-size:13px;color:var(--text-secondary);margin-bottom:12px">${escHtml(plan.description)}</div>` : ''}
150
- ${plan.scope ? `<div style="font-size:12px;color:var(--text-muted);margin-bottom:8px">Scope: ${escHtml(plan.scope)}</div>` : ''}
151
- <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:8px">
152
- <div style="font-size:13px;font-weight:600">Steps (${steps.length})</div>
153
- <button class="btn btn-ghost btn-sm" onclick="window.__app.openAddStepModal('${escHtml(planId)}')">+ Add Step</button>
154
- </div>
155
- <div id="plan-steps-list">
156
- ${steps.length === 0
157
- ? '<div style="font-size:13px;color:var(--text-muted);padding:8px 0">No steps yet. Add the first step to get started.</div>'
158
- : steps.map(s => renderStepRow(s, planId)).join('')}
159
- </div>
160
- </div>
161
- </div>`;
229
+ const card = document.createElement('div');
230
+ card.className = 'card';
231
+ const header = document.createElement('div');
232
+ header.className = 'card-header';
233
+ header.style.display = 'flex';
234
+ header.style.alignItems = 'center';
235
+ header.style.justifyContent = 'space-between';
236
+ header.style.flexWrap = 'wrap';
237
+ header.style.gap = '8px';
238
+ const heading = document.createElement('div');
239
+ const titleEl = document.createElement('div');
240
+ titleEl.className = 'card-title';
241
+ titleEl.textContent = plan.title || planId;
242
+ const idEl = document.createElement('div');
243
+ idEl.style.fontSize = '12px';
244
+ idEl.style.color = 'var(--text-muted)';
245
+ idEl.style.marginTop = '2px';
246
+ idEl.style.fontFamily = "'JetBrains Mono',monospace";
247
+ idEl.textContent = plan.id || planId;
248
+ heading.append(titleEl, idEl);
249
+ const actions = document.createElement('div');
250
+ actions.style.display = 'flex';
251
+ actions.style.gap = '8px';
252
+ actions.style.flexWrap = 'wrap';
253
+ if (!isApproved) {
254
+ const approveBtn = document.createElement('button');
255
+ approveBtn.className = 'btn btn-secondary btn-sm';
256
+ approveBtn.textContent = '✓ Approve';
257
+ approveBtn.addEventListener('click', () => { void planApprove(planId); });
258
+ actions.appendChild(approveBtn);
259
+ }
260
+ else {
261
+ const approvedLabel = document.createElement('span');
262
+ approvedLabel.style.fontSize = '12px';
263
+ approvedLabel.style.color = 'var(--status-closed)';
264
+ approvedLabel.textContent = '✓ Approved';
265
+ actions.appendChild(approvedLabel);
266
+ }
267
+ const materializeBtn = document.createElement('button');
268
+ materializeBtn.className = 'btn btn-primary btn-sm';
269
+ materializeBtn.textContent = '⇗ Materialize';
270
+ materializeBtn.addEventListener('click', () => planMaterializePrompt(planId));
271
+ actions.appendChild(materializeBtn);
272
+ const editBtn = document.createElement('button');
273
+ editBtn.className = 'btn btn-ghost btn-sm';
274
+ editBtn.title = 'Edit plan';
275
+ editBtn.textContent = '✎';
276
+ editBtn.addEventListener('click', () => planEditPrompt(planId, plan.title || ''));
277
+ actions.appendChild(editBtn);
278
+ const deleteBtn = document.createElement('button');
279
+ deleteBtn.className = 'btn btn-ghost btn-sm';
280
+ deleteBtn.title = 'Delete plan';
281
+ deleteBtn.style.color = 'var(--danger,#f87171)';
282
+ deleteBtn.textContent = '✕';
283
+ deleteBtn.addEventListener('click', () => planDeletePrompt(planId));
284
+ actions.appendChild(deleteBtn);
285
+ header.append(heading, actions);
286
+ const body = document.createElement('div');
287
+ body.className = 'card-body';
288
+ if (plan.description) {
289
+ const descEl = document.createElement('div');
290
+ descEl.style.fontSize = '13px';
291
+ descEl.style.color = 'var(--text-secondary)';
292
+ descEl.style.marginBottom = '12px';
293
+ descEl.textContent = plan.description;
294
+ body.appendChild(descEl);
295
+ }
296
+ if (plan.scope) {
297
+ const scopeEl = document.createElement('div');
298
+ scopeEl.style.fontSize = '12px';
299
+ scopeEl.style.color = 'var(--text-muted)';
300
+ scopeEl.style.marginBottom = '8px';
301
+ scopeEl.textContent = `Scope: ${plan.scope}`;
302
+ body.appendChild(scopeEl);
303
+ }
304
+ const focusTemplate = document.createElement('template');
305
+ focusTemplate.innerHTML = renderExecutionFocus(planId, snapshot);
306
+ body.appendChild(focusTemplate.content);
307
+ const stepsHeader = document.createElement('div');
308
+ stepsHeader.style.display = 'flex';
309
+ stepsHeader.style.alignItems = 'center';
310
+ stepsHeader.style.justifyContent = 'space-between';
311
+ stepsHeader.style.marginBottom = '8px';
312
+ const stepsTitle = document.createElement('div');
313
+ stepsTitle.style.fontSize = '13px';
314
+ stepsTitle.style.fontWeight = '600';
315
+ stepsTitle.textContent = `Steps (${steps.length})`;
316
+ const addStepBtn = document.createElement('button');
317
+ addStepBtn.className = 'btn btn-ghost btn-sm';
318
+ addStepBtn.textContent = '+ Add Step';
319
+ addStepBtn.addEventListener('click', () => openAddStepModal(planId));
320
+ stepsHeader.append(stepsTitle, addStepBtn);
321
+ body.appendChild(stepsHeader);
322
+ const stepsList = document.createElement('div');
323
+ stepsList.id = 'plan-steps-list';
324
+ if (steps.length === 0) {
325
+ const emptySteps = document.createElement('div');
326
+ emptySteps.style.fontSize = '13px';
327
+ emptySteps.style.color = 'var(--text-muted)';
328
+ emptySteps.style.padding = '8px 0';
329
+ emptySteps.textContent = 'No steps yet. Add the first step to get started.';
330
+ stepsList.appendChild(emptySteps);
331
+ }
332
+ else {
333
+ steps.forEach((step, index) => {
334
+ const rowTemplate = document.createElement('template');
335
+ rowTemplate.innerHTML = renderStepRow(step, planId, snapshot.allSteps[index]);
336
+ stepsList.appendChild(rowTemplate.content);
337
+ });
338
+ }
339
+ body.appendChild(stepsList);
340
+ card.append(header, body);
341
+ detailEl.replaceChildren(card);
162
342
  }
163
343
  catch (err) {
344
+ currentPlanData = null;
345
+ currentExecutionSnapshot = null;
164
346
  detailEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
165
347
  }
166
348
  }
@@ -391,6 +573,60 @@ export async function submitMaterializePlan(planId) {
391
573
  toast(err instanceof Error ? err.message : 'Failed to materialize plan', 'error');
392
574
  }
393
575
  }
576
+ async function copyTextWithFallback(modalTitle, text, successMessage) {
577
+ if (navigator.clipboard?.writeText) {
578
+ try {
579
+ await navigator.clipboard.writeText(text);
580
+ toast(successMessage, 'success');
581
+ return;
582
+ }
583
+ catch {
584
+ // Fall through to manual-copy modal.
585
+ }
586
+ }
587
+ const modalId = 'plan-copy-fallback-modal';
588
+ createModal(modalId, modalTitle, `
589
+ <p style="font-size:12px;color:var(--text-muted);margin-bottom:8px">Clipboard access is unavailable in this browser context. Copy manually:</p>
590
+ <textarea class="form-textarea" id="plan-copy-fallback-text" rows="12" spellcheck="false"></textarea>`, `<button class="btn btn-primary" onclick="window.__app.hideModal('${modalId}')">Close</button>`);
591
+ showModal(modalId);
592
+ const el = document.getElementById('plan-copy-fallback-text');
593
+ if (el) {
594
+ el.value = text;
595
+ el.focus();
596
+ el.select();
597
+ }
598
+ toast('Clipboard blocked. Opened manual copy panel.', 'info');
599
+ }
600
+ function getCurrentPlanContext(planId) {
601
+ const activeId = currentPlanData?.id || currentPlanId;
602
+ if (!currentPlanData || !currentExecutionSnapshot || activeId !== planId) {
603
+ toast('Open this plan first to generate prompts', 'info');
604
+ return null;
605
+ }
606
+ return { plan: currentPlanData, snapshot: currentExecutionSnapshot };
607
+ }
608
+ export async function copyPlanAgentBrief(planId) {
609
+ const ctx = getCurrentPlanContext(planId);
610
+ if (!ctx)
611
+ return;
612
+ const brief = buildPlanAgentBrief(ctx.plan, ctx.snapshot);
613
+ await copyTextWithFallback('Plan Agent Brief', brief, 'Agent brief copied');
614
+ }
615
+ export async function copyPlanNextStepPrompt(planId, stepRef) {
616
+ const ctx = getCurrentPlanContext(planId);
617
+ if (!ctx)
618
+ return;
619
+ if (stepRef && !ctx.snapshot.stepByRef[stepRef]) {
620
+ toast(`Step ${stepRef} not found`, 'error');
621
+ return;
622
+ }
623
+ if (!stepRef && !ctx.snapshot.nextReadyStep) {
624
+ toast('No ready step available right now', 'info');
625
+ return;
626
+ }
627
+ const prompt = buildNextStepPrompt(ctx.plan, ctx.snapshot, stepRef);
628
+ await copyTextWithFallback('Next Step Prompt', prompt, 'Next-step prompt copied');
629
+ }
394
630
  export function planEditPrompt(planId, currentTitle) {
395
631
  createModal('edit-plan-modal', 'Edit Plan', `
396
632
  <div class="form-group">
@@ -439,6 +675,8 @@ export function planDeletePrompt(planId) {
439
675
  await api('DELETE', `/projects/${state.currentProject.id}/pm/plan/${encodeURIComponent(planId)}`, {});
440
676
  toast('Plan deleted', 'success');
441
677
  currentPlanId = null;
678
+ currentPlanData = null;
679
+ currentExecutionSnapshot = null;
442
680
  const detailEl = document.getElementById('plan-detail-panel');
443
681
  if (detailEl)
444
682
  detailEl.innerHTML = '<div class="empty-state"><div class="empty-state-text">Select a plan to view its steps</div></div>';
@@ -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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"}