@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,25 @@
1
+ export class TerminalView {
2
+ static getHTML() {
3
+ return `
4
+ <div id="terminalArea" class="terminal-area" style="display: none;">
5
+ <!-- 终端内容区域 -->
6
+ <div class="terminal-content">
7
+ <div class="terminal-output" id="terminalOutput">
8
+ <div class="terminal-welcome">
9
+ <div class="welcome-icon">🚀</div>
10
+ <div class="welcome-text">欢迎使用终端</div>
11
+ <div class="welcome-hint">输入命令并按回车键执行</div>
12
+ </div>
13
+ </div>
14
+ <div class="terminal-input-area">
15
+ <div class="terminal-prompt">
16
+ <span class="prompt-symbol">~/ $</span>
17
+ <input type="text" id="terminalInput" placeholder="输入命令..." autocomplete="off" />
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ `;
23
+ }
24
+ }
25
+
@@ -0,0 +1,23 @@
1
+ export class ToolDetailModal {
2
+ static getHTML() {
3
+ return `
4
+ <div id="toolDetailModal" class="tool-detail-modal">
5
+ <div class="tool-detail-content">
6
+ <div class="tool-detail-header">
7
+ <h2 class="tool-detail-title" id="toolDetailName">工具详情</h2>
8
+ <button class="tool-detail-close" id="toolDetailClose" aria-label="关闭">×</button>
9
+ </div>
10
+ <div class="tool-detail-body">
11
+ <div class="tool-detail-info" id="toolDetailInfo">
12
+ <!-- 工具基本信息将通过JavaScript动态加载 -->
13
+ </div>
14
+ <div class="tool-detail-markdown" id="toolDetailContent">
15
+ <div class="tool-detail-loading"></div>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ `;
21
+ }
22
+ }
23
+
@@ -0,0 +1,119 @@
1
+ export class ToolsArea {
2
+ static getHTML() {
3
+ return `
4
+ <div id="toolsArea" class="tools-area" style="display: none;">
5
+ <!-- 工具页面头部 -->
6
+ <div class="tools-header">
7
+ <div class="tools-header-left">
8
+ <h2 class="tools-title">工具管理</h2>
9
+ <div class="tools-search">
10
+ <input type="text" id="toolsSearchInput" placeholder="搜索工具名称或描述..." />
11
+ <button type="button" class="search-clear-btn" id="toolsSearchClear" style="display: none;">
12
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
13
+ <line x1="18" y1="6" x2="6" y2="18"></line>
14
+ <line x1="6" y1="6" x2="18" y2="18"></line>
15
+ </svg>
16
+ </button>
17
+ </div>
18
+ </div>
19
+ <div class="tools-header-right">
20
+ <button type="button" class="btn btn-outline" id="toolsUploadBtn">
21
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
22
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
23
+ <polyline points="17 8 12 3 7 8"></polyline>
24
+ <line x1="12" y1="3" x2="12" y2="15"></line>
25
+ </svg>
26
+ 上传工具包
27
+ </button>
28
+ <div class="tools-filter">
29
+ <button type="button" class="filter-btn active" data-filter="all">
30
+ 全部
31
+ </button>
32
+ <button type="button" class="filter-btn" data-filter="category">
33
+ 类别
34
+ </button>
35
+ <button type="button" class="filter-btn" data-filter="tag">
36
+ 标签
37
+ </button>
38
+ <button type="button" class="filter-btn" data-filter="author">
39
+ 作者
40
+ </button>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- 工具内容区域 -->
46
+ <div class="tools-content">
47
+ <!-- 工具网格视图 -->
48
+ <div class="tools-grid" id="toolsGrid">
49
+ <!-- 工具卡片将通过JavaScript动态加载 -->
50
+ </div>
51
+
52
+ <!-- 聚合视图(类别、标签、作者) -->
53
+ <div class="tools-aggregated-view" id="toolsAggregatedView" style="display: none;">
54
+ <!-- 类别聚合视图 -->
55
+ <div class="aggregated-view" id="categoryView" style="display: none;">
56
+ <div class="aggregated-sidebar">
57
+ <div class="aggregated-sidebar-header">
58
+ <h3>类别列表</h3>
59
+ </div>
60
+ <div class="aggregated-sidebar-list" id="categorySidebar">
61
+ <!-- 类别列表将通过JavaScript动态加载 -->
62
+ </div>
63
+ </div>
64
+ <div class="aggregated-content">
65
+ <div class="aggregated-content-header" id="categoryContentHeader">
66
+ <h3>请选择类别</h3>
67
+ </div>
68
+ <div class="aggregated-content-grid" id="categoryContentGrid">
69
+ <!-- 选中类别的工具将通过JavaScript动态加载 -->
70
+ </div>
71
+ </div>
72
+ </div>
73
+
74
+ <!-- 标签聚合视图 -->
75
+ <div class="aggregated-view" id="tagView" style="display: none;">
76
+ <div class="aggregated-header">
77
+ <h3>按标签浏览</h3>
78
+ </div>
79
+ <div class="tag-cloud" id="tagCloud">
80
+ <!-- 标签将通过JavaScript动态加载 -->
81
+ </div>
82
+ <div class="tag-tools-list" id="tagToolsList">
83
+ <!-- 标签对应的工具列表将通过JavaScript动态加载 -->
84
+ </div>
85
+ </div>
86
+
87
+ <!-- 作者聚合视图 -->
88
+ <div class="aggregated-view" id="authorView" style="display: none;">
89
+ <div class="aggregated-sidebar">
90
+ <div class="aggregated-sidebar-header">
91
+ <h3>作者列表</h3>
92
+ </div>
93
+ <div class="aggregated-sidebar-list" id="authorSidebar">
94
+ <!-- 作者列表将通过JavaScript动态加载 -->
95
+ </div>
96
+ </div>
97
+ <div class="aggregated-content">
98
+ <div class="aggregated-content-header" id="authorContentHeader">
99
+ <h3>请选择作者</h3>
100
+ </div>
101
+ <div class="aggregated-content-grid" id="authorContentGrid">
102
+ <!-- 选中作者的工具将通过JavaScript动态加载 -->
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+
108
+ <!-- 空状态 -->
109
+ <div class="tools-empty" id="toolsEmpty" style="display: none;">
110
+ <div class="tools-empty-icon">🔧</div>
111
+ <div class="tools-empty-text">暂无工具</div>
112
+ <div class="tools-empty-hint">请上传工具包或添加工具</div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ `;
117
+ }
118
+ }
119
+
@@ -0,0 +1,59 @@
1
+ export class ToolsUploadModal {
2
+ static getHTML() {
3
+ return `
4
+ <div id="toolsUploadModal" class="modal hidden">
5
+ <div class="modal-dialog">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <h3>上传工具包</h3>
9
+ <button type="button" class="modal-close" id="toolsUploadCloseBtn">
10
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none">
11
+ <path d="M15 5L5 15M5 5L15 15" stroke="currentColor" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
12
+ </svg>
13
+ </button>
14
+ </div>
15
+ <div class="modal-body">
16
+ <div class="upload-area" id="uploadArea">
17
+ <div class="upload-content">
18
+ <div class="upload-icon">
19
+ <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
20
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
21
+ <polyline points="17 8 12 3 7 8"></polyline>
22
+ <line x1="12" y1="3" x2="12" y2="15"></line>
23
+ </svg>
24
+ </div>
25
+ <div class="upload-text">
26
+ <p class="upload-title">拖拽ZIP文件到此处或点击选择</p>
27
+ <p class="upload-subtitle">支持包含 README.md 和 {tool_name}.tool.js 的ZIP格式工具包</p>
28
+ </div>
29
+ <input type="file" id="fileInput" accept=".zip" style="display: none;" />
30
+ <button type="button" class="btn btn-outline" id="selectFileBtn">选择文件</button>
31
+ </div>
32
+ <div class="upload-progress" id="uploadProgress" style="display: none;">
33
+ <div class="progress-bar">
34
+ <div class="progress-fill" id="progressFill"></div>
35
+ </div>
36
+ <div class="progress-text" id="progressText">上传中...</div>
37
+ </div>
38
+ </div>
39
+ <div class="upload-requirements">
40
+ <h4>工具包要求:</h4>
41
+ <ul>
42
+ <li>文件格式:.zip</li>
43
+ <li>必须包含:README.md 文件</li>
44
+ <li>必须包含:{tool_name}.tool.js 文件</li>
45
+ <li>文件名不支持中文和特殊字符</li>
46
+ </ul>
47
+ </div>
48
+ </div>
49
+ <div class="modal-footer">
50
+ <button type="button" class="btn btn-light" id="toolsUploadCancelBtn">取消</button>
51
+ <button type="button" class="btn btn-primary" id="toolsUploadConfirmBtn" disabled>上传</button>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ `;
57
+ }
58
+ }
59
+