@sapienx/agentos 0.6.4 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +7 -0
  2. package/bin/agentos.js +70 -14
  3. package/bundle/.next/BUILD_ID +1 -1
  4. package/bundle/.next/app-path-routes-manifest.json +14 -14
  5. package/bundle/.next/build-manifest.json +2 -2
  6. package/bundle/.next/prerender-manifest.json +3 -3
  7. package/bundle/.next/required-server-files.json +1 -1
  8. package/bundle/.next/server/app/_global-error.html +1 -1
  9. package/bundle/.next/server/app/_global-error.rsc +1 -1
  10. package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/bundle/.next/server/app/_not-found/page.js +12 -1
  17. package/bundle/.next/server/app/_not-found.html +12 -1
  18. package/bundle/.next/server/app/_not-found.rsc +1 -1
  19. package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  20. package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  22. package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/bundle/.next/server/app/accounts/page.js.nft.json +1 -1
  26. package/bundle/.next/server/app/agents/page.js.nft.json +1 -1
  27. package/bundle/.next/server/app/api/accounts/access-rules/route.js.nft.json +1 -1
  28. package/bundle/.next/server/app/api/accounts/login-targets/route.js.nft.json +1 -1
  29. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
  30. package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
  31. package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
  32. package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
  33. package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
  34. package/bundle/.next/server/app/api/models/catalog/route.js +1 -1
  35. package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  36. package/bundle/.next/server/app/api/models/providers/route.js +1 -1
  37. package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
  38. package/bundle/.next/server/app/api/onboarding/models/route.js +1 -1
  39. package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
  40. package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  41. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js.nft.json +1 -1
  42. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  43. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  44. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  45. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  46. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  47. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  48. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  49. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  50. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  51. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
  52. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  53. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  54. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  55. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  56. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
  57. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  58. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  59. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  60. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  61. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  62. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
  63. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  64. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/reconcile/route.js.nft.json +1 -1
  65. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  66. package/bundle/.next/server/app/files/page.js.nft.json +1 -1
  67. package/bundle/.next/server/app/integrations/page.js.nft.json +1 -1
  68. package/bundle/.next/server/app/models/page.js.nft.json +1 -1
  69. package/bundle/.next/server/app/page.js.nft.json +1 -1
  70. package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
  71. package/bundle/.next/server/app/tasks/page.js.nft.json +1 -1
  72. package/bundle/.next/server/app-paths-manifest.json +14 -14
  73. package/bundle/.next/server/chunks/1718.js +2 -2
  74. package/bundle/.next/server/chunks/2082.js +2 -2
  75. package/bundle/.next/server/chunks/4767.js +1 -1
  76. package/bundle/.next/server/chunks/6476.js +2 -1
  77. package/bundle/.next/server/chunks/707.js +12 -1
  78. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  79. package/bundle/.next/server/middleware.js +3 -3
  80. package/bundle/.next/server/pages/404.html +12 -1
  81. package/bundle/.next/server/pages/500.html +1 -1
  82. package/bundle/.next/server/server-reference-manifest.json +1 -1
  83. package/bundle/server.js +1 -1
  84. package/package.json +1 -1
  85. /package/bundle/.next/static/{3q7KIyMtqsdnXjlJlEHq3 → Pe2Qv8_zpxfA-X03dV603}/_buildManifest.js +0 -0
  86. /package/bundle/.next/static/{3q7KIyMtqsdnXjlJlEHq3 → Pe2Qv8_zpxfA-X03dV603}/_ssgManifest.js +0 -0
@@ -132,8 +132,8 @@ ${c.map(e).join("\n")}`),d.length>0&&f.push(`## Assumptions
132
132
  ${d.map(e).join("\n")}`),f.length>0?`
133
133
  ${f.join("\n\n")}
134
134
  `:""}},15612:(a,b,c)=>{c.d(b,{GH:()=>l,P0:()=>j,eY:()=>f,hh:()=>i,sg:()=>k});var d=c(93628),e=c(14853);let f={workspaceOnly:!0,generateStarterDocs:!0,generateMemory:!0,kickoffMission:!0},g={software:{label:"Software project",description:"Default project template for engineering delivery.",icon:"\uD83D\uDEE0"},frontend:{label:"Frontend app",description:"UI and experience work with browser-aware support.",icon:"\uD83C\uDFA8"},backend:{label:"Backend/API",description:"Services, infrastructure, and backend-oriented workflows.",icon:"⚙️"},research:{label:"Research",description:"Investigation-heavy workspace with synthesis and memory capture.",icon:"\uD83E\uDDE0"},content:{label:"Content/Growth",description:"Messaging, content production, campaign review, and analysis.",icon:"\uD83D\uDCE3"}},h={software:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements requested changes and drives delivery forward."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Reviews work for correctness, regressions, and product risk."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Validates behavior, tests, and environment assumptions."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Consolidates durable project knowledge and memory."}],frontend:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements UI and frontend product work."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Reviews interaction, correctness, and regression risk."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Checks behavior, responsive states, and verification gaps."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Maintains stable product and implementation knowledge."},{id:"browser",role:"Browser Agent",name:"Browser Agent",emoji:"\uD83C\uDF10",theme:"blue",skillId:"project-browser",description:"Exercises browser flows, captures UI evidence, and validates user paths."}],backend:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements service, API, and infrastructure changes."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Catches correctness, data handling, and operational risks."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Validates APIs, background jobs, migrations, and failure paths."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Maintains architecture notes and durable operational memory."}],research:[{id:"researcher",role:"Research Lead",name:"Research Lead",emoji:"\uD83D\uDD2C",theme:"violet",skillId:"project-researcher",isPrimary:!0,description:"Runs investigations, frames questions, and synthesizes findings."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Pressure-tests claims, assumptions, and interpretation quality."},{id:"learner",role:"Archivist",name:"Archivist",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Distills durable research notes, memory, and takeaways."}],content:[{id:"strategist",role:"Strategist",name:"Strategist",emoji:"\uD83D\uDCE3",theme:"orange",skillId:"project-strategist",isPrimary:!0,description:"Frames audience, goals, positioning, and campaign direction."},{id:"writer",role:"Writer",name:"Writer",emoji:"✍️",theme:"sky",skillId:"project-writer",description:"Drafts content, messaging, and campaign assets."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Edits for clarity, quality, and consistency."},{id:"analyst",role:"Analyst",name:"Analyst",emoji:"\uD83D\uDCC8",theme:"emerald",skillId:"project-analyst",description:"Tracks results, experiments, and performance insights."}]};function i(a){return g[a]}function j(a,b,c){let e=h[a];if("solo"===b){let a=e.find(a=>a.isPrimary)??e[0];return[{...a,name:k(c,a.role,"Builder"===a.role?"Default Agent":a.name),policy:(0,d.g0)("browser"===a.id?"browser":"worker"),enabled:!0}]}return e.map(a=>({id:a.id,role:a.role,name:a.isPrimary?k(c,a.role,a.name):a.name,emoji:a.emoji,theme:a.theme,skillId:a.skillId,modelId:a.modelId,isPrimary:!!a.isPrimary,policy:(0,d.g0)("browser"===a.id?"browser":"worker"),enabled:!0}))}function k(a,b,c){let d=function(a){let b=a?.trim();if(!b)return"";let c=(!/\s/.test(b)&&b.includes(".")?b.split(".")[0]:b).replace(/[^A-Za-z0-9\u00C0-\u024F]+/g," ").trim();return c?c.split(/\s+/).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):""}(a);if(!d)return c;let e=b.trim();return e?`${d} ${e}`:d}function l(a,b){return(0,e.nt)(a,b)}},16588:(a,b,c)=>{c.d(b,{Rp:()=>k,Z3:()=>p,cD:()=>l,co:()=>j,nU:()=>q,wZ:()=>m});var d=c(51455),e=c(76760),f=c.n(e),g=c(71065);function h(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}async function i(a,b){try{let c=await (0,d.stat)(a);return"directory"===b?c.isDirectory():c.isFile()}catch{return!1}}function j(a){return{id:a.workspaceId,name:a.name,slug:f().basename(a.workspacePath),path:a.workspacePath,kind:"workspace",agentIds:[],modelIds:[],activeRuntimeIds:[],totalSessions:0,health:"standby",bootstrap:{template:null,sourceMode:null,agentTemplate:null,coreFiles:[],optionalFiles:[],folders:[],projectShell:[],localSkillIds:[]},capabilities:{skills:[],tools:[],workspaceOnlyAgentCount:0},channels:[]}}function k(a,b){return a.workspaceOnly===b.workspaceOnly&&a.generateStarterDocs===b.generateStarterDocs&&a.generateMemory===b.generateMemory&&a.kickoffMission===b.kickoffMission}function l(a,b){if(a.length!==b.length)return!1;let c=a=>({id:a.id.trim(),role:a.role.trim(),name:a.name.trim(),enabled:a.enabled,emoji:h(a.emoji)??null,theme:h(a.theme)??null,skillId:h(a.skillId)??null,modelId:h(a.modelId)??null,isPrimary:!!a.isPrimary,policy:a.policy?{preset:a.policy.preset,missingToolBehavior:a.policy.missingToolBehavior,installScope:a.policy.installScope,fileAccess:a.policy.fileAccess,networkAccess:a.policy.networkAccess}:null,heartbeat:a.heartbeat?{enabled:a.heartbeat.enabled,every:h(a.heartbeat.every)??null}:null,channelIds:Array.from(new Set((a.channelIds??[]).filter(Boolean))).sort((a,b)=>a.localeCompare(b))}),d=(a,b)=>a.id.localeCompare(b.id),e=[...a].sort(d).map(c),f=[...b].sort(d).map(c);return JSON.stringify(e)===JSON.stringify(f)}async function m(a){let b=new Set;for(let c of(await (0,d.readdir)(a,{withFileTypes:!0})))c.isFile()&&o(c.name)&&b.add(c.name);for(let c of["docs","memory"]){let d=f().join(a,c);if(await i(d,"directory"))for(let a of(await n(d,c)))b.add(a)}let c=f().join(a,"deliverables","README.md");return await i(c,"file")&&b.add("deliverables/README.md"),Array.from(b).sort((a,b)=>a.localeCompare(b))}async function n(a,b){let c=[];for(let e of(await (0,d.readdir)(a,{withFileTypes:!0}))){if(e.name.startsWith("."))continue;let d=f().join(b,e.name),g=f().join(a,e.name);if(e.isDirectory()){c.push(...await n(g,d));continue}e.isFile()&&o(e.name)&&c.push(d)}return c}function o(a){return a.toLowerCase().endsWith(".md")}async function p(a,b){return Promise.all(b.map(async b=>({id:b.id,label:b.label,present:await i(f().join(a,b.relativePath),b.kind)})))}async function q(a){let b=f().join(a,"skills");try{let a=await (0,d.readdir)(b,{withFileTypes:!0});return(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{let c=f().join(b,a.name,"SKILL.md");return await i(c,"file")?a.name:null}))).filter(a=>"string"==typeof a&&!(0,g.If)(a)).sort((a,b)=>a.localeCompare(b))}catch{return[]}}},20078:(a,b,c)=>{c.d(b,{J0:()=>l,ZO:()=>k,cf:()=>j,fx:()=>i});var d=c(51455),e=c(76760),f=c.n(e);let g=f().join(process.cwd(),".mission-control"),h=f().join(g,"agent-chat-sessions.json");async function i(a){let b=a.agentId.trim(),c=a.sessionId.trim();if(!b||!c)return;let e=new Date().toISOString(),f=await m(),i=o([{agentId:b,sessionId:c,workspacePath:a.workspacePath,createdAt:f.sessions.find(a=>a.agentId===b&&a.sessionId===c)?.createdAt??e,updatedAt:e,origin:"agent-chat"},...f.sessions.filter(a=>a.agentId!==b||a.sessionId!==c)]);await (0,d.mkdir)(g,{recursive:!0}),await (0,d.writeFile)(h,`${JSON.stringify({version:1,sessions:i},null,2)}
135
- `,"utf8")}async function j(){return new Map((await m()).sessions.map(a=>[p(a.agentId,a.sessionId),a]))}function k(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=a.agentId&&a.sessionId?b.get(p(a.agentId,a.sessionId)):null;return c?{...a,kind:"direct",origin:c.origin}:a})}function l(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=function(a,b){var c;let d,e,f,g=a.agentId?.trim();if(!g||(d="string"==typeof(c=a).metadata.origin?c.metadata.origin.trim():"",e="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",f="string"==typeof c.metadata.mission?c.metadata.mission.trim():"","mission-dispatch"===d||"agentos-mission-dispatch"===d||e||f||c.taskId?.trim()))return null;for(let c of function(a){let b=[a.sessionId,a.key,"string"==typeof a.metadata.sessionId?a.metadata.sessionId:null,"string"==typeof a.metadata.sessionKey?a.metadata.sessionKey:null,"string"==typeof a.metadata.key?a.metadata.key:null],c=new Set;for(let a of b){let b=a?.trim();if(!b)continue;c.add(b);let d=function(a){let b=":explicit:",c=a.indexOf(b);return -1===c?null:a.slice(c+b.length).split(":")[0]?.trim()||null}(b);d&&c.add(d)}return[...c]}(a)){let a=b.get(p(g,c));if(a)return a}return null}(a,b);return c?{...a,metadata:{...a.metadata,origin:c.origin,kind:"direct",chatType:"direct",agentChatSessionId:c.sessionId}}:a})}async function m(){try{let a=await (0,d.readFile)(h,"utf8"),b=JSON.parse(a),c=Array.isArray(b?.sessions)?b.sessions:[],e=c.length>0?c.map(n).filter(a=>!!a):[];return{version:1,sessions:o(e)}}catch{return{version:1,sessions:[]}}}function n(a){if(!a||"object"!=typeof a)return null;let b="string"==typeof a.agentId?a.agentId.trim():"",c="string"==typeof a.sessionId?a.sessionId.trim():"",d="string"==typeof a.createdAt?a.createdAt:"",e="string"==typeof a.updatedAt?a.updatedAt:d;return!b||!c||Number.isNaN(Date.parse(d))?null:{agentId:b,sessionId:c,workspacePath:"string"==typeof a.workspacePath?a.workspacePath:void 0,createdAt:d,updatedAt:Number.isNaN(Date.parse(e))?d:e,origin:"agent-chat"}}function o(a){let b=Date.now()-12096e5,c=new Set,d=[];for(let e of[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))){let a=Date.parse(e.updatedAt),f=p(e.agentId,e.sessionId);Number.isNaN(a)||a<b||c.has(f)||(c.add(f),d.push(e))}return d.slice(0,200)}function p(a,b){return`${a}:${b}`}},25303:(a,b,c)=>{c.d(b,{Bc:()=>i,Cs:()=>j,N3:()=>h});var d=c(39503),e=c(38798),f=c(65493);let g=null;async function h(a={}){if(!a.force&&g&&Date.now()-g.capturedAt<6e4)return g.value;let b=await k();return g={capturedAt:Date.now(),value:b},b}function i(){return g&&Date.now()-g.capturedAt<6e4?g.value:null}function j(){h().catch(()=>{})}async function k(){var a,b;let c=[],g=await (0,d.rw)().getStatus({timeoutMs:5e3}).catch(a=>(c.push(`status: ${v(a)}`),null)),h=t(g?.runtimeVersion)??t(g?.overview?.version)??t(g?.version),i=null,j=null,k=null,s=[],u=[],w=[],x="unavailable";if((0,e.JG)())x="disabled",c.push("Native Gateway WS is disabled by environment configuration.");else if(1)try{let a=await new e.gH({timeoutMs:2500}).probeNativeHandshake({timeoutMs:2500});x="gateway-handshake",i=o(a),j=p(a),k=q(a),s=r(a),u=m(a),w=n(a)}catch(a){c.push(`handshake: ${v(a)}`)}else{let a=await l(null,["rpc.discover","rpc.methods","system.capabilities","capabilities"],c),b=a?.payload??null;x=a?.method??"unavailable",i=o(b),j=p(b),k=q(b),s=r(b),u=m(b),w=n(b)}let y=new Set(u),z=new Set(w),A=(...a)=>0===y.size?"unknown":a.some(a=>y.has(a))?"supported":"unsupported",B=y.size>0?f.Av.filter(a=>!y.has(a)):[],C=Object.fromEntries(f.zS.map(a=>[a.id,{...((a,b,c=[],d=!0)=>{if((0,e.JG)())return{label:a,mode:"cli-fallback",methods:b,events:c,fallbackAllowed:d,reason:"Native Gateway WS is disabled by environment configuration.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"};if(0===y.size&&0===z.size)return{label:a,mode:"unknown",methods:b,events:c,fallbackAllowed:d,reason:"Gateway did not advertise feature metadata; AgentOS will attempt Gateway first and fall back when needed.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"unknown"};let f=b.find(a=>y.has(a))??null,g=c.some(a=>z.has(a));return f||g?{label:a,mode:"gateway-native",methods:b,events:c,fallbackAllowed:d,reason:f&&f!==b[0]?`OpenClaw Gateway advertises compatibility alias ${f}.`:"OpenClaw Gateway advertises native support.",preferredMethod:b[0]??null,supportedMethod:f,aliasMethods:b.slice(1),compatibility:f&&f!==b[0]?"alias":"preferred"}:{label:a,mode:d?"degraded":"disabled",methods:b,events:c,fallbackAllowed:d,reason:d?"OpenClaw Gateway does not advertise native support; AgentOS will use compatibility fallback.":"OpenClaw Gateway does not advertise native support and no safe fallback is available.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"}})(a.label,a.methods,a.events??[],a.fallbackAllowed??!0),baseline:a.baseline}])),D=(0,e.Lo)().map(a=>({...a,operationLabel:(0,f.Hi)(a.operation)})),E=D.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),F=Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a,b])=>`${a}: ${b.reason}`),G=Object.entries(C).filter(([,a])=>"alias"===a.compatibility&&a.supportedMethod).map(([a,b])=>`${a}: ${b.supportedMethod}`),H=function(a){if(!a)return"unknown";let b=Number(a);return Number.isFinite(b)?b>=e.aj.min&&b<=e.aj.max?"compatible":"unsupported":"unknown"}(i),I=new Date().toISOString(),J=function(a){let b=a.methodSet.size>0?f.Av.filter(b=>!a.methodSet.has(b)):[],c=a.methodSet.size>0?f.rp.filter(b=>!a.methodSet.has(b)):[],d=a.methodSet.size>0?f.Dq.filter(b=>!a.methodSet.has(b)):[];if("disabled"===a.source)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:[],optionalMethodCount:f.rp.length,missingOptionalMethods:[],experimentalMethodCount:f.Dq.length,missingExperimentalMethods:[],reason:"Native Gateway WS is disabled by environment configuration, so AgentOS cannot compare advertised Gateway methods."};if(0===a.methodSet.size)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:[],optionalMethodCount:f.rp.length,missingOptionalMethods:[],experimentalMethodCount:f.Dq.length,missingExperimentalMethods:[],reason:"OpenClaw Gateway did not advertise method metadata; AgentOS treats compatibility as unknown and will retry on the next capability refresh."};let e=Object.entries(a.operations).filter(([,a])=>"required"===a.baseline&&"missing"===a.compatibility).map(([a])=>a),g=b.length>0?"drift":"advertised";return{status:g,checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:a.methodSet.size,missingMethodCount:b.length,missingMethods:b,missingOperations:e,baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:b,optionalMethodCount:f.rp.length,missingOptionalMethods:c,experimentalMethodCount:f.Dq.length,missingExperimentalMethods:d,reason:"advertised"===g?`OpenClaw Gateway advertises every required ${f.iG} baseline method; optional and experimental gaps are informational.`:`OpenClaw Gateway advertised method metadata, but one or more required ${f.iG} baseline methods are missing.`}}({checkedAt:I,source:x,methodSet:y,operations:C,unsupportedGatewayMethods:B});return{detectedAt:I,openClawVersion:h??null,gatewayProtocolVersion:i,requestedProtocolRange:e.aj,authMode:j,authRole:k,authScopes:s,supportedMethods:u,supportedEvents:w,configSchema:A("config.schema"),configSchemaLookup:A(...(0,f.P5)("configSchemaLookup")),configPatch:A(...(0,f.P5)("configPatch")),chatEvents:"supported"===A(...(0,f.P5)("missionDispatch"),"chat.history")||((0,f.jW)("missionStream").events??[]).some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",logsTail:A(...(0,f.P5)("logsTail")),cronRead:A(...(0,f.P5)("cronRead")),channels:A(...(0,f.P5)("channels")),skills:A(...(0,f.P5)("skills")),approvals:A(...(0,f.P5)("execApprovals"),"plugin.approval.list","plugin.approval.resolve"),updates:A(...(0,f.P5)("updates")),nativeMissionDispatch:A(...(0,f.P5)("missionDispatch")),nativeAgentLifecycle:A(...(0,f.P5)("agentCreate"),...(0,f.P5)("agentUpdate"),...(0,f.P5)("agentDelete")),eventBridge:"supported"===A(...(0,f.P5)("missionStream"),...(0,f.P5)("taskEvents"))||["chat","agent","session.message","session.tool","task","task.updated","task.completed","artifact","artifact.updated","exec.approval.requested","plugin.approval.requested"].some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",operations:C,compatibility:{protocol:{status:H,version:i,reason:(a=i,"compatible"===(b=H)?`Gateway protocol ${a} is within AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"unsupported"===b?`Gateway protocol ${a} is outside AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"Gateway protocol version was not advertised.")},methodContract:J,nativeOperationCount:Object.values(C).filter(a=>"gateway-native"===a.mode).length,degradedOperationCount:Object.values(C).filter(a=>"degraded"===a.mode||"cli-fallback"===a.mode).length,unknownOperationCount:Object.values(C).filter(a=>"unknown"===a.mode).length,aliasOperations:G,degradedOperations:Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a])=>a)},degradedFeatures:F,fallbackDiagnostics:D,fallbackReasons:E,unsupportedGatewayMethods:B,diagnostics:c}}async function l(a,b,c){for(let d of b)try{return{method:d,payload:await a(d)}}catch(a){c.push(`${d}: ${v(a)}`)}return null}function m(a){var b;return Array.from(new Set([...u(s(a,"methods")),...u(s(s(a,"rpc"),"methods")),...u(s(s(a,"features"),"methods")),...u(s(a,"supportedMethods")),...Array.isArray(b=s(a,"methods"))?b.map(a=>t(s(a,"name"))??t(s(a,"method"))).filter(a=>!!a):[]])).sort()}function n(a){return Array.from(new Set([...u(s(a,"events")),...u(s(s(a,"features"),"events"))])).sort()}function o(a){let b=s(a,"protocolVersion")??s(a,"protocol")??s(s(a,"gateway"),"protocolVersion");return"number"==typeof b&&Number.isFinite(b)?String(b):t(b)}function p(a){return t(s(a,"authMode"))??t(s(s(a,"auth"),"mode"))??t(s(s(a,"security"),"authMode"))??t(s(s(a,"snapshot"),"authMode"))}function q(a){return t(s(a,"role"))??t(s(s(a,"auth"),"role"))??t(s(s(a,"security"),"role"))}function r(a){return Array.from(new Set([...u(s(a,"scopes")),...u(s(s(a,"auth"),"scopes")),...u(s(s(a,"security"),"scopes"))])).sort()}function s(a,b){return a&&"object"==typeof a?a[b]:void 0}function t(a){return"string"==typeof a&&a.trim()?a.trim():null}function u(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.trim().length>0).map(a=>a.trim()):[]}function v(a){return a instanceof Error?a.kind?`${a.kind}: ${a.message}`:a.message:String(a||"OpenClaw Gateway request failed.")}},25793:(a,b,c)=>{c.d(b,{Jw:()=>s,SI:()=>o,V9:()=>l,WU:()=>n,pY:()=>m,qv:()=>p,xZ:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(27091),j=c(14414),k=c(96972);async function l(a,b,c,e){let f=e(a,b,c);if(!a.key?.endsWith(":main")||!a.agentId||!a.sessionId)return[f];let g=c.find(b=>b.id===a.agentId),h=b.find(b=>b.id===a.agentId),j=await n(a.agentId,a.sessionId,g?.workspace||h?.workspace);if(!j)return[f];try{let a=await (0,d.readFile)(j,"utf8"),b=o(a,f,g?.workspace||h?.workspace).filter(a=>!a.prompt.toLowerCase().startsWith("read heartbeat.md if it exists")),c=q(b);if(0===b.length)return[f];return b.slice(-6).reverse().map(a=>(function(a,b,c=b.toolNames){var d,e;let f,g=Date.parse(b.updatedAt),h=(d=b.prompt,e=a.agentId,(f=d.trim())&&(0,i.$m)(f,38)||`${B(e)} run`),j=b.warningSummary?z(`Completed with fallback: ${b.warningSummary}`,90):b.finalText?z(b.finalText,90):"stalled"===b.status?"Waiting for output":"Main session run";return{id:`runtime:${a.sessionId}:${b.id}`,source:"turn",key:`${a.key}:turn:${b.id}`,title:h,subtitle:j,status:b.status,updatedAt:Number.isNaN(g)?a.updatedAt:g,ageMs:Number.isNaN(g)?a.ageMs:Math.max(Date.now()-g,0),agentId:a.agentId,workspaceId:a.workspaceId,modelId:a.modelId,sessionId:a.sessionId,taskId:a.taskId,runId:b.runId||b.id,toolNames:c,tokenUsage:b.tokenUsage,metadata:{...a.metadata,turnId:b.id,turnPrompt:b.prompt,stage:"main.turn",historical:"running"!==b.status,createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary}}})(f,a,c))}catch{return[f]}}async function m(a,b){if("fallback"===b.mode){var c;let b;return c=a,b=new Date().toISOString(),{runtimeId:c.id,sessionId:c.sessionId,taskId:c.taskId,status:"available",finalText:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",finalTimestamp:b,stopReason:"fallback",errorMessage:null,items:[{id:`${c.id}:fallback`,role:"assistant",timestamp:b,text:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",stopReason:"fallback",isError:!1}],createdFiles:[],warnings:[],warningSummary:null}}if(!a.sessionId||!a.agentId)return r(a,t(a,"This runtime does not expose a session transcript yet."));let e=b.agents.find(b=>b.id===a.agentId),f=await n(a.agentId,a.sessionId,e?.workspacePath);if(!f)return r(a,t(a,"No transcript file was found for this runtime session."));try{let b=await (0,d.readFile)(f,"utf8");return s(a,b,e?.workspacePath)}catch(b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"error",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b instanceof Error?b.message:"Unable to read runtime transcript.",items:[],createdFiles:[],warnings:[],warningSummary:null}}}async function n(a,b,c){for(let e of[h().join(f().homedir(),".openclaw","agents",a,"sessions",`${b}.jsonl`),c?h().join(c,".openclaw","agents",a,"sessions",`${b}.jsonl`):null].filter(Boolean))try{return await (0,d.access)(e),e}catch{continue}let e=await x(a,b,c);return e||null}function o(a,b,c){let d=a.split(/\r?\n/).filter(Boolean),e=[],f=c,g=null;for(let a of d)try{var h,i,j;let c=JSON.parse(a);if("session"===c.type&&"string"==typeof c.cwd&&c.cwd.trim()){f=c.cwd.trim();continue}if("custom"===c.type&&"openclaw:prompt-error"===c.customType&&g){g.runId||=c.data?.runId,g.updatedAt=c.timestamp||g.updatedAt,g.errorMessage||=c.data?.error||null;continue}if("message"!==c.type||!c.message?.role)continue;let d=c.message.role;if("assistant"!==d&&"toolResult"!==d&&"user"!==d)continue;let k=function(a=[]){return"string"==typeof a?a.trim():Array.isArray(a)?a.flatMap(a=>{if(("text"===a.type||"output_text"===a.type)&&a.text)return[a.text];if("toolResult"===a.type){var b;let c=(b=a.content,("string"==typeof b?b.trim()||null:Array.isArray(b)&&b.flatMap(a=>"string"==typeof a?[a]:a&&"object"==typeof a?"text"in a&&"string"==typeof a.text?[a.text]:"content"in a&&"string"==typeof a.content?[a.content]:[]:[]).join("\n\n").trim()||null)||a.text);return c?[c]:[]}return[]}).join("\n\n").trim():""}(c.message.content),l=c.message.errorMessage??null,m=function(a,b,c,d){if("toolResult"!==a||!0===b.isError||d)return null;let e=b.details?.exitCode;if("number"!=typeof e||0===e)return null;let f=(b.details?.aggregated||c).split(/\r?\n/).map(a=>a.trim()).filter(Boolean).filter(a=>!/^\(Command exited with code \d+\)$/i.test(a));return z((f.find(a=>!a.startsWith("[WARNING]"))||f.find(a=>a.startsWith("[WARNING]"))||`${b.toolName||"tool"} exited with code ${e}`).replace(/^\[WARNING\]\s*/i,"").trim()||`${b.toolName||"tool"} exited with code ${e}`,160)}(d,c.message,k,l),n="assistant"===d?function(a){if(!Array.isArray(a))return null;let b=a.find(a=>"toolCall"===a.type&&"string"==typeof a.name);return b&&"string"==typeof b.name&&b.name.trim()?{id:"string"==typeof b.id?b.id:null,name:b.name.trim(),arguments:b.arguments}:null}(c.message.content):null,o="assistant"===d&&n&&!k?"toolCall":d,p=k||l||(n?`Called ${n.name}`:"");if(!p&&!("assistant"===d&&(h=c.message.content,Array.isArray(h)&&h.some(a=>"toolCall"===a.type))||"toolResult"===d&&"string"==typeof c.message.toolName&&c.message.toolName.trim()))continue;let q={id:c.id||`${d}-${Date.now()}`,role:o,timestamp:function(a){let b=a.message?.timestamp;if("number"==typeof b&&Number.isFinite(b))return new Date(b).toISOString();if("string"==typeof b&&b.trim()){let a=Date.parse(b);if(!Number.isNaN(a))return new Date(a).toISOString()}return a.timestamp||null}(c)||new Date().toISOString(),text:p,toolName:"toolCall"===o?n?.name:"toolResult"===d?c.message.toolName?.trim()||A(k):void 0,stopReason:"assistant"===d?c.message.stopReason??null:null,errorMessage:l,isWarning:!!m,isError:!!l||!0===c.message.isError||"error"===c.message.stopReason||"aborted"===c.message.stopReason};if("user"===d){g&&e.push(v(g)),g={id:c.id||`turn-${e.length}`,prompt:q.text.replace(/^Sender \(untrusted metadata\):[\s\S]*?```[\s\S]*?```\s*/i,"").replace(/^\[[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim(),sessionId:b.sessionId,runId:void 0,timestamp:q.timestamp,updatedAt:q.timestamp,items:[q],tokenUsage:void 0,errorMessage:null,createdFiles:[],warnings:[],toolNames:[],pendingCreatedFiles:new Map,pendingToolNames:new Set};continue}if(!g)continue;if("assistant"===d&&Array.isArray(c.message.content)){for(let a of c.message.content)if("toolCall"===a.type)for(let b of("string"==typeof a.name&&a.name.trim()&&g.pendingToolNames.add(a.name.trim()),function(a,b){if("write"===a.type||"write"===a.name){let c="string"==typeof a.arguments?.path?a.arguments.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}return"apply_patch"===a.name&&Array.isArray(a.arguments?.changes)?a.arguments.changes.flatMap(a=>{if(!a||"object"!=typeof a)return[];let c="path"in a&&"string"==typeof a.path?a.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}):[]}(a,f)))g.pendingCreatedFiles.set(a.id||`${c.id||"toolCall"}:${b.path}`,b)}if(g.items.push(q),g.updatedAt=q.timestamp,g.errorMessage||=l,m&&!g.warnings.includes(m)&&g.warnings.push(m),"toolResult"===d&&!0!==c.message.isError&&("write"===c.message.toolName||"apply_patch"===c.message.toolName)&&"string"==typeof c.message.toolCallId){let a=g.pendingCreatedFiles.get(c.message.toolCallId);a&&(g.createdFiles.push(a),g.pendingCreatedFiles.delete(c.message.toolCallId))}if("toolResult"===d){let a=c.message.toolName?.trim()||A(q.text)?.trim()||null;a&&g.pendingToolNames.add(a)}if("assistant"===d&&c.message.usage){let a=c.message.usage;g.tokenUsage=(i=g.tokenUsage,j={input:a.input??a.prompt_tokens??0,output:a.output??a.completion_tokens??0,total:a.totalTokens??a.total_tokens??(a.input??a.prompt_tokens??0)+(a.output??a.completion_tokens??0),cacheRead:a.cacheRead??0},i?j.total>i.total?j:i:j)}}catch{continue}return g&&e.push(v(g)),e}function p(a,b){let c="string"==typeof a.metadata.dispatchSubmittedAt?Date.parse(a.metadata.dispatchSubmittedAt):NaN;return Number.isNaN(c)?b:b.filter(a=>{let b=Date.parse(a.updatedAt||a.timestamp);return!Number.isNaN(b)&&b>=c-1500})}function q(a){return y(a.flatMap(a=>a.toolNames))}function r(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b,items:[],createdFiles:[],warnings:[],warningSummary:null}}function s(a,b,c){let d=p(a,o(b,a,c));if("turn"===a.source){let b="string"==typeof a.metadata.turnId?a.metadata.turnId:null,c=b?d.find(a=>a.id===b):function(a,b){let c="string"==typeof a.metadata.mission?a.metadata.mission:null;if(!c)return null;let d=b.filter(a=>(0,j.Dm)(a.prompt,c));if(0===d.length)return null;let e=a.updatedAt??0;return d.sort((a,b)=>{let c=Date.parse(a.updatedAt),d=Date.parse(b.updatedAt);return Math.abs((Number.isNaN(c)?0:c)-e)-Math.abs((Number.isNaN(d)?0:d)-e)})[0]}(a,d);if(c)return u(a,c)}let e=d.at(-1);return e?u(a,e):{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:t(a,"No transcript entries were found for this runtime."),items:[],createdFiles:[],warnings:[],warningSummary:null}}function t(a,b){let c="string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus:null,d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId:null,e="string"==typeof a.metadata.error&&a.metadata.error.trim()?(0,k.bS)(a.metadata.error.trim()):null;return e||(c||d?"stalled"===c||"stalled"===a.status?"Mission dispatch stalled before AgentOS captured transcript output. Check Gateway diagnostics, model readiness, and the dispatch runner details.":"completed"===c||"completed"===a.status?"Mission completed, but AgentOS did not recover a transcript or final output yet. Refresh the snapshot and inspect the OpenClaw session diagnostics if this remains empty.":"Mission dispatch is active, but no transcript output has been captured yet. Wait for the first OpenClaw session update or inspect Gateway diagnostics if it stays empty.":b)}function u(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:b.items.length>0?"available":"missing",finalText:b.finalText,finalTimestamp:b.finalTimestamp,stopReason:b.stopReason,errorMessage:b.errorMessage,items:b.items.slice(-12),createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary,tokenUsage:b.tokenUsage}}function v(a){let{pendingCreatedFiles:b,pendingToolNames:c,...d}=a,e=[...a.items].reverse().find(a=>"assistant"===a.role&&(a.text.trim().length>0||a.errorMessage)),f=a.items.at(-1),g=e?.stopReason??null,h=!!a.errorMessage||e?.isError===!0||"error"===g||"aborted"===g,i=y(a.warnings),j=h?"stalled":f?.role==="assistant"&&f.stopReason&&"toolUse"!==f.stopReason?"completed":"running";return{...d,status:j,finalText:e?.text??null,finalTimestamp:e?.timestamp??null,stopReason:g,errorMessage:a.errorMessage||e?.errorMessage||null,createdFiles:function(a){let b=new Set,c=[];for(let d of a)!d.path||b.has(d.path)||(b.add(d.path),c.push(d));return c}(a.createdFiles),warnings:i,warningSummary:i[0]??null,toolNames:y([...a.pendingToolNames])}}function w(a,b){let c=a.trim();if(!c)return null;let d=h().isAbsolute(c)?h().normalize(c):b?h().resolve(b,c):null;if(!d)return null;let e=b&&d.startsWith(`${h().resolve(b)}${h().sep}`)?h().relative(h().resolve(b),d)||h().basename(d):d;return{path:d,displayPath:e}}async function x(a,b,c){let e=`agent:${a}:explicit:${b}`;for(let g of[h().join(f().homedir(),".openclaw","agents",a,"sessions","sessions.json"),c?h().join(c,".openclaw","agents",a,"sessions","sessions.json"):null].filter(Boolean))try{let a=await (0,d.readFile)(g,"utf8"),c=JSON.parse(a);for(let[a,f]of Object.entries(c))if(f&&(f.sessionId===b||a===e)&&"string"==typeof f.sessionFile)return await (0,d.access)(f.sessionFile),f.sessionFile}catch{continue}return null}function y(a){return Array.from(new Set(a))}function z(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function A(a){let b=a.match(/"tool(Name)?":\s*"([^"]+)"/i);return b?.[2]}function B(a){return a?a.split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):"OpenClaw"}},27091:(a,b,c)=>{function d(a){return a.name?.trim()||a.identityName?.trim()||"OpenClaw"}c.d(b,{$m:()=>g,CK:()=>d,ho:()=>f});let e=[/^Task output routing:/i,/^Agent operating policy:/i];function f(a){let b=a.replace(/\r\n/g,"\n").trim();if(!b)return"";let c=[];for(let a of b.split("\n")){let b=a.trim();if(e.some(a=>a.test(b)))break;c.push(a)}return c.join(" ").replace(/\s+/g," ").trim()}function g(a,b=64){if(!a)return"";let c=f(a);return c?c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`:""}},28182:(a,b,c)=>{c.d(b,{IJ:()=>f,T$:()=>o,Y8:()=>l,bE:()=>g,qA:()=>m,vC:()=>n});var d=c(77598),e=c(27091);function f(a,b){let c=a.filter(a=>!function(a){var b,c;let d,f,g,i="string"==typeof a.metadata.origin?a.metadata.origin:null;if("mission-dispatch"===i||"agentos-mission-dispatch"===i)return!1;if("agent-chat"===i||"agentos-direct-chat"===i)return!0;if("string"==typeof a.metadata.dispatchId&&a.metadata.dispatchId.trim())return!1;let j=h(a)||("string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null);return!!("string"==typeof j&&(b=j,/You are chatting (?:directly )?with the operator inside AgentOS/i.test(b)||/Do not create tasks or mention task cards/i.test(b)||/Messages stay in this drawer and are stored locally in your browser/i.test(b)))||(f="openclaw-gateway-event"!==(d="string"==typeof(c=a).metadata.origin?c.metadata.origin:null)&&"agentos-direct-chat"!==d&&!!c.runId?.trim(),g="openclaw-gateway-event"!==d&&"agentos-direct-chat"!==d&&"string"==typeof c.metadata.runId&&!!c.metadata.runId.trim(),!(c.taskId?.trim()||f||function(a){if("string"!=typeof a.metadata.mission)return null;let b=(0,e.ho)(a.metadata.mission);return b.length>0?b:null}(c)||"string"==typeof c.metadata.taskId&&c.metadata.taskId.trim()||g||"string"==typeof c.metadata.bootstrapStage&&c.metadata.bootstrapStage.trim()||"string"==typeof c.metadata.dispatchStatus&&c.metadata.dispatchStatus.trim())&&!!("openclaw-gateway-event"===i||"string"==typeof a.metadata.chatType&&"direct"===a.metadata.chatType||"string"==typeof a.metadata.kind&&"direct"===a.metadata.kind||function(a){if("session"!==a.source)return!1;let b=a.key.trim(),c=a.title.trim().toLowerCase(),d=a.subtitle.trim().toLowerCase();return/:main$/.test(b)||/:explicit:[^:]+$/.test(b)||"agent session"===c||"main session"===d||"direct session"===d}(a)))}(a)),d=new Map,f=new Map(b.map(a=>{var b;return[a.id,(b=a).name.trim()||b.id]})),i=new Map(b.map(a=>[a.id,a.workspaceId])),j=function(a){let b=new Map;for(let c of a){let a=c.sessionId?.trim(),d="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",e="string"==typeof c.metadata.dispatchSubmittedAt?Date.parse(c.metadata.dispatchSubmittedAt):NaN;if(!a||!d)continue;let f=`${c.agentId??"unknown"}:${a}`,g=b.get(f)??[];g.some(a=>a.dispatchId===d)||(g.push({dispatchId:d,submittedAt:Number.isNaN(e)?null:e}),g.sort((a,b)=>(a.submittedAt??-1/0)-(b.submittedAt??-1/0)),b.set(f,g))}return b}(c);for(let a of c){let b=function(a,b){let c=a.taskId?.trim(),d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",e=h(a),f=a.sessionId?.trim(),g=f?b.get(`${a.agentId??"unknown"}:${f}`)??[]:[],i=a.updatedAt??0,j=g.filter(a=>null===a.submittedAt||i>=a.submittedAt-1500).sort((a,b)=>(b.submittedAt??-1/0)-(a.submittedAt??-1/0))[0]?.dispatchId??"";return d?`dispatch:${d}`:j?`dispatch:${j}`:c?`task:${c}`:e?`mission:${a.agentId??"unknown"}:${n(e)}`:f?`session:${f}`:`runtime:${a.id}`}(a,j),c=d.get(b)??[];c.push(a),d.set(b,c)}return Array.from(d.entries()).map(([a,b])=>g(a,b,f,i)).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function g(a,b,c,d=new Map){var f,r,s;let t,u=[...b].sort(q),v=function(a){let b=a.filter(a=>"turn"===a.source||"string"==typeof a.metadata.turnId);if(b.length>0)return b;let c=a.filter(a=>"string"==typeof a.metadata.dispatchId||"string"==typeof a.metadata.bootstrapStage);return c.length>0?c:a}(u),w=[...v].sort((a,b)=>i(b)-i(a))[0]??v[0]??u[0],x=h(w)||u.map(a=>h(a)).find(Boolean)||null,y=function(a){for(let b of a){let a="string"==typeof b.metadata.routedMission?b.metadata.routedMission.trim():"";if(a)return a}return null}(u),z=function(a){let b=[...a.filter(a=>{var b;return(!!("string"==typeof(b=a).metadata.dispatchId&&b.metadata.dispatchId.trim())||!!h(b))&&!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)}),...a.filter(a=>"string"==typeof a.metadata.turnId),...a.filter(a=>!0===a.metadata.recoveredFromObservation),...a.filter(a=>!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)),...a.filter(a=>!k(a))],c=new Set;for(let a of b){if(c.has(a.id))continue;c.add(a.id);let b=a.subtitle?.trim();if(b&&function(a){let b=a.replace(/\s+/g," ").trim().toLowerCase();return!!b&&"sessions.changed"!==b&&"session.message"!==b}(b))return b}return null}(u),A=z||v.map(a=>a.subtitle?.trim()).find(a=>!!a)||u.map(a=>a.subtitle?.trim()).find(a=>!!a)||"Awaiting OpenClaw updates.",B=o(u.flatMap(a=>l(a)).concat(u.flatMap(a=>(function(a){if("string"!=typeof a||0===a.trim().length)return[];let b=[...a.matchAll(/(?:^|[\s:])((?:\/[^\s`),;]+)+\.[A-Za-z0-9][A-Za-z0-9._-]*)/g),...a.matchAll(/(?:^|[\s(])((?:\.{1,2}\/)?deliverables\/[^\s`),;]+)/g),...a.matchAll(/\]\(((?:\/|\.{1,2}\/|deliverables\/)[^)]+)\)/g),...a.matchAll(/`((?:\/|\.{1,2}\/|deliverables\/)[^`\n]+)`/g)],c=[];for(let a of b){let b=(a[1]||"").trim();b&&function(a){let b=a.trim().replace(/[`'")\],;]+$/g,"");return!(!b||b.endsWith("/"))&&(b.split("/").pop()||"").includes(".")}(b)&&c.push({path:b,displayPath:b})}return o(c)})(a.subtitle)))),C=p(u.flatMap(a=>m(a))),D=function(a){let b=(function(a){let b=new Set,c=[];for(let d of a){if(!d.tokenUsage)continue;let a=function(a){let b="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",c=a.tokenUsage??{input:0,output:0,total:0,cacheRead:0};return[b||a.runId||a.sessionId||a.id,b?"":a.sessionId??"",c.input,c.output,c.total,c.cacheRead??0].join(":")}(d);b.has(a)||(b.add(a),c.push(d))}return c})(a).filter(a=>a.tokenUsage);if(0!==b.length)return b.reduce((a,b)=>({input:a.input+(b.tokenUsage?.input??0),output:a.output+(b.tokenUsage?.output??0),total:a.total+(b.tokenUsage?.total??0),cacheRead:(a.cacheRead??0)+(b.tokenUsage?.cacheRead??0)}),{input:0,output:0,total:0,cacheRead:0})}(u),E=p(u.flatMap(a=>a.agentId?[a.agentId]:[])),F=p(u.flatMap(a=>a.sessionId?[a.sessionId]:[])),G=p(u.flatMap(a=>a.runId?[a.runId]:[])),H=u.filter(a=>"string"==typeof a.metadata.turnId||!0===a.metadata.recoveredFromObservation).length,I=(t=u.map(a=>"string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus.trim():"").filter(Boolean)).includes("cancelled")?"cancelled":t.includes("stalled")?"stalled":t.includes("completed")?"completed":t.includes("running")?"running":t.includes("queued")?"queued":null,J=w?.agentId||E[0],K=J?c.get(J)??null:null,L=function(a,b,c,d){let e=a.map(a=>a.workspaceId?.trim()).find(a=>!!a);if(e)return e;for(let a of p([b,...c].filter(Boolean))){let b=d.get(a)?.trim();if(b)return b}}(u,J,E,d),M=u[0]??null;return{id:(f=a,`task:${n(f)}`),key:a,title:(0,e.$m)(x||w?.title||"Untitled task",52)||"Untitled task",mission:x,subtitle:A,status:function(a,b=null){return b&&j(b)?b:a.some(a=>"running"===a.status)?"running":a.some(a=>"cancelled"===a.status)?"cancelled":a.some(a=>"queued"===a.status)?"queued":a.some(a=>"stalled"===a.status)?"stalled":a.some(a=>"idle"===a.status)?"idle":a[0]?.status??"completed"}(u,I),updatedAt:M?.updatedAt??null,ageMs:M?.ageMs??null,workspaceId:L,primaryAgentId:J,primaryAgentName:K,primaryRuntimeId:w?.id,dispatchId:function(a){for(let b of a)if("string"==typeof b.metadata.dispatchId&&b.metadata.dispatchId.trim())return b.metadata.dispatchId.trim()}(u),runtimeIds:u.map(a=>a.id),agentIds:E,sessionIds:F,runIds:G,runtimeCount:u.length,updateCount:v.filter(a=>"turn"===a.source).length,liveRunCount:(r=u,(s=I)&&j(s)?0:r.filter(a=>"running"===a.status||"queued"===a.status).length),artifactCount:B.length,warningCount:C.length,tokenUsage:D,metadata:{mission:x,routedMission:y,resultPreview:z,turnCount:H,sessionCount:F.length,primaryRuntimeSource:w?.source??null,bootstrapStage:"string"==typeof w?.metadata.bootstrapStage?w.metadata.bootstrapStage:null,dispatchStatus:I??("string"==typeof w?.metadata.dispatchStatus?w.metadata.dispatchStatus:null),dispatchSubmittedAt:"string"==typeof w?.metadata.dispatchSubmittedAt?w.metadata.dispatchSubmittedAt:null,dispatchRunnerStartedAt:"string"==typeof w?.metadata.dispatchRunnerStartedAt?w.metadata.dispatchRunnerStartedAt:null,dispatchHeartbeatAt:"string"==typeof w?.metadata.dispatchHeartbeatAt?w.metadata.dispatchHeartbeatAt:null,dispatchObservedAt:"string"==typeof w?.metadata.dispatchObservedAt?w.metadata.dispatchObservedAt:null,outputDir:"string"==typeof w?.metadata.outputDir?w.metadata.outputDir:null,outputDirRelative:"string"==typeof w?.metadata.outputDirRelative?w.metadata.outputDirRelative:null}}}function h(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=(0,e.ho)(b);return c.length>0?c:null}function i(a){return 8*!!h(a)+6*("string"==typeof a.metadata.dispatchId)+("turn"===a.source?6:"session"===a.source?4:2)+("running"===a.status?3:"queued"===a.status?2:"cancelled"===a.status||"stalled"===a.status?3:"idle"===a.status?2:1)}function j(a){return"completed"===a||"stalled"===a||"cancelled"===a}function k(a){let b="string"==typeof a.metadata.bootstrapStage?a.metadata.bootstrapStage:null;return"accepted"===b||"waiting-for-heartbeat"===b||"waiting-for-runtime"===b||"runtime-observed"===b}function l(a){let b=a.metadata.createdFiles;return Array.isArray(b)?b.flatMap(a=>{if(!a||"object"!=typeof a)return[];let b="path"in a&&"string"==typeof a.path?a.path:null,c="displayPath"in a&&"string"==typeof a.displayPath?a.displayPath:b;return b&&c?[{path:b,displayPath:c}]:[]}):[]}function m(a){let b=a.metadata.warnings;return Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}function n(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}function o(a){let b=new Set,c=[];for(let d of a)!d.path||b.has(d.path)||(b.add(d.path),c.push(d));return c}function p(a){return Array.from(new Set(a.map(a=>(function(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null})(a)).filter(a=>!!a)))}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}},29822:(a,b,c)=>{c.d(b,{v:()=>k});var d=c(39503),e=c(51455),f=c(58889);async function g(a){try{let b=await (0,e.readFile)(a,"utf8"),c=JSON.parse(b),d=c&&"object"==typeof c&&!Array.isArray(c)?c:{version:1,channels:[]},g=Array.isArray(d.channels)?d.channels.map(a=>(0,f.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,f._E)({version:1,channels:g})}}catch(a){return{status:"rejected",reason:a}}}var h=c(75402),i=c(99254),j=c(70262);async function k(a,b={}){let c=await g(h.q6),d="fulfilled"===c.status?c.value:(0,f._E)({version:1,channels:[]}),e="interactive"===a?[]:await (0,i.QT)(),m=(0,i.fy)((0,i.D4)([...e,...(0,i.G7)(d)]),d),n=await (0,j.Mh)({profile:a,channelAccounts:e,channelRegistry:d}),o="interactive"===a?null:await l(),p=(0,j.LB)({registry:d,currentBindings:o,surfaceRuntime:n,configuredAccounts:e,workspaceId:b.workspaceId});return{channelRegistry:d,channelAccounts:m,surfaceRuntime:n,surfaceDrift:p}}async function l(){try{let a=await (0,d.rw)().getConfig("bindings",{timeoutMs:5e3});return Array.isArray(a)?a:[]}catch{return null}}},35456:(a,b,c)=>{c.d(b,{Az:()=>s,FU:()=>m,In:()=>z,SK:()=>v,Yt:()=>r,Zm:()=>l,bC:()=>y,fj:()=>t,go:()=>w,lY:()=>x,qB:()=>n,tl:()=>p,ul:()=>u,wL:()=>o,wi:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(49922);let j=h().join(process.cwd(),".mission-control"),k=h().join(j,"settings.json");function l(a){let b,c=a?.trim();if(!c)return null;let d=/^[a-z][a-z0-9+.-]*:\/\//i.test(c)?c:`ws://${c}`;try{b=new URL(d)}catch{throw Error("Gateway address must be a valid WebSocket URL.")}if("ws:"!==b.protocol&&"wss:"!==b.protocol)throw Error("Gateway address must start with ws:// or wss://.");if(!b.hostname)throw Error("Gateway address must include a hostname.");return b.toString().replace(/\/$/,"")}function m(a){let b=a?.trim();if(!b)return null;if("~"!==b&&!b.startsWith("~/")&&!h().isAbsolute(b))throw Error("Workspace root must be an absolute path or start with ~/.");return n(b)}function n(a){var b;let c=a?.trim();if(!c)return;let d="~"===(b=c)?f().homedir():b.startsWith("~/")?h().join(f().homedir(),b.slice(2)):b,e=h().normalize(d);return e.length>1?e.replace(/[\\/]+$/,""):e}async function o(){return n((await p()).workspaceRoot)??null}async function p(){let a;try{a=await (0,d.readFile)(k,"utf8")}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{};throw a}try{let b=JSON.parse(a),c="string"==typeof b.workspaceRoot?n(b.workspaceRoot):void 0,d=function(a){if(!a||"object"!=typeof a)return;let b=Object.entries("smokeTests"in a&&a.smokeTests&&"object"==typeof a.smokeTests?a.smokeTests:{}).reduce((a,[b,c])=>{if(!c||"object"!=typeof c)return a;let d="string"==typeof c.checkedAt?c.checkedAt:null,e="passed"===c.status||"failed"===c.status?c.status:null;return d&&e&&(a[b]={status:e,checkedAt:d,..."string"==typeof c.runId?{runId:c.runId}:{},..."string"==typeof c.summary?{summary:c.summary}:{},..."string"==typeof c.error?{error:E(c.error)??c.error}:{}}),a},{});return Object.keys(b).length>0?{smokeTests:b}:void 0}("object"==typeof b.runtimePreflight&&b.runtimePreflight?b.runtimePreflight:void 0),e=B(b.compatibilitySmokeTest);return{...c?{workspaceRoot:c}:{},...d?{runtimePreflight:d}:{},...e?{compatibilitySmokeTest:e}:{}}}catch{return{}}}async function q(a){await (0,d.mkdir)(j,{recursive:!0}),await (0,d.writeFile)(k,`${JSON.stringify(a,null,2)}
136
- `,"utf8")}function r(a,b){return a.runtimePreflight?.smokeTests?.[b]??null}function s(a,b){return!b||!a||F(b)?{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null}:{status:b.status,checkedAt:b.checkedAt,agentId:a,runId:b.runId??null,summary:b.summary??null,error:E(b.error??null)}}function t(a){let b=A(a)[0];return s(b?.[0]??null,b?.[1]??null)}function u(a){return a.compatibilitySmokeTest??null}function v(a){if(!a||"passed"!==a.status)return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b<=432e5}async function w(a){let b=await p(),c={...b.runtimePreflight?.smokeTests??{}};a.agentId&&"not-run"!==a.status&&a.checkedAt&&(c[a.agentId]={status:a.status,checkedAt:a.checkedAt,...a.runId?{runId:a.runId}:{},...a.summary?{summary:a.summary}:{},...a.error?{error:a.error}:{}},await q({...b,runtimePreflight:{smokeTests:c}}))}async function x(a){let b=await p();await q({...b,compatibilitySmokeTest:B(a)??a})}async function y(){let a=await p(),b=a.runtimePreflight?.smokeTests??{},c=Object.fromEntries(Object.entries(b).filter(([,a])=>!("failed"===a.status&&(0,i.YG)(a.error??""))));if(Object.keys(c).length===Object.keys(b).length)return!1;let d={...a};return Object.keys(c).length>0?d.runtimePreflight={smokeTests:c}:delete d.runtimePreflight,await q(d),!0}function z(a){let b=A(a).find(([,a])=>"failed"===a.status&&(0,i.YG)(a.error??"")&&!F(a));return b?.[1]??null}function A(a){return Object.entries(a.runtimePreflight?.smokeTests??{}).sort((a,b)=>{let c=Date.parse(a[1].checkedAt);return Date.parse(b[1].checkedAt)-c})}function B(a){var b;if(!a||"object"!=typeof a)return;let c="compatible"===(b=a.status)||"degraded"===b||"incompatible"===b||"unknown"===b?b:null,d="string"==typeof a.checkedAt&&a.checkedAt.trim()?a.checkedAt:null,e=function(a){if(!a||"object"!=typeof a)return null;let b=a.agentOsSupportedProtocolRange&&"object"==typeof a.agentOsSupportedProtocolRange?a.agentOsSupportedProtocolRange:null,c="number"==typeof b?.min&&Number.isFinite(b.min)?b.min:null,d="number"==typeof b?.max&&Number.isFinite(b.max)?b.max:null;return null===c||null===d?null:{installedVersion:D(a.installedVersion),requiredOpenClawVersion:D(a.requiredOpenClawVersion),recommendedOpenClawVersion:D(a.recommendedOpenClawVersion),gatewayProtocolVersion:D(a.gatewayProtocolVersion),requiredGatewayProtocolVersion:D(a.requiredGatewayProtocolVersion)??"4",agentOsSupportedProtocolRange:{min:c,max:d},nodeVersion:D(a.nodeVersion),nodeRequiredVersion:D(a.nodeRequiredVersion)??"22.19.0",nodeRecommendedVersion:D(a.nodeRecommendedVersion)??"24.x",nodeStatus:"supported"===a.nodeStatus||"unsupported"===a.nodeStatus||"unknown"===a.nodeStatus?a.nodeStatus:"unknown",gatewayAuthStatus:D(a.gatewayAuthStatus)??"Unknown",nativeGatewayStatus:D(a.nativeGatewayStatus)??"Unknown",cliFallbackUsageCount:"number"==typeof a.cliFallbackUsageCount&&Number.isFinite(a.cliFallbackUsageCount)?Math.max(0,a.cliFallbackUsageCount):0,lastNativeError:D(a.lastNativeError),lastFallbackReason:D(a.lastFallbackReason),modelReady:"boolean"==typeof a.modelReady?a.modelReady:null}}(a.compatibility);if(!c||!d||!e)return;let f="number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,g=!0===a.safeToDispatchMissions;return{status:c,checkedAt:d,durationMs:f,safeToDispatchMissions:g,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():"Review OpenClaw compatibility diagnostics, then rerun the smoke test.",checks:Array.isArray(a.checks)?a.checks.map(C).filter(a=>!!a):[],compatibility:e}}function C(a){var b;if(!a||"object"!=typeof a)return null;let c="pass"===(b=a.status)||"warning"===b||"fail"===b?b:null,d="string"==typeof a.id&&a.id.trim()?a.id.trim():null,e="string"==typeof a.label&&a.label.trim()?a.label.trim():null,f="string"==typeof a.summary&&a.summary.trim()?a.summary.trim():null;return d&&e&&c&&f?{id:d,label:e,status:c,required:!0===a.required,summary:f,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():null,durationMs:"number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,...void 0!==a.rawDetails?{rawDetails:a.rawDetails}:{}}:null}function D(a){return"string"==typeof a&&a.trim()?a.trim():null}function E(a){return a?(0,i.YG)(a)?(0,i.ox)((0,i.MF)("openclaw")):a:null}function F(a){if("failed"!==a.status||!(0,i.YG)(a.error??""))return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b>3e5}},37110:(a,b,c)=>{c.d(b,{DO:()=>K,Ff:()=>L,GG:()=>P,O1:()=>M,VW:()=>O,Yp:()=>z,_z:()=>t,e4:()=>x,gb:()=>v,ji:()=>w,lm:()=>u,vH:()=>y});var d=c(31421),e=c(73024),f=c(51455),g=c(76760),h=c.n(g),i=c(57975),j=c(77598),k=c(88366),l=c(14414),m=c(80410),n=c(69699),o=c(25793);let p=h().join(process.cwd(),".mission-control"),q=h().join(p,"dispatches"),r=h().join(process.cwd(),"scripts","openclaw-mission-dispatch-runner.mjs"),s=(0,i.promisify)(d.execFile);function t(a){let b=new Date().toISOString(),c=`dispatch-${(0,j.randomUUID)()}`;return{id:c,status:"queued",agentId:a.agentId,sessionId:(0,j.randomUUID)(),mission:a.mission,routedMission:a.routedMission,thinking:a.thinking,workspaceId:a.workspaceId,workspacePath:a.workspacePath,submittedAt:b,updatedAt:b,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,runner:{pid:null,childPid:null,startedAt:null,finishedAt:null,lastHeartbeatAt:null,logPath:R(c)},observation:{runtimeId:null,observedAt:null},result:null,error:null}}async function u(a){let b=Q(a.id),c=`${b}.${process.pid}.tmp`;await (0,f.mkdir)(h().dirname(b),{recursive:!0}),await (0,f.writeFile)(c,`${JSON.stringify(a,null,2)}
135
+ `,"utf8")}async function j(){return new Map((await m()).sessions.map(a=>[p(a.agentId,a.sessionId),a]))}function k(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=a.agentId&&a.sessionId?b.get(p(a.agentId,a.sessionId)):null;return c?{...a,kind:"direct",origin:c.origin}:a})}function l(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=function(a,b){var c;let d,e,f,g=a.agentId?.trim();if(!g||(d="string"==typeof(c=a).metadata.origin?c.metadata.origin.trim():"",e="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",f="string"==typeof c.metadata.mission?c.metadata.mission.trim():"","mission-dispatch"===d||"agentos-mission-dispatch"===d||e||f||c.taskId?.trim()))return null;for(let c of function(a){let b=[a.sessionId,a.key,"string"==typeof a.metadata.sessionId?a.metadata.sessionId:null,"string"==typeof a.metadata.sessionKey?a.metadata.sessionKey:null,"string"==typeof a.metadata.key?a.metadata.key:null],c=new Set;for(let a of b){let b=a?.trim();if(!b)continue;c.add(b);let d=function(a){let b=":explicit:",c=a.indexOf(b);return -1===c?null:a.slice(c+b.length).split(":")[0]?.trim()||null}(b);d&&c.add(d)}return[...c]}(a)){let a=b.get(p(g,c));if(a)return a}return null}(a,b);return c?{...a,metadata:{...a.metadata,origin:c.origin,kind:"direct",chatType:"direct",agentChatSessionId:c.sessionId}}:a})}async function m(){try{let a=await (0,d.readFile)(h,"utf8"),b=JSON.parse(a),c=Array.isArray(b?.sessions)?b.sessions:[],e=c.length>0?c.map(n).filter(a=>!!a):[];return{version:1,sessions:o(e)}}catch{return{version:1,sessions:[]}}}function n(a){if(!a||"object"!=typeof a)return null;let b="string"==typeof a.agentId?a.agentId.trim():"",c="string"==typeof a.sessionId?a.sessionId.trim():"",d="string"==typeof a.createdAt?a.createdAt:"",e="string"==typeof a.updatedAt?a.updatedAt:d;return!b||!c||Number.isNaN(Date.parse(d))?null:{agentId:b,sessionId:c,workspacePath:"string"==typeof a.workspacePath?a.workspacePath:void 0,createdAt:d,updatedAt:Number.isNaN(Date.parse(e))?d:e,origin:"agent-chat"}}function o(a){let b=Date.now()-12096e5,c=new Set,d=[];for(let e of[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))){let a=Date.parse(e.updatedAt),f=p(e.agentId,e.sessionId);Number.isNaN(a)||a<b||c.has(f)||(c.add(f),d.push(e))}return d.slice(0,200)}function p(a,b){return`${a}:${b}`}},25303:(a,b,c)=>{c.d(b,{Bc:()=>i,Cs:()=>j,N3:()=>h});var d=c(39503),e=c(38798),f=c(65493);let g=null;async function h(a={}){if(!a.force&&g&&Date.now()-g.capturedAt<6e4)return g.value;let b=await k();return g={capturedAt:Date.now(),value:b},b}function i(){return g&&Date.now()-g.capturedAt<6e4?g.value:null}function j(){h().catch(()=>{})}async function k(){var a,b;let c=[],g=await (0,d.rw)().getStatus({timeoutMs:5e3}).catch(a=>(c.push(`status: ${v(a)}`),null)),h=t(g?.runtimeVersion)??t(g?.overview?.version)??t(g?.version),i=null,j=null,k=null,s=[],u=[],w=[],x="unavailable";if((0,e.JG)())x="disabled",c.push("Native Gateway WS is disabled by environment configuration.");else if(1)try{let a=await new e.gH({timeoutMs:2500}).probeNativeHandshake({timeoutMs:2500});x="gateway-handshake",i=o(a),j=p(a),k=q(a),s=r(a),u=m(a),w=n(a)}catch(a){c.push(`handshake: ${v(a)}`)}else{let a=await l(null,["rpc.discover","rpc.methods","system.capabilities","capabilities"],c),b=a?.payload??null;x=a?.method??"unavailable",i=o(b),j=p(b),k=q(b),s=r(b),u=m(b),w=n(b)}let y=new Set(u),z=new Set(w),A=(...a)=>0===y.size?"unknown":a.some(a=>y.has(a))?"supported":"unsupported",B=y.size>0?f.Av.filter(a=>!y.has(a)):[],C=Object.fromEntries(f.zS.map(a=>[a.id,{...((a,b,c=[],d=!0)=>{if((0,e.JG)())return{label:a,mode:"cli-fallback",methods:b,events:c,fallbackAllowed:d,reason:"Native Gateway WS is disabled by environment configuration.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"};if(0===y.size&&0===z.size)return{label:a,mode:"unknown",methods:b,events:c,fallbackAllowed:d,reason:"Gateway did not advertise feature metadata; AgentOS will attempt Gateway first and fall back when needed.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"unknown"};let f=b.find(a=>y.has(a))??null,g=c.some(a=>z.has(a));return f||g?{label:a,mode:"gateway-native",methods:b,events:c,fallbackAllowed:d,reason:f&&f!==b[0]?`OpenClaw Gateway advertises compatibility alias ${f}.`:"OpenClaw Gateway advertises native support.",preferredMethod:b[0]??null,supportedMethod:f,aliasMethods:b.slice(1),compatibility:f&&f!==b[0]?"alias":"preferred"}:{label:a,mode:d?"degraded":"disabled",methods:b,events:c,fallbackAllowed:d,reason:d?"OpenClaw Gateway does not advertise native support; AgentOS will use compatibility fallback.":"OpenClaw Gateway does not advertise native support and no safe fallback is available.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"}})(a.label,a.methods,a.events??[],a.fallbackAllowed??!0),baseline:a.baseline}])),D=(0,e.Lo)().map(a=>({...a,operationLabel:(0,f.Hi)(a.operation)})),E=D.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),F=Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a,b])=>`${a}: ${b.reason}`),G=Object.entries(C).filter(([,a])=>"alias"===a.compatibility&&a.supportedMethod).map(([a,b])=>`${a}: ${b.supportedMethod}`),H=function(a){if(!a)return"unknown";let b=Number(a);return Number.isFinite(b)?b>=e.aj.min&&b<=e.aj.max?"compatible":"unsupported":"unknown"}(i),I=new Date().toISOString(),J=function(a){let b=a.methodSet.size>0?f.Av.filter(b=>!a.methodSet.has(b)):[],c=a.methodSet.size>0?f.rp.filter(b=>!a.methodSet.has(b)):[],d=a.methodSet.size>0?f.Dq.filter(b=>!a.methodSet.has(b)):[];if("disabled"===a.source)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:[],optionalMethodCount:f.rp.length,missingOptionalMethods:[],experimentalMethodCount:f.Dq.length,missingExperimentalMethods:[],reason:"Native Gateway WS is disabled by environment configuration, so AgentOS cannot compare advertised Gateway methods."};if(0===a.methodSet.size)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:[],optionalMethodCount:f.rp.length,missingOptionalMethods:[],experimentalMethodCount:f.Dq.length,missingExperimentalMethods:[],reason:"OpenClaw Gateway did not advertise method metadata; AgentOS treats compatibility as unknown and will retry on the next capability refresh."};let e=Object.entries(a.operations).filter(([,a])=>"required"===a.baseline&&"missing"===a.compatibility).map(([a])=>a),g=b.length>0?"drift":"advertised";return{status:g,checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.Av.length,advertisedMethodCount:a.methodSet.size,missingMethodCount:b.length,missingMethods:b,missingOperations:e,baselineVersion:f.iG,requiredMethodCount:f.Av.length,missingRequiredMethods:b,optionalMethodCount:f.rp.length,missingOptionalMethods:c,experimentalMethodCount:f.Dq.length,missingExperimentalMethods:d,reason:"advertised"===g?`OpenClaw Gateway advertises every required ${f.iG} baseline method; optional and experimental gaps are informational.`:`OpenClaw Gateway advertised method metadata, but one or more required ${f.iG} baseline methods are missing.`}}({checkedAt:I,source:x,methodSet:y,operations:C,unsupportedGatewayMethods:B});return{detectedAt:I,openClawVersion:h??null,gatewayProtocolVersion:i,requestedProtocolRange:e.aj,authMode:j,authRole:k,authScopes:s,supportedMethods:u,supportedEvents:w,configSchema:A("config.schema"),configSchemaLookup:A(...(0,f.P5)("configSchemaLookup")),configPatch:A(...(0,f.P5)("configPatch")),chatEvents:"supported"===A(...(0,f.P5)("missionDispatch"),"chat.history")||((0,f.jW)("missionStream").events??[]).some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",logsTail:A(...(0,f.P5)("logsTail")),cronRead:A(...(0,f.P5)("cronRead")),channels:A(...(0,f.P5)("channels")),skills:A(...(0,f.P5)("skills")),approvals:A(...(0,f.P5)("execApprovals"),"plugin.approval.list","plugin.approval.resolve"),updates:A(...(0,f.P5)("updates")),nativeMissionDispatch:A(...(0,f.P5)("missionDispatch")),nativeAgentLifecycle:A(...(0,f.P5)("agentCreate"),...(0,f.P5)("agentUpdate"),...(0,f.P5)("agentDelete")),eventBridge:"supported"===A(...(0,f.P5)("missionStream"),...(0,f.P5)("taskEvents"))||["chat","agent","session.message","session.tool","task","task.updated","task.completed","artifact","artifact.updated","exec.approval.requested","plugin.approval.requested"].some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",operations:C,compatibility:{protocol:{status:H,version:i,reason:(a=i,"compatible"===(b=H)?`Gateway protocol ${a} is within AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"unsupported"===b?`Gateway protocol ${a} is outside AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"Gateway protocol version was not advertised.")},methodContract:J,nativeOperationCount:Object.values(C).filter(a=>"gateway-native"===a.mode).length,degradedOperationCount:Object.values(C).filter(a=>"degraded"===a.mode||"cli-fallback"===a.mode).length,unknownOperationCount:Object.values(C).filter(a=>"unknown"===a.mode).length,aliasOperations:G,degradedOperations:Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a])=>a)},degradedFeatures:F,fallbackDiagnostics:D,fallbackReasons:E,unsupportedGatewayMethods:B,diagnostics:c}}async function l(a,b,c){for(let d of b)try{return{method:d,payload:await a(d)}}catch(a){c.push(`${d}: ${v(a)}`)}return null}function m(a){var b;return Array.from(new Set([...u(s(a,"methods")),...u(s(s(a,"rpc"),"methods")),...u(s(s(a,"features"),"methods")),...u(s(a,"supportedMethods")),...Array.isArray(b=s(a,"methods"))?b.map(a=>t(s(a,"name"))??t(s(a,"method"))).filter(a=>!!a):[]])).sort()}function n(a){return Array.from(new Set([...u(s(a,"events")),...u(s(s(a,"features"),"events"))])).sort()}function o(a){let b=s(a,"protocolVersion")??s(a,"protocol")??s(s(a,"gateway"),"protocolVersion");return"number"==typeof b&&Number.isFinite(b)?String(b):t(b)}function p(a){return t(s(a,"authMode"))??t(s(s(a,"auth"),"mode"))??t(s(s(a,"security"),"authMode"))??t(s(s(a,"snapshot"),"authMode"))}function q(a){return t(s(a,"role"))??t(s(s(a,"auth"),"role"))??t(s(s(a,"security"),"role"))}function r(a){return Array.from(new Set([...u(s(a,"scopes")),...u(s(s(a,"auth"),"scopes")),...u(s(s(a,"security"),"scopes"))])).sort()}function s(a,b){return a&&"object"==typeof a?a[b]:void 0}function t(a){return"string"==typeof a&&a.trim()?a.trim():null}function u(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.trim().length>0).map(a=>a.trim()):[]}function v(a){return a instanceof Error?a.kind?`${a.kind}: ${a.message}`:a.message:String(a||"OpenClaw Gateway request failed.")}},25793:(a,b,c)=>{c.d(b,{Jw:()=>s,SI:()=>o,V9:()=>l,WU:()=>n,pY:()=>m,qv:()=>p,xZ:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(27091),j=c(14414),k=c(96972);async function l(a,b,c,e){let f=e(a,b,c);if(!a.key?.endsWith(":main")||!a.agentId||!a.sessionId)return[f];let g=c.find(b=>b.id===a.agentId),h=b.find(b=>b.id===a.agentId),j=await n(a.agentId,a.sessionId,g?.workspace||h?.workspace);if(!j)return[f];try{let a=await (0,d.readFile)(j,"utf8"),b=o(a,f,g?.workspace||h?.workspace).filter(a=>!a.prompt.toLowerCase().startsWith("read heartbeat.md if it exists")),c=q(b);if(0===b.length)return[f];return b.slice(-6).reverse().map(a=>(function(a,b,c=b.toolNames){var d,e;let f,g=Date.parse(b.updatedAt),h=(d=b.prompt,e=a.agentId,(f=d.trim())&&(0,i.$m)(f,38)||`${B(e)} run`),j=b.warningSummary?z(`Completed with fallback: ${b.warningSummary}`,90):b.finalText?z(b.finalText,90):"stalled"===b.status?"Waiting for output":"Main session run";return{id:`runtime:${a.sessionId}:${b.id}`,source:"turn",key:`${a.key}:turn:${b.id}`,title:h,subtitle:j,status:b.status,updatedAt:Number.isNaN(g)?a.updatedAt:g,ageMs:Number.isNaN(g)?a.ageMs:Math.max(Date.now()-g,0),agentId:a.agentId,workspaceId:a.workspaceId,modelId:a.modelId,sessionId:a.sessionId,taskId:a.taskId,runId:b.runId||b.id,toolNames:c,tokenUsage:b.tokenUsage,metadata:{...a.metadata,turnId:b.id,turnPrompt:b.prompt,stage:"main.turn",historical:"running"!==b.status,createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary}}})(f,a,c))}catch{return[f]}}async function m(a,b){if("fallback"===b.mode){var c;let b;return c=a,b=new Date().toISOString(),{runtimeId:c.id,sessionId:c.sessionId,taskId:c.taskId,status:"available",finalText:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",finalTimestamp:b,stopReason:"fallback",errorMessage:null,items:[{id:`${c.id}:fallback`,role:"assistant",timestamp:b,text:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",stopReason:"fallback",isError:!1}],createdFiles:[],warnings:[],warningSummary:null}}if(!a.sessionId||!a.agentId)return r(a,t(a,"This runtime does not expose a session transcript yet."));let e=b.agents.find(b=>b.id===a.agentId),f=await n(a.agentId,a.sessionId,e?.workspacePath);if(!f)return r(a,t(a,"No transcript file was found for this runtime session."));try{let b=await (0,d.readFile)(f,"utf8");return s(a,b,e?.workspacePath)}catch(b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"error",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b instanceof Error?b.message:"Unable to read runtime transcript.",items:[],createdFiles:[],warnings:[],warningSummary:null}}}async function n(a,b,c){for(let e of[h().join(f().homedir(),".openclaw","agents",a,"sessions",`${b}.jsonl`),c?h().join(c,".openclaw","agents",a,"sessions",`${b}.jsonl`):null].filter(Boolean))try{return await (0,d.access)(e),e}catch{continue}let e=await x(a,b,c);return e||null}function o(a,b,c){let d=a.split(/\r?\n/).filter(Boolean),e=[],f=c,g=null;for(let a of d)try{var h,i,j;let c=JSON.parse(a);if("session"===c.type&&"string"==typeof c.cwd&&c.cwd.trim()){f=c.cwd.trim();continue}if("custom"===c.type&&"openclaw:prompt-error"===c.customType&&g){g.runId||=c.data?.runId,g.updatedAt=c.timestamp||g.updatedAt,g.errorMessage||=c.data?.error||null;continue}if("message"!==c.type||!c.message?.role)continue;let d=c.message.role;if("assistant"!==d&&"toolResult"!==d&&"user"!==d)continue;let k=function(a=[]){return"string"==typeof a?a.trim():Array.isArray(a)?a.flatMap(a=>{if(("text"===a.type||"output_text"===a.type)&&a.text)return[a.text];if("toolResult"===a.type){var b;let c=(b=a.content,("string"==typeof b?b.trim()||null:Array.isArray(b)&&b.flatMap(a=>"string"==typeof a?[a]:a&&"object"==typeof a?"text"in a&&"string"==typeof a.text?[a.text]:"content"in a&&"string"==typeof a.content?[a.content]:[]:[]).join("\n\n").trim()||null)||a.text);return c?[c]:[]}return[]}).join("\n\n").trim():""}(c.message.content),l=c.message.errorMessage??null,m=function(a,b,c,d){if("toolResult"!==a||!0===b.isError||d)return null;let e=b.details?.exitCode;if("number"!=typeof e||0===e)return null;let f=(b.details?.aggregated||c).split(/\r?\n/).map(a=>a.trim()).filter(Boolean).filter(a=>!/^\(Command exited with code \d+\)$/i.test(a));return z((f.find(a=>!a.startsWith("[WARNING]"))||f.find(a=>a.startsWith("[WARNING]"))||`${b.toolName||"tool"} exited with code ${e}`).replace(/^\[WARNING\]\s*/i,"").trim()||`${b.toolName||"tool"} exited with code ${e}`,160)}(d,c.message,k,l),n="assistant"===d?function(a){if(!Array.isArray(a))return null;let b=a.find(a=>"toolCall"===a.type&&"string"==typeof a.name);return b&&"string"==typeof b.name&&b.name.trim()?{id:"string"==typeof b.id?b.id:null,name:b.name.trim(),arguments:b.arguments}:null}(c.message.content):null,o="assistant"===d&&n&&!k?"toolCall":d,p=k||l||(n?`Called ${n.name}`:"");if(!p&&!("assistant"===d&&(h=c.message.content,Array.isArray(h)&&h.some(a=>"toolCall"===a.type))||"toolResult"===d&&"string"==typeof c.message.toolName&&c.message.toolName.trim()))continue;let q={id:c.id||`${d}-${Date.now()}`,role:o,timestamp:function(a){let b=a.message?.timestamp;if("number"==typeof b&&Number.isFinite(b))return new Date(b).toISOString();if("string"==typeof b&&b.trim()){let a=Date.parse(b);if(!Number.isNaN(a))return new Date(a).toISOString()}return a.timestamp||null}(c)||new Date().toISOString(),text:p,toolName:"toolCall"===o?n?.name:"toolResult"===d?c.message.toolName?.trim()||A(k):void 0,stopReason:"assistant"===d?c.message.stopReason??null:null,errorMessage:l,isWarning:!!m,isError:!!l||!0===c.message.isError||"error"===c.message.stopReason||"aborted"===c.message.stopReason};if("user"===d){g&&e.push(v(g)),g={id:c.id||`turn-${e.length}`,prompt:q.text.replace(/^Sender \(untrusted metadata\):[\s\S]*?```[\s\S]*?```\s*/i,"").replace(/^\[[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim(),sessionId:b.sessionId,runId:void 0,timestamp:q.timestamp,updatedAt:q.timestamp,items:[q],tokenUsage:void 0,errorMessage:null,createdFiles:[],warnings:[],toolNames:[],pendingCreatedFiles:new Map,pendingToolNames:new Set};continue}if(!g)continue;if("assistant"===d&&Array.isArray(c.message.content)){for(let a of c.message.content)if("toolCall"===a.type)for(let b of("string"==typeof a.name&&a.name.trim()&&g.pendingToolNames.add(a.name.trim()),function(a,b){if("write"===a.type||"write"===a.name){let c="string"==typeof a.arguments?.path?a.arguments.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}return"apply_patch"===a.name&&Array.isArray(a.arguments?.changes)?a.arguments.changes.flatMap(a=>{if(!a||"object"!=typeof a)return[];let c="path"in a&&"string"==typeof a.path?a.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}):[]}(a,f)))g.pendingCreatedFiles.set(a.id||`${c.id||"toolCall"}:${b.path}`,b)}if(g.items.push(q),g.updatedAt=q.timestamp,g.errorMessage||=l,m&&!g.warnings.includes(m)&&g.warnings.push(m),"toolResult"===d&&!0!==c.message.isError&&("write"===c.message.toolName||"apply_patch"===c.message.toolName)&&"string"==typeof c.message.toolCallId){let a=g.pendingCreatedFiles.get(c.message.toolCallId);a&&(g.createdFiles.push(a),g.pendingCreatedFiles.delete(c.message.toolCallId))}if("toolResult"===d){let a=c.message.toolName?.trim()||A(q.text)?.trim()||null;a&&g.pendingToolNames.add(a)}if("assistant"===d&&c.message.usage){let a=c.message.usage;g.tokenUsage=(i=g.tokenUsage,j={input:a.input??a.prompt_tokens??0,output:a.output??a.completion_tokens??0,total:a.totalTokens??a.total_tokens??(a.input??a.prompt_tokens??0)+(a.output??a.completion_tokens??0),cacheRead:a.cacheRead??0},i?j.total>i.total?j:i:j)}}catch{continue}return g&&e.push(v(g)),e}function p(a,b){let c="string"==typeof a.metadata.dispatchSubmittedAt?Date.parse(a.metadata.dispatchSubmittedAt):NaN;return Number.isNaN(c)?b:b.filter(a=>{let b=Date.parse(a.updatedAt||a.timestamp);return!Number.isNaN(b)&&b>=c-1500})}function q(a){return y(a.flatMap(a=>a.toolNames))}function r(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b,items:[],createdFiles:[],warnings:[],warningSummary:null}}function s(a,b,c){let d=p(a,o(b,a,c));if("turn"===a.source){let b="string"==typeof a.metadata.turnId?a.metadata.turnId:null,c=b?d.find(a=>a.id===b):function(a,b){let c="string"==typeof a.metadata.mission?a.metadata.mission:null;if(!c)return null;let d=b.filter(a=>(0,j.Dm)(a.prompt,c));if(0===d.length)return null;let e=a.updatedAt??0;return d.sort((a,b)=>{let c=Date.parse(a.updatedAt),d=Date.parse(b.updatedAt);return Math.abs((Number.isNaN(c)?0:c)-e)-Math.abs((Number.isNaN(d)?0:d)-e)})[0]}(a,d);if(c)return u(a,c)}let e=d.at(-1);return e?u(a,e):{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:t(a,"No transcript entries were found for this runtime."),items:[],createdFiles:[],warnings:[],warningSummary:null}}function t(a,b){let c="string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus:null,d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId:null,e="string"==typeof a.metadata.error&&a.metadata.error.trim()?(0,k.bS)(a.metadata.error.trim()):null;return e||(c||d?"stalled"===c||"stalled"===a.status?"Mission dispatch stalled before AgentOS captured transcript output. Check Gateway diagnostics, model readiness, and the dispatch runner details.":"completed"===c||"completed"===a.status?"Mission completed, but AgentOS did not recover a transcript or final output yet. Refresh the snapshot and inspect the OpenClaw session diagnostics if this remains empty.":"Mission dispatch is active, but no transcript output has been captured yet. Wait for the first OpenClaw session update or inspect Gateway diagnostics if it stays empty.":b)}function u(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:b.items.length>0?"available":"missing",finalText:b.finalText,finalTimestamp:b.finalTimestamp,stopReason:b.stopReason,errorMessage:b.errorMessage,items:b.items.slice(-12),createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary,tokenUsage:b.tokenUsage}}function v(a){let{pendingCreatedFiles:b,pendingToolNames:c,...d}=a,e=[...a.items].reverse().find(a=>"assistant"===a.role&&(a.text.trim().length>0||a.errorMessage)),f=a.items.at(-1),g=e?.stopReason??null,h=!!a.errorMessage||e?.isError===!0||"error"===g||"aborted"===g,i=y(a.warnings),j=h?"stalled":f?.role==="assistant"&&f.stopReason&&"toolUse"!==f.stopReason?"completed":"running";return{...d,status:j,finalText:e?.text??null,finalTimestamp:e?.timestamp??null,stopReason:g,errorMessage:a.errorMessage||e?.errorMessage||null,createdFiles:function(a){let b=new Set,c=[];for(let d of a)!d.path||b.has(d.path)||(b.add(d.path),c.push(d));return c}(a.createdFiles),warnings:i,warningSummary:i[0]??null,toolNames:y([...a.pendingToolNames])}}function w(a,b){let c=a.trim();if(!c)return null;let d=h().isAbsolute(c)?h().normalize(c):b?h().resolve(b,c):null;if(!d)return null;let e=b&&d.startsWith(`${h().resolve(b)}${h().sep}`)?h().relative(h().resolve(b),d)||h().basename(d):d;return{path:d,displayPath:e}}async function x(a,b,c){let e=`agent:${a}:explicit:${b}`;for(let g of[h().join(f().homedir(),".openclaw","agents",a,"sessions","sessions.json"),c?h().join(c,".openclaw","agents",a,"sessions","sessions.json"):null].filter(Boolean))try{let a=await (0,d.readFile)(g,"utf8"),c=JSON.parse(a);for(let[a,f]of Object.entries(c))if(f&&(f.sessionId===b||a===e)&&"string"==typeof f.sessionFile)return await (0,d.access)(f.sessionFile),f.sessionFile}catch{continue}return null}function y(a){return Array.from(new Set(a))}function z(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function A(a){let b=a.match(/"tool(Name)?":\s*"([^"]+)"/i);return b?.[2]}function B(a){return a?a.split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):"OpenClaw"}},27091:(a,b,c)=>{function d(a){return a.name?.trim()||a.identityName?.trim()||"OpenClaw"}c.d(b,{$m:()=>g,CK:()=>d,ho:()=>f});let e=[/^Task output routing:/i,/^Agent operating policy:/i];function f(a){let b=a.replace(/\r\n/g,"\n").trim();if(!b)return"";let c=[];for(let a of b.split("\n")){let b=a.trim();if(e.some(a=>a.test(b)))break;c.push(a)}return c.join(" ").replace(/\s+/g," ").trim()}function g(a,b=64){if(!a)return"";let c=f(a);return c?c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`:""}},28182:(a,b,c)=>{c.d(b,{IJ:()=>f,T$:()=>o,Y8:()=>l,bE:()=>g,qA:()=>m,vC:()=>n});var d=c(77598),e=c(27091);function f(a,b){let c=a.filter(a=>!function(a){var b,c;let d,f,g,i="string"==typeof a.metadata.origin?a.metadata.origin:null;if("mission-dispatch"===i||"agentos-mission-dispatch"===i)return!1;if("agent-chat"===i||"agentos-direct-chat"===i)return!0;if("string"==typeof a.metadata.dispatchId&&a.metadata.dispatchId.trim())return!1;let j=h(a)||("string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null);return!!("string"==typeof j&&(b=j,/You are chatting (?:directly )?with the operator inside AgentOS/i.test(b)||/Do not create tasks or mention task cards/i.test(b)||/Messages stay in this drawer and are stored locally in your browser/i.test(b)))||(f="openclaw-gateway-event"!==(d="string"==typeof(c=a).metadata.origin?c.metadata.origin:null)&&"agentos-direct-chat"!==d&&!!c.runId?.trim(),g="openclaw-gateway-event"!==d&&"agentos-direct-chat"!==d&&"string"==typeof c.metadata.runId&&!!c.metadata.runId.trim(),!(c.taskId?.trim()||f||function(a){if("string"!=typeof a.metadata.mission)return null;let b=(0,e.ho)(a.metadata.mission);return b.length>0?b:null}(c)||"string"==typeof c.metadata.taskId&&c.metadata.taskId.trim()||g||"string"==typeof c.metadata.bootstrapStage&&c.metadata.bootstrapStage.trim()||"string"==typeof c.metadata.dispatchStatus&&c.metadata.dispatchStatus.trim())&&!!("openclaw-gateway-event"===i||"string"==typeof a.metadata.chatType&&"direct"===a.metadata.chatType||"string"==typeof a.metadata.kind&&"direct"===a.metadata.kind||function(a){if("session"!==a.source)return!1;let b=a.key.trim(),c=a.title.trim().toLowerCase(),d=a.subtitle.trim().toLowerCase();return/:main$/.test(b)||/:explicit:[^:]+$/.test(b)||"agent session"===c||"main session"===d||"direct session"===d}(a)))}(a)),d=new Map,f=new Map(b.map(a=>{var b;return[a.id,(b=a).name.trim()||b.id]})),i=new Map(b.map(a=>[a.id,a.workspaceId])),j=function(a){let b=new Map;for(let c of a){let a=c.sessionId?.trim(),d="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",e="string"==typeof c.metadata.dispatchSubmittedAt?Date.parse(c.metadata.dispatchSubmittedAt):NaN;if(!a||!d)continue;let f=`${c.agentId??"unknown"}:${a}`,g=b.get(f)??[];g.some(a=>a.dispatchId===d)||(g.push({dispatchId:d,submittedAt:Number.isNaN(e)?null:e}),g.sort((a,b)=>(a.submittedAt??-1/0)-(b.submittedAt??-1/0)),b.set(f,g))}return b}(c);for(let a of c){let b=function(a,b){let c=a.taskId?.trim(),d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",e=h(a),f=a.sessionId?.trim(),g=f?b.get(`${a.agentId??"unknown"}:${f}`)??[]:[],i=a.updatedAt??0,j=g.filter(a=>null===a.submittedAt||i>=a.submittedAt-1500).sort((a,b)=>(b.submittedAt??-1/0)-(a.submittedAt??-1/0))[0]?.dispatchId??"";return d?`dispatch:${d}`:j?`dispatch:${j}`:c?`task:${c}`:e?`mission:${a.agentId??"unknown"}:${n(e)}`:f?`session:${f}`:`runtime:${a.id}`}(a,j),c=d.get(b)??[];c.push(a),d.set(b,c)}return Array.from(d.entries()).map(([a,b])=>g(a,b,f,i)).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function g(a,b,c,d=new Map){var f,r,s;let t,u=[...b].sort(q),v=function(a){let b=a.filter(a=>"turn"===a.source||"string"==typeof a.metadata.turnId);if(b.length>0)return b;let c=a.filter(a=>"string"==typeof a.metadata.dispatchId||"string"==typeof a.metadata.bootstrapStage);return c.length>0?c:a}(u),w=[...v].sort((a,b)=>i(b)-i(a))[0]??v[0]??u[0],x=h(w)||u.map(a=>h(a)).find(Boolean)||null,y=function(a){for(let b of a){let a="string"==typeof b.metadata.routedMission?b.metadata.routedMission.trim():"";if(a)return a}return null}(u),z=function(a){let b=[...a.filter(a=>{var b;return(!!("string"==typeof(b=a).metadata.dispatchId&&b.metadata.dispatchId.trim())||!!h(b))&&!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)}),...a.filter(a=>"string"==typeof a.metadata.turnId),...a.filter(a=>!0===a.metadata.recoveredFromObservation),...a.filter(a=>!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)),...a.filter(a=>!k(a))],c=new Set;for(let a of b){if(c.has(a.id))continue;c.add(a.id);let b=a.subtitle?.trim();if(b&&function(a){let b=a.replace(/\s+/g," ").trim().toLowerCase();return!!b&&"sessions.changed"!==b&&"session.message"!==b}(b))return b}return null}(u),A=z||v.map(a=>a.subtitle?.trim()).find(a=>!!a)||u.map(a=>a.subtitle?.trim()).find(a=>!!a)||"Awaiting OpenClaw updates.",B=o(u.flatMap(a=>l(a)).concat(u.flatMap(a=>(function(a){if("string"!=typeof a||0===a.trim().length)return[];let b=[...a.matchAll(/(?:^|[\s:])((?:\/[^\s`),;]+)+\.[A-Za-z0-9][A-Za-z0-9._-]*)/g),...a.matchAll(/(?:^|[\s(])((?:\.{1,2}\/)?deliverables\/[^\s`),;]+)/g),...a.matchAll(/\]\(((?:\/|\.{1,2}\/|deliverables\/)[^)]+)\)/g),...a.matchAll(/`((?:\/|\.{1,2}\/|deliverables\/)[^`\n]+)`/g)],c=[];for(let a of b){let b=(a[1]||"").trim();b&&function(a){let b=a.trim().replace(/[`'")\],;]+$/g,"");return!(!b||b.endsWith("/"))&&(b.split("/").pop()||"").includes(".")}(b)&&c.push({path:b,displayPath:b})}return o(c)})(a.subtitle)))),C=p(u.flatMap(a=>m(a))),D=function(a){let b=(function(a){let b=new Set,c=[];for(let d of a){if(!d.tokenUsage)continue;let a=function(a){let b="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",c=a.tokenUsage??{input:0,output:0,total:0,cacheRead:0};return[b||a.runId||a.sessionId||a.id,b?"":a.sessionId??"",c.input,c.output,c.total,c.cacheRead??0].join(":")}(d);b.has(a)||(b.add(a),c.push(d))}return c})(a).filter(a=>a.tokenUsage);if(0!==b.length)return b.reduce((a,b)=>({input:a.input+(b.tokenUsage?.input??0),output:a.output+(b.tokenUsage?.output??0),total:a.total+(b.tokenUsage?.total??0),cacheRead:(a.cacheRead??0)+(b.tokenUsage?.cacheRead??0)}),{input:0,output:0,total:0,cacheRead:0})}(u),E=p(u.flatMap(a=>a.agentId?[a.agentId]:[])),F=p(u.flatMap(a=>a.sessionId?[a.sessionId]:[])),G=p(u.flatMap(a=>a.runId?[a.runId]:[])),H=u.filter(a=>"string"==typeof a.metadata.turnId||!0===a.metadata.recoveredFromObservation).length,I=(t=u.map(a=>"string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus.trim():"").filter(Boolean)).includes("cancelled")?"cancelled":t.includes("stalled")?"stalled":t.includes("completed")?"completed":t.includes("running")?"running":t.includes("queued")?"queued":null,J=w?.agentId||E[0],K=J?c.get(J)??null:null,L=function(a,b,c,d){let e=a.map(a=>a.workspaceId?.trim()).find(a=>!!a);if(e)return e;for(let a of p([b,...c].filter(Boolean))){let b=d.get(a)?.trim();if(b)return b}}(u,J,E,d),M=u[0]??null;return{id:(f=a,`task:${n(f)}`),key:a,title:(0,e.$m)(x||w?.title||"Untitled task",52)||"Untitled task",mission:x,subtitle:A,status:function(a,b=null){return b&&j(b)?b:a.some(a=>"running"===a.status)?"running":a.some(a=>"cancelled"===a.status)?"cancelled":a.some(a=>"queued"===a.status)?"queued":a.some(a=>"stalled"===a.status)?"stalled":a.some(a=>"idle"===a.status)?"idle":a[0]?.status??"completed"}(u,I),updatedAt:M?.updatedAt??null,ageMs:M?.ageMs??null,workspaceId:L,primaryAgentId:J,primaryAgentName:K,primaryRuntimeId:w?.id,dispatchId:function(a){for(let b of a)if("string"==typeof b.metadata.dispatchId&&b.metadata.dispatchId.trim())return b.metadata.dispatchId.trim()}(u),runtimeIds:u.map(a=>a.id),agentIds:E,sessionIds:F,runIds:G,runtimeCount:u.length,updateCount:v.filter(a=>"turn"===a.source).length,liveRunCount:(r=u,(s=I)&&j(s)?0:r.filter(a=>"running"===a.status||"queued"===a.status).length),artifactCount:B.length,warningCount:C.length,tokenUsage:D,metadata:{mission:x,routedMission:y,resultPreview:z,turnCount:H,sessionCount:F.length,primaryRuntimeSource:w?.source??null,bootstrapStage:"string"==typeof w?.metadata.bootstrapStage?w.metadata.bootstrapStage:null,dispatchStatus:I??("string"==typeof w?.metadata.dispatchStatus?w.metadata.dispatchStatus:null),dispatchSubmittedAt:"string"==typeof w?.metadata.dispatchSubmittedAt?w.metadata.dispatchSubmittedAt:null,dispatchRunnerStartedAt:"string"==typeof w?.metadata.dispatchRunnerStartedAt?w.metadata.dispatchRunnerStartedAt:null,dispatchHeartbeatAt:"string"==typeof w?.metadata.dispatchHeartbeatAt?w.metadata.dispatchHeartbeatAt:null,dispatchObservedAt:"string"==typeof w?.metadata.dispatchObservedAt?w.metadata.dispatchObservedAt:null,outputDir:"string"==typeof w?.metadata.outputDir?w.metadata.outputDir:null,outputDirRelative:"string"==typeof w?.metadata.outputDirRelative?w.metadata.outputDirRelative:null}}}function h(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=(0,e.ho)(b);return c.length>0?c:null}function i(a){return 8*!!h(a)+6*("string"==typeof a.metadata.dispatchId)+("turn"===a.source?6:"session"===a.source?4:2)+("running"===a.status?3:"queued"===a.status?2:"cancelled"===a.status||"stalled"===a.status?3:"idle"===a.status?2:1)}function j(a){return"completed"===a||"stalled"===a||"cancelled"===a}function k(a){let b="string"==typeof a.metadata.bootstrapStage?a.metadata.bootstrapStage:null;return"accepted"===b||"waiting-for-heartbeat"===b||"waiting-for-runtime"===b||"runtime-observed"===b}function l(a){let b=a.metadata.createdFiles;return Array.isArray(b)?b.flatMap(a=>{if(!a||"object"!=typeof a)return[];let b="path"in a&&"string"==typeof a.path?a.path:null,c="displayPath"in a&&"string"==typeof a.displayPath?a.displayPath:b;return b&&c?[{path:b,displayPath:c}]:[]}):[]}function m(a){let b=a.metadata.warnings;return Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}function n(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}function o(a){let b=new Set,c=[];for(let d of a)!d.path||b.has(d.path)||(b.add(d.path),c.push(d));return c}function p(a){return Array.from(new Set(a.map(a=>(function(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null})(a)).filter(a=>!!a)))}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}},29822:(a,b,c)=>{c.d(b,{v:()=>k});var d=c(39503),e=c(51455),f=c(58889);async function g(a){try{let b=await (0,e.readFile)(a,"utf8"),c=JSON.parse(b),d=c&&"object"==typeof c&&!Array.isArray(c)?c:{version:1,channels:[]},g=Array.isArray(d.channels)?d.channels.map(a=>(0,f.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,f._E)({version:1,channels:g})}}catch(a){return{status:"rejected",reason:a}}}var h=c(75402),i=c(99254),j=c(70262);async function k(a,b={}){let c=await g(h.q6),d="fulfilled"===c.status?c.value:(0,f._E)({version:1,channels:[]}),e="interactive"===a?[]:await (0,i.QT)(),m=(0,i.fy)((0,i.D4)([...e,...(0,i.G7)(d)]),d),n=await (0,j.Mh)({profile:a,channelAccounts:e,channelRegistry:d}),o="interactive"===a?null:await l(),p=(0,j.LB)({registry:d,currentBindings:o,surfaceRuntime:n,configuredAccounts:e,workspaceId:b.workspaceId});return{channelRegistry:d,channelAccounts:m,surfaceRuntime:n,surfaceDrift:p}}async function l(){try{let a=await (0,d.rw)().getConfig("bindings",{timeoutMs:5e3});return Array.isArray(a)?a:[]}catch{return null}}},35456:(a,b,c)=>{c.d(b,{Az:()=>t,FU:()=>n,In:()=>A,SK:()=>w,Yt:()=>s,Zm:()=>m,bC:()=>z,fj:()=>u,go:()=>x,lY:()=>y,qB:()=>o,tl:()=>q,ul:()=>v,wL:()=>p,wi:()=>r});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(49922);let j=h().join(process.cwd(),".mission-control"),k=h().join(j,"settings.json"),l="AGENTOS_ALLOW_REMOTE_GATEWAY_URL";function m(a){let b,c=a?.trim();if(!c)return null;let d=/^[a-z][a-z0-9+.-]*:\/\//i.test(c)?c:`ws://${c}`;try{b=new URL(d)}catch{throw Error("Gateway address must be a valid WebSocket URL.")}if("ws:"!==b.protocol&&"wss:"!==b.protocol)throw Error("Gateway address must start with ws:// or wss://.");if(!b.hostname)throw Error("Gateway address must include a hostname.");if(!function a(b){let c=b.trim().toLowerCase().replace(/^\[|\]$/g,"");if("localhost"===c||"::1"===c||"0:0:0:0:0:0:0:1"===c)return!0;let d=c.match(/^::ffff:(\d{1,3}(?:\.\d{1,3}){3})$/);if(d)return a(d[1]);let e=c.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(!e)return!1;let f=e.slice(1).map(Number);return f.every(a=>a>=0&&a<=255)&&127===f[0]}(b.hostname)&&"1"!==process.env[l])throw Error(`Gateway address must target localhost unless ${l}=1 is set.`);return b.toString().replace(/\/$/,"")}function n(a){let b=a?.trim();if(!b)return null;if("~"!==b&&!b.startsWith("~/")&&!h().isAbsolute(b))throw Error("Workspace root must be an absolute path or start with ~/.");return o(b)}function o(a){var b;let c=a?.trim();if(!c)return;let d="~"===(b=c)?f().homedir():b.startsWith("~/")?h().join(f().homedir(),b.slice(2)):b,e=h().normalize(d);return e.length>1?e.replace(/[\\/]+$/,""):e}async function p(){return o((await q()).workspaceRoot)??null}async function q(){let a;try{a=await (0,d.readFile)(k,"utf8")}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{};throw a}try{let b=JSON.parse(a),c="string"==typeof b.workspaceRoot?o(b.workspaceRoot):void 0,d=function(a){if(!a||"object"!=typeof a)return;let b=Object.entries("smokeTests"in a&&a.smokeTests&&"object"==typeof a.smokeTests?a.smokeTests:{}).reduce((a,[b,c])=>{if(!c||"object"!=typeof c)return a;let d="string"==typeof c.checkedAt?c.checkedAt:null,e="passed"===c.status||"failed"===c.status?c.status:null;return d&&e&&(a[b]={status:e,checkedAt:d,..."string"==typeof c.runId?{runId:c.runId}:{},..."string"==typeof c.summary?{summary:c.summary}:{},..."string"==typeof c.error?{error:F(c.error)??c.error}:{}}),a},{});return Object.keys(b).length>0?{smokeTests:b}:void 0}("object"==typeof b.runtimePreflight&&b.runtimePreflight?b.runtimePreflight:void 0),e=C(b.compatibilitySmokeTest);return{...c?{workspaceRoot:c}:{},...d?{runtimePreflight:d}:{},...e?{compatibilitySmokeTest:e}:{}}}catch{return{}}}async function r(a){await (0,d.mkdir)(j,{recursive:!0}),await (0,d.writeFile)(k,`${JSON.stringify(a,null,2)}
136
+ `,{encoding:"utf8",mode:384}),await (0,d.chmod)(k,384)}function s(a,b){return a.runtimePreflight?.smokeTests?.[b]??null}function t(a,b){return!b||!a||G(b)?{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null}:{status:b.status,checkedAt:b.checkedAt,agentId:a,runId:b.runId??null,summary:b.summary??null,error:F(b.error??null)}}function u(a){let b=B(a)[0];return t(b?.[0]??null,b?.[1]??null)}function v(a){return a.compatibilitySmokeTest??null}function w(a){if(!a||"passed"!==a.status)return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b<=432e5}async function x(a){let b=await q(),c={...b.runtimePreflight?.smokeTests??{}};a.agentId&&"not-run"!==a.status&&a.checkedAt&&(c[a.agentId]={status:a.status,checkedAt:a.checkedAt,...a.runId?{runId:a.runId}:{},...a.summary?{summary:a.summary}:{},...a.error?{error:a.error}:{}},await r({...b,runtimePreflight:{smokeTests:c}}))}async function y(a){let b=await q();await r({...b,compatibilitySmokeTest:C(a)??a})}async function z(){let a=await q(),b=a.runtimePreflight?.smokeTests??{},c=Object.fromEntries(Object.entries(b).filter(([,a])=>!("failed"===a.status&&(0,i.YG)(a.error??""))));if(Object.keys(c).length===Object.keys(b).length)return!1;let d={...a};return Object.keys(c).length>0?d.runtimePreflight={smokeTests:c}:delete d.runtimePreflight,await r(d),!0}function A(a){let b=B(a).find(([,a])=>"failed"===a.status&&(0,i.YG)(a.error??"")&&!G(a));return b?.[1]??null}function B(a){return Object.entries(a.runtimePreflight?.smokeTests??{}).sort((a,b)=>{let c=Date.parse(a[1].checkedAt);return Date.parse(b[1].checkedAt)-c})}function C(a){var b;if(!a||"object"!=typeof a)return;let c="compatible"===(b=a.status)||"degraded"===b||"incompatible"===b||"unknown"===b?b:null,d="string"==typeof a.checkedAt&&a.checkedAt.trim()?a.checkedAt:null,e=function(a){if(!a||"object"!=typeof a)return null;let b=a.agentOsSupportedProtocolRange&&"object"==typeof a.agentOsSupportedProtocolRange?a.agentOsSupportedProtocolRange:null,c="number"==typeof b?.min&&Number.isFinite(b.min)?b.min:null,d="number"==typeof b?.max&&Number.isFinite(b.max)?b.max:null;return null===c||null===d?null:{installedVersion:E(a.installedVersion),requiredOpenClawVersion:E(a.requiredOpenClawVersion),recommendedOpenClawVersion:E(a.recommendedOpenClawVersion),gatewayProtocolVersion:E(a.gatewayProtocolVersion),requiredGatewayProtocolVersion:E(a.requiredGatewayProtocolVersion)??"4",agentOsSupportedProtocolRange:{min:c,max:d},nodeVersion:E(a.nodeVersion),nodeRequiredVersion:E(a.nodeRequiredVersion)??"22.19.0",nodeRecommendedVersion:E(a.nodeRecommendedVersion)??"24.x",nodeStatus:"supported"===a.nodeStatus||"unsupported"===a.nodeStatus||"unknown"===a.nodeStatus?a.nodeStatus:"unknown",gatewayAuthStatus:E(a.gatewayAuthStatus)??"Unknown",nativeGatewayStatus:E(a.nativeGatewayStatus)??"Unknown",cliFallbackUsageCount:"number"==typeof a.cliFallbackUsageCount&&Number.isFinite(a.cliFallbackUsageCount)?Math.max(0,a.cliFallbackUsageCount):0,lastNativeError:E(a.lastNativeError),lastFallbackReason:E(a.lastFallbackReason),modelReady:"boolean"==typeof a.modelReady?a.modelReady:null}}(a.compatibility);if(!c||!d||!e)return;let f="number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,g=!0===a.safeToDispatchMissions;return{status:c,checkedAt:d,durationMs:f,safeToDispatchMissions:g,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():"Review OpenClaw compatibility diagnostics, then rerun the smoke test.",checks:Array.isArray(a.checks)?a.checks.map(D).filter(a=>!!a):[],compatibility:e}}function D(a){var b;if(!a||"object"!=typeof a)return null;let c="pass"===(b=a.status)||"warning"===b||"fail"===b?b:null,d="string"==typeof a.id&&a.id.trim()?a.id.trim():null,e="string"==typeof a.label&&a.label.trim()?a.label.trim():null,f="string"==typeof a.summary&&a.summary.trim()?a.summary.trim():null;return d&&e&&c&&f?{id:d,label:e,status:c,required:!0===a.required,summary:f,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():null,durationMs:"number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,...void 0!==a.rawDetails?{rawDetails:a.rawDetails}:{}}:null}function E(a){return"string"==typeof a&&a.trim()?a.trim():null}function F(a){return a?(0,i.YG)(a)?(0,i.ox)((0,i.MF)("openclaw")):a:null}function G(a){if("failed"!==a.status||!(0,i.YG)(a.error??""))return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b>3e5}},37110:(a,b,c)=>{c.d(b,{DO:()=>K,Ff:()=>L,GG:()=>P,O1:()=>M,VW:()=>O,Yp:()=>z,_z:()=>t,e4:()=>x,gb:()=>v,ji:()=>w,lm:()=>u,vH:()=>y});var d=c(31421),e=c(73024),f=c(51455),g=c(76760),h=c.n(g),i=c(57975),j=c(77598),k=c(88366),l=c(14414),m=c(80410),n=c(69699),o=c(25793);let p=h().join(process.cwd(),".mission-control"),q=h().join(p,"dispatches"),r=h().join(process.cwd(),"scripts","openclaw-mission-dispatch-runner.mjs"),s=(0,i.promisify)(d.execFile);function t(a){let b=new Date().toISOString(),c=`dispatch-${(0,j.randomUUID)()}`;return{id:c,status:"queued",agentId:a.agentId,sessionId:(0,j.randomUUID)(),mission:a.mission,routedMission:a.routedMission,thinking:a.thinking,workspaceId:a.workspaceId,workspacePath:a.workspacePath,submittedAt:b,updatedAt:b,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,runner:{pid:null,childPid:null,startedAt:null,finishedAt:null,lastHeartbeatAt:null,logPath:R(c)},observation:{runtimeId:null,observedAt:null},result:null,error:null}}async function u(a){let b=Q(a.id),c=`${b}.${process.pid}.tmp`;await (0,f.mkdir)(h().dirname(b),{recursive:!0}),await (0,f.writeFile)(c,`${JSON.stringify(a,null,2)}
137
137
  `,"utf8"),await (0,f.rename)(c,b)}async function v(a){await (0,f.access)(r,e.constants.R_OK);let b=await (0,k.XP)(),c=(0,d.spawn)(process.execPath,[r,Q(a.id)],{cwd:process.cwd(),detached:!0,stdio:"ignore",env:{...process.env,OPENCLAW_BIN:b,OPENCLAW_AGENT_TIMEOUT_SECONDS:String(45)}});return c.unref(),{...a,runner:{...a.runner,pid:c.pid??a.runner.pid}}}async function w(a){if(a.dispatchId){let b=await M(a.dispatchId);if(b)return b}let b=await L(),c=new Set(a.runtimeIds),d=new Set(a.sessionIds);for(let e of b){if(e.agentId!==a.primaryAgentId&&!a.agentIds.includes(e.agentId))continue;if(a.mission&&e.mission&&(0,l.Dm)(e.mission,a.mission)||e.observation.runtimeId&&c.has(e.observation.runtimeId))return e;let b=(0,n.Xy)(e);if(b&&d.has(b))return e}return null}async function x(a){let b=new Set;if("number"==typeof a.runner.childPid&&Number.isFinite(a.runner.childPid)&&b.add(a.runner.childPid),0===b.size&&"number"==typeof a.runner.pid&&Number.isFinite(a.runner.pid))try{let{stdout:c}=await s("pgrep",["-P",String(a.runner.pid)]);for(let a of c.split(/\r?\n/)){let c=Number.parseInt(a.trim(),10);Number.isFinite(c)&&c>0&&b.add(c)}}catch{}for(let a of b)try{process.kill(a,"SIGTERM")}catch{}return b.values().next().value??null}async function y(a,b){let c=T(b.updatedAt);if(a.observation.runtimeId===b.id&&a.observation.observedAt===c)return;let d=await M(a.id)??a;(d.observation.runtimeId!==b.id||d.observation.observedAt!==c)&&await u({...d,updatedAt:S(d.updatedAt,c),observation:{runtimeId:b.id,observedAt:c}})}async function z(a,b){var c,d,e,f,g;let h,i;if(O(a.status))return B(a,b);if(("completed"===(c=b.status)||"stalled"===c||"cancelled"===c)&&(d=a,h="string"==typeof(e=b).metadata.dispatchId?e.metadata.dispatchId.trim():"",i="string"==typeof e.runId?e.runId.trim():"",h===d.id||i===d.id)){let c=await M(a.id)??a;if(O(c.status))return;let d=T(b.updatedAt),e="completed"===(f=b.status)||"cancelled"===f?f:"stalled",h={...c,status:e,updatedAt:S(c.updatedAt,d),runner:{...c.runner,finishedAt:d,lastHeartbeatAt:d},observation:{runtimeId:b.id,observedAt:d},result:"completed"===e?c.result??{runId:(g=b).runId||`runtime:${g.id}`,status:"completed",summary:g.subtitle||"completed",meta:{agentId:g.agentId,sessionId:g.sessionId,model:g.modelId,usage:g.tokenUsage}}:c.result,error:"stalled"===e?c.error||b.subtitle||"OpenClaw runtime ended before the dispatch runner finalized.":null};return await u(h),h}if(!b.agentId||!b.sessionId)return;let j=await C(a,b);if(!j)return;let k=!!(j.finalTimestamp&&j.stopReason&&"toolUse"!==j.stopReason),l=!!j.errorMessage||"error"===j.stopReason||"aborted"===j.stopReason;if(!k&&!l)return;let m=await M(a.id)??a;if(O(m.status))return;let o=j.finalTimestamp??T(b.updatedAt),p=l?"stalled":"completed",q={...m,status:p,updatedAt:S(m.updatedAt,o),runner:{...m.runner,finishedAt:o,lastHeartbeatAt:o},result:"completed"===p?m.result??(0,n.pV)(b,j):m.result,error:"stalled"===p?j.errorMessage||m.error||"OpenClaw runtime ended before the dispatch runner finalized.":null};return await u(q),q}async function A(a,b){var c,d,e;let f;if("completed"!==a.status)return null;let g=await C(a,b);if(!g)return null;let h=(0,n.pV)(b,g);if(!h||!g.finalText?.trim()&&!g.tokenUsage)return null;let i=await M(a.id)??a;if("completed"!==i.status||(0,n.v0)(i)&&(c=i,(f=(0,n.gQ)(c))&&f.total>0))return null;let j=g.finalTimestamp??T(b.updatedAt)??i.updatedAt,k=i.result&&(0,n.v0)(i)?(d=i.result,e=h,{...d,meta:{...d.meta??{},...e.meta??{}},result:d.result?{...d.result,meta:{...d.result.meta??{},...e.result?.meta??{},...e.meta??{}}}:e.result}):h,l={...i,updatedAt:S(i.updatedAt,j),runner:{...i.runner,finishedAt:i.runner.finishedAt??j,lastHeartbeatAt:S(i.runner.lastHeartbeatAt,j)},result:k};return await u(l),l}async function B(a,b){var c;let d;if("completed"===a.status)return A(a,b);if("stalled"!==a.status)return null;let e=await C(a,b);if(!e||(c=e,d=c.stopReason?.trim(),!("available"===c.status&&c.finalText?.trim())||c.errorMessage||!d||"toolUse"===d||"error"===d||"aborted"===d))return null;let f=(0,n.pV)(b,e);if(!f)return null;let g=await M(a.id)??a;if("completed"===g.status)return A(g,b);if("stalled"!==g.status)return null;let h=e.finalTimestamp??T(b.updatedAt)??g.updatedAt,i={...g,status:"completed",updatedAt:S(g.updatedAt,h),runner:{...g.runner,finishedAt:h,lastHeartbeatAt:S(g.runner.lastHeartbeatAt,h)},observation:{runtimeId:b.id,observedAt:h},result:f,error:null};return await u(i),i}async function C(a,b){let c=b.sessionId??(0,n.Xy)(a);if(!b.agentId||!c)return null;let d=await (0,o.WU)(b.agentId,c,a.workspacePath??void 0);if(!d)return null;try{let e=await (0,f.readFile)(d,"utf8"),g={...b,sessionId:c,metadata:{...b.metadata,mission:"string"==typeof b.metadata.mission?b.metadata.mission:a.mission,dispatchSubmittedAt:"string"==typeof b.metadata.dispatchSubmittedAt?b.metadata.dispatchSubmittedAt:a.submittedAt}},h=(0,o.Jw)(g,e,a.workspacePath??void 0);if(F(h.tokenUsage))return h;let i=await D(a,e);return i?{...h,tokenUsage:i}:h}catch{return null}}async function D(a,b){let c=function(a,b){for(let d of a.split(/\r?\n/))if(d.trim())try{var c;let a=JSON.parse(d);if(!I(a)||"message"!==a.type||!I(a.message)||"user"!==a.message.role)continue;let e=(c=a.message.content,"string"==typeof c?c.trim():Array.isArray(c)?c.flatMap(a=>I(a)&&("text"===a.type||"output_text"===a.type)&&"string"==typeof a.text?[a.text]:[]).join("\n\n").trim():"");if(b.trim()&&e&&!(0,l.Dm)(e,b)&&!e.includes(b.trim()))continue;let f=function(a){let b=I(a.__openclaw)?a.__openclaw:null,c=G(b?.mirrorIdentity);return c?.split(":")[0]?.trim()||null}(a.message);if(f)return f}catch{continue}return null}(b,a.mission);if(!c||!a.workspacePath||!a.agentId)return null;for(let b of function(a){if(!a.workspacePath||!a.agentId)return[];let b=h().join(a.workspacePath,".openclaw","agents",a.agentId,"agent","codex-home","sessions"),c=[a.submittedAt,a.runner.startedAt,a.runner.finishedAt,a.updatedAt,a.observation.observedAt],d=new Set;for(let a of c){let c="string"==typeof a?Date.parse(a):NaN;if(!Number.isNaN(c))for(let a of[-864e5,0,864e5]){let e=new Date(c+a);d.add(h().join(b,...E(e,!1))),d.add(h().join(b,...E(e,!0)))}}return Array.from(d)}(a))for(let a of(await (0,f.readdir)(b,{withFileTypes:!0}).catch(()=>[])).filter(a=>a.isFile()&&a.name.startsWith("rollout-")&&a.name.endsWith(".jsonl")).map(a=>h().join(b,a.name))){let b=await (0,f.readFile)(a,"utf8").catch(()=>null);if(!b||!b.includes(c))continue;let d=function(a,b){let c=b.trim();if(!c)return null;let d=!1,e=null;for(let b of a.split(/\r?\n/))if(b.trim())try{let a=JSON.parse(b);if(!I(a)||"event_msg"!==a.type||!I(a.payload))continue;let f="string"==typeof a.payload.type?a.payload.type:"";if("task_started"===f&&G(a.payload.turn_id)===c){d=!0,e=null;continue}if(!d)continue;if("token_count"===f){let b=function(a){if(!I(a))return null;let b=I(a.total_token_usage)?a.total_token_usage:I(a.last_token_usage)?a.last_token_usage:null;if(!b)return null;let c=H(b.total_tokens);return null===c?null:{input:H(b.input_tokens)??0,output:H(b.output_tokens)??0,total:c,cacheRead:H(b.cached_input_tokens)??0}}(a.payload.info);F(b)&&(e=b);continue}if("task_complete"===f&&G(a.payload.turn_id)===c)break}catch{continue}return e}(b,c);if(F(d))return d}return null}function E(a,b){let c=b?a.getUTCFullYear():a.getFullYear(),d=b?a.getUTCMonth()+1:a.getMonth()+1,e=b?a.getUTCDate():a.getDate();return[String(c),J(d),J(e)]}function F(a){return!!(a&&a.total>0)}function G(a){return"string"==typeof a&&a.trim()?a.trim():null}function H(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function I(a){return!!(a&&"object"==typeof a&&!Array.isArray(a))}function J(a){return String(a).padStart(2,"0")}async function K(a){let b=(0,n.Xy)(a);if(!a.agentId||!b)return null;let c=await (0,o.WU)(a.agentId,b,a.workspacePath??void 0);if(!c)return null;try{let d=await (0,f.readFile)(c,"utf8"),e=(0,m.ho)(a,b),g=(0,o.qv)(e,(0,o.SI)(d,e,a.workspacePath??void 0));if(0===g.length||a.mission&&!g.some(b=>(0,l.Dm)(b.prompt,a.mission)))return null;return e}catch{return null}}async function L(){try{let a=await (0,f.readdir)(q,{withFileTypes:!0}),b=Date.now();return(await Promise.all(a.filter(a=>a.isFile()&&a.name.endsWith(".json")).map(async a=>{var c,d;let e,g=h().join(q,a.name),i=await N(g);return i?(c=i,d=b,e=Date.parse(c.updatedAt),!Number.isNaN(e)&&d-e>2592e5)?(await (0,f.rm)(g,{force:!0}),i.runner.logPath&&await (0,f.rm)(i.runner.logPath,{force:!0}),null):i:null}))).filter(a=>!!a).sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))}catch{return[]}}async function M(a){return N(Q(a))}async function N(a){try{let b=await (0,f.readFile)(a,"utf8"),c=JSON.parse(b);if(!c||"object"!=typeof c||"string"!=typeof c.id||"string"!=typeof c.agentId||"string"!=typeof c.mission||"string"!=typeof c.routedMission||"string"!=typeof c.submittedAt||"string"!=typeof c.updatedAt)return null;let d=(0,n.cS)(c.status);return{id:c.id,status:d,agentId:c.agentId,sessionId:"string"==typeof c.sessionId?c.sessionId:null,mission:c.mission,routedMission:c.routedMission,thinking:(0,n.YY)(c.thinking),workspaceId:"string"==typeof c.workspaceId?c.workspaceId:null,workspacePath:"string"==typeof c.workspacePath?c.workspacePath:null,submittedAt:c.submittedAt,updatedAt:c.updatedAt,outputDir:"string"==typeof c.outputDir?c.outputDir:null,outputDirRelative:"string"==typeof c.outputDirRelative?c.outputDirRelative:null,notesDirRelative:"string"==typeof c.notesDirRelative?c.notesDirRelative:null,runner:{pid:"number"==typeof c.runner?.pid?c.runner.pid:null,childPid:"number"==typeof c.runner?.childPid?c.runner.childPid:null,startedAt:"string"==typeof c.runner?.startedAt?c.runner.startedAt:null,finishedAt:"string"==typeof c.runner?.finishedAt?c.runner.finishedAt:null,lastHeartbeatAt:"string"==typeof c.runner?.lastHeartbeatAt?c.runner.lastHeartbeatAt:null,logPath:"string"==typeof c.runner?.logPath?c.runner.logPath:R(c.id)},observation:{runtimeId:"string"==typeof c.observation?.runtimeId?c.observation.runtimeId:null,observedAt:"string"==typeof c.observation?.observedAt?c.observation.observedAt:null},result:(0,n.Ok)(c.result)?c.result:null,error:"string"==typeof c.error?c.error:null}}catch{return null}}function O(a){return"completed"===a||"stalled"===a||"cancelled"===a}function P(a){let b="string"==typeof a?a.trim():"";return b.length>0?b:"Mission aborted by operator."}function Q(a){return h().join(q,`${a}.json`)}function R(a){return h().join(q,`${a}.log.jsonl`)}function S(a,b){let c=a?Date.parse(a):NaN,d=b?Date.parse(b):NaN;return Number.isNaN(c)?b??new Date().toISOString():Number.isNaN(d)||c>=d?a??new Date().toISOString():b}function T(a){return"number"==typeof a&&Number.isFinite(a)?new Date(a).toISOString():null}},38610:(a,b,c)=>{function d(a){return!a||"native-ws"!==a.gatewayMode||"connected"!==a.connectionState||(!!a.lastNativeError||!!a.recovery)&&!!a.lastNativeFailureAt&&!!a.lastConnectedAt&&f(a.lastNativeFailureAt,a.lastConnectedAt)}function e(a,b){return a.filter(a=>!b||"native-ws"!==b.gatewayMode||"connected"!==b.connectionState||f(a.at,b.lastConnectedAt))}function f(a,b){if(!b)return!0;if(!a)return!1;let c=Date.parse(a),d=Date.parse(b);return!(Number.isFinite(c)&&Number.isFinite(d))||c>=d}c.d(b,{aH:()=>d,wi:()=>e})},38798:(a,b,c)=>{c.d(b,{JG:()=>d.JG,Lo:()=>d.Lo,aj:()=>d.aj,gH:()=>d.gH}),c(38699);var d=c(26516)},49922:(a,b,c)=>{function d(a){let b=a.trim();return/OAuth token refresh failed for openai-codex/i.test(b)||/OpenAI Codex token refresh failed\s*\(401\)/i.test(b)||/refresh token has already been used to generate a new access token/i.test(b)}function e(a){let b;return d(a)||(b=a.trim(),/Your ChatGPT\/Codex session has expired/i.test(b)&&/models auth login --provider openai-codex/i.test(b))}function f(a){return/OpenClaw command timed out after \d+ seconds|Command exceeded \d+ seconds/i.test(a)}function g(a){return`Your ChatGPT/Codex session has expired. Reconnect ChatGPT, then retry model discovery or runtime verification. Run: ${a}`}function h(a){var b;return`${b=a,/^[a-zA-Z0-9_./:@%+=,-]+$/.test(b)?b:`'${b.replaceAll("'","'\\''")}'`} models auth login --provider openai-codex --set-default`}c.d(b,{Bd:()=>d,Lw:()=>f,MF:()=>h,YG:()=>e,ox:()=>g})},52082:(a,b,c)=>{c.d(b,{er:()=>a$,b7:()=>aZ,GM:()=>a0,ZZ:()=>a_});var d=c(96876),e=c(88366),f=c(92273),g=c(39503);async function h(a=2e4,b=(0,g.rw)()){try{let c=await b.getStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function i(a=2e4,b=(0,g.rw)()){try{let c=await b.getUpdateStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function j(a=2e4,b=(0,g.rw)()){try{let c=await b.getGatewayStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function k(a=2e4,b=(0,g.rw)()){try{let c=await b.getModelStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}class l{constructor(a){this.staleGraceMs=a,this.cache=null}clear(){this.cache=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.staleGraceMs}getCachedPort(a=18789){return this.cache?.value.gateway?.port??a}write(a){this.cache={value:a,capturedAt:Date.now()}}resolve(a){return"fulfilled"===a.status?(this.write(a.value),{value:a.value,reusedCachedValue:!1}):this.cache&&Date.now()-this.cache.capturedAt<=this.staleGraceMs?{value:this.cache.value,reusedCachedValue:!0}:{value:void 0,reusedCachedValue:!1}}}var m=c(83761),n=c(75402),o=c(88978);class p{constructor(a){this.options=a,this.cache=null,this.promise=null}clear(){this.cache=null,this.promise=null}read(a,b={},c=!1){let d=q(a,b),e=this.cache,f=!!(e&&e.agentIdsKey===d),g=!!(f&&e&&e.expiresAt>Date.now());return!c&&g&&e?e.value:!c&&f&&e?(this.promise||(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),e.value):!c&&this.promise&&f&&e?e.value:this.promise&&!c||c&&this.promise?this.promise:(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{}),c?this.promise.then(a=>a):this.promise)}loadForCurrentGeneration(a,b){let c=this.options.getGeneration(),d=q(a,b);return this.options.loadState(a,b).then(a=>(c===this.options.getGeneration()&&(this.cache={agentIdsKey:d,value:a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function q(a,b){return[...new Set(a.filter(Boolean))].sort().map(a=>`${a}:${b[a]??""}`).join("\0")}class r{constructor(a){this.options=a,this.cache=null,this.promise=null,this.generation=0}getGeneration(){return this.generation}clear(a={}){a.incrementGeneration&&(this.generation+=1),this.cache=null}async get(a={}){let b=this.cache,c=!!(b&&b.expiresAt>Date.now());if(!a.force&&c&&b)return s(b,a.includeHidden);if(!a.force&&b)return this.promise||(this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),s(b,a.includeHidden);if(a.force){this.generation+=1,this.cache=null,this.promise=this.loadForCurrentGeneration(a.loadProfile??"refresh"),this.promise.catch(()=>{});try{let b=await this.promise;return s(b,a.includeHidden)}finally{this.promise=null}}if(this.promise)return s(await this.promise,a.includeHidden);this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{});try{let b=await this.promise;return s(b,a.includeHidden)}finally{this.promise=null}}loadForCurrentGeneration(a){let b=this.generation;return this.options.load(a,b).then(a=>(b===this.generation&&(this.cache={...a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function s(a,b){return b?a.full:a.visible}class t{constructor(a){this.controller=new r(a)}getGeneration(){return this.controller.getGeneration()}clear(a={}){this.controller.clear(a)}getSnapshot(a={}){return this.controller.get(a)}}var u=c(25303),v=c(72761),w=c(56763),x=c(11782);function y(a,b){return{models:Array.from(new Set([...a.map(a=>a.model??"").filter(Boolean),...(b?.allowed??[]).filter(Boolean),b?.resolvedDefault??"",b?.defaultModel??""].filter(Boolean))).map(a=>{var b;let c,d,e,f=(d=(c=a.trim().toLowerCase()).split("/",1)[0]||"",e=c.includes("/")?c.slice(d.length+1):c,"ollama"===d?{contextWindow:(b=e).includes("qwen3.5")?262144:(b.includes("qwen")||b.includes("llama3.2")||b.includes("llama3.3")||b.includes("deepseek-r1"),131072),local:!0}:"openai"===d||"openai-codex"===d?{contextWindow:e.startsWith("gpt-5")?272e3:null,local:!1}:"anthropic"===d?{contextWindow:2e5,local:!1}:"google"===d||"gemini"===d?{contextWindow:1e6,local:!1}:"deepseek"===d?{contextWindow:64e3,local:!1}:"mistral"===d?{contextWindow:128e3,local:!1}:"openrouter"===d||"xai"===d?{contextWindow:null,local:!1}:{contextWindow:null,local:null});return{key:a,name:a,input:"text",contextWindow:f.contextWindow,local:f.local,available:!0,tags:[],missing:!1}})}}function z(a,b=[]){let c=B(b.find(a=>a.isDefault))||B(b.find(a=>!!B(a)))||a.find(a=>a.default)?.model||a.find(a=>!!a.model)?.model||null;if(c)return{defaultModel:c,resolvedDefault:c}}function A(a){return"string"==typeof a&&a.trim()?a.trim():null}function B(a){return A(a?.modelId)??A(a?.model)}var C=c(76760),D=c.n(C),E=c(21916);function F(a,b){let c=new Set,d=new Map;for(let b of a){let a=function(a){var b;let c=I(a.workspace),d=(b=a.identityName||a.name||a.id,(0,E.Nk)(b)?.toLocaleLowerCase("en-US")??"");return c&&d?`${c}\0${d}`:null}(b);if(!a)continue;let c=d.get(a)??[];c.push(b),d.set(a,c)}for(let a of d.values()){if(a.length<2)continue;let d=a.filter(H);if(0!==d.length)for(let e of a)!d.includes(e)&&function(a,b){let c=I(a.agentDir),d=I(D().join(b,"agents"));return!!(c&&d&&c.startsWith(`${d}${D().sep}`))}(e,b)&&c.add(G(e))}return a.filter(a=>!c.has(G(a)))}function G(a){return`${a.id}\0${I(a.agentDir)}`}function H(a){let b=I(a.workspace),c=I(a.agentDir);return!!b&&!!c&&c.startsWith(`${D().join(b,".openclaw","agents")}${D().sep}`)}function I(a){let b=(0,E.Nk)(a);return b?D().normalize(b):""}let J="Deferred to background refresh.";class K{constructor(a=3e5){this.ttlMs=a,this.cache=null,this.refreshPromise=null}clear(){this.cache=null,this.refreshPromise=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.ttlMs}resolve(a){return L(a,this.cache,a=>{this.cache=a},this.ttlMs)}scheduleRefresh(a){!this.refreshPromise&&this.shouldRefresh()&&(this.refreshPromise=(async()=>{try{let b=await a();"fulfilled"===b.status&&(this.cache={value:b.value,capturedAt:Date.now()})}catch{}finally{this.refreshPromise=null}})(),this.refreshPromise.catch(()=>{}))}}function L(a,b,c,d=3e5){return"fulfilled"===a.status?(c({value:a.value,capturedAt:Date.now()}),{value:a.value,reusedCachedValue:!1,failed:!1}):b&&Date.now()-b.capturedAt<=d?{value:b.value,reusedCachedValue:!0,failed:!0}:{value:void 0,reusedCachedValue:!1,failed:!0}}function M(){return{status:"rejected",reason:Error(J)}}function N(a){return"rejected"===a.status&&a.reason instanceof Error&&a.reason.message===J}var O=c(28182),P=c(35456),Q=c(29822),R=c(65493),S=c(38610);function T(a,b){for(let c of a)for(let a of b){let b=(0,E.Nk)("string"==typeof c[a]?c[a]:void 0);if(b)return b}}function U(a){return V(a)?a:void 0}function V(a){return!!(a&&"object"==typeof a&&!Array.isArray(a))}function W(a){if(!a)return null;try{return new URL(a).hostname}catch{return null}}function X(a){let b=a.trim().toLowerCase().replace(/^\[|\]$/g,"");return"localhost"===b||"::1"===b||"0:0:0:0:0:0:0:1"===b||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(b)}function Y(a,b){let c=[...a.issues,..."failed"===b.status&&b.error?[`Latest runtime smoke test failed for ${b.agentId??"unknown agent"}. ${b.error}`]:[]];return{...a,smokeTest:b,issues:c}}var Z=c(15292),$=c(38798),_=c(7565),aa=c(48161),ab=c.n(aa);let ac=["Audit the selected workspace and generate a concrete first task batch.","Plan a multi-agent delivery mission for the current product goal.","Review active runtimes, identify blockers, and propose the next handoff."];function ad(a){return{visible:a,full:a}}function ae(a){return a||D().join(ab().homedir(),"Documents","Shared","projects")}async function af(a,b,c){let d=a.map(a=>a.id).filter(Boolean),e=Object.fromEntries(a.filter(a=>a.id).map(a=>[a.id,a.agentDir]));return Y(await c.read(d,e),(0,P.fj)(b))}async function ag(a){var b,c,d,f,g,h;let i,j,k,l,m,n,o,p,q,r,s,t,v,w,x,y=(0,E.QL)(a.models,a.modelStatus),z=(b=a.status,b?.securityAudit?.findings?.filter(a=>"warn"===a.severity).map(a=>a.title||a.detail||"Security warning")??[]),A=(m=function(a){let b=[];function c(a){!V(a)||b.includes(a)||b.push(a)}return c(a),c(a?.result),c(a?.data),c(a?.update),c(a?.availability),c(U(a?.update)?.registry),c(a?.registry),c(a?.stats),c(a?.sentinel),c(U(a?.sentinel)?.stats),c(U(a?.result)?.update),c(U(U(a?.result)?.update)?.registry),c(U(a?.result)?.registry),c(U(a?.result)?.stats),b}((c={status:a.status,updateStatus:a.updateStatus,updateStatusError:function(a){if(!("rejected"!==a.status||N(a)))return a.reason instanceof Error?a.reason.message:String(a.reason)}(a.payloadResults.updateStatus),fallbackVersion:await (0,e.YP)()??void 0}).updateStatus),n=(0,E.Nk)(c.status?.runtimeVersion||c.status?.overview?.version||c.status?.version)??T(m,["runningVersion","currentVersion","runtimeVersion","version","afterVersion"])??c.fallbackVersion??void 0,o=(0,E.Nk)(c.status?.update?.registry?.latestVersion??void 0)??T(m,["latestVersion","targetVersion","availableVersion","recommendedVersion"]),p=(0,E.nn)(c.status?.update?.registry?.error??void 0)??function(a){let b=T(a,["error","errorMessage"]);if(b)return(0,E.nn)(b);for(let b of a)if(!1===b.ok){let a=T([b],["message","reason","status"]);if(a)return(0,E.nn)(a)}}(m)??(0,E.nn)(c.updateStatusError),q=n&&o?(0,E.QK)(o,n)>0:function(a,b){for(let c of a)for(let a of b)if("boolean"==typeof c[a])return c[a]}(m,["updateAvailable","available","hasRegistryUpdate"]),r=(0,E.mB)({currentVersion:n,latestVersion:o,updateError:p,legacyInfo:c.status?.overview?.update??T(m,["updateInfo","summary","detail"])}),{currentVersion:n,latestVersion:o,updateAvailable:q,updateError:p,updateInfo:r}),B=(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),C="interactive"===a.profile?(0,u.Bc)()??void 0:await (0,u.N3)().catch(()=>void 0);"interactive"!==a.profile||C||(0,u.Cs)();let D=(0,_.Xz)()?.getDiagnostics?.(),F=(0,S.wi)((0,$.Lo)(),D).map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`);return f={gatewayStatus:a.gatewayStatus,status:a.status,configuredWorkspaceRoot:a.configuredWorkspaceRoot,workspaceRoot:ae(a.configuredWorkspaceRoot),configuredGatewayUrl:a.configuredGatewayUrl,hasOpenClawSignal:a.hasOpenClawSignal,securityWarnings:z,runtimeDiagnostics:a.runtimeDiagnostics,openClawBinarySelection:B,modelReadiness:y,capabilityMatrix:C,compatibilitySmokeTest:(0,P.ul)(a.settings),commandHistory:(0,e.ik)(),transport:D,versionDiagnostics:A,issues:(d={payloadResults:a.payloadResults,gatewayStatusRejectedWithCachedValue:a.gatewayStatusRejectedWithCachedValue,payloadReuse:a.payloadReuse,runtimeIssues:[...a.runtimeDiagnostics.issues,...F]},[...(0,E.Lp)(Object.fromEntries(Object.entries(d.payloadResults).filter(([,a])=>!N(a)))),...d.gatewayStatusRejectedWithCachedValue?["gatewayStatus: Reusing the last successful gateway status after a transient OpenClaw check failure."]:[],...Object.entries(d.payloadReuse).map(([a,b])=>{var c;return c=a,b.reusedCachedValue?`${c}: Reusing the last successful payload while a slow OpenClaw command refreshes in the background.`:null}).filter(a=>!!a),...d.runtimeIssues])},s=(f.transport?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,R.Hi)(a.operation)})),t=(0,S.wi)(s,f.transport),v=[...f.securityWarnings,...(g=f.gatewayStatus,h=f.configuredGatewayUrl,i=[],j=W(g?.gateway?.probeUrl),k=W(h??void 0),l=(0,E.Nk)(g?.gateway?.bindMode??void 0)?.toLowerCase(),j&&!X(j)&&i.push("OpenClaw Gateway is reachable on a non-loopback host. AgentOS mutation APIs stay restricted to same-origin localhost requests."),k&&!X(k)&&i.push("AgentOS is configured to use a non-loopback Gateway URL. Keep AgentOS itself bound to localhost unless an explicit operator tunnel is in place."),l&&!/(local|loopback|localhost)/i.test(l)&&i.push("OpenClaw Gateway bind mode is not local-only. Review Gateway exposure before using operator write actions."),Array.from(new Set(i)))],x=(w=function(a){var b;let c,d=[a?.rpc?.error,a?.rpc?.capability,a?.rpc?.auth?.capability].filter(a=>"string"==typeof a&&!!a.trim()).join("\n");if(!/scope upgrade pending approval|pairing_pending|device token scope mismatch|connected_no_operator_scope|missing operator/i.test(d))return null;let e=(b=d,c=/\brequestId:\s*([a-f0-9-]{12,})\b/i.exec(b),c?.[1]??null);return e?`OpenClaw Gateway device access is waiting for operator-scope approval (${e}). Run Repair access in Gateway settings or approve that request with OpenClaw devices, then retry.`:"OpenClaw Gateway device access is waiting for operator-scope approval. Run Repair access in Gateway settings or approve the pending OpenClaw device request, then retry."}(f.gatewayStatus))?[w,...f.issues.filter(a=>{var b;return b=a,!/Timed out waiting for OpenClaw Gateway method|Gateway-native operation failed; CLI fallback disabled|Native Gateway: Unreachable/i.test(b)})]:f.issues,{installed:!0,loaded:!!f.gatewayStatus?.service?.loaded,rpcOk:!!f.gatewayStatus?.rpc?.ok,health:(0,E.YO)({rpcOk:f.gatewayStatus?.rpc?.ok,warningCount:v.length,runtimeIssueCount:f.runtimeDiagnostics.issues.length,hasOpenClawSignal:f.hasOpenClawSignal}),version:f.versionDiagnostics.currentVersion,latestVersion:f.versionDiagnostics.latestVersion,updateAvailable:f.versionDiagnostics.updateAvailable,updateError:f.versionDiagnostics.updateError,updateRoot:(0,E.Nk)(f.status?.update?.root??void 0),updateInstallKind:(0,E.Nk)(f.status?.update?.installKind??void 0),updatePackageManager:(0,E.Nk)(f.status?.update?.packageManager??void 0),workspaceRoot:f.workspaceRoot,configuredWorkspaceRoot:f.configuredWorkspaceRoot,dashboardUrl:`http://127.0.0.1:${f.gatewayStatus?.gateway?.port??18789}/`,gatewayUrl:f.gatewayStatus?.gateway?.probeUrl||"ws://127.0.0.1:18789",configuredGatewayUrl:f.configuredGatewayUrl??null,bindMode:f.gatewayStatus?.gateway?.bindMode,port:f.gatewayStatus?.gateway?.port,updateChannel:f.status?.updateChannel||"stable",updateInfo:f.versionDiagnostics.updateInfo,serviceLabel:f.gatewayStatus?.service?.label,openClawBinarySelection:f.openClawBinarySelection,modelReadiness:f.modelReadiness,capabilityMatrix:f.capabilityMatrix,compatibilitySmokeTest:f.compatibilitySmokeTest??null,gatewayFallbackDiagnostics:s,gatewayFallbackReasons:t.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:f.runtimeDiagnostics,commandHistory:f.commandHistory,transport:f.transport,securityWarnings:v,issues:x}}function ah(a){return function(a,b,c){let d=new Map;for(let a of b)d.set(a.modelId,(d.get(a.modelId)??0)+1);return a.map(a=>({id:a.key,name:a.name,provider:(0,x.AV)(a.key,c),input:a.input,contextWindow:a.contextWindow,local:a.local,available:a.available,missing:a.missing,tags:a.tags,usageCount:d.get(a.key)??0}))}(a.models,a.agents,a.modelStatus)}var ai=c(51455);async function aj(a,b){try{var c,d,e;let f=(c=a,d=b,e=[...c.flatMap(a=>{let b=[],c=ao(a.workspace);return c&&b.push(D().join(c,".openclaw","agents")),b}),D().join(d,"agents")],Array.from(new Set(e.filter(Boolean)))),g=await ak(f);return{status:"fulfilled",value:{sessions:g}}}catch(a){return{status:"rejected",reason:a}}}async function ak(a){let b=new Map;for(let c of a){let a;try{a=await (0,ai.readdir)(c,{withFileTypes:!0})}catch{continue}for(let d of a){let a,e;if(!d.isDirectory())continue;let f=D().join(c,d.name,"sessions","sessions.json");try{a=await (0,ai.readFile)(f,"utf8")}catch{continue}try{e=JSON.parse(a)}catch{continue}if(Array.isArray(e)){for(let a of e){if(!an(a))continue;let c=al(a,d.name);b.has(c.key)||b.set(c.key,c)}continue}if(an(e))for(let[a,c]of Object.entries(e)){if(!an(c))continue;let e=al(c,d.name,a);b.has(e.key)||b.set(e.key,e)}}}return Array.from(b.values()).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function al(a,b,c){var d;let e=ao("string"==typeof a.sessionId?a.sessionId:void 0),f=am(a,"updatedAt"),g=am(a,"inputTokens"),h=am(a,"outputTokens"),i=am(a,"totalTokens"),j=am(a,"cacheRead"),k=am(a,"ageMs")??("number"==typeof(d=f)?Math.max(Date.now()-d,0):void 0),l=ao("string"==typeof a.model?a.model:void 0),m=ao("string"==typeof a.modelProvider?a.modelProvider:void 0),n=ao("string"==typeof a.key?a.key:c)??e??`${b}:${f??"session"}`;return{agentId:b,key:n,sessionId:e||void 0,updatedAt:f,ageMs:k,inputTokens:g,outputTokens:h,totalTokens:i??("number"==typeof g||"number"==typeof h?(g??0)+(h??0):void 0),model:l||void 0,modelProvider:m||void 0,cacheRead:j,kind:function(a,b){let c=ao("string"==typeof a.kind?a.kind:"string"==typeof a.chatType?a.chatType:void 0);if(c)return c;let d=an(a.deliveryContext)?a.deliveryContext:null,e=an(a.origin)?a.origin:null;if("heartbeat"===ao("string"==typeof d?.to?d.to:void 0)||"heartbeat"===ao("string"==typeof e?.provider?e.provider:void 0))return"direct";let f=ao(b);return f&&/:(direct|dm|private):/i.test(f)?"direct":f&&/:(group|channel|thread):/i.test(f)?"group":"task"}(a,n)}}function am(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function an(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ao(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}async function ap(){try{let a=await (0,ai.readFile)(D().join(n.wh,"openclaw.json"),"utf8"),b=JSON.parse(a);return{status:"fulfilled",value:function(a,b){let c=a;for(let a of b.split(".")){var d;if(!((d=c)&&"object"==typeof d&&!Array.isArray(d))||!Object.hasOwn(c,a))return;c=c[a]}return c}(b,"gateway.remote.url")??void 0}}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{status:"fulfilled",value:void 0};return{status:"rejected",reason:a}}}async function aq(a){try{var b;let c,d=await (0,g.rw)().listAgents({timeoutMs:15e3});return{status:"fulfilled",value:(b=n.wh,c=new Map(a.map(a=>[a.id,a])),F(d.agents.map(a=>{let e=c.get(a.id),f=a.identity??e?.identity,g=(0,E.Nk)(a.workspace)??(0,E.Nk)(e?.workspace)??"",h=a.model?.primary??e?.model;return{id:a.id,name:a.name||f?.name||e?.name||a.id,identityName:f?.name,identityEmoji:f?.emoji,identitySource:a.identity?"gateway":e?.identity?"config":void 0,workspace:g,agentDir:e?.agentDir||D().join(b,"agents",a.id,"agent"),model:h,isDefault:a.id===d.defaultId||!!e?.default}}),b))}}catch(a){return{status:"rejected",reason:a}}}async function ar(a){try{let a=await (0,g.rw)().listSessions({limit:500,includeGlobal:!1,includeUnknown:!1},{timeoutMs:15e3});if(!a||!Array.isArray(a.sessions))throw Error("OpenClaw Gateway sessions.list returned an invalid payload.");return{status:"fulfilled",value:{sessions:a.sessions}}}catch{return aj(a,n.wh)}}var as=c(20078),at=c(37110),au=c(80410);function av(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}var aw=c(70016),ax=c(25793);async function ay(){return(0,at.Ff)()}async function az(a,b){let c=await (0,as.cf)();return(0,au.kw)((0,as.ZO)(a,c),b)}async function aA(a){var b;let c,d=(await Promise.all(a.sessions.map(b=>(0,ax.V9)(b,a.agentConfig,a.agentsList,(b,c,d)=>(0,aw.$Z)(b,c,d,{resolveWorkspaceId:a.resolveWorkspaceId}))))).flat(),e=(0,w.Em)(a.runtimeSnapshot,{agentConfig:a.agentConfig,agentsList:a.agentsList,resolveWorkspaceId:a.resolveWorkspaceId}),f=a.systemProfile?[]:await (0,v.Qc)(),g=await (0,as.cf)(),h=(0,as.J0)([...f,...e,...d],g),i=(0,au.CD)(h,a.dispatchRecords),j=await (0,au.Ip)(i,a.dispatchRecords,{buildObservedRuntime:at.DO,persistObservation:at.vH,reconcileRuntimeState:at.Yp});return c=function(a,b,c={}){let d=new Map,e=new Set(a.map(a=>a.id));for(let b of a)d.set(b.id,b);for(let[a,c]of b.entries()){if(e.has(a))continue;let b={...c,status:"stalled"===c.status?"stalled":"cancelled"===c.status?"cancelled":"completed",metadata:{...c.metadata,historical:!0}};d.set(a,b)}let f=function(a){let b=new Map;for(let c of a){let a=c.agentId||c.workspaceId||"global",d=b.get(a)??[];d.push(c),b.set(a,d)}return Array.from(b.values()).flatMap(a=>{let b=a.sort(av),c=new Map(b.slice(0,8).map(a=>[a.id,a]));for(let a of b){var d;"string"==typeof(d=a).metadata.dispatchId&&d.metadata.dispatchId.trim().length>0&&!0!==d.metadata.historical&&c.set(a.id,a)}return Array.from(c.values()).sort(av)})}(Array.from(d.values())),g=new Map(f.filter(a=>!c.excludeFromCache?.(a)).map(a=>[a.id,a]));return{runtimes:f.sort(av),cache:g}}([...i,...j],(b=a.historyStore).cache,{excludeFromCache:au.U8}),b.cache=c.cache,c.runtimes}var aB=c(93628),aC=c(71065),aD=c(57419),aE=c(9443),aF=c(58889),aG=c(54252),aH=c(96109),aI=c(15612);async function aJ(a){let b=new Map,c=new Map,d=new Map,e=[],f=[],g=new Map((a.status?.heartbeat?.agents??[]).map(a=>[a.agentId,a])),h=new Map(a.agentConfig.map(a=>[a.id,a])),i=new Map;for(let b of a.sessions){if(!b.agentId)continue;let a=i.get(b.agentId)??[];a.push(b),i.set(b.agentId,a)}for(let j of(await Promise.all(a.bindings.workspacePaths.map(async b=>{let e=a.bindings.activeAgentIdsByWorkspacePath.get(b)??[],f=await (0,aF.QO)(b,e);await (0,aG.u)(b),c.set(b,f),d.set(b,await (0,aE.xL)(b,f.template,f.rules??aI.eY))})),await Promise.all(a.bindings.workspaceBoundAgents.map(async b=>{var e;let f,j,k,l,m,n,o,p,q,r,s,t,u,v=h.get(b.id),w=a.bindings.resolveWorkspaceId(b.workspace),x=i.get(b.id)??[],y=c.get(b.workspace)??await (0,aF.OL)(b.workspace);c.set(b.workspace,y);let z=y.agents.find(a=>a.id===b.id)??null,A=await (0,aD.L)(b.workspace,{agentId:b.id,agentName:v?.name||b.name||v?.identity?.name||b.identityName||b.id,configuredSkills:(0,aC.AB)(v?.skills??[]),configuredTools:Array.from(new Set([...z?.toolIds??[],...v?.tools?.fs?.workspaceOnly||z?.policy?.fileAccess==="workspace-only"?["fs.workspaceOnly"]:[]].filter(Boolean))),template:y.template,rules:y.rules??aI.eY,workspaceBootstrapProfile:d.get(b.workspace)??await (0,aE.xL)(b.workspace,y.template,y.rules??aI.eY)}),B=a.runtimes.filter(a=>a.agentId===b.id).sort(av),C=g.get(b.id);return e={rawAgent:b,configured:v,identityOverrides:null,workspaceId:w,sessionList:x,manifestAgent:z,agentRuntimes:B,gatewayRpcOk:!!(a.gatewayStatus?.rpc?.ok||a.hasOpenClawSignal),heartbeat:C,profile:A},f=(0,aC.AB)(e.configured?.skills??[]),j=(0,E.Nk)(e.identityOverrides?.name)||e.configured?.name||e.rawAgent.name||e.configured?.identity?.name||e.rawAgent.identityName||e.rawAgent.id,k=e.manifestAgent?.policy??(0,aB.g0)((0,aB.qF)({skills:f,id:e.rawAgent.id,name:j}),{fileAccess:e.configured?.tools?.fs?.workspaceOnly?"workspace-only":"extended"}),l=(0,E.Am)([...e.manifestAgent?.toolIds??[],..."workspace-only"===k.fileAccess?["fs.workspaceOnly"]:[]]),m=e.rawAgent.model||e.configured?.model||"unassigned",n=e.agentRuntimes.sort(av),o=(0,E.Am)(n.flatMap(a=>a.toolNames??[])),p=n.map(a=>a.id),q=n[0],r=e.sessionList.map(a=>a.updatedAt??0).sort((a,b)=>b-a).at(0)||null,s=(0,E.yv)({rpcOk:e.gatewayRpcOk,activeRuntime:q,heartbeatEnabled:!!e.heartbeat?.enabled,lastActiveAt:r}),t={id:e.rawAgent.id,name:j,identityName:(0,E.Nk)(e.identityOverrides?.name)||e.configured?.identity?.name||e.rawAgent.identityName||void 0,workspaceId:e.workspaceId,workspacePath:e.rawAgent.workspace,agentDir:e.rawAgent.agentDir,modelId:m,isDefault:!!(e.rawAgent.isDefault||e.configured?.default),status:s,sessionCount:e.sessionList.length,lastActiveAt:r,currentAction:(0,E.iP)({runtime:q,heartbeatEvery:e.heartbeat?.every??null,status:s}),activeRuntimeIds:p,heartbeat:{enabled:!!e.heartbeat?.enabled,every:e.heartbeat?.every??null,everyMs:e.heartbeat?.everyMs??null},identity:{emoji:(0,E.Nk)(e.identityOverrides?.emoji)||e.configured?.identity?.emoji||e.rawAgent.identityEmoji,theme:(0,E.Nk)(e.identityOverrides?.theme)||e.configured?.identity?.theme,avatar:(0,E.Nk)(e.identityOverrides?.avatar)||e.configured?.identity?.avatar,source:e.rawAgent.identitySource},profile:e.profile,skills:f,tools:l,observedTools:o,policy:k},u=[{id:`edge:${e.workspaceId}:${t.id}:contains`,sourceId:e.workspaceId,targetId:t.id,kind:"contains",label:"workspace member"},{id:`edge:${t.id}:${m}:model`,sourceId:t.id,targetId:m,kind:"uses-model",label:"model assignment"},...p.map(a=>({id:`edge:${t.id}:${a}:run`,sourceId:t.id,targetId:a,kind:"active-run",label:"runtime"}))],{agent:t,workspacePath:e.rawAgent.workspace,workspaceId:e.workspaceId,primaryModel:m,sessionCount:e.sessionList.length,activeRuntimeIds:p,relationships:u}})))){let c=function(a,b,c){var d;let e=c(b),f=a.get(e);if(f)return f;let g={id:c(b),name:(d=b,(D().basename(d)||d).split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" ")),slug:D().basename(b).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),path:b,kind:"workspace",agentIds:[],modelIds:[],activeRuntimeIds:[],totalSessions:0,health:"standby",bootstrap:{template:null,sourceMode:null,agentTemplate:null,coreFiles:[],optionalFiles:[],folders:[],projectShell:[],localSkillIds:[]},capabilities:{skills:[],tools:[],workspaceOnlyAgentCount:0},channels:[]};return a.set(e,g),g}(b,j.workspacePath,a.bindings.resolveWorkspaceId);c.agentIds.push(j.agent.id),c.modelIds.push(j.primaryModel),c.activeRuntimeIds.push(...j.activeRuntimeIds),c.totalSessions+=j.sessionCount,e.push(j.agent),f.push(...j.relationships)}let j=new Map;for(let a of e){let b=j.get(a.workspaceId)??[];b.push(a),j.set(a.workspaceId,b)}return{workspaces:await Promise.all(Array.from(b.values()).map(async a=>{var b;let d=j.get(a.id)??[],f=c.get(a.path)??null,g=await (0,aE.aL)(a.path,d,f??void 0);return{...(b={workspace:a,manifest:f,metadata:g,allAgents:e}).workspace,name:b.manifest?.name??b.workspace.name,modelIds:(0,E.Am)(b.workspace.modelIds),activeRuntimeIds:(0,E.Am)(b.workspace.activeRuntimeIds),health:(0,E.OZ)(b.workspace.agentIds,b.allAgents),bootstrap:b.metadata.bootstrap,capabilities:b.metadata.capabilities,channels:b.workspace.channels??[],agentIds:b.workspace.agentIds,totalSessions:b.workspace.totalSessions}})),agents:e,relationships:f,manifestByWorkspace:c}}async function aK({generation:a,settings:b,localGatewayStatus:c,openclawInstalled:f,configuredWorkspaceRoot:g,gatewayStatusCache:h}){let i=await j(3e3),k=h.resolve(i).value??c,l=await (0,m.k)(n.wh),p="fulfilled"===l.status?l.value:[],q=Y(await (0,o.t)(n.wh,p.map(a=>a.id).filter(Boolean),{agentDirs:Object.fromEntries(p.filter(a=>a.id).map(a=>[a.id,a.agentDir]))}),(0,P.fj)(b)),r=z(p),s=y(p,r),t=(0,E.QL)(s.models,r),v=!!k?.rpc?.ok,w=!!(k?.service?.loaded||v),x=f&&v&&q.stateWritable&&q.sessionStoreWritable,A=(0,_.Xz)()?.getDiagnostics?.(),B=(A?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,R.Hi)(a.operation)})),C=(0,S.wi)(B,A),D=C.map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`),F=[v?null:"OpenClaw Gateway RPC is not ready.",...q.issues,...D].filter(a=>!!a),G=(0,d.jJ)(F[0]??"OpenClaw system readiness snapshot.",{installed:f,loaded:w,rpcOk:v});return{...G,generatedAt:new Date().toISOString(),revision:a,mode:"live",diagnostics:{...G.diagnostics,installed:f,loaded:w,rpcOk:v,health:x?"healthy":f?"degraded":"offline",workspaceRoot:ae(g),configuredWorkspaceRoot:g,gatewayUrl:k?.gateway?.probeUrl??G.diagnostics.gatewayUrl,bindMode:k?.gateway?.bindMode,port:k?.gateway?.port,serviceLabel:k?.service?.label,openClawBinarySelection:(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),modelReadiness:t,capabilityMatrix:(0,u.Bc)()??void 0,gatewayFallbackDiagnostics:B,gatewayFallbackReasons:C.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:q,commandHistory:(0,e.ik)(),transport:A,issues:F},missionPresets:ac}}let aL=null,aM=null,aN=null,aO=null,aP=null,aQ=null,aR=null,aS={cache:new Map},aT=new K,aU=new K,aV=new l(6e4),aW=new t({ttlMs:3e4,load:(a,b)=>a1({profile:a,generation:b})}),aX=new p({ttlMs:3e5,getGeneration:()=>aW.getGeneration(),loadState:(a,b)=>(0,o.t)(n.wh,a,{agentDirs:b})});function aY(){aS.cache=new Map}function aZ(){aY()}function a$(){aW.clear({incrementGeneration:!0}),aX.clear(),aV.clear(),aT.clear(),aU.clear(),aL=null,aM=null,aN=null,aO=null,aP=null,aQ=null,aR=null,aY()}function a_(){aW.clear()}async function a0(a={}){return aW.getSnapshot(a)}async function a1({profile:a="interactive",generation:b=aW.getGeneration()}={}){let c=await (0,f.i)(),g=await (0,e.Vg)()||!!c?.rpc?.ok;if(!g)return ad((0,d.jJ)("OpenClaw CLI is not installed on this machine.",{installed:!1,loaded:!!c?.service?.loaded,rpcOk:!1}));try{var l,o,p,q,r;let d,e,s,t,x,B,C,G,H,I,J,K,R,S,T="system"===a,U=await (0,P.tl)();T||(0,v.hC)();let V=(0,P.qB)(U.workspaceRoot)??null;if(T)return ad(await aK({generation:b,settings:U,localGatewayStatus:c,openclawInstalled:g,configuredWorkspaceRoot:V,gatewayStatusCache:aV}));let W=T?M():await ap(),X=M(),Y=aT.shouldRefresh(),Z=aV.shouldRefresh(),$=!aO||Date.now()-aO.capturedAt>3e5;if("interactive"===a||T){let a=!c&&Y,b=!T&&$,f=Z?j(15e3):Promise.resolve(M()),g=a?h(15e3):Promise.resolve(M()),i=(0,m.k)(n.wh),l=b?k(15e3):Promise.resolve(M());[d,e,t,B]=await Promise.all([f,g,i,l]),s=M(),x=M(),C=M(),Y&&!a&&aT.scheduleRefresh(()=>h(15e3))}else[e,d,t,B]=await Promise.all([h(45e3),j(45e3),(0,m.k)(n.wh),k(45e3)]),s=M(),x=M(),C=M();let _=aV.resolve(d);if(!_.value&&c&&(_={value:c,reusedCachedValue:!1}),!_.value){let a=await (0,f.i)(aV.getCachedPort());a&&(aV.write(a),_={value:a,reusedCachedValue:!1})}let aa=_.value,ab="fulfilled"===W.status?(l=W.value,"string"==typeof l?(0,E.Nk)(l):l&&"object"==typeof l&&"value"in l&&"string"==typeof l.value?(0,E.Nk)(l.value):void 0):void 0,ae=aT.resolve(e),ai=L(t,aM,a=>{aM=a}),aj=ai.value??[];N(s)&&!T&&(s=await aq(aj));let ak=T?M():await ar(aj),al=(0,u.Bc)()?.operations?.runtimeSnapshot?.mode,am=!T&&"degraded"!==al&&"disabled"!==al&&"cli-fallback"!==al,an=T?M():am?await (0,w.Jb)("interactive"===a?8e3:15e3):M(),ao=L(s,aL,a=>{aL=a}),as=L(x,aN,a=>{aN=a}),at=L(B,aO,a=>{aO=a}),au=L(ak,aP,a=>{aP=a}),av=L(an,aQ,a=>{aQ=a}),aw=L(C,aR,a=>{aR=a}),ax=ae.value,aB=(r=ax,!!(r?.update?.registry?.latestVersion||r?.update?.registry?.error));T||aB||"refresh"!==a?!T&&!aB&&aU.shouldRefresh()&&aU.scheduleRefresh(()=>i(15e3)):X=await i(2e4);let aC=aB?{value:void 0,reusedCachedValue:!1,failed:!1}:aU.resolve(X),aD=ao.value??(o=n.wh,F(aj.map(a=>({id:a.id,name:a.name||a.identity?.name||a.id,identityName:a.identity?.name,identityEmoji:a.identity?.emoji,identitySource:a.identity?"config":void 0,workspace:(0,E.Nk)(a.workspace)??"",agentDir:a.agentDir||D().join(o,"agents",a.id,"agent"),model:a.model,isDefault:!!a.default})),o)),aE=function(a,b,c=[]){let d=z(b,c);if(!a)return d;let e=A(a.defaultModel)??A(d?.defaultModel)??null,f=A(a.resolvedDefault)??A(d?.resolvedDefault)??e;return{...a,defaultModel:e,resolvedDefault:f}}(at.value,aj,aD),aF=(p={agentConfig:aj,modelStatus:aE},y(p.agentConfig,p.modelStatus)),aG=as.value?.models??aF.models,aI=aw.value??[],aW="fulfilled"===d.status||"fulfilled"===e.status||"fulfilled"===s.status||"fulfilled"===t.status||"fulfilled"===x.status||"fulfilled"===B.status||"fulfilled"===ak.status||"fulfilled"===an.status||"fulfilled"===X.status||"fulfilled"===C.status,aY=af(aD.map(a=>({id:a.id,agentDir:a.agentDir})),U,aX);aY.catch(()=>{});let aZ=await ay(),a$=await az(au.value?.sessions??[],aZ),{channelRegistry:a_,channelAccounts:a0,surfaceRuntime:a1,surfaceDrift:a2}=await (0,Q.v)(a),a3=function(a){let b=a.filter(a=>!!a.workspace),c=Array.from(new Set(b.map(a=>a.workspace))),d=new Map;for(let a of b){let b=d.get(a.workspace)??[];b.push(a.id),d.set(a.workspace,b)}return{workspaceBoundAgents:b,workspacePaths:c,activeAgentIdsByWorkspacePath:d,resolveWorkspaceId:(0,aH.Fm)(c)}}(aD),a4=await aA({sessions:a$,agentConfig:aj,agentsList:aD,runtimeSnapshot:av.value,systemProfile:T,dispatchRecords:aZ,resolveWorkspaceId:a3.resolveWorkspaceId,historyStore:aS}),{workspaces:a5,agents:a6,relationships:a7,manifestByWorkspace:a8}=await aJ({bindings:a3,agentConfig:aj,sessions:a$,status:ax,gatewayStatus:aa,hasOpenClawSignal:aW,runtimes:a4}),{visibleWorkspaces:a9,visibleAgents:ba,visibleRuntimes:bb,visibleRelationships:bc}=(q={workspaces:a5,agents:a6,runtimes:a4,relationships:a7,isWorkspaceHidden:a=>!!a8.get(a.path)?.hidden},G=new Set(q.workspaces.filter(a=>q.isWorkspaceHidden(a)).map(a=>a.id)),H=q.agents.filter(a=>!G.has(a.workspaceId)),I=new Set(q.agents.filter(a=>G.has(a.workspaceId)).map(a=>a.id)),J=q.runtimes.filter(a=>!(a.agentId&&I.has(a.agentId))&&!(a.workspaceId&&G.has(a.workspaceId))),K=new Set(q.runtimes.filter(a=>a.agentId&&I.has(a.agentId)||a.workspaceId&&G.has(a.workspaceId)).map(a=>a.id)),R=new Set([...G,...I,...K]),S=q.relationships.filter(a=>!R.has(a.sourceId)&&!R.has(a.targetId)),{visibleWorkspaces:q.workspaces.filter(a=>!G.has(a.id)),visibleAgents:H,visibleRuntimes:J,visibleRelationships:S}),bd=await aY,be=await ag({profile:a,settings:U,configuredWorkspaceRoot:V??null,configuredGatewayUrl:ab,gatewayStatus:aa,status:ax,updateStatus:aC.value,hasOpenClawSignal:aW,runtimeDiagnostics:bd,models:aG,agents:a6,modelStatus:aE,payloadResults:{gatewayStatus:d,status:e,updateStatus:X,agents:s,agentConfig:t,models:x,modelStatus:B,sessions:ak,presence:C},gatewayStatusRejectedWithCachedValue:"rejected"===d.status&&_.reusedCachedValue,payloadReuse:{status:ae,updateStatus:aC,agents:ao,agentConfig:ai,models:as,modelStatus:at,sessions:au,presence:aw}}),bf=(0,O.IJ)(a4,a6),bg=(0,O.IJ)(bb,ba),bh={generatedAt:new Date().toISOString(),revision:b,mode:"live",diagnostics:be,channelAccounts:a0,channelRegistry:a_,surfaceRuntime:a1,surfaceDrift:a2,presence:aI.map(a=>({host:a.host,ip:a.ip,version:a.version,platform:a.platform,deviceFamily:a.deviceFamily,mode:a.mode,reason:a.reason,text:a.text,ts:a.ts})),missionPresets:ac};return{full:{...bh,workspaces:a5,agents:a6,models:ah({models:aG,agents:a6,modelStatus:aE}),runtimes:a4,tasks:bf,relationships:a7},visible:{...bh,workspaces:a9,agents:ba,models:ah({models:aG,agents:ba,modelStatus:aE}),runtimes:bb,tasks:bg,relationships:bc}}}catch(a){return ad((0,d.jJ)(a instanceof Error?a.message:"Unknown OpenClaw error.",{installed:g,loaded:!!c?.service?.loaded,rpcOk:!!c?.rpc?.ok}))}}},54252:(a,b,c)=>{c.d(b,{u:()=>j});var d=c(51455),e=c(76760),f=c.n(e),g=c(66058),h=c(58889),i=c(15612);async function j(a){let b=await (0,h.OL)(a),c=b.name??f().basename(a),e=b.template?(0,i.hh)(b.template).label:"Workspace",j=b.sourceMode??"empty",k=b.rules??{workspaceOnly:!0},l=(0,g.EB)(b.agents),m=f().join(a,"AGENTS.md"),n="";try{n=await (0,d.readFile)(m,"utf8")}catch{n=(0,g.jR)({name:c,templateLabel:e,sourceMode:j,workspaceOnly:!!k.workspaceOnly,agents:b.agents})}let o=(0,g.LP)(n,"Team",l,"Workspace"),p=(0,g.Jy)(o,b.agents),q=(0,g.LP)(o,"Agent Roles",p,"Team"),r=(0,g.Be)(q);r!==n&&(await (0,d.mkdir)(f().dirname(m),{recursive:!0}),await (0,d.writeFile)(m,r,"utf8"))}},56763:(a,b,c)=>{c.d(b,{Em:()=>h,Jb:()=>g,wz:()=>i});var d=c(77598),e=c(39503),f=c(70016);async function g(a=1e4){try{let b=await (0,e.rw)().getRuntimeSnapshot({includeSessions:!0,includeTasks:!0,includeArtifacts:!0,limit:500},{timeoutMs:a});return{status:"fulfilled",value:b}}catch(a){return{status:"rejected",reason:a}}}function h(a,b){return v(a)?[...p(a.runtimes).flatMap(a=>(function(a,b){var c;let d=r(a.id)??r(a.runtimeId),e=r(a.key)??r(a.sessionKey)??r(a.taskId)??d,f=r(a.title),g=r(a.subtitle)??r(a.summary)??r(a.message);if(!d||!e||!f||!g)return[];let h=u(a.updatedAt??a.timestamp??a.ts),i=r(a.agentId)??w(e),m=r(a.workspaceId)??n(i,b);return[{id:d,source:"session"===(c=r(a.source))||"cron"===c||"turn"===c?c:"turn",key:e,title:f,subtitle:g,status:j(r(a.status)??""),updatedAt:h,ageMs:t(a.ageMs)??(h?Math.max(0,Date.now()-h):null),agentId:i??void 0,workspaceId:m??void 0,modelId:r(a.modelId)??r(a.model)??void 0,sessionId:r(a.sessionId)??void 0,taskId:r(a.taskId)??void 0,runId:r(a.runId)??void 0,toolNames:k(a),tokenUsage:l(a),metadata:{...v(a.metadata)?a.metadata:{},origin:"openclaw-runtime-snapshot",gatewayObjectKind:"runtime"}}]})(a,b)),...p(a.sessions).flatMap(a=>(function(a,b){let c=r(a.agentId)??w(r(a.key)??r(a.sessionKey)),d=r(a.key)??r(a.sessionKey)??(c?`agent:${c}:main`:r(a.sessionId));if(!d&&!c)return[];let e={agentId:c??void 0,key:d??void 0,sessionId:r(a.sessionId)??r(a.id)??void 0,updatedAt:u(a.updatedAt??a.timestamp??a.ts),ageMs:t(a.ageMs)??void 0,inputTokens:t(a.inputTokens),outputTokens:t(a.outputTokens),cacheRead:t(a.cacheRead),totalTokens:t(a.totalTokens),model:r(a.model)??r(a.modelId)??void 0,kind:r(a.kind)??"runtime",origin:"openclaw-runtime-snapshot",mission:r(a.mission)??r(a.prompt)??void 0,dispatchId:r(a.dispatchId)??void 0},g=(0,f.$Z)(e,b.agentConfig,b.agentsList,{resolveWorkspaceId:b.resolveWorkspaceId});return[{...g,id:r(a.runtimeId)??(0,f.kO)(e),title:r(a.title)??g.title,subtitle:r(a.summary)??r(a.message)??g.subtitle,status:j(r(a.status)??g.status),toolNames:k(a)??g.toolNames,metadata:{...g.metadata,origin:"openclaw-runtime-snapshot",gatewayObjectKind:"session",event:r(a.event)??null}}]})(a,b)),...p(a.tasks).flatMap(a=>(function(a,b){let c=r(a.taskId)??r(a.id),d=r(a.agentId)??r(a.assigneeAgentId);if(!c&&!d)return[];let e=u(a.updatedAt??a.timestamp??a.ts??a.createdAt),f=r(a.workspaceId)??o(r(a.workspace),b)??n(d,b),g=r(a.mission)??r(a.prompt)??r(a.title),h=m(p(a.artifacts));return[{id:r(a.runtimeId)??`runtime:gateway-task:${x(c,d)}`,source:"turn",key:c??`agent:${d}:task`,title:r(a.title)??"Gateway task",subtitle:r(a.summary)??r(a.message)??r(a.status)??"OpenClaw task update",status:j(r(a.status)??""),updatedAt:e,ageMs:t(a.ageMs)??(e?Math.max(0,Date.now()-e):null),agentId:d??void 0,workspaceId:f??void 0,modelId:r(a.model)??r(a.modelId)??void 0,sessionId:r(a.sessionId)??void 0,taskId:c??void 0,runId:r(a.runId)??void 0,toolNames:k(a),tokenUsage:l(a),metadata:{origin:"openclaw-runtime-snapshot",gatewayObjectKind:"task",taskId:c??null,mission:g,dispatchId:r(a.dispatchId)??null,createdFiles:h}}]})(a,b)),...p(a.artifacts).flatMap(a=>(function(a,b){let c=r(a.artifactId)??r(a.id),d=r(a.taskId),e=r(a.sessionId),f=r(a.agentId);if(!c&&!d&&!e)return[];let g=u(a.updatedAt??a.timestamp??a.ts??a.createdAt),h=m([a]),i=r(a.path)??r(a.name)??c??"artifact";return[{id:r(a.runtimeId)??`runtime:gateway-artifact:${x(c,d,e)}`,source:"turn",key:d??e??c??i,title:"Gateway artifact",subtitle:i,status:j(r(a.status)??"completed"),updatedAt:g,ageMs:t(a.ageMs)??(g?Math.max(0,Date.now()-g):null),agentId:f??void 0,workspaceId:r(a.workspaceId)??o(r(a.workspace),b)??n(f,b)??void 0,sessionId:e??void 0,taskId:d??void 0,runId:r(a.runId)??void 0,metadata:{origin:"openclaw-runtime-snapshot",gatewayObjectKind:"artifact",artifactId:c??null,createdFiles:h}}]})(a,b))]:[]}function i(a){let b=v(a.payload)?a.payload:{},c=q(b,"metadata"),d=r(a.event)??r(b.type)??"event",e=r(b.sessionKey)??r(b.key),f=r(b.agentId)??r(b.agent)??w(e),g=r(b.sessionId)??r(b.session)??e,h=r(b.runId)??r(b.run)??r(b.clientRunId),i=r(b.taskId)??r(q(b,"task")?.id),l=r(b.artifactId)??r(q(b,"artifact")?.id),n=u(b.timestamp??b.ts??b.updatedAt),o=j(r(b.status)??d),p=r(b.text)??r(b.message)??r(b.summary)??r(b.detail)??d,s=r(b.runtimeId)??`runtime:gateway:${x(f,g,h,i,l,d)}`;if(!f&&!g&&!h&&!i&&!l)return null;let t=m([b,q(b,"artifact")]);return{id:s,source:"turn",key:h||g||i||l||s,title:r(b.title)??(i?"Gateway task event":"Gateway runtime event"),subtitle:p,status:o,updatedAt:n,ageMs:n?Math.max(0,Date.now()-n):null,agentId:f??void 0,workspaceId:r(b.workspaceId)??void 0,sessionId:g??void 0,taskId:i??void 0,runId:h??void 0,modelId:r(b.model)??r(b.modelId)??void 0,toolNames:k(b),metadata:{origin:r(b.origin)??r(c?.origin)??"openclaw-gateway-event",event:d,channel:r(b.channel)??null,approvalId:r(b.approvalId)??null,artifactId:l??null,dispatchId:r(b.dispatchId)??r(c?.dispatchId)??null,kind:r(b.kind)??r(c?.kind)??null,chatType:r(b.chatType)??r(c?.chatType)??null,mission:r(b.mission)??r(b.prompt)??null,createdFiles:t}}}function j(a){return/complete|done|success|succeeded/i.test(a)?"completed":/cancel|abort/i.test(a)?"cancelled":/error|fail|stall/i.test(a)?"stalled":/queue|pending/i.test(a)?"queued":/idle/i.test(a)?"idle":"running"}function k(a){let b=[r(a.toolName),r(a.tool),...s(a.tools),...s(a.toolNames)].filter(a=>!!a);return b.length>0?Array.from(new Set(b)):void 0}function l(a){let b=v(a.tokenUsage)?a.tokenUsage:a,c=t(b.inputTokens)??t(b.input),d=t(b.outputTokens)??t(b.output),e=t(b.totalTokens)??t(b.total);if(void 0!==c||void 0!==d||void 0!==e)return{input:c??0,output:d??0,total:e??(c??0)+(d??0),cacheRead:t(b.cacheRead)??0}}function m(a){let b=[];for(let c of a){if(!c)continue;let a=r(c.path)??r(c.filePath)??r(c.uri),d=r(c.displayPath)??r(c.name)??a;a&&d&&b.push({path:a,displayPath:d})}var c=b;let d=new Set,e=[];for(let a of c)d.has(a.path)||(d.add(a.path),e.push(a));return e}function n(a,b){if(!a)return null;let c=b.agentsList.find(b=>b.id===a),d=b.agentConfig.find(b=>b.id===a);return o(c?.workspace||d?.workspace,b)}function o(a,b){return a?b.resolveWorkspaceId?.(a):null}function p(a){return Array.isArray(a)?a.filter(a=>v(a)):[]}function q(a,b){let c=a[b];return v(c)?c:null}function r(a){return"string"==typeof a&&a.trim()?a.trim():null}function s(a){return Array.isArray(a)?a.map(r).filter(a=>!!a):[]}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}function u(a){if("number"==typeof a&&Number.isFinite(a))return a<1e10?1e3*a:a;if("string"==typeof a){let b=Date.parse(a);return Number.isNaN(b)?Date.now():b}return Date.now()}function v(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function w(a){if(!a?.startsWith("agent:"))return null;let[,b]=a.split(":");return b||null}function x(...a){let b=a.filter(Boolean).join(":")||String(Date.now());return(0,d.createHash)("sha1").update(b).digest("hex").slice(0,12)}},57419:(a,b,c)=>{c.d(b,{L:()=>e});var d=c(9443);async function e(a,b){var c,e,j;let m,n=b.workspaceBootstrapProfile??await (0,d.xL)(a,b.template,b.rules),o=n.contextManifest,p=new Map(n.workspaceSections),q=[...n.workspaceSources],r=function(a,b){if(!a)return[];let c=b.trim().toLowerCase(),d=a.findIndex(a=>!!/^###\s+/.test(a)&&a.toLowerCase().includes(`\`${c}\``));if(-1===d)return[];let e=[];for(let b=d+1;b<a.length;b+=1){let c=a[b];if(/^###\s+/.test(c))break;e.push(c)}return e}(p.get("AGENTS.md"),b.agentId),s=i(r,"Role")??((m=g((c=p).get("docs/brief.md"),"Objective")??g(c.get("memory/blueprint.md"),"Outcome")??g(c.get("MEMORY.md"),"Current brief")??g(c.get("SOUL.md"),"My Purpose")??g(c.get("IDENTITY.md"),"Role")??g(c.get("AGENTS.md"),"Customize"))||null)??function({agentId:a,agentName:b,skills:c}){return c.length>0?`${b} specializes in ${c.join(", ")} workflows inside the attached workspace.`:/dev|build|coder|engineer/i.test(a)?`${b} is configured as a development-focused OpenClaw operator for this workspace.`:/review/i.test(a)?`${b} is configured to review work and surface quality risks for this workspace.`:/test/i.test(a)?`${b} is configured to validate behavior, testing, and runtime quality for this workspace.`:`${b} is a general-purpose OpenClaw operator attached to this workspace.`}({agentId:b.agentId,agentName:b.agentName,skills:b.configuredSkills}),t=(e=p,l([{file:"AGENTS.md",heading:"Safety defaults"},{file:"AGENTS.md",heading:"Daily memory"},{file:"AGENTS.md",heading:"Output"},{file:"SOUL.md",heading:"How I Operate"},{file:"TOOLS.md",heading:"Examples"},{file:"MEMORY.md",heading:"Stable facts"},{file:"memory/blueprint.md",heading:"Constraints"},{file:"memory/blueprint.md",heading:"Unknowns"},{file:"docs/brief.md",heading:"Success signals"},{file:"docs/brief.md",heading:"Open questions"},{file:"docs/architecture.md",heading:"Dependencies"},{file:"docs/architecture.md",heading:"Risks"},{file:"deliverables/README.md",heading:"Deliverables"},...o.resources.filter(a=>a.relativePath.startsWith("docs/")&&"docs/brief.md"!==a.relativePath&&"docs/architecture.md"!==a.relativePath).flatMap(a=>a.headings.map(b=>({file:a.relativePath,heading:b})))].flatMap(a=>h(e.get(a.file),a.heading)))).slice(0,8),u=l([...function(a,b){if(!a)return[];let c=a.find(a=>a.toLowerCase().includes(`**${b.toLowerCase()}:**`));if(!c)return[];let[,d=""]=c.split(":");return d.split(",").map(a=>k(a)).filter(Boolean)}(p.get("IDENTITY.md"),"Vibe"),...[i(j=r,"Role"),i(j,"Preset"),i(j,"File access")].filter(a=>!!a),...h(p.get("SOUL.md"),"My Quirks"),...h(p.get("SOUL.md"),"How I Operate")]).slice(0,6)||[],v=f(p.get("AGENTS.md"))??f(p.get("deliverables/README.md"))??(b.configuredTools.includes("fs.workspaceOnly")?"Prefer workspace-grounded output tied to real project files and artifacts.":null);return{purpose:s,operatingInstructions:t.length>0?t:b.configuredTools.includes("fs.workspaceOnly")?["Operate within the attached workspace and avoid spilling changes outside it."]:["No explicit operating instructions were found in workspace bootstrap files."],responseStyle:u,outputPreference:v,sourceFiles:q}}function f(a){if(!a)return null;let b=a.find(a=>/be concise in chat|write longer output to files|output/i.test(a));return b?k(b):null}function g(a,b){if(!a)return null;let c=a.findIndex(a=>j(a)===j(b));if(-1===c)return null;let d=[];for(let b=c+1;b<a.length;b+=1){let c=a[b].trim();if(!c){if(d.length>0)break;continue}if(/^#+\s+/.test(c)||/^[-*]\s+/.test(c)||(d.push(k(c)),d.length>=2))break}return d.length>0?d.join(" "):null}function h(a,b){if(!a)return[];let c=a.findIndex(a=>j(a)===j(b));if(-1===c)return[];let d=[];for(let b=c+1;b<a.length;b+=1){let c=a[b].trim();if(!c&&d.length>0||/^#+\s+/.test(c))break;if(/^[-*]\s+/.test(c)){d.push(k(c.replace(/^[-*]\s+/,"")));continue}if(d.length>0)break}return d}function i(a,b){if(!a)return null;let c=`- ${b}:`,d=a.find(a=>a.trim().toLowerCase().startsWith(c.toLowerCase()));return d?k(d.slice(c.length)):null}function j(a){return a.replace(/^#+\s+/,"").trim().toLowerCase()}function k(a){return a.replace(/[`*_>#-]/g,"").replace(/\s+/g," ").trim()}function l(a){return Array.from(new Set(a.filter(Boolean)))}},58889:(a,b,c)=>{c.d(b,{OL:()=>m,QO:()=>n,_E:()=>q,aW:()=>o,kf:()=>p,qc:()=>r});var d=c(51455),e=c(76760),f=c.n(e),g=c(93628),h=c(15612);function i(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function j(a){return Array.from(new Set(a.filter(Boolean)))}function k(a){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function l(a){return"object"==typeof a&&null!==a}async function m(a){let b=f().join(a,".openclaw","project.json");try{var c,e,g,j,m;let a=await (0,d.readFile)(b,"utf8"),f=JSON.parse(a),n=l(f)?f:{},q=Array.isArray(n.agents)?n.agents.map(a=>o(a)).filter(a=>!!a):[],r=Array.isArray(n.channels)?n.channels.map(a=>{var b;return b=a,p(b)}).filter(a=>!!a):[],t=function(a){if(!l(a))return null;let b="boolean"==typeof a.workspaceOnly?a.workspaceOnly:null,c="boolean"==typeof a.generateStarterDocs?a.generateStarterDocs:null,d="boolean"==typeof a.generateMemory?a.generateMemory:null,e="boolean"==typeof a.kickoffMission?a.kickoffMission:null;return null===b&&null===c&&null===d&&null===e?null:{workspaceOnly:b??!0,generateStarterDocs:c??h.eY.generateStarterDocs,generateMemory:d??h.eY.generateMemory,kickoffMission:e??h.eY.kickoffMission}}(n.rules);return{name:"string"==typeof n.name?n.name:null,directory:"string"==typeof n.directory?n.directory:null,template:(c=n.template,"software"===c||"frontend"===c||"backend"===c||"research"===c||"content"===c)?n.template:null,sourceMode:(e=n.sourceMode,"empty"===e||"clone"===e||"existing"===e)?n.sourceMode:null,agentTemplate:"string"==typeof n.agentTemplate?n.agentTemplate:null,teamPreset:(g=n.teamPreset,"solo"===g||"core"===g||"custom"===g)?n.teamPreset:null,modelProfile:(j=n.modelProfile,"balanced"===j||"fast"===j||"quality"===j)?n.modelProfile:null,rules:t,hidden:!0===n.hidden,systemTag:"string"==typeof n.systemTag?n.systemTag:null,contextSources:(m=n.contextSources,Array.isArray(m)?m.flatMap(a=>{if(!l(a))return[];let b=s(a.kind)?a.kind:"prompt",c="string"==typeof a.label&&a.label.trim()?a.label.trim():b,d="string"==typeof a.summary&&a.summary.trim()?a.summary.trim():c;return[{id:"string"==typeof a.id&&a.id.trim()?a.id.trim():`${b}-${k(c)||"context"}`,kind:b,label:c,summary:d,details:Array.isArray(a.details)?a.details.filter(a=>"string"==typeof a):[],status:"error"===a.status?"error":"ready",createdAt:"string"==typeof a.createdAt?a.createdAt:new Date().toISOString(),confidence:"number"==typeof a.confidence?a.confidence:void 0,url:"string"==typeof a.url?a.url:void 0,error:"string"==typeof a.error?a.error:void 0}].flatMap(a=>{if(!a||"object"!=typeof a)return[];let b=s(a.kind)?a.kind:"prompt",c=i(a.label)??b,d=i(a.summary)??c,e="error"===a.status?"error":"ready",f=i(a.createdAt)??new Date().toISOString(),g=i(a.error),h=i(a.url);return c&&d?[{id:i(a.id)??`${b}-${k(c)||"context"}`,kind:b,label:c,summary:d,details:Array.isArray(a.details)?a.details.map(a=>i(a)??"").filter(a=>!!a):[],status:e,createdAt:f,..."number"==typeof a.confidence?{confidence:a.confidence}:{},...g?{error:g}:{},...h?{url:h}:{}}]:[]})}):[]),agents:q,channels:r}}catch{return{name:null,directory:null,template:null,sourceMode:null,agentTemplate:null,teamPreset:null,modelProfile:null,rules:null,hidden:!1,systemTag:null,contextSources:[],agents:[],channels:[]}}}async function n(a,b){let c=f().join(a,".openclaw","project.json"),e=new Set(Array.from(b).map(a=>i(a)).filter(a=>!!a));if(0===e.size)return m(a);try{let b=await (0,d.readFile)(c,"utf8"),g=JSON.parse(b),h=l(g)?g:{};if(!Array.isArray(h.agents))return m(a);let i=h.agents.map(a=>o(a)).filter(a=>!!a),j=i.filter(a=>e.has(a.id)),n=i.filter(a=>!e.has(a.id)).map(a=>a.id);if(j.length===i.length)return m(a);j.length>0&&!j.some(a=>a.isPrimary)&&(j[0]={...j[0],isPrimary:!0}),h.updatedAt=new Date().toISOString(),h.agents=j,await (0,d.writeFile)(c,`${JSON.stringify(h,null,2)}
138
138
  `,"utf8"),await Promise.all(n.map(b=>{var c;return(0,d.rm)(f().join(a,"skills",(c=b,`agent-policy-${k(c)||"agent"}`)),{recursive:!0,force:!0}).catch(()=>void 0)}))}catch{}return m(a)}function o(a){var b;if(!l(a)||"string"!=typeof a.id)return null;let c=j([...Array.isArray(a.skillIds)?a.skillIds.filter(a=>"string"==typeof a).map(a=>a.trim()):[],"string"==typeof a.skillId?a.skillId.trim():""]);return{id:a.id,name:"string"==typeof a.name?a.name:null,role:"string"==typeof a.role?a.role:null,isPrimary:!!a.isPrimary,enabled:!1!==a.enabled,skillId:c[0]??null,skillIds:c,toolIds:Array.isArray(a.toolIds)?j(a.toolIds.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(a=>!!a&&"fs.workspaceOnly"!==a)):[],modelId:"string"==typeof a.modelId?a.modelId:null,emoji:"string"==typeof a.emoji?a.emoji:null,theme:"string"==typeof a.theme?a.theme:null,policy:l(b=a.policy)&&(0,g.Pj)(b.preset)&&(0,g.Ew)(b.missingToolBehavior)&&(0,g.hR)(b.installScope)&&(0,g.c_)(b.fileAccess)&&(0,g.go)(b.networkAccess)?{preset:b.preset,missingToolBehavior:b.missingToolBehavior,installScope:b.installScope,fileAccess:b.fileAccess,networkAccess:b.networkAccess}:null,channelIds:Array.isArray(a.channelIds)?a.channelIds.filter(a=>"string"==typeof a&&!!a.trim()):[]}}function p(a){return l(a)&&"string"==typeof a.id?{id:a.id,type:t(a.type)?a.type:"internal",name:"string"==typeof a.name?a.name:a.id,primaryAgentId:"string"==typeof a.primaryAgentId?a.primaryAgentId:null,workspaces:Array.isArray(a.workspaces)?a.workspaces.map(a=>{var b;return l(b=a)&&"string"==typeof b.workspaceId&&"string"==typeof b.workspacePath?{workspaceId:b.workspaceId,workspacePath:b.workspacePath,agentIds:Array.isArray(b.agentIds)?b.agentIds.filter(a=>"string"==typeof a&&!!a.trim()):[],groupAssignments:Array.isArray(b.groupAssignments)?b.groupAssignments.map(a=>{var b;return l(b=a)&&"string"==typeof b.chatId?{chatId:b.chatId,agentId:"string"==typeof b.agentId?b.agentId:null,title:"string"==typeof b.title?b.title:null,enabled:!1!==b.enabled}:null}).filter(a=>!!a):[]}:null}).filter(a=>!!a):[]}:null}function q(a){let b=a.channels.map(a=>({id:a.id.trim(),type:t(a.type)?a.type:"internal",name:a.name.trim()||a.id.trim(),primaryAgentId:i(a.primaryAgentId)??null,workspaces:a.workspaces.map(a=>({workspaceId:a.workspaceId.trim(),workspacePath:a.workspacePath.trim(),agentIds:j(a.agentIds.map(a=>a.trim()).filter(Boolean)),groupAssignments:a.groupAssignments.map(a=>({chatId:a.chatId.trim(),agentId:i(a.agentId)??null,title:i(a.title)??null,enabled:!1!==a.enabled})).filter(a=>!!a.chatId)})).filter(a=>!!a.workspaceId&&!!a.workspacePath)})).filter(a=>!!a.id),c=new Map;for(let a of b){let b=c.get(a.id);if(!b){c.set(a.id,{...a,workspaces:a.workspaces});continue}let d=new Map;for(let a of b.workspaces)d.set(a.workspaceId,a);for(let b of a.workspaces){let a=d.get(b.workspaceId);if(!a){d.set(b.workspaceId,b);continue}d.set(b.workspaceId,{...a,agentIds:j([...a.agentIds,...b.agentIds]),groupAssignments:r([...a.groupAssignments,...b.groupAssignments])})}c.set(a.id,{...b,name:b.name||a.name,primaryAgentId:b.primaryAgentId||a.primaryAgentId,workspaces:Array.from(d.values())})}return{version:1,channels:Array.from(c.values())}}function r(a){let b=new Map;for(let c of a)c.chatId&&b.set(c.chatId,c);return Array.from(b.values())}function s(a){return"prompt"===a||"website"===a||"repo"===a||"folder"===a}function t(a){return"string"==typeof a&&a.trim().length>0}},65395:(a,b,c)=>{c.d(b,{W2:()=>e,a3:()=>f});let d=[{id:"openai-codex",label:"ChatGPT",shortLabel:"ChatGPT",description:"Connect your ChatGPT account and pull in Codex-ready models.",category:"primary",connectKind:"oauth",accent:"from-[#d8f5eb] via-[#ebfbf5] to-white",helperText:"Account-based login with the OpenClaw provider flow."},{id:"openrouter",label:"OpenRouter",shortLabel:"OpenRouter",description:"Add an API key, discover the full catalog, and curate the models you want.",category:"primary",connectKind:"apiKey",accent:"from-[#fff2d7] via-[#fff7ea] to-white",helperText:"Best for broad model access and curated remote routes.",searchPlaceholder:"Search OpenRouter models"},{id:"ollama",label:"Ollama Local",shortLabel:"Ollama",description:"Discover models already available on this machine and add them instantly.",category:"primary",connectKind:"local",accent:"from-[#deefff] via-[#f2f8ff] to-white",helperText:"Local-first discovery with helpful pull commands when empty."},{id:"anthropic",label:"Anthropic",shortLabel:"Anthropic",description:"Paste an API key and add Claude models through the same flow.",category:"other",connectKind:"apiKey",accent:"from-[#efe9ff] via-[#f7f3ff] to-white",helperText:"Simple API key connection."},{id:"openai",label:"OpenAI API",shortLabel:"OpenAI",description:"Connect a standard OpenAI API key for direct GPT model access.",category:"other",connectKind:"apiKey",accent:"from-[#e8f8e8] via-[#f4fbf4] to-white",helperText:"Use this for API-key-based OpenAI routing."},{id:"google",label:"Gemini",shortLabel:"Gemini",description:"Add a Gemini API key, discover Google models, and pick the routes you want.",category:"other",connectKind:"apiKey",accent:"from-[#e6f7ff] via-[#f4fbff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search Gemini models"},{id:"deepseek",label:"DeepSeek",shortLabel:"DeepSeek",description:"Add a DeepSeek API key, discover the catalog, and add the models you need.",category:"other",connectKind:"apiKey",accent:"from-[#e7eeff] via-[#f4f7ff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search DeepSeek models"},{id:"mistral",label:"Mistral",shortLabel:"Mistral",description:"Add a Mistral API key, discover Mistral and Codestral models, and curate your routes.",category:"other",connectKind:"apiKey",accent:"from-[#f2e8ff] via-[#fbf7ff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search Mistral models"},{id:"xai",label:"xAI",shortLabel:"xAI",description:"Use an xAI API key to bring Grok models into AgentOS.",category:"other",connectKind:"apiKey",accent:"from-[#ffe6ea] via-[#fff3f5] to-white",helperText:"Simple API key connection."}];function e(a){let b=d.find(b=>b.id===a);if(!b)throw Error(`Unknown model provider: ${a}`);return b}function f(a){return"string"==typeof a&&d.some(b=>b.id===a)}d.filter(a=>"primary"===a.category),d.filter(a=>"other"===a.category)},66058:(a,b,c)=>{c.d(b,{Be:()=>x,EB:()=>f,Jy:()=>h,LP:()=>s,Qe:()=>j,jR:()=>e,t5:()=>k});var d=c(93628);function e(a){return`# ${a.name}
139
139
 
@@ -74,7 +74,7 @@ Use this skill when operating in the current workspace.
74
74
  - Produce durable artifacts when the work needs to be handed off.
75
75
  - Put task-specific artifacts in the current deliverables run folder and keep notes in memory/.
76
76
  - Keep outputs specific, reviewable, and easy for other agents to extend.
77
- `}}function L(a,b){let c=[`- Preset: ${(0,h._P)(a.preset)}.`];switch("browser"===a.preset?c.push("- Prefer browser-native evidence capture, screenshots, and reproducible user-path validation."):"monitoring"===a.preset?c.push("- Periodically inspect the workspace, surface blockers, and leave concise triage handoffs without broad implementation changes."):"setup"===a.preset?c.push("- Prepare the environment, unblock other agents, and keep mutations minimal and explicit."):"worker"===a.preset?c.push("- Focus on producing deliverables, reviews, analysis, or code without unnecessary environment mutation."):c.push("- Operate with the selected policy, keep artifacts reviewable, and avoid surprising side effects."),a.missingToolBehavior){case"fallback":c.push("- If required tooling is unavailable, do not install it. Produce the closest viable fallback artifact, such as .md or .txt, and state the limitation.");break;case"ask-setup":c.push("- If required tooling is unavailable, stop before installing anything and report the missing capability clearly.");break;case"route-setup":c.push(b?`- If required tooling is unavailable, do not install it yourself. Leave a concrete handoff for setup agent \`${b}\` with the exact missing tools or commands.`:"- If required tooling is unavailable, do not install it yourself. Leave a concrete setup handoff with the exact missing tools or commands.");break;case"allow-install":c.push("- If required tooling is unavailable, you may install it when the install scope below permits it.")}switch(a.installScope){case"none":c.push("- Install scope: none. Do not run package installation commands.");break;case"workspace":c.push("- Install scope: workspace only. Limit installs to project-local or workspace-local dependencies and avoid system package managers.");break;case"system":c.push("- Install scope: system. System-wide installs are allowed when necessary, but keep them minimal and report what changed.")}return c.push("workspace-only"===a.fileAccess?"- File access: workspace only. Keep file operations inside the attached workspace.":"- File access: extended. Prefer the workspace, but you may touch adjacent paths when the task explicitly needs them."),c.push("enabled"===a.networkAccess?"- Network access: enabled when the task requires external information or downloads.":"- Network access: restricted. Avoid network access unless the task explicitly depends on it."),c}async function M(a){if("existing"===a.sourceMode)return void await E(a.targetDir);if("clone"===a.sourceMode){let b=u(a.repoUrl);if(!b)throw Error("Repository URL is required when cloning a repo.");await C(a.targetDir),await (0,e.mkdir)(g().dirname(a.targetDir),{recursive:!0}),await z("git",["clone",b,a.targetDir]);return}await D(a.targetDir)}async function N(a,b){let c=(0,r.hh)(b.template),d=new Date().toISOString(),f=await J(a),h=x(b.name);for(let i of(await P(a),await (0,e.mkdir)(g().join(a,"skills"),{recursive:!0}),await (0,e.mkdir)(g().join(a,".openclaw","project-shell","runs"),{recursive:!0}),await (0,e.mkdir)(g().join(a,".openclaw","project-shell","tasks"),{recursive:!0}),await A(g().join(a,".openclaw","project-shell","events.jsonl"),""),await A(g().join(a,".openclaw","project.json"),`${JSON.stringify({version:1,slug:x(b.name),name:b.name,icon:c.icon,createdAt:d,updatedAt:d,template:b.template,sourceMode:b.sourceMode,teamPreset:b.teamPreset,modelProfile:b.modelProfile,agentTemplate:"solo"===b.teamPreset?"solo":"core-team",rules:{workspaceOnly:b.rules.workspaceOnly,generateStarterDocs:b.rules.generateStarterDocs,generateMemory:b.rules.generateMemory,kickoffMission:b.rules.kickoffMission},contextSources:b.contextSources,agents:b.agents.map(a=>{var b;let c,d=w(a);return{id:(c=x(b=a.id)||"agent",b.startsWith(`${h}-`)?b:`${h}-${c}`),name:a.name,role:a.role,enabled:a.enabled,emoji:u(a.emoji)??null,theme:u(a.theme)??null,isPrimary:!!a.isPrimary,skillId:d[0]??null,skillIds:d,modelId:u(a.modelId)??null,policy:a.policy??null}})},null,2)}
77
+ `}}function L(a,b){let c=[`- Preset: ${(0,h._P)(a.preset)}.`];switch("browser"===a.preset?c.push("- Prefer browser-native evidence capture, screenshots, and reproducible user-path validation."):"monitoring"===a.preset?c.push("- Periodically inspect the workspace, surface blockers, and leave concise triage handoffs without broad implementation changes."):"setup"===a.preset?c.push("- Prepare the environment, unblock other agents, and keep mutations minimal and explicit."):"worker"===a.preset?c.push("- Focus on producing deliverables, reviews, analysis, or code without unnecessary environment mutation."):c.push("- Operate with the selected policy, keep artifacts reviewable, and avoid surprising side effects."),a.missingToolBehavior){case"fallback":c.push("- If required tooling is unavailable, do not install it. Produce the closest viable fallback artifact, such as .md or .txt, and state the limitation.");break;case"ask-setup":c.push("- If required tooling is unavailable, stop before installing anything and report the missing capability clearly.");break;case"route-setup":c.push(b?`- If required tooling is unavailable, do not install it yourself. Leave a concrete handoff for setup agent \`${b}\` with the exact missing tools or commands.`:"- If required tooling is unavailable, do not install it yourself. Leave a concrete setup handoff with the exact missing tools or commands.");break;case"allow-install":c.push("- If required tooling is unavailable, you may install it when the install scope below permits it.")}switch(a.installScope){case"none":c.push("- Install scope: none. Do not run package installation commands.");break;case"workspace":c.push("- Install scope: workspace only. Limit installs to project-local or workspace-local dependencies and avoid system package managers.");break;case"system":c.push("- Install scope: system. System-wide installs are allowed when necessary, but keep them minimal and report what changed.")}return c.push("workspace-only"===a.fileAccess?"- File access: workspace only. Keep file operations inside the attached workspace.":"- File access: extended. Prefer the workspace, but you may touch adjacent paths when the task explicitly needs them."),c.push("enabled"===a.networkAccess?"- Network access: enabled when the task requires external information or downloads.":"- Network access: restricted. Avoid network access unless the task explicitly depends on it."),c}async function M(a){if("existing"===a.sourceMode)return void await E(a.targetDir);if("clone"===a.sourceMode){let b=u(a.repoUrl);if(!b)throw Error("Repository URL is required when cloning a repo.");(function(a){let b=a.trim();if(!b)throw Error("Repository URL is required when cloning a repo.");if(b.startsWith("-"))throw Error("Repository URL cannot start with a dash.");if(/[\u0000-\u001f\u007f]/.test(b))throw Error("Repository URL cannot contain control characters.");let c=b.toLowerCase();if(c.startsWith("ext::")||c.startsWith("file://"))throw Error("Repository URL must use https://, ssh://, git://, or git@host:path syntax.");if(!(/^https:\/\/[^/\s]+\/\S+$/i.test(b)||/^ssh:\/\/[^/\s]+\/\S+$/i.test(b)||/^git:\/\/[^/\s]+\/\S+$/i.test(b))&&!/^git@[^:\s]+:[^\s]+$/i.test(b))throw Error("Repository URL must use https://, ssh://, git://, or git@host:path syntax.")})(b),await C(a.targetDir),await (0,e.mkdir)(g().dirname(a.targetDir),{recursive:!0}),await z("git",["clone","--",b,a.targetDir]);return}await D(a.targetDir)}async function N(a,b){let c=(0,r.hh)(b.template),d=new Date().toISOString(),f=await J(a),h=x(b.name);for(let i of(await P(a),await (0,e.mkdir)(g().join(a,"skills"),{recursive:!0}),await (0,e.mkdir)(g().join(a,".openclaw","project-shell","runs"),{recursive:!0}),await (0,e.mkdir)(g().join(a,".openclaw","project-shell","tasks"),{recursive:!0}),await A(g().join(a,".openclaw","project-shell","events.jsonl"),""),await A(g().join(a,".openclaw","project.json"),`${JSON.stringify({version:1,slug:x(b.name),name:b.name,icon:c.icon,createdAt:d,updatedAt:d,template:b.template,sourceMode:b.sourceMode,teamPreset:b.teamPreset,modelProfile:b.modelProfile,agentTemplate:"solo"===b.teamPreset?"solo":"core-team",rules:{workspaceOnly:b.rules.workspaceOnly,generateStarterDocs:b.rules.generateStarterDocs,generateMemory:b.rules.generateMemory,kickoffMission:b.rules.kickoffMission},contextSources:b.contextSources,agents:b.agents.map(a=>{var b;let c,d=w(a);return{id:(c=x(b=a.id)||"agent",b.startsWith(`${h}-`)?b:`${h}-${c}`),name:a.name,role:a.role,enabled:a.enabled,emoji:u(a.emoji)??null,theme:u(a.theme)??null,isPrimary:!!a.isPrimary,skillId:d[0]??null,skillIds:d,modelId:u(a.modelId)??null,policy:a.policy??null}})},null,2)}
78
78
  `),(0,q.Q5)({name:b.name,brief:b.brief,template:b.template,sourceMode:b.sourceMode,rules:b.rules,agents:b.agents,toolExamples:f,docOverrides:b.docOverrides,contextSources:b.contextSources})))await A(g().join(a,i.path),i.content);for(let c of(await (0,s.u)(a),b.agents))for(let b of w(c))await (0,e.mkdir)(g().join(a,"skills",b),{recursive:!0}),await A(g().join(a,"skills",b,"SKILL.md"),`${K(b,c.role)}
79
79
  `)}function O(a,b){return"clone"===a?`Cloning the source repository into ${b}.`:"existing"===a?`Preparing the existing workspace folder at ${b}.`:`Creating a fresh workspace folder at ${b}.`}async function P(a){let b=g().join(a,".gitignore"),c="";try{c=await (0,e.readFile)(b,"utf8")}catch{c=""}let d=Q.filter(a=>!c.includes(a));if(0===d.length)return;let f=["# OpenClaw local runtime state",...d].join("\n"),h=c.trim().length>0?`${c.trimEnd()}
80
80