cursor-feedback 1.0.2 → 1.0.3

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/README.md CHANGED
@@ -154,9 +154,10 @@ npm install -g cursor-feedback
154
154
 
155
155
  | 环境变量 | 默认值 | 描述 |
156
156
  |---------|--------|------|
157
- | `MCP_FEEDBACK_TIMEOUT` | `300` | 超时时间(秒),默认 5 分钟。超时后 AI 会自动重新请求反馈 |
157
+ | `MCP_FEEDBACK_TIMEOUT` | `300` | 超时时间(秒),默认 5 分钟 |
158
+ | `MCP_AUTO_RETRY` | `true` | 超时后是否提示 AI 自动重试。设为 `false` 可禁用自动重试指示 |
158
159
 
159
- > **超时机制**:如果用户在超时时间内没有响应,AI 会收到超时通知并自动重新调用 feedback 工具继续等待。这样即使您暂时离开,回来后 AI 仍会等待您的反馈。
160
+ > **超时机制**:如果用户在超时时间内没有响应,AI 会收到超时通知。默认情况下,返回消息会包含重试指示,AI 会自动重新调用 feedback 工具继续等待。如果您不希望 AI 自动重试,可以设置 `MCP_AUTO_RETRY=false`。
160
161
 
161
162
  ## 🏗️ 架构
162
163
 
@@ -103,17 +103,11 @@ class McpFeedbackServer {
103
103
  2. 收到用户反馈后,必须再次调用此工具继续对话(这是一个持续的对话循环)
104
104
  3. 不要直接回复用户,所有回复必须通过此工具的 summary 参数
105
105
  4. 只有当用户明确提出结束对话时,才能停止调用此工具
106
- 5. 如果反馈超时,必须立即再次调用此工具继续等待
107
- 6. 提供清晰的工作摘要,说明你做了什么以及需要什么反馈
106
+ 5. 提供清晰的工作摘要,说明你做了什么以及需要什么反馈
108
107
 
109
108
  对话流程:
110
109
  用户消息 → 你工作 → 调用此工具(附带摘要)→ 用户反馈 → 你工作 → 再次调用此工具 → ...
111
110
 
112
- 返回值处理【必须遵守】:
113
- - 如果返回包含 "timeout" 或 "cancelled" → 必须立即重新调用此工具继续等待
114
- - 如果用户明确说"结束/停止/不聊了"等 → 停止调用
115
- - 其他情况 → 处理用户反馈后再次调用此工具
116
-
117
111
  参数:
118
112
  project_directory: 【必填】项目目录的绝对路径,用于正确匹配项目窗口
119
113
  summary: AI 工作摘要,供用户查看(支持 Markdown)
@@ -182,8 +176,20 @@ class McpFeedbackServer {
182
176
  * 处理交互式反馈请求
183
177
  */
184
178
  async handleInteractiveFeedback(args) {
185
- const projectDir = args?.project_directory || '.';
186
- const summary = args?.summary || '我已完成您的请求。';
179
+ // 参数校验:project_directory 是必填项
180
+ if (!args?.project_directory) {
181
+ const receivedParams = JSON.stringify(args || {});
182
+ return {
183
+ content: [{
184
+ type: 'text',
185
+ text: `参数错误:缺少必填参数 project_directory。请查看 interactive_feedback 工具描述后使用正确参数重新调用。\n\n你传入的参数:${receivedParams}`,
186
+ }],
187
+ isError: true,
188
+ };
189
+ }
190
+ const projectDir = args.project_directory;
191
+ // summary 支持别名 message
192
+ const summary = args?.summary || args?.message || '我已完成您的请求。';
187
193
  // 超时时间优先级:环境变量 > 工具参数 > 默认值(300秒)
188
194
  // 这样用户配置的环境变量永远生效,不会被 AI 覆盖
189
195
  const envTimeout = process.env.MCP_FEEDBACK_TIMEOUT ? parseInt(process.env.MCP_FEEDBACK_TIMEOUT, 10) : null;
@@ -211,11 +217,16 @@ class McpFeedbackServer {
211
217
  const result = await this.waitForFeedback(requestId, timeout * 1000);
212
218
  if (!result) {
213
219
  debugLog('Feedback request timed out or cancelled');
220
+ // MCP_AUTO_RETRY 环境变量控制是否显示重试指示,默认 true
221
+ const autoRetry = process.env.MCP_AUTO_RETRY !== 'false';
222
+ const timeoutMessage = autoRetry
223
+ ? 'User cancelled the feedback or timeout. 【必须立即重新调用此工具继续等待用户反馈】'
224
+ : 'User cancelled the feedback or timeout.';
214
225
  return {
215
226
  content: [
216
227
  {
217
228
  type: 'text',
218
- text: 'User cancelled the feedback or timeout.',
229
+ text: timeoutMessage,
219
230
  },
220
231
  ],
221
232
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -53,8 +53,11 @@
53
53
  <div id="timeoutInfo" class="timeout-info"></div>
54
54
  </div>
55
55
 
56
- <!-- 提交按钮 -->
57
- <button id="submitBtn" class="submit-btn">提交反馈 (Ctrl+Enter)</button>
56
+ <!-- 提交按钮组 -->
57
+ <div class="submit-group">
58
+ <button id="submitBtn" class="submit-btn">提交反馈 (Ctrl+Enter)</button>
59
+ <button id="toggleKeyModeBtn" class="toggle-key-mode-btn" title="切换快捷键模式">⌨️</button>
60
+ </div>
58
61
  </div>
59
62
  </div>
60
63
 
@@ -35,6 +35,7 @@
35
35
  const imagePreview = document.getElementById('imagePreview');
36
36
  const fileList = document.getElementById('fileList');
37
37
  const timeoutInfo = document.getElementById('timeoutInfo');
38
+ const toggleKeyModeBtn = document.getElementById('toggleKeyModeBtn');
38
39
 
39
40
  let uploadedImages = [];
40
41
  let attachedFiles = [];
@@ -44,6 +45,32 @@
44
45
  let requestTimeout = 300;
45
46
  let countdownInterval = null;
46
47
 
48
+ // 快捷键模式:false = Ctrl+Enter 提交(默认),true = Enter 提交
49
+ let enterToSubmit = localStorage.getItem('cursorFeedback_enterToSubmit') === 'true';
50
+
51
+ // 更新快捷键模式 UI
52
+ function updateKeyModeUI() {
53
+ if (enterToSubmit) {
54
+ submitBtn.textContent = '提交反馈 (Enter)';
55
+ toggleKeyModeBtn.classList.add('enter-mode');
56
+ toggleKeyModeBtn.title = '当前:Enter 提交,Shift+Enter 换行\n点击切换为 Ctrl+Enter 提交';
57
+ } else {
58
+ submitBtn.textContent = '提交反馈 (Ctrl+Enter)';
59
+ toggleKeyModeBtn.classList.remove('enter-mode');
60
+ toggleKeyModeBtn.title = '当前:Ctrl+Enter 提交,Enter 换行\n点击切换为 Enter 提交';
61
+ }
62
+ }
63
+
64
+ // 初始化快捷键模式 UI
65
+ updateKeyModeUI();
66
+
67
+ // 切换快捷键模式
68
+ toggleKeyModeBtn.addEventListener('click', () => {
69
+ enterToSubmit = !enterToSubmit;
70
+ localStorage.setItem('cursorFeedback_enterToSubmit', enterToSubmit.toString());
71
+ updateKeyModeUI();
72
+ });
73
+
47
74
  // 恢复输入框文本
48
75
  if (previousState?.text) {
49
76
  feedbackInput.value = previousState.text;
@@ -187,7 +214,21 @@
187
214
 
188
215
  submitBtn.addEventListener('click', submitFeedback);
189
216
  feedbackInput.addEventListener('keydown', (e) => {
190
- if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') submitFeedback();
217
+ if (e.key === 'Enter') {
218
+ if (enterToSubmit) {
219
+ // Enter 提交模式:Enter 提交,Shift+Enter 换行
220
+ if (!e.shiftKey) {
221
+ e.preventDefault();
222
+ submitFeedback();
223
+ }
224
+ } else {
225
+ // Ctrl+Enter 提交模式:Ctrl+Enter 提交,Enter 换行
226
+ if (e.ctrlKey || e.metaKey) {
227
+ e.preventDefault();
228
+ submitFeedback();
229
+ }
230
+ }
231
+ }
191
232
  });
192
233
 
193
234
  // 接收消息
@@ -128,8 +128,13 @@ body {
128
128
  }
129
129
 
130
130
 
131
+ .submit-group {
132
+ display: flex;
133
+ gap: 8px;
134
+ }
135
+
131
136
  .submit-btn {
132
- width: 100%;
137
+ flex: 1;
133
138
  padding: 12px;
134
139
  background: var(--vscode-button-background);
135
140
  color: var(--vscode-button-foreground);
@@ -150,6 +155,32 @@ body {
150
155
  cursor: not-allowed;
151
156
  }
152
157
 
158
+ .toggle-key-mode-btn {
159
+ width: 44px;
160
+ padding: 12px 8px;
161
+ background: var(--vscode-button-secondaryBackground);
162
+ color: var(--vscode-button-secondaryForeground);
163
+ border: none;
164
+ border-radius: 6px;
165
+ cursor: pointer;
166
+ font-size: 16px;
167
+ transition: background 0.15s;
168
+ position: relative;
169
+ }
170
+
171
+ .toggle-key-mode-btn:hover {
172
+ background: var(--vscode-button-secondaryHoverBackground);
173
+ }
174
+
175
+ .toggle-key-mode-btn.enter-mode {
176
+ background: var(--vscode-button-background);
177
+ color: var(--vscode-button-foreground);
178
+ }
179
+
180
+ .toggle-key-mode-btn.enter-mode:hover {
181
+ background: var(--vscode-button-hoverBackground);
182
+ }
183
+
153
184
  .status {
154
185
  text-align: center;
155
186
  padding: 30px 20px;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "cursor-feedback",
3
3
  "displayName": "Cursor Feedback",
4
4
  "description": "Interactive feedback collection for AI agents in Cursor/VS Code - MCP Server with sidebar UI",
5
- "version": "1.0.2",
5
+ "version": "1.0.3",
6
6
  "author": "jianger666",
7
7
  "license": "MIT",
8
8
  "repository": {
package/src/mcp-server.ts CHANGED
@@ -116,17 +116,11 @@ class McpFeedbackServer {
116
116
  2. 收到用户反馈后,必须再次调用此工具继续对话(这是一个持续的对话循环)
117
117
  3. 不要直接回复用户,所有回复必须通过此工具的 summary 参数
118
118
  4. 只有当用户明确提出结束对话时,才能停止调用此工具
119
- 5. 如果反馈超时,必须立即再次调用此工具继续等待
120
- 6. 提供清晰的工作摘要,说明你做了什么以及需要什么反馈
119
+ 5. 提供清晰的工作摘要,说明你做了什么以及需要什么反馈
121
120
 
122
121
  对话流程:
123
122
  用户消息 → 你工作 → 调用此工具(附带摘要)→ 用户反馈 → 你工作 → 再次调用此工具 → ...
124
123
 
125
- 返回值处理【必须遵守】:
126
- - 如果返回包含 "timeout" 或 "cancelled" → 必须立即重新调用此工具继续等待
127
- - 如果用户明确说"结束/停止/不聊了"等 → 停止调用
128
- - 其他情况 → 处理用户反馈后再次调用此工具
129
-
130
124
  参数:
131
125
  project_directory: 【必填】项目目录的绝对路径,用于正确匹配项目窗口
132
126
  summary: AI 工作摘要,供用户查看(支持 Markdown)
@@ -198,9 +192,23 @@ class McpFeedbackServer {
198
192
  */
199
193
  private async handleInteractiveFeedback(args: Record<string, unknown> | undefined): Promise<{
200
194
  content: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;
195
+ isError?: boolean;
201
196
  }> {
202
- const projectDir = (args?.project_directory as string) || '.';
203
- const summary = (args?.summary as string) || '我已完成您的请求。';
197
+ // 参数校验:project_directory 是必填项
198
+ if (!args?.project_directory) {
199
+ const receivedParams = JSON.stringify(args || {});
200
+ return {
201
+ content: [{
202
+ type: 'text',
203
+ text: `参数错误:缺少必填参数 project_directory。请查看 interactive_feedback 工具描述后使用正确参数重新调用。\n\n你传入的参数:${receivedParams}`,
204
+ }],
205
+ isError: true,
206
+ };
207
+ }
208
+
209
+ const projectDir = args.project_directory as string;
210
+ // summary 支持别名 message
211
+ const summary = (args?.summary as string) || (args?.message as string) || '我已完成您的请求。';
204
212
  // 超时时间优先级:环境变量 > 工具参数 > 默认值(300秒)
205
213
  // 这样用户配置的环境变量永远生效,不会被 AI 覆盖
206
214
  const envTimeout = process.env.MCP_FEEDBACK_TIMEOUT ? parseInt(process.env.MCP_FEEDBACK_TIMEOUT, 10) : null;
@@ -234,11 +242,16 @@ class McpFeedbackServer {
234
242
 
235
243
  if (!result) {
236
244
  debugLog('Feedback request timed out or cancelled');
245
+ // MCP_AUTO_RETRY 环境变量控制是否显示重试指示,默认 true
246
+ const autoRetry = process.env.MCP_AUTO_RETRY !== 'false';
247
+ const timeoutMessage = autoRetry
248
+ ? 'User cancelled the feedback or timeout. 【必须立即重新调用此工具继续等待用户反馈】'
249
+ : 'User cancelled the feedback or timeout.';
237
250
  return {
238
251
  content: [
239
252
  {
240
253
  type: 'text',
241
- text: 'User cancelled the feedback or timeout.',
254
+ text: timeoutMessage,
242
255
  },
243
256
  ],
244
257
  };
@@ -53,8 +53,11 @@
53
53
  <div id="timeoutInfo" class="timeout-info"></div>
54
54
  </div>
55
55
 
56
- <!-- 提交按钮 -->
57
- <button id="submitBtn" class="submit-btn">提交反馈 (Ctrl+Enter)</button>
56
+ <!-- 提交按钮组 -->
57
+ <div class="submit-group">
58
+ <button id="submitBtn" class="submit-btn">提交反馈 (Ctrl+Enter)</button>
59
+ <button id="toggleKeyModeBtn" class="toggle-key-mode-btn" title="切换快捷键模式">⌨️</button>
60
+ </div>
58
61
  </div>
59
62
  </div>
60
63
 
@@ -35,6 +35,7 @@
35
35
  const imagePreview = document.getElementById('imagePreview');
36
36
  const fileList = document.getElementById('fileList');
37
37
  const timeoutInfo = document.getElementById('timeoutInfo');
38
+ const toggleKeyModeBtn = document.getElementById('toggleKeyModeBtn');
38
39
 
39
40
  let uploadedImages = [];
40
41
  let attachedFiles = [];
@@ -44,6 +45,32 @@
44
45
  let requestTimeout = 300;
45
46
  let countdownInterval = null;
46
47
 
48
+ // 快捷键模式:false = Ctrl+Enter 提交(默认),true = Enter 提交
49
+ let enterToSubmit = localStorage.getItem('cursorFeedback_enterToSubmit') === 'true';
50
+
51
+ // 更新快捷键模式 UI
52
+ function updateKeyModeUI() {
53
+ if (enterToSubmit) {
54
+ submitBtn.textContent = '提交反馈 (Enter)';
55
+ toggleKeyModeBtn.classList.add('enter-mode');
56
+ toggleKeyModeBtn.title = '当前:Enter 提交,Shift+Enter 换行\n点击切换为 Ctrl+Enter 提交';
57
+ } else {
58
+ submitBtn.textContent = '提交反馈 (Ctrl+Enter)';
59
+ toggleKeyModeBtn.classList.remove('enter-mode');
60
+ toggleKeyModeBtn.title = '当前:Ctrl+Enter 提交,Enter 换行\n点击切换为 Enter 提交';
61
+ }
62
+ }
63
+
64
+ // 初始化快捷键模式 UI
65
+ updateKeyModeUI();
66
+
67
+ // 切换快捷键模式
68
+ toggleKeyModeBtn.addEventListener('click', () => {
69
+ enterToSubmit = !enterToSubmit;
70
+ localStorage.setItem('cursorFeedback_enterToSubmit', enterToSubmit.toString());
71
+ updateKeyModeUI();
72
+ });
73
+
47
74
  // 恢复输入框文本
48
75
  if (previousState?.text) {
49
76
  feedbackInput.value = previousState.text;
@@ -187,7 +214,21 @@
187
214
 
188
215
  submitBtn.addEventListener('click', submitFeedback);
189
216
  feedbackInput.addEventListener('keydown', (e) => {
190
- if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') submitFeedback();
217
+ if (e.key === 'Enter') {
218
+ if (enterToSubmit) {
219
+ // Enter 提交模式:Enter 提交,Shift+Enter 换行
220
+ if (!e.shiftKey) {
221
+ e.preventDefault();
222
+ submitFeedback();
223
+ }
224
+ } else {
225
+ // Ctrl+Enter 提交模式:Ctrl+Enter 提交,Enter 换行
226
+ if (e.ctrlKey || e.metaKey) {
227
+ e.preventDefault();
228
+ submitFeedback();
229
+ }
230
+ }
231
+ }
191
232
  });
192
233
 
193
234
  // 接收消息
@@ -128,8 +128,13 @@ body {
128
128
  }
129
129
 
130
130
 
131
+ .submit-group {
132
+ display: flex;
133
+ gap: 8px;
134
+ }
135
+
131
136
  .submit-btn {
132
- width: 100%;
137
+ flex: 1;
133
138
  padding: 12px;
134
139
  background: var(--vscode-button-background);
135
140
  color: var(--vscode-button-foreground);
@@ -150,6 +155,32 @@ body {
150
155
  cursor: not-allowed;
151
156
  }
152
157
 
158
+ .toggle-key-mode-btn {
159
+ width: 44px;
160
+ padding: 12px 8px;
161
+ background: var(--vscode-button-secondaryBackground);
162
+ color: var(--vscode-button-secondaryForeground);
163
+ border: none;
164
+ border-radius: 6px;
165
+ cursor: pointer;
166
+ font-size: 16px;
167
+ transition: background 0.15s;
168
+ position: relative;
169
+ }
170
+
171
+ .toggle-key-mode-btn:hover {
172
+ background: var(--vscode-button-secondaryHoverBackground);
173
+ }
174
+
175
+ .toggle-key-mode-btn.enter-mode {
176
+ background: var(--vscode-button-background);
177
+ color: var(--vscode-button-foreground);
178
+ }
179
+
180
+ .toggle-key-mode-btn.enter-mode:hover {
181
+ background: var(--vscode-button-hoverBackground);
182
+ }
183
+
153
184
  .status {
154
185
  text-align: center;
155
186
  padding: 30px 20px;