prism-pr 1.0.0-alpha.77 → 1.0.0-alpha.79

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 (75) hide show
  1. package/README.md +34 -5
  2. package/bin/run.js +1 -1
  3. package/dist/persistence/migrations/0005_pattern_feedback.sql +16 -16
  4. package/dist/persistence/migrations/0006_file_review_cache.sql +12 -12
  5. package/dist/tui/components/lifecycle-preview-body.d.ts +15 -0
  6. package/dist/tui/components/lifecycle-preview-body.d.ts.map +1 -0
  7. package/dist/tui/components/lifecycle-preview-body.js +43 -0
  8. package/dist/tui/components/lifecycle-preview-body.js.map +1 -0
  9. package/dist/tui/screens/findings-list.d.ts.map +1 -1
  10. package/dist/tui/screens/findings-list.js +2 -15
  11. package/dist/tui/screens/findings-list.js.map +1 -1
  12. package/dist/tui/screens/lifecycle-preview.d.ts.map +1 -1
  13. package/dist/tui/screens/lifecycle-preview.js +9 -5
  14. package/dist/tui/screens/lifecycle-preview.js.map +1 -1
  15. package/dist/tui/screens/lifecycle-running.d.ts.map +1 -1
  16. package/dist/tui/screens/lifecycle-running.js +1 -0
  17. package/dist/tui/screens/lifecycle-running.js.map +1 -1
  18. package/dist/tui/screens/lifecycle-summary.d.ts.map +1 -1
  19. package/dist/tui/screens/lifecycle-summary.js +23 -5
  20. package/dist/tui/screens/lifecycle-summary.js.map +1 -1
  21. package/dist/tui/screens/publishing.d.ts.map +1 -1
  22. package/dist/tui/screens/publishing.js +29 -8
  23. package/dist/tui/screens/publishing.js.map +1 -1
  24. package/dist/tui/screens/rule-suggestions.d.ts.map +1 -1
  25. package/dist/tui/screens/rule-suggestions.js +3 -0
  26. package/dist/tui/screens/rule-suggestions.js.map +1 -1
  27. package/dist/tui/screens/url-input.d.ts.map +1 -1
  28. package/dist/tui/screens/url-input.js +4 -1
  29. package/dist/tui/screens/url-input.js.map +1 -1
  30. package/dist/tui/state/tui-reducer.d.ts +9 -1
  31. package/dist/tui/state/tui-reducer.d.ts.map +1 -1
  32. package/dist/tui/state/tui-reducer.js +4 -2
  33. package/dist/tui/state/tui-reducer.js.map +1 -1
  34. package/dist/utils/lifecycle-preview-view.d.ts +40 -0
  35. package/dist/utils/lifecycle-preview-view.d.ts.map +1 -0
  36. package/dist/utils/lifecycle-preview-view.js +74 -0
  37. package/dist/utils/lifecycle-preview-view.js.map +1 -0
  38. package/oclif.manifest.json +1 -93
  39. package/package.json +3 -2
  40. package/dist/commands/review/clean.d.ts +0 -37
  41. package/dist/commands/review/clean.d.ts.map +0 -1
  42. package/dist/commands/review/clean.js +0 -201
  43. package/dist/commands/review/clean.js.map +0 -1
  44. package/dist/core/clean-re-review-service.d.ts +0 -45
  45. package/dist/core/clean-re-review-service.d.ts.map +0 -1
  46. package/dist/core/clean-re-review-service.js +0 -128
  47. package/dist/core/clean-re-review-service.js.map +0 -1
  48. package/dist/tui/screens/clean-rereview-confirm.d.ts +0 -3
  49. package/dist/tui/screens/clean-rereview-confirm.d.ts.map +0 -1
  50. package/dist/tui/screens/clean-rereview-confirm.js +0 -54
  51. package/dist/tui/screens/clean-rereview-confirm.js.map +0 -1
  52. package/dist/tui/screens/clean-rereview-running.d.ts +0 -3
  53. package/dist/tui/screens/clean-rereview-running.d.ts.map +0 -1
  54. package/dist/tui/screens/clean-rereview-running.js +0 -77
  55. package/dist/tui/screens/clean-rereview-running.js.map +0 -1
  56. package/dist/tui/screens/settings-menu.d.ts +0 -3
  57. package/dist/tui/screens/settings-menu.d.ts.map +0 -1
  58. package/dist/tui/screens/settings-menu.js +0 -35
  59. package/dist/tui/screens/settings-menu.js.map +0 -1
  60. package/dist/tui/screens/settings-provider.d.ts +0 -3
  61. package/dist/tui/screens/settings-provider.d.ts.map +0 -1
  62. package/dist/tui/screens/settings-provider.js +0 -105
  63. package/dist/tui/screens/settings-provider.js.map +0 -1
  64. package/dist/tui/screens/settings.d.ts +0 -4
  65. package/dist/tui/screens/settings.d.ts.map +0 -1
  66. package/dist/tui/screens/settings.js +0 -431
  67. package/dist/tui/screens/settings.js.map +0 -1
  68. package/dist/tui/screens/unified-settings/tab-agents.d.ts +0 -19
  69. package/dist/tui/screens/unified-settings/tab-agents.d.ts.map +0 -1
  70. package/dist/tui/screens/unified-settings/tab-agents.js +0 -33
  71. package/dist/tui/screens/unified-settings/tab-agents.js.map +0 -1
  72. package/dist/tui/screens/unified-settings/tab-models.d.ts +0 -18
  73. package/dist/tui/screens/unified-settings/tab-models.d.ts.map +0 -1
  74. package/dist/tui/screens/unified-settings/tab-models.js +0 -20
  75. package/dist/tui/screens/unified-settings/tab-models.js.map +0 -1
package/README.md CHANGED
@@ -168,9 +168,10 @@ prism guard # guard-focused TUI
168
168
 
169
169
  Launches a full Ink-based terminal UI with keyboard navigation.
170
170
 
171
- In **Settings**, you now get a submenu:
172
- - **Providers & API Keys**: provider selection (`auto`, `anthropic`, `openai`, `gemini`, `claude-code`) and optional Anthropic/OpenAI/Gemini key registration
173
- - **Model Registry**: choose default model, set per-agent models, and add custom model IDs dynamically
171
+ In **Settings**, a unified tabbed screen:
172
+ - **Provider & Keys**: provider selection (`auto`, `anthropic`, `openai`, `gemini`, `claude-code`) and Anthropic/OpenAI/Gemini key registration
173
+ - **Models & Agents**: default model, per-agent model picker, presets (Max/Balance/Low), and custom model IDs
174
+ - **Defaults**: review defaults (minimum severity, content mode, …)
174
175
 
175
176
  ### Guardian Angel section
176
177
 
@@ -260,6 +261,33 @@ Configure all 14 agent models at once via the Settings screen:
260
261
 
261
262
  ---
262
263
 
264
+ ## Comment Lifecycle — manage prior PRISM comments
265
+
266
+ Over a PR's life, PRISM accumulates review comments. `prism review lifecycle` captures them, classifies each by state (resolved, active, dev-reply), posts a single summary comment, and cleans up the resolved ones. **Dev replies are never deleted.**
267
+
268
+ ```bash
269
+ # Preview only (default) — classify and report, ZERO Bitbucket writes
270
+ prism review lifecycle https://bitbucket.org/acme/app/pull-requests/42
271
+
272
+ # Full pipeline — post summary comment + delete resolved PRISM comments
273
+ prism review lifecycle https://bitbucket.org/acme/app/pull-requests/42 --cleanup
274
+
275
+ # Structured JSON (CI-friendly)
276
+ prism review lifecycle https://bitbucket.org/acme/app/pull-requests/42 --json
277
+ ```
278
+
279
+ > **Breaking change (alpha.77):** the default is now **preview-only**. Add `--cleanup` to post the summary and delete comments. The `--no-cleanup` flag was removed; `--dry-run` is deprecated (redundant with the new default).
280
+
281
+ In the TUI, **Comment Lifecycle** (home menu) runs the same flow with a rich preview screen: confirm to post + clean up, or Esc to abort with no writes. After publishing, it offers to start a new review on the same PR (URL pre-filled).
282
+
283
+ | Exit code | Meaning |
284
+ |-----------|---------|
285
+ | `0` | Preview OK, or full pipeline success |
286
+ | `1` | Capture or summary failed (Bitbucket untouched or partial) |
287
+ | `2` | Cleanup partial failure (some deletes failed) |
288
+
289
+ ---
290
+
263
291
  ## Commands
264
292
 
265
293
  | Command | Purpose |
@@ -274,6 +302,7 @@ Configure all 14 agent models at once via the Settings screen:
274
302
  | `prism rules push` | ~~Legacy v2.~~ Push a local `.prism-patterns.json` to the rules repo (deprecated) |
275
303
  | `prism rules stats` | Show aggregated finding patterns from local review history |
276
304
  | `prism review start` | Run an AI code review on a PR |
305
+ | `prism review lifecycle` | Preview or clean up prior PRISM comments on a PR (preview-only by default; `--cleanup` deletes) |
277
306
 
278
307
  ### guard check flags
279
308
 
@@ -365,10 +394,10 @@ A `ProjectManifest` lives at `projects/<workspace>/<repo>.json` in the shared ru
365
394
 
366
395
  ### Rulesets
367
396
 
368
- Built-in rulesets today (9 rulesets, 30+ ast-grep patterns):
397
+ Built-in rulesets today (10 rulesets, 30+ ast-grep patterns):
369
398
 
370
399
  - `shared/general`, `shared/security`, `shared/typescript`
371
- - `angular/base`, `angular/v17`
400
+ - `angular/base`, `angular/v2`, `angular/v17`
372
401
  - `react/base`
373
402
  - `nestjs/base`
374
403
  - `ag-grid/base`, `ag-grid/v32`
package/bin/run.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  // Suppress node:sqlite ExperimentalWarning
4
4
  const _origEmit = process.emit.bind(process);
@@ -1,16 +1,16 @@
1
- CREATE TABLE IF NOT EXISTS pattern_feedback (
2
- id INTEGER PRIMARY KEY AUTOINCREMENT,
3
- workspace TEXT NOT NULL,
4
- repo TEXT NOT NULL,
5
- pattern_id TEXT NOT NULL,
6
- category TEXT NOT NULL,
7
- agent_id TEXT,
8
- file_path TEXT NOT NULL,
9
- line_number INTEGER,
10
- source TEXT NOT NULL DEFAULT 'guard',
11
- reason TEXT,
12
- auto_tuned INTEGER NOT NULL DEFAULT 0,
13
- created_at TEXT NOT NULL
14
- );
15
- CREATE INDEX idx_pattern_feedback_lookup ON pattern_feedback (workspace, repo, pattern_id);
16
- CREATE INDEX idx_pattern_feedback_threshold ON pattern_feedback (workspace, repo, pattern_id, auto_tuned);
1
+ CREATE TABLE IF NOT EXISTS pattern_feedback (
2
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
3
+ workspace TEXT NOT NULL,
4
+ repo TEXT NOT NULL,
5
+ pattern_id TEXT NOT NULL,
6
+ category TEXT NOT NULL,
7
+ agent_id TEXT,
8
+ file_path TEXT NOT NULL,
9
+ line_number INTEGER,
10
+ source TEXT NOT NULL DEFAULT 'guard',
11
+ reason TEXT,
12
+ auto_tuned INTEGER NOT NULL DEFAULT 0,
13
+ created_at TEXT NOT NULL
14
+ );
15
+ CREATE INDEX idx_pattern_feedback_lookup ON pattern_feedback (workspace, repo, pattern_id);
16
+ CREATE INDEX idx_pattern_feedback_threshold ON pattern_feedback (workspace, repo, pattern_id, auto_tuned);
@@ -1,12 +1,12 @@
1
- CREATE TABLE IF NOT EXISTS file_review_cache (
2
- pr_id INTEGER NOT NULL,
3
- file_path TEXT NOT NULL,
4
- agent_id TEXT NOT NULL,
5
- file_hash TEXT NOT NULL,
6
- outcome TEXT NOT NULL,
7
- findings_count INTEGER NOT NULL DEFAULT 0,
8
- session_id TEXT NOT NULL REFERENCES review_sessions(id),
9
- reviewed_at TEXT NOT NULL,
10
- PRIMARY KEY (pr_id, file_path, agent_id)
11
- );
12
- CREATE INDEX idx_file_review_cache_session ON file_review_cache (session_id);
1
+ CREATE TABLE IF NOT EXISTS file_review_cache (
2
+ pr_id INTEGER NOT NULL,
3
+ file_path TEXT NOT NULL,
4
+ agent_id TEXT NOT NULL,
5
+ file_hash TEXT NOT NULL,
6
+ outcome TEXT NOT NULL,
7
+ findings_count INTEGER NOT NULL DEFAULT 0,
8
+ session_id TEXT NOT NULL REFERENCES review_sessions(id),
9
+ reviewed_at TEXT NOT NULL,
10
+ PRIMARY KEY (pr_id, file_path, agent_id)
11
+ );
12
+ CREATE INDEX idx_file_review_cache_session ON file_review_cache (session_id);
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { SnapshotSummary } from '../../core/comment-lifecycle-service.js';
3
+ export interface LifecyclePreviewBodyProps {
4
+ snapshots: SnapshotSummary[];
5
+ captureRunId: string;
6
+ }
7
+ /**
8
+ * Rich, non-destructive preview of a captured PRISM comment lifecycle.
9
+ *
10
+ * Renders a real Ink component tree (colored, aligned) derived from the captured
11
+ * snapshots — replacing the previous raw-markdown dump. Pure/presentational:
12
+ * all numbers come from {@link derivePreviewView}, no IO.
13
+ */
14
+ export declare function LifecyclePreviewBody({ snapshots, captureRunId, }: LifecyclePreviewBodyProps): React.ReactElement;
15
+ //# sourceMappingURL=lifecycle-preview-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-preview-body.d.ts","sourceRoot":"","sources":["../../../src/tui/components/lifecycle-preview-body.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAM/E,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AA8BD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,YAAY,GACb,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAoFhD"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { derivePreviewView, } from '../../utils/lifecycle-preview-view.js';
4
+ const TONE_COLOR = {
5
+ ok: 'green',
6
+ warn: 'yellow',
7
+ danger: 'red',
8
+ muted: undefined,
9
+ };
10
+ const TONE_MARK = {
11
+ ok: '✓',
12
+ warn: '⏳',
13
+ danger: '✗',
14
+ muted: '·',
15
+ };
16
+ const PATH_MAX = 48;
17
+ const AGENT_COL = 20;
18
+ /** Keep the meaningful tail of a long path so the filename stays visible. */
19
+ function shortenPath(path) {
20
+ if (path.length <= PATH_MAX)
21
+ return path;
22
+ return '…' + path.slice(path.length - (PATH_MAX - 1));
23
+ }
24
+ /** Cap a value to a column width so fixed-width table rows stay aligned. */
25
+ function fitColumn(value, width) {
26
+ return value.length <= width ? value : value.slice(0, width - 1) + '…';
27
+ }
28
+ /**
29
+ * Rich, non-destructive preview of a captured PRISM comment lifecycle.
30
+ *
31
+ * Renders a real Ink component tree (colored, aligned) derived from the captured
32
+ * snapshots — replacing the previous raw-markdown dump. Pure/presentational:
33
+ * all numbers come from {@link derivePreviewView}, no IO.
34
+ */
35
+ export function LifecyclePreviewBody({ snapshots, captureRunId, }) {
36
+ const view = derivePreviewView(snapshots);
37
+ const shortRun = captureRunId.split('-')[0] ?? captureRunId;
38
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Text, { children: ["Captured ", _jsx(Text, { bold: true, children: view.total }), " PRISM comment", view.total === 1 ? '' : 's', _jsxs(Text, { dimColor: true, children: [" \u00B7 run ", shortRun] })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Management" }), view.needsReview ? (_jsxs(Text, { color: "yellow", children: [' ', "\u26A0 ", view.open, " finding", view.open === 1 ? '' : 's', " still open \u2014 consider a re-review."] })) : view.resolved > 0 ? (_jsxs(Text, { color: "green", children: [' ', "\u2713 All ", view.resolved, " finding", view.resolved === 1 ? '' : 's', " addressed \u2014 no re-review needed."] })) : (_jsxs(Text, { dimColor: true, children: [' ', "No actionable findings captured."] })), _jsxs(Text, { dimColor: true, children: [' ', "Resolution ", view.resolutionRate, "% \u00B7 ", view.resolved, " resolved / ", view.open, " open"] })] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "By state" }), view.states.map((s) => {
39
+ const color = TONE_COLOR[s.tone];
40
+ return (_jsxs(Text, { ...(color ? { color } : {}), dimColor: s.tone === 'muted', children: [' ', TONE_MARK[s.tone], " ", s.label.padEnd(22), " ", String(s.count).padStart(3)] }, s.state));
41
+ })] }), view.agents.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "By agent" }), _jsxs(Text, { dimColor: true, children: [' ', 'Agent'.padEnd(AGENT_COL), " ", 'Comments'.padStart(8), " ", 'Resolved'.padStart(8), ' ', 'Open'.padStart(4)] }), view.agents.map((a) => (_jsxs(Text, { ...(a.open > 0 ? { color: 'yellow' } : {}), children: [' ', fitColumn(a.agentId, AGENT_COL).padEnd(AGENT_COL), " ", String(a.total).padStart(8), ' ', String(a.resolved).padStart(8), " ", String(a.open).padStart(4)] }, a.agentId)))] })), view.topFiles.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Top files" }), view.topFiles.map((f) => (_jsxs(Text, { ...(f.open > 0 ? { color: 'yellow' } : {}), children: [' ', shortenPath(f.path).padEnd(PATH_MAX), " ", String(f.count).padStart(3), _jsx(Text, { dimColor: true, children: f.open > 0 ? ` (${f.open} open)` : '' })] }, f.path)))] }))] }));
42
+ }
43
+ //# sourceMappingURL=lifecycle-preview-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-preview-body.js","sourceRoot":"","sources":["../../../src/tui/components/lifecycle-preview-body.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findings-list.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/findings-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAqDxE,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAqKvD"}
1
+ {"version":3,"file":"findings-list.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/findings-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAqDhE,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAwJvD"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useCallback, useEffect, useRef } from 'react';
2
+ import { useState, useCallback, useEffect } from 'react';
3
3
  import { Box, Text, useInput } from 'ink';
4
4
  import { useRouter } from '../state/router-context.js';
5
5
  import { useTUI } from '../state/tui-context.js';
@@ -38,9 +38,6 @@ export function FindingsListScreen() {
38
38
  const isActive = currentScreen.name === 'findings-list';
39
39
  const findings = state.workflow.summary?.findings ?? [];
40
40
  const { generate, isGenerating, error: suggestError } = useSuggestRules('review');
41
- // Guard against firing useEffect on initial mount when prior suggestions exist.
42
- // Only auto-navigate when WE triggered the generation on this screen instance.
43
- const didTriggerGenerationRef = useRef(false);
44
41
  const items = buildListItems(findings);
45
42
  useFooter(findings.length === 0 ? FINDINGS_LIST_EMPTY_FOOTER : FINDINGS_LIST_FOOTER);
46
43
  const selectableIndices = items
@@ -52,15 +49,6 @@ export function FindingsListScreen() {
52
49
  const cursorItemIndex = selectableIndices.length > 0
53
50
  ? (selectableIndices[cursorSelectablePos] ?? 0)
54
51
  : -1;
55
- // Auto-navigate to rule-suggestions when generation completes (generating → reviewing transition).
56
- // The ref guard prevents firing on initial mount when prior suggestions already exist.
57
- useEffect(() => {
58
- if (didTriggerGenerationRef.current &&
59
- state.suggestions.status === 'reviewing') {
60
- didTriggerGenerationRef.current = false;
61
- push({ name: 'rule-suggestions', params: {} });
62
- }
63
- }, [state.suggestions.status, push]);
64
52
  // Mirror error from hook into local status message for inline display
65
53
  useEffect(() => {
66
54
  if (suggestError !== null) {
@@ -117,7 +105,6 @@ export function FindingsListScreen() {
117
105
  push({ name: 'publish-confirm', params: {} });
118
106
  }
119
107
  else if (input === 'g' && findings.length > 0 && !isGenerating) {
120
- didTriggerGenerationRef.current = true;
121
108
  generate();
122
109
  }
123
110
  }, { isActive });
@@ -127,7 +114,7 @@ export function FindingsListScreen() {
127
114
  const visibleItems = items.slice(windowOffset, windowOffset + WINDOW_SIZE);
128
115
  const itemsAbove = windowOffset;
129
116
  const itemsBelow = Math.max(0, items.length - (windowOffset + WINDOW_SIZE));
130
- return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Box, { flexDirection: "row", gap: 2, children: [_jsx(Text, { bold: true, color: "cyan", children: "Findings" }), _jsxs(Text, { dimColor: true, children: [findings.length, " total"] })] }), isGenerating && (_jsx(Text, { color: "yellow", children: "Generating AI rule suggestions..." })), suggestError !== null && (_jsx(Text, { color: "red", children: suggestError })), statusMessage !== null && suggestError === null && (_jsx(Text, { color: "red", children: statusMessage })), _jsxs(Box, { flexDirection: "column", children: [itemsAbove > 0 && _jsx(Text, { dimColor: true, children: `↑ ${itemsAbove} more` }), visibleItems.map((item, visIdx) => {
117
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Box, { flexDirection: "row", gap: 2, children: [_jsx(Text, { bold: true, color: "cyan", children: "Findings" }), _jsxs(Text, { dimColor: true, children: [findings.length, " total"] })] }), isGenerating && (_jsx(Text, { color: "yellow", children: "Generating AI rule suggestions..." })), state.suggestions.status === 'reviewing' && !isGenerating && (_jsx(Text, { color: "green", children: "Suggestions ready" })), suggestError !== null && (_jsx(Text, { color: "red", children: suggestError })), statusMessage !== null && suggestError === null && (_jsx(Text, { color: "red", children: statusMessage })), _jsxs(Box, { flexDirection: "column", children: [itemsAbove > 0 && _jsx(Text, { dimColor: true, children: `↑ ${itemsAbove} more` }), visibleItems.map((item, visIdx) => {
131
118
  const absoluteIdx = windowOffset + visIdx;
132
119
  if (item.type === 'header') {
133
120
  return (_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { bold: true, color: "blue", children: item.filePath }), _jsxs(Text, { dimColor: true, children: ["(", item.count, ")"] })] }, `header-${item.filePath}`));
@@ -1 +1 @@
1
- {"version":3,"file":"findings-list.js","sourceRoot":"","sources":["../../../src/tui/screens/findings-list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findings-list.js","sourceRoot":"","sources":["../../../src/tui/screens/findings-list.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-preview.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-preview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAqC3D,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EACZ,KAAK,GACN,EAAE,2BAA2B,GAAG,KAAK,CAAC,YAAY,CA+NlD"}
1
+ {"version":3,"file":"lifecycle-preview.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-preview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAsChD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EACZ,KAAK,GACN,EAAE,2BAA2B,GAAG,KAAK,CAAC,YAAY,CAuNlD"}
@@ -7,6 +7,7 @@ import { useTUI } from '../state/tui-context.js';
7
7
  import { useDeps } from '../deps-context.js';
8
8
  import { BitbucketClient } from '../../bitbucket/client.js';
9
9
  import { CommentLifecycleService } from '../../core/comment-lifecycle-service.js';
10
+ import { LifecyclePreviewBody } from '../components/lifecycle-preview-body.js';
10
11
  // ── Footer items ───────────────────────────────────────────────────────────────
11
12
  const PREVIEW_FOOTER = [
12
13
  { key: 'Enter', label: 'confirm — post summary + delete' },
@@ -22,7 +23,6 @@ export function LifecyclePreviewScreen({ captureRunId, prUrl, }) {
22
23
  const [confirmPhase, setConfirmPhase] = useState('idle');
23
24
  const [partialFailure, setPartialFailure] = useState(null);
24
25
  const [errorState, setErrorState] = useState(null);
25
- const isPreview = confirmPhase === 'idle';
26
26
  const isConfirming = confirmPhase === 'confirming';
27
27
  const footerItems = confirmPhase === 'error' || confirmPhase === 'partial-failure'
28
28
  ? ERROR_FOOTER
@@ -30,8 +30,9 @@ export function LifecyclePreviewScreen({ captureRunId, prUrl, }) {
30
30
  ? CONFIRMING_FOOTER
31
31
  : PREVIEW_FOOTER;
32
32
  useFooter(footerItems);
33
- // Retrieve previewReport from reducer state (populated by LIFECYCLE_PREVIEW_READY)
34
- const previewReport = state.lifecycle.previewReport ?? '';
33
+ // Rich preview is rendered from the captured snapshots (populated by
34
+ // LIFECYCLE_PREVIEW_READY) not from the markdown previewReport string.
35
+ const previewSnapshots = state.lifecycle.previewSnapshots ?? [];
35
36
  // ── Dependencies ─────────────────────────────────────────────────────────────
36
37
  // NOTE: This screen reconstructs CommentLifecycleService from credentials on
37
38
  // mount — same DI deviation pattern as lifecycle-running.tsx:53-66. Intentional.
@@ -119,7 +120,9 @@ export function LifecyclePreviewScreen({ captureRunId, prUrl, }) {
119
120
  setConfirmPhase('partial-failure');
120
121
  return;
121
122
  }
122
- // Full success — transition to lifecycle-summary
123
+ // Full success — transition to lifecycle-summary. Forward prUrl so the
124
+ // summary can offer a "new review" pre-filled with the same PR URL the
125
+ // lifecycle already started from (no re-typing).
123
126
  replace({
124
127
  name: 'lifecycle-summary',
125
128
  params: {
@@ -129,6 +132,7 @@ export function LifecyclePreviewScreen({ captureRunId, prUrl, }) {
129
132
  captureErrors: 0,
130
133
  cleanupSucceeded: cleanupResult.succeeded,
131
134
  cleanupFailed: cleanupResult.failed,
135
+ prUrl,
132
136
  },
133
137
  });
134
138
  }
@@ -149,6 +153,6 @@ export function LifecyclePreviewScreen({ captureRunId, prUrl, }) {
149
153
  if (isConfirming) {
150
154
  return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Comment Lifecycle \u2014 Confirming" }), _jsx(Text, { dimColor: true, children: prUrl }), _jsx(Text, { children: "Posting summary and cleaning up PRISM comments..." })] }));
151
155
  }
152
- return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Comment Lifecycle \u2014 Preview" }), _jsx(Text, { dimColor: true, children: prUrl }), previewReport !== '' ? (_jsx(Box, { flexDirection: "column", children: _jsx(Text, { children: previewReport }) })) : (_jsx(Text, { dimColor: true, children: "No preview report available." })), _jsx(Text, { dimColor: true, children: "Confirming will post the summary comment and delete all PRISM root comments. Dev replies are never touched." }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { children: "[Enter] Confirm \u2014 post summary + delete" }), _jsx(Text, { dimColor: true, children: "[Esc] Cancel \u2014 no writes" })] })] }));
156
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Comment Lifecycle \u2014 Preview" }), _jsx(Text, { dimColor: true, children: prUrl }), _jsx(LifecyclePreviewBody, { snapshots: previewSnapshots, captureRunId: captureRunId }), _jsx(Text, { dimColor: true, children: "Confirming will POST 1 summary comment and DELETE all eligible PRISM root comments. Dev replies are never touched." })] }));
153
157
  }
154
158
  //# sourceMappingURL=lifecycle-preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-preview.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-preview.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-preview.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-preview.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-running.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-running.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,2BAA2B,GAAG,KAAK,CAAC,YAAY,CAuHjG"}
1
+ {"version":3,"file":"lifecycle-running.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-running.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,2BAA2B,GAAG,KAAK,CAAC,YAAY,CAwHjG"}
@@ -69,6 +69,7 @@ export function LifecycleRunningScreen({ prUrl }) {
69
69
  payload: {
70
70
  captureRunId: result.captureRunId,
71
71
  previewReport: result.previewReport,
72
+ previewSnapshots: result.snapshots,
72
73
  },
73
74
  });
74
75
  replace({
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-running.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-running.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-running.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-running.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-summary.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-summary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,wBAAgB,sBAAsB,IAAI,KAAK,CAAC,YAAY,CAiE3D"}
1
+ {"version":3,"file":"lifecycle-summary.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-summary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,wBAAgB,sBAAsB,IAAI,KAAK,CAAC,YAAY,CAoF3D"}
@@ -2,9 +2,12 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text, useInput } from 'ink';
3
3
  import { useFooter } from '../hooks/use-footer.js';
4
4
  import { useRouter } from '../state/router-context.js';
5
- const DONE_FOOTER = [{ key: 'any key', label: 'home' }];
5
+ const DONE_FOOTER = [
6
+ { key: 'Enter', label: 'start a new review' },
7
+ { key: 'Esc', label: 'home' },
8
+ ];
6
9
  export function LifecycleSummaryScreen() {
7
- const { currentScreen, reset } = useRouter();
10
+ const { currentScreen, reset, push } = useRouter();
8
11
  const isActive = currentScreen.name === 'lifecycle-summary';
9
12
  useFooter(DONE_FOOTER);
10
13
  const params = currentScreen.params;
@@ -13,12 +16,27 @@ export function LifecycleSummaryScreen() {
13
16
  const captureErrors = typeof params['captureErrors'] === 'number' ? params['captureErrors'] : 0;
14
17
  const cleanupSucceeded = typeof params['cleanupSucceeded'] === 'number' ? params['cleanupSucceeded'] : 0;
15
18
  const cleanupFailed = typeof params['cleanupFailed'] === 'number' ? params['cleanupFailed'] : 0;
19
+ const prUrl = typeof params['prUrl'] === 'string' ? params['prUrl'] : '';
16
20
  const rawStateCounts = params['stateCounts'];
17
21
  const stateCounts = rawStateCounts !== null && typeof rawStateCounts === 'object' && !Array.isArray(rawStateCounts)
18
22
  ? rawStateCounts
19
23
  : {};
20
- useInput(() => {
21
- reset({ name: 'home', params: {} });
24
+ useInput((_input, key) => {
25
+ if (key.return) {
26
+ // Start a fresh review via the "Review by URL" screen, pre-filled with the
27
+ // PR URL the lifecycle already ran against — the user can just press Enter
28
+ // to re-review the same PR (or edit it for another). Rebuild the stack as
29
+ // [home, url-input] so the URL screen's Esc/back still returns home. A bare
30
+ // reset would leave url-input as the sole stack entry and strand the user —
31
+ // POP is a no-op at stack length 1 (router-reducer.ts), and url-input
32
+ // escapes via pop(). This mirrors the normal "new review" entry (home → push).
33
+ reset({ name: 'home', params: {} });
34
+ push({ name: 'url-input', params: { prUrl } });
35
+ return;
36
+ }
37
+ if (key.escape) {
38
+ reset({ name: 'home', params: {} });
39
+ }
22
40
  }, { isActive });
23
41
  const statusColor = status === 'completed' ? 'green' :
24
42
  status === 'cleanup_partial' ? 'yellow' :
@@ -27,6 +45,6 @@ export function LifecycleSummaryScreen() {
27
45
  status === 'cleanup_partial' ? 'Partial cleanup' :
28
46
  status === 'summary_failed' ? 'Summary failed' :
29
47
  'Capture failed';
30
- return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Text, { bold: true, color: statusColor, children: ["Lifecycle Summary \u2014 ", statusLabel] }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: ["Total PRISM comments: ", _jsx(Text, { bold: true, children: totalPrismComments })] }), captureErrors > 0 && (_jsxs(Text, { color: "yellow", children: ["Capture errors: ", _jsx(Text, { bold: true, children: captureErrors })] }))] }), Object.keys(stateCounts).length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "State breakdown:" }), Object.entries(stateCounts).map(([state, count]) => (_jsxs(Text, { dimColor: true, children: [" ", state, ": ", _jsx(Text, { bold: true, children: count })] }, state)))] })), (cleanupSucceeded > 0 || cleanupFailed > 0) && (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { dimColor: true, children: ["Cleanup: ", _jsx(Text, { bold: true, color: "green", children: cleanupSucceeded }), " deleted", cleanupFailed > 0 && _jsxs(Text, { children: [", ", _jsx(Text, { bold: true, color: "yellow", children: cleanupFailed }), " failed"] })] }) })), _jsx(Text, { dimColor: true, children: "Press any key to return home." })] }));
48
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Text, { bold: true, color: statusColor, children: ["Lifecycle Summary \u2014 ", statusLabel] }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: ["Total PRISM comments: ", _jsx(Text, { bold: true, children: totalPrismComments })] }), captureErrors > 0 && (_jsxs(Text, { color: "yellow", children: ["Capture errors: ", _jsx(Text, { bold: true, children: captureErrors })] }))] }), Object.keys(stateCounts).length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "State breakdown:" }), Object.entries(stateCounts).map(([state, count]) => (_jsxs(Text, { dimColor: true, children: [" ", state, ": ", _jsx(Text, { bold: true, children: count })] }, state)))] })), (cleanupSucceeded > 0 || cleanupFailed > 0) && (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { dimColor: true, children: ["Cleanup: ", _jsx(Text, { bold: true, color: "green", children: cleanupSucceeded }), " deleted", cleanupFailed > 0 && _jsxs(Text, { children: [", ", _jsx(Text, { bold: true, color: "yellow", children: cleanupFailed }), " failed"] })] }) })), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: "Start a new review? The PR URL is pre-filled \u2014 edit it to review another PR." }), _jsx(Text, { dimColor: true, children: "[Enter] start a new review \u00B7 [Esc] return home" })] })] }));
31
49
  }
32
50
  //# sourceMappingURL=lifecycle-summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-summary.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-summary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-summary.js","sourceRoot":"","sources":["../../../src/tui/screens/lifecycle-summary.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,MAAM,WAAW,GAAiB;IAChC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC7C,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;CAC9B,CAAC;AAEF,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,KAAK,mBAAmB,CAAC;IAE5D,SAAS,CAAC,WAAW,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAsB,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3G,MAAM,kBAAkB,GAAG,OAAO,MAAM,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,aAAa,GAAG,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhG,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzE,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,WAAW,GACf,cAAc,KAAK,IAAI,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAC7F,CAAC,CAAE,cAA0D;QAC7D,CAAC,CAAC,EAAE,CAAC;IAET,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,2EAA2E;YAC3E,2EAA2E;YAC3E,0EAA0E;YAC1E,4EAA4E;YAC5E,4EAA4E;YAC5E,sEAAsE;YACtE,+EAA+E;YAC/E,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjB,MAAM,WAAW,GACf,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,CAAC;IAER,MAAM,WAAW,GACf,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAClD,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAChD,gBAAgB,CAAC;IAEnB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAChC,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,WAAW,0CAAuB,WAAW,IAAQ,EAEvE,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,yCAAuB,KAAC,IAAI,IAAC,IAAI,kBAAE,kBAAkB,GAAQ,IAAO,EACxE,aAAa,GAAG,CAAC,IAAI,CACpB,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,iCAAiB,KAAC,IAAI,IAAC,IAAI,kBAAE,aAAa,GAAQ,IAAO,CAC9E,IACG,EAEL,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACtC,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,QAAQ,uCAAwB,EACpC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAgC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACnF,MAAC,IAAI,IAAa,QAAQ,yBAAI,KAAK,QAAG,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,GAAQ,KAApD,KAAK,CAAsD,CACvE,CAAC,IACE,CACP,EAEA,CAAC,gBAAgB,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,IAAI,CAC9C,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,MAAC,IAAI,IAAC,QAAQ,gCAAU,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YAAE,gBAAgB,GAAQ,cACvE,aAAa,GAAG,CAAC,IAAI,MAAC,IAAI,qBAAG,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,YAAE,aAAa,GAAQ,eAAc,IACvF,GACH,CACP,EAED,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,oGAAoF,EACzF,KAAC,IAAI,IAAC,QAAQ,8EAA0D,IACpE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/publishing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAwB1B,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,YAAY,CA0IrD"}
1
+ {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../../../src/tui/screens/publishing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA0BxC,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,YAAY,CA0JrD"}
@@ -1,10 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Box, Text, useInput } from 'ink';
3
4
  import { Spinner } from '../components/spinner.js';
4
5
  import { useFooter } from '../hooks/use-footer.js';
5
6
  import { useAlert } from '../hooks/use-alert.js';
6
7
  import { useRouter } from '../state/router-context.js';
7
8
  import { useTUI } from '../state/tui-context.js';
9
+ import { useSuggestRules } from '../hooks/use-suggest-rules.js';
8
10
  import { formatCost } from '../../utils/cost-estimator.js';
9
11
  const PUBLISHING_ERROR_FOOTER = [
10
12
  { key: 'Esc', label: 'home' },
@@ -12,23 +14,42 @@ const PUBLISHING_ERROR_FOOTER = [
12
14
  const PUBLISHING_COMPLETE_FOOTER = [
13
15
  { key: 'any key', label: 'home' },
14
16
  ];
15
- const PUBLISHING_PUBLISH_COMPLETE_FOOTER = [
16
- { key: 'any key', label: 'continue' },
17
+ const PUBLISHING_SUGGEST_FOOTER = [
18
+ { key: 'g', label: 'suggest rules' },
19
+ { key: 'any key', label: 'home' },
17
20
  ];
18
21
  const PUBLISHING_EMPTY_FOOTER = [];
19
22
  export function PublishingScreen() {
20
23
  const { state, dispatch } = useTUI();
21
- const { reset, currentScreen } = useRouter();
24
+ const { push, reset, currentScreen } = useRouter();
22
25
  const isActive = currentScreen.name === 'publishing';
23
26
  const { workflow } = state;
27
+ const { generate } = useSuggestRules('review');
28
+ const [showReport, setShowReport] = useState(false);
24
29
  const footerItems = workflow.status === 'error' ? PUBLISHING_ERROR_FOOTER :
25
30
  workflow.status === 'complete' ? PUBLISHING_COMPLETE_FOOTER :
26
- workflow.status === 'publish-complete' ? PUBLISHING_PUBLISH_COMPLETE_FOOTER :
27
- PUBLISHING_EMPTY_FOOTER;
31
+ (workflow.status === 'publish-complete' && showReport) ? PUBLISHING_COMPLETE_FOOTER :
32
+ workflow.status === 'publish-complete' ? PUBLISHING_SUGGEST_FOOTER :
33
+ PUBLISHING_EMPTY_FOOTER;
28
34
  useFooter(footerItems);
29
35
  useAlert(workflow.status === 'complete' || workflow.status === 'publish-complete' || workflow.status === 'error');
30
- useInput((_input, key) => {
31
- if (workflow.status === 'publish-complete' || workflow.status === 'complete') {
36
+ useInput((input, key) => {
37
+ if (workflow.status === 'publish-complete') {
38
+ if (input === 'g' && !showReport) {
39
+ if (state.suggestions.status !== 'reviewing') {
40
+ generate();
41
+ }
42
+ push({ name: 'rule-suggestions', params: {} });
43
+ }
44
+ else if (workflow.finalReport !== null && !showReport) {
45
+ setShowReport(true);
46
+ }
47
+ else {
48
+ dispatch({ type: 'WORKFLOW_RESET' });
49
+ reset({ name: 'home', params: {} });
50
+ }
51
+ }
52
+ else if (workflow.status === 'complete') {
32
53
  dispatch({ type: 'WORKFLOW_RESET' });
33
54
  reset({ name: 'home', params: {} });
34
55
  }
@@ -42,7 +63,7 @@ export function PublishingScreen() {
42
63
  return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Text, { bold: true, color: "red", children: "Publishing Error" }), _jsx(Text, { color: "red", children: workflow.error ?? 'An unknown error occurred' })] }));
43
64
  }
44
65
  // ── Complete state (final report) ────────────────────────────────────────────
45
- if (workflow.status === 'complete' && workflow.finalReport !== null) {
66
+ if ((workflow.status === 'complete' || showReport) && workflow.finalReport !== null) {
46
67
  const report = workflow.finalReport;
47
68
  const pr = workflow.publishResult;
48
69
  return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Text, { bold: true, color: "green", children: "Review Complete" }), pr !== null && (_jsxs(Box, { flexDirection: "row", gap: 2, children: [_jsxs(Text, { children: ["Published: ", _jsx(Text, { color: "green", bold: true, children: pr.publishedCount })] }), pr.skippedCount > 0 && (_jsxs(Text, { children: ["Skipped: ", _jsx(Text, { color: "yellow", children: pr.skippedCount })] })), pr.failedCount > 0 && (_jsxs(Text, { children: ["Failed: ", _jsx(Text, { color: "red", children: pr.failedCount })] }))] })), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["Cost: ", formatCost(report.cost, report.usage)] }), report.sessionId !== null && (_jsxs(Text, { dimColor: true, children: ["Session: ", report.sessionId] })), _jsxs(Text, { dimColor: true, children: ["Memory: ", report.memorySaved ? 'Saved to local DB' : 'Failed to save findings'] }), workflow.summaryComment !== null && (_jsx(Text, { dimColor: true, children: "Summary: Posted to Bitbucket" }))] })] }));