@customize-agent/server 4.61.18 → 4.61.19
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/required-server-files.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/1710.js +1 -1
- package/.next/server/chunks/2292.js +3 -3
- package/.next/server/chunks/5037.js +5 -3
- package/.next/server/chunks/5763.js +2 -2
- package/.next/server/chunks/8176.js +1 -1
- package/.next/server/chunks/8570.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/generation/[id].html +1 -1
- package/.next/server/pages/generation.html +1 -1
- package/.next/server/pages/jobs.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/source-preview.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/skills/[id]/edit.html +1 -1
- package/.next/server/pages/skills/[id].html +1 -1
- package/.next/server/pages/skills/new.html +1 -1
- package/.next/server/pages/skills.html +1 -1
- package/.next/server/pages-manifest.json +32 -32
- package/package.json +1 -1
- /package/.next/static/{64dedc015186d5e91b1f3db5f8926f02c23e1469ae5174b18ad286d4747d2fff → 0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470}/_buildManifest.js +0 -0
- /package/.next/static/{64dedc015186d5e91b1f3db5f8926f02c23e1469ae5174b18ad286d4747d2fff → 0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=8176,exports.ids=[8176],exports.modules={2313:(a,b,c)=>{c.d(b,{UM:()=>e,uv:()=>d,zc:()=>f});class d extends Error{constructor(a,b){super(a.reason,b),this.receipt=a,this.name="DocumentTransportAnomaly"}}let e=a=>a instanceof d;function f(a){return/(?:\b(?:401|402|403)\b)|insufficient[_\s-]?quota|insufficient\s+balance|exceeded\s+your\s+current\s+quota|quota\s+(?:exceeded|exhausted)|billing|余额不足|欠费|配额不足|额度不足|额度已用/iu.test(a)}},8176:(a,b,c)=>{c.d(b,{a:()=>o,x:()=>v});var d=c(77598),e=c(95393),f=c(68515),g=c(98943),h=c(2313),i=c(24245);let j=(a,b)=>a+"/"+b.replace(/~/gu,"~0").replace(/\//gu,"~1");function k(a,b=""){return Array.isArray(a)?a.length>48?{workspaceArrayIndexed:!0,path:b,total:a.length,reading:"完整数组保留在原回执;用read_receipt按此path和offset/limit逐页读取,或原工作台工具查当前值。"}:a.map((a,c)=>k(a,j(b,String(c)))):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,c])=>[a,k(c,j(b,a))])):a}function l(a,b,c,d){if(!Array.isArray(a)){if(void 0!==c||void 0!==d)throw Error("offset/limit须选择实际数组path");return k(a,b)}let e=function(a=0,b=24){if(!Number.isSafeInteger(a)||a<0||!Number.isSafeInteger(b)||b<1||b>48)throw Error("工作台分页须使用非负整数offset及1–48的limit");return{offset:a,limit:b}}(c,d),f=a.slice(e.offset,e.offset+e.limit);return{workspaceArrayPage:!0,path:b,total:a.length,offset:e.offset,records:f.map((a,c)=>k(a,j(b,String(e.offset+c)))),nextOffset:e.offset+f.length<a.length?e.offset+f.length:null,originalAvailable:!0}}let m=new Map;function n(a){try{let b=JSON.parse(a);if(b&&"object"==typeof b&&!Array.isArray(b)&&"boolean"==typeof b.performed&&(Array.isArray(b.progressKeys)||Array.isArray(b.notificationKeys)||b.progressLedger)){let{progressKeys:a,notificationKeys:c,progressLedger:d,...e}=b;return JSON.stringify(e)}}catch{}return a}class o extends Error{constructor(a,b,c){super(c),this.checkpoint=a,this.reason=b,this.name="DomainAgentPausedError"}}let p=a=>Array.isArray(a)?a.map(p):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>[a,p(b)])):a,q=a=>(0,d.createHash)("sha256").update(JSON.stringify(p(a))).digest("hex"),r=a=>{try{return JSON.stringify(p((0,e.parseJsonWithoutDuplicateKeys)(a)))}catch{return a}},s=a=>{try{let b=(0,e.parseJsonWithoutDuplicateKeys)(a);return Object.fromEntries(Object.entries(b).map(([a,b])=>[a,"string"==typeof b&&b.length>240?{preview:b.slice(0,160),chars:b.length}:Array.isArray(b)&&JSON.stringify(b).length>240?{count:b.length,...b.length&&b.every(a=>"number"==typeof a&&Number.isFinite(a))?{min:Math.min(...b),max:Math.max(...b)}:{}}:b&&"object"==typeof b&&!Array.isArray(b)?{fields:Object.keys(b)}:b]))}catch{return{originalArgumentChars:a.length}}},t=(a,b="",c=0)=>{let d=Array.isArray(a)?"array":null===a?"null":typeof a;return Array.isArray(a)?{path:b,type:d,count:a.length,itemFields:a[0]&&"object"==typeof a[0]?Object.keys(a[0]):void 0}:a&&"object"==typeof a?{path:b,type:d,fieldCount:Object.keys(a).length,...c<2?{fields:Object.entries(a).map(([a,d])=>t(d,b+"/"+a.replace(/~/gu,"~0").replace(/\//gu,"~1"),c+1))}:{fieldNames:Object.keys(a)}}:{path:b,type:d,..."string"==typeof a?{chars:a.length}:{}}},u=a=>{if(Array.isArray(a))return a.map(u);if(!a||"object"!=typeof a)return a;let b="string"==typeof a.type,c=Object.fromEntries(Object.entries(a).filter(([a])=>!b||"nullable"!==a).map(([a,b])=>[a,u(b)]));return b&&!0===a.nullable&&(c.type=[a.type,"null"]),c};async function v(a){if(new Set(a.tools.map(a=>a.name)).size!==a.tools.length)throw Error("智能体工具身份重复");if(a.resume&&a.resume.identity!==a.identity)throw Error("智能体检查点与当前任务及来源身份不一致");let b=a.resume?structuredClone(a.resume):{identity:a.identity,messages:[{role:"user",content:a.goal},...a.stableContext?[{role:"user",content:a.stableContext}]:[]],pending:[],executed:{},progressKeys:[...a.initialProgressKeys??[]],stalledFeedback:[],rounds:0,status:"running"},c=async()=>{await a.onCheckpoint?.(structuredClone(b))},d=a.options?.signal,j=()=>d?.throwIfAborted(),p=a.directive&&b.observedExecutionContexts?.some(b=>b.id===a.directive.id)?void 0:a.directive;if("completed"===b.status){if(p&&"execution-context"!==p.kind&&p.id!==b.directive?.id){if(!p.reason.trim())throw Error("已完成角色重新工作须有实际修订原因")}else{let c=a.resumeCompleted?.();if(!c)return{result:b.result,checkpoint:b};b.messages.push({role:"user",content:c}),b.stalledFeedback=[],b.noProgressRounds=0,a.factDrivenWake&&(b.housekeepingSinceProgress=[])}b.status="running",delete b.result}if("waiting"===b.status){if(!(p&&"execution-context"!==p.kind&&p.id!==b.directive?.id)&&!a.resumeWaiting?.())return{result:b.result,checkpoint:b};delete b.result,a.factDrivenWake&&(b.housekeepingSinceProgress=[])}if(p&&(b.directive=structuredClone(p)),"blocked"===b.status||"paused"===b.status){let c="paused"===b.status,d=b.blockedReason??(b.stalledFeedback.join(";")||"原因未记录");b.messages.push({role:"user",content:c?"budget"===b.blockedReason?"【恢复反馈】上次任务因调用数预算到界暂停:检查点、原稿、已执行事务与费用账均保留。补充预算后继续;先依据已读回执推进实际成果,不要原样重复已执行动作。":`【恢复反馈】上次任务因状态停滞暂停:${d}。原目标、实际证据与已执行事务均保留。先依据已读回执改变策略:需要新证据时明确不同的待查问题;已有证据足够时形成或修订成果;不能再次原样执行已无进展的动作。`:`【恢复反馈】上次任务因重复无进展暂停:${d}。原目标、实际证据、已执行事务和无进展记录均保留,未重置。先依据已读回执改变策略:需要新证据时明确不同的待查问题;已有证据足够时形成或修订成果;不能再次原样执行已无进展的动作。`}),c&&(b.stalledFeedback=[],b.noProgressRounds=0,b.housekeepingSinceProgress=[],b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,delete b.blockedReason,delete b.blockedMessage),!c&&a.factDrivenWake&&(b.housekeepingSinceProgress=[])}"yielded"===b.status&&(delete b.invocationBoundary,delete b.result),b.status="running";let v=new Set(b.progressKeys),w=new Set(b.stalledFeedback),x=!!a.contextForTurn&&!1!==a.memoryTools,y=b.memory??={notes:"",observations:[],retained:[],pinned:[]},z=new Set,A="actor:"+q(a.identity).slice(0,20),B=c=>{if(void 0===c.receiptNamespace&&void 0!==c.namespace&&(c.receiptNamespace=c.namespace),void 0!==c.receiptNamespace&&c.receiptNamespace!==A)throw Error("RECEIPT_ACTOR_NAMESPACE_MISMATCH:只能读取当前 actor 命名空间的回执");if((b.contextLifecycle||a.options?.actorId)&&void 0!==c.receiptId&&c.receiptNamespace!==A)throw Error(`RECEIPT_ACTOR_NAMESPACE_REQUIRED:读取 receiptId 须同时传 receiptNamespace="${A}";用 catalog 查看本 actor 目录`)},C=(a,b)=>{let c=a=>{try{return(0,e.parseJsonWithoutDuplicateKeys)(a)}catch{return}};var d=[c(a),c(b)];let f=new Set,g=a=>{if(Array.isArray(a)){for(let b of a)g(b);return}if(a&&"object"==typeof a)for(let[b,c]of Object.entries(a)){if(/^(?:id|entityIds?|unitEntityIds?|writingUnitIds?|evidenceIds?|certificateIds?|decisionIds?|sourceEntityIds?|factKeys|quantityKeys)$/u.test(b))for(let a of Array.isArray(c)?c:[c])"string"==typeof a&&f.add(a);g(c)}};return g(d),[...f]},D=(a,b)=>{let c={},d=a=>{if(Array.isArray(a))return void a.forEach(d);if(!a||"object"!=typeof a)return;let b=a.entityId??a.unitEntityId??a.id,e=a.entityVersion??a.unitVersion??a.version;"string"==typeof b&&Number.isSafeInteger(e)&&Number(e)>=1&&(c[b]=Number(e)),Object.values(a).forEach(d)};for(let c of[a,b])try{d((0,e.parseJsonWithoutDuplicateKeys)(c))}catch{}return c},E=(b,c)=>{let d=a.tools.find(a=>a.name===b);if(!d||d.readOnly||d.housekeeping||"workspace-view"===d.observationKind)return!1;let e=JSON.parse(c);return!1===e.performed||!!(e.data&&["changedEntityIds","changedEntities","submitted","nextAction","invocationBoundary"].some(a=>Object.hasOwn(e.data,a)))},F=a=>{if(!a.dependencyKeys){let c=b.executed[a.operationId]?.result;a.dependencyKeys=c?C(a.arguments,c):[]}if(!a.dependencyVersions){let c=b.executed[a.operationId]?.result;a.dependencyVersions=c?D(a.arguments,c):{}}let c=b.contextLifecycle?.dependencyVersions;return!c||!(a.dependencyKeys??[]).some(b=>void 0!==c[b]&&a.dependencyVersions[b]!==c[b])},G=a=>Array.isArray(a)?a.map(G):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,b])=>[a,"current"!==a&&G(b)])):a,H=(a,c=!1)=>{let d=b.contextLifecycle;if(d&&!a.dependencyKeys){let c=b.executed[a.operationId];c&&(a.dependencyKeys=C(a.arguments,c.result))}return!!(!d||c||(y.pinned??[]).includes(a.index)||z.has(a.operationId))||!(!F(a)||a.focusId!==d.focusId&&E(a.name,b.executed[a.operationId].result))&&(a.focusId===d.focusId||a.dependencyKeys?.some(a=>d.dependencyKeys?.includes(a)))},I=(a,b)=>{let c=a,d=0;for(let a of b?b.slice(1).split("/").map(a=>a.replace(/~1/gu,"/").replace(/~0/gu,"~")):[]){if(!c||"object"!=typeof c||!Object.hasOwn(c,a))return{found:!1,value:void 0,depth:d,available:Array.isArray(c)?`(该层是数组,共 ${c.length} 项)`:c&&"object"==typeof c?Object.keys(c).slice(0,12).join("、"):"(该层不是对象)"};c=c[a],d+=1}return{found:!0,value:c,available:"",depth:d}},J=(a,c,d="result")=>{let f,g=y.observations.find(b=>b.index===a);if(!g)throw Error("当前任务没有这条实际回执");if("arguments"===d)try{f=(0,e.parseJsonWithoutDuplicateKeys)(g.arguments)}catch{f=g.arguments}else f=JSON.parse(n(b.executed[g.operationId].result));if(c&&!c.startsWith("/"))throw Error("回执路径必须是JSON Pointer");let h="",i=-1;for(let a of((a,b)=>{if(!b)return[""];let c=[b],d=a=>{a&&!c.includes(a)&&c.push(a)};if(b.startsWith("/data/value/data/")&&d("/data/"+b.slice(17)),b.startsWith("/data/value/")&&d("/data/"+b.slice(12)),("/data/value"===b||"/value"===b)&&d("/data"),"/result"===b&&d("/data"),b.startsWith("/value/")&&d("/data/"+b.slice(7)),b.startsWith("/items")&&d("/data/items"),b.startsWith("/records")&&d("/data/records"),b.startsWith("/memberSourceFiles")&&d("/data/memberSourceFiles"),b.startsWith("/data/evaluation/")&&d("/data/"+b.slice(17)),"/data/evaluation"===b&&d("/data"),"submit_for_independent_review"!==a)return c;if(b.startsWith("/data/")){let a=b.slice(6);a.startsWith("reviewSummary/")||d("/data/reviewSummary/"+a);let c=a.startsWith("value/")?a.slice(6):a;c&&!c.startsWith("reviewSummary/")&&d("/data/reviewSummary/"+c),["unreviewedUnits","actions","unitsWithFindings","criteria","openFindings","mechanical"].includes(c.split("/")[0]??"")&&d("/data/reviewSummary/revisionPlan/"+c)}return c})(g.name,c)){let b=I(f,a);if(b.found)return{observation:g,value:b.value,...a!==c?{resolvedPath:a}:{}};b.available&&b.depth>i&&(h=b.available,i=b.depth)}for(let a of((a,b)=>{if(!b.startsWith("/"))return[];let c=a=>a.replace(/~/gu,"~0").replace(/\//gu,"~1"),d=[],e=[b],f=new Set(e);for(;e.length&&d.length<4;){let b=e.shift(),g=b.slice(1).split("/").map(a=>a.replace(/~1/gu,"/").replace(/~0/gu,"~")),h=a,i=!1;for(let a=0;a<g.length;a+=1){let d=g[a];if(!(!h||"object"!=typeof h||!Object.hasOwn(h,d))){h=h[d];continue}i=!0;let j=[];if(0===a&&h&&"object"==typeof h&&Object.hasOwn(h,"data")&&j.push("/data"+b),!Array.isArray(h)&&h&&"object"==typeof h)if(/^\d+$/u.test(d)){let b=Object.keys(h).filter(a=>Array.isArray(h[a]));1===b.length&&j.push("/"+[...g.slice(0,a),b[0],...g.slice(a)].map(c).join("/"))}else if(a<g.length-1||"value"===d||"result"===d)j.push("/"+[...g.slice(0,a),...g.slice(a+1)].map(c).join("/"));else{let b=Object.keys(h).filter(a=>Array.isArray(h[a]));1===b.length&&j.push("/"+[...g.slice(0,a),b[0]].map(c).join("/"))}for(let a of j)f.has(a)||(f.add(a),e.push(a));break}i||d.push(b)}return d})(f,c)){let b=I(f,a);if(b.found)return{observation:g,value:b.value,...a!==c?{resolvedPath:a}:{}}}let j="section_workspace"===g.name?"section_workspace 回执是工作区壳:单元状态/审查档位在每轮上下文 workspaceLive,本节合同项在 sectionBrief,工作包清单在 data.value.sections。":"plan_section"===g.name?"plan_section 回执的小节明细在 data.value.subsections(数组);逐小节 contentContract/writingOutline 见 subsections/<下标>。":"/arguments"===c?'原参数不在 /arguments:读历史回执的原始参数请用 read_receipt { receiptId, part:"arguments" };读结果用默认 part:"result" 或 path:"/data"。':"delegate_construction_responsibility"===g.name?'delegate 回执的 data 含 actorId/instructionId;原参数用 part:"arguments",不要用 path:"/arguments"。':f&&"object"==typeof f&&Object.hasOwn(f,"error")&&!Object.hasOwn(f,"data")?"该回执是失败回执:只有 performed/error,没有 data 层;按 error 里的说明修正动作,不要读 /data。":"";throw Error(`回执 ${a}(${g.name} ${g.arguments.slice(0,100)})不存在路径「${c}」;在该层可用的字段:${h||"(无)"}。按字段大纲里的实际 path 读取,不要猜层级。${j}`)},K=(a,b,c="",d="result")=>"context-restored:"+q([a,d,c,b]),L=(a,b="",c=0)=>c>2||null===a||"object"!=typeof a?[]:Array.isArray(a)?[b||"/",...a.length?[`${b}/0`]:[]]:Object.keys(a).slice(0,16).flatMap(d=>{let e=`${b}/${d.replace(/~/gu,"~0").replace(/\//gu,"~1")}`;return[e,...L(a[d],e,c+1)]}).slice(0,40),M=x?[{name:"read_receipt",housekeeping:!0,description:"按回执索引读取实际原回执(分页)或查看历史回执目录;目录只读、恢复原字都不算业务进展。默认只有最近一条业务回执常驻;retain=true 把所选页固定到后续上下文。原资料回执的翻页用产生它的原工具自己的分页参数;动态工作台视图可用本工具的 offset/limit。**不确定字段路径时先用 view=catalog 看目录、或用 outline=true 取字段大纲,按大纲里的实际 path 读取,不要猜层级。**",parameters:{type:"object",additionalProperties:!1,properties:{view:{type:"string",enum:["catalog","receipt","original"],description:"catalog=历史回执目录(分页);receipt=按 receiptId 读取(工作台页默认索引);original=返回完整原页"},receiptId:{type:"integer",minimum:0},receiptNamespace:{type:"string",description:"回执所属 actor 的命名空间;从当前 memory/catalog 复制。跨 actor 的同号回执不能互换。"},namespace:{type:"string",description:"receiptNamespace 的别名,二选一即可;两者都传时以 receiptNamespace 为准"},path:{type:"string",description:"JSON Pointer;默认整条回执"},part:{type:"string",enum:["result","arguments"]},retain:{type:"boolean",description:"true=把所选页固定到后续上下文(默认不常驻)"},outline:{type:"boolean",description:"只取所选页的字段大纲,不返回整页"},release:{type:"boolean",description:"取消该回执的固定(释放上下文,原回执仍永久保留)"},offset:{type:"integer",minimum:0},limit:{type:"integer",minimum:1,maximum:48},tool:{type:"string",description:"catalog:按工具名过滤"},query:{type:"string",description:"catalog:按查询参数关键词过滤"}}},housekeepingIdentity:a=>"catalog"===a.view||void 0===a.receiptId?"receipt-catalog:"+String(a.tool??"")+":"+String(a.query??"")+":"+String(a.offset??0):K("read_receipt",[a.receiptId,a.path??"",a.part??"result",a.view??"receipt",a.offset??0,a.limit??null]),invoke:c=>{if(void 0!==a.readReceiptLimit){let b=a.readReceiptBudgetKey??a.identity,c=m.get(b)??0;if(c>=a.readReceiptLimit)return{data:{reading:`回执读取已用完本次运行上限 ${a.readReceiptLimit} 次:按当前上下文与工作区状态推进,不再读历史回执。`},feedbackRequired:!0};m.set(b,c+1)}if(B(c),"catalog"===c.view||void 0===c.receiptId){let a=y.observations.filter(a=>(!c.tool||a.name===c.tool)&&(!c.query||a.arguments.includes(String(c.query)))),b=Number(c.offset??0),d=a.slice(b,b+Number(c.limit??24));return{data:{view:"catalog",receiptNamespace:A,total:a.length,offset:b,records:d.map(a=>({receiptId:a.index,receiptNamespace:A,tool:a.name,query:s(a.arguments),retained:y.retained.includes(a.index)})),nextOffset:b+d.length<a.length?b+d.length:null,reading:"目录只读;用 read_receipt { receiptId } 按需取原字,不要重复读同一页。"}}}let d=String(c.path??""),e="arguments"===c.part?"arguments":"result",{observation:f,value:g,resolvedPath:h}=J(Number(c.receiptId),d,e),i=a.tools.find(a=>a.name===f.name)?.observationKind==="workspace-view",j=void 0!==c.offset||void 0!==c.limit;if(j&&!i&&!Array.isArray(g)){let a=JSON.stringify(g??null).length>6e3;return{data:{receiptId:Number(c.receiptId),receiptNamespace:A,tool:f.name,path:h||d,notArray:!0,...a?{valueOmitted:!0,outline:t(g,h||d)}:{value:g},reading:`路径「${d||"(整条回执)"}」不是数组,offset/limit 未生效;`+(a?"原值较大,已返回字段大纲,按 path 读取具体字段。":"已返回该路径的完整值,按字段读取即可。")}}}let k=j?Number(c.offset??0):0,n=j?Math.min(Number(c.limit??24),200):24;if(j&&(!Number.isSafeInteger(k)||k<0||!Number.isSafeInteger(n)||n<1))throw Error("回执分页须使用非负整数 offset 及 1–200 的 limit");let o="result"===e&&(!d||"/data"===d)&&i,p=i?l(g,d,c.offset,c.limit):j&&Array.isArray(g)?{arrayPage:!0,path:d,total:g.length,offset:k,records:g.slice(k,k+n),nextOffset:k+n<g.length?k+n:null,originalAvailable:!0}:g;if(o&&"original"!==c.view&&!0!==c.retain||!0===c.outline)return{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,part:e,path:d,viewKind:"outline",originalAvailable:!0,value:t(g,d),reading:"原页未改写。按 path 读取所需原字段,大派生数组按 offset/limit 取全部原记录;动态工作台当前值用原工具按实体 ID 查。"}};let q=X(f.index)<=W,r=!0!==c.release&&(!0===c.retain||!b.contextLifecycle&&q&&(o?"original"===c.view:""===d&&"result"===e));return!0===c.release?(y.pinned=(y.pinned??[]).filter(a=>a!==f.index),y.retained=y.retained.filter(a=>a!==f.index),y.projections=y.projections?.filter(a=>a.observationIndex!==f.index),{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,released:!0,retained:!1,pinned:!1,originalAvailable:!0}}):(r&&(y.retained.includes(f.index)||y.retained.push(f.index),(y.pinned??=[]).includes(f.index)||y.pinned.push(f.index)),r&&!d&&"result"===e?(y.projections=y.projections?.filter(a=>a.observationIndex!==f.index),a.tools.some(a=>a.name===f.name&&(a.presentObservation||a.presentHistoryObservation||a.observationGroup))&&(y.projections??=[]).push({observationIndex:f.index,path:"",...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},...!0===c.retain?{pin:!0}:{}})):(d||"arguments"===e||j||b.contextLifecycle)&&(y.projections=y.projections?.filter(a=>a.observationIndex!==f.index||(a.path!==d||(a.part??"result")!==e)&&""!==a.path),(y.projections??=[]).push({observationIndex:f.index,path:d,..."arguments"===e?{part:"arguments"}:{},...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},...(i||Array.isArray(g))&&j?{offset:k,limit:n}:{},...!0===c.retain?{pin:!0}:{}})),{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,part:e,path:d,...h&&h!==d?{resolvedPath:h}:{},retained:y.retained.includes(f.index),pinned:(y.pinned??[]).includes(f.index),...!F(f)?{current:!1,historicalSnapshot:!0}:{},value:F(f)?p:G(p),validPaths:L(p,(h??d)||"")}})}}]:[],N=a.options?.taskKind==="reasoning"||a.options?.taskKind==="agent-action",O=0,P=N?[{name:"think",housekeeping:!0,description:"对当前确有复杂工程取舍、接口冲突或专业论证的问题,请求下一轮深入推演。须给出具体问题;下一轮保留相同模型、已读证据和全部工具,用供应商默认输出容量完成推演及行动,此后回到日常工具操作强度。普通查源、改字段、等子任务无需调用。此请求本身不算工程进展,也不代替计算或独立评审。",parameters:{type:"object",required:["question"],properties:{question:{type:"string",minLength:1}},additionalProperties:!1},invoke:c=>{if(void 0!==a.thinkBudget&&O>=a.thinkBudget)throw Error(`THINK_BUDGET_EXCEEDED:本职责推演次数已达上限 ${a.thinkBudget} 次;请依据已读证据直接行动或登记问题。`);return O+=1,b.deliberation={question:String(c.question)},{data:{nextTurn:"deliberation",question:c.question}}}}]:[],Q=[...a.tools,...M,...P];if(new Set(Q.map(a=>a.name)).size!==Q.length)throw Error("业务工具与运行时工作记忆工具重名");Q.sort((a,b)=>a.name.localeCompare(b.name));let R=JSON.stringify(Q.map(({name:a,description:b,parameters:c})=>({name:a,description:b,parameters:u(c)}))).length,S=(a,b)=>""===a||b===a||b.startsWith(a+"/"),T=a=>{let b=[];for(let c of a){let a=c.part??"result",d=a=>a.focusId===c.focusId&&a.pin===c.pin,e=(a,b)=>S(a.path??"",b.path??"")&&(void 0===a.offset&&void 0===a.limit||a.path===b.path&&a.offset===b.offset&&a.limit===b.limit);if(!b.some(b=>d(b)&&b.observationIndex===c.observationIndex&&(b.part??"result")===a&&e(b,c))){for(let f=b.length-1;f>=0;f-=1){let g=b[f];d(g)&&g.observationIndex===c.observationIndex&&(g.part??"result")===a&&e(c,g)&&b.splice(f,1)}b.push(c)}}return b},U=(a,c,d,f=!1)=>{if(f&&x&&N){let e=b.messages.findLast(a=>"assistant"===a.role);e&&void 0===e.thinkingContent&&e.toolCalls?.some(e=>e.name===a&&e.arguments===c&&b.executed[q([b.identity,b.rounds,e.id])]?.result===d)&&(f=!1)}let g=Q.find(b=>b.name===a),h=f?g?.presentHistoryObservation??g?.presentObservation:g?.presentObservation??(g?.observationKind==="workspace-view"?g.presentHistoryObservation:void 0),i=n(d);if("read_receipt"===a){let a=(0,e.parseJsonWithoutDuplicateKeys)(c),b=JSON.parse(i),d=y.observations.find(b=>b.index===a.receiptId);if(b.performed&&b.data?.viewKind!=="outline"&&Object.hasOwn(b.data??{},"value")&&Q.find(a=>a.name===d?.name)?.observationKind==="workspace-view"){let c=String(a.path??""),d="arguments"===a.part?"arguments":"result",e=J(Number(a.receiptId),c,d);return JSON.stringify({...b,data:{...b.data,value:l(e.value,c,a.offset,a.limit),originalAvailable:!0}})}}if(!h){if(f&&g?.observationKind==="workspace-view"){let a=JSON.parse(i);if(a.performed)return JSON.stringify({...a,data:{historicalViewIndexed:!0,originalAvailable:!0,fields:t(a.data,"/data")}})}return g?.observationKind==="workspace-view"?JSON.stringify(k(JSON.parse(i))):i}let j=JSON.parse(i);if(!0===j.originalObservationAvailable&&(!f||!g?.presentHistoryObservation))return g?.observationKind==="workspace-view"?JSON.stringify(k(j)):i;if(!j.performed)return i;let m={...j,data:h((0,e.parseJsonWithoutDuplicateKeys)(c),j.data),originalObservationAvailable:!0};return JSON.stringify(g?.observationKind==="workspace-view"?k(m):m)},V=a=>{if(!y.retained.includes(a.index)||!H(a))return!1;let b=Q.find(b=>b.name===a.name),c=(0,e.parseJsonWithoutDuplicateKeys)(a.arguments);if(b?.observationGroup){let d=b.observationGroup(c);if(y.observations.some(c=>y.retained.indexOf(c.index)>y.retained.indexOf(a.index)&&c.name===a.name&&y.retained.includes(c.index)&&b.observationGroup((0,e.parseJsonWithoutDuplicateKeys)(c.arguments))===d))return!1}return!0},W=Number.isSafeInteger(a.memoryRetainedChars)&&Number(a.memoryRetainedChars)>=1e3?Number(a.memoryRetainedChars):8e3,X=a=>{let c=y.observations.find(b=>b.index===a),d=c&&b.executed[c.operationId];return d?String(d.result).length:0},Y=()=>{(y.pinned?.length??0)>2&&(y.pinned=y.pinned.slice(-2));let a=0,b=[];for(let c of[...y.retained].reverse()){let d=X(c);b.length&&a+d>W||(b.push(c),a+=d)}y.retained=b.reverse(),y.pinned=(y.pinned??[]).filter(a=>b.includes(a))},Z=(a,b,c)=>{let d=Q.find(b=>b.name===a);if(d?.observationGroup)try{let f=a+":"+d.observationGroup((0,e.parseJsonWithoutDuplicateKeys)(b));(y.lastRead??={})[f]=c}catch{}},$=(a,c,d,e=!0)=>{if(!x||[...M,...P].some(b=>b.name===a.name))return;let f=q([a.name,a.arguments,d]),g=y.observations.find(a=>a.fingerprint===f);if(g){let c=V(g);return e&&b.contextLifecycle&&(g.focusId=b.contextLifecycle.focusId),e&&(y.retained=[...y.retained.filter(a=>a!==g.index),g.index]),Z(a.name,a.arguments,g.index),Y(),{index:g.index,wasResident:c}}let h=y.observations.length;return y.observations.push({index:h,operationId:c,name:a.name,arguments:a.arguments,fingerprint:f,...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},dependencyKeys:C(a.arguments,d),dependencyVersions:D(a.arguments,d)}),y.retained.push(h),Z(a.name,a.arguments,h),Y(),{index:h,wasResident:!1}};if(x){let a=new Map(b.messages.flatMap(a=>a.toolCalls??[]).map(a=>[q([a.name,a.arguments]),a]));for(let[c,d]of Object.entries(b.executed)){let b=a.get(d.inputHash);b&&!y.observations.some(a=>a.operationId===c)&&$(b,c,d.result,!1)}}let _=a.progressSnapshot?.(),aa=(c,d=[],e=!1,f=!0)=>{let g=d.filter(a=>!v.has(a));for(let a of d)v.add(a);let h=a.progressSnapshot?.(),i=void 0!==h&&h!==_;if(void 0!==h&&(_=h),g.length||i)w.clear(),b.noProgressRounds=0,b.housekeepingSinceProgress=[],b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,delete b.blockedReason;else if(e)b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,b.messages.push({role:"user",content:`【运行反馈】${c}。本轮实际工具回执已保留,新证据已记入证据账(不算业务进展)。已有证据足够时形成或修订成果;仍需查证时明确不同的待查问题、范围或条件。`});else if(f){let d=a.stagnationGuidance?.();if(b.messages.push({role:"user",content:`【运行反馈\xb7状态未变化】${c}。本轮实际工具回执已保留;返回成功不代表出现新证据。`+(d?`下一步(按实际业务状态):${d}。`:"直接使用已读内容;若仍需查证,明确不同的待查问题、范围或条件,或根据已有证据修改并提交成果。")+"连续 3 轮状态与证据都未变化会暂停(不是失败,补充预算/处理原因后可继续)。"}),b.noProgressRounds=(b.noProgressRounds??0)+1,b.noProgressRounds>=(a.stagnationRoundLimit??3))throw new o(structuredClone(b),"stagnation",`连续 ${b.noProgressRounds} 轮业务状态与证据都未变化:${c}。`+(d?`下一步:${d}。`:"")+"检查点、原稿、已执行事务与费用账保留;处理停滞原因后可从 paused 继续。");w.add(c)}else{let a=c.slice(0,240);if(b.maintenanceErrorRounds=b.lastMaintenanceError===a?(b.maintenanceErrorRounds??0)+1:1,b.lastMaintenanceError=a,b.maintenanceErrorRounds>=5)throw new o(structuredClone(b),"stagnation",`维护/读取工具同一错误连续 ${b.maintenanceErrorRounds} 次:${c}。原回执、检查点与原稿保留;按回执里的可用字段改正,或换一个读取入口后再继续。`);b.messages.push({role:"user",content:`【运行反馈】${c}。本轮是维护/读取工具的使用错误,不计业务停滞;按回执里的可用字段改正后继续,不要原样重试。`})}b.progressKeys=[...v],b.stalledFeedback=[...w]},ab=async()=>{let i,k=!1,m=!1,p=new Set,s=async()=>{if(p.size)throw await c(),new o(structuredClone(b),"stagnation",`同一错误跨反馈累计达到 5 轮(跨进展):${[...p].map(a=>`${a}(${b.sameErrorRoundCounts[a]} 轮/${b.sameErrorCounts[a]} 次拒收)`).join(";")}。本批全部工具回执、检查点与费用账已保存;根据字段问题修正动作,不再重复支付同一失败。`)},t=[],u=[],w=[],z=!1,C=!1,D=b.messages.findLast(a=>"assistant"===a.role)?.toolCalls??[];if(b.pending.length>1&&b.pending.some(a=>Q.find(b=>b.name===a.name)?.terminal)){for(let a of b.pending)b.messages.push({role:"tool",toolCallId:a.id,content:JSON.stringify({performed:!1,error:"成果提交与其他动作须分轮;本轮工具均未执行"})});return b.pending=[],aa("成果提交与其他动作须分轮"),await c(),!1}let E=new Map;{let i=[];for(let a of b.pending){let c=Q.find(b=>b.name===a.name),d=a.operationId??q([b.identity,b.rounds,a.id]);if(!c?.parallelSafe||c.terminal||c.waitForTasks||b.executed[d])break;i.push({call:a,operationId:d})}if(i.length>1){j();let k=Math.max(1,Math.floor(Number(f.N6?.agentToolCalls??4))),l=0,m=async(f,i)=>{try{let h=Q.find(a=>a.name===f.name),k=(0,e.parseJsonWithoutDuplicateKeys)(f.arguments);if(!k||"object"!=typeof k||Array.isArray(k))throw Error("工具参数必须为对象");if(h.normalizeArgs){let b=h.normalizeArgs(k);k=b.args,b.paths.length&&a.onReceipt?.("lossless-normalization",{operationId:i,providerToolCallId:f.id,tool:f.name,paths:b.paths,originalArguments:f.arguments,normalizedArguments:k})}let l=(0,g.validateJsonAgainstSchema)(k,h.parameters);if(l.length)throw Error(l.join(";"));let m=d?await (0,g.awaitDocumentLlmOperation)(()=>Promise.resolve(h.invoke(k,i)),d):await h.invoke(k,i);if(j(),m?.finished&&m.suspended)throw Error("任务完成与依赖等待不能同时声明");if(m?.pause)throw await c(),new o(structuredClone(b),"stagnation",m.pause.reason);return{result:m,args:k}}catch(a){if(d?.aborted||(0,h.UM)(a)||a instanceof o)throw a;return{error:a instanceof Error?a.message:String(a)}}};await Promise.all(Array.from({length:Math.min(k,i.length)},async()=>{for(;;){let a=l;if(l+=1,a>=i.length)return;let{call:b,operationId:c}=i[a];E.set(c,m(b,c)),await E.get(c)}}))}}for(let f of[...b.pending]){let F;j();let G=q([f.name,f.arguments]),H=f.operationId??q([b.identity,b.rounds,f.id]),I=b.executed[H];if(I&&I.inputHash!==G)throw Error("同一工具调用身份绑定不同参数,不能重放");if(I){let a=JSON.parse(F=I.result);a.performed&&(a.finished||a.suspended)&&(b.result=a.data,k=!0,m=!!a.suspended)}else{let i,s,A,I,L=[];if(E.has(H)){let a=await E.get(H);i=a.result,(s=a.error)&&(C=!0);let b=Q.find(a=>a.name===f.name);b?.housekeeping&&(I=b.name+":"+q([f.arguments])),b?.housekeeping&&b.housekeepingIdentity&&i&&(I=b.name+":"+b.housekeepingIdentity(a.args??{},i))}else try{let h=Q.find(a=>a.name===f.name);if(!h)throw Error(`当前职责没有工具${f.name}`);if(h.waitForTasks){let a=D.slice(0,D.findIndex(a=>a.id===f.id)).find(a=>{let c=b.executed[q([b.identity,b.rounds,a.id])];if(!c)return!1;let d=JSON.parse(c.result);return!1===d.performed||!0===d.feedbackRequired});if(a)throw Error(`本批前序工具${a.name}未完成或需要处理反馈,本次未进入等待;先依据实际回执修正动作。其他已派发任务保持运行。`)}let k=(0,e.parseJsonWithoutDuplicateKeys)(f.arguments);if(!k||"object"!=typeof k||Array.isArray(k))throw Error("工具参数必须为对象");if(h.normalizeArgs){let b=h.normalizeArgs(k);k=b.args,b.paths.length&&a.onReceipt?.("lossless-normalization",{operationId:H,providerToolCallId:f.id,tool:f.name,paths:b.paths,originalArguments:f.arguments,normalizedArguments:k})}let m=(0,g.validateJsonAgainstSchema)(k,h.parameters);if(m.length)throw Error(m.join(";"));if("read_receipt"===h.name&&B(k),h.housekeeping&&(I="read_receipt"===h.name&&void 0!==k.receiptId?(()=>{let a=String(k.path??""),b="arguments"===k.part?"arguments":"result",{observation:c,value:d}=J(Number(k.receiptId),a,b),e=Q.find(a=>a.name===c.name)?.observationKind==="workspace-view";return K(c.name,e?l(d,a,k.offset,k.limit):d,a,b)})():h.name+":"+q([f.arguments])),i=d?await (0,g.awaitDocumentLlmOperation)(()=>Promise.resolve(h.invoke(k,H)),d):await h.invoke(k,H),j(),i?.finished&&i.suspended)throw Error("任务完成与依赖等待不能同时声明");if(i?.pause)throw await c(),new o(structuredClone(b),"stagnation",i.pause.reason);h.housekeeping&&h.housekeepingIdentity&&i&&(I=h.name+":"+h.housekeepingIdentity(k,i))}catch(a){if(d?.aborted||(0,h.UM)(a)||a instanceof o)throw a;s=a instanceof Error?a.message:String(a),a instanceof Error&&a.stack&&console.error(`[gen] tool ${f.name} crashed: ${a.stack.split("\n").slice(0,8).map(a=>a.trim()).join(" | ")}`),["read_receipt","think"].includes(f.name)||(C=!0)}let M=function(a,b,c){let d=c?.data&&"object"==typeof c.data?c.data:void 0,e=d&&["submitted","previewed","ok","performed"].some(a=>!1===d[a]);if(!b&&!e||!b&&(d?.effective===!0||Array.isArray(d?.acceptedUnitIds)&&d.acceptedUnitIds.length))return;let f=b??JSON.stringify({error:d?.error,stage:d?.stage,issues:d?.issues}),g=[...new Set(f.match(/\b[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+\b/gu)??[])].sort(),h=g.length?g.join("|"):f.replace(/「[^」]*」/gu,"「…」").replace(/[0-9a-f]{40,}/gu,"…").replace(/\b(?:receipt|unit|section|source|actor)[-:][\w:.-]+/gu,"id").replace(/\d+/gu,"#").slice(0,240);return`${a}:${h}`}(f.name,s,i);if(M){let a=b.sameErrorCounts??={},c=M in a||Object.keys(a).length<256?M:"overflow";a[c]=(a[c]??0)+1;let d=b.sameErrorRoundCounts??={},e=b.sameErrorLastRound??={};e[c]!==b.rounds&&(d[c]=(d[c]??0)+1,e[c]=b.rounds),d[c]>=5&&p.add(c)}F=JSON.stringify(s?{performed:!1,error:s}:{performed:!0,...i});let N=Q.find(a=>a.name===f.name);if(!s&&!i?.feedbackRequired&&N?.housekeeping&&x){let a=r(f.arguments),b=y.observations.find(b=>b.name===f.name&&r(b.arguments)===a);b&&!V(b)&&(A=[K(f.name,JSON.parse(n(F)))])}if("separate-ledgers"===a.progressAccounting&&i&&!s){let a=b.progressLedger??={evidence:[],decisions:[],effective:[],delivery:[]},c=i.progressLedger??{evidence:i.progressKeys??[]};for(let b of["evidence","decisions","effective","delivery"]){let d=new Set(a[b]),e=(c[b]??[]).filter(a=>!d.has(a));if((c[b]??[]).some(a=>"string"!=typeof a||!a.trim()))throw Error("DOMAIN_PROGRESS_LEDGER_INVALID");a[b]=[...new Set([...d,...c[b]??[]])],"evidence"===b?w.push(...e):u.push(...e.map(a=>b+":"+a))}}if(z||=!!(s||i?.feedbackRequired),!s&&i&&!i.finished&&!i.feedbackRequired&&x&&(i.progressKeys??[]).every(a=>v.has(a))&&!Q.find(a=>a.name===f.name)?.housekeeping){let a=JSON.parse(n(F)),b=K(f.name,a),c=Q.find(a=>a.name===f.name)?.observationUnits,d=c?.(i.data).map(a=>"context-unit:"+q([f.name,a]))??[];if(d.length){let a=new Set,b=new Set;for(let d of y.observations.filter(a=>a.name===f.name)){let e=J(d.index,"").value;if(e.performed)for(let g of c(e.data)){let c="context-unit:"+q([f.name,g]);a.add(c),V(d)&&b.add(c)}}(L=d.filter(b=>!a.has(b))).length||(A=[...new Set(d.filter(a=>!b.has(a)))])}else{let a=y.observations.filter(a=>a.name===f.name&&K(a.name,J(a.index,"").value)===b);a.length&&!a.some(V)&&(A=[b])}}if(a.onReceipt?.("tool",{operationId:H,providerToolCallId:f.id,tool:f.name,arguments:f.arguments,inputHash:G,result:JSON.parse(F)}),b.executed[H]={inputHash:G,result:F},!s&&(i?.finished||i?.suspended))b.result=i.data,k=!0,m=!!i.suspended;else{let c=A?.length?A:void 0,d=s?[]:[...c??(I?[I]:[]),...Q.find(a=>a.name===f.name)?.waitForTasks?i?.notificationKeys??[]:[]];if(d.some(a=>!b.housekeepingSinceProgress?.includes(a))){for(let a of[...i?.progressKeys??[],...L])v.has(a)||v.add(a);b.progressKeys=[...v],b.housekeepingSinceProgress=[...new Set([...b.housekeepingSinceProgress??[],...d])],c&&a.onReceipt?.("observation-context-restored",{operationId:H,tool:f.name,businessProgress:!1,noProgressRounds:b.noProgressRounds??0})}else{let a=!!(i&&"object"==typeof i.data&&null!==i.data&&!0===i.data.unchanged);s||a||(C=!0),t.push(s??(a?`工具${f.name}的提交与当前版本一致(unchanged),没有产生新版本;不要原样重提,继续下一段/下一单元或声明完成`:`工具${f.name}没有新增证据或有效状态变化`))}"separate-ledgers"!==a.progressAccounting&&u.push(...i?.progressKeys??[],...L)}}let L=$(f,H,F),M=JSON.parse(F),N=M.performed&&M.data&&"object"==typeof M.data?M.data.invocationBoundary:void 0;if(N){if(!N.sectionId?.trim()||!N.state?.trim()||!N.reason?.trim())throw Error("DOMAIN_INVOCATION_BOUNDARY_INVALID");i={sectionId:N.sectionId,state:N.state,reason:N.reason,...N.key?{key:N.key}:{},...!0===N.deferUntilClosure?{deferUntilClosure:!0}:{}}}let O=L?.index,P=Q.find(a=>a.name===f.name),R=L?.wasResident===!0&&P?.readOnly===!0,S=R?JSON.stringify({performed:!0,data:{unchanged:!0,priorObservationIndex:O,originalTool:f.name,reading:`同参数、同结果已由回执 #${O} 返回;这是重复读取,不产生新证据。不要原样重试;按已有内容推进,需要原字用 read_receipt {receiptNamespace:"${A}",receiptId:${O}}。`}}):U(f.name,f.arguments,F);if(b.messages.push({role:"tool",toolCallId:f.id,content:a.formatToolMessage?.(f,S)??S}),R){let d=q([f.name,f.arguments,F]),e=(b.duplicateReadCounts?.[d]??0)+1;if(b.duplicateReadCounts={...b.duplicateReadCounts??{},[d]:e},e>=(a.stagnationRoundLimit??3))throw await c(),new o(structuredClone(b),"stagnation",`同一只读调用与结果已重复 ${e} 次(${f.name}):回执已给出 unchanged,不产生新证据。检查点、原稿与已执行事务保留;按已有内容推进,或换一个真实不同的待查问题/范围。`)}if(b.pending=b.pending.filter(a=>a.id!==f.id),k){if(b.pending.length)throw Error("提交完成与其他动作必须分轮,不能丢弃未执行工具");return await s(),b.status=m?"waiting":"completed",await c(),!0}await c()}return(await s(),i)?((u.some(a=>!v.has(a))||a.progressSnapshot&&a.progressSnapshot()!==_)&&aa("已在实际节状态转换处交还运行循环",u),b.invocationBoundary=i,b.result={invocationBoundary:i},b.status="yielded",a.onReceipt?.("invocation-boundary",i),await c(),!0):(b.selectionNotice&&(b.messages.push({role:"user",content:b.selectionNotice}),delete b.selectionNotice),t.length&&("separate-ledgers"!==a.progressAccounting||!w.length||z||u.length?aa([...new Set(t)].sort().join(";"),u,w.length>0,C):a.onReceipt?.("evidence-progress-only",{businessStagnationPreserved:!0,noProgressRounds:b.noProgressRounds??0})),await c(),!1)};try{if(await ab())return{result:b.result,checkpoint:b};for(;;){let f,i;if(j(),void 0!==a.maxRounds&&b.rounds>=a.maxRounds)throw new o(structuredClone(b),"budget",`调用数预算已用尽(${b.rounds}/${a.maxRounds}):检查点、原稿、已执行事务与费用账保留;补充预算后可从 paused 继续。`);let k=await a.directiveForTurn?.(),m=k&&b.observedExecutionContexts?.some(a=>a.id===k.id)?void 0:k;if(m&&(m.id!==b.directive?.id||m.reason!==b.directive?.reason)){if(!m.reason.trim()||m.id===b.directive?.id)throw Error("实时修订指令须有新的实际身份和具体原因");a.onReceipt?.("directive-update",{previous:b.directive,current:m,rounds:b.rounds}),b.directive=structuredClone(m),await c()}a.beforeRound?.(structuredClone(b));let p=await a.contextForTurn?.(),r="object"==typeof p?p.content:p,v="object"==typeof p?p.contentLive:void 0,w="object"==typeof p&&p.lifecycle.focusId!==b.contextLifecycle?.focusId;if("object"==typeof p){if(!p.lifecycle.focusId.trim())throw Error("DOMAIN_CONTEXT_FOCUS_REQUIRED");b.contextLifecycle=structuredClone(p.lifecycle)}let B=b.messages.findLast(a=>"assistant"===a.role);z=new Set((B?.toolCalls??[]).flatMap(a=>{let c=q([b.identity,b.rounds,a.id]),d=b.executed[c];return d&&E(a.name,d.result)?[c]:[]}));let C=(!w||z.size>0)&&!(void 0!==r&&x&&N&&B&&void 0===B.thinkingContent),D=new Set(C?B?.toolCalls?.map(a=>q([b.identity,b.rounds,a.id]))??[]:[]),I=C?(B?.toolCalls??[]).filter(a=>"read_receipt"===a.name).flatMap(a=>{try{let c=b.executed[q([b.identity,b.rounds,a.id])],d=c&&JSON.parse(c.result);if(!d?.performed||!Object.hasOwn(d.data??{},"value")||"outline"===d.data.view)return[];let f=(0,e.parseJsonWithoutDuplicateKeys)(a.arguments),g=String(f.path??""),h="arguments"===f.part?"arguments":"result";return!0===f.outline?[]:[{observationIndex:Number(f.receiptId),path:g,part:h,...void 0!==f.offset||void 0!==f.limit?{offset:Number(f.offset??0),limit:Number(f.limit??24)}:{}}]}catch{return[]}}):[],K=(a,b,c="result",d)=>I.some(e=>e.observationIndex===a&&e.part===c&&(!e.path||e.path===b||b.startsWith(e.path+"/"))&&(void 0===e.offset||e.path===b&&d?.offset===e.offset&&d?.limit===e.limit)),L=new Map,M=new Map,O=new Map,P=new Map,S=0;for(let a of y.observations.map(a=>a.index)){let c=y.observations.find(b=>b.index===a);if(!H(c))continue;let d=Q.find(a=>a.name===c.name),f=JSON.parse(b.executed[c.operationId].result),g=f.performed?d?.observationEntities?.((0,e.parseJsonWithoutDuplicateKeys)(c.arguments),f.data):void 0;if(g)for(let a of(M.set(c.index,g),g)){let b=F(c)?a:{...a,value:{...G(a.value),current:!1,historicalSnapshot:!0}},d=c.name+":"+b.key;P.set(d,S++),(O.get(d)?.observationIndex??-1)<=c.index&&O.set(d,{observationIndex:c.index,operationId:c.operationId,tool:c.name,...b})}}let V=a=>{let c=Q.find(b=>b.name===a.name)?.observationGroup;if(c&&JSON.parse(b.executed[a.operationId].result).performed)try{return a.name+":"+c((0,e.parseJsonWithoutDuplicateKeys)(a.arguments))}catch{return}};for(let a of y.observations.map(a=>a.index)){let b=y.observations.find(b=>b.index===a),c=V(b);c&&L.set(c,b.index)}let X=a=>{let b=V(a);return!b||(y.lastRead?.[b]??L.get(b))===a.index},Y=y.observations.filter(a=>y.retained.includes(a.index)&&H(a)&&!M.has(a.index)&&X(a)&&!D.has(a.operationId)&&!K(a.index,"")),Z=a=>{let b=Q.find(b=>b.name===a.name);return b?.observationKind==="workspace-view"},$=[...Y.filter(a=>!Z(a)),...Y.filter(Z)],_=a=>q([a.name,b.executed[a.operationId]?.result??""]),ac=new Map;for(let a of $)ac.set(_(a),a.index);let ad=new Set(ac.values()),ae=$.filter(a=>ad.has(a.index)),af=$.length-ae.length,ag=new Set(ae.filter(a=>U(a.name,a.arguments,b.executed[a.operationId].result,!0)===n(b.executed[a.operationId].result)).map(a=>a.index));y.projections=T(y.projections??[]);let ah=(y.projections??[]).filter(a=>{let c=y.observations.find(b=>b.index===a.observationIndex);return c&&(a.pin||(y.pinned??[]).includes(c.index)||F(c)&&(a.focusId===b.contextLifecycle?.focusId||H(c)))}).filter(a=>!K(a.observationIndex,a.path,a.part,a)&&("arguments"===a.part||!ag.has(a.observationIndex))).map(a=>{let b=J(a.observationIndex,a.path,a.part),c=(!a.path||"/data"===a.path)&&!a.part&&!a.pin&&Q.find(a=>a.name===b.observation.name)?.observationKind==="workspace-view",d=Q.find(a=>a.name===b.observation.name)?.observationKind==="workspace-view",e=F(b.observation),f=c?t(b.value):d?l(b.value,a.path,a.offset,a.limit):Array.isArray(b.value)&&(void 0!==a.offset||void 0!==a.limit)?{arrayPage:!0,path:a.path,total:b.value.length,offset:a.offset??0,records:b.value.slice(a.offset??0,(a.offset??0)+(a.limit??24)),nextOffset:(a.offset??0)+(a.limit??24)<b.value.length?(a.offset??0)+(a.limit??24):null,originalAvailable:!0}:b.value;return{...a,originalTool:b.observation.name,...c?{historicalViewIndexed:!0,originalAvailable:!0}:{},...!e?{current:!1,historicalSnapshot:!0}:{},value:e?f:G(f)}}),ai=void 0===r?b.messages:[{role:"user",content:a.goal},...a.stableContext?[{role:"user",content:a.stableContext}]:[],{role:"user",content:"【当前实际状态】以下是本轮最新工作台与任务状态,是当前唯一权威状态:其后出现的任何历史回执仅证明当时观察,当前是否在途、取消、完成或失效以此处实际状态为准,不得用历史回执覆盖。"},{role:"user",content:r},...v?[{role:"user",content:v}]:[],...x?[{role:"user",content:JSON.stringify({retainedActualObservations:ae.map(a=>{let c=Q.find(b=>b.name===a.name),d=JSON.parse(U(a.name,a.arguments,b.executed[a.operationId].result,!0)),e=JSON.stringify(d).length,f=e>Math.max(16e3,2*W),g=a.arguments.length>4e3;return{observationIndex:a.index,tool:a.name,...c?.historyArguments==="summary"||g?{argumentSummary:s(a.arguments),originalArgumentsAvailable:!0}:{arguments:a.arguments},...!F(a)?{current:!1,historicalSnapshot:!0}:{},result:f?{oversizedReceipt:!0,originalChars:e,originalAvailable:!0,outline:t(d.data,"/data"),reading:"本条回执超过本轮记忆预算,只给字段大纲;用 read_receipt { receiptNamespace, receiptId, path } 读取所需原字段,不要重跑原工具。"}:F(a)?d:G(d)}}),receiptNamespace:A,...af?{deduplicatedObservations:{count:af,reading:"内容完全相同的回执已合并,只保留最新一条;旧页原文仍可用 read_receipt 按 observationIndex 恢复。"}}:{},restoredActualObservationPaths:ah.length?ah:void 0,retainedEntityObservations:(()=>{let a=[...O.entries()].sort(([a],[b])=>(P.get(a)??0)-(P.get(b)??0)).map(([,a])=>a).filter(a=>!D.has(a.operationId)).map(({operationId:a,...b})=>b);return a.length>48?{entityWorkingSetIndexed:!0,total:a.length,recent:a.slice(-48),reading:"recent保留最近实际读过的48个对象原字段与版本,当前值资格看current;更早对象与完整原字仍在原回执,可按ID或observationIndex恢复。超过48不清空当前工作集,阅读次序不授予业务进展。"}:a})(),observationDirectory:[...new Set(y.observations.map(a=>a.name))].map(a=>{let b=y.observations.filter(b=>b.name===a);return{tool:a,count:b.length,firstObservationIndex:b[0].index,lastObservationIndex:b.at(-1).index,supersededViewCount:b.filter(a=>!X(a)).length}}),omittedObservations:(()=>{let a=y.observations.filter(a=>!y.retained.includes(a.index)||!H(a));return a.length?{count:a.length,records:a.slice(-24).map(a=>({observationIndex:a.index,tool:a.name,query:s(a.arguments)}))}:void 0})(),instruction:'以上是实际业务回执(默认只常驻**最近一条业务回执**与显式 retain 的页;更早的原字与全文永久留在后端,用 `read_receipt` 按 receiptId 与 JSON Pointer 恢复,同一条查询重查不算工程进展)。`omittedObservations` 是已经移出上下文的回执索引:需要旧页时用 `read_receipt { receiptId: observationIndex, view:"original" }` 恢复,不要用原工具重跑同一页;恢复不是工程进展。读取receiptId必须同时复制本上下文的receiptNamespace;别的actor的同号回执不能互换。retainedEntityObservations 是已读对象工作集:current=true 的原字段与版本仍可用,current=false 须按 ID 查当前值。`read_receipt { view:"catalog" }` 查看完整目录。不得把摘要当作重新读过或专业通过。'})}]:[],...(()=>{if(w&&!C)return[];let a=b.messages.length-1;for(;a>0&&"assistant"!==b.messages[a].role;)a--;return b.messages[a]?.role==="assistant"?C?b.messages.slice(a):b.messages.slice(a+1).filter(a=>"user"===a.role):[]})()];b.directive&&ai.push({role:"user",content:"execution-context"===b.directive.kind?`【已在恢复入口应用的一次性执行说明】${b.directive.reason}。迁移只在入口应用一次;后续计算、审查及已完成正文是否有效,以当前真实输入和回执为准,不能每轮再次作废或重算已核结果。本说明不替代当前专业目标或授予专业通过。`:`【主控对本任务的具体指令】${b.directive.reason}。原任务身份、来源、已执行账和无进展记录保留;指令本身不证明问题已解决,须实际行动与核验。`}),a.peerFeedback&&ai.push({role:"user",content:`【实际独立任务事件】${a.peerFeedback}`}),b.interruption&&ai.push({role:"user",content:`【上次响应中断】${b.interruption.reason}。中断响应中的工具没有执行,不能把其中的部分动作当作完成。旧原字、已执行回执和用量保留。依据当前工具选择更短的实际范围标识或分轮提交独立事务;复杂问题可请求一次深入推演,不重抄已有的大段静态成员目录。`}),b.deliberation&&ai.push({role:"user",content:`本轮针对以下实际问题深入推演并选择实际工具行动:${b.deliberation.question}`});let aj=a.memoryTrimLimit??a.requestBudget?.memory,ak=ai.find(a=>"user"===a.role&&"string"==typeof a.content&&a.content.startsWith('{"retainedActualObservations"'));if(aj&&ak&&ak.content.length>aj){let b=ak.content.length,c=JSON.parse(ak.content),d=[],e=a=>{y.retained=y.retained.filter(b=>b!==a),y.pinned=(y.pinned??[]).filter(b=>b!==a),y.projections=(y.projections??[]).filter(b=>b.observationIndex!==a)},f=()=>{let a=c.restoredActualObservationPaths;if(Array.isArray(a)&&a.length){let b=a.shift();return y.projections=y.projections?.filter(a=>a.observationIndex!==b.observationIndex||a.path!==b.path||a.part!==b.part||a.offset!==b.offset||a.limit!==b.limit),!0}let b=c.retainedEntityObservations;if(Array.isArray(b)&&b.length)return b.shift(),!0;if(b&&"object"==typeof b){let a=b.recent;if(Array.isArray(a)&&a.length)return a.shift(),!0}let f=c.retainedActualObservations;if(Array.isArray(f)&&f.length>1){let[a]=f.splice(0,1),b=Number(a.observationIndex??-1);return d.push({observationIndex:b,tool:String(a.tool??"")}),e(b),!0}if(Array.isArray(f)&&1===f.length){let a=f[0],b=a?.result;if(b&&!0!==b.oversizedReceipt)return a.result={oversizedReceipt:!0,originalChars:JSON.stringify(b).length,originalAvailable:!0,outline:t(b.data,"/data"),reading:"本轮输入分区超限:这条回执只给字段大纲;用 read_receipt 按 observationIndex 读取所需原字段,不要重跑原工具。"},!0}return!1};for(;ak.content.length>aj&&f();)c.omittedObservationCount=d.length,c.omittedActualObservations=d.slice(0,40),c.reading="本轮输入分区超限:最旧的已恢复路径/对象工作集/回执已从上下文移出。原回执永久保留,用 read_receipt 按 observationIndex 恢复;移出不是重新读取,也不授予业务进展。",ak.content=JSON.stringify(c);a.onReceipt?.("input-budget-trimmed",{section:"memory",limit:aj,before:b,after:ak.content.length,omitted:d.length})}let al=ai.find(a=>"user"===a.role&&"string"==typeof a.content&&a.content.startsWith('{"retainedActualObservations"'))?.content.length??0,am={system:a.system.length,goal:a.goal.length,stableContext:a.stableContext?.length??0,stablePrefix:a.system.length+a.goal.length+(a.stableContext?.length??0),tools:R,memory:al,messageCount:ai.length,context:"string"==typeof r?r.length:0,contextLive:v?.length??0,messages:ai.reduce((a,b)=>a+b.content.length,0)},an=a.options?.actorId==="chief"?24e3:18e3,ao=0,ap={...a.options,system:a.system,messages:structuredClone(ai.map(c=>{if("tool"!==c.role)return c;let d=void 0!==r?B?.toolCalls?.find(a=>a.id===c.toolCallId):void 0;if(!d)return{...c,content:n(c.content)};let e=b.executed[q([b.identity,b.rounds,d.id])]?.result;if(!e)try{JSON.parse(c.content),e=c.content}catch{return c}let f=U(d.name,d.arguments,e),g=y.observations.find(a=>a.operationId===q([b.identity,b.rounds,d.id])),h=Q.find(a=>a.name===d.name);if("read_receipt"!==d.name&&(g&&!F(g)||w&&(h?.readOnly||h?.observationKind==="workspace-view"))){let a=JSON.parse(e);if(a.performed)return{...c,content:JSON.stringify({performed:!0,data:{historicalSnapshot:!0,current:!1,originalAvailable:x,...x&&g?{receiptId:g.index,receiptNamespace:A}:{},outline:t(a.data,"/data"),reading:x?"本页是旧焦点或旧版本观察;原字仍可按回执恢复,当前值以本轮工作台为准。":"本页是旧焦点或旧版本观察;本角色未保留回执恢复通道,需要原字时用产生该回执的原工具按原参数重查。"}})}}let i=a.formatToolMessage?.(d,f)??f;if((ao+=i.length)>an&&i.length>3e3){let a=q([b.identity,b.rounds,d.id]),e=y.observations.find(b=>b.operationId===a)?.index,g=null;try{let a=JSON.parse(f);g=t(a.data,"/data")}catch{}return{...c,content:JSON.stringify({performed:!0,data:{batchToolReceiptOutlined:!0,tool:d.name,originalChars:i.length,...x&&void 0!==e?{receiptId:e,receiptNamespace:A}:{},outline:g,originalAvailable:x,reading:x?"同批工具回执超出本轮输入预算,本条只给字段大纲;需要原字段时用 read_receipt { receiptNamespace, receiptId, path } 读取,或缩小查询后重试,不要重跑同一条查询。":"同批工具回执超出本轮输入预算,本条只给字段大纲;本角色未保留回执恢复通道,需要原字段时缩小查询后重试,不要重跑同一条查询。"}})}}return{...c,content:i}})),...N?{taskKind:b.deliberation?"reasoning":"agent-action",maxTokens:void 0}:{},tools:Q.map(({name:a,description:b,parameters:c})=>({name:a,description:b,parameters:u(c)})),stablePrefixChars:a.system.length+a.goal.length+(a.stableContext?.length??0),requestSections:am,requireToolCall:!1,temperature:0,onRawResponse:c=>{f=c,a.onReceipt?.("raw-response",{round:b.rounds+1,response:c})}};if(Object.assign(am,(0,g.documentToolInputSections)(ap)),a.requestBudget){for(let[c,d]of Object.entries(a.requestBudget))if((am[c]??0)>d)throw new o(structuredClone(b),"budget",`CONSTRUCTION_INPUT_BUDGET_EXCEEDED:${c}:${am[c]} > ${d};本轮输入分区超限,拒绝构造(不静默截断)。`)}let{diagnostics:aq,signal:ar,onRawResponse:as,...at}=ap;a.onReceipt?.("request",{round:b.rounds+1,input:at,status:"prepared-provider-dispatch-recorded-separately"});try{i=d?await (0,g.awaitDocumentLlmOperation)(()=>(a.caller??g.callDocumentLlmWithTools)(ap),d):await (a.caller??g.callDocumentLlmWithTools)(ap)}catch(c){if(c instanceof g.DocumentLlmBudgetRefusedError)throw new o(structuredClone(b),"budget",`${c.message}。检查点、原稿、已执行事务与费用账保留;补充预算后可从 paused 继续。`);if(d?.aborted||(0,h.UM)(c)||a.caller&&!a.callerErrorsAreProviderFailures)throw c;throw new h.uv({agentIdentity:a.identity,round:b.rounds+1,kind:"provider-error",reason:`智能体模型调用失败:${c instanceof Error?c.message:String(c)}`,responseArchived:!!(f&&a.onReceipt)},{cause:c})}j(),b.rounds++,delete b.deliberation,a.onReceipt?.("response",{round:b.rounds,response:i});{let c=a.options?.actorId,d=c?[...a.options?.diagnostics?.llm.callLog??[]].reverse().find(a=>a.actorId===c&&Number.isSafeInteger(a.inputTokens)):void 0,e=i?.responseMetadata?.usage?.promptTokens,f=Number.isSafeInteger(e)?e:Number.isSafeInteger(d?.inputTokens)?d.inputTokens:void 0;a.onReceipt?.("input-token-observed",{round:b.rounds,promptTokens:f??null,source:Number.isSafeInteger(e)?"response-metadata":d?"call-ledger":"unreported"})}if(!i)throw new h.uv({agentIdentity:a.identity,round:b.rounds,kind:"missing-response",reason:f?.responseMetadata?.completed===!1?"智能体响应未完整结束;工具未执行,原始回执与实际用量已保留":"智能体模型未返回响应",responseArchived:!!(f&&a.onReceipt)});if(i.responseMetadata?.completed===!1){let d=Array.isArray(i.droppedToolCalls)?i.droppedToolCalls:[];if("invalid-tool-arguments"===i.responseMetadata.protocolFailure&&["stop","tool_calls"].includes(i.responseMetadata.finishReason??"")&&(i.toolCalls.length||d.length)){for(let c of((i.content||i.toolCalls.length)&&b.messages.push({role:"assistant",content:i.content,...i.toolCalls.length?{toolCalls:i.toolCalls}:{},...void 0===i.thinkingContent?{}:{thinkingContent:i.thinkingContent}}),i.toolCalls)){let e=JSON.stringify({performed:!1,error:`完整运输响应的参数未通过解析,本轮均未执行:${JSON.stringify(d)};保留原字正文,只纠正语法与标注,不重写内容`});b.messages.push({role:"tool",toolCallId:c.id,content:a.formatToolMessage?.(c,e)??e})}if(!i.toolCalls.length){let a=d.map(a=>`${a.name??"未命名工具"}:${a.reason??a.code??"参数解析失败"}(参数 ${a.argumentsChars??"未知"} 字符)`).join(";");b.messages.push({role:"user",content:`上一轮工具调用参数未通过 JSON 解析,本轮未执行任何工具。${a?`原因:${a}。`:""}请重新输出**一个**工具调用;参数必须是合法 JSON,字符串内的换行与双引号必须转义,不要重复上一次的无效参数。`})}a.onReceipt?.("tool-protocol-invalid",{round:b.rounds,dropped:d,finishReason:i.responseMetadata.finishReason??null}),aa("工具参数 JSON 解析失败,请纠正语法后重试",["tool-protocol-syntax-feedback"]),await c();continue}let e="invalid-tool-arguments"===i.responseMetadata.protocolFailure&&(void 0===i.responseMetadata.finishReason||null===i.responseMetadata.finishReason);if(("incomplete-stream"===i.responseMetadata.protocolFailure||e)&&0===i.toolCalls.length){let e=d.map(a=>`${a.name??"未命名工具"}:${a.reason??a.code??"参数未写完"}(参数 ${a.argumentsChars??"未知"} 字符)`).join(";");i.content&&b.messages.push({role:"assistant",content:i.content}),b.messages.push({role:"user",content:`上一轮供应商流在工具参数写完前结束(finish_reason=${i.responseMetadata.finishReason??"未报告"}),本轮没有可执行工具调用。`+(e?`已丢弃的调用:${e}。`:"")+"请重新输出**一个**完整工具调用;参数必须是合法 JSON,字符串内的换行与双引号必须转义。"}),a.onReceipt?.("tool-protocol-incomplete-stream",{round:b.rounds,finishReason:i.responseMetadata.finishReason??null,protocolFailure:i.responseMetadata.protocolFailure??null,dropped:d}),aa("供应商流在工具参数写完前结束,请重新输出完整调用",["tool-protocol-incomplete-stream"]),await c();continue}throw new h.uv({agentIdentity:a.identity,round:b.rounds,kind:"incomplete-response",reason:"智能体响应未完整结束;工具未执行,保留真实响应与用量",responseArchived:!!a.onReceipt})}if(b.directive?.kind==="execution-context"){let d=structuredClone(b.directive);b.observedExecutionContexts?.some(a=>a.id===d.id)||(b.observedExecutionContexts??=[]).push(d),delete b.directive,a.onReceipt?.("execution-context-observed",{id:d.id,businessProgress:!1,originalDirectivePreserved:!0}),await c()}if(new Set(i.toolCalls.map(a=>a.id)).size!==i.toolCalls.length)throw Error("同轮供应商工具身份重复,未执行候选工具");delete b.interruption;let au=a.selectCalls?.(i.toolCalls)??{calls:i.toolCalls};if(au.calls.some(a=>!i.toolCalls.includes(a)))throw Error("传输选择器不能制造模型未请求的工具");if(!au.calls.length&&i.toolCalls.length){b.messages.push({role:"user",content:au.notice??"本轮工具请求未执行"}),aa("显式工具额度仅保留成果提交,读取请求未执行"),await c();continue}if(b.selectionNotice=au.notice,b.messages.push({role:"assistant",content:i.content,toolCalls:au.calls,...void 0===i.thinkingContent?{}:{thinkingContent:i.thinkingContent}}),b.pending=au.calls.map(a=>({...a,operationId:q([b.identity,b.rounds,a.id])})),await c(),!i.toolCalls.length){aa("普通文本未执行工具或提交成果"),b.messages.push({role:"user",content:"当前文字尚未完成任务。请按实际证据选择工具继续,或通过成果提交工具提交可核验结果。"}),await c();continue}if(await ab())return{result:b.result,checkpoint:b}}}catch(e){let a=!d?.aborted&&e instanceof o;throw b.status=a?"paused":"interrupted",a&&(b.blockedReason=e.reason,b.blockedMessage=e instanceof Error?e.message:String(e)),(0,h.UM)(e)&&e.receipt.agentIdentity===b.identity&&(b.interruption=structuredClone(e.receipt)),await c(),(0,h.UM)(e)&&(0,i.Er)(e),e}}}};
|
|
1
|
+
"use strict";exports.id=8176,exports.ids=[8176],exports.modules={2313:(a,b,c)=>{c.d(b,{UM:()=>e,uv:()=>d,zc:()=>f});class d extends Error{constructor(a,b){super(a.reason,b),this.receipt=a,this.name="DocumentTransportAnomaly"}}let e=a=>a instanceof d;function f(a){return/(?:status|code|http|error|错误|状态)[^\d]{0,8}(?:401|402|403)(?!\d)|insufficient[_\s-]?quota|insufficient\s+balance|exceeded\s+your\s+current\s+quota|quota\s+(?:exceeded|exhausted)|billing|invalid[_\s-]?api[_\s-]?key|authentication\s+failed|余额不足|欠费|配额不足|额度不足|额度已用/iu.test(a)}},8176:(a,b,c)=>{c.d(b,{a:()=>o,x:()=>v});var d=c(77598),e=c(95393),f=c(68515),g=c(98943),h=c(2313),i=c(24245);let j=(a,b)=>a+"/"+b.replace(/~/gu,"~0").replace(/\//gu,"~1");function k(a,b=""){return Array.isArray(a)?a.length>48?{workspaceArrayIndexed:!0,path:b,total:a.length,reading:"完整数组保留在原回执;用read_receipt按此path和offset/limit逐页读取,或原工作台工具查当前值。"}:a.map((a,c)=>k(a,j(b,String(c)))):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,c])=>[a,k(c,j(b,a))])):a}function l(a,b,c,d){if(!Array.isArray(a)){if(void 0!==c||void 0!==d)throw Error("offset/limit须选择实际数组path");return k(a,b)}let e=function(a=0,b=24){if(!Number.isSafeInteger(a)||a<0||!Number.isSafeInteger(b)||b<1||b>48)throw Error("工作台分页须使用非负整数offset及1–48的limit");return{offset:a,limit:b}}(c,d),f=a.slice(e.offset,e.offset+e.limit);return{workspaceArrayPage:!0,path:b,total:a.length,offset:e.offset,records:f.map((a,c)=>k(a,j(b,String(e.offset+c)))),nextOffset:e.offset+f.length<a.length?e.offset+f.length:null,originalAvailable:!0}}let m=new Map;function n(a){try{let b=JSON.parse(a);if(b&&"object"==typeof b&&!Array.isArray(b)&&"boolean"==typeof b.performed&&(Array.isArray(b.progressKeys)||Array.isArray(b.notificationKeys)||b.progressLedger)){let{progressKeys:a,notificationKeys:c,progressLedger:d,...e}=b;return JSON.stringify(e)}}catch{}return a}class o extends Error{constructor(a,b,c){super(c),this.checkpoint=a,this.reason=b,this.name="DomainAgentPausedError"}}let p=a=>Array.isArray(a)?a.map(p):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>[a,p(b)])):a,q=a=>(0,d.createHash)("sha256").update(JSON.stringify(p(a))).digest("hex"),r=a=>{try{return JSON.stringify(p((0,e.parseJsonWithoutDuplicateKeys)(a)))}catch{return a}},s=a=>{try{let b=(0,e.parseJsonWithoutDuplicateKeys)(a);return Object.fromEntries(Object.entries(b).map(([a,b])=>[a,"string"==typeof b&&b.length>240?{preview:b.slice(0,160),chars:b.length}:Array.isArray(b)&&JSON.stringify(b).length>240?{count:b.length,...b.length&&b.every(a=>"number"==typeof a&&Number.isFinite(a))?{min:Math.min(...b),max:Math.max(...b)}:{}}:b&&"object"==typeof b&&!Array.isArray(b)?{fields:Object.keys(b)}:b]))}catch{return{originalArgumentChars:a.length}}},t=(a,b="",c=0)=>{let d=Array.isArray(a)?"array":null===a?"null":typeof a;return Array.isArray(a)?{path:b,type:d,count:a.length,itemFields:a[0]&&"object"==typeof a[0]?Object.keys(a[0]):void 0}:a&&"object"==typeof a?{path:b,type:d,fieldCount:Object.keys(a).length,...c<2?{fields:Object.entries(a).map(([a,d])=>t(d,b+"/"+a.replace(/~/gu,"~0").replace(/\//gu,"~1"),c+1))}:{fieldNames:Object.keys(a)}}:{path:b,type:d,..."string"==typeof a?{chars:a.length}:{}}},u=a=>{if(Array.isArray(a))return a.map(u);if(!a||"object"!=typeof a)return a;let b="string"==typeof a.type,c=Object.fromEntries(Object.entries(a).filter(([a])=>!b||"nullable"!==a).map(([a,b])=>[a,u(b)]));return b&&!0===a.nullable&&(c.type=[a.type,"null"]),c};async function v(a){if(new Set(a.tools.map(a=>a.name)).size!==a.tools.length)throw Error("智能体工具身份重复");if(a.resume&&a.resume.identity!==a.identity)throw Error("智能体检查点与当前任务及来源身份不一致");let b=a.resume?structuredClone(a.resume):{identity:a.identity,messages:[{role:"user",content:a.goal},...a.stableContext?[{role:"user",content:a.stableContext}]:[]],pending:[],executed:{},progressKeys:[...a.initialProgressKeys??[]],stalledFeedback:[],rounds:0,status:"running"},c=async()=>{await a.onCheckpoint?.(structuredClone(b))},d=a.options?.signal,j=()=>d?.throwIfAborted(),p=a.directive&&b.observedExecutionContexts?.some(b=>b.id===a.directive.id)?void 0:a.directive;if("completed"===b.status){if(p&&"execution-context"!==p.kind&&p.id!==b.directive?.id){if(!p.reason.trim())throw Error("已完成角色重新工作须有实际修订原因")}else{let c=a.resumeCompleted?.();if(!c)return{result:b.result,checkpoint:b};b.messages.push({role:"user",content:c}),b.stalledFeedback=[],b.noProgressRounds=0,a.factDrivenWake&&(b.housekeepingSinceProgress=[])}b.status="running",delete b.result}if("waiting"===b.status){if(!(p&&"execution-context"!==p.kind&&p.id!==b.directive?.id)&&!a.resumeWaiting?.())return{result:b.result,checkpoint:b};delete b.result,a.factDrivenWake&&(b.housekeepingSinceProgress=[])}if(p&&(b.directive=structuredClone(p)),"blocked"===b.status||"paused"===b.status){let c="paused"===b.status,d=b.blockedReason??(b.stalledFeedback.join(";")||"原因未记录");b.messages.push({role:"user",content:c?"budget"===b.blockedReason?"【恢复反馈】上次任务因调用数预算到界暂停:检查点、原稿、已执行事务与费用账均保留。补充预算后继续;先依据已读回执推进实际成果,不要原样重复已执行动作。":`【恢复反馈】上次任务因状态停滞暂停:${d}。原目标、实际证据与已执行事务均保留。先依据已读回执改变策略:需要新证据时明确不同的待查问题;已有证据足够时形成或修订成果;不能再次原样执行已无进展的动作。`:`【恢复反馈】上次任务因重复无进展暂停:${d}。原目标、实际证据、已执行事务和无进展记录均保留,未重置。先依据已读回执改变策略:需要新证据时明确不同的待查问题;已有证据足够时形成或修订成果;不能再次原样执行已无进展的动作。`}),c&&(b.stalledFeedback=[],b.noProgressRounds=0,b.housekeepingSinceProgress=[],b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,delete b.blockedReason,delete b.blockedMessage),!c&&a.factDrivenWake&&(b.housekeepingSinceProgress=[])}"yielded"===b.status&&(delete b.invocationBoundary,delete b.result),b.status="running";let v=new Set(b.progressKeys),w=new Set(b.stalledFeedback),x=!!a.contextForTurn&&!1!==a.memoryTools,y=b.memory??={notes:"",observations:[],retained:[],pinned:[]},z=new Set,A="actor:"+q(a.identity).slice(0,20),B=c=>{if(void 0===c.receiptNamespace&&void 0!==c.namespace&&(c.receiptNamespace=c.namespace),void 0!==c.receiptNamespace&&c.receiptNamespace!==A)throw Error("RECEIPT_ACTOR_NAMESPACE_MISMATCH:只能读取当前 actor 命名空间的回执");if((b.contextLifecycle||a.options?.actorId)&&void 0!==c.receiptId&&c.receiptNamespace!==A)throw Error(`RECEIPT_ACTOR_NAMESPACE_REQUIRED:读取 receiptId 须同时传 receiptNamespace="${A}";用 catalog 查看本 actor 目录`)},C=(a,b)=>{let c=a=>{try{return(0,e.parseJsonWithoutDuplicateKeys)(a)}catch{return}};var d=[c(a),c(b)];let f=new Set,g=a=>{if(Array.isArray(a)){for(let b of a)g(b);return}if(a&&"object"==typeof a)for(let[b,c]of Object.entries(a)){if(/^(?:id|entityIds?|unitEntityIds?|writingUnitIds?|evidenceIds?|certificateIds?|decisionIds?|sourceEntityIds?|factKeys|quantityKeys)$/u.test(b))for(let a of Array.isArray(c)?c:[c])"string"==typeof a&&f.add(a);g(c)}};return g(d),[...f]},D=(a,b)=>{let c={},d=a=>{if(Array.isArray(a))return void a.forEach(d);if(!a||"object"!=typeof a)return;let b=a.entityId??a.unitEntityId??a.id,e=a.entityVersion??a.unitVersion??a.version;"string"==typeof b&&Number.isSafeInteger(e)&&Number(e)>=1&&(c[b]=Number(e)),Object.values(a).forEach(d)};for(let c of[a,b])try{d((0,e.parseJsonWithoutDuplicateKeys)(c))}catch{}return c},E=(b,c)=>{let d=a.tools.find(a=>a.name===b);if(!d||d.readOnly||d.housekeeping||"workspace-view"===d.observationKind)return!1;let e=JSON.parse(c);return!1===e.performed||!!(e.data&&["changedEntityIds","changedEntities","submitted","nextAction","invocationBoundary"].some(a=>Object.hasOwn(e.data,a)))},F=a=>{if(!a.dependencyKeys){let c=b.executed[a.operationId]?.result;a.dependencyKeys=c?C(a.arguments,c):[]}if(!a.dependencyVersions){let c=b.executed[a.operationId]?.result;a.dependencyVersions=c?D(a.arguments,c):{}}let c=b.contextLifecycle?.dependencyVersions;return!c||!(a.dependencyKeys??[]).some(b=>void 0!==c[b]&&a.dependencyVersions[b]!==c[b])},G=a=>Array.isArray(a)?a.map(G):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,b])=>[a,"current"!==a&&G(b)])):a,H=(a,c=!1)=>{let d=b.contextLifecycle;if(d&&!a.dependencyKeys){let c=b.executed[a.operationId];c&&(a.dependencyKeys=C(a.arguments,c.result))}return!!(!d||c||(y.pinned??[]).includes(a.index)||z.has(a.operationId))||!(!F(a)||a.focusId!==d.focusId&&E(a.name,b.executed[a.operationId].result))&&(a.focusId===d.focusId||a.dependencyKeys?.some(a=>d.dependencyKeys?.includes(a)))},I=(a,b)=>{let c=a,d=0;for(let a of b?b.slice(1).split("/").map(a=>a.replace(/~1/gu,"/").replace(/~0/gu,"~")):[]){if(!c||"object"!=typeof c||!Object.hasOwn(c,a))return{found:!1,value:void 0,depth:d,available:Array.isArray(c)?`(该层是数组,共 ${c.length} 项)`:c&&"object"==typeof c?Object.keys(c).slice(0,12).join("、"):"(该层不是对象)"};c=c[a],d+=1}return{found:!0,value:c,available:"",depth:d}},J=(a,c,d="result")=>{let f,g=y.observations.find(b=>b.index===a);if(!g)throw Error("当前任务没有这条实际回执");if("arguments"===d)try{f=(0,e.parseJsonWithoutDuplicateKeys)(g.arguments)}catch{f=g.arguments}else f=JSON.parse(n(b.executed[g.operationId].result));if(c&&!c.startsWith("/"))throw Error("回执路径必须是JSON Pointer");let h="",i=-1;for(let a of((a,b)=>{if(!b)return[""];let c=[b],d=a=>{a&&!c.includes(a)&&c.push(a)};if(b.startsWith("/data/value/data/")&&d("/data/"+b.slice(17)),b.startsWith("/data/value/")&&d("/data/"+b.slice(12)),("/data/value"===b||"/value"===b)&&d("/data"),"/result"===b&&d("/data"),b.startsWith("/value/")&&d("/data/"+b.slice(7)),b.startsWith("/items")&&d("/data/items"),b.startsWith("/records")&&d("/data/records"),b.startsWith("/memberSourceFiles")&&d("/data/memberSourceFiles"),b.startsWith("/data/evaluation/")&&d("/data/"+b.slice(17)),"/data/evaluation"===b&&d("/data"),"submit_for_independent_review"!==a)return c;if(b.startsWith("/data/")){let a=b.slice(6);a.startsWith("reviewSummary/")||d("/data/reviewSummary/"+a);let c=a.startsWith("value/")?a.slice(6):a;c&&!c.startsWith("reviewSummary/")&&d("/data/reviewSummary/"+c),["unreviewedUnits","actions","unitsWithFindings","criteria","openFindings","mechanical"].includes(c.split("/")[0]??"")&&d("/data/reviewSummary/revisionPlan/"+c)}return c})(g.name,c)){let b=I(f,a);if(b.found)return{observation:g,value:b.value,...a!==c?{resolvedPath:a}:{}};b.available&&b.depth>i&&(h=b.available,i=b.depth)}for(let a of((a,b)=>{if(!b.startsWith("/"))return[];let c=a=>a.replace(/~/gu,"~0").replace(/\//gu,"~1"),d=[],e=[b],f=new Set(e);for(;e.length&&d.length<4;){let b=e.shift(),g=b.slice(1).split("/").map(a=>a.replace(/~1/gu,"/").replace(/~0/gu,"~")),h=a,i=!1;for(let a=0;a<g.length;a+=1){let d=g[a];if(!(!h||"object"!=typeof h||!Object.hasOwn(h,d))){h=h[d];continue}i=!0;let j=[];if(0===a&&h&&"object"==typeof h&&Object.hasOwn(h,"data")&&j.push("/data"+b),!Array.isArray(h)&&h&&"object"==typeof h)if(/^\d+$/u.test(d)){let b=Object.keys(h).filter(a=>Array.isArray(h[a]));1===b.length&&j.push("/"+[...g.slice(0,a),b[0],...g.slice(a)].map(c).join("/"))}else if(a<g.length-1||"value"===d||"result"===d)j.push("/"+[...g.slice(0,a),...g.slice(a+1)].map(c).join("/"));else{let b=Object.keys(h).filter(a=>Array.isArray(h[a]));1===b.length&&j.push("/"+[...g.slice(0,a),b[0]].map(c).join("/"))}for(let a of j)f.has(a)||(f.add(a),e.push(a));break}i||d.push(b)}return d})(f,c)){let b=I(f,a);if(b.found)return{observation:g,value:b.value,...a!==c?{resolvedPath:a}:{}}}let j="section_workspace"===g.name?"section_workspace 回执是工作区壳:单元状态/审查档位在每轮上下文 workspaceLive,本节合同项在 sectionBrief,工作包清单在 data.value.sections。":"plan_section"===g.name?"plan_section 回执的小节明细在 data.value.subsections(数组);逐小节 contentContract/writingOutline 见 subsections/<下标>。":"/arguments"===c?'原参数不在 /arguments:读历史回执的原始参数请用 read_receipt { receiptId, part:"arguments" };读结果用默认 part:"result" 或 path:"/data"。':"delegate_construction_responsibility"===g.name?'delegate 回执的 data 含 actorId/instructionId;原参数用 part:"arguments",不要用 path:"/arguments"。':f&&"object"==typeof f&&Object.hasOwn(f,"error")&&!Object.hasOwn(f,"data")?"该回执是失败回执:只有 performed/error,没有 data 层;按 error 里的说明修正动作,不要读 /data。":"";throw Error(`回执 ${a}(${g.name} ${g.arguments.slice(0,100)})不存在路径「${c}」;在该层可用的字段:${h||"(无)"}。按字段大纲里的实际 path 读取,不要猜层级。${j}`)},K=(a,b,c="",d="result")=>"context-restored:"+q([a,d,c,b]),L=(a,b="",c=0)=>c>2||null===a||"object"!=typeof a?[]:Array.isArray(a)?[b||"/",...a.length?[`${b}/0`]:[]]:Object.keys(a).slice(0,16).flatMap(d=>{let e=`${b}/${d.replace(/~/gu,"~0").replace(/\//gu,"~1")}`;return[e,...L(a[d],e,c+1)]}).slice(0,40),M=x?[{name:"read_receipt",housekeeping:!0,description:"按回执索引读取实际原回执(分页)或查看历史回执目录;目录只读、恢复原字都不算业务进展。默认只有最近一条业务回执常驻;retain=true 把所选页固定到后续上下文。原资料回执的翻页用产生它的原工具自己的分页参数;动态工作台视图可用本工具的 offset/limit。**不确定字段路径时先用 view=catalog 看目录、或用 outline=true 取字段大纲,按大纲里的实际 path 读取,不要猜层级。**",parameters:{type:"object",additionalProperties:!1,properties:{view:{type:"string",enum:["catalog","receipt","original"],description:"catalog=历史回执目录(分页);receipt=按 receiptId 读取(工作台页默认索引);original=返回完整原页"},receiptId:{type:"integer",minimum:0},receiptNamespace:{type:"string",description:"回执所属 actor 的命名空间;从当前 memory/catalog 复制。跨 actor 的同号回执不能互换。"},namespace:{type:"string",description:"receiptNamespace 的别名,二选一即可;两者都传时以 receiptNamespace 为准"},path:{type:"string",description:"JSON Pointer;默认整条回执"},part:{type:"string",enum:["result","arguments"]},retain:{type:"boolean",description:"true=把所选页固定到后续上下文(默认不常驻)"},outline:{type:"boolean",description:"只取所选页的字段大纲,不返回整页"},release:{type:"boolean",description:"取消该回执的固定(释放上下文,原回执仍永久保留)"},offset:{type:"integer",minimum:0},limit:{type:"integer",minimum:1,maximum:48},tool:{type:"string",description:"catalog:按工具名过滤"},query:{type:"string",description:"catalog:按查询参数关键词过滤"}}},housekeepingIdentity:a=>"catalog"===a.view||void 0===a.receiptId?"receipt-catalog:"+String(a.tool??"")+":"+String(a.query??"")+":"+String(a.offset??0):K("read_receipt",[a.receiptId,a.path??"",a.part??"result",a.view??"receipt",a.offset??0,a.limit??null]),invoke:c=>{if(B(c),void 0!==a.readReceiptLimit&&void 0!==c.receiptId&&"catalog"!==c.view){let b=a.readReceiptBudgetKey??a.identity,c=m.get(b)??0;if(c>=a.readReceiptLimit)return{data:{reading:`回执读取已用完本次运行上限 ${a.readReceiptLimit} 次:按当前上下文推进,或重跑产生该回执的原工具取当前页;不要再重复读历史回执。`},feedbackRequired:!0};m.set(b,c+1),m.size>2e3&&m.clear()}if("catalog"===c.view||void 0===c.receiptId){let a=y.observations.filter(a=>(!c.tool||a.name===c.tool)&&(!c.query||a.arguments.includes(String(c.query)))),b=Number(c.offset??0),d=a.slice(b,b+Number(c.limit??24));return{data:{view:"catalog",receiptNamespace:A,total:a.length,offset:b,records:d.map(a=>({receiptId:a.index,receiptNamespace:A,tool:a.name,query:s(a.arguments),retained:y.retained.includes(a.index)})),nextOffset:b+d.length<a.length?b+d.length:null,reading:"目录只读;用 read_receipt { receiptId } 按需取原字,不要重复读同一页。"}}}let d=String(c.path??""),e="arguments"===c.part?"arguments":"result",{observation:f,value:g,resolvedPath:h}=J(Number(c.receiptId),d,e),i=a.tools.find(a=>a.name===f.name)?.observationKind==="workspace-view",j=void 0!==c.offset||void 0!==c.limit;if(j&&!i&&!Array.isArray(g)){let a=JSON.stringify(g??null).length>6e3;return{data:{receiptId:Number(c.receiptId),receiptNamespace:A,tool:f.name,path:h||d,notArray:!0,...a?{valueOmitted:!0,outline:t(g,h||d)}:{value:g},reading:`路径「${d||"(整条回执)"}」不是数组,offset/limit 未生效;`+(a?"原值较大,已返回字段大纲,按 path 读取具体字段。":"已返回该路径的完整值,按字段读取即可。")}}}let k=j?Number(c.offset??0):0,n=j?Math.min(Number(c.limit??24),200):24;if(j&&(!Number.isSafeInteger(k)||k<0||!Number.isSafeInteger(n)||n<1))throw Error("回执分页须使用非负整数 offset 及 1–200 的 limit");let o="result"===e&&(!d||"/data"===d)&&i,p=i?l(g,d,c.offset,c.limit):j&&Array.isArray(g)?{arrayPage:!0,path:d,total:g.length,offset:k,records:g.slice(k,k+n),nextOffset:k+n<g.length?k+n:null,originalAvailable:!0}:g;if(o&&"original"!==c.view&&!0!==c.retain||!0===c.outline)return{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,part:e,path:d,viewKind:"outline",originalAvailable:!0,value:t(g,d),reading:"原页未改写。按 path 读取所需原字段,大派生数组按 offset/limit 取全部原记录;动态工作台当前值用原工具按实体 ID 查。"}};let q=X(f.index)<=W,r=!0!==c.release&&(!0===c.retain||!b.contextLifecycle&&q&&(o?"original"===c.view:""===d&&"result"===e));return!0===c.release?(y.pinned=(y.pinned??[]).filter(a=>a!==f.index),y.retained=y.retained.filter(a=>a!==f.index),y.projections=y.projections?.filter(a=>a.observationIndex!==f.index),{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,released:!0,retained:!1,pinned:!1,originalAvailable:!0}}):(r&&(y.retained.includes(f.index)||y.retained.push(f.index),(y.pinned??=[]).includes(f.index)||y.pinned.push(f.index)),r&&!d&&"result"===e?(y.projections=y.projections?.filter(a=>a.observationIndex!==f.index),a.tools.some(a=>a.name===f.name&&(a.presentObservation||a.presentHistoryObservation||a.observationGroup))&&(y.projections??=[]).push({observationIndex:f.index,path:"",...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},...!0===c.retain?{pin:!0}:{}})):(d||"arguments"===e||j||b.contextLifecycle)&&(y.projections=y.projections?.filter(a=>a.observationIndex!==f.index||(a.path!==d||(a.part??"result")!==e)&&""!==a.path),(y.projections??=[]).push({observationIndex:f.index,path:d,..."arguments"===e?{part:"arguments"}:{},...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},...(i||Array.isArray(g))&&j?{offset:k,limit:n}:{},...!0===c.retain?{pin:!0}:{}})),{data:{view:"receipt",receiptId:f.index,receiptNamespace:A,originalTool:f.name,part:e,path:d,...h&&h!==d?{resolvedPath:h}:{},retained:y.retained.includes(f.index),pinned:(y.pinned??[]).includes(f.index),...!F(f)?{current:!1,historicalSnapshot:!0}:{},value:F(f)?p:G(p),validPaths:L(p,(h??d)||"")}})}}]:[],N=a.options?.taskKind==="reasoning"||a.options?.taskKind==="agent-action",O=0,P=N?[{name:"think",housekeeping:!0,description:"对当前确有复杂工程取舍、接口冲突或专业论证的问题,请求下一轮深入推演。须给出具体问题;下一轮保留相同模型、已读证据和全部工具,用供应商默认输出容量完成推演及行动,此后回到日常工具操作强度。普通查源、改字段、等子任务无需调用。此请求本身不算工程进展,也不代替计算或独立评审。",parameters:{type:"object",required:["question"],properties:{question:{type:"string",minLength:1}},additionalProperties:!1},invoke:c=>{if(void 0!==a.thinkBudget&&O>=a.thinkBudget)throw Error(`THINK_BUDGET_EXCEEDED:本职责推演次数已达上限 ${a.thinkBudget} 次;请依据已读证据直接行动或登记问题。`);return O+=1,b.deliberation={question:String(c.question)},{data:{nextTurn:"deliberation",question:c.question}}}}]:[],Q=[...a.tools,...M,...P];if(new Set(Q.map(a=>a.name)).size!==Q.length)throw Error("业务工具与运行时工作记忆工具重名");Q.sort((a,b)=>a.name.localeCompare(b.name));let R=JSON.stringify(Q.map(({name:a,description:b,parameters:c})=>({name:a,description:b,parameters:u(c)}))).length,S=(a,b)=>""===a||b===a||b.startsWith(a+"/"),T=a=>{let b=[];for(let c of a){let a=c.part??"result",d=a=>a.focusId===c.focusId&&a.pin===c.pin,e=(a,b)=>S(a.path??"",b.path??"")&&(void 0===a.offset&&void 0===a.limit||a.path===b.path&&a.offset===b.offset&&a.limit===b.limit);if(!b.some(b=>d(b)&&b.observationIndex===c.observationIndex&&(b.part??"result")===a&&e(b,c))){for(let f=b.length-1;f>=0;f-=1){let g=b[f];d(g)&&g.observationIndex===c.observationIndex&&(g.part??"result")===a&&e(c,g)&&b.splice(f,1)}b.push(c)}}return b},U=(a,c,d,f=!1)=>{if(f&&x&&N){let e=b.messages.findLast(a=>"assistant"===a.role);e&&void 0===e.thinkingContent&&e.toolCalls?.some(e=>e.name===a&&e.arguments===c&&b.executed[q([b.identity,b.rounds,e.id])]?.result===d)&&(f=!1)}let g=Q.find(b=>b.name===a),h=f?g?.presentHistoryObservation??g?.presentObservation:g?.presentObservation??(g?.observationKind==="workspace-view"?g.presentHistoryObservation:void 0),i=n(d);if("read_receipt"===a){let a=(0,e.parseJsonWithoutDuplicateKeys)(c),b=JSON.parse(i),d=y.observations.find(b=>b.index===a.receiptId);if(b.performed&&b.data?.viewKind!=="outline"&&Object.hasOwn(b.data??{},"value")&&Q.find(a=>a.name===d?.name)?.observationKind==="workspace-view"){let c=String(a.path??""),d="arguments"===a.part?"arguments":"result",e=J(Number(a.receiptId),c,d);return JSON.stringify({...b,data:{...b.data,value:l(e.value,c,a.offset,a.limit),originalAvailable:!0}})}}if(!h){if(f&&g?.observationKind==="workspace-view"){let a=JSON.parse(i);if(a.performed)return JSON.stringify({...a,data:{historicalViewIndexed:!0,originalAvailable:!0,fields:t(a.data,"/data")}})}return g?.observationKind==="workspace-view"?JSON.stringify(k(JSON.parse(i))):i}let j=JSON.parse(i);if(!0===j.originalObservationAvailable&&(!f||!g?.presentHistoryObservation))return g?.observationKind==="workspace-view"?JSON.stringify(k(j)):i;if(!j.performed)return i;let m={...j,data:h((0,e.parseJsonWithoutDuplicateKeys)(c),j.data),originalObservationAvailable:!0};return JSON.stringify(g?.observationKind==="workspace-view"?k(m):m)},V=a=>{if(!y.retained.includes(a.index)||!H(a))return!1;let b=Q.find(b=>b.name===a.name),c=(0,e.parseJsonWithoutDuplicateKeys)(a.arguments);if(b?.observationGroup){let d=b.observationGroup(c);if(y.observations.some(c=>y.retained.indexOf(c.index)>y.retained.indexOf(a.index)&&c.name===a.name&&y.retained.includes(c.index)&&b.observationGroup((0,e.parseJsonWithoutDuplicateKeys)(c.arguments))===d))return!1}return!0},W=Number.isSafeInteger(a.memoryRetainedChars)&&Number(a.memoryRetainedChars)>=1e3?Number(a.memoryRetainedChars):8e3,X=a=>{let c=y.observations.find(b=>b.index===a),d=c&&b.executed[c.operationId];return d?String(d.result).length:0},Y=()=>{(y.pinned?.length??0)>2&&(y.pinned=y.pinned.slice(-2));let a=0,b=[];for(let c of[...y.retained].reverse()){let d=X(c);b.length&&a+d>W||(b.push(c),a+=d)}y.retained=b.reverse(),y.pinned=(y.pinned??[]).filter(a=>b.includes(a))},Z=(a,b,c)=>{let d=Q.find(b=>b.name===a);if(d?.observationGroup)try{let f=a+":"+d.observationGroup((0,e.parseJsonWithoutDuplicateKeys)(b));(y.lastRead??={})[f]=c}catch{}},$=(a,c,d,e=!0)=>{if(!x||[...M,...P].some(b=>b.name===a.name))return;let f=q([a.name,a.arguments,d]),g=y.observations.find(a=>a.fingerprint===f);if(g){let c=V(g);return e&&b.contextLifecycle&&(g.focusId=b.contextLifecycle.focusId),e&&(y.retained=[...y.retained.filter(a=>a!==g.index),g.index]),Z(a.name,a.arguments,g.index),Y(),{index:g.index,wasResident:c}}let h=y.observations.length;return y.observations.push({index:h,operationId:c,name:a.name,arguments:a.arguments,fingerprint:f,...b.contextLifecycle?{focusId:b.contextLifecycle.focusId}:{},dependencyKeys:C(a.arguments,d),dependencyVersions:D(a.arguments,d)}),y.retained.push(h),Z(a.name,a.arguments,h),Y(),{index:h,wasResident:!1}};if(x){let a=new Map(b.messages.flatMap(a=>a.toolCalls??[]).map(a=>[q([a.name,a.arguments]),a]));for(let[c,d]of Object.entries(b.executed)){let b=a.get(d.inputHash);b&&!y.observations.some(a=>a.operationId===c)&&$(b,c,d.result,!1)}}let _=a.progressSnapshot?.(),aa=(c,d=[],e=!1,f=!0)=>{let g=d.filter(a=>!v.has(a));for(let a of d)v.add(a);let h=a.progressSnapshot?.(),i=void 0!==h&&h!==_;if(void 0!==h&&(_=h),g.length||i)w.clear(),b.noProgressRounds=0,b.housekeepingSinceProgress=[],b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,delete b.blockedReason;else if(e)b.maintenanceErrorRounds=0,delete b.lastMaintenanceError,b.messages.push({role:"user",content:`【运行反馈】${c}。本轮实际工具回执已保留,新证据已记入证据账(不算业务进展)。已有证据足够时形成或修订成果;仍需查证时明确不同的待查问题、范围或条件。`});else if(f){let d=a.stagnationGuidance?.();if(b.messages.push({role:"user",content:`【运行反馈\xb7状态未变化】${c}。本轮实际工具回执已保留;返回成功不代表出现新证据。`+(d?`下一步(按实际业务状态):${d}。`:"直接使用已读内容;若仍需查证,明确不同的待查问题、范围或条件,或根据已有证据修改并提交成果。")+"连续 3 轮状态与证据都未变化会暂停(不是失败,补充预算/处理原因后可继续)。"}),b.noProgressRounds=(b.noProgressRounds??0)+1,b.noProgressRounds>=(a.stagnationRoundLimit??3))throw new o(structuredClone(b),"stagnation",`连续 ${b.noProgressRounds} 轮业务状态与证据都未变化:${c}。`+(d?`下一步:${d}。`:"")+"检查点、原稿、已执行事务与费用账保留;处理停滞原因后可从 paused 继续。");w.add(c)}else{let a=c.slice(0,240);if(b.maintenanceErrorRounds=b.lastMaintenanceError===a?(b.maintenanceErrorRounds??0)+1:1,b.lastMaintenanceError=a,b.maintenanceErrorRounds>=5)throw new o(structuredClone(b),"stagnation",`维护/读取工具同一错误连续 ${b.maintenanceErrorRounds} 次:${c}。原回执、检查点与原稿保留;按回执里的可用字段改正,或换一个读取入口后再继续。`);b.messages.push({role:"user",content:`【运行反馈】${c}。本轮是维护/读取工具的使用错误,不计业务停滞;按回执里的可用字段改正后继续,不要原样重试。`})}b.progressKeys=[...v],b.stalledFeedback=[...w]},ab=async()=>{let i,k=!1,m=!1,p=new Set,s=async()=>{if(p.size)throw await c(),new o(structuredClone(b),"stagnation",`同一错误跨反馈累计达到 5 轮(跨进展):${[...p].map(a=>`${a}(${b.sameErrorRoundCounts[a]} 轮/${b.sameErrorCounts[a]} 次拒收)`).join(";")}。本批全部工具回执、检查点与费用账已保存;根据字段问题修正动作,不再重复支付同一失败。`)},t=[],u=[],w=[],z=!1,C=!1,D=b.messages.findLast(a=>"assistant"===a.role)?.toolCalls??[];if(b.pending.length>1&&b.pending.some(a=>Q.find(b=>b.name===a.name)?.terminal)){for(let a of b.pending)b.messages.push({role:"tool",toolCallId:a.id,content:JSON.stringify({performed:!1,error:"成果提交与其他动作须分轮;本轮工具均未执行"})});return b.pending=[],aa("成果提交与其他动作须分轮"),await c(),!1}let E=new Map;{let i=[];for(let a of b.pending){let c=Q.find(b=>b.name===a.name),d=a.operationId??q([b.identity,b.rounds,a.id]);if(!c?.parallelSafe||c.terminal||c.waitForTasks||b.executed[d])break;i.push({call:a,operationId:d})}if(i.length>1){j();let k=Math.max(1,Math.floor(Number(f.N6?.agentToolCalls??4))),l=0,m=async(f,i)=>{try{let h=Q.find(a=>a.name===f.name),k=(0,e.parseJsonWithoutDuplicateKeys)(f.arguments);if(!k||"object"!=typeof k||Array.isArray(k))throw Error("工具参数必须为对象");if(h.normalizeArgs){let b=h.normalizeArgs(k);k=b.args,b.paths.length&&a.onReceipt?.("lossless-normalization",{operationId:i,providerToolCallId:f.id,tool:f.name,paths:b.paths,originalArguments:f.arguments,normalizedArguments:k})}let l=(0,g.validateJsonAgainstSchema)(k,h.parameters);if(l.length)throw Error(l.join(";"));let m=d?await (0,g.awaitDocumentLlmOperation)(()=>Promise.resolve(h.invoke(k,i)),d):await h.invoke(k,i);if(j(),m?.finished&&m.suspended)throw Error("任务完成与依赖等待不能同时声明");if(m?.pause)throw await c(),new o(structuredClone(b),"stagnation",m.pause.reason);return{result:m,args:k}}catch(a){if(d?.aborted||(0,h.UM)(a)||a instanceof o)throw a;return{error:a instanceof Error?a.message:String(a)}}};await Promise.all(Array.from({length:Math.min(k,i.length)},async()=>{for(;;){let a=l;if(l+=1,a>=i.length)return;let{call:b,operationId:c}=i[a];E.set(c,m(b,c)),await E.get(c)}}))}}for(let f of[...b.pending]){let F;j();let G=q([f.name,f.arguments]),H=f.operationId??q([b.identity,b.rounds,f.id]),I=b.executed[H];if(I&&I.inputHash!==G)throw Error("同一工具调用身份绑定不同参数,不能重放");if(I){let a=JSON.parse(F=I.result);a.performed&&(a.finished||a.suspended)&&(b.result=a.data,k=!0,m=!!a.suspended)}else{let i,s,A,I,L=[];if(E.has(H)){let a=await E.get(H);i=a.result,(s=a.error)&&(C=!0);let b=Q.find(a=>a.name===f.name);b?.housekeeping&&(I=b.name+":"+q([f.arguments])),b?.housekeeping&&b.housekeepingIdentity&&i&&(I=b.name+":"+b.housekeepingIdentity(a.args??{},i))}else try{let h=Q.find(a=>a.name===f.name);if(!h)throw Error(`当前职责没有工具${f.name}`);if(h.waitForTasks){let a=D.slice(0,D.findIndex(a=>a.id===f.id)).find(a=>{let c=b.executed[q([b.identity,b.rounds,a.id])];if(!c)return!1;let d=JSON.parse(c.result);return!1===d.performed||!0===d.feedbackRequired});if(a)throw Error(`本批前序工具${a.name}未完成或需要处理反馈,本次未进入等待;先依据实际回执修正动作。其他已派发任务保持运行。`)}let k=(0,e.parseJsonWithoutDuplicateKeys)(f.arguments);if(!k||"object"!=typeof k||Array.isArray(k))throw Error("工具参数必须为对象");if(h.normalizeArgs){let b=h.normalizeArgs(k);k=b.args,b.paths.length&&a.onReceipt?.("lossless-normalization",{operationId:H,providerToolCallId:f.id,tool:f.name,paths:b.paths,originalArguments:f.arguments,normalizedArguments:k})}let m=(0,g.validateJsonAgainstSchema)(k,h.parameters);if(m.length)throw Error(m.join(";"));if("read_receipt"===h.name&&B(k),h.housekeeping&&(I="read_receipt"===h.name&&void 0!==k.receiptId?(()=>{let a=String(k.path??""),b="arguments"===k.part?"arguments":"result",{observation:c,value:d}=J(Number(k.receiptId),a,b),e=Q.find(a=>a.name===c.name)?.observationKind==="workspace-view";return K(c.name,e?l(d,a,k.offset,k.limit):d,a,b)})():h.name+":"+q([f.arguments])),i=d?await (0,g.awaitDocumentLlmOperation)(()=>Promise.resolve(h.invoke(k,H)),d):await h.invoke(k,H),j(),i?.finished&&i.suspended)throw Error("任务完成与依赖等待不能同时声明");if(i?.pause)throw await c(),new o(structuredClone(b),"stagnation",i.pause.reason);h.housekeeping&&h.housekeepingIdentity&&i&&(I=h.name+":"+h.housekeepingIdentity(k,i))}catch(a){if(d?.aborted||(0,h.UM)(a)||a instanceof o)throw a;s=a instanceof Error?a.message:String(a),a instanceof Error&&a.stack&&console.error(`[gen] tool ${f.name} crashed: ${a.stack.split("\n").slice(0,8).map(a=>a.trim()).join(" | ")}`),["read_receipt","think"].includes(f.name)||(C=!0)}let M=function(a,b,c){let d=c?.data&&"object"==typeof c.data?c.data:void 0,e=d&&["submitted","previewed","ok","performed"].some(a=>!1===d[a]);if(!b&&!e||!b&&(d?.effective===!0||Array.isArray(d?.acceptedUnitIds)&&d.acceptedUnitIds.length))return;let f=b??JSON.stringify({error:d?.error,stage:d?.stage,issues:d?.issues}),g=[...new Set(f.match(/\b[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+\b/gu)??[])].sort(),h=g.length?g.join("|"):f.replace(/「[^」]*」/gu,"「…」").replace(/[0-9a-f]{40,}/gu,"…").replace(/\b(?:receipt|unit|section|source|actor)[-:][\w:.-]+/gu,"id").replace(/\d+/gu,"#").slice(0,240);return`${a}:${h}`}(f.name,s,i);if(M){let a=b.sameErrorCounts??={},c=M in a||Object.keys(a).length<256?M:"overflow";a[c]=(a[c]??0)+1;let d=b.sameErrorRoundCounts??={},e=b.sameErrorLastRound??={};e[c]!==b.rounds&&(d[c]=(d[c]??0)+1,e[c]=b.rounds),d[c]>=5&&p.add(c)}F=JSON.stringify(s?{performed:!1,error:s}:{performed:!0,...i});let N=Q.find(a=>a.name===f.name);if(!s&&!i?.feedbackRequired&&N?.housekeeping&&x){let a=r(f.arguments),b=y.observations.find(b=>b.name===f.name&&r(b.arguments)===a);b&&!V(b)&&(A=[K(f.name,JSON.parse(n(F)))])}if("separate-ledgers"===a.progressAccounting&&i&&!s){let a=b.progressLedger??={evidence:[],decisions:[],effective:[],delivery:[]},c=i.progressLedger??{evidence:i.progressKeys??[]};for(let b of["evidence","decisions","effective","delivery"]){let d=new Set(a[b]),e=(c[b]??[]).filter(a=>!d.has(a));if((c[b]??[]).some(a=>"string"!=typeof a||!a.trim()))throw Error("DOMAIN_PROGRESS_LEDGER_INVALID");a[b]=[...new Set([...d,...c[b]??[]])],"evidence"===b?w.push(...e):u.push(...e.map(a=>b+":"+a))}}if(z||=!!(s||i?.feedbackRequired),!s&&i&&!i.finished&&!i.feedbackRequired&&x&&(i.progressKeys??[]).every(a=>v.has(a))&&!Q.find(a=>a.name===f.name)?.housekeeping){let a=JSON.parse(n(F)),b=K(f.name,a),c=Q.find(a=>a.name===f.name)?.observationUnits,d=c?.(i.data).map(a=>"context-unit:"+q([f.name,a]))??[];if(d.length){let a=new Set,b=new Set;for(let d of y.observations.filter(a=>a.name===f.name)){let e=J(d.index,"").value;if(e.performed)for(let g of c(e.data)){let c="context-unit:"+q([f.name,g]);a.add(c),V(d)&&b.add(c)}}(L=d.filter(b=>!a.has(b))).length||(A=[...new Set(d.filter(a=>!b.has(a)))])}else{let a=y.observations.filter(a=>a.name===f.name&&K(a.name,J(a.index,"").value)===b);a.length&&!a.some(V)&&(A=[b])}}if(a.onReceipt?.("tool",{operationId:H,providerToolCallId:f.id,tool:f.name,arguments:f.arguments,inputHash:G,result:JSON.parse(F)}),b.executed[H]={inputHash:G,result:F},!s&&(i?.finished||i?.suspended))b.result=i.data,k=!0,m=!!i.suspended;else{let c=A?.length?A:void 0,d=s?[]:[...c??(I?[I]:[]),...Q.find(a=>a.name===f.name)?.waitForTasks?i?.notificationKeys??[]:[]];if(d.some(a=>!b.housekeepingSinceProgress?.includes(a))){for(let a of[...i?.progressKeys??[],...L])v.has(a)||v.add(a);b.progressKeys=[...v],b.housekeepingSinceProgress=[...new Set([...b.housekeepingSinceProgress??[],...d])],c&&a.onReceipt?.("observation-context-restored",{operationId:H,tool:f.name,businessProgress:!1,noProgressRounds:b.noProgressRounds??0})}else{let a=!!(i&&"object"==typeof i.data&&null!==i.data&&!0===i.data.unchanged);s||a||(C=!0),t.push(s??(a?`工具${f.name}的提交与当前版本一致(unchanged),没有产生新版本;不要原样重提,继续下一段/下一单元或声明完成`:`工具${f.name}没有新增证据或有效状态变化`))}"separate-ledgers"!==a.progressAccounting&&u.push(...i?.progressKeys??[],...L)}}let L=$(f,H,F),M=JSON.parse(F),N=M.performed&&M.data&&"object"==typeof M.data?M.data.invocationBoundary:void 0;if(N){if(!N.sectionId?.trim()||!N.state?.trim()||!N.reason?.trim())throw Error("DOMAIN_INVOCATION_BOUNDARY_INVALID");i={sectionId:N.sectionId,state:N.state,reason:N.reason,...N.key?{key:N.key}:{},...!0===N.deferUntilClosure?{deferUntilClosure:!0}:{}}}let O=L?.index,P=Q.find(a=>a.name===f.name),R=L?.wasResident===!0&&P?.readOnly===!0,S=R?JSON.stringify({performed:!0,data:{unchanged:!0,priorObservationIndex:O,originalTool:f.name,reading:`同参数、同结果已由回执 #${O} 返回;这是重复读取,不产生新证据。不要原样重试;按已有内容推进,需要原字用 read_receipt {receiptNamespace:"${A}",receiptId:${O}}。`}}):U(f.name,f.arguments,F);if(b.messages.push({role:"tool",toolCallId:f.id,content:a.formatToolMessage?.(f,S)??S}),R){let d=q([f.name,f.arguments,F]),e=(b.duplicateReadCounts?.[d]??0)+1;if(b.duplicateReadCounts={...b.duplicateReadCounts??{},[d]:e},e>=(a.stagnationRoundLimit??3))throw await c(),new o(structuredClone(b),"stagnation",`同一只读调用与结果已重复 ${e} 次(${f.name}):回执已给出 unchanged,不产生新证据。检查点、原稿与已执行事务保留;按已有内容推进,或换一个真实不同的待查问题/范围。`)}if(b.pending=b.pending.filter(a=>a.id!==f.id),k){if(b.pending.length)throw Error("提交完成与其他动作必须分轮,不能丢弃未执行工具");return await s(),b.status=m?"waiting":"completed",await c(),!0}await c()}return(await s(),i)?((u.some(a=>!v.has(a))||a.progressSnapshot&&a.progressSnapshot()!==_)&&aa("已在实际节状态转换处交还运行循环",u),b.invocationBoundary=i,b.result={invocationBoundary:i},b.status="yielded",a.onReceipt?.("invocation-boundary",i),await c(),!0):(b.selectionNotice&&(b.messages.push({role:"user",content:b.selectionNotice}),delete b.selectionNotice),t.length&&("separate-ledgers"!==a.progressAccounting||!w.length||z||u.length?aa([...new Set(t)].sort().join(";"),u,w.length>0,C):a.onReceipt?.("evidence-progress-only",{businessStagnationPreserved:!0,noProgressRounds:b.noProgressRounds??0})),await c(),!1)};try{if(await ab())return{result:b.result,checkpoint:b};for(;;){let f,i;if(j(),void 0!==a.maxRounds&&b.rounds>=a.maxRounds)throw new o(structuredClone(b),"budget",`调用数预算已用尽(${b.rounds}/${a.maxRounds}):检查点、原稿、已执行事务与费用账保留;补充预算后可从 paused 继续。`);let k=await a.directiveForTurn?.(),m=k&&b.observedExecutionContexts?.some(a=>a.id===k.id)?void 0:k;if(m&&(m.id!==b.directive?.id||m.reason!==b.directive?.reason)){if(!m.reason.trim()||m.id===b.directive?.id)throw Error("实时修订指令须有新的实际身份和具体原因");a.onReceipt?.("directive-update",{previous:b.directive,current:m,rounds:b.rounds}),b.directive=structuredClone(m),await c()}a.beforeRound?.(structuredClone(b));let p=await a.contextForTurn?.(),r="object"==typeof p?p.content:p,v="object"==typeof p?p.contentLive:void 0,w="object"==typeof p&&p.lifecycle.focusId!==b.contextLifecycle?.focusId;if("object"==typeof p){if(!p.lifecycle.focusId.trim())throw Error("DOMAIN_CONTEXT_FOCUS_REQUIRED");b.contextLifecycle=structuredClone(p.lifecycle)}let B=b.messages.findLast(a=>"assistant"===a.role);z=new Set((B?.toolCalls??[]).flatMap(a=>{let c=q([b.identity,b.rounds,a.id]),d=b.executed[c];return d&&E(a.name,d.result)?[c]:[]}));let C=(!w||z.size>0)&&!(void 0!==r&&x&&N&&B&&void 0===B.thinkingContent),D=new Set(C?B?.toolCalls?.map(a=>q([b.identity,b.rounds,a.id]))??[]:[]),I=C?(B?.toolCalls??[]).filter(a=>"read_receipt"===a.name).flatMap(a=>{try{let c=b.executed[q([b.identity,b.rounds,a.id])],d=c&&JSON.parse(c.result);if(!d?.performed||!Object.hasOwn(d.data??{},"value")||"outline"===d.data.view)return[];let f=(0,e.parseJsonWithoutDuplicateKeys)(a.arguments),g=String(f.path??""),h="arguments"===f.part?"arguments":"result";return!0===f.outline?[]:[{observationIndex:Number(f.receiptId),path:g,part:h,...void 0!==f.offset||void 0!==f.limit?{offset:Number(f.offset??0),limit:Number(f.limit??24)}:{}}]}catch{return[]}}):[],K=(a,b,c="result",d)=>I.some(e=>e.observationIndex===a&&e.part===c&&(!e.path||e.path===b||b.startsWith(e.path+"/"))&&(void 0===e.offset||e.path===b&&d?.offset===e.offset&&d?.limit===e.limit)),L=new Map,M=new Map,O=new Map,P=new Map,S=0;for(let a of y.observations.map(a=>a.index)){let c=y.observations.find(b=>b.index===a);if(!H(c))continue;let d=Q.find(a=>a.name===c.name),f=JSON.parse(b.executed[c.operationId].result),g=f.performed?d?.observationEntities?.((0,e.parseJsonWithoutDuplicateKeys)(c.arguments),f.data):void 0;if(g)for(let a of(M.set(c.index,g),g)){let b=F(c)?a:{...a,value:{...G(a.value),current:!1,historicalSnapshot:!0}},d=c.name+":"+b.key;P.set(d,S++),(O.get(d)?.observationIndex??-1)<=c.index&&O.set(d,{observationIndex:c.index,operationId:c.operationId,tool:c.name,...b})}}let V=a=>{let c=Q.find(b=>b.name===a.name)?.observationGroup;if(c&&JSON.parse(b.executed[a.operationId].result).performed)try{return a.name+":"+c((0,e.parseJsonWithoutDuplicateKeys)(a.arguments))}catch{return}};for(let a of y.observations.map(a=>a.index)){let b=y.observations.find(b=>b.index===a),c=V(b);c&&L.set(c,b.index)}let X=a=>{let b=V(a);return!b||(y.lastRead?.[b]??L.get(b))===a.index},Y=y.observations.filter(a=>y.retained.includes(a.index)&&H(a)&&!M.has(a.index)&&X(a)&&!D.has(a.operationId)&&!K(a.index,"")),Z=a=>{let b=Q.find(b=>b.name===a.name);return b?.observationKind==="workspace-view"},$=[...Y.filter(a=>!Z(a)),...Y.filter(Z)],_=a=>q([a.name,b.executed[a.operationId]?.result??""]),ac=new Map;for(let a of $)ac.set(_(a),a.index);let ad=new Set(ac.values()),ae=$.filter(a=>ad.has(a.index)),af=$.length-ae.length,ag=new Set(ae.filter(a=>U(a.name,a.arguments,b.executed[a.operationId].result,!0)===n(b.executed[a.operationId].result)).map(a=>a.index));y.projections=T(y.projections??[]);let ah=(y.projections??[]).filter(a=>{let c=y.observations.find(b=>b.index===a.observationIndex);return c&&(a.pin||(y.pinned??[]).includes(c.index)||F(c)&&(a.focusId===b.contextLifecycle?.focusId||H(c)))}).filter(a=>!K(a.observationIndex,a.path,a.part,a)&&("arguments"===a.part||!ag.has(a.observationIndex))).map(a=>{let b=J(a.observationIndex,a.path,a.part),c=(!a.path||"/data"===a.path)&&!a.part&&!a.pin&&Q.find(a=>a.name===b.observation.name)?.observationKind==="workspace-view",d=Q.find(a=>a.name===b.observation.name)?.observationKind==="workspace-view",e=F(b.observation),f=c?t(b.value):d?l(b.value,a.path,a.offset,a.limit):Array.isArray(b.value)&&(void 0!==a.offset||void 0!==a.limit)?{arrayPage:!0,path:a.path,total:b.value.length,offset:a.offset??0,records:b.value.slice(a.offset??0,(a.offset??0)+(a.limit??24)),nextOffset:(a.offset??0)+(a.limit??24)<b.value.length?(a.offset??0)+(a.limit??24):null,originalAvailable:!0}:b.value;return{...a,originalTool:b.observation.name,...c?{historicalViewIndexed:!0,originalAvailable:!0}:{},...!e?{current:!1,historicalSnapshot:!0}:{},value:e?f:G(f)}}),ai=void 0===r?b.messages:[{role:"user",content:a.goal},...a.stableContext?[{role:"user",content:a.stableContext}]:[],{role:"user",content:"【当前实际状态】以下是本轮最新工作台与任务状态,是当前唯一权威状态:其后出现的任何历史回执仅证明当时观察,当前是否在途、取消、完成或失效以此处实际状态为准,不得用历史回执覆盖。"},{role:"user",content:r},...v?[{role:"user",content:v}]:[],...x?[{role:"user",content:JSON.stringify({retainedActualObservations:ae.map(a=>{let c=Q.find(b=>b.name===a.name),d=JSON.parse(U(a.name,a.arguments,b.executed[a.operationId].result,!0)),e=JSON.stringify(d).length,f=e>Math.max(16e3,2*W),g=a.arguments.length>4e3;return{observationIndex:a.index,tool:a.name,...c?.historyArguments==="summary"||g?{argumentSummary:s(a.arguments),originalArgumentsAvailable:!0}:{arguments:a.arguments},...!F(a)?{current:!1,historicalSnapshot:!0}:{},result:f?{oversizedReceipt:!0,originalChars:e,originalAvailable:!0,outline:t(d.data,"/data"),reading:"本条回执超过本轮记忆预算,只给字段大纲;用 read_receipt { receiptNamespace, receiptId, path } 读取所需原字段,不要重跑原工具。"}:F(a)?d:G(d)}}),receiptNamespace:A,...af?{deduplicatedObservations:{count:af,reading:"内容完全相同的回执已合并,只保留最新一条;旧页原文仍可用 read_receipt 按 observationIndex 恢复。"}}:{},restoredActualObservationPaths:ah.length?ah:void 0,retainedEntityObservations:(()=>{let a=[...O.entries()].sort(([a],[b])=>(P.get(a)??0)-(P.get(b)??0)).map(([,a])=>a).filter(a=>!D.has(a.operationId)).map(({operationId:a,...b})=>b);return a.length>48?{entityWorkingSetIndexed:!0,total:a.length,recent:a.slice(-48),reading:"recent保留最近实际读过的48个对象原字段与版本,当前值资格看current;更早对象与完整原字仍在原回执,可按ID或observationIndex恢复。超过48不清空当前工作集,阅读次序不授予业务进展。"}:a})(),observationDirectory:[...new Set(y.observations.map(a=>a.name))].map(a=>{let b=y.observations.filter(b=>b.name===a);return{tool:a,count:b.length,firstObservationIndex:b[0].index,lastObservationIndex:b.at(-1).index,supersededViewCount:b.filter(a=>!X(a)).length}}),omittedObservations:(()=>{let a=y.observations.filter(a=>!y.retained.includes(a.index)||!H(a));return a.length?{count:a.length,records:a.slice(-24).map(a=>({observationIndex:a.index,tool:a.name,query:s(a.arguments)}))}:void 0})(),instruction:'以上是实际业务回执(默认只常驻**最近一条业务回执**与显式 retain 的页;更早的原字与全文永久留在后端,用 `read_receipt` 按 receiptId 与 JSON Pointer 恢复,同一条查询重查不算工程进展)。`omittedObservations` 是已经移出上下文的回执索引:需要旧页时用 `read_receipt { receiptId: observationIndex, view:"original" }` 恢复,不要用原工具重跑同一页;恢复不是工程进展。读取receiptId必须同时复制本上下文的receiptNamespace;别的actor的同号回执不能互换。retainedEntityObservations 是已读对象工作集:current=true 的原字段与版本仍可用,current=false 须按 ID 查当前值。`read_receipt { view:"catalog" }` 查看完整目录。不得把摘要当作重新读过或专业通过。'})}]:[],...(()=>{if(w&&!C)return[];let a=b.messages.length-1;for(;a>0&&"assistant"!==b.messages[a].role;)a--;return b.messages[a]?.role==="assistant"?C?b.messages.slice(a):b.messages.slice(a+1).filter(a=>"user"===a.role):[]})()];b.directive&&ai.push({role:"user",content:"execution-context"===b.directive.kind?`【已在恢复入口应用的一次性执行说明】${b.directive.reason}。迁移只在入口应用一次;后续计算、审查及已完成正文是否有效,以当前真实输入和回执为准,不能每轮再次作废或重算已核结果。本说明不替代当前专业目标或授予专业通过。`:`【主控对本任务的具体指令】${b.directive.reason}。原任务身份、来源、已执行账和无进展记录保留;指令本身不证明问题已解决,须实际行动与核验。`}),a.peerFeedback&&ai.push({role:"user",content:`【实际独立任务事件】${a.peerFeedback}`}),b.interruption&&ai.push({role:"user",content:`【上次响应中断】${b.interruption.reason}。中断响应中的工具没有执行,不能把其中的部分动作当作完成。旧原字、已执行回执和用量保留。依据当前工具选择更短的实际范围标识或分轮提交独立事务;复杂问题可请求一次深入推演,不重抄已有的大段静态成员目录。`}),b.deliberation&&ai.push({role:"user",content:`本轮针对以下实际问题深入推演并选择实际工具行动:${b.deliberation.question}`});let aj=a.memoryTrimLimit??a.requestBudget?.memory,ak=ai.find(a=>"user"===a.role&&"string"==typeof a.content&&a.content.startsWith('{"retainedActualObservations"'));if(aj&&ak&&ak.content.length>aj){let b=ak.content.length,c=JSON.parse(ak.content),d=[],e=a=>{y.retained=y.retained.filter(b=>b!==a),y.pinned=(y.pinned??[]).filter(b=>b!==a),y.projections=(y.projections??[]).filter(b=>b.observationIndex!==a)},f=()=>{let a=c.restoredActualObservationPaths;if(Array.isArray(a)&&a.length){let b=a.shift();return y.projections=y.projections?.filter(a=>a.observationIndex!==b.observationIndex||a.path!==b.path||a.part!==b.part||a.offset!==b.offset||a.limit!==b.limit),!0}let b=c.retainedEntityObservations;if(Array.isArray(b)&&b.length)return b.shift(),!0;if(b&&"object"==typeof b){let a=b.recent;if(Array.isArray(a)&&a.length)return a.shift(),!0}let f=c.retainedActualObservations;if(Array.isArray(f)&&f.length>1){let[a]=f.splice(0,1),b=Number(a.observationIndex??-1);return d.push({observationIndex:b,tool:String(a.tool??"")}),e(b),!0}if(Array.isArray(f)&&1===f.length){let a=f[0],b=a?.result;if(b&&!0!==b.oversizedReceipt)return a.result={oversizedReceipt:!0,originalChars:JSON.stringify(b).length,originalAvailable:!0,outline:t(b.data,"/data"),reading:"本轮输入分区超限:这条回执只给字段大纲;用 read_receipt 按 observationIndex 读取所需原字段,不要重跑原工具。"},!0}return!1};for(;ak.content.length>aj&&f();)c.omittedObservationCount=d.length,c.omittedActualObservations=d.slice(0,40),c.reading="本轮输入分区超限:最旧的已恢复路径/对象工作集/回执已从上下文移出。原回执永久保留,用 read_receipt 按 observationIndex 恢复;移出不是重新读取,也不授予业务进展。",ak.content=JSON.stringify(c);a.onReceipt?.("input-budget-trimmed",{section:"memory",limit:aj,before:b,after:ak.content.length,omitted:d.length})}let al=ai.find(a=>"user"===a.role&&"string"==typeof a.content&&a.content.startsWith('{"retainedActualObservations"'))?.content.length??0,am={system:a.system.length,goal:a.goal.length,stableContext:a.stableContext?.length??0,stablePrefix:a.system.length+a.goal.length+(a.stableContext?.length??0),tools:R,memory:al,messageCount:ai.length,context:"string"==typeof r?r.length:0,contextLive:v?.length??0,messages:ai.reduce((a,b)=>a+b.content.length,0)},an=a.options?.actorId==="chief"?24e3:18e3,ao=0,ap={...a.options,system:a.system,messages:structuredClone(ai.map(c=>{if("tool"!==c.role)return c;let d=void 0!==r?B?.toolCalls?.find(a=>a.id===c.toolCallId):void 0;if(!d)return{...c,content:n(c.content)};let e=b.executed[q([b.identity,b.rounds,d.id])]?.result;if(!e)try{JSON.parse(c.content),e=c.content}catch{return c}let f=U(d.name,d.arguments,e),g=y.observations.find(a=>a.operationId===q([b.identity,b.rounds,d.id])),h=Q.find(a=>a.name===d.name);if("read_receipt"!==d.name&&(g&&!F(g)||w&&(h?.readOnly||h?.observationKind==="workspace-view"))){let a=JSON.parse(e);if(a.performed)return{...c,content:JSON.stringify({performed:!0,data:{historicalSnapshot:!0,current:!1,originalAvailable:x,...x&&g?{receiptId:g.index,receiptNamespace:A}:{},outline:t(a.data,"/data"),reading:x?"本页是旧焦点或旧版本观察;原字仍可按回执恢复,当前值以本轮工作台为准。":"本页是旧焦点或旧版本观察;本角色未保留回执恢复通道,需要原字时用产生该回执的原工具按原参数重查。"}})}}let i=a.formatToolMessage?.(d,f)??f;if((ao+=i.length)>an&&i.length>3e3){let a=q([b.identity,b.rounds,d.id]),e=y.observations.find(b=>b.operationId===a)?.index,g=null;try{let a=JSON.parse(f);g=t(a.data,"/data")}catch{}return{...c,content:JSON.stringify({performed:!0,data:{batchToolReceiptOutlined:!0,tool:d.name,originalChars:i.length,...x&&void 0!==e?{receiptId:e,receiptNamespace:A}:{},outline:g,originalAvailable:x,reading:x?"同批工具回执超出本轮输入预算,本条只给字段大纲;需要原字段时用 read_receipt { receiptNamespace, receiptId, path } 读取,或缩小查询后重试,不要重跑同一条查询。":"同批工具回执超出本轮输入预算,本条只给字段大纲;本角色未保留回执恢复通道,需要原字段时缩小查询后重试,不要重跑同一条查询。"}})}}return{...c,content:i}})),...N?{taskKind:b.deliberation?"reasoning":"agent-action",maxTokens:void 0}:{},tools:Q.map(({name:a,description:b,parameters:c})=>({name:a,description:b,parameters:u(c)})),stablePrefixChars:a.system.length+a.goal.length+(a.stableContext?.length??0),requestSections:am,requireToolCall:!1,temperature:0,onRawResponse:c=>{f=c,a.onReceipt?.("raw-response",{round:b.rounds+1,response:c})}};if(Object.assign(am,(0,g.documentToolInputSections)(ap)),a.requestBudget){for(let[c,d]of Object.entries(a.requestBudget))if((am[c]??0)>d)throw new o(structuredClone(b),"budget",`CONSTRUCTION_INPUT_BUDGET_EXCEEDED:${c}:${am[c]} > ${d};本轮输入分区超限,拒绝构造(不静默截断)。`)}let{diagnostics:aq,signal:ar,onRawResponse:as,...at}=ap;a.onReceipt?.("request",{round:b.rounds+1,input:at,status:"prepared-provider-dispatch-recorded-separately"});try{i=d?await (0,g.awaitDocumentLlmOperation)(()=>(a.caller??g.callDocumentLlmWithTools)(ap),d):await (a.caller??g.callDocumentLlmWithTools)(ap)}catch(c){if(c instanceof g.DocumentLlmBudgetRefusedError)throw new o(structuredClone(b),"budget",`${c.message}。检查点、原稿、已执行事务与费用账保留;补充预算后可从 paused 继续。`);if(d?.aborted||(0,h.UM)(c)||a.caller&&!a.callerErrorsAreProviderFailures)throw c;throw new h.uv({agentIdentity:a.identity,round:b.rounds+1,kind:"provider-error",reason:`智能体模型调用失败:${c instanceof Error?c.message:String(c)}`,responseArchived:!!(f&&a.onReceipt)},{cause:c})}j(),b.rounds++,delete b.deliberation,a.onReceipt?.("response",{round:b.rounds,response:i});{let c=a.options?.actorId,d=c?[...a.options?.diagnostics?.llm.callLog??[]].reverse().find(a=>a.actorId===c&&Number.isSafeInteger(a.inputTokens)):void 0,e=i?.responseMetadata?.usage?.promptTokens,f=Number.isSafeInteger(e)?e:Number.isSafeInteger(d?.inputTokens)?d.inputTokens:void 0;a.onReceipt?.("input-token-observed",{round:b.rounds,promptTokens:f??null,source:Number.isSafeInteger(e)?"response-metadata":d?"call-ledger":"unreported"})}if(!i)throw new h.uv({agentIdentity:a.identity,round:b.rounds,kind:"missing-response",reason:f?.responseMetadata?.completed===!1?"智能体响应未完整结束;工具未执行,原始回执与实际用量已保留":"智能体模型未返回响应",responseArchived:!!(f&&a.onReceipt)});if(i.responseMetadata?.completed===!1){let d=Array.isArray(i.droppedToolCalls)?i.droppedToolCalls:[];if("invalid-tool-arguments"===i.responseMetadata.protocolFailure&&["stop","tool_calls"].includes(i.responseMetadata.finishReason??"")&&(i.toolCalls.length||d.length)){for(let c of((i.content||i.toolCalls.length)&&b.messages.push({role:"assistant",content:i.content,...i.toolCalls.length?{toolCalls:i.toolCalls}:{},...void 0===i.thinkingContent?{}:{thinkingContent:i.thinkingContent}}),i.toolCalls)){let e=JSON.stringify({performed:!1,error:`完整运输响应的参数未通过解析,本轮均未执行:${JSON.stringify(d)};保留原字正文,只纠正语法与标注,不重写内容`});b.messages.push({role:"tool",toolCallId:c.id,content:a.formatToolMessage?.(c,e)??e})}if(!i.toolCalls.length){let a=d.map(a=>`${a.name??"未命名工具"}:${a.reason??a.code??"参数解析失败"}(参数 ${a.argumentsChars??"未知"} 字符)`).join(";");b.messages.push({role:"user",content:`上一轮工具调用参数未通过 JSON 解析,本轮未执行任何工具。${a?`原因:${a}。`:""}请重新输出**一个**工具调用;参数必须是合法 JSON,字符串内的换行与双引号必须转义,不要重复上一次的无效参数。`})}a.onReceipt?.("tool-protocol-invalid",{round:b.rounds,dropped:d,finishReason:i.responseMetadata.finishReason??null}),aa("工具参数 JSON 解析失败,请纠正语法后重试",["tool-protocol-syntax-feedback"]),await c();continue}let e="invalid-tool-arguments"===i.responseMetadata.protocolFailure&&(void 0===i.responseMetadata.finishReason||null===i.responseMetadata.finishReason);if(("incomplete-stream"===i.responseMetadata.protocolFailure||e)&&0===i.toolCalls.length){let e=d.map(a=>`${a.name??"未命名工具"}:${a.reason??a.code??"参数未写完"}(参数 ${a.argumentsChars??"未知"} 字符)`).join(";");i.content&&b.messages.push({role:"assistant",content:i.content}),b.messages.push({role:"user",content:`上一轮供应商流在工具参数写完前结束(finish_reason=${i.responseMetadata.finishReason??"未报告"}),本轮没有可执行工具调用。`+(e?`已丢弃的调用:${e}。`:"")+"请重新输出**一个**完整工具调用;参数必须是合法 JSON,字符串内的换行与双引号必须转义。"}),a.onReceipt?.("tool-protocol-incomplete-stream",{round:b.rounds,finishReason:i.responseMetadata.finishReason??null,protocolFailure:i.responseMetadata.protocolFailure??null,dropped:d}),aa("供应商流在工具参数写完前结束,请重新输出完整调用",["tool-protocol-incomplete-stream"]),await c();continue}throw new h.uv({agentIdentity:a.identity,round:b.rounds,kind:"incomplete-response",reason:"智能体响应未完整结束;工具未执行,保留真实响应与用量",responseArchived:!!a.onReceipt})}if(b.directive?.kind==="execution-context"){let d=structuredClone(b.directive);b.observedExecutionContexts?.some(a=>a.id===d.id)||(b.observedExecutionContexts??=[]).push(d),delete b.directive,a.onReceipt?.("execution-context-observed",{id:d.id,businessProgress:!1,originalDirectivePreserved:!0}),await c()}if(new Set(i.toolCalls.map(a=>a.id)).size!==i.toolCalls.length)throw Error("同轮供应商工具身份重复,未执行候选工具");delete b.interruption;let au=a.selectCalls?.(i.toolCalls)??{calls:i.toolCalls};if(au.calls.some(a=>!i.toolCalls.includes(a)))throw Error("传输选择器不能制造模型未请求的工具");if(!au.calls.length&&i.toolCalls.length){b.messages.push({role:"user",content:au.notice??"本轮工具请求未执行"}),aa("显式工具额度仅保留成果提交,读取请求未执行"),await c();continue}if(b.selectionNotice=au.notice,b.messages.push({role:"assistant",content:i.content,toolCalls:au.calls,...void 0===i.thinkingContent?{}:{thinkingContent:i.thinkingContent}}),b.pending=au.calls.map(a=>({...a,operationId:q([b.identity,b.rounds,a.id])})),await c(),!i.toolCalls.length){aa("普通文本未执行工具或提交成果"),b.messages.push({role:"user",content:"当前文字尚未完成任务。请按实际证据选择工具继续,或通过成果提交工具提交可核验结果。"}),await c();continue}if(await ab())return{result:b.result,checkpoint:b}}}catch(e){let a=!d?.aborted&&e instanceof o;throw b.status=a?"paused":"interrupted",a&&(b.blockedReason=e.reason,b.blockedMessage=e instanceof Error?e.message:String(e)),(0,h.UM)(e)&&e.receipt.agentIdentity===b.identity&&(b.interruption=structuredClone(e.receipt)),await c(),(0,h.UM)(e)&&(0,i.Er)(e),e}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=8570,exports.ids=[8570],exports.modules={78570:(a,b,c)=>{c.d(b,{ConstructionEarlyDrafts:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(38210),i=c(5468),j=c(88390),k=c(55037),l=c(49303),m=c(6906),n=c(13577),o=c(45532),p=c(45002),q=c(40123),r=c(33074),s=c(60702),t=c(45946),u=c(54050),v=c(85254),w=c(745);class x{constructor(a){this.input=a,this.records=new Map,this.failures=[],this.retries=new Map,this.attempts=new Map,this.closed=!1,this.controller=new AbortController,this.adopting=new Map,this.sectionOfActor=a=>[...this.records.values()].find(b=>b.actorId===a)?.sectionId,this.authorAttempts=a=>{let b=this.contracts.snapshot().find(b=>b.sectionId===a)?.referenceId;if(!b)throw Error("SECTION_ATTEMPT_IDENTITY_REQUIRED");return this.attempts.has(b)||this.attempts.set(b,{used:0}),this.attempts.get(b)},this.adopt=async a=>{if(!this.closed||!a.structurePlan||!a.sectionPlans)throw Error("EARLY_DRAFT_ADOPTION_NOT_SEALED");for(let b of(this.contracts.assertGlobal(a.structurePlan.planHash),a.authority.sectionIds)){let c=[...this.records.values()].find(a=>a.sectionId===b);if(!c||"ready"!==c.status)continue;if(this.adopting.has(b)){await this.adopting.get(b);continue}let d=this.adoptOne(a,c);this.adopting.set(b,d),await d}},this.contracts=new p.G((0,w.Fu)(JSON.parse(JSON.stringify({project:a.project,planningContext:a.planningContext,confirmed:a.confirmed})))),this.unsubscribe=this.contracts.subscribe(()=>this.dispatch())}snapshot(){return structuredClone([...this.records.values()])}save(){e().mkdirSync(this.input.directory,{recursive:!0}),e().writeFileSync(g().join(this.input.directory,"early-drafts.json"),JSON.stringify({runId:this.input.runId,documentId:this.input.documentId,records:this.snapshot(),failures:this.failures,authorAttempts:Object.fromEntries(this.attempts),deliveryApproved:!1},null,2))}dispatch(){let a=!1;for(let b of this.records.values()){let c=this.contracts.snapshot().find(a=>a.referenceId===b.referenceId);"ready"!==b.status||c&&c.contractHash===b.contractHash&&["draft-approved","global-approved"].includes(c.status)&&c.sourceOnlyDraft||(b.status="invalidated",a=!0,this.attempts.delete(b.referenceId))}if(a)try{this.save()}catch(a){this.fatal=a}if(this.closed||this.task||this.fatal)return;for(let[a,b]of[...this.records])(function(a,b,c){if("failed"!==a.status||c>=1||!b||"draft-approved"!==b.status||!b.sourceOnlyDraft)return!1;let d=b.contractHash!==a.contractHash,e=/SECTION_SOURCE_DRAFT_NOT_APPROVED|SECTION_CONTRACT_STALE/u.test(a.error??"");return d||e})(b,this.contracts.snapshot().find(b=>b.referenceId===a),this.retries.get(a)??0)&&(this.retries.set(a,(this.retries.get(a)??0)+1),this.failures.push(b),this.records.delete(a),this.attempts.delete(a));let b=this.contracts.snapshot().find(a=>"draft-approved"===a.status&&a.sourceOnlyDraft&&!this.records.has(a.referenceId)&&(!this.input.scope?.sectionIds?.length||this.input.scope.sectionIds.includes(a.sectionId))),c=this.contracts.currentPlan();if(!b||!c)return;let d={referenceId:b.referenceId,sectionId:b.sectionId,contractHash:b.contractHash,actorId:"early-draft-"+(0,w.Fu)([b.referenceId,b.contractHash,this.retries.get(b.referenceId)??0]).slice(0,20),originalStructure:c,status:"running"};this.records.set(b.referenceId,d),this.task=Promise.resolve().then(async()=>{this.save();try{d.result=await this.write(d,b),this.contracts.assertSourceDraft(c,b.sectionId),d.status="ready"}catch(a){d.status="failed",d.error=a instanceof Error?a.message:String(a),this.attempts.delete(d.referenceId)}this.save()}).catch(a=>{this.fatal=a}).finally(()=>{this.task=void 0,this.dispatch()}),this.task.catch(()=>{})}async seal(){if(this.closed=!0,this.unsubscribe(),this.task&&await this.task,this.fatal)throw this.fatal;this.save()}async cancel(a){if(this.closed=!0,this.unsubscribe(),this.controller.abort(a),this.contracts.cancel(a),this.task&&await this.task,this.fatal)throw this.fatal;this.save()}assertBudget(a){let b=(0,l.En)(this.input.budget);if("report-only"===b.enforcement)return;let c=(0,l.r0)({sections:[a],calls:(this.input.diagnostics.llm.callLog??[]).map(a=>({inputTokens:a.inputTokens,providerAttempts:a.transportActivities?.filter(a=>"not-started"!==a.providerInvocation).length??a.providerAttempts,unknownAttempts:a.transportActivities?.filter(a=>"not-started"!==a.providerInvocation&&!a.usage).length??0,sectionId:a.sectionId??this.sectionOfActor(a.actorId),role:a.kind?.includes("review")?"review":"reasoning"===a.taskKind?"think":"author"}))},{unknownCallUpperBound:b.perSection.maxInputTokens});if((0,l.Ag)(c,b).violations.length)throw Error("EARLY_DRAFT_SHARED_BUDGET_EXHAUSTED")}async write(a,b){let c=this.input,d=a.originalStructure;this.contracts.assertSourceDraft(d,b.sectionId);let e=(0,r.documentOutlineFromStructurePlan)(d,{planningContext:c.planningContext,confirmed:c.confirmed}),f=(0,q.compileContractFromConfirmedChapters)({confirmed:c.confirmed,project:c.project,title:c.title,requirement:c.requirement,runId:c.runId,documentId:c.documentId,outline:e}),i=g().join(c.directory,a.actorId),{store:p}=(0,k.openConstructionWorkspace)({projectRoot:c.projectRoot,directory:i,identity:{projectId:c.projectRoot,documentId:c.documentId,sourceSnapshotId:c.project.snapshotId,contractId:f.id},project:c.project,contract:f,workspace:(0,n.emptyConstructionWorkspace)(f,c.project,"局部批准的提前草稿;尚无全局交付资格"),sourceRunId:c.sourceRunId,sourceBuildId:c.sourceBuildId,evidence:c.evidence}),v=new Map,w=!1,x=AbortSignal.any([this.controller.signal,...c.signal?[c.signal]:[]]),y=(...a)=>(this.assertBudget(b.sectionId),c.caller(...a)),z=(d,e,f)=>(this.assertBudget(b.sectionId),c.jsonCaller(d,e,{...f,actorId:a.actorId,sectionId:b.sectionId}));try{if(await (0,h.p)({store:p,project:c.project,contract:f,buildId:c.buildId,authority:{actorId:a.actorId,sectionIds:[b.sectionId],memberIndices:c.scope?.memberIndices??(0,o.BI)(c.project).map(a=>a.index),canManageSharedResources:!1},clock:{timelineId:`document-run-${c.documentId}`,timeUnit:{unit:"hour",ticksPerUnit:1},horizon:8760},permissions:["read-current","writing"],sourceDraftOnly:!0,sectionContracts:this.contracts,callerErrorsAreProviderFailures:!0,sectionAuthorAttempts:this.authorAttempts,sectionPlans:v,structurePlan:d,planningContext:c.planningContext,confirmed:c.confirmed,tenderResponsePlan:(0,s.buildConstructionTenderResponsePlan)({confirmed:c.confirmed,contract:f,outline:e,planningContext:c.planningContext,bidComposition:c.bidComposition,runId:c.runId}),bidComposition:c.bidComposition,bidCompositionSources:c.bidCompositionSources,generatedDir:c.artifactDir,nodeLogBaseDir:c.artifactDir,runId:c.runId,diagnostics:c.diagnostics,signal:x,evidence:{projectRoot:c.projectRoot,scopeRootNames:[...c.scopeRootNames],skills:c.skills??[],toolNames:[...m.n]},authorizeRead:()=>!0,caller:y,jsonCaller:z,budget:(0,l.En)(c.budget),system:(0,j.gh)({permissions:["read-current","writing"],responsibilityKey:"source-draft",purpose:"writing",structurePlanning:!0})+"\n本次仅起草已经明确获准、无需待定专业决定/工法/生产计算/执行基准的当前节。先 plan_section,读真实来源,再 write_subsection。所有引用仅能是冻结来源 evidence;不能编造专业决定或填写尚未确定的计算。写完调用 finish_draft,遇未就绪依赖用 wait 如实说明。此稿不锁节、不代表正文独审或交付通过。",goal:`按当前局部合同起草 ${b.sectionId};完成后 finish_draft,等待全局通过后正式正文独审`,initialFocus:{purpose:"writing",entityIds:[]},extraTools:[{name:"finish_draft",description:"保留本节完整提前草稿,结束本次起草;不批准正文或交付。",terminal:!0,parameters:{type:"object",properties:{},additionalProperties:!1},invoke:()=>{this.contracts.assertSourceDraft(d,b.sectionId);let c=v.get(b.sectionId);if(!c)throw Error("EARLY_DRAFT_SECTION_PLAN_REQUIRED");let e=(0,u.Z1)(p,a.actorId,[b.sectionId]).map(a=>a.unit),f=(0,t._J)({structurePlan:d,sectionPlan:c,submitted:[],sectionUnits:e,sourceDraftContracts:this.contracts});return f.passed?(w=!0,{data:{draftReady:!0,professionalAccepted:!1,deliveryApproved:!1},finished:!0}):{data:{draftReady:!1,check:f},feedbackRequired:!0}}}]}),!w)throw Error("EARLY_DRAFT_INCOMPLETE");let g=v.get(b.sectionId),i=p.entity(`section-plan:${b.sectionId}`)?.value?.review;return{plan:g,review:i,units:(0,u.Z1)(p,a.actorId,[b.sectionId]).map(a=>a.unit)}}finally{p.close()}}async adoptOne(a,b){let c=this.contracts.snapshot().find(a=>a.referenceId===b.referenceId);if(!c||c.contractHash!==b.contractHash||"global-approved"!==c.status||!c.sourceOnlyDraft){b.status="invalidated",this.save();return}let d=b.result,e=d.review;if(e?.verdict!=="pass"||e.sectionPlanHash!==d.plan.sectionPlanHash||e.planId!==d.plan.planId)throw Error("EARLY_DRAFT_ORIGINAL_PLAN_REVIEW_REQUIRED");let f=(0,v.Av)({structurePlan:a.structurePlan,sectionId:b.sectionId,confirmed:a.confirmed,planningContext:a.planningContext,caller:a.jsonCaller,contracts:this.contracts,originalStructure:b.originalStructure,original:d.plan});if(a.sectionPlans.has(b.sectionId)||(0,u.Z1)(a.store,a.authority.actorId,[b.sectionId]).length)throw Error("EARLY_DRAFT_ADOPTION_TARGET_OCCUPIED");a.sectionPlans.set(b.sectionId,f);let g=(0,i.F)({...a,excludeTools:[],deferBodyReview:!0,reusedSectionReview:a=>a===b.sectionId?{originalReview:d.review,originalStructureHash:b.originalStructure.planHash,originalSectionPlanHash:d.plan.sectionPlanHash,currentSectionPlanHash:f.sectionPlanHash,localContractHash:b.contractHash,referenceId:b.referenceId,reuse:"same-reviewed-local-contract",newSemanticApproval:!1,bodyReviewRequired:!0}:void 0}),h=g.find(a=>"plan_section"===a.name),j=g.find(a=>"write_subsection"===a.name);if(!h||!j)throw Error("EARLY_DRAFT_ADOPTION_CAPABILITY_REQUIRED");for(let c of(await h.invoke({sectionId:b.sectionId},`early-plan:${b.referenceId}:${f.sectionPlanHash}`),d.units)){let{planHash:d,sectionPlanHash:e,contentContractHash:g,subsectionId:h,sectionIds:i,purpose:k,responsibilityId:l,...m}=c,n=await j.invoke({sectionId:b.sectionId,subsectionId:h,units:[m],reason:"同一运行中已明确批准的相同局部合同草稿转入;正文仍待当前独审"},`early-unit:${b.referenceId}:${c.id}:${f.sectionPlanHash}`);if(n.data?.submitted!==!0)throw Error("EARLY_DRAFT_ADOPTION_REJECTED:"+JSON.stringify(n.data));let o=(0,u.Z1)(a.store,a.authority.actorId,[b.sectionId]).find(a=>a.unit.id===c.id)?.unit,p=a=>{if(!a)return null;let b={...a};for(let a of["planHash","sectionPlanHash","contentContractHash","purpose","responsibilityId","sectionIds"])delete b[a];return b};if((0,w.Fu)(p(o))!==(0,w.Fu)(p(c)))throw Error("EARLY_DRAFT_AUTHORED_VALUE_CHANGED")}let k={referenceId:b.referenceId,contractHash:b.contractHash,originalPlanHash:d.plan.sectionPlanHash,currentPlanHash:f.sectionPlanHash,originalReviewHash:(0,w.Fu)(d.review),authoredUnitsHash:(0,w.Fu)(d.units),bodyReviewRequired:!0};a.onReceipt?.("early-draft-adopted",k),b.status="adopted",b.adoptedBy=a.authority.actorId,this.save()}}}};
|
|
1
|
+
"use strict";exports.id=8570,exports.ids=[8570],exports.modules={78570:(a,b,c)=>{c.d(b,{ConstructionEarlyDrafts:()=>y});var d=c(73024),e=c.n(d),f=c(2313),g=c(76760),h=c.n(g),i=c(38210),j=c(5468),k=c(88390),l=c(55037),m=c(49303),n=c(6906),o=c(13577),p=c(45532),q=c(45002),r=c(40123),s=c(33074),t=c(60702),u=c(45946),v=c(54050),w=c(85254),x=c(745);class y{constructor(a){this.input=a,this.records=new Map,this.failures=[],this.retries=new Map,this.attempts=new Map,this.closed=!1,this.controller=new AbortController,this.accountUnavailable=!1,this.adopting=new Map,this.sectionOfActor=a=>[...this.records.values()].find(b=>b.actorId===a)?.sectionId,this.authorAttempts=a=>{let b=this.contracts.snapshot().find(b=>b.sectionId===a)?.referenceId;if(!b)throw Error("SECTION_ATTEMPT_IDENTITY_REQUIRED");return this.attempts.has(b)||this.attempts.set(b,{used:0}),this.attempts.get(b)},this.adopt=async a=>{if(!this.closed||!a.structurePlan||!a.sectionPlans)throw Error("EARLY_DRAFT_ADOPTION_NOT_SEALED");for(let b of(this.contracts.assertGlobal(a.structurePlan.planHash),a.authority.sectionIds)){let c=[...this.records.values()].find(a=>a.sectionId===b);if(!c||"ready"!==c.status)continue;if(this.adopting.has(b)){await this.adopting.get(b);continue}let d=this.adoptOne(a,c);this.adopting.set(b,d),await d}},this.contracts=new q.G((0,x.Fu)(JSON.parse(JSON.stringify({project:a.project,planningContext:a.planningContext,confirmed:a.confirmed})))),this.unsubscribe=this.contracts.subscribe(()=>this.dispatch())}snapshot(){return structuredClone([...this.records.values()])}save(){e().mkdirSync(this.input.directory,{recursive:!0}),e().writeFileSync(h().join(this.input.directory,"early-drafts.json"),JSON.stringify({runId:this.input.runId,documentId:this.input.documentId,records:this.snapshot(),failures:this.failures,authorAttempts:Object.fromEntries(this.attempts),deliveryApproved:!1},null,2))}dispatch(){if(this.accountUnavailable)return;let a=!1;for(let b of this.records.values()){let c=this.contracts.snapshot().find(a=>a.referenceId===b.referenceId);"ready"!==b.status||c&&c.contractHash===b.contractHash&&["draft-approved","global-approved"].includes(c.status)&&c.sourceOnlyDraft||(b.status="invalidated",a=!0,this.attempts.delete(b.referenceId))}if(a)try{this.save()}catch(a){this.fatal=a}if(this.closed||this.task||this.fatal)return;for(let[a,b]of[...this.records])(function(a,b,c){if("failed"!==a.status||c>=1||!b||"draft-approved"!==b.status||!b.sourceOnlyDraft)return!1;let d=b.contractHash!==a.contractHash,e=/SECTION_SOURCE_DRAFT_NOT_APPROVED|SECTION_CONTRACT_STALE/u.test(a.error??"");return d||e})(b,this.contracts.snapshot().find(b=>b.referenceId===a),this.retries.get(a)??0)&&(this.retries.set(a,(this.retries.get(a)??0)+1),this.failures.push(b),this.records.delete(a),this.attempts.delete(a));let b=this.contracts.snapshot().find(a=>"draft-approved"===a.status&&a.sourceOnlyDraft&&!this.records.has(a.referenceId)&&(!this.input.scope?.sectionIds?.length||this.input.scope.sectionIds.includes(a.sectionId))),c=this.contracts.currentPlan();if(!b||!c)return;let d={referenceId:b.referenceId,sectionId:b.sectionId,contractHash:b.contractHash,actorId:"early-draft-"+(0,x.Fu)([b.referenceId,b.contractHash,this.retries.get(b.referenceId)??0]).slice(0,20),originalStructure:c,status:"running"};this.records.set(b.referenceId,d),this.task=Promise.resolve().then(async()=>{this.save();try{d.result=await this.write(d,b),this.contracts.assertSourceDraft(c,b.sectionId),d.status="ready"}catch(a){(0,f.UM)(a)&&(0,f.zc)(a.receipt.reason)&&(this.accountUnavailable=!0),d.status="failed",d.error=a instanceof Error?a.message:String(a),this.attempts.delete(d.referenceId)}this.save()}).catch(a=>{this.fatal=a}).finally(()=>{this.task=void 0,this.dispatch()}),this.task.catch(()=>{})}async seal(){if(this.closed=!0,this.unsubscribe(),this.task&&await this.task,this.fatal)throw this.fatal;this.save()}async cancel(a){if(this.closed=!0,this.unsubscribe(),this.controller.abort(a),this.contracts.cancel(a),this.task&&await this.task,this.fatal)throw this.fatal;this.save()}assertBudget(a){let b=(0,m.En)(this.input.budget);if("report-only"===b.enforcement)return;let c=(0,m.r0)({sections:[a],calls:(this.input.diagnostics.llm.callLog??[]).map(a=>({inputTokens:a.inputTokens,providerAttempts:a.transportActivities?.filter(a=>"not-started"!==a.providerInvocation).length??a.providerAttempts,unknownAttempts:a.transportActivities?.filter(a=>"not-started"!==a.providerInvocation&&!a.usage).length??0,sectionId:a.sectionId??this.sectionOfActor(a.actorId),role:a.kind?.includes("review")?"review":"reasoning"===a.taskKind?"think":"author"}))},{unknownCallUpperBound:b.perSection.maxInputTokens});if((0,m.Ag)(c,b).violations.length)throw Error("EARLY_DRAFT_SHARED_BUDGET_EXHAUSTED")}async write(a,b){let c=this.input,d=a.originalStructure;this.contracts.assertSourceDraft(d,b.sectionId);let e=(0,s.documentOutlineFromStructurePlan)(d,{planningContext:c.planningContext,confirmed:c.confirmed}),f=(0,r.compileContractFromConfirmedChapters)({confirmed:c.confirmed,project:c.project,title:c.title,requirement:c.requirement,runId:c.runId,documentId:c.documentId,outline:e}),g=h().join(c.directory,a.actorId),{store:j}=(0,l.openConstructionWorkspace)({projectRoot:c.projectRoot,directory:g,identity:{projectId:c.projectRoot,documentId:c.documentId,sourceSnapshotId:c.project.snapshotId,contractId:f.id},project:c.project,contract:f,workspace:(0,o.emptyConstructionWorkspace)(f,c.project,"局部批准的提前草稿;尚无全局交付资格"),sourceRunId:c.sourceRunId,sourceBuildId:c.sourceBuildId,evidence:c.evidence}),q=new Map,w=!1,x=AbortSignal.any([this.controller.signal,...c.signal?[c.signal]:[]]),y=(...a)=>(this.assertBudget(b.sectionId),c.caller(...a)),z=(d,e,f)=>(this.assertBudget(b.sectionId),c.jsonCaller(d,e,{...f,actorId:a.actorId,sectionId:b.sectionId}));try{if(await (0,i.p)({store:j,project:c.project,contract:f,buildId:c.buildId,authority:{actorId:a.actorId,sectionIds:[b.sectionId],memberIndices:c.scope?.memberIndices??(0,p.BI)(c.project).map(a=>a.index),canManageSharedResources:!1},clock:{timelineId:`document-run-${c.documentId}`,timeUnit:{unit:"hour",ticksPerUnit:1},horizon:8760},permissions:["read-current","writing"],sourceDraftOnly:!0,sectionContracts:this.contracts,callerErrorsAreProviderFailures:this.input.callerErrorsAreProviderFailures??!1,sectionAuthorAttempts:this.authorAttempts,sectionPlans:q,structurePlan:d,planningContext:c.planningContext,confirmed:c.confirmed,tenderResponsePlan:(0,t.buildConstructionTenderResponsePlan)({confirmed:c.confirmed,contract:f,outline:e,planningContext:c.planningContext,bidComposition:c.bidComposition,runId:c.runId}),bidComposition:c.bidComposition,bidCompositionSources:c.bidCompositionSources,generatedDir:c.artifactDir,nodeLogBaseDir:c.artifactDir,runId:c.runId,diagnostics:c.diagnostics,signal:x,evidence:{projectRoot:c.projectRoot,scopeRootNames:[...c.scopeRootNames],skills:c.skills??[],toolNames:[...n.n]},authorizeRead:()=>!0,caller:y,jsonCaller:z,budget:(0,m.En)(c.budget),system:(0,k.gh)({permissions:["read-current","writing"],responsibilityKey:"source-draft",purpose:"writing",structurePlanning:!0})+"\n本次仅起草已经明确获准、无需待定专业决定/工法/生产计算/执行基准的当前节。先 plan_section,读真实来源,再 write_subsection。所有引用仅能是冻结来源 evidence;不能编造专业决定或填写尚未确定的计算。写完调用 finish_draft,遇未就绪依赖用 wait 如实说明。此稿不锁节、不代表正文独审或交付通过。",goal:`按当前局部合同起草 ${b.sectionId};完成后 finish_draft,等待全局通过后正式正文独审`,initialFocus:{purpose:"writing",entityIds:[]},extraTools:[{name:"finish_draft",description:"保留本节完整提前草稿,结束本次起草;不批准正文或交付。",terminal:!0,parameters:{type:"object",properties:{},additionalProperties:!1},invoke:()=>{this.contracts.assertSourceDraft(d,b.sectionId);let c=q.get(b.sectionId);if(!c)throw Error("EARLY_DRAFT_SECTION_PLAN_REQUIRED");let e=(0,v.Z1)(j,a.actorId,[b.sectionId]).map(a=>a.unit),f=(0,u._J)({structurePlan:d,sectionPlan:c,submitted:[],sectionUnits:e,sourceDraftContracts:this.contracts});return f.passed?(w=!0,{data:{draftReady:!0,professionalAccepted:!1,deliveryApproved:!1},finished:!0}):{data:{draftReady:!1,check:f},feedbackRequired:!0}}}]}),!w)throw Error("EARLY_DRAFT_INCOMPLETE");let g=q.get(b.sectionId),h=j.entity(`section-plan:${b.sectionId}`)?.value?.review;return{plan:g,review:h,units:(0,v.Z1)(j,a.actorId,[b.sectionId]).map(a=>a.unit)}}finally{j.close()}}async adoptOne(a,b){let c=this.contracts.snapshot().find(a=>a.referenceId===b.referenceId);if(!c||c.contractHash!==b.contractHash||"global-approved"!==c.status||!c.sourceOnlyDraft){b.status="invalidated",this.save();return}let d=b.result,e=d.review;if(e?.verdict!=="pass"||e.sectionPlanHash!==d.plan.sectionPlanHash||e.planId!==d.plan.planId)throw Error("EARLY_DRAFT_ORIGINAL_PLAN_REVIEW_REQUIRED");let f=(0,w.Av)({structurePlan:a.structurePlan,sectionId:b.sectionId,confirmed:a.confirmed,planningContext:a.planningContext,caller:a.jsonCaller,contracts:this.contracts,originalStructure:b.originalStructure,original:d.plan});if(a.sectionPlans.has(b.sectionId)||(0,v.Z1)(a.store,a.authority.actorId,[b.sectionId]).length)throw Error("EARLY_DRAFT_ADOPTION_TARGET_OCCUPIED");a.sectionPlans.set(b.sectionId,f);let g=(0,j.F)({...a,excludeTools:[],deferBodyReview:!0,reusedSectionReview:a=>a===b.sectionId?{originalReview:d.review,originalStructureHash:b.originalStructure.planHash,originalSectionPlanHash:d.plan.sectionPlanHash,currentSectionPlanHash:f.sectionPlanHash,localContractHash:b.contractHash,referenceId:b.referenceId,reuse:"same-reviewed-local-contract",newSemanticApproval:!1,bodyReviewRequired:!0}:void 0}),h=g.find(a=>"plan_section"===a.name),i=g.find(a=>"write_subsection"===a.name);if(!h||!i)throw Error("EARLY_DRAFT_ADOPTION_CAPABILITY_REQUIRED");for(let c of(await h.invoke({sectionId:b.sectionId},`early-plan:${b.referenceId}:${f.sectionPlanHash}`),d.units)){let{planHash:d,sectionPlanHash:e,contentContractHash:g,subsectionId:h,sectionIds:j,purpose:k,responsibilityId:l,...m}=c,n=await i.invoke({sectionId:b.sectionId,subsectionId:h,units:[m],reason:"同一运行中已明确批准的相同局部合同草稿转入;正文仍待当前独审"},`early-unit:${b.referenceId}:${c.id}:${f.sectionPlanHash}`);if(n.data?.submitted!==!0)throw Error("EARLY_DRAFT_ADOPTION_REJECTED:"+JSON.stringify(n.data));let o=(0,v.Z1)(a.store,a.authority.actorId,[b.sectionId]).find(a=>a.unit.id===c.id)?.unit,p=a=>{if(!a)return null;let b={...a};for(let a of["planHash","sectionPlanHash","contentContractHash","purpose","responsibilityId","sectionIds"])delete b[a];return b};if((0,x.Fu)(p(o))!==(0,x.Fu)(p(c)))throw Error("EARLY_DRAFT_AUTHORED_VALUE_CHANGED")}let k={referenceId:b.referenceId,contractHash:b.contractHash,originalPlanHash:d.plan.sectionPlanHash,currentPlanHash:f.sectionPlanHash,originalReviewHash:(0,x.Fu)(d.review),authoredUnitsHash:(0,x.Fu)(d.units),bodyReviewRequired:!0};a.onReceipt?.("early-draft-adopted",k),b.status="adopted",b.adoptedBy=a.authority.actorId,this.save()}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_buildManifest.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar"><a class="sidebarLogo" aria-label="Customize Agent" href="/generation"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div></a><nav class="sidebarNav mt-2"><a href="/generation"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="sidebarLabel sr-only">生成</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel sr-only">知识库</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hammer"><path d="m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9"></path><path d="m18 15 4-4"></path><path d="m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"></path></svg><span class="sidebarLabel sr-only">技能库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel sr-only">模型配置</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel sr-only">设置</span></div></a></nav></aside><div class="mainContent"><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470","nextExport":true,"isFallback":false,"gip":true,"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, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/_error-282257fbdcc167b4.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_buildManifest.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar"><a class="sidebarLogo" aria-label="Customize Agent" href="/generation"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div></a><nav class="sidebarNav mt-2"><a href="/generation"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="sidebarLabel sr-only">生成</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel sr-only">知识库</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hammer"><path d="m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9"></path><path d="m18 15 4-4"></path><path d="m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"></path></svg><span class="sidebarLabel sr-only">技能库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel sr-only">模型配置</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel sr-only">设置</span></div></a></nav></aside><div class="mainContent"><main class="mainInner"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470","nextExport":true,"isFallback":false,"gip":true,"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, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/documents-2d99ae9287f9739b.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/pages/documents-2d99ae9287f9739b.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_buildManifest.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar"><a class="sidebarLogo" aria-label="Customize Agent" href="/generation"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div></a><nav class="sidebarNav mt-2"><a href="/generation"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="sidebarLabel sr-only">生成</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel sr-only">知识库</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hammer"><path d="m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9"></path><path d="m18 15 4-4"></path><path d="m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"></path></svg><span class="sidebarLabel sr-only">技能库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel sr-only">模型配置</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel sr-only">设置</span></div></a></nav></aside><div class="mainContent"><main class="mainInner"></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/documents","query":{},"buildId":"0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470","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, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/855-cbf7cd1db33198f0.js" defer=""></script><script src="/_next/static/chunks/551-fd86e95935b0957f.js" defer=""></script><script src="/_next/static/chunks/210-71eaf9de9aa92051.js" defer=""></script><script src="/_next/static/chunks/702-4d9cc8d4d7775ea9.js" defer=""></script><script src="/_next/static/chunks/399-aa8a45d80e989621.js" defer=""></script><script src="/_next/static/chunks/576-6699fed6c88502fe.js" defer=""></script><script src="/_next/static/chunks/499-2233cadc6d4da647.js" defer=""></script><script src="/_next/static/chunks/61-de1dd9c104680470.js" defer=""></script><script src="/_next/static/chunks/112-9eacc7c0686813d6.js" defer=""></script><script src="/_next/static/chunks/333-7642e65bff6b8465.js" defer=""></script><script src="/_next/static/chunks/350-87b9c900a356d9b9.js" defer=""></script><script src="/_next/static/chunks/326-a3915e61888b0dbf.js" defer=""></script><script src="/_next/static/chunks/pages/generation/%5Bid%5D-a68a5227f83f0c9b.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/b420c193e0e99857.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b420c193e0e99857.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-6224d37324e372cb.js" defer=""></script><script src="/_next/static/chunks/framework-4b565b3ddc94cdac.js" defer=""></script><script src="/_next/static/chunks/main-0c91f573696223ca.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a70de062f1be1c59.js" defer=""></script><script src="/_next/static/chunks/855-cbf7cd1db33198f0.js" defer=""></script><script src="/_next/static/chunks/551-fd86e95935b0957f.js" defer=""></script><script src="/_next/static/chunks/210-71eaf9de9aa92051.js" defer=""></script><script src="/_next/static/chunks/702-4d9cc8d4d7775ea9.js" defer=""></script><script src="/_next/static/chunks/399-aa8a45d80e989621.js" defer=""></script><script src="/_next/static/chunks/576-6699fed6c88502fe.js" defer=""></script><script src="/_next/static/chunks/499-2233cadc6d4da647.js" defer=""></script><script src="/_next/static/chunks/61-de1dd9c104680470.js" defer=""></script><script src="/_next/static/chunks/112-9eacc7c0686813d6.js" defer=""></script><script src="/_next/static/chunks/333-7642e65bff6b8465.js" defer=""></script><script src="/_next/static/chunks/350-87b9c900a356d9b9.js" defer=""></script><script src="/_next/static/chunks/326-a3915e61888b0dbf.js" defer=""></script><script src="/_next/static/chunks/pages/generation/%5Bid%5D-a68a5227f83f0c9b.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_buildManifest.js" defer=""></script><script src="/_next/static/0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar"><a class="sidebarLogo" aria-label="Customize Agent" href="/generation"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div></a><nav class="sidebarNav mt-2"><a href="/generation"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wand-sparkles"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72"></path><path d="m14 7 3 3"></path><path d="M5 6v4"></path><path d="M19 14v4"></path><path d="M10 2v2"></path><path d="M7 8H3"></path><path d="M21 16h-4"></path><path d="M11 3H9"></path></svg><span class="sidebarLabel sr-only">生成</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-library-big"><rect width="8" height="18" x="3" y="3" rx="1"></rect><path d="M7 3v18"></path><path d="M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z"></path></svg><span class="sidebarLabel sr-only">知识库</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hammer"><path d="m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9"></path><path d="m18 15 4-4"></path><path d="m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5"></path></svg><span class="sidebarLabel sr-only">技能库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel sr-only">模型配置</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel sr-only">设置</span></div></a></nav></aside><div class="mainContent"><main class="mainInner mainInnerGeneration"><div class="appShellPlaceholder"><div class="ant-spin ant-spin-spinning ant-spin-section css-1pi45l5 css-var-_R_56_" style="margin:48px" aria-live="polite" aria-busy="true"><span class="ant-spin-dot-holder"><span class="ant-spin-dot ant-spin-dot-spin"><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i></span></span></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/generation/[id]","query":{},"buildId":"0a7dcc1a55366989036803a9385f2f2bb0170d01c8eb8de1040d939533a19470","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|