@kynver-app/runtime 0.2.130 → 0.2.135

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var e=(r,n,t)=>()=>{if(t)throw t[0];try{return r&&(n=r(r=0)),n}catch(o){throw t=[o],o}};import{homedir as j}from"node:os";import Y from"node:path";function He(r){return r==="~"?j():r.startsWith("~/")||r.startsWith("~\\")?Y.join(j(),r.slice(2)):r}function u(r){return Y.resolve(He(r))}var c=e(()=>{"use strict"});var V=e(()=>{"use strict"});function G(r){return process.platform!=="win32"?r:{windowsHide:!0,...r}}var s=e(()=>{"use strict";V()});var je,Lr,Ye,Hr,z=e(()=>{"use strict";je=["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"],Lr=new Set(je),Ye=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Hr=new Set(Ye)});import{spawnSync as Ge}from"node:child_process";function v(r,n){try{let t=Ge("git",n,G({cwd:r,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=e(()=>{"use strict";c();s();z()});var C=e(()=>{"use strict";g()});import{existsSync as w,readFileSync as q}from"node:fs";import{homedir as ze}from"node:os";import i from"node:path";import{fileURLToPath as Je}from"node:url";function Xe(r){let n=i.join(r,"package.json");if(!w(n))return null;try{let t=JSON.parse(q(n,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function X(r){return Xe(r)==="kynver"}function J(r){let n=i.resolve(r);if(!w(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 Ze(r=import.meta.url){let n=i.dirname(Je(r));for(let t=0;t<8;t+=1){let o=i.join(n,"package.json");if(w(o))try{if(JSON.parse(q(o,"utf8")).name==="@kynver-app/runtime")return n}catch{}let a=i.dirname(n);if(a===n)break;n=a}return null}function A(r,n,t,o,a){if(!t)return;let l=i.resolve(t);r.has(l)||(a?.requireMonorepo??!0)&&!X(l)||(r.add(l),n.push({repo:l,source:o}))}function Qe(r){let n=r?.cwd??process.cwd(),t=new Set,o=[];A(t,o,J(n),"cwd_git",{requireMonorepo:!1});let a=Ze(r?.runtimeModuleUrl??import.meta.url);a&&A(t,o,J(a),"runtime_checkout");let l=ze();for(let m of qe)A(t,o,u(i.join(l,m)),"well_known_path");let L=i.resolve(r?.cwd??process.cwd());return o.filter(m=>{if(m.source!=="runtime_checkout"||!X(m.repo))return!0;let H=i.resolve(m.repo);return L===H||L.startsWith(`${H}${i.sep}`)})}function O(r){return Qe(r)[0]??null}var qe,h=e(()=>{"use strict";g();c();C();qe=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var P=e(()=>{"use strict";s()});var d=e(()=>{"use strict"});var y=e(()=>{"use strict"});var Z=e(()=>{"use strict"});var gt,ht,I=e(()=>{"use strict";gt=25*1024*1024*1024,ht=12*1024*1024*1024});var xt,St,Q=e(()=>{"use strict";I();xt=5*1024*1024*1024,St=10*1024*1024*1024});var wt,Ot,T=e(()=>{"use strict";Q();I();wt=30*1024*1024*1024,Ot=15*1024*1024*1024});var ee=e(()=>{"use strict";s()});import er from"node:path";var Bt,K=e(()=>{"use strict";c();ee();Bt=er.join(".openclaw","harness")});var k=e(()=>{"use strict";f();d();y();R();K()});var ne=e(()=>{"use strict";f();K();k();s()});var S=e(()=>{"use strict";ne();s()});var se=e(()=>{"use strict";S();s()});var ie=e(()=>{"use strict"});var ae=e(()=>{"use strict";ie();s()});var le=e(()=>{"use strict"});var ue=e(()=>{"use strict";le()});var _=e(()=>{"use strict"});var ce=e(()=>{"use strict"});var de=e(()=>{"use strict"});var fe=e(()=>{"use strict";ue();s();_();ce();de()});var Dn,W=e(()=>{"use strict";Dn=String.raw`"use strict";
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 V}from"node:os";import G from"node:path";function qe(e){return e==="~"?V():e.startsWith("~/")||e.startsWith("~\\")?G.join(V(),e.slice(2)):e}function i(e){return G.resolve(qe(e))}var c=r(()=>{"use strict"});var J=r(()=>{"use strict"});function z(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var s=r(()=>{"use strict";J()});var Ze,rt,Qe,tt,X=r(()=>{"use strict";Ze=["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"],rt=new Set(Ze),Qe=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],tt=new Set(Qe)});import{spawnSync as rr}from"node:child_process";function v(e,n){try{let t=rr("git",n,z({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}var g=r(()=>{"use strict";c();s();X()});import{homedir as q}from"node:os";import C from"node:path";function nr(e=q()){return C.join(e,".kynver",tr)}function Q(e,n=q()){return C.resolve(e)===C.resolve(nr(n))}var tr,Z,A=r(()=>{"use strict";g();tr="workspace",Z="main"});import{existsSync as O,readFileSync as re}from"node:fs";import{homedir as or}from"node:os";import a from"node:path";import{fileURLToPath as sr}from"node:url";function ar(e){let n=a.join(e,"package.json");if(!O(n))return null;try{let t=JSON.parse(re(n,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function te(e){return ar(e)==="kynver"}function ee(e){let n=a.resolve(e);if(!O(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?a.resolve(o):null}function lr(e=import.meta.url){let n=a.dirname(sr(e));for(let t=0;t<8;t+=1){let o=a.join(n,"package.json");if(O(o))try{if(JSON.parse(re(o,"utf8")).name==="@kynver-app/runtime")return n}catch{}let l=a.dirname(n);if(l===n)break;n=l}return null}function w(e,n,t,o,l){if(!t)return;let u=a.resolve(t);e.has(u)||(l?.requireMonorepo??!0)&&!te(u)||(e.add(u),n.push({repo:u,source:o}))}function ur(e){let n=e?.cwd??process.cwd(),t=new Set,o=[];w(t,o,ee(n),"cwd_git",{requireMonorepo:!1});let l=lr(e?.runtimeModuleUrl??import.meta.url);l&&w(t,o,ee(l),"runtime_checkout");let u=or();for(let m of ir)w(t,o,i(a.join(u,m)),"well_known_path");let j=a.resolve(e?.cwd??process.cwd());return o.filter(m=>{if(m.source!=="runtime_checkout"||!te(m.repo))return!0;let Y=a.resolve(m.repo);return j===Y||j.startsWith(`${Y}${a.sep}`)})}function P(e){return ur(e)[0]??null}var ir,h=r(()=>{"use strict";g();c();A();ir=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var ne=r(()=>{"use strict"});var oe=r(()=>{"use strict";ne()});var I=r(()=>{"use strict";s()});var d=r(()=>{"use strict"});var y=r(()=>{"use strict"});var se=r(()=>{"use strict"});var Kt,Dt,T=r(()=>{"use strict";Kt=25*1024*1024*1024,Dt=12*1024*1024*1024});var Ft,Lt,ie=r(()=>{"use strict";T();Ft=5*1024*1024*1024,Lt=10*1024*1024*1024});var Gt,Jt,N=r(()=>{"use strict";ie();T();Gt=30*1024*1024*1024,Jt=15*1024*1024*1024});var ae=r(()=>{"use strict";s()});import cr from"node:path";var nn,D=r(()=>{"use strict";c();ae();nn=cr.join(".openclaw","harness")});var k=r(()=>{"use strict";f();d();y();R();D()});var ce=r(()=>{"use strict";f();D();k();s()});var S=r(()=>{"use strict";ce();s()});var fe=r(()=>{"use strict";S();s()});var pe=r(()=>{"use strict"});var me=r(()=>{"use strict";pe();s()});var ge=r(()=>{"use strict"});var he=r(()=>{"use strict";ge()});var E=r(()=>{"use strict"});var hr,yr,Fn,W=r(()=>{"use strict";hr="claude-sonnet-5-5",yr="claude-opus-5-5",Fn={[hr]:"claude-sonnet-4-6",[yr]:"claude-opus-4-8"}});var ye=r(()=>{"use strict"});var be=r(()=>{"use strict"});var ke=r(()=>{"use strict";he();s();E();W();ye();be()});var so,U=r(()=>{"use strict";so=String.raw`"use strict";
2
2
  const cp = require("child_process"), fs = require("fs");
3
3
  const argv = process.argv.slice(1);
4
4
  const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
@@ -62,4 +62,4 @@ child.on("error", (e) => {
62
62
  if (!child.pid) finish(127, null, String(e && e.message));
63
63
  });
64
64
  child.on("exit", (code, signal) => finish(code, signal));
65
- `});var pe=e(()=>{"use strict";S();s();W()});var me=e(()=>{"use strict";_()});var ge=e(()=>{"use strict"});var qn,Xn,he=e(()=>{"use strict";g();qn=10*6e4,Xn=60*6e4});var ye=e(()=>{"use strict"});var D=e(()=>{"use strict"});var be=e(()=>{"use strict"});var ke=e(()=>{"use strict";D();be()});var Re=e(()=>{"use strict";ae();fe();pe();W();_();me();ge();he();ye();ke();D();s()});var xe=e(()=>{"use strict";Re();s()});var mr,gr,Se=e(()=>{"use strict";Z();f();d();y();R();T();S();se();xe();s();mr=500*1024*1024,gr=4*1024*1024*1024});var R=e(()=>{"use strict";Se()});import{homedir as hr}from"node:os";import yr from"node:path";var _e,U=e(()=>{"use strict";_e=yr.join(hr(),".kynver",".env")});var Ee=e(()=>{"use strict"});var ve=e(()=>{"use strict";Ee()});var Ce=e(()=>{"use strict"});var Ae=e(()=>{"use strict";s()});var B=e(()=>{"use strict";ve();Ce();Ae()});var we=e(()=>{"use strict"});var Oe=e(()=>{"use strict";we()});var E=e(()=>{"use strict";U();c();f();B();Oe()});var Te=e(()=>{"use strict";d();d()});var Ne=e(()=>{"use strict";U();B();E()});var M=e(()=>{"use strict"});var We=e(()=>{"use strict";h();d();Te();f();E();Ne();P();M();k()});var _r,di,De=e(()=>{"use strict";_r=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],di=_r.join("|")});var Ue=e(()=>{"use strict";c()});var Be=e(()=>{"use strict";Ue()});var Me=e(()=>{"use strict"});var Fe=e(()=>{"use strict";Me()});import{existsSync as Er,mkdirSync as Bi,readFileSync as vr,writeFileSync as Mi}from"node:fs";import{homedir as Cr,totalmem as $i}from"node:os";import F from"node:path";function Ar(r){return{...r,...r.harnessRoot?.trim()?{harnessRoot:u(r.harnessRoot.trim())}:{},...r.defaultRepo?.trim()?{defaultRepo:u(r.defaultRepo.trim())}:{}}}function p(){if(!Er($e))return{};try{return Ar(JSON.parse(vr($e,"utf8")))}catch{return{}}}var Le,$e,na,oa,sa,f=e(()=>{"use strict";h();c();P();d();y();R();T();E();We();De();k();Be();M();Fe();Le=F.join(Cr(),".kynver"),$e=F.join(Le,"config.json"),na=F.join(Le,"credentials");oa=500*1024*1024,sa=4*1024*1024*1024});f();h();c();C();import wr from"node:path";function Or(r){return wr.resolve(u(r.trim()))}function $(r,n,t){let o=r?.trim();return o?{repo:Or(o),source:n,persistedInConfig:t}:null}function Pr(r){return r?{repo:r.repo,source:r.source,persistedInConfig:!1}:null}function Ir(r={}){let n=r.env??process.env,t=r.config??p(),o=$(t.defaultRepo,"config",!0);if(o)return o;let a=$(n.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(a)return a;let l=$(n.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return l||Pr(O({cwd:r.cwd,runtimeModuleUrl:r.runtimeModuleUrl}))}export{Ir as resolveDefaultRepo};
65
+ `});var Re=r(()=>{"use strict";S();s();U()});var xe=r(()=>{"use strict";E();W()});var Se=r(()=>{"use strict"});var So,Eo,Ee=r(()=>{"use strict";g();So=10*6e4,Eo=60*6e4});var _e=r(()=>{"use strict"});var B=r(()=>{"use strict"});var ve=r(()=>{"use strict"});var Ce=r(()=>{"use strict";B();ve()});var Ae=r(()=>{"use strict";me();ke();Re();U();E();xe();Se();Ee();_e();Ce();B();s()});var we=r(()=>{"use strict";Ae();s()});var Cr,Ar,Oe=r(()=>{"use strict";se();f();d();y();R();N();S();fe();we();s();Cr=500*1024*1024,Ar=4*1024*1024*1024});var R=r(()=>{"use strict";Oe()});import{homedir as wr}from"node:os";import Or from"node:path";var Pe,M=r(()=>{"use strict";Pe=Or.join(wr(),".kynver",".env")});var Ie=r(()=>{"use strict"});var Te=r(()=>{"use strict";Ie()});var Ne=r(()=>{"use strict"});var Ke=r(()=>{"use strict";s()});var F=r(()=>{"use strict";Te();Ne();Ke()});var De=r(()=>{"use strict"});var We=r(()=>{"use strict";De()});var _=r(()=>{"use strict";M();c();f();F();We()});var Me=r(()=>{"use strict";d();d()});var Fe=r(()=>{"use strict";M();F();_()});var L=r(()=>{"use strict"});var $e=r(()=>{"use strict";h();d();Me();f();_();Fe();I();L();k()});var Dr,Wi,He=r(()=>{"use strict";Dr=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],Wi=Dr.join("|")});var je=r(()=>{"use strict";c()});var Ye=r(()=>{"use strict";je()});var Ve=r(()=>{"use strict"});var Ge=r(()=>{"use strict";Ve()});import{existsSync as Wr,mkdirSync as fa,readFileSync as Ur,writeFileSync as pa}from"node:fs";import{homedir as Br,totalmem as ga}from"node:os";import $ from"node:path";function Mr(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:i(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:i(e.defaultRepo.trim())}:{}}}function Xe(e){let n=e.defaultRepo?.trim();return!n||e.defaultBase?.trim()||!Q(i(n))?e:{...e,defaultBase:Z}}function Fr(){if(!Wr(Je))return null;try{return JSON.parse(Ur(Je,"utf8"))}catch{return null}}function p(){let e=Fr();return e?Xe(Mr(e)):{}}var ze,Je,Na,Ka,Da,f=r(()=>{"use strict";h();c();A();oe();I();d();y();R();N();_();$e();He();k();Ye();L();Ge();ze=$.join(Br(),".kynver"),Je=$.join(ze,"config.json"),Na=$.join(ze,"credentials");Ka=500*1024*1024,Da=4*1024*1024*1024});f();h();c();import Lr from"node:path";function $r(e){return Lr.resolve(i(e.trim()))}function H(e,n,t){let o=e?.trim();return o?{repo:$r(o),source:n,persistedInConfig:t}:null}function Hr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function jr(e={}){let n=e.env??process.env,t=e.config??p(),o=H(t.defaultRepo,"config",!0);if(o)return o;let l=H(n.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(l)return l;let u=H(n.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return u||Hr(P({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{jr as resolveDefaultRepo};
@@ -1,4 +1,4 @@
1
- var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as $e}from"node:os";import He from"node:path";function mt(e){return e==="~"?$e():e.startsWith("~/")||e.startsWith("~\\")?He.join($e(),e.slice(2)):e}function x(e){return He.resolve(mt(e))}var b=a(()=>{"use strict"});function k(e=process.platform){return e!=="win32"}var je=a(()=>{"use strict"});var d=a(()=>{"use strict";je()});var ft,Eo,gt,So,he=a(()=>{"use strict";ft=["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"],Eo=new Set(ft),gt=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],So=new Set(gt)});var Z=a(()=>{"use strict";b();d();he()});var Ye=a(()=>{"use strict";Z()});var ye=a(()=>{"use strict";Z();b();Ye()});var ke=a(()=>{"use strict";d()});var v=a(()=>{"use strict"});var Q=a(()=>{"use strict"});var Ve=a(()=>{"use strict"});var Yo,Vo,Re=a(()=>{"use strict";Yo=25*1024*1024*1024,Vo=12*1024*1024*1024});var Xo,Zo,Ge=a(()=>{"use strict";Re();Xo=5*1024*1024*1024,Zo=10*1024*1024*1024});var oi,ii,_e=a(()=>{"use strict";Ge();Re();oi=30*1024*1024*1024,ii=15*1024*1024*1024});var qe=a(()=>{"use strict";d()});import Rt from"node:path";var fi,be=a(()=>{"use strict";b();qe();fi=Rt.join(".openclaw","harness")});var re=a(()=>{"use strict";E();v();Q();te();be()});var Xe=a(()=>{"use strict";E();be();re();d()});var oe=a(()=>{"use strict";Xe();d()});var Qe=a(()=>{"use strict";oe();d()});var er=a(()=>{"use strict"});var rr=a(()=>{"use strict";er();d()});var tr=a(()=>{"use strict"});var nr=a(()=>{"use strict";tr()});var ie=a(()=>{"use strict"});var or=a(()=>{"use strict"});var ir=a(()=>{"use strict"});var sr=a(()=>{"use strict";nr();d();ie();or();ir()});var ds,R=a(()=>{"use strict";ds=String.raw`"use strict";
1
+ var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Ge}from"node:os";import qe from"node:path";function xt(e){return e==="~"?Ge():e.startsWith("~/")||e.startsWith("~\\")?qe.join(Ge(),e.slice(2)):e}function b(e){return qe.resolve(xt(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Je=a(()=>{"use strict"});var d=a(()=>{"use strict";Je()});var bt,Wo,vt,Mo,ke=a(()=>{"use strict";bt=["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"],Wo=new Set(bt),vt=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Mo=new Set(vt)});var ee=a(()=>{"use strict";E();d();ke()});import{homedir as ze}from"node:os";import Re from"node:path";function At(e=ze()){return Re.join(e,".kynver",Ot)}function Ze(e,r=ze()){return Re.resolve(e)===Re.resolve(At(r))}var Ot,Xe,xe=a(()=>{"use strict";ee();Ot="workspace",Xe="main"});var be=a(()=>{"use strict";ee();E();xe()});import{existsSync as rr,readFileSync as wt}from"node:fs";import S from"node:path";function It(e){return e.includes("/")||e.includes("\\")}function Tt(e){return(e.PATHEXT||Pt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Nt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Dt(e,r={}){let t=r.env??process.env,n=r.exists??rr,o=Tt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(It(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Nt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function er(e){return e.replace(/^[\\/]+/,"")}function Wt(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Kt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=Qe.exec(n);if(o)return er(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?Qe.exec(i):null;if(l)return er(l[1])}return null}function Mt(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Dt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(he=>wt(he,"utf8")),i=r.exists??rr,l;try{l=s(n)}catch{throw new Y(n)}let c=Wt(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let j=S.win32.join(u,"node.exe");return{executable:i(j)?j:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function v(e,r,t={}){let n=Mt(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Pt,Qe,Kt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Pt=".COM;.EXE;.BAT;.CMD";Qe=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Kt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var tr=a(()=>{"use strict";C()});var ve=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var re=a(()=>{"use strict"});var nr=a(()=>{"use strict"});var ui,di,Ee=a(()=>{"use strict";ui=25*1024*1024*1024,di=12*1024*1024*1024});var hi,yi,or=a(()=>{"use strict";Ee();hi=5*1024*1024*1024,yi=10*1024*1024*1024});var vi,Ei,Se=a(()=>{"use strict";or();Ee();vi=30*1024*1024*1024,Ei=15*1024*1024*1024});var ir=a(()=>{"use strict";d()});import Bt from"node:path";var Ni,Oe=a(()=>{"use strict";E();ir();Ni=Bt.join(".openclaw","harness")});var ne=a(()=>{"use strict";A();O();re();oe();Oe()});var lr=a(()=>{"use strict";A();Oe();ne();d()});var se=a(()=>{"use strict";lr();d()});var ur=a(()=>{"use strict";se();d()});var dr=a(()=>{"use strict"});var pr=a(()=>{"use strict";dr();d()});var mr=a(()=>{"use strict"});var fr=a(()=>{"use strict";mr()});var ae=a(()=>{"use strict"});var k,w,gs,V=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",gs={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var gr=a(()=>{"use strict"});var hr=a(()=>{"use strict"});var yr=a(()=>{"use strict";fr();d();ae();V();gr();hr()});var Ds,R=a(()=>{"use strict";Ds=String.raw`"use strict";
2
2
  const cp = require("child_process"), fs = require("fs");
3
3
  const argv = process.argv.slice(1);
4
4
  const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
@@ -62,8 +62,8 @@ child.on("error", (e) => {
62
62
  if (!child.pid) finish(127, null, String(e && e.message));
63
63
  });
64
64
  child.on("exit", (code, signal) => finish(code, signal));
65
- `});var ar=a(()=>{"use strict";oe();d();R()});var lr=a(()=>{"use strict";ie()});var cr=a(()=>{"use strict"});var Ss,Cs,ur=a(()=>{"use strict";Z();Ss=10*6e4,Cs=60*6e4});var dr=a(()=>{"use strict"});var ve=a(()=>{"use strict"});var pr=a(()=>{"use strict"});var mr=a(()=>{"use strict";ve();pr()});var fr=a(()=>{"use strict";rr();sr();ar();R();ie();lr();cr();ur();dr();mr();ve();d()});var gr=a(()=>{"use strict";fr();d()});var Nt,Kt,hr=a(()=>{"use strict";Ve();E();v();Q();te();_e();oe();Qe();gr();d();Nt=500*1024*1024,Kt=4*1024*1024*1024});var te=a(()=>{"use strict";hr()});import{homedir as Wt}from"node:os";import Mt from"node:path";var yr,Ee=a(()=>{"use strict";yr=Mt.join(Wt(),".kynver",".env")});var kr=a(()=>{"use strict"});var Rr=a(()=>{"use strict";kr()});var _r=a(()=>{"use strict"});var xr=a(()=>{"use strict";d()});var Se=a(()=>{"use strict";Rr();_r();xr()});var br=a(()=>{"use strict"});var vr=a(()=>{"use strict";br()});var se=a(()=>{"use strict";Ee();b();E();Se();vr()});var Er=a(()=>{"use strict";v();v()});var Sr=a(()=>{"use strict";Ee();Se();se()});var Ce=a(()=>{"use strict"});var Cr=a(()=>{"use strict";ye();v();Er();E();se();Sr();ke();Ce();re()});function S(e){let r=e.trim().toLowerCase();return Vt[r]??r}var Or,Yt,Vt,ae=a(()=>{"use strict";Or=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],Yt=Or.join("|"),Vt={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Ar=a(()=>{"use strict";b()});var wr=a(()=>{"use strict";Ar()});var Pr=a(()=>{"use strict"});var Ir=a(()=>{"use strict";Pr()});import{existsSync as qt,mkdirSync as dc,readFileSync as Jt,writeFileSync as pc}from"node:fs";import{homedir as zt,totalmem as fc}from"node:os";import Oe from"node:path";function Xt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:x(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:x(e.defaultRepo.trim())}:{}}}function N(){if(!qt(Tr))return{};try{return Xt(JSON.parse(Jt(Tr,"utf8")))}catch{return{}}}var Nr,Tr,Pc,Ic,Tc,E=a(()=>{"use strict";ye();b();ke();v();Q();te();_e();se();Cr();ae();re();wr();Ce();Ir();Nr=Oe.join(zt(),".kynver"),Tr=Oe.join(Nr,"config.json"),Pc=Oe.join(Nr,"credentials");Ic=500*1024*1024,Tc=4*1024*1024*1024});var lt=/^claude[-_]/i,ct=/^(?:opus|sonnet|haiku)\b/i;function Ue(e){let r=e.trim();return lt.test(r)||ct.test(r)}function Le(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function fe(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Fe(e){return e.trim().toLowerCase().startsWith("gemini-")}function ut(e){return Le(e)?"codex":Ue(e)?"claude":Fe(e)?"gemini":(fe(e),"cursor")}function dt(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 pt(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?Ue(n)||Le(n)||fe(n)||Fe(n)?{lane:t,model:n,provider:ut(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?dt(r)??pt(r):null}function ge(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!fe(r.model)):!1}E();var Kr={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 K(e){return Kr[e]}function Wr(){return Object.values(Kr)}import{existsSync as cn}from"node:fs";import{homedir as un}from"node:os";import H from"node:path";import{createHash as Ur}from"node:crypto";import{statSync as ln}from"node:fs";import{spawnSync as Lr}from"node:child_process";import{existsSync as Br,readFileSync as Zt}from"node:fs";import C from"node:path";var $=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},Qt=".COM;.EXE;.BAT;.CMD";function en(e){return e.includes("/")||e.includes("\\")}function rn(e){return(e.PATHEXT||Qt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function tn(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function nn(e,r={}){let t=r.env??process.env,n=r.exists??Br,o=rn(t),s=C.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(en(e)||C.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of tn(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(C.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}var Mr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,on=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i;function Dr(e){return e.replace(/^[\\/]+/,"")}function sn(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=on.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=Mr.exec(n);if(o)return Dr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?Mr.exec(i):null;if(l)return Dr(l[1])}return null}function an(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=nn(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=C.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(me=>Zt(me,"utf8")),i=r.exists??Br,l;try{l=s(n)}catch{throw new $(n)}let c=sn(l);if(!c)throw new $(n);let u=C.win32.dirname(n),p=C.win32.join(u,c);if(!i(p))throw new $(n);let F=C.win32.join(u,"node.exe");return{executable:i(F)?F:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function O(e,r,t={}){let n=an(e,t);return[n.executable,[...n.prefixArgs,...r]]}function y(e){try{let r=ln(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Ur("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function W(e){return Ur("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]=O(e,r),i=Lr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function le(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=O(e,r);return Lr(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 dn="codex";function pn(){let e=un();return[process.env.CODEX_HOME?.trim()?H.join(H.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,H.join(e,".codex","auth.json"),H.join(e,".config","codex","auth.json")].filter(t=>!!t)}function mn(e){return H.dirname(e)}function fn(e){let r,t;for(let n of pn()){if(!cn(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:mn(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(dn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:W("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}=fn(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as gn}from"node:fs";import{homedir as hn}from"node:os";import Ae from"node:path";function yn(){let e=process.env.HERMES_HOME?.trim(),r=e?Ae.resolve(e):Ae.join(hn(),".hermes");return Ae.join(r,"auth.json")}function ce(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=yn(),o=gn(n),s=le(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function j(e=new Date().toISOString()){let r=Fr(e);if(r.ready)return{...r,path:"codex_cli"};let t=ce(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 $r=["low","medium","high"],Hr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function jr(e,r){let t=K(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function kn(e,r){let t=K(e.providerId),n=K(r.providerId),o=$r.indexOf(t.costTier)-$r.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 we(e){let r=Wr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&jr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(kn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return jr(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 Rn}from"node:fs";import{homedir as _n}from"node:os";import xn from"node:path";var bn="claude";function vn(){let e=_n();return[xn.join(e,".claude",".credentials.json")]}function Yr(e=new Date().toISOString()){let r=g(bn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:W("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=vn().find(i=>Rn(i)),o=le(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Tn}from"node:fs";import{homedir as In}from"node:os";import D from"node:path";R();import{closeSync as yu,existsSync as An,mkdirSync as ku,openSync as Ru,statSync as _u,unlinkSync as xu}from"node:fs";d();import M from"node:path";he();import{existsSync as Y,readdirSync as En}from"node:fs";import A from"node:path";var Sn=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Cn(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 On(e){let r=A.join(e,"versions");if(!Y(r))return null;let t=null,n=-1;for(let o of En(r,{withFileTypes:!0})){if(!o.isDirectory()||!Sn.test(o.name))continue;let s=Cn(o.name);s==null||s<=n||(n=s,t=A.join(r,o.name))}return t}function Pe(e){let r=e?.trim()||A.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=A.join(r,"node.exe"),n=A.join(r,"index.js");if(Y(t)&&Y(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=On(r);if(!o)return null;let s=A.join(o,"node.exe"),i=A.join(o,"index.js");return!Y(s)||!Y(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function wn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:k(),bundledVersionDir:t}}function Vr(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&An(M.join(M.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Pe(M.dirname(e)):t?{nodeExe:e,indexJs:M.join(M.dirname(e),"index.js"),versionDir:M.dirname(e)}:Pe();if(o)return wn(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:k()}}import{spawnSync as Pn}from"node:child_process";function Ie(e,r=process.env){try{let t;try{t=Vr(e)}catch{t={executable:e,prefixArgs:[]}}let n=Pn(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 Te(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(D.join(t,".config","cursor","auth.json")),r.push(D.join(t,".cursor-agent","auth.json")));let n=In();if(r.push(D.join(n,".config","cursor","auth.json")),r.push(D.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(D.join(o,"cursor-agent","auth.json")),s&&r.push(D.join(s,"cursor","auth.json"))}return r}var Nn="agent";function Gr(e=new Date().toISOString()){let r=g(Nn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:W("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=Te().find(l=>Tn(l)),o=Ie(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Kn,readFileSync as Wn}from"node:fs";import{homedir as Mn}from"node:os";import Ne from"node:path";var Dn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Bn(){let e=process.env.HERMES_HOME?.trim(),r=e?Ne.resolve(e):Ne.join(Mn(),".hermes");return Ne.join(r,".env")}function Un(e){try{let r=Wn(e,"utf8"),t=[];for(let n of Dn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function qr(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?Un(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function Jr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=j(r),n={codex:t,cursor:Gr(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:qr(r),hermesOpenAiCodex:ce(r),codexAdapterPath:t.path,readyCount:o}}var Ln=[/\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],Fn=[/\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 $n(e){let r=Ke(e,"executorRef").toLowerCase(),t=Ke(e,"title").toLowerCase(),n=Ke(e,"description").toLowerCase(),o=`${r}
65
+ `});var _r=a(()=>{"use strict";se();d();R()});var kr=a(()=>{"use strict";ae();V()});var Rr=a(()=>{"use strict"});var zs,Xs,xr=a(()=>{"use strict";ee();zs=10*6e4,Xs=60*6e4});var br=a(()=>{"use strict"});var Ae=a(()=>{"use strict"});var vr=a(()=>{"use strict"});var Er=a(()=>{"use strict";Ae();vr()});var Sr=a(()=>{"use strict";pr();yr();_r();R();ae();kr();Rr();xr();br();Er();Ae();d()});var Cr=a(()=>{"use strict";Sr();d()});var Zt,Qt,Or=a(()=>{"use strict";nr();A();O();re();oe();Se();se();ur();Cr();d();Zt=500*1024*1024,Qt=4*1024*1024*1024});var oe=a(()=>{"use strict";Or()});import{homedir as en}from"node:os";import rn from"node:path";var Ar,we=a(()=>{"use strict";Ar=rn.join(en(),".kynver",".env")});var wr=a(()=>{"use strict"});var Pr=a(()=>{"use strict";wr()});var Ir=a(()=>{"use strict"});var Tr=a(()=>{"use strict";d()});var Pe=a(()=>{"use strict";Pr();Ir();Tr()});var Nr=a(()=>{"use strict"});var Dr=a(()=>{"use strict";Nr()});var le=a(()=>{"use strict";we();E();A();Pe();Dr()});var Kr=a(()=>{"use strict";O();O()});var Wr=a(()=>{"use strict";we();Pe();le()});var Ie=a(()=>{"use strict"});var Mr=a(()=>{"use strict";be();O();Kr();A();le();Wr();ve();Ie();ne()});function P(e){let r=e.trim().toLowerCase();return pn[r]??r}var Br,dn,pn,ce=a(()=>{"use strict";Br=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],dn=Br.join("|"),pn={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Ur=a(()=>{"use strict";E()});var Lr=a(()=>{"use strict";Ur()});var Fr=a(()=>{"use strict"});var $r=a(()=>{"use strict";Fr()});import{existsSync as fn,mkdirSync as Uc,readFileSync as gn,writeFileSync as Lc}from"node:fs";import{homedir as hn,totalmem as $c}from"node:os";import Te from"node:path";function yn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:b(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:b(e.defaultRepo.trim())}:{}}}function _n(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!Ze(b(r))?e:{...e,defaultBase:Xe}}function kn(){if(!fn(Hr))return null;try{return JSON.parse(gn(Hr,"utf8"))}catch{return null}}function W(){let e=kn();return e?_n(yn(e)):{}}var jr,Hr,su,au,lu,A=a(()=>{"use strict";be();E();xe();tr();ve();O();re();oe();Se();le();Mr();ce();ne();Lr();Ie();$r();jr=Te.join(hn(),".kynver"),Hr=Te.join(jr,"config.json"),su=Te.join(jr,"credentials");au=500*1024*1024,lu=4*1024*1024*1024});var ht=/^claude[-_]/i,yt=/^(?:opus|sonnet|haiku)\b/i;function je(e){let r=e.trim();return ht.test(r)||yt.test(r)}function Ye(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function ye(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ve(e){return e.trim().toLowerCase().startsWith("gemini-")}function _t(e){return Ye(e)?"codex":je(e)?"claude":Ve(e)?"gemini":(ye(e),"cursor")}function kt(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?je(n)||Ye(n)||ye(n)||Ve(n)?{lane:t,model:n,provider:_t(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?kt(r)??Rt(r):null}function _e(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!ye(r.model)):!1}A();var Yr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return Yr[e]}function Vr(){return Object.values(Yr)}import{existsSync as xn}from"node:fs";import{homedir as bn}from"node:os";import G from"node:path";C();import{createHash as Gr}from"node:crypto";import{statSync as Rn}from"node:fs";import{spawnSync as qr}from"node:child_process";function y(e){try{let r=Rn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Gr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return Gr("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]=v(e,r),i=qr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function ue(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=v(e,r);return qr(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 vn="codex";function En(){let e=bn();return[process.env.CODEX_HOME?.trim()?G.join(G.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,G.join(e,".codex","auth.json"),G.join(e,".config","codex","auth.json")].filter(t=>!!t)}function Sn(e){return G.dirname(e)}function Cn(e){let r,t;for(let n of En()){if(!xn(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:Sn(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 Jr(e=new Date().toISOString()){let r=g(vn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=Cn(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as On}from"node:fs";import{homedir as An}from"node:os";import Ne from"node:path";function wn(){let e=process.env.HERMES_HOME?.trim(),r=e?Ne.resolve(e):Ne.join(An(),".hermes");return Ne.join(r,"auth.json")}function de(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=wn(),o=On(n),s=ue(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function q(e=new Date().toISOString()){let r=Jr(e);if(r.ready)return{...r,path:"codex_cli"};let t=de(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var zr=["low","medium","high"],Xr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function Zr(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Pn(e,r){let t=M(e.providerId),n=M(r.providerId),o=zr.indexOf(t.costTier)-zr.indexOf(n.costTier);if(o!==0)return o;let s=Xr[e.binding.authSource]-Xr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function De(e){let r=Vr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&Zr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Pn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return Zr(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 In}from"node:fs";import{homedir as Tn}from"node:os";import Nn from"node:path";var Dn="claude";function Kn(){let e=Tn();return[Nn.join(e,".claude",".credentials.json")]}function Qr(e=new Date().toISOString()){let r=g(Dn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Kn().find(i=>In(i)),o=ue(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as jn}from"node:fs";import{homedir as Hn}from"node:os";import L from"node:path";R();import{closeSync as ju,existsSync as Ln,mkdirSync as Yu,openSync as Vu,statSync as Gu,unlinkSync as qu}from"node:fs";d();import U from"node:path";ke();import{existsSync as J,readdirSync as Wn}from"node:fs";import I from"node:path";var Mn=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Bn(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 Un(e){let r=I.join(e,"versions");if(!J(r))return null;let t=null,n=-1;for(let o of Wn(r,{withFileTypes:!0})){if(!o.isDirectory()||!Mn.test(o.name))continue;let s=Bn(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Ke(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(J(t)&&J(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=Un(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.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:_(),bundledVersionDir:t}}function et(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&Ln(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Ke(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Ke();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:_()}}import{spawnSync as $n}from"node:child_process";function We(e,r=process.env){try{let t;try{t=et(e)}catch{t={executable:e,prefixArgs:[]}}let n=$n(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 Me(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Hn();if(r.push(L.join(n,".config","cursor","auth.json")),r.push(L.join(n,".cursor-agent","auth.json")),process.platform==="win32"){let o=e.LOCALAPPDATA?.trim(),s=e.APPDATA?.trim();o&&r.push(L.join(o,"cursor-agent","auth.json")),s&&r.push(L.join(s,"cursor","auth.json"))}return r}var Yn="agent";function rt(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:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Me().find(l=>jn(l)),o=We(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as Vn,readFileSync as Gn}from"node:fs";import{homedir as qn}from"node:os";import Be from"node:path";var Jn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function zn(){let e=process.env.HERMES_HOME?.trim(),r=e?Be.resolve(e):Be.join(qn(),".hermes");return Be.join(r,".env")}function Xn(e){try{let r=Gn(e,"utf8"),t=[];for(let n of Jn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function tt(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=zn(),o=Vn(n),s=o?Xn(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function nt(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=q(r),n={codex:t,cursor:rt(r),claude:Qr(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:tt(r),hermesOpenAiCodex:de(r),codexAdapterPath:t.path,readyCount:o}}var Zn=[/\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],Qn=[/\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 Ue(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function eo(e){let r=Ue(e,"executorRef").toLowerCase(),t=Ue(e,"title").toLowerCase(),n=Ue(e,"description").toLowerCase(),o=`${r}
66
66
  ${t}
67
- ${n}`;return Ln.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":Fn.some(s=>s.test(o))?"low":"elevated"}function Hn(e){let r=K(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 jn(e){let r=e.inventory??Jr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function w(e){let r=Hn({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 zr(e){let r=e.task??{},t=$n(r),n=jn({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:j())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=B;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=we({inventory:n,riskClass:t});return w(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return w({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 w({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 w({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=we({inventory:n,riskClass:t});if(l)return w({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 w({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"}})}R();d();var Xr="kynver",Zr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Yn=Zr.map(e=>`mcp__${Xr}__${e}`);var q="claude-sonnet-4-6",J="claude-opus-4-8";R();d();R();d();var Sd=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5";function Gn(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.5"}var U=Gn();R();d();var We="openai-compatible",np=600*1e3;R();d();var P="gemini";function I(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var L="gemini-api";var Cp=600*1e3;var rt="claude-sonnet-4-6",z="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function zn(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
67
+ ${n}`;return Zn.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":Qn.some(s=>s.test(o))?"low":"elevated"}function ro(e){let r=M(e.provider),t=e.escalatedFrom&&e.escalatedReason?`Escalated from ${e.escalatedFrom} (${e.escalatedReason}); using ${r.displayName} (${r.costTier} tier)`:`${r.displayName} selected for ${e.riskClass} orchestration (${r.costTier} tier, auth=${e.authSource})`;return{provider:e.provider,model:e.model,authSource:e.authSource,costTier:r.costTier,riskClass:e.riskClass,costRationale:t,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason}}function to(e){let r=e.inventory??nt();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function T(e){let r=ro({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 ot(e){let r=e.task??{},t=eo(r),n=to({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:q())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=De({inventory:n,riskClass:t});return T(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return T({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 T({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 T({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=De({inventory:n,riskClass:t});if(l)return T({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 T({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"}})}R();d();C();V();var it="kynver",st=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],no=st.map(e=>`mcp__${it}__${e}`);V();R();d();C();R();d();C();var pe="gpt-5.6-sol";var op=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||pe;function io(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||pe}var $=io();R();d();var Le="openai-compatible",Mp=600*1e3;R();d();C();var N="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var sm=600*1e3;var ct=k,Z="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function lo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
68
68
  ${m(e,"description")}
69
- ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function Qr(e){return e.toLowerCase()}function pe(e=N()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||rt}function ue(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-")?P:"cursor"}function Xn(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:z,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:q,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:I(),provider:P,rule:n&&n!==P?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:I(),provider:L,rule:n&&n!==L?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function et(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 Zn=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function tt(e,r,t){return Zn.has(e)?J:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?J:q}function nt(e){let r=Qr(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=Qr(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=tt(o,r,t);return{provider:"claude",model:i,rule:i===J?"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:We,...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:L,...i?.model?{model:i.model}:{model:I()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:P,...i?.model?{model:i.model}:{model:I()},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 et(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(et(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=pe();return{model:s,provider:ue(s),rule:"default:global"}}function Qn(e){return e?f(m(e,"executorRef")):null}function eo(e){switch(S(e)){case P:case L:return I();case"claude":return q;case"codex":return U;case"cursor":return z;default:return}}var Me="explicit:cli_provider",ot="config:worker_provider";function it(e,r,t){let n=S(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:eo(n)??e.model,rule:t}}function ro(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==Me?e:it(e,t,Me)}function to(e,r){if(r.explicitProvider?.trim()||De(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=S(t);return n===B||n===e.provider?e:it(e,n,ot)}function no(e){let r,t=Qn(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=Xn(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||ue(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||ue(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&de(e.task)){let c=zn(e.task),u,p;if(c)u=c,p="task:provider_override";else{let F=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Be=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",me=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=tt(F,Be,me),p=u===J?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=nt(e.task);r={...c,requestedModel:c.model}}else{let c=pe();r={model:c,provider:e.explicitProvider?.trim()||ue(c),rule:"default:global",requestedModel:c}}r=ro(r,e.explicitProvider),r=to(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&S(e.configuredProvider)!==B&&r.rule==="config:worker_provider",i=st({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===Me||i.rule===ot||_(i.provider)&&(e.explicitProviderIsOperatorOverride||de(e.task))||i.provider===We||i.provider===P||i.provider===L||i.provider==="codex")return i;let l=zr({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 oo(e,r,t){return e||r||t||pe()||q}ae();ae();var B="cursor",io=new Set(["claude","opus","anthropic"]),so=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function X(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function _(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return io.has(r)?!0:r.includes("claude")||r.includes("opus")}function de(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&_(r))return!0;let t=X(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(X(e,"executorRef"));if(n?.provider&&_(n.provider)||n?.model&&_(ao(n.model)))return!0;let o=X(e,"description");if(so.some(i=>i.test(o)))return!0;let s=X(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function ao(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function lo(e,r){return{provider:B,model:z,rule:`policy:cursor_default${r}`,requestedModel:e}}var co=["explicit:","executor_ref:","factory:","task:"];function uo(e){return co.some(r=>e.startsWith(r))}function De(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(X(e,"executorRef"))?.provider?!0:de(e)}function st(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&_(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||uo(r.rule)||De(t)||!_(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return lo(r.model,o)}function po(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function at(e){return e?.trim()||void 0}function mo(e){let r=po(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=at(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=at(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&ge(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!_(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{z as CURSOR_DEFAULT_MODEL,rt as GLOBAL_DEFAULT_MODEL,mo as assessDispatchModelGuard,ge as executorRefRequestsNonCursorWorker,nt as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,pe as resolveGlobalDefaultModel,oo as resolveModelFallback,no as resolveWorkerLaunch};
69
+ ${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function at(e){return e.toLowerCase()}function ge(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||ct}function me(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-")?N:"cursor"}function co(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Z,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:N,rule:n&&n!==N?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function lt(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 uo=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function ut(e,r,t){return uo.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function dt(e){let r=at(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=at(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=ut(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:Le,...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:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:N,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return lt(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(lt(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=ge();return{model:s,provider:me(s),rule:"default:global"}}function po(e){return e?f(m(e,"executorRef")):null}function mo(e){switch(P(e)){case N:case H:return D();case"claude":return k;case"codex":return $;case"cursor":return Z;default:return}}var Fe="explicit:cli_provider",pt="config:worker_provider";function mt(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:mo(n)??e.model,rule:t}}function fo(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==Fe?e:mt(e,t,Fe)}function go(e,r){if(r.explicitProvider?.trim()||$e(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:mt(e,n,pt)}function ho(e){let r,t=po(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=co(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||me(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||me(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&fe(e.task)){let c=lo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let j=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",He=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",he=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=ut(j,He,he),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=dt(e.task);r={...c,requestedModel:c.model}}else{let c=ge();r={model:c,provider:e.explicitProvider?.trim()||me(c),rule:"default:global",requestedModel:c}}r=fo(r,e.explicitProvider),r=go(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=ft({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===Fe||i.rule===pt||x(i.provider)&&(e.explicitProviderIsOperatorOverride||fe(e.task))||i.provider===Le||i.provider===N||i.provider===H||i.provider==="codex")return i;let l=ot({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function yo(e,r,t){return e||r||t||ge()||k}ce();ce();var F="cursor",_o=new Set(["claude","opus","anthropic"]),ko=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function Q(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function x(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return _o.has(r)?!0:r.includes("claude")||r.includes("opus")}function fe(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&x(r))return!0;let t=Q(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(Q(e,"executorRef"));if(n?.provider&&x(n.provider)||n?.model&&x(Ro(n.model)))return!0;let o=Q(e,"description");if(ko.some(i=>i.test(o)))return!0;let s=Q(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function Ro(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function xo(e,r){return{provider:F,model:Z,rule:`policy:cursor_default${r}`,requestedModel:e}}var bo=["explicit:","executor_ref:","factory:","task:"];function vo(e){return bo.some(r=>e.startsWith(r))}function $e(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(Q(e,"executorRef"))?.provider?!0:fe(e)}function ft(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&x(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||vo(r.rule)||$e(t)||!x(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return xo(r.model,o)}function Eo(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function gt(e){return e?.trim()||void 0}function So(e){let r=Eo(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=gt(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=gt(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&_e(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!x(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Z as CURSOR_DEFAULT_MODEL,ct as GLOBAL_DEFAULT_MODEL,So as assessDispatchModelGuard,_e as executorRefRequestsNonCursorWorker,dt as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,ge as resolveGlobalDefaultModel,yo as resolveModelFallback,ho as resolveWorkerLaunch};
@@ -1 +1 @@
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
+ 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 m 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?m.resolve(e):H()?m.join(K(),"kynver","state","heavy-verification"):m.join(A(),"heavy-verification")}function y(){return m.join($(),"slots")}function u(){let e=y();return D(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 P(e,r=f){if(!e||!_(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function O(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(O(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??f,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??f;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??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),M=E(a);if(O(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 w(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",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{w 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 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=[],b=t(e.installed?.[i],"installed"),v=t(e.repo?.[i],"repo"),N=t(e.self?.[i],"self");b&&g.push(b),v&&g.push(v),N&&g.push(N);let{version:p,source:f}=ke(g),q=v?.version??null,O=!!p,P=!O&&r==="skip",S=O?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 xe(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 x(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:xe(r),repo:t,self:n,undetectedPolicy:"skip"}}async function be(e={}){let r=await x(e);return M(r)}async function Ne(e={}){let r=await x(e);return B(r)}export{x as buildMemoryCostPackageGuardInput,Ne as enforceMemoryCostPackageGuardAtStartup,be 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 _(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 h(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=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(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,_(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 fe(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 B(e={}){let r=e.cwd??process.cwd(),t=fe(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 ge(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: ${ge(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],f=[],O=t(e.installed?.[i],"installed"),v=t(e.repo?.[i],"repo"),b=t(e.self?.[i],"self");O&&f.push(O),v&&f.push(v),b&&f.push(b);let{version:p,source:g}=ke(f),q=v?.version??null,N=!!p,P=!N&&r==="skip",S=N?W(p,u):P,Q=S?[]:ye({packageName:i,minimumVersion:u,effectiveVersion:p,effectiveSource:g,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} (${g}).`:`${y[i]} is below memory-cost minimum ${u}`+(p?` (effective ${p} via ${g})`:" (no version detected)")+".";return{packageName:i,displayName:y[i],minimumVersion:u,effectiveVersion:p,effectiveSource:g,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 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 d(e){let r=e?.trim();return r||null}function Se(e){return[...new Set(e.filter(r=>!!r))]}function _e(){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 he(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=_e(),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 he(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 x,join as X}from"node:path";import{fileURLToPath as J}from"node:url";function Me(e){let r=x(J(e));for(let t=0;t<6;t+=1){if(Ce(X(r,"package.json")))return r;let n=x(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${x(J(e))}`)}function xe(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=xe();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 Oe(e={}){let r=await w(e);return M(r)}async function be(e={}){let r=await w(e);return H(r)}export{w as buildMemoryCostPackageGuardInput,be as enforceMemoryCostPackageGuardAtStartup,Oe as evaluateMemoryCostPackageGuardAtStartup};
@@ -1,2 +1,2 @@
1
- var O=["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(O);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}),b=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:b,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(`
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 T=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],F=new Set(T);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
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};