@kynver-app/runtime 0.2.150 → 0.2.151

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,4 +1,4 @@
1
- var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Je}from"node:os";import ze from"node:path";function bt(e){return e==="~"?Je():e.startsWith("~/")||e.startsWith("~\\")?ze.join(Je(),e.slice(2)):e}function v(e){return ze.resolve(bt(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Xe=a(()=>{"use strict"});var d=a(()=>{"use strict";Xe()});var Et,Fo,St,$o,Re=a(()=>{"use strict";Et=["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"],Fo=new Set(Et),St=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],$o=new Set(St)});var re=a(()=>{"use strict";E();d();Re()});import{homedir as Ze}from"node:os";import ve from"node:path";function Pt(e=Ze()){return ve.join(e,".kynver",wt)}function er(e,r=Ze()){return ve.resolve(e)===ve.resolve(Pt(r))}var wt,Qe,be=a(()=>{"use strict";re();wt="workspace",Qe="main"});var Ee=a(()=>{"use strict";re();E();be()});import{existsSync as nr,readFileSync as It}from"node:fs";import S from"node:path";function Tt(e){return e.includes("/")||e.includes("\\")}function Dt(e){return(e.PATHEXT||Nt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Kt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Wt(e,r={}){let t=r.env??process.env,n=r.exists??nr,o=Dt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(Tt(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Kt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function tr(e){return e.replace(/^[\\/]+/,"")}function Bt(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Mt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=rr.exec(n);if(o)return tr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?rr.exec(i):null;if(l)return tr(l[1])}return null}function Ut(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Wt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(_e=>It(_e,"utf8")),i=r.exists??nr,l;try{l=s(n)}catch{throw new Y(n)}let c=Bt(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let V=S.win32.join(u,"node.exe");return{executable:i(V)?V:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function b(e,r,t={}){let n=Ut(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Nt,rr,Mt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Nt=".COM;.EXE;.BAT;.CMD";rr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Mt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var or=a(()=>{"use strict";C()});var Se=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var te=a(()=>{"use strict"});var ir=a(()=>{"use strict"});var gi,hi,Ce=a(()=>{"use strict";gi=25*1024*1024*1024,hi=12*1024*1024*1024});var Ri,vi,sr=a(()=>{"use strict";Ce();Ri=5*1024*1024*1024,vi=10*1024*1024*1024});var Ai,wi,Oe=a(()=>{"use strict";sr();Ce();Ai=30*1024*1024*1024,wi=15*1024*1024*1024});var ar=a(()=>{"use strict";d()});import Lt from"node:path";var Bi,we=a(()=>{"use strict";E();ar();Bi=Lt.join(".openclaw","harness")});var oe=a(()=>{"use strict";A();O();te();ie();we()});var ur=a(()=>{"use strict";A();we();oe();d()});var ae=a(()=>{"use strict";ur();d()});var pr=a(()=>{"use strict";ae();d()});var mr=a(()=>{"use strict"});var fr=a(()=>{"use strict";mr();d()});var gr=a(()=>{"use strict"});var hr=a(()=>{"use strict";gr()});var le=a(()=>{"use strict"});var k,w,xs,G=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",xs={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var yr=a(()=>{"use strict"});var _r=a(()=>{"use strict"});var kr=a(()=>{"use strict";hr();d();le();G();yr();_r()});var Us,x=a(()=>{"use strict";Us=String.raw`"use strict";
1
+ var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as ze}from"node:os";import Xe from"node:path";function Et(e){return e==="~"?ze():e.startsWith("~/")||e.startsWith("~\\")?Xe.join(ze(),e.slice(2)):e}function v(e){return Xe.resolve(Et(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Ze=a(()=>{"use strict"});var d=a(()=>{"use strict";Ze()});var St,Fo,Ct,$o,ve=a(()=>{"use strict";St=["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"],Fo=new Set(St),Ct=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],$o=new Set(Ct)});var re=a(()=>{"use strict";E();d();ve()});import{homedir as Qe}from"node:os";import be from"node:path";function It(e=Qe()){return be.join(e,".kynver",Pt)}function rr(e,r=Qe()){return be.resolve(e)===be.resolve(It(r))}var Pt,er,Ee=a(()=>{"use strict";re();Pt="workspace",er="main"});var Se=a(()=>{"use strict";re();E();Ee()});import{existsSync as or,readFileSync as Nt}from"node:fs";import S from"node:path";function Dt(e){return e.includes("/")||e.includes("\\")}function Kt(e){return(e.PATHEXT||Tt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Wt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Mt(e,r={}){let t=r.env??process.env,n=r.exists??or,o=Kt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(Dt(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Wt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function nr(e){return e.replace(/^[\\/]+/,"")}function Ut(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Bt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=tr.exec(n);if(o)return nr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?tr.exec(i):null;if(l)return nr(l[1])}return null}function Lt(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Mt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(ke=>Nt(ke,"utf8")),i=r.exists??or,l;try{l=s(n)}catch{throw new Y(n)}let c=Ut(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let V=S.win32.join(u,"node.exe");return{executable:i(V)?V:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function b(e,r,t={}){let n=Lt(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Tt,tr,Bt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Tt=".COM;.EXE;.BAT;.CMD";tr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Bt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var ir=a(()=>{"use strict";C()});var Ce=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var te=a(()=>{"use strict"});var sr=a(()=>{"use strict"});var gi,hi,Oe=a(()=>{"use strict";gi=25*1024*1024*1024,hi=12*1024*1024*1024});var Ri,vi,ar=a(()=>{"use strict";Oe();Ri=5*1024*1024*1024,vi=10*1024*1024*1024});var Ai,wi,Ae=a(()=>{"use strict";ar();Oe();Ai=30*1024*1024*1024,wi=15*1024*1024*1024});var lr=a(()=>{"use strict";d()});import Ft from"node:path";var Bi,Pe=a(()=>{"use strict";E();lr();Bi=Ft.join(".openclaw","harness")});var oe=a(()=>{"use strict";A();O();te();ie();Pe()});var dr=a(()=>{"use strict";A();Pe();oe();d()});var ae=a(()=>{"use strict";dr();d()});var mr=a(()=>{"use strict";ae();d()});var fr=a(()=>{"use strict"});var gr=a(()=>{"use strict";fr();d()});var hr=a(()=>{"use strict"});var yr=a(()=>{"use strict";hr()});var le=a(()=>{"use strict"});var k,w,xs,G=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",xs={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var _r=a(()=>{"use strict"});var kr=a(()=>{"use strict"});var xr=a(()=>{"use strict";yr();d();le();G();_r();kr()});var Us,x=a(()=>{"use strict";Us=String.raw`"use strict";
2
2
  const cp = require("child_process"), fs = require("fs");
3
3
  const argv = process.argv.slice(1);
4
4
  const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
@@ -64,8 +64,8 @@ child.on("error", (e) => {
64
64
  if (!child.pid) finish(127, null, String(e && e.message));
65
65
  });
66
66
  child.on("exit", (code, signal) => finish(code, signal));
67
- `});var xr=a(()=>{"use strict";ae();d();x()});var Rr=a(()=>{"use strict";le();G()});var vr=a(()=>{"use strict"});var ra,ta,br=a(()=>{"use strict";re();ra=10*6e4,ta=60*6e4});var Er=a(()=>{"use strict"});var Pe=a(()=>{"use strict"});var Sr=a(()=>{"use strict"});var Cr=a(()=>{"use strict";Pe();Sr()});var Or=a(()=>{"use strict";fr();kr();xr();x();le();Rr();vr();br();Er();Cr();Pe();d()});var Ar=a(()=>{"use strict";Or();d()});var en,rn,wr=a(()=>{"use strict";ir();A();O();te();ie();Oe();ae();pr();Ar();d();en=500*1024*1024,rn=4*1024*1024*1024});var ie=a(()=>{"use strict";wr()});import{homedir as tn}from"node:os";import nn from"node:path";var Pr,Ie=a(()=>{"use strict";Pr=nn.join(tn(),".kynver",".env")});var Ir=a(()=>{"use strict"});var Nr=a(()=>{"use strict";Ir()});var Tr=a(()=>{"use strict"});var Dr=a(()=>{"use strict";d()});var Ne=a(()=>{"use strict";Nr();Tr();Dr()});var Kr=a(()=>{"use strict"});var Wr=a(()=>{"use strict";Kr()});var ce=a(()=>{"use strict";Ie();E();A();Ne();Wr()});var Mr=a(()=>{"use strict";O();O()});var Br=a(()=>{"use strict";Ie();Ne();ce()});var Te=a(()=>{"use strict"});var Ur=a(()=>{"use strict";Ee();O();Mr();A();ce();Br();Se();Te();oe()});function P(e){let r=e.trim().toLowerCase();return fn[r]??r}var Lr,mn,fn,ue=a(()=>{"use strict";Lr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],mn=Lr.join("|"),fn={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Fr=a(()=>{"use strict";E()});var $r=a(()=>{"use strict";Fr()});var Hr=a(()=>{"use strict"});var jr=a(()=>{"use strict";Hr()});import{existsSync as hn,mkdirSync as jc,readFileSync as yn,writeFileSync as Vc}from"node:fs";import{homedir as _n,totalmem as Gc}from"node:os";import De from"node:path";function kn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function xn(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!er(v(r))?e:{...e,defaultBase:Qe}}function Rn(){if(!hn(Vr))return null;try{return JSON.parse(yn(Vr,"utf8"))}catch{return null}}function W(){let e=Rn();return e?xn(kn(e)):{}}var Yr,Vr,du,pu,mu,A=a(()=>{"use strict";Ee();E();be();or();Se();O();te();ie();Oe();ce();Ur();ue();oe();$r();Te();jr();Yr=De.join(_n(),".kynver"),Vr=De.join(Yr,"config.json"),du=De.join(Yr,"credentials");pu=500*1024*1024,mu=4*1024*1024*1024});var _t=/^claude[-_]/i,kt=/^(?:opus|sonnet|haiku)\b/i;function Ye(e){let r=e.trim();return _t.test(r)||kt.test(r)}function Ge(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function ke(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function qe(e){return e.trim().toLowerCase().startsWith("gemini-")}function xt(e){return Ge(e)?"codex":Ye(e)?"claude":qe(e)?"gemini":(ke(e),"cursor")}function Rt(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(),o=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:o,rule:o?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:o,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:o,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:o,rule:o?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function vt(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ye(n)||Ge(n)||ke(n)||qe(n)?{lane:t,model:n,provider:xt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function f(e){let r=typeof e=="string"?e.trim():"";return r?Rt(r)??vt(r):null}function xe(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!ke(r.model)):!1}A();var Gr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return Gr[e]}function qr(){return Object.values(Gr)}import{existsSync as bn}from"node:fs";import{homedir as En}from"node:os";import q from"node:path";C();import{createHash as Jr}from"node:crypto";import{statSync as vn}from"node:fs";import{spawnSync as zr}from"node:child_process";function y(e){try{let r=vn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Jr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return Jr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r),i=zr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function de(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r);return zr(o,s,{windowsHide:!0,stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var Sn="codex";function Cn(){let e=En();return[process.env.CODEX_HOME?.trim()?q.join(q.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,q.join(e,".codex","auth.json"),q.join(e,".config","codex","auth.json")].filter(t=>!!t)}function On(e){return q.dirname(e)}function An(e){let r,t;for(let n of Cn()){if(!bn(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:On(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Xr(e=new Date().toISOString()){let r=g(Sn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=An(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as wn}from"node:fs";import{homedir as Pn}from"node:os";import Ke from"node:path";function In(){let e=process.env.HERMES_HOME?.trim(),r=e?Ke.resolve(e):Ke.join(Pn(),".hermes");return Ke.join(r,"auth.json")}function pe(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=In(),o=wn(n),s=de(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function J(e=new Date().toISOString()){let r=Xr(e);if(r.ready)return{...r,path:"codex_cli"};let t=pe(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var Zr=["low","medium","high"],Qr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function et(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Nn(e,r){let t=M(e.providerId),n=M(r.providerId),o=Zr.indexOf(t.costTier)-Zr.indexOf(n.costTier);if(o!==0)return o;let s=Qr[e.binding.authSource]-Qr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function We(e){let r=qr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&et(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Nn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return et(o,e.riskClass)?s.ready||(i=s.note??`${o} not bound`):i=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:i}}import{existsSync as Tn}from"node:fs";import{homedir as Dn}from"node:os";import Kn from"node:path";var Wn="claude";function Mn(){let e=Dn();return[Kn.join(e,".claude",".credentials.json")]}function rt(e=new Date().toISOString()){let r=g(Wn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Mn().find(i=>Tn(i)),o=de(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Gn}from"node:fs";import{homedir as Yn}from"node:os";import L from"node:path";x();import{closeSync as zu,existsSync as Hn,mkdirSync as Xu,openSync as Zu,statSync as Qu,unlinkSync as ed}from"node:fs";d();import U from"node:path";Re();import{existsSync as z,readdirSync as Bn}from"node:fs";import I from"node:path";var Un=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Ln(e){let t=e.split("-")[0].split(".");if(t.length!==3)return null;let[n,o,s]=t;return!n||!o||!s?null:+`${n}${o.padStart(2,"0")}${s.padStart(2,"0")}`}function Fn(e){let r=I.join(e,"versions");if(!z(r))return null;let t=null,n=-1;for(let o of Bn(r,{withFileTypes:!0})){if(!o.isDirectory()||!Un.test(o.name))continue;let s=Ln(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Me(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(z(t)&&z(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=Fn(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.join(o,"index.js");return!z(s)||!z(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function jn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:_(),bundledVersionDir:t}}function tt(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&Hn(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Me(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Me();if(o)return jn(o.nodeExe,o.indexJs,o.versionDir);throw new Error("Cursor Agent on Windows has no headless bundled node.exe under %LOCALAPPDATA%\\cursor-agent\\versions\\\u2026. Run `agent login` / update Cursor Agent CLI, use `--provider claude`, or set KYNVER_CURSOR_AGENT_ROOT to the cursor-agent folder.")}}return{executable:e,prefixArgs:[],shell:!1,detached:_()}}import{spawnSync as Vn}from"node:child_process";function Be(e,r=process.env){try{let t;try{t=tt(e)}catch{t={executable:e,prefixArgs:[]}}let n=Vn(t.executable,[...t.prefixArgs,"status","--format","json"],{encoding:"utf8",windowsHide:!0,timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(n.status!==0)return{ok:!1,note:"agent status: not authenticated"};let o=(n.stdout||"").trim();if(!o)return{ok:!1,note:"agent status: empty response"};let s;try{s=JSON.parse(o)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof s=="object"&&s!==null&&s.isAuthenticated===!0?{ok:!0,note:"agent status: authenticated"}:{ok:!1,note:"agent status: not authenticated"}}catch(t){return{ok:!1,note:t instanceof Error?t.message:"agent status probe failed"}}}function Ue(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Yn();if(r.push(L.join(n,".config","cursor","auth.json")),r.push(L.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(L.join(o,"cursor-agent","auth.json")),s&&r.push(L.join(s,"cursor","auth.json"))}return r}var qn="agent";function nt(e=new Date().toISOString()){let r=g(qn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Ue().find(l=>Gn(l)),o=Be(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Jn,readFileSync as zn}from"node:fs";import{homedir as Xn}from"node:os";import Le from"node:path";var Zn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Qn(){let e=process.env.HERMES_HOME?.trim(),r=e?Le.resolve(e):Le.join(Xn(),".hermes");return Le.join(r,".env")}function eo(e){try{let r=zn(e,"utf8"),t=[];for(let n of Zn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function ot(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Qn(),o=Jn(n),s=o?eo(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function it(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=J(r),n={codex:t,cursor:nt(r),claude:rt(r)},o=Object.values(n).filter(s=>s.ready).length;return{generatedAt:r,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},workerEndpoint:{baseUrlConfigured:!!process.env.KYNVER_WORKER_BASE_URL?.trim(),apiKeyConfigured:!!process.env.KYNVER_WORKER_API_KEY?.trim()},hermes:ot(r),hermesOpenAiCodex:pe(r),codexAdapterPath:t.path,readyCount:o}}var ro=[/\bprivileged\b/i,/\bproduction\s+db\b/i,/\bdb:push\b/i,/\bmigration\b/i,/\bdeploy\b/i,/\bsecrets?\b/i,/\bstripe\b/i,/\[require-approval\]/i,/\[operator-only\]/i],to=[/\borchestration\b/i,/\bplan[- ]?progress\b/i,/\bstatus\s+sync\b/i,/\bheartbeat\b/i,/\bboard[- ]?drain\b/i,/\bmaintenance\b/i,/\[orchestration:\s*low-risk\]/i];function Fe(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function no(e){let r=Fe(e,"executorRef").toLowerCase(),t=Fe(e,"title").toLowerCase(),n=Fe(e,"description").toLowerCase(),o=`${r}
67
+ `});var Rr=a(()=>{"use strict";ae();d();x()});var vr=a(()=>{"use strict";le();G()});var br=a(()=>{"use strict"});var ra,ta,Er=a(()=>{"use strict";re();ra=10*6e4,ta=60*6e4});var Sr=a(()=>{"use strict"});var Ie=a(()=>{"use strict"});var Cr=a(()=>{"use strict"});var Or=a(()=>{"use strict";Ie();Cr()});var Ar=a(()=>{"use strict";gr();xr();Rr();x();le();vr();br();Er();Sr();Or();Ie();d()});var wr=a(()=>{"use strict";Ar();d()});var rn,tn,Pr=a(()=>{"use strict";sr();A();O();te();ie();Ae();ae();mr();wr();d();rn=500*1024*1024,tn=4*1024*1024*1024});var ie=a(()=>{"use strict";Pr()});import{homedir as nn}from"node:os";import on from"node:path";var Ir,Ne=a(()=>{"use strict";Ir=on.join(nn(),".kynver",".env")});var Nr=a(()=>{"use strict"});var Tr=a(()=>{"use strict";Nr()});var Dr=a(()=>{"use strict"});var Kr=a(()=>{"use strict";d()});var Te=a(()=>{"use strict";Tr();Dr();Kr()});var Wr=a(()=>{"use strict"});var Mr=a(()=>{"use strict";Wr()});var ce=a(()=>{"use strict";Ne();E();A();Te();Mr()});var Br=a(()=>{"use strict";O();O()});var Ur=a(()=>{"use strict";Ne();Te();ce()});var De=a(()=>{"use strict"});var Lr=a(()=>{"use strict";Se();O();Br();A();ce();Ur();Ce();De();oe()});function P(e){let r=e.trim().toLowerCase();return gn[r]??r}var Fr,fn,gn,ue=a(()=>{"use strict";Fr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],fn=Fr.join("|"),gn={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var $r=a(()=>{"use strict";E()});var Hr=a(()=>{"use strict";$r()});var jr=a(()=>{"use strict"});var Vr=a(()=>{"use strict";jr()});import{existsSync as yn,mkdirSync as jc,readFileSync as _n,writeFileSync as Vc}from"node:fs";import{homedir as kn,totalmem as Gc}from"node:os";import Ke from"node:path";function xn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function Rn(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!rr(v(r))?e:{...e,defaultBase:er}}function vn(){if(!yn(Yr))return null;try{return JSON.parse(_n(Yr,"utf8"))}catch{return null}}function W(){let e=vn();return e?Rn(xn(e)):{}}var Gr,Yr,du,pu,mu,A=a(()=>{"use strict";Se();E();Ee();ir();Ce();O();te();ie();Ae();ce();Lr();ue();oe();Hr();De();Vr();Gr=Ke.join(kn(),".kynver"),Yr=Ke.join(Gr,"config.json"),du=Ke.join(Gr,"credentials");pu=500*1024*1024,mu=4*1024*1024*1024});var kt=/^claude[-_]/i,xt=/^(?:opus|sonnet|haiku)\b/i;function Ge(e){let r=e.trim();return kt.test(r)||xt.test(r)}function qe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function xe(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Je(e){return e.trim().toLowerCase().startsWith("gemini-")}function Rt(e){return qe(e)?"codex":Ge(e)?"claude":Je(e)?"gemini":(xe(e),"cursor")}function vt(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(),o=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:o,rule:o?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:o,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:o,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:o,rule:o?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function bt(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ge(n)||qe(n)||xe(n)||Je(n)?{lane:t,model:n,provider:Rt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function f(e){let r=typeof e=="string"?e.trim():"";return r?vt(r)??bt(r):null}function Re(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!xe(r.model)):!1}A();var qr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return qr[e]}function Jr(){return Object.values(qr)}import{existsSync as En}from"node:fs";import{homedir as Sn}from"node:os";import q from"node:path";C();import{createHash as zr}from"node:crypto";import{statSync as bn}from"node:fs";import{spawnSync as Xr}from"node:child_process";function y(e){try{let r=bn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return zr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return zr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r),i=Xr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function de(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r);return Xr(o,s,{windowsHide:!0,stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var Cn="codex";function On(){let e=Sn();return[process.env.CODEX_HOME?.trim()?q.join(q.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,q.join(e,".codex","auth.json"),q.join(e,".config","codex","auth.json")].filter(t=>!!t)}function An(e){return q.dirname(e)}function wn(e){let r,t;for(let n of On()){if(!En(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:An(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Zr(e=new Date().toISOString()){let r=g(Cn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=wn(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as Pn}from"node:fs";import{homedir as In}from"node:os";import We from"node:path";function Nn(){let e=process.env.HERMES_HOME?.trim(),r=e?We.resolve(e):We.join(In(),".hermes");return We.join(r,"auth.json")}function pe(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Nn(),o=Pn(n),s=de(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function J(e=new Date().toISOString()){let r=Zr(e);if(r.ready)return{...r,path:"codex_cli"};let t=pe(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var Qr=["low","medium","high"],et={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function rt(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Tn(e,r){let t=M(e.providerId),n=M(r.providerId),o=Qr.indexOf(t.costTier)-Qr.indexOf(n.costTier);if(o!==0)return o;let s=et[e.binding.authSource]-et[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function Me(e){let r=Jr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&rt(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Tn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return rt(o,e.riskClass)?s.ready||(i=s.note??`${o} not bound`):i=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:i}}import{existsSync as Dn}from"node:fs";import{homedir as Kn}from"node:os";import Wn from"node:path";var Mn="claude";function Bn(){let e=Kn();return[Wn.join(e,".claude",".credentials.json")]}function tt(e=new Date().toISOString()){let r=g(Mn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Bn().find(i=>Dn(i)),o=de(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Gn}from"node:fs";import{homedir as Yn}from"node:os";import L from"node:path";x();import{closeSync as zu,existsSync as Hn,mkdirSync as Xu,openSync as Zu,statSync as Qu,unlinkSync as ed}from"node:fs";d();import U from"node:path";ve();import{existsSync as z,readdirSync as Un}from"node:fs";import I from"node:path";var Ln=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Fn(e){let t=e.split("-")[0].split(".");if(t.length!==3)return null;let[n,o,s]=t;return!n||!o||!s?null:+`${n}${o.padStart(2,"0")}${s.padStart(2,"0")}`}function $n(e){let r=I.join(e,"versions");if(!z(r))return null;let t=null,n=-1;for(let o of Un(r,{withFileTypes:!0})){if(!o.isDirectory()||!Ln.test(o.name))continue;let s=Fn(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Be(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(z(t)&&z(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=$n(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.join(o,"index.js");return!z(s)||!z(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function jn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:_(),bundledVersionDir:t}}function nt(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&Hn(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Be(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Be();if(o)return jn(o.nodeExe,o.indexJs,o.versionDir);throw new Error("Cursor Agent on Windows has no headless bundled node.exe under %LOCALAPPDATA%\\cursor-agent\\versions\\\u2026. Run `agent login` / update Cursor Agent CLI, use `--provider claude`, or set KYNVER_CURSOR_AGENT_ROOT to the cursor-agent folder.")}}return{executable:e,prefixArgs:[],shell:!1,detached:_()}}import{spawnSync as Vn}from"node:child_process";function Ue(e,r=process.env){try{let t;try{t=nt(e)}catch{t={executable:e,prefixArgs:[]}}let n=Vn(t.executable,[...t.prefixArgs,"status","--format","json"],{encoding:"utf8",windowsHide:!0,timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(n.status!==0)return{ok:!1,note:"agent status: not authenticated"};let o=(n.stdout||"").trim();if(!o)return{ok:!1,note:"agent status: empty response"};let s;try{s=JSON.parse(o)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof s=="object"&&s!==null&&s.isAuthenticated===!0?{ok:!0,note:"agent status: authenticated"}:{ok:!1,note:"agent status: not authenticated"}}catch(t){return{ok:!1,note:t instanceof Error?t.message:"agent status probe failed"}}}function Le(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Yn();if(r.push(L.join(n,".config","cursor","auth.json")),r.push(L.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(L.join(o,"cursor-agent","auth.json")),s&&r.push(L.join(s,"cursor","auth.json"))}return r}var qn="agent";function ot(e=new Date().toISOString()){let r=g(qn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Le().find(l=>Gn(l)),o=Ue(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Jn,readFileSync as zn}from"node:fs";import{homedir as Xn}from"node:os";import Fe from"node:path";var Zn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Qn(){let e=process.env.HERMES_HOME?.trim(),r=e?Fe.resolve(e):Fe.join(Xn(),".hermes");return Fe.join(r,".env")}function eo(e){try{let r=zn(e,"utf8"),t=[];for(let n of Zn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function it(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Qn(),o=Jn(n),s=o?eo(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function st(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=J(r),n={codex:t,cursor:ot(r),claude:tt(r)},o=Object.values(n).filter(s=>s.ready).length;return{generatedAt:r,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},workerEndpoint:{baseUrlConfigured:!!process.env.KYNVER_WORKER_BASE_URL?.trim(),apiKeyConfigured:!!process.env.KYNVER_WORKER_API_KEY?.trim()},hermes:it(r),hermesOpenAiCodex:pe(r),codexAdapterPath:t.path,readyCount:o}}var ro=[/\bprivileged\b/i,/\bproduction\s+db\b/i,/\bdb:push\b/i,/\bmigration\b/i,/\bdeploy\b/i,/\bsecrets?\b/i,/\bstripe\b/i,/\[require-approval\]/i,/\[operator-only\]/i],to=[/\borchestration\b/i,/\bplan[- ]?progress\b/i,/\bstatus\s+sync\b/i,/\bheartbeat\b/i,/\bboard[- ]?drain\b/i,/\bmaintenance\b/i,/\[orchestration:\s*low-risk\]/i];function $e(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function no(e){let r=$e(e,"executorRef").toLowerCase(),t=$e(e,"title").toLowerCase(),n=$e(e,"description").toLowerCase(),o=`${r}
68
68
  ${t}
69
- ${n}`;return ro.some(s=>s.test(o))?"privileged":r.includes("provider:claude")||r.includes("deep_review")||r.includes("security")||r.includes("landing")||r.includes("review")||t.startsWith("land:")||r.includes("implementer")||r.includes("repair")||t.includes("implement")?"elevated":to.some(s=>s.test(o))?"low":"elevated"}function oo(e){let r=M(e.provider),t=e.escalatedFrom&&e.escalatedReason?`Escalated from ${e.escalatedFrom} (${e.escalatedReason}); using ${r.displayName} (${r.costTier} tier)`:`${r.displayName} selected for ${e.riskClass} orchestration (${r.costTier} tier, auth=${e.authSource})`;return{provider:e.provider,model:e.model,authSource:e.authSource,costTier:r.costTier,riskClass:e.riskClass,costRationale:t,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason}}function io(e){let r=e.inventory??it();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function N(e){let r=oo({provider:e.providerId,model:e.model,authSource:e.binding.authSource,riskClass:e.riskClass,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason});return{provider:e.providerId,model:e.model,rule:r.routingRule,audit:r}}function st(e){let r=e.task??{},t=no(r),n=io({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:J())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=We({inventory:n,riskClass:t});return N(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return N({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return N({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return N({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=We({inventory:n,riskClass:t});if(l)return N({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return N({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}x();d();C();G();var at="kynver",lt=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],so=lt.map(e=>`mcp__${at}__${e}`);G();x();d();C();x();d();C();var me="gpt-5.6-sol";var pp=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me;function lo(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me}var $=lo();x();d();var $e="openai-compatible",Vp=600*1e3;x();d();C();var T="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var fm=600*1e3;var j="venice";var po="venice-uncensored-1-2";var mo="KYNVER_VENICE_DEFAULT_MODEL";function fe(e=process.env){return e[mo]?.trim()||po}var dt=k,Q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function fo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
69
+ ${n}`;return ro.some(s=>s.test(o))?"privileged":r.includes("provider:claude")||r.includes("deep_review")||r.includes("security")||r.includes("landing")||r.includes("review")||t.startsWith("land:")||r.includes("implementer")||r.includes("repair")||t.includes("implement")?"elevated":to.some(s=>s.test(o))?"low":"elevated"}function oo(e){let r=M(e.provider),t=e.escalatedFrom&&e.escalatedReason?`Escalated from ${e.escalatedFrom} (${e.escalatedReason}); using ${r.displayName} (${r.costTier} tier)`:`${r.displayName} selected for ${e.riskClass} orchestration (${r.costTier} tier, auth=${e.authSource})`;return{provider:e.provider,model:e.model,authSource:e.authSource,costTier:r.costTier,riskClass:e.riskClass,costRationale:t,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason}}function io(e){let r=e.inventory??st();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function N(e){let r=oo({provider:e.providerId,model:e.model,authSource:e.binding.authSource,riskClass:e.riskClass,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason});return{provider:e.providerId,model:e.model,rule:r.routingRule,audit:r}}function at(e){let r=e.task??{},t=no(r),n=io({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:J())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=Me({inventory:n,riskClass:t});return N(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return N({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return N({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return N({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=Me({inventory:n,riskClass:t});if(l)return N({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return N({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}x();d();C();G();var lt="kynver",ct=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],so=ct.map(e=>`mcp__${lt}__${e}`);G();x();d();C();x();d();C();var fe="gpt-5.6-sol";var mp=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||fe;function lo(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||fe}var $=lo();x();d();var He="openai-compatible",Gp=600*1e3;x();d();C();var T="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var ym=600*1e3;var j="venice";var po="venice-uncensored-1-2";var mo="KYNVER_VENICE_DEFAULT_MODEL";function ge(e=process.env){return e[mo]?.trim()||po}var pt=k,Q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function fo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
70
70
  ${m(e,"description")}
71
- ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ct(e){return e.toLowerCase()}function ye(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||dt}function ge(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?T:"cursor"}function go(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Q,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="venice"||t==="venice-ai"||t==="venice_ai"?{model:fe(),provider:j,rule:n&&n!==j?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function ut(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var ho=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function pt(e,r,t){return ho.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function mt(e){let r=ct(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=ct(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=pt(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:$e,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:venice")||r.startsWith("venice:")){let i=f(m(e,"executorRef"));return{provider:j,...i?.model?{model:i.model}:{model:fe()},rule:"lane:venice"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:T,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return ut(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(ut(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let s=ye();return{model:s,provider:ge(s),rule:"default:global"}}function yo(e){return e?f(m(e,"executorRef")):null}function _o(e){switch(P(e)){case T:case H:return D();case j:return fe();case"claude":return k;case"codex":return $;case"cursor":return Q;default:return}}var He="explicit:cli_provider",ft="config:worker_provider";function gt(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:_o(n)??e.model,rule:t}}function ko(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==He?e:gt(e,t,He)}function xo(e,r){if(r.explicitProvider?.trim()||je(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:gt(e,n,ft)}function Ro(e){let r,t=yo(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let c=e.explicitModel.trim(),u=go(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||ge(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&he(e.task)){let c=fo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let V=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ve=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",_e=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=pt(V,Ve,_e),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=mt(e.task);r={...c,requestedModel:c.model}}else{let c=ye();r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"default:global",requestedModel:c}}r=ko(r,e.explicitProvider),r=xo(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=ht({routing:r,task:e.task,explicitProvider:e.explicitProvider??(s?r.provider:void 0),explicitProviderIsOperatorOverride:!!e.explicitProviderIsOperatorOverride||s});if(!e.task||Object.keys(e.task).length===0||i.rule==="explicit:model_provider_alias"||i.rule==="explicit:model_provider_alias_overrode_provider"||i.rule==="explicit:cli"||i.rule===He||i.rule===ft||R(i.provider)&&(e.explicitProviderIsOperatorOverride||he(e.task))||i.provider===$e||i.provider===T||i.provider===H||i.provider===j||i.provider==="codex")return i;let l=st({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function vo(e,r,t){return e||r||t||ye()||k}ue();ue();var F="cursor",bo=new Set(["claude","opus","anthropic"]),Eo=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function ee(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return bo.has(r)?!0:r.includes("claude")||r.includes("opus")}function he(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=ee(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(ee(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(So(n.model)))return!0;let o=ee(e,"description");if(Eo.some(i=>i.test(o)))return!0;let s=ee(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function So(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Co(e,r){return{provider:F,model:Q,rule:`policy:cursor_default${r}`,requestedModel:e}}var Oo=["explicit:","executor_ref:","factory:","task:"];function Ao(e){return Oo.some(r=>e.startsWith(r))}function je(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(ee(e,"executorRef"))?.provider?!0:he(e)}function ht(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ao(r.rule)||je(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Co(r.model,o)}function wo(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function yt(e){return e?.trim()||void 0}function Po(e){let r=wo(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=yt(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let c=e.routing.provider,u=yt(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&xe(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Q as CURSOR_DEFAULT_MODEL,dt as GLOBAL_DEFAULT_MODEL,Po as assessDispatchModelGuard,xe as executorRefRequestsNonCursorWorker,mt as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,ye as resolveGlobalDefaultModel,vo as resolveModelFallback,Ro as resolveWorkerLaunch};
71
+ ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ut(e){return e.toLowerCase()}function _e(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||pt}function he(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?T:"cursor"}function go(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Q,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="venice"||t==="venice-ai"||t==="venice_ai"?{model:ge(),provider:j,rule:n&&n!==j?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function dt(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var ho=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function mt(e,r,t){return ho.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function ft(e){let r=ut(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=ut(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=mt(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:He,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:venice")||r.startsWith("venice:")){let i=f(m(e,"executorRef"));return{provider:j,...i?.model?{model:i.model}:{model:ge()},rule:"lane:venice"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:T,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return dt(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(dt(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let s=_e();return{model:s,provider:he(s),rule:"default:global"}}function yo(e){return e?f(m(e,"executorRef")):null}function _o(e){switch(P(e)){case T:case H:return D();case j:return ge();case"claude":return k;case"codex":return $;case"cursor":return Q;default:return}}var je="explicit:cli_provider",gt="config:worker_provider";function ht(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:_o(n)??e.model,rule:t}}function ko(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==je?e:ht(e,t,je)}function xo(e,r){if(r.explicitProvider?.trim()||Ve(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:ht(e,n,gt)}function Ro(e){let r,t=yo(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let c=e.explicitModel.trim(),u=go(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||he(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||he(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&ye(e.task)){let c=fo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let V=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ye=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",ke=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=mt(V,Ye,ke),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=ft(e.task);r={...c,requestedModel:c.model}}else{let c=_e();r={model:c,provider:e.explicitProvider?.trim()||he(c),rule:"default:global",requestedModel:c}}r=ko(r,e.explicitProvider),r=xo(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=yt({routing:r,task:e.task,explicitProvider:e.explicitProvider??(s?r.provider:void 0),explicitProviderIsOperatorOverride:!!e.explicitProviderIsOperatorOverride||s});if(!e.task||Object.keys(e.task).length===0||i.rule==="explicit:model_provider_alias"||i.rule==="explicit:model_provider_alias_overrode_provider"||i.rule==="explicit:cli"||i.rule===je||i.rule===gt||R(i.provider)&&(e.explicitProviderIsOperatorOverride||ye(e.task))||i.provider===He||i.provider===T||i.provider===H||i.provider===j||i.provider==="codex")return i;let l=at({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function vo(e,r,t){return e||r||t||_e()||k}ue();ue();var F="cursor",bo=new Set(["claude","opus","anthropic"]),Eo=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function ee(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return bo.has(r)?!0:r.includes("claude")||r.includes("opus")}function ye(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=ee(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(ee(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(So(n.model)))return!0;let o=ee(e,"description");if(Eo.some(i=>i.test(o)))return!0;let s=ee(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function So(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Co(e,r){return{provider:F,model:Q,rule:`policy:cursor_default${r}`,requestedModel:e}}var Oo=["explicit:","executor_ref:","factory:","task:"];function Ao(e){return Oo.some(r=>e.startsWith(r))}function Ve(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(ee(e,"executorRef"))?.provider?!0:ye(e)}function yt(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ao(r.rule)||Ve(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Co(r.model,o)}function wo(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function _t(e){return e?.trim()||void 0}function Po(e){let r=wo(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=_t(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let c=e.routing.provider,u=_t(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&Re(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Q as CURSOR_DEFAULT_MODEL,pt as GLOBAL_DEFAULT_MODEL,Po as assessDispatchModelGuard,Re as executorRefRequestsNonCursorWorker,ft as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,_e as resolveGlobalDefaultModel,vo as resolveModelFallback,Ro as resolveWorkerLaunch};
@@ -1,4 +1,4 @@
1
- var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Je}from"node:os";import ze from"node:path";function bt(e){return e==="~"?Je():e.startsWith("~/")||e.startsWith("~\\")?ze.join(Je(),e.slice(2)):e}function v(e){return ze.resolve(bt(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Xe=a(()=>{"use strict"});var d=a(()=>{"use strict";Xe()});var Et,Fo,St,$o,Re=a(()=>{"use strict";Et=["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"],Fo=new Set(Et),St=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],$o=new Set(St)});var re=a(()=>{"use strict";E();d();Re()});import{homedir as Ze}from"node:os";import ve from"node:path";function Pt(e=Ze()){return ve.join(e,".kynver",wt)}function er(e,r=Ze()){return ve.resolve(e)===ve.resolve(Pt(r))}var wt,Qe,be=a(()=>{"use strict";re();wt="workspace",Qe="main"});var Ee=a(()=>{"use strict";re();E();be()});import{existsSync as nr,readFileSync as It}from"node:fs";import S from"node:path";function Tt(e){return e.includes("/")||e.includes("\\")}function Dt(e){return(e.PATHEXT||Nt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Kt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Wt(e,r={}){let t=r.env??process.env,n=r.exists??nr,o=Dt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(Tt(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Kt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function tr(e){return e.replace(/^[\\/]+/,"")}function Bt(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Mt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=rr.exec(n);if(o)return tr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?rr.exec(i):null;if(l)return tr(l[1])}return null}function Ut(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Wt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(_e=>It(_e,"utf8")),i=r.exists??nr,l;try{l=s(n)}catch{throw new Y(n)}let c=Bt(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let V=S.win32.join(u,"node.exe");return{executable:i(V)?V:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function b(e,r,t={}){let n=Ut(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Nt,rr,Mt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Nt=".COM;.EXE;.BAT;.CMD";rr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Mt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var or=a(()=>{"use strict";C()});var Se=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var te=a(()=>{"use strict"});var ir=a(()=>{"use strict"});var gi,hi,Ce=a(()=>{"use strict";gi=25*1024*1024*1024,hi=12*1024*1024*1024});var Ri,vi,sr=a(()=>{"use strict";Ce();Ri=5*1024*1024*1024,vi=10*1024*1024*1024});var Ai,wi,Oe=a(()=>{"use strict";sr();Ce();Ai=30*1024*1024*1024,wi=15*1024*1024*1024});var ar=a(()=>{"use strict";d()});import Lt from"node:path";var Bi,we=a(()=>{"use strict";E();ar();Bi=Lt.join(".openclaw","harness")});var oe=a(()=>{"use strict";A();O();te();ie();we()});var ur=a(()=>{"use strict";A();we();oe();d()});var ae=a(()=>{"use strict";ur();d()});var pr=a(()=>{"use strict";ae();d()});var mr=a(()=>{"use strict"});var fr=a(()=>{"use strict";mr();d()});var gr=a(()=>{"use strict"});var hr=a(()=>{"use strict";gr()});var le=a(()=>{"use strict"});var k,w,xs,G=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",xs={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var yr=a(()=>{"use strict"});var _r=a(()=>{"use strict"});var kr=a(()=>{"use strict";hr();d();le();G();yr();_r()});var Us,x=a(()=>{"use strict";Us=String.raw`"use strict";
1
+ var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as ze}from"node:os";import Xe from"node:path";function Et(e){return e==="~"?ze():e.startsWith("~/")||e.startsWith("~\\")?Xe.join(ze(),e.slice(2)):e}function v(e){return Xe.resolve(Et(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Ze=a(()=>{"use strict"});var d=a(()=>{"use strict";Ze()});var St,Fo,Ct,$o,ve=a(()=>{"use strict";St=["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"],Fo=new Set(St),Ct=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],$o=new Set(Ct)});var re=a(()=>{"use strict";E();d();ve()});import{homedir as Qe}from"node:os";import be from"node:path";function It(e=Qe()){return be.join(e,".kynver",Pt)}function rr(e,r=Qe()){return be.resolve(e)===be.resolve(It(r))}var Pt,er,Ee=a(()=>{"use strict";re();Pt="workspace",er="main"});var Se=a(()=>{"use strict";re();E();Ee()});import{existsSync as or,readFileSync as Nt}from"node:fs";import S from"node:path";function Dt(e){return e.includes("/")||e.includes("\\")}function Kt(e){return(e.PATHEXT||Tt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Wt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Mt(e,r={}){let t=r.env??process.env,n=r.exists??or,o=Kt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(Dt(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Wt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function nr(e){return e.replace(/^[\\/]+/,"")}function Ut(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Bt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=tr.exec(n);if(o)return nr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?tr.exec(i):null;if(l)return nr(l[1])}return null}function Lt(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Mt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(ke=>Nt(ke,"utf8")),i=r.exists??or,l;try{l=s(n)}catch{throw new Y(n)}let c=Ut(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let V=S.win32.join(u,"node.exe");return{executable:i(V)?V:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function b(e,r,t={}){let n=Lt(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Tt,tr,Bt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Tt=".COM;.EXE;.BAT;.CMD";tr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Bt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var ir=a(()=>{"use strict";C()});var Ce=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var te=a(()=>{"use strict"});var sr=a(()=>{"use strict"});var gi,hi,Oe=a(()=>{"use strict";gi=25*1024*1024*1024,hi=12*1024*1024*1024});var Ri,vi,ar=a(()=>{"use strict";Oe();Ri=5*1024*1024*1024,vi=10*1024*1024*1024});var Ai,wi,Ae=a(()=>{"use strict";ar();Oe();Ai=30*1024*1024*1024,wi=15*1024*1024*1024});var lr=a(()=>{"use strict";d()});import Ft from"node:path";var Bi,Pe=a(()=>{"use strict";E();lr();Bi=Ft.join(".openclaw","harness")});var oe=a(()=>{"use strict";A();O();te();ie();Pe()});var dr=a(()=>{"use strict";A();Pe();oe();d()});var ae=a(()=>{"use strict";dr();d()});var mr=a(()=>{"use strict";ae();d()});var fr=a(()=>{"use strict"});var gr=a(()=>{"use strict";fr();d()});var hr=a(()=>{"use strict"});var yr=a(()=>{"use strict";hr()});var le=a(()=>{"use strict"});var k,w,xs,G=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",xs={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var _r=a(()=>{"use strict"});var kr=a(()=>{"use strict"});var xr=a(()=>{"use strict";yr();d();le();G();_r();kr()});var Us,x=a(()=>{"use strict";Us=String.raw`"use strict";
2
2
  const cp = require("child_process"), fs = require("fs");
3
3
  const argv = process.argv.slice(1);
4
4
  const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
@@ -64,8 +64,8 @@ child.on("error", (e) => {
64
64
  if (!child.pid) finish(127, null, String(e && e.message));
65
65
  });
66
66
  child.on("exit", (code, signal) => finish(code, signal));
67
- `});var xr=a(()=>{"use strict";ae();d();x()});var Rr=a(()=>{"use strict";le();G()});var vr=a(()=>{"use strict"});var ra,ta,br=a(()=>{"use strict";re();ra=10*6e4,ta=60*6e4});var Er=a(()=>{"use strict"});var Pe=a(()=>{"use strict"});var Sr=a(()=>{"use strict"});var Cr=a(()=>{"use strict";Pe();Sr()});var Or=a(()=>{"use strict";fr();kr();xr();x();le();Rr();vr();br();Er();Cr();Pe();d()});var Ar=a(()=>{"use strict";Or();d()});var en,rn,wr=a(()=>{"use strict";ir();A();O();te();ie();Oe();ae();pr();Ar();d();en=500*1024*1024,rn=4*1024*1024*1024});var ie=a(()=>{"use strict";wr()});import{homedir as tn}from"node:os";import nn from"node:path";var Pr,Ie=a(()=>{"use strict";Pr=nn.join(tn(),".kynver",".env")});var Ir=a(()=>{"use strict"});var Nr=a(()=>{"use strict";Ir()});var Tr=a(()=>{"use strict"});var Dr=a(()=>{"use strict";d()});var Ne=a(()=>{"use strict";Nr();Tr();Dr()});var Kr=a(()=>{"use strict"});var Wr=a(()=>{"use strict";Kr()});var ce=a(()=>{"use strict";Ie();E();A();Ne();Wr()});var Mr=a(()=>{"use strict";O();O()});var Br=a(()=>{"use strict";Ie();Ne();ce()});var Te=a(()=>{"use strict"});var Ur=a(()=>{"use strict";Ee();O();Mr();A();ce();Br();Se();Te();oe()});function P(e){let r=e.trim().toLowerCase();return fn[r]??r}var Lr,mn,fn,ue=a(()=>{"use strict";Lr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],mn=Lr.join("|"),fn={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Fr=a(()=>{"use strict";E()});var $r=a(()=>{"use strict";Fr()});var Hr=a(()=>{"use strict"});var jr=a(()=>{"use strict";Hr()});import{existsSync as hn,mkdirSync as jc,readFileSync as yn,writeFileSync as Vc}from"node:fs";import{homedir as _n,totalmem as Gc}from"node:os";import De from"node:path";function kn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function xn(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!er(v(r))?e:{...e,defaultBase:Qe}}function Rn(){if(!hn(Vr))return null;try{return JSON.parse(yn(Vr,"utf8"))}catch{return null}}function W(){let e=Rn();return e?xn(kn(e)):{}}var Yr,Vr,du,pu,mu,A=a(()=>{"use strict";Ee();E();be();or();Se();O();te();ie();Oe();ce();Ur();ue();oe();$r();Te();jr();Yr=De.join(_n(),".kynver"),Vr=De.join(Yr,"config.json"),du=De.join(Yr,"credentials");pu=500*1024*1024,mu=4*1024*1024*1024});var _t=/^claude[-_]/i,kt=/^(?:opus|sonnet|haiku)\b/i;function Ye(e){let r=e.trim();return _t.test(r)||kt.test(r)}function Ge(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function ke(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function qe(e){return e.trim().toLowerCase().startsWith("gemini-")}function xt(e){return Ge(e)?"codex":Ye(e)?"claude":qe(e)?"gemini":(ke(e),"cursor")}function Rt(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(),o=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:o,rule:o?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:o,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:o,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:o,rule:o?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function vt(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ye(n)||Ge(n)||ke(n)||qe(n)?{lane:t,model:n,provider:xt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function f(e){let r=typeof e=="string"?e.trim():"";return r?Rt(r)??vt(r):null}function xe(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!ke(r.model)):!1}A();var Gr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return Gr[e]}function qr(){return Object.values(Gr)}import{existsSync as bn}from"node:fs";import{homedir as En}from"node:os";import q from"node:path";C();import{createHash as Jr}from"node:crypto";import{statSync as vn}from"node:fs";import{spawnSync as zr}from"node:child_process";function y(e){try{let r=vn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Jr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return Jr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r),i=zr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function de(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r);return zr(o,s,{windowsHide:!0,stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var Sn="codex";function Cn(){let e=En();return[process.env.CODEX_HOME?.trim()?q.join(q.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,q.join(e,".codex","auth.json"),q.join(e,".config","codex","auth.json")].filter(t=>!!t)}function On(e){return q.dirname(e)}function An(e){let r,t;for(let n of Cn()){if(!bn(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:On(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Xr(e=new Date().toISOString()){let r=g(Sn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=An(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as wn}from"node:fs";import{homedir as Pn}from"node:os";import Ke from"node:path";function In(){let e=process.env.HERMES_HOME?.trim(),r=e?Ke.resolve(e):Ke.join(Pn(),".hermes");return Ke.join(r,"auth.json")}function pe(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=In(),o=wn(n),s=de(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function J(e=new Date().toISOString()){let r=Xr(e);if(r.ready)return{...r,path:"codex_cli"};let t=pe(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var Zr=["low","medium","high"],Qr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function et(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Nn(e,r){let t=M(e.providerId),n=M(r.providerId),o=Zr.indexOf(t.costTier)-Zr.indexOf(n.costTier);if(o!==0)return o;let s=Qr[e.binding.authSource]-Qr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function We(e){let r=qr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&et(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Nn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return et(o,e.riskClass)?s.ready||(i=s.note??`${o} not bound`):i=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:i}}import{existsSync as Tn}from"node:fs";import{homedir as Dn}from"node:os";import Kn from"node:path";var Wn="claude";function Mn(){let e=Dn();return[Kn.join(e,".claude",".credentials.json")]}function rt(e=new Date().toISOString()){let r=g(Wn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Mn().find(i=>Tn(i)),o=de(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Gn}from"node:fs";import{homedir as Yn}from"node:os";import L from"node:path";x();import{closeSync as zu,existsSync as Hn,mkdirSync as Xu,openSync as Zu,statSync as Qu,unlinkSync as ed}from"node:fs";d();import U from"node:path";Re();import{existsSync as z,readdirSync as Bn}from"node:fs";import I from"node:path";var Un=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Ln(e){let t=e.split("-")[0].split(".");if(t.length!==3)return null;let[n,o,s]=t;return!n||!o||!s?null:+`${n}${o.padStart(2,"0")}${s.padStart(2,"0")}`}function Fn(e){let r=I.join(e,"versions");if(!z(r))return null;let t=null,n=-1;for(let o of Bn(r,{withFileTypes:!0})){if(!o.isDirectory()||!Un.test(o.name))continue;let s=Ln(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Me(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(z(t)&&z(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=Fn(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.join(o,"index.js");return!z(s)||!z(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function jn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:_(),bundledVersionDir:t}}function tt(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&Hn(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Me(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Me();if(o)return jn(o.nodeExe,o.indexJs,o.versionDir);throw new Error("Cursor Agent on Windows has no headless bundled node.exe under %LOCALAPPDATA%\\cursor-agent\\versions\\\u2026. Run `agent login` / update Cursor Agent CLI, use `--provider claude`, or set KYNVER_CURSOR_AGENT_ROOT to the cursor-agent folder.")}}return{executable:e,prefixArgs:[],shell:!1,detached:_()}}import{spawnSync as Vn}from"node:child_process";function Be(e,r=process.env){try{let t;try{t=tt(e)}catch{t={executable:e,prefixArgs:[]}}let n=Vn(t.executable,[...t.prefixArgs,"status","--format","json"],{encoding:"utf8",windowsHide:!0,timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(n.status!==0)return{ok:!1,note:"agent status: not authenticated"};let o=(n.stdout||"").trim();if(!o)return{ok:!1,note:"agent status: empty response"};let s;try{s=JSON.parse(o)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof s=="object"&&s!==null&&s.isAuthenticated===!0?{ok:!0,note:"agent status: authenticated"}:{ok:!1,note:"agent status: not authenticated"}}catch(t){return{ok:!1,note:t instanceof Error?t.message:"agent status probe failed"}}}function Ue(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Yn();if(r.push(L.join(n,".config","cursor","auth.json")),r.push(L.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(L.join(o,"cursor-agent","auth.json")),s&&r.push(L.join(s,"cursor","auth.json"))}return r}var qn="agent";function nt(e=new Date().toISOString()){let r=g(qn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Ue().find(l=>Gn(l)),o=Be(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Jn,readFileSync as zn}from"node:fs";import{homedir as Xn}from"node:os";import Le from"node:path";var Zn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Qn(){let e=process.env.HERMES_HOME?.trim(),r=e?Le.resolve(e):Le.join(Xn(),".hermes");return Le.join(r,".env")}function eo(e){try{let r=zn(e,"utf8"),t=[];for(let n of Zn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function ot(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Qn(),o=Jn(n),s=o?eo(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function it(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=J(r),n={codex:t,cursor:nt(r),claude:rt(r)},o=Object.values(n).filter(s=>s.ready).length;return{generatedAt:r,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},workerEndpoint:{baseUrlConfigured:!!process.env.KYNVER_WORKER_BASE_URL?.trim(),apiKeyConfigured:!!process.env.KYNVER_WORKER_API_KEY?.trim()},hermes:ot(r),hermesOpenAiCodex:pe(r),codexAdapterPath:t.path,readyCount:o}}var ro=[/\bprivileged\b/i,/\bproduction\s+db\b/i,/\bdb:push\b/i,/\bmigration\b/i,/\bdeploy\b/i,/\bsecrets?\b/i,/\bstripe\b/i,/\[require-approval\]/i,/\[operator-only\]/i],to=[/\borchestration\b/i,/\bplan[- ]?progress\b/i,/\bstatus\s+sync\b/i,/\bheartbeat\b/i,/\bboard[- ]?drain\b/i,/\bmaintenance\b/i,/\[orchestration:\s*low-risk\]/i];function Fe(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function no(e){let r=Fe(e,"executorRef").toLowerCase(),t=Fe(e,"title").toLowerCase(),n=Fe(e,"description").toLowerCase(),o=`${r}
67
+ `});var Rr=a(()=>{"use strict";ae();d();x()});var vr=a(()=>{"use strict";le();G()});var br=a(()=>{"use strict"});var ra,ta,Er=a(()=>{"use strict";re();ra=10*6e4,ta=60*6e4});var Sr=a(()=>{"use strict"});var Ie=a(()=>{"use strict"});var Cr=a(()=>{"use strict"});var Or=a(()=>{"use strict";Ie();Cr()});var Ar=a(()=>{"use strict";gr();xr();Rr();x();le();vr();br();Er();Sr();Or();Ie();d()});var wr=a(()=>{"use strict";Ar();d()});var rn,tn,Pr=a(()=>{"use strict";sr();A();O();te();ie();Ae();ae();mr();wr();d();rn=500*1024*1024,tn=4*1024*1024*1024});var ie=a(()=>{"use strict";Pr()});import{homedir as nn}from"node:os";import on from"node:path";var Ir,Ne=a(()=>{"use strict";Ir=on.join(nn(),".kynver",".env")});var Nr=a(()=>{"use strict"});var Tr=a(()=>{"use strict";Nr()});var Dr=a(()=>{"use strict"});var Kr=a(()=>{"use strict";d()});var Te=a(()=>{"use strict";Tr();Dr();Kr()});var Wr=a(()=>{"use strict"});var Mr=a(()=>{"use strict";Wr()});var ce=a(()=>{"use strict";Ne();E();A();Te();Mr()});var Br=a(()=>{"use strict";O();O()});var Ur=a(()=>{"use strict";Ne();Te();ce()});var De=a(()=>{"use strict"});var Lr=a(()=>{"use strict";Se();O();Br();A();ce();Ur();Ce();De();oe()});function P(e){let r=e.trim().toLowerCase();return gn[r]??r}var Fr,fn,gn,ue=a(()=>{"use strict";Fr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],fn=Fr.join("|"),gn={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var $r=a(()=>{"use strict";E()});var Hr=a(()=>{"use strict";$r()});var jr=a(()=>{"use strict"});var Vr=a(()=>{"use strict";jr()});import{existsSync as yn,mkdirSync as jc,readFileSync as _n,writeFileSync as Vc}from"node:fs";import{homedir as kn,totalmem as Gc}from"node:os";import Ke from"node:path";function xn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function Rn(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!rr(v(r))?e:{...e,defaultBase:er}}function vn(){if(!yn(Yr))return null;try{return JSON.parse(_n(Yr,"utf8"))}catch{return null}}function W(){let e=vn();return e?Rn(xn(e)):{}}var Gr,Yr,du,pu,mu,A=a(()=>{"use strict";Se();E();Ee();ir();Ce();O();te();ie();Ae();ce();Lr();ue();oe();Hr();De();Vr();Gr=Ke.join(kn(),".kynver"),Yr=Ke.join(Gr,"config.json"),du=Ke.join(Gr,"credentials");pu=500*1024*1024,mu=4*1024*1024*1024});var kt=/^claude[-_]/i,xt=/^(?:opus|sonnet|haiku)\b/i;function Ge(e){let r=e.trim();return kt.test(r)||xt.test(r)}function qe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function xe(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Je(e){return e.trim().toLowerCase().startsWith("gemini-")}function Rt(e){return qe(e)?"codex":Ge(e)?"claude":Je(e)?"gemini":(xe(e),"cursor")}function vt(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(),o=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:o,rule:o?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:o,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:o,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:o,rule:o?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function bt(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ge(n)||qe(n)||xe(n)||Je(n)?{lane:t,model:n,provider:Rt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function f(e){let r=typeof e=="string"?e.trim():"";return r?vt(r)??bt(r):null}function Re(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!xe(r.model)):!1}A();var qr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return qr[e]}function Jr(){return Object.values(qr)}import{existsSync as En}from"node:fs";import{homedir as Sn}from"node:os";import q from"node:path";C();import{createHash as zr}from"node:crypto";import{statSync as bn}from"node:fs";import{spawnSync as Xr}from"node:child_process";function y(e){try{let r=bn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return zr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return zr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r),i=Xr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function de(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r);return Xr(o,s,{windowsHide:!0,stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var Cn="codex";function On(){let e=Sn();return[process.env.CODEX_HOME?.trim()?q.join(q.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,q.join(e,".codex","auth.json"),q.join(e,".config","codex","auth.json")].filter(t=>!!t)}function An(e){return q.dirname(e)}function wn(e){let r,t;for(let n of On()){if(!En(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:An(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Zr(e=new Date().toISOString()){let r=g(Cn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=wn(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as Pn}from"node:fs";import{homedir as In}from"node:os";import We from"node:path";function Nn(){let e=process.env.HERMES_HOME?.trim(),r=e?We.resolve(e):We.join(In(),".hermes");return We.join(r,"auth.json")}function pe(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Nn(),o=Pn(n),s=de(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function J(e=new Date().toISOString()){let r=Zr(e);if(r.ready)return{...r,path:"codex_cli"};let t=pe(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var Qr=["low","medium","high"],et={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function rt(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Tn(e,r){let t=M(e.providerId),n=M(r.providerId),o=Qr.indexOf(t.costTier)-Qr.indexOf(n.costTier);if(o!==0)return o;let s=et[e.binding.authSource]-et[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function Me(e){let r=Jr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&rt(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Tn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return rt(o,e.riskClass)?s.ready||(i=s.note??`${o} not bound`):i=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:i}}import{existsSync as Dn}from"node:fs";import{homedir as Kn}from"node:os";import Wn from"node:path";var Mn="claude";function Bn(){let e=Kn();return[Wn.join(e,".claude",".credentials.json")]}function tt(e=new Date().toISOString()){let r=g(Mn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Bn().find(i=>Dn(i)),o=de(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Gn}from"node:fs";import{homedir as Yn}from"node:os";import L from"node:path";x();import{closeSync as zu,existsSync as Hn,mkdirSync as Xu,openSync as Zu,statSync as Qu,unlinkSync as ed}from"node:fs";d();import U from"node:path";ve();import{existsSync as z,readdirSync as Un}from"node:fs";import I from"node:path";var Ln=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Fn(e){let t=e.split("-")[0].split(".");if(t.length!==3)return null;let[n,o,s]=t;return!n||!o||!s?null:+`${n}${o.padStart(2,"0")}${s.padStart(2,"0")}`}function $n(e){let r=I.join(e,"versions");if(!z(r))return null;let t=null,n=-1;for(let o of Un(r,{withFileTypes:!0})){if(!o.isDirectory()||!Ln.test(o.name))continue;let s=Fn(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Be(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(z(t)&&z(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=$n(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.join(o,"index.js");return!z(s)||!z(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function jn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:_(),bundledVersionDir:t}}function nt(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&Hn(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Be(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Be();if(o)return jn(o.nodeExe,o.indexJs,o.versionDir);throw new Error("Cursor Agent on Windows has no headless bundled node.exe under %LOCALAPPDATA%\\cursor-agent\\versions\\\u2026. Run `agent login` / update Cursor Agent CLI, use `--provider claude`, or set KYNVER_CURSOR_AGENT_ROOT to the cursor-agent folder.")}}return{executable:e,prefixArgs:[],shell:!1,detached:_()}}import{spawnSync as Vn}from"node:child_process";function Ue(e,r=process.env){try{let t;try{t=nt(e)}catch{t={executable:e,prefixArgs:[]}}let n=Vn(t.executable,[...t.prefixArgs,"status","--format","json"],{encoding:"utf8",windowsHide:!0,timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(n.status!==0)return{ok:!1,note:"agent status: not authenticated"};let o=(n.stdout||"").trim();if(!o)return{ok:!1,note:"agent status: empty response"};let s;try{s=JSON.parse(o)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof s=="object"&&s!==null&&s.isAuthenticated===!0?{ok:!0,note:"agent status: authenticated"}:{ok:!1,note:"agent status: not authenticated"}}catch(t){return{ok:!1,note:t instanceof Error?t.message:"agent status probe failed"}}}function Le(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Yn();if(r.push(L.join(n,".config","cursor","auth.json")),r.push(L.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(L.join(o,"cursor-agent","auth.json")),s&&r.push(L.join(s,"cursor","auth.json"))}return r}var qn="agent";function ot(e=new Date().toISOString()){let r=g(qn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Le().find(l=>Gn(l)),o=Ue(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Jn,readFileSync as zn}from"node:fs";import{homedir as Xn}from"node:os";import Fe from"node:path";var Zn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Qn(){let e=process.env.HERMES_HOME?.trim(),r=e?Fe.resolve(e):Fe.join(Xn(),".hermes");return Fe.join(r,".env")}function eo(e){try{let r=zn(e,"utf8"),t=[];for(let n of Zn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function it(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Qn(),o=Jn(n),s=o?eo(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function st(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=J(r),n={codex:t,cursor:ot(r),claude:tt(r)},o=Object.values(n).filter(s=>s.ready).length;return{generatedAt:r,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},workerEndpoint:{baseUrlConfigured:!!process.env.KYNVER_WORKER_BASE_URL?.trim(),apiKeyConfigured:!!process.env.KYNVER_WORKER_API_KEY?.trim()},hermes:it(r),hermesOpenAiCodex:pe(r),codexAdapterPath:t.path,readyCount:o}}var ro=[/\bprivileged\b/i,/\bproduction\s+db\b/i,/\bdb:push\b/i,/\bmigration\b/i,/\bdeploy\b/i,/\bsecrets?\b/i,/\bstripe\b/i,/\[require-approval\]/i,/\[operator-only\]/i],to=[/\borchestration\b/i,/\bplan[- ]?progress\b/i,/\bstatus\s+sync\b/i,/\bheartbeat\b/i,/\bboard[- ]?drain\b/i,/\bmaintenance\b/i,/\[orchestration:\s*low-risk\]/i];function $e(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function no(e){let r=$e(e,"executorRef").toLowerCase(),t=$e(e,"title").toLowerCase(),n=$e(e,"description").toLowerCase(),o=`${r}
68
68
  ${t}
69
- ${n}`;return ro.some(s=>s.test(o))?"privileged":r.includes("provider:claude")||r.includes("deep_review")||r.includes("security")||r.includes("landing")||r.includes("review")||t.startsWith("land:")||r.includes("implementer")||r.includes("repair")||t.includes("implement")?"elevated":to.some(s=>s.test(o))?"low":"elevated"}function oo(e){let r=M(e.provider),t=e.escalatedFrom&&e.escalatedReason?`Escalated from ${e.escalatedFrom} (${e.escalatedReason}); using ${r.displayName} (${r.costTier} tier)`:`${r.displayName} selected for ${e.riskClass} orchestration (${r.costTier} tier, auth=${e.authSource})`;return{provider:e.provider,model:e.model,authSource:e.authSource,costTier:r.costTier,riskClass:e.riskClass,costRationale:t,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason}}function io(e){let r=e.inventory??it();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function N(e){let r=oo({provider:e.providerId,model:e.model,authSource:e.binding.authSource,riskClass:e.riskClass,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason});return{provider:e.providerId,model:e.model,rule:r.routingRule,audit:r}}function st(e){let r=e.task??{},t=no(r),n=io({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:J())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=We({inventory:n,riskClass:t});return N(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return N({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return N({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return N({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=We({inventory:n,riskClass:t});if(l)return N({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return N({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}x();d();C();G();var at="kynver",lt=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],so=lt.map(e=>`mcp__${at}__${e}`);G();x();d();C();x();d();C();var me="gpt-5.6-sol";var pp=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me;function lo(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me}var $=lo();x();d();var $e="openai-compatible",Vp=600*1e3;x();d();C();var T="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var fm=600*1e3;var j="venice";var po="venice-uncensored-1-2";var mo="KYNVER_VENICE_DEFAULT_MODEL";function fe(e=process.env){return e[mo]?.trim()||po}var dt=k,Q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function fo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
69
+ ${n}`;return ro.some(s=>s.test(o))?"privileged":r.includes("provider:claude")||r.includes("deep_review")||r.includes("security")||r.includes("landing")||r.includes("review")||t.startsWith("land:")||r.includes("implementer")||r.includes("repair")||t.includes("implement")?"elevated":to.some(s=>s.test(o))?"low":"elevated"}function oo(e){let r=M(e.provider),t=e.escalatedFrom&&e.escalatedReason?`Escalated from ${e.escalatedFrom} (${e.escalatedReason}); using ${r.displayName} (${r.costTier} tier)`:`${r.displayName} selected for ${e.riskClass} orchestration (${r.costTier} tier, auth=${e.authSource})`;return{provider:e.provider,model:e.model,authSource:e.authSource,costTier:r.costTier,riskClass:e.riskClass,costRationale:t,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason}}function io(e){let r=e.inventory??st();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function N(e){let r=oo({provider:e.providerId,model:e.model,authSource:e.binding.authSource,riskClass:e.riskClass,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason});return{provider:e.providerId,model:e.model,rule:r.routingRule,audit:r}}function at(e){let r=e.task??{},t=no(r),n=io({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:J())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=Me({inventory:n,riskClass:t});return N(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return N({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return N({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return N({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=Me({inventory:n,riskClass:t});if(l)return N({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return N({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}x();d();C();G();var lt="kynver",ct=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],so=ct.map(e=>`mcp__${lt}__${e}`);G();x();d();C();x();d();C();var fe="gpt-5.6-sol";var mp=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||fe;function lo(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||fe}var $=lo();x();d();var He="openai-compatible",Gp=600*1e3;x();d();C();var T="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var ym=600*1e3;var j="venice";var po="venice-uncensored-1-2";var mo="KYNVER_VENICE_DEFAULT_MODEL";function ge(e=process.env){return e[mo]?.trim()||po}var pt=k,Q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function fo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
70
70
  ${m(e,"description")}
71
- ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ct(e){return e.toLowerCase()}function ye(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||dt}function ge(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?T:"cursor"}function go(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Q,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="venice"||t==="venice-ai"||t==="venice_ai"?{model:fe(),provider:j,rule:n&&n!==j?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function ut(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var ho=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function pt(e,r,t){return ho.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function mt(e){let r=ct(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=ct(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=pt(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:$e,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:venice")||r.startsWith("venice:")){let i=f(m(e,"executorRef"));return{provider:j,...i?.model?{model:i.model}:{model:fe()},rule:"lane:venice"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:T,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return ut(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(ut(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let s=ye();return{model:s,provider:ge(s),rule:"default:global"}}function yo(e){return e?f(m(e,"executorRef")):null}function _o(e){switch(P(e)){case T:case H:return D();case j:return fe();case"claude":return k;case"codex":return $;case"cursor":return Q;default:return}}var He="explicit:cli_provider",ft="config:worker_provider";function gt(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:_o(n)??e.model,rule:t}}function ko(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==He?e:gt(e,t,He)}function xo(e,r){if(r.explicitProvider?.trim()||je(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:gt(e,n,ft)}function Ro(e){let r,t=yo(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let c=e.explicitModel.trim(),u=go(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||ge(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&he(e.task)){let c=fo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let V=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ve=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",_e=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=pt(V,Ve,_e),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=mt(e.task);r={...c,requestedModel:c.model}}else{let c=ye();r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"default:global",requestedModel:c}}r=ko(r,e.explicitProvider),r=xo(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=ht({routing:r,task:e.task,explicitProvider:e.explicitProvider??(s?r.provider:void 0),explicitProviderIsOperatorOverride:!!e.explicitProviderIsOperatorOverride||s});if(!e.task||Object.keys(e.task).length===0||i.rule==="explicit:model_provider_alias"||i.rule==="explicit:model_provider_alias_overrode_provider"||i.rule==="explicit:cli"||i.rule===He||i.rule===ft||R(i.provider)&&(e.explicitProviderIsOperatorOverride||he(e.task))||i.provider===$e||i.provider===T||i.provider===H||i.provider===j||i.provider==="codex")return i;let l=st({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function vo(e,r,t){return e||r||t||ye()||k}ue();ue();var F="cursor",bo=new Set(["claude","opus","anthropic"]),Eo=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function ee(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return bo.has(r)?!0:r.includes("claude")||r.includes("opus")}function he(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=ee(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(ee(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(So(n.model)))return!0;let o=ee(e,"description");if(Eo.some(i=>i.test(o)))return!0;let s=ee(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function So(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Co(e,r){return{provider:F,model:Q,rule:`policy:cursor_default${r}`,requestedModel:e}}var Oo=["explicit:","executor_ref:","factory:","task:"];function Ao(e){return Oo.some(r=>e.startsWith(r))}function je(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(ee(e,"executorRef"))?.provider?!0:he(e)}function ht(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ao(r.rule)||je(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Co(r.model,o)}function wo(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function yt(e){return e?.trim()||void 0}function Po(e){let r=wo(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=yt(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let c=e.routing.provider,u=yt(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&xe(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Q as CURSOR_DEFAULT_MODEL,dt as GLOBAL_DEFAULT_MODEL,Po as assessDispatchModelGuard,xe as executorRefRequestsNonCursorWorker,mt as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,ye as resolveGlobalDefaultModel,vo as resolveModelFallback,Ro as resolveWorkerLaunch};
71
+ ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ut(e){return e.toLowerCase()}function _e(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||pt}function he(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?T:"cursor"}function go(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Q,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="venice"||t==="venice-ai"||t==="venice_ai"?{model:ge(),provider:j,rule:n&&n!==j?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function dt(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var ho=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function mt(e,r,t){return ho.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function ft(e){let r=ut(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=ut(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=mt(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:He,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:venice")||r.startsWith("venice:")){let i=f(m(e,"executorRef"));return{provider:j,...i?.model?{model:i.model}:{model:ge()},rule:"lane:venice"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:T,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return dt(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(dt(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let s=_e();return{model:s,provider:he(s),rule:"default:global"}}function yo(e){return e?f(m(e,"executorRef")):null}function _o(e){switch(P(e)){case T:case H:return D();case j:return ge();case"claude":return k;case"codex":return $;case"cursor":return Q;default:return}}var je="explicit:cli_provider",gt="config:worker_provider";function ht(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:_o(n)??e.model,rule:t}}function ko(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==je?e:ht(e,t,je)}function xo(e,r){if(r.explicitProvider?.trim()||Ve(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:ht(e,n,gt)}function Ro(e){let r,t=yo(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let c=e.explicitModel.trim(),u=go(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||he(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||he(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&ye(e.task)){let c=fo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let V=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ye=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",ke=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=mt(V,Ye,ke),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=ft(e.task);r={...c,requestedModel:c.model}}else{let c=_e();r={model:c,provider:e.explicitProvider?.trim()||he(c),rule:"default:global",requestedModel:c}}r=ko(r,e.explicitProvider),r=xo(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=yt({routing:r,task:e.task,explicitProvider:e.explicitProvider??(s?r.provider:void 0),explicitProviderIsOperatorOverride:!!e.explicitProviderIsOperatorOverride||s});if(!e.task||Object.keys(e.task).length===0||i.rule==="explicit:model_provider_alias"||i.rule==="explicit:model_provider_alias_overrode_provider"||i.rule==="explicit:cli"||i.rule===je||i.rule===gt||R(i.provider)&&(e.explicitProviderIsOperatorOverride||ye(e.task))||i.provider===He||i.provider===T||i.provider===H||i.provider===j||i.provider==="codex")return i;let l=at({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function vo(e,r,t){return e||r||t||_e()||k}ue();ue();var F="cursor",bo=new Set(["claude","opus","anthropic"]),Eo=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function ee(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return bo.has(r)?!0:r.includes("claude")||r.includes("opus")}function ye(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=ee(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(ee(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(So(n.model)))return!0;let o=ee(e,"description");if(Eo.some(i=>i.test(o)))return!0;let s=ee(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function So(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Co(e,r){return{provider:F,model:Q,rule:`policy:cursor_default${r}`,requestedModel:e}}var Oo=["explicit:","executor_ref:","factory:","task:"];function Ao(e){return Oo.some(r=>e.startsWith(r))}function Ve(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(ee(e,"executorRef"))?.provider?!0:ye(e)}function yt(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ao(r.rule)||Ve(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Co(r.model,o)}function wo(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function _t(e){return e?.trim()||void 0}function Po(e){let r=wo(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=_t(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let c=e.routing.provider,u=_t(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&Re(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Q as CURSOR_DEFAULT_MODEL,pt as GLOBAL_DEFAULT_MODEL,Po as assessDispatchModelGuard,Re as executorRefRequestsNonCursorWorker,ft as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,_e as resolveGlobalDefaultModel,vo as resolveModelFallback,Ro as resolveWorkerLaunch};
@@ -1,4 +1,4 @@
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 ie(e){let r=e[Jr];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function k(e,r={}){return Hr.has(e)?!0:Gr.has(e)||r.operatorAllow?.has(e)||qr.some(t=>e.endsWith(t))?!1:jr.some(t=>e.endsWith(t))}function we(e){let r=ie(e);return Object.keys(e).filter(t=>k(t,{operatorAllow:r})).sort()}function Pe(e){let r=ie(e);return r.size===0?[]:Object.keys(e).filter(t=>r.has(t)&&!k(t,{operatorAllow:r})&&k(t)).sort()}function T(e){let r=ie(e),t={...e};for(let n of Object.keys(t))k(n,{operatorAllow:r})&&delete t[n];return t}function zr(e){let r=we(e),t=Pe(e);return{forbiddenPresent:r,safe:r.length===0,...t.length?{operatorAllowedActive:t}:{}}}var Vr,Hr,jr,Yr,Gr,qr,Jr,D=o(()=>{"use strict";Vr=["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"],Hr=new Set(Vr),jr=["_SECRET","_API_KEY","_KEK","_KEY","_TOKEN","_PASSWORD","_PASSPHRASE","_SALT"],Yr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Gr=new Set(Yr),qr=["_PUBLIC_KEY"],Jr="KYNVER_WORKER_ENV_ALLOW"});var f=o(()=>{"use strict"});var Me=o(()=>{"use strict"});function M(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=o(()=>{"use strict";Me()});var B=o(()=>{"use strict";f();a();D()});var le=o(()=>{"use strict";B()});var ce=o(()=>{"use strict";B();f();le()});var g=o(()=>{"use strict"});var Ue=o(()=>{"use strict";g()});var ue=o(()=>{"use strict";a()});var h=o(()=>{"use strict"});var L=o(()=>{"use strict"});var Be=o(()=>{"use strict"});var fo,go,de=o(()=>{"use strict";fo=25*1024*1024*1024,go=12*1024*1024*1024});var xo,Ro,Le=o(()=>{"use strict";de();xo=5*1024*1024*1024,Ro=10*1024*1024*1024});var Oo,Ao,pe=o(()=>{"use strict";Le();de();Oo=30*1024*1024*1024,Ao=15*1024*1024*1024});var Fe=o(()=>{"use strict";a()});import mt from"node:path";var Mo,fe=o(()=>{"use strict";f();Fe();Mo=mt.join(".openclaw","harness")});var $=o(()=>{"use strict";y();h();L();V();fe()});var He=o(()=>{"use strict";y();fe();$();a()});var Y=o(()=>{"use strict";He();a()});var Ye=o(()=>{"use strict";Y();a()});var Ge=o(()=>{"use strict"});var qe=o(()=>{"use strict";Ge();a()});var Je=o(()=>{"use strict"});var ze=o(()=>{"use strict";Je()});var G=o(()=>{"use strict"});var q,ge,_i,E=o(()=>{"use strict";q="claude-sonnet-5-5",ge="claude-opus-5-5",_i={[q]:"claude-sonnet-4-6",[ge]:"claude-opus-4-8"}});var Xe=o(()=>{"use strict"});var Ze=o(()=>{"use strict"});var Qe=o(()=>{"use strict";ze();a();G();E();Xe();Ze()});var Ui,u=o(()=>{"use strict";Ui=String.raw`"use strict";
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 se(e){let r=e[zr];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function k(e,r={}){return jr.has(e)?!0:qr.has(e)||r.operatorAllow?.has(e)||Jr.some(t=>e.endsWith(t))?!1:Yr.some(t=>e.endsWith(t))}function Pe(e){let r=se(e);return Object.keys(e).filter(t=>k(t,{operatorAllow:r})).sort()}function Ie(e){let r=se(e);return r.size===0?[]:Object.keys(e).filter(t=>r.has(t)&&!k(t,{operatorAllow:r})&&k(t)).sort()}function T(e){let r=se(e),t={...e};for(let n of Object.keys(t))k(n,{operatorAllow:r})&&delete t[n];return t}function Xr(e){let r=Pe(e),t=Ie(e);return{forbiddenPresent:r,safe:r.length===0,...t.length?{operatorAllowedActive:t}:{}}}var Hr,jr,Yr,Gr,qr,Jr,zr,D=o(()=>{"use strict";Hr=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],jr=new Set(Hr),Yr=["_SECRET","_API_KEY","_KEK","_KEY","_TOKEN","_PASSWORD","_PASSPHRASE","_SALT"],Gr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],qr=new Set(Gr),Jr=["_PUBLIC_KEY"],zr="KYNVER_WORKER_ENV_ALLOW"});var f=o(()=>{"use strict"});var Ue=o(()=>{"use strict"});function M(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=o(()=>{"use strict";Ue()});var B=o(()=>{"use strict";f();a();D()});var ce=o(()=>{"use strict";B()});var ue=o(()=>{"use strict";B();f();ce()});var g=o(()=>{"use strict"});var Be=o(()=>{"use strict";g()});var de=o(()=>{"use strict";a()});var h=o(()=>{"use strict"});var L=o(()=>{"use strict"});var Le=o(()=>{"use strict"});var fo,go,pe=o(()=>{"use strict";fo=25*1024*1024*1024,go=12*1024*1024*1024});var xo,Ro,Fe=o(()=>{"use strict";pe();xo=5*1024*1024*1024,Ro=10*1024*1024*1024});var Oo,Ao,me=o(()=>{"use strict";Fe();pe();Oo=30*1024*1024*1024,Ao=15*1024*1024*1024});var $e=o(()=>{"use strict";a()});import ft from"node:path";var Mo,ge=o(()=>{"use strict";f();$e();Mo=ft.join(".openclaw","harness")});var $=o(()=>{"use strict";y();h();L();V();ge()});var je=o(()=>{"use strict";y();ge();$();a()});var Y=o(()=>{"use strict";je();a()});var Ge=o(()=>{"use strict";Y();a()});var qe=o(()=>{"use strict"});var Je=o(()=>{"use strict";qe();a()});var ze=o(()=>{"use strict"});var Xe=o(()=>{"use strict";ze()});var G=o(()=>{"use strict"});var q,he,_i,E=o(()=>{"use strict";q="claude-sonnet-5-5",he="claude-opus-5-5",_i={[q]:"claude-sonnet-4-6",[he]:"claude-opus-4-8"}});var Ze=o(()=>{"use strict"});var Qe=o(()=>{"use strict"});var er=o(()=>{"use strict";Xe();a();G();E();Ze();Qe()});var Ui,u=o(()=>{"use strict";Ui=String.raw`"use strict";
2
2
  const cp = require("child_process"), fs = require("fs");
3
3
  const argv = process.argv.slice(1);
4
4
  const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
@@ -64,5 +64,5 @@ child.on("error", (e) => {
64
64
  if (!child.pid) finish(127, null, String(e && e.message));
65
65
  });
66
66
  child.on("exit", (code, signal) => finish(code, signal));
67
- `});var er=o(()=>{"use strict";Y();a();u()});var rr=o(()=>{"use strict";G();E()});var tr=o(()=>{"use strict"});var es,rs,nr=o(()=>{"use strict";B();es=10*6e4,rs=60*6e4});var or=o(()=>{"use strict"});var he=o(()=>{"use strict"});var ir=o(()=>{"use strict"});var sr=o(()=>{"use strict";he();ir()});var ar=o(()=>{"use strict";qe();Qe();er();u();G();rr();tr();nr();or();sr();he();a()});var lr=o(()=>{"use strict";ar();a()});var Ct,Ot,cr=o(()=>{"use strict";Be();y();h();L();V();pe();Y();Ye();lr();a();Ct=500*1024*1024,Ot=4*1024*1024*1024});var V=o(()=>{"use strict";cr()});import{homedir as At}from"node:os";import wt from"node:path";var ur,ye=o(()=>{"use strict";ur=wt.join(At(),".kynver",".env")});var dr=o(()=>{"use strict"});var pr=o(()=>{"use strict";dr()});var mr=o(()=>{"use strict"});var fr=o(()=>{"use strict";a()});var ve=o(()=>{"use strict";pr();mr();fr()});var gr=o(()=>{"use strict"});var hr=o(()=>{"use strict";gr()});var J=o(()=>{"use strict";ye();f();y();ve();hr()});var yr=o(()=>{"use strict";h();h()});var vr=o(()=>{"use strict";ye();ve();J()});var _e=o(()=>{"use strict"});var _r=o(()=>{"use strict";ce();h();yr();y();J();vr();ue();_e();$()});function S(e){let r=e.trim().toLowerCase();return Bt[r]??r}var xr,Ut,Bt,z=o(()=>{"use strict";xr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],Ut=xr.join("|"),Bt={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Rr=o(()=>{"use strict";f()});var kr=o(()=>{"use strict";Rr()});var br=o(()=>{"use strict"});var Er=o(()=>{"use strict";br()});import{homedir as Ft,totalmem as jl}from"node:os";import xe from"node:path";var Sr,cc,uc,dc,pc,y=o(()=>{"use strict";ce();f();le();Ue();ue();h();L();V();pe();J();_r();z();$();kr();_e();Er();Sr=xe.join(Ft(),".kynver"),cc=xe.join(Sr,"config.json"),uc=xe.join(Sr,"credentials"),dc=500*1024*1024,pc=4*1024*1024*1024});D();D();var se="KYNVER_NO_PROD_DB_CREDENTIALS",Xr=["KYNVER_ENV_FILE"],Zr=new Set(["1","true","yes","on"]);function Ne(e){let r=e[se]?.trim().toLowerCase();return r!==void 0&&Zr.has(r)}function p(e,r={}){let t=T(e);if(!r.reviewWorker)return t;let n={...t,[se]:"1"};for(let i of Xr)delete n[i];return n}var Ie=["DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL"];function Qr(e,r={}){let t=p(e,r),n=Object.keys(t).filter(c=>c.endsWith("_SECRET")||c.endsWith("_API_KEY")||Ie.includes(c)),i=Ie.every(c=>t[c]===void 0),s=r.reviewWorker?t.KYNVER_ENV_FILE===void 0:!0,l=Ne(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 et="expert-lane-pr-review:",rt="plan-review-task",tt="scheduledjob:",W=new Set(["lorentz","dalton","rhea","sentinel"]);function nt(e){if(!e)return null;let r=e.trim().toLowerCase();return r.length?r:null}function ae(e){return/\b(deep[- ]?review|plan review|review .*plan|security review|red[- ]team|lb\d+|runtime verification)\b/.test(e)}function ot(e,r){return e.startsWith("factory:")?e.includes("lb")||ae(r):!1}function it(e){let r=(e.executorRef??"").toLowerCase(),t=(e.title??"").toLowerCase(),n=(e.description??"").toLowerCase(),i=`${t}
68
- ${n}`,s=nt(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(et)||r===rt||r.startsWith("daemon-review:")||s&&W.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||ot(r,i)||ae(i))||r.startsWith(tt)&&e.parentTaskId&&s&&W.has(s)||e.planId&&!e.parentTaskId&&s&&W.has(s)&&ae(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&W.has(s))}var st=/^claude[-_]/i,at=/^(?:opus|sonnet|haiku)\b/i;function Te(e){let r=e.trim();return st.test(r)||at.test(r)}function De(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function We(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ke(e){return e.trim().toLowerCase().startsWith("gemini-")}function lt(e){return De(e)?"codex":Te(e)?"claude":Ke(e)?"gemini":(We(e),"cursor")}function ct(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==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:i,rule:"executor_ref:provider_venice"}: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 ut(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?Te(n)||De(n)||We(n)||Ke(n)?{lane:t,model:n,provider:lt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function K(e){let r=typeof e=="string"?e.trim():"";return r?ct(r)??ut(r):null}y();g();u();a();u();a();g();E();var Ar="kynver",wr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],qt=wr.map(e=>`mcp__${Ar}__${e}`);E();u();a();g();u();a();g();var Q="gpt-5.6-sol";var Hu=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q;function zt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q}var Xt=zt();u();a();var bd=600*1e3;u();a();g();var Yd=600*1e3;var Pr="composer-2.5";z();z();var m="cursor",rn=new Set(["claude","opus","anthropic"]),tn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function A(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function d(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return rn.has(r)?!0:r.includes("claude")||r.includes("opus")}function Re(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&d(r))return!0;let t=A(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=K(A(e,"executorRef"));if(n?.provider&&d(n.provider)||n?.model&&d(nn(n.model)))return!0;let i=A(e,"description");if(tn.some(l=>l.test(i)))return!0;let s=A(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function nn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function on(e,r){return{provider:m,model:Pr,rule:`policy:cursor_default${r}`,requestedModel:e}}var sn=["explicit:","executor_ref:","factory:","task:"];function an(e){return sn.some(r=>e.startsWith(r))}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||K(A(e,"executorRef"))?.provider?!0:Re(e)}function Ir(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&d(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||an(r.rule)||ke(t)||!d(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return on(r.model,i)}function ln(e,r=m){let t=e?.trim();return t?S(t):r}function cn(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(m)?[...new Set(r.map(t=>d(t)?m:t))]:r.every(t=>d(t))?[m]:r}var un=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,dn=/\b(npm run build\b|next build\b)\b/i,pn=/\b(vercel (build|deploy|--prod))\b/i,mn=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function be(e){let r=e.trim();return r?mn.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:pn.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:dn.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:un.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 ee="heavy_verification_token_required";import{spawnSync as In}from"node:child_process";a();import{closeSync as _n,existsSync as P,mkdirSync as xn,openSync as Rn,readdirSync as Wr,readFileSync as kn,statSync as bn,unlinkSync as Kr,writeFileSync as En}from"node:fs";import Ce from"node:path";import{mkdirSync as gn}from"node:fs";import{tmpdir as hn}from"node:os";import re from"node:path";import{homedir as fn,tmpdir as _p}from"node:os";import Nr from"node:path";function Tr(){let e=process.env.KYNVER_STATE_ROOT;return e?Nr.resolve(e):Nr.join(fn(),".kynver","state")}function yn(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function vn(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?re.resolve(e):yn()?re.join(hn(),"kynver","state","heavy-verification"):re.join(Tr(),"heavy-verification")}function Ee(){return re.join(vn(),"slots")}function w(){let e=Ee();return gn(e,{recursive:!0}),e}var I=120*6e4,Dr=1;function Sn(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function ne(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function te(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?Sn(e,Dr):Dr}function Cn(e){return`slot-${e}`}function On(e,r=Ee()){return Ce.join(r,`${e}.json`)}function Oe(e){if(!P(e))return null;try{let r=JSON.parse(kn(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 Mr(e,r=I){if(!e||!M(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function Ur(e,r){let t=Oe(e);if(t)return Mr(t,r);if(!P(e))return!0;try{return Date.now()-bn(e).mtimeMs>r}catch{return!0}}function An(e,r){if(Ur(e,r))try{Kr(e)}catch{}}function wn(e){return xn(e,{recursive:!0}),e}function Ae(e={}){let r=wn(e.slotsDir??w()),t=e.staleMs??I,n=0;for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Ce.join(r,i),l=P(s);An(s,t),l&&!P(s)&&(n+=1)}return n}function Pn(e={}){let r=e.slotsDir??w(),t=e.staleMs??I;Ae({slotsDir:r,staleMs:t});let n=[];for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Oe(Ce.join(r,i));s&&!Mr(s,t)&&n.push(s)}return n}function Se(e={}){return Pn(e).length}function N(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let c=Cn(l),x=On(c,t),Lr=Oe(x);if(Ur(x,n))try{Kr(x)}catch{}else if(Lr||P(x))continue;let Fr={slotId:c,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=Rn(x,"wx");En(R,JSON.stringify(Fr,null,2),"utf8"),_n(R);let $r=Se({slotsDir:t,staleMs:n});return{admitted:!0,slotId:c,activeSlots:$r,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=Se({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function oe(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});let s=Se({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 Nn(e){e<=0||In(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Br(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=N(e,n);for(;!s.admitted&&Date.now()<i;)Nn(Math.min(t,i-Date.now())),s=N(e,n);return s}function Tn(e,r={}){let t=be(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...oe(e),slotId:null}};if(ne())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...oe(e),slotId:null}};let n=r.waitMs??0,i=n>0?Br(e,n,r.pollMs):N(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:ee,commandClass:t.commandClass,reason:t.reason??i.reason??ee,verificationGate:i}}export{m as DEFAULT_WORKER_PROVIDER,ee as HEAVY_VERIFICATION_TOKEN_REQUIRED,se as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,Qr as auditReviewWorkerCredentialScope,zr as auditWorkerEnv,p as buildWorkerSpawnEnv,be as classifyHeavyShellCommand,Ir as enforceCursorWorkerProvider,Tn as gateWorkerShellCommand,d as isClaudeFamilyProvider,k as isForbiddenWorkerEnvKey,it as isHarnessExpertReviewWorker,Ne as isNoProdCredentialReviewEnvironment,we as listForbiddenWorkerEnvKeys,Pe as listOperatorAllowedWorkerEnvKeys,S as normalizeWorkerProviderName,cn as preferCursorExecutor,ln as resolveConfiguredWorkerProvider,T as scrubWorkerEnv,Re as taskAllowsClaudeWorker,ke as taskExpressesWorkerProviderPreference};
67
+ `});var rr=o(()=>{"use strict";Y();a();u()});var tr=o(()=>{"use strict";G();E()});var nr=o(()=>{"use strict"});var es,rs,or=o(()=>{"use strict";B();es=10*6e4,rs=60*6e4});var ir=o(()=>{"use strict"});var ye=o(()=>{"use strict"});var sr=o(()=>{"use strict"});var ar=o(()=>{"use strict";ye();sr()});var lr=o(()=>{"use strict";Je();er();rr();u();G();tr();nr();or();ir();ar();ye();a()});var cr=o(()=>{"use strict";lr();a()});var Ot,At,ur=o(()=>{"use strict";Le();y();h();L();V();me();Y();Ge();cr();a();Ot=500*1024*1024,At=4*1024*1024*1024});var V=o(()=>{"use strict";ur()});import{homedir as wt}from"node:os";import Pt from"node:path";var dr,ve=o(()=>{"use strict";dr=Pt.join(wt(),".kynver",".env")});var pr=o(()=>{"use strict"});var mr=o(()=>{"use strict";pr()});var fr=o(()=>{"use strict"});var gr=o(()=>{"use strict";a()});var _e=o(()=>{"use strict";mr();fr();gr()});var hr=o(()=>{"use strict"});var yr=o(()=>{"use strict";hr()});var J=o(()=>{"use strict";ve();f();y();_e();yr()});var vr=o(()=>{"use strict";h();h()});var _r=o(()=>{"use strict";ve();_e();J()});var xe=o(()=>{"use strict"});var xr=o(()=>{"use strict";ue();h();vr();y();J();_r();de();xe();$()});function S(e){let r=e.trim().toLowerCase();return Lt[r]??r}var Rr,Bt,Lt,z=o(()=>{"use strict";Rr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],Bt=Rr.join("|"),Lt={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","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var kr=o(()=>{"use strict";f()});var br=o(()=>{"use strict";kr()});var Er=o(()=>{"use strict"});var Sr=o(()=>{"use strict";Er()});import{homedir as $t,totalmem as jl}from"node:os";import Re from"node:path";var Cr,cc,uc,dc,pc,y=o(()=>{"use strict";ue();f();ce();Be();de();h();L();V();me();J();xr();z();$();br();xe();Sr();Cr=Re.join($t(),".kynver"),cc=Re.join(Cr,"config.json"),uc=Re.join(Cr,"credentials"),dc=500*1024*1024,pc=4*1024*1024*1024});D();D();var ae="KYNVER_NO_PROD_DB_CREDENTIALS",Zr=["KYNVER_ENV_FILE"],Qr=new Set(["1","true","yes","on"]);function Te(e){let r=e[ae]?.trim().toLowerCase();return r!==void 0&&Qr.has(r)}function p(e,r={}){let t=T(e);if(!r.reviewWorker)return t;let n={...t,[ae]:"1"};for(let i of Zr)delete n[i];return n}var Ne=["DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL"];function et(e,r={}){let t=p(e,r),n=Object.keys(t).filter(c=>c.endsWith("_SECRET")||c.endsWith("_API_KEY")||Ne.includes(c)),i=Ne.every(c=>t[c]===void 0),s=r.reviewWorker?t.KYNVER_ENV_FILE===void 0:!0,l=Te(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 rt="expert-lane-pr-review:",tt="plan-review-task",nt="scheduledjob:",W=new Set(["lorentz","dalton","rhea","sentinel"]);function ot(e){if(!e)return null;let r=e.trim().toLowerCase();return r.length?r:null}function le(e){return/\b(deep[- ]?review|plan review|review .*plan|security review|red[- ]team|lb\d+|runtime verification)\b/.test(e)}function it(e,r){return e.startsWith("factory:")?e.includes("lb")||le(r):!1}function st(e){let r=(e.executorRef??"").toLowerCase(),t=(e.title??"").toLowerCase(),n=(e.description??"").toLowerCase(),i=`${t}
68
+ ${n}`,s=ot(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(rt)||r===tt||r.startsWith("daemon-review:")||s&&W.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||it(r,i)||le(i))||r.startsWith(nt)&&e.parentTaskId&&s&&W.has(s)||e.planId&&!e.parentTaskId&&s&&W.has(s)&&le(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&W.has(s))}var at=/^claude[-_]/i,lt=/^(?:opus|sonnet|haiku)\b/i;function De(e){let r=e.trim();return at.test(r)||lt.test(r)}function We(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Ke(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Me(e){return e.trim().toLowerCase().startsWith("gemini-")}function ct(e){return We(e)?"codex":De(e)?"claude":Me(e)?"gemini":(Ke(e),"cursor")}function ut(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==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:i,rule:"executor_ref:provider_venice"}: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 dt(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?De(n)||We(n)||Ke(n)||Me(n)?{lane:t,model:n,provider:ct(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function K(e){let r=typeof e=="string"?e.trim():"";return r?ut(r)??dt(r):null}y();g();u();a();u();a();g();E();var wr="kynver",Pr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],qt=Pr.map(e=>`mcp__${wr}__${e}`);E();u();a();g();u();a();g();var ee="gpt-5.6-sol";var ju=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||ee;function zt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||ee}var Xt=zt();u();a();var Sd=600*1e3;u();a();g();var Jd=600*1e3;var Ir="composer-2.5";z();z();var m="cursor",rn=new Set(["claude","opus","anthropic"]),tn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function A(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function d(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return rn.has(r)?!0:r.includes("claude")||r.includes("opus")}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&d(r))return!0;let t=A(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=K(A(e,"executorRef"));if(n?.provider&&d(n.provider)||n?.model&&d(nn(n.model)))return!0;let i=A(e,"description");if(tn.some(l=>l.test(i)))return!0;let s=A(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function nn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function on(e,r){return{provider:m,model:Ir,rule:`policy:cursor_default${r}`,requestedModel:e}}var sn=["explicit:","executor_ref:","factory:","task:"];function an(e){return sn.some(r=>e.startsWith(r))}function be(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||K(A(e,"executorRef"))?.provider?!0:ke(e)}function Nr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&d(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||an(r.rule)||be(t)||!d(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return on(r.model,i)}function ln(e,r=m){let t=e?.trim();return t?S(t):r}function cn(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(m)?[...new Set(r.map(t=>d(t)?m:t))]:r.every(t=>d(t))?[m]:r}var un=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,dn=/\b(npm run build\b|next build\b)\b/i,pn=/\b(vercel (build|deploy|--prod))\b/i,mn=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function Ee(e){let r=e.trim();return r?mn.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:pn.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:dn.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:un.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 re="heavy_verification_token_required";import{spawnSync as In}from"node:child_process";a();import{closeSync as _n,existsSync as P,mkdirSync as xn,openSync as Rn,readdirSync as Kr,readFileSync as kn,statSync as bn,unlinkSync as Mr,writeFileSync as En}from"node:fs";import Oe from"node:path";import{mkdirSync as gn}from"node:fs";import{tmpdir as hn}from"node:os";import te from"node:path";import{homedir as fn,tmpdir as kp}from"node:os";import Tr from"node:path";function Dr(){let e=process.env.KYNVER_STATE_ROOT;return e?Tr.resolve(e):Tr.join(fn(),".kynver","state")}function yn(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function vn(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?te.resolve(e):yn()?te.join(hn(),"kynver","state","heavy-verification"):te.join(Dr(),"heavy-verification")}function Se(){return te.join(vn(),"slots")}function w(){let e=Se();return gn(e,{recursive:!0}),e}var I=120*6e4,Wr=1;function Sn(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function oe(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function ne(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?Sn(e,Wr):Wr}function Cn(e){return`slot-${e}`}function On(e,r=Se()){return Oe.join(r,`${e}.json`)}function Ae(e){if(!P(e))return null;try{let r=JSON.parse(kn(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 Ur(e,r=I){if(!e||!M(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=Ae(e);if(t)return Ur(t,r);if(!P(e))return!0;try{return Date.now()-bn(e).mtimeMs>r}catch{return!0}}function An(e,r){if(Br(e,r))try{Mr(e)}catch{}}function wn(e){return xn(e,{recursive:!0}),e}function we(e={}){let r=wn(e.slotsDir??w()),t=e.staleMs??I,n=0;for(let i of Kr(r)){if(!i.endsWith(".json"))continue;let s=Oe.join(r,i),l=P(s);An(s,t),l&&!P(s)&&(n+=1)}return n}function Pn(e={}){let r=e.slotsDir??w(),t=e.staleMs??I;we({slotsDir:r,staleMs:t});let n=[];for(let i of Kr(r)){if(!i.endsWith(".json"))continue;let s=Ae(Oe.join(r,i));s&&!Ur(s,t)&&n.push(s)}return n}function Ce(e={}){return Pn(e).length}function N(e,r={}){if(oe())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:ne(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??ne();we({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let c=Cn(l),x=On(c,t),Fr=Ae(x);if(Br(x,n))try{Mr(x)}catch{}else if(Fr||P(x))continue;let $r={slotId:c,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=Rn(x,"wx");En(R,JSON.stringify($r,null,2),"utf8"),_n(R);let Vr=Ce({slotsDir:t,staleMs:n});return{admitted:!0,slotId:c,activeSlots:Vr,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=Ce({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function ie(e,r={}){if(oe())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:ne(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??ne();we({slotsDir:t,staleMs:n});let s=Ce({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 Nn(e){e<=0||In(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Lr(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=N(e,n);for(;!s.admitted&&Date.now()<i;)Nn(Math.min(t,i-Date.now())),s=N(e,n);return s}function Tn(e,r={}){let t=Ee(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...ie(e),slotId:null}};if(oe())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...ie(e),slotId:null}};let n=r.waitMs??0,i=n>0?Lr(e,n,r.pollMs):N(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:re,commandClass:t.commandClass,reason:t.reason??i.reason??re,verificationGate:i}}export{m as DEFAULT_WORKER_PROVIDER,re as HEAVY_VERIFICATION_TOKEN_REQUIRED,ae as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,et as auditReviewWorkerCredentialScope,Xr as auditWorkerEnv,p as buildWorkerSpawnEnv,Ee as classifyHeavyShellCommand,Nr as enforceCursorWorkerProvider,Tn as gateWorkerShellCommand,d as isClaudeFamilyProvider,k as isForbiddenWorkerEnvKey,st as isHarnessExpertReviewWorker,Te as isNoProdCredentialReviewEnvironment,Pe as listForbiddenWorkerEnvKeys,Ie as listOperatorAllowedWorkerEnvKeys,S as normalizeWorkerProviderName,cn as preferCursorExecutor,ln as resolveConfiguredWorkerProvider,T as scrubWorkerEnv,ke as taskAllowsClaudeWorker,be as taskExpressesWorkerProviderPreference};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kynver-app/runtime",
3
- "version": "0.2.150",
3
+ "version": "0.2.151",
4
4
  "description": "Kynver AgentOS local execution runtime and CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",