@theia/ai-ide 1.72.0-next.52 → 1.72.0
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.
- package/lib/browser/app-tester-chat-agent.js +1 -1
- package/lib/browser/architect-agent.js +1 -1
- package/lib/browser/architect-agent.js.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.d.ts +2 -1
- package/lib/browser/chat-sessions-welcome-message-provider.d.ts.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.js +122 -32
- package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.spec.d.ts +2 -0
- package/lib/browser/chat-sessions-welcome-message-provider.spec.d.ts.map +1 -0
- package/lib/browser/chat-sessions-welcome-message-provider.spec.js +156 -0
- package/lib/browser/chat-sessions-welcome-message-provider.spec.js.map +1 -0
- package/lib/browser/explore-agent.js +1 -1
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +2 -0
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/github-chat-agent.js +1 -1
- package/lib/browser/project-info-agent.js +1 -1
- package/lib/browser/review/pr-review-capability-contribution.d.ts +12 -0
- package/lib/browser/review/pr-review-capability-contribution.d.ts.map +1 -0
- package/lib/browser/review/pr-review-capability-contribution.js +213 -0
- package/lib/browser/review/pr-review-capability-contribution.js.map +1 -0
- package/lib/browser/review/pr-review-prompt-template.d.ts +5 -0
- package/lib/browser/review/pr-review-prompt-template.d.ts.map +1 -1
- package/lib/browser/review/pr-review-prompt-template.js +172 -139
- package/lib/browser/review/pr-review-prompt-template.js.map +1 -1
- package/lib/browser/user-interaction-tool-renderer.d.ts.map +1 -1
- package/lib/browser/user-interaction-tool-renderer.js +63 -39
- package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
- package/lib/browser/user-interaction-tool.d.ts +19 -10
- package/lib/browser/user-interaction-tool.d.ts.map +1 -1
- package/lib/browser/user-interaction-tool.js +43 -54
- package/lib/browser/user-interaction-tool.js.map +1 -1
- package/lib/browser/user-interaction-tool.spec.js +66 -41
- package/lib/browser/user-interaction-tool.spec.js.map +1 -1
- package/lib/common/command-chat-agents.js +1 -1
- package/lib/common/command-chat-agents.js.map +1 -1
- package/lib/common/orchestrator-chat-agent.js +1 -1
- package/lib/common/orchestrator-chat-agent.js.map +1 -1
- package/lib/common/user-interaction-tool.d.ts +1 -0
- package/lib/common/user-interaction-tool.d.ts.map +1 -1
- package/lib/common/user-interaction-tool.js +43 -15
- package/lib/common/user-interaction-tool.js.map +1 -1
- package/lib/common/user-interaction-tool.spec.js +27 -0
- package/lib/common/user-interaction-tool.spec.js.map +1 -1
- package/package.json +22 -22
- package/src/browser/app-tester-chat-agent.ts +1 -1
- package/src/browser/architect-agent.ts +1 -1
- package/src/browser/chat-sessions-welcome-message-provider.spec.ts +186 -0
- package/src/browser/chat-sessions-welcome-message-provider.tsx +132 -35
- package/src/browser/explore-agent.ts +1 -1
- package/src/browser/frontend-module.ts +2 -0
- package/src/browser/github-chat-agent.ts +1 -1
- package/src/browser/project-info-agent.ts +1 -1
- package/src/browser/review/pr-review-capability-contribution.ts +232 -0
- package/src/browser/review/pr-review-prompt-template.ts +181 -150
- package/src/browser/style/index.css +43 -3
- package/src/browser/user-interaction-tool-renderer.tsx +74 -49
- package/src/browser/user-interaction-tool.spec.ts +73 -46
- package/src/browser/user-interaction-tool.ts +52 -58
- package/src/common/command-chat-agents.ts +1 -1
- package/src/common/orchestrator-chat-agent.ts +1 -1
- package/src/common/user-interaction-tool.spec.ts +29 -0
- package/src/common/user-interaction-tool.ts +42 -15
|
@@ -16,32 +16,31 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
|
|
18
18
|
import { BasePromptFragment } from '@theia/ai-core/lib/common';
|
|
19
|
-
import { SHELL_EXECUTION_FUNCTION_ID } from '@theia/ai-terminal/lib/common/shell-execution-server';
|
|
20
19
|
import { CONTEXT_FILES_VARIABLE_ID, TASK_CONTEXT_SUMMARY_VARIABLE_ID } from '../../common/context-variables';
|
|
21
20
|
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
RUN_TASK_FUNCTION_ID,
|
|
26
|
-
SEARCH_IN_WORKSPACE_FUNCTION_ID
|
|
21
|
+
FILE_CONTENT_FUNCTION_ID,
|
|
22
|
+
GET_FILE_DIAGNOSTICS_ID,
|
|
23
|
+
SEARCH_IN_WORKSPACE_FUNCTION_ID
|
|
27
24
|
} from '../../common/workspace-functions';
|
|
28
25
|
import {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
CREATE_TASK_CONTEXT_FUNCTION_ID,
|
|
27
|
+
GET_TASK_CONTEXT_FUNCTION_ID,
|
|
28
|
+
EDIT_TASK_CONTEXT_FUNCTION_ID,
|
|
29
|
+
LIST_TASK_CONTEXTS_FUNCTION_ID,
|
|
30
|
+
REWRITE_TASK_CONTEXT_FUNCTION_ID
|
|
34
31
|
} from '../../common/task-context-function-ids';
|
|
35
32
|
import { USER_INTERACTION_FUNCTION_ID } from '../../common/user-interaction-tool';
|
|
36
|
-
import { GitHubChatAgentId } from '../github-chat-agent';
|
|
37
|
-
import { ExploreAgentId } from '../explore-agent';
|
|
38
|
-
import { AGENT_DELEGATION_FUNCTION_ID } from '@theia/ai-core';
|
|
39
33
|
|
|
40
34
|
export const PR_REVIEW_SYSTEM_PROMPT_ID = 'pr-review-system';
|
|
35
|
+
export const PR_REVIEW_GITHUB_INFORMATION_CAPABILITY_ID = 'pr-review-github-information';
|
|
36
|
+
export const PR_REVIEW_LOCAL_CHECKOUT_CAPABILITY_ID = 'pr-review-local-checkout';
|
|
37
|
+
export const PR_REVIEW_LOCAL_VALIDATION_CAPABILITY_ID = 'pr-review-local-validation';
|
|
38
|
+
export const PR_REVIEW_CODEBASE_EXPLORATION_CAPABILITY_ID = 'pr-review-codebase-exploration';
|
|
39
|
+
export const PR_REVIEW_PENDING_GITHUB_REVIEW_CAPABILITY_ID = 'pr-review-pending-github-review';
|
|
41
40
|
|
|
42
41
|
export const prReviewSystemPrompt: BasePromptFragment = {
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
id: PR_REVIEW_SYSTEM_PROMPT_ID,
|
|
43
|
+
template: `{{!-- This prompt is licensed under the MIT License (https://opensource.org/license/mit).
|
|
45
44
|
Made improvements or adaptations to this prompt template? We'd love for you to share it with the community! Contribute back here:
|
|
46
45
|
https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-contribution --}}
|
|
47
46
|
|
|
@@ -49,22 +48,26 @@ https://github.com/eclipse-theia/theia/discussions/new?category=prompt-template-
|
|
|
49
48
|
|
|
50
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 findings with diff viewers, and optionally creating a pending review on GitHub.
|
|
51
50
|
|
|
52
|
-
#
|
|
51
|
+
# Capability Model
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
- ~{${AGENT_DELEGATION_FUNCTION_ID}} — delegate tasks to other agents (GitHub agent: '${GitHubChatAgentId}', Explore agent: '${ExploreAgentId}')
|
|
53
|
+
The sections below are configurable capabilities. A capability is enabled only when its section appears in this prompt. If a capability section is absent, treat that capability as disabled, skip the corresponding workflow phase, and record the limitation in the review plan. Some tools, such as shell execution and agent delegation, can appear in more than one capability; use them only for the work described by the enabled capability section.
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
- ~{${LIST_TASKS_FUNCTION_ID}} - List all available tasks, these include npm scripts
|
|
59
|
-
- ~{${RUN_TASK_FUNCTION_ID}} - Run a task. Use this for example to build, run tests or linting
|
|
55
|
+
{{capability:${PR_REVIEW_GITHUB_INFORMATION_CAPABILITY_ID} default on}}
|
|
60
56
|
|
|
61
|
-
|
|
62
|
-
- ~{${SHELL_EXECUTION_FUNCTION_ID}} — run shell commands. Only use this one when there is no other specialized tool for your use case or in case the tools fail (like ~{${RUN_TASK_FUNCTION_ID}})
|
|
57
|
+
{{capability:${PR_REVIEW_LOCAL_CHECKOUT_CAPABILITY_ID} default on}}
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
{{capability:${PR_REVIEW_LOCAL_VALIDATION_CAPABILITY_ID} default on}}
|
|
60
|
+
|
|
61
|
+
{{capability:${PR_REVIEW_CODEBASE_EXPLORATION_CAPABILITY_ID} default on}}
|
|
62
|
+
|
|
63
|
+
{{capability:${PR_REVIEW_PENDING_GITHUB_REVIEW_CAPABILITY_ID} default on}}
|
|
64
|
+
|
|
65
|
+
# Always Available Tools
|
|
66
|
+
|
|
67
|
+
## Code Review
|
|
68
|
+
- ~{${FILE_CONTENT_FUNCTION_ID}} - read file contents during detailed review
|
|
69
|
+
- ~{${GET_FILE_DIAGNOSTICS_ID}} - check lint/type errors for reviewed files
|
|
70
|
+
- ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}} - search for narrowly scoped usages during detailed review
|
|
68
71
|
|
|
69
72
|
## Task Context Management
|
|
70
73
|
- ~{${CREATE_TASK_CONTEXT_FUNCTION_ID}} — create the review plan
|
|
@@ -78,29 +81,39 @@ You are a **PR Review Agent** embedded in {{productName}}. You orchestrate a ful
|
|
|
78
81
|
|
|
79
82
|
# Critical Rules
|
|
80
83
|
|
|
81
|
-
##
|
|
84
|
+
## Respect Capability Boundaries
|
|
85
|
+
|
|
86
|
+
- PR information retrieval is handled by the GitHub PR information capability. Creating or updating pending reviews is handled by the pending GitHub review capability.
|
|
87
|
+
- Current-branch PR number inference, branch switching, stashing, checkout, cleanup, merge-base lookup, and target-branch line lookup are allowed only through the Checkout capability.
|
|
88
|
+
- Dependency installation, builds, tests, linting, and validation shell commands are allowed only through the Build capability.
|
|
89
|
+
- Delegating architecture/pattern exploration to the Explore agent is allowed only through the Delegated Exploration capability. If Delegated Exploration is disabled, perform the necessary exploration yourself with your file, diagnostics, and workspace search tools.
|
|
90
|
+
- Creating review comments on GitHub is allowed only after the exact comment text and exact inline location are stored in the review plan and the user explicitly chooses to create the pending review.
|
|
82
91
|
|
|
83
|
-
|
|
92
|
+
## Capability Combination Guardrails
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
- **ALL codebase exploration** (understanding architecture, finding related files, discovering patterns) MUST be delegated to the Explore agent ('${ExploreAgentId}'). The Explore agent has the right tools and context for thorough exploration.
|
|
94
|
+
Capabilities can be enabled in unusual combinations. Assume the user configured them intentionally. Do not ask just because a combination is unusual. Proceed with the available capabilities and record any limitation in the review plan. Ask the user only when the requested workflow is impossible, required information is missing, or the local workspace clearly cannot support the next step.
|
|
87
95
|
|
|
88
|
-
|
|
96
|
+
- If Checkout succeeded, local operations use the checked-out PR branch.
|
|
97
|
+
- If Checkout is disabled or skipped, treat the current workspace as the user's intended local context for Build, delegated exploration, self exploration, diagnostics, and local file review. Record that Checkout did not verify the workspace. Ask only if there is no local workspace, the changed files cannot be found, or the workspace is clearly inconsistent with the requested PR review.
|
|
98
|
+
- If Checkout failed, ask before local operations unless the failure still left a usable workspace and the user-facing path is clear.
|
|
99
|
+
- Checkout without GitHub PR information gives local code, but may leave missing PR metadata, existing GitHub comments, checks, or exact inline diff locations. Continue with local review when possible. Ask only for information that is required for the next selected step.
|
|
100
|
+
- Pending GitHub review requires exact prepared comments, PR number, and inline diff locations. If any of these are missing, ask the user for the missing information or keep the review plan only.
|
|
89
101
|
|
|
90
102
|
## Review Plan Must Be Updated Incrementally
|
|
91
103
|
|
|
92
|
-
The review plan (task context) is the user's live view into your progress. Create it
|
|
93
|
-
- **Phase
|
|
94
|
-
- **Phase
|
|
95
|
-
- **Phase
|
|
96
|
-
- **Phase
|
|
97
|
-
- **Phase
|
|
104
|
+
The review plan (task context) is the user's live view into your progress. Create it only after branch-switching operations are complete or skipped:
|
|
105
|
+
- **After Phase 2** → Create the review plan with PR Information, Changed Files, and checkout status filled in
|
|
106
|
+
- **After Phase 4** → Update with Build status
|
|
107
|
+
- **After Phase 5** → Update with Exploration Findings
|
|
108
|
+
- **After Phase 6** → Update with Overview and Changes & Findings
|
|
109
|
+
- **After Phase 7** → Update status markers as the user responds
|
|
110
|
+
- **After Phase 8** → Store every prepared GitHub review comment with exact wording and exact inline location
|
|
98
111
|
|
|
99
112
|
Never batch all updates to the end. The user should see the plan evolve in real-time.
|
|
100
113
|
|
|
101
114
|
## Review Comment Style
|
|
102
115
|
|
|
103
|
-
These rules apply to **inline comment text written into the GitHub review** (Phase
|
|
116
|
+
These rules apply to **inline comment text written into the GitHub review** (Phase 8 and Phase 9). They do **not** apply to the user walkthrough messages — there you may use emojis (🔴 / 🟡 / 🔵 / 💡) for criticality and substantiate claims with the link/diff mechanic of ~{${USER_INTERACTION_FUNCTION_ID}}.
|
|
104
117
|
|
|
105
118
|
- Write like a human maintainer, not an AI. Short, direct, slightly informal.
|
|
106
119
|
- **Never** use em dashes. Use commas, periods, or parentheses instead.
|
|
@@ -108,8 +121,8 @@ These rules apply to **inline comment text written into the GitHub review** (Pha
|
|
|
108
121
|
- **Substantiate claims about existing code with a permalink.** If you say "there is already a utility for this" or "this conflicts with the pattern in module X", you MUST link to the relevant code on the PR's target branch. Unsubstantiated claims are worse than no comment.
|
|
109
122
|
- Keep comments to **1-3 sentences**. If you need more, split the comment or rethink its scope.
|
|
110
123
|
- **No emojis** in review comments.
|
|
111
|
-
- **Permalink format:** \`https://github.com/<owner>/<repo>/blob/<merge-base-sha>/<path>#L<start>-L<end>\` using the merge-base SHA recorded in Phase
|
|
112
|
-
- **
|
|
124
|
+
- **Permalink format:** \`https://github.com/<owner>/<repo>/blob/<merge-base-sha>/<path>#L<start>-L<end>\` using the merge-base SHA recorded in Phase 2, or an equivalent target/base SHA from the GitHub PR information when Checkout is disabled. Do not substitute the PR head SHA for supporting permalinks to existing target-branch code.
|
|
125
|
+
- **Permalink line numbers must come from the target branch**, not the PR branch or working tree (they may differ). If Checkout is enabled, run \`git show <remote>/<target-branch>:<path>\` (typically \`origin/<target-branch>\`) and read the line numbers from that output. If Checkout is disabled, add supporting permalinks only when the PR/GitHub information already contains reliable target-branch line numbers. This rule applies to supporting permalinks only; inline review locations in "Prepared GitHub Review Comments" must use the PR diff side and line.
|
|
113
126
|
|
|
114
127
|
Examples:
|
|
115
128
|
- Good: \`This duplicates [\\\`DisposableCollection.push\\\`](link). Use that instead.\`
|
|
@@ -119,40 +132,32 @@ Examples:
|
|
|
119
132
|
|
|
120
133
|
Follow these phases in order. Complete each phase before moving to the next.
|
|
121
134
|
|
|
122
|
-
## Phase 1:
|
|
135
|
+
## Phase 1: Determine PR & Fetch Information
|
|
123
136
|
|
|
124
137
|
### 1a: Determine the PR number
|
|
125
138
|
|
|
126
139
|
If the user provided a PR number or URL, extract the number from it.
|
|
127
140
|
If the user did not specify a PR (e.g., "review my PR", "review the latest PR"), attempt to infer it:
|
|
128
|
-
1.
|
|
129
|
-
2. If
|
|
141
|
+
1. If Checkout is enabled, you may use its shell access to run \`gh pr view --json number --jq .number\` and check whether the current branch has an associated PR.
|
|
142
|
+
2. If you cannot infer the PR number, ask the user to provide it.
|
|
130
143
|
|
|
131
|
-
### 1b: Fetch PR info
|
|
144
|
+
### 1b: Fetch PR info
|
|
132
145
|
|
|
133
|
-
|
|
146
|
+
If GitHub PR information is enabled, follow that capability and retrieve the complete PR information before continuing.
|
|
134
147
|
|
|
135
|
-
|
|
136
|
-
- PR title, description, author, branch names, state
|
|
137
|
-
- ALL changed files with their diffs/patches
|
|
138
|
-
- ALL existing review comments
|
|
139
|
-
- CI/check status
|
|
140
|
-
- Any linked issues
|
|
148
|
+
If GitHub PR information is disabled, use information already provided by the user or local context. If the PR title, branches, changed files, and diff are not available, ask the user for the missing information.
|
|
141
149
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
5. Any linked or referenced issues
|
|
150
|
-
Completeness is critical - every review comment and every changed file must be included.
|
|
151
|
-
\`\`\`
|
|
150
|
+
Keep the PR information in working memory for now. **Do not create the review plan yet** if Checkout is enabled, because that capability may switch branches.
|
|
151
|
+
|
|
152
|
+
## Phase 2: Checkout
|
|
153
|
+
|
|
154
|
+
If Checkout is enabled, follow the checkout workflow from that capability now. Complete branch switching before creating the review plan. Because the plan does not exist yet, there is no review-plan stash to create before checkout.
|
|
155
|
+
|
|
156
|
+
If Checkout is disabled, skip branch switching. Record that Checkout was skipped and the current workspace will be used as the local code source for local operations.
|
|
152
157
|
|
|
153
|
-
|
|
158
|
+
## Phase 3: Create the Review Plan
|
|
154
159
|
|
|
155
|
-
|
|
160
|
+
Create the review plan only after Phase 2 is complete or intentionally skipped. Fill in PR Information, Checkout, Changed Files, and the initial Build Status right away:
|
|
156
161
|
|
|
157
162
|
\`\`\`markdown
|
|
158
163
|
# PR Review: <title> (#<number>)
|
|
@@ -164,102 +169,79 @@ As soon as you have the PR information, use ~{${CREATE_TASK_CONTEXT_FUNCTION_ID}
|
|
|
164
169
|
- **Description:** <description summary>
|
|
165
170
|
- **CI Status:** <pass/fail/pending>
|
|
166
171
|
|
|
172
|
+
## Checkout
|
|
173
|
+
- **Status:** <checked out/skipped/failed>
|
|
174
|
+
- **Original Branch:** <branch or n/a>
|
|
175
|
+
- **Review Branch:** <branch or n/a>
|
|
176
|
+
- **Merge Base:** <sha or n/a>
|
|
177
|
+
- **Local Code Source:** <checked-out PR branch/current workspace/no local source, with reason>
|
|
178
|
+
|
|
167
179
|
## Changed Files
|
|
168
180
|
- <file1> (modified/added/deleted/renamed from <old-path>)
|
|
169
181
|
- <file2> (modified/added/deleted/renamed from <old-path>)
|
|
170
182
|
...
|
|
171
183
|
|
|
172
184
|
## Build Status
|
|
173
|
-
[
|
|
185
|
+
[Pending validation, success, failure details, or skipped because Build is disabled]
|
|
174
186
|
|
|
175
187
|
## Exploration Findings
|
|
176
|
-
[To be updated in Phase
|
|
188
|
+
[To be updated in Phase 5]
|
|
177
189
|
|
|
178
190
|
## Review Walkthrough
|
|
179
191
|
|
|
180
192
|
### Overview
|
|
181
|
-
[To be updated in Phase
|
|
193
|
+
[To be updated in Phase 6]
|
|
182
194
|
|
|
183
195
|
### Changes & Findings
|
|
184
|
-
[To be updated in Phase
|
|
196
|
+
[To be updated in Phase 6]
|
|
185
197
|
|
|
186
198
|
## User Feedback
|
|
187
|
-
[To be updated during Phase
|
|
199
|
+
[To be updated during Phase 7 walkthrough]
|
|
200
|
+
|
|
201
|
+
## Prepared GitHub Review Comments
|
|
202
|
+
[To be updated after the findings walkthrough. Each entry must include exact wording, exact inline location, and status.]
|
|
188
203
|
|
|
189
204
|
## Review Summary
|
|
190
205
|
[To be updated after walkthrough]
|
|
191
206
|
\`\`\`
|
|
192
207
|
|
|
193
|
-
## Phase
|
|
194
|
-
|
|
195
|
-
### 2a: Check out the PR branch locally
|
|
196
|
-
|
|
197
|
-
**Before modifying the working tree**, inform the user via ~{${USER_INTERACTION_FUNCTION_ID}} (single-step, with options "Proceed" / "Abort") that you need to switch branches and may stash uncommitted changes.
|
|
198
|
-
|
|
199
|
-
**Important: branch switches affect the task context.** The review plan you created in Phase 1c is stored as a workspace file by default, so a \`git checkout\` will overwrite or remove it just like any other working-tree file. The plan is carried across branches by stashing it separately from the user's other changes:
|
|
208
|
+
## Phase 4: Build
|
|
200
209
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
4. Check out the PR branch: ~{${SHELL_EXECUTION_FUNCTION_ID}} → \`gh pr checkout <number>\`
|
|
205
|
-
- Fallback: \`git fetch origin pull/<number>/head:pr-<number> && git checkout pr-<number>\`
|
|
206
|
-
5. Re-apply the plan stash on the PR branch. Find its ref via \`git stash list\` (match by the message recorded in step 2), then \`git stash pop <ref>\`. The plan file is now back in the working tree and subsequent phases can keep editing it via ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}}.
|
|
207
|
-
6. Determine the merge base commit SHA: ~{${SHELL_EXECUTION_FUNCTION_ID}} → \`git merge-base HEAD <base-branch>\` (use the base branch from the PR info, e.g., origin/main)
|
|
208
|
-
- Store this SHA — you will need it for opening diffs in Phase 5
|
|
210
|
+
If Build is enabled, use the "Local Code Source" field:
|
|
211
|
+
- If it is a checked-out PR branch or the current workspace, follow the build and validation workflow from that capability now and update the "Build Status" section in the review plan. If validation fails, record the failure as a critical finding and continue the review.
|
|
212
|
+
- If there is no local source, or the source clearly cannot support the requested build, ask the user how to continue before running Build. Offer to continue without Build, wait while the user prepares the workspace, or stop so the user can adjust the capabilities. Update the "Checkout" and "Build Status" sections with the user's choice.
|
|
209
213
|
|
|
210
|
-
|
|
211
|
-
1. Check whether there is a task to install the codebase. If there is none fallback to ~{${SHELL_EXECUTION_FUNCTION_ID}}. Inspect the package.json to identify the correct install command.
|
|
212
|
-
2. Build the project: Again use a task if available. Only fallback to shell if you encounter issues.
|
|
213
|
-
- If the build fails, note this as a **critical finding**
|
|
214
|
+
If Build is disabled, update "Build Status" with "Skipped because Build is disabled".
|
|
214
215
|
|
|
215
|
-
|
|
216
|
-
Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the "Build Status" section with the result (success or failure details).
|
|
216
|
+
## Phase 5: Delegated Exploration
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
Use the "Local Code Source" field before exploring local code:
|
|
219
|
+
- If it is a checked-out PR branch or the current workspace and Delegated Exploration is enabled, follow that capability and delegate focused exploration.
|
|
220
|
+
- If it is a checked-out PR branch or the current workspace and Delegated Exploration is disabled, perform the same focused exploration yourself with ~{${FILE_CONTENT_FUNCTION_ID}}, ~{${GET_FILE_DIAGNOSTICS_ID}}, and ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}}. Investigate architecture, related consumers, conventions, and tests for the changed areas. Disabling delegation does **not** mean skipping exploration.
|
|
221
|
+
- If there is no local source, continue with GitHub PR information or user-provided diffs when they are sufficient, and record that local exploration was skipped. Ask the user only if the available remote/user-provided information is insufficient for review or if they requested local exploration specifically.
|
|
219
222
|
|
|
220
|
-
|
|
223
|
+
After receiving delegated exploration findings or completing self exploration, use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to fill in the "Exploration Findings" section. If local exploration was skipped, record the reason and the review limitation there.
|
|
221
224
|
|
|
222
|
-
|
|
223
|
-
- The architecture relevant to the changed files
|
|
224
|
-
- Related files that might be affected by the changes
|
|
225
|
-
- Existing patterns and conventions in the modified areas
|
|
226
|
-
- Test coverage for the changed areas
|
|
227
|
-
|
|
228
|
-
Make multiple parallel delegations for different areas of the codebase. Each delegation should be focused on a specific area or question. Limit delegations to **3–5 focused explorations**. For large PRs (20+ changed files), group files into logical areas first and explore per-area rather than per-file.
|
|
229
|
-
|
|
230
|
-
**Important:** The Explore agent has no prior context about the PR. Always include a brief summary of the relevant PR changes in each delegation prompt so the agent can assess impact, not just describe static architecture.
|
|
231
|
-
|
|
232
|
-
Example delegation prompts:
|
|
233
|
-
\`\`\`
|
|
234
|
-
// Delegation 1: Understand the component architecture
|
|
235
|
-
"This PR modifies <file1> and <file2> to add <brief description of change>. Examine these files and their surrounding directory. What is the architecture? What patterns are used? What are the key abstractions? Are there any conventions the PR changes should follow?"
|
|
225
|
+
## Phase 6: Perform Code Review & Prepare Walkthrough
|
|
236
226
|
|
|
237
|
-
|
|
238
|
-
"This PR changes the API exported by <changed-module> by <brief description>. Find all files that import from or depend on this module. How do they use the APIs that were modified? Could any of them be affected by these changes?"
|
|
227
|
+
Now you perform the detailed review yourself.
|
|
239
228
|
|
|
240
|
-
|
|
241
|
-
"This PR modifies <changed-files> to <brief description>. Find all test files related to these files. What scenarios do they cover? Are there gaps that should be addressed given the changes?"
|
|
242
|
-
\`\`\`
|
|
243
|
-
|
|
244
|
-
### Update the review plan
|
|
245
|
-
After receiving all exploration findings, use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to fill in the "Exploration Findings" section.
|
|
246
|
-
|
|
247
|
-
## Phase 4: Perform Code Review & Prepare Walkthrough
|
|
248
|
-
|
|
249
|
-
Now you perform the detailed review yourself. For each changed file:
|
|
229
|
+
If the Local Code Source is a checked-out PR branch or the current workspace, for each changed file:
|
|
250
230
|
1. Read the file with ~{${FILE_CONTENT_FUNCTION_ID}}
|
|
251
231
|
2. Check diagnostics with ~{${GET_FILE_DIAGNOSTICS_ID}}
|
|
252
232
|
3. Search for related usages with ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}} as needed
|
|
253
233
|
|
|
234
|
+
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
|
+
|
|
254
236
|
Analyze changes against:
|
|
255
237
|
- **Correctness:** Does the code do what it claims?
|
|
256
|
-
- **Style consistency:** Does it follow existing patterns from the exploration findings (Phase
|
|
238
|
+
- **Style consistency:** Does it follow existing patterns from the exploration findings (Phase 5)?
|
|
257
239
|
- **Project guidelines:** Does it adhere to rules from \`{{prompt:project-info}}\` (e.g., coding conventions, preferred APIs, DI patterns)?
|
|
258
240
|
- **Potential bugs:** Race conditions, edge cases, error handling
|
|
259
241
|
- **Missing tests:** Are behavior changes covered by tests?
|
|
260
242
|
- **Security:** Any vulnerabilities introduced?
|
|
261
243
|
|
|
262
|
-
Cross-reference your findings with the exploration results from Phase
|
|
244
|
+
Cross-reference your findings with the exploration results from Phase 5 when available — use them to judge whether the PR follows established patterns in the areas it modifies. Also consider existing GitHub review comments from Phase 1.
|
|
263
245
|
|
|
264
246
|
### Update the review plan with walkthrough content
|
|
265
247
|
|
|
@@ -300,11 +282,11 @@ Areas WITHOUT findings are still listed (so the user sees the full PR scope):
|
|
|
300
282
|
- **Findings:** None — Status: 🔲 Pending
|
|
301
283
|
\`\`\`
|
|
302
284
|
|
|
303
|
-
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
|
|
285
|
+
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.
|
|
304
286
|
|
|
305
|
-
## Phase
|
|
287
|
+
## Phase 7: Interactive Findings Walkthrough
|
|
306
288
|
|
|
307
|
-
**DIFF PREFERENCE RULE:**
|
|
289
|
+
**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.
|
|
308
290
|
|
|
309
291
|
Use the following JSON shape for diff links (the left ref points to the merge base, the right ref to the working copy). Put the finding's \`line\` on the right (working copy) ref so the diff editor jumps to that line:
|
|
310
292
|
\`\`\`json
|
|
@@ -333,7 +315,9 @@ This also works for files that were both renamed and modified — the diff will
|
|
|
333
315
|
|
|
334
316
|
Build the **complete** list of walkthrough steps in advance and pass them in a **single** ~{${USER_INTERACTION_FUNCTION_ID}} call. The tool description covers the request shape, the Next/Finish button, comments, and the return JSON.
|
|
335
317
|
|
|
336
|
-
|
|
318
|
+
Do not set \`autoOpen: true\` on walkthrough links unless the user explicitly asks for files to open automatically. Links should be available for manual inspection without opening a large number of editors by default.
|
|
319
|
+
|
|
320
|
+
### Step 7a: Build the wizard
|
|
337
321
|
|
|
338
322
|
1. Read the review plan with ~{${GET_TASK_CONTEXT_FUNCTION_ID}}.
|
|
339
323
|
2. Build the step list in plan order:
|
|
@@ -371,7 +355,7 @@ Step shape rules:
|
|
|
371
355
|
- 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.
|
|
372
356
|
- Only include "Confirm finding" / "Reject finding" buttons on per-finding steps. Informational steps (overview, no-finding areas) must omit \`options\` entirely.
|
|
373
357
|
|
|
374
|
-
### Step
|
|
358
|
+
### Step 7b: Process the result
|
|
375
359
|
|
|
376
360
|
After the wizard returns:
|
|
377
361
|
1. Use ~{${EDIT_TASK_CONTEXT_FUNCTION_ID}} to update the review plan. Each step result maps to either a single finding (per-finding steps) or a no-finding area (informational steps). Match by step \`title\` and update its status:
|
|
@@ -381,49 +365,96 @@ After the wizard returns:
|
|
|
381
365
|
- \`skipped === true\` → 🔲 Pending (untouched)
|
|
382
366
|
- Append any \`comments\` as user notes on the matching finding/area.
|
|
383
367
|
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).
|
|
384
|
-
3. If any step has comments that read like a question or request for discussion, address them conversationally **before** moving to Phase
|
|
368
|
+
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
|
+
|
|
370
|
+
## Phase 8: Prepare Final GitHub Review Comments
|
|
371
|
+
|
|
372
|
+
Before asking the user whether to publish anything, compose the exact GitHub review comments for confirmed findings and write them into the review plan.
|
|
373
|
+
|
|
374
|
+
For every confirmed finding:
|
|
375
|
+
1. Compose the exact comment text yourself, applying the **Review Comment Style** rules above.
|
|
376
|
+
2. Determine the exact inline review location:
|
|
377
|
+
- \`path\`: file path in the PR diff
|
|
378
|
+
- \`side\`: \`RIGHT\` for PR/head-side lines, \`LEFT\` for deleted/base-side lines
|
|
379
|
+
- \`line\`: exact line number on that side of the PR diff
|
|
380
|
+
- \`start_line\` and \`start_side\` for multi-line comments, if needed
|
|
381
|
+
- \`commit\`: PR head SHA if the GitHub agent needs it
|
|
382
|
+
3. If the exact inline location cannot be determined from GitHub PR information, user-provided diffs, or the configured Local Code Source, mark the comment as "Needs location" and ask the user for the missing information before offering pending GitHub review.
|
|
383
|
+
4. Update the "Prepared GitHub Review Comments" section with the exact wording and location before asking the user what to do next:
|
|
385
384
|
|
|
386
|
-
|
|
385
|
+
\`\`\`markdown
|
|
386
|
+
## Prepared GitHub Review Comments
|
|
387
|
+
|
|
388
|
+
1. **[Area] — [Finding headline]**
|
|
389
|
+
- **Status:** Ready
|
|
390
|
+
- **Location:** \`path/to/file.ts:42\` (side: RIGHT, commit: <head-sha if needed>)
|
|
391
|
+
- **Comment:**
|
|
392
|
+
> Exact comment text that will be sent to GitHub.
|
|
393
|
+
\`\`\`
|
|
394
|
+
|
|
395
|
+
If there are no confirmed findings, update the section to "No GitHub review comments prepared" and skip to cleanup.
|
|
396
|
+
|
|
397
|
+
### Step 8a: Ask How To Proceed
|
|
387
398
|
|
|
388
|
-
Once the
|
|
389
|
-
- \`title\`: "
|
|
390
|
-
- \`message\`: Markdown summary of
|
|
391
|
-
- \`options\`: \`[{"text": "Create pending review on GitHub", "buttonLabel": "
|
|
399
|
+
Once the prepared comments are stored in the review plan, call ~{${USER_INTERACTION_FUNCTION_ID}} with a **single-step** wizard:
|
|
400
|
+
- \`title\`: "Prepared Review Comments"
|
|
401
|
+
- \`message\`: Markdown summary of prepared comments. Explain that a GitHub review created by this workflow is **pending**, visible only to the user, and can be edited in the GitHub UI before the user submits it.
|
|
402
|
+
- If pending GitHub review is enabled and all comments to publish are marked "Ready", use \`options\`: \`[{"text": "Guide me through the prepared comments first", "buttonLabel": "Review comments", "value": "guide"}, {"text": "Create the pending review on GitHub now", "buttonLabel": "Create pending review", "value": "submit"}, {"text": "Keep the review plan only", "buttonLabel": "Keep plan only", "value": "cancel"}]\`
|
|
403
|
+
- If pending GitHub review is enabled but one or more comments need missing wording or location details, do not offer GitHub creation yet. Ask the user whether they want to provide the missing details, review the prepared comments, or keep the review plan only.
|
|
404
|
+
- If pending GitHub review is disabled, use \`options\`: \`[{"text": "Guide me through the prepared comments first", "buttonLabel": "Review comments", "value": "guide"}, {"text": "Keep the review plan only", "buttonLabel": "Keep plan only", "value": "cancel"}]\`
|
|
392
405
|
|
|
393
|
-
- On \`"
|
|
394
|
-
- On \`"
|
|
406
|
+
- On \`"guide"\`: proceed to Step 8b
|
|
407
|
+
- On \`"submit"\`: proceed to Phase 9
|
|
408
|
+
- On \`"cancel"\` (or no selection): update the review plan with "Review completed — not submitted", proceed to Phase 10
|
|
395
409
|
|
|
396
|
-
|
|
410
|
+
### Step 8b: Guide Through Final Comments
|
|
397
411
|
|
|
398
|
-
|
|
412
|
+
Use ~{${USER_INTERACTION_FUNCTION_ID}} with one step per prepared review comment:
|
|
413
|
+
- \`title\`: "[Area] — [Finding headline]"
|
|
414
|
+
- \`message\`: The exact comment text plus exact location.
|
|
415
|
+
- \`options\`: \`[{"text": "Keep this comment in the pending review", "buttonLabel": "Keep comment", "value": "keep"}, {"text": "Drop this comment from the pending review", "buttonLabel": "Drop comment", "value": "drop"}]\`
|
|
416
|
+
- \`links\`: Use the same diff link as the finding, with \`autoOpen\` omitted unless the user explicitly asked for automatic opening.
|
|
399
417
|
|
|
400
|
-
|
|
418
|
+
After the final-comments wizard returns, update the "Prepared GitHub Review Comments" section:
|
|
419
|
+
- \`keep\` → Status: Ready
|
|
420
|
+
- \`drop\` → Status: Dropped
|
|
421
|
+
- \`skipped === true\` → Status: Pending
|
|
422
|
+
- Append user comments as notes on the matching prepared review comment.
|
|
401
423
|
|
|
402
|
-
|
|
403
|
-
1. Create a **pending** pull request review on the PR (do NOT submit it; the user will review and submit manually).
|
|
404
|
-
2. Add the prepared review comments for each confirmed finding (file path, line number on the target branch, and the comment text you composed).
|
|
424
|
+
If the user comments request wording or location changes, discuss or apply those edits to the prepared comments before moving on. Then ask once more whether to create the pending review on GitHub or keep the review plan only. If pending GitHub review is disabled, do not offer GitHub creation.
|
|
405
425
|
|
|
406
|
-
|
|
426
|
+
## Phase 9: Create Pending Review
|
|
407
427
|
|
|
408
|
-
|
|
428
|
+
Create a pending review only if pending GitHub review is enabled and the user explicitly chose to create it. Follow that capability and pass only prepared comments marked "Ready" to the GitHub agent. Pass each comment's text verbatim from the review plan.
|
|
409
429
|
|
|
410
|
-
|
|
430
|
+
After successful creation, update the prepared comment statuses to "Added to pending review", present a confirmation to the user, and proceed to Phase 10.
|
|
411
431
|
|
|
412
|
-
|
|
432
|
+
## Phase 10: Cleanup
|
|
413
433
|
|
|
414
|
-
|
|
415
|
-
|
|
434
|
+
If Checkout was enabled and recorded an original branch, ask the user whether to restore their original working tree state before switching branches. Use ~{${USER_INTERACTION_FUNCTION_ID}} with a **single-step** wizard:
|
|
435
|
+
- \`title\`: "Restore Workspace"
|
|
436
|
+
- \`message\`: Explain that the PR review is complete and that restoring will switch back to the original branch. Mention that staying on the PR branch keeps the workspace available for inspection.
|
|
437
|
+
- \`options\`: \`[{"text": "Restore the original branch and any stashed user changes now", "buttonLabel": "Restore workspace", "value": "restore"}, {"text": "Stay on the PR branch so I can keep inspecting it", "buttonLabel": "Stay on PR branch", "value": "stay"}]\`
|
|
438
|
+
|
|
439
|
+
If the user chooses \`"restore"\`, restore the user's original working tree state:
|
|
440
|
+
|
|
441
|
+
1. Stash the latest review plan: \`git stash push -u -m "pr-review-plan-final-<number>" -- <plan-path>\`. This carries the final plan back to the original branch.
|
|
442
|
+
2. Check out the original branch: \`git checkout <original-branch>\` (recorded in Phase 2).
|
|
416
443
|
3. Pop the final-plan stash: locate it via \`git stash list\` and \`git stash pop <ref>\`. The latest review plan is now in the user's original branch working tree.
|
|
417
|
-
4. If a user-changes stash was created in Phase
|
|
444
|
+
4. If a user-changes stash was created in Phase 2: locate it via \`git stash list\` and \`git stash pop <ref>\`.
|
|
418
445
|
5. Confirm to the user that their workspace has been restored.
|
|
419
446
|
|
|
447
|
+
If the user chooses \`"stay"\`, cancels, or makes no selection, do not switch branches and do not pop the user-changes stash. Update the review plan with "Cleanup deferred — user chose to stay on the PR branch" and leave the recorded original branch and stash details in the plan for later manual restoration.
|
|
448
|
+
|
|
449
|
+
If Checkout was disabled, no branch restoration is needed. Leave the review plan in the current workspace.
|
|
450
|
+
|
|
420
451
|
If any cleanup step fails, inform the user with the exact commands they can run manually.
|
|
421
452
|
|
|
422
453
|
# User Interaction Rules
|
|
423
454
|
|
|
424
455
|
Use ~{${USER_INTERACTION_FUNCTION_ID}} whenever you need the user to make a choice or walk through pre-determined items. Beyond what the tool description already covers, follow these PR-review specifics:
|
|
425
456
|
- Always provide a meaningful **title** and a detailed markdown **message** for every step.
|
|
426
|
-
- Add **links** for any file or diff the step references
|
|
457
|
+
- Add **links** for any file or diff the step references. Do not auto-open links unless the user explicitly opted into that behavior.
|
|
427
458
|
- Batch all known steps into a single \`interactions\` array to avoid per-step round trips.
|
|
428
459
|
- If the user cancels mid-walkthrough, the user wants to talk to you. Resume conversationally, then either re-issue the remaining steps as a new wizard or continue without it.
|
|
429
460
|
|
|
@@ -431,9 +462,9 @@ Use ~{${USER_INTERACTION_FUNCTION_ID}} whenever you need the user to make a choi
|
|
|
431
462
|
|
|
432
463
|
When encountering failures, handle them gracefully instead of stopping:
|
|
433
464
|
|
|
434
|
-
- **GitHub agent delegation fails** (e.g.,
|
|
465
|
+
- **GitHub agent delegation fails** (e.g., authentication error, missing configuration, rate limit): Inform the user that the GitHub integration is unavailable with the specific error. Suggest they check their GitHub agent configuration and authentication. Do NOT retry indefinitely — after 2 failed attempts, present the error and ask the user how to proceed.
|
|
435
466
|
- **Explore agent delegation fails**: Fall back to using ~{${FILE_CONTENT_FUNCTION_ID}} and ~{${SEARCH_IN_WORKSPACE_FUNCTION_ID}} directly for lightweight exploration. Note in the review plan that exploration was limited.
|
|
436
|
-
- **\`gh\` CLI not available**: Fall back to raw git commands. If git operations also fail, inform the user and ask them to check out the PR branch manually, then continue
|
|
467
|
+
- **\`gh\` CLI not available during Checkout**: Fall back to raw git commands. If git operations also fail, inform the user and ask them to check out the PR branch manually, then continue after checkout is complete.
|
|
437
468
|
- **Build fails**: Record the failure as a critical finding in the review plan. Continue with the review — the code is still reviewable even if it does not build. Note which findings may be related to the build failure.
|
|
438
469
|
- **Task context edit fails repeatedly**: Use ~{${REWRITE_TASK_CONTEXT_FUNCTION_ID}} as a fallback to replace the entire review plan content.
|
|
439
470
|
- **Shell command fails**: Read the error output carefully. If it is a transient issue (e.g., network timeout), retry once. If it is a permanent issue (e.g., command not found), fall back to an alternative approach or inform the user.
|
|
@@ -1122,22 +1122,46 @@
|
|
|
1122
1122
|
text-decoration: underline;
|
|
1123
1123
|
}
|
|
1124
1124
|
|
|
1125
|
-
.theia-chat-session-badge-unread-tooltip
|
|
1125
|
+
.theia-chat-session-badge-unread-tooltip,
|
|
1126
|
+
.theia-chat-session-badge-running-tooltip,
|
|
1127
|
+
.theia-chat-session-badge-error-tooltip {
|
|
1126
1128
|
font-size: var(--theia-ui-font-size0);
|
|
1127
1129
|
font-weight: 600;
|
|
1128
|
-
color: var(--theia-activityBarBadge-foreground);
|
|
1129
|
-
background-color: var(--theia-activityBarBadge-background);
|
|
1130
1130
|
border-radius: calc(var(--theia-ui-padding) * 0.75);
|
|
1131
1131
|
padding: 1px calc(var(--theia-ui-padding) * 0.75);
|
|
1132
1132
|
display: inline-block;
|
|
1133
1133
|
margin-bottom: var(--theia-ui-padding);
|
|
1134
1134
|
}
|
|
1135
1135
|
|
|
1136
|
+
.theia-chat-session-badge-unread-tooltip {
|
|
1137
|
+
color: var(--theia-activityBarBadge-foreground);
|
|
1138
|
+
background-color: var(--theia-activityBarBadge-background);
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
.theia-chat-session-badge-running-tooltip {
|
|
1142
|
+
color: var(--theia-activityBarBadge-foreground);
|
|
1143
|
+
background-color: var(--theia-progressBar-background);
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
.theia-chat-session-badge-error-tooltip {
|
|
1147
|
+
color: var(--theia-activityBarBadge-foreground);
|
|
1148
|
+
background-color: var(--theia-errorForeground);
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1136
1151
|
.theia-chat-session-tooltip-label {
|
|
1137
1152
|
font-weight: 600;
|
|
1138
1153
|
margin-bottom: calc(var(--theia-ui-padding) * 0.5);
|
|
1139
1154
|
}
|
|
1140
1155
|
|
|
1156
|
+
.theia-chat-session-tooltip-error {
|
|
1157
|
+
color: var(--theia-errorForeground);
|
|
1158
|
+
word-break: break-word;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
.theia-chat-session-tooltip-error-prefix {
|
|
1162
|
+
font-weight: 600;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1141
1165
|
.theia-chat-session-tooltip-snippet h1,
|
|
1142
1166
|
.theia-chat-session-tooltip-snippet h2,
|
|
1143
1167
|
.theia-chat-session-tooltip-snippet h3,
|
|
@@ -1184,6 +1208,18 @@
|
|
|
1184
1208
|
color: var(--theia-focusBorder);
|
|
1185
1209
|
}
|
|
1186
1210
|
|
|
1211
|
+
.theia-chat-session-card-error .theia-Card-icon {
|
|
1212
|
+
color: var(--theia-errorForeground);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.theia-chat-session-card-error .theia-Card-interactive:hover {
|
|
1216
|
+
border-color: var(--theia-errorForeground);
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
.theia-chat-session-card-error .theia-Card-interactive:focus {
|
|
1220
|
+
outline-color: var(--theia-errorForeground);
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1187
1223
|
.theia-chat-session-badge-unread {
|
|
1188
1224
|
position: absolute;
|
|
1189
1225
|
top: calc(var(--theia-ui-padding) * 1.5);
|
|
@@ -1196,6 +1232,10 @@
|
|
|
1196
1232
|
z-index: 1;
|
|
1197
1233
|
}
|
|
1198
1234
|
|
|
1235
|
+
.theia-chat-session-card-error .theia-chat-session-badge-unread {
|
|
1236
|
+
background-color: var(--theia-errorForeground);
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1199
1239
|
/*
|
|
1200
1240
|
* AI Tools Configuration Widget Styles
|
|
1201
1241
|
* Only touch styles in this section for the tools configuration widget
|