@axiom-lattice/gateway 8.1.1 → 8.3.0
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.
- package/dist/embed/{embed-page-AgentDetailSideApp-RY4FAEAM.js → embed-page-AgentDetailSideApp-7YTMN643.js} +1 -1
- package/dist/embed/{embed-page-AgentGovernanceWorkbench-UFDULZ5A.js → embed-page-AgentGovernanceWorkbench-YWJ4ZLEV.js} +1 -1
- package/dist/embed/{embed-page-LangfuseDashboard-GNNJGAA2.js → embed-page-LangfuseDashboard-BEOJDMWF.js} +1 -1
- package/dist/embed/embed-page-MessageGraph-N2DXVMEK.js +6 -0
- package/dist/embed/{embed-page-ReactChart-LWZPH244.js → embed-page-ReactChart-3QDZX2WG.js} +1 -1
- package/dist/embed/{embed-page-SkillFlow-OVIGJFUH.js → embed-page-SkillFlow-3X24ILKU.js} +1 -1
- package/dist/embed/{embed-page-TasksSideApp-AOS4MZAI.js → embed-page-TasksSideApp-MYIRJWFM.js} +1 -1
- package/dist/embed/{embed-page-ThreadMaintenancePanel-PXL2TJBO.js → embed-page-ThreadMaintenancePanel-V327PV5R.js} +1 -1
- package/dist/embed/{embed-page-TopologyRuntimeView-GRM34Z2Z.js → embed-page-TopologyRuntimeView-3O6VJUZR.js} +1 -1
- package/dist/embed/{embed-page-WorkflowAutomationView-JV26AHRB.js → embed-page-WorkflowAutomationView-YHOS4WQR.js} +1 -1
- package/dist/embed/embed-page-chunk-4XKCMM5C.js +211 -0
- package/dist/embed/{embed-page-chunk-YCTDKWKW.js → embed-page-chunk-ASEIOK7X.js} +1 -1
- package/dist/embed/{embed-page-chunk-6ZHR5GWS.js → embed-page-chunk-BSRASK7V.js} +6 -6
- package/dist/embed/{embed-page-chunk-GSUSX54K.js → embed-page-chunk-FE6KYRCO.js} +1 -1
- package/dist/embed/{embed-page-chunk-SQSVDSG6.js → embed-page-chunk-IBRMWDHE.js} +292 -203
- package/dist/embed/{embed-page-chunk-5XP4FJW7.js → embed-page-chunk-IELKCYQX.js} +1 -1
- package/dist/embed/{embed-page-chunk-ABGWNVMG.js → embed-page-chunk-JTL73EBV.js} +1 -1
- package/dist/embed/{embed-page-chunk-ONXC5S22.js → embed-page-chunk-PMOGSY6W.js} +1 -1
- package/dist/embed/{embed-page-chunk-3UK7XM33.js → embed-page-chunk-PROZXFWS.js} +1 -1
- package/dist/embed/{embed-page-chunk-YM76GTXK.js → embed-page-chunk-WGEXK773.js} +2 -2
- package/dist/embed/{embed-page-chunk-OQUMCCF5.js → embed-page-chunk-YMVKQQXJ.js} +1 -1
- package/dist/embed/{embed-page-en-G5J7KW6V.js → embed-page-en-JOTELYAL.js} +1 -1
- package/dist/embed/{embed-page-zh-72QSTYRF.js → embed-page-zh-BPO6ZSJM.js} +1 -1
- package/dist/embed/embed-page.js +3 -3
- package/dist/index.js +206 -53
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +206 -53
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/embed/embed-page-MessageGraph-S7GCLNLR.js +0 -6
- package/dist/embed/embed-page-chunk-NNQHJZ5Q.js +0 -211
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./embed-page-chunk-QBTAJ2YI.js";var t={"chat.empty.createConversationFirst":"\u8BF7\u5148\u521B\u5EFA\u4E00\u4E2A\u5BF9\u8BDD","chat.empty.question":"\u51C6\u5907\u597D\u51E0\u79D2\u5185\u628A\u6570\u636E\u53D8\u6210\u6709\u6D1E\u5BDF\u529B\u7684\u56FE\u8868\u4E86\u5417\uFF1F","chat.empty.welcomePrefix":"\u4F60\u597D","chat.empty.userFallback":"\u670B\u53CB","chat.sender.attachments":"\u9644\u4EF6","chat.sender.uploadFile":"\u4E0A\u4F20\u6587\u4EF6","chat.sender.rootDirectory":"\u6839\u76EE\u5F55","chat.sender.filesUploading":"\u6587\u4EF6\u4ECD\u5728\u4E0A\u4F20\u4E2D\u2026","chat.sender.uploadFailed":"{{name}} \u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\u3002{{reason}}","chat.sender.fileTooLarge":"\u6587\u4EF6\u5FC5\u987B\u5C0F\u4E8E {{max}}MB\uFF01{{name}} \u8FC7\u5927\u3002","chat.sender.thinking":"{{frame}} \u601D\u8003\u4E2D\u2026","chat.sender.messagesWaiting":"{{count}} \u6761\u6D88\u606F\u7B49\u5F85\u4E2D\u2026","chat.sender.placeholder":"\u8F93\u5165 / \u67E5\u770B\u53EF\u7528\u6280\u80FD\uFF0C\u6216\u8F93\u5165 @ \u5F15\u7528\u6587\u4EF6","chat.sender.moreMatches":"\u2026\u8FD8\u6709 {{count}} \u4E2A\u5339\u914D\u9879 \u2014 \u7EE7\u7EED\u8F93\u5165\u4EE5\u7F29\u5C0F\u8303\u56F4","chat.error.streamError":"\u6D41\u5F0F\u4F20\u8F93\u9519\u8BEF","chat.error.hitlResponseRejected":"\u667A\u80FD\u4F53\u672A\u63A5\u53D7\u8BE5\u54CD\u5E94\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.error.interruptNotFound":"\u65E0\u6CD5\u89E3\u6790\u5F85\u5904\u7406\u7684\u4E2D\u65AD\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.stop.superseded":"\u54CD\u5E94\u5DF2\u88AB\u65B0\u6D88\u606F\u6253\u65AD\u3002","chat.stop.stopped":"\u54CD\u5E94\u5DF2\u505C\u6B62\u3002","chat.layout.toggleMenu":"\u5207\u6362\u83DC\u5355","chat.layout.closeDetail":"\u5173\u95ED\u8BE6\u60C5\u9762\u677F","chat.layout.closeTools":"\u5173\u95ED\u5DE5\u5177\u9762\u677F","chat.menu.branding":"\u83DC\u5355","chat.menu.expandSidebar":"\u5C55\u5F00\u4FA7\u8FB9\u680F","chat.menu.collapseSidebar":"\u6536\u8D77\u4FA7\u8FB9\u680F","chat.menu.newThread":"\u65B0\u5EFA\u4F1A\u8BDD","chat.agent.fallbackName":"\u667A\u80FD\u4F53","chat.agent.selectTitle":"\u9009\u62E9\u667A\u80FD\u4F53","chat.agent.empty":"\u6682\u65E0\u53EF\u7528\u667A\u80FD\u4F53","chat.agent.search":"\u641C\u7D22\u667A\u80FD\u4F53","chat.agent.noResults":"\u6CA1\u6709\u5339\u914D\u7684\u667A\u80FD\u4F53","chat.agent.onboardingTitle":"Agent \u5207\u6362\u8FC1\u79FB\u5230\u8FD9\u91CC","chat.agent.onboardingDescription":"\u70B9\u51FB\u8FD9\u4E2A Agent \u9879\u5373\u53EF\u5207\u6362 Agent\u3002","chat.agent.onboardingGotIt":"\u77E5\u9053\u4E86","chat.model.label":"\u6A21\u578B","chat.model.placeholder":"\u6A21\u578B","chat.model.empty":"\u6682\u65E0\u53EF\u7528\u6A21\u578B","chat.budget.hint":"\u672C\u8F6E\u6267\u884C\u9884\u7B97","chat.budget.turns":"\u7EA6 {{count}} \u8F6E","chat.budget.current":"\u672C\u8F6E\u6267\u884C\u9884\u7B97\uFF1A{{level}}","chat.budget.low":"\u5C0F","chat.budget.lowDescription":"\u8F7B\u91CF\u4EFB\u52A1","chat.budget.medium":"\u4E2D","chat.budget.mediumDescription":"\u5E38\u89C4\u4EFB\u52A1","chat.budget.high":"\u9AD8","chat.budget.highDescription":"\u591A\u6B65\u9AA4\u4EFB\u52A1","chat.budget.max":"\u6700\u5927","chat.budget.maxDescription":"\u957F\u4EFB\u52A1","chat.workspace.selectPlaceholder":"\u5DE5\u4F5C\u533A","chat.workspace.selectTitle":"\u9009\u62E9\u5DE5\u4F5C\u533A","chat.project.selectPlaceholder":"\u9879\u76EE","chat.project.selectTitle":"\u9009\u62E9\u9879\u76EE","chat.project.empty":"\u6682\u65E0\u9879\u76EE","chat.project.nameRequired":"\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0","chat.project.nameTooLong":"\u540D\u79F0\u4E0D\u5F97\u8D85\u8FC7 {{max}} \u4E2A\u5B57\u7B26","chat.project.selectWorkspaceFirst":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u533A","chat.project.created":"\u9879\u76EE\u300C{{name}}\u300D\u5DF2\u521B\u5EFA","chat.project.createFailed":"\u521B\u5EFA\u9879\u76EE\u5931\u8D25","chat.project.createTitle":"\u65B0\u5EFA\u9879\u76EE","chat.project.namePlaceholder":"\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0","chat.thread.create":"\u65B0\u5EFA\u5BF9\u8BDD","chat.thread.createFailed":"\u65B0\u5EFA\u4F1A\u8BDD\u5931\u8D25","chat.thread.history":"\u5386\u53F2\u5BF9\u8BDD","chat.thread.refreshHistory":"\u5237\u65B0\u5386\u53F2\u5BF9\u8BDD","chat.thread.searchPlaceholder":"\u641C\u7D22\u5BF9\u8BDD\u2026","chat.thread.sortName":"\u540D\u79F0","chat.thread.sortUpdated":"\u66F4\u65B0\u65F6\u95F4","chat.thread.sortCreated":"\u521B\u5EFA\u65F6\u95F4","chat.thread.sortAscending":"\u5347\u5E8F","chat.thread.sortDescending":"\u964D\u5E8F","chat.thread.loading":"\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD\u2026","chat.thread.noMatch":"\u6CA1\u6709\u4E0E\u300C{{query}}\u300D\u5339\u914D\u7684\u5BF9\u8BDD","chat.thread.empty":"\u6682\u65E0\u5BF9\u8BDD","chat.thread.nameLabel":"\u5BF9\u8BDD\u540D\u79F0","chat.thread.status.idle":"\u7A7A\u95F2","chat.thread.status.busy":"\u8FD0\u884C\u4E2D","chat.thread.status.interrupted":"\u5DF2\u4E2D\u65AD","chat.thread.status.error":"\u9519\u8BEF","chat.thread.saveName":"\u4FDD\u5B58\u540D\u79F0","chat.thread.cancelRename":"\u53D6\u6D88\u91CD\u547D\u540D","chat.thread.rename":"\u91CD\u547D\u540D\u5BF9\u8BDD","chat.thread.renamed":"\u5BF9\u8BDD\u5DF2\u91CD\u547D\u540D","chat.thread.renameFailed":"\u91CD\u547D\u540D\u5BF9\u8BDD\u5931\u8D25","chat.thread.delete":"\u5220\u9664\u5BF9\u8BDD","chat.thread.deleteTitle":"\u5220\u9664\u5BF9\u8BDD","chat.thread.deleteConfirm":"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u5BF9\u8BDD\u5417\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002","chat.thread.deleted":"\u5BF9\u8BDD\u5DF2\u5220\u9664","chat.thread.deleteFailed":"\u5220\u9664\u5BF9\u8BDD\u5931\u8D25","chat.pin.pin":"\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.unpin":"\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A","chat.pin.pinTitle":"\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.enterName":"\u8BF7\u8F93\u5165\u83DC\u5355\u540D\u79F0","chat.pin.pinned":"\u5DF2\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.unpinned":"\u5DF2\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A","chat.pin.pinFailed":"\u56FA\u5B9A\u5230\u83DC\u5355\u5931\u8D25","chat.pin.unpinFailed":"\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A\u5931\u8D25","chat.pin.namePlaceholder":"\u83DC\u5355\u540D\u79F0\uFF08\u5FC5\u586B\uFF09","chat.pin.groupPlaceholder":"\u5206\u7EC4\uFF08\u53EF\u9009\uFF0C\u53EF\u9009\u62E9\u6216\u8F93\u5165\u65B0\u5206\u7EC4\uFF09","chat.sideApp.unnamed":"\u672A\u547D\u540D","chat.sideApp.allTabs":"\u6240\u6709\u6807\u7B7E\u9875","chat.sideApp.close":"\u5173\u95ED","chat.sideApp.empty":"\u9009\u62E9\u4E00\u4E2A\u5E94\u7528\u5F00\u59CB\u4F7F\u7528","chat.sideApp.componentNotFound":"\u672A\u627E\u5230\u7EC4\u4EF6\u89C6\u56FE","chat.todo.title":"\u5F85\u529E","chat.todo.noTasks":"\u6682\u65E0\u4EFB\u52A1","chat.todo.inProgress":"{{count}} \u9879\u8FDB\u884C\u4E2D","chat.todo.completed":"\u5DF2\u5B8C\u6210 {{count}} \u9879","chat.todo.progressTooltip":"\u5DF2\u5B8C\u6210 {{completed}} / {{total}} \u9879\u4EFB\u52A1","chat.task.title":"\u4EFB\u52A1","chat.task.noTasks":"\u6682\u65E0\u4EFB\u52A1","chat.task.inProgress":"{{count}} \u9879\u8FDB\u884C\u4E2D","chat.task.completed":"\u5DF2\u5B8C\u6210 {{count}} \u9879","chat.task.progressTooltip":"\u5DF2\u5B8C\u6210 {{completed}} / {{total}} \u9879\u4EFB\u52A1","chat.customMenu.invalid":"\u65E0\u6548\u7684\u83DC\u5355\u9879","chat.customMenu.empty":"\uFF08\u7A7A\uFF09","chat.customMenu.htmlPage":"\u81EA\u5B9A\u4E49 HTML \u9875\u9762","chat.customMenu.componentNotFound":"\u672A\u627E\u5230\u7EC4\u4EF6\u300C{{name}}\u300D","chat.customMenu.invalidMcpApp":"\u65E0\u6548\u7684 MCP \u5E94\u7528\u83DC\u5355\u9879","chat.customMenu.unknownType":"\u672A\u77E5\u7684\u5185\u5BB9\u7C7B\u578B\uFF1A{{type}}","chat.customMenu.fileFallback":"\u6587\u4EF6","chat.file.changed":"\u6587\u4EF6\u5DF2\u53D8\u66F4","chat.file.explorer":"\u6587\u4EF6\u6D4F\u89C8\u5668","chat.file.count":"{{count}} \u4E2A\u6587\u4EF6","chat.copilot.agentBuilder":"\u667A\u80FD\u4F53\u6784\u5EFA\u5668","chat.copilot.viewing":"\u6B63\u5728\u67E5\u770B\uFF1A{{name}}","chat.copilot.close":"\u5173\u95ED\u526F\u9A7E\u9A76","chat.copilot.selectWorkflow":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u5F00\u59CB","chat.environment.title":"\u8FD0\u884C\u73AF\u5883","chat.environment.tools":"\u5DE5\u5177","chat.environment.capabilities":"\u80FD\u529B","chat.environment.subAgents":"\u5B50\u667A\u80FD\u4F53","chat.environment.runtime":"\u8FD0\u884C\u65F6","chat.environment.model":"\u6A21\u578B\uFF1A{{model}}","chat.environment.db":"\u6570\u636E\u5E93\uFF1A{{db}}","chat.environment.skills":"\u6280\u80FD\uFF1A{{skills}}","chat.environment.channels":"\u6E20\u9053","chat.environment.noChannels":"\u672A\u914D\u7F6E\u6E20\u9053","chat.viewToggle.chat":"\u5BF9\u8BDD","chat.viewToggle.graph":"\u6267\u884C\u8FC7\u7A0B","chat.viewToggle.aria":"\u89C6\u56FE\u5207\u6362","chat.trace.backToCurrent":"\u56DE\u5230\u5F53\u524D","chat.trace.collapseOlder":"\u6536\u8D77\u66F4\u65E9","chat.trace.expandAll":"\u5C55\u5F00\u5168\u90E8","chat.trace.parallelBadge":"\u5E76\u53D1 \xD7{{count}}","chat.trace.jumpToChat":"\u5BF9\u8BDD","chat.trace.phase.understand":"\u7406\u89E3\u4E0E\u89C4\u5212","chat.trace.phase.act":"\u6267\u884C","chat.trace.phase.delegate":"\u59D4\u6D3E","chat.trace.phase.answer":"\u56DE\u7B54","chat.trace.phase.earlier":"\u66F4\u65E9","chat.trace.node.human":"\u7528\u6237","chat.trace.summary.steps":"{{count}} \u4E2A\u6B65\u9AA4","chat.trace.summary.steps_one":"{{count}} \u4E2A\u6B65\u9AA4","chat.trace.summary.steps_other":"{{count}} \u4E2A\u6B65\u9AA4","chat.menu.history":"\u5386\u53F2","chat.error.resumeStreamError":"\u6062\u590D\u6D41\u5F0F\u4F20\u8F93\u9519\u8BEF","chat.error.copySucceeded":"\u5DF2\u590D\u5236\u9519\u8BEF\u8BE6\u60C5","chat.error.copyFailed":"\u590D\u5236\u5931\u8D25","chat.error.sectionFallback":"\u6B64\u533A\u57DF","chat.error.renderFailed":"\u6E32\u67D3 {{label}} \u5931\u8D25","chat.error.details":"\u9519\u8BEF\u8BE6\u60C5","chat.error.copyDetails":"\u590D\u5236\u8BE6\u60C5","chat.error.boundary.sidebar":"\u4FA7\u8FB9\u680F","chat.error.boundary.chatPanel":"\u5BF9\u8BDD\u9762\u677F","chat.error.boundary.detailPanel":"\u8BE6\u60C5\u9762\u677F","chat.error.boundary.toolsPanel":"\u5DE5\u5177\u9762\u677F","chat.error.boundary.thread":"\u4F1A\u8BDD","chat.error.boundary.chatShell":"\u5BF9\u8BDD\u5916\u58F3","chat.agent.defaultName":"AI \u52A9\u624B","chat.file.toggleDirectory":"\u5207\u6362\u6587\u4EF6\u76EE\u5F55","chat.conversation.creating":"\u6B63\u5728\u521B\u5EFA\u5BF9\u8BDD\u2026","chat.tools.loading":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u5177\u2026","chat.skills.loading":"\u6B63\u5728\u52A0\u8F7D\u6280\u80FD\u2026","chat.schedule.none":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1","chat.schedule.scheduledCount":"\u5DF2\u5B89\u6392 {{count}} \u9879","chat.schedule.totalCount":"\u5171 {{count}} \u9879","chat.topology.outgoing":"{{count}} \u51FA","chat.topology.incoming":"{{count}} \u5165","chat.config.executableRequired":"\u8BF7\u9009\u62E9\u4E00\u4E2A\u6A21\u677F\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u53EF\u6267\u884C\u6587\u4EF6","chat.voice.unavailable":"\u8BED\u97F3\u8F93\u5165\u4E0D\u53EF\u7528\uFF1A\u672A\u914D\u7F6E STT \u6A21\u578B","chat.voice.transcribing":"\u8F6C\u5F55\u4E2D\u2026","chat.voice.retryHint":"\u8F6C\u5F55\u5931\u8D25\uFF0C\u70B9\u51FB\u91CD\u8BD5","chat.voice.rerecordHint":"\u70B9\u51FB\u91CD\u65B0\u5F55\u5236","chat.voice.stopRecordingAuto":"\u505C\u6B62\u5F55\u5236\uFF08{{seconds}} \u79D2\uFF0C\u5DF2\u8F6C\u5F55 {{segments}} \u6BB5\uFF09","chat.voice.stopRecording":"\u505C\u6B62\u5F55\u5236\uFF08{{seconds}} \u79D2\uFF09","chat.voice.start":"\u5F00\u59CB\u8BED\u97F3\u8F93\u5165","chat.voice.noModel":"\u672A\u914D\u7F6E STT \u6A21\u578B","chat.voice.uploading":"\u4E0A\u4F20\u4E2D\u2026","chat.voice.modeAuto":"\u81EA\u52A8","chat.voice.modeManual":"\u624B\u52A8","chat.voice.segments":"{{count}} \u6BB5","chat.voice.segments_one":"{{count}} \u6BB5","chat.voice.segments_other":"{{count}} \u6BB5","chat.voice.recordingStatus":"{{mode}}\u6A21\u5F0F\uFF0C\u5F55\u5236\u4E2D {{time}}{{chunks}} \u2014 \u70B9\u51FB\u505C\u6B62","chat.voice.errNotSupported":"\u4E0D\u652F\u6301\u8BED\u97F3\u8F93\u5165\uFF0C\u8BF7\u4F7F\u7528 Chrome\u3001Edge \u6216 Safari\u3002","chat.voice.errFormatNotSupported":"\u6B64\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u8BE5\u97F3\u9891\u5F55\u5236\u683C\u5F0F\u3002","chat.voice.errRecordingFailed":"\u5F55\u5236\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.voice.errRecordInitFailed":"\u5F55\u5236\u521D\u59CB\u5316\u5931\u8D25\u3002","chat.voice.errMicPermission":"\u8BF7\u5728\u6D4F\u89C8\u5668\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u9EA6\u514B\u98CE\u6743\u9650","chat.voice.errMicAccess":"\u65E0\u6CD5\u8BBF\u95EE\u9EA6\u514B\u98CE","chat.voice.errStopTimeout":"\u505C\u6B62\u5F55\u5236\u8D85\u65F6","chat.voice.errTranscribeFailed":"\u8F6C\u5F55\u5931\u8D25","chat.voice.errRetryFailed":"\u91CD\u8BD5\u5931\u8D25","chat.analysis.quickTitle":"\u5FEB\u901F\u5206\u6790","chat.analysis.categoriesTitle":"\u5206\u6790\u7C7B\u522B","chat.analysis.viewMore":"\u67E5\u770B\u66F4\u591A\u5206\u6790\u9009\u9879","chat.analysis.category.sales":"\u9500\u552E\u5206\u6790","chat.analysis.category.financial":"\u8D22\u52A1\u5206\u6790","chat.analysis.category.operations":"\u8FD0\u8425\u5206\u6790","chat.analysis.sales.comprehensive.label":"\u7EFC\u5408\u9500\u552E\u5206\u6790","chat.analysis.sales.comprehensive.description":"\u6309\u6307\u5B9A\u7EF4\u5EA6\u5206\u6790\u9500\u552E\u6536\u5165\uFF0C\u5E76\u8FDB\u884C\u8D8B\u52BF\u5206\u6790\u4E0E\u589E\u957F\u673A\u4F1A\u8BC6\u522B","chat.analysis.sales.performance.label":"\u9500\u552E\u4E1A\u7EE9\u5206\u6790","chat.analysis.sales.performance.description":"\u6C47\u603B\u5168\u6E20\u9053\u9500\u552E\u989D\uFF0C\u8BC4\u4F30\u4E1A\u7EE9\u8FBE\u6210\u7387\uFF0C\u5E76\u4E0E\u5386\u53F2\u589E\u957F\u5BF9\u6BD4","chat.analysis.sales.topCustomers.label":"\u5927\u5BA2\u6237\u5206\u6790","chat.analysis.sales.topCustomers.description":"\u8BC6\u522B\u9500\u552E\u989D\u524D 10% \u7684\u5BA2\u6237\uFF0C\u5206\u6790\u5176\u8D2D\u4E70\u504F\u597D\u4E0E\u6D41\u5931\u98CE\u9669","chat.analysis.sales.trend.label":"\u9500\u552E\u8D8B\u52BF\u5206\u6790","chat.analysis.sales.trend.description":"\u901A\u8FC7\u65F6\u95F4\u5E8F\u5217\u5206\u6790\u9500\u552E\u5CF0\u8C37\uFF0C\u9884\u6D4B\u4E0B\u4E00\u5B63\u5EA6\u9500\u552E\u8D8B\u52BF","chat.analysis.sales.repPerformance.label":"\u9500\u552E\u4EBA\u5458\u4E1A\u7EE9","chat.analysis.sales.repPerformance.description":"\u91CF\u5316\u8BC4\u4F30\u6BCF\u4F4D\u9500\u552E\u4EBA\u5458\u7684\u8F6C\u5316\u7387\u3001\u5BA2\u5355\u4EF7\u4E0E\u5408\u540C\u5C65\u7EA6\u6548\u7387","chat.analysis.sales.regional.label":"\u533A\u57DF\u9500\u552E\u5BF9\u6BD4","chat.analysis.sales.regional.description":"\u5BF9\u6BD4\u4E0D\u540C\u5730\u7406\u533A\u57DF\u7684\u9500\u552E\u6E17\u900F\u7387\uFF0C\u8BC6\u522B\u8868\u73B0\u5F02\u5E38\u7684\u5E02\u573A","chat.analysis.sales.productVolume.label":"\u5546\u54C1\u9500\u91CF\u5206\u6790","chat.analysis.sales.productVolume.description":"\u7EDF\u8BA1\u5404 SKU \u7684\u9500\u91CF\uFF0C\u8BC6\u522B\u7545\u9500\u5546\u54C1\u4E0E\u6EDE\u9500\u5E93\u5B58","chat.analysis.financial.grossMargin.label":"\u4EA7\u54C1\u7EBF\u6BDB\u5229\u5206\u6790","chat.analysis.financial.grossMargin.description":"\u5BF9\u6BD4\u5404\u4EA7\u54C1\u7EBF\u7684\u6BDB\u5229\u6C34\u5E73\uFF0C\u8BC6\u522B\u9AD8\u6BDB\u5229\u8D21\u732E\u4E0E\u4E8F\u635F\u4E1A\u52A1","chat.analysis.financial.customerProfitability.label":"\u5BA2\u6237\u76C8\u5229\u5206\u6790","chat.analysis.financial.customerProfitability.description":"\u6309\u4E0D\u540C\u5BA2\u6237\u7EF4\u5EA6\u5206\u6790\u51C0\u5229\u6DA6\u8D21\u732E\uFF0C\u8BC6\u522B\u6838\u5FC3\u4F18\u8D28\u5BA2\u6237\u4E0E\u9AD8\u670D\u52A1\u6210\u672C\u5BA2\u6237","chat.analysis.financial.monthlyReport.label":"\u6708\u5EA6\u8D22\u52A1\u62A5\u544A","chat.analysis.financial.monthlyReport.description":"\u57FA\u4E8E\u672C\u6708\u6838\u7B97\u6570\u636E\uFF0C\u81EA\u52A8\u751F\u6210\u5229\u6DA6\u8868\u3001\u8D44\u4EA7\u8D1F\u503A\u8868\u4E0E\u73B0\u91D1\u6D41\u91CF\u8868\u6458\u8981","chat.analysis.financial.ratio.label":"\u8D22\u52A1\u6BD4\u7387\u5206\u6790","chat.analysis.financial.ratio.description":"\u8BA1\u7B97\u5E76\u5206\u6790\u6D41\u52A8\u6BD4\u7387\u3001\u8D44\u4EA7\u8D1F\u503A\u7387\u3001ROE \u7B49\u5173\u952E\u6307\u6807\uFF0C\u8BC4\u4F30\u516C\u53F8\u8D22\u52A1\u5065\u5EB7\u5EA6","chat.analysis.financial.cashflow.label":"\u73B0\u91D1\u6D41\u5206\u6790","chat.analysis.financial.cashflow.description":"\u8FFD\u8E2A\u7ECF\u8425\u3001\u6295\u8D44\u4E0E\u7B79\u8D44\u6D3B\u52A8\u73B0\u91D1\u6D41\uFF0C\u5206\u6790\u51C0\u73B0\u91D1\u6D41\u53D8\u52A8\u7684\u539F\u56E0\u4E0E\u8D8B\u52BF","chat.analysis.financial.costStructure.label":"\u6210\u672C\u7ED3\u6784\u5206\u6790","chat.analysis.financial.costStructure.description":"\u62C6\u89E3\u4EA7\u54C1\u6216\u670D\u52A1\u7684\u76F4\u63A5\u6210\u672C\u4E0E\u95F4\u63A5\u8D39\u7528\uFF0C\u8BC6\u522B\u5F71\u54CD\u603B\u6210\u672C\u7684\u6838\u5FC3\u9A71\u52A8\u56E0\u7D20","chat.analysis.operations.supplierEvaluation.label":"\u4F9B\u5E94\u5546\u7EE9\u6548\u8BC4\u4F30","chat.analysis.operations.supplierEvaluation.description":"\u57FA\u4E8E\u4EA4\u4ED8\u8D28\u91CF\u3001\u54CD\u5E94\u901F\u5EA6\u4E0E\u4EF7\u683C\u7ADE\u4E89\u529B\uFF0C\u5BF9\u6838\u5FC3\u4F9B\u5E94\u5546\u8FDB\u884C\u7EFC\u5408\u8BC4\u7EA7","chat.analysis.operations.inventoryTurnover.label":"\u5E93\u5B58\u5468\u8F6C\u5206\u6790","chat.analysis.operations.inventoryTurnover.description":"\u8BA1\u7B97\u5E93\u5B58\u5468\u8F6C\u7387\u4E0E\u5468\u8F6C\u5929\u6570\uFF0C\u8BC6\u522B\u5446\u6EDE\u5E93\u5B58\u7269\u6599\u4EE5\u91CA\u653E\u8D44\u91D1","chat.analysis.operations.deliveryOntime.label":"\u51C6\u65F6\u4EA4\u4ED8\u5206\u6790","chat.analysis.operations.deliveryOntime.description":"\u7EDF\u8BA1\u8BA2\u5355\u4ECE\u4E0B\u5355\u5230\u4EA4\u4ED8\u7684\u5468\u671F\uFF0C\u5206\u6790\u5BFC\u81F4\u5EF6\u8FDF\u4EA4\u4ED8\u7684\u6838\u5FC3\u73AF\u8282","chat.analysis.operations.procurementCost.label":"\u91C7\u8D2D\u6210\u672C\u5206\u6790","chat.analysis.operations.procurementCost.description":"\u76D1\u63A7\u539F\u6750\u6599\u91C7\u8D2D\u4EF7\u683C\u6CE2\u52A8\uFF0C\u5206\u6790\u91C7\u8D2D\u6EA2\u4EF7\u6216\u8282\u7EA6\u5BF9\u5229\u6DA6\u7684\u5F71\u54CD","chat.analysis.operations.productionEfficiency.label":"\u751F\u4EA7\u6548\u7387\u5206\u6790","chat.analysis.operations.productionEfficiency.description":"\u8BA1\u7B97\u8BBE\u5907\u7EFC\u5408\u6548\u7387\uFF08OEE\uFF09\u6216\u4EBA\u5747\u4EA7\u51FA\uFF0C\u8BC6\u522B\u4EA7\u7EBF\u6548\u7387\u74F6\u9888","chat.analysis.operations.orderFulfillment.label":"\u8BA2\u5355\u5C65\u7EA6\u5206\u6790","chat.analysis.operations.orderFulfillment.description":"\u5206\u6790\u4ECE\u63A5\u5355\u5230\u6700\u7EC8\u4EA4\u4ED8\u7684\u5168\u6D41\u7A0B\uFF0C\u4F18\u5316\u8BA2\u5355\u5904\u7406\u54CD\u5E94\u65F6\u95F4","chat.skillCategory.businessAnalysis":"\u4E1A\u52A1\u5206\u6790","chat.skillCategory.codeGeneration":"\u4EE3\u7801\u751F\u6210","chat.skillCategory.documentProcessing":"\u6587\u6863\u5904\u7406","chat.skillCategory.dataAnalysis":"\u6570\u636E\u5206\u6790","chat.skillCategory.toolOperations":"\u5DE5\u5177\u64CD\u4F5C","chat.skillCategory.general":"\u901A\u7528\u6280\u80FD","chat.skillCategory.global":"\u5168\u5C40\u6280\u80FD","chat.skillCategory.viewMore":"\u67E5\u770B\u66F4\u591A\u6280\u80FD\u5206\u7C7B","chat.skillCategory.quickActions":"\u2728 \u5FEB\u6377\u64CD\u4F5C","chat.threadMaintenance.button":"\u7EBF\u7A0B\u7EF4\u62A4","chat.threadMaintenance.title":"\u7EBF\u7A0B\u7EF4\u62A4","chat.threadMaintenance.missingContext":"\u672A\u9009\u62E9\u7EBF\u7A0B\u6216 Agent\u3002","chat.threadMaintenance.loadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u7EF4\u62A4\u6570\u636E\u5931\u8D25\u3002","chat.threadMaintenance.copy":"\u590D\u5236\u7EBF\u7A0B","chat.threadMaintenance.copySuccess":"\u5DF2\u590D\u5236\u5230\u7EBF\u7A0B {{id}}\u3002","chat.threadMaintenance.switchToCopy":"\u5207\u6362\u5230\u526F\u672C","chat.threadMaintenance.copyFailed":"\u590D\u5236\u7EBF\u7A0B\u5931\u8D25\u3002","chat.threadMaintenance.status":"\u72B6\u6001","chat.threadMaintenance.pendingMessages":"\u5F85\u5904\u7406\u6D88\u606F","chat.threadMaintenance.storage":"\u5B58\u50A8","chat.threadMaintenance.checkpoints":"\u68C0\u67E5\u70B9","chat.threadMaintenance.channelValues":"\u901A\u9053\u503C","chat.threadMaintenance.pendingWrites":"\u5F85\u5199\u5165","chat.threadMaintenance.interrupts":"\u5F85\u5904\u7406\u4E2D\u65AD","chat.threadMaintenance.noInterrupts":"\u6682\u65E0\u5F85\u5904\u7406\u4E2D\u65AD\u3002","chat.threadMaintenance.history":"\u6700\u8FD1\u68C0\u67E5\u70B9","chat.threadMaintenance.noHistory":"\u6682\u65E0\u68C0\u67E5\u70B9","chat.threadMaintenance.checkpointId":"\u68C0\u67E5\u70B9","chat.threadMaintenance.checkpointTime":"\u521B\u5EFA\u65F6\u95F4","chat.threadMaintenance.unknown":"\u672A\u77E5","chat.threadMaintenance.viewState":"\u67E5\u770B\u72B6\u6001","chat.threadMaintenance.stateTitle":"\u68C0\u67E5\u70B9\u72B6\u6001","chat.threadMaintenance.stateFailed":"\u52A0\u8F7D\u68C0\u67E5\u70B9\u72B6\u6001\u5931\u8D25\u3002","chat.threadMaintenance.loadingState":"\u6B63\u5728\u52A0\u8F7D\u72B6\u6001\u2026","chat.threadMaintenance.pruneDelete":"\u5220\u9664\u7EBF\u7A0B","chat.threadMaintenance.pruneDeleteTitle":"\u5220\u9664\u7EBF\u7A0B","chat.threadMaintenance.pruneDeleteConfirm":"\u5220\u9664\u6B64\u7EBF\u7A0B\u53CA\u5176\u68C0\u67E5\u70B9\uFF1F","chat.threadMaintenance.pruneKeepLatest":"\u4FDD\u7559\u6700\u65B0","chat.threadMaintenance.pruneKeepTitle":"\u6E05\u7406\u68C0\u67E5\u70B9","chat.threadMaintenance.pruneKeepConfirm":"\u4FDD\u7559\u6700\u65B0 {{count}} \u4E2A\u68C0\u67E5\u70B9\uFF1F","chat.threadMaintenance.pruneFailed":"\u7EBF\u7A0B\u7EF4\u62A4\u5931\u8D25\u3002","chat.threadMaintenance.keepLabel":"\u4FDD\u7559\u68C0\u67E5\u70B9\u6570\u91CF","chat.threadMaintenance.statusLoadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u72B6\u6001\u5931\u8D25\u3002","chat.threadMaintenance.storageLoadFailed":"\u5B58\u50A8\u7EDF\u8BA1\u4E0D\u53EF\u7528\u3002","chat.threadMaintenance.historyLoadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u5386\u53F2\u5931\u8D25\u3002","chat.threadMaintenance.runs":"\u8FD0\u884C\u8BB0\u5F55","chat.threadMaintenance.noRuns":"\u6682\u65E0\u8FD0\u884C\u8BB0\u5F55","chat.threadMaintenance.runStatus":"\u72B6\u6001","chat.threadMaintenance.runId":"\u8FD0\u884C ID","chat.threadMaintenance.runCreated":"\u521B\u5EFA\u65F6\u95F4","chat.threadMaintenance.runOwner":"\u6267\u884C\u8005 / \u5C1D\u8BD5\u6B21\u6570","chat.threadMaintenance.interruptRun":"\u4E2D\u65AD","chat.threadMaintenance.rollbackRun":"\u56DE\u6EDA","chat.threadMaintenance.interruptRunConfirm":"\u4E2D\u65AD\u6B64\u6B21\u8FD0\u884C\uFF1F","chat.threadMaintenance.rollbackRunConfirm":"\u56DE\u6EDA\u6B64\u6B21\u8FD0\u884C\uFF1F","chat.threadMaintenance.runCancelFailed":"\u53D6\u6D88\u8FD0\u884C\u5931\u8D25\u3002","chat.threadMaintenance.runsLoadFailed":"\u52A0\u8F7D\u8FD0\u884C\u8BB0\u5F55\u5931\u8D25\u3002","chat.thread.createOptions.menuLabel":"\u5E26\u9009\u9879\u521B\u5EFA\u2026","chat.thread.createOptions.open":"\u66F4\u591A\u521B\u5EFA\u9009\u9879","chat.thread.createOptions.title":"\u5E26\u9009\u9879\u521B\u5EFA\u7EBF\u7A0B","chat.thread.createOptions.ttlLabel":"TTL\uFF08\u5206\u949F\uFF09","chat.thread.createOptions.ttlPlaceholder":"\u65E0 TTL","chat.thread.createOptions.ttlHint":"\u7559\u7A7A\u6216 0 \u8868\u793A\u6C38\u4E0D\u8FC7\u671F\u3002","chat.thread.createOptions.superstepsLabel":"Supersteps JSON","chat.thread.createOptions.superstepsPlaceholder":'[{"updates":[{"values":{"messages":[]}}]}]',"chat.thread.createOptions.invalidSupersteps":"Supersteps \u5FC5\u987B\u662F\u5305\u542B updates \u548C\u5BF9\u8C61 values \u7684\u6570\u7EC4\u3002","chat.thread.createOptions.createFailed":"\u521B\u5EFA\u7EBF\u7A0B\u5931\u8D25\u3002","chat.run.status.pending":"\u6392\u961F\u4E2D","chat.run.status.running":"\u8FD0\u884C\u4E2D","chat.run.status.awaitingInput":"\u7B49\u5F85\u4F60\u7684\u786E\u8BA4","chat.run.status.interrupted":"\u5DF2\u4E2D\u65AD","chat.run.status.timeout":"\u6267\u884C\u8D85\u65F6","chat.run.status.error":"\u6267\u884C\u5931\u8D25","chat.run.elapsed":"{{seconds}} \u79D2","chat.run.cancel":"\u53D6\u6D88","chat.run.cancelFailed":"\u53D6\u6D88\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.run.dismiss":"\u5173\u95ED","chat.run.error.quota":"\u5F53\u524D\u79DF\u6237\u5E76\u53D1\u5DF2\u6EE1\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.rejected":"\u8BE5\u5BF9\u8BDD\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7B49\u5F85\u5F53\u524D\u56DE\u590D\u5B8C\u6210\u3002","chat.run.error.rollbackInProgress":"\u6B63\u5728\u56DE\u6EDA\u4E0A\u4E00\u6761\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.unavailable":"\u6267\u884C\u961F\u5217\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.notFound":"\u6267\u884C\u8BB0\u5F55\u5DF2\u4E0D\u5B58\u5728\u3002","chat.run.error.joinTimeout":"\u6267\u884C\u4ECD\u5728\u8FDB\u884C\u4E2D\u3002","chat.run.error.affinity":"\u6267\u884C\u5DF2\u5207\u6362\u5230\u5176\u4ED6\u526F\u672C\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5\u3002","chat.run.error.network":"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002","chat.run.error.stateIncompatible":"\u8FD0\u884C\u65F6\u72B6\u6001\u4E0D\u517C\u5BB9\uFF0C\u8BF7\u65B0\u5EFA\u5BF9\u8BDD\u91CD\u8BD5\u3002","chat.run.error.generic":"\u6267\u884C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.messageRail.label":"\u4F60\u7684\u6D88\u606F","chat.messageRail.jump":"\u8DF3\u8F6C\u5230\u4F60\u7684\u6D88\u606F\uFF1A{{preview}}"},c={messages:t};export{c as default,t as messages};
|
|
1
|
+
import"./embed-page-chunk-QBTAJ2YI.js";var t={"chat.empty.createConversationFirst":"\u8BF7\u5148\u521B\u5EFA\u4E00\u4E2A\u5BF9\u8BDD","chat.empty.question":"\u51C6\u5907\u597D\u51E0\u79D2\u5185\u628A\u6570\u636E\u53D8\u6210\u6709\u6D1E\u5BDF\u529B\u7684\u56FE\u8868\u4E86\u5417\uFF1F","chat.empty.welcomePrefix":"\u4F60\u597D","chat.empty.userFallback":"\u670B\u53CB","chat.sender.attachments":"\u9644\u4EF6","chat.sender.uploadFile":"\u4E0A\u4F20\u6587\u4EF6","chat.sender.rootDirectory":"\u6839\u76EE\u5F55","chat.sender.filesUploading":"\u6587\u4EF6\u4ECD\u5728\u4E0A\u4F20\u4E2D\u2026","chat.sender.uploadFailed":"{{name}} \u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\u3002{{reason}}","chat.sender.fileTooLarge":"\u6587\u4EF6\u5FC5\u987B\u5C0F\u4E8E {{max}}MB\uFF01{{name}} \u8FC7\u5927\u3002","chat.sender.thinking":"{{frame}} \u601D\u8003\u4E2D\u2026","chat.sender.messagesWaiting":"{{count}} \u6761\u6D88\u606F\u7B49\u5F85\u4E2D\u2026","chat.sender.placeholder":"\u8F93\u5165 / \u67E5\u770B\u53EF\u7528\u6280\u80FD\uFF0C\u6216\u8F93\u5165 @ \u5F15\u7528\u6587\u4EF6","chat.sender.moreMatches":"\u2026\u8FD8\u6709 {{count}} \u4E2A\u5339\u914D\u9879 \u2014 \u7EE7\u7EED\u8F93\u5165\u4EE5\u7F29\u5C0F\u8303\u56F4","chat.error.streamError":"\u6D41\u5F0F\u4F20\u8F93\u9519\u8BEF","chat.error.hitlResponseRejected":"\u667A\u80FD\u4F53\u672A\u63A5\u53D7\u8BE5\u54CD\u5E94\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.error.interruptNotFound":"\u65E0\u6CD5\u89E3\u6790\u5F85\u5904\u7406\u7684\u4E2D\u65AD\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.stop.superseded":"\u54CD\u5E94\u5DF2\u88AB\u65B0\u6D88\u606F\u6253\u65AD\u3002","chat.stop.stopped":"\u54CD\u5E94\u5DF2\u505C\u6B62\u3002","chat.layout.toggleMenu":"\u5207\u6362\u83DC\u5355","chat.layout.closeDetail":"\u5173\u95ED\u8BE6\u60C5\u9762\u677F","chat.layout.closeTools":"\u5173\u95ED\u5DE5\u5177\u9762\u677F","chat.menu.branding":"\u83DC\u5355","chat.menu.expandSidebar":"\u5C55\u5F00\u4FA7\u8FB9\u680F","chat.menu.collapseSidebar":"\u6536\u8D77\u4FA7\u8FB9\u680F","chat.menu.newThread":"\u65B0\u5EFA\u4F1A\u8BDD","chat.agent.fallbackName":"\u667A\u80FD\u4F53","chat.agent.selectTitle":"\u9009\u62E9\u667A\u80FD\u4F53","chat.agent.empty":"\u6682\u65E0\u53EF\u7528\u667A\u80FD\u4F53","chat.agent.search":"\u641C\u7D22\u667A\u80FD\u4F53","chat.agent.noResults":"\u6CA1\u6709\u5339\u914D\u7684\u667A\u80FD\u4F53","chat.agent.onboardingTitle":"Agent \u5207\u6362\u8FC1\u79FB\u5230\u8FD9\u91CC","chat.agent.onboardingDescription":"\u70B9\u51FB\u8FD9\u4E2A Agent \u9879\u5373\u53EF\u5207\u6362 Agent\u3002","chat.agent.onboardingGotIt":"\u77E5\u9053\u4E86","chat.model.label":"\u6A21\u578B","chat.model.placeholder":"\u6A21\u578B","chat.model.empty":"\u6682\u65E0\u53EF\u7528\u6A21\u578B","chat.budget.hint":"\u672C\u8F6E\u6267\u884C\u9884\u7B97","chat.budget.turns":"\u7EA6 {{count}} \u8F6E","chat.budget.current":"\u672C\u8F6E\u6267\u884C\u9884\u7B97\uFF1A{{level}}","chat.budget.low":"\u5C0F","chat.budget.lowDescription":"\u8F7B\u91CF\u4EFB\u52A1","chat.budget.medium":"\u4E2D","chat.budget.mediumDescription":"\u5E38\u89C4\u4EFB\u52A1","chat.budget.high":"\u9AD8","chat.budget.highDescription":"\u591A\u6B65\u9AA4\u4EFB\u52A1","chat.budget.max":"\u6700\u5927","chat.budget.maxDescription":"\u957F\u4EFB\u52A1","chat.workspace.selectPlaceholder":"\u5DE5\u4F5C\u533A","chat.workspace.selectTitle":"\u9009\u62E9\u5DE5\u4F5C\u533A","chat.project.selectPlaceholder":"\u9879\u76EE","chat.project.selectTitle":"\u9009\u62E9\u9879\u76EE","chat.project.empty":"\u6682\u65E0\u9879\u76EE","chat.project.nameRequired":"\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0","chat.project.nameTooLong":"\u540D\u79F0\u4E0D\u5F97\u8D85\u8FC7 {{max}} \u4E2A\u5B57\u7B26","chat.project.selectWorkspaceFirst":"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u533A","chat.project.created":"\u9879\u76EE\u300C{{name}}\u300D\u5DF2\u521B\u5EFA","chat.project.createFailed":"\u521B\u5EFA\u9879\u76EE\u5931\u8D25","chat.project.createTitle":"\u65B0\u5EFA\u9879\u76EE","chat.project.namePlaceholder":"\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0","chat.thread.create":"\u65B0\u5EFA\u5BF9\u8BDD","chat.thread.createFailed":"\u65B0\u5EFA\u4F1A\u8BDD\u5931\u8D25","chat.thread.history":"\u5386\u53F2\u5BF9\u8BDD","chat.thread.refreshHistory":"\u5237\u65B0\u5386\u53F2\u5BF9\u8BDD","chat.thread.searchPlaceholder":"\u641C\u7D22\u5BF9\u8BDD\u2026","chat.thread.sortName":"\u540D\u79F0","chat.thread.sortUpdated":"\u66F4\u65B0\u65F6\u95F4","chat.thread.sortCreated":"\u521B\u5EFA\u65F6\u95F4","chat.thread.sortAscending":"\u5347\u5E8F","chat.thread.sortDescending":"\u964D\u5E8F","chat.thread.loading":"\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD\u2026","chat.thread.noMatch":"\u6CA1\u6709\u4E0E\u300C{{query}}\u300D\u5339\u914D\u7684\u5BF9\u8BDD","chat.thread.empty":"\u6682\u65E0\u5BF9\u8BDD","chat.thread.nameLabel":"\u5BF9\u8BDD\u540D\u79F0","chat.thread.status.idle":"\u7A7A\u95F2","chat.thread.status.busy":"\u8FD0\u884C\u4E2D","chat.thread.status.interrupted":"\u5DF2\u4E2D\u65AD","chat.thread.status.error":"\u9519\u8BEF","chat.thread.saveName":"\u4FDD\u5B58\u540D\u79F0","chat.thread.cancelRename":"\u53D6\u6D88\u91CD\u547D\u540D","chat.thread.rename":"\u91CD\u547D\u540D\u5BF9\u8BDD","chat.thread.renamed":"\u5BF9\u8BDD\u5DF2\u91CD\u547D\u540D","chat.thread.renameFailed":"\u91CD\u547D\u540D\u5BF9\u8BDD\u5931\u8D25","chat.thread.delete":"\u5220\u9664\u5BF9\u8BDD","chat.thread.deleteTitle":"\u5220\u9664\u5BF9\u8BDD","chat.thread.deleteConfirm":"\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u5BF9\u8BDD\u5417\uFF1F\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002","chat.thread.deleted":"\u5BF9\u8BDD\u5DF2\u5220\u9664","chat.thread.deleteFailed":"\u5220\u9664\u5BF9\u8BDD\u5931\u8D25","chat.pin.pin":"\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.unpin":"\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A","chat.pin.pinTitle":"\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.enterName":"\u8BF7\u8F93\u5165\u83DC\u5355\u540D\u79F0","chat.pin.pinned":"\u5DF2\u56FA\u5B9A\u5230\u83DC\u5355","chat.pin.unpinned":"\u5DF2\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A","chat.pin.pinFailed":"\u56FA\u5B9A\u5230\u83DC\u5355\u5931\u8D25","chat.pin.unpinFailed":"\u4ECE\u83DC\u5355\u53D6\u6D88\u56FA\u5B9A\u5931\u8D25","chat.pin.namePlaceholder":"\u83DC\u5355\u540D\u79F0\uFF08\u5FC5\u586B\uFF09","chat.pin.groupPlaceholder":"\u5206\u7EC4\uFF08\u53EF\u9009\uFF0C\u53EF\u9009\u62E9\u6216\u8F93\u5165\u65B0\u5206\u7EC4\uFF09","chat.sideApp.unnamed":"\u672A\u547D\u540D","chat.sideApp.allTabs":"\u6240\u6709\u6807\u7B7E\u9875","chat.sideApp.close":"\u5173\u95ED","chat.sideApp.empty":"\u9009\u62E9\u4E00\u4E2A\u5E94\u7528\u5F00\u59CB\u4F7F\u7528","chat.sideApp.componentNotFound":"\u672A\u627E\u5230\u7EC4\u4EF6\u89C6\u56FE","chat.todo.title":"\u5F85\u529E","chat.todo.noTasks":"\u6682\u65E0\u4EFB\u52A1","chat.todo.inProgress":"{{count}} \u9879\u8FDB\u884C\u4E2D","chat.todo.completed":"\u5DF2\u5B8C\u6210 {{count}} \u9879","chat.todo.progressTooltip":"\u5DF2\u5B8C\u6210 {{completed}} / {{total}} \u9879\u4EFB\u52A1","chat.task.title":"\u4EFB\u52A1","chat.task.noTasks":"\u6682\u65E0\u4EFB\u52A1","chat.task.inProgress":"{{count}} \u9879\u8FDB\u884C\u4E2D","chat.task.completed":"\u5DF2\u5B8C\u6210 {{count}} \u9879","chat.task.progressTooltip":"\u5DF2\u5B8C\u6210 {{completed}} / {{total}} \u9879\u4EFB\u52A1","chat.customMenu.invalid":"\u65E0\u6548\u7684\u83DC\u5355\u9879","chat.customMenu.empty":"\uFF08\u7A7A\uFF09","chat.customMenu.htmlPage":"\u81EA\u5B9A\u4E49 HTML \u9875\u9762","chat.customMenu.componentNotFound":"\u672A\u627E\u5230\u7EC4\u4EF6\u300C{{name}}\u300D","chat.customMenu.invalidMcpApp":"\u65E0\u6548\u7684 MCP \u5E94\u7528\u83DC\u5355\u9879","chat.customMenu.unknownType":"\u672A\u77E5\u7684\u5185\u5BB9\u7C7B\u578B\uFF1A{{type}}","chat.customMenu.fileFallback":"\u6587\u4EF6","chat.file.changed":"\u6587\u4EF6\u5DF2\u53D8\u66F4","chat.file.explorer":"\u6587\u4EF6\u6D4F\u89C8\u5668","chat.file.count":"{{count}} \u4E2A\u6587\u4EF6","chat.copilot.agentBuilder":"\u667A\u80FD\u4F53\u6784\u5EFA\u5668","chat.copilot.viewing":"\u6B63\u5728\u67E5\u770B\uFF1A{{name}}","chat.copilot.close":"\u5173\u95ED\u526F\u9A7E\u9A76","chat.copilot.selectWorkflow":"\u9009\u62E9\u4E00\u4E2A\u5DE5\u4F5C\u6D41\u5F00\u59CB","chat.environment.title":"\u8FD0\u884C\u73AF\u5883","chat.environment.tools":"\u5DE5\u5177","chat.environment.capabilities":"\u80FD\u529B","chat.environment.subAgents":"\u5B50\u667A\u80FD\u4F53","chat.environment.runtime":"\u8FD0\u884C\u65F6","chat.environment.model":"\u6A21\u578B\uFF1A{{model}}","chat.environment.db":"\u6570\u636E\u5E93\uFF1A{{db}}","chat.environment.skills":"\u6280\u80FD\uFF1A{{skills}}","chat.environment.channels":"\u6E20\u9053","chat.environment.noChannels":"\u672A\u914D\u7F6E\u6E20\u9053","chat.viewToggle.chat":"\u5BF9\u8BDD","chat.viewToggle.graph":"\u6267\u884C\u8FC7\u7A0B","chat.viewToggle.aria":"\u89C6\u56FE\u5207\u6362","chat.trace.backToCurrent":"\u56DE\u5230\u5F53\u524D","chat.trace.collapseOlder":"\u6536\u8D77\u66F4\u65E9","chat.trace.expandAll":"\u5C55\u5F00\u5168\u90E8","chat.trace.parallelBadge":"\u5E76\u53D1 \xD7{{count}}","chat.trace.jumpToChat":"\u5BF9\u8BDD","chat.trace.phase.understand":"\u7406\u89E3\u4E0E\u89C4\u5212","chat.trace.phase.act":"\u6267\u884C","chat.trace.phase.delegate":"\u59D4\u6D3E","chat.trace.phase.answer":"\u56DE\u7B54","chat.trace.phase.earlier":"\u66F4\u65E9","chat.trace.node.human":"\u7528\u6237","chat.trace.summary.steps":"{{count}} \u4E2A\u6B65\u9AA4","chat.trace.summary.steps_one":"{{count}} \u4E2A\u6B65\u9AA4","chat.trace.summary.steps_other":"{{count}} \u4E2A\u6B65\u9AA4","chat.menu.history":"\u5386\u53F2","chat.error.resumeStreamError":"\u6062\u590D\u6D41\u5F0F\u4F20\u8F93\u9519\u8BEF","chat.error.copySucceeded":"\u5DF2\u590D\u5236\u9519\u8BEF\u8BE6\u60C5","chat.error.copyFailed":"\u590D\u5236\u5931\u8D25","chat.error.sectionFallback":"\u6B64\u533A\u57DF","chat.error.renderFailed":"\u6E32\u67D3 {{label}} \u5931\u8D25","chat.error.details":"\u9519\u8BEF\u8BE6\u60C5","chat.error.copyDetails":"\u590D\u5236\u8BE6\u60C5","chat.error.boundary.sidebar":"\u4FA7\u8FB9\u680F","chat.error.boundary.chatPanel":"\u5BF9\u8BDD\u9762\u677F","chat.error.boundary.detailPanel":"\u8BE6\u60C5\u9762\u677F","chat.error.boundary.toolsPanel":"\u5DE5\u5177\u9762\u677F","chat.error.boundary.thread":"\u4F1A\u8BDD","chat.error.boundary.chatShell":"\u5BF9\u8BDD\u5916\u58F3","chat.agent.defaultName":"AI \u52A9\u624B","chat.file.toggleDirectory":"\u5207\u6362\u6587\u4EF6\u76EE\u5F55","chat.conversation.creating":"\u6B63\u5728\u521B\u5EFA\u5BF9\u8BDD\u2026","chat.tools.loading":"\u6B63\u5728\u52A0\u8F7D\u5DE5\u5177\u2026","chat.skills.loading":"\u6B63\u5728\u52A0\u8F7D\u6280\u80FD\u2026","chat.schedule.none":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1","chat.schedule.scheduledCount":"\u5DF2\u5B89\u6392 {{count}} \u9879","chat.schedule.totalCount":"\u5171 {{count}} \u9879","chat.topology.outgoing":"{{count}} \u51FA","chat.topology.incoming":"{{count}} \u5165","chat.config.executableRequired":"\u8BF7\u9009\u62E9\u4E00\u4E2A\u6A21\u677F\u6216\u8F93\u5165\u81EA\u5B9A\u4E49\u53EF\u6267\u884C\u6587\u4EF6","chat.voice.unavailable":"\u8BED\u97F3\u8F93\u5165\u4E0D\u53EF\u7528\uFF1A\u672A\u914D\u7F6E STT \u6A21\u578B","chat.voice.transcribing":"\u8F6C\u5F55\u4E2D\u2026","chat.voice.retryHint":"\u8F6C\u5F55\u5931\u8D25\uFF0C\u70B9\u51FB\u91CD\u8BD5","chat.voice.rerecordHint":"\u70B9\u51FB\u91CD\u65B0\u5F55\u5236","chat.voice.stopRecordingAuto":"\u505C\u6B62\u5F55\u5236\uFF08{{seconds}} \u79D2\uFF0C\u5DF2\u8F6C\u5F55 {{segments}} \u6BB5\uFF09","chat.voice.stopRecording":"\u505C\u6B62\u5F55\u5236\uFF08{{seconds}} \u79D2\uFF09","chat.voice.start":"\u5F00\u59CB\u8BED\u97F3\u8F93\u5165","chat.voice.noModel":"\u672A\u914D\u7F6E STT \u6A21\u578B","chat.voice.uploading":"\u4E0A\u4F20\u4E2D\u2026","chat.voice.modeAuto":"\u81EA\u52A8","chat.voice.modeManual":"\u624B\u52A8","chat.voice.segments":"{{count}} \u6BB5","chat.voice.segments_one":"{{count}} \u6BB5","chat.voice.segments_other":"{{count}} \u6BB5","chat.voice.recordingStatus":"{{mode}}\u6A21\u5F0F\uFF0C\u5F55\u5236\u4E2D {{time}}{{chunks}} \u2014 \u70B9\u51FB\u505C\u6B62","chat.voice.errNotSupported":"\u4E0D\u652F\u6301\u8BED\u97F3\u8F93\u5165\uFF0C\u8BF7\u4F7F\u7528 Chrome\u3001Edge \u6216 Safari\u3002","chat.voice.errFormatNotSupported":"\u6B64\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u8BE5\u97F3\u9891\u5F55\u5236\u683C\u5F0F\u3002","chat.voice.errRecordingFailed":"\u5F55\u5236\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.voice.errRecordInitFailed":"\u5F55\u5236\u521D\u59CB\u5316\u5931\u8D25\u3002","chat.voice.errMicPermission":"\u8BF7\u5728\u6D4F\u89C8\u5668\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u9EA6\u514B\u98CE\u6743\u9650","chat.voice.errMicAccess":"\u65E0\u6CD5\u8BBF\u95EE\u9EA6\u514B\u98CE","chat.voice.errStopTimeout":"\u505C\u6B62\u5F55\u5236\u8D85\u65F6","chat.voice.errTranscribeFailed":"\u8F6C\u5F55\u5931\u8D25","chat.voice.errRetryFailed":"\u91CD\u8BD5\u5931\u8D25","chat.analysis.quickTitle":"\u5FEB\u901F\u5206\u6790","chat.analysis.categoriesTitle":"\u5206\u6790\u7C7B\u522B","chat.analysis.viewMore":"\u67E5\u770B\u66F4\u591A\u5206\u6790\u9009\u9879","chat.analysis.category.sales":"\u9500\u552E\u5206\u6790","chat.analysis.category.financial":"\u8D22\u52A1\u5206\u6790","chat.analysis.category.operations":"\u8FD0\u8425\u5206\u6790","chat.analysis.sales.comprehensive.label":"\u7EFC\u5408\u9500\u552E\u5206\u6790","chat.analysis.sales.comprehensive.description":"\u6309\u6307\u5B9A\u7EF4\u5EA6\u5206\u6790\u9500\u552E\u6536\u5165\uFF0C\u5E76\u8FDB\u884C\u8D8B\u52BF\u5206\u6790\u4E0E\u589E\u957F\u673A\u4F1A\u8BC6\u522B","chat.analysis.sales.performance.label":"\u9500\u552E\u4E1A\u7EE9\u5206\u6790","chat.analysis.sales.performance.description":"\u6C47\u603B\u5168\u6E20\u9053\u9500\u552E\u989D\uFF0C\u8BC4\u4F30\u4E1A\u7EE9\u8FBE\u6210\u7387\uFF0C\u5E76\u4E0E\u5386\u53F2\u589E\u957F\u5BF9\u6BD4","chat.analysis.sales.topCustomers.label":"\u5927\u5BA2\u6237\u5206\u6790","chat.analysis.sales.topCustomers.description":"\u8BC6\u522B\u9500\u552E\u989D\u524D 10% \u7684\u5BA2\u6237\uFF0C\u5206\u6790\u5176\u8D2D\u4E70\u504F\u597D\u4E0E\u6D41\u5931\u98CE\u9669","chat.analysis.sales.trend.label":"\u9500\u552E\u8D8B\u52BF\u5206\u6790","chat.analysis.sales.trend.description":"\u901A\u8FC7\u65F6\u95F4\u5E8F\u5217\u5206\u6790\u9500\u552E\u5CF0\u8C37\uFF0C\u9884\u6D4B\u4E0B\u4E00\u5B63\u5EA6\u9500\u552E\u8D8B\u52BF","chat.analysis.sales.repPerformance.label":"\u9500\u552E\u4EBA\u5458\u4E1A\u7EE9","chat.analysis.sales.repPerformance.description":"\u91CF\u5316\u8BC4\u4F30\u6BCF\u4F4D\u9500\u552E\u4EBA\u5458\u7684\u8F6C\u5316\u7387\u3001\u5BA2\u5355\u4EF7\u4E0E\u5408\u540C\u5C65\u7EA6\u6548\u7387","chat.analysis.sales.regional.label":"\u533A\u57DF\u9500\u552E\u5BF9\u6BD4","chat.analysis.sales.regional.description":"\u5BF9\u6BD4\u4E0D\u540C\u5730\u7406\u533A\u57DF\u7684\u9500\u552E\u6E17\u900F\u7387\uFF0C\u8BC6\u522B\u8868\u73B0\u5F02\u5E38\u7684\u5E02\u573A","chat.analysis.sales.productVolume.label":"\u5546\u54C1\u9500\u91CF\u5206\u6790","chat.analysis.sales.productVolume.description":"\u7EDF\u8BA1\u5404 SKU \u7684\u9500\u91CF\uFF0C\u8BC6\u522B\u7545\u9500\u5546\u54C1\u4E0E\u6EDE\u9500\u5E93\u5B58","chat.analysis.financial.grossMargin.label":"\u4EA7\u54C1\u7EBF\u6BDB\u5229\u5206\u6790","chat.analysis.financial.grossMargin.description":"\u5BF9\u6BD4\u5404\u4EA7\u54C1\u7EBF\u7684\u6BDB\u5229\u6C34\u5E73\uFF0C\u8BC6\u522B\u9AD8\u6BDB\u5229\u8D21\u732E\u4E0E\u4E8F\u635F\u4E1A\u52A1","chat.analysis.financial.customerProfitability.label":"\u5BA2\u6237\u76C8\u5229\u5206\u6790","chat.analysis.financial.customerProfitability.description":"\u6309\u4E0D\u540C\u5BA2\u6237\u7EF4\u5EA6\u5206\u6790\u51C0\u5229\u6DA6\u8D21\u732E\uFF0C\u8BC6\u522B\u6838\u5FC3\u4F18\u8D28\u5BA2\u6237\u4E0E\u9AD8\u670D\u52A1\u6210\u672C\u5BA2\u6237","chat.analysis.financial.monthlyReport.label":"\u6708\u5EA6\u8D22\u52A1\u62A5\u544A","chat.analysis.financial.monthlyReport.description":"\u57FA\u4E8E\u672C\u6708\u6838\u7B97\u6570\u636E\uFF0C\u81EA\u52A8\u751F\u6210\u5229\u6DA6\u8868\u3001\u8D44\u4EA7\u8D1F\u503A\u8868\u4E0E\u73B0\u91D1\u6D41\u91CF\u8868\u6458\u8981","chat.analysis.financial.ratio.label":"\u8D22\u52A1\u6BD4\u7387\u5206\u6790","chat.analysis.financial.ratio.description":"\u8BA1\u7B97\u5E76\u5206\u6790\u6D41\u52A8\u6BD4\u7387\u3001\u8D44\u4EA7\u8D1F\u503A\u7387\u3001ROE \u7B49\u5173\u952E\u6307\u6807\uFF0C\u8BC4\u4F30\u516C\u53F8\u8D22\u52A1\u5065\u5EB7\u5EA6","chat.analysis.financial.cashflow.label":"\u73B0\u91D1\u6D41\u5206\u6790","chat.analysis.financial.cashflow.description":"\u8FFD\u8E2A\u7ECF\u8425\u3001\u6295\u8D44\u4E0E\u7B79\u8D44\u6D3B\u52A8\u73B0\u91D1\u6D41\uFF0C\u5206\u6790\u51C0\u73B0\u91D1\u6D41\u53D8\u52A8\u7684\u539F\u56E0\u4E0E\u8D8B\u52BF","chat.analysis.financial.costStructure.label":"\u6210\u672C\u7ED3\u6784\u5206\u6790","chat.analysis.financial.costStructure.description":"\u62C6\u89E3\u4EA7\u54C1\u6216\u670D\u52A1\u7684\u76F4\u63A5\u6210\u672C\u4E0E\u95F4\u63A5\u8D39\u7528\uFF0C\u8BC6\u522B\u5F71\u54CD\u603B\u6210\u672C\u7684\u6838\u5FC3\u9A71\u52A8\u56E0\u7D20","chat.analysis.operations.supplierEvaluation.label":"\u4F9B\u5E94\u5546\u7EE9\u6548\u8BC4\u4F30","chat.analysis.operations.supplierEvaluation.description":"\u57FA\u4E8E\u4EA4\u4ED8\u8D28\u91CF\u3001\u54CD\u5E94\u901F\u5EA6\u4E0E\u4EF7\u683C\u7ADE\u4E89\u529B\uFF0C\u5BF9\u6838\u5FC3\u4F9B\u5E94\u5546\u8FDB\u884C\u7EFC\u5408\u8BC4\u7EA7","chat.analysis.operations.inventoryTurnover.label":"\u5E93\u5B58\u5468\u8F6C\u5206\u6790","chat.analysis.operations.inventoryTurnover.description":"\u8BA1\u7B97\u5E93\u5B58\u5468\u8F6C\u7387\u4E0E\u5468\u8F6C\u5929\u6570\uFF0C\u8BC6\u522B\u5446\u6EDE\u5E93\u5B58\u7269\u6599\u4EE5\u91CA\u653E\u8D44\u91D1","chat.analysis.operations.deliveryOntime.label":"\u51C6\u65F6\u4EA4\u4ED8\u5206\u6790","chat.analysis.operations.deliveryOntime.description":"\u7EDF\u8BA1\u8BA2\u5355\u4ECE\u4E0B\u5355\u5230\u4EA4\u4ED8\u7684\u5468\u671F\uFF0C\u5206\u6790\u5BFC\u81F4\u5EF6\u8FDF\u4EA4\u4ED8\u7684\u6838\u5FC3\u73AF\u8282","chat.analysis.operations.procurementCost.label":"\u91C7\u8D2D\u6210\u672C\u5206\u6790","chat.analysis.operations.procurementCost.description":"\u76D1\u63A7\u539F\u6750\u6599\u91C7\u8D2D\u4EF7\u683C\u6CE2\u52A8\uFF0C\u5206\u6790\u91C7\u8D2D\u6EA2\u4EF7\u6216\u8282\u7EA6\u5BF9\u5229\u6DA6\u7684\u5F71\u54CD","chat.analysis.operations.productionEfficiency.label":"\u751F\u4EA7\u6548\u7387\u5206\u6790","chat.analysis.operations.productionEfficiency.description":"\u8BA1\u7B97\u8BBE\u5907\u7EFC\u5408\u6548\u7387\uFF08OEE\uFF09\u6216\u4EBA\u5747\u4EA7\u51FA\uFF0C\u8BC6\u522B\u4EA7\u7EBF\u6548\u7387\u74F6\u9888","chat.analysis.operations.orderFulfillment.label":"\u8BA2\u5355\u5C65\u7EA6\u5206\u6790","chat.analysis.operations.orderFulfillment.description":"\u5206\u6790\u4ECE\u63A5\u5355\u5230\u6700\u7EC8\u4EA4\u4ED8\u7684\u5168\u6D41\u7A0B\uFF0C\u4F18\u5316\u8BA2\u5355\u5904\u7406\u54CD\u5E94\u65F6\u95F4","chat.skillCategory.businessAnalysis":"\u4E1A\u52A1\u5206\u6790","chat.skillCategory.codeGeneration":"\u4EE3\u7801\u751F\u6210","chat.skillCategory.documentProcessing":"\u6587\u6863\u5904\u7406","chat.skillCategory.dataAnalysis":"\u6570\u636E\u5206\u6790","chat.skillCategory.toolOperations":"\u5DE5\u5177\u64CD\u4F5C","chat.skillCategory.general":"\u901A\u7528\u6280\u80FD","chat.skillCategory.global":"\u5168\u5C40\u6280\u80FD","chat.skillCategory.viewMore":"\u67E5\u770B\u66F4\u591A\u6280\u80FD\u5206\u7C7B","chat.skillCategory.quickActions":"\u2728 \u5FEB\u6377\u64CD\u4F5C","chat.threadMaintenance.button":"\u7EBF\u7A0B\u7EF4\u62A4","chat.threadMaintenance.title":"\u7EBF\u7A0B\u7EF4\u62A4","chat.threadMaintenance.missingContext":"\u672A\u9009\u62E9\u7EBF\u7A0B\u6216 Agent\u3002","chat.threadMaintenance.loadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u7EF4\u62A4\u6570\u636E\u5931\u8D25\u3002","chat.threadMaintenance.copy":"\u590D\u5236\u7EBF\u7A0B","chat.threadMaintenance.copySuccess":"\u5DF2\u590D\u5236\u5230\u7EBF\u7A0B {{id}}\u3002","chat.threadMaintenance.switchToCopy":"\u5207\u6362\u5230\u526F\u672C","chat.threadMaintenance.copyFailed":"\u590D\u5236\u7EBF\u7A0B\u5931\u8D25\u3002","chat.threadMaintenance.status":"\u72B6\u6001","chat.threadMaintenance.pendingMessages":"\u5F85\u5904\u7406\u6D88\u606F","chat.threadMaintenance.storage":"\u5B58\u50A8","chat.threadMaintenance.checkpoints":"\u68C0\u67E5\u70B9","chat.threadMaintenance.channelValues":"\u901A\u9053\u503C","chat.threadMaintenance.pendingWrites":"\u5F85\u5199\u5165","chat.threadMaintenance.interrupts":"\u5F85\u5904\u7406\u4E2D\u65AD","chat.threadMaintenance.noInterrupts":"\u6682\u65E0\u5F85\u5904\u7406\u4E2D\u65AD\u3002","chat.threadMaintenance.history":"\u6700\u8FD1\u68C0\u67E5\u70B9","chat.threadMaintenance.noHistory":"\u6682\u65E0\u68C0\u67E5\u70B9","chat.threadMaintenance.checkpointId":"\u68C0\u67E5\u70B9","chat.threadMaintenance.checkpointTime":"\u521B\u5EFA\u65F6\u95F4","chat.threadMaintenance.unknown":"\u672A\u77E5","chat.threadMaintenance.viewState":"\u67E5\u770B\u72B6\u6001","chat.threadMaintenance.stateTitle":"\u68C0\u67E5\u70B9\u72B6\u6001","chat.threadMaintenance.stateFailed":"\u52A0\u8F7D\u68C0\u67E5\u70B9\u72B6\u6001\u5931\u8D25\u3002","chat.threadMaintenance.loadingState":"\u6B63\u5728\u52A0\u8F7D\u72B6\u6001\u2026","chat.threadMaintenance.pruneDelete":"\u5220\u9664\u7EBF\u7A0B","chat.threadMaintenance.pruneDeleteTitle":"\u5220\u9664\u7EBF\u7A0B","chat.threadMaintenance.pruneDeleteConfirm":"\u5220\u9664\u6B64\u7EBF\u7A0B\u53CA\u5176\u68C0\u67E5\u70B9\uFF1F","chat.threadMaintenance.pruneKeepLatest":"\u4FDD\u7559\u6700\u65B0","chat.threadMaintenance.pruneKeepTitle":"\u6E05\u7406\u68C0\u67E5\u70B9","chat.threadMaintenance.pruneKeepConfirm":"\u4FDD\u7559\u6700\u65B0 {{count}} \u4E2A\u68C0\u67E5\u70B9\uFF1F","chat.threadMaintenance.pruneFailed":"\u7EBF\u7A0B\u7EF4\u62A4\u5931\u8D25\u3002","chat.threadMaintenance.keepLabel":"\u4FDD\u7559\u68C0\u67E5\u70B9\u6570\u91CF","chat.threadMaintenance.statusLoadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u72B6\u6001\u5931\u8D25\u3002","chat.threadMaintenance.storageLoadFailed":"\u5B58\u50A8\u7EDF\u8BA1\u4E0D\u53EF\u7528\u3002","chat.threadMaintenance.historyLoadFailed":"\u52A0\u8F7D\u7EBF\u7A0B\u5386\u53F2\u5931\u8D25\u3002","chat.threadMaintenance.runs":"\u8FD0\u884C\u8BB0\u5F55","chat.threadMaintenance.noRuns":"\u6682\u65E0\u8FD0\u884C\u8BB0\u5F55","chat.threadMaintenance.runStatus":"\u72B6\u6001","chat.threadMaintenance.runId":"\u8FD0\u884C ID","chat.threadMaintenance.runCreated":"\u521B\u5EFA\u65F6\u95F4","chat.threadMaintenance.runOwner":"\u6267\u884C\u8005 / \u5C1D\u8BD5\u6B21\u6570","chat.threadMaintenance.interruptRun":"\u4E2D\u65AD","chat.threadMaintenance.rollbackRun":"\u56DE\u6EDA","chat.threadMaintenance.interruptRunConfirm":"\u4E2D\u65AD\u6B64\u6B21\u8FD0\u884C\uFF1F","chat.threadMaintenance.rollbackRunConfirm":"\u56DE\u6EDA\u6B64\u6B21\u8FD0\u884C\uFF1F","chat.threadMaintenance.runCancelFailed":"\u53D6\u6D88\u8FD0\u884C\u5931\u8D25\u3002","chat.threadMaintenance.runsLoadFailed":"\u52A0\u8F7D\u8FD0\u884C\u8BB0\u5F55\u5931\u8D25\u3002","chat.thread.createOptions.menuLabel":"\u5E26\u9009\u9879\u521B\u5EFA\u2026","chat.thread.createOptions.open":"\u66F4\u591A\u521B\u5EFA\u9009\u9879","chat.thread.createOptions.title":"\u5E26\u9009\u9879\u521B\u5EFA\u7EBF\u7A0B","chat.thread.createOptions.ttlLabel":"TTL\uFF08\u5206\u949F\uFF09","chat.thread.createOptions.ttlPlaceholder":"\u65E0 TTL","chat.thread.createOptions.ttlHint":"\u7559\u7A7A\u6216 0 \u8868\u793A\u6C38\u4E0D\u8FC7\u671F\u3002","chat.thread.createOptions.superstepsLabel":"Supersteps JSON","chat.thread.createOptions.superstepsPlaceholder":'[{"updates":[{"values":{"messages":[]}}]}]',"chat.thread.createOptions.invalidSupersteps":"Supersteps \u5FC5\u987B\u662F\u5305\u542B updates \u548C\u5BF9\u8C61 values \u7684\u6570\u7EC4\u3002","chat.thread.createOptions.createFailed":"\u521B\u5EFA\u7EBF\u7A0B\u5931\u8D25\u3002","chat.run.status.pending":"\u6392\u961F\u4E2D","chat.run.status.running":"\u8FD0\u884C\u4E2D","chat.run.status.awaitingInput":"\u7B49\u5F85\u4F60\u7684\u786E\u8BA4","chat.run.status.interrupted":"\u5DF2\u4E2D\u65AD","chat.run.status.timeout":"\u6267\u884C\u8D85\u65F6","chat.run.status.error":"\u6267\u884C\u5931\u8D25","chat.run.elapsed":"{{seconds}} \u79D2","chat.run.cancel":"\u53D6\u6D88","chat.run.cancelFailed":"\u53D6\u6D88\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","chat.run.dismiss":"\u5173\u95ED","chat.run.error.quota":"\u5F53\u524D\u79DF\u6237\u5E76\u53D1\u5DF2\u6EE1\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.rejected":"\u8BE5\u5BF9\u8BDD\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7B49\u5F85\u5F53\u524D\u56DE\u590D\u5B8C\u6210\u3002","chat.run.error.rollbackInProgress":"\u6B63\u5728\u56DE\u6EDA\u4E0A\u4E00\u6761\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.unavailable":"\u6267\u884C\u961F\u5217\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.run.error.notFound":"\u6267\u884C\u8BB0\u5F55\u5DF2\u4E0D\u5B58\u5728\u3002","chat.run.error.joinTimeout":"\u6267\u884C\u4ECD\u5728\u8FDB\u884C\u4E2D\u3002","chat.run.error.affinity":"\u6267\u884C\u5DF2\u5207\u6362\u5230\u5176\u4ED6\u526F\u672C\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5\u3002","chat.run.error.network":"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002","chat.run.error.stateIncompatible":"\u8FD0\u884C\u65F6\u72B6\u6001\u4E0D\u517C\u5BB9\uFF0C\u8BF7\u65B0\u5EFA\u5BF9\u8BDD\u91CD\u8BD5\u3002","chat.run.error.generic":"\u6267\u884C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","chat.messageRail.label":"\u4F60\u7684\u6D88\u606F","chat.messageRail.jump":"\u8DF3\u8F6C\u5230\u4F60\u7684\u6D88\u606F\uFF1A{{preview}}","chat.run.status.queued":"{{count}} \u6761\u6392\u961F","chat.queue.count":"{{count}} \u6761\u6392\u961F","chat.queue.queued":"\u6392\u961F\u4E2D\u7684\u6D88\u606F","chat.queue.cancel":"\u79FB\u9664\u6392\u961F\u6D88\u606F","chat.queue.cancelFailed":"\u79FB\u9664\u6392\u961F\u6D88\u606F\u5931\u8D25"},c={messages:t};export{c as default,t as messages};
|
package/dist/embed/embed-page.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{b as h}from"./embed-page-chunk-
|
|
2
|
-
html, body, #${
|
|
1
|
+
import{b as h}from"./embed-page-chunk-WGEXK773.js";import"./embed-page-chunk-IBRMWDHE.js";import"./embed-page-chunk-4XKCMM5C.js";import"./embed-page-chunk-PMOGSY6W.js";import"./embed-page-chunk-BSRASK7V.js";import"./embed-page-chunk-F7ZUYG42.js";import"./embed-page-chunk-ASEIOK7X.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-34RWKVD7.js";import"./embed-page-chunk-B2KNZ3EW.js";import{a as b}from"./embed-page-chunk-F7TA3LRH.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-6IIMW7OG.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),v=/^[A-Za-z0-9._:@-]{1,128}$/,S="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
|
|
2
|
+
html, body, #${S} { height: 100%; margin: 0; overflow: hidden; }
|
|
3
3
|
.axiom-embed-fill { height: 100% !important; min-height: 0 !important; }
|
|
4
4
|
.axiom-embed-card { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; color: #64748b; padding: 24px; box-sizing: border-box; text-align: center; }
|
|
5
5
|
.axiom-embed-loading { color: #64748b; }
|
|
6
|
-
`,o={webAppId:null,hostOrigin:null,root:null,booted:!1,userId:null,hostConfig:null,sendApi:null,pendingSends:[]},u=null;function Y(){let e=/^\/api\/web-apps\/([^/]+)\/chat$/.exec(window.location.pathname);if(!e)return null;let t;try{t=decodeURIComponent(e[1])}catch{return null}return
|
|
6
|
+
`,o={webAppId:null,hostOrigin:null,root:null,booted:!1,userId:null,hostConfig:null,sendApi:null,pendingSends:[]},u=null;function Y(){let e=/^\/api\/web-apps\/([^/]+)\/chat$/.exec(window.location.pathname);if(!e)return null;let t;try{t=decodeURIComponent(e[1])}catch{return null}return v.test(t)?t:null}function F(){return new URLSearchParams(window.location.search).get("mode")==="embed"}function p(){return document.getElementById(S)??document.getElementById("root")}function I(e){return o.root===null&&(o.root=(0,T.createRoot)(e)),o.root}function s(e,t){if(window.parent===window)return;let n=o.hostOrigin;n!==null&&window.parent.postMessage(R(e,t),n)}var c=f.messages;function d(e,t){let n=p();n!==null&&(0,M.flushSync)(()=>{I(n).render((0,r.jsx)("div",{className:"axiom-embed-card","data-axiom-embed-state":e,role:e==="error"?"alert":"status",children:t}))})}function V(){if(document.getElementById(k)!==null)return;let e=document.createElement("style");e.id=k,e.textContent=j,document.head.appendChild(e)}function W(e){if(typeof e!="object"||e===null)return null;let t=e.userId;return typeof t=="string"&&v.test(t)?t:null}function $(e){let t=typeof e=="object"&&e!==null?e.text:void 0;if(typeof t!="string"){s("axiom:error",{code:"INVALID_REQUEST",message:"axiom:send payload must be { text: string }"});return}let n=t.trim();if(!n){s("axiom:error",{code:"INVALID_REQUEST",message:"axiom:send text must not be empty"});return}if(n.length>P){s("axiom:error",{code:"INVALID_REQUEST",message:`axiom:send text exceeds the ${P} character limit`});return}let a=o.sendApi;if(a===null){o.pendingSends.push(n);return}a.sendMessage(n)}function X(e){o.sendApi=e;let t=o.pendingSends.splice(0);setTimeout(()=>{for(let n of t)o.sendApi?.sendMessage(n)},0)}function O(){let e=o.webAppId,t=o.userId;if(e===null||t===null)return;let n=p();if(n===null)return;let a=F();a&&V();let L=i=>{s("axiom:error",{code:i.code,message:i.message}),i.retryable||d("error",`${i.code}: ${i.message}`)},N=i=>{X(i)},U=i=>{s("axiom:message",i)},g=o.hostConfig;I(n).render((0,r.jsx)(h,{className:a?"axiom-embed-fill":void 0,gatewayUrl:window.location.origin,webAppId:e,identity:{mode:"unverified",userId:t},welcome:g?.welcome,quickPrompts:g?.quicks,onError:L,onChatReady:N,onChatMessage:U}))}function K(e){if(!o.booted){if(o.webAppId===null){s("axiom:error",{code:"WEB_APP_NOT_FOUND",message:"The embed page URL does not contain a valid web app id"}),d("error",(0,r.jsxs)(r.Fragment,{children:["WEB_APP_NOT_FOUND: ",c["integration.embed.webAppNotFound"]]}));return}p()!==null&&(o.booted=!0,o.userId=e,O())}}function Z(e){let t=C(e);t!==null&&(o.hostConfig=t,o.booted&&O())}function J(e){let t=W(e);if(t===null){s("axiom:error",{code:"USER_ID_REQUIRED",message:"A valid embed user identity is required"}),d("error",(0,r.jsxs)(r.Fragment,{children:["USER_ID_REQUIRED: ",c["integration.embed.userIdRequired"]]}));return}K(t)}function ee(e){if(e.source!==window.parent||typeof e.origin!="string"||e.origin.length===0)return;let t=A(e.data,_);t&&(o.hostOrigin=e.origin,t.type==="axiom:hello"?s("axiom:ready",{features:[]}):t.type==="axiom:identity"?J(t.payload):t.type==="axiom:config"?Z(t.payload):t.type==="axiom:send"&&$(t.payload))}function D(){u!==null&&window.removeEventListener("message",u),o.webAppId=Y(),o.hostOrigin=null,o.root=null,o.booted=!1,o.userId=null,o.hostConfig=null,o.sendApi=null,o.pendingSends=[];let e=t=>{ee(t)};u=e,window.addEventListener("message",e),d("guidance",c["integration.embed.guidance"])}D();
|
package/dist/index.js
CHANGED
|
@@ -11744,6 +11744,29 @@ async function listAllRuns(ledger, tenantId, threadId) {
|
|
|
11744
11744
|
if (page.length < ACTIVE_RUN_PAGE_SIZE) return runs;
|
|
11745
11745
|
}
|
|
11746
11746
|
}
|
|
11747
|
+
var INPUT_PREVIEW_MAX = 200;
|
|
11748
|
+
function contentToPreview(content) {
|
|
11749
|
+
if (typeof content === "string") return content;
|
|
11750
|
+
if (!Array.isArray(content)) return "";
|
|
11751
|
+
return content.map((part) => {
|
|
11752
|
+
if (typeof part === "string") return part;
|
|
11753
|
+
return isRecord(part) && typeof part.text === "string" ? part.text : "";
|
|
11754
|
+
}).join("");
|
|
11755
|
+
}
|
|
11756
|
+
function inputPreview(input) {
|
|
11757
|
+
if (!isRecord(input)) return null;
|
|
11758
|
+
if (typeof input.message === "string") {
|
|
11759
|
+
return input.message.trim().slice(0, INPUT_PREVIEW_MAX) || null;
|
|
11760
|
+
}
|
|
11761
|
+
const messages = Array.isArray(input.messages) ? input.messages : [];
|
|
11762
|
+
for (const message of messages) {
|
|
11763
|
+
if (!isRecord(message)) continue;
|
|
11764
|
+
if (message.role !== void 0 && message.role !== "human") continue;
|
|
11765
|
+
const text = contentToPreview(message.content).trim();
|
|
11766
|
+
if (text) return text.slice(0, INPUT_PREVIEW_MAX);
|
|
11767
|
+
}
|
|
11768
|
+
return null;
|
|
11769
|
+
}
|
|
11747
11770
|
function toSafeRun(run2) {
|
|
11748
11771
|
return {
|
|
11749
11772
|
runId: run2.runId,
|
|
@@ -11755,7 +11778,9 @@ function toSafeRun(run2) {
|
|
|
11755
11778
|
createdAt: run2.createdAt,
|
|
11756
11779
|
updatedAt: run2.updatedAt,
|
|
11757
11780
|
startedAt: run2.startedAt,
|
|
11758
|
-
finishedAt: run2.finishedAt
|
|
11781
|
+
finishedAt: run2.finishedAt,
|
|
11782
|
+
messageId: run2.inputMessageIds[0] ?? null,
|
|
11783
|
+
inputPreview: inputPreview(run2.input)
|
|
11759
11784
|
};
|
|
11760
11785
|
}
|
|
11761
11786
|
function isTerminal(run2) {
|
|
@@ -11885,6 +11910,35 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
11885
11910
|
const pollIntervalMs = deps.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
11886
11911
|
const now = deps.now ?? Date.now;
|
|
11887
11912
|
const sleep = deps.sleep ?? ((ms) => new Promise((resolve4) => setTimeout(resolve4, ms)));
|
|
11913
|
+
const withRunCreateLock = async (request, reply, tenantId, assistantId, threadId, operation) => {
|
|
11914
|
+
const key = runCreateScopeKey(tenantId, assistantId, threadId);
|
|
11915
|
+
return serializeRunCreate(key, async () => {
|
|
11916
|
+
const leaseStore = resolveLeaseStore();
|
|
11917
|
+
if (!leaseStore) return operation();
|
|
11918
|
+
try {
|
|
11919
|
+
return await (0, import_core9.withLease)(
|
|
11920
|
+
leaseStore,
|
|
11921
|
+
key,
|
|
11922
|
+
(0, import_core9.getReplicaId)(),
|
|
11923
|
+
operation,
|
|
11924
|
+
RUN_CREATE_LEASE
|
|
11925
|
+
);
|
|
11926
|
+
} catch (error) {
|
|
11927
|
+
if (error instanceof import_core9.LeaseAcquisitionTimeoutError) {
|
|
11928
|
+
request.log.warn(
|
|
11929
|
+
{ err: error, leaseKey: key },
|
|
11930
|
+
"Run create lease acquisition timed out"
|
|
11931
|
+
);
|
|
11932
|
+
return unavailable(
|
|
11933
|
+
reply,
|
|
11934
|
+
RUN_CREATE_LOCK_TIMEOUT,
|
|
11935
|
+
"Could not serialize run creation for this thread; retry shortly"
|
|
11936
|
+
);
|
|
11937
|
+
}
|
|
11938
|
+
throw error;
|
|
11939
|
+
}
|
|
11940
|
+
});
|
|
11941
|
+
};
|
|
11888
11942
|
const waitForTerminal = async (tenantId, params, initial) => {
|
|
11889
11943
|
let current4 = initial;
|
|
11890
11944
|
const deadline = now() + waitTimeoutMs;
|
|
@@ -12114,35 +12168,6 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12114
12168
|
const outcome2 = await createPending();
|
|
12115
12169
|
return outcome2.ok ? respondCreated(outcome2.run) : outcome2.response;
|
|
12116
12170
|
};
|
|
12117
|
-
const withRunCreateLock = async (operation) => {
|
|
12118
|
-
const key = runCreateScopeKey(tenantId, assistantId, threadId);
|
|
12119
|
-
return serializeRunCreate(key, async () => {
|
|
12120
|
-
const leaseStore = resolveLeaseStore();
|
|
12121
|
-
if (!leaseStore) return operation();
|
|
12122
|
-
try {
|
|
12123
|
-
return await (0, import_core9.withLease)(
|
|
12124
|
-
leaseStore,
|
|
12125
|
-
key,
|
|
12126
|
-
(0, import_core9.getReplicaId)(),
|
|
12127
|
-
operation,
|
|
12128
|
-
RUN_CREATE_LEASE
|
|
12129
|
-
);
|
|
12130
|
-
} catch (error) {
|
|
12131
|
-
if (error instanceof import_core9.LeaseAcquisitionTimeoutError) {
|
|
12132
|
-
request.log.warn(
|
|
12133
|
-
{ err: error, leaseKey: key },
|
|
12134
|
-
"Run create lease acquisition timed out"
|
|
12135
|
-
);
|
|
12136
|
-
return unavailable(
|
|
12137
|
-
reply,
|
|
12138
|
-
RUN_CREATE_LOCK_TIMEOUT,
|
|
12139
|
-
"Could not serialize run creation for this thread; retry shortly"
|
|
12140
|
-
);
|
|
12141
|
-
}
|
|
12142
|
-
throw error;
|
|
12143
|
-
}
|
|
12144
|
-
});
|
|
12145
|
-
};
|
|
12146
12171
|
const scopedRunApiRuns = (runs) => runs.filter(
|
|
12147
12172
|
(run2) => run2.tenantId === tenantId && run2.threadId === threadId && run2.assistantId === assistantId && run2.source === "run_api"
|
|
12148
12173
|
);
|
|
@@ -12162,7 +12187,7 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12162
12187
|
}
|
|
12163
12188
|
};
|
|
12164
12189
|
if (strategy === "reject") {
|
|
12165
|
-
return withRunCreateLock(async () => {
|
|
12190
|
+
return withRunCreateLock(request, reply, tenantId, assistantId, threadId, async () => {
|
|
12166
12191
|
const read = await readThreadRuns();
|
|
12167
12192
|
if (!read.ok) return read.response;
|
|
12168
12193
|
const active2 = scopedRunApiRuns(read.runs).filter(isActiveRun);
|
|
@@ -12178,7 +12203,7 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12178
12203
|
});
|
|
12179
12204
|
}
|
|
12180
12205
|
if (strategy === "interrupt") {
|
|
12181
|
-
return withRunCreateLock(async () => {
|
|
12206
|
+
return withRunCreateLock(request, reply, tenantId, assistantId, threadId, async () => {
|
|
12182
12207
|
const read = await readThreadRuns();
|
|
12183
12208
|
if (!read.ok) return read.response;
|
|
12184
12209
|
const scoped = scopedRunApiRuns(read.runs);
|
|
@@ -12241,8 +12266,8 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12241
12266
|
return createAndRespond();
|
|
12242
12267
|
});
|
|
12243
12268
|
}
|
|
12244
|
-
if (strategy !== "rollback") return withRunCreateLock(createAndRespond);
|
|
12245
|
-
return withRunCreateLock(async () => {
|
|
12269
|
+
if (strategy !== "rollback") return withRunCreateLock(request, reply, tenantId, assistantId, threadId, createAndRespond);
|
|
12270
|
+
return withRunCreateLock(request, reply, tenantId, assistantId, threadId, async () => {
|
|
12246
12271
|
const active2 = (await listAllRuns(ledger, tenantId, threadId)).filter(
|
|
12247
12272
|
(run2) => run2.tenantId === tenantId && run2.threadId === threadId && run2.assistantId === assistantId && run2.source !== "legacy" && (run2.status === "pending" || run2.status === "running")
|
|
12248
12273
|
);
|
|
@@ -12377,6 +12402,76 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12377
12402
|
return createAndRespond();
|
|
12378
12403
|
});
|
|
12379
12404
|
};
|
|
12405
|
+
const cancelActive = async (request, reply) => {
|
|
12406
|
+
if (!ledger) {
|
|
12407
|
+
return unavailable(reply, RUN_LEDGER_UNAVAILABLE, "Run ledger is not available");
|
|
12408
|
+
}
|
|
12409
|
+
const tenantId = getTenantId4(request);
|
|
12410
|
+
const { assistantId, threadId } = request.params;
|
|
12411
|
+
if (!await ownsThread(tenantId, assistantId, threadId)) {
|
|
12412
|
+
return notFound2(reply, THREAD_NOT_FOUND2, "Thread not found");
|
|
12413
|
+
}
|
|
12414
|
+
const router = resolveRouter();
|
|
12415
|
+
return withRunCreateLock(request, reply, tenantId, assistantId, threadId, async () => {
|
|
12416
|
+
let runs;
|
|
12417
|
+
try {
|
|
12418
|
+
runs = await listAllRuns(ledger, tenantId, threadId);
|
|
12419
|
+
} catch (error) {
|
|
12420
|
+
request.log.error({ err: error }, "Active run read failed");
|
|
12421
|
+
return unavailable(reply, RUN_CREATE_UNAVAILABLE2, "Run queue is not available");
|
|
12422
|
+
}
|
|
12423
|
+
const active2 = runs.filter(
|
|
12424
|
+
(run2) => run2.tenantId === tenantId && run2.assistantId === assistantId && run2.threadId === threadId && run2.source === "run_api" && isActiveRun(run2)
|
|
12425
|
+
);
|
|
12426
|
+
const cancelled = [];
|
|
12427
|
+
const requested = [];
|
|
12428
|
+
const failed = [];
|
|
12429
|
+
for (const run2 of active2) {
|
|
12430
|
+
try {
|
|
12431
|
+
if (run2.status === "pending") {
|
|
12432
|
+
const status2 = await ledger.requestCancel(tenantId, run2.runId);
|
|
12433
|
+
if (status2 === "cancelled") {
|
|
12434
|
+
const latest = await ledger.getRun(tenantId, run2.runId);
|
|
12435
|
+
if (latest) cancelled.push(toSafeRun(latest));
|
|
12436
|
+
} else if (status2 === "requested") {
|
|
12437
|
+
requested.push(toSafeRun(run2));
|
|
12438
|
+
}
|
|
12439
|
+
continue;
|
|
12440
|
+
}
|
|
12441
|
+
if (router) {
|
|
12442
|
+
const status2 = await router.requestCancelById({
|
|
12443
|
+
tenantId,
|
|
12444
|
+
assistantId,
|
|
12445
|
+
threadId,
|
|
12446
|
+
runId: run2.runId,
|
|
12447
|
+
reason: "abort"
|
|
12448
|
+
});
|
|
12449
|
+
if (status2 === "requested" || status2 === "cancelled") {
|
|
12450
|
+
requested.push(toSafeRun(run2));
|
|
12451
|
+
}
|
|
12452
|
+
continue;
|
|
12453
|
+
}
|
|
12454
|
+
const status = await ledger.requestCancel(tenantId, run2.runId);
|
|
12455
|
+
if (status === "requested" || status === "cancelled") {
|
|
12456
|
+
requested.push(toSafeRun(run2));
|
|
12457
|
+
}
|
|
12458
|
+
} catch (error) {
|
|
12459
|
+
failed.push({
|
|
12460
|
+
runId: run2.runId,
|
|
12461
|
+
code: "RUN_CANCEL_FAILED",
|
|
12462
|
+
message: error instanceof Error ? error.message : String(error)
|
|
12463
|
+
});
|
|
12464
|
+
}
|
|
12465
|
+
}
|
|
12466
|
+
return reply.status(200).send({
|
|
12467
|
+
success: true,
|
|
12468
|
+
accepted: failed.length === 0,
|
|
12469
|
+
cancelled,
|
|
12470
|
+
requested,
|
|
12471
|
+
failed
|
|
12472
|
+
});
|
|
12473
|
+
});
|
|
12474
|
+
};
|
|
12380
12475
|
const list = async (request, reply) => {
|
|
12381
12476
|
if (!ledger) {
|
|
12382
12477
|
return unavailable(reply, RUN_LEDGER_UNAVAILABLE, "Run ledger is not available");
|
|
@@ -12386,12 +12481,14 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12386
12481
|
if (!await ownsThread(tenantId, assistantId, threadId)) {
|
|
12387
12482
|
return notFound2(reply, THREAD_NOT_FOUND2, "Thread not found");
|
|
12388
12483
|
}
|
|
12389
|
-
const
|
|
12390
|
-
|
|
12484
|
+
const activeOnly = request.query.active === "true" || request.query.active === "1";
|
|
12485
|
+
const source = request.query.source;
|
|
12486
|
+
const scoped = (activeOnly ? await listAllRuns(ledger, tenantId, threadId) : await ledger.listRuns(tenantId, threadId)).filter(
|
|
12487
|
+
(run2) => run2.tenantId === tenantId && run2.threadId === threadId && run2.assistantId === assistantId && (!activeOnly || isActiveRun(run2)) && (source === void 0 || run2.source === source)
|
|
12391
12488
|
);
|
|
12392
12489
|
return reply.status(200).send({
|
|
12393
12490
|
success: true,
|
|
12394
|
-
data: { runs:
|
|
12491
|
+
data: { runs: scoped.map(toSafeRun) }
|
|
12395
12492
|
});
|
|
12396
12493
|
};
|
|
12397
12494
|
const get = async (request, reply) => {
|
|
@@ -12747,7 +12844,7 @@ function createRunLifecycleHandlers(deps = {}) {
|
|
|
12747
12844
|
run: toSafeRun(outcome2.run)
|
|
12748
12845
|
});
|
|
12749
12846
|
};
|
|
12750
|
-
return { create, list, get, join: join5, cancel };
|
|
12847
|
+
return { create, list, get, join: join5, cancel, cancelActive };
|
|
12751
12848
|
}
|
|
12752
12849
|
function registerRunLifecycleRoutes(app2, deps = {}) {
|
|
12753
12850
|
const handlers = createRunLifecycleHandlers(deps);
|
|
@@ -12759,6 +12856,10 @@ function registerRunLifecycleRoutes(app2, deps = {}) {
|
|
|
12759
12856
|
"/api/assistants/:assistantId/threads/:threadId/runs",
|
|
12760
12857
|
handlers.list
|
|
12761
12858
|
);
|
|
12859
|
+
app2.post(
|
|
12860
|
+
"/api/assistants/:assistantId/threads/:threadId/runs/cancel-active",
|
|
12861
|
+
handlers.cancelActive
|
|
12862
|
+
);
|
|
12762
12863
|
app2.get(
|
|
12763
12864
|
"/api/assistants/:assistantId/threads/:threadId/runs/:runId",
|
|
12764
12865
|
handlers.get
|
|
@@ -20513,15 +20614,25 @@ var ProjectAccessService = class {
|
|
|
20513
20614
|
input.projectId,
|
|
20514
20615
|
input.userId
|
|
20515
20616
|
);
|
|
20516
|
-
if (
|
|
20617
|
+
if (project.kind === "personal") {
|
|
20618
|
+
if (!this.isActiveMembership(membership, input)) this.accessDenied();
|
|
20517
20619
|
this.requireCapability(membership, input.capability);
|
|
20518
20620
|
return { project, membership };
|
|
20519
20621
|
}
|
|
20622
|
+
if (this.isActiveMembership(membership, input) && this.hasCapability(membership, input.capability)) {
|
|
20623
|
+
return { project, membership };
|
|
20624
|
+
}
|
|
20625
|
+
const tenantAdmin = await this.tenantAdminMembership(project, input);
|
|
20626
|
+
if (this.isActiveMembership(membership, input)) {
|
|
20627
|
+
if (tenantAdmin) return { project, membership: tenantAdmin };
|
|
20628
|
+
this.requireCapability(membership, input.capability);
|
|
20629
|
+
}
|
|
20520
20630
|
const memberships = await this.deps.membershipStore.list(input.tenantId, input.projectId);
|
|
20521
|
-
if (memberships.length !== 0)
|
|
20522
|
-
|
|
20523
|
-
|
|
20524
|
-
|
|
20631
|
+
if (memberships.length !== 0) {
|
|
20632
|
+
if (tenantAdmin) return { project, membership: tenantAdmin };
|
|
20633
|
+
this.accessDenied();
|
|
20634
|
+
}
|
|
20635
|
+
if (!tenantAdmin) this.accessDenied();
|
|
20525
20636
|
let claim;
|
|
20526
20637
|
try {
|
|
20527
20638
|
claim = await this.deps.membershipStore.createInitialOwner({
|
|
@@ -20564,9 +20675,19 @@ var ProjectAccessService = class {
|
|
|
20564
20675
|
input.projectId,
|
|
20565
20676
|
input.userId
|
|
20566
20677
|
);
|
|
20567
|
-
|
|
20568
|
-
|
|
20569
|
-
|
|
20678
|
+
const activeMembership = this.isActiveMembership(membership, input) ? membership : void 0;
|
|
20679
|
+
if (project.kind === "personal") {
|
|
20680
|
+
if (!activeMembership) this.accessDenied();
|
|
20681
|
+
this.requireCapability(activeMembership, input.capability);
|
|
20682
|
+
return { project, membership: activeMembership };
|
|
20683
|
+
}
|
|
20684
|
+
if (activeMembership && this.hasCapability(activeMembership, input.capability)) {
|
|
20685
|
+
return { project, membership: activeMembership };
|
|
20686
|
+
}
|
|
20687
|
+
const tenantAdmin = await this.tenantAdminMembership(project, input);
|
|
20688
|
+
if (tenantAdmin) return { project, membership: tenantAdmin };
|
|
20689
|
+
if (activeMembership) this.requireCapability(activeMembership, input.capability);
|
|
20690
|
+
this.accessDenied();
|
|
20570
20691
|
}
|
|
20571
20692
|
/**
|
|
20572
20693
|
* Authorizes roster visibility for any active participant (owner/admin/member/viewer).
|
|
@@ -20588,6 +20709,9 @@ var ProjectAccessService = class {
|
|
|
20588
20709
|
input.userId
|
|
20589
20710
|
);
|
|
20590
20711
|
if (membership?.status === "active") {
|
|
20712
|
+
if (this.hasCapability(membership, input.capability)) return { project, membership };
|
|
20713
|
+
const tenantAdmin = await this.tenantAdminMembership(project, input);
|
|
20714
|
+
if (tenantAdmin) return { project, membership: tenantAdmin };
|
|
20591
20715
|
this.requireCapability(membership, input.capability);
|
|
20592
20716
|
return { project, membership };
|
|
20593
20717
|
}
|
|
@@ -20602,6 +20726,9 @@ var ProjectAccessService = class {
|
|
|
20602
20726
|
input.userId
|
|
20603
20727
|
);
|
|
20604
20728
|
if (membership?.status === "active") {
|
|
20729
|
+
if (this.hasCapability(membership, input.capability)) return { project, membership };
|
|
20730
|
+
const tenantAdmin = await this.tenantAdminMembership(project, input);
|
|
20731
|
+
if (tenantAdmin) return { project, membership: tenantAdmin };
|
|
20605
20732
|
this.requireCapability(membership, input.capability);
|
|
20606
20733
|
return { project, membership };
|
|
20607
20734
|
}
|
|
@@ -20653,8 +20780,29 @@ var ProjectAccessService = class {
|
|
|
20653
20780
|
throw error;
|
|
20654
20781
|
}
|
|
20655
20782
|
}
|
|
20783
|
+
hasCapability(membership, capability2) {
|
|
20784
|
+
return allowedRoles[capability2].has(membership.role);
|
|
20785
|
+
}
|
|
20656
20786
|
requireCapability(membership, capability2) {
|
|
20657
|
-
if (!
|
|
20787
|
+
if (!this.hasCapability(membership, capability2)) this.accessDenied();
|
|
20788
|
+
}
|
|
20789
|
+
async tenantAdminMembership(project, input) {
|
|
20790
|
+
if (project.kind === "personal") return void 0;
|
|
20791
|
+
const tenantLink = await this.deps.userTenantLinkStore.getLink(input.userId, input.tenantId);
|
|
20792
|
+
if (tenantLink?.role !== "owner" && tenantLink?.role !== "admin") return void 0;
|
|
20793
|
+
return {
|
|
20794
|
+
id: `tenant-admin:${input.userId}`,
|
|
20795
|
+
tenantId: input.tenantId,
|
|
20796
|
+
projectId: project.id,
|
|
20797
|
+
userId: input.userId,
|
|
20798
|
+
role: "admin",
|
|
20799
|
+
status: "active",
|
|
20800
|
+
joinedAt: project.createdAt,
|
|
20801
|
+
updatedAt: project.updatedAt
|
|
20802
|
+
};
|
|
20803
|
+
}
|
|
20804
|
+
isActiveMembership(membership, input) {
|
|
20805
|
+
return membership != null && membership.tenantId === input.tenantId && membership.projectId === input.projectId && membership.userId === input.userId && membership.status === "active";
|
|
20658
20806
|
}
|
|
20659
20807
|
accessDenied() {
|
|
20660
20808
|
throw new ProjectCollaborationError("PROJECT_ACCESS_DENIED", 403, "Project access denied");
|
|
@@ -29565,6 +29713,15 @@ function registerAgentWebAppRuntimeRoutes(app2, deps) {
|
|
|
29565
29713
|
return normalizeError2(reply, error);
|
|
29566
29714
|
}
|
|
29567
29715
|
});
|
|
29716
|
+
routes.post(`${prefix}/assistants/:assistantId/threads/:threadId/runs/cancel-active`, async (request, reply) => {
|
|
29717
|
+
try {
|
|
29718
|
+
const params = mirrorThreadParams.parse(request.params);
|
|
29719
|
+
const { proxy } = await authorizeRunMirror(request, params);
|
|
29720
|
+
return await runLifecycle.cancelActive(proxy, reply);
|
|
29721
|
+
} catch (error) {
|
|
29722
|
+
return normalizeError2(reply, error);
|
|
29723
|
+
}
|
|
29724
|
+
});
|
|
29568
29725
|
routes.post(`${prefix}/assistants/:assistantId/threads/:threadId/runs/:runId/cancel`, async (request, reply) => {
|
|
29569
29726
|
try {
|
|
29570
29727
|
const params = mirrorRunParams.parse(request.params);
|
|
@@ -31876,8 +32033,6 @@ var ProjectMembershipService = class {
|
|
|
31876
32033
|
}
|
|
31877
32034
|
async list(actor3) {
|
|
31878
32035
|
await this.deps.accessService.requireRosterAccess(actor3);
|
|
31879
|
-
const membership = await this.deps.membershipStore.findByUser(actor3.tenantId, actor3.projectId, actor3.userId);
|
|
31880
|
-
if (!membership || membership.status !== "active") this.accessDenied();
|
|
31881
32036
|
return this.deps.membershipStore.list(actor3.tenantId, actor3.projectId);
|
|
31882
32037
|
}
|
|
31883
32038
|
async add(actor3, input) {
|
|
@@ -31935,10 +32090,8 @@ var ProjectMembershipService = class {
|
|
|
31935
32090
|
});
|
|
31936
32091
|
}
|
|
31937
32092
|
async authorize(actor3) {
|
|
31938
|
-
await this.deps.accessService.requireProjectAccess({ ...actor3, capability: "manage" });
|
|
31939
|
-
|
|
31940
|
-
if (!membership || membership.status !== "active") this.accessDenied();
|
|
31941
|
-
return membership;
|
|
32093
|
+
const access = await this.deps.accessService.requireProjectAccess({ ...actor3, capability: "manage" });
|
|
32094
|
+
return access.membership;
|
|
31942
32095
|
}
|
|
31943
32096
|
async target(actor3, id3) {
|
|
31944
32097
|
const target = (await this.deps.membershipStore.list(actor3.tenantId, actor3.projectId)).find((item) => item.id === id3);
|