@kynver-app/runtime 0.1.140 → 0.1.142

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.
@@ -1,8 +1,8 @@
1
- var c=(e,r)=>()=>(e&&(r=e(e=0)),r);function U(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let t=JSON.parse(r);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return null}return null}function Z(e){let r=e.trim();if(!r)return null;let t=U(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let l=U(s[1]??"");l&&n.push(l)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let l=U(r.slice(i,a+1));l&&n.push(l)}return n.length>0?n[n.length-1]:null}function ee(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?Z(r)??(r.trim()||null):r;let t=typeof e.summary=="string"?e.summary.trim():"";if(!t)return null;let n=Z(t);return n||t}var re=c(()=>{"use strict"});import{existsSync as er,mkdirSync as mt,readFileSync as rr,readdirSync as ft,statSync as te,writeFileSync as pt}from"node:fs";function ne(e){console.error(e),process.exit(1)}function I(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function C(e){try{return JSON.parse(e)}catch{return null}}function E(e){try{return te(e).size}catch{return 0}}function A(e){try{return te(e).mtime.toISOString()}catch{return null}}function oe(e,r){return er(e)?rr(e,"utf8").split(`
1
+ var u=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function D(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let t=JSON.parse(r);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return null}return null}function Z(e){let r=e.trim();if(!r)return null;let t=D(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let l=D(s[1]??"");l&&n.push(l)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let l=D(r.slice(i,a+1));l&&n.push(l)}return n.length>0?n[n.length-1]:null}function ee(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?Z(r)??(r.trim()||null):r;let t=typeof e.summary=="string"?e.summary.trim():"";if(!t)return null;let n=Z(t);return n||t}var re=u(()=>{"use strict"});import{existsSync as fr,mkdirSync as Pt,readFileSync as pr,readdirSync as Wt,statSync as te,writeFileSync as Ut}from"node:fs";function ne(e){console.error(e),process.exit(1)}function M(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function E(e){try{return JSON.parse(e)}catch{return null}}function C(e){try{return te(e).size}catch{return 0}}function A(e){try{return te(e).mtime.toISOString()}catch{return null}}function oe(e,r){return fr(e)?pr(e,"utf8").split(`
2
2
  `).slice(-r).join(`
3
- `):""}function v(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function se(e){let r=null,t=-1/0;for(let n of e){if(!n)continue;let o=Date.parse(n);Number.isFinite(o)&&o>t&&(t=o,r=n)}return r}function D(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var p=c(()=>{"use strict"});import{existsSync as tr,readFileSync as nr}from"node:fs";function ie(e){return e==="complete"}function ae(e){return ie(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function le(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!tr(e))return r;let t=Date.now()+or,n=new Date(t).toISOString(),o=nr(e,"utf8").split(`
4
- `).filter(Boolean);for(let s of o){let i=C(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let l=String(a.ts),m=Date.parse(l);Number.isFinite(m)&&m>t?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:l,clampedTo:n}):r.lastHeartbeatAt=l}a.phase!==void 0&&a.phase!==null&&(r.lastHeartbeatPhase=String(a.phase)),a.summary!==void 0&&a.summary!==null&&(r.lastHeartbeatSummary=String(a.summary)),ie(r.lastHeartbeatPhase)&&(r.terminalFinalResult=ee(a)),r.heartbeatBlocker=a.blocker?String(a.blocker):null,a.boxResourceSnapshot&&typeof a.boxResourceSnapshot=="object"&&!Array.isArray(a.boxResourceSnapshot)&&(r.lastBoxResourceSnapshot=a.boxResourceSnapshot),Array.isArray(a.prEvidence)&&(r.lastPrEvidence=a.prEvidence.filter(l=>!!l&&typeof l=="object"&&typeof l.prUrl=="string"))}return r}var or,ce=c(()=>{"use strict";re();p();or=6e4});function ir(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function ar(e){if(!e)return[];let r=[],t="",n,o=!1;for(let s of e){if(o){t+=s,o=!1;continue}if(s==="\\"){o=!0;continue}if(n){s===n?n=void 0:t+=s;continue}if(s==='"'||s==="'"){n=s;continue}if(/\s/.test(s)){t&&(r.push(t),t="");continue}t+=s}return t&&r.push(t),r}function lr(e){let r=ir(e[0]);return!!(r&&sr.has(r))}function M(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function H(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function cr(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function ur(e){let r=[];for(let t=1;t<e.length;t+=1){let n=e[t];if(n){if(n==="--"){r.push(...e.slice(t+1));break}if(n.startsWith("-")){if(n.includes("="))continue;ue.has(n)&&(t+=1);continue}r.push(n)}}return r}function dr(e){let r=!1,t=e.map((o,s)=>{let i=cr(o),a=e[s-1];return a&&ue.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),n=ur(t);if(n.length===2){let[o,s]=n;if(H(s))return{argv:[t[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};if(M(s))return{argv:[t[0]??"rg","-g",s,o,"."],changed:!0}}return r&&n.length===1?{argv:[...t,"."],changed:!0}:{argv:t,changed:r}}function K(e){let r=e.trim();if(!r)return{command:r,changed:!1};let t=r.includes("&&")?" && ":r.includes("||")?" || ":"; ",n=r.split(/\s*(?:&&|\|\||;)\s*/u),o=!1,s=n.map(i=>{let a=ar(i.trim());if(!a.length||!lr(a))return i;let l=dr(a);return l.changed?(o=!0,l.argv.join(" ")):i});return o?{command:s.join(t),changed:!0}:{command:r,changed:!1}}function de(e){if(!e)return{};let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(|$)/iu);if(r)return{pattern:r[1],target:r[2]?.trim()};let t=e.match(/^search\s+"(.+)"\s+in\s+(.+)$/iu);return t?{pattern:t[1],target:t[2]?.trim()}:{}}function mr(e){let{pattern:r,target:t}=de(e);return r?H(t)?{kind:"rg_exclude_syntax",pattern:r,target:t}:M(t)?{kind:"bad_scope",pattern:r,target:t}:{kind:"not_repo_search",pattern:r,target:t}:{kind:"not_repo_search"}}function fr(e){let{pattern:r,target:t}=de(e);if(!r)return null;if(H(t)){let n=`${t.trim()}/**`;return{command:`rg "${r}" -g '${n}' .`,changed:!0}}return t&&M(t)?{command:`rg -g ${t} "${r}" .`,changed:!0}:null}function pr(e){if(e.kind==="bad_scope"&&e.pattern?.includes("agent-os-land-pr")&&e.target==="package.json")return"Search package.json with a glob from the repo root: `rg -g package.json agent-os-land-pr .` \u2014 or run `node scripts/agent-os-land-pr.mjs <pr-url>` directly.";if(e.kind==="bad_scope"&&e.pattern&&e.target)return`Use \`rg -g '${e.target}' ${e.pattern} .\` from the repo root instead of treating ${e.target} as a folder.`;if(e.kind==="rg_exclude_syntax"&&e.pattern){let r=e.target?`${e.target.trim()}/**`:"!node_modules/**";return`Repo search scope \`${e.target??"!node_modules"}\` is not a valid ripgrep path. Use \`rg "${e.pattern}" -g '${r}' .\` from the repo root (exclude globs need a \`/**\` suffix).`}return e.kind==="no_matches"&&e.pattern?`No matches for "${e.pattern}". Try a broader pattern, drop overly short tokens, or search from the repo root with \`rg "${e.pattern}" .\`.`:null}function gr(e){let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(agent\)|\s*failed|$)/iu);return r?`search "${r[1]}" in ${r[2]?.trim()}`:null}function F(e){let r=e.meta?.trim()||(e.command?gr(e.command):null)||null;if(r){let t=mr(r),n=pr(t);if(n)return n;let o=fr(r);if(o?.changed)return`Repo search used an invalid scope. Retry with: \`${o.command}\`.`}if(e.command&&/\b(rg|ripgrep)\b/i.test(e.command)){let t=K(e.command);if(t.changed)return`Ripgrep scope may be invalid. Retry with: \`${t.command}\`.`;if(e.exitCode===1)return"Ripgrep returned no matches (exit 1). Try a broader pattern or search from the repo root."}return null}var sr,ue,me=c(()=>{"use strict";sr=new Set(["rg","ripgrep","grep"]),ue=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function R(e,r=200){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function yr(e){let r=e.trim();if(!r)return null;if(r.startsWith("{"))try{return JSON.parse(r)}catch{}let t=r.indexOf("{"),n=r.lastIndexOf("}");if(t>=0&&n>t)try{return JSON.parse(r.slice(t,n+1))}catch{return null}return null}function x(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Rr(e){let r=e.metadata;if(!x(r))return null;let t=r.vulnerabilities;if(!x(t))return null;let n=s=>typeof t[s]=="number"?t[s]:0,o={info:n("info"),low:n("low"),moderate:n("moderate"),high:n("high"),critical:n("critical"),total:n("total")};return typeof t.total!="number"&&!o.critical&&!o.high&&!o.moderate&&!o.low&&!o.info?null:o}function xr(e){let r=[];e.critical&&r.push(`${e.critical} critical`),e.high&&r.push(`${e.high} high`),e.moderate&&r.push(`${e.moderate} moderate`),e.low&&r.push(`${e.low} low`),e.info&&r.push(`${e.info} info`);let t=r.length?r.join(", "):"see report";return`npm audit: ${e.total} vulnerabilit${e.total===1?"y":"ies"} (${t}) \u2014 remediation required`}function _r(e,r){let t=e.error;if(x(t)){let s=typeof t.summary=="string"?t.summary.trim():"",i=typeof t.code=="string"?t.code.trim():"";if(s)return i?`${i}: ${s}`:s;if(i)return i}let n=typeof e.message=="string"?e.message.trim():"";if(n)return n;let o=r.trim();return o?R(o.split(`
5
- `).find(Boolean)??o,160):"npm audit failed"}function Sr(e){let r=`${e.stdout}
6
- ${e.stderr}`.trim(),t=yr(r);if(!t||!x(t)){let o=R(r||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit failed (invalid or missing JSON): ${o}`,parseError:"invalid_json"}}if(x(t.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${_r(t,e.stderr)}`};let n=Rr(t);return n?e.exitCode===0&&n.total===0?{kind:"success",exitCode:0,summary:"npm audit: no vulnerabilities reported",audit:n}:{kind:"audit_findings",exitCode:e.exitCode,summary:xr(n),audit:n}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function Cr(e){return hr.test(e)}function Er(e){return br.test(e)}function Ar(e){let r=F({command:e.command,exitCode:e.exitCode});if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"ripgrep finished (exit 0)"};if(e.exitCode===1){let n=(e.stderr||e.interleaved).trim();if(n&&kr.test(n)){let i=R(n,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=K(e.command),s=o.changed&&!r?` Retry with: \`${o.command}\`.`:"";return{kind:"search_no_matches",exitCode:1,summary:r??`ripgrep: no matches (exit 1).${s} Try a broader pattern or search from the repo root.`}}let t=R(e.interleaved||e.stdout||e.stderr||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:r??`ripgrep failed (exit ${e.exitCode}): ${t}`}}function fe(e){let r=e.stdout??"",t=e.stderr??"",n=e.interleavedOutput??"";if(Cr(e.command)){let i=r.trim()||n.trim()||t.trim();return Sr({exitCode:e.exitCode,stdout:i,stderr:t})}if(Er(e.command))return Ar({command:e.command,exitCode:e.exitCode,stdout:r,stderr:t,interleaved:n});let o=F({command:e.command,exitCode:e.exitCode});if(o&&e.exitCode!==0)return{kind:"command_failure",exitCode:e.exitCode,summary:o};if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"command succeeded (exit 0)"};let s=R(n||r||t||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var hr,br,kr,pe=c(()=>{"use strict";me();hr=/\bnpm\s+audit\b/i,br=/\b(rg|ripgrep)\b/i,kr=/\b(error|invalid|unknown|panic|not found)\b/i});import{existsSync as vr,readFileSync as wr}from"node:fs";function Or(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function Wr(e){if(!e)return null;for(let r of Object.keys(e))if(r.endsWith("ToolCall")){let t=r.slice(0,-8);return t.length?t:r}return null}function Pr(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",r.is_error&&(e.error=String(r.result||r.api_error_status||"stream result error"))}function Br(e){if(e.type!=="tool_call"||e.subtype!=="completed")return null;let t=(e.tool_call&&typeof e.tool_call=="object"&&!Array.isArray(e.tool_call)?e.tool_call:null)?.shellToolCall;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t,o=n.args,s=o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.command=="string"?String(o.command):"",i=n.result;if(!i||typeof i!="object"||Array.isArray(i))return null;let a=i.success??i.failure;if(!a||typeof a!="object"||Array.isArray(a))return null;let l=a,m=typeof l.exitCode=="number"?l.exitCode:0;return{command:s,exitCode:m,stdout:typeof l.stdout=="string"?l.stdout:"",stderr:typeof l.stderr=="string"?l.stderr:"",interleaved:typeof l.interleavedOutput=="string"?l.interleavedOutput:""}}function Tr(e,r){r.kind==="success"||r.kind==="search_no_matches"||(e.lastShellOutcome=r)}function ge(e){let r={firstEventAt:null,lastEventAt:null,currentTool:null,finalResult:null,error:null,lastShellOutcome:null};if(!vr(e))return r;let t=wr(e,"utf8").split(`
7
- `).filter(Boolean);for(let n of t){let o=C(n);if(!o)continue;let s=Or(o);if(s&&(r.firstEventAt||=s,r.lastEventAt=s),o.type==="stream_event"&&o.event&&typeof o.event=="object"&&o.event.type==="content_block_start"){let a=o.event.content_block;a?.type==="tool_use"&&(r.currentTool=String(a.name||"tool"))}if(o.type==="assistant"&&o.message&&typeof o.message=="object"){let a=o.message.content;if(Array.isArray(a)){let l=a.find(m=>m?.type==="tool_use");l&&(r.currentTool=String(l.name||r.currentTool))}}if(o.type==="tool_call"&&o.subtype==="started"){let a=o.tool_call&&typeof o.tool_call=="object"&&!Array.isArray(o.tool_call)?o.tool_call:void 0,l=Wr(a);l&&(r.currentTool=l)}let i=Br(o);i&&Tr(r,fe({command:i.command,exitCode:i.exitCode,stdout:i.stdout,stderr:i.stderr,interleavedOutput:i.interleaved})),o.type==="result"&&Pr(r,o)}return r}var he=c(()=>{"use strict";pe();p()});function Ur(e,r=240){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function be(e){let r=(e??"").trim();if(!r)return null;for(let t of Nr)if(t.test.test(r))return{blocked:!0,reason:`${t.label}: ${Ur(r)}`};return null}var Nr,ke=c(()=>{"use strict";Nr=[{test:/\b(?:invalid|unknown|unsupported|unrecognized)\b[^.\n]*\bmodel\b/i,label:"provider rejected the requested model"},{test:/\bmodel\b[^.\n]*\b(?:not\s+(?:found|supported|available|recognized|valid)|is\s+not\s+valid|does\s+not\s+exist)/i,label:"provider rejected the requested model"},{test:/\b(?:did you mean|available models|choose (?:a|one of)|supported models)\b/i,label:"provider rejected the requested model"},{test:/model preflight failed/i,label:"model/provider preflight failed"},{test:/\b(?:command not found|ENOENT|is the .*CLI on PATH|executable not found|no such file or directory)\b/i,label:"provider CLI is missing or not on PATH"},{test:/\bfailed to spawn\b/i,label:"provider failed to spawn the worker process"},{test:/\b(?:not logged in|unauthorized|authentication (?:failed|required)|invalid api key|missing api key|401)\b/i,label:"provider authentication failed"}]});function ye(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Ir(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function Dr(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:ye(e.head)}function Mr(e,r,t){let n=["exited_with_changes_salvage"];if((e==="uncommitted"||e==="both")&&n.push(`${r} uncommitted change${r===1?"":"s"} with no final result`),(e==="committed_ahead"||e==="both")&&t){let o=t.length>12?t.slice(0,12):t;n.push(`commit ${o} ahead of base with no final result`)}return n.push("review worktree \u2014 commit, open a PR, or run a salvage worker before discarding"),n.join(": ")}function Re(e){if(e.alive||Ir(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,t=ye(e.headCommit)??Dr(e.gitAncestry),n=r>0,o=!!t;if(!n&&!o)return{kind:"none",salvageable:!1,uncommittedCount:0,headCommit:null,attentionReason:"process exited without a final result"};let s=n&&o?"both":n?"uncommitted":"committed_ahead";return{kind:s,salvageable:!0,uncommittedCount:r,headCommit:t,attentionReason:Mr(s,r,t)}}var xe=c(()=>{"use strict"});var Hr,Wt,_e=c(()=>{"use strict";Hr=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY"],Wt=new Set(Hr)});import{spawnSync as Ce}from"node:child_process";function Kr(e,r,t={}){let n=Ce("git",r,I({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=`git ${r.join(" ")} failed: ${n.stderr||n.stdout}`;if(t.throwError)throw new Error(o);ne(o)}return n.stdout||""}function Ee(e){return Kr(e,["status","--short"],{allowFailure:!0}).split(`
8
- `).map(r=>r.trim()).filter(Boolean)}function w(e,r){try{let t=Ce("git",r,I({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}function Se(e,r,t){let n=w(e,["merge-base","--is-ancestor",r,t]);return n.status===0?{isAncestor:!0,error:null}:n.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:n.error||n.stderr||n.stdout||`git exited ${n.status}`}}function Ae(e,r="origin/main"){let t=typeof r=="string"?{base:r}:r,n=t.baseCommit?.trim()||t.base?.trim()||"origin/main",o=t.baseCommit?.trim()||null;if(!e)return $(n,"missing worktree path");let s=w(e,["rev-parse","HEAD"]);if(s.status!==0)return $(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let f=w(e,["rev-parse",n]);if(f.status!==0)return $(n,f.error||f.stderr||f.stdout||`failed to resolve ${n}`,s.stdout.trim());i=f.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let l=Se(e,i,a),m=Se(e,a,i),d=l.error||m.error||void 0;if(l.isAncestor==null||m.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:l.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:"unknown",...d?{error:d}:{}};let u=l.isAncestor?"ahead":m.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:l.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:u,...d?{error:d}:{}}}function $(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var L=c(()=>{"use strict";p();_e()});function _(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Fr(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function $r(e){if(_(e.headCommit)||_(e.prUrl)||_(e.artifactBundlePath)||_(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&_(r.head))}function ve(e){return Fr(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:$r(e)?{blocked:!0,detail:`Worktree has ${e.changedFiles.length} uncommitted change(s); commit or discard before landing`}:{blocked:!0,reason:"dirty_worktree_no_pr",detail:`Worktree has ${e.changedFiles.length} uncommitted change(s) with no commit or PR; commit, open a PR, or discard before landing`}:{blocked:!1}}function we(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var Oe=c(()=>{"use strict"});function j(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let t=JSON.parse(r);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return null}return null}function We(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function O(e){let r=e.trim();if(!r)return null;let t=j(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let d=j(s[1]??"");d&&n.push(d)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let d=j(r.slice(i,a+1));d&&n.push(d)}if(n.length===0)return null;let l=n[n.length-1],m=We(l);for(let d of n){let u=We(d);u>m&&(l=d,m=u)}return l}var G=c(()=>{"use strict"});function y(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Lr(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="object"?Object.keys(e).length>0:!0}function k(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:y(e)}function W(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function Pe(e){let r=null;if(typeof e=="string"){let o=O(e);o&&(r=o)}else e&&typeof e=="object"&&!Array.isArray(e)&&(r=e);if(!r)return[];let t=r.targetPrReconciliation??r.target_pr_reconciliation;if(!Array.isArray(t))return[];let n=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,i=k(String(s.prUrl??s.pr_url??"")),a=y(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||n.push({prUrl:i,outcome:a,mergeCommit:y(s.mergeCommit??s.merge_commit),reason:y(s.reason)})}return n}function Be(e,r){let t=[],n=k(y(e.prUrl)??"");if(n&&t.push(n),r&&typeof r=="object"&&!Array.isArray(r)){let o=r,s=k(String(o.prUrl??o.pr_url??""));s&&t.push(s)}return[...new Set(t)]}function Te(e){let{contract:r,snapshot:t}=e,n=e.finalResult??t.finalResult;if(!r.landingOnly&&r.targetPrUrls.length===0&&!r.repairEnforceOriginalPr)return{blocked:!1};if(!Lr(n))return(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&r.targetPrUrls.length>0?{blocked:!0,reason:"missing_target_pr_reconciliation",detail:`Final result required to reconcile target PR(s): ${r.targetPrUrls.join(", ")}`}:{blocked:!1};if(!(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&!r.repairEnforceOriginalPr)return{blocked:!1};let s=r.repairEnforceOriginalPr?k(y(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?k(r.targetPrUrls[0]):null):null;if(s){let u=Be(t,n);if(!(n&&typeof n=="object"&&!Array.isArray(n)&&n.supersedesOriginalTargetPr===!0)){for(let b of u)if(b!==s)return{blocked:!0,reason:"duplicate_repair_pr",detail:`Repair worker opened or attached PR ${b} instead of canonical target ${s}`}}let g=Pe(n).find(b=>b.prUrl===s);if(!g||g.outcome!=="merged"&&!(g.reason?.trim()&&(g.outcome==="skipped"||g.outcome==="blocked")))return{blocked:!0,reason:"missing_repair_target_reconciliation",detail:`Repair worker must reconcile target PR ${s}`}}let i=Pe(n),a=new Map(i.map(u=>[W(u.prUrl),u])),l=new Set(r.targetPrUrls.map(u=>W(k(u)??u)).filter(Boolean)),m=Be(t,n);if(r.landingOnly)for(let u of m){if(l.size>0&&!l.has(W(u)))return{blocked:!0,reason:"unrelated_implementation_pr",detail:`Landing-only worker attached unrelated PR ${u}`};if(l.size===0)return{blocked:!0,reason:"unrelated_implementation_pr",detail:"Landing-only worker must not open new implementation PRs"}}if(r.targetPrUrls.length===0)return{blocked:!1};let d=[];for(let u of r.targetPrUrls){let f=W(k(u)??u),h=a.get(f);if(!h){d.push(f);continue}h.outcome!=="merged"&&!h.reason?.trim()&&d.push(f)}return d.length>0?{blocked:!0,reason:d.every(u=>a.has(u))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${d.join(", ")}`}:{blocked:!1}}function Ne(e){if(e.blocked)return e.detail??e.reason}var Ue=c(()=>{"use strict";G()});function Gr(e){let r=Date.now();if(e.completionBlocker&&!Ie(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&Vr(e.finalResult))return{state:"done",reason:"local-only worker superseded by merged PR"};let o={finalResult:e.finalResult,changedFiles:e.changedFiles??[],gitAncestry:e.gitAncestry??null,prUrl:e.prUrl??null},s=ve(o);if(s.blocked){let i=we(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=Te({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=Ne(i);if(a)return{state:"needs_attention",reason:i.reason?`landing contract (${i.reason}): ${a}`:`landing contract: ${a}`}}return{state:"done",reason:"final result recorded"}}if(!e.alive){if(Yr(e))return{state:"done",reason:"empty abandoned worker record"};let o=be(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Re({alive:!1,finalResult:null,changedFiles:e.changedFiles,gitAncestry:e.gitAncestry});if(s?.salvageable){let a=e.error?.trim();return{state:"needs_attention",reason:a?`${s.attentionReason} (${a})`:s.attentionReason}}let i=e.error?.trim();return{state:"needs_attention",reason:i?`process exited without a final result: ${i}`:s?.attentionReason??"process exited without a final result"}}if(e.heartbeatBlocker)return{state:"blocked",reason:`worker heartbeat reported blocker: ${e.heartbeatBlocker}`};let t=e.startedAt?Date.parse(e.startedAt):NaN;if(!e.firstEventAt&&e.stdoutBytes===0&&e.heartbeatBytes===0&&Number.isFinite(t)&&r-t>jr)return{state:"needs_attention",reason:`no first stream event ${D(t)}s after start`};let n=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(n)&&r-n>P?{state:"stale",reason:`no log/event/heartbeat activity for ${D(n)}s`}:{state:"ok",reason:"recent activity"}}function Ie(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function Yr(e){return e.finalResult||e.taskId||e.agentOsId||e.stdoutBytes>0||(e.stderrBytes??0)>0||e.heartbeatBytes>0||e.error?.trim()||(e.changedFiles??[]).some(r=>r.trim())?!1:/empty worker dir|marked abandoned/i.test(e.reconcileReason??"")}function Vr(e){let r=null;if(typeof e=="string"?r=O(e):e&&typeof e=="object"&&!Array.isArray(e)&&(r=e),!r)return!1;let t=r.targetPrReconciliation??r.target_pr_reconciliation;return Array.isArray(t)?t.some(n=>!n||typeof n!="object"||Array.isArray(n)?!1:String(n.outcome??"").trim()==="merged"):!1}function zr(e,r,t){let n=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&n!==void 0&&n!==null?n:r||(n??ae(t))}function De(e,r={}){let t=ge(e.stdoutPath),n=le(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=zr(e,t.finalResult,n),i=o?!1:v(e.pid),a=E(e.stdoutPath),l=E(e.stderrPath),m=E(e.heartbeatPath),d=Ee(e.worktreePath),u=Ae(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),f=se([t.lastEventAt,n.lastHeartbeatAt,A(e.stdoutPath),A(e.stderrPath),A(e.heartbeatPath)]),h=t.error||!i&&!s&&oe(e.stderrPath,10).trim()||void 0,g=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,b=Ie(g)?null:g,Qe=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,N=Gr({alive:i,finalResult:s,firstEventAt:t.firstEventAt,stdoutBytes:a,stderrBytes:l,heartbeatBytes:m,lastActivityAt:f,heartbeatBlocker:n.heartbeatBlocker,startedAt:e.startedAt,error:h,changedFiles:d,gitAncestry:u,completionBlocker:b,landingContract:Qe,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),Ze=b||N.state==="blocked"?"blocked":o||N.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:Ze,attention:N,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:l,heartbeatBytes:m,firstEventAt:t.firstEventAt,lastEventAt:t.lastEventAt,lastActivityAt:f,currentTool:o?null:t.currentTool,heartbeatCount:n.heartbeatCount,lastHeartbeatAt:n.lastHeartbeatAt,lastHeartbeatPhase:n.lastHeartbeatPhase,lastHeartbeatSummary:n.lastHeartbeatSummary,heartbeatBlocker:n.heartbeatBlocker,timestampAnomalies:n.timestampAnomalies,finalResult:s,error:h,changedFiles:d,gitAncestry:u,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.orchestrationAudit?.provider??null,boxKind:e.boxKind??null,boxId:e.boxId??null,runtimeId:e.runtimeId??null,personaSlug:e.personaSlug??null,dispatched:e.dispatched??null,localOnly:e.localOnly??null}}function Me(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function He(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var jr,P,S=c(()=>{"use strict";ce();he();ke();xe();L();Oe();Ue();G();p();jr=18e4,P=6e5});var B=c(()=>{"use strict"});var Le=c(()=>{"use strict";L();B()});var Y=c(()=>{"use strict"});var je=c(()=>{"use strict"});var un,dn,V=c(()=>{"use strict";un=25*1024*1024*1024,dn=12*1024*1024*1024});var hn,bn,Ge=c(()=>{"use strict";V();hn=5*1024*1024*1024,bn=10*1024*1024*1024});var Sn,Cn,z=c(()=>{"use strict";Ge();V();Sn=30*1024*1024*1024,Cn=15*1024*1024*1024});var Ye=c(()=>{"use strict";T();p()});var Ve=c(()=>{"use strict";S()});var tt,nt,ze=c(()=>{"use strict";je();X();Y();q();z();T();Ye();Ve();p();tt=500*1024*1024,nt=4*1024*1024*1024});var q=c(()=>{"use strict";ze()});import{homedir as st,totalmem as co}from"node:os";import Q from"node:path";var Je,ko,yo,Ro,xo,X=c(()=>{"use strict";Le();B();p();Y();q();z();Je=Q.join(st(),".kynver"),ko=Q.join(Je,"config.json"),yo=Q.join(Je,"credentials"),Ro=500*1024*1024,xo=4*1024*1024*1024});import{homedir as it}from"node:os";import at from"node:path";var wo,qe=c(()=>{"use strict";X();B();p();wo=at.join(it(),".openclaw","harness")});var T=c(()=>{"use strict";qe();p()});S();var Ke="kynver-harness:",Jr="@runner:";function Fe(e){return e?.trim()?e.trim():null}function qr(e){let r=Fe(e);if(!r?.startsWith(Ke))return null;let t=r.slice(Ke.length),n=t.indexOf(Jr);return n>=0?t.slice(0,n).trim()||null:t.trim()||null}function $e(e,r){let t=Fe(r);return t?qr(e)===t:!1}S();p();function Xr(e){let{worker:r,status:t,taskLease:n}=e,o=n?.leaseOwner??null;if(r.dispatched&&n){if(n.status==="running"&&o&&!$e(o,r.runId))return{health:"orphaned",reason:`task lease held by ${o}, expected harness run ${r.runId}`};let i=r.leaseToken?.trim()??"",a=n.leaseToken?.trim()??"";if(n.status==="running"&&i&&a&&i!==a)return{health:"orphaned",reason:"task leaseToken superseded on board \u2014 completion replay would fail"};if(n.status==="running"&&!t.alive&&!t.finalResult)return{health:"orphaned",reason:"board task running but worker process is not alive"}}if(r.status==="running"&&!t.alive&&!t.finalResult)return{health:"orphaned",reason:"worker.json still running but process is dead"};if(t.attention.state==="stale")return{health:"stale",reason:t.attention.reason};let s=t.lastHeartbeatAt?Date.parse(t.lastHeartbeatAt):NaN;return t.alive&&Number.isFinite(s)&&Date.now()-s>P?{health:"stale",reason:`heartbeat older than ${Math.floor(P/1e3)}s`}:t.alive&&r.pid&&!v(r.pid)?{health:"orphaned",reason:"pid recorded but process is not alive"}:n?.status==="running"&&!t.alive&&t.finalResult?{health:"healthy",reason:"finished worker awaiting completion replay"}:{health:"healthy",reason:t.attention.reason||"worker within expected lifecycle bounds"}}T();function Xe(e){return!!e.completionReportedAt?.trim()}S();function lt(e){let{worker:r,status:t}=e,n=[];r.localOnly&&n.push("local-only worker (no board linkage)"),(!r.agentOsId||!r.taskId)&&n.push("missing agentOsId/taskId linkage"),Xe(r)&&n.push("completion already acknowledged"),r.completionBlocker&&n.push(r.completionBlocker),t.heartbeatBlocker&&t.alive&&n.push(`worker heartbeat blocker: ${t.heartbeatBlocker}`),t.attention.state==="blocked"&&n.push(t.attention.reason||"worker attention blocked"),He(t)&&n.push(t.attention.reason||"landing gate blocked");let o=Me(t),s;return o?t.finalResult?s="final_result":t.alive?s="terminal_status":s="process_exited":n.push("worker has not reached a terminal condition"),{eligible:o&&n.length===0,terminalVerified:o,terminalReason:s,blockers:n}}export{lt as assessAutoCompleteEligibility,Xr as classifyWorkerHealth,De as computeWorkerStatus};
3
+ `):""}function w(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function se(e){let r=null,t=-1/0;for(let n of e){if(!n)continue;let o=Date.parse(n);Number.isFinite(o)&&o>t&&(t=o,r=n)}return r}function I(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var p=u(()=>{"use strict"});import{existsSync as gr,readFileSync as hr}from"node:fs";function ie(e){return e==="complete"}function ae(e){return ie(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function le(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!gr(e))return r;let t=Date.now()+yr,n=new Date(t).toISOString(),o=hr(e,"utf8").split(`
4
+ `).filter(Boolean);for(let s of o){let i=E(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let l=String(a.ts),m=Date.parse(l);Number.isFinite(m)&&m>t?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:l,clampedTo:n}):r.lastHeartbeatAt=l}a.phase!==void 0&&a.phase!==null&&(r.lastHeartbeatPhase=String(a.phase)),a.summary!==void 0&&a.summary!==null&&(r.lastHeartbeatSummary=String(a.summary)),ie(r.lastHeartbeatPhase)&&(r.terminalFinalResult=ee(a)),r.heartbeatBlocker=a.blocker?String(a.blocker):null,a.boxResourceSnapshot&&typeof a.boxResourceSnapshot=="object"&&!Array.isArray(a.boxResourceSnapshot)&&(r.lastBoxResourceSnapshot=a.boxResourceSnapshot),Array.isArray(a.prEvidence)&&(r.lastPrEvidence=a.prEvidence.filter(l=>!!l&&typeof l=="object"&&typeof l.prUrl=="string"))}return r}var yr,ue=u(()=>{"use strict";re();p();yr=6e4});function kr(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function Rr(e){if(!e)return[];let r=[],t="",n,o=!1;for(let s of e){if(o){t+=s,o=!1;continue}if(s==="\\"){o=!0;continue}if(n){s===n?n=void 0:t+=s;continue}if(s==='"'||s==="'"){n=s;continue}if(/\s/.test(s)){t&&(r.push(t),t="");continue}t+=s}return t&&r.push(t),r}function Sr(e){let r=kr(e[0]);return!!(r&&br.has(r))}function K(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function F(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function xr(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function _r(e){let r=[];for(let t=1;t<e.length;t+=1){let n=e[t];if(n){if(n==="--"){r.push(...e.slice(t+1));break}if(n.startsWith("-")){if(n.includes("="))continue;ce.has(n)&&(t+=1);continue}r.push(n)}}return r}function vr(e){let r=!1,t=e.map((o,s)=>{let i=xr(o),a=e[s-1];return a&&ce.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),n=_r(t);if(n.length===2){let[o,s]=n;if(F(s))return{argv:[t[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};if(K(s))return{argv:[t[0]??"rg","-g",s,o,"."],changed:!0}}return r&&n.length===1?{argv:[...t,"."],changed:!0}:{argv:t,changed:r}}function H(e){let r=e.trim();if(!r)return{command:r,changed:!1};let t=r.includes("&&")?" && ":r.includes("||")?" || ":"; ",n=r.split(/\s*(?:&&|\|\||;)\s*/u),o=!1,s=n.map(i=>{let a=Rr(i.trim());if(!a.length||!Sr(a))return i;let l=vr(a);return l.changed?(o=!0,l.argv.join(" ")):i});return o?{command:s.join(t),changed:!0}:{command:r,changed:!1}}function de(e){if(!e)return{};let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(|$)/iu);if(r)return{pattern:r[1],target:r[2]?.trim()};let t=e.match(/^search\s+"(.+)"\s+in\s+(.+)$/iu);return t?{pattern:t[1],target:t[2]?.trim()}:{}}function Er(e){let{pattern:r,target:t}=de(e);return r?F(t)?{kind:"rg_exclude_syntax",pattern:r,target:t}:K(t)?{kind:"bad_scope",pattern:r,target:t}:{kind:"not_repo_search",pattern:r,target:t}:{kind:"not_repo_search"}}function Cr(e){let{pattern:r,target:t}=de(e);if(!r)return null;if(F(t)){let n=`${t.trim()}/**`;return{command:`rg "${r}" -g '${n}' .`,changed:!0}}return t&&K(t)?{command:`rg -g ${t} "${r}" .`,changed:!0}:null}function Ar(e){if(e.kind==="bad_scope"&&e.pattern?.includes("agent-os-land-pr")&&e.target==="package.json")return"Search package.json with a glob from the repo root: `rg -g package.json agent-os-land-pr .` \u2014 or run `node scripts/agent-os-land-pr.mjs <pr-url>` directly.";if(e.kind==="bad_scope"&&e.pattern&&e.target)return`Use \`rg -g '${e.target}' ${e.pattern} .\` from the repo root instead of treating ${e.target} as a folder.`;if(e.kind==="rg_exclude_syntax"&&e.pattern){let r=e.target?`${e.target.trim()}/**`:"!node_modules/**";return`Repo search scope \`${e.target??"!node_modules"}\` is not a valid ripgrep path. Use \`rg "${e.pattern}" -g '${r}' .\` from the repo root (exclude globs need a \`/**\` suffix).`}return e.kind==="no_matches"&&e.pattern?`No matches for "${e.pattern}". Try a broader pattern, drop overly short tokens, or search from the repo root with \`rg "${e.pattern}" .\`.`:null}function wr(e){let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(agent\)|\s*failed|$)/iu);return r?`search "${r[1]}" in ${r[2]?.trim()}`:null}function L(e){let r=e.meta?.trim()||(e.command?wr(e.command):null)||null;if(r){let t=Er(r),n=Ar(t);if(n)return n;let o=Cr(r);if(o?.changed)return`Repo search used an invalid scope. Retry with: \`${o.command}\`.`}if(e.command&&/\b(rg|ripgrep)\b/i.test(e.command)){let t=H(e.command);if(t.changed)return`Ripgrep scope may be invalid. Retry with: \`${t.command}\`.`;if(e.exitCode===1)return"Ripgrep returned no matches (exit 1). Try a broader pattern or search from the repo root."}return null}var br,ce,me=u(()=>{"use strict";br=new Set(["rg","ripgrep","grep"]),ce=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function R(e,r=200){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function Ur(e){let r=e.trim();if(!r)return null;if(r.startsWith("{"))try{return JSON.parse(r)}catch{}let t=r.indexOf("{"),n=r.lastIndexOf("}");if(t>=0&&n>t)try{return JSON.parse(r.slice(t,n+1))}catch{return null}return null}function S(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Tr(e){let r=e.metadata;if(!S(r))return null;let t=r.vulnerabilities;if(!S(t))return null;let n=s=>typeof t[s]=="number"?t[s]:0,o={info:n("info"),low:n("low"),moderate:n("moderate"),high:n("high"),critical:n("critical"),total:n("total")};return typeof t.total!="number"&&!o.critical&&!o.high&&!o.moderate&&!o.low&&!o.info?null:o}function Br(e){let r=[];e.critical&&r.push(`${e.critical} critical`),e.high&&r.push(`${e.high} high`),e.moderate&&r.push(`${e.moderate} moderate`),e.low&&r.push(`${e.low} low`),e.info&&r.push(`${e.info} info`);let t=r.length?r.join(", "):"see report";return`npm audit: ${e.total} vulnerabilit${e.total===1?"y":"ies"} (${t}) \u2014 remediation required`}function Nr(e,r){let t=e.error;if(S(t)){let s=typeof t.summary=="string"?t.summary.trim():"",i=typeof t.code=="string"?t.code.trim():"";if(s)return i?`${i}: ${s}`:s;if(i)return i}let n=typeof e.message=="string"?e.message.trim():"";if(n)return n;let o=r.trim();return o?R(o.split(`
5
+ `).find(Boolean)??o,160):"npm audit failed"}function Dr(e){let r=`${e.stdout}
6
+ ${e.stderr}`.trim(),t=Ur(r);if(!t||!S(t)){let o=R(r||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit failed (invalid or missing JSON): ${o}`,parseError:"invalid_json"}}if(S(t.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${Nr(t,e.stderr)}`};let n=Tr(t);return n?e.exitCode===0&&n.total===0?{kind:"success",exitCode:0,summary:"npm audit: no vulnerabilities reported",audit:n}:{kind:"audit_findings",exitCode:e.exitCode,summary:Br(n),audit:n}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function Mr(e){return Or.test(e)}function Ir(e){return Pr.test(e)}function Kr(e){let r=L({command:e.command,exitCode:e.exitCode});if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"ripgrep finished (exit 0)"};if(e.exitCode===1){let n=(e.stderr||e.interleaved).trim();if(n&&Wr.test(n)){let i=R(n,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=H(e.command),s=o.changed&&!r?` Retry with: \`${o.command}\`.`:"";return{kind:"search_no_matches",exitCode:1,summary:r??`ripgrep: no matches (exit 1).${s} Try a broader pattern or search from the repo root.`}}let t=R(e.interleaved||e.stdout||e.stderr||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:r??`ripgrep failed (exit ${e.exitCode}): ${t}`}}function fe(e){let r=e.stdout??"",t=e.stderr??"",n=e.interleavedOutput??"";if(Mr(e.command)){let i=r.trim()||n.trim()||t.trim();return Dr({exitCode:e.exitCode,stdout:i,stderr:t})}if(Ir(e.command))return Kr({command:e.command,exitCode:e.exitCode,stdout:r,stderr:t,interleaved:n});let o=L({command:e.command,exitCode:e.exitCode});if(o&&e.exitCode!==0)return{kind:"command_failure",exitCode:e.exitCode,summary:o};if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"command succeeded (exit 0)"};let s=R(n||r||t||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var Or,Pr,Wr,pe=u(()=>{"use strict";me();Or=/\bnpm\s+audit\b/i,Pr=/\b(rg|ripgrep)\b/i,Wr=/\b(error|invalid|unknown|panic|not found)\b/i});import{existsSync as Fr,readFileSync as Hr}from"node:fs";function Lr(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function $r(e){if(!e)return null;for(let r of Object.keys(e))if(r.endsWith("ToolCall")){let t=r.slice(0,-8);return t.length?t:r}return null}function jr(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",r.is_error&&(e.error=String(r.result||r.api_error_status||"stream result error"))}function Yr(e){if(e.type!=="tool_call"||e.subtype!=="completed")return null;let t=(e.tool_call&&typeof e.tool_call=="object"&&!Array.isArray(e.tool_call)?e.tool_call:null)?.shellToolCall;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t,o=n.args,s=o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.command=="string"?String(o.command):"",i=n.result;if(!i||typeof i!="object"||Array.isArray(i))return null;let a=i.success??i.failure;if(!a||typeof a!="object"||Array.isArray(a))return null;let l=a,m=typeof l.exitCode=="number"?l.exitCode:0;return{command:s,exitCode:m,stdout:typeof l.stdout=="string"?l.stdout:"",stderr:typeof l.stderr=="string"?l.stderr:"",interleaved:typeof l.interleavedOutput=="string"?l.interleavedOutput:""}}function Gr(e,r){r.kind==="success"||r.kind==="search_no_matches"||(e.lastShellOutcome=r)}function ge(e){let r={firstEventAt:null,lastEventAt:null,currentTool:null,finalResult:null,error:null,lastShellOutcome:null};if(!Fr(e))return r;let t=Hr(e,"utf8").split(`
7
+ `).filter(Boolean);for(let n of t){let o=E(n);if(!o)continue;let s=Lr(o);if(s&&(r.firstEventAt||=s,r.lastEventAt=s),o.type==="stream_event"&&o.event&&typeof o.event=="object"&&o.event.type==="content_block_start"){let a=o.event.content_block;a?.type==="tool_use"&&(r.currentTool=String(a.name||"tool"))}if(o.type==="assistant"&&o.message&&typeof o.message=="object"){let a=o.message.content;if(Array.isArray(a)){let l=a.find(m=>m?.type==="tool_use");l&&(r.currentTool=String(l.name||r.currentTool))}}if(o.type==="tool_call"&&o.subtype==="started"){let a=o.tool_call&&typeof o.tool_call=="object"&&!Array.isArray(o.tool_call)?o.tool_call:void 0,l=$r(a);l&&(r.currentTool=l)}let i=Yr(o);i&&Gr(r,fe({command:i.command,exitCode:i.exitCode,stdout:i.stdout,stderr:i.stderr,interleavedOutput:i.interleaved})),o.type==="result"&&jr(r,o)}return r}var he=u(()=>{"use strict";pe();p()});function zr(e,r=240){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function ye(e){let r=(e??"").trim();if(!r)return null;for(let t of Vr)if(t.test.test(r))return{blocked:!0,reason:`${t.label}: ${zr(r)}`};return null}var Vr,be=u(()=>{"use strict";Vr=[{test:/\b(?:invalid|unknown|unsupported|unrecognized)\b[^.\n]*\bmodel\b/i,label:"provider rejected the requested model"},{test:/\bmodel\b[^.\n]*\b(?:not\s+(?:found|supported|available|recognized|valid)|is\s+not\s+valid|does\s+not\s+exist)/i,label:"provider rejected the requested model"},{test:/\b(?:did you mean|available models|choose (?:a|one of)|supported models)\b/i,label:"provider rejected the requested model"},{test:/model preflight failed/i,label:"model/provider preflight failed"},{test:/\b(?:command not found|ENOENT|is the .*CLI on PATH|executable not found|no such file or directory)\b/i,label:"provider CLI is missing or not on PATH"},{test:/\bfailed to spawn\b/i,label:"provider failed to spawn the worker process"},{test:/\b(?:not logged in|unauthorized|authentication (?:failed|required)|invalid api key|missing api key|401)\b/i,label:"provider authentication failed"}]});function ke(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Jr(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function Xr(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:ke(e.head)}function qr(e,r,t){let n=["exited_with_changes_salvage"];if((e==="uncommitted"||e==="both")&&n.push(`${r} uncommitted change${r===1?"":"s"} with no final result`),(e==="committed_ahead"||e==="both")&&t){let o=t.length>12?t.slice(0,12):t;n.push(`commit ${o} ahead of base with no final result`)}return n.push("review worktree \u2014 commit, open a PR, or run a salvage worker before discarding"),n.join(": ")}function Re(e){if(e.alive||Jr(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,t=ke(e.headCommit)??Xr(e.gitAncestry),n=r>0,o=!!t;if(!n&&!o)return{kind:"none",salvageable:!1,uncommittedCount:0,headCommit:null,attentionReason:"process exited without a final result"};let s=n&&o?"both":n?"uncommitted":"committed_ahead";return{kind:s,salvageable:!0,uncommittedCount:r,headCommit:t,attentionReason:qr(s,r,t)}}var Se=u(()=>{"use strict"});var Qr,zt,xe=u(()=>{"use strict";Qr=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY"],zt=new Set(Qr)});import{spawnSync as ve}from"node:child_process";function Zr(e,r,t={}){let n=ve("git",r,M({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=`git ${r.join(" ")} failed: ${n.stderr||n.stdout}`;if(t.throwError)throw new Error(o);ne(o)}return n.stdout||""}function Ee(e){return Zr(e,["status","--short"],{allowFailure:!0}).split(`
8
+ `).map(r=>r.trim()).filter(Boolean)}function O(e,r){try{let t=ve("git",r,M({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}function _e(e,r,t){let n=O(e,["merge-base","--is-ancestor",r,t]);return n.status===0?{isAncestor:!0,error:null}:n.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:n.error||n.stderr||n.stdout||`git exited ${n.status}`}}function Ce(e,r="origin/main"){let t=typeof r=="string"?{base:r}:r,n=t.baseCommit?.trim()||t.base?.trim()||"origin/main",o=t.baseCommit?.trim()||null;if(!e)return $(n,"missing worktree path");let s=O(e,["rev-parse","HEAD"]);if(s.status!==0)return $(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let f=O(e,["rev-parse",n]);if(f.status!==0)return $(n,f.error||f.stderr||f.stdout||`failed to resolve ${n}`,s.stdout.trim());i=f.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let l=_e(e,i,a),m=_e(e,a,i),d=l.error||m.error||void 0;if(l.isAncestor==null||m.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:l.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:"unknown",...d?{error:d}:{}};let c=l.isAncestor?"ahead":m.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:l.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:c,...d?{error:d}:{}}}function $(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var j=u(()=>{"use strict";p();xe()});function x(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function et(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function rt(e){if(x(e.headCommit)||x(e.prUrl)||x(e.artifactBundlePath)||x(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&x(r.head))}function Ae(e){return et(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:rt(e)?{blocked:!0,detail:`Worktree has ${e.changedFiles.length} uncommitted change(s); commit or discard before landing`}:{blocked:!0,reason:"dirty_worktree_no_pr",detail:`Worktree has ${e.changedFiles.length} uncommitted change(s) with no commit or PR; commit, open a PR, or discard before landing`}:{blocked:!1}}function we(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var Oe=u(()=>{"use strict"});function Y(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let t=JSON.parse(r);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return null}return null}function Pe(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function P(e){let r=e.trim();if(!r)return null;let t=Y(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let d=Y(s[1]??"");d&&n.push(d)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let d=Y(r.slice(i,a+1));d&&n.push(d)}if(n.length===0)return null;let l=n[n.length-1],m=Pe(l);for(let d of n){let c=Pe(d);c>m&&(l=d,m=c)}return l}var G=u(()=>{"use strict"});function We(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:e.trim()||null}function Ue(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function tt(e){return new Set(e.map(r=>Ue(We(r)??r)).filter(Boolean))}function Te(e,r,t){let n=We(e)??e;if(!n)return"unrelated";let o=Ue(n);return tt(r).has(o)?"contract":t?(t.outcome==="skipped"||t.outcome==="blocked")&&t.reason?.trim()?"support":(t.outcome==="merged","unrelated"):"unrelated"}var Be=u(()=>{"use strict"});function k(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function nt(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="object"?Object.keys(e).length>0:!0}function b(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:k(e)}function W(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function Ne(e){let r=null;if(typeof e=="string"){let o=P(e);o&&(r=o)}else e&&typeof e=="object"&&!Array.isArray(e)&&(r=e);if(!r)return[];let t=r.targetPrReconciliation??r.target_pr_reconciliation;if(!Array.isArray(t))return[];let n=[];for(let o of t){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,i=b(String(s.prUrl??s.pr_url??"")),a=k(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||n.push({prUrl:i,outcome:a,mergeCommit:k(s.mergeCommit??s.merge_commit),reason:k(s.reason)})}return n}function De(e,r){let t=[],n=b(k(e.prUrl)??"");if(n&&t.push(n),r&&typeof r=="object"&&!Array.isArray(r)){let o=r,s=b(String(o.prUrl??o.pr_url??""));s&&t.push(s)}return[...new Set(t)]}function Me(e){let{contract:r,snapshot:t}=e,n=e.finalResult??t.finalResult;if(!r.landingOnly&&r.targetPrUrls.length===0&&!r.repairEnforceOriginalPr)return{blocked:!1};if(!nt(n))return(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&r.targetPrUrls.length>0?{blocked:!0,reason:"missing_target_pr_reconciliation",detail:`Final result required to reconcile target PR(s): ${r.targetPrUrls.join(", ")}`}:{blocked:!1};if(!(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&!r.repairEnforceOriginalPr)return{blocked:!1};let s=r.repairEnforceOriginalPr?b(k(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?b(r.targetPrUrls[0]):null):null;if(s){let c=De(t,n);if(!(n&&typeof n=="object"&&!Array.isArray(n)&&n.supersedesOriginalTargetPr===!0)){for(let y of c)if(y!==s)return{blocked:!0,reason:"duplicate_repair_pr",detail:`Repair worker opened or attached PR ${y} instead of canonical target ${s}`}}let h=Ne(n).find(y=>y.prUrl===s);if(!h||h.outcome!=="merged"&&!(h.reason?.trim()&&(h.outcome==="skipped"||h.outcome==="blocked")))return{blocked:!0,reason:"missing_repair_target_reconciliation",detail:`Repair worker must reconcile target PR ${s}`}}let i=Ne(n),a=new Map(i.map(c=>[W(c.prUrl),c])),l=new Set(r.targetPrUrls.map(c=>W(b(c)??c)).filter(Boolean)),m=De(t,n);if(r.landingOnly)for(let c of m){let f=a.get(W(c)),g=Te(c,r.targetPrUrls,f);if(!(g==="contract"||g==="support"))return l.size>0?{blocked:!0,reason:"unrelated_implementation_pr",detail:`Landing-only worker attached unrelated PR ${c}`}:{blocked:!0,reason:"unrelated_implementation_pr",detail:"Landing-only worker must not open new implementation PRs"}}if(r.targetPrUrls.length===0)return{blocked:!1};let d=[];for(let c of r.targetPrUrls){let f=W(b(c)??c),g=a.get(f);if(!g){d.push(f);continue}g.outcome!=="merged"&&!g.reason?.trim()&&d.push(f)}return d.length>0?{blocked:!0,reason:d.every(c=>a.has(c))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${d.join(", ")}`}:{blocked:!1}}function Ie(e){if(e.blocked)return e.detail??e.reason}var Ke=u(()=>{"use strict";G();Be()});function st(e){let r=Date.now();if(e.completionBlocker&&!Fe(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&at(e.finalResult))return{state:"done",reason:"local-only worker superseded by merged PR"};let o={finalResult:e.finalResult,changedFiles:e.changedFiles??[],gitAncestry:e.gitAncestry??null,prUrl:e.prUrl??null},s=Ae(o);if(s.blocked){let i=we(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=Me({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=Ie(i);if(a)return{state:"needs_attention",reason:i.reason?`landing contract (${i.reason}): ${a}`:`landing contract: ${a}`}}return{state:"done",reason:"final result recorded"}}if(!e.alive){if(it(e))return{state:"done",reason:"empty abandoned worker record"};let o=ye(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Re({alive:!1,finalResult:null,changedFiles:e.changedFiles,gitAncestry:e.gitAncestry});if(s?.salvageable){let a=e.error?.trim();return{state:"needs_attention",reason:a?`${s.attentionReason} (${a})`:s.attentionReason}}let i=e.error?.trim();return{state:"needs_attention",reason:i?`process exited without a final result: ${i}`:s?.attentionReason??"process exited without a final result"}}if(e.heartbeatBlocker)return{state:"blocked",reason:`worker heartbeat reported blocker: ${e.heartbeatBlocker}`};let t=e.startedAt?Date.parse(e.startedAt):NaN;if(!e.firstEventAt&&e.stdoutBytes===0&&e.heartbeatBytes===0&&Number.isFinite(t)&&r-t>ot)return{state:"needs_attention",reason:`no first stream event ${I(t)}s after start`};let n=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(n)&&r-n>U?{state:"stale",reason:`no log/event/heartbeat activity for ${I(n)}s`}:{state:"ok",reason:"recent activity"}}function Fe(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function it(e){return e.finalResult||e.taskId||e.agentOsId||e.stdoutBytes>0||(e.stderrBytes??0)>0||e.heartbeatBytes>0||e.error?.trim()||(e.changedFiles??[]).some(r=>r.trim())?!1:/empty worker dir|marked abandoned/i.test(e.reconcileReason??"")}function at(e){let r=null;if(typeof e=="string"?r=P(e):e&&typeof e=="object"&&!Array.isArray(e)&&(r=e),!r)return!1;let t=r.targetPrReconciliation??r.target_pr_reconciliation;return Array.isArray(t)?t.some(n=>!n||typeof n!="object"||Array.isArray(n)?!1:String(n.outcome??"").trim()==="merged"):!1}function lt(e,r,t){let n=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&n!==void 0&&n!==null?n:r||(n??ae(t))}function He(e,r={}){let t=ge(e.stdoutPath),n=le(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=lt(e,t.finalResult,n),i=o?!1:w(e.pid),a=C(e.stdoutPath),l=C(e.stderrPath),m=C(e.heartbeatPath),d=Ee(e.worktreePath),c=Ce(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),f=se([t.lastEventAt,n.lastHeartbeatAt,A(e.stdoutPath),A(e.stderrPath),A(e.heartbeatPath)]),g=t.error||!i&&!s&&oe(e.stderrPath,10).trim()||void 0,h=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,y=Fe(h)?null:h,dr=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,N=st({alive:i,finalResult:s,firstEventAt:t.firstEventAt,stdoutBytes:a,stderrBytes:l,heartbeatBytes:m,lastActivityAt:f,heartbeatBlocker:n.heartbeatBlocker,startedAt:e.startedAt,error:g,changedFiles:d,gitAncestry:c,completionBlocker:y,landingContract:dr,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),mr=y||N.state==="blocked"?"blocked":o||N.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:mr,attention:N,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:l,heartbeatBytes:m,firstEventAt:t.firstEventAt,lastEventAt:t.lastEventAt,lastActivityAt:f,currentTool:o?null:t.currentTool,heartbeatCount:n.heartbeatCount,lastHeartbeatAt:n.lastHeartbeatAt,lastHeartbeatPhase:n.lastHeartbeatPhase,lastHeartbeatSummary:n.lastHeartbeatSummary,heartbeatBlocker:n.heartbeatBlocker,timestampAnomalies:n.timestampAnomalies,finalResult:s,error:g,changedFiles:d,gitAncestry:c,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.orchestrationAudit?.provider??null,boxKind:e.boxKind??null,boxId:e.boxId??null,runtimeId:e.runtimeId??null,personaSlug:e.personaSlug??null,dispatched:e.dispatched??null,localOnly:e.localOnly??null}}function Le(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function $e(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var ot,U,_=u(()=>{"use strict";ue();he();be();Se();j();Oe();Ke();G();p();ot=18e4,U=6e5});var v=u(()=>{"use strict"});var Ve=u(()=>{"use strict";j();v()});var V=u(()=>{"use strict"});var ze=u(()=>{"use strict"});var Je=u(()=>{"use strict"});var Wn,Un,z=u(()=>{"use strict";Wn=25*1024*1024*1024,Un=12*1024*1024*1024});var Mn,In,Xe=u(()=>{"use strict";z();Mn=5*1024*1024*1024,In=10*1024*1024*1024});var jn,Yn,J=u(()=>{"use strict";Xe();z();jn=30*1024*1024*1024,Yn=15*1024*1024*1024});var qe=u(()=>{"use strict";T();p()});var Qe=u(()=>{"use strict";_()});var ht,yt,Ze=u(()=>{"use strict";Je();B();V();q();J();T();qe();Qe();p();ht=500*1024*1024,yt=4*1024*1024*1024});var q=u(()=>{"use strict";Ze()});import{homedir as kt}from"node:os";import Rt from"node:path";var St,er=u(()=>{"use strict";St=Rt.join(kt(),".kynver",".env")});var rr=u(()=>{"use strict"});var tr=u(()=>{"use strict";rr()});var nr=u(()=>{"use strict"});var or=u(()=>{"use strict";tr();nr()});var sr=u(()=>{"use strict"});var ir=u(()=>{"use strict";sr()});var ar=u(()=>{"use strict";er();v();B();or();ir()});import{homedir as _t,totalmem as cs}from"node:os";import Q from"node:path";var lr,Rs,Ss,xs,_s,B=u(()=>{"use strict";Ve();v();p();V();ze();q();J();ar();lr=Q.join(_t(),".kynver"),Rs=Q.join(lr,"config.json"),Ss=Q.join(lr,"credentials"),xs=500*1024*1024,_s=4*1024*1024*1024});import{homedir as vt}from"node:os";import Et from"node:path";var Ps,ur=u(()=>{"use strict";B();v();p();Ps=Et.join(vt(),".openclaw","harness")});var T=u(()=>{"use strict";ur();p()});_();var je="kynver-harness:",ut="@runner:";function Ye(e){return e?.trim()?e.trim():null}function ct(e){let r=Ye(e);if(!r?.startsWith(je))return null;let t=r.slice(je.length),n=t.indexOf(ut);return n>=0?t.slice(0,n).trim()||null:t.trim()||null}function Ge(e,r){let t=Ye(r);return t?ct(e)===t:!1}_();p();function dt(e){let{worker:r,status:t,taskLease:n}=e,o=n?.leaseOwner??null;if(r.dispatched&&n){if(n.status==="running"&&o&&!Ge(o,r.runId))return{health:"orphaned",reason:`task lease held by ${o}, expected harness run ${r.runId}`};let i=r.leaseToken?.trim()??"",a=n.leaseToken?.trim()??"";if(n.status==="running"&&i&&a&&i!==a)return{health:"orphaned",reason:"task leaseToken superseded on board \u2014 completion replay would fail"};if(n.status==="running"&&!t.alive&&!t.finalResult)return{health:"orphaned",reason:"board task running but worker process is not alive"}}if(r.status==="running"&&!t.alive&&!t.finalResult)return{health:"orphaned",reason:"worker.json still running but process is dead"};if(t.attention.state==="stale")return{health:"stale",reason:t.attention.reason};let s=t.lastHeartbeatAt?Date.parse(t.lastHeartbeatAt):NaN;return t.alive&&Number.isFinite(s)&&Date.now()-s>U?{health:"stale",reason:`heartbeat older than ${Math.floor(U/1e3)}s`}:t.alive&&r.pid&&!w(r.pid)?{health:"orphaned",reason:"pid recorded but process is not alive"}:n?.status==="running"&&!t.alive&&t.finalResult?{health:"healthy",reason:"finished worker awaiting completion replay"}:{health:"healthy",reason:t.attention.reason||"worker within expected lifecycle bounds"}}T();function cr(e){return!!e.completionReportedAt?.trim()}_();function Ct(e){let{worker:r,status:t}=e,n=[];r.localOnly&&n.push("local-only worker (no board linkage)"),(!r.agentOsId||!r.taskId)&&n.push("missing agentOsId/taskId linkage"),cr(r)&&n.push("completion already acknowledged"),r.completionBlocker&&n.push(r.completionBlocker),t.heartbeatBlocker&&t.alive&&n.push(`worker heartbeat blocker: ${t.heartbeatBlocker}`),t.attention.state==="blocked"&&n.push(t.attention.reason||"worker attention blocked"),$e(t)&&n.push(t.attention.reason||"landing gate blocked");let o=Le(t),s;return o?t.finalResult?s="final_result":t.alive?s="terminal_status":s="process_exited":n.push("worker has not reached a terminal condition"),{eligible:o&&n.length===0,terminalVerified:o,terminalReason:s,blockers:n}}export{Ct as assessAutoCompleteEligibility,dt as classifyWorkerHealth,He as computeWorkerStatus};
@@ -1 +1 @@
1
- var n=(e,r)=>()=>(e&&(r=e(e=0)),r);function I(e){return Ie.has(e)?!0:Be.some(r=>e.endsWith(r))}function Q(e){return Object.keys(e).filter(I).sort()}function p(e){let r={...e};for(let t of Object.keys(r))I(t)&&delete r[t];return r}function Ne(e){let r=Q(e);return{forbiddenPresent:r,safe:r.length===0}}var we,Ie,Be,d=n(()=>{"use strict";we=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY"],Ie=new Set(we),Be=["_SECRET","_API_KEY"]});function B(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=n(()=>{"use strict"});var W=n(()=>{"use strict";a();d()});var v=n(()=>{"use strict"});var Z=n(()=>{"use strict";W();v()});var D=n(()=>{"use strict"});var ee=n(()=>{"use strict"});var Hr,Kr,T=n(()=>{"use strict";Hr=25*1024*1024*1024,Kr=12*1024*1024*1024});var Yr,Gr,re=n(()=>{"use strict";T();Yr=5*1024*1024*1024,Gr=10*1024*1024*1024});var Zr,et,M=n(()=>{"use strict";re();T();Zr=30*1024*1024*1024,et=15*1024*1024*1024});import{homedir as De}from"node:os";import Te from"node:path";var at,te=n(()=>{"use strict";k();v();a();at=Te.join(De(),".openclaw","harness")});var F=n(()=>{"use strict";te();a()});var oe=n(()=>{"use strict";F();a()});var ie=n(()=>{"use strict"});var se=n(()=>{"use strict";ie();a()});var ae=n(()=>{"use strict"});var le=n(()=>{"use strict";ae()});var ce=n(()=>{"use strict";le();a()});var ue=n(()=>{"use strict"});var de=n(()=>{"use strict"});var me=n(()=>{"use strict"});var H=n(()=>{"use strict"});var pe=n(()=>{"use strict";H()});var fe=n(()=>{"use strict";se();ce();ue();de();W();me();pe();H();a()});var ge=n(()=>{"use strict";fe()});var Le,$e,he=n(()=>{"use strict";ee();k();D();K();M();F();oe();ge();a();Le=500*1024*1024,$e=4*1024*1024*1024});var K=n(()=>{"use strict";he()});import{homedir as je,totalmem as zn}from"node:os";import L from"node:path";var ye,to,no,oo,io,k=n(()=>{"use strict";Z();v();a();D();K();M();ye=L.join(je(),".kynver"),to=L.join(ye,"config.json"),no=L.join(ye,"credentials"),oo=500*1024*1024,io=4*1024*1024*1024});d();k();d();a();d();a();d();a();var ei=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function qe(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var Je=qe();var ke="composer-2.5";var u="cursor",Xe=new Set(["claude","opus","anthropic"]),Qe=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function j(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function l(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return Xe.has(r)?!0:r.includes("claude")||r.includes("opus")}function $(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&l(r))return!0;let t=j(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let i=j(e,"description");if(Qe.some(s=>s.test(i)))return!0;let o=j(e,"title");return!!/\[use-claude-worker\]/i.test(o)}function Ze(e,r){return{provider:u,model:ke,rule:`policy:cursor_default${r}`,requestedModel:e}}function Re(e){let{routing:r,task:t}=e,i=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&l(i))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if($(t)||r.rule==="explicit:cli"&&l(r.provider)||!l(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Ze(r.model,o)}function er(e,r=u){let t=e?.trim();return t?l(t)?u:t==="codex"?"codex":t:r}function rr(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(u)?[...new Set(r.map(t=>l(t)?u:t))]:r.every(t=>l(t))?[u]:r}var tr=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,nr=/\b(npm run build\b|next build\b)\b/i,or=/\b(vercel (build|deploy|--prod))\b/i,ir=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function V(e){let r=e.trim();return r?ir.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:or.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:nr.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:tr.test(r)?{heavy:!0,commandClass:"full_typecheck",reason:"full repo typecheck requires heavy-verification token"}:{heavy:!1,commandClass:"allowed",reason:null}:{heavy:!1,commandClass:"allowed",reason:null}}var _="heavy_verification_token_required";import{spawnSync as xr}from"node:child_process";a();import{closeSync as dr,existsSync as G,mkdirSync as mr,openSync as pr,readdirSync as Se,readFileSync as fr,unlinkSync as Ee,writeFileSync as gr}from"node:fs";import q from"node:path";import{mkdirSync as ar}from"node:fs";import{tmpdir as lr}from"node:os";import C from"node:path";import{homedir as sr}from"node:os";import xe from"node:path";function _e(){let e=process.env.KYNVER_STATE_ROOT;return e?xe.resolve(e):xe.join(sr(),".kynver","state")}function cr(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function ur(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?C.resolve(e):cr()?C.join(lr(),"kynver","state","heavy-verification"):C.join(_e(),"heavy-verification")}function Y(){return C.join(ur(),"slots")}function g(){let e=Y();return ar(e,{recursive:!0}),e}var h=120*6e4,Ce=1;function hr(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function A(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?hr(e,Ce):Ce}function yr(e){return`slot-${e}`}function br(e,r=Y()){return q.join(r,`${e}.json`)}function J(e){if(!G(e))return null;try{let r=JSON.parse(fr(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function E(e,r=h){if(!e||!B(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function vr(e,r){let t=J(e);if(E(t,r))try{Ee(e)}catch{}}function kr(e){return mr(e,{recursive:!0}),e}function X(e={}){let r=kr(e.slotsDir??g()),t=e.staleMs??h,i=0;for(let o of Se(r)){if(!o.endsWith(".json"))continue;let s=q.join(r,o),c=G(s);vr(s,t),c&&!G(s)&&(i+=1)}return i}function Rr(e={}){let r=e.slotsDir??g(),t=e.staleMs??h;X({slotsDir:r,staleMs:t});let i=[];for(let o of Se(r)){if(!o.endsWith(".json"))continue;let s=J(q.join(r,o));s&&!E(s,t)&&i.push(s)}return i}function z(e={}){return Rr(e).length}function y(e,r={}){if(A())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:S(),reason:null};let t=r.slotsDir??g(),i=r.staleMs??h,o=r.maxSlots??S();X({slotsDir:t,staleMs:i});for(let c=0;c<o;c+=1){let P=yr(c),w=br(P,t),b=J(w);if(b&&E(b,i))try{Ee(w)}catch{}else if(b&&!E(b,i))continue;let Oe={slotId:P,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let m=pr(w,"wx");gr(m,JSON.stringify(Oe,null,2),"utf8"),dr(m);let Pe=z({slotsDir:t,staleMs:i});return{admitted:!0,slotId:P,activeSlots:Pe,maxSlots:o,reason:null}}catch(m){if(m.code==="EEXIST")continue;throw m}}let s=z({slotsDir:t,staleMs:i});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:o,reason:`heavy verification at capacity (${s}/${o} slots)`}}function O(e,r={}){if(A())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:S(),reason:null};let t=r.slotsDir??g(),i=r.staleMs??h,o=r.maxSlots??S();X({slotsDir:t,staleMs:i});let s=z({slotsDir:t,staleMs:i}),c=s<o;return{admitted:c,slotId:null,activeSlots:s,maxSlots:o,reason:c?null:`heavy verification at capacity (${s}/${o} slots); waiting for ${e}`}}function _r(e){e<=0||xr(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore"})}function Ae(e,r,t=2e3,i={}){let o=Date.now()+Math.max(0,r),s=y(e,i);for(;!s.admitted&&Date.now()<o;)_r(Math.min(t,o-Date.now())),s=y(e,i);return s}function Cr(e,r={}){let t=V(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...O(e),slotId:null}};if(A())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...O(e),slotId:null}};let i=r.waitMs??0,o=i>0?Ae(e,i,r.pollMs):y(e);return o.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:o}:{allowed:!1,outcome:_,commandClass:t.commandClass,reason:t.reason??o.reason??_,verificationGate:o}}export{u as DEFAULT_WORKER_PROVIDER,_ as HEAVY_VERIFICATION_TOKEN_REQUIRED,Ne as auditWorkerEnv,V as classifyHeavyShellCommand,Re as enforceCursorWorkerProvider,Cr as gateWorkerShellCommand,l as isClaudeFamilyProvider,I as isForbiddenWorkerEnvKey,Q as listForbiddenWorkerEnvKeys,rr as preferCursorExecutor,er as resolveConfiguredWorkerProvider,p as scrubWorkerEnv,$ as taskAllowsClaudeWorker};
1
+ var n=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(o){throw t=[o],o}};function I(e){return Le.has(e)?!0:He.some(r=>e.endsWith(r))}function Q(e){return Object.keys(e).filter(I).sort()}function p(e){let r={...e};for(let t of Object.keys(r))I(t)&&delete r[t];return r}function $e(e){let r=Q(e);return{forbiddenPresent:r,safe:r.length===0}}var Fe,Le,He,d=n(()=>{"use strict";Fe=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY"],Le=new Set(Fe),He=["_SECRET","_API_KEY"]});function D(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=n(()=>{"use strict"});var N=n(()=>{"use strict";a();d()});var f=n(()=>{"use strict"});var Z=n(()=>{"use strict";N();f()});var B=n(()=>{"use strict"});var ee=n(()=>{"use strict"});var re=n(()=>{"use strict"});var rt,tt,M=n(()=>{"use strict";rt=25*1024*1024*1024,tt=12*1024*1024*1024});var at,lt,te=n(()=>{"use strict";M();at=5*1024*1024*1024,lt=10*1024*1024*1024});var ft,gt,T=n(()=>{"use strict";te();M();ft=30*1024*1024*1024,gt=15*1024*1024*1024});import{homedir as Ve}from"node:os";import Ye from"node:path";var Rt,ne=n(()=>{"use strict";g();f();a();Rt=Ye.join(Ve(),".openclaw","harness")});var K=n(()=>{"use strict";ne();a()});var ie=n(()=>{"use strict";K();a()});var se=n(()=>{"use strict"});var ae=n(()=>{"use strict";se();a()});var le=n(()=>{"use strict"});var ce=n(()=>{"use strict";le()});var ue=n(()=>{"use strict";ce();a()});var de=n(()=>{"use strict"});var me=n(()=>{"use strict"});var pe=n(()=>{"use strict"});var F=n(()=>{"use strict"});var fe=n(()=>{"use strict"});var ge=n(()=>{"use strict";F();fe()});var he=n(()=>{"use strict";ae();ue();de();me();N();pe();ge();F();a()});var ye=n(()=>{"use strict";he()});var Qe,Ze,ve=n(()=>{"use strict";re();g();B();L();T();K();ie();ye();a();Qe=500*1024*1024,Ze=4*1024*1024*1024});var L=n(()=>{"use strict";ve()});import{homedir as er}from"node:os";import rr from"node:path";var tr,be=n(()=>{"use strict";tr=rr.join(er(),".kynver",".env")});var ke=n(()=>{"use strict"});var xe=n(()=>{"use strict";ke()});var Re=n(()=>{"use strict"});var Se=n(()=>{"use strict";xe();Re()});var _e=n(()=>{"use strict"});var Ce=n(()=>{"use strict";_e()});var Ee=n(()=>{"use strict";be();f();g();Se();Ce()});import{homedir as or,totalmem as Yo}from"node:os";import H from"node:path";var Ae,ti,ni,oi,ii,g=n(()=>{"use strict";Z();f();a();B();ee();L();T();Ee();Ae=H.join(or(),".kynver"),ti=H.join(Ae,"config.json"),ni=H.join(Ae,"credentials"),oi=500*1024*1024,ii=4*1024*1024*1024});d();g();d();a();d();a();d();a();var Zi=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function cr(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var ur=cr();var we="composer-2.5";var u="cursor",dr=new Set(["claude","opus","anthropic"]),mr=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function j(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function l(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return dr.has(r)?!0:r.includes("claude")||r.includes("opus")}function $(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&l(r))return!0;let t=j(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let o=j(e,"description");if(mr.some(s=>s.test(o)))return!0;let i=j(e,"title");return!!/\[use-claude-worker\]/i.test(i)}function pr(e,r){return{provider:u,model:we,rule:`policy:cursor_default${r}`,requestedModel:e}}function Ie(e){let{routing:r,task:t}=e,o=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&l(o))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if($(t)||r.rule==="explicit:cli"&&l(r.provider)||!l(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return pr(r.model,i)}function fr(e,r=u){let t=e?.trim();return t?l(t)?u:t==="codex"?"codex":t:r}function gr(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(u)?[...new Set(r.map(t=>l(t)?u:t))]:r.every(t=>l(t))?[u]:r}var hr=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,yr=/\b(npm run build\b|next build\b)\b/i,vr=/\b(vercel (build|deploy|--prod))\b/i,br=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function V(e){let r=e.trim();return r?br.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:vr.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:yr.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:hr.test(r)?{heavy:!0,commandClass:"full_typecheck",reason:"full repo typecheck requires heavy-verification token"}:{heavy:!1,commandClass:"allowed",reason:null}:{heavy:!1,commandClass:"allowed",reason:null}}var S="heavy_verification_token_required";import{spawnSync as Mr}from"node:child_process";a();import{closeSync as Cr,existsSync as G,mkdirSync as Er,openSync as Ar,readdirSync as Be,readFileSync as Or,unlinkSync as Me,writeFileSync as Pr}from"node:fs";import q from"node:path";import{mkdirSync as xr}from"node:fs";import{tmpdir as Rr}from"node:os";import _ from"node:path";import{homedir as kr}from"node:os";import De from"node:path";function We(){let e=process.env.KYNVER_STATE_ROOT;return e?De.resolve(e):De.join(kr(),".kynver","state")}function Sr(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function _r(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?_.resolve(e):Sr()?_.join(Rr(),"kynver","state","heavy-verification"):_.join(We(),"heavy-verification")}function Y(){return _.join(_r(),"slots")}function y(){let e=Y();return xr(e,{recursive:!0}),e}var v=120*6e4,Ne=1;function wr(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function A(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function C(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?wr(e,Ne):Ne}function Ir(e){return`slot-${e}`}function Dr(e,r=Y()){return q.join(r,`${e}.json`)}function X(e){if(!G(e))return null;try{let r=JSON.parse(Or(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function E(e,r=v){if(!e||!D(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function Wr(e,r){let t=X(e);if(E(t,r))try{Me(e)}catch{}}function Nr(e){return Er(e,{recursive:!0}),e}function J(e={}){let r=Nr(e.slotsDir??y()),t=e.staleMs??v,o=0;for(let i of Be(r)){if(!i.endsWith(".json"))continue;let s=q.join(r,i),c=G(s);Wr(s,t),c&&!G(s)&&(o+=1)}return o}function Br(e={}){let r=e.slotsDir??y(),t=e.staleMs??v;J({slotsDir:r,staleMs:t});let o=[];for(let i of Be(r)){if(!i.endsWith(".json"))continue;let s=X(q.join(r,i));s&&!E(s,t)&&o.push(s)}return o}function z(e={}){return Br(e).length}function b(e,r={}){if(A())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:C(),reason:null};let t=r.slotsDir??y(),o=r.staleMs??v,i=r.maxSlots??C();J({slotsDir:t,staleMs:o});for(let c=0;c<i;c+=1){let P=Ir(c),w=Dr(P,t),k=X(w);if(k&&E(k,o))try{Me(w)}catch{}else if(k&&!E(k,o))continue;let Ue={slotId:P,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let m=Ar(w,"wx");Pr(m,JSON.stringify(Ue,null,2),"utf8"),Cr(m);let Ke=z({slotsDir:t,staleMs:o});return{admitted:!0,slotId:P,activeSlots:Ke,maxSlots:i,reason:null}}catch(m){if(m.code==="EEXIST")continue;throw m}}let s=z({slotsDir:t,staleMs:o});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function O(e,r={}){if(A())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:C(),reason:null};let t=r.slotsDir??y(),o=r.staleMs??v,i=r.maxSlots??C();J({slotsDir:t,staleMs:o});let s=z({slotsDir:t,staleMs:o}),c=s<i;return{admitted:c,slotId:null,activeSlots:s,maxSlots:i,reason:c?null:`heavy verification at capacity (${s}/${i} slots); waiting for ${e}`}}function Tr(e){e<=0||Mr(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore"})}function Te(e,r,t=2e3,o={}){let i=Date.now()+Math.max(0,r),s=b(e,o);for(;!s.admitted&&Date.now()<i;)Tr(Math.min(t,i-Date.now())),s=b(e,o);return s}function Ur(e,r={}){let t=V(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...O(e),slotId:null}};if(A())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...O(e),slotId:null}};let o=r.waitMs??0,i=o>0?Te(e,o,r.pollMs):b(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:S,commandClass:t.commandClass,reason:t.reason??i.reason??S,verificationGate:i}}export{u as DEFAULT_WORKER_PROVIDER,S as HEAVY_VERIFICATION_TOKEN_REQUIRED,$e as auditWorkerEnv,V as classifyHeavyShellCommand,Ie as enforceCursorWorkerProvider,Ur as gateWorkerShellCommand,l as isClaudeFamilyProvider,I as isForbiddenWorkerEnvKey,Q as listForbiddenWorkerEnvKeys,gr as preferCursorExecutor,fr as resolveConfiguredWorkerProvider,p as scrubWorkerEnv,$ as taskAllowsClaudeWorker};
@@ -0,0 +1,12 @@
1
+ import type { KynverUserConfig } from "./config.js";
2
+ export interface StartBoxIdentityRepair {
3
+ repaired: boolean;
4
+ boxKind: string;
5
+ maxConcurrentWorkers: number;
6
+ warnings: string[];
7
+ }
8
+ /**
9
+ * On `kynver start`, persist explicit box identity and clamp mis-inherited Forge caps
10
+ * so Command Center pools stay ghost 8 / forge 4.
11
+ */
12
+ export declare function repairStartBoxIdentity(config?: KynverUserConfig, env?: NodeJS.ProcessEnv): StartBoxIdentityRepair;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kynver-app/runtime",
3
- "version": "0.1.140",
3
+ "version": "0.1.142",
4
4
  "description": "Kynver AgentOS local execution runtime and CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -112,8 +112,8 @@
112
112
  "license": "UNLICENSED",
113
113
  "devDependencies": {
114
114
  "@types/node": "^22.9.0",
115
- "esbuild": "^0.25.11",
115
+ "esbuild": "^0.28.1",
116
116
  "typescript": "^5.6.3",
117
- "vitest": "^3.2.4"
117
+ "vitest": "^4.1.9"
118
118
  }
119
119
  }