@kynver-app/runtime 0.2.146 → 0.2.148
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.
- package/README.md +4 -0
- package/dist/cli.js +231 -217
- package/dist/daemon-tick-thread.js +57 -57
- package/dist/desktop-entry.js +178 -166
- package/dist/index.js +255 -241
- package/dist/local-run-store/index.js +1 -1
- package/dist/server/cleanup.js +1 -1
- package/dist/server/default-repo.js +1 -1
- package/dist/server/dispatch-routing.js +4 -4
- package/dist/server/model-routing.js +4 -4
- package/dist/server/monitor.js +1 -1
- package/dist/server/venice.js +1 -0
- package/dist/server/worker-policy.js +3 -3
- package/package.json +7 -2
|
@@ -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
|
|
1
|
+
var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Je}from"node:os";import ze from"node:path";function bt(e){return e==="~"?Je():e.startsWith("~/")||e.startsWith("~\\")?ze.join(Je(),e.slice(2)):e}function v(e){return ze.resolve(bt(e))}var E=a(()=>{"use strict"});function _(e=process.platform){return e!=="win32"}var Xe=a(()=>{"use strict"});var d=a(()=>{"use strict";Xe()});var Et,Lo,St,Fo,Re=a(()=>{"use strict";Et=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],Lo=new Set(Et),St=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Fo=new Set(St)});var re=a(()=>{"use strict";E();d();Re()});import{homedir as Ze}from"node:os";import ve from"node:path";function Pt(e=Ze()){return ve.join(e,".kynver",wt)}function er(e,r=Ze()){return ve.resolve(e)===ve.resolve(Pt(r))}var wt,Qe,be=a(()=>{"use strict";re();wt="workspace",Qe="main"});var Ee=a(()=>{"use strict";re();E();be()});import{existsSync as nr,readFileSync as It}from"node:fs";import S from"node:path";function Tt(e){return e.includes("/")||e.includes("\\")}function Dt(e){return(e.PATHEXT||Nt).split(";").map(r=>r.trim().toLowerCase()).filter(r=>r.startsWith("."))}function Kt(e){let r=Object.keys(e).find(t=>t.toUpperCase()==="PATH");return r?e[r]??"":""}function Wt(e,r={}){let t=r.env??process.env,n=r.exists??nr,o=Dt(t),s=S.win32.extname(e)!=="",i=l=>s?[l]:o.map(c=>`${l}${c}`);if(Tt(e)||S.win32.isAbsolute(e))return i(e).find(l=>n(l))??null;for(let l of Kt(t).split(";").map(c=>c.trim()).filter(Boolean)){let c=i(S.win32.join(l,e)).find(u=>n(u));if(c)return c}return null}function tr(e){return e.replace(/^[\\/]+/,"")}function Bt(e){let r=e.split(/\r?\n/),t=new Map;for(let s of r){let i=Mt.exec(s);i&&t.set(i[1].toUpperCase(),i[2])}let n=r.filter(s=>s.includes("%*")).pop();if(!n)return null;let o=rr.exec(n);if(o)return tr(o[1]);for(let s of n.matchAll(/%([A-Za-z_]\w*)%/g)){let i=t.get(s[1].toUpperCase()),l=i?rr.exec(i):null;if(l)return tr(l[1])}return null}function Ut(e,r={}){if((r.platform??process.platform)!=="win32")return{executable:e,prefixArgs:[],kind:"passthrough"};let n=Wt(e,r);if(!n)return{executable:e,prefixArgs:[],kind:"passthrough"};let o=S.win32.extname(n).toLowerCase();if(o!==".cmd"&&o!==".bat")return{executable:n,prefixArgs:[],kind:"exe"};let s=r.readText??(_e=>It(_e,"utf8")),i=r.exists??nr,l;try{l=s(n)}catch{throw new Y(n)}let c=Bt(l);if(!c)throw new Y(n);let u=S.win32.dirname(n),p=S.win32.join(u,c);if(!i(p))throw new Y(n);let V=S.win32.join(u,"node.exe");return{executable:i(V)?V:r.nodeExecutable??process.execPath,prefixArgs:[p],kind:"node-shim"}}function b(e,r,t={}){let n=Ut(e,t);return[n.executable,[...n.prefixArgs,...r]]}var Y,Nt,rr,Mt,C=a(()=>{"use strict";Y=class extends Error{constructor(t){super(`${t} is a batch file that is not a Node CLI shim; it cannot be spawned without a shell. Point the matching KYNVER_*_BIN setting at the real .exe or the CLI's JS entry, or run the daemon inside WSL.`);this.shimPath=t;this.name="UnresolvableWindowsShimError"}shimPath},Nt=".COM;.EXE;.BAT;.CMD";rr=/%~?dp0%?\\?([^"%\r\n]+?\.(?:c|m)?js)\b/i,Mt=/^\s*SET\s+"?([A-Za-z_]\w*)=([^"\r\n]*)"?\s*$/i});var or=a(()=>{"use strict";C()});var Se=a(()=>{"use strict";d()});var O=a(()=>{"use strict"});var te=a(()=>{"use strict"});var ir=a(()=>{"use strict"});var fi,gi,Ce=a(()=>{"use strict";fi=25*1024*1024*1024,gi=12*1024*1024*1024});var xi,Ri,sr=a(()=>{"use strict";Ce();xi=5*1024*1024*1024,Ri=10*1024*1024*1024});var Oi,Ai,Oe=a(()=>{"use strict";sr();Ce();Oi=30*1024*1024*1024,Ai=15*1024*1024*1024});var ar=a(()=>{"use strict";d()});import Lt from"node:path";var Mi,we=a(()=>{"use strict";E();ar();Mi=Lt.join(".openclaw","harness")});var oe=a(()=>{"use strict";A();O();te();ie();we()});var ur=a(()=>{"use strict";A();we();oe();d()});var ae=a(()=>{"use strict";ur();d()});var pr=a(()=>{"use strict";ae();d()});var mr=a(()=>{"use strict"});var fr=a(()=>{"use strict";mr();d()});var gr=a(()=>{"use strict"});var hr=a(()=>{"use strict";gr()});var le=a(()=>{"use strict"});var k,w,ks,G=a(()=>{"use strict";k="claude-sonnet-5-5",w="claude-opus-5-5",ks={[k]:"claude-sonnet-4-6",[w]:"claude-opus-4-8"}});var yr=a(()=>{"use strict"});var _r=a(()=>{"use strict"});var kr=a(()=>{"use strict";hr();d();le();G();yr();_r()});var Bs,x=a(()=>{"use strict";Bs=String.raw`"use strict";
|
|
2
2
|
const cp = require("child_process"), fs = require("fs");
|
|
3
3
|
const argv = process.argv.slice(1);
|
|
4
4
|
const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
|
|
@@ -64,8 +64,8 @@ child.on("error", (e) => {
|
|
|
64
64
|
if (!child.pid) finish(127, null, String(e && e.message));
|
|
65
65
|
});
|
|
66
66
|
child.on("exit", (code, signal) => finish(code, signal));
|
|
67
|
-
`});var _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}
|
|
67
|
+
`});var xr=a(()=>{"use strict";ae();d();x()});var Rr=a(()=>{"use strict";le();G()});var vr=a(()=>{"use strict"});var ea,ra,br=a(()=>{"use strict";re();ea=10*6e4,ra=60*6e4});var Er=a(()=>{"use strict"});var Pe=a(()=>{"use strict"});var Sr=a(()=>{"use strict"});var Cr=a(()=>{"use strict";Pe();Sr()});var Or=a(()=>{"use strict";fr();kr();xr();x();le();Rr();vr();br();Er();Cr();Pe();d()});var Ar=a(()=>{"use strict";Or();d()});var en,rn,wr=a(()=>{"use strict";ir();A();O();te();ie();Oe();ae();pr();Ar();d();en=500*1024*1024,rn=4*1024*1024*1024});var ie=a(()=>{"use strict";wr()});import{homedir as tn}from"node:os";import nn from"node:path";var Pr,Ie=a(()=>{"use strict";Pr=nn.join(tn(),".kynver",".env")});var Ir=a(()=>{"use strict"});var Nr=a(()=>{"use strict";Ir()});var Tr=a(()=>{"use strict"});var Dr=a(()=>{"use strict";d()});var Ne=a(()=>{"use strict";Nr();Tr();Dr()});var Kr=a(()=>{"use strict"});var Wr=a(()=>{"use strict";Kr()});var ce=a(()=>{"use strict";Ie();E();A();Ne();Wr()});var Mr=a(()=>{"use strict";O();O()});var Br=a(()=>{"use strict";Ie();Ne();ce()});var Te=a(()=>{"use strict"});var Ur=a(()=>{"use strict";Ee();O();Mr();A();ce();Br();Se();Te();oe()});function P(e){let r=e.trim().toLowerCase();return fn[r]??r}var Lr,mn,fn,ue=a(()=>{"use strict";Lr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],mn=Lr.join("|"),fn={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Fr=a(()=>{"use strict";E()});var $r=a(()=>{"use strict";Fr()});var Hr=a(()=>{"use strict"});var jr=a(()=>{"use strict";Hr()});import{existsSync as hn,mkdirSync as Hc,readFileSync as yn,writeFileSync as jc}from"node:fs";import{homedir as _n,totalmem as Yc}from"node:os";import De from"node:path";function kn(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function xn(e){let r=e.defaultRepo?.trim();return!r||e.defaultBase?.trim()||!er(v(r))?e:{...e,defaultBase:Qe}}function Rn(){if(!hn(Vr))return null;try{return JSON.parse(yn(Vr,"utf8"))}catch{return null}}function W(){let e=Rn();return e?xn(kn(e)):{}}var Yr,Vr,uu,du,pu,A=a(()=>{"use strict";Ee();E();be();or();Se();O();te();ie();Oe();ce();Ur();ue();oe();$r();Te();jr();Yr=De.join(_n(),".kynver"),Vr=De.join(Yr,"config.json"),uu=De.join(Yr,"credentials");du=500*1024*1024,pu=4*1024*1024*1024});var _t=/^claude[-_]/i,kt=/^(?:opus|sonnet|haiku)\b/i;function Ye(e){let r=e.trim();return _t.test(r)||kt.test(r)}function Ge(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function ke(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function qe(e){return e.trim().toLowerCase().startsWith("gemini-")}function xt(e){return Ge(e)?"codex":Ye(e)?"claude":qe(e)?"gemini":(ke(e),"cursor")}function Rt(e){if(!e.startsWith("provider:"))return null;let r=e.slice(9),t=r.indexOf(":"),n=(t>=0?r.slice(0,t):r).trim().toLowerCase(),o=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:o,rule:o?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:o,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:o,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:o,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:o,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:o,rule:o?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function vt(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ye(n)||Ge(n)||ke(n)||qe(n)?{lane:t,model:n,provider:xt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function f(e){let r=typeof e=="string"?e.trim():"";return r?Rt(r)??vt(r):null}function xe(e){let r=f(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!ke(r.model)):!1}A();var Gr={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1,workerMcpTools:"supported"},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0,workerMcpTools:"supported"}};function M(e){return Gr[e]}function qr(){return Object.values(Gr)}import{existsSync as bn}from"node:fs";import{homedir as En}from"node:os";import q from"node:path";C();import{createHash as Jr}from"node:crypto";import{statSync as vn}from"node:fs";import{spawnSync as zr}from"node:child_process";function y(e){try{let r=vn(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Jr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function B(e){return Jr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r),i=zr(o,s,{windowsHide:!0,encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(i.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let l=(i.stderr||i.stdout||"").trim(),c=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:l?`${c}: ${l.slice(0,200)}`:c}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function de(e,r,t={}){let n=t.timeoutMs??8e3;try{let[o,s]=b(e,r);return zr(o,s,{windowsHide:!0,stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var Sn="codex";function Cn(){let e=En();return[process.env.CODEX_HOME?.trim()?q.join(q.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,q.join(e,".codex","auth.json"),q.join(e,".config","codex","auth.json")].filter(t=>!!t)}function On(e){return q.dirname(e)}function An(e){let r,t;for(let n of Cn()){if(!bn(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:On(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Xr(e=new Date().toISOString()){let r=g(Sn,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:B("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=An(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as wn}from"node:fs";import{homedir as Pn}from"node:os";import Ke from"node:path";function In(){let e=process.env.HERMES_HOME?.trim(),r=e?Ke.resolve(e):Ke.join(Pn(),".hermes");return Ke.join(r,"auth.json")}function pe(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=In(),o=wn(n),s=de(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function J(e=new Date().toISOString()){let r=Xr(e);if(r.ready)return{...r,path:"codex_cli"};let t=pe(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var Zr=["low","medium","high"],Qr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function et(e,r){let t=M(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Nn(e,r){let t=M(e.providerId),n=M(r.providerId),o=Zr.indexOf(t.costTier)-Zr.indexOf(n.costTier);if(o!==0)return o;let s=Qr[e.binding.authSource]-Qr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function We(e){let r=qr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&et(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Nn)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return et(o,e.riskClass)?s.ready||(i=s.note??`${o} not bound`):i=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:i}}import{existsSync as Tn}from"node:fs";import{homedir as Dn}from"node:os";import Kn from"node:path";var Wn="claude";function Mn(){let e=Dn();return[Kn.join(e,".claude",".credentials.json")]}function rt(e=new Date().toISOString()){let r=g(Wn,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:B("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Mn().find(i=>Tn(i)),o=de(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Yn}from"node:fs";import{homedir as Vn}from"node:os";import L from"node:path";x();import{closeSync as qu,existsSync as $n,mkdirSync as Ju,openSync as zu,statSync as Xu,unlinkSync as Zu}from"node:fs";d();import U from"node:path";Re();import{existsSync as z,readdirSync as Bn}from"node:fs";import I from"node:path";var Un=/^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$/i;function Ln(e){let t=e.split("-")[0].split(".");if(t.length!==3)return null;let[n,o,s]=t;return!n||!o||!s?null:+`${n}${o.padStart(2,"0")}${s.padStart(2,"0")}`}function Fn(e){let r=I.join(e,"versions");if(!z(r))return null;let t=null,n=-1;for(let o of Bn(r,{withFileTypes:!0})){if(!o.isDirectory()||!Un.test(o.name))continue;let s=Ln(o.name);s==null||s<=n||(n=s,t=I.join(r,o.name))}return t}function Me(e){let r=e?.trim()||I.join(process.env.LOCALAPPDATA||"","cursor-agent"),t=I.join(r,"node.exe"),n=I.join(r,"index.js");if(z(t)&&z(n))return{nodeExe:t,indexJs:n,versionDir:r};let o=Fn(r);if(!o)return null;let s=I.join(o,"node.exe"),i=I.join(o,"index.js");return!z(s)||!z(i)?null:{nodeExe:s,indexJs:i,versionDir:o}}function Hn(e,r,t){return{executable:e,prefixArgs:[r],shell:!1,detached:_(),bundledVersionDir:t}}function tt(e){if(process.platform==="win32"){let r=/\.(cmd|bat)$/i.test(e),t=/node\.exe$/i.test(e)&&$n(U.join(U.dirname(e),"index.js"));if(r||t||e==="agent"){let o=r?Me(U.dirname(e)):t?{nodeExe:e,indexJs:U.join(U.dirname(e),"index.js"),versionDir:U.dirname(e)}:Me();if(o)return Hn(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 jn}from"node:child_process";function Be(e,r=process.env){try{let t;try{t=tt(e)}catch{t={executable:e,prefixArgs:[]}}let n=jn(t.executable,[...t.prefixArgs,"status","--format","json"],{encoding:"utf8",windowsHide:!0,timeout:8e3,env:{...r,CI:"1",NO_COLOR:"1"}});if(n.status!==0)return{ok:!1,note:"agent status: not authenticated"};let o=(n.stdout||"").trim();if(!o)return{ok:!1,note:"agent status: empty response"};let s;try{s=JSON.parse(o)}catch{return{ok:!1,note:"agent status: unparseable response"}}return typeof s=="object"&&s!==null&&s.isAuthenticated===!0?{ok:!0,note:"agent status: authenticated"}:{ok:!1,note:"agent status: not authenticated"}}catch(t){return{ok:!1,note:t instanceof Error?t.message:"agent status probe failed"}}}function Ue(e=process.env){let r=[],t=e.KYNVER_CURSOR_AUTH_HOME?.trim();t&&(r.push(L.join(t,".config","cursor","auth.json")),r.push(L.join(t,".cursor-agent","auth.json")));let n=Vn();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 Gn="agent";function nt(e=new Date().toISOString()){let r=g(Gn,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:B("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Ue().find(l=>Yn(l)),o=Be(r),s=!!n||o.ok,i=t.ok&&s;return{providerId:"cursor",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"Local Cursor/Composer OAuth session bound on runner":[t.note,s?void 0:o.note??"no ~/.config/cursor/auth.json or `agent login` session"].filter(Boolean).join("; ")}}import{existsSync as qn,readFileSync as Jn}from"node:fs";import{homedir as zn}from"node:os";import Le from"node:path";var Xn=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Zn(){let e=process.env.HERMES_HOME?.trim(),r=e?Le.resolve(e):Le.join(zn(),".hermes");return Le.join(r,".env")}function Qn(e){try{let r=Jn(e,"utf8"),t=[];for(let n of Xn)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function ot(e=new Date().toISOString()){let r=g("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Zn(),o=qn(n),s=o?Qn(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function it(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=J(r),n={codex:t,cursor:nt(r),claude:rt(r)},o=Object.values(n).filter(s=>s.ready).length;return{generatedAt:r,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},workerEndpoint:{baseUrlConfigured:!!process.env.KYNVER_WORKER_BASE_URL?.trim(),apiKeyConfigured:!!process.env.KYNVER_WORKER_API_KEY?.trim()},hermes:ot(r),hermesOpenAiCodex:pe(r),codexAdapterPath:t.path,readyCount:o}}var eo=[/\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],ro=[/\borchestration\b/i,/\bplan[- ]?progress\b/i,/\bstatus\s+sync\b/i,/\bheartbeat\b/i,/\bboard[- ]?drain\b/i,/\bmaintenance\b/i,/\[orchestration:\s*low-risk\]/i];function Fe(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function to(e){let r=Fe(e,"executorRef").toLowerCase(),t=Fe(e,"title").toLowerCase(),n=Fe(e,"description").toLowerCase(),o=`${r}
|
|
68
68
|
${t}
|
|
69
|
-
${n}`;return
|
|
69
|
+
${n}`;return eo.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":ro.some(s=>s.test(o))?"low":"elevated"}function no(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 oo(e){let r=e.inventory??it();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function N(e){let r=no({provider:e.providerId,model:e.model,authSource:e.binding.authSource,riskClass:e.riskClass,routingRule:e.routingRule,escalatedFrom:e.escalatedFrom,escalatedReason:e.escalatedReason});return{provider:e.providerId,model:e.model,rule:r.routingRule,audit:r}}function st(e){let r=e.task??{},t=to(r),n=oo({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:J())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=F;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let p=We({inventory:n,riskClass:t});return N(p?{providerId:p.providerId,binding:p.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return N({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return N({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return N({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=We({inventory:n,riskClass:t});if(l)return N({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return N({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}x();d();C();G();var at="kynver",lt=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],io=lt.map(e=>`mcp__${at}__${e}`);G();x();d();C();x();d();C();var me="gpt-5.6-sol";var lp=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me;function ao(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||me}var $=ao();x();d();var $e="openai-compatible",Fp=600*1e3;x();d();C();var T="gemini";function D(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var H="gemini-api";var um=600*1e3;var j="venice";var uo="venice-uncensored-1-2";var po="KYNVER_VENICE_DEFAULT_MODEL";function fe(e=process.env){return e[po]?.trim()||uo}var dt=k,Q="composer-2.5";function m(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function mo(e){if(!e)return;let r=m(e,"workerModelOverride")||m(e,"modelOverride");return r||`${m(e,"title")}
|
|
70
70
|
${m(e,"description")}
|
|
71
|
-
${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function
|
|
71
|
+
${m(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ct(e){return e.toLowerCase()}function ye(e=W()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||dt}function ge(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?T:"cursor"}function fo(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:Q,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:k,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:D(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:D(),provider:H,rule:n&&n!==H?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="venice"||t==="venice-ai"||t==="venice_ai"?{model:fe(),provider:j,rule:n&&n!==j?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function ut(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var go=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function pt(e,r,t){return go.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:k}function mt(e){let r=ct(m(e,"executorRef")),t=m(e,"title").toLowerCase(),n=m(e,"priority")||"normal",o=ct(m(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=pt(o,r,t);return{provider:"claude",model:i,rule:i===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=f(m(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:$},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=f(m(e,"executorRef"));return{provider:$e,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:venice")||r.startsWith("venice:")){let i=f(m(e,"executorRef"));return{provider:j,...i?.model?{model:i.model}:{model:fe()},rule:"lane:venice"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=f(m(e,"executorRef"));return{provider:H,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=f(m(e,"executorRef"));return{provider:T,...i?.model?{model:i.model}:{model:D()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:$,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return ut(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(ut(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let s=ye();return{model:s,provider:ge(s),rule:"default:global"}}function ho(e){return e?f(m(e,"executorRef")):null}function yo(e){switch(P(e)){case T:case H:return D();case j:return fe();case"claude":return k;case"codex":return $;case"cursor":return Q;default:return}}var He="explicit:cli_provider",ft="config:worker_provider";function gt(e,r,t){let n=P(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:yo(n)??e.model,rule:t}}function _o(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==He?e:gt(e,t,He)}function ko(e,r){if(r.explicitProvider?.trim()||je(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=P(t);return n===F||n===e.provider?e:gt(e,n,ft)}function xo(e){let r,t=ho(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=fo(c,e.explicitProvider);u?r=u:r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"explicit:cli",requestedModel:c}}else if(n)r={model:n,provider:o||ge(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&he(e.task)){let c=mo(e.task),u,p;if(c)u=c,p="task:provider_override";else{let V=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ve=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",_e=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=pt(V,Ve,_e),p=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:p,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let c=mt(e.task);r={...c,requestedModel:c.model}}else{let c=ye();r={model:c,provider:e.explicitProvider?.trim()||ge(c),rule:"default:global",requestedModel:c}}r=_o(r,e.explicitProvider),r=ko(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&P(e.configuredProvider)!==F&&r.rule==="config:worker_provider",i=ht({routing:r,task:e.task,explicitProvider:e.explicitProvider??(s?r.provider:void 0),explicitProviderIsOperatorOverride:!!e.explicitProviderIsOperatorOverride||s});if(!e.task||Object.keys(e.task).length===0||i.rule==="explicit:model_provider_alias"||i.rule==="explicit:model_provider_alias_overrode_provider"||i.rule==="explicit:cli"||i.rule===He||i.rule===ft||R(i.provider)&&(e.explicitProviderIsOperatorOverride||he(e.task))||i.provider===$e||i.provider===T||i.provider===H||i.provider===j||i.provider==="codex")return i;let l=st({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:l.provider,model:l.provider==="codex"?l.model??i.model??$:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function Ro(e,r,t){return e||r||t||ye()||k}ue();ue();var F="cursor",vo=new Set(["claude","opus","anthropic"]),bo=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function ee(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return vo.has(r)?!0:r.includes("claude")||r.includes("opus")}function he(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=ee(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=f(ee(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(Eo(n.model)))return!0;let o=ee(e,"description");if(bo.some(i=>i.test(o)))return!0;let s=ee(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function Eo(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function So(e,r){return{provider:F,model:Q,rule:`policy:cursor_default${r}`,requestedModel:e}}var Co=["explicit:","executor_ref:","factory:","task:"];function Oo(e){return Co.some(r=>e.startsWith(r))}function je(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||f(ee(e,"executorRef"))?.provider?!0:he(e)}function ht(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Oo(r.rule)||je(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return So(r.model,o)}function Ao(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function yt(e){return e?.trim()||void 0}function wo(e){let r=Ao(e.task),t=f(r),n=e.explicitProvider?.trim().toLowerCase(),o=yt(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let c=e.routing.provider,u=yt(e.routing.model),p={provider:c,model:u,rule:e.routing.rule};return s&&s!=="cursor"||r&&xe(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:i&&u&&i!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:p}:{ok:!0,resolved:p}}export{Q as CURSOR_DEFAULT_MODEL,dt as GLOBAL_DEFAULT_MODEL,wo as assessDispatchModelGuard,xe as executorRefRequestsNonCursorWorker,mt as inferModelRoutingFromTask,f as parseExecutorRefRoutingIntent,ye as resolveGlobalDefaultModel,Ro as resolveModelFallback,xo as resolveWorkerLaunch};
|
package/dist/server/monitor.js
CHANGED
|
@@ -5,7 +5,7 @@ var l=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=
|
|
|
5
5
|
`).find(Boolean)??o,160):"npm audit failed"}function en(e){let r=`${e.stdout}
|
|
6
6
|
${e.stderr}`.trim(),t=Xt(r);if(!t||!O(t)){let o=w(r||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit failed (invalid or missing JSON): ${o}`,parseError:"invalid_json"}}if(O(t.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${Qt(t,e.stderr)}`};let n=qt(t);return n?e.exitCode===0&&n.total===0?{kind:"success",exitCode:0,summary:"npm audit: no vulnerabilities reported",audit:n}:{kind:"audit_findings",exitCode:e.exitCode,summary:Zt(n),audit:n}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function rn(e){return Jt.test(e)}function tn(e){let r=$(e).command;return rr.test(e)||rr.test(r)||Ze(e)}function nn(e){let r=ce({command:e.command,exitCode:e.exitCode});if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"ripgrep finished (exit 0)"};if(e.exitCode===1){let n=(e.stderr||e.interleaved).trim();if(n&&zt.test(n)){let i=w(n,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=ue(e.command),s=o.changed&&!r?` Retry with: \`${o.command}\`.`:"";return{kind:"search_no_matches",exitCode:1,summary:r??`ripgrep: no matches (exit 1).${s} Try a broader pattern or search from the repo root.`}}let t=w(e.interleaved||e.stdout||e.stderr||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:r??`ripgrep failed (exit ${e.exitCode}): ${t}`}}function tr(e){let r=e.stdout??"",t=e.stderr??"",n=e.interleavedOutput??"";if(rn(e.command)){let i=r.trim()||n.trim()||t.trim();return en({exitCode:e.exitCode,stdout:i,stderr:t})}if(tn(e.command))return nn({command:e.command,exitCode:e.exitCode,stdout:r,stderr:t,interleaved:n});let o=ce({command:e.command,exitCode:e.exitCode});if(o&&e.exitCode!==0)return{kind:"command_failure",exitCode:e.exitCode,summary:o};if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"command succeeded (exit 0)"};let s=w(n||r||t||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var Jt,rr,zt,nr=l(()=>{"use strict";er();Jt=/\bnpm\s+audit\b/i,rr=/\b(rg|ripgrep)\b/i,zt=/\b(error|invalid|unknown|panic|not found)\b/i});function P(e){return typeof e=="string"&&on.test(e.trim())}function H(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let r=e;return r.is_error===!0||r.providerTerminalError===!0||typeof r.subtype=="string"&&/^error(?:_|$)/.test(r.subtype)}var on,j=l(()=>{"use strict";on=/^(?:provider authentication failed:\s*)?(?:(?:Failed to authenticate|authentication (?:failed|error))(?::\s*[^\n.!?]+)?|OAuth session expired and could not be refreshed)[.!]?$/i});var sn,an,Zo,or,de=l(()=>{"use strict";sn="claude-sonnet-5-5",an="claude-opus-5-5",Zo={[sn]:"claude-sonnet-4-6",[an]:"claude-opus-4-8"},or=/isn't described by this version's model catalog|\bunrecognized_model\b|issue with the selected model/i});function fe(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ln(e){if(!e)return;let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0;if(!((r===void 0||r<0)&&(t===void 0||t<0)))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{}}}function sr(e){if(e.event==="step_update"&&fe(e.step_update)){let s=e.step_update,i=s.step_type==="tool"&&typeof s.tool_name=="string"&&s.tool_name.trim()?s.tool_name.trim():void 0,a=typeof s.text_delta=="string"?s.text_delta:void 0;return!i&&a===void 0?null:{...i?{currentTool:i}:{},...a!==void 0?{textDelta:a}:{}}}if(e.event!=="result"||!fe(e.result))return null;let r=e.result,t=typeof r.status=="string"?r.status.toUpperCase():"";if(t!=="SUCCESS"&&t!=="ERROR")return null;let n=fe(r.usage)?ln(r.usage):void 0;if(t==="ERROR"){let s=typeof r.error=="string"&&r.error.trim()?r.error.trim():"antigravity cli result error";return{...n?{usage:n}:{},terminal:{ok:!1,finalResult:null,error:s}}}let o=typeof r.response=="string"?r.response.trim():"";return{...n?{usage:n}:{},terminal:{ok:!0,finalResult:o||"completed",error:null}}}var ir=l(()=>{"use strict"});function pe(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ar(){return{assistantText:""}}function un(e,r){if(!(r.role!=="assistant"||typeof r.content!="string")){if(r.delta===!0){e.assistantText+=r.content;return}e.assistantText=r.content}}function cn(e){let r=typeof e.input_tokens=="number"?e.input_tokens:void 0,t=typeof e.output_tokens=="number"?e.output_tokens:void 0,o=(pe(e.models)?Object.keys(e.models):[]).find(s=>s.trim())?.trim();if(!(r===void 0&&t===void 0&&!o))return{...r!==void 0&&r>=0?{inputTokens:r}:{},...t!==void 0&&t>=0?{outputTokens:t}:{},...o?{model:o}:{}}}function dn(e){return e.type!=="result"||e.status!=="success"&&e.status!=="error"?!1:typeof e.result!="string"}function lr(e,r){if(e.type==="message"&&(e.role==="assistant"||e.role==="user"))return un(r,e),{};if(e.type==="tool_use"&&typeof e.tool_name=="string"&&e.tool_name.trim())return{currentTool:e.tool_name.trim()};if(!dn(e))return null;let t=pe(e.stats)?cn(e.stats):void 0;if(e.status==="error"){let o=pe(e.error)&&typeof e.error.message=="string"?e.error.message:"gemini cli result error";return{...t?{usage:t}:{},terminal:{ok:!1,finalResult:null,error:o}}}let n=r.assistantText.trim();return{...t?{usage:t}:{},terminal:{ok:!0,finalResult:n||"completed",error:null}}}var ur=l(()=>{"use strict"});import{existsSync as fn,readFileSync as pn}from"node:fs";function mn(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function gn(e){if(!e)return null;for(let r of Object.keys(e))if(r.endsWith("ToolCall")){let t=r.slice(0,-8);return t.length?t:r}return null}function hn(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",H(r)&&(e.providerTerminalError=!0,e.error=String(r.result||r.api_error_status||"stream result error"))}function S(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function yn(e){let r=e.usage;return r&&typeof r=="object"&&!Array.isArray(r)?r:null}function bn(e){if(typeof e.model=="string"&&e.model.trim())return e.model.trim();let r=e.modelUsage;if(r&&typeof r=="object"&&!Array.isArray(r)){let t=Object.keys(r)[0];if(t?.trim())return t.trim()}}function kn(e,r){let t=yn(r);if(!t)return;let n=S(t.input_tokens)??S(t.inputTokens)??S(t.prompt_tokens),o=S(t.output_tokens)??S(t.outputTokens)??S(t.completion_tokens);if(n===void 0&&o===void 0)return;let s=bn(r)??e.usage?.model;e.usage={...n!==void 0?{inputTokens:n}:{},...o!==void 0?{outputTokens:o}:{},...s?{model:s}:{}}}function Rn(e){if(e.type!=="tool_call"||e.subtype!=="completed")return null;let t=(e.tool_call&&typeof e.tool_call=="object"&&!Array.isArray(e.tool_call)?e.tool_call:null)?.shellToolCall;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t,o=n.args,s=o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.command=="string"?String(o.command):"",i=n.result;if(!i||typeof i!="object"||Array.isArray(i))return null;let a=i.success??i.failure;if(!a||typeof a!="object"||Array.isArray(a))return null;let u=a,p=typeof u.exitCode=="number"?u.exitCode:0;return{command:s,exitCode:p,stdout:typeof u.stdout=="string"?u.stdout:"",stderr:typeof u.stderr=="string"?u.stderr:"",interleaved:typeof u.interleavedOutput=="string"?u.interleavedOutput:""}}function xn(e,r){r.kind==="success"||r.kind==="search_no_matches"||(e.lastShellOutcome=r)}function cr(e){let r={firstEventAt:null,lastEventAt:null,currentTool:null,finalResult:null,error:null,lastShellOutcome:null,usage:null};if(!fn(e))return r;let t=pn(e,"utf8").split(`
|
|
7
7
|
`).filter(Boolean),n=null,o=ar();for(let s of t){let i=B(s);if(!i||typeof i!="object"||Array.isArray(i))continue;if(i.type==="turn.started"&&(n=null,r.finalResult=null),i.type==="item.completed"){let d=i.item;if(d&&typeof d=="object"&&!Array.isArray(d)){let m=d;m.type==="agent_message"&&typeof m.text=="string"&&m.text.trim()&&(n=m.text)}}i.type==="turn.completed"&&n&&!r.providerTerminalError&&(r.finalResult=n,n=null);let a=mn(i);if(a&&(r.firstEventAt||=a,r.lastEventAt=a),i.type==="stream_event"&&i.event&&typeof i.event=="object"&&i.event.type==="content_block_start"){let d=i.event.content_block;d?.type==="tool_use"&&(r.currentTool=String(d.name||"tool"))}if(i.type==="assistant"&&i.message&&typeof i.message=="object"){let d=i.message.content;if(Array.isArray(d)){let m=d.find(h=>h?.type==="tool_use");m&&(r.currentTool=String(m.name||r.currentTool))}}if(i.type==="tool_call"&&i.subtype==="started"){let d=i.tool_call&&typeof i.tool_call=="object"&&!Array.isArray(i.tool_call)?i.tool_call:void 0,m=gn(d);m&&(r.currentTool=m)}let u=Rn(i);u&&xn(r,tr({command:u.command,exitCode:u.exitCode,stdout:u.stdout,stderr:u.stderr,interleavedOutput:u.interleaved}));let p=sr(i),f=p?null:lr(i,o),c=p??f;if(c?.currentTool&&(r.currentTool=c.currentTool),c?.usage&&(r.usage={...r.usage??{},...c.usage}),c?.terminal?c.terminal.ok?r.finalResult=c.terminal.finalResult:(r.finalResult=null,r.providerTerminalError=!0,r.error=c.terminal.error):i.type==="result"&&hn(r,i),i.type==="turn.failed"){n=null,r.finalResult=null,r.providerTerminalError=!0;let d=i.error;r.error=typeof d?.message=="string"?d.message:"provider turn failed"}kn(r,i)}return r}var dr=l(()=>{"use strict";nr();g();j();de();ir();ur()});var k=l(()=>{"use strict"});var Sn,gs,En,hs,fr=l(()=>{"use strict";Sn=["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"],gs=new Set(Sn),En=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],hs=new Set(En)});import{spawnSync as mr}from"node:child_process";function _n(e,r,t={}){let n=mr("git",r,ie({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=vn(e,r,n);if(t.throwError)throw new Error(o);se(o)}return n.stdout||""}function vn(e,r,t){let n=typeof t.stderr=="string"&&t.stderr.trim()||typeof t.stdout=="string"&&t.stdout.trim()||t.error?.message||`exit ${t.status??"unknown"}`;return`git ${r.join(" ")} failed in ${e}: ${n}`}function gr(e){return _n(e,["status","--short"],{allowFailure:!0}).split(`
|
|
8
|
-
`).map(r=>r.trim()).filter(Boolean)}function I(e,r){try{let t=mr("git",r,ie({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}function pr(e,r,t){let n=I(e,["merge-base","--is-ancestor",r,t]);return n.status===0?{isAncestor:!0,error:null}:n.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:n.error||n.stderr||n.stdout||`git exited ${n.status}`}}function hr(e,r="origin/main"){let t=typeof r=="string"?{base:r}:r,n=t.baseCommit?.trim()||t.base?.trim()||"origin/main",o=t.baseCommit?.trim()||null;if(!e)return E(n,"missing worktree path");let s=I(e,["rev-parse","HEAD"]);if(s.status!==0)return E(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let d=I(e,["rev-parse",n]);if(d.status!==0)return E(n,d.error||d.stderr||d.stdout||`failed to resolve ${n}`,s.stdout.trim());i=d.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let u=pr(e,i,a),p=pr(e,a,i),f=u.error||p.error||void 0;if(u.isAncestor==null||p.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:"unknown",...f?{error:f}:{}};let c=u.isAncestor?"ahead":p.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:c,...f?{error:f}:{}}}function E(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var V=l(()=>{"use strict";k();g();fr()});var me=l(()=>{"use strict";V()});var ge=l(()=>{"use strict";V();k();me()});var yr=l(()=>{"use strict"});var br=l(()=>{"use strict";yr()});var he=l(()=>{"use strict";g()});var R=l(()=>{"use strict"});var G=l(()=>{"use strict"});var kr=l(()=>{"use strict"});var $s,Hs,ye=l(()=>{"use strict";$s=25*1024*1024*1024,Hs=12*1024*1024*1024});var Js,zs,Rr=l(()=>{"use strict";ye();Js=5*1024*1024*1024,zs=10*1024*1024*1024});var ri,ti,be=l(()=>{"use strict";Rr();ye();ri=30*1024*1024*1024,ti=15*1024*1024*1024});var xr=l(()=>{"use strict";T();g()});var Er=l(()=>{"use strict";N();g()});var An,wn,vr=l(()=>{"use strict";kr();_();R();G();z();be();T();xr();Er();g();An=500*1024*1024,wn=4*1024*1024*1024});var z=l(()=>{"use strict";vr()});import{homedir as In}from"node:os";import Tn from"node:path";var Cr,xe=l(()=>{"use strict";Cr=Tn.join(In(),".kynver",".env")});var Ar=l(()=>{"use strict"});var wr=l(()=>{"use strict";Ar()});var Or=l(()=>{"use strict"});var Pr=l(()=>{"use strict";g()});var Se=l(()=>{"use strict";wr();Or();Pr()});var Ir=l(()=>{"use strict"});var Tr=l(()=>{"use strict";Ir()});var X=l(()=>{"use strict";xe();k();_();Se();Tr()});var Nr=l(()=>{"use strict";R();R()});var Kr=l(()=>{"use strict";xe();Se();X()});var Ee=l(()=>{"use strict"});var Wr=l(()=>{"use strict";g()});import Un from"node:path";var wa,_e=l(()=>{"use strict";k();Wr();wa=Un.join(".openclaw","harness")});var Z=l(()=>{"use strict";_();R();G();z();_e()});var Br=l(()=>{"use strict";ge();R();Nr();_();X();Kr();he();Ee();Z()});var Yn,za,Ur=l(()=>{"use strict";Yn=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],za=Yn.join("|")});var Mr=l(()=>{"use strict";k()});var Fr=l(()=>{"use strict";Mr()});var Lr=l(()=>{"use strict"});var $r=l(()=>{"use strict";Lr()});import{homedir as Vn,totalmem as wl}from"node:os";import ve from"node:path";var Hr,Vl,Gl,Jl,zl,_=l(()=>{"use strict";ge();k();me();br();he();R();G();z();be();X();Br();Ur();Z();Fr();Ee();$r();Hr=ve.join(Vn(),".kynver"),Vl=ve.join(Hr,"config.json"),Gl=ve.join(Hr,"credentials"),Jl=500*1024*1024,zl=4*1024*1024*1024});var jr=l(()=>{"use strict";_();_e();Z();g()});var T=l(()=>{"use strict";jr();g()});import{accessSync as cu,constants as du,existsSync as Gn,readFileSync as Jn}from"node:fs";import zn from"node:path";function qn(e){return zn.join(e,Xn)}function Zn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Ce(e){if(!e)return null;let r=qn(e);if(!Gn(r))return null;try{let t=JSON.parse(Jn(r,"utf8")),n=t.oomEvidence;return{exitCode:Zn(t.exitCode),signal:typeof t.signal=="string"&&t.signal?t.signal:null,...typeof t.startedAt=="string"?{startedAt:t.startedAt}:{},...typeof t.endedAt=="string"?{endedAt:t.endedAt}:{},...typeof t.childPid=="number"?{childPid:t.childPid}:{},...typeof t.spawnError=="string"?{spawnError:t.spawnError}:{},oomEvidence:n&&(n.source==="cgroup"||n.source==="kernel_log")?{source:n.source,detail:String(n.detail??"").slice(0,300)}:null}}catch{return null}}function Yr(e){if(!e)return null;let r=e.oomEvidence?" (kernel out-of-memory kill)":"";return e.spawnError?`could not start: ${e.spawnError}`:e.signal?`killed by ${e.signal}${r}`:e.exitCode===null?null:`exited with code ${e.exitCode}${r}`}var Xn,pu,Ae=l(()=>{"use strict";Xn="exit.json";pu=String.raw`"use strict";
|
|
8
|
+
`).map(r=>r.trim()).filter(Boolean)}function I(e,r){try{let t=mr("git",r,ie({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}function pr(e,r,t){let n=I(e,["merge-base","--is-ancestor",r,t]);return n.status===0?{isAncestor:!0,error:null}:n.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:n.error||n.stderr||n.stdout||`git exited ${n.status}`}}function hr(e,r="origin/main"){let t=typeof r=="string"?{base:r}:r,n=t.baseCommit?.trim()||t.base?.trim()||"origin/main",o=t.baseCommit?.trim()||null;if(!e)return E(n,"missing worktree path");let s=I(e,["rev-parse","HEAD"]);if(s.status!==0)return E(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let d=I(e,["rev-parse",n]);if(d.status!==0)return E(n,d.error||d.stderr||d.stdout||`failed to resolve ${n}`,s.stdout.trim());i=d.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let u=pr(e,i,a),p=pr(e,a,i),f=u.error||p.error||void 0;if(u.isAncestor==null||p.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:"unknown",...f?{error:f}:{}};let c=u.isAncestor?"ahead":p.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:p.isAncestor,relation:c,...f?{error:f}:{}}}function E(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var V=l(()=>{"use strict";k();g();fr()});var me=l(()=>{"use strict";V()});var ge=l(()=>{"use strict";V();k();me()});var yr=l(()=>{"use strict"});var br=l(()=>{"use strict";yr()});var he=l(()=>{"use strict";g()});var R=l(()=>{"use strict"});var G=l(()=>{"use strict"});var kr=l(()=>{"use strict"});var $s,Hs,ye=l(()=>{"use strict";$s=25*1024*1024*1024,Hs=12*1024*1024*1024});var Js,zs,Rr=l(()=>{"use strict";ye();Js=5*1024*1024*1024,zs=10*1024*1024*1024});var ri,ti,be=l(()=>{"use strict";Rr();ye();ri=30*1024*1024*1024,ti=15*1024*1024*1024});var xr=l(()=>{"use strict";T();g()});var Er=l(()=>{"use strict";N();g()});var An,wn,vr=l(()=>{"use strict";kr();_();R();G();z();be();T();xr();Er();g();An=500*1024*1024,wn=4*1024*1024*1024});var z=l(()=>{"use strict";vr()});import{homedir as In}from"node:os";import Tn from"node:path";var Cr,xe=l(()=>{"use strict";Cr=Tn.join(In(),".kynver",".env")});var Ar=l(()=>{"use strict"});var wr=l(()=>{"use strict";Ar()});var Or=l(()=>{"use strict"});var Pr=l(()=>{"use strict";g()});var Se=l(()=>{"use strict";wr();Or();Pr()});var Ir=l(()=>{"use strict"});var Tr=l(()=>{"use strict";Ir()});var X=l(()=>{"use strict";xe();k();_();Se();Tr()});var Nr=l(()=>{"use strict";R();R()});var Kr=l(()=>{"use strict";xe();Se();X()});var Ee=l(()=>{"use strict"});var Wr=l(()=>{"use strict";g()});import Un from"node:path";var wa,_e=l(()=>{"use strict";k();Wr();wa=Un.join(".openclaw","harness")});var Z=l(()=>{"use strict";_();R();G();z();_e()});var Br=l(()=>{"use strict";ge();R();Nr();_();X();Kr();he();Ee();Z()});var Yn,za,Ur=l(()=>{"use strict";Yn=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],za=Yn.join("|")});var Mr=l(()=>{"use strict";k()});var Fr=l(()=>{"use strict";Mr()});var Lr=l(()=>{"use strict"});var $r=l(()=>{"use strict";Lr()});import{homedir as Vn,totalmem as wl}from"node:os";import ve from"node:path";var Hr,Vl,Gl,Jl,zl,_=l(()=>{"use strict";ge();k();me();br();he();R();G();z();be();X();Br();Ur();Z();Fr();Ee();$r();Hr=ve.join(Vn(),".kynver"),Vl=ve.join(Hr,"config.json"),Gl=ve.join(Hr,"credentials"),Jl=500*1024*1024,zl=4*1024*1024*1024});var jr=l(()=>{"use strict";_();_e();Z();g()});var T=l(()=>{"use strict";jr();g()});import{accessSync as cu,constants as du,existsSync as Gn,readFileSync as Jn}from"node:fs";import zn from"node:path";function qn(e){return zn.join(e,Xn)}function Zn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function Ce(e){if(!e)return null;let r=qn(e);if(!Gn(r))return null;try{let t=JSON.parse(Jn(r,"utf8")),n=t.oomEvidence;return{exitCode:Zn(t.exitCode),signal:typeof t.signal=="string"&&t.signal?t.signal:null,...typeof t.startedAt=="string"?{startedAt:t.startedAt}:{},...typeof t.endedAt=="string"?{endedAt:t.endedAt}:{},...typeof t.childPid=="number"?{childPid:t.childPid}:{},...typeof t.spawnError=="string"?{spawnError:t.spawnError}:{},oomEvidence:n&&(n.source==="cgroup"||n.source==="kernel_log")?{source:n.source,detail:String(n.detail??"").slice(0,300)}:null}}catch{return null}}function Yr(e){if(!e)return null;let r=e.oomEvidence?" (kernel out-of-memory kill)":"";return e.spawnError?`could not start: ${e.spawnError}`:e.signal?`killed by ${e.signal}${r}`:e.exitCode===null?null:`exited with code ${e.exitCode}${r}`}var Xn,pu,Ae=l(()=>{"use strict";Xn="exit.json";pu=String.raw`"use strict";
|
|
9
9
|
const cp = require("child_process"), fs = require("fs");
|
|
10
10
|
const argv = process.argv.slice(1);
|
|
11
11
|
const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _="venice",l="https://api.venice.ai/api/v1",c="venice-uncensored-1-2",p="KYNVER_VENICE_API_KEY",u="VENICE_API_KEY",d="KYNVER_VENICE_BASE_URL",f="KYNVER_VENICE_DEFAULT_MODEL",g=["venice","venice-ai","venice_ai","veniceai"];function m(e){return typeof e=="string"&&g.includes(e.trim().toLowerCase())}function b(e=process.env){return e[p]?.trim()||e[u]?.trim()||void 0}function x(e=process.env){return(e[d]?.trim()||l).replace(/\/+$/,"")}function E(e=process.env){return e[f]?.trim()||c}function C(e){return{"content-type":"application/json",authorization:`Bearer ${e}`}}function o(e,...n){if(!e)return"unknown";for(let t of n){let i=e[t];if(typeof i=="boolean")return i}return"unknown"}function V(e){if(!e||typeof e!="object")return null;let n=e;if(typeof n.id!="string"||!n.id.trim())return null;let t=n.model_spec&&typeof n.model_spec=="object"?n.model_spec:{},i=t.capabilities&&typeof t.capabilities=="object"?t.capabilities:void 0,s=typeof n.type=="string"&&n.type?n.type:"text",r=t.availableContextTokens??t.available_context_tokens,a=typeof t.name=="string"&&t.name.trim()?t.name.trim():n.id;return{id:n.id,label:a,type:s,contextTokens:typeof r=="number"&&Number.isFinite(r)?r:null,capabilities:{toolCalling:o(i,"supportsFunctionCalling","supportsToolCalling","supports_function_calling"),vision:o(i,"supportsVision","supports_vision"),streaming:s==="text"?o(i,"supportsStreaming","supports_streaming")!==!1:!1,reasoning:o(i,"supportsReasoning","supports_reasoning")}}}function y(e){let n=e&&typeof e=="object"?e.data:void 0;return Array.isArray(n)?n.map(V).filter(t=>t!==null&&t.type==="text").sort((t,i)=>t.id.localeCompare(i.id)):[]}function I(e,n){return n?n.capabilities.toolCalling===!1?{ok:!1,message:`Venice model "${e}" doesn't support tool calling, so it can answer questions but can't run agent tools. Pick a model marked "tools" for Agent mode.`}:{ok:!0,unverified:n.capabilities.toolCalling==="unknown"}:{ok:!0,unverified:!0}}function k(e,n){return e?.trim()||E(n)}export{p as VENICE_API_KEY_ENV,u as VENICE_API_KEY_ENV_FALLBACK,d as VENICE_BASE_URL_ENV,l as VENICE_DEFAULT_BASE_URL,c as VENICE_DEFAULT_MODEL,f as VENICE_DEFAULT_MODEL_ENV,_ as VENICE_PROVIDER,g as VENICE_PROVIDER_ALIASES,I as assessVeniceToolSupport,C as buildVeniceHeaders,m as isVeniceProviderName,V as parseVeniceModel,y as parseVeniceModelList,b as resolveVeniceApiKey,x as resolveVeniceBaseUrl,E as resolveVeniceDefaultModel,k as veniceModelOrDefault};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var o=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function ie(e){let r=e[Jr];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function k(e,r={}){return
|
|
1
|
+
var o=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};function ie(e){let r=e[Jr];return r?new Set(r.split(/[\s,]+/).map(t=>t.trim()).filter(Boolean)):new Set}function k(e,r={}){return Hr.has(e)?!0:Gr.has(e)||r.operatorAllow?.has(e)||qr.some(t=>e.endsWith(t))?!1:jr.some(t=>e.endsWith(t))}function we(e){let r=ie(e);return Object.keys(e).filter(t=>k(t,{operatorAllow:r})).sort()}function Pe(e){let r=ie(e);return r.size===0?[]:Object.keys(e).filter(t=>r.has(t)&&!k(t,{operatorAllow:r})&&k(t)).sort()}function T(e){let r=ie(e),t={...e};for(let n of Object.keys(t))k(n,{operatorAllow:r})&&delete t[n];return t}function zr(e){let r=we(e),t=Pe(e);return{forbiddenPresent:r,safe:r.length===0,...t.length?{operatorAllowedActive:t}:{}}}var Vr,Hr,jr,Yr,Gr,qr,Jr,D=o(()=>{"use strict";Vr=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],Hr=new Set(Vr),jr=["_SECRET","_API_KEY","_KEK","_KEY","_TOKEN","_PASSWORD","_PASSPHRASE","_SALT"],Yr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Gr=new Set(Yr),qr=["_PUBLIC_KEY"],Jr="KYNVER_WORKER_ENV_ALLOW"});var f=o(()=>{"use strict"});var Me=o(()=>{"use strict"});function M(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}var a=o(()=>{"use strict";Me()});var B=o(()=>{"use strict";f();a();D()});var le=o(()=>{"use strict";B()});var ce=o(()=>{"use strict";B();f();le()});var g=o(()=>{"use strict"});var Ue=o(()=>{"use strict";g()});var ue=o(()=>{"use strict";a()});var h=o(()=>{"use strict"});var L=o(()=>{"use strict"});var Be=o(()=>{"use strict"});var mo,fo,de=o(()=>{"use strict";mo=25*1024*1024*1024,fo=12*1024*1024*1024});var vo,xo,Le=o(()=>{"use strict";de();vo=5*1024*1024*1024,xo=10*1024*1024*1024});var Co,Oo,pe=o(()=>{"use strict";Le();de();Co=30*1024*1024*1024,Oo=15*1024*1024*1024});var Fe=o(()=>{"use strict";a()});import mt from"node:path";var Ko,fe=o(()=>{"use strict";f();Fe();Ko=mt.join(".openclaw","harness")});var $=o(()=>{"use strict";y();h();L();V();fe()});var He=o(()=>{"use strict";y();fe();$();a()});var Y=o(()=>{"use strict";He();a()});var Ye=o(()=>{"use strict";Y();a()});var Ge=o(()=>{"use strict"});var qe=o(()=>{"use strict";Ge();a()});var Je=o(()=>{"use strict"});var ze=o(()=>{"use strict";Je()});var G=o(()=>{"use strict"});var q,ge,_i,E=o(()=>{"use strict";q="claude-sonnet-5-5",ge="claude-opus-5-5",_i={[q]:"claude-sonnet-4-6",[ge]:"claude-opus-4-8"}});var Xe=o(()=>{"use strict"});var Ze=o(()=>{"use strict"});var Qe=o(()=>{"use strict";ze();a();G();E();Xe();Ze()});var Mi,u=o(()=>{"use strict";Mi=String.raw`"use strict";
|
|
2
2
|
const cp = require("child_process"), fs = require("fs");
|
|
3
3
|
const argv = process.argv.slice(1);
|
|
4
4
|
const exitFile = argv[0], cmd = argv[1], args = argv.slice(2);
|
|
@@ -64,5 +64,5 @@ child.on("error", (e) => {
|
|
|
64
64
|
if (!child.pid) finish(127, null, String(e && e.message));
|
|
65
65
|
});
|
|
66
66
|
child.on("exit", (code, signal) => finish(code, signal));
|
|
67
|
-
`});var er=o(()=>{"use strict";Y();a();u()});var rr=o(()=>{"use strict";G();E()});var tr=o(()=>{"use strict"});var Qi,es,nr=o(()=>{"use strict";
|
|
68
|
-
${n}`,s=nt(e.personaSlug);return r.startsWith("harness-lane:blocked-lane-unblock:")||r==="lane:over_attempt_recovery"||r.startsWith("next-action-fix:")||r.startsWith("next-action-landing:")||r.startsWith("code-work-lane-chain:release:")?!1:!!(r.startsWith(et)||r===rt||r.startsWith("daemon-review:")||s&&W.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||ot(r,i)||ae(i))||r.startsWith(tt)&&e.parentTaskId&&s&&W.has(s)||e.planId&&!e.parentTaskId&&s&&W.has(s)&&ae(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&W.has(s))}var st=/^claude[-_]/i,at=/^(?:opus|sonnet|haiku)\b/i;function Ne(e){let r=e.trim();return st.test(r)||at.test(r)}function De(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function We(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ke(e){return e.trim().toLowerCase().startsWith("gemini-")}function lt(e){return De(e)?"codex":Ne(e)?"claude":Ke(e)?"gemini":(We(e),"cursor")}function ct(e){if(!e.startsWith("provider:"))return null;let r=e.slice(9),t=r.indexOf(":"),n=(t>=0?r.slice(0,t):r).trim().toLowerCase(),i=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:i,rule:i?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:i,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:i,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:i,rule:i?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function ut(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(i=>i.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Ne(n)||De(n)||We(n)||Ke(n)?{lane:t,model:n,provider:lt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function K(e){let r=typeof e=="string"?e.trim():"";return r?ct(r)??ut(r):null}y();g();u();a();u();a();g();E();var Ar="kynver",wr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Gt=wr.map(e=>`mcp__${Ar}__${e}`);E();u();a();g();u();a();g();var Q="gpt-5.6-sol";var Lu=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q;function Jt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q}var zt=Jt();u();a();var _d=600*1e3;u();a();g();var $d=600*1e3;var Pr="composer-2.5";z();z();var m="cursor",en=new Set(["claude","opus","anthropic"]),rn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function A(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function d(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return en.has(r)?!0:r.includes("claude")||r.includes("opus")}function Re(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&d(r))return!0;let t=A(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=K(A(e,"executorRef"));if(n?.provider&&d(n.provider)||n?.model&&d(tn(n.model)))return!0;let i=A(e,"description");if(rn.some(l=>l.test(i)))return!0;let s=A(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function tn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function nn(e,r){return{provider:m,model:Pr,rule:`policy:cursor_default${r}`,requestedModel:e}}var on=["explicit:","executor_ref:","factory:","task:"];function sn(e){return on.some(r=>e.startsWith(r))}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||K(A(e,"executorRef"))?.provider?!0:Re(e)}function Ir(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&d(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||sn(r.rule)||ke(t)||!d(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return nn(r.model,i)}function an(e,r=m){let t=e?.trim();return t?S(t):r}function ln(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(m)?[...new Set(r.map(t=>d(t)?m:t))]:r.every(t=>d(t))?[m]:r}var cn=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,un=/\b(npm run build\b|next build\b)\b/i,dn=/\b(vercel (build|deploy|--prod))\b/i,pn=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function be(e){let r=e.trim();return r?pn.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:dn.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:un.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:cn.test(r)?{heavy:!0,commandClass:"full_typecheck",reason:"full repo typecheck requires heavy-verification token"}:{heavy:!1,commandClass:"allowed",reason:null}:{heavy:!1,commandClass:"allowed",reason:null}}var ee="heavy_verification_token_required";import{spawnSync as Pn}from"node:child_process";a();import{closeSync as vn,existsSync as P,mkdirSync as _n,openSync as xn,readdirSync as Wr,readFileSync as Rn,statSync as kn,unlinkSync as Kr,writeFileSync as bn}from"node:fs";import Ce from"node:path";import{mkdirSync as fn}from"node:fs";import{tmpdir as gn}from"node:os";import re from"node:path";import{homedir as mn,tmpdir as dp}from"node:os";import Tr from"node:path";function Nr(){let e=process.env.KYNVER_STATE_ROOT;return e?Tr.resolve(e):Tr.join(mn(),".kynver","state")}function hn(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function yn(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?re.resolve(e):hn()?re.join(gn(),"kynver","state","heavy-verification"):re.join(Nr(),"heavy-verification")}function Ee(){return re.join(yn(),"slots")}function w(){let e=Ee();return fn(e,{recursive:!0}),e}var I=120*6e4,Dr=1;function En(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function ne(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function te(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?En(e,Dr):Dr}function Sn(e){return`slot-${e}`}function Cn(e,r=Ee()){return Ce.join(r,`${e}.json`)}function Oe(e){if(!P(e))return null;try{let r=JSON.parse(Rn(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function Mr(e,r=I){if(!e||!M(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function Br(e,r){let t=Oe(e);if(t)return Mr(t,r);if(!P(e))return!0;try{return Date.now()-kn(e).mtimeMs>r}catch{return!0}}function On(e,r){if(Br(e,r))try{Kr(e)}catch{}}function An(e){return _n(e,{recursive:!0}),e}function Ae(e={}){let r=An(e.slotsDir??w()),t=e.staleMs??I,n=0;for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Ce.join(r,i),l=P(s);On(s,t),l&&!P(s)&&(n+=1)}return n}function wn(e={}){let r=e.slotsDir??w(),t=e.staleMs??I;Ae({slotsDir:r,staleMs:t});let n=[];for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Oe(Ce.join(r,i));s&&!Mr(s,t)&&n.push(s)}return n}function Se(e={}){return wn(e).length}function T(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let c=Sn(l),x=Cn(c,t),Lr=Oe(x);if(Br(x,n))try{Kr(x)}catch{}else if(Lr||P(x))continue;let Fr={slotId:c,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=xn(x,"wx");bn(R,JSON.stringify(Fr,null,2),"utf8"),vn(R);let $r=Se({slotsDir:t,staleMs:n});return{admitted:!0,slotId:c,activeSlots:$r,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=Se({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function oe(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});let s=Se({slotsDir:t,staleMs:n}),l=s<i;return{admitted:l,slotId:null,activeSlots:s,maxSlots:i,reason:l?null:`heavy verification at capacity (${s}/${i} slots); waiting for ${e}`}}function In(e){e<=0||Pn(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Ur(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=T(e,n);for(;!s.admitted&&Date.now()<i;)In(Math.min(t,i-Date.now())),s=T(e,n);return s}function Tn(e,r={}){let t=be(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...oe(e),slotId:null}};if(ne())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...oe(e),slotId:null}};let n=r.waitMs??0,i=n>0?Ur(e,n,r.pollMs):T(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:ee,commandClass:t.commandClass,reason:t.reason??i.reason??ee,verificationGate:i}}export{m as DEFAULT_WORKER_PROVIDER,ee as HEAVY_VERIFICATION_TOKEN_REQUIRED,se as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,Qr as auditReviewWorkerCredentialScope,zr as auditWorkerEnv,p as buildWorkerSpawnEnv,be as classifyHeavyShellCommand,Ir as enforceCursorWorkerProvider,Tn as gateWorkerShellCommand,d as isClaudeFamilyProvider,k as isForbiddenWorkerEnvKey,it as isHarnessExpertReviewWorker,Te as isNoProdCredentialReviewEnvironment,we as listForbiddenWorkerEnvKeys,Pe as listOperatorAllowedWorkerEnvKeys,S as normalizeWorkerProviderName,ln as preferCursorExecutor,an as resolveConfiguredWorkerProvider,N as scrubWorkerEnv,Re as taskAllowsClaudeWorker,ke as taskExpressesWorkerProviderPreference};
|
|
67
|
+
`});var er=o(()=>{"use strict";Y();a();u()});var rr=o(()=>{"use strict";G();E()});var tr=o(()=>{"use strict"});var Qi,es,nr=o(()=>{"use strict";B();Qi=10*6e4,es=60*6e4});var or=o(()=>{"use strict"});var he=o(()=>{"use strict"});var ir=o(()=>{"use strict"});var sr=o(()=>{"use strict";he();ir()});var ar=o(()=>{"use strict";qe();Qe();er();u();G();rr();tr();nr();or();sr();he();a()});var lr=o(()=>{"use strict";ar();a()});var Ct,Ot,cr=o(()=>{"use strict";Be();y();h();L();V();pe();Y();Ye();lr();a();Ct=500*1024*1024,Ot=4*1024*1024*1024});var V=o(()=>{"use strict";cr()});import{homedir as At}from"node:os";import wt from"node:path";var ur,ye=o(()=>{"use strict";ur=wt.join(At(),".kynver",".env")});var dr=o(()=>{"use strict"});var pr=o(()=>{"use strict";dr()});var mr=o(()=>{"use strict"});var fr=o(()=>{"use strict";a()});var _e=o(()=>{"use strict";pr();mr();fr()});var gr=o(()=>{"use strict"});var hr=o(()=>{"use strict";gr()});var J=o(()=>{"use strict";ye();f();y();_e();hr()});var yr=o(()=>{"use strict";h();h()});var _r=o(()=>{"use strict";ye();_e();J()});var ve=o(()=>{"use strict"});var vr=o(()=>{"use strict";ce();h();yr();y();J();_r();ue();ve();$()});function S(e){let r=e.trim().toLowerCase();return Bt[r]??r}var xr,Ut,Bt,z=o(()=>{"use strict";xr=["claude","cursor","codex","gemini","gemini-api","openai-compatible","venice"],Ut=xr.join("|"),Bt={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible","venice-ai":"venice",venice_ai:"venice",veniceai:"venice",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});var Rr=o(()=>{"use strict";f()});var kr=o(()=>{"use strict";Rr()});var br=o(()=>{"use strict"});var Er=o(()=>{"use strict";br()});import{homedir as Ft,totalmem as Hl}from"node:os";import xe from"node:path";var Sr,lc,cc,uc,dc,y=o(()=>{"use strict";ce();f();le();Ue();ue();h();L();V();pe();J();vr();z();$();kr();ve();Er();Sr=xe.join(Ft(),".kynver"),lc=xe.join(Sr,"config.json"),cc=xe.join(Sr,"credentials"),uc=500*1024*1024,dc=4*1024*1024*1024});D();D();var se="KYNVER_NO_PROD_DB_CREDENTIALS",Xr=["KYNVER_ENV_FILE"],Zr=new Set(["1","true","yes","on"]);function Ne(e){let r=e[se]?.trim().toLowerCase();return r!==void 0&&Zr.has(r)}function p(e,r={}){let t=T(e);if(!r.reviewWorker)return t;let n={...t,[se]:"1"};for(let i of Xr)delete n[i];return n}var Ie=["DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL"];function Qr(e,r={}){let t=p(e,r),n=Object.keys(t).filter(c=>c.endsWith("_SECRET")||c.endsWith("_API_KEY")||Ie.includes(c)),i=Ie.every(c=>t[c]===void 0),s=r.reviewWorker?t.KYNVER_ENV_FILE===void 0:!0,l=Ne(t);return{reviewMode:!!r.reviewWorker,noProdFlagPresent:r.reviewWorker?l:!0,forbiddenKeysAfterScrub:n.sort(),productionDbKeysAbsent:i,envFilePointerStripped:s,safe:i&&n.length===0&&s&&(!r.reviewWorker||l)}}var et="expert-lane-pr-review:",rt="plan-review-task",tt="scheduledjob:",W=new Set(["lorentz","dalton","rhea","sentinel"]);function nt(e){if(!e)return null;let r=e.trim().toLowerCase();return r.length?r:null}function ae(e){return/\b(deep[- ]?review|plan review|review .*plan|security review|red[- ]team|lb\d+|runtime verification)\b/.test(e)}function ot(e,r){return e.startsWith("factory:")?e.includes("lb")||ae(r):!1}function it(e){let r=(e.executorRef??"").toLowerCase(),t=(e.title??"").toLowerCase(),n=(e.description??"").toLowerCase(),i=`${t}
|
|
68
|
+
${n}`,s=nt(e.personaSlug);return r.startsWith("harness-lane:blocked-lane-unblock:")||r==="lane:over_attempt_recovery"||r.startsWith("next-action-fix:")||r.startsWith("next-action-landing:")||r.startsWith("code-work-lane-chain:release:")?!1:!!(r.startsWith(et)||r===rt||r.startsWith("daemon-review:")||s&&W.has(s)&&(r.includes("evidence")||r.includes("validate")||r.includes("review")||ot(r,i)||ae(i))||r.startsWith(tt)&&e.parentTaskId&&s&&W.has(s)||e.planId&&!e.parentTaskId&&s&&W.has(s)&&ae(i)||t.includes("expert pr review")||e.parentTaskId&&(t.startsWith("review:")||t.includes("review required")||t.includes("runtime review"))&&s&&W.has(s))}var st=/^claude[-_]/i,at=/^(?:opus|sonnet|haiku)\b/i;function Te(e){let r=e.trim();return st.test(r)||at.test(r)}function De(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function We(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ke(e){return e.trim().toLowerCase().startsWith("gemini-")}function lt(e){return De(e)?"codex":Te(e)?"claude":Ke(e)?"gemini":(We(e),"cursor")}function ct(e){if(!e.startsWith("provider:"))return null;let r=e.slice(9),t=r.indexOf(":"),n=(t>=0?r.slice(0,t):r).trim().toLowerCase(),i=t>=0&&r.slice(t+1).trim()||void 0;return n?n==="claude"||n==="opus"||n==="anthropic"?{provider:"claude",model:i,rule:i?"executor_ref:provider_claude_model":"executor_ref:provider_claude"}:n==="codex"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-compatible"||n==="openai"||n==="openai_compatible"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="venice"||n==="venice-ai"||n==="venice_ai"||n==="veniceai"?{provider:"venice",model:i,rule:"executor_ref:provider_venice"}:n==="chatgpt"||n==="gpt"?{provider:"codex",model:i,rule:"executor_ref:provider_codex"}:n==="openai-api"||n==="openai_api"?{provider:"openai-compatible",model:i,rule:"executor_ref:provider_openai_compatible"}:n==="cursor"||n==="composer"?{provider:"cursor",model:i,rule:"executor_ref:provider_cursor"}:n==="gemini-api"||n==="gemini_api"||n==="google-api"?{provider:"gemini-api",model:i,rule:"executor_ref:provider_gemini_api"}:n==="gemini"||n==="google"||n==="gemini_cli"?{provider:"gemini",model:i,rule:i?"executor_ref:provider_gemini_model":"executor_ref:provider_gemini"}:null:null}function ut(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(i=>i.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?Te(n)||De(n)||We(n)||Ke(n)?{lane:t,model:n,provider:lt(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function K(e){let r=typeof e=="string"?e.trim():"";return r?ct(r)??ut(r):null}y();g();u();a();u();a();g();E();var Ar="kynver",wr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Gt=wr.map(e=>`mcp__${Ar}__${e}`);E();u();a();g();u();a();g();var Q="gpt-5.6-sol";var Lu=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q;function Jt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||Q}var zt=Jt();u();a();var vd=600*1e3;u();a();g();var $d=600*1e3;var Pr="composer-2.5";z();z();var m="cursor",en=new Set(["claude","opus","anthropic"]),rn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function A(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function d(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return en.has(r)?!0:r.includes("claude")||r.includes("opus")}function Re(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&d(r))return!0;let t=A(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=K(A(e,"executorRef"));if(n?.provider&&d(n.provider)||n?.model&&d(tn(n.model)))return!0;let i=A(e,"description");if(rn.some(l=>l.test(i)))return!0;let s=A(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function tn(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function nn(e,r){return{provider:m,model:Pr,rule:`policy:cursor_default${r}`,requestedModel:e}}var on=["explicit:","executor_ref:","factory:","task:"];function sn(e){return on.some(r=>e.startsWith(r))}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||K(A(e,"executorRef"))?.provider?!0:Re(e)}function Ir(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&d(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||sn(r.rule)||ke(t)||!d(r.provider))return r;let i=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return nn(r.model,i)}function an(e,r=m){let t=e?.trim();return t?S(t):r}function ln(e){let r=[...new Set(e.map(t=>t.trim().toLowerCase()).filter(Boolean))];return r.includes(m)?[...new Set(r.map(t=>d(t)?m:t))]:r.every(t=>d(t))?[m]:r}var cn=/\b(npm run typecheck|tsc\b[^|&;]*--noEmit|node scripts\/verify-pr-local\.mjs|kynver (harness )?verify)\b/i,un=/\b(npm run build\b|next build\b)\b/i,dn=/\b(vercel (build|deploy|--prod))\b/i,pn=/\b(openai|anthropic|perplexity|voyage)\b.*\b(api|cli)\b|\b(paid|billable)[-_ ]?compute\b/i;function be(e){let r=e.trim();return r?pn.test(r)?{heavy:!0,commandClass:"paid_compute",reason:"paid external compute requires heavy-verification token and operator approval"}:dn.test(r)?{heavy:!0,commandClass:"vercel_verify",reason:"Vercel build/deploy verification requires heavy-verification token"}:un.test(r)?{heavy:!0,commandClass:"full_build",reason:"full app build requires heavy-verification token"}:cn.test(r)?{heavy:!0,commandClass:"full_typecheck",reason:"full repo typecheck requires heavy-verification token"}:{heavy:!1,commandClass:"allowed",reason:null}:{heavy:!1,commandClass:"allowed",reason:null}}var ee="heavy_verification_token_required";import{spawnSync as Pn}from"node:child_process";a();import{closeSync as _n,existsSync as P,mkdirSync as vn,openSync as xn,readdirSync as Wr,readFileSync as Rn,statSync as kn,unlinkSync as Kr,writeFileSync as bn}from"node:fs";import Ce from"node:path";import{mkdirSync as fn}from"node:fs";import{tmpdir as gn}from"node:os";import re from"node:path";import{homedir as mn,tmpdir as gp}from"node:os";import Nr from"node:path";function Tr(){let e=process.env.KYNVER_STATE_ROOT;return e?Nr.resolve(e):Nr.join(mn(),".kynver","state")}function hn(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function yn(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?re.resolve(e):hn()?re.join(gn(),"kynver","state","heavy-verification"):re.join(Tr(),"heavy-verification")}function Ee(){return re.join(yn(),"slots")}function w(){let e=Ee();return fn(e,{recursive:!0}),e}var I=120*6e4,Dr=1;function En(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function ne(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function te(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?En(e,Dr):Dr}function Sn(e){return`slot-${e}`}function Cn(e,r=Ee()){return Ce.join(r,`${e}.json`)}function Oe(e){if(!P(e))return null;try{let r=JSON.parse(Rn(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function Mr(e,r=I){if(!e||!M(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function Ur(e,r){let t=Oe(e);if(t)return Mr(t,r);if(!P(e))return!0;try{return Date.now()-kn(e).mtimeMs>r}catch{return!0}}function On(e,r){if(Ur(e,r))try{Kr(e)}catch{}}function An(e){return vn(e,{recursive:!0}),e}function Ae(e={}){let r=An(e.slotsDir??w()),t=e.staleMs??I,n=0;for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Ce.join(r,i),l=P(s);On(s,t),l&&!P(s)&&(n+=1)}return n}function wn(e={}){let r=e.slotsDir??w(),t=e.staleMs??I;Ae({slotsDir:r,staleMs:t});let n=[];for(let i of Wr(r)){if(!i.endsWith(".json"))continue;let s=Oe(Ce.join(r,i));s&&!Mr(s,t)&&n.push(s)}return n}function Se(e={}){return wn(e).length}function N(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});for(let l=0;l<i;l+=1){let c=Sn(l),x=Cn(c,t),Lr=Oe(x);if(Ur(x,n))try{Kr(x)}catch{}else if(Lr||P(x))continue;let Fr={slotId:c,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let R=xn(x,"wx");bn(R,JSON.stringify(Fr,null,2),"utf8"),_n(R);let $r=Se({slotsDir:t,staleMs:n});return{admitted:!0,slotId:c,activeSlots:$r,maxSlots:i,reason:null}}catch(R){if(R.code==="EEXIST")continue;throw R}}let s=Se({slotsDir:t,staleMs:n});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:i,reason:`heavy verification at capacity (${s}/${i} slots)`}}function oe(e,r={}){if(ne())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:te(),reason:null};let t=r.slotsDir??w(),n=r.staleMs??I,i=r.maxSlots??te();Ae({slotsDir:t,staleMs:n});let s=Se({slotsDir:t,staleMs:n}),l=s<i;return{admitted:l,slotId:null,activeSlots:s,maxSlots:i,reason:l?null:`heavy verification at capacity (${s}/${i} slots); waiting for ${e}`}}function In(e){e<=0||Pn(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore",windowsHide:!0})}function Br(e,r,t=2e3,n={}){let i=Date.now()+Math.max(0,r),s=N(e,n);for(;!s.admitted&&Date.now()<i;)In(Math.min(t,i-Date.now())),s=N(e,n);return s}function Nn(e,r={}){let t=be(e);if(!t.heavy)return{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:"command does not require heavy-verification token",verificationGate:{...oe(e),slotId:null}};if(ne())return{allowed:!0,outcome:"heavy_verification_skipped",commandClass:t.commandClass,reason:"KYNVER_HEAVY_VERIFICATION_SKIP bypasses gate",verificationGate:{...oe(e),slotId:null}};let n=r.waitMs??0,i=n>0?Br(e,n,r.pollMs):N(e);return i.admitted?{allowed:!0,outcome:"allowed",commandClass:t.commandClass,reason:t.reason??"heavy-verification token acquired",verificationGate:i}:{allowed:!1,outcome:ee,commandClass:t.commandClass,reason:t.reason??i.reason??ee,verificationGate:i}}export{m as DEFAULT_WORKER_PROVIDER,ee as HEAVY_VERIFICATION_TOKEN_REQUIRED,se as KYNVER_NO_PROD_DB_CREDENTIALS_ENV,Qr as auditReviewWorkerCredentialScope,zr as auditWorkerEnv,p as buildWorkerSpawnEnv,be as classifyHeavyShellCommand,Ir as enforceCursorWorkerProvider,Nn as gateWorkerShellCommand,d as isClaudeFamilyProvider,k as isForbiddenWorkerEnvKey,it as isHarnessExpertReviewWorker,Ne as isNoProdCredentialReviewEnvironment,we as listForbiddenWorkerEnvKeys,Pe as listOperatorAllowedWorkerEnvKeys,S as normalizeWorkerProviderName,ln as preferCursorExecutor,an as resolveConfiguredWorkerProvider,T as scrubWorkerEnv,Re as taskAllowsClaudeWorker,ke as taskExpressesWorkerProviderPreference};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kynver-app/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.148",
|
|
4
4
|
"description": "Kynver AgentOS local execution runtime and CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
"import": "./dist/server/monitor.js",
|
|
45
45
|
"default": "./dist/server/monitor.js"
|
|
46
46
|
},
|
|
47
|
+
"./venice": {
|
|
48
|
+
"types": "./dist/server/venice.d.ts",
|
|
49
|
+
"import": "./dist/server/venice.js",
|
|
50
|
+
"default": "./dist/server/venice.js"
|
|
51
|
+
},
|
|
47
52
|
"./server/landing": {
|
|
48
53
|
"types": "./dist/server/landing.d.ts",
|
|
49
54
|
"import": "./dist/server/landing.js",
|
|
@@ -186,7 +191,7 @@
|
|
|
186
191
|
"!dist/**/*.d.ts.map"
|
|
187
192
|
],
|
|
188
193
|
"scripts": {
|
|
189
|
-
"build": "esbuild src/provider-terminal-failure.ts src/cli.ts src/daemon-tick-thread.ts src/index.ts src/node-runtime-policy.ts src/local-run-store/index.ts src/worker-broker/index.ts src/worker-persona-catalog.ts src/instruction-bundle/contract.ts src/chat/command-auth-proof.ts src/chat/chat-turn-envelope.ts src/chat/chat-access-change-record.ts src/dispatch-claim-authorization.ts src/desktop-entry.ts src/server/monitor.ts src/server/landing.ts src/server/worker-policy.ts src/server/orchestration.ts src/server/adapter-contract.ts src/server/context-budget-receipt.ts src/server/context-budget.ts src/server/prompt.ts src/server/node-runtime-policy.ts src/server/model-routing.ts src/server/dispatch-routing.ts src/server/db-credentials.ts src/server/heavy-verification.ts src/server/memory-cost.ts src/server/pr-evidence.ts src/server/default-repo.ts src/server/cleanup.ts src/server/repo-search.ts src/server/harness-notice.ts src/server/memory-cost-enforce.ts src/server/wsl-crash-dumps.ts --bundle --platform=node --format=esm --packages=external --outbase=src --outdir=dist --minify && node ../../scripts/package-tsc.mjs -p tsconfig.json --emitDeclarationOnly && node scripts/chmod-cli-bin.mjs",
|
|
194
|
+
"build": "esbuild src/provider-terminal-failure.ts src/cli.ts src/daemon-tick-thread.ts src/index.ts src/node-runtime-policy.ts src/local-run-store/index.ts src/worker-broker/index.ts src/worker-persona-catalog.ts src/instruction-bundle/contract.ts src/chat/command-auth-proof.ts src/chat/chat-turn-envelope.ts src/chat/chat-access-change-record.ts src/dispatch-claim-authorization.ts src/desktop-entry.ts src/server/monitor.ts src/server/landing.ts src/server/worker-policy.ts src/server/orchestration.ts src/server/adapter-contract.ts src/server/context-budget-receipt.ts src/server/context-budget.ts src/server/prompt.ts src/server/node-runtime-policy.ts src/server/model-routing.ts src/server/venice.ts src/server/dispatch-routing.ts src/server/db-credentials.ts src/server/heavy-verification.ts src/server/memory-cost.ts src/server/pr-evidence.ts src/server/default-repo.ts src/server/cleanup.ts src/server/repo-search.ts src/server/harness-notice.ts src/server/memory-cost-enforce.ts src/server/wsl-crash-dumps.ts --bundle --platform=node --format=esm --packages=external --outbase=src --outdir=dist --minify && node ../../scripts/package-tsc.mjs -p tsconfig.json --emitDeclarationOnly && node scripts/chmod-cli-bin.mjs",
|
|
190
195
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
191
196
|
"test": "vitest run --config vitest.config.ts",
|
|
192
197
|
"prepublishOnly": "node ../../scripts/npm-publish-guard.mjs && npm run build",
|