cursor-feedback 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,375 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+ body {
8
+ font-family: var(--vscode-font-family);
9
+ font-size: var(--vscode-font-size);
10
+ color: var(--vscode-foreground);
11
+ background-color: var(--vscode-sideBar-background);
12
+ padding: 12px;
13
+ min-height: 100vh;
14
+ }
15
+
16
+ .container {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 12px;
20
+ }
21
+
22
+ .section {
23
+ background: var(--vscode-input-background);
24
+ border: 1px solid var(--vscode-input-border);
25
+ border-radius: 6px;
26
+ padding: 12px;
27
+ }
28
+
29
+ .section-title {
30
+ font-weight: 600;
31
+ margin-bottom: 8px;
32
+ color: var(--vscode-foreground);
33
+ display: flex;
34
+ align-items: center;
35
+ gap: 6px;
36
+ }
37
+
38
+ .summary-content {
39
+ word-break: break-word;
40
+ max-height: 300px;
41
+ overflow-y: auto;
42
+ font-size: 13px;
43
+ line-height: 1.6;
44
+ background: var(--vscode-textBlockQuote-background);
45
+ padding: 12px;
46
+ border-radius: 4px;
47
+ }
48
+
49
+ /* Markdown 样式 */
50
+ .summary-content h1, .summary-content h2, .summary-content h3 {
51
+ margin-top: 12px;
52
+ margin-bottom: 8px;
53
+ font-weight: 600;
54
+ color: var(--vscode-foreground);
55
+ }
56
+ .summary-content h1 { font-size: 1.4em; border-bottom: 1px solid var(--vscode-panel-border); padding-bottom: 4px; }
57
+ .summary-content h2 { font-size: 1.2em; }
58
+ .summary-content h3 { font-size: 1.1em; }
59
+ .summary-content h1:first-child, .summary-content h2:first-child, .summary-content h3:first-child { margin-top: 0; }
60
+
61
+ .summary-content p { margin: 8px 0; }
62
+ .summary-content ul, .summary-content ol { margin: 8px 0; padding-left: 20px; }
63
+ .summary-content li { margin: 4px 0; }
64
+
65
+ .summary-content code {
66
+ background: var(--vscode-textCodeBlock-background);
67
+ padding: 2px 6px;
68
+ border-radius: 3px;
69
+ font-family: var(--vscode-editor-font-family), monospace;
70
+ font-size: 0.9em;
71
+ }
72
+
73
+ .summary-content pre {
74
+ background: var(--vscode-textCodeBlock-background);
75
+ padding: 10px;
76
+ border-radius: 4px;
77
+ overflow-x: auto;
78
+ margin: 8px 0;
79
+ }
80
+ .summary-content pre code {
81
+ background: none;
82
+ padding: 0;
83
+ }
84
+
85
+ .summary-content blockquote {
86
+ border-left: 3px solid var(--vscode-textLink-foreground);
87
+ margin: 8px 0;
88
+ padding: 4px 12px;
89
+ color: var(--vscode-descriptionForeground);
90
+ }
91
+
92
+ .summary-content table {
93
+ border-collapse: collapse;
94
+ margin: 8px 0;
95
+ width: 100%;
96
+ }
97
+ .summary-content th, .summary-content td {
98
+ border: 1px solid var(--vscode-panel-border);
99
+ padding: 6px 10px;
100
+ text-align: left;
101
+ }
102
+ .summary-content th {
103
+ background: var(--vscode-textCodeBlock-background);
104
+ }
105
+
106
+ .summary-content strong { font-weight: 600; }
107
+ .summary-content em { font-style: italic; }
108
+ .summary-content a { color: var(--vscode-textLink-foreground); }
109
+ .summary-content hr { border: none; border-top: 1px solid var(--vscode-panel-border); margin: 12px 0; }
110
+
111
+ .feedback-input {
112
+ width: 100%;
113
+ min-height: 120px;
114
+ resize: vertical;
115
+ background: var(--vscode-input-background);
116
+ color: var(--vscode-input-foreground);
117
+ border: 1px solid var(--vscode-input-border);
118
+ border-radius: 4px;
119
+ padding: 10px;
120
+ font-family: inherit;
121
+ font-size: 13px;
122
+ line-height: 1.5;
123
+ }
124
+
125
+ .feedback-input:focus {
126
+ outline: none;
127
+ border-color: var(--vscode-focusBorder);
128
+ }
129
+
130
+
131
+ .submit-btn {
132
+ width: 100%;
133
+ padding: 12px;
134
+ background: var(--vscode-button-background);
135
+ color: var(--vscode-button-foreground);
136
+ border: none;
137
+ border-radius: 6px;
138
+ cursor: pointer;
139
+ font-weight: 600;
140
+ font-size: 14px;
141
+ transition: background 0.15s;
142
+ }
143
+
144
+ .submit-btn:hover {
145
+ background: var(--vscode-button-hoverBackground);
146
+ }
147
+
148
+ .submit-btn:disabled {
149
+ opacity: 0.5;
150
+ cursor: not-allowed;
151
+ }
152
+
153
+ .status {
154
+ text-align: center;
155
+ padding: 30px 20px;
156
+ color: var(--vscode-descriptionForeground);
157
+ }
158
+
159
+ .status-icon {
160
+ font-size: 32px;
161
+ margin-bottom: 12px;
162
+ }
163
+
164
+ .status.waiting .status-icon {
165
+ animation: pulse 2s ease-in-out infinite;
166
+ }
167
+
168
+ @keyframes pulse {
169
+ 0%, 100% { opacity: 1; }
170
+ 50% { opacity: 0.5; }
171
+ }
172
+
173
+ .server-status {
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 6px;
177
+ font-size: 11px;
178
+ padding: 6px 10px;
179
+ position: relative;
180
+ background: var(--vscode-textBlockQuote-background);
181
+ border-radius: 4px;
182
+ margin-bottom: 12px;
183
+ }
184
+
185
+ .server-status .dot {
186
+ width: 8px;
187
+ height: 8px;
188
+ border-radius: 50%;
189
+ background: var(--vscode-errorForeground);
190
+ }
191
+
192
+ .server-status.connected .dot {
193
+ background: var(--vscode-notificationsInfoIcon-foreground);
194
+ }
195
+
196
+ .debug-icon {
197
+ margin-left: auto;
198
+ cursor: pointer;
199
+ opacity: 0.6;
200
+ font-size: 12px;
201
+ }
202
+
203
+ .debug-icon:hover {
204
+ opacity: 1;
205
+ }
206
+
207
+ .debug-tooltip {
208
+ display: none;
209
+ position: fixed;
210
+ top: 50px;
211
+ right: 10px;
212
+ padding: 8px 10px;
213
+ background: var(--vscode-editorWidget-background);
214
+ border: 1px solid var(--vscode-editorWidget-border);
215
+ border-radius: 4px;
216
+ font-size: 11px;
217
+ white-space: pre-wrap;
218
+ z-index: 1000;
219
+ min-width: 180px;
220
+ max-width: 280px;
221
+ box-shadow: 0 2px 8px rgba(0,0,0,0.3);
222
+ }
223
+
224
+ .debug-icon:hover + .debug-tooltip,
225
+ .debug-tooltip:hover {
226
+ display: block;
227
+ }
228
+
229
+ .attachments-area {
230
+ margin-top: 10px;
231
+ }
232
+
233
+ .attachment-buttons {
234
+ display: flex;
235
+ justify-content: flex-end;
236
+ gap: 4px;
237
+ }
238
+
239
+ .attachment-btn {
240
+ display: inline-flex;
241
+ align-items: center;
242
+ justify-content: center;
243
+ width: 28px;
244
+ height: 28px;
245
+ padding: 0;
246
+ background: var(--vscode-button-secondaryBackground);
247
+ color: var(--vscode-button-secondaryForeground);
248
+ border: none;
249
+ border-radius: 4px;
250
+ cursor: pointer;
251
+ font-size: 14px;
252
+ }
253
+
254
+ .attachment-btn:hover {
255
+ background: var(--vscode-button-secondaryHoverBackground);
256
+ }
257
+
258
+ .attachment-btn[data-tooltip] {
259
+ position: relative;
260
+ }
261
+
262
+ .attachment-btn[data-tooltip]:hover::after {
263
+ content: attr(data-tooltip);
264
+ position: absolute;
265
+ bottom: 100%;
266
+ right: 0;
267
+ padding: 4px 8px;
268
+ background: var(--vscode-editorWidget-background);
269
+ color: var(--vscode-editorWidget-foreground);
270
+ border: 1px solid var(--vscode-editorWidget-border);
271
+ border-radius: 4px;
272
+ font-size: 11px;
273
+ white-space: nowrap;
274
+ margin-bottom: 4px;
275
+ z-index: 100;
276
+ }
277
+
278
+ .file-list {
279
+ margin-top: 8px;
280
+ }
281
+
282
+ .file-item {
283
+ display: flex;
284
+ align-items: center;
285
+ gap: 6px;
286
+ padding: 4px 8px;
287
+ background: var(--vscode-textBlockQuote-background);
288
+ border-radius: 4px;
289
+ margin-bottom: 4px;
290
+ font-size: 11px;
291
+ }
292
+
293
+ .file-item .file-icon {
294
+ flex-shrink: 0;
295
+ }
296
+
297
+ .file-item .file-path {
298
+ flex: 1;
299
+ overflow: hidden;
300
+ text-overflow: ellipsis;
301
+ white-space: nowrap;
302
+ color: var(--vscode-descriptionForeground);
303
+ }
304
+
305
+ .file-item .file-remove {
306
+ flex-shrink: 0;
307
+ width: 16px;
308
+ height: 16px;
309
+ border-radius: 50%;
310
+ background: var(--vscode-errorForeground);
311
+ color: white;
312
+ border: none;
313
+ cursor: pointer;
314
+ font-size: 10px;
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ }
319
+
320
+ .image-preview {
321
+ display: flex;
322
+ flex-wrap: wrap;
323
+ gap: 8px;
324
+ margin-top: 10px;
325
+ }
326
+
327
+ .image-preview-item {
328
+ position: relative;
329
+ }
330
+
331
+ .image-preview img {
332
+ max-width: 80px;
333
+ max-height: 80px;
334
+ border-radius: 4px;
335
+ object-fit: cover;
336
+ border: 1px solid var(--vscode-input-border);
337
+ }
338
+
339
+ .image-remove {
340
+ position: absolute;
341
+ top: -6px;
342
+ right: -6px;
343
+ width: 18px;
344
+ height: 18px;
345
+ border-radius: 50%;
346
+ background: var(--vscode-errorForeground);
347
+ color: white;
348
+ border: none;
349
+ cursor: pointer;
350
+ font-size: 12px;
351
+ display: flex;
352
+ align-items: center;
353
+ justify-content: center;
354
+ }
355
+
356
+ .hidden {
357
+ display: none !important;
358
+ }
359
+
360
+ .project-info {
361
+ font-size: 11px;
362
+ color: var(--vscode-descriptionForeground);
363
+ margin-top: 6px;
364
+ padding: 6px 8px;
365
+ background: var(--vscode-textBlockQuote-background);
366
+ border-radius: 4px;
367
+ word-break: break-all;
368
+ }
369
+
370
+ .timeout-info {
371
+ font-size: 11px;
372
+ color: var(--vscode-descriptionForeground);
373
+ text-align: right;
374
+ margin-top: 6px;
375
+ }
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.0",
5
+ "version": "1.0.2",
6
6
  "author": "jianger666",
7
7
  "license": "MIT",
8
8
  "repository": {
@@ -67,22 +67,12 @@
67
67
  "name": "Feedback"
68
68
  }
69
69
  ]
70
- },
71
- "configuration": {
72
- "title": "Cursor Feedback",
73
- "properties": {
74
- "cursorFeedback.language": {
75
- "type": "string",
76
- "enum": ["zh-CN", "zh-TW", "en"],
77
- "default": "zh-CN",
78
- "description": "Interface language (zh-CN: 简体中文, zh-TW: 繁體中文, en: English)"
79
- }
80
- }
81
70
  }
82
71
  },
83
72
  "scripts": {
84
73
  "vscode:prepublish": "npm run compile",
85
- "compile": "tsc -p ./",
74
+ "compile": "tsc -p ./ && npm run copy-webview",
75
+ "copy-webview": "mkdir -p dist/webview && cp src/webview/* dist/webview/",
86
76
  "watch": "tsc -watch -p ./",
87
77
  "lint": "eslint src --ext ts",
88
78
  "start:mcp": "node dist/mcp-server.js",