@customize-agent/server 4.59.1 → 4.59.2
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +15 -15
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/1928.js +1 -1
- package/.next/server/chunks/{5547.js → 4435.js} +8 -8
- package/.next/server/chunks/6321.js +1 -1
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/canvas/[id].js +1 -1
- package/.next/server/pages/api/documents/canvas/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +1 -1
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate/preview.js +1 -1
- package/.next/server/pages/api/documents/generate/preview.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/events.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/events.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/nodes.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/nodes.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/pause.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/pause.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/preview.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/preview.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/reindex.js +1 -1
- package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/intelligence.js +1 -1
- package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
- package/.next/server/pages/api/kb/reindex.js +1 -1
- package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/complete.js +1 -1
- package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload.js +1 -1
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/skills/[id].js +1 -1
- package/.next/server/pages/api/skills/[id].js.nft.json +1 -1
- package/.next/server/pages/api/skills/validate.js +1 -1
- package/.next/server/pages/api/skills/validate.js.nft.json +1 -1
- package/.next/server/pages/api/skills.js +1 -1
- package/.next/server/pages/api/skills.js.nft.json +1 -1
- package/.next/server/pages/api/system/data-health.js +2 -0
- package/.next/server/pages/api/system/data-health.js.nft.json +1 -0
- package/.next/server/pages/canvas/[id].html +1 -1
- package/.next/server/pages/canvas.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/skills.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +33 -32
- package/.next/static/{4xQDkixSretJDM503EzIq → 2MjosIoMmZUcFnY_P02ZD}/_buildManifest.js +1 -1
- package/.next/static/chunks/{289-0cccd8131332e041.js → 289-136ebb30e0f6723a.js} +3 -3
- package/.next/static/chunks/{426-22c4cedb04b0d45d.js → 426-90638907336adcb8.js} +1 -1
- package/.next/static/chunks/530-df2ce692cf0fa512.js +1 -0
- package/.next/static/chunks/795-81a3e3973fc43791.js +1 -0
- package/.next/static/chunks/pages/{_app-ebb535779b63fd5d.js → _app-c560816f0a8a0815.js} +1 -1
- package/.next/static/chunks/pages/knowledge-ca8ad5501faed486.js +1 -0
- package/.next/static/chunks/pages/prompt-dd9a9f9105216e2b.js +1 -0
- package/.next/static/chunks/pages/system/logs-9deb1217739490af.js +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/530-6f3f5848c6f702ae.js +0 -1
- package/.next/static/chunks/795-9e0cb0bb11e8c89f.js +0 -1
- package/.next/static/chunks/pages/knowledge-09dde24cdce1b195.js +0 -1
- package/.next/static/chunks/pages/prompt-6a224562d194cb45.js +0 -1
- package/.next/static/chunks/pages/system/logs-70790bee46e5a08d.js +0 -1
- /package/.next/static/{4xQDkixSretJDM503EzIq → 2MjosIoMmZUcFnY_P02ZD}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=8204,exports.ids=[8204],exports.modules={4823:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(60056);function e(a){return{algorithm:a?d.w4.darkAlgorithm:d.w4.defaultAlgorithm,token:{colorPrimary:a?"#0a84ff":"#007aff",colorInfo:a?"#0a84ff":"#007aff",colorSuccess:a?"#30d158":"#34c759",colorWarning:a?"#ff9f0a":"#ff9500",colorError:a?"#ff453a":"#ff3b30",colorBgBase:a?"#1c1c1e":"#f7f7f8",colorBgContainer:a?"rgba(44,44,46,0.78)":"#ffffff",colorBgElevated:a?"rgba(44,44,46,0.92)":"#ffffff",colorBorder:a?"rgba(255,255,255,0.12)":"rgba(60,60,67,0.16)",colorText:a?"#f5f5f7":"#1d1d1f",colorTextSecondary:a?"#98989d":"#6e6e73",fontFamily:"var(--fontSans)",fontSize:14,borderRadius:14,borderRadiusLG:20,borderRadiusSM:10,controlHeight:36,lineWidth:1,boxShadow:a?"0 0 12px rgba(0,0,0,0.5)":"0 0 12px rgba(0,0,0,0.06)",boxShadowSecondary:a?"0 0 8px rgba(0,0,0,0.4)":"0 0 8px rgba(0,0,0,0.04)",motionDurationMid:"0.2s",motionEaseInOut:"cubic-bezier(0.25, 0.1, 0.25, 1)"},components:{Card:{borderRadiusLG:20,paddingLG:24,headerFontSize:13,headerFontSizeSM:12},Button:{borderRadius:14,borderRadiusLG:18,borderRadiusSM:10,fontWeight:600,primaryShadow:"var(--shadowButton)"},Input:{borderRadius:14,controlHeight:36,activeShadow:"0 0 0 3px rgba(0,122,255,0.12)"},Select:{borderRadius:14},Modal:{borderRadiusLG:20,titleFontSize:17,fontWeightStrong:700},Tag:{borderRadiusSM:100,defaultBg:a?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.04)"},Table:{borderRadiusLG:20,headerBg:a?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.02)",headerColor:"var(--colorTextSecondary)",headerSplitColor:"transparent",headerBorderRadius:12},Spin:{dotSize:28,dotSizeLG:40},Upload:{borderRadiusLG:20}}}}},8204:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>h});var e=c(8732),f=c(94487);c(66285),c(97237);var g=a([f]);function h({Component:a,pageProps:b}){return(0,e.jsx)(f.PE,{children:(0,e.jsx)(a,{...b})})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},13484:a=>{"use strict";a.exports=JSON.parse('{"app":{"title":"Customize Agent"},"nav":{"overview":"总览","knowledge":"知识库","knowledgeManage":"知识库管理","fileManagement":"文件管理","documents":"生成记录","canvas":"生成画布","skills":"技能库","guide":"指引","models":"模型配置","settings":"设置","promptManagement":"提示词管理","systemLogs":"系统日志"},"overview":{"title":"系统总览","description":"查看 Customize Agent 运行状态与关键指标","status":"服务状态","knowledgeBase":"知识库","chunksCount":"分块总数","cores":"核","memory":"内存","tokensUsed":"累计 Tokens","tasksTotal":"总任务数","successRate":"成功率","topModel":"调用最多模型","systemResources":"系统资源","hardwareUsage":"硬件使用率","cpuUsage":"CPU 使用率","memoryUsage":"内存使用率","activityContext":"活动上下文","recentTaskTypes":"最近任务类型","noDataAvailable":"暂无数据","updated":"已更新","noLogs":"暂无日志","uptime":"运行时间","templateCount":"生成记录","materialUnderstanding":"资料理解","semanticModel":"语义模型","external":"外部","local":"本地","notConfigured":"未配置","modelProviders":"模型供应商","auditLogs":"审计日志","prompts":"提示词","processUptime":"本次进程","materialKinds":"类已识别资料","lastActivity":"最后活动","coreMetrics":"核心指标","coreMetricsDesc":"服务累计运行时长、Token 消耗、任务与成功率。运行时间取**首次启动至今**(重启不清零),副文本是本次进程时长。","systemResourcesDesc":"生成侧的资源分布:知识库资料类型、提示词、生成记录、语义模型与模型供应商。","hardwareUsageDesc":"CPU 与内存的当前占用。CPU 是两次刷新之间的增量,服务刚起来时可能显示 0。","activityContextDesc":"最近一段时间的模型调用与任务类型分布。"},"knowledge":{"title":"知识库","description":"上传项目资料,查看解析、切片与索引状态","manageTitle":"知识库管理","manageDesc":"查看知识库统计、分类和功能状态","files":"文件管理","settings":"知识库设置","totalFiles":"文件总数","totalChunks":"分块总数","totalSize":"存储大小","lastIndexed":"上次索引","categories":"文件分类","fileCount":"文件数量","search":"搜索文件","searchPlaceholder":"输入文件名或内容关键词...","filterCategory":"筛选分类","allCategories":"全部类型","upload":"上传文件","uploading":"上传中...","reindex":"重新索引","delete":"删除","deleteConfirm":"确定要删除该文件吗?此操作不可恢复。","fileName":"文件名","fileSize":"大小","fileCategory":"分类","fileDate":"修改日期","totalRootFolders":"总根文件夹数","totalFilesStats":"总文件数","successfullyParsed":"解析成功","parsingErrors":"解析失败","chunksCount":"切片数","parsingStatus":"解析状态","source":"来源","fileSource":"文件","showingMatchingFiles":"显示 {count} 个匹配文件","deleteSelected":"删除选中","exportParsed":"导出解析内容","exporting":"正在导出解析内容...","exportParsedSuccess":"已导出 {count} 个文件的解析内容","exportParsedSkipped":"导出完成,已跳过 {count} 个未解析文件","exportParsedFailed":"导出解析内容失败","deleteAll":"删除全部","uploadFiles":"上传文件","uploadFolder":"上传文件夹","reindexAll":"重新解析全部","new":"新建","manageRawFiles":"管理原始文件、文档和代码源","noFiles":"暂无文件,请上传文件开始使用","emptySearch":"未找到匹配的文件","features":"功能状态","vectorStore":"向量存储","embedding":"Embedding","averageSize":"平均大小","builtinExtractors":"内置提取器","featureDedup":"去重引擎","featureDedupDesc":"检测并移除重复/相似文档","featureChunker":"分块器","featureChunkerDesc":"将文档拆分为可检索的语义块","enabled":"已启用","disabled":"已禁用","parentChunks":"父级切片","childChunks":"子级切片","parentChunkId":"父级 ID","chunkIndex":"切片序号","chunkType":"类型","sectionOrRange":"章节/范围","chunkContent":"内容","parentChunkHint":"父级切片是同一 parentId 下子级切片的上下文合集;当一个父级只包含一个子级时,两处内容相同是正常现象。","fileDetailLoadFailed":"文件详情加载失败","openFileRequested":"已请求打开文件","openDirectoryRequested":"已请求打开目录","table":"表格","sheet":"工作表","header":"表头","rows":"行数","columns":"列数","formulaCount":"公式数","mergeCount":"合并单元格","columnName":"列名","rowRange":"行范围","tableGridPreview":"表格网格预览","drawing":"图纸","layer":"图层","entityType":"实体类型","blockSymbol":"块/符号","productPart":"产品/零件","material":"材料","entityName":"实体名称","layerTogglePreview":"图层开关 / 图纸预览","type":"类型","name":"名称","dataPath":"数据路径","path":"路径","value":"值","pageNumber":"页码","ocrText":"OCR 文本","openExpand":"展开","index":"序号","tokens":"Token","section":"章节","backToFileList":"返回文件列表","fileDetailTitle":"文件详情","fileDetailDesc":"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。","copySourcePath":"复制原文件路径","copyDirectory":"复制所在目录","originalFile":"原文件","directory":"所在目录","detailFilter":"详情筛选","detailFilterPlaceholder":"筛选 rowRange、图层、实体、data path、section、chunk 内容","fileReindexed":"文件索引已重建","copied":"已复制","rowPrefix":"行","ocrPdf":"OCR/PDF","ocrRecommended":"OCR 建议","ocrReason":"OCR 原因","ocrProvider":"OCR 引擎","ocrLanguages":"OCR 语言","ocrTextLength":"OCR 文本长度","pdfPageCount":"PDF 总页数","pdfTextPages":"PDF 文本页数","pdfOcrAugmented":"PDF 已 OCR 增强","pdfOcrPages":"PDF OCR 页码","pdfFailedPages":"PDF 失败页","pdfPageOcrSupported":"PDF 页面 OCR 支持","pdfOcrPageCount":"PDF OCR 页数","pdfOcrPageLimit":"PDF OCR 页数上限","pdfRenderer":"PDF 渲染器","imagePreprocessor":"图像预处理","selectFile":"请选择文件","reOcr":"重新 OCR","reindexFile":"重建该文件索引","basicInfo":"基础信息","status":"状态","extractionMode":"解析模式","contentCoverage":"覆盖范围","textLength":"正文长度","structuredInfo":"结构化信息","chunkCount":"切片数","parentMatches":"父级命中","childMatches":"子级命中","filterTerm":"筛选词","expand":"展开","weights":{"keyword":"关键词权重","vector":"向量权重","hybridBonus":"混合加成"},"recallSources":{"keyword":"关键词检索","vector":"向量检索","hybrid":"混合检索"},"scopes":{"project":"当前项目","global":"全局"},"topLevelCount":"共 {count} 个顶层项目"},"models":{"title":"模型配置","description":"管理 LLM 模型与层级分配","modelList":"Model 列表","addModel":"添加模型","editModel":"编辑模型","modelName":"模型名称","apiKey":"API Key","baseUrl":"Base URL","protocol":"请求协议","connected":"已连接","connectionFailed":"连接失败","noProviders":"暂无模型,请添加一个","modelTiers":"模型层级分配","tierReader":"Reader(只读)","tierReaderDesc":"处理低风险、只读和成本敏感任务,例如读取文件、检索知识库、搜索文本、整理上下文。建议选择速度快、价格低、长上下文能力稳定的模型。","tierReasoning":"Reasoning(推理)","tierReasoningDesc":"处理需要深入分析、规划、代码理解和多步骤推理的任务。建议选择推理能力强、稳定性高的模型,必要时可使用更高阶模型。","tierAction":"Action(操作)","tierActionDesc":"处理会产生副作用的任务,例如写文件、修改代码、执行命令、调用外部工具。建议选择可靠、遵循指令能力强且经过验证的模型。","deleteProvider":"删除","deleteProviderConfirm":"确定要删除此模型及其所有配置吗?","modelNamePlaceholder":"例如: gpt-4o / deepseek-chat","selectModelPlaceholder":"暂不配置","apiKeyEditHint":"已配置的 Key 会以掩码回显,聚焦后可输入新 Key;掩码不可复制,留空或保持掩码则不修改。","apiKeyEditPlaceholder":"输入新的 API Key,留空保持不变","embeddingConfig":"Embedding 配置","embeddingProvider":"Embedding Provider","model":"模型","dimensions":"维度","none":"无","active":"已启用","localRecommended":"本地(推荐)","externalAdvanced":"外部(高级)","status":"状态","openAICompatible":"OpenAI 兼容","saveEmbedding":"保存 Embedding 配置","testEmbedding":"测试 Embedding","optional":"可选","save":"保存","cancel":"取消","webEnhancement":"联网增强","webEnhancementDesc":"默认关闭。开启后,系统会受控检索公开规范、政策和通用技术资料,用于增强措施准确性;联网资料不会覆盖本地项目事实。","directEndpoint":"直连端点","directEndpointDesc":"Base URL 是完整接口地址","capabilities":"多模态能力","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"图片生成","imageUnderstanding":"图片理解","fileUnderstanding":"文件理解","audioCapability":"音频能力","videoCapability":"视频能力","localEmbedding":"本地 Embedding","thinkingMode":"思考模式","thinkingFollowTask":"跟随任务策略(推荐)","thinkingEnabled":"强制开启","thinkingDisabled":"强制关闭","modelListDesc":"每个供应商一条连接配置:协议、Base URL、API Key 与多模态能力。模型层级从这些供应商里取。","embeddingConfigDesc":"知识库检索用的向量模型。切换外部 Embedding 前先确认服务可达——语义检索、切片召回都走它。","modelTiersDesc":"三类任务各指派一个模型。同一份供应商可以重复出现在不同层级。","testConnection":"测试连接"},"prompt":{"title":"提示词管理","description":"管理各项目的 CUSTOMIZE.md 系统提示词文件","filePath":"文件路径","hasFile":"已配置","promptName":"提示词名称","customPrompt":"我的提示词","currentProject":"当前项目","otherProjects":"其他项目","allPrompts":"全部提示词","promptStatus":"提示词状态","selected":"已选中","unselected":"未选中","hasFileStatus":"有文件","missingFileStatus":"无文件","sortByName":"名称 A-Z","sortByMtime":"最近修改优先","sortBySource":"来源优先","sortBySelected":"已选中优先","noMatchDesc":"没有找到匹配的提示词,请尝试更换关键词或清空筛选条件","noPromptInGroup":"当前分组没有提示词","searchPrompt":"搜索名称、内容、路径...","import":"导入","exportFiltered":"导出筛选","createPrompt":"创建提示词","exportSelected":"导出选中","batchSelect":"批量选中","cancelSelect":"取消选中","clearSelect":"清空选择","aiPromptAssistant":"AI 提示词助手","clearHistory":"清空历史","generating":"生成中","canConverse":"可对话优化","mentionRecallHint":"输入 @ 召回知识库文件,再描述你的优化目标","apply":"应用","aiAnalyzing":"AI 正在分析并生成内容...","recallKbFiles":"召回知识库文件","recallLimitHint":"支持文件名与知识库内容检索,最多召回 3 个文件","inputAtKeyword":"输入 @关键词","loadingKbFiles":"正在加载知识库文件...","noRecallableKbFiles":"暂无可召回的知识库文件","searchingKbContent":"正在检索知识库内容...","noMatchingKbFiles":"没有匹配的知识库文件,请换个关键词","continueSearchingKb":"正在继续检索内容匹配...","unclassified":"未分类","unknownFormat":"未知格式","contentMatch":"内容匹配","diskFile":"磁盘文件","fileMatch":"文件匹配","mentionRecallPlaceholder":"输入 @ 召回知识库文件,再描述优化目标...","rulePreviewTitle":"规则识别预览","rulePreviewAnalyzing":"正在识别规则…","rulePreviewHint":"输入提示词内容后将自动识别规则","rulePreviewNone":"未识别到规则","send":"发送","chatFailed":"AI 对话失败,请检查模型配置","chatEmptyReply":"AI 未返回内容","nameRequired":"请输入名称","untitled":"未命名提示词","appliedToEditor":"已应用到编辑内容,请确认后保存","exportedCount":"已导出 {count} 条提示词","importedCount":"已导入 {count} 条提示词","importFailed":"导入失败,请确认 JSON 文件格式正确","exportOne":"导出","deleteCustomConfirm":"删除自定义提示词?","deleteProjectConfirm":"删除项目记录及文件?","localPrompt":"本地提示词","selectedCount":"已选择 {count} 项"},"assets":{"description":"管理模板运行生成的文档、图片和附件。生成结果仅保存在生成资源中,不进入知识库。","deleteSelected":"删除已选 {count}","deleteAll":"删除全部","empty":"暂无生成资源","resource":"资源","path":"路径","source":"来源","openFile":"打开文件","openDirectory":"打开目录","deleted":"已删除 {count} 个资源"},"logs":{"monitorSystem":"监控系统异常、API 错误和运行时问题","searchLogs":"搜索日志...","refresh":"刷新","clear":"清空","clearConfirm":"确认清空所有错误日志?","logStorageInfo":"日志存储在本地","maxLoaded":"最多加载 500 条。","noLogsFound":"没有找到日志","time":"时间","level":"级别","source":"来源","message":"消息","requestId":"请求 ID","function":"函数","requestContext":"请求上下文","metadata":"元数据","stackTrace":"堆栈跟踪","clearedFiles":"已清空 {count} 个错误日志文件"},"settings":{"title":"系统设置","description":"管理系统界面选项和状态概览","language":"界面语言","languageDesc":"选择系统显示的语言","theme":"外观主题","themeDesc":"调整界面的亮色和暗色主题","light":"浅色","dark":"深色","system":"跟随系统","serverStatus":"服务状态","serverStatusDesc":"查看资源使用和运行健康度","status":"状态","healthy":"健康","unknown":"未知","uptime":"运行时间","days":"天","hours":"小时","minutes":"分","cpu":"处理器","cores":"核","memory":"内存使用","embeddingConfig":"向量配置","embeddingConfigDesc":"查看知识库的向量检索设定","provider":"供应商","model":"模型","apiKey":"密钥配置","configured":"已配置","none":"未配置","dimensions":"向量维度","localData":"本地数据","localDataDesc":"所有数据仅存储在您的本地设备上","directory":"存储目录","knowledgeBase":"知识库格式","localVectors":"本地向量","tasks":"总任务","tokens":"累计 Tokens","diagnostics":"诊断","diagnosticsDesc":"服务端异常日志(堆栈、请求、来源)。排查「这次生成为什么失败」时用。","openDiagnostics":"打开诊断日志"},"documents":{"saveDraft":"保存草稿","exportGateBlockedTitle":"导出门禁未通过","exportAnywayNonDeliverable":"仍要导出(非交付物)","nonDeliverableExportConfirm":"继续导出得到的文件将强制标注「非交付物」(文件名后缀 + 界面横幅),不得作为正式成果提交。","nonDeliverableExportTitle":"本次导出为非交付物","nonDeliverableExportHint":"导出门禁未通过,文件已强制标注「非交付物」(文件名后缀);该文件不得作为正式成果提交。"},"specs":{"title":"文档规范包","description":"配置事实字段、章节要求和可执行门禁规则。系统门禁和自定义门禁都会参与生成校验。","list":"规范包列表","name":"规范包名称","facts":"事实字段","chapters":"章节规则","required":"必填/必需","chapterTitle":"章节标题","order":"顺序","minWords":"最低字数","requiredFacts":"必需事实"},"common":{"save":"保存","cancel":"取消","confirm":"确认","delete":"删除","edit":"编辑","add":"添加","search":"搜索","loading":"加载中...","error":"出错了","success":"操作成功","retry":"重试","close":"关闭","noData":"暂无数据","unknown":"未知","never":"从未","statusWaiting":"等待","statusRunning":"进行中","statusCompleted":"完成","statusSkipped":"已跳过","statusFailed":"失败","statusPartial":"部分生效","statusReview":"需复核","statusAbnormal":"异常","statusIndexed":"已索引","statusOutdated":"待更新","statusDeleted":"已删除","statusNotIndexed":"未索引","levelError":"错误","levelWarning":"警告","levelInfo":"提示","totalRows":"共 {count} 条"},"refs":{"title":"模板参考库","description":"上传优秀入围施组文件作为质量对标基准。系统自动解析质量画像(参数密度、工序链、结构等),生成文档后按工程类型对标。参考文件仅用于质量对标与结构参考,绝不作为项目事实材料参与生成。","uploading":"正在上传并解析…","uploaded":"参考文件已入库并完成画像解析","projectType":"工程类型","delete":"删除","deleteConfirm":"删除该参考文件?原文将一并移除","paramDensity":"参数密度","duplication":"段落重复率","tables":"表格数","sections":"章节数"},"jobs":{"title":"后台任务","refresh":"刷新","clearAll":"清空全部","empty":"暂无后台任务","emptyHint":"上传、重新解析与文档生成都会在这里留下记录。","remove":"移除记录","removeConfirm":"从列表里移除这条记录?","removed":"已移除记录","clearConfirmTitle":"清空全部后台任务记录?","clearConfirmContent":"记录会被删除。任务本身不受影响——进行中的任务会继续跑。","cleared":"已清空记录","clearFailed":"清空失败","removeFailed":"移除失败","typeLabel":"类型","stageLabel":"阶段","chunksLabel":"切片数","fileLabel":"文件","updatedAtLabel":"更新时间","diagnostics":"诊断详情","statusProcessing":"进行中","statusSuccess":"已完成","statusWarning":"有告警","statusError":"失败","typeDocument":"文档生成","typeUpload":"文件上传","typeReindex":"重新解析","typeDelete":"删除","resident":"常驻","residentHint":"系统常驻告警:检测到问题时自动写入,清除后下次检查仍会出现","clearConfirmWarning":"进行中的记录会在下一次进度更新时重新出现;系统常驻告警(资料包混放等)也会在下次检查时重新写入。"},"records":{"title":"生成记录","empty":"还没有生成记录","batch":"批量","current":"当前","selectPage":"全选本页","clearSelect":"取消全选","checkedCount":"已选 {count} 条","deleteSelected":"删除选中","deletedCount":"已删除 {count} 条记录","confirmDelete":"删除这条记录?","confirmDeleteSelected":"删除选中的 {count} 条记录?","deleteHint":"删除后不可恢复。生成中的记录不能删除——先在画布上中止它。","inFlightHint":"生成中的记录不能删除(先在画布上中止它)","reportTitle":"导出闭环报告","reportEmpty":"还没有导出记录","reportEntry":"导出报告","reportFormat":"格式","reportDuration":"总用时","reportRepaired":"修复","reportBlocking":"阻断","reportRules":"规则","reportHealthAlerts":"健康告警","reportGateBlocked":"非交付物","reportChecklistTitle":"最近一次非交付物导出的未收敛项","reportChecklistTotal":"共 {count} 项"}}')},22147:(a,b,c)=>{"use strict";async function d(a,b){let c=await fetch(a,b);if(!c.ok){let a=await c.text(),b=a||`HTTP ${c.status}`;try{let c=JSON.parse(a);b=c.error||c.message||b}catch{let d=a.match(/<script id="__NEXT_DATA__" type="application\/json">([\s\S]*?)<\/script>/u)?.[1];if(d)try{let a=JSON.parse(d.replace(/"/gu,'"'));b=a.err?.message||`HTTP ${c.status}`}catch{b=`HTTP ${c.status}`}}throw Error(b)}return c.json()}async function e(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/stats${b}`)}async function f(a){let b=new URLSearchParams;return a?.projectRoot&&b.set("projectRoot",a.projectRoot),a?.category&&b.set("category",a.category),a?.page&&b.set("page",String(a.page??1)),a?.limit&&b.set("limit",String(a.limit??50)),d(`/api/kb/files?${b}`)}async function g(a,b){let c=new URLSearchParams({relativePath:a});return b&&c.set("projectRoot",b),d(`/api/kb/files/detail?${c}`)}async function h(a,b){return d("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,projectRoot:b})})}async function i(a,b,c){return d("/api/kb/files/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,target:b,projectRoot:c})})}c.d(b,{BO:()=>Z,Bh:()=>$,CU:()=>o,FC:()=>W,G8:()=>s,H1:()=>u,H7:()=>n,HC:()=>h,HT:()=>f,Ho:()=>J,II:()=>R,NH:()=>j,OX:()=>w,QG:()=>C,Qx:()=>l,SJ:()=>q,UE:()=>L,UQ:()=>E,X8:()=>t,Z3:()=>M,_m:()=>N,aP:()=>Q,ax:()=>m,bZ:()=>U,c1:()=>k,cQ:()=>z,dd:()=>S,dk:()=>x,dx:()=>v,ef:()=>y,f$:()=>F,h1:()=>O,hH:()=>Y,hc:()=>e,iN:()=>H,le:()=>V,oH:()=>X,oS:()=>G,r:()=>D,sz:()=>B,tZ:()=>r,tn:()=>i,u6:()=>T,v7:()=>A,vX:()=>K,xC:()=>g,xU:()=>I,xq:()=>p,zr:()=>P});class j extends Error{constructor(a){super(`上传部分成功:${a.succeededBatches}/${a.totalBatches} 个批次已上传,${a.failedBatches} 个批次失败`),this.name="PartialUploadError",this.succeededBatches=a.succeededBatches,this.failedBatches=a.failedBatches,this.totalBatches=a.totalBatches,this.failures=a.failures}}async function k(a,b,c,e){let f=Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_BATCH_FILES||500),g=Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_BATCH_BYTES||0x8000000),h=Math.max(1,Math.min(4,Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_CONCURRENCY||2))),i=[],k=[],l=0,m=0,n=0;for(let b of a)k.length>0&&(k.length>=f||l+b.size>g)&&(i.push({files:k,offset:m}),k=[],l=0,m=n),k.push(b),l+=b.size,n+=1;k.length>0&&i.push({files:k,offset:m});let o=[],p=[],q=0,r=0;async function s(f){let g,h=i[f],j=new URLSearchParams({batchIndex:String(f),totalBatches:String(i.length)});c&&j.set("uploadId",c);for(let k=0;k<2;k++)try{let g=await d(`/api/kb/upload?${j}`,{method:"POST",body:function(a,b){let c=new FormData;for(let d of(b.projectRoot&&c.append("projectRoot",b.projectRoot),b.uploadId&&c.append("uploadId",b.uploadId),c.append("batchIndex",String(b.batchIndex)),c.append("totalBatches",String(b.totalBatches)),c.append("fileOffset",String(b.fileOffset)),c.append("startIndex",b.startIndex?"1":"0"),c.append("uploadComplete",b.uploadComplete??b.batchIndex===b.totalBatches-1?"1":"0"),a))c.append("files",d,d.name),c.append("relativePaths",d.webkitRelativePath||d.name);return c}(h.files,{projectRoot:b,uploadId:c,batchIndex:f,totalBatches:i.length,fileOffset:h.offset,startIndex:0===f,uploadComplete:1===i.length})});o[f]=g,q+=h.files.length,e?.({uploadedFiles:q,totalFiles:a.length,batchIndex:f,totalBatches:i.length});return}catch(a){g=a instanceof Error?a:Error(String(a))}p.push({batchIndex:f,files:h.files.slice(0,5).map(a=>a.name),message:g?.message||"上传失败"}),e?.({uploadedFiles:q,totalFiles:a.length,batchIndex:f,totalBatches:i.length})}let t=Array.from({length:Math.min(h,i.length)},async()=>{for(;r<i.length;){let a=r++;await s(a)}});await Promise.all(t);let u=i.length-p.length;if(p.length>0&&0===u)throw Error(p[0]?.message||"上传失败");if(i.length>1&&u>0){let a=await d("/api/kb/upload/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:b,uploadId:c})});o.push(a)}if(p.length>0)throw new j({succeededBatches:u,failedBatches:p.length,totalBatches:i.length,failures:p});return o.filter(Boolean).at(-1)??{success:!0}}async function l(a){let b=new URLSearchParams({limit:"50"});return a&&b.set("projectRoot",a),d(`/api/kb/operations?${b}`)}async function m(a,b){let c=new URLSearchParams;return b&&c.set("projectRoot",b),d(`/api/jobs/${encodeURIComponent(a)}?${c}`)}async function n(a){let b=new URLSearchParams;return a&&b.set("projectRoot",a),d(`/api/kb/operations?${b}`,{method:"DELETE"})}async function o(a,b){let c=new URLSearchParams({id:a});return b&&c.set("projectRoot",b),d(`/api/kb/operations?${c}`,{method:"DELETE"})}async function p(a,b){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,projectRoot:b})})}async function q(a,b){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:a,projectRoot:b})})}async function r(a,b,c){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:a,folderPaths:b,projectRoot:c})})}async function s(a){let b=await fetch("/api/kb/files/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=`导出失败 (${b.status})`;try{let c=await b.json();c?.error&&(a=c.error)}catch{}throw Error(a)}let c=await b.blob(),d=b.headers.get("content-disposition")||"",e=/filename\*=(?:UTF-8'')?([^;]+)/iu.exec(d);return{blob:c,fileName:e?.[1]?decodeURIComponent(e[1]):"kb-export.txt",exported:Number(b.headers.get("x-export-count")||0),skipped:Number(b.headers.get("x-export-skipped")||0)}}async function t(a){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:a})})}async function u(a){return d("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:a})})}async function v(){return d("/api/prompt")}async function w(a){return d("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function x(a){return d("/api/documents/generate/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function y(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/material-groups${b}`)}async function z(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/documents/generated${b}`)}async function A(a,b=!1,c,e,f){let g=new URLSearchParams;b&&g.set("lite","1"),c&&g.set("projectRoot",c),void 0!==f&&Number.isFinite(f)&&g.set("ifUpdatedSince",String(f));let h=g.toString()?`?${g.toString()}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}${h}`,{signal:e})}async function B(a,b,c){let e=new URLSearchParams;b&&e.set("projectRoot",b);let f=e.toString()?`?${e.toString()}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}/preview${f}`,{signal:c})}async function C(a,b){let c=b?`?projectRoot=${encodeURIComponent(b)}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}${c}`,{method:"DELETE"})}async function D(a,b){return d("/api/documents/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"abort",documentId:a,projectRoot:b})})}async function E(a,b){return d("/api/documents/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"resume",documentId:a,projectRoot:b})})}async function F(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/assets/generated${b}`)}async function G(a,b,c){return d("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"open",target:b,projectRoot:c})})}function H(a,b){let c=b?`&projectRoot=${encodeURIComponent(b)}`:"";return`/api/assets/generated/preview?id=${encodeURIComponent(a)}${c}`}async function I(a){let{documentId:b,...c}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}async function J(a){let{documentId:b,requestId:c,...e}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair/${encodeURIComponent(c)}/confirm`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function K(a){let{documentId:b,requestId:c,...e}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair/${encodeURIComponent(c)}/rollback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function L(a){let b,c,d=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json",Accept:"pdf"===a.format?"application/pdf":"*/*"},body:JSON.stringify(a)}),e=d.headers.get("content-type")||"",f=async()=>{let a=await d.text(),b=a||"导出失败";try{let c=JSON.parse(a),d=c.issues?.map(a=>a.message).filter(Boolean).slice(0,3).join(";");b=c.message||(d?`${c.error||"导出失败"}:${d}`:c.error||b)}catch{}throw Error(b.length>300?`${b.slice(0,300)}...`:b)};d.ok||await f(),"pdf"!==a.format||e.includes("application/pdf")||await f(),"docx"!==a.format||e.includes("officedocument.wordprocessingml.document")||await f();let g="true"===d.headers.get("X-Export-Not-Deliverable"),h=d.headers.get("X-Export-Gate-Issues")||"";try{b=h?JSON.parse(decodeURIComponent(h)):[]}catch{b=[]}let i=d.headers.get("content-disposition")||"",j=/filename\*=UTF-8''([^;]+)/iu.exec(i)?.[1];try{c=j?decodeURIComponent(j):void 0}catch{c=void 0}return{blob:await d.blob(),filename:c,notDeliverable:g,gateIssues:b}}async function M(){return d("/api/config/providers")}async function N(a,b){return d("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,...b})})}async function O(a){return d(`/api/config/providers/${encodeURIComponent(a)}`,{method:"DELETE"})}async function P(){return d("/api/config/models")}async function Q(a){return d("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function R(){return d("/api/config/embedding")}async function S(a){return d("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function T(){return d("/api/config/embedding/healthCheck",{method:"POST"})}async function U(a){return d("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a})})}async function V(){return d("/api/health")}async function W(){return d("/api/system/stats")}async function X(a=200){return d(`/api/system/logs?limit=${a}`)}async function Y(){return d("/api/system/logs",{method:"DELETE"})}async function Z(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/categories${b}`)}async function $(a){return d(`/api/config/providers/${encodeURIComponent(a)}`)}},26588:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>n});var e=c(8732),f=c(79270),g=c(60056),h=c(82015),i=c(94487),j=c(22147),k=a([i]);i=(k.then?(await k)():k)[0];let o={processing:"jobs.statusProcessing",success:"jobs.statusSuccess",warning:"jobs.statusWarning",error:"jobs.statusError"},p={document:"jobs.typeDocument",upload:"jobs.typeUpload",reindex:"jobs.typeReindex",delete:"jobs.typeDelete"};function l({label:a,value:b}){return(0,e.jsxs)("div",{className:"flex gap-3 text-xs",children:[(0,e.jsx)("span",{className:"w-16 shrink-0 text-[var(--colorTextTertiary)]",children:a}),(0,e.jsx)("span",{className:"min-w-0 break-words text-[var(--colorTextSecondary)]",children:b})]})}function m({job:a,mounted:b,onRemove:c}){var d,h;let j=(0,i.Vr)(),k=Math.max(0,Math.min(100,Math.round(a.percent||0))),m="error"===a.status?"exception":"success"===a.status?"success":"active",n=a.details?.slice(0,40)||[],q=b?new Date(a.updatedAt).toLocaleString():String(a.updatedAt),r=a.id.startsWith("intelligence-mixed-");return(0,e.jsx)("div",{className:"border-b border-[var(--borderColor)] px-5 py-4 last:border-b-0",children:(0,e.jsxs)("div",{className:"flex items-start gap-3 text-left",children:[(0,e.jsx)("span",{className:"mt-1 inline-flex text-base",children:(d=a.status,"processing"===d?(0,e.jsx)(f.SyncOutlined,{spin:!0}):"success"===d?(0,e.jsx)(f.CheckCircleOutlined,{className:"text-[var(--colorOk)]"}):"warning"===d?(0,e.jsx)(f.ClockCircleOutlined,{className:"text-[var(--colorWarn)]"}):(0,e.jsx)(f.CloseCircleOutlined,{className:"text-[var(--colorDanger)]"}))}),(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-3",children:[(0,e.jsx)(g.o5.Text,{strong:!0,className:"min-w-0 flex-1 leading-6",ellipsis:{tooltip:a.title},children:a.title}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[r&&(0,e.jsx)(g.m_,{title:j("jobs.residentHint"),children:(0,e.jsx)(g.vw,{color:"purple",className:"m-0",children:j("jobs.resident")})}),(0,e.jsx)(g.vw,{color:(h=a.status,"processing"===h?"processing":"success"===h?"success":"warning"===h?"warning":"error"),className:"m-0",children:j(o[a.status])}),c&&(0,e.jsx)(g.iS,{title:j("jobs.removeConfirm"),onConfirm:c,okText:j("common.confirm"),cancelText:j("common.cancel"),children:(0,e.jsx)(g.$n,{size:"small",type:"text",danger:!0,icon:(0,e.jsx)(f.DeleteOutlined,{}),title:j("jobs.remove")})})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)(g.o5.Text,{type:"error"===a.status?"danger":void 0,className:"block whitespace-pre-wrap break-words leading-6",children:a.error||a.message}),(0,e.jsx)(g.ke,{percent:k,status:m}),(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(l,{label:j("jobs.typeLabel"),value:j(p[a.type])}),(0,e.jsx)(l,{label:j("jobs.stageLabel"),value:a.stage}),a.chunkCount?(0,e.jsx)(l,{label:j("jobs.chunksLabel"),value:a.chunkCount}):null,a.filePath?(0,e.jsx)(l,{label:j("jobs.fileLabel"),value:a.filePath}):null,(0,e.jsx)(l,{label:j("jobs.updatedAtLabel"),value:q})]}),n.length>0?(0,e.jsxs)("div",{className:"rounded-lg border border-[var(--borderColor)] bg-[var(--colorFillAlter)] p-2",children:[(0,e.jsx)(g.o5.Text,{type:"secondary",className:"block text-xs",children:j("jobs.diagnostics")}),(0,e.jsx)("ul",{className:"m-0 mt-1 max-h-52 overflow-auto pl-4 text-xs leading-5 text-[var(--colorTextSecondary)]",children:n.map((b,c)=>(0,e.jsx)("li",{className:"break-words",children:b},`${a.id}-${c}`))})]}):null]})]})]})})}function n(){let a=(0,i.Vr)(),{message:b}=g.qw.useApp(),[c,d]=(0,h.useState)(!1),[k,l]=(0,h.useState)([]),[n,o]=(0,h.useState)(!1),[p,q]=(0,h.useState)(!1),r=(0,h.useRef)(0);(0,h.useRef)(null);let s=(0,h.useRef)([]),t=(0,h.useCallback)(async()=>{let a=await (0,j.Qx)();r.current=0,s.current=a.operations||[],l(a.operations||[])},[]),u=(0,h.useMemo)(()=>k.filter(a=>"processing"===a.status),[k]),v=u.length,w=u[0],x=async c=>{try{await (0,j.CU)(c),b.success(a("jobs.removed")),await t()}catch{b.error(a("jobs.removeFailed"))}};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.Ex,{count:v,size:"small",children:(0,e.jsx)(g.$n,{className:"topbarBtn",onClick:()=>d(!0),icon:v?(0,e.jsx)(f.SyncOutlined,{spin:!0}):(0,e.jsx)(f.ClockCircleOutlined,{}),children:a("jobs.title")})}),w&&!c&&v>0?(0,e.jsxs)("span",{className:"max-w-[260px] truncate text-[var(--colorTextSecondary)]",children:[w.title," \xb7 ",w.percent,"%"]}):null,(0,e.jsx)(g._s,{title:a("jobs.title"),placement:"right",size:"large",open:c,onClose:()=>d(!1),extra:(0,e.jsx)(g.$n,{size:"small",onClick:()=>void t(),children:a("jobs.refresh")}),footer:k.length>0?(0,e.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,e.jsx)("span",{className:"text-xs text-[var(--colorTextTertiary)]",children:k.length}),(0,e.jsx)(g.$n,{danger:!0,size:"small",loading:p,icon:(0,e.jsx)(f.DeleteOutlined,{}),onClick:()=>{g.aF.confirm({title:a("jobs.clearConfirmTitle"),content:(0,e.jsxs)("div",{className:"text-sm",children:[(0,e.jsx)("div",{children:a("jobs.clearConfirmContent")}),(0,e.jsx)("div",{className:"mt-1 text-[var(--colorTextSecondary)]",children:a("jobs.clearConfirmWarning")})]}),okText:a("jobs.clearAll"),cancelText:a("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{q(!0);try{await (0,j.H7)(),b.success(a("jobs.cleared")),await t()}catch{b.error(a("jobs.clearFailed"))}finally{q(!1)}}})},children:a("jobs.clearAll")})]}):void 0,styles:{body:{padding:0}},children:0===k.length?(0,e.jsx)("div",{className:"flex h-full items-start justify-center pt-16",children:(0,e.jsx)(g.Sv,{description:(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)("div",{className:"text-[var(--colorTextSecondary)]",children:a("jobs.empty")}),(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mt-1",children:a("jobs.emptyHint")})]})})}):(0,e.jsx)("div",{className:"text-left",children:k.map(a=>(0,e.jsx)(m,{job:a,mounted:n,onRemove:"processing"===a.status?null:()=>{x(a.id)}},a.id))})})]})}d()}catch(a){d(a)}})},31077:(a,b,c)=>{"use strict";c.d(b,{CE:()=>e,_h:()=>f});let d=new Map;function e(a,b){let c=b.split(".").reduce((a,b)=>{if(a&&"object"==typeof a&&b in a)return a[b]},a);return"string"==typeof c?c:void 0}function f(a,b,c="unknown"){let g=e(a,b);return void 0!==g?g:(function(a,b){let c=`${a}:${b}`;d.has(c)||d.set(c,{locale:a,key:b})}(c,b),b)}},34924:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>l});var e=c(8732),f=c(82015),g=c(57312),h=c(94487),i=c(68329),j=c(26588),k=a([g,h,j]);function l(){let{resolvedTheme:a,setTheme:b}=(0,g.useTheme)(),{locale:c,setLocale:d}=(0,h.x_)(),k=(0,h.Vr)("settings"),[l,m]=(0,f.useState)(!1),n=l&&"dark"===a;return(0,e.jsxs)("header",{className:"topbar",children:[(0,e.jsx)("div",{className:"flex-1"}),(0,e.jsx)(j.A,{}),(0,e.jsxs)("button",{onClick:()=>b(n?"light":"dark"),className:"topbarBtn",children:[n?(0,e.jsx)(i.bd5,{size:14}):(0,e.jsx)(i.AX$,{size:14}),(0,e.jsx)("span",{children:k(n?"light":"dark")})]}),(0,e.jsxs)("button",{onClick:()=>{d("zh-CN"===c?"en-US":"zh-CN")},className:"topbarBtn",children:[(0,e.jsx)(i.ATU,{size:14}),(0,e.jsx)("span",{children:"zh-CN"===(l?c:"zh-CN")?"English":"中文"})]})]})}[g,h,j]=k.then?(await k)():k,d()}catch(a){d(a)}})},54506:a=>{"use strict";a.exports=JSON.parse('{"app":{"title":"Customize Agent"},"nav":{"overview":"Overview","knowledge":"Knowledge Base","knowledgeManage":"KB Management","fileManagement":"File Management","documents":"Generation Records","canvas":"Generation Canvas","skills":"Skills","guide":"Guide","models":"Model Config","settings":"Settings","promptManagement":"Prompt Management","systemLogs":"System Logs"},"overview":{"title":"System Overview","description":"Monitor Customize Agent status and key metrics","status":"Service Status","knowledgeBase":"Knowledge Base","chunksCount":"Total Chunks","cores":"cores","memory":"Memory","tokensUsed":"Total Tokens","tasksTotal":"Total Tasks","successRate":"Success Rate","topModel":"Most Used Model","systemResources":"System Resources","hardwareUsage":"Hardware usage","cpuUsage":"CPU usage","memoryUsage":"Memory usage","activityContext":"Activity Context","recentTaskTypes":"Recent task types","noDataAvailable":"No data available","updated":"Updated","noLogs":"No logs","uptime":"Uptime","templateCount":"Documents","materialUnderstanding":"Material Understanding","semanticModel":"Semantic Model","external":"External","local":"Local","notConfigured":"Not Configured","modelProviders":"Model Providers","auditLogs":"Audit Logs","prompts":"Prompts","processUptime":"This process","materialKinds":"material types recognised","lastActivity":"Last activity","coreMetrics":"Core metrics","coreMetricsDesc":"Service uptime, token usage, tasks and success rate. Uptime counts from the first start (it does not reset on restart); the subtext is this process.","systemResourcesDesc":"Generation-side resources: material types, prompts, records, embedding model and providers.","hardwareUsageDesc":"Current CPU and memory usage. CPU is a delta between two refreshes, so it may read 0 right after startup.","activityContextDesc":"Model calls and task types over the recent window."},"knowledge":{"title":"Knowledge Base","description":"Upload project material, inspect parsing, chunking and index status","manageTitle":"KB Management","manageDesc":"View knowledge base statistics, categories, and features","files":"File Management","settings":"KB Settings","totalFiles":"Total Files","totalChunks":"Total Chunks","totalSize":"Total Size","lastIndexed":"Last Indexed","categories":"File Categories","fileCount":"File Count","search":"Search Files","searchPlaceholder":"Search by filename or content...","filterCategory":"Filter Category","allCategories":"All Types","upload":"Upload File","uploading":"Uploading...","reindex":"Reindex","delete":"Delete","deleteConfirm":"Are you sure you want to delete this file? This action cannot be undone.","fileName":"File Name","fileSize":"Size","fileCategory":"Category","fileDate":"Modified","totalRootFolders":"Total Root Folders","totalFilesStats":"Total Files","successfullyParsed":"Successfully Parsed","parsingErrors":"Parsing Errors","chunksCount":"Chunks","parsingStatus":"Status","source":"Source","fileSource":"File","showingMatchingFiles":"Showing {count} matching files","deleteSelected":"Delete Selected","exportParsed":"Export Parsed Text","exporting":"Exporting parsed content...","exportParsedSuccess":"Exported parsed content of {count} files","exportParsedSkipped":"Export done, skipped {count} unparsed files","exportParsedFailed":"Failed to export parsed content","deleteAll":"Delete All","uploadFiles":"Upload Files","uploadFolder":"Upload Folder","reindexAll":"Reindex All","new":"New","manageRawFiles":"Manage raw files, documents, and code sources","noFiles":"No files yet. Upload files to get started.","emptySearch":"No matching files found","features":"Feature Status","vectorStore":"Vector Store","embedding":"Embedding","averageSize":"Average Size","builtinExtractors":"Built-in Extractors","featureDedup":"Dedup Engine","featureDedupDesc":"Detects and removes duplicate/similar documents","featureChunker":"Chunker","featureChunkerDesc":"Splits documents into retrievable semantic chunks","enabled":"Enabled","disabled":"Disabled","parentChunks":"Parent Chunks","childChunks":"Child Chunks","parentChunkId":"Parent ID","chunkIndex":"Chunk Index","chunkType":"Type","sectionOrRange":"Section / Range","chunkContent":"Content","parentChunkHint":"A parent chunk is the context bundle of child chunks with the same parentId. If a parent contains only one child, identical content in both tables is expected.","fileDetailLoadFailed":"Failed to load file details","openFileRequested":"Open file requested","openDirectoryRequested":"Open directory requested","table":"Table","sheet":"Sheet","header":"Header","rows":"Rows","columns":"Columns","formulaCount":"Formulas","mergeCount":"Merged Cells","columnName":"Column Name","tableGridPreview":"Table Grid Preview","drawing":"Drawing","layer":"Layer","entityType":"Entity Type","blockSymbol":"Block/Symbol","productPart":"Product/Part","material":"Material","entityName":"Entity Name","layerTogglePreview":"Layer Toggle / Drawing Preview","type":"Type","name":"Name","dataPath":"Data Path","path":"Path","value":"Value","pageNumber":"Page","ocrText":"OCR Text","openExpand":"Expand","index":"Index","tokens":"Tokens","section":"Section","backToFileList":"Back to File List","fileDetailTitle":"File Details","fileDetailDesc":"View parsing results, drawing/table/data structured fields, parent chunks, and child chunks.","copySourcePath":"Copy Source Path","copyDirectory":"Copy Directory","originalFile":"Original File","directory":"Directory","detailFilter":"Detail Filter","detailFilterPlaceholder":"Filter rowRange, layers, entities, data paths, sections, and chunk content","fileReindexed":"File index rebuilt","copied":"Copied","rowPrefix":"Row","ocrPdf":"OCR/PDF","ocrRecommended":"OCR Recommended","ocrReason":"OCR Reason","ocrProvider":"OCR Engine","ocrLanguages":"OCR Languages","ocrTextLength":"OCR Text Length","pdfPageCount":"PDF Pages","pdfTextPages":"PDF Text Pages","pdfOcrAugmented":"PDF OCR Augmented","pdfOcrPages":"PDF OCR Pages","pdfFailedPages":"PDF Failed Pages","pdfPageOcrSupported":"PDF Page OCR Supported","pdfOcrPageCount":"PDF OCR Page Count","pdfOcrPageLimit":"PDF OCR Page Limit","pdfRenderer":"PDF Renderer","imagePreprocessor":"Image Preprocessor","selectFile":"Please select a file","reOcr":"Re-run OCR","reindexFile":"Rebuild File Index","basicInfo":"Basic Info","status":"Status","extractionMode":"Extraction Mode","contentCoverage":"Content Coverage","textLength":"Text Length","structuredInfo":"Structured Info","chunkCount":"Chunks","parentMatches":"Parent Matches","childMatches":"Child Matches","filterTerm":"Filter","rowRange":"Rows","expand":"Expand","weights":{"keyword":"Keyword Weight","vector":"Vector Weight","hybridBonus":"Hybrid Bonus"},"recallSources":{"keyword":"Keyword Retrieval","vector":"Vector Retrieval","hybrid":"Hybrid Retrieval"},"scopes":{"project":"Current Project","global":"Global"},"topLevelCount":"{count} top-level item(s)"},"models":{"title":"Model Configuration","description":"Manage LLM models and tier assignments","modelList":"Model List","addModel":"Add Model","editModel":"Edit Model","modelName":"Model Name","apiKey":"API Key","baseUrl":"Base URL","protocol":"Protocol","connected":"Connected","connectionFailed":"Connection Failed","noProviders":"No models yet. Add one to get started.","modelTiers":"Model Tier Assignment","tierReader":"Reader (Read-only)","tierReaderDesc":"Handles low-risk, read-only, and cost-sensitive work such as reading files, searching the knowledge base, text search, and context organization. Prefer fast, inexpensive models with stable long-context support.","tierReasoning":"Reasoning (Analysis)","tierReasoningDesc":"Handles deeper analysis, planning, code understanding, and multi-step reasoning. Prefer models with stronger reasoning quality and reliability.","tierAction":"Action (Write/Execute)","tierActionDesc":"Handles side-effect operations such as writing files, changing code, running commands, and calling external tools. Prefer reliable models with strong instruction-following and verified behavior.","deleteProvider":"Delete","deleteProviderConfirm":"Are you sure you want to delete this model and all its configs?","modelNamePlaceholder":"e.g. gpt-4o / deepseek-chat","selectModelPlaceholder":"No model selected","apiKeyEditHint":"Configured keys are shown as a masked value. Focus the field to enter a new key; the mask cannot be copied. Leave empty or keep the mask to avoid changes.","apiKeyEditPlaceholder":"Enter a new API key, or leave empty to keep current","embeddingConfig":"Embedding Configuration","embeddingProvider":"Embedding Provider","model":"Model","dimensions":"Dimensions","none":"None","active":"Active","localRecommended":"Local (Recommended)","externalAdvanced":"External (Advanced)","status":"Status","openAICompatible":"OpenAI-compatible","saveEmbedding":"Save Embedding Config","testEmbedding":"Test Embedding","optional":"Optional","save":"Save","cancel":"Cancel","webEnhancement":"Web Enhancement","webEnhancementDesc":"Disabled by default. When enabled, the system will search public standards, policies, and general technical data to improve the accuracy of measures. Web data will not override local project facts.","directEndpoint":"Direct Endpoint","directEndpointDesc":"Base URL is the complete endpoint address","capabilities":"Capabilities","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"Image Generation","imageUnderstanding":"Image Understanding","fileUnderstanding":"File Understanding","audioCapability":"Audio","videoCapability":"Video","localEmbedding":"Local Embedding","thinkingMode":"Thinking Mode","thinkingFollowTask":"Follow Task Strategy (Recommended)","thinkingEnabled":"Force On","thinkingDisabled":"Force Off","modelListDesc":"One connection per provider: protocol, base URL, API key and multimodal capabilities. Model tiers pick from these providers.","embeddingConfigDesc":"The vector model behind knowledge base retrieval. Verify the endpoint is reachable before switching to an external embedding provider.","modelTiersDesc":"Assign one model to each task class. The same provider may appear in more than one tier.","testConnection":"Test connection"},"prompt":{"title":"Prompt Management","description":"Manage CUSTOMIZE.md system prompt files per project","filePath":"File Path","hasFile":"Configured","promptName":"Prompt Name","customPrompt":"My Prompts","currentProject":"Current Project","otherProjects":"Other Projects","allPrompts":"All Prompts","promptStatus":"Prompt Status","selected":"Selected","unselected":"Unselected","hasFileStatus":"Has File","missingFileStatus":"Missing File","sortByName":"Name A-Z","sortByMtime":"Recently Modified","sortBySource":"Source","sortBySelected":"Selected First","noMatchDesc":"No matching prompts found. Please try different keywords or clear filters.","noPromptInGroup":"No prompts in current group","searchPrompt":"Search name, content, path...","import":"Import","exportFiltered":"Export Filtered","createPrompt":"Create Prompt","exportSelected":"Export Selected","batchSelect":"Batch Select","cancelSelect":"Cancel Select","clearSelect":"Clear Selection","aiPromptAssistant":"AI Prompt Assistant","clearHistory":"Clear History","generating":"Generating","canConverse":"Conversational Optimization","mentionRecallHint":"Type @ to recall knowledge files, then describe your optimization goal","apply":"Apply","aiAnalyzing":"AI is analyzing and generating content...","recallKbFiles":"Recall Knowledge Files","recallLimitHint":"Supports file name and content search, recalls up to 3 files","inputAtKeyword":"Type @keyword","loadingKbFiles":"Loading knowledge files...","noRecallableKbFiles":"No knowledge files available to recall","searchingKbContent":"Searching knowledge content...","noMatchingKbFiles":"No matching knowledge files, try another keyword","continueSearchingKb":"Continuing to search for content matches...","unclassified":"Unclassified","unknownFormat":"Unknown Format","contentMatch":"Content Match","diskFile":"Disk File","fileMatch":"File Match","mentionRecallPlaceholder":"Type @ to recall knowledge files, then describe goal...","rulePreviewTitle":"Rule Detection Preview","rulePreviewAnalyzing":"Analyzing rules…","rulePreviewHint":"Rules will be auto-detected after you enter prompt content","rulePreviewNone":"No rules detected","send":"Send","chatFailed":"Chat failed — check the model configuration","chatEmptyReply":"The model returned no content","nameRequired":"Enter a name","untitled":"Untitled prompt","appliedToEditor":"Applied to the editor — review it before saving","exportedCount":"Exported {count} prompt(s)","importedCount":"Imported {count} prompt(s)","importFailed":"Import failed — make sure the JSON file is well-formed","exportOne":"Export","deleteCustomConfirm":"Delete this custom prompt?","deleteProjectConfirm":"Delete this project record and its file?","localPrompt":"Local prompt","selectedCount":"{count} selected"},"assets":{"description":"Manage documents, images, and attachments generated by template runs. Generated results are stored only in generated assets and are not added to the knowledge base.","deleteSelected":"Delete Selected {count}","deleteAll":"Delete All","empty":"No generated assets","resource":"Resource","path":"Path","source":"Source","openFile":"Open File","openDirectory":"Open Directory","deleted":"Deleted {count} assets"},"logs":{"monitorSystem":"Monitor system exceptions, API errors, and runtime issues","searchLogs":"Search logs...","refresh":"Refresh","clear":"Clear","clearConfirm":"Are you sure you want to clear all error logs?","logStorageInfo":"Logs are stored locally in","maxLoaded":"Max 500 entries loaded.","noLogsFound":"No logs found","time":"Time","level":"Level","source":"Source","message":"Message","requestId":"Req ID","function":"Function","requestContext":"Request Context","metadata":"Metadata","stackTrace":"Stack Trace","clearedFiles":"Cleared {count} error log file(s)"},"settings":{"title":"System Settings","description":"Manage interface preferences and view system overview","language":"Interface Language","languageDesc":"Select the language for the system interface","theme":"Appearance Theme","themeDesc":"Adjust light and dark themes","light":"Light","dark":"Dark","system":"System","serverStatus":"Server Status","serverStatusDesc":"Resource usage and health","status":"Status","healthy":"Healthy","unknown":"Unknown","uptime":"Uptime","days":"days","hours":"hours","minutes":"mins","cpu":"CPU","cores":"Cores","memory":"Memory Usage","embeddingConfig":"Embedding Config","embeddingConfigDesc":"Vector DB configurations","provider":"Provider","model":"Model","apiKey":"API Key","configured":"Configured","none":"None","dimensions":"Dimensions","localData":"Local Data & Storage","localDataDesc":"All data is stored locally on your machine","directory":"Directory","knowledgeBase":"Knowledge Base","localVectors":"Local Vectors","tasks":"Total Tasks","tokens":"Total Tokens","diagnostics":"Diagnostics","diagnosticsDesc":"Server-side error log (stack traces, requests, sources). Use it to find out why a generation failed.","openDiagnostics":"Open diagnostics"},"documents":{"saveDraft":"Save Draft","exportGateBlockedTitle":"Export gate not passed","exportAnywayNonDeliverable":"Export anyway (non-deliverable)","nonDeliverableExportConfirm":"The exported file will be force-marked as a non-deliverable (file-name suffix and on-page banner). It must not be submitted as a formal deliverable.","nonDeliverableExportTitle":"This export is a non-deliverable","nonDeliverableExportHint":"The export gate did not pass, so the file is force-marked as a non-deliverable (file-name suffix). It must not be submitted as a formal deliverable."},"specs":{"title":"Document Spec Packages","description":"Configure fact fields, chapter rules, and executable gate rules. Both system and custom gate types participate in validation.","list":"Spec List","name":"Spec Name","facts":"Fact Fields","chapters":"Chapter Rules","required":"Required","chapterTitle":"Chapter Title","order":"Order","minWords":"Min Words","requiredFacts":"Required Facts"},"common":{"save":"Save","cancel":"Cancel","confirm":"Confirm","delete":"Delete","edit":"Edit","add":"Add","search":"Search","loading":"Loading...","error":"Something went wrong","success":"Success","retry":"Retry","close":"Close","noData":"No data","unknown":"Unknown","never":"Never","statusWaiting":"Waiting","statusRunning":"In Progress","statusCompleted":"Completed","statusSkipped":"Skipped","statusFailed":"Failed","statusPartial":"Partial","statusReview":"Needs Review","statusAbnormal":"Abnormal","statusIndexed":"Indexed","statusOutdated":"Outdated","statusDeleted":"Deleted","statusNotIndexed":"Not Indexed","levelError":"Error","levelWarning":"Warning","levelInfo":"Info","totalRows":"{count} rows"},"refs":{"title":"Template Reference Library","description":"Upload outstanding winning bids as quality benchmarks. The system parses quality profiles (parameter density, process chains, structure) and benchmarks generated documents by project type. References are used ONLY for quality benchmarking and structure guidance, never as project facts.","uploading":"Uploading and parsing…","uploaded":"Reference added and profile parsed","projectType":"Project type","delete":"Delete","deleteConfirm":"Delete this reference? The original file will also be removed","paramDensity":"Param density","duplication":"Duplication rate","tables":"Tables","sections":"Sections"},"jobs":{"title":"Background tasks","refresh":"Refresh","clearAll":"Clear all","empty":"No background tasks","emptyHint":"Uploads, re-index runs and document generation all leave a record here.","remove":"Remove record","removeConfirm":"Remove this record from the list?","removed":"Record removed","clearConfirmTitle":"Clear all background task records?","clearConfirmContent":"Records will be deleted. Running tasks are not cancelled.","cleared":"Records cleared","clearFailed":"Failed to clear","removeFailed":"Failed to remove","typeLabel":"Type","stageLabel":"Stage","chunksLabel":"Chunks","fileLabel":"File","updatedAtLabel":"Updated","diagnostics":"Diagnostics","statusProcessing":"Running","statusSuccess":"Done","statusWarning":"Warning","statusError":"Failed","typeDocument":"Document generation","typeUpload":"File upload","typeReindex":"Re-index","typeDelete":"Delete","resident":"Persistent","residentHint":"Persistent system alert: written automatically when an issue is detected, and rewritten on the next check after removal","clearConfirmWarning":"In-flight records reappear on the next progress update, and persistent system alerts (e.g. mixed material packs) are rewritten on the next check."},"records":{"title":"Generation records","empty":"No generation records yet","batch":"Select","current":"Current","selectPage":"Select page","clearSelect":"Clear","checkedCount":"{count} selected","deleteSelected":"Delete","deletedCount":"Deleted {count} record(s)","confirmDelete":"Delete this record?","confirmDeleteSelected":"Delete the {count} selected record(s)?","deleteHint":"This cannot be undone. A running generation cannot be deleted — abort it on the canvas first.","inFlightHint":"A running generation cannot be deleted (abort it on the canvas first)","reportTitle":"Export closure report","reportEmpty":"No exports yet","reportEntry":"Export report","reportFormat":"Format","reportDuration":"Duration","reportRepaired":"Repaired","reportBlocking":"Blocking","reportRules":"Rules","reportHealthAlerts":"Health alerts","reportGateBlocked":"Not deliverable","reportChecklistTitle":"Unresolved items from the latest non-deliverable export","reportChecklistTotal":"{count} item(s)"}}')},66285:()=>{},93065:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n});var e=c(8732),f=c(82015),g=c(21202),h=c(9328),i=c.n(h),j=c(94487),k=c(68329),l=c(60056),m=a([j]);j=(m.then?(await m)():m)[0];let o=[{href:"/overview",icon:k.HxJ,labelKey:"nav.overview"},{href:"/knowledge",icon:k.WmV,labelKey:"nav.knowledge"},{href:"/models",icon:k.fX,labelKey:"nav.models"},{href:"/prompt",icon:k.vEG,labelKey:"nav.promptManagement"},{href:"/skills",icon:k.wB_,labelKey:"nav.skills"},{href:"/canvas",icon:k.lgv,labelKey:"nav.canvas"},{href:"/guide",icon:k.Gyj,labelKey:"nav.guide"},{href:"/settings",icon:k.wB_,labelKey:"nav.settings"}];function n(){let a=(0,g.usePathname)()??"",b=(0,j.Vr)(),c=b=>!!b&&(a===b||a.startsWith(b+"/")),d=(0,f.useMemo)(()=>{let a={};for(let b of o)b.children?.some(a=>c(a.href))&&(a[b.labelKey]=!0);return a},[a]),[h,m]=(0,f.useState)({}),[n,p]=(0,f.useState)(!0);return(0,e.jsxs)("aside",{className:`sidebar${n?" sidebarCollapsedSelf":""}`,children:[(0,e.jsxs)("div",{className:"sidebarLogoRow",children:[(0,e.jsx)(i(),{href:"/overview",prefetch:!1,className:"min-w-0 flex-1",onClick:a=>{n&&(a.preventDefault(),p(!1))},children:(0,e.jsxs)("div",{className:"sidebarLogo",children:[(0,e.jsx)("div",{className:"w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0",children:(0,e.jsx)(k.AX$,{className:"text-white dark:text-black",size:20})}),(0,e.jsx)("div",{className:"sidebarLogoTitle",children:(0,e.jsx)("span",{className:"logoGradient",children:"Customize Agent"})})]})}),!n&&(0,e.jsx)("button",{className:"sidebarCollapseBtn",onClick:()=>p(!0),"aria-label":"收起侧边栏",children:(0,e.jsx)(k.ues,{size:16})})]}),(0,e.jsx)("nav",{className:"sidebarNav mt-2",children:o.map(a=>{if(a.children){let f,g=h[a.labelKey]??d[a.labelKey]??!1,j=(f=a.children,f?.some(a=>c(a.href)));return(0,e.jsxs)("div",{children:[(0,e.jsx)(l.m_,{title:n?b(a.labelKey):"",placement:"right",children:(0,e.jsxs)("div",{className:`sidebarItem sidebarParent${j&&n?" sidebarItemActive":""}`,onClick:()=>{if(n)p(!1),m(b=>({...b,[a.labelKey]:!0}));else{var b;b=a.labelKey,m(a=>({...a,[b]:!a[b]}))}},children:[(0,e.jsx)(a.icon,{size:18}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)}),(0,e.jsx)("span",{className:"sidebarChevron",children:g?(0,e.jsx)(k.yQN,{size:14}):(0,e.jsx)(k.c_$,{size:14})})]})}),g&&!n&&(0,e.jsx)("div",{className:"sidebarSubmenu animateFadeIn",children:a.children.map(a=>{let d=c(a.href);return(0,e.jsx)(i(),{href:a.href,prefetch:!1,children:(0,e.jsxs)("div",{className:`sidebarItem sidebarSubItem${d?" sidebarItemActive":""}`,children:[(0,e.jsx)(a.icon,{size:16}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)})]})},a.href)})})]},a.labelKey)}let f=c(a.href);return(0,e.jsx)(l.m_,{title:n?b(a.labelKey):"",placement:"right",children:(0,e.jsx)(i(),{href:a.href,prefetch:!1,children:(0,e.jsxs)("div",{className:`sidebarItem${f?" sidebarItemActive":""}`,children:[(0,e.jsx)(a.icon,{size:18}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)})]})})},a.href)})})]})}d()}catch(a){d(a)}})},94487:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{PE:()=>x,Vr:()=>v,x_:()=>u});var e=c(8732),f=c(82015),g=c(49702),h=c.n(g),i=c(42583),j=c(57312),k=c(60056),l=c(2973),m=c(40107);c(36653);var n=c(4823),o=c(93065),p=c(34924),q=c(13484),r=c(54506),s=c(31077),t=a([j,o,p]);[j,o,p]=t.then?(await t)():t;let y=(0,f.createContext)(null);function u(){let a=(0,f.useContext)(y);if(!a)throw Error("useAppLocale must be used inside Layout");return a}function v(a){let{messages:b,locale:c}=u();return(0,f.useCallback)(d=>{if(!a)return(0,s._h)(b,d,c);let e=`${a}.${d}`,f=(0,s.CE)(b,e);return void 0!==f?f:(0,s._h)(b,d,c)},[b,a,c])}let z={"zh-CN":q,"en-US":r};function w({children:a}){let{resolvedTheme:b}=(0,j.useTheme)(),c=(0,i.useRouter)(),[d,g]=(0,f.useState)("zh-CN"),[q,r]=(0,f.useState)(!1),s="dark"===b,t=z[d]??z["zh-CN"],u=(0,f.useCallback)(a=>{document.cookie=`NEXT_LOCALE=${a};path=/;max-age=31536000;samesite=lax`,g(a)},[]),v=(0,f.useMemo)(()=>({locale:d,setLocale:u,messages:t}),[d,u,t]),w=(0,f.useMemo)(()=>(0,n.D)(s),[s]),x="en-US"===d?m.default:l.A;return(0,e.jsx)(y.Provider,{value:v,children:(0,e.jsx)(k.sG,{theme:w,locale:x,children:(0,e.jsxs)(k.qw,{children:[(0,e.jsx)(h(),{children:(0,e.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"})}),(0,e.jsx)(o.B,{}),(0,e.jsxs)("div",{className:"mainContent",children:[(0,e.jsx)(p.Y,{}),(0,e.jsx)("main",{className:`mainInner${c.pathname.startsWith("/canvas")?" mainInnerCanvas":""}${q?" pageTransitioning":""}`,children:a})]})]})})})}function x({children:a}){return(0,e.jsx)(j.ThemeProvider,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:(0,e.jsx)(w,{children:a})})}d()}catch(a){d(a)}})},97237:()=>{}};
|
|
1
|
+
exports.id=8204,exports.ids=[8204],exports.modules={4823:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(60056);function e(a){return{algorithm:a?d.w4.darkAlgorithm:d.w4.defaultAlgorithm,token:{colorPrimary:a?"#0a84ff":"#007aff",colorInfo:a?"#0a84ff":"#007aff",colorSuccess:a?"#30d158":"#34c759",colorWarning:a?"#ff9f0a":"#ff9500",colorError:a?"#ff453a":"#ff3b30",colorBgBase:a?"#1c1c1e":"#f7f7f8",colorBgContainer:a?"rgba(44,44,46,0.78)":"#ffffff",colorBgElevated:a?"rgba(44,44,46,0.92)":"#ffffff",colorBorder:a?"rgba(255,255,255,0.12)":"rgba(60,60,67,0.16)",colorText:a?"#f5f5f7":"#1d1d1f",colorTextSecondary:a?"#98989d":"#6e6e73",fontFamily:"var(--fontSans)",fontSize:14,borderRadius:14,borderRadiusLG:20,borderRadiusSM:10,controlHeight:36,lineWidth:1,boxShadow:a?"0 0 12px rgba(0,0,0,0.5)":"0 0 12px rgba(0,0,0,0.06)",boxShadowSecondary:a?"0 0 8px rgba(0,0,0,0.4)":"0 0 8px rgba(0,0,0,0.04)",motionDurationMid:"0.2s",motionEaseInOut:"cubic-bezier(0.25, 0.1, 0.25, 1)"},components:{Card:{borderRadiusLG:20,paddingLG:24,headerFontSize:13,headerFontSizeSM:12},Button:{borderRadius:14,borderRadiusLG:18,borderRadiusSM:10,fontWeight:600,primaryShadow:"var(--shadowButton)"},Input:{borderRadius:14,controlHeight:36,activeShadow:"0 0 0 3px rgba(0,122,255,0.12)"},Select:{borderRadius:14},Modal:{borderRadiusLG:20,titleFontSize:17,fontWeightStrong:700},Tag:{borderRadiusSM:100,defaultBg:a?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.04)"},Table:{borderRadiusLG:20,headerBg:a?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.02)",headerColor:"var(--colorTextSecondary)",headerSplitColor:"transparent",headerBorderRadius:12},Spin:{dotSize:28,dotSizeLG:40},Upload:{borderRadiusLG:20}}}}},8204:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>h});var e=c(8732),f=c(94487);c(66285),c(97237);var g=a([f]);function h({Component:a,pageProps:b}){return(0,e.jsx)(f.PE,{children:(0,e.jsx)(a,{...b})})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},13484:a=>{"use strict";a.exports=JSON.parse('{"app":{"title":"Customize Agent"},"nav":{"overview":"总览","knowledge":"知识库","knowledgeManage":"知识库管理","fileManagement":"文件管理","documents":"生成记录","canvas":"生成画布","skills":"技能库","guide":"指引","models":"模型配置","settings":"设置","promptManagement":"提示词管理","systemLogs":"系统日志"},"overview":{"title":"系统总览","description":"查看 Customize Agent 运行状态与关键指标","status":"服务状态","knowledgeBase":"知识库","chunksCount":"分块总数","cores":"核","memory":"内存","tokensUsed":"累计 Tokens","tasksTotal":"总任务数","successRate":"成功率","topModel":"调用最多模型","systemResources":"系统资源","hardwareUsage":"硬件使用率","cpuUsage":"CPU 使用率","memoryUsage":"内存使用率","activityContext":"活动上下文","recentTaskTypes":"最近任务类型","noDataAvailable":"暂无数据","updated":"已更新","noLogs":"暂无日志","uptime":"运行时间","templateCount":"生成记录","materialUnderstanding":"资料理解","semanticModel":"语义模型","external":"外部","local":"本地","notConfigured":"未配置","modelProviders":"模型供应商","auditLogs":"审计日志","prompts":"提示词","processUptime":"本次进程","materialKinds":"类已识别资料","lastActivity":"最后活动","coreMetrics":"核心指标","coreMetricsDesc":"服务累计运行时长、Token 消耗、任务与成功率。运行时间取**首次启动至今**(重启不清零),副文本是本次进程时长。","systemResourcesDesc":"生成侧的资源分布:知识库资料类型、提示词、生成记录、语义模型与模型供应商。","hardwareUsageDesc":"CPU 与内存的当前占用。CPU 是两次刷新之间的增量,服务刚起来时可能显示 0。","activityContextDesc":"最近一段时间的模型调用与任务类型分布。"},"knowledge":{"title":"知识库","description":"上传项目资料,查看解析、切片与索引状态","manageTitle":"知识库管理","manageDesc":"查看知识库统计、分类和功能状态","files":"文件管理","settings":"知识库设置","totalFiles":"文件总数","totalChunks":"分块总数","totalSize":"存储大小","lastIndexed":"上次索引","categories":"文件分类","fileCount":"文件数量","search":"搜索文件","searchPlaceholder":"输入文件名或内容关键词...","filterCategory":"筛选分类","allCategories":"全部类型","upload":"上传文件","uploading":"上传中...","reindex":"重新索引","delete":"删除","deleteConfirm":"确定要删除该文件吗?此操作不可恢复。","fileName":"文件名","fileSize":"大小","fileCategory":"分类","fileDate":"修改日期","totalRootFolders":"总根文件夹数","totalFilesStats":"总文件数","successfullyParsed":"解析成功","parsingErrors":"解析失败","chunksCount":"切片数","parsingStatus":"解析状态","source":"来源","fileSource":"文件","showingMatchingFiles":"显示 {count} 个匹配文件","deleteSelected":"删除选中","exportParsed":"导出解析内容","exporting":"正在导出解析内容...","exportParsedSuccess":"已导出 {count} 个文件的解析内容","exportParsedSkipped":"导出完成,已跳过 {count} 个未解析文件","exportParsedFailed":"导出解析内容失败","deleteAll":"删除全部","uploadFiles":"上传文件","uploadFolder":"上传文件夹","reindexAll":"重新解析全部","new":"新建","manageRawFiles":"管理原始文件、文档和代码源","noFiles":"暂无文件,请上传文件开始使用","emptySearch":"未找到匹配的文件","features":"功能状态","vectorStore":"向量存储","embedding":"Embedding","averageSize":"平均大小","builtinExtractors":"内置提取器","featureDedup":"去重引擎","featureDedupDesc":"检测并移除重复/相似文档","featureChunker":"分块器","featureChunkerDesc":"将文档拆分为可检索的语义块","enabled":"已启用","disabled":"已禁用","parentChunks":"父级切片","childChunks":"子级切片","parentChunkId":"父级 ID","chunkIndex":"切片序号","chunkType":"类型","sectionOrRange":"章节/范围","chunkContent":"内容","parentChunkHint":"父级切片是同一 parentId 下子级切片的上下文合集;当一个父级只包含一个子级时,两处内容相同是正常现象。","fileDetailLoadFailed":"文件详情加载失败","openFileRequested":"已请求打开文件","openDirectoryRequested":"已请求打开目录","table":"表格","sheet":"工作表","header":"表头","rows":"行数","columns":"列数","formulaCount":"公式数","mergeCount":"合并单元格","columnName":"列名","rowRange":"行范围","tableGridPreview":"表格网格预览","drawing":"图纸","layer":"图层","entityType":"实体类型","blockSymbol":"块/符号","productPart":"产品/零件","material":"材料","entityName":"实体名称","layerTogglePreview":"图层开关 / 图纸预览","type":"类型","name":"名称","dataPath":"数据路径","path":"路径","value":"值","pageNumber":"页码","ocrText":"OCR 文本","openExpand":"展开","index":"序号","tokens":"Token","section":"章节","backToFileList":"返回文件列表","fileDetailTitle":"文件详情","fileDetailDesc":"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。","copySourcePath":"复制原文件路径","copyDirectory":"复制所在目录","originalFile":"原文件","directory":"所在目录","detailFilter":"详情筛选","detailFilterPlaceholder":"筛选 rowRange、图层、实体、data path、section、chunk 内容","fileReindexed":"文件索引已重建","copied":"已复制","rowPrefix":"行","ocrPdf":"OCR/PDF","ocrRecommended":"OCR 建议","ocrReason":"OCR 原因","ocrProvider":"OCR 引擎","ocrLanguages":"OCR 语言","ocrTextLength":"OCR 文本长度","pdfPageCount":"PDF 总页数","pdfTextPages":"PDF 文本页数","pdfOcrAugmented":"PDF 已 OCR 增强","pdfOcrPages":"PDF OCR 页码","pdfFailedPages":"PDF 失败页","pdfPageOcrSupported":"PDF 页面 OCR 支持","pdfOcrPageCount":"PDF OCR 页数","pdfOcrPageLimit":"PDF OCR 页数上限","pdfRenderer":"PDF 渲染器","imagePreprocessor":"图像预处理","selectFile":"请选择文件","reOcr":"重新 OCR","reindexFile":"重建该文件索引","basicInfo":"基础信息","status":"状态","extractionMode":"解析模式","contentCoverage":"覆盖范围","textLength":"正文长度","structuredInfo":"结构化信息","chunkCount":"切片数","parentMatches":"父级命中","childMatches":"子级命中","filterTerm":"筛选词","expand":"展开","weights":{"keyword":"关键词权重","vector":"向量权重","hybridBonus":"混合加成"},"recallSources":{"keyword":"关键词检索","vector":"向量检索","hybrid":"混合检索"},"scopes":{"project":"当前项目","global":"全局"},"topLevelCount":"共 {count} 个顶层项目"},"models":{"title":"模型配置","description":"管理 LLM 模型与层级分配","modelList":"Model 列表","addModel":"添加模型","editModel":"编辑模型","modelName":"模型名称","apiKey":"API Key","baseUrl":"Base URL","protocol":"请求协议","connected":"已连接","connectionFailed":"连接失败","noProviders":"暂无模型,请添加一个","modelTiers":"模型层级分配","tierReader":"Reader(只读)","tierReaderDesc":"处理低风险、只读和成本敏感任务,例如读取文件、检索知识库、搜索文本、整理上下文。建议选择速度快、价格低、长上下文能力稳定的模型。","tierReasoning":"Reasoning(推理)","tierReasoningDesc":"处理需要深入分析、规划、代码理解和多步骤推理的任务。建议选择推理能力强、稳定性高的模型,必要时可使用更高阶模型。","tierAction":"Action(操作)","tierActionDesc":"处理会产生副作用的任务,例如写文件、修改代码、执行命令、调用外部工具。建议选择可靠、遵循指令能力强且经过验证的模型。","deleteProvider":"删除","deleteProviderConfirm":"确定要删除此模型及其所有配置吗?","modelNamePlaceholder":"例如: gpt-4o / deepseek-chat","selectModelPlaceholder":"暂不配置","apiKeyEditHint":"已配置的 Key 会以掩码回显,聚焦后可输入新 Key;掩码不可复制,留空或保持掩码则不修改。","apiKeyEditPlaceholder":"输入新的 API Key,留空保持不变","embeddingConfig":"Embedding 配置","embeddingProvider":"Embedding Provider","model":"模型","dimensions":"维度","none":"无","active":"已启用","localRecommended":"本地(推荐)","externalAdvanced":"外部(高级)","status":"状态","openAICompatible":"OpenAI 兼容","saveEmbedding":"保存 Embedding 配置","testEmbedding":"测试 Embedding","optional":"可选","save":"保存","cancel":"取消","webEnhancement":"联网增强","webEnhancementDesc":"默认关闭。开启后,系统会受控检索公开规范、政策和通用技术资料,用于增强措施准确性;联网资料不会覆盖本地项目事实。","directEndpoint":"直连端点","directEndpointDesc":"Base URL 是完整接口地址","capabilities":"多模态能力","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"图片生成","imageUnderstanding":"图片理解","fileUnderstanding":"文件理解","audioCapability":"音频能力","videoCapability":"视频能力","localEmbedding":"本地 Embedding","thinkingMode":"思考模式","thinkingFollowTask":"跟随任务策略(推荐)","thinkingEnabled":"强制开启","thinkingDisabled":"强制关闭","modelListDesc":"每个供应商一条连接配置:协议、Base URL、API Key 与多模态能力。模型层级从这些供应商里取。","embeddingConfigDesc":"知识库检索用的向量模型。切换外部 Embedding 前先确认服务可达——语义检索、切片召回都走它。","modelTiersDesc":"三类任务各指派一个模型。同一份供应商可以重复出现在不同层级。","testConnection":"测试连接"},"prompt":{"title":"提示词管理","description":"管理各项目的 CUSTOMIZE.md 系统提示词文件","filePath":"文件路径","hasFile":"已配置","promptName":"提示词名称","customPrompt":"我的提示词","currentProject":"当前项目","otherProjects":"其他项目","allPrompts":"全部提示词","promptStatus":"提示词状态","selected":"已选中","unselected":"未选中","hasFileStatus":"有文件","missingFileStatus":"无文件","sortByName":"名称 A-Z","sortByMtime":"最近修改优先","sortBySource":"来源优先","sortBySelected":"已选中优先","noMatchDesc":"没有找到匹配的提示词,请尝试更换关键词或清空筛选条件","noPromptInGroup":"当前分组没有提示词","searchPrompt":"搜索名称、内容、路径...","import":"导入","exportFiltered":"导出筛选","createPrompt":"创建提示词","exportSelected":"导出选中","batchSelect":"批量选中","cancelSelect":"取消选中","clearSelect":"清空选择","aiPromptAssistant":"AI 提示词助手","clearHistory":"清空历史","generating":"生成中","canConverse":"可对话优化","mentionRecallHint":"输入 @ 召回知识库文件,再描述你的优化目标","apply":"应用","aiAnalyzing":"AI 正在分析并生成内容...","recallKbFiles":"召回知识库文件","recallLimitHint":"支持文件名与知识库内容检索,最多召回 3 个文件","inputAtKeyword":"输入 @关键词","loadingKbFiles":"正在加载知识库文件...","noRecallableKbFiles":"暂无可召回的知识库文件","searchingKbContent":"正在检索知识库内容...","noMatchingKbFiles":"没有匹配的知识库文件,请换个关键词","continueSearchingKb":"正在继续检索内容匹配...","unclassified":"未分类","unknownFormat":"未知格式","contentMatch":"内容匹配","diskFile":"磁盘文件","fileMatch":"文件匹配","mentionRecallPlaceholder":"输入 @ 召回知识库文件,再描述优化目标...","rulePreviewTitle":"规则识别预览","rulePreviewAnalyzing":"正在识别规则…","rulePreviewHint":"输入提示词内容后将自动识别规则","rulePreviewNone":"未识别到规则","send":"发送","chatFailed":"AI 对话失败,请检查模型配置","chatEmptyReply":"AI 未返回内容","nameRequired":"请输入名称","untitled":"未命名提示词","appliedToEditor":"已应用到编辑内容,请确认后保存","exportedCount":"已导出 {count} 条提示词","importedCount":"已导入 {count} 条提示词","importFailed":"导入失败,请确认 JSON 文件格式正确","exportOne":"导出","deleteCustomConfirm":"删除自定义提示词?","deleteProjectConfirm":"删除项目记录及文件?","localPrompt":"本地提示词","selectedCount":"已选择 {count} 项"},"assets":{"description":"管理模板运行生成的文档、图片和附件。生成结果仅保存在生成资源中,不进入知识库。","deleteSelected":"删除已选 {count}","deleteAll":"删除全部","empty":"暂无生成资源","resource":"资源","path":"路径","source":"来源","openFile":"打开文件","openDirectory":"打开目录","deleted":"已删除 {count} 个资源"},"logs":{"monitorSystem":"监控系统异常、API 错误和运行时问题","searchLogs":"搜索日志...","refresh":"刷新","clear":"清空","clearConfirm":"确认清空所有错误日志?","logStorageInfo":"日志存储在本地","maxLoaded":"最多加载 500 条。","noLogsFound":"没有找到日志","time":"时间","level":"级别","source":"来源","message":"消息","requestId":"请求 ID","function":"函数","requestContext":"请求上下文","metadata":"元数据","stackTrace":"堆栈跟踪","clearedFiles":"已清空 {count} 个错误日志文件"},"settings":{"title":"系统设置","description":"管理系统界面选项和状态概览","language":"界面语言","languageDesc":"选择系统显示的语言","theme":"外观主题","themeDesc":"调整界面的亮色和暗色主题","light":"浅色","dark":"深色","system":"跟随系统","serverStatus":"服务状态","serverStatusDesc":"查看资源使用和运行健康度","status":"状态","healthy":"健康","unknown":"未知","uptime":"运行时间","days":"天","hours":"小时","minutes":"分","cpu":"处理器","cores":"核","memory":"内存使用","embeddingConfig":"向量配置","embeddingConfigDesc":"查看知识库的向量检索设定","provider":"供应商","model":"模型","apiKey":"密钥配置","configured":"已配置","none":"未配置","dimensions":"向量维度","localData":"本地数据","localDataDesc":"所有数据仅存储在您的本地设备上","directory":"存储目录","knowledgeBase":"知识库格式","localVectors":"本地向量","tasks":"总任务","tokens":"累计 Tokens","diagnostics":"诊断","diagnosticsDesc":"服务端异常日志(堆栈、请求、来源)。排查「这次生成为什么失败」时用。","openDiagnostics":"打开诊断日志"},"documents":{"saveDraft":"保存草稿","exportGateBlockedTitle":"导出门禁未通过","exportAnywayNonDeliverable":"仍要导出(非交付物)","nonDeliverableExportConfirm":"继续导出得到的文件将强制标注「非交付物」(文件名后缀 + 界面横幅),不得作为正式成果提交。","nonDeliverableExportTitle":"本次导出为非交付物","nonDeliverableExportHint":"导出门禁未通过,文件已强制标注「非交付物」(文件名后缀);该文件不得作为正式成果提交。"},"specs":{"title":"文档规范包","description":"配置事实字段、章节要求和可执行门禁规则。系统门禁和自定义门禁都会参与生成校验。","list":"规范包列表","name":"规范包名称","facts":"事实字段","chapters":"章节规则","required":"必填/必需","chapterTitle":"章节标题","order":"顺序","minWords":"最低字数","requiredFacts":"必需事实"},"common":{"save":"保存","cancel":"取消","confirm":"确认","delete":"删除","edit":"编辑","add":"添加","search":"搜索","loading":"加载中...","error":"出错了","success":"操作成功","retry":"重试","close":"关闭","noData":"暂无数据","unknown":"未知","never":"从未","statusWaiting":"等待","statusRunning":"进行中","statusCompleted":"完成","statusSkipped":"已跳过","statusFailed":"失败","statusPartial":"部分生效","statusReview":"需复核","statusAbnormal":"异常","statusIndexed":"已索引","statusOutdated":"待更新","statusDeleted":"已删除","statusNotIndexed":"未索引","levelError":"错误","levelWarning":"警告","levelInfo":"提示","totalRows":"共 {count} 条"},"refs":{"title":"模板参考库","description":"上传优秀入围施组文件作为质量对标基准。系统自动解析质量画像(参数密度、工序链、结构等),生成文档后按工程类型对标。参考文件仅用于质量对标与结构参考,绝不作为项目事实材料参与生成。","uploading":"正在上传并解析…","uploaded":"参考文件已入库并完成画像解析","projectType":"工程类型","delete":"删除","deleteConfirm":"删除该参考文件?原文将一并移除","paramDensity":"参数密度","duplication":"段落重复率","tables":"表格数","sections":"章节数"},"jobs":{"title":"后台任务","refresh":"刷新","clearAll":"清空全部","empty":"暂无后台任务","emptyHint":"上传、重新解析与文档生成都会在这里留下记录。","remove":"移除记录","removeConfirm":"从列表里移除这条记录?","removed":"已移除记录","clearConfirmTitle":"清空全部后台任务记录?","clearConfirmContent":"记录会被删除。任务本身不受影响——进行中的任务会继续跑。","cleared":"已清空记录","clearFailed":"清空失败","removeFailed":"移除失败","typeLabel":"类型","stageLabel":"阶段","chunksLabel":"切片数","fileLabel":"文件","updatedAtLabel":"更新时间","diagnostics":"诊断详情","statusProcessing":"进行中","statusSuccess":"已完成","statusWarning":"有告警","statusError":"失败","typeDocument":"文档生成","typeUpload":"文件上传","typeReindex":"重新解析","typeDelete":"删除","resident":"常驻","residentHint":"系统常驻告警:检测到问题时自动写入,清除后下次检查仍会出现","clearConfirmWarning":"进行中的记录会在下一次进度更新时重新出现;系统常驻告警(资料包混放等)也会在下次检查时重新写入。"},"records":{"title":"生成记录","empty":"还没有生成记录","batch":"批量","current":"当前","selectPage":"全选本页","clearSelect":"取消全选","checkedCount":"已选 {count} 条","deleteSelected":"删除选中","deletedCount":"已删除 {count} 条记录","confirmDelete":"删除这条记录?","confirmDeleteSelected":"删除选中的 {count} 条记录?","deleteHint":"删除后不可恢复。生成中的记录不能删除——先在画布上中止它。","inFlightHint":"生成中的记录不能删除(先在画布上中止它)","reportTitle":"导出闭环报告","reportEmpty":"还没有导出记录","reportEntry":"导出报告","reportFormat":"格式","reportDuration":"总用时","reportRepaired":"修复","reportBlocking":"阻断","reportRules":"规则","reportHealthAlerts":"健康告警","reportGateBlocked":"非交付物","reportChecklistTitle":"最近一次非交付物导出的未收敛项","reportChecklistTotal":"共 {count} 项"}}')},22147:(a,b,c)=>{"use strict";async function d(a,b){let c=await fetch(a,b);if(!c.ok){let a=await c.text(),b=a||`HTTP ${c.status}`;try{let c=JSON.parse(a);b=c.error||c.message||b}catch{let d=a.match(/<script id="__NEXT_DATA__" type="application\/json">([\s\S]*?)<\/script>/u)?.[1];if(d)try{let a=JSON.parse(d.replace(/"/gu,'"'));b=a.err?.message||`HTTP ${c.status}`}catch{b=`HTTP ${c.status}`}}throw Error(b)}return c.json()}async function e(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/stats${b}`)}async function f(a){let b=new URLSearchParams;return a?.projectRoot&&b.set("projectRoot",a.projectRoot),a?.category&&b.set("category",a.category),a?.page&&b.set("page",String(a.page??1)),a?.limit&&b.set("limit",String(a.limit??50)),d(`/api/kb/files?${b}`)}async function g(a,b){let c=new URLSearchParams({relativePath:a});return b&&c.set("projectRoot",b),d(`/api/kb/files/detail?${c}`)}async function h(a,b){return d("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,projectRoot:b})})}async function i(a,b,c){return d("/api/kb/files/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,target:b,projectRoot:c})})}c.d(b,{BO:()=>Z,Bh:()=>$,CU:()=>o,FC:()=>W,G8:()=>s,H1:()=>u,H7:()=>n,HC:()=>h,HT:()=>f,Ho:()=>J,II:()=>R,NH:()=>j,OX:()=>w,QG:()=>C,Qx:()=>l,SJ:()=>q,UE:()=>L,UQ:()=>E,X8:()=>t,Z3:()=>M,_m:()=>N,aP:()=>Q,ax:()=>m,bZ:()=>U,c1:()=>k,cQ:()=>z,dd:()=>S,dk:()=>x,dx:()=>v,ef:()=>y,f$:()=>F,fc:()=>aa,h1:()=>O,hH:()=>Y,hc:()=>e,iN:()=>H,le:()=>V,nn:()=>_,oH:()=>X,oS:()=>G,r:()=>D,sz:()=>B,tZ:()=>r,tn:()=>i,u6:()=>T,v7:()=>A,vX:()=>K,xC:()=>g,xU:()=>I,xq:()=>p,zr:()=>P});class j extends Error{constructor(a){super(`上传部分成功:${a.succeededBatches}/${a.totalBatches} 个批次已上传,${a.failedBatches} 个批次失败`),this.name="PartialUploadError",this.succeededBatches=a.succeededBatches,this.failedBatches=a.failedBatches,this.totalBatches=a.totalBatches,this.failures=a.failures}}async function k(a,b,c,e){let f=Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_BATCH_FILES||500),g=Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_BATCH_BYTES||0x8000000),h=Math.max(1,Math.min(4,Number(process.env.NEXT_PUBLIC_CUSTOMIZE_KB_UPLOAD_CONCURRENCY||2))),i=[],k=[],l=0,m=0,n=0;for(let b of a)k.length>0&&(k.length>=f||l+b.size>g)&&(i.push({files:k,offset:m}),k=[],l=0,m=n),k.push(b),l+=b.size,n+=1;k.length>0&&i.push({files:k,offset:m});let o=[],p=[],q=0,r=0;async function s(f){let g,h=i[f],j=new URLSearchParams({batchIndex:String(f),totalBatches:String(i.length)});c&&j.set("uploadId",c);for(let k=0;k<2;k++)try{let g=await d(`/api/kb/upload?${j}`,{method:"POST",body:function(a,b){let c=new FormData;for(let d of(b.projectRoot&&c.append("projectRoot",b.projectRoot),b.uploadId&&c.append("uploadId",b.uploadId),c.append("batchIndex",String(b.batchIndex)),c.append("totalBatches",String(b.totalBatches)),c.append("fileOffset",String(b.fileOffset)),c.append("startIndex",b.startIndex?"1":"0"),c.append("uploadComplete",b.uploadComplete??b.batchIndex===b.totalBatches-1?"1":"0"),a))c.append("files",d,d.name),c.append("relativePaths",d.webkitRelativePath||d.name);return c}(h.files,{projectRoot:b,uploadId:c,batchIndex:f,totalBatches:i.length,fileOffset:h.offset,startIndex:0===f,uploadComplete:1===i.length})});o[f]=g,q+=h.files.length,e?.({uploadedFiles:q,totalFiles:a.length,batchIndex:f,totalBatches:i.length});return}catch(a){g=a instanceof Error?a:Error(String(a))}p.push({batchIndex:f,files:h.files.slice(0,5).map(a=>a.name),message:g?.message||"上传失败"}),e?.({uploadedFiles:q,totalFiles:a.length,batchIndex:f,totalBatches:i.length})}let t=Array.from({length:Math.min(h,i.length)},async()=>{for(;r<i.length;){let a=r++;await s(a)}});await Promise.all(t);let u=i.length-p.length;if(p.length>0&&0===u)throw Error(p[0]?.message||"上传失败");if(i.length>1&&u>0){let a=await d("/api/kb/upload/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:b,uploadId:c})});o.push(a)}if(p.length>0)throw new j({succeededBatches:u,failedBatches:p.length,totalBatches:i.length,failures:p});return o.filter(Boolean).at(-1)??{success:!0}}async function l(a){let b=new URLSearchParams({limit:"50"});return a&&b.set("projectRoot",a),d(`/api/kb/operations?${b}`)}async function m(a,b){let c=new URLSearchParams;return b&&c.set("projectRoot",b),d(`/api/jobs/${encodeURIComponent(a)}?${c}`)}async function n(a){let b=new URLSearchParams;return a&&b.set("projectRoot",a),d(`/api/kb/operations?${b}`,{method:"DELETE"})}async function o(a,b){let c=new URLSearchParams({id:a});return b&&c.set("projectRoot",b),d(`/api/kb/operations?${c}`,{method:"DELETE"})}async function p(a,b){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:a,projectRoot:b})})}async function q(a,b){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:a,projectRoot:b})})}async function r(a,b,c){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:a,folderPaths:b,projectRoot:c})})}async function s(a){let b=await fetch("/api/kb/files/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=`导出失败 (${b.status})`;try{let c=await b.json();c?.error&&(a=c.error)}catch{}throw Error(a)}let c=await b.blob(),d=b.headers.get("content-disposition")||"",e=/filename\*=(?:UTF-8'')?([^;]+)/iu.exec(d);return{blob:c,fileName:e?.[1]?decodeURIComponent(e[1]):"kb-export.txt",exported:Number(b.headers.get("x-export-count")||0),skipped:Number(b.headers.get("x-export-skipped")||0)}}async function t(a){return d("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:a})})}async function u(a){return d("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:a})})}async function v(){return d("/api/prompt")}async function w(a){return d("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function x(a){return d("/api/documents/generate/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function y(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/material-groups${b}`)}async function z(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/documents/generated${b}`)}async function A(a,b=!1,c,e,f){let g=new URLSearchParams;b&&g.set("lite","1"),c&&g.set("projectRoot",c),void 0!==f&&Number.isFinite(f)&&g.set("ifUpdatedSince",String(f));let h=g.toString()?`?${g.toString()}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}${h}`,{signal:e})}async function B(a,b,c){let e=new URLSearchParams;b&&e.set("projectRoot",b);let f=e.toString()?`?${e.toString()}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}/preview${f}`,{signal:c})}async function C(a,b){let c=b?`?projectRoot=${encodeURIComponent(b)}`:"";return d(`/api/documents/generated/${encodeURIComponent(a)}${c}`,{method:"DELETE"})}async function D(a,b){return d("/api/documents/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"abort",documentId:a,projectRoot:b})})}async function E(a,b){return d("/api/documents/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"resume",documentId:a,projectRoot:b})})}async function F(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/assets/generated${b}`)}async function G(a,b,c){return d("/api/assets/generated",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"open",target:b,projectRoot:c})})}function H(a,b){let c=b?`&projectRoot=${encodeURIComponent(b)}`:"";return`/api/assets/generated/preview?id=${encodeURIComponent(a)}${c}`}async function I(a){let{documentId:b,...c}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}async function J(a){let{documentId:b,requestId:c,...e}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair/${encodeURIComponent(c)}/confirm`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function K(a){let{documentId:b,requestId:c,...e}=a;return d(`/api/documents/generated/${encodeURIComponent(b)}/repair/${encodeURIComponent(c)}/rollback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function L(a){let b,c,d=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json",Accept:"pdf"===a.format?"application/pdf":"*/*"},body:JSON.stringify(a)}),e=d.headers.get("content-type")||"",f=async()=>{let a=await d.text(),b=a||"导出失败";try{let c=JSON.parse(a),d=c.issues?.map(a=>a.message).filter(Boolean).slice(0,3).join(";");b=c.message||(d?`${c.error||"导出失败"}:${d}`:c.error||b)}catch{}throw Error(b.length>300?`${b.slice(0,300)}...`:b)};d.ok||await f(),"pdf"!==a.format||e.includes("application/pdf")||await f(),"docx"!==a.format||e.includes("officedocument.wordprocessingml.document")||await f();let g="true"===d.headers.get("X-Export-Not-Deliverable"),h=d.headers.get("X-Export-Gate-Issues")||"";try{b=h?JSON.parse(decodeURIComponent(h)):[]}catch{b=[]}let i=d.headers.get("content-disposition")||"",j=/filename\*=UTF-8''([^;]+)/iu.exec(i)?.[1];try{c=j?decodeURIComponent(j):void 0}catch{c=void 0}return{blob:await d.blob(),filename:c,notDeliverable:g,gateIssues:b}}async function M(){return d("/api/config/providers")}async function N(a,b){return d("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,...b})})}async function O(a){return d(`/api/config/providers/${encodeURIComponent(a)}`,{method:"DELETE"})}async function P(){return d("/api/config/models")}async function Q(a){return d("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function R(){return d("/api/config/embedding")}async function S(a){return d("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function T(){return d("/api/config/embedding/healthCheck",{method:"POST"})}async function U(a){return d("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a})})}async function V(){return d("/api/health")}async function W(){return d("/api/system/stats")}async function X(a=200){return d(`/api/system/logs?limit=${a}`)}async function Y(){return d("/api/system/logs",{method:"DELETE"})}async function Z(a){let b=a?`?projectRoot=${encodeURIComponent(a)}`:"";return d(`/api/kb/categories${b}`)}async function $(a){return d(`/api/config/providers/${encodeURIComponent(a)}`)}async function _(){return d("/api/system/data-health")}async function aa(a){return d("/api/system/data-health",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scopes:a,confirm:!0})})}},26588:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>n});var e=c(8732),f=c(79270),g=c(60056),h=c(82015),i=c(94487),j=c(22147),k=a([i]);i=(k.then?(await k)():k)[0];let o={processing:"jobs.statusProcessing",success:"jobs.statusSuccess",warning:"jobs.statusWarning",error:"jobs.statusError"},p={document:"jobs.typeDocument",upload:"jobs.typeUpload",reindex:"jobs.typeReindex",delete:"jobs.typeDelete"};function l({label:a,value:b}){return(0,e.jsxs)("div",{className:"flex gap-3 text-xs",children:[(0,e.jsx)("span",{className:"w-16 shrink-0 text-[var(--colorTextTertiary)]",children:a}),(0,e.jsx)("span",{className:"min-w-0 break-words text-[var(--colorTextSecondary)]",children:b})]})}function m({job:a,mounted:b,onRemove:c}){var d,h;let j=(0,i.Vr)(),k=Math.max(0,Math.min(100,Math.round(a.percent||0))),m="error"===a.status?"exception":"success"===a.status?"success":"active",n=a.details?.slice(0,40)||[],q=b?new Date(a.updatedAt).toLocaleString():String(a.updatedAt),r=a.id.startsWith("intelligence-mixed-");return(0,e.jsx)("div",{className:"border-b border-[var(--borderColor)] px-5 py-4 last:border-b-0",children:(0,e.jsxs)("div",{className:"flex items-start gap-3 text-left",children:[(0,e.jsx)("span",{className:"mt-1 inline-flex text-base",children:(d=a.status,"processing"===d?(0,e.jsx)(f.SyncOutlined,{spin:!0}):"success"===d?(0,e.jsx)(f.CheckCircleOutlined,{className:"text-[var(--colorOk)]"}):"warning"===d?(0,e.jsx)(f.ClockCircleOutlined,{className:"text-[var(--colorWarn)]"}):(0,e.jsx)(f.CloseCircleOutlined,{className:"text-[var(--colorDanger)]"}))}),(0,e.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,e.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-3",children:[(0,e.jsx)(g.o5.Text,{strong:!0,className:"min-w-0 flex-1 leading-6",ellipsis:{tooltip:a.title},children:a.title}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[r&&(0,e.jsx)(g.m_,{title:j("jobs.residentHint"),children:(0,e.jsx)(g.vw,{color:"purple",className:"m-0",children:j("jobs.resident")})}),(0,e.jsx)(g.vw,{color:(h=a.status,"processing"===h?"processing":"success"===h?"success":"warning"===h?"warning":"error"),className:"m-0",children:j(o[a.status])}),c&&(0,e.jsx)(g.iS,{title:j("jobs.removeConfirm"),onConfirm:c,okText:j("common.confirm"),cancelText:j("common.cancel"),children:(0,e.jsx)(g.$n,{size:"small",type:"text",danger:!0,icon:(0,e.jsx)(f.DeleteOutlined,{}),title:j("jobs.remove")})})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)(g.o5.Text,{type:"error"===a.status?"danger":void 0,className:"block whitespace-pre-wrap break-words leading-6",children:a.error||a.message}),(0,e.jsx)(g.ke,{percent:k,status:m}),(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(l,{label:j("jobs.typeLabel"),value:j(p[a.type])}),(0,e.jsx)(l,{label:j("jobs.stageLabel"),value:a.stage}),a.chunkCount?(0,e.jsx)(l,{label:j("jobs.chunksLabel"),value:a.chunkCount}):null,a.filePath?(0,e.jsx)(l,{label:j("jobs.fileLabel"),value:a.filePath}):null,(0,e.jsx)(l,{label:j("jobs.updatedAtLabel"),value:q})]}),n.length>0?(0,e.jsxs)("div",{className:"rounded-lg border border-[var(--borderColor)] bg-[var(--colorFillAlter)] p-2",children:[(0,e.jsx)(g.o5.Text,{type:"secondary",className:"block text-xs",children:j("jobs.diagnostics")}),(0,e.jsx)("ul",{className:"m-0 mt-1 max-h-52 overflow-auto pl-4 text-xs leading-5 text-[var(--colorTextSecondary)]",children:n.map((b,c)=>(0,e.jsx)("li",{className:"break-words",children:b},`${a.id}-${c}`))})]}):null]})]})]})})}function n(){let a=(0,i.Vr)(),{message:b}=g.qw.useApp(),[c,d]=(0,h.useState)(!1),[k,l]=(0,h.useState)([]),[n,o]=(0,h.useState)(!1),[p,q]=(0,h.useState)(!1),r=(0,h.useRef)(0);(0,h.useRef)(null);let s=(0,h.useRef)([]),t=(0,h.useCallback)(async()=>{let a=await (0,j.Qx)();r.current=0,s.current=a.operations||[],l(a.operations||[])},[]),u=(0,h.useMemo)(()=>k.filter(a=>"processing"===a.status),[k]),v=u.length,w=u[0],x=async c=>{try{await (0,j.CU)(c),b.success(a("jobs.removed")),await t()}catch{b.error(a("jobs.removeFailed"))}};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.Ex,{count:v,size:"small",children:(0,e.jsx)(g.$n,{className:"topbarBtn",onClick:()=>d(!0),icon:v?(0,e.jsx)(f.SyncOutlined,{spin:!0}):(0,e.jsx)(f.ClockCircleOutlined,{}),children:a("jobs.title")})}),w&&!c&&v>0?(0,e.jsxs)("span",{className:"max-w-[260px] truncate text-[var(--colorTextSecondary)]",children:[w.title," \xb7 ",w.percent,"%"]}):null,(0,e.jsx)(g._s,{title:a("jobs.title"),placement:"right",size:"large",open:c,onClose:()=>d(!1),extra:(0,e.jsx)(g.$n,{size:"small",onClick:()=>void t(),children:a("jobs.refresh")}),footer:k.length>0?(0,e.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,e.jsx)("span",{className:"text-xs text-[var(--colorTextTertiary)]",children:k.length}),(0,e.jsx)(g.$n,{danger:!0,size:"small",loading:p,icon:(0,e.jsx)(f.DeleteOutlined,{}),onClick:()=>{g.aF.confirm({title:a("jobs.clearConfirmTitle"),content:(0,e.jsxs)("div",{className:"text-sm",children:[(0,e.jsx)("div",{children:a("jobs.clearConfirmContent")}),(0,e.jsx)("div",{className:"mt-1 text-[var(--colorTextSecondary)]",children:a("jobs.clearConfirmWarning")})]}),okText:a("jobs.clearAll"),cancelText:a("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{q(!0);try{await (0,j.H7)(),b.success(a("jobs.cleared")),await t()}catch{b.error(a("jobs.clearFailed"))}finally{q(!1)}}})},children:a("jobs.clearAll")})]}):void 0,styles:{body:{padding:0}},children:0===k.length?(0,e.jsx)("div",{className:"flex h-full items-start justify-center pt-16",children:(0,e.jsx)(g.Sv,{description:(0,e.jsxs)("div",{className:"text-center",children:[(0,e.jsx)("div",{className:"text-[var(--colorTextSecondary)]",children:a("jobs.empty")}),(0,e.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mt-1",children:a("jobs.emptyHint")})]})})}):(0,e.jsx)("div",{className:"text-left",children:k.map(a=>(0,e.jsx)(m,{job:a,mounted:n,onRemove:"processing"===a.status?null:()=>{x(a.id)}},a.id))})})]})}d()}catch(a){d(a)}})},31077:(a,b,c)=>{"use strict";c.d(b,{CE:()=>e,_h:()=>f});let d=new Map;function e(a,b){let c=b.split(".").reduce((a,b)=>{if(a&&"object"==typeof a&&b in a)return a[b]},a);return"string"==typeof c?c:void 0}function f(a,b,c="unknown"){let g=e(a,b);return void 0!==g?g:(function(a,b){let c=`${a}:${b}`;d.has(c)||d.set(c,{locale:a,key:b})}(c,b),b)}},34924:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Y:()=>l});var e=c(8732),f=c(82015),g=c(57312),h=c(94487),i=c(68329),j=c(26588),k=a([g,h,j]);function l(){let{resolvedTheme:a,setTheme:b}=(0,g.useTheme)(),{locale:c,setLocale:d}=(0,h.x_)(),k=(0,h.Vr)("settings"),[l,m]=(0,f.useState)(!1),n=l&&"dark"===a;return(0,e.jsxs)("header",{className:"topbar",children:[(0,e.jsx)("div",{className:"flex-1"}),(0,e.jsx)(j.A,{}),(0,e.jsxs)("button",{onClick:()=>b(n?"light":"dark"),className:"topbarBtn",children:[n?(0,e.jsx)(i.bd5,{size:14}):(0,e.jsx)(i.AX$,{size:14}),(0,e.jsx)("span",{children:k(n?"light":"dark")})]}),(0,e.jsxs)("button",{onClick:()=>{d("zh-CN"===c?"en-US":"zh-CN")},className:"topbarBtn",children:[(0,e.jsx)(i.ATU,{size:14}),(0,e.jsx)("span",{children:"zh-CN"===(l?c:"zh-CN")?"English":"中文"})]})]})}[g,h,j]=k.then?(await k)():k,d()}catch(a){d(a)}})},54506:a=>{"use strict";a.exports=JSON.parse('{"app":{"title":"Customize Agent"},"nav":{"overview":"Overview","knowledge":"Knowledge Base","knowledgeManage":"KB Management","fileManagement":"File Management","documents":"Generation Records","canvas":"Generation Canvas","skills":"Skills","guide":"Guide","models":"Model Config","settings":"Settings","promptManagement":"Prompt Management","systemLogs":"System Logs"},"overview":{"title":"System Overview","description":"Monitor Customize Agent status and key metrics","status":"Service Status","knowledgeBase":"Knowledge Base","chunksCount":"Total Chunks","cores":"cores","memory":"Memory","tokensUsed":"Total Tokens","tasksTotal":"Total Tasks","successRate":"Success Rate","topModel":"Most Used Model","systemResources":"System Resources","hardwareUsage":"Hardware usage","cpuUsage":"CPU usage","memoryUsage":"Memory usage","activityContext":"Activity Context","recentTaskTypes":"Recent task types","noDataAvailable":"No data available","updated":"Updated","noLogs":"No logs","uptime":"Uptime","templateCount":"Documents","materialUnderstanding":"Material Understanding","semanticModel":"Semantic Model","external":"External","local":"Local","notConfigured":"Not Configured","modelProviders":"Model Providers","auditLogs":"Audit Logs","prompts":"Prompts","processUptime":"This process","materialKinds":"material types recognised","lastActivity":"Last activity","coreMetrics":"Core metrics","coreMetricsDesc":"Service uptime, token usage, tasks and success rate. Uptime counts from the first start (it does not reset on restart); the subtext is this process.","systemResourcesDesc":"Generation-side resources: material types, prompts, records, embedding model and providers.","hardwareUsageDesc":"Current CPU and memory usage. CPU is a delta between two refreshes, so it may read 0 right after startup.","activityContextDesc":"Model calls and task types over the recent window."},"knowledge":{"title":"Knowledge Base","description":"Upload project material, inspect parsing, chunking and index status","manageTitle":"KB Management","manageDesc":"View knowledge base statistics, categories, and features","files":"File Management","settings":"KB Settings","totalFiles":"Total Files","totalChunks":"Total Chunks","totalSize":"Total Size","lastIndexed":"Last Indexed","categories":"File Categories","fileCount":"File Count","search":"Search Files","searchPlaceholder":"Search by filename or content...","filterCategory":"Filter Category","allCategories":"All Types","upload":"Upload File","uploading":"Uploading...","reindex":"Reindex","delete":"Delete","deleteConfirm":"Are you sure you want to delete this file? This action cannot be undone.","fileName":"File Name","fileSize":"Size","fileCategory":"Category","fileDate":"Modified","totalRootFolders":"Total Root Folders","totalFilesStats":"Total Files","successfullyParsed":"Successfully Parsed","parsingErrors":"Parsing Errors","chunksCount":"Chunks","parsingStatus":"Status","source":"Source","fileSource":"File","showingMatchingFiles":"Showing {count} matching files","deleteSelected":"Delete Selected","exportParsed":"Export Parsed Text","exporting":"Exporting parsed content...","exportParsedSuccess":"Exported parsed content of {count} files","exportParsedSkipped":"Export done, skipped {count} unparsed files","exportParsedFailed":"Failed to export parsed content","deleteAll":"Delete All","uploadFiles":"Upload Files","uploadFolder":"Upload Folder","reindexAll":"Reindex All","new":"New","manageRawFiles":"Manage raw files, documents, and code sources","noFiles":"No files yet. Upload files to get started.","emptySearch":"No matching files found","features":"Feature Status","vectorStore":"Vector Store","embedding":"Embedding","averageSize":"Average Size","builtinExtractors":"Built-in Extractors","featureDedup":"Dedup Engine","featureDedupDesc":"Detects and removes duplicate/similar documents","featureChunker":"Chunker","featureChunkerDesc":"Splits documents into retrievable semantic chunks","enabled":"Enabled","disabled":"Disabled","parentChunks":"Parent Chunks","childChunks":"Child Chunks","parentChunkId":"Parent ID","chunkIndex":"Chunk Index","chunkType":"Type","sectionOrRange":"Section / Range","chunkContent":"Content","parentChunkHint":"A parent chunk is the context bundle of child chunks with the same parentId. If a parent contains only one child, identical content in both tables is expected.","fileDetailLoadFailed":"Failed to load file details","openFileRequested":"Open file requested","openDirectoryRequested":"Open directory requested","table":"Table","sheet":"Sheet","header":"Header","rows":"Rows","columns":"Columns","formulaCount":"Formulas","mergeCount":"Merged Cells","columnName":"Column Name","tableGridPreview":"Table Grid Preview","drawing":"Drawing","layer":"Layer","entityType":"Entity Type","blockSymbol":"Block/Symbol","productPart":"Product/Part","material":"Material","entityName":"Entity Name","layerTogglePreview":"Layer Toggle / Drawing Preview","type":"Type","name":"Name","dataPath":"Data Path","path":"Path","value":"Value","pageNumber":"Page","ocrText":"OCR Text","openExpand":"Expand","index":"Index","tokens":"Tokens","section":"Section","backToFileList":"Back to File List","fileDetailTitle":"File Details","fileDetailDesc":"View parsing results, drawing/table/data structured fields, parent chunks, and child chunks.","copySourcePath":"Copy Source Path","copyDirectory":"Copy Directory","originalFile":"Original File","directory":"Directory","detailFilter":"Detail Filter","detailFilterPlaceholder":"Filter rowRange, layers, entities, data paths, sections, and chunk content","fileReindexed":"File index rebuilt","copied":"Copied","rowPrefix":"Row","ocrPdf":"OCR/PDF","ocrRecommended":"OCR Recommended","ocrReason":"OCR Reason","ocrProvider":"OCR Engine","ocrLanguages":"OCR Languages","ocrTextLength":"OCR Text Length","pdfPageCount":"PDF Pages","pdfTextPages":"PDF Text Pages","pdfOcrAugmented":"PDF OCR Augmented","pdfOcrPages":"PDF OCR Pages","pdfFailedPages":"PDF Failed Pages","pdfPageOcrSupported":"PDF Page OCR Supported","pdfOcrPageCount":"PDF OCR Page Count","pdfOcrPageLimit":"PDF OCR Page Limit","pdfRenderer":"PDF Renderer","imagePreprocessor":"Image Preprocessor","selectFile":"Please select a file","reOcr":"Re-run OCR","reindexFile":"Rebuild File Index","basicInfo":"Basic Info","status":"Status","extractionMode":"Extraction Mode","contentCoverage":"Content Coverage","textLength":"Text Length","structuredInfo":"Structured Info","chunkCount":"Chunks","parentMatches":"Parent Matches","childMatches":"Child Matches","filterTerm":"Filter","rowRange":"Rows","expand":"Expand","weights":{"keyword":"Keyword Weight","vector":"Vector Weight","hybridBonus":"Hybrid Bonus"},"recallSources":{"keyword":"Keyword Retrieval","vector":"Vector Retrieval","hybrid":"Hybrid Retrieval"},"scopes":{"project":"Current Project","global":"Global"},"topLevelCount":"{count} top-level item(s)"},"models":{"title":"Model Configuration","description":"Manage LLM models and tier assignments","modelList":"Model List","addModel":"Add Model","editModel":"Edit Model","modelName":"Model Name","apiKey":"API Key","baseUrl":"Base URL","protocol":"Protocol","connected":"Connected","connectionFailed":"Connection Failed","noProviders":"No models yet. Add one to get started.","modelTiers":"Model Tier Assignment","tierReader":"Reader (Read-only)","tierReaderDesc":"Handles low-risk, read-only, and cost-sensitive work such as reading files, searching the knowledge base, text search, and context organization. Prefer fast, inexpensive models with stable long-context support.","tierReasoning":"Reasoning (Analysis)","tierReasoningDesc":"Handles deeper analysis, planning, code understanding, and multi-step reasoning. Prefer models with stronger reasoning quality and reliability.","tierAction":"Action (Write/Execute)","tierActionDesc":"Handles side-effect operations such as writing files, changing code, running commands, and calling external tools. Prefer reliable models with strong instruction-following and verified behavior.","deleteProvider":"Delete","deleteProviderConfirm":"Are you sure you want to delete this model and all its configs?","modelNamePlaceholder":"e.g. gpt-4o / deepseek-chat","selectModelPlaceholder":"No model selected","apiKeyEditHint":"Configured keys are shown as a masked value. Focus the field to enter a new key; the mask cannot be copied. Leave empty or keep the mask to avoid changes.","apiKeyEditPlaceholder":"Enter a new API key, or leave empty to keep current","embeddingConfig":"Embedding Configuration","embeddingProvider":"Embedding Provider","model":"Model","dimensions":"Dimensions","none":"None","active":"Active","localRecommended":"Local (Recommended)","externalAdvanced":"External (Advanced)","status":"Status","openAICompatible":"OpenAI-compatible","saveEmbedding":"Save Embedding Config","testEmbedding":"Test Embedding","optional":"Optional","save":"Save","cancel":"Cancel","webEnhancement":"Web Enhancement","webEnhancementDesc":"Disabled by default. When enabled, the system will search public standards, policies, and general technical data to improve the accuracy of measures. Web data will not override local project facts.","directEndpoint":"Direct Endpoint","directEndpointDesc":"Base URL is the complete endpoint address","capabilities":"Capabilities","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"Image Generation","imageUnderstanding":"Image Understanding","fileUnderstanding":"File Understanding","audioCapability":"Audio","videoCapability":"Video","localEmbedding":"Local Embedding","thinkingMode":"Thinking Mode","thinkingFollowTask":"Follow Task Strategy (Recommended)","thinkingEnabled":"Force On","thinkingDisabled":"Force Off","modelListDesc":"One connection per provider: protocol, base URL, API key and multimodal capabilities. Model tiers pick from these providers.","embeddingConfigDesc":"The vector model behind knowledge base retrieval. Verify the endpoint is reachable before switching to an external embedding provider.","modelTiersDesc":"Assign one model to each task class. The same provider may appear in more than one tier.","testConnection":"Test connection"},"prompt":{"title":"Prompt Management","description":"Manage CUSTOMIZE.md system prompt files per project","filePath":"File Path","hasFile":"Configured","promptName":"Prompt Name","customPrompt":"My Prompts","currentProject":"Current Project","otherProjects":"Other Projects","allPrompts":"All Prompts","promptStatus":"Prompt Status","selected":"Selected","unselected":"Unselected","hasFileStatus":"Has File","missingFileStatus":"Missing File","sortByName":"Name A-Z","sortByMtime":"Recently Modified","sortBySource":"Source","sortBySelected":"Selected First","noMatchDesc":"No matching prompts found. Please try different keywords or clear filters.","noPromptInGroup":"No prompts in current group","searchPrompt":"Search name, content, path...","import":"Import","exportFiltered":"Export Filtered","createPrompt":"Create Prompt","exportSelected":"Export Selected","batchSelect":"Batch Select","cancelSelect":"Cancel Select","clearSelect":"Clear Selection","aiPromptAssistant":"AI Prompt Assistant","clearHistory":"Clear History","generating":"Generating","canConverse":"Conversational Optimization","mentionRecallHint":"Type @ to recall knowledge files, then describe your optimization goal","apply":"Apply","aiAnalyzing":"AI is analyzing and generating content...","recallKbFiles":"Recall Knowledge Files","recallLimitHint":"Supports file name and content search, recalls up to 3 files","inputAtKeyword":"Type @keyword","loadingKbFiles":"Loading knowledge files...","noRecallableKbFiles":"No knowledge files available to recall","searchingKbContent":"Searching knowledge content...","noMatchingKbFiles":"No matching knowledge files, try another keyword","continueSearchingKb":"Continuing to search for content matches...","unclassified":"Unclassified","unknownFormat":"Unknown Format","contentMatch":"Content Match","diskFile":"Disk File","fileMatch":"File Match","mentionRecallPlaceholder":"Type @ to recall knowledge files, then describe goal...","rulePreviewTitle":"Rule Detection Preview","rulePreviewAnalyzing":"Analyzing rules…","rulePreviewHint":"Rules will be auto-detected after you enter prompt content","rulePreviewNone":"No rules detected","send":"Send","chatFailed":"Chat failed — check the model configuration","chatEmptyReply":"The model returned no content","nameRequired":"Enter a name","untitled":"Untitled prompt","appliedToEditor":"Applied to the editor — review it before saving","exportedCount":"Exported {count} prompt(s)","importedCount":"Imported {count} prompt(s)","importFailed":"Import failed — make sure the JSON file is well-formed","exportOne":"Export","deleteCustomConfirm":"Delete this custom prompt?","deleteProjectConfirm":"Delete this project record and its file?","localPrompt":"Local prompt","selectedCount":"{count} selected"},"assets":{"description":"Manage documents, images, and attachments generated by template runs. Generated results are stored only in generated assets and are not added to the knowledge base.","deleteSelected":"Delete Selected {count}","deleteAll":"Delete All","empty":"No generated assets","resource":"Resource","path":"Path","source":"Source","openFile":"Open File","openDirectory":"Open Directory","deleted":"Deleted {count} assets"},"logs":{"monitorSystem":"Monitor system exceptions, API errors, and runtime issues","searchLogs":"Search logs...","refresh":"Refresh","clear":"Clear","clearConfirm":"Are you sure you want to clear all error logs?","logStorageInfo":"Logs are stored locally in","maxLoaded":"Max 500 entries loaded.","noLogsFound":"No logs found","time":"Time","level":"Level","source":"Source","message":"Message","requestId":"Req ID","function":"Function","requestContext":"Request Context","metadata":"Metadata","stackTrace":"Stack Trace","clearedFiles":"Cleared {count} error log file(s)"},"settings":{"title":"System Settings","description":"Manage interface preferences and view system overview","language":"Interface Language","languageDesc":"Select the language for the system interface","theme":"Appearance Theme","themeDesc":"Adjust light and dark themes","light":"Light","dark":"Dark","system":"System","serverStatus":"Server Status","serverStatusDesc":"Resource usage and health","status":"Status","healthy":"Healthy","unknown":"Unknown","uptime":"Uptime","days":"days","hours":"hours","minutes":"mins","cpu":"CPU","cores":"Cores","memory":"Memory Usage","embeddingConfig":"Embedding Config","embeddingConfigDesc":"Vector DB configurations","provider":"Provider","model":"Model","apiKey":"API Key","configured":"Configured","none":"None","dimensions":"Dimensions","localData":"Local Data & Storage","localDataDesc":"All data is stored locally on your machine","directory":"Directory","knowledgeBase":"Knowledge Base","localVectors":"Local Vectors","tasks":"Total Tasks","tokens":"Total Tokens","diagnostics":"Diagnostics","diagnosticsDesc":"Server-side error log (stack traces, requests, sources). Use it to find out why a generation failed.","openDiagnostics":"Open diagnostics"},"documents":{"saveDraft":"Save Draft","exportGateBlockedTitle":"Export gate not passed","exportAnywayNonDeliverable":"Export anyway (non-deliverable)","nonDeliverableExportConfirm":"The exported file will be force-marked as a non-deliverable (file-name suffix and on-page banner). It must not be submitted as a formal deliverable.","nonDeliverableExportTitle":"This export is a non-deliverable","nonDeliverableExportHint":"The export gate did not pass, so the file is force-marked as a non-deliverable (file-name suffix). It must not be submitted as a formal deliverable."},"specs":{"title":"Document Spec Packages","description":"Configure fact fields, chapter rules, and executable gate rules. Both system and custom gate types participate in validation.","list":"Spec List","name":"Spec Name","facts":"Fact Fields","chapters":"Chapter Rules","required":"Required","chapterTitle":"Chapter Title","order":"Order","minWords":"Min Words","requiredFacts":"Required Facts"},"common":{"save":"Save","cancel":"Cancel","confirm":"Confirm","delete":"Delete","edit":"Edit","add":"Add","search":"Search","loading":"Loading...","error":"Something went wrong","success":"Success","retry":"Retry","close":"Close","noData":"No data","unknown":"Unknown","never":"Never","statusWaiting":"Waiting","statusRunning":"In Progress","statusCompleted":"Completed","statusSkipped":"Skipped","statusFailed":"Failed","statusPartial":"Partial","statusReview":"Needs Review","statusAbnormal":"Abnormal","statusIndexed":"Indexed","statusOutdated":"Outdated","statusDeleted":"Deleted","statusNotIndexed":"Not Indexed","levelError":"Error","levelWarning":"Warning","levelInfo":"Info","totalRows":"{count} rows"},"refs":{"title":"Template Reference Library","description":"Upload outstanding winning bids as quality benchmarks. The system parses quality profiles (parameter density, process chains, structure) and benchmarks generated documents by project type. References are used ONLY for quality benchmarking and structure guidance, never as project facts.","uploading":"Uploading and parsing…","uploaded":"Reference added and profile parsed","projectType":"Project type","delete":"Delete","deleteConfirm":"Delete this reference? The original file will also be removed","paramDensity":"Param density","duplication":"Duplication rate","tables":"Tables","sections":"Sections"},"jobs":{"title":"Background tasks","refresh":"Refresh","clearAll":"Clear all","empty":"No background tasks","emptyHint":"Uploads, re-index runs and document generation all leave a record here.","remove":"Remove record","removeConfirm":"Remove this record from the list?","removed":"Record removed","clearConfirmTitle":"Clear all background task records?","clearConfirmContent":"Records will be deleted. Running tasks are not cancelled.","cleared":"Records cleared","clearFailed":"Failed to clear","removeFailed":"Failed to remove","typeLabel":"Type","stageLabel":"Stage","chunksLabel":"Chunks","fileLabel":"File","updatedAtLabel":"Updated","diagnostics":"Diagnostics","statusProcessing":"Running","statusSuccess":"Done","statusWarning":"Warning","statusError":"Failed","typeDocument":"Document generation","typeUpload":"File upload","typeReindex":"Re-index","typeDelete":"Delete","resident":"Persistent","residentHint":"Persistent system alert: written automatically when an issue is detected, and rewritten on the next check after removal","clearConfirmWarning":"In-flight records reappear on the next progress update, and persistent system alerts (e.g. mixed material packs) are rewritten on the next check."},"records":{"title":"Generation records","empty":"No generation records yet","batch":"Select","current":"Current","selectPage":"Select page","clearSelect":"Clear","checkedCount":"{count} selected","deleteSelected":"Delete","deletedCount":"Deleted {count} record(s)","confirmDelete":"Delete this record?","confirmDeleteSelected":"Delete the {count} selected record(s)?","deleteHint":"This cannot be undone. A running generation cannot be deleted — abort it on the canvas first.","inFlightHint":"A running generation cannot be deleted (abort it on the canvas first)","reportTitle":"Export closure report","reportEmpty":"No exports yet","reportEntry":"Export report","reportFormat":"Format","reportDuration":"Duration","reportRepaired":"Repaired","reportBlocking":"Blocking","reportRules":"Rules","reportHealthAlerts":"Health alerts","reportGateBlocked":"Not deliverable","reportChecklistTitle":"Unresolved items from the latest non-deliverable export","reportChecklistTotal":"{count} item(s)"}}')},66285:()=>{},93065:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B:()=>n});var e=c(8732),f=c(82015),g=c(21202),h=c(9328),i=c.n(h),j=c(94487),k=c(68329),l=c(60056),m=a([j]);j=(m.then?(await m)():m)[0];let o=[{href:"/overview",icon:k.HxJ,labelKey:"nav.overview"},{href:"/knowledge",icon:k.WmV,labelKey:"nav.knowledge"},{href:"/models",icon:k.fX,labelKey:"nav.models"},{href:"/prompt",icon:k.vEG,labelKey:"nav.promptManagement"},{href:"/skills",icon:k.wB_,labelKey:"nav.skills"},{href:"/canvas",icon:k.lgv,labelKey:"nav.canvas"},{href:"/guide",icon:k.Gyj,labelKey:"nav.guide"},{href:"/settings",icon:k.wB_,labelKey:"nav.settings"}];function n(){let a=(0,g.usePathname)()??"",b=(0,j.Vr)(),c=b=>!!b&&(a===b||a.startsWith(b+"/")),d=(0,f.useMemo)(()=>{let a={};for(let b of o)b.children?.some(a=>c(a.href))&&(a[b.labelKey]=!0);return a},[a]),[h,m]=(0,f.useState)({}),[n,p]=(0,f.useState)(!0);return(0,e.jsxs)("aside",{className:`sidebar${n?" sidebarCollapsedSelf":""}`,children:[(0,e.jsxs)("div",{className:"sidebarLogoRow",children:[(0,e.jsx)(i(),{href:"/overview",prefetch:!1,className:"min-w-0 flex-1",onClick:a=>{n&&(a.preventDefault(),p(!1))},children:(0,e.jsxs)("div",{className:"sidebarLogo",children:[(0,e.jsx)("div",{className:"w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0",children:(0,e.jsx)(k.AX$,{className:"text-white dark:text-black",size:20})}),(0,e.jsx)("div",{className:"sidebarLogoTitle",children:(0,e.jsx)("span",{className:"logoGradient",children:"Customize Agent"})})]})}),!n&&(0,e.jsx)("button",{className:"sidebarCollapseBtn",onClick:()=>p(!0),"aria-label":"收起侧边栏",children:(0,e.jsx)(k.ues,{size:16})})]}),(0,e.jsx)("nav",{className:"sidebarNav mt-2",children:o.map(a=>{if(a.children){let f,g=h[a.labelKey]??d[a.labelKey]??!1,j=(f=a.children,f?.some(a=>c(a.href)));return(0,e.jsxs)("div",{children:[(0,e.jsx)(l.m_,{title:n?b(a.labelKey):"",placement:"right",children:(0,e.jsxs)("div",{className:`sidebarItem sidebarParent${j&&n?" sidebarItemActive":""}`,onClick:()=>{if(n)p(!1),m(b=>({...b,[a.labelKey]:!0}));else{var b;b=a.labelKey,m(a=>({...a,[b]:!a[b]}))}},children:[(0,e.jsx)(a.icon,{size:18}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)}),(0,e.jsx)("span",{className:"sidebarChevron",children:g?(0,e.jsx)(k.yQN,{size:14}):(0,e.jsx)(k.c_$,{size:14})})]})}),g&&!n&&(0,e.jsx)("div",{className:"sidebarSubmenu animateFadeIn",children:a.children.map(a=>{let d=c(a.href);return(0,e.jsx)(i(),{href:a.href,prefetch:!1,children:(0,e.jsxs)("div",{className:`sidebarItem sidebarSubItem${d?" sidebarItemActive":""}`,children:[(0,e.jsx)(a.icon,{size:16}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)})]})},a.href)})})]},a.labelKey)}let f=c(a.href);return(0,e.jsx)(l.m_,{title:n?b(a.labelKey):"",placement:"right",children:(0,e.jsx)(i(),{href:a.href,prefetch:!1,children:(0,e.jsxs)("div",{className:`sidebarItem${f?" sidebarItemActive":""}`,children:[(0,e.jsx)(a.icon,{size:18}),(0,e.jsx)("span",{className:"sidebarLabel",children:b(a.labelKey)})]})})},a.href)})})]})}d()}catch(a){d(a)}})},94487:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{PE:()=>x,Vr:()=>v,x_:()=>u});var e=c(8732),f=c(82015),g=c(49702),h=c.n(g),i=c(42583),j=c(57312),k=c(60056),l=c(2973),m=c(40107);c(36653);var n=c(4823),o=c(93065),p=c(34924),q=c(13484),r=c(54506),s=c(31077),t=a([j,o,p]);[j,o,p]=t.then?(await t)():t;let y=(0,f.createContext)(null);function u(){let a=(0,f.useContext)(y);if(!a)throw Error("useAppLocale must be used inside Layout");return a}function v(a){let{messages:b,locale:c}=u();return(0,f.useCallback)(d=>{if(!a)return(0,s._h)(b,d,c);let e=`${a}.${d}`,f=(0,s.CE)(b,e);return void 0!==f?f:(0,s._h)(b,d,c)},[b,a,c])}let z={"zh-CN":q,"en-US":r};function w({children:a}){let{resolvedTheme:b}=(0,j.useTheme)(),c=(0,i.useRouter)(),[d,g]=(0,f.useState)("zh-CN"),[q,r]=(0,f.useState)(!1),s="dark"===b,t=z[d]??z["zh-CN"],u=(0,f.useCallback)(a=>{document.cookie=`NEXT_LOCALE=${a};path=/;max-age=31536000;samesite=lax`,g(a)},[]),v=(0,f.useMemo)(()=>({locale:d,setLocale:u,messages:t}),[d,u,t]),w=(0,f.useMemo)(()=>(0,n.D)(s),[s]),x="en-US"===d?m.default:l.A;return(0,e.jsx)(y.Provider,{value:v,children:(0,e.jsx)(k.sG,{theme:w,locale:x,children:(0,e.jsxs)(k.qw,{children:[(0,e.jsx)(h(),{children:(0,e.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"})}),(0,e.jsx)(o.B,{}),(0,e.jsxs)("div",{className:"mainContent",children:[(0,e.jsx)(p.Y,{}),(0,e.jsx)("main",{className:`mainInner${c.pathname.startsWith("/canvas")?" mainInnerCanvas":""}${q?" pageTransitioning":""}`,children:a})]})]})})})}function x({children:a}){return(0,e.jsx)(j.ThemeProvider,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:(0,e.jsx)(w,{children:a})})}d()}catch(a){d(a)}})},97237:()=>{}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],rootMainFilesTree:{},pages:{"/":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-81a3e3973fc43791.js","static/chunks/pages/index-cb27bfa36c212ab5.js"],"/_app":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/css/85c434f8fd3a17ae.css","static/chunks/pages/_app-c560816f0a8a0815.js"],"/_error":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/pages/_error-282257fbdcc167b4.js"],"/canvas":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/243-03eba51d5d737e98.js","static/chunks/530-df2ce692cf0fa512.js","static/chunks/pages/canvas-323d44fe56d685a7.js"],"/canvas/[id]":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/569-2bfdde9e402af5b2.js","static/chunks/243-03eba51d5d737e98.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/709-a7c652953ccd3b4b.js","static/chunks/530-df2ce692cf0fa512.js","static/chunks/pages/canvas/[id]-515edd3e72acaf82.js"],"/documents":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/pages/documents-e6a80f2de39c6fd2.js"],"/guide":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/569-2bfdde9e402af5b2.js","static/chunks/787-207289f4bb577708.js","static/chunks/269-7a3502478bf67fff.js","static/chunks/pages/guide-7367305082617e3c.js"],"/knowledge":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/289-136ebb30e0f6723a.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge-ca8ad5501faed486.js"],"/knowledge/file-detail":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/289-136ebb30e0f6723a.js","static/chunks/569-2bfdde9e402af5b2.js","static/chunks/787-207289f4bb577708.js","static/chunks/506-93f730bc149d0dce.js","static/chunks/850-0f48354694fc6b3e.js","static/css/ad5a592c79d1448b.css","static/chunks/pages/knowledge/file-detail-aee7c15541d1d130.js"],"/knowledge/files":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/pages/knowledge/files-b3ef5324e4b74c4a.js"],"/knowledge/manage":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/pages/knowledge/manage-d9eaebf3a8307953.js"],"/models":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/445-d12731f107978b10.js","static/chunks/422-46f07037c58d2309.js","static/chunks/pages/models-8b96ba85131d5408.js"],"/overview":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/880-64d8a15c524106d2.js","static/chunks/795-81a3e3973fc43791.js","static/chunks/pages/overview-8713b5d37af0eeb3.js"],"/prompt":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/426-90638907336adcb8.js","static/chunks/pages/prompt-dd9a9f9105216e2b.js"],"/settings":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/pages/settings-0a7709bf039a2a4d.js"],"/skills":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/289-136ebb30e0f6723a.js","static/chunks/569-2bfdde9e402af5b2.js","static/chunks/787-207289f4bb577708.js","static/chunks/445-d12731f107978b10.js","static/chunks/127-20f09f6ebe1e6c1f.js","static/chunks/pages/skills-3d77213c3e9ef0b5.js"],"/system/logs":["static/chunks/webpack-6224d37324e372cb.js","static/chunks/framework-4b565b3ddc94cdac.js","static/chunks/main-0c91f573696223ca.js","static/chunks/310-6c678cb70e4ba2d6.js","static/chunks/700-5d29b0475311f590.js","static/chunks/914-292edce0ba2a212d.js","static/chunks/174-1bc48f295d7dd075.js","static/chunks/189-3f4f4e237056adaf.js","static/chunks/289-136ebb30e0f6723a.js","static/chunks/pages/system/logs-9deb1217739490af.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/85c434f8fd3a17ae.css" as="style"/><link rel="stylesheet" href="/_next/static/css/85c434f8fd3a17ae.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-ebb535779b63fd5d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/4xQDkixSretJDM503EzIq/_buildManifest.js" defer=""></script><script src="/_next/static/4xQDkixSretJDM503EzIq/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar sidebarCollapsedSelf"><div class="sidebarLogoRow"><a class="min-w-0 flex-1" href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon text-white dark:text-black"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a></div><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">技能库</span></div></a><a href="/canvas"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="sidebarLabel">生成画布</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><span class="ant-badge css-1pi45l5 css-var-_R_16_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"4xQDkixSretJDM503EzIq","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/85c434f8fd3a17ae.css" as="style"/><link rel="stylesheet" href="/_next/static/css/85c434f8fd3a17ae.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-c560816f0a8a0815.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/2MjosIoMmZUcFnY_P02ZD/_buildManifest.js" defer=""></script><script src="/_next/static/2MjosIoMmZUcFnY_P02ZD/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_16_"><aside class="sidebar sidebarCollapsedSelf"><div class="sidebarLogoRow"><a class="min-w-0 flex-1" href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon text-white dark:text-black"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a></div><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">技能库</span></div></a><a href="/canvas"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="sidebarLabel">生成画布</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><span class="ant-badge css-1pi45l5 css-var-_R_16_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"2MjosIoMmZUcFnY_P02ZD","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|