@kynver-app/runtime 0.2.101 → 0.2.114

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 l=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};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 Re(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 u=J(s[1]??"");u&&n.push(u)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let u=J(r.slice(i,a+1));u&&n.push(u)}return n.length>0?n[n.length-1]:null}function xe(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?Re(r)??(r.trim()||null):r;let t=typeof e.summary=="string"?e.summary.trim():"";if(!t)return null;let n=Re(t);return n||t}var Se=l(()=>{"use strict"});var _e=l(()=>{"use strict"});import{existsSync as Xr,mkdirSync as Wn,readFileSync as Zr,readdirSync as Un,renameSync as Bn,rmSync as Dn,statSync as Ee,writeFileSync as Mn}from"node:fs";function q(e){console.error(e),process.exit(1)}function X(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function I(e){try{return JSON.parse(e)}catch{return null}}function P(e){try{return Ee(e).size}catch{return 0}}function T(e){try{return Ee(e).mtime.toISOString()}catch{return null}}function ve(e,r){return Xr(e)?Zr(e,"utf8").split(`
1
+ var l=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function q(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 Re(e){let r=e.trim();if(!r)return null;let t=q(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let u=q(s[1]??"");u&&n.push(u)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let u=q(r.slice(i,a+1));u&&n.push(u)}return n.length>0?n[n.length-1]:null}function xe(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?Re(r)??(r.trim()||null):r;let t=typeof e.summary=="string"?e.summary.trim():"";if(!t)return null;let n=Re(t);return n||t}var Se=l(()=>{"use strict"});var _e=l(()=>{"use strict"});import{existsSync as rt,mkdirSync as Fn,readFileSync as tt,readdirSync as $n,renameSync as Ln,rmSync as Hn,statSync as Ee,writeFileSync as jn}from"node:fs";function X(e){console.error(e),process.exit(1)}function Z(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function I(e){try{return JSON.parse(e)}catch{return null}}function P(e){try{return Ee(e).size}catch{return 0}}function T(e){try{return Ee(e).mtime.toISOString()}catch{return null}}function ve(e,r){return rt(e)?tt(e,"utf8").split(`
2
2
  `).slice(-r).join(`
3
- `):""}function N(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Ce(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 Z(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var g=l(()=>{"use strict";_e()});import{existsSync as Qr,readFileSync as et}from"node:fs";function Ae(e){return e==="complete"}function we(e){return Ae(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function Oe(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!Qr(e))return r;let t=Date.now()+rt,n=new Date(t).toISOString(),o=et(e,"utf8").split(`
4
- `).filter(Boolean);for(let s of o){let i=I(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let u=String(a.ts),p=Date.parse(u);Number.isFinite(p)&&p>t?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:u,clampedTo:n}):r.lastHeartbeatAt=u}a.phase!==void 0&&a.phase!==null&&(r.lastHeartbeatPhase=String(a.phase)),a.summary!==void 0&&a.summary!==null&&(r.lastHeartbeatSummary=String(a.summary)),Ae(r.lastHeartbeatPhase)&&(r.terminalFinalResult=xe(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(u=>!!u&&typeof u=="object"&&typeof u.prUrl=="string"))}return r}var rt,Ie=l(()=>{"use strict";Se();g();rt=6e4});function Te(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function K(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 Ne(e){let r=Te(e[0]);return!!(r&&tt.has(r))}function ot(e){let r=e.trim();return r.includes("/")?r.split("/").pop()??r:r}function st(e){if(!e||e.includes("*"))return null;let r=ot(e);return!r||r.includes("/")?null:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(r)?r:null}function Ke(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function Q(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function it(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function at(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;Pe.has(n)&&(t+=1);continue}r.push(n)}}return r}function lt(e){let r=!1,t=e.map((o,s)=>{let i=it(o),a=e[s-1];return a&&Pe.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),n=at(t);if(n.length===2){let[o,s]=n;if(Q(s))return{argv:[t[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};let i=st(s);if(i)return{argv:[t[0]??"rg","-g",i,o,"."],changed:!0}}return r&&n.length===1?{argv:[...t,"."],changed:!0}:{argv:t,changed:r}}function We(e){for(let r=1;r<e.length;r+=1){let t=e[r];if(t&&(t==="-c"||t==="-lc"||t==="-cl"||/^-[a-zA-Z]*c[a-zA-Z]*$/u.test(t)))return r+1}return-1}function W(e){let r=e.trim();if(!r)return{command:r,wrapped:!1};let t=K(r);if(!t.length)return{command:r,wrapped:!1};let n=Te(t[0]);if(!n||!nt.has(n))return{command:r,wrapped:!1};let o=We(t);if(o<0||o>=t.length)return{command:r,wrapped:!1};let s=t.slice(o).join(" ").trim();return s?{command:s,wrapped:!0}:{command:r,wrapped:!1}}function ut(e,r){let t=e.trim(),n=K(t),o=We(n);if(o<0)return r;let s=n.slice(0,o).join(" "),i=r.includes("'")?`"${r.replace(/"/g,'\\"')}"`:`'${r}'`;return`${s} ${i}`}function ct(e){let r=e.trim(),t=W(r),n=K(t.command);if(!n.length||!Ne(n))return{segment:r,changed:!1};let o=lt(n);if(!o.changed)return{segment:r,changed:!1};let s=o.argv.join(" ");return t.wrapped?{segment:ut(r,s),changed:!0}:{segment:s,changed:!0}}function ee(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=ct(i);return a.changed&&(o=!0),a.segment});return o?{command:s.join(t),changed:!0}:{command:r,changed:!1}}function Ue(e){let r=W(e).command,t=K(r.trim());return t.length&&Ne(t)?!0:/\b(rg|ripgrep)\b/i.test(r)}function Be(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 dt(e){let{pattern:r,target:t}=Be(e);return r?Q(t)?{kind:"rg_exclude_syntax",pattern:r,target:t}:Ke(t)?{kind:"bad_scope",pattern:r,target:t}:{kind:"not_repo_search",pattern:r,target:t}:{kind:"not_repo_search"}}function mt(e){let{pattern:r,target:t}=Be(e);if(!r)return null;if(Q(t)){let n=`${t.trim()}/**`;return{command:`rg "${r}" -g '${n}' .`,changed:!0}}return t&&Ke(t)?{command:`rg -g ${t} "${r}" .`,changed:!0}:null}function pt(e){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 ft(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 re(e){let r=e.meta?.trim()||(e.command?ft(e.command):null)||null;if(r){let t=dt(r),n=pt(t);if(n)return n;let o=mt(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=ee(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 tt,nt,Pe,De=l(()=>{"use strict";tt=new Set(["rg","ripgrep","grep"]),nt=new Set(["bash","sh","dash","zsh"]),Pe=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function E(e,r=200){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function ht(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 v(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function kt(e){let r=e.metadata;if(!v(r))return null;let t=r.vulnerabilities;if(!v(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 bt(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 Rt(e,r){let t=e.error;if(v(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?E(o.split(`
5
- `).find(Boolean)??o,160):"npm audit failed"}function xt(e){let r=`${e.stdout}
6
- ${e.stderr}`.trim(),t=ht(r);if(!t||!v(t)){let o=E(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(v(t.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${Rt(t,e.stderr)}`};let n=kt(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:bt(n),audit:n}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function St(e){return gt.test(e)}function _t(e){let r=W(e).command;return Me.test(e)||Me.test(r)||Ue(e)}function Et(e){let r=re({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&&yt.test(n)){let i=E(n,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=ee(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=E(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(St(e.command)){let i=r.trim()||n.trim()||t.trim();return xt({exitCode:e.exitCode,stdout:i,stderr:t})}if(_t(e.command))return Et({command:e.command,exitCode:e.exitCode,stdout:r,stderr:t,interleaved:n});let o=re({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=E(n||r||t||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var gt,Me,yt,Le=l(()=>{"use strict";De();gt=/\bnpm\s+audit\b/i,Me=/\b(rg|ripgrep)\b/i,yt=/\b(error|invalid|unknown|panic|not found)\b/i});function C(e){return typeof e=="string"&&vt.test(e.trim())}function U(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return r.is_error===!0||r.providerTerminalError===!0||typeof r.subtype=="string"&&/^error(?:_|$)/.test(r.subtype)}var vt,B=l(()=>{"use strict";vt=/^(?:provider authentication failed:\s*)?(?:(?:Failed to authenticate|authentication (?:failed|error))(?::\s*[^\n.!?]+)?|OAuth session expired and could not be refreshed)[.!]?$/i});function te(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ct(e){if(!e)return;let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0;if(!((r===void 0||r<0)&&(t===void 0||t<0)))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{}}}function $e(e){if(e.event==="step_update"&&te(e.step_update)){let s=e.step_update,i=s.step_type==="tool"&&typeof s.tool_name=="string"&&s.tool_name.trim()?s.tool_name.trim():void 0,a=typeof s.text_delta=="string"?s.text_delta:void 0;return!i&&a===void 0?null:{...i?{currentTool:i}:{},...a!==void 0?{textDelta:a}:{}}}if(e.event!=="result"||!te(e.result))return null;let r=e.result,t=typeof r.status=="string"?r.status.toUpperCase():"";if(t!=="SUCCESS"&&t!=="ERROR")return null;let n=te(r.usage)?Ct(r.usage):void 0;if(t==="ERROR"){let s=typeof r.error=="string"&&r.error.trim()?r.error.trim():"antigravity cli result error";return{...n?{usage:n}:{},terminal:{ok:!1,finalResult:null,error:s}}}let o=typeof r.response=="string"?r.response.trim():"";return{...n?{usage:n}:{},terminal:{ok:!0,finalResult:o||"completed",error:null}}}var He=l(()=>{"use strict"});function ne(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function je(){return{assistantText:""}}function At(e,r){if(!(r.role!=="assistant"||typeof r.content!="string")){if(r.delta===!0){e.assistantText+=r.content;return}e.assistantText=r.content}}function wt(e){let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0,o=(ne(e.models)?Object.keys(e.models):[]).find(s=>s.trim())?.trim();if(!(r===void 0&&t===void 0&&!o))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{},...o?{model:o}:{}}}function Ot(e){return e.type!=="result"||e.status!=="success"&&e.status!=="error"?!1:typeof e.result!="string"}function Ye(e,r){if(e.type==="message"&&(e.role==="assistant"||e.role==="user"))return At(r,e),{};if(e.type==="tool_use"&&typeof e.tool_name=="string"&&e.tool_name.trim())return{currentTool:e.tool_name.trim()};if(!Ot(e))return null;let t=ne(e.stats)?wt(e.stats):void 0;if(e.status==="error"){let o=ne(e.error)&&typeof e.error.message=="string"?e.error.message:"gemini cli result error";return{...t?{usage:t}:{},terminal:{ok:!1,finalResult:null,error:o}}}let n=r.assistantText.trim();return{...t?{usage:t}:{},terminal:{ok:!0,finalResult:n||"completed",error:null}}}var Ve=l(()=>{"use strict"});import{existsSync as It,readFileSync as Pt}from"node:fs";function Tt(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function Nt(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 Kt(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",U(r)&&(e.providerTerminalError=!0,e.error=String(r.result||r.api_error_status||"stream result error"))}function R(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function Wt(e){let r=e.usage;return r&&typeof r=="object"&&!Array.isArray(r)?r:null}function Ut(e){if(typeof e.model=="string"&&e.model.trim())return e.model.trim();let r=e.modelUsage;if(r&&typeof r=="object"&&!Array.isArray(r)){let t=Object.keys(r)[0];if(t?.trim())return t.trim()}}function Bt(e,r){let t=Wt(r);if(!t)return;let n=R(t.input_tokens)??R(t.inputTokens)??R(t.prompt_tokens),o=R(t.output_tokens)??R(t.outputTokens)??R(t.completion_tokens);if(n===void 0&&o===void 0)return;let s=Ut(r)??e.usage?.model;e.usage={...n!==void 0?{inputTokens:n}:{},...o!==void 0?{outputTokens:o}:{},...s?{model:s}:{}}}function Dt(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 u=a,p=typeof u.exitCode=="number"?u.exitCode:0;return{command:s,exitCode:p,stdout:typeof u.stdout=="string"?u.stdout:"",stderr:typeof u.stderr=="string"?u.stderr:"",interleaved:typeof u.interleavedOutput=="string"?u.interleavedOutput:""}}function Mt(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,usage:null};if(!It(e))return r;let t=Pt(e,"utf8").split(`
7
- `).filter(Boolean),n=null,o=je();for(let s of t){let i=I(s);if(!i||typeof i!="object"||Array.isArray(i))continue;if(i.type==="turn.started"&&(n=null,r.finalResult=null),i.type==="item.completed"){let d=i.item;if(d&&typeof d=="object"&&!Array.isArray(d)){let f=d;f.type==="agent_message"&&typeof f.text=="string"&&f.text.trim()&&(n=f.text)}}i.type==="turn.completed"&&n&&!r.providerTerminalError&&(r.finalResult=n,n=null);let a=Tt(i);if(a&&(r.firstEventAt||=a,r.lastEventAt=a),i.type==="stream_event"&&i.event&&typeof i.event=="object"&&i.event.type==="content_block_start"){let d=i.event.content_block;d?.type==="tool_use"&&(r.currentTool=String(d.name||"tool"))}if(i.type==="assistant"&&i.message&&typeof i.message=="object"){let d=i.message.content;if(Array.isArray(d)){let f=d.find(y=>y?.type==="tool_use");f&&(r.currentTool=String(f.name||r.currentTool))}}if(i.type==="tool_call"&&i.subtype==="started"){let d=i.tool_call&&typeof i.tool_call=="object"&&!Array.isArray(i.tool_call)?i.tool_call:void 0,f=Nt(d);f&&(r.currentTool=f)}let u=Dt(i);u&&Mt(r,Fe({command:u.command,exitCode:u.exitCode,stdout:u.stdout,stderr:u.stderr,interleavedOutput:u.interleaved}));let p=$e(i),m=p?null:Ye(i,o),c=p??m;if(c?.currentTool&&(r.currentTool=c.currentTool),c?.usage&&(r.usage={...r.usage??{},...c.usage}),c?.terminal?c.terminal.ok?r.finalResult=c.terminal.finalResult:(r.finalResult=null,r.providerTerminalError=!0,r.error=c.terminal.error):i.type==="result"&&Kt(r,i),i.type==="turn.failed"){n=null,r.finalResult=null,r.providerTerminalError=!0;let d=i.error;r.error=typeof d?.message=="string"?d.message:"provider turn failed"}Bt(r,i)}return r}var ze=l(()=>{"use strict";Le();g();B();He();Ve()});function Je(e,r=240){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function oe(e){let r=(e??"").trim();if(!r)return null;if(C(r))return{blocked:!0,reason:`provider authentication failed: ${Je(r)}`};for(let t of Ft)if(t.test.test(r))return{blocked:!0,reason:`${t.label}: ${Je(r)}`};return null}var Ft,qe=l(()=>{"use strict";B();Ft=[{test:/(?:claude provider refuses to spawn: worker prompt is empty after argv assembly|Input must be provided (?:either )?through stdin or as a prompt argument)/i,label:"provider prompt delivery failed"},{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"},{test:/\b(?:out of usage|increase limits?|switch to auto|ask your admin to increase your limit|usage limits?|quota exceeded|insufficient_quota|credits? exhausted|billing|payment required)\b/i,label:"provider quota exhausted"}]});function Xe(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Lt(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 $t(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:Xe(e.head)}function Ht(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 Ze(e){if(e.alive||Lt(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,t=Xe(e.headCommit)??$t(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:Ht(s,r,t)}}var Qe=l(()=>{"use strict"});var x=l(()=>{"use strict"});var jt,po,Yt,fo,er=l(()=>{"use strict";jt=["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","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],po=new Set(jt),Yt=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],fo=new Set(Yt)});import{spawnSync as tr}from"node:child_process";function Vt(e,r,t={}){let n=tr("git",r,X({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=Gt(e,r,n);if(t.throwError)throw new Error(o);q(o)}return n.stdout||""}function Gt(e,r,t){let n=typeof t.stderr=="string"&&t.stderr.trim()||typeof t.stdout=="string"&&t.stdout.trim()||t.error?.message||`exit ${t.status??"unknown"}`;return`git ${r.join(" ")} failed in ${e}: ${n}`}function nr(e){return Vt(e,["status","--short"],{allowFailure:!0}).split(`
8
- `).map(r=>r.trim()).filter(Boolean)}function A(e,r){try{let t=tr("git",r,X({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 rr(e,r,t){let n=A(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 or(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 se(n,"missing worktree path");let s=A(e,["rev-parse","HEAD"]);if(s.status!==0)return se(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let d=A(e,["rev-parse",n]);if(d.status!==0)return se(n,d.error||d.stderr||d.stdout||`failed to resolve ${n}`,s.stdout.trim());i=d.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 u=rr(e,i,a),p=rr(e,a,i),m=u.error||p.error||void 0;if(u.isAncestor==null||p.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:"unknown",...m?{error:m}:{}};let c=u.isAncestor?"ahead":p.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:c,...m?{error:m}:{}}}function se(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var D=l(()=>{"use strict";x();g();er()});function w(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function zt(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 Jt(e){if(w(e.headCommit)||w(e.prUrl)||w(e.artifactBundlePath)||w(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&w(r.head))}function sr(e){return zt(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:Jt(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 ir(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var ar=l(()=>{"use strict"});function ae(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 lr(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function M(e){let r=e.trim();if(!r)return null;let t=ae(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let m=ae(s[1]??"");m&&n.push(m)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let m=ae(r.slice(i,a+1));m&&n.push(m)}if(n.length===0)return null;let u=n[n.length-1],p=lr(u);for(let m of n){let c=lr(m);c>p&&(u=m,p=c)}return u}var le=l(()=>{"use strict"});function ur(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 cr(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function qt(e){return new Set(e.map(r=>cr(ur(r)??r)).filter(Boolean))}function dr(e,r,t){let n=ur(e)??e;if(!n)return"unrelated";let o=cr(n);return qt(r).has(o)?"contract":t?(t.outcome==="skipped"||t.outcome==="blocked")&&t.reason?.trim()?"support":(t.outcome==="merged","unrelated"):"unrelated"}var mr=l(()=>{"use strict"});function S(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Xt(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]}`:S(e)}function F(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function pr(e){let r=null;if(typeof e=="string"){let o=M(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=S(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||n.push({prUrl:i,outcome:a,mergeCommit:S(s.mergeCommit??s.merge_commit),reason:S(s.reason)})}return n}function fr(e,r){let t=[],n=k(S(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 gr(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(!Xt(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(S(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?k(r.targetPrUrls[0]):null):null;if(s){let c=fr(t,n);if(!(n&&typeof n=="object"&&!Array.isArray(n)&&n.supersedesOriginalTargetPr===!0)){for(let h of c)if(h!==s)return{blocked:!0,reason:"duplicate_repair_pr",detail:`Repair worker opened or attached PR ${h} instead of canonical target ${s}`}}let y=pr(n).find(h=>h.prUrl===s);if(!y||y.outcome!=="merged"&&!(y.reason?.trim()&&(y.outcome==="skipped"||y.outcome==="blocked")))return{blocked:!0,reason:"missing_repair_target_reconciliation",detail:`Repair worker must reconcile target PR ${s}`}}let i=pr(n),a=new Map(i.map(c=>[F(c.prUrl),c])),u=new Set(r.targetPrUrls.map(c=>F(k(c)??c)).filter(Boolean)),p=fr(t,n);if(r.landingOnly)for(let c of p){let d=a.get(F(c)),f=dr(c,r.targetPrUrls,d);if(!(f==="contract"||f==="support"))return u.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 m=[];for(let c of r.targetPrUrls){let d=F(k(c)??c),f=a.get(d);if(!f){m.push(d);continue}f.outcome!=="merged"&&!f.reason?.trim()&&m.push(d)}return m.length>0?{blocked:!0,reason:m.every(c=>a.has(c))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${m.join(", ")}`}:{blocked:!1}}function yr(e){if(e.blocked)return e.detail??e.reason}var hr=l(()=>{"use strict";le();mr()});function Qt(e){let r=Date.now();if(e.providerTerminalError||U(e.finalResult)||e.finalResult&&e.error?.trim()||C(e.error)||C(e.finalResult)){let o=e.error||(typeof e.finalResult=="string"?e.finalResult:"provider terminal error");return{state:"blocked",reason:oe(o)?.reason??`provider terminal error: ${o}`}}if(e.completionBlocker&&!kr(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&rn(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=sr(o);if(s.blocked){let i=ir(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=gr({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=yr(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(en(e))return{state:"done",reason:"empty abandoned worker record"};let o=oe(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Ze({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>Zt)return{state:"needs_attention",reason:`no first stream event ${Z(t)}s after start`};let n=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(n)&&r-n>L?{state:"stale",reason:`no log/event/heartbeat activity for ${Z(n)}s`}:{state:"ok",reason:"recent activity"}}function kr(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function en(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 rn(e){let r=null;if(typeof e=="string"?r=M(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 tn(e,r,t){let n=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&n!==void 0&&n!==null?n:r||(n??we(t))}function br(e,r={}){let t=Ge(e.stdoutPath),n=Oe(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=tn(e,t.finalResult,n),i=o?!1:N(e.pid),a=P(e.stdoutPath),u=P(e.stderrPath),p=P(e.heartbeatPath),m=nr(e.worktreePath),c=or(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),d=Ce([t.lastEventAt,n.lastHeartbeatAt,T(e.stdoutPath),T(e.stderrPath),T(e.heartbeatPath)]),f=t.error||!i&&!s&&ve(e.stderrPath,10).trim()||void 0,y=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,h=kr(y)?null:y,Jr=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,z=Qt({alive:i,finalResult:s,firstEventAt:t.firstEventAt,stdoutBytes:a,stderrBytes:u,heartbeatBytes:p,lastActivityAt:d,heartbeatBlocker:n.heartbeatBlocker,startedAt:e.startedAt,error:f,providerTerminalError:t.providerTerminalError,changedFiles:m,gitAncestry:c,completionBlocker:h,landingContract:Jr,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),qr=h||z.state==="blocked"?"blocked":o||z.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:qr,attention:z,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:u,heartbeatBytes:p,firstEventAt:t.firstEventAt,lastEventAt:t.lastEventAt,lastActivityAt:d,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:f,providerTerminalError:t.providerTerminalError,changedFiles:m,gitAncestry:c,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.provider??e.orchestrationAudit?.provider??null,usage:t.usage??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 Rr(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function xr(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var Zt,L,O=l(()=>{"use strict";Ie();ze();B();qe();Qe();D();ar();hr();le();g();Zt=18e4,L=6e5});var vr=l(()=>{"use strict";D()});var ue=l(()=>{"use strict";D();x();vr()});var ce=l(()=>{"use strict";g()});var b=l(()=>{"use strict"});var $=l(()=>{"use strict"});var Cr=l(()=>{"use strict"});var os,ss,de=l(()=>{"use strict";os=25*1024*1024*1024,ss=12*1024*1024*1024});var cs,ds,Ar=l(()=>{"use strict";de();cs=5*1024*1024*1024,ds=10*1024*1024*1024});var hs,ks,me=l(()=>{"use strict";Ar();de();hs=30*1024*1024*1024,ks=15*1024*1024*1024});var wr=l(()=>{"use strict";H();g()});var Or=l(()=>{"use strict";O()});var un,cn,Tr=l(()=>{"use strict";Cr();_();b();$();j();me();H();wr();Or();g();un=500*1024*1024,cn=4*1024*1024*1024});var j=l(()=>{"use strict";Tr()});import{homedir as mn}from"node:os";import pn from"node:path";var Nr,ge=l(()=>{"use strict";Nr=pn.join(mn(),".kynver",".env")});var Kr=l(()=>{"use strict"});var Wr=l(()=>{"use strict";Kr()});var Ur=l(()=>{"use strict"});var Br=l(()=>{"use strict";g()});var ye=l(()=>{"use strict";Wr();Ur();Br()});var Dr=l(()=>{"use strict"});var Mr=l(()=>{"use strict";Dr()});var Y=l(()=>{"use strict";ge();x();_();ye();Mr()});var Fr=l(()=>{"use strict";b();b()});var Lr=l(()=>{"use strict";ge();ye();Y()});var he=l(()=>{"use strict"});var $r=l(()=>{"use strict";g()});import bn from"node:path";var Hi,ke=l(()=>{"use strict";x();$r();Hi=bn.join(".openclaw","harness")});var G=l(()=>{"use strict";_();b();$();j();ke()});var jr=l(()=>{"use strict";ue();b();Fr();_();Y();Lr();ce();he();G()});var vn,da,Yr=l(()=>{"use strict";vn=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],da=vn.join("|")});import{homedir as Cn,totalmem as _a}from"node:os";import be from"node:path";var Vr,Ba,Da,Ma,Fa,_=l(()=>{"use strict";ue();x();ce();b();$();j();me();Y();jr();Yr();G();he();Vr=be.join(Cn(),".kynver"),Ba=be.join(Vr,"config.json"),Da=be.join(Vr,"credentials"),Ma=500*1024*1024,Fa=4*1024*1024*1024});var Gr=l(()=>{"use strict";_();ke();G();g()});var H=l(()=>{"use strict";Gr();g()});O();var Sr="kynver-harness:",nn="@runner:";function _r(e){return e?.trim()?e.trim():null}function on(e){let r=_r(e);if(!r?.startsWith(Sr))return null;let t=r.slice(Sr.length),n=t.indexOf(nn);return n>=0?t.slice(0,n).trim()||null:t.trim()||null}function Er(e,r){let t=_r(r);return t?on(e)===t:!1}O();g();function sn(e){let{worker:r,status:t,taskLease:n}=e,o=n?.leaseOwner??null;if(r.dispatched&&n){if(n.status==="running"&&o&&!Er(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>L?{health:"stale",reason:`heartbeat older than ${Math.floor(L/1e3)}s`}:t.alive&&r.pid&&!N(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"}}H();function zr(e){return!!e.completionReportedAt?.trim()}O();function An(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"),zr(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"),xr(t)&&n.push(t.attention.reason||"landing gate blocked");let o=Rr(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{An as assessAutoCompleteEligibility,sn as classifyWorkerHealth,br as computeWorkerStatus};
3
+ `):""}function K(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Ce(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 Q(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var g=l(()=>{"use strict";_e()});import{existsSync as nt,readFileSync as ot}from"node:fs";function Ae(e){return e==="complete"}function we(e){return Ae(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function Oe(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!nt(e))return r;let t=Date.now()+st,n=new Date(t).toISOString(),o=ot(e,"utf8").split(`
4
+ `).filter(Boolean);for(let s of o){let i=I(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let u=String(a.ts),f=Date.parse(u);Number.isFinite(f)&&f>t?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:u,clampedTo:n}):r.lastHeartbeatAt=u}a.phase!==void 0&&a.phase!==null&&(r.lastHeartbeatPhase=String(a.phase)),a.summary!==void 0&&a.summary!==null&&(r.lastHeartbeatSummary=String(a.summary)),Ae(r.lastHeartbeatPhase)&&(r.terminalFinalResult=xe(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(u=>!!u&&typeof u=="object"&&typeof u.prUrl=="string"))}return r}var st,Ie=l(()=>{"use strict";Se();g();st=6e4});function Te(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function N(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 Ke(e){let r=Te(e[0]);return!!(r&&it.has(r))}function lt(e){let r=e.trim();return r.includes("/")?r.split("/").pop()??r:r}function ut(e){if(!e||e.includes("*"))return null;let r=lt(e);return!r||r.includes("/")?null:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(r)?r:null}function Ne(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function ee(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function ct(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function dt(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;Pe.has(n)&&(t+=1);continue}r.push(n)}}return r}function mt(e){let r=!1,t=e.map((o,s)=>{let i=ct(o),a=e[s-1];return a&&Pe.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),n=dt(t);if(n.length===2){let[o,s]=n;if(ee(s))return{argv:[t[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};let i=ut(s);if(i)return{argv:[t[0]??"rg","-g",i,o,"."],changed:!0}}return r&&n.length===1?{argv:[...t,"."],changed:!0}:{argv:t,changed:r}}function We(e){for(let r=1;r<e.length;r+=1){let t=e[r];if(t&&(t==="-c"||t==="-lc"||t==="-cl"||/^-[a-zA-Z]*c[a-zA-Z]*$/u.test(t)))return r+1}return-1}function W(e){let r=e.trim();if(!r)return{command:r,wrapped:!1};let t=N(r);if(!t.length)return{command:r,wrapped:!1};let n=Te(t[0]);if(!n||!at.has(n))return{command:r,wrapped:!1};let o=We(t);if(o<0||o>=t.length)return{command:r,wrapped:!1};let s=t.slice(o).join(" ").trim();return s?{command:s,wrapped:!0}:{command:r,wrapped:!1}}function ft(e,r){let t=e.trim(),n=N(t),o=We(n);if(o<0)return r;let s=n.slice(0,o).join(" "),i=r.includes("'")?`"${r.replace(/"/g,'\\"')}"`:`'${r}'`;return`${s} ${i}`}function pt(e){let r=e.trim(),t=W(r),n=N(t.command);if(!n.length||!Ke(n))return{segment:r,changed:!1};let o=mt(n);if(!o.changed)return{segment:r,changed:!1};let s=o.argv.join(" ");return t.wrapped?{segment:ft(r,s),changed:!0}:{segment:s,changed:!0}}function re(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=pt(i);return a.changed&&(o=!0),a.segment});return o?{command:s.join(t),changed:!0}:{command:r,changed:!1}}function Ue(e){let r=W(e).command,t=N(r.trim());return t.length&&Ke(t)?!0:/\b(rg|ripgrep)\b/i.test(r)}function Be(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 gt(e){let{pattern:r,target:t}=Be(e);return r?ee(t)?{kind:"rg_exclude_syntax",pattern:r,target:t}:Ne(t)?{kind:"bad_scope",pattern:r,target:t}:{kind:"not_repo_search",pattern:r,target:t}:{kind:"not_repo_search"}}function ht(e){let{pattern:r,target:t}=Be(e);if(!r)return null;if(ee(t)){let n=`${t.trim()}/**`;return{command:`rg "${r}" -g '${n}' .`,changed:!0}}return t&&Ne(t)?{command:`rg -g ${t} "${r}" .`,changed:!0}:null}function yt(e){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 kt(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 te(e){let r=e.meta?.trim()||(e.command?kt(e.command):null)||null;if(r){let t=gt(r),n=yt(t);if(n)return n;let o=ht(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=re(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 it,at,Pe,De=l(()=>{"use strict";it=new Set(["rg","ripgrep","grep"]),at=new Set(["bash","sh","dash","zsh"]),Pe=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function E(e,r=200){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function xt(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 v(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function St(e){let r=e.metadata;if(!v(r))return null;let t=r.vulnerabilities;if(!v(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 _t(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 Et(e,r){let t=e.error;if(v(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?E(o.split(`
5
+ `).find(Boolean)??o,160):"npm audit failed"}function vt(e){let r=`${e.stdout}
6
+ ${e.stderr}`.trim(),t=xt(r);if(!t||!v(t)){let o=E(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(v(t.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${Et(t,e.stderr)}`};let n=St(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:_t(n),audit:n}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function Ct(e){return bt.test(e)}function At(e){let r=W(e).command;return Me.test(e)||Me.test(r)||Ue(e)}function wt(e){let r=te({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&&Rt.test(n)){let i=E(n,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=re(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=E(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(Ct(e.command)){let i=r.trim()||n.trim()||t.trim();return vt({exitCode:e.exitCode,stdout:i,stderr:t})}if(At(e.command))return wt({command:e.command,exitCode:e.exitCode,stdout:r,stderr:t,interleaved:n});let o=te({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=E(n||r||t||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var bt,Me,Rt,$e=l(()=>{"use strict";De();bt=/\bnpm\s+audit\b/i,Me=/\b(rg|ripgrep)\b/i,Rt=/\b(error|invalid|unknown|panic|not found)\b/i});function C(e){return typeof e=="string"&&Ot.test(e.trim())}function U(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return r.is_error===!0||r.providerTerminalError===!0||typeof r.subtype=="string"&&/^error(?:_|$)/.test(r.subtype)}var Ot,B=l(()=>{"use strict";Ot=/^(?:provider authentication failed:\s*)?(?:(?:Failed to authenticate|authentication (?:failed|error))(?::\s*[^\n.!?]+)?|OAuth session expired and could not be refreshed)[.!]?$/i});function ne(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function It(e){if(!e)return;let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0;if(!((r===void 0||r<0)&&(t===void 0||t<0)))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{}}}function Le(e){if(e.event==="step_update"&&ne(e.step_update)){let s=e.step_update,i=s.step_type==="tool"&&typeof s.tool_name=="string"&&s.tool_name.trim()?s.tool_name.trim():void 0,a=typeof s.text_delta=="string"?s.text_delta:void 0;return!i&&a===void 0?null:{...i?{currentTool:i}:{},...a!==void 0?{textDelta:a}:{}}}if(e.event!=="result"||!ne(e.result))return null;let r=e.result,t=typeof r.status=="string"?r.status.toUpperCase():"";if(t!=="SUCCESS"&&t!=="ERROR")return null;let n=ne(r.usage)?It(r.usage):void 0;if(t==="ERROR"){let s=typeof r.error=="string"&&r.error.trim()?r.error.trim():"antigravity cli result error";return{...n?{usage:n}:{},terminal:{ok:!1,finalResult:null,error:s}}}let o=typeof r.response=="string"?r.response.trim():"";return{...n?{usage:n}:{},terminal:{ok:!0,finalResult:o||"completed",error:null}}}var He=l(()=>{"use strict"});function oe(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function je(){return{assistantText:""}}function Pt(e,r){if(!(r.role!=="assistant"||typeof r.content!="string")){if(r.delta===!0){e.assistantText+=r.content;return}e.assistantText=r.content}}function Tt(e){let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0,o=(oe(e.models)?Object.keys(e.models):[]).find(s=>s.trim())?.trim();if(!(r===void 0&&t===void 0&&!o))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{},...o?{model:o}:{}}}function Kt(e){return e.type!=="result"||e.status!=="success"&&e.status!=="error"?!1:typeof e.result!="string"}function Ye(e,r){if(e.type==="message"&&(e.role==="assistant"||e.role==="user"))return Pt(r,e),{};if(e.type==="tool_use"&&typeof e.tool_name=="string"&&e.tool_name.trim())return{currentTool:e.tool_name.trim()};if(!Kt(e))return null;let t=oe(e.stats)?Tt(e.stats):void 0;if(e.status==="error"){let o=oe(e.error)&&typeof e.error.message=="string"?e.error.message:"gemini cli result error";return{...t?{usage:t}:{},terminal:{ok:!1,finalResult:null,error:o}}}let n=r.assistantText.trim();return{...t?{usage:t}:{},terminal:{ok:!0,finalResult:n||"completed",error:null}}}var Ve=l(()=>{"use strict"});import{existsSync as Nt,readFileSync as Wt}from"node:fs";function Ut(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function Bt(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 Dt(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",U(r)&&(e.providerTerminalError=!0,e.error=String(r.result||r.api_error_status||"stream result error"))}function x(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function Mt(e){let r=e.usage;return r&&typeof r=="object"&&!Array.isArray(r)?r:null}function Ft(e){if(typeof e.model=="string"&&e.model.trim())return e.model.trim();let r=e.modelUsage;if(r&&typeof r=="object"&&!Array.isArray(r)){let t=Object.keys(r)[0];if(t?.trim())return t.trim()}}function $t(e,r){let t=Mt(r);if(!t)return;let n=x(t.input_tokens)??x(t.inputTokens)??x(t.prompt_tokens),o=x(t.output_tokens)??x(t.outputTokens)??x(t.completion_tokens);if(n===void 0&&o===void 0)return;let s=Ft(r)??e.usage?.model;e.usage={...n!==void 0?{inputTokens:n}:{},...o!==void 0?{outputTokens:o}:{},...s?{model:s}:{}}}function Lt(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 u=a,f=typeof u.exitCode=="number"?u.exitCode:0;return{command:s,exitCode:f,stdout:typeof u.stdout=="string"?u.stdout:"",stderr:typeof u.stderr=="string"?u.stderr:"",interleaved:typeof u.interleavedOutput=="string"?u.interleavedOutput:""}}function Ht(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,usage:null};if(!Nt(e))return r;let t=Wt(e,"utf8").split(`
7
+ `).filter(Boolean),n=null,o=je();for(let s of t){let i=I(s);if(!i||typeof i!="object"||Array.isArray(i))continue;if(i.type==="turn.started"&&(n=null,r.finalResult=null),i.type==="item.completed"){let d=i.item;if(d&&typeof d=="object"&&!Array.isArray(d)){let p=d;p.type==="agent_message"&&typeof p.text=="string"&&p.text.trim()&&(n=p.text)}}i.type==="turn.completed"&&n&&!r.providerTerminalError&&(r.finalResult=n,n=null);let a=Ut(i);if(a&&(r.firstEventAt||=a,r.lastEventAt=a),i.type==="stream_event"&&i.event&&typeof i.event=="object"&&i.event.type==="content_block_start"){let d=i.event.content_block;d?.type==="tool_use"&&(r.currentTool=String(d.name||"tool"))}if(i.type==="assistant"&&i.message&&typeof i.message=="object"){let d=i.message.content;if(Array.isArray(d)){let p=d.find(h=>h?.type==="tool_use");p&&(r.currentTool=String(p.name||r.currentTool))}}if(i.type==="tool_call"&&i.subtype==="started"){let d=i.tool_call&&typeof i.tool_call=="object"&&!Array.isArray(i.tool_call)?i.tool_call:void 0,p=Bt(d);p&&(r.currentTool=p)}let u=Lt(i);u&&Ht(r,Fe({command:u.command,exitCode:u.exitCode,stdout:u.stdout,stderr:u.stderr,interleavedOutput:u.interleaved}));let f=Le(i),m=f?null:Ye(i,o),c=f??m;if(c?.currentTool&&(r.currentTool=c.currentTool),c?.usage&&(r.usage={...r.usage??{},...c.usage}),c?.terminal?c.terminal.ok?r.finalResult=c.terminal.finalResult:(r.finalResult=null,r.providerTerminalError=!0,r.error=c.terminal.error):i.type==="result"&&Dt(r,i),i.type==="turn.failed"){n=null,r.finalResult=null,r.providerTerminalError=!0;let d=i.error;r.error=typeof d?.message=="string"?d.message:"provider turn failed"}$t(r,i)}return r}var ze=l(()=>{"use strict";$e();g();B();He();Ve()});function Je(e,r=240){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function se(e){let r=(e??"").trim();if(!r)return null;if(C(r))return{blocked:!0,reason:`provider authentication failed: ${Je(r)}`};for(let t of jt)if(t.test.test(r))return{blocked:!0,reason:`${t.label}: ${Je(r)}`};return null}var jt,qe=l(()=>{"use strict";B();jt=[{test:/(?:claude provider refuses to spawn: worker prompt is empty after argv assembly|Input must be provided (?:either )?through stdin or as a prompt argument)/i,label:"provider prompt delivery failed"},{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"},{test:/\b(?:out of usage|increase limits?|switch to auto|ask your admin to increase your limit|usage limits?|quota exceeded|insufficient_quota|credits? exhausted|billing|payment required)\b/i,label:"provider quota exhausted"}]});function Xe(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Yt(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 Vt(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:Xe(e.head)}function Gt(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 Ze(e){if(e.alive||Yt(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,t=Xe(e.headCommit)??Vt(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:Gt(s,r,t)}}var Qe=l(()=>{"use strict"});var k=l(()=>{"use strict"});var zt,ko,Jt,bo,er=l(()=>{"use strict";zt=["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","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],ko=new Set(zt),Jt=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],bo=new Set(Jt)});import{spawnSync as tr}from"node:child_process";function qt(e,r,t={}){let n=tr("git",r,Z({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=Xt(e,r,n);if(t.throwError)throw new Error(o);X(o)}return n.stdout||""}function Xt(e,r,t){let n=typeof t.stderr=="string"&&t.stderr.trim()||typeof t.stdout=="string"&&t.stdout.trim()||t.error?.message||`exit ${t.status??"unknown"}`;return`git ${r.join(" ")} failed in ${e}: ${n}`}function nr(e){return qt(e,["status","--short"],{allowFailure:!0}).split(`
8
+ `).map(r=>r.trim()).filter(Boolean)}function A(e,r){try{let t=tr("git",r,Z({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 rr(e,r,t){let n=A(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 or(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 ie(n,"missing worktree path");let s=A(e,["rev-parse","HEAD"]);if(s.status!==0)return ie(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let d=A(e,["rev-parse",n]);if(d.status!==0)return ie(n,d.error||d.stderr||d.stdout||`failed to resolve ${n}`,s.stdout.trim());i=d.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 u=rr(e,i,a),f=rr(e,a,i),m=u.error||f.error||void 0;if(u.isAncestor==null||f.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:f.isAncestor,relation:"unknown",...m?{error:m}:{}};let c=u.isAncestor?"ahead":f.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:f.isAncestor,relation:c,...m?{error:m}:{}}}function ie(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var M=l(()=>{"use strict";k();g();er()});function w(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Zt(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 Qt(e){if(w(e.headCommit)||w(e.prUrl)||w(e.artifactBundlePath)||w(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&w(r.head))}function sr(e){return Zt(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:Qt(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 ir(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var ar=l(()=>{"use strict"});function ae(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 lr(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function F(e){let r=e.trim();if(!r)return null;let t=ae(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let m=ae(s[1]??"");m&&n.push(m)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let m=ae(r.slice(i,a+1));m&&n.push(m)}if(n.length===0)return null;let u=n[n.length-1],f=lr(u);for(let m of n){let c=lr(m);c>f&&(u=m,f=c)}return u}var le=l(()=>{"use strict"});function ur(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 cr(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function en(e){return new Set(e.map(r=>cr(ur(r)??r)).filter(Boolean))}function dr(e,r,t){let n=ur(e)??e;if(!n)return"unrelated";let o=cr(n);return en(r).has(o)?"contract":t?(t.outcome==="skipped"||t.outcome==="blocked")&&t.reason?.trim()?"support":(t.outcome==="merged","unrelated"):"unrelated"}var mr=l(()=>{"use strict"});function S(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function rn(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]}`:S(e)}function $(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function fr(e){let r=null;if(typeof e=="string"){let o=F(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=S(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||n.push({prUrl:i,outcome:a,mergeCommit:S(s.mergeCommit??s.merge_commit),reason:S(s.reason)})}return n}function pr(e,r){let t=[],n=b(S(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 gr(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(!rn(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(S(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?b(r.targetPrUrls[0]):null):null;if(s){let c=pr(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=fr(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=fr(n),a=new Map(i.map(c=>[$(c.prUrl),c])),u=new Set(r.targetPrUrls.map(c=>$(b(c)??c)).filter(Boolean)),f=pr(t,n);if(r.landingOnly)for(let c of f){let d=a.get($(c)),p=dr(c,r.targetPrUrls,d);if(!(p==="contract"||p==="support"))return u.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 m=[];for(let c of r.targetPrUrls){let d=$(b(c)??c),p=a.get(d);if(!p){m.push(d);continue}p.outcome!=="merged"&&!p.reason?.trim()&&m.push(d)}return m.length>0?{blocked:!0,reason:m.every(c=>a.has(c))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${m.join(", ")}`}:{blocked:!1}}function hr(e){if(e.blocked)return e.detail??e.reason}var yr=l(()=>{"use strict";le();mr()});function nn(e){let r=Date.now();if(e.providerTerminalError||U(e.finalResult)||e.finalResult&&e.error?.trim()||C(e.error)||C(e.finalResult)){let o=e.error||(typeof e.finalResult=="string"?e.finalResult:"provider terminal error");return{state:"blocked",reason:se(o)?.reason??`provider terminal error: ${o}`}}if(e.completionBlocker&&!kr(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&sn(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=sr(o);if(s.blocked){let i=ir(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=gr({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=hr(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(on(e))return{state:"done",reason:"empty abandoned worker record"};let o=se(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Ze({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>tn)return{state:"needs_attention",reason:`no first stream event ${Q(t)}s after start`};let n=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(n)&&r-n>L?{state:"stale",reason:`no log/event/heartbeat activity for ${Q(n)}s`}:{state:"ok",reason:"recent activity"}}function kr(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function on(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 sn(e){let r=null;if(typeof e=="string"?r=F(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 an(e,r,t){let n=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&n!==void 0&&n!==null?n:r||(n??we(t))}function br(e,r={}){let t=Ge(e.stdoutPath),n=Oe(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=an(e,t.finalResult,n),i=o?!1:K(e.pid),a=P(e.stdoutPath),u=P(e.stderrPath),f=P(e.heartbeatPath),m=nr(e.worktreePath),c=or(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),d=Ce([t.lastEventAt,n.lastHeartbeatAt,T(e.stdoutPath),T(e.stderrPath),T(e.heartbeatPath)]),p=t.error||!i&&!s&&ve(e.stderrPath,10).trim()||void 0,h=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,y=kr(h)?null:h,Qr=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,J=nn({alive:i,finalResult:s,firstEventAt:t.firstEventAt,stdoutBytes:a,stderrBytes:u,heartbeatBytes:f,lastActivityAt:d,heartbeatBlocker:n.heartbeatBlocker,startedAt:e.startedAt,error:p,providerTerminalError:t.providerTerminalError,changedFiles:m,gitAncestry:c,completionBlocker:y,landingContract:Qr,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),et=y||J.state==="blocked"?"blocked":o||J.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:et,attention:J,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:u,heartbeatBytes:f,firstEventAt:t.firstEventAt,lastEventAt:t.lastEventAt,lastActivityAt:d,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:p,providerTerminalError:t.providerTerminalError,changedFiles:m,gitAncestry:c,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.provider??e.orchestrationAudit?.provider??null,usage:t.usage??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 Rr(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function xr(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var tn,L,O=l(()=>{"use strict";Ie();ze();B();qe();Qe();M();ar();yr();le();g();tn=18e4,L=6e5});var vr=l(()=>{"use strict";M()});var ue=l(()=>{"use strict";M();k();vr()});var ce=l(()=>{"use strict";g()});var R=l(()=>{"use strict"});var H=l(()=>{"use strict"});var Cr=l(()=>{"use strict"});var us,cs,de=l(()=>{"use strict";us=25*1024*1024*1024,cs=12*1024*1024*1024});var gs,hs,Ar=l(()=>{"use strict";de();gs=5*1024*1024*1024,hs=10*1024*1024*1024});var Ss,_s,me=l(()=>{"use strict";Ar();de();Ss=30*1024*1024*1024,_s=15*1024*1024*1024});var wr=l(()=>{"use strict";j();g()});var Or=l(()=>{"use strict";O()});var fn,pn,Tr=l(()=>{"use strict";Cr();_();R();H();Y();me();j();wr();Or();g();fn=500*1024*1024,pn=4*1024*1024*1024});var Y=l(()=>{"use strict";Tr()});import{homedir as hn}from"node:os";import yn from"node:path";var Kr,ge=l(()=>{"use strict";Kr=yn.join(hn(),".kynver",".env")});var Nr=l(()=>{"use strict"});var Wr=l(()=>{"use strict";Nr()});var Ur=l(()=>{"use strict"});var Br=l(()=>{"use strict";g()});var he=l(()=>{"use strict";Wr();Ur();Br()});var Dr=l(()=>{"use strict"});var Mr=l(()=>{"use strict";Dr()});var V=l(()=>{"use strict";ge();k();_();he();Mr()});var Fr=l(()=>{"use strict";R();R()});var $r=l(()=>{"use strict";ge();he();V()});var ye=l(()=>{"use strict"});var Lr=l(()=>{"use strict";g()});import _n from"node:path";var zi,ke=l(()=>{"use strict";k();Lr();zi=_n.join(".openclaw","harness")});var z=l(()=>{"use strict";_();R();H();Y();ke()});var jr=l(()=>{"use strict";ue();R();Fr();_();V();$r();ce();ye();z()});var In,ga,Yr=l(()=>{"use strict";In=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],ga=In.join("|")});var Vr=l(()=>{"use strict";k()});var Gr=l(()=>{"use strict";Vr()});var zr=l(()=>{"use strict"});var Jr=l(()=>{"use strict";zr()});import{homedir as Pn,totalmem as Ha}from"node:os";import be from"node:path";var qr,sl,il,al,ll,_=l(()=>{"use strict";ue();k();ce();R();H();Y();me();V();jr();Yr();z();Gr();ye();Jr();qr=be.join(Pn(),".kynver"),sl=be.join(qr,"config.json"),il=be.join(qr,"credentials"),al=500*1024*1024,ll=4*1024*1024*1024});var Xr=l(()=>{"use strict";_();ke();z();g()});var j=l(()=>{"use strict";Xr();g()});O();var Sr="kynver-harness:",ln="@runner:";function _r(e){return e?.trim()?e.trim():null}function un(e){let r=_r(e);if(!r?.startsWith(Sr))return null;let t=r.slice(Sr.length),n=t.indexOf(ln);return n>=0?t.slice(0,n).trim()||null:t.trim()||null}function Er(e,r){let t=_r(r);return t?un(e)===t:!1}O();g();function cn(e){let{worker:r,status:t,taskLease:n}=e,o=n?.leaseOwner??null;if(r.dispatched&&n){if(n.status==="running"&&o&&!Er(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>L?{health:"stale",reason:`heartbeat older than ${Math.floor(L/1e3)}s`}:t.alive&&r.pid&&!K(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"}}j();function Zr(e){return!!e.completionReportedAt?.trim()}O();function Tn(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"),Zr(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"),xr(t)&&n.push(t.attention.reason||"landing gate blocked");let o=Rr(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{Tn as assessAutoCompleteEligibility,cn as classifyWorkerHealth,br as computeWorkerStatus};
@@ -1,2 +1,2 @@
1
- var o=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function J(e){let r=e[Wr];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function _(e,r={}){return wr.has(e)?!0:Tr.has(e)||r.operatorAllow?.has(e)||Nr.some(t=>e.endsWith(t))?!1:Pr.some(t=>e.endsWith(t))}function _e(e){let r=J(e);return Object.keys(e).filter(t=>_(t,{operatorAllow:r})).sort()}function ke(e){let r=J(e);return r.size===0?[]:Object.keys(e).filter(t=>r.has(t)&&!_(t,{operatorAllow:r})&&_(t)).sort()}function A(e){let r=J(e),t={...e};for(let n of Object.keys(t))_(n,{operatorAllow:r})&&delete t[n];return t}function Kr(e){let r=_e(e),t=ke(e);return{forbiddenPresent:r,safe:r.length===0,...t.length?{operatorAllowedActive:t}:{}}}var Ar,wr,Pr,Ir,Tr,Nr,Wr,w=o(()=>{"use strict";Ar=["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","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],wr=new Set(Ar),Pr=["_SECRET","_API_KEY","_KEK","_KEY","_TOKEN","_PASSWORD","_PASSPHRASE","_SALT"],Ir=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Tr=new Set(Ir),Nr=["_PUBLIC_KEY"],Wr="KYNVER_WORKER_ENV_ALLOW"});var g=o(()=>{"use strict"});var Ae=o(()=>{"use strict"});function Q(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=o(()=>{"use strict";Ae()});var T=o(()=>{"use strict";g();a();w()});var we=o(()=>{"use strict";T()});var ee=o(()=>{"use strict";T();g();we()});var re=o(()=>{"use strict";a()});var m=o(()=>{"use strict"});var N=o(()=>{"use strict"});var Pe=o(()=>{"use strict"});var Vn,Yn,te=o(()=>{"use strict";Vn=25*1024*1024*1024,Yn=12*1024*1024*1024});var Xn,Qn,Ie=o(()=>{"use strict";te();Xn=5*1024*1024*1024,Qn=10*1024*1024*1024});var oo,io,ne=o(()=>{"use strict";Ie();te();oo=30*1024*1024*1024,io=15*1024*1024*1024});var Ne=o(()=>{"use strict";a()});import Qr from"node:path";var go,oe=o(()=>{"use strict";g();Ne();go=Qr.join(".openclaw","harness")});var K=o(()=>{"use strict";f();m();N();D();oe()});var De=o(()=>{"use strict";f();oe();K();a()});var se=o(()=>{"use strict";De();a()});var Me=o(()=>{"use strict";se();a()});var Ue=o(()=>{"use strict"});var Be=o(()=>{"use strict";Ue();a()});var Le=o(()=>{"use strict"});var Fe=o(()=>{"use strict";Le()});var U=o(()=>{"use strict"});var $e=o(()=>{"use strict"});var He=o(()=>{"use strict"});var je=o(()=>{"use strict";Fe();a();U();$e();He()});var Ve=o(()=>{"use strict";U()});var Ye=o(()=>{"use strict"});var Ge=o(()=>{"use strict"});var ae=o(()=>{"use strict"});var qe=o(()=>{"use strict"});var Je=o(()=>{"use strict";ae();qe()});var ze=o(()=>{"use strict";Be();je();U();Ve();Ye();T();Ge();Je();ae();a()});var Xe=o(()=>{"use strict";ze()});var ut,ct,Qe=o(()=>{"use strict";Pe();f();m();N();D();ne();se();Me();Xe();a();ut=500*1024*1024,ct=4*1024*1024*1024});var D=o(()=>{"use strict";Qe()});import{homedir as dt}from"node:os";import pt from"node:path";var Ze,le=o(()=>{"use strict";Ze=pt.join(dt(),".kynver",".env")});var er=o(()=>{"use strict"});var rr=o(()=>{"use strict";er()});var tr=o(()=>{"use strict"});var nr=o(()=>{"use strict";a()});var ue=o(()=>{"use strict";rr();tr();nr()});var or=o(()=>{"use strict"});var ir=o(()=>{"use strict";or()});var B=o(()=>{"use strict";le();g();f();ue();ir()});var sr=o(()=>{"use strict";m();m()});var ar=o(()=>{"use strict";le();ue();B()});var ce=o(()=>{"use strict"});var lr=o(()=>{"use strict";ee();m();sr();f();B();ar();re();ce();K()});function k(e){let r=e.trim().toLowerCase();return kt[r]??r}var ur,_t,kt,L=o(()=>{"use strict";ur=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],_t=ur.join("|"),kt={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{homedir as bt,totalmem as Na}from"node:os";import de from"node:path";var cr,Ga,qa,Ja,za,f=o(()=>{"use strict";ee();g();re();m();N();D();ne();B();lr();L();K();ce();cr=de.join(bt(),".kynver"),Ga=de.join(cr,"config.json"),qa=de.join(cr,"credentials"),Ja=500*1024*1024,za=4*1024*1024*1024});w();w();var z="KYNVER_NO_PROD_DB_CREDENTIALS",Dr=["KYNVER_ENV_FILE"],Mr=new Set(["1","true","yes","on"]);function be(e){let r=e[z]?.trim().toLowerCase();return r!==void 0&&Mr.has(r)}function d(e,r={}){let t=A(e);if(!r.reviewWorker)return t;let n={...t,[z]:"1"};for(let i of Dr)delete n[i];return n}var xe=["DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL"];function Ur(e,r={}){let t=d(e,r),n=Object.keys(t).filter(u=>u.endsWith("_SECRET")||u.endsWith("_API_KEY")||xe.includes(u)),i=xe.every(u=>t[u]===void 0),s=r.reviewWorker?t.KYNVER_ENV_FILE===void 0:!0,l=be(t);return{reviewMode:!!r.reviewWorker,noProdFlagPresent:r.reviewWorker?l:!0,forbiddenKeysAfterScrub:n.sort(),productionDbKeysAbsent:i,envFilePointerStripped:s,safe:i&&n.length===0&&s&&(!r.reviewWorker||l)}}var Br="expert-lane-pr-review:",Lr="plan-review-task",Fr="scheduledjob:",P=new Set(["lorentz","dalton","rhea","sentinel"]);function $r(e){if(!e)return null;let r=e.trim().toLowerCase();return r.length?r:null}function X(e){return/\b(deep[- ]?review|plan review|review .*plan|security review|red[- ]team|lb\d+|runtime verification)\b/.test(e)}function Hr(e,r){return e.startsWith("factory:")?e.includes("lb")||X(r):!1}function jr(e){let r=(e.executorRef??"").toLowerCase(),t=(e.title??"").toLowerCase(),n=(e.description??"").toLowerCase(),i=`${t}
2
- ${n}`,s=$r(e.personaSlug);return r.startsWith("harness-lane:blocked-lane-unblock:")||r==="lane:over_attempt_recovery"||r.startsWith("next-action-fix:")||r.startsWith("next-action-landing:")||r.startsWith("code-work-lane-chain:release:")?!1:!!(r.startsWith(Br)||r===Lr||r.startsWith("daemon-review:")||s&&P.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||Hr(r,i)||X(i))||r.startsWith(Fr)&&e.parentTaskId&&s&&P.has(s)||e.planId&&!e.parentTaskId&&s&&P.has(s)&&X(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&P.has(s))}var Vr=/^claude[-_]/i,Yr=/^(?:opus|sonnet|haiku)\b/i;function Ee(e){let r=e.trim();return Vr.test(r)||Yr.test(r)}function Se(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Ce(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Oe(e){return e.trim().toLowerCase().startsWith("gemini-")}function Gr(e){return Se(e)?"codex":Ee(e)?"claude":Oe(e)?"gemini":(Ce(e),"cursor")}function qr(e){if(!e.startsWith("provider:"))return null;let r=e.slice(9),t=r.indexOf(":"),n=(t>=0?r.slice(0,t):r).trim().toLowerCase(),i=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:i,rule:i?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:i,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:i,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:i,rule:i?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function Jr(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(i=>i.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ee(n)||Se(n)||Ce(n)||Oe(n)?{lane:t,model:n,provider:Gr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function I(e){let r=typeof e=="string"?e.trim():"";return r?qr(r)??Jr(r):null}f();a();a();var mr="kynver",fr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],wt=fr.map(e=>`mcp__${mr}__${e}`);a();a();var yu=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5";function It(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5"}var Tt=It();a();var Gu=600*1e3;a();var gc=600*1e3;var gr="composer-2.5";L();L();var p="cursor",Dt=new Set(["claude","opus","anthropic"]),Mt=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function b(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function c(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return Dt.has(r)?!0:r.includes("claude")||r.includes("opus")}function pe(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&c(r))return!0;let t=b(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=I(b(e,"executorRef"));if(n?.provider&&c(n.provider)||n?.model&&c(Ut(n.model)))return!0;let i=b(e,"description");if(Mt.some(l=>l.test(i)))return!0;let s=b(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function Ut(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Bt(e,r){return{provider:p,model:gr,rule:`policy:cursor_default${r}`,requestedModel:e}}var Lt=["explicit:","executor_ref:","factory:","task:"];function Ft(e){return Lt.some(r=>e.startsWith(r))}function me(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||I(b(e,"executorRef"))?.provider?!0:pe(e)}function hr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&c(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ft(r.rule)||me(t)||!c(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Bt(r.model,i)}function $t(e,r=p){let t=e?.trim();return t?k(t):r}function Ht(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(p)?[...new Set(r.map(t=>c(t)?p:t))]:r.every(t=>c(t))?[p]:r}var jt=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,Vt=/\b(npm run build\b|next build\b)\b/i,Yt=/\b(vercel (build|deploy|--prod))\b/i,Gt=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function fe(e){let r=e.trim();return r?Gt.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:Yt.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:Vt.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:jt.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 j="heavy_verification_token_required";import{spawnSync as pn}from"node:child_process";a();import{closeSync as Zt,existsSync as S,mkdirSync as en,openSync as rn,readdirSync as _r,readFileSync as tn,statSync as nn,unlinkSync as kr,writeFileSync as on}from"node:fs";import ye from"node:path";import{mkdirSync as Jt}from"node:fs";import{tmpdir as zt}from"node:os";import V from"node:path";import{homedir as qt,tmpdir as Lc}from"node:os";import yr from"node:path";function vr(){let e=process.env.KYNVER_STATE_ROOT;return e?yr.resolve(e):yr.join(qt(),".kynver","state")}function Xt(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function Qt(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?V.resolve(e):Xt()?V.join(zt(),"kynver","state","heavy-verification"):V.join(vr(),"heavy-verification")}function ge(){return V.join(Qt(),"slots")}function E(){let e=ge();return Jt(e,{recursive:!0}),e}var C=120*6e4,Rr=1;function sn(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function G(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function Y(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?sn(e,Rr):Rr}function an(e){return`slot-${e}`}function ln(e,r=ge()){return ye.join(r,`${e}.json`)}function ve(e){if(!S(e))return null;try{let r=JSON.parse(tn(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 xr(e,r=C){if(!e||!Q(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function br(e,r){let t=ve(e);if(t)return xr(t,r);if(!S(e))return!0;try{return Date.now()-nn(e).mtimeMs>r}catch{return!0}}function un(e,r){if(br(e,r))try{kr(e)}catch{}}function cn(e){return en(e,{recursive:!0}),e}function Re(e={}){let r=cn(e.slotsDir??E()),t=e.staleMs??C,n=0;for(let i of _r(r)){if(!i.endsWith(".json"))continue;let s=ye.join(r,i),l=S(s);un(s,t),l&&!S(s)&&(n+=1)}return n}function dn(e={}){let r=e.slotsDir??E(),t=e.staleMs??C;Re({slotsDir:r,staleMs:t});let n=[];for(let i of _r(r)){if(!i.endsWith(".json"))continue;let s=ve(ye.join(r,i));s&&!xr(s,t)&&n.push(s)}return n}function he(e={}){return dn(e).length}function O(e,r={}){if(G())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:Y(),reason:null};let t=r.slotsDir??E(),n=r.staleMs??C,i=r.maxSlots??Y();Re({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let u=an(l),v=ln(u,t),Sr=ve(v);if(br(v,n))try{kr(v)}catch{}else if(Sr||S(v))continue;let Cr={slotId:u,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=rn(v,"wx");on(R,JSON.stringify(Cr,null,2),"utf8"),Zt(R);let Or=he({slotsDir:t,staleMs:n});return{admitted:!0,slotId:u,activeSlots:Or,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=he({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function q(e,r={}){if(G())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:Y(),reason:null};let t=r.slotsDir??E(),n=r.staleMs??C,i=r.maxSlots??Y();Re({slotsDir:t,staleMs:n});let s=he({slotsDir:t,staleMs:n}),l=s<i;return{admitted:l,slotId:null,activeSlots:s,maxSlots:i,reason:l?null:`heavy verification at capacity (${s}/${i} slots); waiting for ${e}`}}function mn(e){e<=0||pn(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Er(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=O(e,n);for(;!s.admitted&&Date.now()<i;)mn(Math.min(t,i-Date.now())),s=O(e,n);return s}function fn(e,r={}){let t=fe(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...q(e),slotId:null}};if(G())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...q(e),slotId:null}};let n=r.waitMs??0,i=n>0?Er(e,n,r.pollMs):O(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:j,commandClass:t.commandClass,reason:t.reason??i.reason??j,verificationGate:i}}export{p as DEFAULT_WORKER_PROVIDER,j as HEAVY_VERIFICATION_TOKEN_REQUIRED,z as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,Ur as auditReviewWorkerCredentialScope,Kr as auditWorkerEnv,d as buildWorkerSpawnEnv,fe as classifyHeavyShellCommand,hr as enforceCursorWorkerProvider,fn as gateWorkerShellCommand,c as isClaudeFamilyProvider,_ as isForbiddenWorkerEnvKey,jr as isHarnessExpertReviewWorker,be as isNoProdCredentialReviewEnvironment,_e as listForbiddenWorkerEnvKeys,ke as listOperatorAllowedWorkerEnvKeys,k as normalizeWorkerProviderName,Ht as preferCursorExecutor,$t as resolveConfiguredWorkerProvider,A as scrubWorkerEnv,pe as taskAllowsClaudeWorker,me as taskExpressesWorkerProviderPreference};
1
+ var o=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function z(e){let r=e[Ur];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function k(e,r={}){return Nr.has(e)?!0:Dr.has(e)||r.operatorAllow?.has(e)||Mr.some(t=>e.endsWith(t))?!1:Kr.some(t=>e.endsWith(t))}function ke(e){let r=z(e);return Object.keys(e).filter(t=>k(t,{operatorAllow:r})).sort()}function _e(e){let r=z(e);return r.size===0?[]:Object.keys(e).filter(t=>r.has(t)&&!k(t,{operatorAllow:r})&&k(t)).sort()}function A(e){let r=z(e),t={...e};for(let n of Object.keys(t))k(n,{operatorAllow:r})&&delete t[n];return t}function Br(e){let r=ke(e),t=_e(e);return{forbiddenPresent:r,safe:r.length===0,...t.length?{operatorAllowedActive:t}:{}}}var Tr,Nr,Kr,Wr,Dr,Mr,Ur,w=o(()=>{"use strict";Tr=["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","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],Nr=new Set(Tr),Kr=["_SECRET","_API_KEY","_KEK","_KEY","_TOKEN","_PASSWORD","_PASSPHRASE","_SALT"],Wr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Dr=new Set(Wr),Mr=["_PUBLIC_KEY"],Ur="KYNVER_WORKER_ENV_ALLOW"});var m=o(()=>{"use strict"});var Ae=o(()=>{"use strict"});function Z(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=o(()=>{"use strict";Ae()});var N=o(()=>{"use strict";m();a();w()});var we=o(()=>{"use strict";N()});var ee=o(()=>{"use strict";N();m();we()});var re=o(()=>{"use strict";a()});var f=o(()=>{"use strict"});var K=o(()=>{"use strict"});var Pe=o(()=>{"use strict"});var zn,Xn,te=o(()=>{"use strict";zn=25*1024*1024*1024,Xn=12*1024*1024*1024});var to,no,Ie=o(()=>{"use strict";te();to=5*1024*1024*1024,no=10*1024*1024*1024});var co,uo,ne=o(()=>{"use strict";Ie();te();co=30*1024*1024*1024,uo=15*1024*1024*1024});var Ne=o(()=>{"use strict";a()});import tt from"node:path";var ko,oe=o(()=>{"use strict";m();Ne();ko=tt.join(".openclaw","harness")});var D=o(()=>{"use strict";g();f();K();M();oe()});var De=o(()=>{"use strict";g();oe();D();a()});var se=o(()=>{"use strict";De();a()});var Me=o(()=>{"use strict";se();a()});var Ue=o(()=>{"use strict"});var Be=o(()=>{"use strict";Ue();a()});var Le=o(()=>{"use strict"});var Fe=o(()=>{"use strict";Le()});var B=o(()=>{"use strict"});var $e=o(()=>{"use strict"});var He=o(()=>{"use strict"});var Ve=o(()=>{"use strict";Fe();a();B();$e();He()});var je=o(()=>{"use strict";B()});var Ye=o(()=>{"use strict"});var Ge=o(()=>{"use strict"});var ae=o(()=>{"use strict"});var qe=o(()=>{"use strict"});var Je=o(()=>{"use strict";ae();qe()});var ze=o(()=>{"use strict";Be();Ve();B();je();Ye();N();Ge();Je();ae();a()});var Xe=o(()=>{"use strict";ze()});var mt,ft,Qe=o(()=>{"use strict";Pe();g();f();K();M();ne();se();Me();Xe();a();mt=500*1024*1024,ft=4*1024*1024*1024});var M=o(()=>{"use strict";Qe()});import{homedir as gt}from"node:os";import ht from"node:path";var Ze,le=o(()=>{"use strict";Ze=ht.join(gt(),".kynver",".env")});var er=o(()=>{"use strict"});var rr=o(()=>{"use strict";er()});var tr=o(()=>{"use strict"});var nr=o(()=>{"use strict";a()});var ce=o(()=>{"use strict";rr();tr();nr()});var or=o(()=>{"use strict"});var ir=o(()=>{"use strict";or()});var L=o(()=>{"use strict";le();m();g();ce();ir()});var sr=o(()=>{"use strict";f();f()});var ar=o(()=>{"use strict";le();ce();L()});var ue=o(()=>{"use strict"});var lr=o(()=>{"use strict";ee();f();sr();g();L();ar();re();ue();D()});function _(e){let r=e.trim().toLowerCase();return Ct[r]??r}var cr,Et,Ct,F=o(()=>{"use strict";cr=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],Et=cr.join("|"),Ct={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var ur=o(()=>{"use strict";m()});var dr=o(()=>{"use strict";ur()});var pr=o(()=>{"use strict"});var mr=o(()=>{"use strict";pr()});import{homedir as At,totalmem as Za}from"node:os";import de from"node:path";var fr,gl,hl,yl,vl,g=o(()=>{"use strict";ee();m();re();f();K();M();ne();L();lr();F();D();dr();ue();mr();fr=de.join(At(),".kynver"),gl=de.join(fr,"config.json"),hl=de.join(fr,"credentials"),yl=500*1024*1024,vl=4*1024*1024*1024});w();w();var X="KYNVER_NO_PROD_DB_CREDENTIALS",Lr=["KYNVER_ENV_FILE"],Fr=new Set(["1","true","yes","on"]);function be(e){let r=e[X]?.trim().toLowerCase();return r!==void 0&&Fr.has(r)}function d(e,r={}){let t=A(e);if(!r.reviewWorker)return t;let n={...t,[X]:"1"};for(let i of Lr)delete n[i];return n}var xe=["DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL"];function $r(e,r={}){let t=d(e,r),n=Object.keys(t).filter(c=>c.endsWith("_SECRET")||c.endsWith("_API_KEY")||xe.includes(c)),i=xe.every(c=>t[c]===void 0),s=r.reviewWorker?t.KYNVER_ENV_FILE===void 0:!0,l=be(t);return{reviewMode:!!r.reviewWorker,noProdFlagPresent:r.reviewWorker?l:!0,forbiddenKeysAfterScrub:n.sort(),productionDbKeysAbsent:i,envFilePointerStripped:s,safe:i&&n.length===0&&s&&(!r.reviewWorker||l)}}var Hr="expert-lane-pr-review:",Vr="plan-review-task",jr="scheduledjob:",P=new Set(["lorentz","dalton","rhea","sentinel"]);function Yr(e){if(!e)return null;let r=e.trim().toLowerCase();return r.length?r:null}function Q(e){return/\b(deep[- ]?review|plan review|review .*plan|security review|red[- ]team|lb\d+|runtime verification)\b/.test(e)}function Gr(e,r){return e.startsWith("factory:")?e.includes("lb")||Q(r):!1}function qr(e){let r=(e.executorRef??"").toLowerCase(),t=(e.title??"").toLowerCase(),n=(e.description??"").toLowerCase(),i=`${t}
2
+ ${n}`,s=Yr(e.personaSlug);return r.startsWith("harness-lane:blocked-lane-unblock:")||r==="lane:over_attempt_recovery"||r.startsWith("next-action-fix:")||r.startsWith("next-action-landing:")||r.startsWith("code-work-lane-chain:release:")?!1:!!(r.startsWith(Hr)||r===Vr||r.startsWith("daemon-review:")||s&&P.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||Gr(r,i)||Q(i))||r.startsWith(jr)&&e.parentTaskId&&s&&P.has(s)||e.planId&&!e.parentTaskId&&s&&P.has(s)&&Q(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&P.has(s))}var Jr=/^claude[-_]/i,zr=/^(?:opus|sonnet|haiku)\b/i;function Se(e){let r=e.trim();return Jr.test(r)||zr.test(r)}function Ee(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Ce(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Oe(e){return e.trim().toLowerCase().startsWith("gemini-")}function Xr(e){return Ee(e)?"codex":Se(e)?"claude":Oe(e)?"gemini":(Ce(e),"cursor")}function Qr(e){if(!e.startsWith("provider:"))return null;let r=e.slice(9),t=r.indexOf(":"),n=(t>=0?r.slice(0,t):r).trim().toLowerCase(),i=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:i,rule:i?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:i,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:i,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:i,rule:i?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function Zr(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(i=>i.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Se(n)||Ee(n)||Ce(n)||Oe(n)?{lane:t,model:n,provider:Xr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function I(e){let r=typeof e=="string"?e.trim():"";return r?Qr(r)??Zr(r):null}g();a();a();var yr="kynver",vr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Kt=vr.map(e=>`mcp__${yr}__${e}`);a();a();var Bc=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5";function Dt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5"}var Mt=Dt();a();var gu=600*1e3;a();var Mu=600*1e3;var Rr="composer-2.5";F();F();var p="cursor",Ft=new Set(["claude","opus","anthropic"]),$t=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function b(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function u(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return Ft.has(r)?!0:r.includes("claude")||r.includes("opus")}function pe(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&u(r))return!0;let t=b(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=I(b(e,"executorRef"));if(n?.provider&&u(n.provider)||n?.model&&u(Ht(n.model)))return!0;let i=b(e,"description");if($t.some(l=>l.test(i)))return!0;let s=b(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function Ht(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Vt(e,r){return{provider:p,model:Rr,rule:`policy:cursor_default${r}`,requestedModel:e}}var jt=["explicit:","executor_ref:","factory:","task:"];function Yt(e){return jt.some(r=>e.startsWith(r))}function me(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||I(b(e,"executorRef"))?.provider?!0:pe(e)}function kr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&u(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Yt(r.rule)||me(t)||!u(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Vt(r.model,i)}function Gt(e,r=p){let t=e?.trim();return t?_(t):r}function qt(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(p)?[...new Set(r.map(t=>u(t)?p:t))]:r.every(t=>u(t))?[p]:r}var Jt=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,zt=/\b(npm run build\b|next build\b)\b/i,Xt=/\b(vercel (build|deploy|--prod))\b/i,Qt=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function fe(e){let r=e.trim();return r?Qt.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:Xt.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:zt.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:Jt.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 j="heavy_verification_token_required";import{spawnSync as yn}from"node:child_process";a();import{closeSync as on,existsSync as E,mkdirSync as sn,openSync as an,readdirSync as Sr,readFileSync as ln,statSync as cn,unlinkSync as Er,writeFileSync as un}from"node:fs";import ye from"node:path";import{mkdirSync as en}from"node:fs";import{tmpdir as rn}from"node:os";import Y from"node:path";import{homedir as Zt,tmpdir as ld}from"node:os";import _r from"node:path";function xr(){let e=process.env.KYNVER_STATE_ROOT;return e?_r.resolve(e):_r.join(Zt(),".kynver","state")}function tn(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function nn(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?Y.resolve(e):tn()?Y.join(rn(),"kynver","state","heavy-verification"):Y.join(xr(),"heavy-verification")}function ge(){return Y.join(nn(),"slots")}function S(){let e=ge();return en(e,{recursive:!0}),e}var C=120*6e4,br=1;function dn(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function q(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function G(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?dn(e,br):br}function pn(e){return`slot-${e}`}function mn(e,r=ge()){return ye.join(r,`${e}.json`)}function ve(e){if(!E(e))return null;try{let r=JSON.parse(ln(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 Cr(e,r=C){if(!e||!Z(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function Or(e,r){let t=ve(e);if(t)return Cr(t,r);if(!E(e))return!0;try{return Date.now()-cn(e).mtimeMs>r}catch{return!0}}function fn(e,r){if(Or(e,r))try{Er(e)}catch{}}function gn(e){return sn(e,{recursive:!0}),e}function Re(e={}){let r=gn(e.slotsDir??S()),t=e.staleMs??C,n=0;for(let i of Sr(r)){if(!i.endsWith(".json"))continue;let s=ye.join(r,i),l=E(s);fn(s,t),l&&!E(s)&&(n+=1)}return n}function hn(e={}){let r=e.slotsDir??S(),t=e.staleMs??C;Re({slotsDir:r,staleMs:t});let n=[];for(let i of Sr(r)){if(!i.endsWith(".json"))continue;let s=ve(ye.join(r,i));s&&!Cr(s,t)&&n.push(s)}return n}function he(e={}){return hn(e).length}function O(e,r={}){if(q())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:G(),reason:null};let t=r.slotsDir??S(),n=r.staleMs??C,i=r.maxSlots??G();Re({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let c=pn(l),v=mn(c,t),wr=ve(v);if(Or(v,n))try{Er(v)}catch{}else if(wr||E(v))continue;let Pr={slotId:c,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=an(v,"wx");un(R,JSON.stringify(Pr,null,2),"utf8"),on(R);let Ir=he({slotsDir:t,staleMs:n});return{admitted:!0,slotId:c,activeSlots:Ir,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=he({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function J(e,r={}){if(q())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:G(),reason:null};let t=r.slotsDir??S(),n=r.staleMs??C,i=r.maxSlots??G();Re({slotsDir:t,staleMs:n});let s=he({slotsDir:t,staleMs:n}),l=s<i;return{admitted:l,slotId:null,activeSlots:s,maxSlots:i,reason:l?null:`heavy verification at capacity (${s}/${i} slots); waiting for ${e}`}}function vn(e){e<=0||yn(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Ar(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=O(e,n);for(;!s.admitted&&Date.now()<i;)vn(Math.min(t,i-Date.now())),s=O(e,n);return s}function Rn(e,r={}){let t=fe(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...J(e),slotId:null}};if(q())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...J(e),slotId:null}};let n=r.waitMs??0,i=n>0?Ar(e,n,r.pollMs):O(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:j,commandClass:t.commandClass,reason:t.reason??i.reason??j,verificationGate:i}}export{p as DEFAULT_WORKER_PROVIDER,j as HEAVY_VERIFICATION_TOKEN_REQUIRED,X as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,$r as auditReviewWorkerCredentialScope,Br as auditWorkerEnv,d as buildWorkerSpawnEnv,fe as classifyHeavyShellCommand,kr as enforceCursorWorkerProvider,Rn as gateWorkerShellCommand,u as isClaudeFamilyProvider,k as isForbiddenWorkerEnvKey,qr as isHarnessExpertReviewWorker,be as isNoProdCredentialReviewEnvironment,ke as listForbiddenWorkerEnvKeys,_e as listOperatorAllowedWorkerEnvKeys,_ as normalizeWorkerProviderName,qt as preferCursorExecutor,Gt as resolveConfiguredWorkerProvider,A as scrubWorkerEnv,pe as taskAllowsClaudeWorker,me as taskExpressesWorkerProviderPreference};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kynver-app/runtime",
3
- "version": "0.2.101",
3
+ "version": "0.2.114",
4
4
  "description": "Kynver AgentOS local execution runtime and CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -155,6 +155,16 @@
155
155
  "import": "./dist/chat/command-auth-proof.js",
156
156
  "default": "./dist/chat/command-auth-proof.js"
157
157
  },
158
+ "./chat/chat-turn-envelope": {
159
+ "types": "./dist/chat/chat-turn-envelope.d.ts",
160
+ "import": "./dist/chat/chat-turn-envelope.js",
161
+ "default": "./dist/chat/chat-turn-envelope.js"
162
+ },
163
+ "./chat/chat-access-change-record": {
164
+ "types": "./dist/chat/chat-access-change-record.d.ts",
165
+ "import": "./dist/chat/chat-access-change-record.js",
166
+ "default": "./dist/chat/chat-access-change-record.js"
167
+ },
158
168
  "./node-runtime-policy": {
159
169
  "types": "./dist/node-runtime-policy.d.ts",
160
170
  "import": "./dist/node-runtime-policy.js",
@@ -175,7 +185,7 @@
175
185
  "!dist/**/*.d.ts.map"
176
186
  ],
177
187
  "scripts": {
178
- "build": "esbuild src/provider-terminal-failure.ts src/cli.ts src/index.ts src/node-runtime-policy.ts src/local-run-store/index.ts src/worker-broker/index.ts src/worker-persona-catalog.ts src/instruction-bundle/contract.ts src/chat/command-auth-proof.ts src/dispatch-claim-authorization.ts src/desktop-entry.ts src/server/monitor.ts src/server/landing.ts src/server/worker-policy.ts src/server/orchestration.ts src/server/adapter-contract.ts src/server/context-budget-receipt.ts src/server/context-budget.ts src/server/prompt.ts src/server/node-runtime-policy.ts src/server/model-routing.ts src/server/dispatch-routing.ts src/server/db-credentials.ts src/server/heavy-verification.ts src/server/memory-cost.ts src/server/pr-evidence.ts src/server/default-repo.ts src/server/cleanup.ts src/server/repo-search.ts src/server/harness-notice.ts src/server/memory-cost-enforce.ts src/server/wsl-crash-dumps.ts --bundle --platform=node --format=esm --packages=external --outbase=src --outdir=dist --minify && tsc -p tsconfig.json --emitDeclarationOnly && node scripts/chmod-cli-bin.mjs",
188
+ "build": "esbuild src/provider-terminal-failure.ts src/cli.ts src/index.ts src/node-runtime-policy.ts src/local-run-store/index.ts src/worker-broker/index.ts src/worker-persona-catalog.ts src/instruction-bundle/contract.ts src/chat/command-auth-proof.ts src/chat/chat-turn-envelope.ts src/chat/chat-access-change-record.ts src/dispatch-claim-authorization.ts src/desktop-entry.ts src/server/monitor.ts src/server/landing.ts src/server/worker-policy.ts src/server/orchestration.ts src/server/adapter-contract.ts src/server/context-budget-receipt.ts src/server/context-budget.ts src/server/prompt.ts src/server/node-runtime-policy.ts src/server/model-routing.ts src/server/dispatch-routing.ts src/server/db-credentials.ts src/server/heavy-verification.ts src/server/memory-cost.ts src/server/pr-evidence.ts src/server/default-repo.ts src/server/cleanup.ts src/server/repo-search.ts src/server/harness-notice.ts src/server/memory-cost-enforce.ts src/server/wsl-crash-dumps.ts --bundle --platform=node --format=esm --packages=external --outbase=src --outdir=dist --minify && tsc -p tsconfig.json --emitDeclarationOnly && node scripts/chmod-cli-bin.mjs",
179
189
  "typecheck": "tsc -p tsconfig.json --noEmit",
180
190
  "test": "vitest run --config vitest.config.ts",
181
191
  "prepublishOnly": "node ../../scripts/npm-publish-guard.mjs && npm run build",