@blueking/ai-ui-sdk 0.4.3-beta.10 → 0.4.3-beta.13

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 (216) hide show
  1. package/README.md +2258 -2258
  2. package/dist/assets/svg/lock.svg +43 -43
  3. package/dist/common/util.ts.js +103 -103
  4. package/dist/components/{render-card/agent/actions.script.vue.js.js → render-agent/action/index.script.vue.js.js} +33 -9
  5. package/dist/components/{render-card/agent/actions.vue.d.ts → render-agent/action/index.vue.d.ts} +1 -0
  6. package/dist/components/render-agent/action/index.vue.js +3 -0
  7. package/dist/components/render-agent/agent-download.vue.css +2 -2
  8. package/dist/components/render-agent/agent-share.script.vue.js.js +8 -5
  9. package/dist/components/render-agent/agent-share.vue.d.ts +1 -0
  10. package/dist/components/render-agent/agent-type.script.vue.js.js +3 -9
  11. package/dist/components/render-agent/agent-type.vue.css +9 -13
  12. package/dist/components/render-agent/agent-type.vue.d.ts +1 -1
  13. package/dist/components/render-agent/agent-type.vue.js +1 -1
  14. package/dist/components/render-auth/auth-dialog.script.vue.js.js +6 -3
  15. package/dist/components/render-auth/auth-dialog.vue.css +2 -2
  16. package/dist/components/render-auto-height-textarea/index.vue.css +26 -26
  17. package/dist/components/render-auto-height-textarea/index.vue.js +1 -1
  18. package/dist/components/render-auto-refresh/index.vue.css +30 -30
  19. package/dist/components/render-auto-refresh/index.vue.js +1 -1
  20. package/dist/components/render-card/agent/index.script.vue.js.js +55 -22
  21. package/dist/components/render-card/agent/index.vue.d.ts +4 -2
  22. package/dist/components/render-card/agent/prefix-info-tool.vue.css +18 -18
  23. package/dist/components/render-card/agent/prefix-info-tool.vue.js +1 -1
  24. package/dist/components/render-card/base/application-base-actions.script.vue.js.js +1 -1
  25. package/dist/components/render-card/base/collection-icon.script.vue.js.js +149 -0
  26. package/dist/components/render-card/base/collection-icon.vue.d.ts +20 -0
  27. package/dist/components/render-card/base/collection-icon.vue.js +3 -0
  28. package/dist/components/render-card/base.vue.css +30 -30
  29. package/dist/components/render-card/base.vue.js +1 -1
  30. package/dist/components/render-card/knowledge/index.vue.d.ts +1 -1
  31. package/dist/components/render-card/knowledgebase/index.vue.d.ts +1 -1
  32. package/dist/components/render-card/llm/actions.script.vue.js.js +15 -3
  33. package/dist/components/render-card/llm/actions.vue.d.ts +1 -0
  34. package/dist/components/render-card/llm/corner-badge.vue.css +12 -12
  35. package/dist/components/render-card/llm/corner-badge.vue.js +1 -1
  36. package/dist/components/render-card/llm/icons.vue.css +3 -3
  37. package/dist/components/render-card/llm/icons.vue.js +1 -1
  38. package/dist/components/render-card/llm/index.script.vue.js.js +9 -8
  39. package/dist/components/render-card/llm/index.vue.d.ts +1 -1
  40. package/dist/components/render-card/llm/info.vue.css +8 -8
  41. package/dist/components/render-card/llm/info.vue.js +1 -1
  42. package/dist/components/render-card/llm/tag-prefix.script.vue.js.js +18 -14
  43. package/dist/components/render-card/llm/tag-prefix.vue.css +5 -8
  44. package/dist/components/render-card/llm/tag-prefix.vue.d.ts +4 -1
  45. package/dist/components/render-card/llm/tag-prefix.vue.js +1 -1
  46. package/dist/components/render-card/mcp/actions.script.vue.js.js +35 -7
  47. package/dist/components/render-card/mcp/actions.vue.d.ts +1 -0
  48. package/dist/components/render-card/mcp/index.script.vue.js.js +35 -9
  49. package/dist/components/render-card/mcp/index.vue.d.ts +5 -4
  50. package/dist/components/render-card/mcp/name-suffix.vue.css +7 -7
  51. package/dist/components/render-card/mcp/name-suffix.vue.js +1 -1
  52. package/dist/components/render-card/mcp/selected-tools-info.script.vue.js.js +3 -7
  53. package/dist/components/render-card/mcp/selected-tools-info.vue.d.ts +1 -2
  54. package/dist/components/render-card/prompt/icons.vue.css +2 -2
  55. package/dist/components/render-card/prompt/icons.vue.js +1 -1
  56. package/dist/components/render-card/prompt/index.script.vue.js.js +48 -14
  57. package/dist/components/render-card/prompt/index.vue.d.ts +4 -2
  58. package/dist/components/render-card/role/index.script.vue.js.js +53 -20
  59. package/dist/components/render-card/role/index.vue.d.ts +4 -2
  60. package/dist/components/render-card/skill/index.script.vue.js.js +58 -24
  61. package/dist/components/render-card/skill/index.vue.d.ts +8 -4
  62. package/dist/components/render-card/skill/scanner.script.vue.js.js +66 -0
  63. package/dist/components/render-card/skill/{tag-prefix.vue.css → scanner.vue.css} +7 -7
  64. package/dist/components/render-card/skill/scanner.vue.d.ts +11 -0
  65. package/dist/components/render-card/skill/scanner.vue.js +5 -0
  66. package/dist/components/render-card/skill/tag-prefix.script.vue.js.js +11 -50
  67. package/dist/components/render-card/skill/tag-prefix.vue.js +0 -2
  68. package/dist/components/render-card/tool/actions.script.vue.js.js +26 -4
  69. package/dist/components/render-card/tool/actions.vue.d.ts +1 -0
  70. package/dist/components/render-card/tool/index.script.vue.js.js +53 -20
  71. package/dist/components/render-card/tool/index.vue.d.ts +4 -2
  72. package/dist/components/render-checkbox/index.vue.css +41 -41
  73. package/dist/components/render-checkbox/index.vue.js +1 -1
  74. package/dist/components/render-choose-tag/index.vue.css +29 -29
  75. package/dist/components/render-choose-tag/index.vue.js +1 -1
  76. package/dist/components/render-collapse/index.vue.css +6 -6
  77. package/dist/components/render-collapse/index.vue.js +1 -1
  78. package/dist/components/render-collection/actions/index.script.vue.js.js +22 -4
  79. package/dist/components/render-collection/actions/index.vue.d.ts +1 -0
  80. package/dist/components/render-collection/content/index.vue.css +15 -15
  81. package/dist/components/render-collection/content/index.vue.js +1 -1
  82. package/dist/components/render-dataset/components/batch-delete-dataset-data/index.vue.css +10 -10
  83. package/dist/components/render-dataset/components/batch-delete-dataset-data/index.vue.js +1 -1
  84. package/dist/components/render-dataset/components/dataset-data-tool-icons/index.script.vue.js +1 -1
  85. package/dist/components/render-dataset/components/edit-dataset-data/index.vue.css +9 -9
  86. package/dist/components/render-dataset/components/edit-dataset-data/index.vue.js +1 -1
  87. package/dist/components/render-dataset/components/operation-record/index.vue.css +10 -10
  88. package/dist/components/render-dataset/components/operation-record/index.vue.js +1 -1
  89. package/dist/components/render-dataset/components/operation-record/table/index.vue.css +8 -8
  90. package/dist/components/render-dataset/components/operation-record/table/index.vue.js +1 -1
  91. package/dist/components/render-dataset/components/operation-record/view-op-result/index.vue.css +8 -8
  92. package/dist/components/render-dataset/components/operation-record/view-op-result/index.vue.js +1 -1
  93. package/dist/components/render-dataset/components/plus-dataset/index.vue.css +2 -2
  94. package/dist/components/render-dataset/components/plus-dataset/index.vue.js +1 -1
  95. package/dist/components/render-dataset/components/plus-dataset-data/form/api.vue.css +6 -6
  96. package/dist/components/render-dataset/components/plus-dataset-data/form/api.vue.js +1 -1
  97. package/dist/components/render-dataset/components/plus-dataset-data/form/footer.vue.css +3 -3
  98. package/dist/components/render-dataset/components/plus-dataset-data/form/footer.vue.js +1 -1
  99. package/dist/components/render-dataset/components/plus-dataset-data/form/index.vue.css +2 -2
  100. package/dist/components/render-dataset/components/plus-dataset-data/form/index.vue.js +1 -1
  101. package/dist/components/render-dataset/components/plus-dataset-data/form/manual.vue.css +4 -4
  102. package/dist/components/render-dataset/components/review-dataset-data/index.vue.css +21 -21
  103. package/dist/components/render-dataset/components/review-dataset-data/index.vue.js +1 -1
  104. package/dist/components/render-dataset-detail-origin-data/index.vue.css +9 -9
  105. package/dist/components/render-dataset-detail-origin-data/index.vue.js +1 -1
  106. package/dist/components/render-dataset-list/components/main.vue.css +9 -9
  107. package/dist/components/render-dataset-list/components/main.vue.js +1 -1
  108. package/dist/components/render-dataset-list/index.vue.css +4 -4
  109. package/dist/components/render-dataset-list/index.vue.js +1 -1
  110. package/dist/components/render-dialog/choose-resource.vue.css +4 -4
  111. package/dist/components/render-dialog/choose-resource.vue.js +1 -1
  112. package/dist/components/render-dialog/choose-result.vue.css +31 -31
  113. package/dist/components/render-dialog/choose-result.vue.js +1 -1
  114. package/dist/components/render-dialog/choose-space.vue.css +18 -18
  115. package/dist/components/render-dialog/choose-space.vue.js +1 -1
  116. package/dist/components/render-dialog/index.vue.css +12 -12
  117. package/dist/components/render-dialog/index.vue.js +1 -1
  118. package/dist/components/render-dropdown/index.vue.css +15 -18
  119. package/dist/components/render-dropdown/index.vue.d.ts +5 -5
  120. package/dist/components/render-file-card/index.vue.css +28 -28
  121. package/dist/components/render-file-card/index.vue.d.ts +1 -1
  122. package/dist/components/render-file-card/index.vue.js +1 -1
  123. package/dist/components/render-file-type-icon/index.vue.css +7 -7
  124. package/dist/components/render-file-type-icon/index.vue.js +1 -1
  125. package/dist/components/render-generate-tag/index.vue.css +12 -12
  126. package/dist/components/render-generate-tag/index.vue.d.ts +1 -1
  127. package/dist/components/render-generate-tag/index.vue.js +1 -1
  128. package/dist/components/render-knowledge/icon/index.vue.css +2 -2
  129. package/dist/components/render-knowledge/icon/index.vue.js +1 -1
  130. package/dist/components/render-markdown/edit.d.ts +1 -1
  131. package/dist/components/render-markdown/edit.postcss.css +92 -92
  132. package/dist/components/render-markdown/katex.ts.js +8 -8
  133. package/dist/components/render-markdown/prism-atom-one-dark.postcss.css +192 -192
  134. package/dist/components/render-markdown/view.d.ts +1 -1
  135. package/dist/components/render-markdown/view.postcss.css +99 -99
  136. package/dist/components/render-permission-tag/index.vue.css +2 -2
  137. package/dist/components/render-prompt/actions/index.script.vue.js.js +22 -4
  138. package/dist/components/render-prompt/actions/index.vue.d.ts +1 -0
  139. package/dist/components/render-prompt/content/index.vue.css +5 -5
  140. package/dist/components/render-prompt/content/index.vue.js +1 -1
  141. package/dist/components/render-reference/index.vue.css +4 -4
  142. package/dist/components/render-reference/index.vue.js +1 -1
  143. package/dist/components/render-relate-agent/index.script.vue.js +8 -6
  144. package/dist/components/render-relate-agent/index.vue.d.ts +2 -2
  145. package/dist/components/render-resource-version/index.script.vue.js.js +6 -3
  146. package/dist/components/render-resource-version/index.vue.css +7 -7
  147. package/dist/components/render-resource-version/index.vue.d.ts +1 -1
  148. package/dist/components/render-resource-version/index.vue.js +1 -1
  149. package/dist/components/render-router-tab/index.vue.css +15 -15
  150. package/dist/components/render-router-tab/index.vue.js +1 -1
  151. package/dist/components/render-search-empty/index.script.vue.js.js +3 -2
  152. package/dist/components/render-search-empty/index.vue.d.ts +1 -1
  153. package/dist/components/render-search-select/index.vue.d.ts +1 -1
  154. package/dist/components/render-select-plus-extension/index.vue.css +11 -11
  155. package/dist/components/render-select-plus-extension/index.vue.js +1 -1
  156. package/dist/components/render-skill/actions/index.script.vue.js.js +38 -7
  157. package/dist/components/render-skill/actions/index.vue.d.ts +3 -2
  158. package/dist/components/render-t-table/index.script.vue.js +32 -12
  159. package/dist/components/render-t-table/index.vue.css +117 -117
  160. package/dist/components/render-t-table/index.vue.d.ts +1 -1
  161. package/dist/components/render-t-table/index.vue.js +1 -1
  162. package/dist/components/render-tag-tree/index.vue.css +17 -17
  163. package/dist/components/render-tag-tree/index.vue.js +1 -1
  164. package/dist/components/render-tags/index.script.vue.js +6 -6
  165. package/dist/components/render-tags/index.vue.css +12 -12
  166. package/dist/components/render-tags/index.vue.d.ts +1 -1
  167. package/dist/components/render-tags/index.vue.js +1 -1
  168. package/dist/components/render-tree/index.vue.css +12 -12
  169. package/dist/components/render-tree/index.vue.d.ts +1 -1
  170. package/dist/components.d.ts +15 -1
  171. package/dist/components.ts.js +15 -1
  172. package/dist/css/fonts/iconcool.svg +268 -268
  173. package/dist/css/g-utilities.css +39 -16
  174. package/dist/css/g-utilities.manifest.json +7 -0
  175. package/dist/css/style.css +259 -259
  176. package/dist/hooks/use-agent-http.d.ts +2 -0
  177. package/dist/hooks/use-agent-http.ts.js +15 -1
  178. package/dist/hooks/use-collection-http.d.ts +2 -0
  179. package/dist/hooks/use-collection-http.ts.js +15 -1
  180. package/dist/hooks/use-ellipsis-tooltip.ts.js +28 -28
  181. package/dist/hooks/use-loading-version.ts.js +4 -4
  182. package/dist/hooks/use-market-http.d.ts +10 -0
  183. package/dist/hooks/use-market-http.ts.js +71 -1
  184. package/dist/hooks/use-mcp-http.d.ts +2 -0
  185. package/dist/hooks/use-mcp-http.ts.js +15 -1
  186. package/dist/hooks/use-prompt-http.d.ts +2 -0
  187. package/dist/hooks/use-prompt-http.ts.js +15 -1
  188. package/dist/hooks/use-skill-http.d.ts +2 -0
  189. package/dist/hooks/use-skill-http.ts.js +15 -1
  190. package/dist/hooks/use-t-table.d.ts +11 -5
  191. package/dist/hooks/use-t-table.ts.js +25 -3
  192. package/dist/hooks/use-tool-http.d.ts +2 -0
  193. package/dist/hooks/use-tool-http.ts.js +15 -1
  194. package/dist/http/helper/agent.ts.js +46 -47
  195. package/dist/http/helper/collection.ts.js +14 -13
  196. package/dist/http/helper/common.d.ts +1 -1
  197. package/dist/http/helper/common.ts.js +48 -44
  198. package/dist/http/helper/dataset.ts.js +76 -76
  199. package/dist/http/helper/knowledge.ts.js +45 -45
  200. package/dist/http/helper/mcp.ts.js +42 -38
  201. package/dist/http/helper/permission.ts.js +12 -12
  202. package/dist/http/helper/prompt.ts.js +14 -13
  203. package/dist/http/helper/skill.ts.js +28 -24
  204. package/dist/http/helper/space.ts.js +24 -24
  205. package/dist/http/helper/tool.ts.js +26 -22
  206. package/dist/types/agent.d.ts +3 -3
  207. package/dist/types/collection.d.ts +3 -1
  208. package/dist/types/common.d.ts +4 -0
  209. package/dist/types/enum.d.ts +5 -7
  210. package/dist/types/enum.ts.js +3 -6
  211. package/dist/types/mcp.d.ts +4 -0
  212. package/dist/types/prompt.d.ts +3 -1
  213. package/dist/types/skill.d.ts +4 -0
  214. package/dist/types/tool.d.ts +4 -0
  215. package/package.json +112 -112
  216. package/dist/components/render-card/agent/actions.vue.js +0 -3
@@ -134,6 +134,18 @@ export const useAgentHttp = (apiPrefix, spaceId)=>{
134
134
  'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
135
135
  }
136
136
  }).then(transferAgentApigwMcpPermissionApi2AgentApigwMcpPermission);
137
+ // 添加收藏
138
+ const addAgentFavorite = (id)=>fetch.post(`${apiPrefix}/agent/v1/agent/${id}/add_favorite/`, undefined, {
139
+ headers: {
140
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
141
+ }
142
+ });
143
+ // 取消收藏
144
+ const removeAgentFavorite = (id)=>fetch.delete(`${apiPrefix}/agent/v1/agent/${id}/remove_favorite/`, undefined, {
145
+ headers: {
146
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
147
+ }
148
+ });
137
149
  return {
138
150
  getAgentList,
139
151
  getAgent,
@@ -145,6 +157,8 @@ export const useAgentHttp = (apiPrefix, spaceId)=>{
145
157
  resourceApply,
146
158
  getAgentCount,
147
159
  getAgentReferringAgents,
148
- getAgentMcpPermission
160
+ getAgentMcpPermission,
161
+ addAgentFavorite,
162
+ removeAgentFavorite
149
163
  };
150
164
  };
@@ -16,4 +16,6 @@ export declare const useCollectionHttp: (apiPrefix: string, spaceId?: Ref<string
16
16
  getCollectionReferringAgents: (collectionId: number) => Promise<import("@/types").IReferringAgent[]>;
17
17
  parseCollection: (collectionId: number, variables: IVariableApi[], model_name: string) => Promise<IContent[]>;
18
18
  parseCollectionVariable: (llm: string, session_id: string, contents: IContent[]) => Promise<IContent[]>;
19
+ addCollectionFavorite: (id: number) => Promise<unknown>;
20
+ removeCollectionFavorite: (id: number) => Promise<unknown>;
19
21
  };
@@ -105,6 +105,18 @@ export const useCollectionHttp = (apiPrefix, spaceId)=>{
105
105
  'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
106
106
  }
107
107
  });
108
+ // 添加收藏
109
+ const addCollectionFavorite = (id)=>fetch.post(`${apiPrefix}/collection/v1/collection/${id}/add_favorite/`, undefined, {
110
+ headers: {
111
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
112
+ }
113
+ });
114
+ // 取消收藏
115
+ const removeCollectionFavorite = (id)=>fetch.delete(`${apiPrefix}/collection/v1/collection/${id}/remove_favorite/`, undefined, {
116
+ headers: {
117
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
118
+ }
119
+ });
108
120
  return {
109
121
  getCollections,
110
122
  getCollectionCount,
@@ -112,6 +124,8 @@ export const useCollectionHttp = (apiPrefix, spaceId)=>{
112
124
  restoreCollection,
113
125
  getCollectionReferringAgents,
114
126
  parseCollection,
115
- parseCollectionVariable
127
+ parseCollectionVariable,
128
+ addCollectionFavorite,
129
+ removeCollectionFavorite
116
130
  };
117
131
  };
@@ -11,34 +11,34 @@ export const useEllipsisTooltip = ()=>{
11
11
  };
12
12
  const handleInitStyle = ()=>{
13
13
  const style = document.createElement('style');
14
- style.textContent = `
15
- .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content {
16
- font-size: 12px !important;
17
- padding: 7px 14px !important;
18
- white-space: pre-wrap !important;
19
- max-height: 400px;
20
- overflow-y: auto;
21
- }
22
- .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content::-webkit-scrollbar {
23
- width: 6px;
24
- height: 6px;
25
- }
26
- .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content::-webkit-scrollbar-thumb {
27
- width: 6px;
28
- height: 6px;
29
- border-radius: 3px;
30
- background-color: #dcdee5;
31
-
32
- &:hover {
33
- background-color: #979ba5;
34
- }
35
- }
36
- .tippy-box[data-theme~='ellipsis-tooltip'][data-placement^=top]>.tippy-arrow:before {
37
- bottom: -5px !important;
38
- }
39
- .tippy-box[data-theme~='ellipsis-tooltip'][data-placement^=bottom]>.tippy-arrow:before {
40
- top: -5px !important;
41
- }
14
+ style.textContent = `
15
+ .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content {
16
+ font-size: 12px !important;
17
+ padding: 7px 14px !important;
18
+ white-space: pre-wrap !important;
19
+ max-height: 400px;
20
+ overflow-y: auto;
21
+ }
22
+ .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content::-webkit-scrollbar {
23
+ width: 6px;
24
+ height: 6px;
25
+ }
26
+ .tippy-box[data-theme~='ellipsis-tooltip'] .tippy-content::-webkit-scrollbar-thumb {
27
+ width: 6px;
28
+ height: 6px;
29
+ border-radius: 3px;
30
+ background-color: #dcdee5;
31
+
32
+ &:hover {
33
+ background-color: #979ba5;
34
+ }
35
+ }
36
+ .tippy-box[data-theme~='ellipsis-tooltip'][data-placement^=top]>.tippy-arrow:before {
37
+ bottom: -5px !important;
38
+ }
39
+ .tippy-box[data-theme~='ellipsis-tooltip'][data-placement^=bottom]>.tippy-arrow:before {
40
+ top: -5px !important;
41
+ }
42
42
  `;
43
43
  document.head.appendChild(style);
44
44
  };
@@ -1,8 +1,8 @@
1
1
  import { ref } from 'vue';
2
- /**
3
- * 解决 abort + loading 的竞态问题:
4
- * 当快速连续调用时,前一次请求被 abort 后其 finally 会错误地将 loading 设为 false,
5
- * 而新请求仍在进行中。通过版本号确保只有最新一次调用才能结束 loading 状态。
2
+ /**
3
+ * 解决 abort + loading 的竞态问题:
4
+ * 当快速连续调用时,前一次请求被 abort 后其 finally 会错误地将 loading 设为 false,
5
+ * 而新请求仍在进行中。通过版本号确保只有最新一次调用才能结束 loading 状态。
6
6
  */ export const useLoadingVersion = ()=>{
7
7
  let version = 0;
8
8
  const loading = ref(false);
@@ -1,4 +1,14 @@
1
1
  import { Ref } from 'vue';
2
2
  export declare const useMarketHttp: (apiPrefix: string, spaceId?: Ref<string>) => {
3
3
  downloadMarketSkill: (id: number) => Promise<import("@/types/skill").ISkill>;
4
+ addMarketSkillFavorite: (id: number) => Promise<unknown>;
5
+ removeMarketSkillFavorite: (id: number) => Promise<unknown>;
6
+ addMarketToolFavorite: (id: number) => Promise<unknown>;
7
+ removeMarketToolFavorite: (id: number) => Promise<unknown>;
8
+ addMarketAgentFavorite: (id: number) => Promise<unknown>;
9
+ removeMarketAgentFavorite: (id: number) => Promise<unknown>;
10
+ addMarketPromptFavorite: (id: number) => Promise<unknown>;
11
+ removeMarketPromptFavorite: (id: number) => Promise<unknown>;
12
+ addMarketCollectionFavorite: (id: number) => Promise<unknown>;
13
+ removeMarketCollectionFavorite: (id: number) => Promise<unknown>;
4
14
  };
@@ -7,7 +7,77 @@ export const useMarketHttp = (apiPrefix, spaceId)=>{
7
7
  'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
8
8
  }
9
9
  }).then(transferSkillApi2Skill);
10
+ // 收藏 Skill(市场页)
11
+ const addMarketSkillFavorite = (id)=>fetch.post(`${apiPrefix}/market/v1/skill/${id}/add_favorite/`, undefined, {
12
+ headers: {
13
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
14
+ }
15
+ });
16
+ // 取消收藏 Skill(市场页)
17
+ const removeMarketSkillFavorite = (id)=>fetch.delete(`${apiPrefix}/market/v1/skill/${id}/remove_favorite/`, undefined, {
18
+ headers: {
19
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
20
+ }
21
+ });
22
+ // 收藏 Tool(市场页)
23
+ const addMarketToolFavorite = (id)=>fetch.post(`${apiPrefix}/market/v1/tool/${id}/add_favorite/`, undefined, {
24
+ headers: {
25
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
26
+ }
27
+ });
28
+ // 取消收藏 Tool(市场页)
29
+ const removeMarketToolFavorite = (id)=>fetch.delete(`${apiPrefix}/market/v1/tool/${id}/remove_favorite/`, undefined, {
30
+ headers: {
31
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
32
+ }
33
+ });
34
+ // 收藏 agent(市场页)
35
+ const addMarketAgentFavorite = (id)=>fetch.post(`${apiPrefix}/market/v1/agent/${id}/add_favorite/`, undefined, {
36
+ headers: {
37
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
38
+ }
39
+ });
40
+ // 取消收藏 agent(市场页)
41
+ const removeMarketAgentFavorite = (id)=>fetch.delete(`${apiPrefix}/market/v1/agent/${id}/remove_favorite/`, undefined, {
42
+ headers: {
43
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
44
+ }
45
+ });
46
+ // 收藏 prompt(市场页)
47
+ const addMarketPromptFavorite = (id)=>fetch.post(`${apiPrefix}/market/v1/prompt/${id}/add_favorite/`, undefined, {
48
+ headers: {
49
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
50
+ }
51
+ });
52
+ // 取消收藏 prompt(市场页)
53
+ const removeMarketPromptFavorite = (id)=>fetch.delete(`${apiPrefix}/market/v1/prompt/${id}/remove_favorite/`, undefined, {
54
+ headers: {
55
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
56
+ }
57
+ });
58
+ // 收藏 collection(市场页)
59
+ const addMarketCollectionFavorite = (id)=>fetch.post(`${apiPrefix}/market/v1/collection/${id}/add_favorite/`, undefined, {
60
+ headers: {
61
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
62
+ }
63
+ });
64
+ // 取消收藏 collection(市场页)
65
+ const removeMarketCollectionFavorite = (id)=>fetch.delete(`${apiPrefix}/market/v1/collection/${id}/remove_favorite/`, undefined, {
66
+ headers: {
67
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
68
+ }
69
+ });
10
70
  return {
11
- downloadMarketSkill
71
+ downloadMarketSkill,
72
+ addMarketSkillFavorite,
73
+ removeMarketSkillFavorite,
74
+ addMarketToolFavorite,
75
+ removeMarketToolFavorite,
76
+ addMarketAgentFavorite,
77
+ removeMarketAgentFavorite,
78
+ addMarketPromptFavorite,
79
+ removeMarketPromptFavorite,
80
+ addMarketCollectionFavorite,
81
+ removeMarketCollectionFavorite
12
82
  };
13
83
  };
@@ -18,4 +18,6 @@ export declare const useMcpHttp: (apiPrefix: string, spaceId?: Ref<string>) => {
18
18
  markdown: string;
19
19
  }>;
20
20
  getMcpInstallTargets: () => Promise<import("@/types").IMcpInstallTarget[]>;
21
+ addMcpFavorite: (id: number) => Promise<unknown>;
22
+ removeMcpFavorite: (id: number) => Promise<unknown>;
21
23
  };
@@ -105,6 +105,18 @@ export const useMcpHttp = (apiPrefix, spaceId)=>{
105
105
  'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
106
106
  }
107
107
  }).then((data)=>data.map(transferMcpInstallTargetApi2McpInstallTarget));
108
+ // 收藏 MCP
109
+ const addMcpFavorite = (id)=>fetch.post(`${apiPrefix}/mcp/v1/mcp/${id}/add_favorite/`, undefined, {
110
+ headers: {
111
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
112
+ }
113
+ });
114
+ // 取消收藏 MCP
115
+ const removeMcpFavorite = (id)=>fetch.delete(`${apiPrefix}/mcp/v1/mcp/${id}/remove_favorite/`, undefined, {
116
+ headers: {
117
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
118
+ }
119
+ });
108
120
  return {
109
121
  getMcpList,
110
122
  deleteMcp,
@@ -113,6 +125,8 @@ export const useMcpHttp = (apiPrefix, spaceId)=>{
113
125
  getMcpCount,
114
126
  getMcpReferringAgents,
115
127
  getMcpInstallGuide,
116
- getMcpInstallTargets
128
+ getMcpInstallTargets,
129
+ addMcpFavorite,
130
+ removeMcpFavorite
117
131
  };
118
132
  };
@@ -13,4 +13,6 @@ export declare const usePromptHttp: (apiPrefix: string, spaceId?: Ref<string>) =
13
13
  (param: import("@/types").IBaseCountParam): Promise<import("@/types").IResourceCount[]>;
14
14
  abort(): void;
15
15
  };
16
+ addPromptFavorite: (id: number) => Promise<unknown>;
17
+ removePromptFavorite: (id: number) => Promise<unknown>;
16
18
  };
@@ -87,11 +87,25 @@ export const usePromptHttp = (apiPrefix, spaceId)=>{
87
87
  },
88
88
  signal
89
89
  }).then((data)=>data.map(transferResourceCountApi2ResourceCount)));
90
+ // 添加收藏
91
+ const addPromptFavorite = (id)=>fetch.post(`${apiPrefix}/prompt/v1/prompt/${id}/add_favorite/`, undefined, {
92
+ headers: {
93
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
94
+ }
95
+ });
96
+ // 取消收藏
97
+ const removePromptFavorite = (id)=>fetch.delete(`${apiPrefix}/prompt/v1/prompt/${id}/remove_favorite/`, undefined, {
98
+ headers: {
99
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
100
+ }
101
+ });
90
102
  return {
91
103
  getPrompts,
92
104
  togglePromptLike,
93
105
  deletePrompt,
94
106
  restorePrompt,
95
- getPromptCount
107
+ getPromptCount,
108
+ addPromptFavorite,
109
+ removePromptFavorite
96
110
  };
97
111
  };
@@ -29,4 +29,6 @@ export declare const useSkillHttp: (apiPrefix: string, spaceId?: Ref<string>) =>
29
29
  (id: number, version: string): Promise<import("@/types/skill").ISkillBuildLog>;
30
30
  abort(): void;
31
31
  };
32
+ addSkillFavorite: (id: number) => Promise<unknown>;
33
+ removeSkillFavorite: (id: number) => Promise<unknown>;
32
34
  };
@@ -139,6 +139,18 @@ export const useSkillHttp = (apiPrefix, spaceId)=>{
139
139
  },
140
140
  signal
141
141
  }).then(transferSkillBuildLogApi2SkillBuildLog));
142
+ // 收藏 Skill
143
+ const addSkillFavorite = (id)=>fetch.post(`${apiPrefix}/skill/v1/skill/${id}/add_favorite/`, undefined, {
144
+ headers: {
145
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
146
+ }
147
+ });
148
+ // 取消收藏 Skill
149
+ const removeSkillFavorite = (id)=>fetch.delete(`${apiPrefix}/skill/v1/skill/${id}/remove_favorite/`, undefined, {
150
+ headers: {
151
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
152
+ }
153
+ });
142
154
  return {
143
155
  getSkillList,
144
156
  getSkillCount,
@@ -152,6 +164,8 @@ export const useSkillHttp = (apiPrefix, spaceId)=>{
152
164
  getSkillOpenclawWindowsInstancesStatus,
153
165
  installSkillToOpenclawWindows,
154
166
  getSkillOpenclawWindowsInstallTasksStatus,
155
- getSkillBuildLog
167
+ getSkillBuildLog,
168
+ addSkillFavorite,
169
+ removeSkillFavorite
156
170
  };
157
171
  };
@@ -1,13 +1,15 @@
1
+ import { type Ref } from 'vue';
1
2
  import type { IPagination, IPaginationParam, ISortParam, ITTableSort } from '@/types/common';
2
3
  import { OrderMethod } from '@/types/enum';
3
4
  interface IPaginatedApiResult<T> {
4
5
  results?: T;
5
6
  count?: number;
6
7
  }
8
+ type ITableRow<T> = T extends Array<infer E> ? E : T;
7
9
  export declare const useTTable: <T>() => {
8
- isLoading: import("vue").Ref<boolean, boolean>;
9
- initHook: (callBackFn: (search: IPaginationParam & ISortParam) => Promise<IPaginatedApiResult<T> | T>, isShowPagination: boolean) => void;
10
- sort: import("vue").Ref<{
10
+ isLoading: Ref<boolean, boolean>;
11
+ initHook: (callBackFn: (search: IPaginationParam & ISortParam) => Promise<IPaginatedApiResult<T> | T>, isShowPagination: boolean, key?: string) => void;
12
+ sort: Ref<{
11
13
  descending?: OrderMethod;
12
14
  sortKey?: string;
13
15
  }, ITTableSort | {
@@ -22,7 +24,7 @@ export declare const useTTable: <T>() => {
22
24
  };
23
25
  }) => Promise<void>;
24
26
  triggerApi: () => Promise<void>;
25
- pagination: import("vue").Ref<{
27
+ pagination: Ref<{
26
28
  current: number;
27
29
  limit: number;
28
30
  count: number;
@@ -32,8 +34,12 @@ export declare const useTTable: <T>() => {
32
34
  count: number;
33
35
  }>;
34
36
  resetPagination: () => void;
35
- tableData: [[] | T] extends [import("vue").Ref<any, any>] ? import("@vue/shared").IfAny<import("vue").Ref<any, any> & ([] | T), import("vue").Ref<import("vue").Ref<any, any> & ([] | T), import("vue").Ref<any, any> & ([] | T)>, import("vue").Ref<any, any> & ([] | T)> : import("vue").Ref<[] | import("vue").UnwrapRef<T>, [] | T | import("vue").UnwrapRef<T>>;
37
+ tableData: [[] | T] extends [Ref<any, any>] ? import("@vue/shared").IfAny<Ref<any, any> & ([] | T), Ref<Ref<any, any> & ([] | T), Ref<any, any> & ([] | T)>, Ref<any, any> & ([] | T)> : Ref<[] | import("vue").UnwrapRef<T>, [] | T | import("vue").UnwrapRef<T>>;
36
38
  handlePageChange: (current: number) => void;
37
39
  handlePageSizeChange: (pageSize: number) => void;
40
+ selectedRows: Ref<ITableRow<T>[], ITableRow<T>[]>;
41
+ selectedIds: Ref<(string | number)[], (string | number)[]>;
42
+ handleSelectionChange: (_keys: string | number | (string | number)[], selectedRowData: ITableRow<T>[]) => void;
43
+ handleClearSelection: () => void;
38
44
  };
39
45
  export {};
@@ -1,9 +1,10 @@
1
1
  import { ref } from 'vue';
2
2
  import { OrderMethod } from '../types/enum.ts.js';
3
3
  export const useTTable = ()=>{
4
+ const selectedRows = ref([]);
5
+ const selectedIds = ref([]);
4
6
  const isLoading = ref(false);
5
7
  const isPagination = ref(false);
6
- let callBack;
7
8
  const sort = ref({});
8
9
  const tableData = ref([]);
9
10
  const pagination = ref({
@@ -11,6 +12,9 @@ export const useTTable = ()=>{
11
12
  limit: 20,
12
13
  count: 0
13
14
  });
15
+ let callBack;
16
+ let rowKey = 'id';
17
+ const getRowKey = (row)=>row[rowKey];
14
18
  // 更新数据
15
19
  const triggerApi = ()=>{
16
20
  isLoading.value = true;
@@ -30,9 +34,10 @@ export const useTTable = ()=>{
30
34
  isLoading.value = false;
31
35
  });
32
36
  };
33
- const initHook = (callBackFn, isShowPagination)=>{
37
+ const initHook = (callBackFn, isShowPagination, key = 'id')=>{
34
38
  callBack = callBackFn;
35
39
  isPagination.value = isShowPagination;
40
+ rowKey = key;
36
41
  };
37
42
  // sortKey 为必传
38
43
  const handleSortChange = (config, { col })=>{
@@ -67,6 +72,19 @@ export const useTTable = ()=>{
67
72
  count: 0
68
73
  };
69
74
  };
75
+ const handleSelectionChange = (_keys, selectedRowData)=>{
76
+ const currentPageIds = tableData.value.map(getRowKey);
77
+ const otherPageRows = selectedRows.value.filter((row)=>!currentPageIds.includes(getRowKey(row)));
78
+ selectedRows.value = [
79
+ ...otherPageRows,
80
+ ...selectedRowData
81
+ ];
82
+ selectedIds.value = selectedRows.value.map(getRowKey);
83
+ };
84
+ const handleClearSelection = ()=>{
85
+ selectedRows.value = [];
86
+ selectedIds.value = [];
87
+ };
70
88
  return {
71
89
  isLoading,
72
90
  initHook,
@@ -77,6 +95,10 @@ export const useTTable = ()=>{
77
95
  resetPagination,
78
96
  tableData,
79
97
  handlePageChange,
80
- handlePageSizeChange
98
+ handlePageSizeChange,
99
+ selectedRows,
100
+ selectedIds,
101
+ handleSelectionChange,
102
+ handleClearSelection
81
103
  };
82
104
  };
@@ -13,4 +13,6 @@ export declare const useToolHttp: (apiPrefix: string, spaceId?: Ref<string>) =>
13
13
  abort(): void;
14
14
  };
15
15
  getToolReferringAgents: (toolId: number) => Promise<import("@/types").IReferringAgent[]>;
16
+ addToolFavorite: (id: number) => Promise<unknown>;
17
+ removeToolFavorite: (id: number) => Promise<unknown>;
16
18
  };
@@ -86,11 +86,25 @@ export const useToolHttp = (apiPrefix, spaceId)=>{
86
86
  'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
87
87
  }
88
88
  }).then((data)=>data.map(transferReferringAgentApi2ReferringAgent));
89
+ // 收藏 Tool
90
+ const addToolFavorite = (id)=>fetch.post(`${apiPrefix}/tool/v1/tool/${id}/add_favorite/`, undefined, {
91
+ headers: {
92
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
93
+ }
94
+ });
95
+ // 取消收藏 Tool
96
+ const removeToolFavorite = (id)=>fetch.delete(`${apiPrefix}/tool/v1/tool/${id}/remove_favorite/`, undefined, {
97
+ headers: {
98
+ 'x-space-id': spaceId === null || spaceId === void 0 ? void 0 : spaceId.value
99
+ }
100
+ });
89
101
  return {
90
102
  deleteTool,
91
103
  restoreTool,
92
104
  getTools,
93
105
  getToolCount,
94
- getToolReferringAgents
106
+ getToolReferringAgents,
107
+ addToolFavorite,
108
+ removeToolFavorite
95
109
  };
96
110
  };