@customize-agent/server 3.0.11 → 3.0.12
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 +11 -10
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/3445.js +39 -6
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/documents/roles.js +1 -1
- package/.next/server/pages/api/documents/specs.js +1 -1
- package/.next/server/pages/api/kb/categories.js +34 -1
- package/.next/server/pages/api/kb/duplicates.js +34 -1
- package/.next/server/pages/api/kb/files/detail.js +34 -1
- package/.next/server/pages/api/kb/files/open.js +34 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +34 -1
- package/.next/server/pages/api/kb/files/reindex.js +34 -1
- package/.next/server/pages/api/kb/files.js +34 -1
- package/.next/server/pages/api/kb/ignore.js +34 -1
- package/.next/server/pages/api/kb/operations.js +34 -1
- package/.next/server/pages/api/kb/reindex.js +34 -1
- package/.next/server/pages/api/kb/search.js +34 -1
- package/.next/server/pages/api/kb/stats.js +34 -1
- package/.next/server/pages/api/kb/tags.js +34 -1
- package/.next/server/pages/api/kb/upload.js +34 -1
- 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 +21 -21
- package/.next/static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js +1 -0
- package/.next/static/chunks/400-ba996d76e74a7368.js +78 -0
- package/.next/static/chunks/740-cd38299e151d3ffc.js +16 -0
- package/.next/static/chunks/746-120983153bceeea6.js +1 -0
- package/.next/static/chunks/804-b11aef99b57308a3.js +11 -0
- package/.next/static/chunks/958-0793922b6b146891.js +1 -0
- package/.next/static/chunks/pages/{_app-49c11d5b0712c7a5.js → _app-725afbb7d3371a13.js} +8 -8
- package/.next/static/chunks/pages/_error-49c333927e615faa.js +1 -0
- package/.next/static/chunks/pages/context/long-term-dba1d735f2b5e12b.js +1 -0
- package/.next/static/chunks/pages/context/short-term-7cc72881b42b74fb.js +1 -0
- package/.next/static/chunks/pages/document-roles-653f01136b58197b.js +1 -0
- package/.next/static/chunks/pages/document-specs-120681be3e183b9e.js +1 -0
- package/.next/static/chunks/pages/documents-93e638518deec9b5.js +1 -0
- package/.next/static/chunks/pages/documents-a72286e23487eaf7.js +1 -0
- package/.next/static/chunks/pages/guide-f6ad48fc4e564c1c.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-5d501503e54b4424.js +1 -0
- package/.next/static/chunks/pages/models-0fb086e70387dde1.js +1 -0
- package/.next/static/chunks/pages/overview-9fbf5907184af472.js +1 -0
- package/.next/static/chunks/pages/{prompt-654d82321a383233.js → prompt-d9996cf322de0125.js} +1 -1
- package/.next/static/he1VpXuNk12nGqt9mP7Jd/_buildManifest.js +1 -0
- package/.next/static/he1VpXuNk12nGqt9mP7Jd/_ssgManifest.js +1 -0
- package/package.json +2 -2
- package/.next/static/chunks/pages/context/long-term-710aaeb12e378258.js +0 -1
- package/.next/static/chunks/pages/context/short-term-e68f01478e7ed238.js +0 -1
- package/.next/static/chunks/pages/document-roles-caee7af42da4f792.js +0 -1
- package/.next/static/chunks/pages/document-specs-7085069b6dcdaee6.js +0 -1
- package/.next/static/chunks/pages/documents-b78988e17525927f.js +0 -1
- package/.next/static/chunks/pages/models-6131bc7596604158.js +0 -1
- package/.next/static/yEauW-YU8G-h4UdYFV8_d/_buildManifest.js +0 -1
- /package/.next/static/{yEauW-YU8G-h4UdYFV8_d → ZG2x_4BgDtQoIcW28iwgH}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,35 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
3
|
+
|
|
4
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
5
|
+
|
|
6
|
+
写作要求:
|
|
7
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
8
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
9
|
+
- 不能把没有来源的数据写成确定结论。
|
|
10
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
11
|
+
|
|
12
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
13
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
14
|
+
|
|
15
|
+
## 热门干员
|
|
16
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
17
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
18
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
19
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
20
|
+
|
|
21
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
22
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
23
|
+
红狼,突击,5,中高,突破和正面交火
|
|
24
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
25
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
26
|
+
|
|
27
|
+
示意说明:
|
|
28
|
+
- 侦察位优先观察主通道和侧翼。
|
|
29
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
30
|
+
- 工程位在关键入口布置控场手段。
|
|
31
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
32
|
+
|
|
33
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
34
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
35
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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("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);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 +1,34 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
2
|
+
|
|
3
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
|
+
|
|
5
|
+
写作要求:
|
|
6
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
7
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
|
+
- 不能把没有来源的数据写成确定结论。
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
10
|
+
|
|
11
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
13
|
+
|
|
14
|
+
## 热门干员
|
|
15
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
16
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
17
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
|
+
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
|
+
红狼,突击,5,中高,突破和正面交火
|
|
23
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
25
|
+
|
|
26
|
+
示意说明:
|
|
27
|
+
- 侦察位优先观察主通道和侧翼。
|
|
28
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
29
|
+
- 工程位在关键入口布置控场手段。
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
31
|
+
|
|
32
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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,2 +1,35 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
3
|
+
|
|
4
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
5
|
+
|
|
6
|
+
写作要求:
|
|
7
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
8
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
9
|
+
- 不能把没有来源的数据写成确定结论。
|
|
10
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
11
|
+
|
|
12
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
13
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
14
|
+
|
|
15
|
+
## 热门干员
|
|
16
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
17
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
18
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
19
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
20
|
+
|
|
21
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
22
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
23
|
+
红狼,突击,5,中高,突破和正面交火
|
|
24
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
25
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
26
|
+
|
|
27
|
+
示意说明:
|
|
28
|
+
- 侦察位优先观察主通道和侧翼。
|
|
29
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
30
|
+
- 工程位在关键入口布置控场手段。
|
|
31
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
32
|
+
|
|
33
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
34
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
35
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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 +1,34 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
2
|
+
|
|
3
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
|
+
|
|
5
|
+
写作要求:
|
|
6
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
7
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
|
+
- 不能把没有来源的数据写成确定结论。
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
10
|
+
|
|
11
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
13
|
+
|
|
14
|
+
## 热门干员
|
|
15
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
16
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
17
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
|
+
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
|
+
红狼,突击,5,中高,突破和正面交火
|
|
23
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
25
|
+
|
|
26
|
+
示意说明:
|
|
27
|
+
- 侦察位优先观察主通道和侧翼。
|
|
28
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
29
|
+
- 工程位在关键入口布置控场手段。
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
31
|
+
|
|
32
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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 +1,34 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
2
|
+
|
|
3
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
|
+
|
|
5
|
+
写作要求:
|
|
6
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
7
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
|
+
- 不能把没有来源的数据写成确定结论。
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
10
|
+
|
|
11
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
13
|
+
|
|
14
|
+
## 热门干员
|
|
15
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
16
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
17
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
|
+
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
|
+
红狼,突击,5,中高,突破和正面交火
|
|
23
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
25
|
+
|
|
26
|
+
示意说明:
|
|
27
|
+
- 侦察位优先观察主通道和侧翼。
|
|
28
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
29
|
+
- 工程位在关键入口布置控场手段。
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
31
|
+
|
|
32
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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 +1,34 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
2
|
+
|
|
3
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
|
+
|
|
5
|
+
写作要求:
|
|
6
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
7
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
|
+
- 不能把没有来源的数据写成确定结论。
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
10
|
+
|
|
11
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
13
|
+
|
|
14
|
+
## 热门干员
|
|
15
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
16
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
17
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
|
+
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
|
+
红狼,突击,5,中高,突破和正面交火
|
|
23
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
25
|
+
|
|
26
|
+
示意说明:
|
|
27
|
+
- 侦察位优先观察主通道和侧翼。
|
|
28
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
29
|
+
- 工程位在关键入口布置控场手段。
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
31
|
+
|
|
32
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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 +1,34 @@
|
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
2
|
+
|
|
3
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
4
|
+
|
|
5
|
+
写作要求:
|
|
6
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
7
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
8
|
+
- 不能把没有来源的数据写成确定结论。
|
|
9
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
10
|
+
|
|
11
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
12
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
13
|
+
|
|
14
|
+
## 热门干员
|
|
15
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
16
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
17
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
18
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
19
|
+
|
|
20
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
21
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
22
|
+
红狼,突击,5,中高,突破和正面交火
|
|
23
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
24
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
25
|
+
|
|
26
|
+
示意说明:
|
|
27
|
+
- 侦察位优先观察主通道和侧翼。
|
|
28
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
29
|
+
- 工程位在关键入口布置控场手段。
|
|
30
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
31
|
+
|
|
32
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
33
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
34
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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})();
|
|
@@ -1,2 +1,35 @@
|
|
|
1
1
|
"use strict";(()=>{var a={};a.id=9452,a.ids=[9452],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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();
|
|
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:()=>k,aY:()=>m});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(){return j||(j=new d.MultiProjectManager),j}function l(a){let b=g.resolve(a);return b===g.resolve(g.join(h.homedir(),".customize-agent"))||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 m(a=!1){let b=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(b&&i.existsSync(b)&&!l(b))return g.resolve(b);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=>!l(a))}finally{b.close()}}();if(c.length>0)return c[0];if(a&&!l(process.cwd()))return process.cwd();let d=g.join(h.homedir(),".customize-agent","demo-project");for(let[a,b]of(i.mkdirSync(d,{recursive:!0}),Object.entries({"规则文件-攻略写作要求.md":`# 三角洲热门干员攻略写作要求
|
|
3
|
+
|
|
4
|
+
公开参考入口:https://df.qq.com/ 和 https://deltaforce.garena.com/
|
|
5
|
+
|
|
6
|
+
写作要求:
|
|
7
|
+
- 面向新手和进阶玩家,语言要直白。
|
|
8
|
+
- 必须解释干员定位、技能价值、适用场景和常见误区。
|
|
9
|
+
- 不能把没有来源的数据写成确定结论。
|
|
10
|
+
- 表格中的推荐指数只能作为示例参考。`,"项目事实-热门干员资料.md":`# 三角洲热门干员资料
|
|
11
|
+
|
|
12
|
+
攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手。
|
|
13
|
+
适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
|
|
14
|
+
|
|
15
|
+
## 热门干员
|
|
16
|
+
- 露娜:侦察定位,适合信息获取、标记敌人、帮助队伍判断推进路线。
|
|
17
|
+
- 红狼:突击定位,适合正面突破、拉枪线、打开交战空间。
|
|
18
|
+
- 牧羊人:工程定位,适合控场、防守、限制敌方推进。
|
|
19
|
+
- 蜂医:支援定位,适合治疗、救援、提高队伍持续作战能力。
|
|
20
|
+
|
|
21
|
+
实战技巧:新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。`,"表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
|
|
22
|
+
露娜,侦察,5,中,信息侦察和路线判断
|
|
23
|
+
红狼,突击,5,中高,突破和正面交火
|
|
24
|
+
牧羊人,工程,4,中,防守控场和区域封锁
|
|
25
|
+
蜂医,支援,5,低,治疗救援和续航`,"图纸文件-战术路线示意.md":`# 战术路线示意
|
|
26
|
+
|
|
27
|
+
示意说明:
|
|
28
|
+
- 侦察位优先观察主通道和侧翼。
|
|
29
|
+
- 突击位沿掩体推进,不要单独深入。
|
|
30
|
+
- 工程位在关键入口布置控场手段。
|
|
31
|
+
- 支援位保持在队伍中后段,优先保证救援路线。`,"规范文件-攻略结构规范.md":`# 攻略结构规范
|
|
32
|
+
|
|
33
|
+
必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、实战注意事项。
|
|
34
|
+
推荐写法:先讲结论,再讲原因,最后给操作建议。
|
|
35
|
+
导出前检查:不能出现“资料未提供”;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医。`}))){let c=g.join(d,a);i.existsSync(c)||i.writeFileSync(c,b,"utf-8")}return d}},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")},97217:(a,b,c)=>{c.d(b,{M:()=>e,Q:()=>f});let d=new Map;function e(a,b){a&&d.set(a,{id:a,...b,updatedAt:Date.now()})}function f(a){let b=d.get(a);if(b)return Date.now()-b.updatedAt>18e5?void d.delete(a):b}},97384:(a,b,c)=>{c.r(b),c.d(b,{config:()=>q,default:()=>p,handler:()=>s});var d={};c.r(d),c.d(d,{config:()=>l,default:()=>m});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(23328),j=c(97217),k=c(6708);let l={api:{bodyParser:{sizeLimit:"500mb"},responseLimit:"500mb"}};async function m(a,b){if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let{fileName:c,fileData:d,uploadId:e}=a.body,f=Array.isArray(a.body.files)?a.body.files:c&&d?[{fileName:c,fileData:d,relativePath:a.body.relativePath}]:[];if(0===f.length)return b.status(400).json({error:"files required"});let g=a.body.projectRoot||(0,i.aY)();if(!g)return b.status(400).json({error:"Project root is required"});let h=e||`upload-${Date.now()}`,l=1===f.length?f[0].fileName:`${f.length} 个文件`;(0,j.M)(h,{stage:"uploading",percent:20,message:"文件已接收,正在准备写入",fileName:l}),(0,k.Qf)(g,{id:h,type:"upload",title:`上传 ${l}`,stage:"uploading",status:"processing",percent:20,message:"文件已接收,正在准备写入",fileName:l});let m=await (0,i.Qh)().getProject(g),n=f.map(a=>({fileName:a.fileName,content:Buffer.from(a.fileData,"base64"),targetRelativePath:m.getUploadRelativePath(a.fileName,a.relativePath)})),o=n[0]?.targetRelativePath;(0,j.M)(h,{stage:"parsing",percent:40,message:"正在解析文件内容",fileName:l}),(0,k.Qf)(g,{id:h,type:"upload",title:`上传 ${l}`,stage:"parsing",status:"processing",percent:40,message:"正在解析文件内容",fileName:l,filePath:o});let p=await m.uploadFiles(n,a=>{let b="scanning"===a.stage?"uploading":a.stage;(0,j.M)(h,{...a,stage:b,fileName:l}),(0,k.Qf)(g,{id:h,type:"upload",title:`上传 ${l}`,stage:b,status:"processing",percent:a.percent,message:a.message,fileName:l,filePath:a.filePath??o,chunkCount:a.chunkCount})},{vectorMode:"defer"}),q=m.listFiles(),r=new Set([...p.newFiles,...p.modifiedFiles].map(a=>a.relativePath)),s=q.filter(a=>r.has(a.relativePath)).reduce((a,b)=>a+b.chunkCount,0),t=q.find(a=>a.relativePath===o),u=t?.metadataJson?JSON.parse(t.metadataJson):void 0,v=m.getVectorStatus(),w="ready"===v.status;(0,j.M)(h,{stage:"done",percent:100,message:w?"解析、切片和向量入库已完成":"解析、切片和 SQLite 入库已完成,向量入库待完成",fileName:l,chunkCount:1===f.length?t?.chunkCount:s,vectorStatus:v,error:v.error}),(0,k.Qf)(g,{id:h,type:"upload",title:`上传 ${l}`,stage:"done",status:w?"success":"warning",percent:100,message:w?"解析、切片和向量入库已完成":"解析、切片和 SQLite 入库已完成,向量入库待完成",fileName:l,filePath:1===f.length?t?.relativePath??o:void 0,chunkCount:1===f.length?t?.chunkCount:s,textLength:u?.extraction?.textLength,extractionMode:u?.extraction?.extractionMode,error:v.error}),b.status(200).json({success:!0,relativePath:1===f.length?t?.relativePath??o:void 0,added:p.newFiles.length,total:q.length,files:q,vectorStatus:v})}catch(g){let c=a.body?.projectRoot||(0,i.aY)(),d=Array.isArray(a.body?.files)?a.body.files:[],e=a.body?.fileName||(d.length>1?`${d.length} 个文件`:d[0]?.fileName),f=a.body?.uploadId||`upload-${Date.now()}`;c&&e&&(0,k.Qf)(c,{id:f,type:"upload",title:`上传 ${e}`,stage:"error",status:"error",percent:100,message:"上传或索引失败",fileName:e,error:"Internal server error"}),console.error("[api] kb/upload",g),b.status(500).json({error:"Internal server error"})}}var n=c(68970),o=c(50296);let p=(0,h.M)(d,"default"),q=(0,h.M)(d,"config"),r=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/upload",pathname:"/api/kb/upload",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function s(a,b,c){let d=await r.prepare(a,b,{srcPage:"/api/kb/upload"});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,n.getTracer)(),e=d.getActiveScopeSpan(),j=r.instrumentationOnRequestError.bind(r),k=async e=>r.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:r.isDev,page:"/api/kb/upload",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")!==o.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(o.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:n.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(r.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=97384));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/260-7a7a65a3ca8539ba.js" defer=""></script><script src="/_next/static/chunks/167-9f45623d7ea7ab43.js" defer=""></script><script src="/_next/static/chunks/382-dd7535429e16931b.js" defer=""></script><script src="/_next/static/chunks/201-b16b4788042ed1aa.js" defer=""></script><script src="/_next/static/chunks/668-662b7bc81e4ad48f.js" defer=""></script><script src="/_next/static/chunks/227-442963c7b630eade.js" defer=""></script><script src="/_next/static/chunks/740-2bcba39d841f2b16.js" defer=""></script><script src="/_next/static/chunks/174-e7df14600b457a5c.js" defer=""></script><script src="/_next/static/chunks/492-62671486700ed3f9.js" defer=""></script><script src="/_next/static/chunks/455-e31becaaf948f868.js" defer=""></script><script src="/_next/static/chunks/446-0591221372df7d49.js" defer=""></script><script src="/_next/static/chunks/400-f06f00619f22421e.js" defer=""></script><script src="/_next/static/chunks/257-ba16dfe16a27f417.js" defer=""></script><script src="/_next/static/chunks/pages/context/long-term-dba1d735f2b5e12b.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/context/long-term","query":{},"buildId":"ZG2x_4BgDtQoIcW28iwgH","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/260-7a7a65a3ca8539ba.js" defer=""></script><script src="/_next/static/chunks/167-9f45623d7ea7ab43.js" defer=""></script><script src="/_next/static/chunks/382-dd7535429e16931b.js" defer=""></script><script src="/_next/static/chunks/201-b16b4788042ed1aa.js" defer=""></script><script src="/_next/static/chunks/668-662b7bc81e4ad48f.js" defer=""></script><script src="/_next/static/chunks/227-442963c7b630eade.js" defer=""></script><script src="/_next/static/chunks/740-2bcba39d841f2b16.js" defer=""></script><script src="/_next/static/chunks/174-e7df14600b457a5c.js" defer=""></script><script src="/_next/static/chunks/492-62671486700ed3f9.js" defer=""></script><script src="/_next/static/chunks/455-e31becaaf948f868.js" defer=""></script><script src="/_next/static/chunks/446-0591221372df7d49.js" defer=""></script><script src="/_next/static/chunks/400-f06f00619f22421e.js" defer=""></script><script src="/_next/static/chunks/257-ba16dfe16a27f417.js" defer=""></script><script src="/_next/static/chunks/pages/context/short-term-7cc72881b42b74fb.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/context/short-term","query":{},"buildId":"ZG2x_4BgDtQoIcW28iwgH","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/260-7a7a65a3ca8539ba.js" defer=""></script><script src="/_next/static/chunks/167-9f45623d7ea7ab43.js" defer=""></script><script src="/_next/static/chunks/382-dd7535429e16931b.js" defer=""></script><script src="/_next/static/chunks/201-b16b4788042ed1aa.js" defer=""></script><script src="/_next/static/chunks/668-662b7bc81e4ad48f.js" defer=""></script><script src="/_next/static/chunks/227-442963c7b630eade.js" defer=""></script><script src="/_next/static/chunks/740-cd38299e151d3ffc.js" defer=""></script><script src="/_next/static/chunks/174-e7df14600b457a5c.js" defer=""></script><script src="/_next/static/chunks/492-62671486700ed3f9.js" defer=""></script><script src="/_next/static/chunks/455-e31becaaf948f868.js" defer=""></script><script src="/_next/static/chunks/846-fed995f7c83fc6c3.js" defer=""></script><script src="/_next/static/chunks/pages/document-roles-653f01136b58197b.js" defer=""></script><script src="/_next/static/he1VpXuNk12nGqt9mP7Jd/_buildManifest.js" defer=""></script><script src="/_next/static/he1VpXuNk12nGqt9mP7Jd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/document-roles","query":{},"buildId":"he1VpXuNk12nGqt9mP7Jd","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><link rel="preload" href="/_next/static/css/5237c5e3358f3282.css" as="style"/><link rel="stylesheet" href="/_next/static/css/5237c5e3358f3282.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-77d10b4726f13aa5.js" defer=""></script><script src="/_next/static/chunks/framework-b5223c1542334872.js" defer=""></script><script src="/_next/static/chunks/main-1a03005b3754c708.js" defer=""></script><script src="/_next/static/chunks/pages/_app-725afbb7d3371a13.js" defer=""></script><script src="/_next/static/chunks/260-7a7a65a3ca8539ba.js" defer=""></script><script src="/_next/static/chunks/167-9f45623d7ea7ab43.js" defer=""></script><script src="/_next/static/chunks/382-dd7535429e16931b.js" defer=""></script><script src="/_next/static/chunks/201-b16b4788042ed1aa.js" defer=""></script><script src="/_next/static/chunks/668-662b7bc81e4ad48f.js" defer=""></script><script src="/_next/static/chunks/227-442963c7b630eade.js" defer=""></script><script src="/_next/static/chunks/740-2bcba39d841f2b16.js" defer=""></script><script src="/_next/static/chunks/174-e7df14600b457a5c.js" defer=""></script><script src="/_next/static/chunks/492-62671486700ed3f9.js" defer=""></script><script src="/_next/static/chunks/455-e31becaaf948f868.js" defer=""></script><script src="/_next/static/chunks/992-ea93dfa182a02a8e.js" defer=""></script><script src="/_next/static/chunks/846-fed995f7c83fc6c3.js" defer=""></script><script src="/_next/static/chunks/746-120983153bceeea6.js" defer=""></script><script src="/_next/static/chunks/pages/document-specs-120681be3e183b9e.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_buildManifest.js" defer=""></script><script src="/_next/static/ZG2x_4BgDtQoIcW28iwgH/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="appShellPlaceholder"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/document-specs","query":{},"buildId":"ZG2x_4BgDtQoIcW28iwgH","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|