@customize-agent/server 3.0.16 → 3.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.next/build-manifest.json +12 -12
  2. package/.next/prerender-manifest.json +3 -3
  3. package/.next/server/chunks/3445.js +2 -2
  4. package/.next/server/middleware-build-manifest.js +1 -1
  5. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  6. package/.next/server/pages/api/assets/generated.js +1 -1
  7. package/.next/server/pages/api/documents/export.js +2 -2
  8. package/.next/server/pages/api/documents/generate.js +1 -1
  9. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  10. package/.next/server/pages/api/documents/generated.js +1 -1
  11. package/.next/server/pages/api/documents/specs.js +1 -1
  12. package/.next/server/pages/api/prompt.js +97 -1
  13. package/.next/server/pages/asset-library.html +1 -1
  14. package/.next/server/pages/context/long-term.html +1 -1
  15. package/.next/server/pages/context/short-term.html +1 -1
  16. package/.next/server/pages/document-roles.html +1 -1
  17. package/.next/server/pages/document-specs.html +1 -1
  18. package/.next/server/pages/documents.html +1 -1
  19. package/.next/server/pages/knowledge/file-detail.html +1 -1
  20. package/.next/server/pages/knowledge/files.html +1 -1
  21. package/.next/server/pages/knowledge/manage.html +1 -1
  22. package/.next/server/pages/knowledge/search.html +1 -1
  23. package/.next/server/pages/models.html +1 -1
  24. package/.next/server/pages/overview.html +1 -1
  25. package/.next/server/pages-manifest.json +21 -21
  26. package/.next/static/chunks/pages/asset-library-82606363f9142bad.js +1 -0
  27. package/.next/static/chunks/pages/context/{long-term-09e23b06634b08d9.js → long-term-f2a550bc848ec1a3.js} +1 -1
  28. package/.next/static/chunks/pages/context/short-term-1de28da82d2b6276.js +1 -0
  29. package/.next/static/chunks/pages/document-roles-54a1cc04116e8c18.js +1 -0
  30. package/.next/static/chunks/pages/document-specs-723dee6883949a17.js +1 -0
  31. package/.next/static/chunks/pages/documents-cf8bb78fbcc70bb1.js +1 -0
  32. package/.next/static/chunks/pages/knowledge/file-detail-7a1a3d4352ecfa0a.js +1 -0
  33. package/.next/static/chunks/pages/knowledge/files-f0e05583bf7c57d9.js +1 -0
  34. package/.next/static/chunks/pages/knowledge/manage-8acff53019eb6cc1.js +1 -0
  35. package/.next/static/chunks/pages/knowledge/{search-3fd704d2afa1af3e.js → search-1f3bd8fcb7af3e4d.js} +1 -1
  36. package/.next/static/chunks/pages/models-11533caad3723009.js +1 -0
  37. package/.next/static/chunks/pages/overview-f80672c242d9aa32.js +1 -0
  38. package/.next/static/customize-agent-dashboard/_buildManifest.js +1 -1
  39. package/package.json +1 -1
  40. package/.next/static/chunks/pages/asset-library-0f607b74fa016470.js +0 -1
  41. package/.next/static/chunks/pages/context/short-term-2f5fd8531e87b5bd.js +0 -1
  42. package/.next/static/chunks/pages/document-roles-077fc7159c88e89e.js +0 -1
  43. package/.next/static/chunks/pages/document-specs-fb5b8a89cff6d1e3.js +0 -1
  44. package/.next/static/chunks/pages/documents-38320ae2fd50be35.js +0 -1
  45. package/.next/static/chunks/pages/knowledge/file-detail-ad1dc61c1413db0c.js +0 -1
  46. package/.next/static/chunks/pages/knowledge/files-896c058f2da5e907.js +0 -1
  47. package/.next/static/chunks/pages/knowledge/manage-6da10158f75718cf.js +0 -1
  48. package/.next/static/chunks/pages/models-7bdf24068811ae91.js +0 -1
  49. package/.next/static/chunks/pages/overview-572bba4876e617f5.js +0 -1
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)()})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let e=(0,i.a6)(c,d);if(!e)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:e})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:"completed",draft:a,assets:a.assets||[],completedAt:Date.now()},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),c}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=36583));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=3269,a.ids=[3269],a.modules={15751:a=>{a.exports=require("xlsx")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},36583:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(67461);function j(a,b){try{if("GET"===a.method){let c="string"==typeof a.query.id?a.query.id:void 0;if(c){let a=(0,i.v7)(c);if(!a)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:a})}return b.status(200).json({documents:(0,i.M$)()})}if("PUT"===a.method){let{id:c,...d}=a.body;if(!c)return b.status(400).json({error:"id required"});let e=(0,i.a6)(c,d);if(!e)return b.status(404).json({error:"Document not found"});return b.status(200).json({document:e})}if("DELETE"===a.method){let c="string"==typeof a.query.id?a.query.id:a.body?.id;if(!c)return b.status(400).json({error:"id required"});return(0,i.QG)(c),b.status(200).json({ok:!0})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/generated",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/generated",pathname:"/api/documents/generated",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/generated"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/generated",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},48161:a=>{a.exports=require("node:os")},67461:(a,b,c)=>{c.d(b,{BH:()=>w,JU:()=>y,Jz:()=>A,M$:()=>r,QG:()=>v,SE:()=>o,YL:()=>B,a6:()=>u,uc:()=>z,v7:()=>s,yE:()=>x});var d=c(77598),e=c(73024),f=c(48161),g=c(76760),h=c(73445),i=c(23328);let j=new Map;function k(a=(0,i.aY)()){let b=g.join(f.homedir(),".customize-agent","projects",function(a=(0,i.aY)()){return d.createHash("sha1").update(g.resolve(a)).digest("hex").slice(0,12)}(a),"generatedDocuments");return e.mkdirSync(g.join(b,"drafts"),{recursive:!0}),e.mkdirSync(g.join(b,"assets"),{recursive:!0}),b}function l(a=(0,i.aY)()){return g.join(k(a),"index.json")}function m(a=(0,i.aY)()){return g.join(k(a),"assets.json")}function n(a,b=(0,i.aY)()){return g.join(k(b),"drafts",`${a}.json`)}function o(a,b=(0,i.aY)()){return a.path?g.isAbsolute(a.path)?a.path:a.path.startsWith("generatedDocuments/assets/")?g.join(k(b),a.path.replace(/^generatedDocuments\/assets\//u,"assets/")):g.join(b,"knowledgeBase",a.path):null}function p(a,b){try{return JSON.parse(e.readFileSync(a,"utf8"))}catch{return b}}function q(a,b){e.mkdirSync(g.dirname(a),{recursive:!0}),e.writeFileSync(a,JSON.stringify(b,null,2))}function r(a=(0,i.aY)()){return p(l(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function s(a,b=(0,i.aY)()){return p(n(a,b),null)}function t(a,b=(0,i.aY)()){let c=Date.now(),d={...a,updatedAt:c};q(n(d.id,b),d);let e=r(b).filter(a=>a.id!==d.id);return e.unshift(d),q(l(b),e.map(a=>({...a,draft:void 0}))),d}function u(a,b,c=(0,i.aY)()){let d=s(a,c);return d?t({...d,...b,id:a},c):null}function v(a,b=(0,i.aY)()){try{e.rmSync(n(a,b),{force:!0})}catch{console.warn("[generated-documents] 删除文档记录失败或文件不存在",a)}q(l(b),r(b).filter(b=>b.id!==a))}function w(a=(0,i.aY)()){return p(m(a),[]).sort((a,b)=>b.updatedAt-a.updatedAt)}function x(a,b=(0,i.aY)()){return w(b).find(b=>b.id===a)||null}function y(a,b=(0,i.aY)()){let c=x(a,b);if(!c)return!1;let d=o(c,b);if(d&&d.startsWith(k(b)))try{e.rmSync(d,{force:!0})}catch{console.warn("[generated-documents] 删除生成资源文件失败或文件不存在",d)}return q(m(b),w(b).filter(b=>b.id!==a)),!0}async function z(a,b=(0,i.aY)()){let c=x(a,b);if(!c?.path)return null;let d=o(c,b);if(!d||!e.existsSync(d))throw Error("asset file not found");let f=g.join("生成资源",g.basename(c.path)).split(g.sep).join("/"),h=g.join(b,"knowledgeBase",f);e.mkdirSync(g.dirname(h),{recursive:!0}),d!==h&&e.copyFileSync(d,h);let j=await (0,i.Qh)().getProject(b);await j.reindexFile(f);let k=w(b).map(b=>b.id===a?{...b,path:f,source:"generated",indexed:!0,updatedAt:Date.now()}:b);return q(m(b),k),k.find(b=>b.id===a)||null}function A(a,b,c=(0,i.aY)()){let d=x(a,c);if(!d)return null;let f=o(d,c);return f&&e.existsSync(f)?"directory"===b?g.dirname(f):f:null}function B(a,b=(0,i.aY)()){let c=Date.now(),e=`doc-${c}-${d.randomBytes(4).toString("hex")}`,f=`task-${c}-${d.randomBytes(4).toString("hex")}`,k={id:e,taskId:f,templateId:a.templateId,title:"生成中",requirement:a.requirement||"",markdown:"",status:"generating",assets:[],createdAt:c,updatedAt:c};t(k,b);let l=(0,h.OX)(a).then(a=>{let c=a.validationIssues.filter(a=>"error"===a.level||"warning"===a.level).map(a=>a.suggestion?`${a.message}:${a.suggestion}`:a.message),d=t({...k,templateName:a.templateName,title:a.title,markdown:a.markdown,status:c.length>0?"warning":"completed",draft:a,assets:a.assets||[],completedAt:Date.now(),warningIssues:c},b);return!function(a,b,c=(0,i.aY)()){let d=Date.now(),e=[...w(c)];for(let c of a){let a=e.findIndex(a=>a.id===c.id),f=c.path?.startsWith("generatedDocuments/assets/")||"generated"===c.status||"prompt_ready"===c.status?"generated":"knowledge_base",h={...c,name:g.basename(c.path||c.url||c.id),source:f,indexed:a>=0&&e[a].indexed,usedByDocumentIds:a>=0?[...new Set([...e[a].usedByDocumentIds,b])]:[b],createdAt:a>=0?e[a].createdAt:d,updatedAt:d};a>=0?e[a]={...e[a],...h}:e.push(h)}q(m(c),e)}(a.assets||[],e,b),d}).catch(a=>t({...k,status:"failed",error:a instanceof Error?a.message:String(a)},b)).finally(()=>{let a=j.get(f);a&&(a.status=s(e,b)?.status||a.status)});return j.set(f,{id:f,documentId:e,status:"generating",promise:l}),{taskId:f,documentId:e,record:k}}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},87550:a=>{a.exports=require("better-sqlite3")},95393:a=>{a.exports=require("@customize-agent/llm")},96770:a=>{a.exports=require("@customize-agent/runtime")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,3328,3445],()=>b(b.s=36583));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=1282,a.ids=[1282],a.modules={48161:a=>{a.exports=require("node:os")},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:演示如何用事实字段、章节规则、文件角色、提示词角色和导出门禁共同约束一篇可交付攻略文档。",factFields:[{id:"guide-goal",name:"攻略目标",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-case-reference-files"],extractionHint:"抽取本文解决的问题、适用对象和最终交付目标。",validationHint:"正文导语必须能回答“给谁看、解决什么问题”。"},{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。",validationHint:"至少覆盖内置事实文件中的四名热门干员。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。",validationHint:"定位必须和干员名称一一对应。"},{id:"operator-value",name:"核心价值",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取每名干员在队伍中的核心价值和使用场景。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数、上手难度和推荐场景。",validationHint:"推荐指数应以表格形式呈现。"},{id:"team-composition",name:"队伍搭配",type:"table",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取新手稳健队、突破压制队、控图防守队等组合和使用要点。"},{id:"map-drawing",name:"地图图纸",type:"list",required:!0,sourceRoleIds:["delta-drawing-files"],extractionHint:"抽取官方地图工具来源、地图名称和地图图纸文件。",validationHint:"地图图纸必须来自知识库检索资源,不能硬插固定文件。"},{id:"image-reference",name:"图片资源",type:"list",required:!1,sourceRoleIds:["delta-image-files","delta-reference-image-files"],extractionHint:"抽取干员图片、参考图片和可用作配图的本地资源。"},{id:"template-case",name:"模板案例参考",type:"text",required:!0,sourceRoleIds:["delta-case-reference-files"],extractionHint:"抽取模板案例中的结构、来源清单和示例表达方式。"},{id:"style-rule",name:"模板样式规则",type:"text",required:!0,sourceRoleIds:["delta-style-reference-files"],extractionHint:"抽取标题层级、章节结构、表格、图片说明和导出排版规则。"},{id:"export-gate",name:"导出门禁",type:"list",required:!0,sourceRoleIds:["delta-export-gate-files"],extractionHint:"抽取阻断项、警告项和导出通过标准。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:120,requiredFactIds:["guide-goal","template-case"],requiredFileRoleIds:["delta-case-reference-files"],requiredPromptRoleIds:["delta-template-style-prompt"],generationHint:"必须让用户看出这是一个可学习、可复制的内置模板案例。"},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:180,requiredFactIds:["operator-name","operator-role","operator-value"],requiredFileRoleIds:["delta-fact-files"],generationHint:"使用表格或分组清单展示干员、定位、核心价值和适合场景。"},{id:"team",title:"第三章 队伍搭配和实战打法",required:!0,order:2,minWords:160,requiredFactIds:["team-composition"],requiredFileRoleIds:["delta-doc-files","delta-fact-files"],generationHint:"把侦察、突击、工程、支援和队伍组合对应起来。"},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:120,requiredFactIds:["recommend-score"],requiredFileRoleIds:["delta-table-files"],generationHint:"必须把 CSV/XLS/XLSX 的字段转成可读表格,并解释字段含义。"},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:160,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],requiredPromptRoleIds:["delta-resource-evidence-prompt"],generationHint:"必须说明官方地图工具来源,并解释地图图纸与路线、点位或撤离/交战路径的关系。"},{id:"style",title:"第六章 模板样式和导出检查",required:!0,order:5,minWords:140,requiredFactIds:["style-rule","export-gate"],requiredFileRoleIds:["delta-style-reference-files","delta-export-gate-files"],requiredPromptRoleIds:["delta-export-gate-prompt"],generationHint:"说明本模板如何通过规范包、文件角色、提示词角色和导出门禁形成可复用案例。"}],gateRules:[{id:"gate-guide-goal",name:"必须说明攻略目标和适用对象",type:"required_fact",level:"error",target:"攻略目标"},{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-team",name:"必须包含队伍搭配依据",type:"required_fact",level:"warning",target:"队伍搭配"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件角色",type:"required_file_role",level:"error",target:"delta-drawing-files"},{id:"gate-case-reference",name:"必须绑定模板案例参考角色",type:"required_file_role",level:"warning",target:"delta-case-reference-files"},{id:"gate-style-prompt",name:"必须绑定模板样式提示词角色",type:"required_prompt_role",level:"warning",target:"delta-template-style-prompt"},{id:"gate-export-prompt",name:"必须绑定导出门禁提示词角色",type:"required_prompt_role",level:"warning",target:"delta-export-gate-prompt"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"},{id:"gate-no-remote-image-url",name:"正文不能包含远程临时图片生成 URL",type:"forbidden_text",level:"error",value:"text_to_image"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},81296:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(57367);function j(a,b){try{if("GET"===a.method)return b.status(200).json({specs:(0,i.Co)()});if("POST"===a.method||"PUT"===a.method){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"spec id and name required"});return b.status(200).json({spec:(0,i.EK)(c),specs:(0,i.Co)()})}if("DELETE"===a.method){let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});return(0,i.ER)(c),b.status(200).json({success:!0,specs:(0,i.Co)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/specs",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/specs",pathname:"/api/documents/specs",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/specs"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/specs",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=81296));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=1282,a.ids=[1282],a.modules={48161:a=>{a.exports=require("node:os")},57367:(a,b,c)=>{c.d(b,{Co:()=>m,EK:()=>o,ER:()=>p,py:()=>n});var d=c(73024),e=c(48161),f=c(76760);let g={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:演示如何用事实字段、章节规则、文件角色、提示词角色和导出门禁共同约束一篇可交付攻略文档。",factFields:[{id:"guide-goal",name:"攻略目标",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-case-reference-files"],extractionHint:"抽取本文解决的问题、适用对象和最终交付目标。",validationHint:"正文导语必须能回答“给谁看、解决什么问题”。"},{id:"operator-name",name:"干员名称",type:"list",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。",validationHint:"至少覆盖内置事实文件中的四名热门干员。"},{id:"operator-role",name:"定位",type:"text",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。",validationHint:"定位必须和干员名称一一对应。"},{id:"operator-value",name:"核心价值",type:"text",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取每名干员在队伍中的核心价值和使用场景。"},{id:"recommend-score",name:"推荐指数",type:"table",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数、上手难度和推荐场景。",validationHint:"推荐指数应以表格形式呈现。"},{id:"team-composition",name:"队伍搭配",type:"table",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取新手稳健队、突破压制队、控图防守队等组合和使用要点。"},{id:"map-drawing",name:"地图图纸",type:"list",required:!0,sourceRoleIds:["delta-drawing-files"],extractionHint:"抽取官方地图工具来源、地图名称和地图图纸文件。",validationHint:"地图图纸必须来自知识库检索资源,不能硬插固定文件。"},{id:"image-reference",name:"图片资源",type:"list",required:!1,sourceRoleIds:["delta-image-files","delta-reference-image-files"],extractionHint:"抽取干员图片、参考图片和可用作配图的本地资源。"},{id:"template-case",name:"模板案例参考",type:"text",required:!0,sourceRoleIds:["delta-case-reference-files"],extractionHint:"抽取模板案例中的结构、来源清单和示例表达方式。"},{id:"style-rule",name:"模板样式规则",type:"text",required:!0,sourceRoleIds:["delta-style-reference-files"],extractionHint:"抽取标题层级、章节结构、表格、图片说明和导出排版规则。"},{id:"export-gate",name:"导出门禁",type:"list",required:!0,sourceRoleIds:["delta-export-gate-files"],extractionHint:"抽取阻断项、警告项和导出通过标准。"}],chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:120,requiredFactIds:["guide-goal","template-case"],requiredFileRoleIds:["delta-case-reference-files"],requiredPromptRoleIds:["delta-template-style-prompt"],generationHint:"必须让用户看出这是一个可学习、可复制的内置模板案例。"},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:180,requiredFactIds:["operator-name","operator-role","operator-value"],requiredFileRoleIds:["delta-fact-files"],generationHint:"使用表格或分组清单展示干员、定位、核心价值和适合场景。"},{id:"team",title:"第三章 队伍搭配和实战打法",required:!0,order:2,minWords:160,requiredFactIds:["team-composition"],requiredFileRoleIds:["delta-doc-files","delta-fact-files"],generationHint:"把侦察、突击、工程、支援和队伍组合对应起来。"},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:120,requiredFactIds:["recommend-score"],requiredFileRoleIds:["delta-table-files"],generationHint:"必须把 CSV/XLS/XLSX 的字段转成可读表格,并解释字段含义。"},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:160,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],requiredPromptRoleIds:["delta-resource-evidence-prompt"],generationHint:"必须说明官方地图工具来源,并解释地图图纸与路线、点位或撤离/交战路径的关系。"},{id:"style",title:"第六章 模板样式和导出检查",required:!0,order:5,minWords:140,requiredFactIds:["style-rule","export-gate"],requiredFileRoleIds:["delta-style-reference-files","delta-export-gate-files"],requiredPromptRoleIds:["delta-export-gate-prompt"],generationHint:"说明本模板如何通过规范包、文件角色、提示词角色和导出门禁形成可复用案例。"}],gateRules:[{id:"gate-guide-goal",name:"必须说明攻略目标和适用对象",type:"required_fact",level:"warning",target:"攻略目标"},{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-team",name:"必须包含队伍搭配依据",type:"required_fact",level:"warning",target:"队伍搭配"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件角色",type:"required_file_role",level:"error",target:"delta-drawing-files"},{id:"gate-case-reference",name:"必须绑定模板案例参考角色",type:"required_file_role",level:"warning",target:"delta-case-reference-files"},{id:"gate-style-prompt",name:"必须绑定模板样式提示词角色",type:"required_prompt_role",level:"warning",target:"delta-template-style-prompt"},{id:"gate-export-prompt",name:"必须绑定导出门禁提示词角色",type:"required_prompt_role",level:"warning",target:"delta-export-gate-prompt"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"},{id:"gate-no-remote-image-url",name:"正文不能包含远程临时图片生成 URL",type:"forbidden_text",level:"error",value:"text_to_image"}],wordTemplatePath:"",builtIn:!0};function h(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),f.join(a,"document-specs.json")}function i(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function j(a){return{id:i(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["text","number","date","table","list"].includes(a.type)?a.type:"text",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:i(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>({id:i(a.id),name:a.name,type:["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].includes(a.type)?a.type:"required_fact",level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||""})):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function k(){try{let a=h();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(j)}catch{return[]}}function l(a){d.writeFileSync(h(),JSON.stringify(a.map(j),null,2),"utf-8")}function m(){return[...new Map([g,...k()].map(a=>[a.id,a])).values()]}function n(a){if(a)return a===g.id?g:k().find(b=>b.id===a)}function o(a){let b=j(a),c=k().filter(a=>a.id!==b.id);return c.push(b),l(c),b}function p(a){if(a===g.id)throw Error("Built-in demo spec cannot be deleted");l(k().filter(b=>b.id!==a))}},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:a=>{a.exports=require("node:path")},81296:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(57367);function j(a,b){try{if("GET"===a.method)return b.status(200).json({specs:(0,i.Co)()});if("POST"===a.method||"PUT"===a.method){let c=a.body;if(!c?.id||!c.name)return b.status(400).json({error:"spec id and name required"});return b.status(200).json({spec:(0,i.EK)(c),specs:(0,i.Co)()})}if("DELETE"===a.method){let c=String(a.query.id||"");if(!c)return b.status(400).json({error:"id required"});return(0,i.ER)(c),b.status(200).json({success:!0,specs:(0,i.Co)()})}return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] documents/specs",a),b.status(500).json({error:a instanceof Error?a.message:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/documents/specs",pathname:"/api/documents/specs",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/documents/specs"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/documents/specs",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=81296));module.exports=c})();
@@ -1 +1,97 @@
1
- "use strict";(()=>{var a={};a.id=1289,a.ids=[1289],a.modules={21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},52201:(a,b,c)=>{c.r(b),c.d(b,{config:()=>D,default:()=>C,handler:()=>F});var d={};c.r(d),c.d(d,{default:()=>z});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(29021),j=c(33873),k=c(21820),l=c(87550),m=c.n(l);let n=j.join(k.homedir(),".customize-agent"),o=j.join(n,"projects","registry.db"),p=j.join(n,"prompts.json");function q(a){return j.resolve(a)}function r(a){let b=q(a),c=q(j.join(k.homedir(),".customize-agent")),d=b.split(j.sep);return b!==j.resolve(j.join(k.homedir(),".customize-agent","demo-project"))&&(b===c||b.endsWith(`${j.sep}apps${j.sep}server`)||b.endsWith(`${j.sep}apps${j.sep}cli`)||d.includes(".customize-agent"))}function s(a){return i.existsSync(o)?new(m())(o,{readonly:a}):null}function t(a){let b=q(a);return"CUSTOMIZE.md"===j.basename(b)&&(function(){let a=new Set,b=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd());r(b)||a.add(b);let c=s(!0);if(!c)return a;try{for(let b of c.prepare("SELECT project_root FROM project_registry").all()){let c=q(String(b.project_root));r(c)||a.add(c)}}finally{c.close()}return a})().has(q(j.dirname(b)))}let u=[{id:"builtin:delta-fact-extraction",name:"内置|三角洲事实抽取提示词",content:"请从资料中抽取干员名称、定位、技能、推荐指数、上手难度、推荐场景,输出结构化事实,不要编造。"},{id:"builtin:delta-chapter-generation",name:"内置|三角洲章节生成提示词",content:"请用新手能看懂的大白话生成攻略,先给结论,再解释原因,最后给实战建议。必须引用表格数据和来源资料。"},{id:"builtin:delta-validation",name:"内置|三角洲校验提示词",content:"检查是否覆盖露娜、红狼、牧羊人、蜂医;是否有推荐表格;是否出现缺失资料占位语;是否有来源。"},{id:"builtin:delta-formatting",name:"内置|三角洲格式化提示词",content:"整理标题、列表、表格和结尾提醒,让攻略更适合正式导出。"}],v=new Set(u.map(a=>a.id));function w(a){return`file:${q(a)}`}function x(){try{let a=JSON.parse(i.readFileSync(p,"utf-8"));return{selectedIds:Array.isArray(a.selectedIds)?a.selectedIds.map(String).filter(a=>!v.has(a)):[],customPrompts:Array.isArray(a.customPrompts)?a.customPrompts:[]}}catch{return{selectedIds:[],customPrompts:[]}}}function y(a){i.mkdirSync(j.dirname(p),{recursive:!0});let b={...a,selectedIds:a.selectedIds.filter(a=>!v.has(a))};i.writeFileSync(p,JSON.stringify(b,null,2),"utf-8")}function z(a,b){try{if("GET"===a.method){let a=[],c=[],d=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd()),e=x(),f=w(j.join(d,"CUSTOMIZE.md")),g=i.existsSync(p)&&e.selectedIds.length>0?e.selectedIds:[f],h=s(!0);if(h)try{for(let b of h.prepare("SELECT project_id, project_root, project_name FROM project_registry ORDER BY last_opened_at DESC").all()){let e=q(String(b.project_root));if(r(e)){c.push(String(b.project_id));continue}let f=j.join(e,"CUSTOMIZE.md"),h=i.existsSync(f),k=w(f);a.push({id:k,projectId:String(b.project_id),projectRoot:e,projectName:String(b.project_name||j.basename(e)||e),customizePath:f,content:h?i.readFileSync(f,"utf-8"):"",mtime:h?i.statSync(f).mtime.toISOString():"",hasFile:h,isCurrent:e===d,selected:g.includes(k),source:e===d?"current":"project"})}}finally{h.close()}let k=j.join(d,"CUSTOMIZE.md");if(!r(d)&&!a.some(a=>a.projectRoot===d)){let b=i.existsSync(k);a.unshift({id:f,projectId:"current",projectRoot:d,projectName:j.basename(d)||d,customizePath:k,content:b?i.readFileSync(k,"utf-8"):"",mtime:b?i.statSync(k).mtime.toISOString():"",hasFile:b,isCurrent:!0,selected:g.includes(f),source:"current"})}for(let b of u)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:"",hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});for(let b of e.customPrompts)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:b.updatedAt,hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});return!function(a){if(0===a.length)return;let b=s(!1);if(b)try{let c=b.prepare("DELETE FROM project_registry WHERE project_id = ?");for(let b of a)c.run(b)}catch(a){}finally{b.close()}}(c),b.status(200).json(a)}if("POST"===a.method){let{action:c,projectRoot:d,content:e,name:f,selectedIds:g}=a.body,h=x();if("createCustom"===c){let a=new Date().toISOString(),c=`custom:${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;return h.customPrompts.push({id:c,name:String(f||"自定义提示词"),content:"string"==typeof e?e:"",createdAt:a,updatedAt:a}),y(h),b.status(200).json({success:!0,id:c})}if("select"===c)return h.selectedIds=Array.isArray(g)?g.map(String).filter(a=>!v.has(a)):[],y(h),b.status(200).json({success:!0});let k=q(String(d||""));if(!k||r(k)||!i.existsSync(k))return b.status(403).json({error:"Invalid project root"});let l=j.join(k,"CUSTOMIZE.md");if("create"===c)return i.existsSync(l)||i.writeFileSync(l,"string"==typeof e?e:"","utf-8"),h.selectedIds=Array.from(new Set([...h.selectedIds,w(l)])),y(h),b.status(200).json({success:!0,customizePath:l,mtime:i.statSync(l).mtime.toISOString()});return b.status(400).json({error:"Invalid action"})}if("PUT"===a.method){let{filePath:c,content:d,name:e}=a.body;if(!c||"string"!=typeof d)return b.status(400).json({error:"filePath and content required"});let f=String(c);if(f.startsWith("custom:")){let a=x(),c=a.customPrompts.find(a=>a.id===f);if(!c)return b.status(404).json({error:"Prompt not found"});return c.content=d,"string"==typeof e&&e.trim()&&(c.name=e.trim()),c.updatedAt=new Date().toISOString(),y(a),b.status(200).json({success:!0,mtime:c.updatedAt})}let g=q(f);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});let h=j.dirname(g);if(!i.existsSync(h))return b.status(404).json({error:"Project directory not found"});return i.writeFileSync(g,d,"utf-8"),b.status(200).json({success:!0,mtime:i.statSync(g).mtime.toISOString()})}if("DELETE"===a.method){let{projectId:c,filePath:d}=a.body;if(!d)return b.status(400).json({error:"filePath required"});let e=String(d),f=x();if(e.startsWith("custom:"))return f.customPrompts=f.customPrompts.filter(a=>a.id!==e),f.selectedIds=f.selectedIds.filter(a=>a!==e),y(f),b.status(200).json({success:!0});let g=q(e);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});if(i.existsSync(g)&&i.unlinkSync(g),f.selectedIds=f.selectedIds.filter(a=>a!==w(g)),y(f),c&&"current"!==c){let a=s(!1);try{a?.prepare("DELETE FROM project_registry WHERE project_id = ?").run(String(c))}finally{a?.close()}}return b.status(200).json({success:!0})}b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] prompt",a),b.status(500).json({error:"Internal server error"})}}var A=c(68970),B=c(50296);let C=(0,h.M)(d,"default"),D=(0,h.M)(d,"config"),E=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/prompt",pathname:"/api/prompt",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function F(a,b,c){let d=await E.prepare(a,b,{srcPage:"/api/prompt"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,A.getTracer)(),e=d.getActiveScopeSpan(),j=E.instrumentationOnRequestError.bind(E),k=async e=>E.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:E.isDev,page:"/api/prompt",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==B.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(B.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:A.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(E.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=52201));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=1289,a.ids=[1289],a.modules={21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},52201:(a,b,c)=>{c.r(b),c.d(b,{config:()=>D,default:()=>C,handler:()=>F});var d={};c.r(d),c.d(d,{default:()=>z});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(29021),j=c(33873),k=c(21820),l=c(87550),m=c.n(l);let n=j.join(k.homedir(),".customize-agent"),o=j.join(n,"projects","registry.db"),p=j.join(n,"prompts.json");function q(a){return j.resolve(a)}function r(a){let b=q(a),c=q(j.join(k.homedir(),".customize-agent")),d=b.split(j.sep);return b!==j.resolve(j.join(k.homedir(),".customize-agent","demo-project"))&&(b===c||b.endsWith(`${j.sep}apps${j.sep}server`)||b.endsWith(`${j.sep}apps${j.sep}cli`)||d.includes(".customize-agent"))}function s(a){return i.existsSync(o)?new(m())(o,{readonly:a}):null}function t(a){let b=q(a);return"CUSTOMIZE.md"===j.basename(b)&&(function(){let a=new Set,b=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd());r(b)||a.add(b);let c=s(!0);if(!c)return a;try{for(let b of c.prepare("SELECT project_root FROM project_registry").all()){let c=q(String(b.project_root));r(c)||a.add(c)}}finally{c.close()}return a})().has(q(j.dirname(b)))}let u=[{id:"builtin:delta-fact-extraction",name:"内置|三角洲事实抽取提示词",content:`你是“结构化事实抽取专家”。请从知识库资料中抽取可追溯事实,并严格服务于文档规范包。
2
+
3
+ 抽取范围:
4
+ 1. 干员名称、定位、核心价值、技能特点、推荐指数、上手难度、推荐场景。
5
+ 2. 队伍搭配、地图图纸、图片资源、表格字段、模板案例、样式规则、导出门禁。
6
+ 3. 每条事实必须保留来源文件、文件角色、处理类型和置信度。
7
+
8
+ 规则:
9
+ - 只抽取资料明确支持的内容,不能编造。
10
+ - 如果多个来源冲突,要保留冲突来源,不能擅自合并。
11
+ - 如果规范包字段指定 sourceRoleIds,优先从对应文件角色中抽取。
12
+ - 表格类事实要保留字段含义,不能只输出一句摘要。
13
+
14
+ 输出建议:
15
+ - 按字段输出 key/value/sourceFile/roleId/processingType/confidence。
16
+ - 对缺失字段给出“缺失原因”和“建议补充资料”。`},{id:"builtin:delta-chapter-generation",name:"内置|三角洲章节生成提示词",content:`你是“可交付文档章节作者”。请基于结构化事实、资源证据和文档规范包生成章节。
17
+
18
+ 章节写法:
19
+ 1. 先写本章结论,再写依据,最后给操作建议。
20
+ 2. 每章至少说明 2 类来源:事实文件、表格、文档附件、图片、地图图纸或模板案例。
21
+ 3. 表格资源要转成可读 Markdown 表格;地图图纸要说明路线/点位/撤离或交战用途;图片要说明与结论的关系。
22
+ 4. 章节要适合导出 DOCX/PDF:标题稳定、段落短、列表清晰、来源明确。
23
+
24
+ 禁止:
25
+ - 不要硬插固定地图或图片。
26
+ - 不要把提示词全文写入正文。
27
+ - 不要把“资料未提供”当最终结论。
28
+ - 不要用没有证据的确定语气。`},{id:"builtin:delta-resource-evidence",name:"内置|三角洲资源证据使用提示词",content:`你是“资源证据编排专家”。请把不同文件类型转化成正文可用证据。
29
+
30
+ 文件类型使用方式:
31
+ - 文本/Markdown:抽取规则、结论和注意事项。
32
+ - PDF/Word:抽取正式说明、附件依据和规范约束。
33
+ - CSV/XLS/XLSX:形成表格、排序、对比和推荐优先级。
34
+ - 图片:说明对象、视觉用途和章节关系。
35
+ - 地图图纸:说明区域、路线、点位、撤离/交战路径和队伍分工。
36
+ - 模板案例:学习结构、来源清单和表达方式,不能照抄无关内容。
37
+ - 导出门禁:只用于检查,不作为正文事实。
38
+
39
+ 引用资源时必须写明:资源类型、来源文件、正文用途。`},{id:"builtin:delta-template-style",name:"内置|三角洲模板样式提示词",content:`你是“模板样式设计师”。请把生成结果整理成用户能学习、能复用、能导出的内置模板案例。
40
+
41
+ 样式要求:
42
+ 1. 开头有短导语:适用对象、使用场景、核心结论。
43
+ 2. 每章采用“本章结论 / 证据依据 / 操作建议 / 资料来源”。
44
+ 3. 重要建议使用表格、清单、引用块,不堆长段落。
45
+ 4. 图片和地图必须有说明文字,不做装饰图。
46
+ 5. 来源清单要区分规则文件、事实文件、表格、图纸、图片、附件和模板案例。
47
+ 6. 明确体现文档规范包、文件角色、提示词角色如何共同工作。
48
+
49
+ 导出要求:标题不跳级、表格语法正确、图片 alt 完整、正文无提示词全文。`},{id:"builtin:delta-cover-image-generation",name:"内置|三角洲封面图生成提示词",content:`你是“封面视觉提示词设计师”。请为三角洲行动热门干员攻略生成适合网站和文档封面的图片提示词。
50
+
51
+ 画面要求:
52
+ - 主题:战术小队、热门干员、现代战场、科技感 UI。
53
+ - 构图:横版封面,中心主体清晰,留出标题空间。
54
+ - 风格:真实感、电影级光影、游戏攻略封面质感。
55
+ - 禁止:文字水印、Logo、乱码文字、血腥暴力、低清截图。
56
+
57
+ 输出只给图片生成 prompt,不要把 prompt 写入正式正文。`},{id:"builtin:delta-review-optimization",name:"内置|三角洲 LLM 审查优化提示词",content:`你是“交付审查专家”。请审查生成文档是否满足规范包、文件角色、提示词角色和导出要求。
58
+
59
+ 审查维度:
60
+ 1. 事实是否有来源,来源角色是否匹配。
61
+ 2. 章节是否覆盖规范包必填章节和必填事实。
62
+ 3. 表格、图片、地图、PDF/Word、附件是否被正确使用。
63
+ 4. 是否存在冲突事实、缺失事实、无证据结论。
64
+ 5. 是否包含提示词全文、远程临时图片 URL、内部错误、占位语。
65
+ 6. 是否适合导出 Markdown/HTML/DOCX/PDF。
66
+
67
+ 处理方式:
68
+ - 可修复的问题直接优化正文。
69
+ - 不能确定的问题写成“需要复核”,不要阻断生成。
70
+ - 输出优化后的 Markdown,并保留来源和复核提示。`},{id:"builtin:delta-validation",name:"内置|三角洲校验提示词",content:`你是“规范包校验员”。请按文档规范包检查生成文档。
71
+
72
+ 检查项:
73
+ - 必填事实:攻略目标、干员名称、定位、核心价值、推荐指数、队伍搭配、地图图纸、模板样式规则、导出门禁。
74
+ - 必填章节:目标、干员速览、队伍搭配、推荐优先级、地图路线、模板样式和导出检查。
75
+ - 必填角色:事实文件、表格文件、图纸文件、模板案例、样式参考、导出门禁、模板样式提示词。
76
+ - 禁止内容:提示词全文、临时生成 URL、内部错误、未处理占位语。
77
+
78
+ 输出 error/warning/info,并给出原因和修复建议。warning 不阻断导出,但必须展示给用户。`},{id:"builtin:delta-export-gate",name:"内置|三角洲导出门禁提示词",content:`你是“导出门禁审核员”。请从 Markdown、HTML、DOCX、PDF 四种格式检查文档。
79
+
80
+ 门禁维度:
81
+ 1. 结构完整:封面、目录、章节、表格、图片/地图、来源和复核提示。
82
+ 2. 事实完整:必填事实有来源,冲突事实有提示。
83
+ 3. 资源完整:图片路径有效,地图图纸来自知识库,表格语法正确。
84
+ 4. 格式完整:标题层级稳定,列表缩进正确,图片 alt 文本完整。
85
+ 5. 安全完整:无提示词全文、无内部错误、无远程临时生成 URL。
86
+
87
+ 注意:门禁用于提示和复核,不应直接禁止用户导出。`},{id:"builtin:delta-formatting",name:"内置|三角洲格式化提示词",content:`你是“正式文档排版编辑”。请整理生成内容,使其适合网页预览和多格式导出。
88
+
89
+ 排版要求:
90
+ - H1 只出现一次;H2 对应章节;H3 用于本章结论、证据依据、操作建议。
91
+ - 表格使用标准 Markdown 表格,列数控制合理。
92
+ - 图片和地图使用 Markdown 图片语法,并补充说明。
93
+ - 来源清单统一放在文末,按文件角色分类。
94
+ - 复核提示独立成节,不混入正文结论。
95
+ - 删除重复标题、空章节、空列表和无意义占位。
96
+
97
+ 不得改写事实来源,不得删除 warning 复核原因。`}],v=new Set(u.map(a=>a.id));function w(a){return`file:${q(a)}`}function x(){try{let a=JSON.parse(i.readFileSync(p,"utf-8"));return{selectedIds:Array.isArray(a.selectedIds)?a.selectedIds.map(String).filter(a=>!v.has(a)):[],customPrompts:Array.isArray(a.customPrompts)?a.customPrompts:[]}}catch{return{selectedIds:[],customPrompts:[]}}}function y(a){i.mkdirSync(j.dirname(p),{recursive:!0});let b={...a,selectedIds:a.selectedIds.filter(a=>!v.has(a))};i.writeFileSync(p,JSON.stringify(b,null,2),"utf-8")}function z(a,b){try{if("GET"===a.method){let a=[],c=[],d=q(process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD??process.cwd()),e=x(),f=w(j.join(d,"CUSTOMIZE.md")),g=i.existsSync(p)&&e.selectedIds.length>0?e.selectedIds:[f],h=s(!0);if(h)try{for(let b of h.prepare("SELECT project_id, project_root, project_name FROM project_registry ORDER BY last_opened_at DESC").all()){let e=q(String(b.project_root));if(r(e)){c.push(String(b.project_id));continue}let f=j.join(e,"CUSTOMIZE.md"),h=i.existsSync(f),k=w(f);a.push({id:k,projectId:String(b.project_id),projectRoot:e,projectName:String(b.project_name||j.basename(e)||e),customizePath:f,content:h?i.readFileSync(f,"utf-8"):"",mtime:h?i.statSync(f).mtime.toISOString():"",hasFile:h,isCurrent:e===d,selected:g.includes(k),source:e===d?"current":"project"})}}finally{h.close()}let k=j.join(d,"CUSTOMIZE.md");if(!r(d)&&!a.some(a=>a.projectRoot===d)){let b=i.existsSync(k);a.unshift({id:f,projectId:"current",projectRoot:d,projectName:j.basename(d)||d,customizePath:k,content:b?i.readFileSync(k,"utf-8"):"",mtime:b?i.statSync(k).mtime.toISOString():"",hasFile:b,isCurrent:!0,selected:g.includes(f),source:"current"})}for(let b of u)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:"",hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});for(let b of e.customPrompts)a.push({id:b.id,projectId:b.id,projectName:b.name,customizePath:b.id,content:b.content,mtime:b.updatedAt,hasFile:!0,isCurrent:!1,selected:g.includes(b.id),source:"custom"});return!function(a){if(0===a.length)return;let b=s(!1);if(b)try{let c=b.prepare("DELETE FROM project_registry WHERE project_id = ?");for(let b of a)c.run(b)}catch(a){}finally{b.close()}}(c),b.status(200).json(a)}if("POST"===a.method){let{action:c,projectRoot:d,content:e,name:f,selectedIds:g}=a.body,h=x();if("createCustom"===c){let a=new Date().toISOString(),c=`custom:${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;return h.customPrompts.push({id:c,name:String(f||"自定义提示词"),content:"string"==typeof e?e:"",createdAt:a,updatedAt:a}),y(h),b.status(200).json({success:!0,id:c})}if("select"===c)return h.selectedIds=Array.isArray(g)?g.map(String).filter(a=>!v.has(a)):[],y(h),b.status(200).json({success:!0});let k=q(String(d||""));if(!k||r(k)||!i.existsSync(k))return b.status(403).json({error:"Invalid project root"});let l=j.join(k,"CUSTOMIZE.md");if("create"===c)return i.existsSync(l)||i.writeFileSync(l,"string"==typeof e?e:"","utf-8"),h.selectedIds=Array.from(new Set([...h.selectedIds,w(l)])),y(h),b.status(200).json({success:!0,customizePath:l,mtime:i.statSync(l).mtime.toISOString()});return b.status(400).json({error:"Invalid action"})}if("PUT"===a.method){let{filePath:c,content:d,name:e}=a.body;if(!c||"string"!=typeof d)return b.status(400).json({error:"filePath and content required"});let f=String(c);if(f.startsWith("custom:")){let a=x(),c=a.customPrompts.find(a=>a.id===f);if(!c)return b.status(404).json({error:"Prompt not found"});return c.content=d,"string"==typeof e&&e.trim()&&(c.name=e.trim()),c.updatedAt=new Date().toISOString(),y(a),b.status(200).json({success:!0,mtime:c.updatedAt})}let g=q(f);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});let h=j.dirname(g);if(!i.existsSync(h))return b.status(404).json({error:"Project directory not found"});return i.writeFileSync(g,d,"utf-8"),b.status(200).json({success:!0,mtime:i.statSync(g).mtime.toISOString()})}if("DELETE"===a.method){let{projectId:c,filePath:d}=a.body;if(!d)return b.status(400).json({error:"filePath required"});let e=String(d),f=x();if(e.startsWith("custom:"))return f.customPrompts=f.customPrompts.filter(a=>a.id!==e),f.selectedIds=f.selectedIds.filter(a=>a!==e),y(f),b.status(200).json({success:!0});let g=q(e);if(!t(g))return b.status(403).json({error:"Invalid prompt file"});if(i.existsSync(g)&&i.unlinkSync(g),f.selectedIds=f.selectedIds.filter(a=>a!==w(g)),y(f),c&&"current"!==c){let a=s(!1);try{a?.prepare("DELETE FROM project_registry WHERE project_id = ?").run(String(c))}finally{a?.close()}}return b.status(200).json({success:!0})}b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] prompt",a),b.status(500).json({error:"Internal server error"})}}var A=c(68970),B=c(50296);let C=(0,h.M)(d,"default"),D=(0,h.M)(d,"config"),E=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/prompt",pathname:"/api/prompt",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function F(a,b,c){let d=await E.prepare(a,b,{srcPage:"/api/prompt"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,A.getTracer)(),e=d.getActiveScopeSpan(),j=E.instrumentationOnRequestError.bind(E),k=async e=>E.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:E.isDev,page:"/api/prompt",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==B.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(B.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:A.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(E.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=52201));module.exports=c})();
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.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-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/292-f0a2c92861c304e6.js" defer=""></script><script src="/_next/static/chunks/951-8ecf8af33ab36369.js" defer=""></script><script src="/_next/static/chunks/881-a1eb917222b66f09.js" defer=""></script><script src="/_next/static/chunks/pages/asset-library-0f607b74fa016470.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_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"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><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>总览</span></div></a><div><div class="sidebarItem sidebarParent"><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>知识库</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><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-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/documents"><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-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><div class="sidebarItem sidebarItemActive"><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-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><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>角色配置</span></div></a><a href="/document-specs"><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-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</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>学习说明</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>模型配置</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>提示词管理</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>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><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 class="page-shell"><div class="mb-4"><h1 class="text-2xl font-semibold">生成资源</h1><p class="text-[var(--colorTextSecondary)]">管理文档生成产生的本地资源。生成资源默认不进入知识库,可在后续操作中手动加入知识库。</p></div><div class="ant-card ant-card-bordered css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div class="ant-list ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无生成资源</div></div></div></div></div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/asset-library","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.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-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/292-f0a2c92861c304e6.js" defer=""></script><script src="/_next/static/chunks/951-8ecf8af33ab36369.js" defer=""></script><script src="/_next/static/chunks/881-a1eb917222b66f09.js" defer=""></script><script src="/_next/static/chunks/pages/asset-library-82606363f9142bad.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_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"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><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>总览</span></div></a><div><div class="sidebarItem sidebarParent"><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>知识库</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><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-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><a href="/documents"><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-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><div class="sidebarItem sidebarItemActive"><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-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><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>角色配置</span></div></a><a href="/document-specs"><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-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</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>学习说明</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>模型配置</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>提示词管理</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>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><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 class="page-shell"><div class="mb-4"><h1 class="text-2xl font-semibold">生成资源</h1><p class="text-[var(--colorTextSecondary)]">管理文档生成产生的本地资源。生成资源默认不进入知识库,可在后续操作中手动加入知识库。</p></div><div class="ant-card ant-card-bordered css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div class="ant-list ant-list-split css-1pi45l5 css-var-_R_16_"><div class="ant-spin css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="false"><div class="ant-spin-container"><div class="ant-list-empty-text"><div class="css-1pi45l5 css-var-_R_16_ ant-empty"><div class="ant-empty-image"><svg width="184" height="152" viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g fill="none" fill-rule="evenodd"><g transform="translate(24 31.7)"><ellipse fill-opacity=".8" fill="#ecececca" cx="67.8" cy="106.9" rx="67.8" ry="12.7"></ellipse><path fill="#b3b3b3d5" d="M122 69.7 98.1 40.2a6 6 0 0 0-4.6-2.2H42.1a6 6 0 0 0-4.6 2.2l-24 29.5V85H122z"></path><path fill="#f2f2f2c9" d="M33.8 0h68a4 4 0 0 1 4 4v93.3a4 4 0 0 1-4 4h-68a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4"></path><path fill="#d0d0d0cf" d="M42.7 10h50.2a2 2 0 0 1 2 2v25a2 2 0 0 1-2 2H42.7a2 2 0 0 1-2-2V12a2 2 0 0 1 2-2m.2 39.8h49.8a2.3 2.3 0 1 1 0 4.5H42.9a2.3 2.3 0 0 1 0-4.5m0 11.7h49.8a2.3 2.3 0 1 1 0 4.6H42.9a2.3 2.3 0 0 1 0-4.6m79 43.5a7 7 0 0 1-6.8 5.4H20.5a7 7 0 0 1-6.7-5.4l-.2-1.8V69.7h26.3c2.9 0 5.2 2.4 5.2 5.4s2.4 5.4 5.3 5.4h34.8c2.9 0 5.3-2.4 5.3-5.4s2.3-5.4 5.2-5.4H122v33.5q0 1-.2 1.8"></path></g><path fill="#d0d0d0cf" d="m149.1 33.3-6.8 2.6a1 1 0 0 1-1.3-1.2l2-6.2q-4.1-4.5-4.2-10.4c0-10 10.1-18.1 22.6-18.1S184 8.1 184 18.1s-10.1 18-22.6 18q-6.8 0-12.3-2.8"></path><g fill="rgba(255,255,255,0.78)" transform="translate(149.7 15.4)"><circle cx="20.7" cy="3.2" r="2.8"></circle><path d="M5.7 5.6H0L2.9.7zM9.3.7h5v5h-5z"></path></g></g></svg></div><div class="ant-empty-description">暂无生成资源</div></div></div></div></div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/asset-library","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.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-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/576-fd55b302cb0c9a48.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/985-4b4a3ed36ada16eb.js" defer=""></script><script src="/_next/static/chunks/232-813af4932a145fdc.js" defer=""></script><script src="/_next/static/chunks/400-1fa1899b7c3f0bb4.js" defer=""></script><script src="/_next/static/chunks/257-e4ebae17a8ee8412.js" defer=""></script><script src="/_next/static/chunks/pages/context/long-term-09e23b06634b08d9.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_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"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><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>总览</span></div></a><div><div class="sidebarItem sidebarParent"><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>知识库</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><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-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><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-chevron-down"><path d="m6 9 6 6 6-6"></path></svg></span></div><div class="sidebarSubmenu"><a href="/context/long-term"><div class="sidebarItem sidebarSubItem sidebarItemActive"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" 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>长期上下文</span></div></a><a href="/context/short-term"><div class="sidebarItem sidebarSubItem"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" 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>短期上下文</span></div></a></div></div><a href="/documents"><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-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><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-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><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>角色配置</span></div></a><a href="/document-specs"><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-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</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>学习说明</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>模型配置</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>提示词管理</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>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><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 class="space-y-6 animateFadeIn"><div class="flex items-center justify-between"><div><h1 class="pageTitle">长期上下文</h1><p class="pageDesc">来自记忆库的持久化上下文(跨会话保留)</p></div><div class="ant-space css-1pi45l5 ant-space-horizontal ant-space-align-center ant-space-gap-row-small ant-space-gap-col-small css-var-_R_16_" style="flex-wrap:wrap"><div class="ant-space-item"><span class="ant-input-affix-wrapper css-1pi45l5 ant-input-outlined css-var-_R_16_ ant-input-css-var" style="width:240px"><span class="ant-input-prefix"><span role="img" aria-label="search" class="anticon anticon-search"><svg viewBox="64 64 896 896" focusable="false" data-icon="search" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"></path></svg></span></span><input placeholder="搜索" class="ant-input css-1pi45l5" type="text" value=""/><span class="ant-input-suffix"><button type="button" class="ant-input-clear-icon ant-input-clear-icon-hidden"><span role="img" aria-label="close-circle" class="anticon anticon-close-circle"><svg fill-rule="evenodd" viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"></path></svg></span></button></span></span></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"><span class="ant-btn-icon"><span role="img" aria-label="compress" class="anticon anticon-compress"><svg viewBox="64 64 896 896" focusable="false" data-icon="compress" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M326 664H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V696c0-17.7-14.3-32-32-32zm16-576h-48c-8.8 0-16 7.2-16 16v176H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V104c0-8.8-7.2-16-16-16zm578 576H698c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V744h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm0-384H746V104c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16z"></path></svg></span></span><span>压缩</span></button></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-dangerous ant-btn-color-dangerous ant-btn-variant-outlined"><span class="ant-btn-icon"><span role="img" aria-label="clear" class="anticon anticon-clear"><svg viewBox="64 64 896 896" focusable="false" data-icon="clear" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"></path></svg></span></span><span>清除</span></button></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div class="ant-statistic css-1pi45l5 css-var-_R_16_"><div class="ant-statistic-header"><div class="ant-statistic-title">总上下文大小</div></div><div class="ant-statistic-content"><span class="ant-statistic-content-prefix"><span role="img" aria-label="database" class="anticon anticon-database"><svg viewBox="64 64 896 896" focusable="false" data-icon="database" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span></span><span class="ant-statistic-content-value">0 B</span><span class="ant-statistic-content-suffix"> / 0 条</span></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div style="margin-bottom:12px;color:var(--colorTextSecondary);font-size:13px"><span role="img" aria-label="info-circle" class="anticon anticon-info-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="info-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="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"></path></svg></span> <!-- -->数据来源: ~/.customize-agent/memory.db(记忆库)</div><div class="css-var-_R_16_ ant-table-css-var ant-table-wrapper css-1pi45l5"><div class="ant-spin ant-spin-spinning css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="true"><div class="ant-spin-section"><span class="ant-spin-dot-holder"><span class="ant-spin-dot ant-spin-dot-spin"><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i></span></span></div><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty css-var-_R_16_ ant-table-css-var css-1pi45l5"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:fixed"><colgroup><col style="width:180px"/><col style="width:90px"/><col/><col style="width:80px"/><col style="width:100px"/><col style="width:140px"/><col style="width:100px"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell ant-table-cell-ellipsis" title="模型名称" scope="col">模型名称</th><th class="ant-table-cell" scope="col">类型</th><th class="ant-table-cell ant-table-cell-ellipsis" title="内容" scope="col">内容</th><th class="ant-table-cell" scope="col">重要性</th><th class="ant-table-cell ant-table-cell-ellipsis" title="来源" scope="col">来源</th><th class="ant-table-cell" scope="col">更新时间</th><th class="ant-table-cell" scope="col">编辑</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td class="ant-table-cell" colSpan="7"><div class="css-1pi45l5 css-var-_R_16_ ant-empty ant-empty-normal"><div class="ant-empty-image"><svg width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse fill="#f2f2f2c9" cx="32" cy="33" rx="32" ry="7"></ellipse><g fill-rule="nonzero" stroke="#d0d0d0cf"><path d="M55 12.8 44.9 1.3Q44 0 42.9 0H21.1q-1.2 0-2 1.3L9 12.8V22h46z"></path><path d="M41.6 16c0-1.7 1-3 2.2-3H55v18.1c0 2.2-1.3 3.9-3 3.9H12c-1.7 0-3-1.7-3-3.9V13h11.2c1.2 0 2.2 1.3 2.2 3s1 2.9 2.2 2.9h14.8c1.2 0 2.2-1.4 2.2-3" fill="#f8f8f8c8"></path></g></g></svg></div><div class="ant-empty-description">No data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/context/long-term","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/9af88fe8ee791d26.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9af88fe8ee791d26.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-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-161be364fd69a7ce.js" defer=""></script><script src="/_next/static/chunks/main-ed4abb3bb200c815.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b1f31c6bbc0bb7b1.js" defer=""></script><script src="/_next/static/chunks/260-cec84dc6c353e104.js" defer=""></script><script src="/_next/static/chunks/167-d4f384b289ecb70c.js" defer=""></script><script src="/_next/static/chunks/382-6ab5f41cd91edad0.js" defer=""></script><script src="/_next/static/chunks/628-27424ba8ca9ca8ce.js" defer=""></script><script src="/_next/static/chunks/271-39045be4cdbd6af1.js" defer=""></script><script src="/_next/static/chunks/576-fd55b302cb0c9a48.js" defer=""></script><script src="/_next/static/chunks/700-5d29b0475311f590.js" defer=""></script><script src="/_next/static/chunks/174-51b6d64f21e9b976.js" defer=""></script><script src="/_next/static/chunks/183-8da0232dd30cdc81.js" defer=""></script><script src="/_next/static/chunks/985-4b4a3ed36ada16eb.js" defer=""></script><script src="/_next/static/chunks/232-813af4932a145fdc.js" defer=""></script><script src="/_next/static/chunks/400-1fa1899b7c3f0bb4.js" defer=""></script><script src="/_next/static/chunks/257-e4ebae17a8ee8412.js" defer=""></script><script src="/_next/static/chunks/pages/context/long-term-f2a550bc848ec1a3.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_buildManifest.js" defer=""></script><script src="/_next/static/customize-agent-dashboard/_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"><a href="/overview"><div class="sidebarLogo"><div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div><div class="sidebarLogoSub">管理控制台</div></div></div></a><button class="sidebarCollapseBtn" aria-label="收起侧边栏"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><nav class="sidebarNav"><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>总览</span></div></a><div><div class="sidebarItem sidebarParent"><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>知识库</span><span class="sidebarChevron"><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-chevron-right"><path d="m9 18 6-6-6-6"></path></svg></span></div></div><div><div class="sidebarItem sidebarParent"><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-brain"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><span>上下文工程</span><span class="sidebarChevron"><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-chevron-down"><path d="m6 9 6 6 6-6"></path></svg></span></div><div class="sidebarSubmenu"><a href="/context/long-term"><div class="sidebarItem sidebarSubItem sidebarItemActive"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" 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>长期上下文</span></div></a><a href="/context/short-term"><div class="sidebarItem sidebarSubItem"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" 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>短期上下文</span></div></a></div></div><a href="/documents"><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-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"></path><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"></path><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"></path></svg><span>生成编辑</span></div></a><a href="/asset-library"><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-folder-open"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg><span>生成资源</span></div></a><a href="/document-roles"><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>角色配置</span></div></a><a href="/document-specs"><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-file-text"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg><span>文档规范包</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>学习说明</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>模型配置</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>提示词管理</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>设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><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 class="space-y-6 animateFadeIn"><div class="flex items-center justify-between"><div><h1 class="pageTitle">长期上下文</h1><p class="pageDesc">来自记忆库的持久化上下文(跨会话保留)</p></div><div class="ant-space css-1pi45l5 ant-space-horizontal ant-space-align-center ant-space-gap-row-small ant-space-gap-col-small css-var-_R_16_" style="flex-wrap:wrap"><div class="ant-space-item"><span class="ant-input-affix-wrapper css-1pi45l5 ant-input-outlined css-var-_R_16_ ant-input-css-var" style="width:240px"><span class="ant-input-prefix"><span role="img" aria-label="search" class="anticon anticon-search"><svg viewBox="64 64 896 896" focusable="false" data-icon="search" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"></path></svg></span></span><input placeholder="搜索" class="ant-input css-1pi45l5" type="text" value=""/><span class="ant-input-suffix"><button type="button" class="ant-input-clear-icon ant-input-clear-icon-hidden"><span role="img" aria-label="close-circle" class="anticon anticon-close-circle"><svg fill-rule="evenodd" viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"></path></svg></span></button></span></span></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"><span class="ant-btn-icon"><span role="img" aria-label="compress" class="anticon anticon-compress"><svg viewBox="64 64 896 896" focusable="false" data-icon="compress" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M326 664H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V696c0-17.7-14.3-32-32-32zm16-576h-48c-8.8 0-16 7.2-16 16v176H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V104c0-8.8-7.2-16-16-16zm578 576H698c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V744h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm0-384H746V104c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16z"></path></svg></span></span><span>压缩</span></button></div><div class="ant-space-item"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_16_ ant-btn-default ant-btn-dangerous ant-btn-color-dangerous ant-btn-variant-outlined"><span class="ant-btn-icon"><span role="img" aria-label="clear" class="anticon anticon-clear"><svg viewBox="64 64 896 896" focusable="false" data-icon="clear" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"></path></svg></span></span><span>清除</span></button></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div class="ant-statistic css-1pi45l5 css-var-_R_16_"><div class="ant-statistic-header"><div class="ant-statistic-title">总上下文大小</div></div><div class="ant-statistic-content"><span class="ant-statistic-content-prefix"><span role="img" aria-label="database" class="anticon anticon-database"><svg viewBox="64 64 896 896" focusable="false" data-icon="database" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span></span><span class="ant-statistic-content-value">0 B</span><span class="ant-statistic-content-suffix"> / 0 条</span></div></div></div></div><div class="ant-card ant-card-bordered ant-card-small css-1pi45l5 css-var-_R_16_"><div class="ant-card-body"><div style="margin-bottom:12px;color:var(--colorTextSecondary);font-size:13px"><span role="img" aria-label="info-circle" class="anticon anticon-info-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="info-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="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"></path></svg></span> <!-- -->数据来源: ~/.customize-agent/memory.db(记忆库)</div><div class="css-var-_R_16_ ant-table-css-var ant-table-wrapper css-1pi45l5"><div class="ant-spin ant-spin-spinning css-1pi45l5 css-var-_R_16_" aria-live="polite" aria-busy="true"><div class="ant-spin-section"><span class="ant-spin-dot-holder"><span class="ant-spin-dot ant-spin-dot-spin"><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i></span></span></div><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty css-var-_R_16_ ant-table-css-var css-1pi45l5"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:fixed"><colgroup><col style="width:180px"/><col style="width:90px"/><col/><col style="width:80px"/><col style="width:100px"/><col style="width:140px"/><col style="width:100px"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell ant-table-cell-ellipsis" title="模型名称" scope="col">模型名称</th><th class="ant-table-cell" scope="col">类型</th><th class="ant-table-cell ant-table-cell-ellipsis" title="内容" scope="col">内容</th><th class="ant-table-cell" scope="col">重要性</th><th class="ant-table-cell ant-table-cell-ellipsis" title="来源" scope="col">来源</th><th class="ant-table-cell" scope="col">更新时间</th><th class="ant-table-cell" scope="col">编辑</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td class="ant-table-cell" colSpan="7"><div class="css-1pi45l5 css-var-_R_16_ ant-empty ant-empty-normal"><div class="ant-empty-image"><svg width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><title>No data</title><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse fill="#f2f2f2c9" cx="32" cy="33" rx="32" ry="7"></ellipse><g fill-rule="nonzero" stroke="#d0d0d0cf"><path d="M55 12.8 44.9 1.3Q44 0 42.9 0H21.1q-1.2 0-2 1.3L9 12.8V22h46z"></path><path d="M41.6 16c0-1.7 1-3 2.2-3H55v18.1c0 2.2-1.3 3.9-3 3.9H12c-1.7 0-3-1.7-3-3.9V13h11.2c1.2 0 2.2 1.3 2.2 3s1 2.9 2.2 2.9h14.8c1.2 0 2.2-1.4 2.2-3" fill="#f8f8f8c8"></path></g></g></svg></div><div class="ant-empty-description">No data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/context/long-term","query":{},"buildId":"customize-agent-dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>