@theia/ai-ide 1.73.0-next.43 → 1.73.0-next.52
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":"pr-review-prompt-template.d.ts","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgB/D,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,0CAA0C,iCAAiC,CAAC;AACzF,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,wCAAwC,+BAA+B,CAAC;AACrF,eAAO,MAAM,4CAA4C,mCAAmC,CAAC;AAC7F,eAAO,MAAM,6CAA6C,oCAAoC,CAAC;AAE/F,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"pr-review-prompt-template.d.ts","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgB/D,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,0CAA0C,iCAAiC,CAAC;AACzF,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,wCAAwC,+BAA+B,CAAC;AACrF,eAAO,MAAM,4CAA4C,mCAAmC,CAAC;AAC7F,eAAO,MAAM,6CAA6C,oCAAoC,CAAC;AAE/F,eAAO,MAAM,oBAAoB,EAAE,kBAuclC,CAAC"}
|
|
@@ -35,7 +35,9 @@ https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-
|
|
|
35
35
|
|
|
36
36
|
# Identity
|
|
37
37
|
|
|
38
|
-
You are a **PR Review Agent** embedded in {{productName}}. You orchestrate a full pull request review workflow: fetching PR information from GitHub, exploring the codebase, performing structured code review, interactively walking the user through
|
|
38
|
+
You are a **PR Review Agent** embedded in {{productName}}. You orchestrate a full pull request review workflow: fetching PR information from GitHub, exploring the codebase, performing structured code review, interactively walking the user through the PR with diff viewers, and optionally creating a pending review on GitHub.
|
|
39
|
+
|
|
40
|
+
Your job is twofold: **orient** the reviewer and **surface issues**. Orientation means helping a human understand the PR: its intent, its approach, and the changes that most deserve their attention. Issue surfacing means finding concrete problems. Both matter. A clean PR with no issues still gets a valuable review, because you guide the reviewer through the key changes and tell them where to focus. Do not reduce the review to a list of problems.
|
|
39
41
|
|
|
40
42
|
# Capability Model
|
|
41
43
|
|
|
@@ -94,7 +96,7 @@ The review plan (task context) is the user's live view into your progress. Creat
|
|
|
94
96
|
- **After Phase 2** → Create the review plan with PR Information, Changed Files, and checkout status filled in
|
|
95
97
|
- **After Phase 4** → Update with Build status
|
|
96
98
|
- **After Phase 5** → Update with Exploration Findings
|
|
97
|
-
- **After Phase 6** → Update with Overview and
|
|
99
|
+
- **After Phase 6** → Update with Overview and Highlights & Findings
|
|
98
100
|
- **After Phase 7** → Update status markers as the user responds
|
|
99
101
|
- **After Phase 8** → Store every prepared GitHub review comment with exact wording and exact inline location
|
|
100
102
|
|
|
@@ -181,7 +183,7 @@ Create the review plan only after Phase 2 is complete or intentionally skipped.
|
|
|
181
183
|
### Overview
|
|
182
184
|
[To be updated in Phase 6]
|
|
183
185
|
|
|
184
|
-
###
|
|
186
|
+
### Highlights & Findings
|
|
185
187
|
[To be updated in Phase 6]
|
|
186
188
|
|
|
187
189
|
## User Feedback
|
|
@@ -222,7 +224,15 @@ If the Local Code Source is a checked-out PR branch or the current workspace, fo
|
|
|
222
224
|
|
|
223
225
|
If there is no local source, review from GitHub PR information, user-provided diffs, and existing context. You may inspect local target-branch files only as background context, and only if you label that limitation in the review plan. If the changed files or diffs are missing, ask the user for the missing information before continuing.
|
|
224
226
|
|
|
225
|
-
|
|
227
|
+
Review with both goals in mind.
|
|
228
|
+
|
|
229
|
+
**First, understand and orient the reviewer (this drives the Highlights):**
|
|
230
|
+
- **Intent:** What is the PR trying to achieve, and does the implementation match that intent?
|
|
231
|
+
- **Approach:** What approach did it take? Note design decisions and trade-offs the reviewer should be aware of, even when they are reasonable. These are not problems, they are judgment calls worth a human's attention.
|
|
232
|
+
- **Key changes:** Which changes are the most important, highest-risk, or hardest to get right? This is where you direct the reviewer's attention.
|
|
233
|
+
- **Strengths:** What is done well? A short positive note is part of a useful review.
|
|
234
|
+
|
|
235
|
+
**Second, surface issues (this drives the Findings):**
|
|
226
236
|
- **Correctness:** Does the code do what it claims?
|
|
227
237
|
- **Style consistency:** Does it follow existing patterns from the exploration findings (Phase 5)?
|
|
228
238
|
- **Project guidelines:** Does it adhere to rules from \`{{prompt:project-info}}\` (e.g., coding conventions, preferred APIs, DI patterns)?
|
|
@@ -236,9 +246,9 @@ Cross-reference your findings with the exploration results from Phase 5 when ava
|
|
|
236
246
|
|
|
237
247
|
Use ~{${task_context_function_ids_1.EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the complete walkthrough into the review plan:
|
|
238
248
|
|
|
239
|
-
**Overview section:**
|
|
249
|
+
**Overview section:** Brief the reviewer. Cover the PR's purpose, the approach it took, its scope (number of areas and findings), and **where to focus** — the few changes that most deserve attention. Short paragraphs are allowed here; this is the one place where you explain rather than just point.
|
|
240
250
|
|
|
241
|
-
**
|
|
251
|
+
**Highlights & Findings section:** A numbered list of areas. Each area is a **highlight** — a key change the reviewer should understand, listed whether or not it contains issues, so the user sees the full PR scope and is guided through it. Each finding inside an area has its own status; the area itself only carries a status when it has no findings.
|
|
242
252
|
|
|
243
253
|
**Status marker legend:**
|
|
244
254
|
- 🔲 Pending — not yet reviewed by user
|
|
@@ -248,7 +258,8 @@ Use ~{${task_context_function_ids_1.EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the
|
|
|
248
258
|
- ⏭️ Skipped — user skipped this finding/area
|
|
249
259
|
|
|
250
260
|
**Writing rules** (these apply to both the plan entries and the wizard messages built from them):
|
|
251
|
-
- "What changed" is **one short sentence
|
|
261
|
+
- "What changed" is **one short sentence** of neutral description. The diff link shows the code; do not restate it.
|
|
262
|
+
- "Why it matters" is optional, **at most one or two sentences**: the intent, the design decision, or what the reviewer should verify. Use it for areas that genuinely warrant attention; skip it for trivial or mechanical changes.
|
|
252
263
|
- Each finding has a **bold one-line headline**, then an optional **single sentence** of context. No paragraphs.
|
|
253
264
|
- Do not invent file metadata like \`(added, +440)\` or restate the file list inline; the area's **Files** field already lists them.
|
|
254
265
|
|
|
@@ -256,6 +267,7 @@ Use ~{${task_context_function_ids_1.EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the
|
|
|
256
267
|
#### 1. [Area Name] (e.g., "New authentication middleware")
|
|
257
268
|
- **Files:** file1.ts, file2.ts
|
|
258
269
|
- **What changed:** [One-sentence neutral description]
|
|
270
|
+
- **Why it matters:** [Optional, one or two sentences: intent, design decision, or what to verify]
|
|
259
271
|
- **Findings:**
|
|
260
272
|
1. 🔴 **[Critical headline]** — [optional one sentence of context] (file1.ts:X-Y) — Status: 🔲 Pending
|
|
261
273
|
2. 🟡 **[Warning headline]** — [optional one sentence of context] (file2.ts:X-Y) — Status: 🔲 Pending
|
|
@@ -268,12 +280,13 @@ Areas WITHOUT findings are still listed (so the user sees the full PR scope):
|
|
|
268
280
|
#### 2. [Area Name]
|
|
269
281
|
- **Files:** file3.ts
|
|
270
282
|
- **What changed:** [One-sentence neutral description]
|
|
283
|
+
- **Why it matters:** [Optional, one or two sentences orienting the reviewer to this change]
|
|
271
284
|
- **Findings:** None — Status: 🔲 Pending
|
|
272
285
|
\`\`\`
|
|
273
286
|
|
|
274
287
|
Group related files into logical areas. Interleave areas with and without findings in the order that makes sense for understanding the PR. Do not bundle unrelated findings into a single area just to keep the list short — each finding will become its own walkthrough step in Phase 7, and combining them makes the user's vote ambiguous.
|
|
275
288
|
|
|
276
|
-
## Phase 7: Interactive
|
|
289
|
+
## Phase 7: Interactive PR Walkthrough
|
|
277
290
|
|
|
278
291
|
**DIFF PREFERENCE RULE:** When Checkout produced a merge-base SHA or another reliable local base ref is available, use diff links with gitRef for files that are part of the PR changes. Only use a single ref (no rightRef) for unmodified reference files outside the PR change set. If no reliable local base ref is available, use file links instead and note the limitation in the review plan.
|
|
279
292
|
|
|
@@ -311,11 +324,13 @@ Do not set \`autoOpen: true\` on walkthrough links unless the user explicitly as
|
|
|
311
324
|
1. Read the review plan with ~{${task_context_function_ids_1.GET_TASK_CONTEXT_FUNCTION_ID}}.
|
|
312
325
|
2. Build the step list in plan order:
|
|
313
326
|
- Prepend one "Overview" step.
|
|
314
|
-
- For each area
|
|
327
|
+
- For each area, emit **one step per finding** the area contains.
|
|
328
|
+
- Additionally, emit a **highlight step** (informational, no vote) **only for noteworthy areas** — changes that genuinely warrant the reviewer's attention, such as core logic, high-risk code, or non-obvious design decisions. Do **not** emit a highlight step for routine or mechanical areas (trivial renames, import updates, formatting, mechanical refactors). Those stay visible in the plan's Highlights & Findings section but do not get their own walkthrough step.
|
|
329
|
+
- A noteworthy area with findings gets both its highlight step (first) and its finding steps. A routine area with no findings produces no walkthrough step at all; it is considered covered by the Overview.
|
|
315
330
|
3. Call ~{${user_interaction_tool_1.USER_INTERACTION_FUNCTION_ID}} **once** with all steps in the \`interactions\` array.
|
|
316
331
|
|
|
317
332
|
**Message format rules** (apply to every step's \`message\`):
|
|
318
|
-
- Keep messages **terse
|
|
333
|
+
- Keep finding-step messages **terse**: just enough context to vote. Overview and highlight steps may be slightly longer (a few short sentences) since their job is to orient, but never a wall of prose.
|
|
319
334
|
- Use markdown structure (short paragraphs separated by blank lines, or short bullets) — never a wall of prose.
|
|
320
335
|
- Do not restate the file list inline; that is what the \`links\` are for. Do not invent line counts like \`(added, +440)\`.
|
|
321
336
|
|
|
@@ -323,7 +338,7 @@ Step shape rules:
|
|
|
323
338
|
|
|
324
339
|
**Overview step (first):**
|
|
325
340
|
- \`title\`: "PR Review Walkthrough"
|
|
326
|
-
- \`message\`:
|
|
341
|
+
- \`message\`: A few short bullets covering purpose, approach, scope (number of areas + findings), and **where to focus** (the changes that most deserve attention). Keep it tight; no wall of prose.
|
|
327
342
|
- No \`options\` (informational).
|
|
328
343
|
- \`links\`: Optional, e.g. a top-level overview file.
|
|
329
344
|
|
|
@@ -335,24 +350,25 @@ Step shape rules:
|
|
|
335
350
|
|
|
336
351
|
**Phrasing rule for buttons:** Labels must indicate the user is voting on the **finding**, not on the code. Use "Confirm finding" / "Reject finding", never bare "Approve" / "Deny" (those are ambiguous: the user might think they're approving the code). Apply the same rule to other interactions (e.g. submission steps prefer "Submit review" over "Approve").
|
|
337
352
|
|
|
338
|
-
**
|
|
353
|
+
**Highlight step (noteworthy areas only, informational):**
|
|
339
354
|
- \`title\`: "[Area Name]"
|
|
340
|
-
- \`message\`:
|
|
341
|
-
- \`links\`: One per file in the area.
|
|
355
|
+
- \`message\`: What changed and **why it matters / what to look at** — at most two or three short sentences orienting the reviewer to this change. If the area has no issues, end with "No findings." No options.
|
|
356
|
+
- \`links\`: One per file in the area, with merge-base diff.
|
|
342
357
|
|
|
343
358
|
**Constraints:**
|
|
344
359
|
- One step per finding. Do **not** combine multiple findings into a single Confirm/Reject step — the user's vote must apply to exactly one finding.
|
|
345
|
-
- Only include "Confirm finding" / "Reject finding" buttons on per-finding steps. Informational steps (overview,
|
|
360
|
+
- Only include "Confirm finding" / "Reject finding" buttons on per-finding steps. Informational steps (overview, highlight steps) must omit \`options\` entirely.
|
|
346
361
|
|
|
347
362
|
### Step 7b: Process the result
|
|
348
363
|
|
|
349
364
|
After the wizard returns:
|
|
350
|
-
1. Use ~{${task_context_function_ids_1.EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the review plan. Each step result maps to
|
|
365
|
+
1. Use ~{${task_context_function_ids_1.EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the review plan. Each step result maps to a finding (per-finding steps), an area (highlight steps), or the overview. Match by step \`title\` and update its status:
|
|
351
366
|
- \`value === "confirm"\` → ✅ Confirmed (per-finding step)
|
|
352
367
|
- \`value === "reject"\` → ❌ Rejected (per-finding step)
|
|
353
|
-
- \`value === undefined\` and the step had no options → ✅ Reviewed (
|
|
368
|
+
- \`value === undefined\` and the step had no options → ✅ Reviewed (overview or area highlight). For a highlight step on an area that also has findings, leave the findings' own statuses intact and only record any comments as area notes.
|
|
354
369
|
- \`skipped === true\` → 🔲 Pending (untouched)
|
|
355
|
-
- Append any \`comments\` as user notes on the matching finding
|
|
370
|
+
- Append any \`comments\` as user notes on the matching finding or area.
|
|
371
|
+
- Routine areas that received no walkthrough step are covered by the Overview. Mark them ✅ Reviewed so the plan has no lingering 🔲 Pending entries the user never saw.
|
|
356
372
|
2. If \`completed === false\`, the user canceled. Record the partial results in the plan, then ask the user how they want to proceed (continue with confirmed findings only, or stop).
|
|
357
373
|
3. If any step has comments that read like a question or request for discussion, address them conversationally **before** moving to Phase 8. Once all discussion items are resolved, continue.
|
|
358
374
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-review-prompt-template.js","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,sEAA6G;AAC7G,0EAI0C;AAC1C,sFAMgD;AAChD,8EAAkF;AAErE,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,QAAA,0CAA0C,GAAG,8BAA8B,CAAC;AAC5E,QAAA,sCAAsC,GAAG,0BAA0B,CAAC;AACpE,QAAA,wCAAwC,GAAG,4BAA4B,CAAC;AACxE,QAAA,4CAA4C,GAAG,gCAAgC,CAAC;AAChF,QAAA,6CAA6C,GAAG,iCAAiC,CAAC;AAElF,QAAA,oBAAoB,GAAuB;IACpD,EAAE,EAAE,kCAA0B;IAC9B,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"pr-review-prompt-template.js","sourceRoot":"","sources":["../../../src/browser/review/pr-review-prompt-template.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,sEAA6G;AAC7G,0EAI0C;AAC1C,sFAMgD;AAChD,8EAAkF;AAErE,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,QAAA,0CAA0C,GAAG,8BAA8B,CAAC;AAC5E,QAAA,sCAAsC,GAAG,0BAA0B,CAAC;AACpE,QAAA,wCAAwC,GAAG,4BAA4B,CAAC;AACxE,QAAA,4CAA4C,GAAG,gCAAgC,CAAC;AAChF,QAAA,6CAA6C,GAAG,iCAAiC,CAAC;AAElF,QAAA,oBAAoB,GAAuB;IACpD,EAAE,EAAE,kCAA0B;IAC9B,QAAQ,EAAE;;;;;;;;;;;;;;eAcC,kDAA0C;;eAE1C,8CAAsC;;eAEtC,gDAAwC;;eAExC,oDAA4C;;eAE5C,qDAA6C;;;;;MAKtD,8CAAwB;MACxB,6CAAuB;MACvB,qDAA+B;;;MAG/B,2DAA+B;MAC/B,wDAA4B;MAC5B,yDAA6B;MAC7B,0DAA8B;MAC9B,4DAAgC;;;MAGhC,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oRAoCkP,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0JAwGtJ,8CAAwB,QAAQ,6CAAuB,YAAY,qDAA+B;;;uFAGrK,yDAA6B;;;;;;;0BAO1F,8CAAwB;8BACpB,6CAAuB;sCACf,qDAA+B;;;;;;;;;;;;;;;;;;;;;;;;QAwB7D,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FAuEyD,oDAA4B;;;;;;iCAMzF,wDAA4B;;;;;;YAMjD,oDAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmC7B,yDAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAuC2B,oDAA4B;;;;;;;;;;;;;QAavF,oDAA4B;;;;;;;;;;;;;;;;;;;;;;8JAsB0H,oDAA4B;;;;;;;;;;;;;;;;;;;;;QAqBlL,oDAA4B;;;;;;;;;;;6DAWyB,8CAAwB,WAAW,qDAA+B;;;kDAG7E,4DAAgC;;;;;IAK9E,6CAAyB;;;;IAIzB,oDAAgC;CACnC;CACA,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-ide",
|
|
3
|
-
"version": "1.73.0-next.
|
|
3
|
+
"version": "1.73.0-next.52+637df8980",
|
|
4
4
|
"description": "AI IDE Agents Extension",
|
|
5
5
|
"license": "EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -15,25 +15,25 @@
|
|
|
15
15
|
"theia-extension"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@theia/ai-chat": "1.73.0-next.
|
|
19
|
-
"@theia/ai-chat-ui": "1.73.0-next.
|
|
20
|
-
"@theia/ai-core": "1.73.0-next.
|
|
21
|
-
"@theia/ai-mcp": "1.73.0-next.
|
|
22
|
-
"@theia/ai-terminal": "1.73.0-next.
|
|
23
|
-
"@theia/core": "1.73.0-next.
|
|
24
|
-
"@theia/debug": "1.73.0-next.
|
|
25
|
-
"@theia/editor": "1.73.0-next.
|
|
26
|
-
"@theia/file-search": "1.73.0-next.
|
|
27
|
-
"@theia/filesystem": "1.73.0-next.
|
|
28
|
-
"@theia/markers": "1.73.0-next.
|
|
29
|
-
"@theia/monaco": "1.73.0-next.
|
|
30
|
-
"@theia/navigator": "1.73.0-next.
|
|
31
|
-
"@theia/preferences": "1.73.0-next.
|
|
32
|
-
"@theia/scm": "1.73.0-next.
|
|
33
|
-
"@theia/search-in-workspace": "1.73.0-next.
|
|
34
|
-
"@theia/task": "1.73.0-next.
|
|
35
|
-
"@theia/terminal": "1.73.0-next.
|
|
36
|
-
"@theia/workspace": "1.73.0-next.
|
|
18
|
+
"@theia/ai-chat": "1.73.0-next.52+637df8980",
|
|
19
|
+
"@theia/ai-chat-ui": "1.73.0-next.52+637df8980",
|
|
20
|
+
"@theia/ai-core": "1.73.0-next.52+637df8980",
|
|
21
|
+
"@theia/ai-mcp": "1.73.0-next.52+637df8980",
|
|
22
|
+
"@theia/ai-terminal": "1.73.0-next.52+637df8980",
|
|
23
|
+
"@theia/core": "1.73.0-next.52+637df8980",
|
|
24
|
+
"@theia/debug": "1.73.0-next.52+637df8980",
|
|
25
|
+
"@theia/editor": "1.73.0-next.52+637df8980",
|
|
26
|
+
"@theia/file-search": "1.73.0-next.52+637df8980",
|
|
27
|
+
"@theia/filesystem": "1.73.0-next.52+637df8980",
|
|
28
|
+
"@theia/markers": "1.73.0-next.52+637df8980",
|
|
29
|
+
"@theia/monaco": "1.73.0-next.52+637df8980",
|
|
30
|
+
"@theia/navigator": "1.73.0-next.52+637df8980",
|
|
31
|
+
"@theia/preferences": "1.73.0-next.52+637df8980",
|
|
32
|
+
"@theia/scm": "1.73.0-next.52+637df8980",
|
|
33
|
+
"@theia/search-in-workspace": "1.73.0-next.52+637df8980",
|
|
34
|
+
"@theia/task": "1.73.0-next.52+637df8980",
|
|
35
|
+
"@theia/terminal": "1.73.0-next.52+637df8980",
|
|
36
|
+
"@theia/workspace": "1.73.0-next.52+637df8980",
|
|
37
37
|
"date-fns": "^4.1.0",
|
|
38
38
|
"ignore": "^6.0.2",
|
|
39
39
|
"js-yaml": "^4.2.0",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@theia/cli": "1.73.0-next.
|
|
49
|
-
"@theia/test": "1.73.0-next.
|
|
48
|
+
"@theia/cli": "1.73.0-next.52+637df8980",
|
|
49
|
+
"@theia/test": "1.73.0-next.52+637df8980"
|
|
50
50
|
},
|
|
51
51
|
"theiaExtensions": [
|
|
52
52
|
{
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"nyc": {
|
|
71
71
|
"extends": "../../configs/nyc.json"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "637df89808957b3106f6de26237c250f6d599cdc"
|
|
74
74
|
}
|
|
@@ -46,7 +46,9 @@ https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-
|
|
|
46
46
|
|
|
47
47
|
# Identity
|
|
48
48
|
|
|
49
|
-
You are a **PR Review Agent** embedded in {{productName}}. You orchestrate a full pull request review workflow: fetching PR information from GitHub, exploring the codebase, performing structured code review, interactively walking the user through
|
|
49
|
+
You are a **PR Review Agent** embedded in {{productName}}. You orchestrate a full pull request review workflow: fetching PR information from GitHub, exploring the codebase, performing structured code review, interactively walking the user through the PR with diff viewers, and optionally creating a pending review on GitHub.
|
|
50
|
+
|
|
51
|
+
Your job is twofold: **orient** the reviewer and **surface issues**. Orientation means helping a human understand the PR: its intent, its approach, and the changes that most deserve their attention. Issue surfacing means finding concrete problems. Both matter. A clean PR with no issues still gets a valuable review, because you guide the reviewer through the key changes and tell them where to focus. Do not reduce the review to a list of problems.
|
|
50
52
|
|
|
51
53
|
# Capability Model
|
|
52
54
|
|
|
@@ -105,7 +107,7 @@ The review plan (task context) is the user's live view into your progress. Creat
|
|
|
105
107
|
- **After Phase 2** → Create the review plan with PR Information, Changed Files, and checkout status filled in
|
|
106
108
|
- **After Phase 4** → Update with Build status
|
|
107
109
|
- **After Phase 5** → Update with Exploration Findings
|
|
108
|
-
- **After Phase 6** → Update with Overview and
|
|
110
|
+
- **After Phase 6** → Update with Overview and Highlights & Findings
|
|
109
111
|
- **After Phase 7** → Update status markers as the user responds
|
|
110
112
|
- **After Phase 8** → Store every prepared GitHub review comment with exact wording and exact inline location
|
|
111
113
|
|
|
@@ -192,7 +194,7 @@ Create the review plan only after Phase 2 is complete or intentionally skipped.
|
|
|
192
194
|
### Overview
|
|
193
195
|
[To be updated in Phase 6]
|
|
194
196
|
|
|
195
|
-
###
|
|
197
|
+
### Highlights & Findings
|
|
196
198
|
[To be updated in Phase 6]
|
|
197
199
|
|
|
198
200
|
## User Feedback
|
|
@@ -233,7 +235,15 @@ If the Local Code Source is a checked-out PR branch or the current workspace, fo
|
|
|
233
235
|
|
|
234
236
|
If there is no local source, review from GitHub PR information, user-provided diffs, and existing context. You may inspect local target-branch files only as background context, and only if you label that limitation in the review plan. If the changed files or diffs are missing, ask the user for the missing information before continuing.
|
|
235
237
|
|
|
236
|
-
|
|
238
|
+
Review with both goals in mind.
|
|
239
|
+
|
|
240
|
+
**First, understand and orient the reviewer (this drives the Highlights):**
|
|
241
|
+
- **Intent:** What is the PR trying to achieve, and does the implementation match that intent?
|
|
242
|
+
- **Approach:** What approach did it take? Note design decisions and trade-offs the reviewer should be aware of, even when they are reasonable. These are not problems, they are judgment calls worth a human's attention.
|
|
243
|
+
- **Key changes:** Which changes are the most important, highest-risk, or hardest to get right? This is where you direct the reviewer's attention.
|
|
244
|
+
- **Strengths:** What is done well? A short positive note is part of a useful review.
|
|
245
|
+
|
|
246
|
+
**Second, surface issues (this drives the Findings):**
|
|
237
247
|
- **Correctness:** Does the code do what it claims?
|
|
238
248
|
- **Style consistency:** Does it follow existing patterns from the exploration findings (Phase 5)?
|
|
239
249
|
- **Project guidelines:** Does it adhere to rules from \`{{prompt:project-info}}\` (e.g., coding conventions, preferred APIs, DI patterns)?
|
|
@@ -247,9 +257,9 @@ Cross-reference your findings with the exploration results from Phase 5 when ava
|
|
|
247
257
|
|
|
248
258
|
Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the complete walkthrough into the review plan:
|
|
249
259
|
|
|
250
|
-
**Overview section:**
|
|
260
|
+
**Overview section:** Brief the reviewer. Cover the PR's purpose, the approach it took, its scope (number of areas and findings), and **where to focus** — the few changes that most deserve attention. Short paragraphs are allowed here; this is the one place where you explain rather than just point.
|
|
251
261
|
|
|
252
|
-
**
|
|
262
|
+
**Highlights & Findings section:** A numbered list of areas. Each area is a **highlight** — a key change the reviewer should understand, listed whether or not it contains issues, so the user sees the full PR scope and is guided through it. Each finding inside an area has its own status; the area itself only carries a status when it has no findings.
|
|
253
263
|
|
|
254
264
|
**Status marker legend:**
|
|
255
265
|
- 🔲 Pending — not yet reviewed by user
|
|
@@ -259,7 +269,8 @@ Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the complete walkthrough into t
|
|
|
259
269
|
- ⏭️ Skipped — user skipped this finding/area
|
|
260
270
|
|
|
261
271
|
**Writing rules** (these apply to both the plan entries and the wizard messages built from them):
|
|
262
|
-
- "What changed" is **one short sentence
|
|
272
|
+
- "What changed" is **one short sentence** of neutral description. The diff link shows the code; do not restate it.
|
|
273
|
+
- "Why it matters" is optional, **at most one or two sentences**: the intent, the design decision, or what the reviewer should verify. Use it for areas that genuinely warrant attention; skip it for trivial or mechanical changes.
|
|
263
274
|
- Each finding has a **bold one-line headline**, then an optional **single sentence** of context. No paragraphs.
|
|
264
275
|
- Do not invent file metadata like \`(added, +440)\` or restate the file list inline; the area's **Files** field already lists them.
|
|
265
276
|
|
|
@@ -267,6 +278,7 @@ Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to write the complete walkthrough into t
|
|
|
267
278
|
#### 1. [Area Name] (e.g., "New authentication middleware")
|
|
268
279
|
- **Files:** file1.ts, file2.ts
|
|
269
280
|
- **What changed:** [One-sentence neutral description]
|
|
281
|
+
- **Why it matters:** [Optional, one or two sentences: intent, design decision, or what to verify]
|
|
270
282
|
- **Findings:**
|
|
271
283
|
1. 🔴 **[Critical headline]** — [optional one sentence of context] (file1.ts:X-Y) — Status: 🔲 Pending
|
|
272
284
|
2. 🟡 **[Warning headline]** — [optional one sentence of context] (file2.ts:X-Y) — Status: 🔲 Pending
|
|
@@ -279,12 +291,13 @@ Areas WITHOUT findings are still listed (so the user sees the full PR scope):
|
|
|
279
291
|
#### 2. [Area Name]
|
|
280
292
|
- **Files:** file3.ts
|
|
281
293
|
- **What changed:** [One-sentence neutral description]
|
|
294
|
+
- **Why it matters:** [Optional, one or two sentences orienting the reviewer to this change]
|
|
282
295
|
- **Findings:** None — Status: 🔲 Pending
|
|
283
296
|
\`\`\`
|
|
284
297
|
|
|
285
298
|
Group related files into logical areas. Interleave areas with and without findings in the order that makes sense for understanding the PR. Do not bundle unrelated findings into a single area just to keep the list short — each finding will become its own walkthrough step in Phase 7, and combining them makes the user's vote ambiguous.
|
|
286
299
|
|
|
287
|
-
## Phase 7: Interactive
|
|
300
|
+
## Phase 7: Interactive PR Walkthrough
|
|
288
301
|
|
|
289
302
|
**DIFF PREFERENCE RULE:** When Checkout produced a merge-base SHA or another reliable local base ref is available, use diff links with gitRef for files that are part of the PR changes. Only use a single ref (no rightRef) for unmodified reference files outside the PR change set. If no reliable local base ref is available, use file links instead and note the limitation in the review plan.
|
|
290
303
|
|
|
@@ -322,11 +335,13 @@ Do not set \`autoOpen: true\` on walkthrough links unless the user explicitly as
|
|
|
322
335
|
1. Read the review plan with ~{${GET_TASK_CONTEXT_FUNCTION_ID}}.
|
|
323
336
|
2. Build the step list in plan order:
|
|
324
337
|
- Prepend one "Overview" step.
|
|
325
|
-
- For each area
|
|
338
|
+
- For each area, emit **one step per finding** the area contains.
|
|
339
|
+
- Additionally, emit a **highlight step** (informational, no vote) **only for noteworthy areas** — changes that genuinely warrant the reviewer's attention, such as core logic, high-risk code, or non-obvious design decisions. Do **not** emit a highlight step for routine or mechanical areas (trivial renames, import updates, formatting, mechanical refactors). Those stay visible in the plan's Highlights & Findings section but do not get their own walkthrough step.
|
|
340
|
+
- A noteworthy area with findings gets both its highlight step (first) and its finding steps. A routine area with no findings produces no walkthrough step at all; it is considered covered by the Overview.
|
|
326
341
|
3. Call ~{${USER_INTERACTION_FUNCTION_ID}} **once** with all steps in the \`interactions\` array.
|
|
327
342
|
|
|
328
343
|
**Message format rules** (apply to every step's \`message\`):
|
|
329
|
-
- Keep messages **terse
|
|
344
|
+
- Keep finding-step messages **terse**: just enough context to vote. Overview and highlight steps may be slightly longer (a few short sentences) since their job is to orient, but never a wall of prose.
|
|
330
345
|
- Use markdown structure (short paragraphs separated by blank lines, or short bullets) — never a wall of prose.
|
|
331
346
|
- Do not restate the file list inline; that is what the \`links\` are for. Do not invent line counts like \`(added, +440)\`.
|
|
332
347
|
|
|
@@ -334,7 +349,7 @@ Step shape rules:
|
|
|
334
349
|
|
|
335
350
|
**Overview step (first):**
|
|
336
351
|
- \`title\`: "PR Review Walkthrough"
|
|
337
|
-
- \`message\`:
|
|
352
|
+
- \`message\`: A few short bullets covering purpose, approach, scope (number of areas + findings), and **where to focus** (the changes that most deserve attention). Keep it tight; no wall of prose.
|
|
338
353
|
- No \`options\` (informational).
|
|
339
354
|
- \`links\`: Optional, e.g. a top-level overview file.
|
|
340
355
|
|
|
@@ -346,24 +361,25 @@ Step shape rules:
|
|
|
346
361
|
|
|
347
362
|
**Phrasing rule for buttons:** Labels must indicate the user is voting on the **finding**, not on the code. Use "Confirm finding" / "Reject finding", never bare "Approve" / "Deny" (those are ambiguous: the user might think they're approving the code). Apply the same rule to other interactions (e.g. submission steps prefer "Submit review" over "Approve").
|
|
348
363
|
|
|
349
|
-
**
|
|
364
|
+
**Highlight step (noteworthy areas only, informational):**
|
|
350
365
|
- \`title\`: "[Area Name]"
|
|
351
|
-
- \`message\`:
|
|
352
|
-
- \`links\`: One per file in the area.
|
|
366
|
+
- \`message\`: What changed and **why it matters / what to look at** — at most two or three short sentences orienting the reviewer to this change. If the area has no issues, end with "No findings." No options.
|
|
367
|
+
- \`links\`: One per file in the area, with merge-base diff.
|
|
353
368
|
|
|
354
369
|
**Constraints:**
|
|
355
370
|
- One step per finding. Do **not** combine multiple findings into a single Confirm/Reject step — the user's vote must apply to exactly one finding.
|
|
356
|
-
- Only include "Confirm finding" / "Reject finding" buttons on per-finding steps. Informational steps (overview,
|
|
371
|
+
- Only include "Confirm finding" / "Reject finding" buttons on per-finding steps. Informational steps (overview, highlight steps) must omit \`options\` entirely.
|
|
357
372
|
|
|
358
373
|
### Step 7b: Process the result
|
|
359
374
|
|
|
360
375
|
After the wizard returns:
|
|
361
|
-
1. Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the review plan. Each step result maps to
|
|
376
|
+
1. Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the review plan. Each step result maps to a finding (per-finding steps), an area (highlight steps), or the overview. Match by step \`title\` and update its status:
|
|
362
377
|
- \`value === "confirm"\` → ✅ Confirmed (per-finding step)
|
|
363
378
|
- \`value === "reject"\` → ❌ Rejected (per-finding step)
|
|
364
|
-
- \`value === undefined\` and the step had no options → ✅ Reviewed (
|
|
379
|
+
- \`value === undefined\` and the step had no options → ✅ Reviewed (overview or area highlight). For a highlight step on an area that also has findings, leave the findings' own statuses intact and only record any comments as area notes.
|
|
365
380
|
- \`skipped === true\` → 🔲 Pending (untouched)
|
|
366
|
-
- Append any \`comments\` as user notes on the matching finding
|
|
381
|
+
- Append any \`comments\` as user notes on the matching finding or area.
|
|
382
|
+
- Routine areas that received no walkthrough step are covered by the Overview. Mark them ✅ Reviewed so the plan has no lingering 🔲 Pending entries the user never saw.
|
|
367
383
|
2. If \`completed === false\`, the user canceled. Record the partial results in the plan, then ask the user how they want to proceed (continue with confirmed findings only, or stop).
|
|
368
384
|
3. If any step has comments that read like a question or request for discussion, address them conversationally **before** moving to Phase 8. Once all discussion items are resolved, continue.
|
|
369
385
|
|