@kynver-app/runtime 0.2.62 → 0.2.65
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/dist/cli.js +95 -95
- package/dist/index.js +118 -118
- package/dist/local-run-store/index.js +7 -7
- package/dist/server/cleanup.js +14 -14
- package/dist/server/default-repo.js +1 -1
- package/dist/server/dispatch-routing.js +3 -3
- package/dist/server/heavy-verification.js +1 -1
- package/dist/server/memory-cost-enforce.js +2 -2
- package/dist/server/memory-cost.js +2 -2
- package/dist/server/model-routing.js +3 -3
- package/dist/server/monitor.js +7 -7
- package/dist/server/worker-policy.js +2 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Ee}from"node:os";import Se from"node:path";function Mr(e){return e==="~"?Ee():e.startsWith("~/")||e.startsWith("~\\")?Se.join(Ee(),e.slice(2)):e}function S(e){return Se.resolve(Mr(e))}var O=a(()=>{"use strict"});var d=a(()=>{"use strict"});var Br,_n,Dr,kn,ee=a(()=>{"use strict";Br=["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"],_n=new Set(Br),Dr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],kn=new Set(Dr)});var re=a(()=>{"use strict";O();d();ee()});var te=a(()=>{"use strict";re();O()});var _=a(()=>{"use strict"});var L=a(()=>{"use strict"});var Oe=a(()=>{"use strict"});var Wn,Kn,ne=a(()=>{"use strict";Wn=25*1024*1024*1024,Kn=12*1024*1024*1024});var Ln,Fn,Ce=a(()=>{"use strict";ne();Ln=5*1024*1024*1024,Fn=10*1024*1024*1024});var Gn,qn,oe=a(()=>{"use strict";Ce();ne();Gn=30*1024*1024*1024,qn=15*1024*1024*1024});var Pe=a(()=>{"use strict";d()});import Fr from"node:path";var no,ie=a(()=>{"use strict";O();Pe();no=Fr.join(".openclaw","harness")});var $=a(()=>{"use strict";k();_();L();H();ie()});var Ne=a(()=>{"use strict";k();ie();$();d()});var ae=a(()=>{"use strict";Ne();d()});var Te=a(()=>{"use strict";ae();d()});var We=a(()=>{"use strict"});var Ke=a(()=>{"use strict";We();d()});var Me=a(()=>{"use strict"});var Be=a(()=>{"use strict";Me()});var De=a(()=>{"use strict";Be();d()});var Ue=a(()=>{"use strict"});var Le=a(()=>{"use strict"});var Fe=a(()=>{"use strict"});var le=a(()=>{"use strict"});var $e=a(()=>{"use strict"});var He=a(()=>{"use strict";le();$e()});var je=a(()=>{"use strict";Ke();De();Ue();Le();re();Fe();He();le();d()});var Ye=a(()=>{"use strict";je()});var zr,Jr,Ve=a(()=>{"use strict";Oe();k();_();L();H();oe();ae();Te();Ye();d();zr=500*1024*1024,Jr=4*1024*1024*1024});var H=a(()=>{"use strict";Ve()});import{homedir as Xr}from"node:os";import Qr from"node:path";var Ge,ue=a(()=>{"use strict";Ge=Qr.join(Xr(),".kynver",".env")});var qe=a(()=>{"use strict"});var ze=a(()=>{"use strict";qe()});var Je=a(()=>{"use strict"});var ce=a(()=>{"use strict";ze();Je()});var Xe=a(()=>{"use strict"});var Qe=a(()=>{"use strict";Xe()});var j=a(()=>{"use strict";ue();O();k();ce();Qe()});var Ze=a(()=>{"use strict";_();_()});var er=a(()=>{"use strict";ue();ce();j()});var rr=a(()=>{"use strict";te();_();Ze();k();j();er();d();$()});function b(e){let r=e.trim().toLowerCase();return at[r]??r}var tr,st,at,Y=a(()=>{"use strict";tr=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],st=tr.join("|"),at={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as ut,mkdirSync as ea,readFileSync as ct,writeFileSync as ra}from"node:fs";import{homedir as dt,totalmem as na}from"node:os";import de from"node:path";function pt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:S(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:S(e.defaultRepo.trim())}:{}}}function C(){if(!ut(nr))return{};try{return pt(JSON.parse(ct(nr,"utf8")))}catch{return{}}}var or,nr,ha,Ra,ya,k=a(()=>{"use strict";te();O();d();_();L();H();oe();j();rr();Y();$();or=de.join(dt(),".kynver"),nr=de.join(or,"config.json"),ha=de.join(or,"credentials");Ra=500*1024*1024,ya=4*1024*1024*1024});var Ir=/^claude[-_]/i,Nr=/^(?:opus|sonnet|haiku)\b/i;function be(e){let r=e.trim();return Ir.test(r)||Nr.test(r)}function ve(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Q(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function xe(e){return e.trim().toLowerCase().startsWith("gemini-")}function Tr(e){return ve(e)?"codex":be(e)?"claude":xe(e)?"gemini":(Q(e),"cursor")}function Wr(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 Kr(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?be(n)||ve(n)||Q(n)||xe(n)?{lane:t,model:n,provider:Tr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function m(e){let r=typeof e=="string"?e.trim():"";return r?Wr(r)??Kr(r):null}function Z(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!Q(r.model)):!1}k();var ir={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 A(e){return ir[e]}function sr(){return Object.values(ir)}import{existsSync as ft}from"node:fs";import{homedir as gt}from"node:os";import W from"node:path";import{createHash as ar}from"node:crypto";import{statSync as mt}from"node:fs";import{spawnSync as lr}from"node:child_process";function R(e){try{let r=mt(e),t=`${e}|${r.size}|${r.mtimeMs}`;return ar("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function P(e){return ar("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let o=lr(e,r,{encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let s=(o.stderr||o.stdout||"").trim(),i=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:s?`${i}: ${s.slice(0,200)}`:i}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function V(e,r,t={}){let n=t.timeoutMs??8e3;try{return lr(e,r,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var ht="codex";function Rt(){let e=gt();return[process.env.CODEX_HOME?.trim()?W.join(W.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,W.join(e,".codex","auth.json"),W.join(e,".config","codex","auth.json")].filter(t=>!!t)}function yt(e){return W.dirname(e)}function _t(e){let r,t;for(let n of Rt()){if(!ft(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:yt(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 ur(e=new Date().toISOString()){let r=g(ht,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:P("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=_t(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as kt}from"node:fs";import{homedir as bt}from"node:os";import pe from"node:path";function vt(){let e=process.env.HERMES_HOME?.trim(),r=e?pe.resolve(e):pe.join(bt(),".hermes");return pe.join(r,"auth.json")}function G(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=vt(),o=kt(n),s=V(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?R(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function K(e=new Date().toISOString()){let r=ur(e);if(r.ready)return{...r,path:"codex_cli"};let t=G(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 cr=["low","medium","high"],dr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function pr(e,r){let t=A(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function xt(e,r){let t=A(e.providerId),n=A(r.providerId),o=cr.indexOf(t.costTier)-cr.indexOf(n.costTier);if(o!==0)return o;let s=dr[e.binding.authSource]-dr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function me(e){let r=sr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&pr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(xt)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return pr(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 Et}from"node:fs";import{homedir as St}from"node:os";import Ot from"node:path";var Ct="claude";function At(){let e=St();return[Ot.join(e,".claude",".credentials.json")]}function mr(e=new Date().toISOString()){let r=g(Ct,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:P("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=At().find(i=>Et(i)),o=V(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Pt}from"node:fs";import{homedir as wt}from"node:os";import fe from"node:path";var It="agent";function Nt(){let e=wt(),r=[fe.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(fe.join(t,"cursor-agent","auth.json")),n&&r.push(fe.join(n,"cursor","auth.json"))}return r}function fr(e=new Date().toISOString()){let r=g(It,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:P("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Nt().find(s=>Pt(s)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[t.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as Tt,readFileSync as Wt}from"node:fs";import{homedir as Kt}from"node:os";import ge from"node:path";var Mt=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Bt(){let e=process.env.HERMES_HOME?.trim(),r=e?ge.resolve(e):ge.join(Kt(),".hermes");return ge.join(r,".env")}function Dt(e){try{let r=Wt(e,"utf8"),t=[];for(let n of Mt)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function gr(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=Bt(),o=Tt(n),s=o?Dt(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?R(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function hr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=K(r),n={codex:t,cursor:fr(r),claude:mr(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:gr(r),hermesOpenAiCodex:G(r),codexAdapterPath:t.path,readyCount:o}}var Ut=[/\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],Lt=[/\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 he(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Ft(e){let r=he(e,"executorRef").toLowerCase(),t=he(e,"title").toLowerCase(),n=he(e,"description").toLowerCase(),o=`${r}
|
|
1
|
+
var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Se}from"node:os";import Oe from"node:path";function Dr(e){return e==="~"?Se():e.startsWith("~/")||e.startsWith("~\\")?Oe.join(Se(),e.slice(2)):e}function S(e){return Oe.resolve(Dr(e))}var O=a(()=>{"use strict"});var d=a(()=>{"use strict"});var Ur,bn,Lr,xn,re=a(()=>{"use strict";Ur=["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"],bn=new Set(Ur),Lr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],xn=new Set(Lr)});var L=a(()=>{"use strict";O();d();re()});var Ce=a(()=>{"use strict";L()});var te=a(()=>{"use strict";L();O();Ce()});var ne=a(()=>{"use strict";d()});var _=a(()=>{"use strict"});var F=a(()=>{"use strict"});var Ae=a(()=>{"use strict"});var Hn,jn,oe=a(()=>{"use strict";Hn=25*1024*1024*1024,jn=12*1024*1024*1024});var zn,Jn,Pe=a(()=>{"use strict";oe();zn=5*1024*1024*1024,Jn=10*1024*1024*1024});var to,no,ie=a(()=>{"use strict";Pe();oe();to=30*1024*1024*1024,no=15*1024*1024*1024});var Ie=a(()=>{"use strict";d()});import jr from"node:path";var mo,se=a(()=>{"use strict";O();Ie();mo=jr.join(".openclaw","harness")});var H=a(()=>{"use strict";k();_();F();j();se()});var Te=a(()=>{"use strict";k();se();H();d()});var le=a(()=>{"use strict";Te();d()});var Ke=a(()=>{"use strict";le();d()});var Me=a(()=>{"use strict"});var Be=a(()=>{"use strict";Me();d()});var De=a(()=>{"use strict"});var Ue=a(()=>{"use strict";De()});var Le=a(()=>{"use strict";Ue();d()});var Fe=a(()=>{"use strict"});var $e=a(()=>{"use strict"});var He=a(()=>{"use strict"});var ce=a(()=>{"use strict"});var je=a(()=>{"use strict"});var Ye=a(()=>{"use strict";ce();je()});var Ve=a(()=>{"use strict";Be();Le();Fe();$e();L();He();Ye();ce();d()});var Ge=a(()=>{"use strict";Ve()});var Qr,Zr,qe=a(()=>{"use strict";Ae();k();_();F();j();ie();le();Ke();Ge();d();Qr=500*1024*1024,Zr=4*1024*1024*1024});var j=a(()=>{"use strict";qe()});import{homedir as et}from"node:os";import rt from"node:path";var ze,ue=a(()=>{"use strict";ze=rt.join(et(),".kynver",".env")});var Je=a(()=>{"use strict"});var Xe=a(()=>{"use strict";Je()});var Qe=a(()=>{"use strict"});var de=a(()=>{"use strict";Xe();Qe()});var Ze=a(()=>{"use strict"});var er=a(()=>{"use strict";Ze()});var Y=a(()=>{"use strict";ue();O();k();de();er()});var rr=a(()=>{"use strict";_();_()});var tr=a(()=>{"use strict";ue();de();Y()});var nr=a(()=>{"use strict";te();_();rr();k();Y();tr();ne();H()});function v(e){let r=e.trim().toLowerCase();return ut[r]??r}var or,ct,ut,V=a(()=>{"use strict";or=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],ct=or.join("|"),ut={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as pt,mkdirSync as ua,readFileSync as mt,writeFileSync as da}from"node:fs";import{homedir as ft,totalmem as ma}from"node:os";import pe from"node:path";function gt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:S(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:S(e.defaultRepo.trim())}:{}}}function C(){if(!pt(ir))return{};try{return gt(JSON.parse(mt(ir,"utf8")))}catch{return{}}}var sr,ir,Oa,Ca,Aa,k=a(()=>{"use strict";te();O();ne();_();F();j();ie();Y();nr();V();H();sr=pe.join(ft(),".kynver"),ir=pe.join(sr,"config.json"),Oa=pe.join(sr,"credentials");Ca=500*1024*1024,Aa=4*1024*1024*1024});var Wr=/^claude[-_]/i,Tr=/^(?:opus|sonnet|haiku)\b/i;function be(e){let r=e.trim();return Wr.test(r)||Tr.test(r)}function xe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Z(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ee(e){return e.trim().toLowerCase().startsWith("gemini-")}function Kr(e){return xe(e)?"codex":be(e)?"claude":Ee(e)?"gemini":(Z(e),"cursor")}function Mr(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 Br(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?be(n)||xe(n)||Z(n)||Ee(n)?{lane:t,model:n,provider:Kr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function m(e){let r=typeof e=="string"?e.trim():"";return r?Mr(r)??Br(r):null}function ee(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!Z(r.model)):!1}k();var ar={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 A(e){return ar[e]}function lr(){return Object.values(ar)}import{existsSync as Rt}from"node:fs";import{homedir as yt}from"node:os";import T from"node:path";import{createHash as cr}from"node:crypto";import{statSync as ht}from"node:fs";import{spawnSync as ur}from"node:child_process";function R(e){try{let r=ht(e),t=`${e}|${r.size}|${r.mtimeMs}`;return cr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function P(e){return cr("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=ur(e,r,{encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let s=(o.stderr||o.stdout||"").trim(),i=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:s?`${i}: ${s.slice(0,200)}`:i}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function G(e,r,t={}){let n=t.timeoutMs??8e3;try{return ur(e,r,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var _t="codex";function kt(){let e=yt();return[process.env.CODEX_HOME?.trim()?T.join(T.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,T.join(e,".codex","auth.json"),T.join(e,".config","codex","auth.json")].filter(t=>!!t)}function vt(e){return T.dirname(e)}function bt(e){let r,t;for(let n of kt()){if(!Rt(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:vt(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 dr(e=new Date().toISOString()){let r=g(_t,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:P("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=bt(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as xt}from"node:fs";import{homedir as Et}from"node:os";import me from"node:path";function St(){let e=process.env.HERMES_HOME?.trim(),r=e?me.resolve(e):me.join(Et(),".hermes");return me.join(r,"auth.json")}function q(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=St(),o=xt(n),s=G(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?R(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function K(e=new Date().toISOString()){let r=dr(e);if(r.ready)return{...r,path:"codex_cli"};let t=q(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 pr=["low","medium","high"],mr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function fr(e,r){let t=A(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Ot(e,r){let t=A(e.providerId),n=A(r.providerId),o=pr.indexOf(t.costTier)-pr.indexOf(n.costTier);if(o!==0)return o;let s=mr[e.binding.authSource]-mr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function fe(e){let r=lr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&fr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Ot)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return fr(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 Ct}from"node:fs";import{homedir as At}from"node:os";import Pt from"node:path";var wt="claude";function It(){let e=At();return[Pt.join(e,".claude",".credentials.json")]}function gr(e=new Date().toISOString()){let r=g(wt,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:P("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=It().find(i=>Ct(i)),o=G(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Nt}from"node:fs";import{homedir as Wt}from"node:os";import ge from"node:path";var Tt="agent";function Kt(){let e=Wt(),r=[ge.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(ge.join(t,"cursor-agent","auth.json")),n&&r.push(ge.join(n,"cursor","auth.json"))}return r}function hr(e=new Date().toISOString()){let r=g(Tt,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:P("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Kt().find(s=>Nt(s)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[t.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as Mt,readFileSync as Bt}from"node:fs";import{homedir as Dt}from"node:os";import he from"node:path";var Ut=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Lt(){let e=process.env.HERMES_HOME?.trim(),r=e?he.resolve(e):he.join(Dt(),".hermes");return he.join(r,".env")}function Ft(e){try{let r=Bt(e,"utf8"),t=[];for(let n of Ut)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function Rr(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=Lt(),o=Mt(n),s=o?Ft(n):[],l=s.some(c=>c.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",u=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?R(n):void 0,checkedAt:e,note:u?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function yr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=K(r),n={codex:t,cursor:hr(r),claude:gr(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:Rr(r),hermesOpenAiCodex:q(r),codexAdapterPath:t.path,readyCount:o}}var $t=[/\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],Ht=[/\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 Re(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function jt(e){let r=Re(e,"executorRef").toLowerCase(),t=Re(e,"title").toLowerCase(),n=Re(e,"description").toLowerCase(),o=`${r}
|
|
2
2
|
${t}
|
|
3
|
-
${n}`;return
|
|
3
|
+
${n}`;return $t.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":Ht.some(s=>s.test(o))?"low":"elevated"}function Yt(e){let r=A(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 Vt(e){let r=e.inventory??yr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function b(e){let r=Yt({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 _r(e){let r=e.task??{},t=jt(r),n=Vt({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:K())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=w;if(o==="codex"||o==="provider:codex"){let c=n.bindings.codex;if(!c.ready){let f=fe({inventory:n,riskClass:t});return b(f?{providerId:f.providerId,binding:f.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"})}return b({providerId:"codex",binding:c,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let c=n.bindings.cursor;if(c.ready)return b({providerId:"cursor",binding:c,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let c=n.bindings.claude;if(c.ready)return b({providerId:"claude",binding:c,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=fe({inventory:n,riskClass:t});if(l)return b({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let u=n.bindings.codex;return b({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:u.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...u.ready?{}:{escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}})}re();d();var kr="kynver",vr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Gt=vr.map(e=>`mcp__${kr}__${e}`);var M="claude-sonnet-4-6",B="claude-opus-4-8";d();d();var Ll=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function zt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var I=zt();d();var ye="openai-compatible",pc=600*1e3;d();var x="gemini";function E(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var N="gemini-api";var Sc=600*1e3;var Er="claude-sonnet-4-6",D="composer-2.5";function p(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Qt(e){if(!e)return;let r=p(e,"workerModelOverride")||p(e,"modelOverride");return r||`${p(e,"title")}
|
|
4
4
|
${p(e,"description")}
|
|
5
|
-
${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function
|
|
5
|
+
${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function br(e){return e.toLowerCase()}function Q(e=C()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||Er}function J(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?x:"cursor"}function Zt(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:D,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:M,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:E(),provider:x,rule:n&&n!==x?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:E(),provider:N,rule:n&&n!==N?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function xr(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 en=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function Sr(e,r,t){return en.has(e)?B:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?B:M}function Or(e){let r=br(p(e,"executorRef")),t=p(e,"title").toLowerCase(),n=p(e,"priority")||"normal",o=br(p(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=Sr(o,r,t);return{provider:"claude",model:i,rule:i===B?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:I,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=m(p(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:I},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=m(p(e,"executorRef"));return{provider:ye,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=m(p(e,"executorRef"));return{provider:N,...i?.model?{model:i.model}:{model:E()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=m(p(e,"executorRef"));return{provider:x,...i?.model?{model:i.model}:{model:E()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:I,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 xr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(xr(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=Q();return{model:s,provider:J(s),rule:"default:global"}}function rn(e){return e?m(p(e,"executorRef")):null}function tn(e){switch(v(e)){case x:case N:return E();case"claude":return M;case"codex":return I;case"cursor":return D;default:return}}var _e="explicit:cli_provider",Cr="config:worker_provider";function Ar(e,r,t){let n=v(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:tn(n)??e.model,rule:t}}function nn(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==_e?e:Ar(e,t,_e)}function on(e,r){if(r.explicitProvider?.trim()||ke(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=v(t);return n===w||n===e.provider?e:Ar(e,n,Cr)}function sn(e){let r,t=rn(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let u=e.explicitModel.trim(),c=Zt(u,e.explicitProvider);c?r=c:r={model:u,provider:e.explicitProvider?.trim()||J(u),rule:"explicit:cli",requestedModel:u}}else if(n)r={model:n,provider:o||J(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&X(e.task)){let u=Qt(e.task),c,f;if(u)c=u,f="task:provider_override";else{let ve=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ir=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",Nr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";c=Sr(ve,Ir,Nr),f=c===B?"factory:claude_review":"factory:claude_implementation"}r={model:c,provider:"claude",rule:f,requestedModel:c}}else if(e.task&&Object.keys(e.task).length>0){let u=Or(e.task);r={...u,requestedModel:u.model}}else{let u=Q();r={model:u,provider:e.explicitProvider?.trim()||J(u),rule:"default:global",requestedModel:u}}r=nn(r,e.explicitProvider),r=on(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&v(e.configuredProvider)!==w&&r.rule==="config:worker_provider",i=Pr({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===_e||i.rule===Cr||y(i.provider)&&(e.explicitProviderIsOperatorOverride||X(e.task))||i.provider===ye||i.provider===x||i.provider===N||i.provider==="codex")return i;let l=_r({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:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function an(e,r,t){return e||r||t||Q()||M}V();V();var w="cursor",ln=new Set(["claude","opus","anthropic"]),cn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function U(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function y(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return ln.has(r)?!0:r.includes("claude")||r.includes("opus")}function X(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&y(r))return!0;let t=U(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=m(U(e,"executorRef"));if(n?.provider&&y(n.provider)||n?.model&&y(un(n.model)))return!0;let o=U(e,"description");if(cn.some(i=>i.test(o)))return!0;let s=U(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function un(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function dn(e,r){return{provider:w,model:D,rule:`policy:cursor_default${r}`,requestedModel:e}}var pn=["explicit:","executor_ref:","factory:","task:"];function mn(e){return pn.some(r=>e.startsWith(r))}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||m(U(e,"executorRef"))?.provider?!0:X(e)}function Pr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&y(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||mn(r.rule)||ke(t)||!y(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return dn(r.model,o)}function fn(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function wr(e){return e?.trim()||void 0}function gn(e){let r=fn(e.task),t=m(r),n=e.explicitProvider?.trim().toLowerCase(),o=wr(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let u=e.routing.provider,c=wr(e.routing.model),f={provider:u,model:c,rule:e.routing.rule};return s&&s!=="cursor"||r&&ee(r)||n&&n!=="cursor"?u==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:f}:i&&c&&i!==c&&!y(u)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${c} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:f}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:f}:{ok:!0,resolved:f}}export{D as CURSOR_DEFAULT_MODEL,Er as GLOBAL_DEFAULT_MODEL,gn as assessDispatchModelGuard,ee as executorRefRequestsNonCursorWorker,Or as inferModelRoutingFromTask,m as parseExecutorRefRoutingIntent,Q as resolveGlobalDefaultModel,an as resolveModelFallback,sn as resolveWorkerLaunch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{closeSync as G,existsSync as l,mkdirSync as Y,openSync as L,readdirSync as C,readFileSync as U,statSync as
|
|
1
|
+
import{closeSync as G,existsSync as l,mkdirSync as Y,openSync as L,readdirSync as C,readFileSync as U,statSync as W,unlinkSync as b,writeFileSync as F}from"node:fs";import v from"node:path";function R(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}import{mkdirSync as T}from"node:fs";import{tmpdir as K}from"node:os";import m from"node:path";import{homedir as D}from"node:os";import A from"node:path";function k(){let e=process.env.KYNVER_STATE_ROOT;return e?A.resolve(e):A.join(D(),".kynver","state")}function H(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function $(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?m.resolve(e):H()?m.join(K(),"kynver","state","heavy-verification"):m.join(k(),"heavy-verification")}function y(){return m.join($(),"slots")}function u(){let e=y();return T(e,{recursive:!0}),e}var f=120*6e4,x=1;function j(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function p(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?j(e,x):x}function B(e){return`slot-${e}`}function J(e,r=y()){return v.join(r,`${e}.json`)}function E(e){if(!l(e))return null;try{let r=JSON.parse(U(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function O(e,r=f){if(!e||!R(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function M(e,r){let t=E(e);if(t)return O(t,r);if(!l(e))return!0;try{return Date.now()-W(e).mtimeMs>r}catch{return!0}}function q(e,r){if(M(e,r))try{b(e)}catch{}}function X(e){return Y(e,{recursive:!0}),e}function h(e={}){let r=X(e.slotsDir??u()),t=e.staleMs??f,o=0;for(let n of C(r)){if(!n.endsWith(".json"))continue;let s=v.join(r,n),i=l(s);q(s,t),i&&!l(s)&&(o+=1)}return o}function z(e={}){let r=e.slotsDir??u(),t=e.staleMs??f;h({slotsDir:r,staleMs:t});let o=[];for(let n of C(r)){if(!n.endsWith(".json"))continue;let s=E(v.join(r,n));s&&!O(s,t)&&o.push(s)}return o}function d(e={}){return z(e).length}function _(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??f,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});for(let i=0;i<n;i+=1){let g=B(i),a=J(g,t),V=E(a);if(M(a,o))try{b(a)}catch{}else if(V||l(a))continue;let w={slotId:g,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let c=L(a,"wx");F(c,JSON.stringify(w,null,2),"utf8"),G(c);let I=d({slotsDir:t,staleMs:o});return{admitted:!0,slotId:g,activeSlots:I,maxSlots:n,reason:null}}catch(c){if(c.code==="EEXIST")continue;throw c}}let s=d({slotsDir:t,staleMs:o});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:n,reason:`heavy verification at capacity (${s}/${n} slots)`}}function P(e,r={}){if(S())return{admitted:!0,slotId:null,activeSlots:0,maxSlots:p(),reason:null};let t=r.slotsDir??u(),o=r.staleMs??f,n=r.maxSlots??p();h({slotsDir:t,staleMs:o});let s=d({slotsDir:t,staleMs:o}),i=s<n;return{admitted:i,slotId:null,activeSlots:s,maxSlots:n,reason:i?null:`heavy verification at capacity (${s}/${n} slots); waiting for ${e}`}}import{spawnSync as Q}from"node:child_process";function Z(e){e<=0||Q(process.execPath,["-e",`const d=Date.now()+${Math.floor(e)};while(Date.now()<d);`],{stdio:"ignore"})}function ee(e,r,t=2e3,o={}){let n=Date.now()+Math.max(0,r),s=_(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=_(e,o);return s}var re=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],xe=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ce=new Set(te);var se={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Fe=Object.keys(se);function N(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let o=t.map(n=>Number.parseInt(n,10));if(o.some(n=>!Number.isFinite(n)||n<0))return null;for(;o.length<3;)o.push(0);return[o[0],o[1],o[2]]}function ie(e,r){let t=N(e),o=N(r);if(!t||!o)return 0;for(let n=0;n<3;n+=1){if(t[n]>o[n])return 1;if(t[n]<o[n])return-1}return 0}export{P as assessHeavyVerificationGate,ie as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{readFile as
|
|
2
|
-
`)),this.name="MemoryCostPackageVersionGuardError",this.result=r}};function
|
|
1
|
+
import{readFile as ve}from"node:fs/promises";import{homedir as Ee}from"node:os";import m from"node:path";import{existsSync as Y,readFileSync as le}from"node:fs";import k from"node:path";import{existsSync as C,readFileSync as G}from"node:fs";import{homedir as oe}from"node:os";import c from"node:path";import{fileURLToPath as se}from"node:url";import{spawnSync as ne}from"node:child_process";import{homedir as I}from"node:os";import T from"node:path";function ee(e){return e==="~"?I():e.startsWith("~/")||e.startsWith("~\\")?T.join(I(),e.slice(2)):e}function R(e){return T.resolve(ee(e))}function V(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var re=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],Ke=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ge=new Set(te);function h(e,r){try{let t=ne("git",r,V({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}var ie=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function ae(e){let r=c.join(e,"package.json");if(!C(r))return null;try{let t=JSON.parse(G(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function D(e){return ae(e)==="kynver"}function K(e){let r=c.resolve(e);if(!C(r))return null;let t=h(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?c.resolve(n):null}function ce(e=import.meta.url){let r=c.dirname(se(e));for(let t=0;t<8;t+=1){let n=c.join(r,"package.json");if(C(n))try{if(JSON.parse(G(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=c.dirname(r);if(o===r)break;r=o}return null}function S(e,r,t,n,o){if(!t)return;let s=c.resolve(t);e.has(s)||(o?.requireMonorepo??!0)&&!D(s)||(e.add(s),r.push({repo:s,source:n}))}function ue(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];S(t,n,K(r),"cwd_git",{requireMonorepo:!1});let o=ce(e?.runtimeModuleUrl??import.meta.url);o&&S(t,n,K(o),"runtime_checkout");let s=oe();for(let l of ie)S(t,n,R(c.join(s,l)),"well_known_path");let a=c.resolve(e?.cwd??process.cwd());return n.filter(l=>{if(l.source!=="runtime_checkout"||!D(l.repo))return!0;let i=c.resolve(l.repo);return a===i||a.startsWith(`${i}${c.sep}`)})}function $(e){return ue(e)[0]??null}var U={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},j=Object.keys(U),y={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"},pe={"@kynver-app/runtime":"packages/kynver-runtime/package.json","@kynver-app/openclaw-agent-os":"packages/kynver-openclaw-agent-os/package.json","@kynver-app/mcp-agent-os":"packages/kynver-mcp-agent-os/package.json"};function L(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let n=t.map(o=>Number.parseInt(o,10));if(n.some(o=>!Number.isFinite(o)||o<0))return null;for(;n.length<3;)n.push(0);return[n[0],n[1],n[2]]}function v(e,r){let t=L(e),n=L(r);if(!t||!n)return 0;for(let o=0;o<3;o+=1){if(t[o]>n[o])return 1;if(t[o]<n[o])return-1}return 0}function W(e,r){return v(e,r)>=0}function me(e){let r=null;for(let t of e)(!r||v(t,r)>0)&&(r=t);return r}function ge(e){try{let r=JSON.parse(le(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function de(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let s=k.resolve(o);if(Y(k.join(s,"packages/kynver-runtime/package.json"))&&Y(k.join(s,"package.json")))return s}return $({cwd:e})?.repo??null}function B(e={}){let r=e.cwd??process.cwd(),t=de(r,e.repoRoot);if(!t)return{};let n={};for(let o of j){let s=k.join(t,pe[o]),a=ge(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function fe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function ye(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&W(s,t)?(a.push(`Use the monorepo checkout (${s}) instead of a stale npm install: ${fe(r).join("; ")}.`),a.push("Do not publish npm packages or wait on an operator release."),a):(n?a.push(`Upgrade ${r} from ${n} to >= ${t} (npm install -g ${r}@latest or align OpenClaw npm prefix).`):a.push(`Install ${r} >= ${t} before running memory-heavy AgentOS paths.`),r==="@kynver-app/runtime"&&a.push("Repo-source alternative: npm run kynver:build && npm run kynver"),o==="installed"&&s&&a.push(`Repo checkout reports ${s}; rebuild/link repo source if you develop from the monorepo.`),a)}function ke(e){if(e.length===0)return{version:null,source:"unknown"};let r=me(e.map(n=>n.version));if(!r)return{version:null,source:"unknown"};let t=e.find(n=>n.version===r)??e[0];return{version:t.version,source:t.source}}function M(e={}){let r=e.undetectedPolicy??"skip",t=(i,u)=>i?typeof i=="string"?{version:i,source:u}:i:null,n=j.map(i=>{let u=U[i],d=[],N=t(e.installed?.[i],"installed"),E=t(e.repo?.[i],"repo"),x=t(e.self?.[i],"self");N&&d.push(N),E&&d.push(E),x&&d.push(x);let{version:p,source:f}=ke(d),q=E?.version??null,b=!!p,P=!b&&r==="skip",_=b?W(p,u):P,Q=_?[]:ye({packageName:i,minimumVersion:u,effectiveVersion:p,effectiveSource:f,repoVersion:q}),Z=P?`${y[i]} is not installed \u2014 memory-cost minimum ${u} applies when this package is present.`:_?`${y[i]} ${p} meets memory-cost minimum ${u} (${f}).`:`${y[i]} is below memory-cost minimum ${u}`+(p?` (effective ${p} via ${f})`:" (no version detected)")+".";return{packageName:i,displayName:y[i],minimumVersion:u,effectiveVersion:p,effectiveSource:f,ok:_,skipped:P,summary:Z,remediation:Q}}),o=n.filter(i=>!i.ok),s=n.filter(i=>i.effectiveVersion).length,a=o.length===0,l=a?s===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":s===n.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${s}/${n.length} present).`:`Memory-cost package guard blocked ${o.length} stale package(s): ${o.map(i=>`${i.packageName} < ${i.minimumVersion}`).join("; ")}.`;return{ok:a,summary:l,packages:n}}var A=class extends Error{result;constructor(r){let t=[r.summary,...r.packages.filter(n=>!n.ok).flatMap(n=>[`- ${n.summary}`,...n.remediation.map(o=>` \u2192 ${o}`)])];super(t.join(`
|
|
2
|
+
`)),this.name="MemoryCostPackageVersionGuardError",this.result=r}};function H(e={}){let r=M(e);if(!r.ok)throw new A(r);return r}var Pe=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function g(e){let r=e?.trim();return r||null}function _e(e){return[...new Set(e.filter(r=>!!r))]}function Re(){let e=Ee(),r=g(process.env.KYNVER_OPENCLAW_NPM_ROOT)??g(process.env.OPENCLAW_NPM_ROOT)??m.join(e,".openclaw","npm"),t=g(process.env.KYNVER_NPM_GLOBAL_ROOT)??g(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(g(process.env.NPM_CONFIG_PREFIX)?m.join(g(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):m.join(e,".npm-global","lib","node_modules"));return _e([m.join(r,"lib","node_modules"),m.join(r,"node_modules"),t.endsWith("node_modules")?t:m.join(t,"lib","node_modules")])}async function he(e){try{let r=JSON.parse(await ve(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function Se(e){let r=Re(),t=new Set,n=[];for(let o of r){let s=m.join(o,e,"package.json");t.has(s)||(t.add(s),n.push(s))}return n}async function F(e=new Date().toISOString()){let r={};for(let t of Pe){let n=null;for(let o of Se(t)){let s=await he(o);s&&(!n||v(s,n.version)>0)&&(n={version:s,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as Ce,readFileSync as Ae}from"node:fs";import{dirname as O,join as X}from"node:path";import{fileURLToPath as J}from"node:url";function Me(e){let r=O(J(e));for(let t=0;t<6;t+=1){if(Ce(X(r,"package.json")))return r;let n=O(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${O(J(e))}`)}function Oe(e=import.meta.url){let r=X(Me(e),"package.json"),t=JSON.parse(Ae(r,"utf8"));if(typeof t.version!="string"||!t.version.trim())throw new Error(`Missing package.json version at ${r}`);return t.version}var z=Oe();function we(e){let r={};for(let[t,n]of Object.entries(e))n?.version&&(r[t]={version:n.version,source:"installed",path:n.path});return r}async function w(e={}){let[r,t]=await Promise.all([F(),Promise.resolve(B({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:z;return n["@kynver-app/runtime"]={version:o,source:"self"},e.selfPackageName&&e.selfVersion&&e.selfPackageName!=="@kynver-app/runtime"&&(n[e.selfPackageName]={version:e.selfVersion,source:"self"}),{installed:we(r),repo:t,self:n,undetectedPolicy:"skip"}}async function Ne(e={}){let r=await w(e);return M(r)}async function xe(e={}){let r=await w(e);return H(r)}export{w as buildMemoryCostPackageGuardInput,xe as enforceMemoryCostPackageGuardAtStartup,Ne as evaluateMemoryCostPackageGuardAtStartup};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var x=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],
|
|
2
|
-
`)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function
|
|
1
|
+
var x=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],L=new Set(x);var b=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],U=new Set(b);var E={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},I=Object.keys(E),m={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"};function R(t){let e=t.trim().split("-")[0]?.split("+")[0];if(!e)return null;let n=e.split(".");if(n.length<1||n.length>3)return null;let r=n.map(s=>Number.parseInt(s,10));if(r.some(s=>!Number.isFinite(s)||s<0))return null;for(;r.length<3;)r.push(0);return[r[0],r[1],r[2]]}function v(t,e){let n=R(t),r=R(e);if(!n||!r)return 0;for(let s=0;s<3;s+=1){if(n[s]>r[s])return 1;if(n[s]<r[s])return-1}return 0}function h(t,e){return v(t,e)>=0}function T(t){let e=null;for(let n of t)(!e||v(n,e)>0)&&(e=n);return e}function K(t){return t==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${t}`]}function D(t){let{packageName:e,minimumVersion:n,effectiveVersion:r,effectiveSource:s,repoVersion:a}=t,i=[];return a&&h(a,n)?(i.push(`Use the monorepo checkout (${a}) instead of a stale npm install: ${K(e).join("; ")}.`),i.push("Do not publish npm packages or wait on an operator release."),i):(r?i.push(`Upgrade ${e} from ${r} to >= ${n} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):i.push(`Install ${e} >= ${n} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&i.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&a&&i.push(`Repo checkout reports ${a}; rebuild/link repo source if you develop from the monorepo.`),i)}function V(t){if(t.length===0)return{version:null,source:"unknown"};let e=T(t.map(r=>r.version));if(!e)return{version:null,source:"unknown"};let n=t.find(r=>r.version===e)??t[0];return{version:n.version,source:n.source}}function A(t={}){let e=t.undetectedPolicy??"skip",n=(o,c)=>o?typeof o=="string"?{version:o,source:c}:o:null,r=I.map(o=>{let c=E[o],l=[],k=n(t.installed?.[o],"installed"),g=n(t.repo?.[o],"repo"),S=n(t.self?.[o],"self");k&&l.push(k),g&&l.push(g),S&&l.push(S);let{version:u,source:p}=V(l),P=g?.version??null,_=!!u,f=!_&&e==="skip",y=_?h(u,c):f,O=y?[]:D({packageName:o,minimumVersion:c,effectiveVersion:u,effectiveSource:p,repoVersion:P}),M=f?`${m[o]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:y?`${m[o]} ${u} meets memory-cost minimum ${c} (${p}).`:`${m[o]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:m[o],minimumVersion:c,effectiveVersion:u,effectiveSource:p,ok:y,skipped:f,summary:M,remediation:O}}),s=r.filter(o=>!o.ok),a=r.filter(o=>o.effectiveVersion).length,i=s.length===0,C=i?a===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":a===r.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${a}/${r.length} present).`:`Memory-cost package guard blocked ${s.length} stale package(s): ${s.map(o=>`${o.packageName} < ${o.minimumVersion}`).join("; ")}.`;return{ok:i,summary:C,packages:r}}var d=class extends Error{result;constructor(e){let n=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(n.join(`
|
|
2
|
+
`)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function $(t={}){let e=A(t);if(!e.ok)throw new d(e);return e}export{E as MEMORY_COST_PACKAGE_MIN_VERSIONS,d as MemoryCostPackageVersionGuardError,$ as assertMemoryCostPackageVersionGuard,v as compareSemver,A as evaluateMemoryCostPackageVersionGuard};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Ee}from"node:os";import Se from"node:path";function Mr(e){return e==="~"?Ee():e.startsWith("~/")||e.startsWith("~\\")?Se.join(Ee(),e.slice(2)):e}function S(e){return Se.resolve(Mr(e))}var O=a(()=>{"use strict"});var d=a(()=>{"use strict"});var Br,_n,Dr,kn,ee=a(()=>{"use strict";Br=["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"],_n=new Set(Br),Dr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],kn=new Set(Dr)});var re=a(()=>{"use strict";O();d();ee()});var te=a(()=>{"use strict";re();O()});var _=a(()=>{"use strict"});var L=a(()=>{"use strict"});var Oe=a(()=>{"use strict"});var Wn,Kn,ne=a(()=>{"use strict";Wn=25*1024*1024*1024,Kn=12*1024*1024*1024});var Ln,Fn,Ce=a(()=>{"use strict";ne();Ln=5*1024*1024*1024,Fn=10*1024*1024*1024});var Gn,qn,oe=a(()=>{"use strict";Ce();ne();Gn=30*1024*1024*1024,qn=15*1024*1024*1024});var Pe=a(()=>{"use strict";d()});import Fr from"node:path";var no,ie=a(()=>{"use strict";O();Pe();no=Fr.join(".openclaw","harness")});var $=a(()=>{"use strict";k();_();L();H();ie()});var Ne=a(()=>{"use strict";k();ie();$();d()});var ae=a(()=>{"use strict";Ne();d()});var Te=a(()=>{"use strict";ae();d()});var We=a(()=>{"use strict"});var Ke=a(()=>{"use strict";We();d()});var Me=a(()=>{"use strict"});var Be=a(()=>{"use strict";Me()});var De=a(()=>{"use strict";Be();d()});var Ue=a(()=>{"use strict"});var Le=a(()=>{"use strict"});var Fe=a(()=>{"use strict"});var le=a(()=>{"use strict"});var $e=a(()=>{"use strict"});var He=a(()=>{"use strict";le();$e()});var je=a(()=>{"use strict";Ke();De();Ue();Le();re();Fe();He();le();d()});var Ye=a(()=>{"use strict";je()});var zr,Jr,Ve=a(()=>{"use strict";Oe();k();_();L();H();oe();ae();Te();Ye();d();zr=500*1024*1024,Jr=4*1024*1024*1024});var H=a(()=>{"use strict";Ve()});import{homedir as Xr}from"node:os";import Qr from"node:path";var Ge,ue=a(()=>{"use strict";Ge=Qr.join(Xr(),".kynver",".env")});var qe=a(()=>{"use strict"});var ze=a(()=>{"use strict";qe()});var Je=a(()=>{"use strict"});var ce=a(()=>{"use strict";ze();Je()});var Xe=a(()=>{"use strict"});var Qe=a(()=>{"use strict";Xe()});var j=a(()=>{"use strict";ue();O();k();ce();Qe()});var Ze=a(()=>{"use strict";_();_()});var er=a(()=>{"use strict";ue();ce();j()});var rr=a(()=>{"use strict";te();_();Ze();k();j();er();d();$()});function b(e){let r=e.trim().toLowerCase();return at[r]??r}var tr,st,at,Y=a(()=>{"use strict";tr=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],st=tr.join("|"),at={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as ut,mkdirSync as ea,readFileSync as ct,writeFileSync as ra}from"node:fs";import{homedir as dt,totalmem as na}from"node:os";import de from"node:path";function pt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:S(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:S(e.defaultRepo.trim())}:{}}}function C(){if(!ut(nr))return{};try{return pt(JSON.parse(ct(nr,"utf8")))}catch{return{}}}var or,nr,ha,Ra,ya,k=a(()=>{"use strict";te();O();d();_();L();H();oe();j();rr();Y();$();or=de.join(dt(),".kynver"),nr=de.join(or,"config.json"),ha=de.join(or,"credentials");Ra=500*1024*1024,ya=4*1024*1024*1024});var Ir=/^claude[-_]/i,Nr=/^(?:opus|sonnet|haiku)\b/i;function be(e){let r=e.trim();return Ir.test(r)||Nr.test(r)}function ve(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Q(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function xe(e){return e.trim().toLowerCase().startsWith("gemini-")}function Tr(e){return ve(e)?"codex":be(e)?"claude":xe(e)?"gemini":(Q(e),"cursor")}function Wr(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 Kr(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?be(n)||ve(n)||Q(n)||xe(n)?{lane:t,model:n,provider:Tr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function m(e){let r=typeof e=="string"?e.trim():"";return r?Wr(r)??Kr(r):null}function Z(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!Q(r.model)):!1}k();var ir={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 A(e){return ir[e]}function sr(){return Object.values(ir)}import{existsSync as ft}from"node:fs";import{homedir as gt}from"node:os";import W from"node:path";import{createHash as ar}from"node:crypto";import{statSync as mt}from"node:fs";import{spawnSync as lr}from"node:child_process";function R(e){try{let r=mt(e),t=`${e}|${r.size}|${r.mtimeMs}`;return ar("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function P(e){return ar("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function g(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function h(e,r,t={}){let n=t.timeoutMs??8e3;try{let o=lr(e,r,{encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let s=(o.stderr||o.stdout||"").trim(),i=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:s?`${i}: ${s.slice(0,200)}`:i}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function V(e,r,t={}){let n=t.timeoutMs??8e3;try{return lr(e,r,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var ht="codex";function Rt(){let e=gt();return[process.env.CODEX_HOME?.trim()?W.join(W.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,W.join(e,".codex","auth.json"),W.join(e,".config","codex","auth.json")].filter(t=>!!t)}function yt(e){return W.dirname(e)}function _t(e){let r,t;for(let n of Rt()){if(!ft(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:yt(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 ur(e=new Date().toISOString()){let r=g(ht,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:P("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=_t(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as kt}from"node:fs";import{homedir as bt}from"node:os";import pe from"node:path";function vt(){let e=process.env.HERMES_HOME?.trim(),r=e?pe.resolve(e):pe.join(bt(),".hermes");return pe.join(r,"auth.json")}function G(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=vt(),o=kt(n),s=V(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?R(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function K(e=new Date().toISOString()){let r=ur(e);if(r.ready)return{...r,path:"codex_cli"};let t=G(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 cr=["low","medium","high"],dr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function pr(e,r){let t=A(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function xt(e,r){let t=A(e.providerId),n=A(r.providerId),o=cr.indexOf(t.costTier)-cr.indexOf(n.costTier);if(o!==0)return o;let s=dr[e.binding.authSource]-dr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function me(e){let r=sr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&pr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(xt)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return pr(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 Et}from"node:fs";import{homedir as St}from"node:os";import Ot from"node:path";var Ct="claude";function At(){let e=St();return[Ot.join(e,".claude",".credentials.json")]}function mr(e=new Date().toISOString()){let r=g(Ct,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:P("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=At().find(i=>Et(i)),o=V(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Pt}from"node:fs";import{homedir as wt}from"node:os";import fe from"node:path";var It="agent";function Nt(){let e=wt(),r=[fe.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(fe.join(t,"cursor-agent","auth.json")),n&&r.push(fe.join(n,"cursor","auth.json"))}return r}function fr(e=new Date().toISOString()){let r=g(It,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:P("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Nt().find(s=>Pt(s)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[t.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as Tt,readFileSync as Wt}from"node:fs";import{homedir as Kt}from"node:os";import ge from"node:path";var Mt=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Bt(){let e=process.env.HERMES_HOME?.trim(),r=e?ge.resolve(e):ge.join(Kt(),".hermes");return ge.join(r,".env")}function Dt(e){try{let r=Wt(e,"utf8"),t=[];for(let n of Mt)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function gr(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=Bt(),o=Tt(n),s=o?Dt(n):[],l=s.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?R(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function hr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=K(r),n={codex:t,cursor:fr(r),claude:mr(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:gr(r),hermesOpenAiCodex:G(r),codexAdapterPath:t.path,readyCount:o}}var Ut=[/\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],Lt=[/\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 he(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Ft(e){let r=he(e,"executorRef").toLowerCase(),t=he(e,"title").toLowerCase(),n=he(e,"description").toLowerCase(),o=`${r}
|
|
1
|
+
var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as Se}from"node:os";import Oe from"node:path";function Dr(e){return e==="~"?Se():e.startsWith("~/")||e.startsWith("~\\")?Oe.join(Se(),e.slice(2)):e}function S(e){return Oe.resolve(Dr(e))}var O=a(()=>{"use strict"});var d=a(()=>{"use strict"});var Ur,bn,Lr,xn,re=a(()=>{"use strict";Ur=["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"],bn=new Set(Ur),Lr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],xn=new Set(Lr)});var L=a(()=>{"use strict";O();d();re()});var Ce=a(()=>{"use strict";L()});var te=a(()=>{"use strict";L();O();Ce()});var ne=a(()=>{"use strict";d()});var _=a(()=>{"use strict"});var F=a(()=>{"use strict"});var Ae=a(()=>{"use strict"});var Hn,jn,oe=a(()=>{"use strict";Hn=25*1024*1024*1024,jn=12*1024*1024*1024});var zn,Jn,Pe=a(()=>{"use strict";oe();zn=5*1024*1024*1024,Jn=10*1024*1024*1024});var to,no,ie=a(()=>{"use strict";Pe();oe();to=30*1024*1024*1024,no=15*1024*1024*1024});var Ie=a(()=>{"use strict";d()});import jr from"node:path";var mo,se=a(()=>{"use strict";O();Ie();mo=jr.join(".openclaw","harness")});var H=a(()=>{"use strict";k();_();F();j();se()});var Te=a(()=>{"use strict";k();se();H();d()});var le=a(()=>{"use strict";Te();d()});var Ke=a(()=>{"use strict";le();d()});var Me=a(()=>{"use strict"});var Be=a(()=>{"use strict";Me();d()});var De=a(()=>{"use strict"});var Ue=a(()=>{"use strict";De()});var Le=a(()=>{"use strict";Ue();d()});var Fe=a(()=>{"use strict"});var $e=a(()=>{"use strict"});var He=a(()=>{"use strict"});var ce=a(()=>{"use strict"});var je=a(()=>{"use strict"});var Ye=a(()=>{"use strict";ce();je()});var Ve=a(()=>{"use strict";Be();Le();Fe();$e();L();He();Ye();ce();d()});var Ge=a(()=>{"use strict";Ve()});var Qr,Zr,qe=a(()=>{"use strict";Ae();k();_();F();j();ie();le();Ke();Ge();d();Qr=500*1024*1024,Zr=4*1024*1024*1024});var j=a(()=>{"use strict";qe()});import{homedir as et}from"node:os";import rt from"node:path";var ze,ue=a(()=>{"use strict";ze=rt.join(et(),".kynver",".env")});var Je=a(()=>{"use strict"});var Xe=a(()=>{"use strict";Je()});var Qe=a(()=>{"use strict"});var de=a(()=>{"use strict";Xe();Qe()});var Ze=a(()=>{"use strict"});var er=a(()=>{"use strict";Ze()});var Y=a(()=>{"use strict";ue();O();k();de();er()});var rr=a(()=>{"use strict";_();_()});var tr=a(()=>{"use strict";ue();de();Y()});var nr=a(()=>{"use strict";te();_();rr();k();Y();tr();ne();H()});function v(e){let r=e.trim().toLowerCase();return ut[r]??r}var or,ct,ut,V=a(()=>{"use strict";or=["claude","cursor","codex","gemini","gemini-api","openai-compatible"],ct=or.join("|"),ut={anthropic:"claude",opus:"claude",openai:"openai-compatible",openai_compatible:"openai-compatible","openai-compat":"openai-compatible",chatgpt:"codex",gpt:"codex","openai-api":"openai-compatible",openai_api:"openai-compatible",google:"gemini",gemini_cli:"gemini",gemini_api:"gemini-api","google-api":"gemini-api",google_api:"gemini-api"}});import{existsSync as pt,mkdirSync as ua,readFileSync as mt,writeFileSync as da}from"node:fs";import{homedir as ft,totalmem as ma}from"node:os";import pe from"node:path";function gt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:S(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:S(e.defaultRepo.trim())}:{}}}function C(){if(!pt(ir))return{};try{return gt(JSON.parse(mt(ir,"utf8")))}catch{return{}}}var sr,ir,Oa,Ca,Aa,k=a(()=>{"use strict";te();O();ne();_();F();j();ie();Y();nr();V();H();sr=pe.join(ft(),".kynver"),ir=pe.join(sr,"config.json"),Oa=pe.join(sr,"credentials");Ca=500*1024*1024,Aa=4*1024*1024*1024});var Wr=/^claude[-_]/i,Tr=/^(?:opus|sonnet|haiku)\b/i;function be(e){let r=e.trim();return Wr.test(r)||Tr.test(r)}function xe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Z(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function Ee(e){return e.trim().toLowerCase().startsWith("gemini-")}function Kr(e){return xe(e)?"codex":be(e)?"claude":Ee(e)?"gemini":(Z(e),"cursor")}function Mr(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 Br(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?be(n)||xe(n)||Z(n)||Ee(n)?{lane:t,model:n,provider:Kr(n),rule:"executor_ref:harness_lane_model"}:{lane:t,rule:"executor_ref:harness_lane"}:{lane:t,rule:"executor_ref:harness_lane"}}function m(e){let r=typeof e=="string"?e.trim():"";return r?Mr(r)??Br(r):null}function ee(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!Z(r.model)):!1}k();var ar={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 A(e){return ar[e]}function lr(){return Object.values(ar)}import{existsSync as Rt}from"node:fs";import{homedir as yt}from"node:os";import T from"node:path";import{createHash as cr}from"node:crypto";import{statSync as ht}from"node:fs";import{spawnSync as ur}from"node:child_process";function R(e){try{let r=ht(e),t=`${e}|${r.size}|${r.mtimeMs}`;return cr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function P(e){return cr("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=ur(e,r,{encoding:"utf8",timeout:n,env:{...process.env,...t.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:t.okNote??`${e} ${r.join(" ")}: ok`};let s=(o.stderr||o.stdout||"").trim(),i=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:s?`${i}: ${s.slice(0,200)}`:i}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function G(e,r,t={}){let n=t.timeoutMs??8e3;try{return ur(e,r,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var _t="codex";function kt(){let e=yt();return[process.env.CODEX_HOME?.trim()?T.join(T.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,T.join(e,".codex","auth.json"),T.join(e,".config","codex","auth.json")].filter(t=>!!t)}function vt(e){return T.dirname(e)}function bt(e){let r,t;for(let n of kt()){if(!Rt(n))continue;r??=n;let o=h(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:vt(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 dr(e=new Date().toISOString()){let r=g(_t,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:P("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:t,login:n}=bt(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?R(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as xt}from"node:fs";import{homedir as Et}from"node:os";import me from"node:path";function St(){let e=process.env.HERMES_HOME?.trim(),r=e?me.resolve(e):me.join(Et(),".hermes");return me.join(r,"auth.json")}function q(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=St(),o=xt(n),s=G(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),i=t.ok&&s.ok;return{path:"hermes_openai_codex",ready:i,authSource:i?"subscription_hermes":"none",sessionFingerprint:o?R(n):void 0,checkedAt:e,note:i?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,s.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function K(e=new Date().toISOString()){let r=dr(e);if(r.ready)return{...r,path:"codex_cli"};let t=q(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 pr=["low","medium","high"],mr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function fr(e,r){let t=A(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function Ot(e,r){let t=A(e.providerId),n=A(r.providerId),o=pr.indexOf(t.costTier)-pr.indexOf(n.costTier);if(o!==0)return o;let s=mr[e.binding.authSource]-mr[r.binding.authSource];return s!==0?s:e.providerId.localeCompare(r.providerId)}function fe(e){let r=lr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&fr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(Ot)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let s=e.inventory.bindings[o],i;return fr(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 Ct}from"node:fs";import{homedir as At}from"node:os";import Pt from"node:path";var wt="claude";function It(){let e=At();return[Pt.join(e,".claude",".credentials.json")]}function gr(e=new Date().toISOString()){let r=g(wt,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:P("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `claude` CLI login (OAuth) for harness workers"};let t=h(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=It().find(i=>Ct(i)),o=G(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),s=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:s,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:s?"Local Claude Code OAuth session bound on runner":[t.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as Nt}from"node:fs";import{homedir as Wt}from"node:os";import ge from"node:path";var Tt="agent";function Kt(){let e=Wt(),r=[ge.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(ge.join(t,"cursor-agent","auth.json")),n&&r.push(ge.join(n,"cursor","auth.json"))}return r}function hr(e=new Date().toISOString()){let r=g(Tt,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:P("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present but scrubbed from worker env (deployment secret) \u2014 use `agent login` (OAuth) for harness workers"};let t=h(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Kt().find(s=>Nt(s)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?R(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[t.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as Mt,readFileSync as Bt}from"node:fs";import{homedir as Dt}from"node:os";import he from"node:path";var Ut=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Lt(){let e=process.env.HERMES_HOME?.trim(),r=e?he.resolve(e):he.join(Dt(),".hermes");return he.join(r,".env")}function Ft(e){try{let r=Bt(e,"utf8"),t=[];for(let n of Ut)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function Rr(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=Lt(),o=Mt(n),s=o?Ft(n):[],l=s.some(c=>c.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",u=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?R(n):void 0,checkedAt:e,note:u?`Hermes profile bound (${s.length?`keys: ${s.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function yr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=K(r),n={codex:t,cursor:hr(r),claude:gr(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:Rr(r),hermesOpenAiCodex:q(r),codexAdapterPath:t.path,readyCount:o}}var $t=[/\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],Ht=[/\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 Re(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function jt(e){let r=Re(e,"executorRef").toLowerCase(),t=Re(e,"title").toLowerCase(),n=Re(e,"description").toLowerCase(),o=`${r}
|
|
2
2
|
${t}
|
|
3
|
-
${n}`;return
|
|
3
|
+
${n}`;return $t.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":Ht.some(s=>s.test(o))?"low":"elevated"}function Yt(e){let r=A(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 Vt(e){let r=e.inventory??yr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function b(e){let r=Yt({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 _r(e){let r=e.task??{},t=jt(r),n=Vt({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:K())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),s=e.explicitModel?.trim()||void 0,i=w;if(o==="codex"||o==="provider:codex"){let c=n.bindings.codex;if(!c.ready){let f=fe({inventory:n,riskClass:t});return b(f?{providerId:f.providerId,binding:f.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}:{providerId:i,binding:n.bindings[i],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:s,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"})}return b({providerId:"codex",binding:c,riskClass:t,routingRule:"orchestration:explicit_codex",model:s})}if(o==="cursor"||o==="provider:cursor"){let c=n.bindings.cursor;if(c.ready)return b({providerId:"cursor",binding:c,riskClass:t,routingRule:"orchestration:explicit_cursor",model:s})}if(o==="claude"||o==="provider:claude"){let c=n.bindings.claude;if(c.ready)return b({providerId:"claude",binding:c,riskClass:t,routingRule:"orchestration:explicit_claude",model:s})}let l=fe({inventory:n,riskClass:t});if(l)return b({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:s,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let u=n.bindings.codex;return b({providerId:i,binding:n.bindings[i],riskClass:t,routingRule:u.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:s,...u.ready?{}:{escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}})}re();d();var kr="kynver",vr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Gt=vr.map(e=>`mcp__${kr}__${e}`);var M="claude-sonnet-4-6",B="claude-opus-4-8";d();d();var Ll=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function zt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var I=zt();d();var ye="openai-compatible",pc=600*1e3;d();var x="gemini";function E(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var N="gemini-api";var Sc=600*1e3;var Er="claude-sonnet-4-6",D="composer-2.5";function p(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Qt(e){if(!e)return;let r=p(e,"workerModelOverride")||p(e,"modelOverride");return r||`${p(e,"title")}
|
|
4
4
|
${p(e,"description")}
|
|
5
|
-
${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function
|
|
5
|
+
${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function br(e){return e.toLowerCase()}function Q(e=C()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||Er}function J(e){let r=(e??"").toLowerCase();return!r||r.includes("composer")||r.includes("cursor")||r.includes("codex")||r.startsWith("gpt-")||r.startsWith("gpt5")?"cursor":/^claude[-_]/i.test(r)||/^(?:opus|sonnet|haiku)\b/i.test(r)?"claude":r.startsWith("gemini-")?x:"cursor"}function Zt(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:D,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:M,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:E(),provider:x,rule:n&&n!==x?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:E(),provider:N,rule:n&&n!==N?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function xr(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 en=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function Sr(e,r,t){return en.has(e)?B:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?B:M}function Or(e){let r=br(p(e,"executorRef")),t=p(e,"title").toLowerCase(),n=p(e,"priority")||"normal",o=br(p(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let i=Sr(o,r,t);return{provider:"claude",model:i,rule:i===B?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:I,rule:"lane:codex_orchestration"};if(r.includes("provider:chatgpt")||r.startsWith("chatgpt:")||r.includes("provider:gpt")||r.startsWith("gpt:")){let i=m(p(e,"executorRef"));return{provider:"codex",...i?.model?{model:i.model}:{model:I},rule:"lane:codex_orchestration"}}if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let i=m(p(e,"executorRef"));return{provider:ye,...i?.model?{model:i.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let i=m(p(e,"executorRef"));return{provider:N,...i?.model?{model:i.model}:{model:E()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let i=m(p(e,"executorRef"));return{provider:x,...i?.model?{model:i.model}:{model:E()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:I,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 xr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(xr(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=Q();return{model:s,provider:J(s),rule:"default:global"}}function rn(e){return e?m(p(e,"executorRef")):null}function tn(e){switch(v(e)){case x:case N:return E();case"claude":return M;case"codex":return I;case"cursor":return D;default:return}}var _e="explicit:cli_provider",Cr="config:worker_provider";function Ar(e,r,t){let n=v(r);return n===e.provider&&e.rule===t?e:{...e,provider:n,model:tn(n)??e.model,rule:t}}function nn(e,r){let t=r?.trim();return!t||e.rule.startsWith("explicit:")&&e.rule!==_e?e:Ar(e,t,_e)}function on(e,r){if(r.explicitProvider?.trim()||ke(r.task))return e;let t=r.configuredProvider?.trim();if(!t)return e;let n=v(t);return n===w||n===e.provider?e:Ar(e,n,Cr)}function sn(e){let r,t=rn(e.task),n=e.explicitModel?.trim()?void 0:t?.model?.trim(),o=!e.explicitProvider?.trim()&&t?.provider?.trim()?t.provider.trim():void 0;if(e.explicitModel?.trim()){let u=e.explicitModel.trim(),c=Zt(u,e.explicitProvider);c?r=c:r={model:u,provider:e.explicitProvider?.trim()||J(u),rule:"explicit:cli",requestedModel:u}}else if(n)r={model:n,provider:o||J(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&X(e.task)){let u=Qt(e.task),c,f;if(u)c=u,f="task:provider_override";else{let ve=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",Ir=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",Nr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";c=Sr(ve,Ir,Nr),f=c===B?"factory:claude_review":"factory:claude_implementation"}r={model:c,provider:"claude",rule:f,requestedModel:c}}else if(e.task&&Object.keys(e.task).length>0){let u=Or(e.task);r={...u,requestedModel:u.model}}else{let u=Q();r={model:u,provider:e.explicitProvider?.trim()||J(u),rule:"default:global",requestedModel:u}}r=nn(r,e.explicitProvider),r=on(r,{explicitProvider:e.explicitProvider,task:e.task,configuredProvider:e.configuredProvider});let s=!!e.configuredProvider?.trim()&&v(e.configuredProvider)!==w&&r.rule==="config:worker_provider",i=Pr({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===_e||i.rule===Cr||y(i.provider)&&(e.explicitProviderIsOperatorOverride||X(e.task))||i.provider===ye||i.provider===x||i.provider===N||i.provider==="codex")return i;let l=_r({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:i.model,rule:l.rule,requestedModel:i.requestedModel,orchestrationAudit:l.audit}}function an(e,r,t){return e||r||t||Q()||M}V();V();var w="cursor",ln=new Set(["claude","opus","anthropic"]),cn=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function U(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function y(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return ln.has(r)?!0:r.includes("claude")||r.includes("opus")}function X(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&y(r))return!0;let t=U(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=m(U(e,"executorRef"));if(n?.provider&&y(n.provider)||n?.model&&y(un(n.model)))return!0;let o=U(e,"description");if(cn.some(i=>i.test(o)))return!0;let s=U(e,"title");return!!/\[use-claude-worker\]/i.test(s)}function un(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function dn(e,r){return{provider:w,model:D,rule:`policy:cursor_default${r}`,requestedModel:e}}var pn=["explicit:","executor_ref:","factory:","task:"];function mn(e){return pn.some(r=>e.startsWith(r))}function ke(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||m(U(e,"executorRef"))?.provider?!0:X(e)}function Pr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&y(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||mn(r.rule)||ke(t)||!y(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return dn(r.model,o)}function fn(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function wr(e){return e?.trim()||void 0}function gn(e){let r=fn(e.task),t=m(r),n=e.explicitProvider?.trim().toLowerCase(),o=wr(e.explicitModel??void 0),s=n||t?.provider,i=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!s&&!i)return{ok:!0};!s&&i&&(/^claude[-_]/i.test(i)||/^(?:opus|sonnet|haiku)\b/i.test(i))&&(s="claude");let u=e.routing.provider,c=wr(e.routing.model),f={provider:u,model:c,rule:e.routing.rule};return s&&s!=="cursor"||r&&ee(r)||n&&n!=="cursor"?u==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${s??"non-cursor"}${i?` model=${i}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:f}:i&&c&&i!==c&&!y(u)?{ok:!1,error:`model_routing_mismatch: requested model=${i} (${l}) but routing resolved model=${c} (${e.routing.rule})`,requested:{provider:s,model:i,source:l},resolved:f}:{ok:!0,requested:{provider:s,model:i,source:l},resolved:f}:{ok:!0,resolved:f}}export{D as CURSOR_DEFAULT_MODEL,Er as GLOBAL_DEFAULT_MODEL,gn as assessDispatchModelGuard,ee as executorRefRequestsNonCursorWorker,Or as inferModelRoutingFromTask,m as parseExecutorRefRoutingIntent,Q as resolveGlobalDefaultModel,an as resolveModelFallback,sn as resolveWorkerLaunch};
|