@kynver-app/runtime 0.2.78 → 0.2.88

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 +1 @@
1
- var r=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};import{homedir as $}from"node:os";import L from"node:path";function Ie(e){return e==="~"?$():e.startsWith("~/")||e.startsWith("~\\")?L.join($(),e.slice(2)):e}function l(e){return L.resolve(Ie(e))}var c=r(()=>{"use strict"});function H(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var s=r(()=>{"use strict"});var Pe,Rr,Ne,kr,j=r(()=>{"use strict";Pe=["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"],Rr=new Set(Pe),Ne=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],kr=new Set(Ne)});import{spawnSync as Ue}from"node:child_process";function _(e,t){try{let n=Ue("git",t,H({cwd:e,encoding:"utf8"}));return{status:n.status,stdout:n.stdout||"",stderr:n.stderr||"",error:n.error?n.error.message:null}}catch(n){return{status:null,stdout:"",stderr:"",error:n.message}}}var g=r(()=>{"use strict";c();s();j()});var v=r(()=>{"use strict";g()});import{existsSync as C,readFileSync as V}from"node:fs";import{homedir as Te}from"node:os";import i from"node:path";import{fileURLToPath as De}from"node:url";function Be(e){let t=i.join(e,"package.json");if(!C(t))return null;try{let n=JSON.parse(V(t,"utf8"));return typeof n.name=="string"?n.name.trim():null}catch{return null}}function G(e){return Be(e)==="kynver"}function Y(e){let t=i.resolve(e);if(!C(t))return null;let n=_(t,["rev-parse","--show-toplevel"]);if(n.status!==0)return null;let o=n.stdout.trim();return o.length?i.resolve(o):null}function Me(e=import.meta.url){let t=i.dirname(De(e));for(let n=0;n<8;n+=1){let o=i.join(t,"package.json");if(C(o))try{if(JSON.parse(V(o,"utf8")).name==="@kynver-app/runtime")return t}catch{}let a=i.dirname(t);if(a===t)break;t=a}return null}function E(e,t,n,o,a){if(!n)return;let u=i.resolve(n);e.has(u)||(a?.requireMonorepo??!0)&&!G(u)||(e.add(u),t.push({repo:u,source:o}))}function Fe(e){let t=e?.cwd??process.cwd(),n=new Set,o=[];E(n,o,Y(t),"cwd_git",{requireMonorepo:!1});let a=Me(e?.runtimeModuleUrl??import.meta.url);a&&E(n,o,Y(a),"runtime_checkout");let u=Te();for(let p of We)E(n,o,l(i.join(u,p)),"well_known_path");let M=i.resolve(e?.cwd??process.cwd());return o.filter(p=>{if(p.source!=="runtime_checkout"||!G(p.repo))return!0;let F=i.resolve(p.repo);return M===F||M.startsWith(`${F}${i.sep}`)})}function A(e){return Fe(e)[0]??null}var We,h=r(()=>{"use strict";g();c();v();We=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var w=r(()=>{"use strict";s()});var d=r(()=>{"use strict"});var y=r(()=>{"use strict"});var z=r(()=>{"use strict"});var Vr,Gr,O=r(()=>{"use strict";Vr=25*1024*1024*1024,Gr=12*1024*1024*1024});var Zr,Qr,J=r(()=>{"use strict";O();Zr=5*1024*1024*1024,Qr=10*1024*1024*1024});var sn,an,I=r(()=>{"use strict";J();O();sn=30*1024*1024*1024,an=15*1024*1024*1024});var X=r(()=>{"use strict";s()});import $e from"node:path";var hn,P=r(()=>{"use strict";c();X();hn=$e.join(".openclaw","harness")});var R=r(()=>{"use strict";m();d();y();k();P()});var ee=r(()=>{"use strict";m();P();R();s()});var K=r(()=>{"use strict";ee();s()});var re=r(()=>{"use strict";K();s()});var ne=r(()=>{"use strict"});var te=r(()=>{"use strict";ne();s()});var oe=r(()=>{"use strict"});var se=r(()=>{"use strict";oe()});var x=r(()=>{"use strict"});var ie=r(()=>{"use strict";se();s();x()});var ae=r(()=>{"use strict";x()});var ue=r(()=>{"use strict"});var le=r(()=>{"use strict"});var U=r(()=>{"use strict"});var ce=r(()=>{"use strict"});var de=r(()=>{"use strict";U();ce()});var me=r(()=>{"use strict";te();ie();x();ae();ue();g();le();de();U();s()});var fe=r(()=>{"use strict";me()});var Xe,Ze,pe=r(()=>{"use strict";z();m();d();y();k();I();K();re();fe();s();Xe=500*1024*1024,Ze=4*1024*1024*1024});var k=r(()=>{"use strict";pe()});import{homedir as Qe}from"node:os";import er from"node:path";var ge,T=r(()=>{"use strict";ge=er.join(Qe(),".kynver",".env")});var he=r(()=>{"use strict"});var ye=r(()=>{"use strict";he()});var be=r(()=>{"use strict"});var D=r(()=>{"use strict";ye();be()});var Re=r(()=>{"use strict"});var ke=r(()=>{"use strict";Re()});var S=r(()=>{"use strict";T();c();m();D();ke()});var _e=r(()=>{"use strict";d();d()});var ve=r(()=>{"use strict";T();D();S()});var Ce=r(()=>{"use strict";h();d();_e();m();S();ve();w();R()});var sr,ds,Ae=r(()=>{"use strict";sr=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],ds=sr.join("|")});import{existsSync as ir,mkdirSync as Rs,readFileSync as ar,writeFileSync as ks}from"node:fs";import{homedir as ur,totalmem as Ss}from"node:os";import W from"node:path";function lr(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:l(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:l(e.defaultRepo.trim())}:{}}}function f(){if(!ir(we))return{};try{return lr(JSON.parse(ar(we,"utf8")))}catch{return{}}}var Oe,we,Ts,Ds,Ws,m=r(()=>{"use strict";h();c();w();d();y();k();I();S();Ce();Ae();R();Oe=W.join(ur(),".kynver"),we=W.join(Oe,"config.json"),Ts=W.join(Oe,"credentials");Ds=500*1024*1024,Ws=4*1024*1024*1024});m();h();c();v();import cr from"node:path";function dr(e){return cr.resolve(l(e.trim()))}function B(e,t,n){let o=e?.trim();return o?{repo:dr(o),source:t,persistedInConfig:n}:null}function mr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function fr(e={}){let t=e.env??process.env,n=e.config??f(),o=B(n.defaultRepo,"config",!0);if(o)return o;let a=B(t.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(a)return a;let u=B(t.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return u||mr(A({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{fr as resolveDefaultRepo};
1
+ var r=(e,n,t)=>()=>{if(t)throw t[0];try{return e&&(n=e(e=0)),n}catch(o){throw t=[o],o}};import{homedir as $}from"node:os";import H from"node:path";function Ne(e){return e==="~"?$():e.startsWith("~/")||e.startsWith("~\\")?H.join($(),e.slice(2)):e}function u(e){return H.resolve(Ne(e))}var c=r(()=>{"use strict"});var j=r(()=>{"use strict"});function Y(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var s=r(()=>{"use strict";j()});var Ke,wr,De,Or,V=r(()=>{"use strict";Ke=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],wr=new Set(Ke),De=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Or=new Set(De)});import{spawnSync as We}from"node:child_process";function v(e,n){try{let t=We("git",n,Y({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}var g=r(()=>{"use strict";c();s();V()});var _=r(()=>{"use strict";g()});import{existsSync as C,readFileSync as z}from"node:fs";import{homedir as Be}from"node:os";import i from"node:path";import{fileURLToPath as Me}from"node:url";function Le(e){let n=i.join(e,"package.json");if(!C(n))return null;try{let t=JSON.parse(z(n,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function J(e){return Le(e)==="kynver"}function G(e){let n=i.resolve(e);if(!C(n))return null;let t=v(n,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let o=t.stdout.trim();return o.length?i.resolve(o):null}function $e(e=import.meta.url){let n=i.dirname(Me(e));for(let t=0;t<8;t+=1){let o=i.join(n,"package.json");if(C(o))try{if(JSON.parse(z(o,"utf8")).name==="@kynver-app/runtime")return n}catch{}let a=i.dirname(n);if(a===n)break;n=a}return null}function E(e,n,t,o,a){if(!t)return;let l=i.resolve(t);e.has(l)||(a?.requireMonorepo??!0)&&!J(l)||(e.add(l),n.push({repo:l,source:o}))}function He(e){let n=e?.cwd??process.cwd(),t=new Set,o=[];E(t,o,G(n),"cwd_git",{requireMonorepo:!1});let a=$e(e?.runtimeModuleUrl??import.meta.url);a&&E(t,o,G(a),"runtime_checkout");let l=Be();for(let p of Fe)E(t,o,u(i.join(l,p)),"well_known_path");let F=i.resolve(e?.cwd??process.cwd());return o.filter(p=>{if(p.source!=="runtime_checkout"||!J(p.repo))return!0;let L=i.resolve(p.repo);return F===L||F.startsWith(`${L}${i.sep}`)})}function A(e){return He(e)[0]??null}var Fe,y=r(()=>{"use strict";g();c();_();Fe=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var w=r(()=>{"use strict";s()});var d=r(()=>{"use strict"});var h=r(()=>{"use strict"});var q=r(()=>{"use strict"});var rt,tt,O=r(()=>{"use strict";rt=25*1024*1024*1024,tt=12*1024*1024*1024});var at,lt,X=r(()=>{"use strict";O();at=5*1024*1024*1024,lt=10*1024*1024*1024});var pt,gt,P=r(()=>{"use strict";X();O();pt=30*1024*1024*1024,gt=15*1024*1024*1024});var Q=r(()=>{"use strict";s()});import je from"node:path";var _t,I=r(()=>{"use strict";c();Q();_t=je.join(".openclaw","harness")});var b=r(()=>{"use strict";m();d();h();k();I()});var te=r(()=>{"use strict";m();I();b();s()});var N=r(()=>{"use strict";te();s()});var ne=r(()=>{"use strict";N();s()});var oe=r(()=>{"use strict"});var se=r(()=>{"use strict";oe();s()});var ie=r(()=>{"use strict"});var ae=r(()=>{"use strict";ie()});var x=r(()=>{"use strict"});var le=r(()=>{"use strict";ae();s();x()});var ue=r(()=>{"use strict";x()});var ce=r(()=>{"use strict"});var de=r(()=>{"use strict"});var K=r(()=>{"use strict"});var me=r(()=>{"use strict"});var fe=r(()=>{"use strict";K();me()});var pe=r(()=>{"use strict";se();le();x();ue();ce();g();de();fe();K();s()});var ge=r(()=>{"use strict";pe()});var rr,tr,ye=r(()=>{"use strict";q();m();d();h();k();P();N();ne();ge();s();rr=500*1024*1024,tr=4*1024*1024*1024});var k=r(()=>{"use strict";ye()});import{homedir as nr}from"node:os";import or from"node:path";var he,D=r(()=>{"use strict";he=or.join(nr(),".kynver",".env")});var Re=r(()=>{"use strict"});var be=r(()=>{"use strict";Re()});var ke=r(()=>{"use strict"});var xe=r(()=>{"use strict";s()});var U=r(()=>{"use strict";be();ke();xe()});var Se=r(()=>{"use strict"});var ve=r(()=>{"use strict";Se()});var S=r(()=>{"use strict";D();c();m();U();ve()});var Ce=r(()=>{"use strict";d();d()});var Ae=r(()=>{"use strict";D();U();S()});var W=r(()=>{"use strict"});var Oe=r(()=>{"use strict";y();d();Ce();m();S();Ae();w();W();b()});var ur,Cs,Pe=r(()=>{"use strict";ur=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],Cs=ur.join("|")});import{existsSync as cr,mkdirSync as Ws,readFileSync as dr,writeFileSync as Bs}from"node:fs";import{homedir as mr,totalmem as Fs}from"node:os";import B from"node:path";function fr(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:u(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:u(e.defaultRepo.trim())}:{}}}function f(){if(!cr(Ie))return{};try{return fr(JSON.parse(dr(Ie,"utf8")))}catch{return{}}}var Te,Ie,ei,ri,ti,m=r(()=>{"use strict";y();c();w();d();h();k();P();S();Oe();Pe();b();W();Te=B.join(mr(),".kynver"),Ie=B.join(Te,"config.json"),ei=B.join(Te,"credentials");ri=500*1024*1024,ti=4*1024*1024*1024});m();y();c();_();import pr from"node:path";function gr(e){return pr.resolve(u(e.trim()))}function M(e,n,t){let o=e?.trim();return o?{repo:gr(o),source:n,persistedInConfig:t}:null}function yr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function hr(e={}){let n=e.env??process.env,t=e.config??f(),o=M(t.defaultRepo,"config",!0);if(o)return o;let a=M(n.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(a)return a;let l=M(n.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return l||yr(A({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{hr as resolveDefaultRepo};
@@ -1,5 +1,5 @@
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 Ae}from"node:os";import we from"node:path";function Fr(e){return e==="~"?Ae():e.startsWith("~/")||e.startsWith("~\\")?we.join(Ae(),e.slice(2)):e}function S(e){return we.resolve(Fr(e))}var O=a(()=>{"use strict"});var d=a(()=>{"use strict"});var $r,Cn,Hr,An,ne=a(()=>{"use strict";$r=["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"],Cn=new Set($r),Hr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],An=new Set(Hr)});var $=a(()=>{"use strict";O();d();ne()});var Pe=a(()=>{"use strict";$()});var oe=a(()=>{"use strict";$();O();Pe()});var ie=a(()=>{"use strict";d()});var _=a(()=>{"use strict"});var H=a(()=>{"use strict"});var Ie=a(()=>{"use strict"});var qn,zn,se=a(()=>{"use strict";qn=25*1024*1024*1024,zn=12*1024*1024*1024});var eo,ro,Ne=a(()=>{"use strict";se();eo=5*1024*1024*1024,ro=10*1024*1024*1024});var ao,lo,ae=a(()=>{"use strict";Ne();se();ao=30*1024*1024*1024,lo=15*1024*1024*1024});var Ke=a(()=>{"use strict";d()});import Gr from"node:path";var yo,le=a(()=>{"use strict";O();Ke();yo=Gr.join(".openclaw","harness")});var Y=a(()=>{"use strict";k();_();H();V();le()});var De=a(()=>{"use strict";k();le();Y();d()});var ce=a(()=>{"use strict";De();d()});var Be=a(()=>{"use strict";ce();d()});var Ue=a(()=>{"use strict"});var Le=a(()=>{"use strict";Ue();d()});var Fe=a(()=>{"use strict"});var $e=a(()=>{"use strict";Fe()});var G=a(()=>{"use strict"});var He=a(()=>{"use strict";$e();d();G()});var je=a(()=>{"use strict";G()});var Ye=a(()=>{"use strict"});var Ve=a(()=>{"use strict"});var de=a(()=>{"use strict"});var Ge=a(()=>{"use strict"});var qe=a(()=>{"use strict";de();Ge()});var ze=a(()=>{"use strict";Le();He();G();je();Ye();$();Ve();qe();de();d()});var Je=a(()=>{"use strict";ze()});var nt,ot,Xe=a(()=>{"use strict";Ie();k();_();H();V();ae();ce();Be();Je();d();nt=500*1024*1024,ot=4*1024*1024*1024});var V=a(()=>{"use strict";Xe()});import{homedir as it}from"node:os";import st from"node:path";var Qe,pe=a(()=>{"use strict";Qe=st.join(it(),".kynver",".env")});var Ze=a(()=>{"use strict"});var er=a(()=>{"use strict";Ze()});var rr=a(()=>{"use strict"});var me=a(()=>{"use strict";er();rr()});var tr=a(()=>{"use strict"});var nr=a(()=>{"use strict";tr()});var q=a(()=>{"use strict";pe();O();k();me();nr()});var or=a(()=>{"use strict";_();_()});var ir=a(()=>{"use strict";pe();me();q()});var sr=a(()=>{"use strict";oe();_();or();k();q();ir();ie();Y()});function v(e){let r=e.trim().toLowerCase();return gt[r]??r}var ar,ft,gt,z=a(()=>{"use strict";ar=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],ft=ar.join("|"),gt={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as Rt,mkdirSync as _a,readFileSync as yt,writeFileSync as ka}from"node:fs";import{homedir as _t,totalmem as ba}from"node:os";import fe from"node:path";function kt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:S(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:S(e.defaultRepo.trim())}:{}}}function A(){if(!Rt(lr))return{};try{return kt(JSON.parse(yt(lr,"utf8")))}catch{return{}}}var ur,lr,Wa,Ma,Da,k=a(()=>{"use strict";oe();O();ie();_();H();V();ae();q();sr();z();Y();ur=fe.join(_t(),".kynver"),lr=fe.join(ur,"config.json"),Wa=fe.join(ur,"credentials");Ma=500*1024*1024,Da=4*1024*1024*1024});var Mr=/^claude[-_]/i,Dr=/^(?:opus|sonnet|haiku)\b/i;function Se(e){let r=e.trim();return Mr.test(r)||Dr.test(r)}function Oe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function re(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ce(e){return e.trim().toLowerCase().startsWith("gemini-")}function Br(e){return Oe(e)?"codex":Se(e)?"claude":Ce(e)?"gemini":(re(e),"cursor")}function Ur(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==="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 Lr(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?Se(n)||Oe(n)||re(n)||Ce(n)?{lane:t,model:n,provider:Br(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function m(e){let r=typeof e=="string"?e.trim():"";return r?Ur(r)??Lr(r):null}function te(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!re(r.model)):!1}k();var cr={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 w(e){return cr[e]}function dr(){return Object.values(cr)}import{existsSync as bt}from"node:fs";import{homedir as xt}from"node:os";import W from"node:path";import{createHash as pr}from"node:crypto";import{statSync as vt}from"node:fs";import{spawnSync as mr}from"node:child_process";function R(e){try{let r=vt(e),t=`${e}|${r.size}|${r.mtimeMs}`;return pr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function P(e){return pr("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=mr(e,r,{encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let s=(o.stderr||o.stdout||"").trim(),i=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:s?`${i}: ${s.slice(0,200)}`:i}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function J(e,r,t={}){let n=t.timeoutMs??8e3;try{return mr(e,r,{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 Et="codex";function St(){let e=xt();return[process.env.CODEX_HOME?.trim()?W.join(W.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,W.join(e,".codex","auth.json"),W.join(e,".config","codex","auth.json")].filter(t=>!!t)}function Ot(e){return W.dirname(e)}function Ct(e){let r,t;for(let n of St()){if(!bt(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:Ot(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 fr(e=new Date().toISOString()){let r=g(Et,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:P("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}=Ct(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(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 At}from"node:fs";import{homedir as wt}from"node:os";import ge from"node:path";function Pt(){let e=process.env.HERMES_HOME?.trim(),r=e?ge.resolve(e):ge.join(wt(),".hermes");return ge.join(r,"auth.json")}function X(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=Pt(),o=At(n),s=J(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?R(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 M(e=new Date().toISOString()){let r=fr(e);if(r.ready)return{...r,path:"codex_cli"};let t=X(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 gr=["low","medium","high"],hr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function Rr(e,r){let t=w(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function It(e,r){let t=w(e.providerId),n=w(r.providerId),o=gr.indexOf(t.costTier)-gr.indexOf(n.costTier);if(o!==0)return o;let s=hr[e.binding.authSource]-hr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function he(e){let r=dr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&Rr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(It)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return Rr(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 Nt}from"node:fs";import{homedir as Tt}from"node:os";import Kt from"node:path";var Wt="claude";function Mt(){let e=Tt();return[Kt.join(e,".claude",".credentials.json")]}function yr(e=new Date().toISOString()){let r=g(Wt,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:P("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=Mt().find(i=>Nt(i)),o=J(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?R(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 Ut}from"node:fs";import{homedir as Bt}from"node:os";import I from"node:path";d();ne();import{spawnSync as Dt}from"node:child_process";function Re(e,r=process.env){try{let t=Dt(e,["status","--format","json"],{encoding:"utf8",timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(t.status!==0)return{ok:!1,note:"agent status: not authenticated"};let n=(t.stdout||"").trim();if(!n)return{ok:!1,note:"agent status: empty response"};let o;try{o=JSON.parse(n)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof o=="object"&&o!==null&&o.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 ye(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(I.join(t,".config","cursor","auth.json")),r.push(I.join(t,".cursor-agent","auth.json")));let n=Bt();if(r.push(I.join(n,".config","cursor","auth.json")),r.push(I.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(I.join(o,"cursor-agent","auth.json")),s&&r.push(I.join(s,"cursor","auth.json"))}return r}var Lt="agent";function _r(e=new Date().toISOString()){let r=g(Lt,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:P("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=ye().find(l=>Ut(l)),o=Re(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?R(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 Ft,readFileSync as $t}from"node:fs";import{homedir as Ht}from"node:os";import _e from"node:path";var jt=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Yt(){let e=process.env.HERMES_HOME?.trim(),r=e?_e.resolve(e):_e.join(Ht(),".hermes");return _e.join(r,".env")}function Vt(e){try{let r=$t(e,"utf8"),t=[];for(let n of jt)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function kr(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=Yt(),o=Ft(n),s=o?Vt(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?R(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 vr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=M(r),n={codex:t,cursor:_r(r),claude:yr(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:kr(r),hermesOpenAiCodex:X(r),codexAdapterPath:t.path,readyCount:o}}var Gt=[/\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],qt=[/\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 ke(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function zt(e){let r=ke(e,"executorRef").toLowerCase(),t=ke(e,"title").toLowerCase(),n=ke(e,"description").toLowerCase(),o=`${r}
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 Be}from"node:os";import Le from"node:path";function tt(e){return e==="~"?Be():e.startsWith("~/")||e.startsWith("~\\")?Le.join(Be(),e.slice(2)):e}function w(e){return Le.resolve(tt(e))}var P=a(()=>{"use strict"});function y(e=process.platform){return e!=="win32"}var Fe=a(()=>{"use strict"});var d=a(()=>{"use strict";Fe()});var nt,lo,ot,uo,pe=a(()=>{"use strict";nt=["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"],lo=new Set(nt),ot=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],uo=new Set(ot)});var z=a(()=>{"use strict";P();d();pe()});var $e=a(()=>{"use strict";z()});var me=a(()=>{"use strict";z();P();$e()});var fe=a(()=>{"use strict";d()});var _=a(()=>{"use strict"});var X=a(()=>{"use strict"});var He=a(()=>{"use strict"});var Po,Io,ge=a(()=>{"use strict";Po=25*1024*1024*1024,Io=12*1024*1024*1024});var Mo,Wo,je=a(()=>{"use strict";ge();Mo=5*1024*1024*1024,Wo=10*1024*1024*1024});var Ho,jo,he=a(()=>{"use strict";je();ge();Ho=30*1024*1024*1024,jo=15*1024*1024*1024});var Ve=a(()=>{"use strict";d()});import lt from"node:path";var Zo,Re=a(()=>{"use strict";P();Ve();Zo=lt.join(".openclaw","harness")});var Z=a(()=>{"use strict";v();_();X();ee();Re()});var Je=a(()=>{"use strict";v();Re();Z();d()});var ke=a(()=>{"use strict";Je();d()});var ze=a(()=>{"use strict";ke();d()});var Xe=a(()=>{"use strict"});var Qe=a(()=>{"use strict";Xe();d()});var Ze=a(()=>{"use strict"});var er=a(()=>{"use strict";Ze()});var re=a(()=>{"use strict"});var rr=a(()=>{"use strict";er();d();re()});var tr=a(()=>{"use strict";re()});var nr=a(()=>{"use strict"});var or=a(()=>{"use strict"});var _e=a(()=>{"use strict"});var ir=a(()=>{"use strict"});var sr=a(()=>{"use strict";_e();ir()});var ar=a(()=>{"use strict";Qe();rr();re();tr();nr();z();or();sr();_e();d()});var lr=a(()=>{"use strict";ar()});var kt,_t,ur=a(()=>{"use strict";He();v();_();X();ee();he();ke();ze();lr();d();kt=500*1024*1024,_t=4*1024*1024*1024});var ee=a(()=>{"use strict";ur()});import{homedir as vt}from"node:os";import xt from"node:path";var cr,ve=a(()=>{"use strict";cr=xt.join(vt(),".kynver",".env")});var dr=a(()=>{"use strict"});var pr=a(()=>{"use strict";dr()});var mr=a(()=>{"use strict"});var fr=a(()=>{"use strict";d()});var xe=a(()=>{"use strict";pr();mr();fr()});var gr=a(()=>{"use strict"});var hr=a(()=>{"use strict";gr()});var te=a(()=>{"use strict";ve();P();v();xe();hr()});var Rr=a(()=>{"use strict";_();_()});var yr=a(()=>{"use strict";ve();xe();te()});var be=a(()=>{"use strict"});var kr=a(()=>{"use strict";me();_();Rr();v();te();yr();fe();be();Z()});function x(e){let r=e.trim().toLowerCase();return It[r]??r}var _r,Pt,It,ne=a(()=>{"use strict";_r=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],Pt=_r.join("|"),It={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as Nt,mkdirSync as ul,readFileSync as Kt,writeFileSync as cl}from"node:fs";import{homedir as Dt,totalmem as pl}from"node:os";import Ee from"node:path";function Mt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:w(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:w(e.defaultRepo.trim())}:{}}}function T(){if(!Nt(vr))return{};try{return Mt(JSON.parse(Kt(vr,"utf8")))}catch{return{}}}var xr,vr,Cl,Ol,Al,v=a(()=>{"use strict";me();P();fe();_();X();ee();he();te();kr();ne();Z();be();xr=Ee.join(Dt(),".kynver"),vr=Ee.join(xr,"config.json"),Cl=Ee.join(xr,"credentials");Ol=500*1024*1024,Al=4*1024*1024*1024});var Xr=/^claude[-_]/i,Qr=/^(?:opus|sonnet|haiku)\b/i;function Me(e){let r=e.trim();return Xr.test(r)||Qr.test(r)}function We(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function ce(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ue(e){return e.trim().toLowerCase().startsWith("gemini-")}function Zr(e){return We(e)?"codex":Me(e)?"claude":Ue(e)?"gemini":(ce(e),"cursor")}function et(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==="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 rt(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?Me(n)||We(n)||ce(n)||Ue(n)?{lane:t,model:n,provider:Zr(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?et(r)??rt(r):null}function de(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!ce(r.model)):!1}v();var br={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 N(e){return br[e]}function Er(){return Object.values(br)}import{existsSync as Gt}from"node:fs";import{homedir as qt}from"node:os";import $ from"node:path";import{createHash as Ar}from"node:crypto";import{statSync as Vt}from"node:fs";import{spawnSync as wr}from"node:child_process";import{existsSync as Or,readFileSync as Wt}from"node:fs";import b from"node:path";var F=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},Ut=".COM;.EXE;.BAT;.CMD";function Bt(e){return e.includes("/")||e.includes("\\")}function Lt(e){return(e.PATHEXT||Ut).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Ft(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function $t(e,r={}){let t=r.env??process.env,n=r.exists??Or,o=Lt(t),s=b.win32.extname(e)!=="",i=l=>s?[l]:o.map(u=>`${l}${u}`);if(Bt(e)||b.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Ft(t).split(";").map(u=>u.trim()).filter(Boolean)){let u=i(b.win32.join(l,e)).find(c=>n(c));if(u)return u}return null}var Sr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Ht=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i;function Cr(e){return e.replace(/^[\\/]+/,"")}function jt(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Ht.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=Sr.exec(n);if(o)return Cr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?Sr.exec(i):null;if(l)return Cr(l[1])}return null}function Yt(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=$t(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=b.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(ue=>Wt(ue,"utf8")),i=r.exists??Or,l;try{l=s(n)}catch{throw new F(n)}let u=jt(l);if(!u)throw new F(n);let c=b.win32.dirname(n),p=b.win32.join(c,u);if(!i(p))throw new F(n);let L=b.win32.join(c,"node.exe");return{executable:i(L)?L:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function E(e,r,t={}){let n=Yt(e,t);return[n.executable,[...n.prefixArgs,...r]]}function R(e){try{let r=Vt(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Ar("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function K(e){return Ar("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]=E(e,r),i=wr(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(),u=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${u}: ${l.slice(0,200)}`:u}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function oe(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=E(e,r);return wr(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 Jt="codex";function zt(){let e=qt();return[process.env.CODEX_HOME?.trim()?$.join($.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,$.join(e,".codex","auth.json"),$.join(e,".config","codex","auth.json")].filter(t=>!!t)}function Xt(e){return $.dirname(e)}function Qt(e){let r,t;for(let n of zt()){if(!Gt(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:Xt(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 Pr(e=new Date().toISOString()){let r=g(Jt,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:K("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}=Qt(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(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 Zt}from"node:fs";import{homedir as en}from"node:os";import Se from"node:path";function rn(){let e=process.env.HERMES_HOME?.trim(),r=e?Se.resolve(e):Se.join(en(),".hermes");return Se.join(r,"auth.json")}function ie(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=rn(),o=Zt(n),s=oe(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?R(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 H(e=new Date().toISOString()){let r=Pr(e);if(r.ready)return{...r,path:"codex_cli"};let t=ie(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 Ir=["low","medium","high"],Tr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function Nr(e,r){let t=N(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function tn(e,r){let t=N(e.providerId),n=N(r.providerId),o=Ir.indexOf(t.costTier)-Ir.indexOf(n.costTier);if(o!==0)return o;let s=Tr[e.binding.authSource]-Tr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function Ce(e){let r=Er().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&Nr(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 Nr(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 nn}from"node:fs";import{homedir as on}from"node:os";import sn from"node:path";var an="claude";function ln(){let e=on();return[sn.join(e,".claude",".credentials.json")]}function Kr(e=new Date().toISOString()){let r=g(an,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:K("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=ln().find(i=>nn(i)),o=oe(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?R(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 Rn}from"node:fs";import{homedir as hn}from"node:os";import M from"node:path";import{closeSync as mu,existsSync as mn,mkdirSync as fu,openSync as gu,statSync as hu,unlinkSync as Ru}from"node:fs";d();import D from"node:path";pe();import{existsSync as j,readdirSync as un}from"node:fs";import S from"node:path";var cn=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function dn(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 pn(e){let r=S.join(e,"versions");if(!j(r))return null;let t=null,n=-1;for(let o of un(r,{withFileTypes:!0})){if(!o.isDirectory()||!cn.test(o.name))continue;let s=dn(o.name);s==null||s<=n||(n=s,t=S.join(r,o.name))}return t}function Oe(e){let r=e?.trim()||S.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=S.join(r,"node.exe"),n=S.join(r,"index.js");if(j(t)&&j(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=pn(r);if(!o)return null;let s=S.join(o,"node.exe"),i=S.join(o,"index.js");return!j(s)||!j(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function fn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:y(),bundledVersionDir:t}}function Dr(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&mn(D.join(D.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Oe(D.dirname(e)):t?{nodeExe:e,indexJs:D.join(D.dirname(e),"index.js"),versionDir:D.dirname(e)}:Oe();if(o)return fn(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:y()}}import{spawnSync as gn}from"node:child_process";function Ae(e,r=process.env){try{let t;try{t=Dr(e)}catch{t={executable:e,prefixArgs:[]}}let n=gn(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 we(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(M.join(t,".config","cursor","auth.json")),r.push(M.join(t,".cursor-agent","auth.json")));let n=hn();if(r.push(M.join(n,".config","cursor","auth.json")),r.push(M.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(M.join(o,"cursor-agent","auth.json")),s&&r.push(M.join(s,"cursor","auth.json"))}return r}var yn="agent";function Mr(e=new Date().toISOString()){let r=g(yn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:K("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=we().find(l=>Rn(l)),o=Ae(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?R(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 kn,readFileSync as _n}from"node:fs";import{homedir as vn}from"node:os";import Pe from"node:path";var xn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function bn(){let e=process.env.HERMES_HOME?.trim(),r=e?Pe.resolve(e):Pe.join(vn(),".hermes");return Pe.join(r,".env")}function En(e){try{let r=_n(e,"utf8"),t=[];for(let n of xn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function Wr(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=bn(),o=kn(n),s=o?En(n):[],l=s.some(c=>c.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",u=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?R(n):void 0,checkedAt:e,note:u?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function Ur(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=H(r),n={codex:t,cursor:Mr(r),claude:Kr(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:Wr(r),hermesOpenAiCodex:ie(r),codexAdapterPath:t.path,readyCount:o}}var Sn=[/\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],Cn=[/\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 Ie(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function On(e){let r=Ie(e,"executorRef").toLowerCase(),t=Ie(e,"title").toLowerCase(),n=Ie(e,"description").toLowerCase(),o=`${r}
2
2
  ${t}
3
- ${n}`;return Gt.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":qt.some(s=>s.test(o))?"low":"elevated"}function Jt(e){let r=w(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 Xt(e){let r=e.inventory??vr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function b(e){let r=Jt({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 br(e){let r=e.task??{},t=zt(r),n=Xt({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:M())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=N;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let f=he({inventory:n,riskClass:t});return b(f?{providerId:f.providerId,binding:f.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 b({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 b({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 b({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=he({inventory:n,riskClass:t});if(l)return b({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 b({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"}})}d();var xr="kynver",Er=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Qt=Er.map(e=>`mcp__${xr}__${e}`);var B="claude-sonnet-4-6",U="claude-opus-4-8";d();d();var pu=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5";function en(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5"}var T=en();d();var ve="openai-compatible",Bu=600*1e3;d();var x="gemini";function E(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var K="gemini-api";var Xu=600*1e3;var Cr="claude-sonnet-4-6",L="composer-2.5";function p(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function nn(e){if(!e)return;let r=p(e,"workerModelOverride")||p(e,"modelOverride");return r||`${p(e,"title")}
4
- ${p(e,"description")}
5
- ${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function Sr(e){return e.toLowerCase()}function ee(e=A()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||Cr}function Q(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-")?x:"cursor"}function on(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:L,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:B,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:E(),provider:x,rule:n&&n!==x?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:E(),provider:K,rule:n&&n!==K?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function Or(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 sn=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function Ar(e,r,t){return sn.has(e)?U:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?U:B}function wr(e){let r=Sr(p(e,"executorRef")),t=p(e,"title").toLowerCase(),n=p(e,"priority")||"normal",o=Sr(p(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=Ar(o,r,t);return{provider:"claude",model:i,rule:i===U?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:T,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=m(p(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:T},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=m(p(e,"executorRef"));return{provider:ve,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=m(p(e,"executorRef"));return{provider:K,...i?.model?{model:i.model}:{model:E()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=m(p(e,"executorRef"));return{provider:x,...i?.model?{model:i.model}:{model:E()},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:T,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 Or(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(Or(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=ee();return{model:s,provider:Q(s),rule:"default:global"}}function an(e){return e?m(p(e,"executorRef")):null}function ln(e){switch(v(e)){case x:case K:return E();case"claude":return B;case"codex":return T;case"cursor":return L;default:return}}var be="explicit:cli_provider",Pr="config:worker_provider";function Ir(e,r,t){let n=v(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:ln(n)??e.model,rule:t}}function un(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==be?e:Ir(e,t,be)}function cn(e,r){if(r.explicitProvider?.trim()||xe(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=v(t);return n===N||n===e.provider?e:Ir(e,n,Pr)}function dn(e){let r,t=an(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=on(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||Q(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||Q(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&Z(e.task)){let c=nn(e.task),u,f;if(c)u=c,f="task:provider_override";else{let Ee=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Kr=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",Wr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=Ar(Ee,Kr,Wr),f=u===U?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:f,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=wr(e.task);r={...c,requestedModel:c.model}}else{let c=ee();r={model:c,provider:e.explicitProvider?.trim()||Q(c),rule:"default:global",requestedModel:c}}r=un(r,e.explicitProvider),r=cn(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&v(e.configuredProvider)!==N&&r.rule==="config:worker_provider",i=Nr({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===be||i.rule===Pr||y(i.provider)&&(e.explicitProviderIsOperatorOverride||Z(e.task))||i.provider===ve||i.provider===x||i.provider===K||i.provider==="codex")return i;let l=br({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??T:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function pn(e,r,t){return e||r||t||ee()||B}z();z();var N="cursor",mn=new Set(["claude","opus","anthropic"]),fn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function F(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function y(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return mn.has(r)?!0:r.includes("claude")||r.includes("opus")}function Z(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&y(r))return!0;let t=F(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=m(F(e,"executorRef"));if(n?.provider&&y(n.provider)||n?.model&&y(gn(n.model)))return!0;let o=F(e,"description");if(fn.some(i=>i.test(o)))return!0;let s=F(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function gn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function hn(e,r){return{provider:N,model:L,rule:`policy:cursor_default${r}`,requestedModel:e}}var Rn=["explicit:","executor_ref:","factory:","task:"];function yn(e){return Rn.some(r=>e.startsWith(r))}function xe(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||m(F(e,"executorRef"))?.provider?!0:Z(e)}function Nr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&y(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||yn(r.rule)||xe(t)||!y(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return hn(r.model,o)}function _n(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function Tr(e){return e?.trim()||void 0}function kn(e){let r=_n(e.task),t=m(r),n=e.explicitProvider?.trim().toLowerCase(),o=Tr(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=Tr(e.routing.model),f={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&te(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:f}:i&&u&&i!==u&&!y(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:f}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:f}:{ok:!0,resolved:f}}export{L as CURSOR_DEFAULT_MODEL,Cr as GLOBAL_DEFAULT_MODEL,kn as assessDispatchModelGuard,te as executorRefRequestsNonCursorWorker,wr as inferModelRoutingFromTask,m as parseExecutorRefRoutingIntent,ee as resolveGlobalDefaultModel,pn as resolveModelFallback,dn as resolveWorkerLaunch};
3
+ ${n}`;return Sn.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":Cn.some(s=>s.test(o))?"low":"elevated"}function An(e){let r=N(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 wn(e){let r=e.inventory??Ur();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function C(e){let r=An({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 Br(e){let r=e.task??{},t=On(r),n=wn({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:H())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=W;if(o==="codex"||o==="provider:codex"){let c=n.bindings.codex;if(!c.ready){let p=Ce({inventory:n,riskClass:t});return C(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"})}return C({providerId:"codex",binding:c,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let c=n.bindings.cursor;if(c.ready)return C({providerId:"cursor",binding:c,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let c=n.bindings.claude;if(c.ready)return C({providerId:"claude",binding:c,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=Ce({inventory:n,riskClass:t});if(l)return C({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let u=n.bindings.codex;return C({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:u.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...u.ready?{}:{escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}})}d();var Lr="kynver",Fr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Pn=Fr.map(e=>`mcp__${Lr}__${e}`);var V="claude-sonnet-4-6",G="claude-opus-4-8";d();d();var yc=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5";function Tn(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5"}var U=Tn();d();var Te="openai-compatible",Yc=600*1e3;d();var O="gemini";function A(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var B="gemini-api";var id=600*1e3;var jr="claude-sonnet-4-6",q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Dn(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
4
+ ${m(e,"description")}
5
+ ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function $r(e){return e.toLowerCase()}function le(e=T()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||jr}function se(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-")?O:"cursor"}function Mn(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:V,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:A(),provider:O,rule:n&&n!==O?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:A(),provider:B,rule:n&&n!==B?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function Hr(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 Wn=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function Yr(e,r,t){return Wn.has(e)?G:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?G:V}function Vr(e){let r=$r(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=$r(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=Yr(o,r,t);return{provider:"claude",model:i,rule:i===G?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:U,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:U},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:Te,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:B,...i?.model?{model:i.model}:{model:A()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:O,...i?.model?{model:i.model}:{model:A()},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:U,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 Hr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(Hr(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=le();return{model:s,provider:se(s),rule:"default:global"}}function Un(e){return e?f(m(e,"executorRef")):null}function Bn(e){switch(x(e)){case O:case B:return A();case"claude":return V;case"codex":return U;case"cursor":return q;default:return}}var Ne="explicit:cli_provider",Gr="config:worker_provider";function qr(e,r,t){let n=x(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:Bn(n)??e.model,rule:t}}function Ln(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==Ne?e:qr(e,t,Ne)}function Fn(e,r){if(r.explicitProvider?.trim()||Ke(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=x(t);return n===W||n===e.provider?e:qr(e,n,Gr)}function $n(e){let r,t=Un(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 u=e.explicitModel.trim(),c=Mn(u,e.explicitProvider);c?r=c:r={model:u,provider:e.explicitProvider?.trim()||se(u),rule:"explicit:cli",requestedModel:u}}else if(n)r={model:n,provider:o||se(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&ae(e.task)){let u=Dn(e.task),c,p;if(u)c=u,p="task:provider_override";else{let L=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",De=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",ue=typeof e.task.title=="string"?e.task.title.toLowerCase():"";c=Yr(L,De,ue),p=c===G?"factory:claude_review":"factory:claude_implementation"}r={model:c,provider:"claude",rule:p,requestedModel:c}}else if(e.task&&Object.keys(e.task).length>0){let u=Vr(e.task);r={...u,requestedModel:u.model}}else{let u=le();r={model:u,provider:e.explicitProvider?.trim()||se(u),rule:"default:global",requestedModel:u}}r=Ln(r,e.explicitProvider),r=Fn(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&x(e.configuredProvider)!==W&&r.rule==="config:worker_provider",i=Jr({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===Ne||i.rule===Gr||k(i.provider)&&(e.explicitProviderIsOperatorOverride||ae(e.task))||i.provider===Te||i.provider===O||i.provider===B||i.provider==="codex")return i;let l=Br({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??U:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function Hn(e,r,t){return e||r||t||le()||V}ne();ne();var W="cursor",jn=new Set(["claude","opus","anthropic"]),Yn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function J(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function k(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return jn.has(r)?!0:r.includes("claude")||r.includes("opus")}function ae(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&k(r))return!0;let t=J(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(J(e,"executorRef"));if(n?.provider&&k(n.provider)||n?.model&&k(Vn(n.model)))return!0;let o=J(e,"description");if(Yn.some(i=>i.test(o)))return!0;let s=J(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function Vn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Gn(e,r){return{provider:W,model:q,rule:`policy:cursor_default${r}`,requestedModel:e}}var qn=["explicit:","executor_ref:","factory:","task:"];function Jn(e){return qn.some(r=>e.startsWith(r))}function Ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(J(e,"executorRef"))?.provider?!0:ae(e)}function Jr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&k(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Jn(r.rule)||Ke(t)||!k(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Gn(r.model,o)}function zn(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function zr(e){return e?.trim()||void 0}function Xn(e){let r=zn(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=zr(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 u=e.routing.provider,c=zr(e.routing.model),p={provider:u,model:c,rule:e.routing.rule};return s&&s!=="cursor"||r&&de(r)||n&&n!=="cursor"?u==="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&&c&&i!==c&&!k(u)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${c} (${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,jr as GLOBAL_DEFAULT_MODEL,Xn as assessDispatchModelGuard,de as executorRefRequestsNonCursorWorker,Vr as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,le as resolveGlobalDefaultModel,Hn as resolveModelFallback,$n as resolveWorkerLaunch};
@@ -1 +1 @@
1
- import{closeSync as G,existsSync as l,mkdirSync as Y,openSync as L,readdirSync as C,readFileSync as U,statSync as W,unlinkSync as b,writeFileSync as F}from"node:fs";import v from"node:path";function R(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}import{mkdirSync as T}from"node:fs";import{tmpdir as K}from"node:os";import m from"node:path";import{homedir as D}from"node:os";import A from"node:path";function k(){let e=process.env.KYNVER_STATE_ROOT;return e?A.resolve(e):A.join(D(),".kynver","state")}function H(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function $(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?m.resolve(e):H()?m.join(K(),"kynver","state","heavy-verification"):m.join(k(),"heavy-verification")}function y(){return m.join($(),"slots")}function u(){let e=y();return T(e,{recursive:!0}),e}var f=120*6e4,x=1;function j(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function p(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?j(e,x):x}function B(e){return`slot-${e}`}function J(e,r=y()){return v.join(r,`${e}.json`)}function E(e){if(!l(e))return null;try{let r=JSON.parse(U(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 O(e,r=f){if(!e||!R(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function M(e,r){let t=E(e);if(t)return O(t,r);if(!l(e))return!0;try{return Date.now()-W(e).mtimeMs>r}catch{return!0}}function q(e,r){if(M(e,r))try{b(e)}catch{}}function X(e){return Y(e,{recursive:!0}),e}function h(e={}){let r=X(e.slotsDir??u()),t=e.staleMs??f,o=0;for(let n of C(r)){if(!n.endsWith(".json"))continue;let s=v.join(r,n),i=l(s);q(s,t),i&&!l(s)&&(o+=1)}return o}function z(e={}){let r=e.slotsDir??u(),t=e.staleMs??f;h({slotsDir:r,staleMs:t});let o=[];for(let n of C(r)){if(!n.endsWith(".json"))continue;let s=E(v.join(r,n));s&&!O(s,t)&&o.push(s)}return o}function d(e={}){return z(e).length}function _(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??f,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});for(let i=0;i<n;i+=1){let g=B(i),a=J(g,t),V=E(a);if(M(a,o))try{b(a)}catch{}else if(V||l(a))continue;let w={slotId:g,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let c=L(a,"wx");F(c,JSON.stringify(w,null,2),"utf8"),G(c);let I=d({slotsDir:t,staleMs:o});return{admitted:!0,slotId:g,activeSlots:I,maxSlots:n,reason:null}}catch(c){if(c.code==="EEXIST")continue;throw c}}let s=d({slotsDir:t,staleMs:o});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:n,reason:`heavy verification at capacity (${s}/${n} slots)`}}function P(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??f,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});let s=d({slotsDir:t,staleMs:o}),i=s<n;return{admitted:i,slotId:null,activeSlots:s,maxSlots:n,reason:i?null:`heavy verification at capacity (${s}/${n} slots); waiting for ${e}`}}import{spawnSync as Q}from"node:child_process";function Z(e){e<=0||Q(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore"})}function ee(e,r,t=2e3,o={}){let n=Date.now()+Math.max(0,r),s=_(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=_(e,o);return s}var re=["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"],xe=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ce=new Set(te);var se={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Fe=Object.keys(se);function N(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let o=t.map(n=>Number.parseInt(n,10));if(o.some(n=>!Number.isFinite(n)||n<0))return null;for(;o.length<3;)o.push(0);return[o[0],o[1],o[2]]}function ie(e,r){let t=N(e),o=N(r);if(!t||!o)return 0;for(let n=0;n<3;n+=1){if(t[n]>o[n])return 1;if(t[n]<o[n])return-1}return 0}export{P as assessHeavyVerificationGate,ie as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
1
+ import{closeSync as G,existsSync as l,mkdirSync as Y,openSync as L,readdirSync as b,readFileSync as U,statSync as W,unlinkSync as C,writeFileSync as F}from"node:fs";import v from"node:path";function _(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}import{mkdirSync as D}from"node:fs";import{tmpdir as K}from"node:os";import f from"node:path";import{homedir as V,tmpdir as de}from"node:os";import R from"node:path";function A(){let e=process.env.KYNVER_STATE_ROOT;return e?R.resolve(e):R.join(V(),".kynver","state")}function H(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function $(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?f.resolve(e):H()?f.join(K(),"kynver","state","heavy-verification"):f.join(A(),"heavy-verification")}function y(){return f.join($(),"slots")}function u(){let e=y();return D(e,{recursive:!0}),e}var m=120*6e4,x=1;function j(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function p(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?j(e,x):x}function B(e){return`slot-${e}`}function J(e,r=y()){return v.join(r,`${e}.json`)}function E(e){if(!l(e))return null;try{let r=JSON.parse(U(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 P(e,r=m){if(!e||!_(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function w(e,r){let t=E(e);if(t)return P(t,r);if(!l(e))return!0;try{return Date.now()-W(e).mtimeMs>r}catch{return!0}}function q(e,r){if(w(e,r))try{C(e)}catch{}}function X(e){return Y(e,{recursive:!0}),e}function h(e={}){let r=X(e.slotsDir??u()),t=e.staleMs??m,o=0;for(let n of b(r)){if(!n.endsWith(".json"))continue;let s=v.join(r,n),i=l(s);q(s,t),i&&!l(s)&&(o+=1)}return o}function z(e={}){let r=e.slotsDir??u(),t=e.staleMs??m;h({slotsDir:r,staleMs:t});let o=[];for(let n of b(r)){if(!n.endsWith(".json"))continue;let s=E(v.join(r,n));s&&!P(s,t)&&o.push(s)}return o}function d(e={}){return z(e).length}function k(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??m,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});for(let i=0;i<n;i+=1){let g=B(i),a=J(g,t),M=E(a);if(w(a,o))try{C(a)}catch{}else if(M||l(a))continue;let N={slotId:g,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let c=L(a,"wx");F(c,JSON.stringify(N,null,2),"utf8"),G(c);let I=d({slotsDir:t,staleMs:o});return{admitted:!0,slotId:g,activeSlots:I,maxSlots:n,reason:null}}catch(c){if(c.code==="EEXIST")continue;throw c}}let s=d({slotsDir:t,staleMs:o});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:n,reason:`heavy verification at capacity (${s}/${n} slots)`}}function O(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??m,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});let s=d({slotsDir:t,staleMs:o}),i=s<n;return{admitted:i,slotId:null,activeSlots:s,maxSlots:n,reason:i?null:`heavy verification at capacity (${s}/${n} slots); waiting for ${e}`}}import{spawnSync as Q}from"node:child_process";function Z(e){e<=0||Q(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function ee(e,r,t=2e3,o={}){let n=Date.now()+Math.max(0,r),s=k(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=k(e,o);return s}var re=["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"],Te=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Me=new Set(te);var se={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},ze=Object.keys(se);function T(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let o=t.map(n=>Number.parseInt(n,10));if(o.some(n=>!Number.isFinite(n)||n<0))return null;for(;o.length<3;)o.push(0);return[o[0],o[1],o[2]]}function ie(e,r){let t=T(e),o=T(r);if(!t||!o)return 0;for(let n=0;n<3;n+=1){if(t[n]>o[n])return 1;if(t[n]<o[n])return-1}return 0}export{O as assessHeavyVerificationGate,ie as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
@@ -1,2 +1,2 @@
1
- import{readFile as ve}from"node:fs/promises";import{homedir as Ee}from"node:os";import m from"node:path";import{existsSync as Y,readFileSync as le}from"node:fs";import k from"node:path";import{existsSync as C,readFileSync as G}from"node:fs";import{homedir as oe}from"node:os";import c from"node:path";import{fileURLToPath as se}from"node:url";import{spawnSync as ne}from"node:child_process";import{homedir as I}from"node:os";import T from"node:path";function ee(e){return e==="~"?I():e.startsWith("~/")||e.startsWith("~\\")?T.join(I(),e.slice(2)):e}function R(e){return T.resolve(ee(e))}function V(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var re=["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"],Ke=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ge=new Set(te);function h(e,r){try{let t=ne("git",r,V({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}var ie=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function ae(e){let r=c.join(e,"package.json");if(!C(r))return null;try{let t=JSON.parse(G(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function D(e){return ae(e)==="kynver"}function K(e){let r=c.resolve(e);if(!C(r))return null;let t=h(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?c.resolve(n):null}function ce(e=import.meta.url){let r=c.dirname(se(e));for(let t=0;t<8;t+=1){let n=c.join(r,"package.json");if(C(n))try{if(JSON.parse(G(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=c.dirname(r);if(o===r)break;r=o}return null}function S(e,r,t,n,o){if(!t)return;let s=c.resolve(t);e.has(s)||(o?.requireMonorepo??!0)&&!D(s)||(e.add(s),r.push({repo:s,source:n}))}function ue(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];S(t,n,K(r),"cwd_git",{requireMonorepo:!1});let o=ce(e?.runtimeModuleUrl??import.meta.url);o&&S(t,n,K(o),"runtime_checkout");let s=oe();for(let l of ie)S(t,n,R(c.join(s,l)),"well_known_path");let a=c.resolve(e?.cwd??process.cwd());return n.filter(l=>{if(l.source!=="runtime_checkout"||!D(l.repo))return!0;let i=c.resolve(l.repo);return a===i||a.startsWith(`${i}${c.sep}`)})}function $(e){return ue(e)[0]??null}var U={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},j=Object.keys(U),y={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"},pe={"@kynver-app/runtime":"packages/kynver-runtime/package.json","@kynver-app/openclaw-agent-os":"packages/kynver-openclaw-agent-os/package.json","@kynver-app/mcp-agent-os":"packages/kynver-mcp-agent-os/package.json"};function L(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let n=t.map(o=>Number.parseInt(o,10));if(n.some(o=>!Number.isFinite(o)||o<0))return null;for(;n.length<3;)n.push(0);return[n[0],n[1],n[2]]}function v(e,r){let t=L(e),n=L(r);if(!t||!n)return 0;for(let o=0;o<3;o+=1){if(t[o]>n[o])return 1;if(t[o]<n[o])return-1}return 0}function W(e,r){return v(e,r)>=0}function me(e){let r=null;for(let t of e)(!r||v(t,r)>0)&&(r=t);return r}function ge(e){try{let r=JSON.parse(le(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function de(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let s=k.resolve(o);if(Y(k.join(s,"packages/kynver-runtime/package.json"))&&Y(k.join(s,"package.json")))return s}return $({cwd:e})?.repo??null}function B(e={}){let r=e.cwd??process.cwd(),t=de(r,e.repoRoot);if(!t)return{};let n={};for(let o of j){let s=k.join(t,pe[o]),a=ge(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function fe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function ye(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&W(s,t)?(a.push(`Use the monorepo checkout (${s}) instead of a stale npm install: ${fe(r).join("; ")}.`),a.push("Do not publish npm packages or wait on an operator release."),a):(n?a.push(`Upgrade ${r} from ${n} to >= ${t} (npm install -g ${r}@latest or align OpenClaw npm prefix).`):a.push(`Install ${r} >= ${t} before running memory-heavy AgentOS paths.`),r==="@kynver-app/runtime"&&a.push("Repo-source alternative: npm run kynver:build && npm run kynver"),o==="installed"&&s&&a.push(`Repo checkout reports ${s}; rebuild/link repo source if you develop from the monorepo.`),a)}function ke(e){if(e.length===0)return{version:null,source:"unknown"};let r=me(e.map(n=>n.version));if(!r)return{version:null,source:"unknown"};let t=e.find(n=>n.version===r)??e[0];return{version:t.version,source:t.source}}function M(e={}){let r=e.undetectedPolicy??"skip",t=(i,u)=>i?typeof i=="string"?{version:i,source:u}:i:null,n=j.map(i=>{let u=U[i],d=[],N=t(e.installed?.[i],"installed"),E=t(e.repo?.[i],"repo"),x=t(e.self?.[i],"self");N&&d.push(N),E&&d.push(E),x&&d.push(x);let{version:p,source:f}=ke(d),q=E?.version??null,b=!!p,P=!b&&r==="skip",_=b?W(p,u):P,Q=_?[]:ye({packageName:i,minimumVersion:u,effectiveVersion:p,effectiveSource:f,repoVersion:q}),Z=P?`${y[i]} is not installed \u2014 memory-cost minimum ${u} applies when this package is present.`:_?`${y[i]} ${p} meets memory-cost minimum ${u} (${f}).`:`${y[i]} is below memory-cost minimum ${u}`+(p?` (effective ${p} via ${f})`:" (no version detected)")+".";return{packageName:i,displayName:y[i],minimumVersion:u,effectiveVersion:p,effectiveSource:f,ok:_,skipped:P,summary:Z,remediation:Q}}),o=n.filter(i=>!i.ok),s=n.filter(i=>i.effectiveVersion).length,a=o.length===0,l=a?s===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":s===n.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${s}/${n.length} present).`:`Memory-cost package guard blocked ${o.length} stale package(s): ${o.map(i=>`${i.packageName} < ${i.minimumVersion}`).join("; ")}.`;return{ok:a,summary:l,packages:n}}var A=class extends Error{result;constructor(r){let t=[r.summary,...r.packages.filter(n=>!n.ok).flatMap(n=>[`- ${n.summary}`,...n.remediation.map(o=>` \u2192 ${o}`)])];super(t.join(`
2
- `)),this.name="MemoryCostPackageVersionGuardError",this.result=r}};function H(e={}){let r=M(e);if(!r.ok)throw new A(r);return r}var Pe=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function g(e){let r=e?.trim();return r||null}function _e(e){return[...new Set(e.filter(r=>!!r))]}function Re(){let e=Ee(),r=g(process.env.KYNVER_OPENCLAW_NPM_ROOT)??g(process.env.OPENCLAW_NPM_ROOT)??m.join(e,".openclaw","npm"),t=g(process.env.KYNVER_NPM_GLOBAL_ROOT)??g(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(g(process.env.NPM_CONFIG_PREFIX)?m.join(g(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):m.join(e,".npm-global","lib","node_modules"));return _e([m.join(r,"lib","node_modules"),m.join(r,"node_modules"),t.endsWith("node_modules")?t:m.join(t,"lib","node_modules")])}async function he(e){try{let r=JSON.parse(await ve(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function Se(e){let r=Re(),t=new Set,n=[];for(let o of r){let s=m.join(o,e,"package.json");t.has(s)||(t.add(s),n.push(s))}return n}async function F(e=new Date().toISOString()){let r={};for(let t of Pe){let n=null;for(let o of Se(t)){let s=await he(o);s&&(!n||v(s,n.version)>0)&&(n={version:s,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as Ce,readFileSync as Ae}from"node:fs";import{dirname as O,join as X}from"node:path";import{fileURLToPath as J}from"node:url";function Me(e){let r=O(J(e));for(let t=0;t<6;t+=1){if(Ce(X(r,"package.json")))return r;let n=O(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${O(J(e))}`)}function Oe(e=import.meta.url){let r=X(Me(e),"package.json"),t=JSON.parse(Ae(r,"utf8"));if(typeof t.version!="string"||!t.version.trim())throw new Error(`Missing package.json version at ${r}`);return t.version}var z=Oe();function we(e){let r={};for(let[t,n]of Object.entries(e))n?.version&&(r[t]={version:n.version,source:"installed",path:n.path});return r}async function w(e={}){let[r,t]=await Promise.all([F(),Promise.resolve(B({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:z;return n["@kynver-app/runtime"]={version:o,source:"self"},e.selfPackageName&&e.selfVersion&&e.selfPackageName!=="@kynver-app/runtime"&&(n[e.selfPackageName]={version:e.selfVersion,source:"self"}),{installed:we(r),repo:t,self:n,undetectedPolicy:"skip"}}async function Ne(e={}){let r=await w(e);return M(r)}async function xe(e={}){let r=await w(e);return H(r)}export{w as buildMemoryCostPackageGuardInput,xe as enforceMemoryCostPackageGuardAtStartup,Ne as evaluateMemoryCostPackageGuardAtStartup};
1
+ import{readFile as Ee}from"node:fs/promises";import{homedir as ve}from"node:os";import m from"node:path";import{existsSync as L,readFileSync as le}from"node:fs";import k from"node:path";import{existsSync as C,readFileSync as D}from"node:fs";import{homedir as oe}from"node:os";import c from"node:path";import{fileURLToPath as se}from"node:url";import{spawnSync as ne}from"node:child_process";import{homedir as T}from"node:os";import I from"node:path";function ee(e){return e==="~"?T():e.startsWith("~/")||e.startsWith("~\\")?I.join(T(),e.slice(2)):e}function h(e){return I.resolve(ee(e))}function K(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var re=["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"],Ye=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ue=new Set(te);function _(e,r){try{let t=ne("git",r,K({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}var ie=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function ae(e){let r=c.join(e,"package.json");if(!C(r))return null;try{let t=JSON.parse(D(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function G(e){return ae(e)==="kynver"}function V(e){let r=c.resolve(e);if(!C(r))return null;let t=_(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?c.resolve(n):null}function ce(e=import.meta.url){let r=c.dirname(se(e));for(let t=0;t<8;t+=1){let n=c.join(r,"package.json");if(C(n))try{if(JSON.parse(D(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=c.dirname(r);if(o===r)break;r=o}return null}function R(e,r,t,n,o){if(!t)return;let s=c.resolve(t);e.has(s)||(o?.requireMonorepo??!0)&&!G(s)||(e.add(s),r.push({repo:s,source:n}))}function ue(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];R(t,n,V(r),"cwd_git",{requireMonorepo:!1});let o=ce(e?.runtimeModuleUrl??import.meta.url);o&&R(t,n,V(o),"runtime_checkout");let s=oe();for(let l of ie)R(t,n,h(c.join(s,l)),"well_known_path");let a=c.resolve(e?.cwd??process.cwd());return n.filter(l=>{if(l.source!=="runtime_checkout"||!G(l.repo))return!0;let i=c.resolve(l.repo);return a===i||a.startsWith(`${i}${c.sep}`)})}function $(e){return ue(e)[0]??null}var U={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},j=Object.keys(U),y={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"},pe={"@kynver-app/runtime":"packages/kynver-runtime/package.json","@kynver-app/openclaw-agent-os":"packages/kynver-openclaw-agent-os/package.json","@kynver-app/mcp-agent-os":"packages/kynver-mcp-agent-os/package.json"};function Y(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let n=t.map(o=>Number.parseInt(o,10));if(n.some(o=>!Number.isFinite(o)||o<0))return null;for(;n.length<3;)n.push(0);return[n[0],n[1],n[2]]}function E(e,r){let t=Y(e),n=Y(r);if(!t||!n)return 0;for(let o=0;o<3;o+=1){if(t[o]>n[o])return 1;if(t[o]<n[o])return-1}return 0}function W(e,r){return E(e,r)>=0}function me(e){let r=null;for(let t of e)(!r||E(t,r)>0)&&(r=t);return r}function de(e){try{let r=JSON.parse(le(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function ge(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let s=k.resolve(o);if(L(k.join(s,"packages/kynver-runtime/package.json"))&&L(k.join(s,"package.json")))return s}return $({cwd:e})?.repo??null}function H(e={}){let r=e.cwd??process.cwd(),t=ge(r,e.repoRoot);if(!t)return{};let n={};for(let o of j){let s=k.join(t,pe[o]),a=de(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function fe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function ye(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&W(s,t)?(a.push(`Use the monorepo checkout (${s}) instead of a stale npm install: ${fe(r).join("; ")}.`),a.push("Do not publish npm packages or wait on an operator release."),a):(n?a.push(`Upgrade ${r} from ${n} to >= ${t} (npm install -g ${r}@latest or align OpenClaw npm prefix).`):a.push(`Install ${r} >= ${t} before running memory-heavy AgentOS paths.`),r==="@kynver-app/runtime"&&a.push("Repo-source alternative: npm run kynver:build && npm run kynver"),o==="installed"&&s&&a.push(`Repo checkout reports ${s}; rebuild/link repo source if you develop from the monorepo.`),a)}function ke(e){if(e.length===0)return{version:null,source:"unknown"};let r=me(e.map(n=>n.version));if(!r)return{version:null,source:"unknown"};let t=e.find(n=>n.version===r)??e[0];return{version:t.version,source:t.source}}function M(e={}){let r=e.undetectedPolicy??"skip",t=(i,u)=>i?typeof i=="string"?{version:i,source:u}:i:null,n=j.map(i=>{let u=U[i],g=[],O=t(e.installed?.[i],"installed"),v=t(e.repo?.[i],"repo"),b=t(e.self?.[i],"self");O&&g.push(O),v&&g.push(v),b&&g.push(b);let{version:p,source:f}=ke(g),q=v?.version??null,x=!!p,P=!x&&r==="skip",S=x?W(p,u):P,Q=S?[]:ye({packageName:i,minimumVersion:u,effectiveVersion:p,effectiveSource:f,repoVersion:q}),Z=P?`${y[i]} is not installed \u2014 memory-cost minimum ${u} applies when this package is present.`:S?`${y[i]} ${p} meets memory-cost minimum ${u} (${f}).`:`${y[i]} is below memory-cost minimum ${u}`+(p?` (effective ${p} via ${f})`:" (no version detected)")+".";return{packageName:i,displayName:y[i],minimumVersion:u,effectiveVersion:p,effectiveSource:f,ok:S,skipped:P,summary:Z,remediation:Q}}),o=n.filter(i=>!i.ok),s=n.filter(i=>i.effectiveVersion).length,a=o.length===0,l=a?s===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":s===n.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${s}/${n.length} present).`:`Memory-cost package guard blocked ${o.length} stale package(s): ${o.map(i=>`${i.packageName} < ${i.minimumVersion}`).join("; ")}.`;return{ok:a,summary:l,packages:n}}var A=class extends Error{result;constructor(r){let t=[r.summary,...r.packages.filter(n=>!n.ok).flatMap(n=>[`- ${n.summary}`,...n.remediation.map(o=>` \u2192 ${o}`)])];super(t.join(`
2
+ `)),this.name="MemoryCostPackageVersionGuardError",this.result=r}};function B(e={}){let r=M(e);if(!r.ok)throw new A(r);return r}var Pe=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function d(e){let r=e?.trim();return r||null}function Se(e){return[...new Set(e.filter(r=>!!r))]}function he(){let e=ve(),r=d(process.env.KYNVER_OPENCLAW_NPM_ROOT)??d(process.env.OPENCLAW_NPM_ROOT)??m.join(e,".openclaw","npm"),t=d(process.env.KYNVER_NPM_GLOBAL_ROOT)??d(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(d(process.env.NPM_CONFIG_PREFIX)?m.join(d(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):m.join(e,".npm-global","lib","node_modules"));return Se([m.join(r,"lib","node_modules"),m.join(r,"node_modules"),t.endsWith("node_modules")?t:m.join(t,"lib","node_modules")])}async function _e(e){try{let r=JSON.parse(await Ee(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function Re(e){let r=he(),t=new Set,n=[];for(let o of r){let s=m.join(o,e,"package.json");t.has(s)||(t.add(s),n.push(s))}return n}async function F(e=new Date().toISOString()){let r={};for(let t of Pe){let n=null;for(let o of Re(t)){let s=await _e(o);s&&(!n||E(s,n.version)>0)&&(n={version:s,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as Ce,readFileSync as Ae}from"node:fs";import{dirname as w,join as X}from"node:path";import{fileURLToPath as J}from"node:url";function Me(e){let r=w(J(e));for(let t=0;t<6;t+=1){if(Ce(X(r,"package.json")))return r;let n=w(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${w(J(e))}`)}function we(e=import.meta.url){let r=X(Me(e),"package.json"),t=JSON.parse(Ae(r,"utf8"));if(typeof t.version!="string"||!t.version.trim())throw new Error(`Missing package.json version at ${r}`);return t.version}var z=we();function Ne(e){let r={};for(let[t,n]of Object.entries(e))n?.version&&(r[t]={version:n.version,source:"installed",path:n.path});return r}async function N(e={}){let[r,t]=await Promise.all([F(),Promise.resolve(H({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:z;return n["@kynver-app/runtime"]={version:o,source:"self"},e.selfPackageName&&e.selfVersion&&e.selfPackageName!=="@kynver-app/runtime"&&(n[e.selfPackageName]={version:e.selfVersion,source:"self"}),{installed:Ne(r),repo:t,self:n,undetectedPolicy:"skip"}}async function Oe(e={}){let r=await N(e);return M(r)}async function be(e={}){let r=await N(e);return B(r)}export{N as buildMemoryCostPackageGuardInput,be as enforceMemoryCostPackageGuardAtStartup,Oe as evaluateMemoryCostPackageGuardAtStartup};
@@ -1,2 +1,2 @@
1
- var x=["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"],L=new Set(x);var b=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],U=new Set(b);var E={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},I=Object.keys(E),m={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"};function R(t){let e=t.trim().split("-")[0]?.split("+")[0];if(!e)return null;let n=e.split(".");if(n.length<1||n.length>3)return null;let r=n.map(s=>Number.parseInt(s,10));if(r.some(s=>!Number.isFinite(s)||s<0))return null;for(;r.length<3;)r.push(0);return[r[0],r[1],r[2]]}function v(t,e){let n=R(t),r=R(e);if(!n||!r)return 0;for(let s=0;s<3;s+=1){if(n[s]>r[s])return 1;if(n[s]<r[s])return-1}return 0}function h(t,e){return v(t,e)>=0}function T(t){let e=null;for(let n of t)(!e||v(n,e)>0)&&(e=n);return e}function K(t){return t==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${t}`]}function D(t){let{packageName:e,minimumVersion:n,effectiveVersion:r,effectiveSource:s,repoVersion:a}=t,i=[];return a&&h(a,n)?(i.push(`Use the monorepo checkout (${a}) instead of a stale npm install: ${K(e).join("; ")}.`),i.push("Do not publish npm packages or wait on an operator release."),i):(r?i.push(`Upgrade ${e} from ${r} to >= ${n} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):i.push(`Install ${e} >= ${n} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&i.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&a&&i.push(`Repo checkout reports ${a}; rebuild/link repo source if you develop from the monorepo.`),i)}function V(t){if(t.length===0)return{version:null,source:"unknown"};let e=T(t.map(r=>r.version));if(!e)return{version:null,source:"unknown"};let n=t.find(r=>r.version===e)??t[0];return{version:n.version,source:n.source}}function A(t={}){let e=t.undetectedPolicy??"skip",n=(o,c)=>o?typeof o=="string"?{version:o,source:c}:o:null,r=I.map(o=>{let c=E[o],l=[],k=n(t.installed?.[o],"installed"),g=n(t.repo?.[o],"repo"),S=n(t.self?.[o],"self");k&&l.push(k),g&&l.push(g),S&&l.push(S);let{version:u,source:p}=V(l),P=g?.version??null,_=!!u,f=!_&&e==="skip",y=_?h(u,c):f,O=y?[]:D({packageName:o,minimumVersion:c,effectiveVersion:u,effectiveSource:p,repoVersion:P}),M=f?`${m[o]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:y?`${m[o]} ${u} meets memory-cost minimum ${c} (${p}).`:`${m[o]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:m[o],minimumVersion:c,effectiveVersion:u,effectiveSource:p,ok:y,skipped:f,summary:M,remediation:O}}),s=r.filter(o=>!o.ok),a=r.filter(o=>o.effectiveVersion).length,i=s.length===0,C=i?a===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":a===r.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${a}/${r.length} present).`:`Memory-cost package guard blocked ${s.length} stale package(s): ${s.map(o=>`${o.packageName} < ${o.minimumVersion}`).join("; ")}.`;return{ok:i,summary:C,packages:r}}var d=class extends Error{result;constructor(e){let n=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(n.join(`
2
- `)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function $(t={}){let e=A(t);if(!e.ok)throw new d(e);return e}export{E as MEMORY_COST_PACKAGE_MIN_VERSIONS,d as MemoryCostPackageVersionGuardError,$ as assertMemoryCostPackageVersionGuard,v as compareSemver,A as evaluateMemoryCostPackageVersionGuard};
1
+ var b=["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"],J=new Set(b);var M=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],F=new Set(M);var E={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},N=Object.keys(E),m={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"};function h(t){let e=t.trim().split("-")[0]?.split("+")[0];if(!e)return null;let n=e.split(".");if(n.length<1||n.length>3)return null;let r=n.map(s=>Number.parseInt(s,10));if(r.some(s=>!Number.isFinite(s)||s<0))return null;for(;r.length<3;)r.push(0);return[r[0],r[1],r[2]]}function k(t,e){let n=h(t),r=h(e);if(!n||!r)return 0;for(let s=0;s<3;s+=1){if(n[s]>r[s])return 1;if(n[s]<r[s])return-1}return 0}function R(t,e){return k(t,e)>=0}function K(t){let e=null;for(let n of t)(!e||k(n,e)>0)&&(e=n);return e}function I(t){return t==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${t}`]}function D(t){let{packageName:e,minimumVersion:n,effectiveVersion:r,effectiveSource:s,repoVersion:a}=t,i=[];return a&&R(a,n)?(i.push(`Use the monorepo checkout (${a}) instead of a stale npm install: ${I(e).join("; ")}.`),i.push("Do not publish npm packages or wait on an operator release."),i):(r?i.push(`Upgrade ${e} from ${r} to >= ${n} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):i.push(`Install ${e} >= ${n} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&i.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&a&&i.push(`Repo checkout reports ${a}; rebuild/link repo source if you develop from the monorepo.`),i)}function $(t){if(t.length===0)return{version:null,source:"unknown"};let e=K(t.map(r=>r.version));if(!e)return{version:null,source:"unknown"};let n=t.find(r=>r.version===e)??t[0];return{version:n.version,source:n.source}}function A(t={}){let e=t.undetectedPolicy??"skip",n=(o,u)=>o?typeof o=="string"?{version:o,source:u}:o:null,r=N.map(o=>{let u=E[o],l=[],S=n(t.installed?.[o],"installed"),f=n(t.repo?.[o],"repo"),v=n(t.self?.[o],"self");S&&l.push(S),f&&l.push(f),v&&l.push(v);let{version:c,source:p}=$(l),P=f?.version??null,_=!!c,g=!_&&e==="skip",y=_?R(c,u):g,x=y?[]:D({packageName:o,minimumVersion:u,effectiveVersion:c,effectiveSource:p,repoVersion:P}),O=g?`${m[o]} is not installed \u2014 memory-cost minimum ${u} applies when this package is present.`:y?`${m[o]} ${c} meets memory-cost minimum ${u} (${p}).`:`${m[o]} is below memory-cost minimum ${u}`+(c?` (effective ${c} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:m[o],minimumVersion:u,effectiveVersion:c,effectiveSource:p,ok:y,skipped:g,summary:O,remediation:x}}),s=r.filter(o=>!o.ok),a=r.filter(o=>o.effectiveVersion).length,i=s.length===0,C=i?a===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":a===r.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${a}/${r.length} present).`:`Memory-cost package guard blocked ${s.length} stale package(s): ${s.map(o=>`${o.packageName} < ${o.minimumVersion}`).join("; ")}.`;return{ok:i,summary:C,packages:r}}var d=class extends Error{result;constructor(e){let n=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(n.join(`
2
+ `)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function V(t={}){let e=A(t);if(!e.ok)throw new d(e);return e}export{E as MEMORY_COST_PACKAGE_MIN_VERSIONS,d as MemoryCostPackageVersionGuardError,V as assertMemoryCostPackageVersionGuard,k as compareSemver,A as evaluateMemoryCostPackageVersionGuard};