@customize-agent/server 3.0.13 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/3445.js +5 -9
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/export.js +14 -1
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/kb/categories.js +5 -9
- package/.next/server/pages/api/kb/duplicates.js +5 -9
- package/.next/server/pages/api/kb/files/detail.js +5 -9
- package/.next/server/pages/api/kb/files/open.js +5 -9
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +5 -9
- package/.next/server/pages/api/kb/files/reindex.js +5 -9
- package/.next/server/pages/api/kb/files.js +5 -9
- package/.next/server/pages/api/kb/ignore.js +5 -9
- package/.next/server/pages/api/kb/operations.js +5 -9
- package/.next/server/pages/api/kb/reindex.js +5 -9
- package/.next/server/pages/api/kb/search.js +5 -9
- package/.next/server/pages/api/kb/stats.js +5 -9
- package/.next/server/pages/api/kb/tags.js +5 -9
- package/.next/server/pages/api/kb/upload.js +5 -9
- package/.next/server/pages/context/long-term.html +1 -1
- package/.next/server/pages/context/short-term.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/document-specs.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/search.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages-manifest.json +23 -23
- package/package.json +2 -2
- /package/.next/static/{yL_ilPc9XJWtNmN2W4Njc → HrpIpnt5wstKoy1Bjfffe}/_buildManifest.js +0 -0
- /package/.next/static/{yL_ilPc9XJWtNmN2W4Njc → HrpIpnt5wstKoy1Bjfffe}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=2864,a.ids=[2864],a.modules={17532:a=>{a.exports=import("pdfjs-dist/legacy/build/pdf.mjs")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=2864,a.ids=[2864],a.modules={17532:a=>{a.exports=import("pdfjs-dist/legacy/build/pdf.mjs")},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},28183:a=>{a.exports=require("@napi-rs/canvas")},29021:a=>{a.exports=require("fs")},29283:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{config:()=>j,default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);let j={api:{responseLimit:!1}};async function k(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let d=a.query.projectRoot||(0,i.aY)(),e=a.query.relativePath,f=Math.max(1,Number(a.query.page??1));if(!d||!e)return b.status(400).json({error:"projectRoot and relativePath are required"});let g=(await (0,i.Qh)().getProject(d)).getFileDetail(e);if(!g?.absolutePath||"pdf"!==g.file.format)return b.status(404).json({error:"pdf not found"});let[{createCanvas:h},j]=await Promise.all([Promise.resolve().then(c.t.bind(c,28183,23)),Promise.resolve().then(c.bind(c,17532))]),k=await Promise.resolve().then(c.t.bind(c,73024,23)),l=new Uint8Array(k.readFileSync(g.absolutePath)),m=await j.getDocument({data:l}).promise,n=await m.getPage(Math.min(f,m.numPages)),o=n.getViewport({scale:1.6}),p=h(Math.ceil(o.width),Math.ceil(o.height));await n.render({canvasContext:p.getContext("2d"),viewport:o}).promise,b.setHeader("Content-Type","image/png"),b.setHeader("Cache-Control","private, max-age=3600"),b.status(200).send(p.toBuffer("image/png"))}catch(a){console.error("[api] kb/files/preview-pdf-page",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/preview-pdf-page",pathname:"/api/kb/files/preview-pdf-page",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/files/preview-pdf-page"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/files/preview-pdf-page",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},33873:a=>{a.exports=require("path")},73024:a=>{a.exports=require("node:fs")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=29283));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},28183:a=>{a.exports=require("@napi-rs/canvas")},29021:a=>{a.exports=require("fs")},29283:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{config:()=>j,default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328);let j={api:{responseLimit:!1}};async function k(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let d=a.query.projectRoot||(0,i.aY)(),e=a.query.relativePath,f=Math.max(1,Number(a.query.page??1));if(!d||!e)return b.status(400).json({error:"projectRoot and relativePath are required"});let g=(await (0,i.Qh)().getProject(d)).getFileDetail(e);if(!g?.absolutePath||"pdf"!==g.file.format)return b.status(404).json({error:"pdf not found"});let[{createCanvas:h},j]=await Promise.all([Promise.resolve().then(c.t.bind(c,28183,23)),Promise.resolve().then(c.bind(c,17532))]),k=await Promise.resolve().then(c.t.bind(c,73024,23)),l=new Uint8Array(k.readFileSync(g.absolutePath)),m=await j.getDocument({data:l}).promise,n=await m.getPage(Math.min(f,m.numPages)),o=n.getViewport({scale:1.6}),p=h(Math.ceil(o.width),Math.ceil(o.height));await n.render({canvasContext:p.getContext("2d"),viewport:o}).promise,b.setHeader("Content-Type","image/png"),b.setHeader("Cache-Control","private, max-age=3600"),b.status(200).send(p.toBuffer("image/png"))}catch(a){console.error("[api] kb/files/preview-pdf-page",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files/preview-pdf-page",pathname:"/api/kb/files/preview-pdf-page",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/files/preview-pdf-page"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/files/preview-pdf-page",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},33873:a=>{a.exports=require("path")},73024:a=>{a.exports=require("node:fs")},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=29283));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=5796,a.ids=[5796],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=5796,a.ids=[5796],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87176:(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(23328);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"method not allowed"});try{let c=a.body?.projectRoot||(0,i.aY)(),d=a.body?.relativePath;if(!c||!d)return b.status(400).json({error:"projectRoot and relativePath are required"});let e=await (0,i.Qh)().getProject(c),f=await e.reindexFile(d),g=e.getFileDetail(d);b.status(200).json({diff:f,detail:g})}catch(a){console.error("[api] kb/files/reindex",a),b.status(500).json({error:"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/kb/files/reindex",pathname:"/api/kb/files/reindex",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/files/reindex"});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/kb/files/reindex",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())}}},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=87176));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87176:(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(23328);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"method not allowed"});try{let c=a.body?.projectRoot||(0,i.aY)(),d=a.body?.relativePath;if(!c||!d)return b.status(400).json({error:"projectRoot and relativePath are required"});let e=await (0,i.Qh)().getProject(c),f=await e.reindexFile(d),g=e.getFileDetail(d);b.status(200).json({diff:f,detail:g})}catch(a){console.error("[api] kb/files/reindex",a),b.status(500).json({error:"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/kb/files/reindex",pathname:"/api/kb/files/reindex",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/files/reindex"});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/kb/files/reindex",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())}}},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=87176));module.exports=c})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=5592,a.ids=[5592],a.modules={6708:(a,b,c)=>{c.d(b,{H7:()=>l,Qf:()=>j,oy:()=>k});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}function j(a,b){let c=Date.now(),e=i(a),g=e.findIndex(a=>a.id===b.id),j=g>=0?e[g]:void 0,k={id:b.id,type:b.type,title:b.title,stage:b.stage??j?.stage??"uploading",status:b.status??j?.status??"processing",message:b.message??j?.message??"",percent:b.percent??j?.percent??0,fileName:b.fileName??j?.fileName,filePath:b.filePath??j?.filePath,chunkCount:b.chunkCount??j?.chunkCount,textLength:b.textLength??j?.textLength,extractionMode:b.extractionMode??j?.extractionMode,error:b.error??j?.error,createdAt:j?.createdAt??c,updatedAt:c};g>=0?e[g]=k:e.push(k);let l=h(a);return d.mkdirSync(f.dirname(l),{recursive:!0}),d.writeFileSync(l,`${e.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
|
|
2
|
-
`,"utf8"),k}function k(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function l(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
2
|
+
`,"utf8"),k}function k(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function l(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
3
3
|
|
|
4
4
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
5
5
|
|
|
@@ -47,11 +47,7 @@ xref
|
|
|
47
47
|
trailer << /Root 1 0 R /Size 6 >>
|
|
48
48
|
startxref
|
|
49
49
|
0
|
|
50
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
55
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
56
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
57
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},24501:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328),j=c(6708);async function k(a,b){if(!["GET","DELETE"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c="string"==typeof a.body?.projectRoot?a.body.projectRoot:void 0,d=a.query.projectRoot||c||(0,i.aY)();if(!d)return b.status(200).json({files:[],total:0});let e=await (0,i.Qh)().getProject(d);if(await e.incrementalIndex(),"DELETE"===a.method){let{relativePath:c,relativePaths:f,all:g}=a.body,h=g?e.listFiles().map(a=>a.relativePath):Array.isArray(f)?f.map(String):c?[String(c)]:[];if(0===h.length)return b.status(400).json({error:"relativePath or relativePaths is required"});let i=`delete-${Date.now()}-${Math.random().toString(36).slice(2)}`,k=g?`删除全部 ${h.length} 个文件`:1===h.length?`删除 ${h[0]}`:`批量删除 ${h.length} 个文件`;(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"uploading",status:"processing",percent:10,message:"正在删除文件和索引",filePath:h[0],fileName:h[0]?.split("/").pop()});let l=0;for(let a of h)await e.removeFile(a),l++,(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"uploading",status:"processing",percent:Math.min(95,Math.round(l/h.length*90)),message:`已删除 ${l}/${h.length}`,filePath:a,fileName:a.split("/").pop()});return(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"done",status:"success",percent:100,message:`已删除 ${l} 个文件和索引`,filePath:h[0],fileName:h[0]?.split("/").pop()}),b.status(200).json({success:!0,deleted:l})}let f=a.query.category,g=parseInt(a.query.page||"1",10),h=parseInt(a.query.limit||"50",10),k=e.listFiles();f&&(k=k.filter(a=>a.category===f));let l=e.getVectorStatus(),m=k.length,n=k.slice((g-1)*h,g*h).map(a=>({...a,builtIn:d.includes("/.customize-agent/demo-project")||d.includes("\\.customize-agent\\demo-project")}));b.status(200).json({files:n,total:m,page:g,limit:h,vectorStatus:l})}catch(a){console.error("[api] kb/files/index",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files",pathname:"/api/kb/files",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/files"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/files",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=24501));module.exports=c})();
|
|
50
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
51
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
52
|
+
本地图片文件:${g.basename(d)}
|
|
53
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},24501:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328),j=c(6708);async function k(a,b){if(!["GET","DELETE"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c="string"==typeof a.body?.projectRoot?a.body.projectRoot:void 0,d=a.query.projectRoot||c||(0,i.aY)();if(!d)return b.status(200).json({files:[],total:0});let e=await (0,i.Qh)().getProject(d);if(("POST"===a.method||"1"===a.query.reindex)&&await e.incrementalIndex(),"DELETE"===a.method){let{relativePath:c,relativePaths:f,all:g}=a.body,h=g?e.listFiles().map(a=>a.relativePath):Array.isArray(f)?f.map(String):c?[String(c)]:[];if(0===h.length)return b.status(400).json({error:"relativePath or relativePaths is required"});let i=`delete-${Date.now()}-${Math.random().toString(36).slice(2)}`,k=g?`删除全部 ${h.length} 个文件`:1===h.length?`删除 ${h[0]}`:`批量删除 ${h.length} 个文件`;(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"uploading",status:"processing",percent:10,message:"正在删除文件和索引",filePath:h[0],fileName:h[0]?.split("/").pop()});let l=0;for(let a of h)await e.removeFile(a),l++,(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"uploading",status:"processing",percent:Math.min(95,Math.round(l/h.length*90)),message:`已删除 ${l}/${h.length}`,filePath:a,fileName:a.split("/").pop()});return(0,j.Qf)(d,{id:i,type:"delete",title:k,stage:"done",status:"success",percent:100,message:`已删除 ${l} 个文件和索引`,filePath:h[0],fileName:h[0]?.split("/").pop()}),b.status(200).json({success:!0,deleted:l})}let f=a.query.category,g=parseInt(a.query.page||"1",10),h=parseInt(a.query.limit||"50",10),k=e.listFiles();0===k.length&&(d.includes("/.customize-agent/demo-project")||d.includes("\\.customize-agent\\demo-project"))&&(await e.incrementalIndex(),k=e.listFiles()),f&&(k=k.filter(a=>a.category===f));let l=e.getVectorStatus(),m=k.length,n=k.slice((g-1)*h,g*h).map(a=>({...a,builtIn:d.includes("/.customize-agent/demo-project")||d.includes("\\.customize-agent\\demo-project")}));b.status(200).json({files:n,total:m,page:g,limit:h,vectorStatus:l})}catch(a){console.error("[api] kb/files/index",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/files",pathname:"/api/kb/files",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/files"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/files",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},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=24501));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9041,a.ids=[9041],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9041,a.ids=[9041],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},55279:(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(23328);async function j(a,b){if(!["GET","POST"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=await (0,i.Qh)().getProject(c);if("POST"===a.method){let{rules:c}=a.body;return Array.isArray(c)&&c.forEach(a=>{a.trim()&&d.addIgnoreRule(a.trim())}),b.status(200).json({success:!0})}b.status(200).json(d.listIgnoreRules().map(a=>a.pattern))}catch(a){console.error("[api] kb/ignore",a),b.status(500).json({error:"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/kb/ignore",pathname:"/api/kb/ignore",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/ignore"});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/kb/ignore",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())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=55279));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},55279:(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(23328);async function j(a,b){if(!["GET","POST"].includes(a.method))return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=await (0,i.Qh)().getProject(c);if("POST"===a.method){let{rules:c}=a.body;return Array.isArray(c)&&c.forEach(a=>{a.trim()&&d.addIgnoreRule(a.trim())}),b.status(200).json({success:!0})}b.status(200).json(d.listIgnoreRules().map(a=>a.pattern))}catch(a){console.error("[api] kb/ignore",a),b.status(500).json({error:"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/kb/ignore",pathname:"/api/kb/ignore",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/ignore"});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/kb/ignore",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())}}},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=55279));module.exports=c})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=4197,a.ids=[4197],a.modules={6708:(a,b,c)=>{c.d(b,{H7:()=>l,Qf:()=>j,oy:()=>k});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}function j(a,b){let c=Date.now(),e=i(a),g=e.findIndex(a=>a.id===b.id),j=g>=0?e[g]:void 0,k={id:b.id,type:b.type,title:b.title,stage:b.stage??j?.stage??"uploading",status:b.status??j?.status??"processing",message:b.message??j?.message??"",percent:b.percent??j?.percent??0,fileName:b.fileName??j?.fileName,filePath:b.filePath??j?.filePath,chunkCount:b.chunkCount??j?.chunkCount,textLength:b.textLength??j?.textLength,extractionMode:b.extractionMode??j?.extractionMode,error:b.error??j?.error,createdAt:j?.createdAt??c,updatedAt:c};g>=0?e[g]=k:e.push(k);let l=h(a);return d.mkdirSync(f.dirname(l),{recursive:!0}),d.writeFileSync(l,`${e.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
|
|
2
|
-
`,"utf8"),k}function k(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function l(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}},13743:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328),j=c(6708);function k(a,b){try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json("DELETE"===a.method?{success:!0,deleted:0}:{operations:[]});if("GET"===a.method){let d=Number(a.query.limit??50);return b.status(200).json({operations:(0,j.oy)(c,Number.isFinite(d)?d:50)})}if("DELETE"===a.method)return b.status(200).json({success:!0,deleted:(0,j.H7)(c)});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] kb/operations",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/operations",pathname:"/api/kb/operations",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/operations"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/operations",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
2
|
+
`,"utf8"),k}function k(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function l(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}},13743:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328),j=c(6708);function k(a,b){try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json("DELETE"===a.method?{success:!0,deleted:0}:{operations:[]});if("GET"===a.method){let d=Number(a.query.limit??50);return b.status(200).json({operations:(0,j.oy)(c,Number.isFinite(d)?d:50)})}if("DELETE"===a.method)return b.status(200).json({success:!0,deleted:(0,j.H7)(c)});return b.status(405).json({error:"Method not allowed"})}catch(a){console.error("[api] kb/operations",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/operations",pathname:"/api/kb/operations",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/operations"});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,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/operations",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")!==m.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(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
3
3
|
|
|
4
4
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
5
5
|
|
|
@@ -47,11 +47,7 @@ xref
|
|
|
47
47
|
trailer << /Root 1 0 R /Size 6 >>
|
|
48
48
|
startxref
|
|
49
49
|
0
|
|
50
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
55
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
56
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
57
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=13743));module.exports=c})();
|
|
50
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
51
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
52
|
+
本地图片文件:${g.basename(d)}
|
|
53
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},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=13743));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=3676,a.ids=[3676],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=3676,a.ids=[3676],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},38962:(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(23328);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.body?.projectRoot||(0,i.aY)();if(!c)return b.status(400).json({error:"Project root is required"});let d=await (0,i.Qh)().getProject(c),e=await d.incrementalIndex();b.status(200).json({success:!0,stats:{...d.getStats(),vectorStatus:d.getVectorStatus()},diff:{newFiles:e.newFiles.length,modifiedFiles:e.modifiedFiles.length,deletedFiles:e.deletedFiles.length,hasChanges:e.hasChanges}})}catch(a){console.error("[api] kb/reindex",a),b.status(500).json({error:"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/kb/reindex",pathname:"/api/kb/reindex",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/reindex"});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/kb/reindex",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())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=38962));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},38962:(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(23328);async function j(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.body?.projectRoot||(0,i.aY)();if(!c)return b.status(400).json({error:"Project root is required"});let d=await (0,i.Qh)().getProject(c),e=await d.incrementalIndex();b.status(200).json({success:!0,stats:{...d.getStats(),vectorStatus:d.getVectorStatus()},diff:{newFiles:e.newFiles.length,modifiedFiles:e.modifiedFiles.length,deletedFiles:e.deletedFiles.length,hasChanges:e.hasChanges}})}catch(a){console.error("[api] kb/reindex",a),b.status(500).json({error:"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/kb/reindex",pathname:"/api/kb/reindex",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/reindex"});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/kb/reindex",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())}}},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=38962));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=5555,a.ids=[5555],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=5555,a.ids=[5555],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87550:a=>{a.exports=require("better-sqlite3")},99977:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.q||"";if(!c.trim())return b.status(200).json({results:[],total:0});let d=a.query.projectRoot||(0,i.aY)();if(!d)return b.status(200).json({results:[],total:0});let e=parseInt(a.query.limit||"20",10),f=a=>{let b=Number(Array.isArray(a)?a[0]:a);return Number.isFinite(b)?Math.max(0,b):void 0},g={keyword:f(a.query.keywordWeight),vector:f(a.query.vectorWeight),rewrite:f(a.query.rewriteWeight),hybridBonus:f(a.query.hybridBonus)},h=await (0,i.Qh)().search(d,c,{limit:e,weights:g});b.status(200).json({results:h.results,total:h.results.length,queryTimeMs:h.queryTimeMs,scopesSearched:h.scopesSearched,debug:h.debug})}catch(a){console.error("[api] kb/search",a),b.status(500).json({error:"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/kb/search",pathname:"/api/kb/search",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/search"});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/kb/search",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=99977));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")},99977:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.q||"";if(!c.trim())return b.status(200).json({results:[],total:0});let d=a.query.projectRoot||(0,i.aY)();if(!d)return b.status(200).json({results:[],total:0});let e=parseInt(a.query.limit||"20",10),f=a=>{let b=Number(Array.isArray(a)?a[0]:a);return Number.isFinite(b)?Math.max(0,b):void 0},g={keyword:f(a.query.keywordWeight),vector:f(a.query.vectorWeight),rewrite:f(a.query.rewriteWeight),hybridBonus:f(a.query.hybridBonus)},h=await (0,i.Qh)().search(d,c,{limit:e,weights:g});b.status(200).json({results:h.results,total:h.results.length,queryTimeMs:h.queryTimeMs,scopesSearched:h.scopesSearched,debug:h.debug})}catch(a){console.error("[api] kb/search",a),b.status(500).json({error:"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/kb/search",pathname:"/api/kb/search",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/search"});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/kb/search",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=99977));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=3244,a.ids=[3244],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=3244,a.ids=[3244],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},71328:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json({});let d=await (0,i.Qh)().getProject(c);b.status(200).json({...d.getStats(),vectorStatus:d.getVectorStatus()})}catch(a){console.error("[api] kb/stats",a),b.status(500).json({error:"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/kb/stats",pathname:"/api/kb/stats",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/stats"});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/kb/stats",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())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=71328));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},71328:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json({});let d=await (0,i.Qh)().getProject(c);b.status(200).json({...d.getStats(),vectorStatus:d.getVectorStatus()})}catch(a){console.error("[api] kb/stats",a),b.status(500).json({error:"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/kb/stats",pathname:"/api/kb/stats",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/stats"});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/kb/stats",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())}}},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=71328));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9928,a.ids=[9928],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9928,a.ids=[9928],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},23328:(a,b,c)=>{c.d(b,{Qh:()=>l,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){let a=g.join(h.homedir(),".customize-agent","demo-project"),b=g.join(a,"knowledgeBase");for(let[a,c]of(i.mkdirSync(b,{recursive:!0}),Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
|
|
2
2
|
|
|
3
3
|
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
4
|
|
|
@@ -46,11 +46,7 @@ xref
|
|
|
46
46
|
trailer << /Root 1 0 R /Size 6 >>
|
|
47
47
|
startxref
|
|
48
48
|
0
|
|
49
|
-
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
z.writestr('[Content_Types].xml','<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>')
|
|
54
|
-
z.writestr('_rels/.rels','<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>')
|
|
55
|
-
z.writestr('word/document.xml',f'<?xml version="1.0" encoding="UTF-8"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>{content}</w:body></w:document>')`;try{(0,j.execFileSync)("python3",["-c",d,a,b,c],{stdio:"ignore"})}catch{i.writeFileSync(a,`${b}
|
|
56
|
-
${c}`,"utf-8")}}(d,"【内置】三角洲热门干员 Word 打法说明","露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let k=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||!(i.statSync(d).size>0))try{(0,j.execFileSync)("curl",["-L","--max-time","12","-o",d,c],{stdio:"ignore"})}catch{i.writeFileSync(`${d}.url.txt`,c,"utf-8")}k.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),k.join("\n"),"utf-8"),a}function m(){return k||(k=new d.MultiProjectManager),k}function n(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function o(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!n(b))return g.resolve(b);if(!a)return l();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!n(a))}finally{b.close()}}();return c.length>0?c[0]:n(process.cwd())?l():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},40930:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=(await (0,i.Qh)().getProject(c)).listTags();b.status(200).json([...new Set(d.map(a=>a.tag))])}catch(a){console.error("[api] kb/tags",a),b.status(500).json({error:"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/kb/tags",pathname:"/api/kb/tags",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/tags"});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/kb/tags",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())}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},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=40930));module.exports=c})();
|
|
49
|
+
%%EOF`;i.writeFileSync(a,e,"binary")}(c,"【内置】三角洲热门干员攻略 PDF 摘要","露娜负责侦察信息,红狼负责突破,牧羊人负责控场,蜂医负责支援续航。推荐新手优先熟悉蜂医和露娜,再练红狼与牧羊人。"),i.existsSync(d)&&i.statSync(d).size>0||i.writeFileSync(d,`【内置】三角洲热门干员 Word 打法说明
|
|
50
|
+
露娜适合信息侦察;红狼适合进攻突破;牧羊人适合区域封锁;蜂医适合治疗救援。队伍建议至少包含侦察和支援。`,"utf-8"),i.existsSync(e)||i.writeFileSync(e,"【内置】三角洲队伍搭配 Word 兼容资料\n侦察位看信息,突击位打开突破口,工程位控场,支援位保证续航。","utf-8");let f=g.join(b,"图片素材","干员图片");i.mkdirSync(f,{recursive:!0});let j=["# 干员图片资料","","图片来源参考:https://github.com/luoy-oss/deltaforce_id 和 https://playerhub.df.qq.com/playerhub/60004/object/p_{ID}.png",""];for(let[a,c]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let d=g.join(f,a);if(!i.existsSync(d)||i.statSync(d).size<20){let a=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=","base64");i.writeFileSync(d,a)}i.writeFileSync(`${d}.source.txt`,`图片公开来源:${c}
|
|
51
|
+
本地图片文件:${g.basename(d)}
|
|
52
|
+
`,"utf-8"),j.push(`- ${a.replace(".png","")}:${c};本地文件:${g.relative(b,d)}`)}return i.writeFileSync(g.join(b,"图片素材","图片文件-干员图片来源.md"),j.join("\n"),"utf-8"),a}function l(){return j||(j=new d.MultiProjectManager),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return b!==g.resolve(g.join(h.homedir(),".customize-agent","demo-project"))&&(!!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))||b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!m(b))return g.resolve(b);if(!a)return k();let c=function(){let a=g.join(h.homedir(),".customize-agent","projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return c.length>0?c[0]:m(process.cwd())?k():process.cwd()}},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},40930:(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(23328);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=(await (0,i.Qh)().getProject(c)).listTags();b.status(200).json([...new Set(d.map(a=>a.tag))])}catch(a){console.error("[api] kb/tags",a),b.status(500).json({error:"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/kb/tags",pathname:"/api/kb/tags",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/tags"});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/kb/tags",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())}}},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=40930));module.exports=c})();
|