lobster.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. import request from '@/utils/request'
  2. // ======== 工作流执行 (Instance) ========
  3. export function listInstances(params) {
  4. return request({ url: '/workflow/lobster-exec/instance/list', method: 'get', params })
  5. }
  6. export function getInstance(instanceId) {
  7. return request({ url: `/workflow/lobster-exec/instance/${instanceId}`, method: 'get' })
  8. }
  9. export function getNodeLogs(instanceId) {
  10. return request({ url: `/workflow/lobster-exec/node-logs/${instanceId}`, method: 'get' })
  11. }
  12. export function startWorkflow(params) {
  13. return request({ url: '/workflow/lobster-exec/start', method: 'post', params })
  14. }
  15. export function executeNextNode(params) {
  16. return request({ url: '/workflow/lobster-exec/next-node', method: 'post', params })
  17. }
  18. export function pauseInstance(instanceId) {
  19. return request({ url: `/workflow/lobster-exec/pause/${instanceId}`, method: 'post' })
  20. }
  21. export function resumeInstance(instanceId) {
  22. return request({ url: `/workflow/lobster-exec/resume/${instanceId}`, method: 'post' })
  23. }
  24. export function terminateInstance(instanceId, reason) {
  25. return request({ url: `/workflow/lobster-exec/terminate/${instanceId}`, method: 'post', params: { reason } })
  26. }
  27. export function getControlMode(instanceId) {
  28. return request({ url: `/workflow/lobster-exec/control-mode/${instanceId}`, method: 'get' })
  29. }
  30. export function setControlMode(instanceId, mode) {
  31. return request({ url: `/workflow/lobster-exec/control-mode/${instanceId}`, method: 'post', params: { mode } })
  32. }
  33. export function completeHandoff(instanceId, nextNodeCode) {
  34. return request({ url: `/workflow/lobster-exec/complete-handoff/${instanceId}`, method: 'post', params: { nextNodeCode } })
  35. }
  36. // ======== 合规规则 ========
  37. export function listComplianceRules() {
  38. return request({ url: '/workflow/lobster-exec/compliance-rules', method: 'get' })
  39. }
  40. export function addComplianceRule(data) {
  41. return request({ url: '/workflow/lobster-exec/compliance-rule', method: 'post', data })
  42. }
  43. export function updateComplianceRule(id, data) {
  44. return request({ url: `/workflow/lobster-exec/compliance-rule/${id}`, method: 'put', data })
  45. }
  46. export function deleteComplianceRule(id) {
  47. return request({ url: `/workflow/lobster-exec/compliance-rule/${id}`, method: 'delete' })
  48. }
  49. // ======== 引擎核心 ========
  50. export function getEvolutionMetrics() {
  51. return request({ url: '/workflow/lobster/engine/evolution/metrics', method: 'get' })
  52. }
  53. export function analyzeEvolution(workflowId) {
  54. return request({ url: '/workflow/lobster/engine/evolution/analyze', method: 'get', params: { workflowId } })
  55. }
  56. export function applyEvolution(suggestionId) {
  57. return request({ url: '/workflow/lobster/engine/evolution/apply', method: 'post', params: { suggestionId } })
  58. }
  59. export function getHeartbeatStatus(instanceId) {
  60. return request({ url: '/workflow/lobster/engine/heartbeat/status', method: 'get', params: { instanceId } })
  61. }
  62. export function getAvailableChannels() {
  63. return request({ url: '/workflow/lobster/engine/channels', method: 'get' })
  64. }
  65. export function getNodeCapabilities() {
  66. return request({ url: '/workflow/lobster/engine/node-capabilities', method: 'get' })
  67. }
  68. export function runIntegrationTests() {
  69. return request({ url: '/workflow/lobster/engine/integration-test/run', method: 'post' })
  70. }
  71. export function testNodeTypes() {
  72. return request({ url: '/workflow/lobster/engine/integration-test/node-types', method: 'get' })
  73. }
  74. export function testDynamicExecutor() {
  75. return request({ url: '/workflow/lobster/engine/integration-test/dynamic-executor', method: 'get' })
  76. }
  77. // ======== 提示词管理 ========
  78. export function listPrompts(params) {
  79. return request({ url: '/workflow/lobster/prompt/list', method: 'get', params })
  80. }
  81. export function getPrompt(id) {
  82. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'get' })
  83. }
  84. export function addPrompt(data) {
  85. return request({ url: '/workflow/lobster/prompt', method: 'post', data })
  86. }
  87. export function updatePrompt(id, data) {
  88. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'put', data })
  89. }
  90. export function deletePrompt(id) {
  91. return request({ url: `/workflow/lobster/prompt/${id}`, method: 'delete' })
  92. }
  93. export function getPromptCategories() {
  94. return request({ url: '/workflow/lobster/prompt/categories', method: 'get' })
  95. }
  96. export function refreshPromptCache() {
  97. return request({ url: '/workflow/lobster/prompt/refresh-cache', method: 'post' })
  98. }
  99. // ======== 销冠语料 ========
  100. export function listSalesCorpus(params) {
  101. return request({ url: '/workflow/lobster/sales-corpus/list', method: 'get', params })
  102. }
  103. export function addCorpusDialog(data) {
  104. return request({ url: '/workflow/lobster/sales-corpus/dialog', method: 'post', data })
  105. }
  106. export function batchImportCorpus(data) {
  107. return request({ url: '/workflow/lobster/sales-corpus/batch-import', method: 'post', data })
  108. }
  109. export function analyzeCorpus() {
  110. return request({ url: '/workflow/lobster/sales-corpus/analyze', method: 'post' })
  111. }
  112. export function getCorpusScenarios() {
  113. return request({ url: '/workflow/lobster/sales-corpus/scenarios', method: 'get' })
  114. }
  115. // ======== API注册中心 ========
  116. export function listApiRegistry() {
  117. return request({ url: '/workflow/lobster/api-registry/list', method: 'get' })
  118. }
  119. export function registerApi(data) {
  120. return request({ url: '/workflow/lobster/api-registry', method: 'post', data })
  121. }
  122. export function refreshApiCache() {
  123. return request({ url: '/workflow/lobster/api-registry/refresh', method: 'post' })
  124. }
  125. export function getApiCategories() {
  126. return request({ url: '/workflow/lobster/api-registry/categories', method: 'get' })
  127. }
  128. // ======== 死信队列 ========
  129. export function listDeadLetters() {
  130. return request({ url: '/workflow/lobster/dead-letter/list', method: 'get' })
  131. }
  132. export function retryAllDeadLetters() {
  133. return request({ url: '/workflow/lobster/dead-letter/retry-all', method: 'post' })
  134. }
  135. export function getDeadLetterStats() {
  136. return request({ url: '/workflow/lobster/dead-letter/stats', method: 'get' })
  137. }
  138. // ======== 节点审核 ========
  139. export function listEventAudits(params) {
  140. return request({ url: '/workflow/lobster/event-audit/list', method: 'get', params })
  141. }
  142. export function approveEvent(id) {
  143. return request({ url: `/workflow/lobster/event-audit/approve/${id}`, method: 'post' })
  144. }
  145. export function rejectEvent(id, data) {
  146. return request({ url: `/workflow/lobster/event-audit/reject/${id}`, method: 'post', data })
  147. }
  148. export function getEventAuditDetail(id) {
  149. return request({ url: `/workflow/lobster/event-audit/${id}`, method: 'get' })
  150. }
  151. // ======== 优化建议 ========
  152. export function listPendingAudit(params) {
  153. return request({ url: '/workflow/lobster/optimization/pending-audit', method: 'get', params })
  154. }
  155. export function batchAuditOptimization(data) {
  156. return request({ url: '/workflow/lobster/optimization/batch-audit', method: 'post', data })
  157. }
  158. export function auditSingleOptimization(optimizationId, approved, remark) {
  159. return request({ url: `/workflow/lobster/optimization/audit/${optimizationId}`, method: 'post', params: { approved, remark } })
  160. }
  161. export function analyzeOptimization(externalUserId, workflowId) {
  162. return request({ url: '/workflow/lobster/optimization/analyze', method: 'post', params: { externalUserId, workflowId } })
  163. }
  164. export function getOptimizationStats() {
  165. return request({ url: '/workflow/lobster/optimization/stats', method: 'get' })
  166. }
  167. export function getOptimizationConfig(params) {
  168. return request({ url: '/workflow/lobster/optimization/config', method: 'get', params })
  169. }
  170. export function setOptimizationConfig(data) {
  171. return request({ url: '/workflow/lobster/optimization/config', method: 'post', data })
  172. }
  173. // ======== AI工作流生成 ========
  174. export function generateAiWorkflow(data) {
  175. return request({ url: '/workflow/ai-generator/generate', method: 'post', data })
  176. // return request({ url: '/workflow/lobster/ai-generator/generate', method: 'post', data })
  177. }
  178. export function getAiGeneratorResult(recordId) {
  179. return request({ url: `/workflow/ai-generator/result/${recordId}/detail`, method: 'get' })
  180. // return request({ url: `/workflow/lobster/ai-generator/result/${recordId}/detail`, method: 'get' })
  181. }
  182. export function confirmAiWorkflow(recordId, data) {
  183. return request({ url: `/workflow/ai-generator/confirm/${recordId}`, method: 'post', data })
  184. // return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}`, method: 'post', data })
  185. }
  186. export function confirmEditedAiWorkflow(recordId, data) {
  187. return request({ url: `/workflow/ai-generator/confirm/${recordId}/edited`, method: 'post', data })
  188. // return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}/edited`, method: 'post', data })
  189. }
  190. export function regenerateAiWorkflow(recordId, data) {
  191. return request({ url: `/workflow/ai-generator/regenerate/${recordId}`, method: 'post', data })
  192. // return request({ url: `/workflow/lobster/ai-generator/regenerate/${recordId}`, method: 'post', data })
  193. }
  194. // ======== 模拟对话 ========
  195. export function simulateChat(data) {
  196. return request({ url: '/workflow/simulate', method: 'post', data })
  197. }
  198. // ======== 工作流模板获取 ========
  199. export function listAllTemplates() {
  200. return request({ url: '/workflow/template/list', method: 'get' })
  201. }
  202. export function getTemplateWithNodes(id) {
  203. return request({ url: `/workflow/template/${id}`, method: 'get' })
  204. }