@becrafter/prompt-manager 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/env.example +1 -1
  2. package/package.json +4 -1
  3. package/packages/admin-ui/admin.html +49 -0
  4. package/packages/admin-ui/css/codemirror-theme_xq-light.css +43 -0
  5. package/packages/admin-ui/css/codemirror.css +344 -0
  6. package/packages/admin-ui/css/main.css +4485 -0
  7. package/packages/admin-ui/css/markdown.css +468 -0
  8. package/packages/admin-ui/css/optimization.css +1015 -0
  9. package/packages/admin-ui/css/recommended-prompts.css +610 -0
  10. package/packages/admin-ui/css/terminal-fix.css +571 -0
  11. package/packages/admin-ui/package-lock.json +8287 -0
  12. package/packages/admin-ui/package.json +46 -0
  13. package/packages/admin-ui/src/codemirror.js +53 -0
  14. package/packages/admin-ui/src/components/ArgumentModal.js +53 -0
  15. package/packages/admin-ui/src/components/DeletePromptModal.js +30 -0
  16. package/packages/admin-ui/src/components/HeaderView.js +40 -0
  17. package/packages/admin-ui/src/components/LoadingOverlay.js +12 -0
  18. package/packages/admin-ui/src/components/LoginView.js +22 -0
  19. package/packages/admin-ui/src/components/ModelConfigModal.js +103 -0
  20. package/packages/admin-ui/src/components/NewFolderModal.js +58 -0
  21. package/packages/admin-ui/src/components/OptimizationConfigModal.js +36 -0
  22. package/packages/admin-ui/src/components/OptimizationDrawer.js +135 -0
  23. package/packages/admin-ui/src/components/PrimaryNav.js +34 -0
  24. package/packages/admin-ui/src/components/PromptsArea.js +140 -0
  25. package/packages/admin-ui/src/components/RecommendedPromptModal.js +37 -0
  26. package/packages/admin-ui/src/components/SidebarView.js +24 -0
  27. package/packages/admin-ui/src/components/SyncPromptModal.js +44 -0
  28. package/packages/admin-ui/src/components/TemplateEditorModal.js +75 -0
  29. package/packages/admin-ui/src/components/TemplateListModal.js +30 -0
  30. package/packages/admin-ui/src/components/TerminalComponent.js +995 -0
  31. package/packages/admin-ui/src/components/TerminalView.js +25 -0
  32. package/packages/admin-ui/src/components/ToolDetailModal.js +23 -0
  33. package/packages/admin-ui/src/components/ToolsArea.js +119 -0
  34. package/packages/admin-ui/src/components/ToolsUploadModal.js +59 -0
  35. package/packages/admin-ui/src/index.js +6766 -0
  36. package/packages/server/utils/config.js +1 -1
@@ -0,0 +1,610 @@
1
+ /* 空白区域与推荐词布局 */
2
+ .custom-blank-content {
3
+ display: flex;
4
+ flex-direction: column;
5
+ align-items: center;
6
+ justify-content: center;
7
+ height: 100%;
8
+ padding: 64px 32px 32px;
9
+ color: #9ca3af;
10
+ font-size: 16px;
11
+ overflow-y: auto;
12
+ gap: 36px;
13
+ }
14
+
15
+ .custom-blank-content.no-recommendation {
16
+ padding-bottom: 64px;
17
+ }
18
+
19
+ .blank-placeholder {
20
+ flex: 1;
21
+ width: 100%;
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ text-align: center;
26
+ }
27
+
28
+ .blank-placeholder-body {
29
+ max-width: 520px;
30
+ width: 100%;
31
+ padding: 32px 40px;
32
+ border-radius: 28px;
33
+ background: rgba(255, 255, 255, 0.95);
34
+ box-shadow: 0 20px 60px -40px rgba(15, 23, 42, 0.6);
35
+ border: 1px solid rgba(226, 232, 240, 0.9);
36
+ }
37
+
38
+ .blank-placeholder-emoji {
39
+ font-size: 60px;
40
+ margin-bottom: 20px;
41
+ }
42
+
43
+ .blank-placeholder-text {
44
+ font-size: 17px;
45
+ color: #4b5563;
46
+ line-height: 1.4;
47
+ margin: 0;
48
+ white-space: nowrap;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+ display: block;
52
+ }
53
+
54
+ .custom-blank-content.no-recommendation .blank-placeholder {
55
+ margin-bottom: 0;
56
+ }
57
+
58
+ /* 推荐词卡片列表样式 */
59
+ .recommended-prompts-section {
60
+ width: min(1280px, calc(100% - 48px));
61
+ min-width: 560px; /* 2个卡片的最小宽度(240px) + 1个间隙(12px) + 2个padding(20px) */
62
+ margin-top: auto;
63
+ margin-left: auto;
64
+ margin-right: auto;
65
+ padding: 22px 28px 16px;
66
+ border-radius: 22px;
67
+ background: rgba(255, 255, 255, 0.96);
68
+ border: 1px solid rgba(226, 232, 240, 0.9);
69
+ box-shadow: 0 25px 55px -32px rgba(15, 23, 42, 0.35);
70
+ flex-shrink: 0;
71
+ }
72
+
73
+ .recommended-prompts-section.hidden {
74
+ display: none;
75
+ }
76
+
77
+ .recommended-prompts-header {
78
+ display: flex;
79
+ justify-content: space-between;
80
+ align-items: center;
81
+ margin-bottom: 20px;
82
+ }
83
+
84
+ .recommended-prompts-header h3 {
85
+ font-size: 18px;
86
+ font-weight: 600;
87
+ color: #1f2937;
88
+ margin: 0;
89
+ letter-spacing: 0.02em;
90
+ }
91
+
92
+ .recommended-prompts-nav {
93
+ display: flex;
94
+ gap: 10px;
95
+ }
96
+
97
+ .nav-arrow {
98
+ width: 36px;
99
+ height: 36px;
100
+ border-radius: 50%;
101
+ border: 1px solid #e0e0e0;
102
+ background: white;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ cursor: pointer;
107
+ transition: all 0.2s ease;
108
+ }
109
+
110
+ .nav-arrow:hover:not(.disabled) {
111
+ background: #f5f5f5;
112
+ border-color: #ccc;
113
+ }
114
+
115
+ .nav-arrow.disabled {
116
+ opacity: 0.4;
117
+ cursor: not-allowed;
118
+ }
119
+
120
+ .recommended-prompts-container {
121
+ position: relative;
122
+ overflow: hidden;
123
+ }
124
+
125
+ .recommended-prompts-list {
126
+ display: flex;
127
+ gap: 12px;
128
+ padding: 6px 0;
129
+ overflow-x: auto;
130
+ scroll-behavior: smooth;
131
+ /* 滚动条默认透明,保持空间 */
132
+ scrollbar-width: thin;
133
+ scrollbar-color: transparent transparent;
134
+ }
135
+
136
+ .recommended-prompts-list::-webkit-scrollbar {
137
+ height: 6px;
138
+ }
139
+
140
+ .recommended-prompts-list::-webkit-scrollbar-track {
141
+ background: transparent;
142
+ }
143
+
144
+ .recommended-prompts-list::-webkit-scrollbar-thumb {
145
+ background-color: transparent;
146
+ border-radius: 3px;
147
+ transition: background-color 0.2s ease;
148
+ }
149
+
150
+ /* 滚动或悬停时显示滚动条 */
151
+ .recommended-prompts-list:active::-webkit-scrollbar-thumb,
152
+ .recommended-prompts-list:hover::-webkit-scrollbar-thumb {
153
+ background-color: #c5c5c5;
154
+ }
155
+
156
+ .recommended-prompts-list:active::-webkit-scrollbar-thumb:hover,
157
+ .recommended-prompts-list:hover::-webkit-scrollbar-thumb:hover {
158
+ background-color: #a0a0a0;
159
+ }
160
+
161
+ .recommended-prompts-list:hover::-webkit-scrollbar {
162
+ height: 6px;
163
+ }
164
+
165
+ .recommended-prompts-list:hover::-webkit-scrollbar-track {
166
+ background: transparent;
167
+ }
168
+
169
+ .recommended-prompts-list:hover::-webkit-scrollbar-thumb {
170
+ background-color: #c5c5c5;
171
+ border-radius: 3px;
172
+ transition: background-color 0.2s ease;
173
+ }
174
+
175
+ .recommended-prompts-list:hover::-webkit-scrollbar-thumb:hover {
176
+ background-color: #a0a0a0;
177
+ }
178
+
179
+ .recommended-prompt-card {
180
+ min-width: 240px;
181
+ max-width: 320px;
182
+ min-height: 140px;
183
+ border-radius: 18px;
184
+ border: 1px solid rgba(226, 232, 240, 0.8);
185
+ background: white;
186
+ padding: 18px 20px;
187
+ cursor: pointer;
188
+ transition: all 0.25s ease;
189
+ box-shadow: 3px 16px 18px -26px rgba(15, 23, 42, 0.5);
190
+ display: flex;
191
+ flex-direction: column;
192
+ margin-right: 12px;
193
+ }
194
+
195
+ .recommended-prompt-card:last-child {
196
+ margin-right: 0;
197
+ }
198
+
199
+ .recommended-prompt-card:hover {
200
+ transform: translateY(-4px);
201
+ box-shadow: 0 18px 30px -28px rgba(15, 23, 42, 0.45);
202
+ border-color: rgba(148, 163, 184, 0.5);
203
+ }
204
+
205
+ .recommended-prompt-card .card-header {
206
+ display: flex;
207
+ justify-content: space-between;
208
+ align-items: flex-start;
209
+ margin-bottom: 10px;
210
+ }
211
+
212
+ .recommended-prompt-card .card-title {
213
+ font-size: 15px;
214
+ font-weight: 600;
215
+ color: #111827;
216
+ margin: 0;
217
+ flex: 1;
218
+ line-height: 1.3;
219
+ overflow: hidden;
220
+ text-overflow: ellipsis;
221
+ display: -webkit-box;
222
+ -webkit-line-clamp: 2;
223
+ -webkit-box-orient: vertical;
224
+ }
225
+
226
+ .recommended-prompt-card .card-tags {
227
+ display: flex;
228
+ gap: 6px;
229
+ flex-wrap: wrap;
230
+ margin-top: 10px;
231
+ }
232
+
233
+ .recommended-prompt-card .card-tag {
234
+ font-size: 12px;
235
+ padding: 4px 10px;
236
+ border-radius: 12px;
237
+ background: rgba(59, 130, 246, 0.08);
238
+ color: #2563eb;
239
+ font-weight: 500;
240
+ }
241
+
242
+ .recommended-prompt-card .card-description {
243
+ font-size: 13px;
244
+ color: #4b5563;
245
+ line-height: 1.5;
246
+ overflow: hidden;
247
+ text-overflow: ellipsis;
248
+ display: -webkit-box;
249
+ -webkit-line-clamp: 3;
250
+ -webkit-box-orient: vertical;
251
+ flex: 1;
252
+ margin-top: 4px;
253
+ max-height: calc(1.5em * 3); /* 确保最大高度为3行 */
254
+ word-break: break-word; /* 确保长单词也能正确换行 */
255
+ }
256
+
257
+ .recommended-prompt-modal {
258
+ position: fixed;
259
+ inset: 0;
260
+ background: rgba(0, 0, 0, 0.5);
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: center;
264
+ z-index: 2000;
265
+ opacity: 0;
266
+ visibility: hidden;
267
+ transition: all 0.3s ease;
268
+ }
269
+
270
+ .recommended-prompt-modal.active {
271
+ opacity: 1;
272
+ visibility: visible;
273
+ }
274
+
275
+ .recommended-prompt-modal-content {
276
+ width: 90%;
277
+ max-width: 700px;
278
+ max-height: 90vh;
279
+ background: white;
280
+ border-radius: 16px;
281
+ overflow: hidden;
282
+ transform: translateY(20px);
283
+ transition: transform 0.3s ease;
284
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
285
+ display: flex;
286
+ flex-direction: column;
287
+ }
288
+
289
+ .recommended-prompt-modal.active .recommended-prompt-modal-content {
290
+ transform: translateY(0);
291
+ }
292
+
293
+ .recommended-prompt-modal-body {
294
+ padding: 24px;
295
+ flex: 1;
296
+ overflow-y: auto;
297
+ display: flex;
298
+ flex-direction: column;
299
+ /* 滚动条默认透明,保持空间 */
300
+ scrollbar-width: thin;
301
+ scrollbar-color: transparent transparent;
302
+ }
303
+
304
+ /* Webkit浏览器滚动条样式 - 默认透明 */
305
+ .recommended-prompt-modal-body::-webkit-scrollbar {
306
+ width: 6px;
307
+ }
308
+
309
+ .recommended-prompt-modal-body::-webkit-scrollbar-track {
310
+ background: transparent;
311
+ }
312
+
313
+ .recommended-prompt-modal-body::-webkit-scrollbar-thumb {
314
+ background-color: transparent;
315
+ border-radius: 3px;
316
+ transition: background-color 0.2s ease;
317
+ }
318
+
319
+ /* 滚动或悬停时显示滚动条 */
320
+ .recommended-prompt-modal-body:active::-webkit-scrollbar-thumb,
321
+ .recommended-prompt-modal-body:hover::-webkit-scrollbar-thumb {
322
+ background-color: #c5c5c5;
323
+ }
324
+
325
+ .recommended-prompt-modal-body:active::-webkit-scrollbar-thumb:hover,
326
+ .recommended-prompt-modal-body:hover::-webkit-scrollbar-thumb:hover {
327
+ background-color: #a0a0a0;
328
+ }
329
+
330
+ .recommended-prompt-modal-body .prompt-detail-description {
331
+ font-size: 16px;
332
+ color: #666;
333
+ line-height: 1.6;
334
+ margin: 0 0 24px 0;
335
+ padding: 16px;
336
+ background: #f8f9fa;
337
+ border-radius: 8px;
338
+ }
339
+
340
+ .recommended-prompt-modal-body .prompt-detail-content {
341
+ background: #f8f9fa;
342
+ border-radius: 8px;
343
+ padding: 20px;
344
+ font-size: 16px;
345
+ line-height: 1.7;
346
+ color: #333;
347
+ white-space: pre-wrap;
348
+ font-family: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
349
+ border: 1px solid #e2e8f0;
350
+ margin-top: 24px;
351
+ flex: 1;
352
+ min-height: 0;
353
+ overflow-y: auto;
354
+ /* 滚动条默认透明,保持空间 */
355
+ scrollbar-width: thin;
356
+ scrollbar-color: transparent transparent;
357
+ }
358
+
359
+ /* Webkit浏览器滚动条样式 - 默认透明 */
360
+ .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar {
361
+ width: 6px;
362
+ }
363
+
364
+ .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar-track {
365
+ background: transparent;
366
+ }
367
+
368
+ .recommended-prompt-modal-body .prompt-detail-content::-webkit-scrollbar-thumb {
369
+ background-color: transparent;
370
+ border-radius: 3px;
371
+ transition: background-color 0.2s ease;
372
+ }
373
+
374
+ /* 滚动或悬停时显示滚动条 */
375
+ .recommended-prompt-modal-body .prompt-detail-content:active::-webkit-scrollbar-thumb,
376
+ .recommended-prompt-modal-body .prompt-detail-content:hover::-webkit-scrollbar-thumb {
377
+ background-color: #c5c5c5;
378
+ }
379
+
380
+ .recommended-prompt-modal-body .prompt-detail-content:active::-webkit-scrollbar-thumb:hover,
381
+ .recommended-prompt-modal-body .prompt-detail-content:hover::-webkit-scrollbar-thumb:hover {
382
+ background-color: #a0a0a0;
383
+ }
384
+
385
+ .recommended-prompt-modal-body .prompt-detail-content p {
386
+ margin: 0 0 16px 0;
387
+ }
388
+
389
+ .recommended-prompt-modal-body .prompt-detail-content p:last-child {
390
+ margin-bottom: 0;
391
+ }
392
+
393
+ .recommended-prompt-modal-footer {
394
+ padding: 16px 24px;
395
+ border-top: 1px solid #eee;
396
+ display: flex;
397
+ justify-content: flex-end;
398
+ gap: 12px;
399
+ background: #fafafa;
400
+ margin-top: auto;
401
+ }
402
+
403
+ .sync-to-my-prompts-btn {
404
+ background: #393939;
405
+ color: white;
406
+ border: none;
407
+ border-radius: 8px;
408
+ padding: 10px 20px;
409
+ font-size: 14px;
410
+ font-weight: 500;
411
+ cursor: pointer;
412
+ transition: all 0.2s ease;
413
+ display: flex;
414
+ align-items: center;
415
+ gap: 8px;
416
+ }
417
+
418
+ .sync-to-my-prompts-btn:hover {
419
+ background: #222;
420
+ transform: translateY(-1px);
421
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
422
+ }
423
+
424
+ .sync-to-my-prompts-btn svg {
425
+ color: #ffffff;
426
+ stroke: #ffffff;
427
+ }
428
+
429
+ /* 同步到我的提示词弹窗样式 */
430
+ .sync-prompt-modal {
431
+ position: fixed;
432
+ inset: 0;
433
+ background: rgba(0, 0, 0, 0.5);
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ z-index: 2100;
438
+ opacity: 0;
439
+ visibility: hidden;
440
+ transition: all 0.3s ease;
441
+ }
442
+
443
+ .sync-prompt-modal.active {
444
+ opacity: 1;
445
+ visibility: visible;
446
+ }
447
+
448
+ .sync-prompt-modal-content {
449
+ width: 90%;
450
+ max-width: 500px;
451
+ background: white;
452
+ border-radius: 16px;
453
+ overflow: hidden;
454
+ transform: translateY(20px);
455
+ transition: transform 0.3s ease;
456
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
457
+ }
458
+
459
+ .sync-prompt-modal.active .sync-prompt-modal-content {
460
+ transform: translateY(0);
461
+ }
462
+
463
+ .recommended-prompt-modal-header {
464
+ padding: 16px 24px;
465
+ display: flex;
466
+ justify-content: space-between;
467
+ align-items: center;
468
+ background: #fafafa;
469
+ border-bottom: 1px solid #eee;
470
+ }
471
+
472
+ .recommended-prompt-modal-header h3 {
473
+ font-size: 18px;
474
+ font-weight: 600;
475
+ color: #333;
476
+ margin: 0;
477
+ display: flex;
478
+ align-items: center;
479
+ gap: 8px;
480
+ }
481
+
482
+ .sync-prompt-modal-header {
483
+ padding: 16px 24px;
484
+ display: flex;
485
+ justify-content: space-between;
486
+ align-items: center;
487
+ background: #fafafa;
488
+ border-bottom: 1px solid #eee;
489
+ }
490
+
491
+ .sync-prompt-modal-header h3 {
492
+ font-size: 18px;
493
+ font-weight: 600;
494
+ color: #333;
495
+ margin: 0;
496
+ display: flex;
497
+ align-items: center;
498
+ gap: 8px;
499
+ }
500
+
501
+ .sync-prompt-modal-header h3 {
502
+ font-size: 18px;
503
+ font-weight: 600;
504
+ color: #333;
505
+ margin: 0;
506
+ display: flex;
507
+ align-items: center;
508
+ gap: 8px;
509
+ }
510
+
511
+ .recommended-prompt-modal-close {
512
+ width: 32px;
513
+ height: 32px;
514
+ border: none;
515
+ background: transparent;
516
+ border-radius: 8px;
517
+ color: #666;
518
+ cursor: pointer;
519
+ display: flex;
520
+ align-items: center;
521
+ justify-content: center;
522
+ transition: all 0.2s ease;
523
+ }
524
+
525
+ .recommended-prompt-modal-close:hover {
526
+ background: #f0f0f0;
527
+ color: #333;
528
+ }
529
+
530
+ .sync-prompt-modal-close {
531
+ width: 32px;
532
+ height: 32px;
533
+ border: none;
534
+ background: transparent;
535
+ border-radius: 8px;
536
+ color: #666;
537
+ cursor: pointer;
538
+ display: flex;
539
+ align-items: center;
540
+ justify-content: center;
541
+ transition: all 0.2s ease;
542
+ }
543
+
544
+ .sync-prompt-modal-close:hover {
545
+ background: #f0f0f0;
546
+ color: #333;
547
+ }
548
+
549
+ .sync-prompt-modal-body {
550
+ padding: 24px;
551
+ }
552
+
553
+ .sync-prompt-form .form-group {
554
+ margin-bottom: 20px;
555
+ }
556
+
557
+ .sync-prompt-form label {
558
+ display: block;
559
+ margin-bottom: 8px;
560
+ font-size: 14px;
561
+ font-weight: 500;
562
+ color: #333;
563
+ }
564
+
565
+ .sync-prompt-form select {
566
+ width: 100%;
567
+ padding: 12px 16px;
568
+ border: 1px solid #e0e0e0;
569
+ border-radius: 8px;
570
+ font-size: 14px;
571
+ background: white;
572
+ transition: all 0.2s ease;
573
+ }
574
+
575
+ .sync-prompt-form input {
576
+ width: 100%;
577
+ padding: 12px 16px;
578
+ border: 1px solid #e0e0e0;
579
+ border-radius: 8px;
580
+ font-size: 14px;
581
+ background: white;
582
+ transition: all 0.2s ease;
583
+ }
584
+
585
+ .sync-prompt-form input:focus,
586
+ .sync-prompt-form select:focus {
587
+ outline: none;
588
+ border-color: #393939;
589
+ box-shadow: 0 0 0 3px rgba(57, 57, 57, 0.1);
590
+ }
591
+
592
+ .sync-prompt-form select:focus {
593
+ outline: none;
594
+ border-color: #393939;
595
+ box-shadow: 0 0 0 3px rgba(57, 57, 57, 0.1);
596
+ }
597
+
598
+ .sync-prompt-modal-footer {
599
+ padding: 16px 24px;
600
+ border-top: 1px solid #eee;
601
+ display: flex;
602
+ justify-content: flex-end;
603
+ gap: 12px;
604
+ background: #fafafa;
605
+ }
606
+
607
+ /* 滚动动画 */
608
+ .recommended-prompts-list.sliding {
609
+ transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
610
+ }