@kynver-app/runtime 0.2.55 → 0.2.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  var c=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};import{homedir as kr}from"node:os";import vr from"node:path";function on(r){return r==="~"?kr():r.startsWith("~/")||r.startsWith("~\\")?vr.join(kr(),r.slice(2)):r}function F(r){return vr.resolve(on(r))}var V=c(()=>{"use strict"});import{existsSync as Cs,mkdirSync as sn,readFileSync as an,readdirSync as As,renameSync as cn,rmSync as ln,statSync as Os,writeFileSync as un}from"node:fs";import{randomBytes as dn}from"node:crypto";import mn from"node:path";function Oe(r){console.error(r),process.exit(1)}function Q(r,e){try{return JSON.parse(an(r,"utf8"))}catch(t){if(arguments.length>1)return e;Oe(`failed to read ${r}: ${t.message}`)}}function we(r,e){sn(mn.dirname(r),{recursive:!0});let t=`${r}.${process.pid}.${dn(4).toString("hex")}.tmp`;try{un(t,`${JSON.stringify(e,null,2)}
2
- `),cn(t,r)}catch(n){try{ln(t,{force:!0})}catch{}throw n}}function Ie(r){return String(r).replace(/\/+$/,"")}var k=c(()=>{"use strict"});var pn,Ns,fn,Ps,xr=c(()=>{"use strict";pn=["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"],Ns=new Set(pn),fn=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],Ps=new Set(fn)});var Te=c(()=>{"use strict";V();k();xr()});var Ne=c(()=>{"use strict";Te();V()});function K(r){let e=(r??"").trim().toLowerCase();return e==="ghost"||e==="forge"||e==="box"?e:e.includes("forge")?"forge":e.includes("ghost")||e.includes("openclaw")?"ghost":"box"}function oe(r,e){return r[e]?.trim()||null}function _r(r){let e=r?.split(":")[0]?.trim();return e?K(e):null}function G(r=process.env,e={}){let t=[],n=_r(e.boxId),o=_r(oe(r,"KYNVER_BOX_ID")),s=e.boxKind?.trim();if(s)return n&&n!==K(s)&&t.push(`config.boxId=${e.boxId} conflicts with boxKind=${s}; using explicit boxKind=${s}`),{boxKind:K(s),source:"config",slugInferenceBlocked:!1,warnings:t};let i=oe(r,"KYNVER_BOX_KIND");if(i)return o&&o!==K(i)&&t.push(`KYNVER_BOX_ID=${oe(r,"KYNVER_BOX_ID")} conflicts with KYNVER_BOX_KIND=${i}; using explicit KYNVER_BOX_KIND=${i}`),{boxKind:K(i),source:"env",slugInferenceBlocked:!1,warnings:t};if(n)return{boxKind:n,source:"config",slugInferenceBlocked:!1,warnings:t};if(o)return{boxKind:o,source:"env",slugInferenceBlocked:!1,warnings:t};let a=oe(r,"KYNVER_AGENT_OS_SLUG");return a&&t.push(`KYNVER_AGENT_OS_SLUG=${a} is a workspace slug, not box identity \u2014 operators set boxKind via \`kynver setup --box-kind forge|ghost\` or KYNVER_BOX_KIND; customers default to box`),{boxKind:"box",source:"default",slugInferenceBlocked:!!a,warnings:t}}var M=c(()=>{"use strict"});function Pe(r,e){return r==="forge"?4:Math.max(1,e)}function se(r,e){return r==="forge"?Math.min(Math.max(1,e),4):Math.max(1,e)}var ie=c(()=>{"use strict"});var Er=c(()=>{"use strict"});var Js,zs,Le=c(()=>{"use strict";Js=25*1024*1024*1024,zs=12*1024*1024*1024});var ri,ti,Cr=c(()=>{"use strict";Le();ri=5*1024*1024*1024,ti=10*1024*1024*1024});var ci,li,De=c(()=>{"use strict";Cr();Le();ci=30*1024*1024*1024,li=15*1024*1024*1024});function Ar(){return wr()}var ae=c(()=>{"use strict";Fe();k()});var Ir=c(()=>{"use strict";ae();k()});var Tr=c(()=>{"use strict"});var Nr=c(()=>{"use strict";Tr();k()});var Pr=c(()=>{"use strict"});var Lr=c(()=>{"use strict";Pr()});var Dr=c(()=>{"use strict";Lr();k()});var Mr=c(()=>{"use strict"});var Fr=c(()=>{"use strict"});var Kr=c(()=>{"use strict"});var Ke=c(()=>{"use strict"});var Br=c(()=>{"use strict"});var Ur=c(()=>{"use strict";Ke();Br()});var Wr=c(()=>{"use strict";Nr();Dr();Mr();Fr();Te();Kr();Ur();Ke();k()});var $r=c(()=>{"use strict";Wr()});function Hr(r,e={}){let t=e.perWorkerMemBytes??Be,n=e.memReserveBytes??Ue,o=e.memUtilization??We,s=Math.max(0,Math.floor(r*o)-n),i=Math.max(1,Math.floor(s/t));return Math.min(i,ce)}var Be,Ue,We,ce,jr=c(()=>{"use strict";Er();I();M();ie();le();De();ae();Ir();$r();k();Be=500*1024*1024,Ue=4*1024*1024*1024,We=.85,ce=64});function Z(r,e){let t=Number(r);return!Number.isFinite(t)||t<=0?e:Math.floor(t)}function $e(r){let e=r.config??{},t=r.env??process.env,n=Z(e.perWorkerMemBytes,Be),o=Z(e.memReserveBytes,Ue),s=Math.min(1,Math.max(.1,Number(e.memUtilization)>0?Number(e.memUtilization):We)),i=Hr(r.totalMemBytes,{perWorkerMemBytes:n,memReserveBytes:o,memUtilization:s});if(r.configuredMaxWorkersOverride!==void 0&&r.configuredMaxWorkersOverride!==null)return{configuredMaxWorkers:Z(r.configuredMaxWorkersOverride,i),autoCap:i,workerCapSource:"workspace_override"};if(e.maxConcurrentWorkers!==void 0&&e.maxConcurrentWorkers!==null){let l=Z(e.maxConcurrentWorkers,0)||null;if(l)return{configuredMaxWorkers:Math.min(l,ce),autoCap:i,workerCapSource:"config"}}let u=(t.KYNVER_MAX_WORKERS_INTENTIONAL==="1"||t.KYNVER_MAX_WORKERS_INTENTIONAL==="true")&&t.KYNVER_MAX_WORKERS&&Z(t.KYNVER_MAX_WORKERS,0)||null;return u?{configuredMaxWorkers:Math.min(u,ce),autoCap:i,workerCapSource:"env"}:{configuredMaxWorkers:null,autoCap:i,workerCapSource:"auto"}}var le=c(()=>{"use strict";jr()});import{homedir as bn}from"node:os";import kn from"node:path";var Yr,He=c(()=>{"use strict";Yr=kn.join(bn(),".kynver",".env")});var Vr=c(()=>{"use strict"});var Gr=c(()=>{"use strict";Vr()});var qr=c(()=>{"use strict"});var je=c(()=>{"use strict";Gr();qr()});var Jr=c(()=>{"use strict"});var zr=c(()=>{"use strict";Jr()});var ue=c(()=>{"use strict";He();V();I();je();zr()});var Xr=c(()=>{"use strict";M();M()});var Qr=c(()=>{"use strict";He();je();ue()});import{existsSync as T,mkdirSync as En,readdirSync as de,renameSync as Zr,statSync as Cn}from"node:fs";import N from"node:path";function rt(r){try{return Cn(r).isDirectory()}catch{return!1}}function An(r){if(!T(r))return!0;for(let e of et){let t=N.join(r,e);if(T(t)&&(!rt(t)||de(t).length>0))return!1}return!0}function On(r){let e=N.join(r,"runs");if(!T(e)||!rt(e))return!1;for(let t of de(e,{withFileTypes:!0})){if(!t.isDirectory()||t.name==="runs")continue;let n=N.join(e,t.name,"run.json");if(Q(n,void 0)?.id)return!0}return!1}function wn(r){let e=N.join(r,"runs");if(!T(e))return!1;for(let t of de(e,{withFileTypes:!0})){if(!t.isDirectory())continue;if(Q(N.join(e,t.name,"run.json"),void 0)?.boxKind==="ghost")return!0}return!1}function In(r){let e=N.join(r,"ghost");return T(e)?!T(N.join(e,"runs")):wn(r)}function tt(r){return On(r.sharedRoot)?An(r.forgeRoot)?In(r.sharedRoot)?{action:"blocked",blocker:"Forge legacy harness migration blocked: Ghost pool is co-hosted on this host (ghost namespace or ghost-attributed runs under ~/.kynver/harness). Drain in-flight Ghost runs from the shared root, or get operator sign-off for a fresh Forge cutover before enabling box-scoped isolation."}:{action:"migrate"}:{action:"none"}:{action:"none"}}function nt(r,e){En(e,{recursive:!0});for(let t of et){let n=N.join(r,t),o=N.join(e,t);if(T(n)){if(T(o)&&de(o).length>0)throw new Error(`Forge legacy harness migration failed: ${o} is not empty`);if(T(o)){Zr(n,o);continue}Zr(n,o)}}}var et,ot=c(()=>{"use strict";k();et=["runs","worktrees"]});import{existsSync as b}from"node:fs";import{homedir as Tn}from"node:os";import S from"node:path";function Ye(r=process.env){return r.HOME?.trim()||Tn()}function Ve(r=process.env){return S.join(Ye(r),".kynver","harness")}function me(r){let e=S.resolve(F(r.trim()));for(;Nn.has(S.basename(e));)e=S.dirname(e);return e}function Pn(r,e=process.env){return S.join(Ve(e),r)}function Ln(r=process.env){let e=Ve(r);if(b(S.join(e,"runs")))return!0;if(b(e)&&!b(S.join(e,"ghost"))&&!b(S.join(e,"forge")))return b(e);let t=S.join(Ye(r),st);return b(t)}function pe(r){let e=r.env??process.env,t=e.KYNVER_HARNESS_ROOT?.trim()||e.OPUS_HARNESS_ROOT?.trim();if(t)return{harnessRoot:me(t),source:"env"};let n=r.configuredHarnessRoot?.trim();if(n)return{harnessRoot:me(n),source:"config"};let o=Pn(r.boxKind,e);if(b(S.join(o,"runs"))||b(o)&&!Dn(o))return{harnessRoot:o,source:"box_scoped"};let i=Ve(e);if(r.boxKind==="forge"){let a=tt({sharedRoot:i,forgeRoot:o});if(a.action==="blocked")return{harnessRoot:o,source:"box_scoped",migrationBlocker:a.blocker};if(a.action==="migrate")return r.allowForgeLegacyMigration!==!1&&nt(i,o),{harnessRoot:o,source:"legacy_migrated"}}if(r.boxKind==="ghost"&&Ln(e)){if(b(S.join(i,"runs")))return{harnessRoot:i,source:"legacy_shared"};if(b(i)&&!b(S.join(i,"ghost"))&&!b(S.join(i,"forge")))return{harnessRoot:i,source:"legacy_shared"};let u=S.join(Ye(e),st);if(b(u))return{harnessRoot:u,source:"legacy_shared"}}return{harnessRoot:o,source:"box_scoped"}}function Dn(r){if(!b(r))return!0;for(let e of["runs","worktrees"]){let t=S.join(r,e);if(b(t))return!1}return!0}var st,Nn,Ge=c(()=>{"use strict";V();ot();st=S.join(".openclaw","harness");Nn=new Set(["runs","worktrees"])});import it from"node:os";function fe(r){return r?.trim()?r.trim():null}function Mn(r,e){let t=e.trim().toLowerCase()||"host";return`${r}-${t}`.replace(/[^a-z0-9._-]+/g,"-")}function Fn(r){return r.KYNVER_DISPATCH_STRICT_IDENTITY==="1"||r.KYNVER_DISPATCH_STRICT_IDENTITY==="true"||r.KYNVER_DAEMON_STRICT_IDENTITY==="1"||r.KYNVER_DAEMON_STRICT_IDENTITY==="true"}function ge(r=_(),e=process.env,t={}){let n=G(e,r),o=[...n.warnings],s=[],i=!!(r.boxKind?.trim()||fe(e.KYNVER_BOX_KIND)),a=t.strict===!0||Fn(e);if((t.requireExplicitBoxKind||a)&&!i&&s.push("boxKind is not persisted in ~/.kynver/config.json and KYNVER_BOX_KIND is unset \u2014 run `kynver setup` (customers: boxKind=box) or `kynver setup --box-kind forge|ghost` for operator pools before dispatch"),n.slugInferenceBlocked&&!i){let H="ambiguous box identity: KYNVER_AGENT_OS_SLUG is set without KYNVER_BOX_KIND or config.boxKind";a||t.requireExplicitBoxKind?s.push(H):o.push(`${H} \u2014 defaulting box kind to box (customer), not forge/ghost`)}let u=fe(r.runnerId),l=fe(e.KYNVER_RUNTIME_ID)??fe(e.OPENCLAW_RUNTIME_ID),m=u??l??Mn(n.boxKind,it.hostname()),p=u?"config":l?"env":"derived";p==="derived"&&o.push(`runnerId not persisted \u2014 using derived id "${m}"; run \`kynver setup --box-kind ${n.boxKind}\` to persist runner identity`);let d=$e({config:r,env:e,totalMemBytes:it.totalmem()}),$=se(n.boxKind,d.configuredMaxWorkers??Pe(n.boxKind,d.autoCap)),v=pe({boxKind:n.boxKind,configuredHarnessRoot:r.harnessRoot,env:e});return v.migrationBlocker&&s.push(v.migrationBlocker),s.length>0?{ok:!1,identity:null,errors:s,warnings:o}:{ok:!0,identity:{boxKind:n.boxKind,boxKindSource:n.source,runnerId:m,runnerIdSource:p,maxConcurrentWorkers:$,workerCapSource:d.workerCapSource,harnessRoot:v.harnessRoot,harnessRootSource:v.source},errors:s,warnings:o}}var he=c(()=>{"use strict";I();M();ie();le();Ge()});var at=c(()=>{"use strict";Ne();M();Xr();I();ue();Qr();k();he()});import{existsSync as lt,mkdirSync as Un,readFileSync as ut,writeFileSync as Wn}from"node:fs";import{homedir as $n,totalmem as nl}from"node:os";import Je from"node:path";function Hn(r){return{...r,...r.harnessRoot?.trim()?{harnessRoot:F(r.harnessRoot.trim())}:{},...r.defaultRepo?.trim()?{defaultRepo:F(r.defaultRepo.trim())}:{}}}function _(){if(!lt(ct))return{};try{return Hn(JSON.parse(ut(ct,"utf8")))}catch{return{}}}function dt(){if(!lt(qe))return{};try{return JSON.parse(ut(qe,"utf8"))}catch{return{}}}function jn(r){Un(ze,{recursive:!0}),Wn(qe,`${JSON.stringify(r,null,2)}
2
+ `),cn(t,r)}catch(n){try{ln(t,{force:!0})}catch{}throw n}}function Ie(r){return String(r).replace(/\/+$/,"")}var k=c(()=>{"use strict"});var pn,Ns,fn,Ps,xr=c(()=>{"use strict";pn=["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"],Ns=new Set(pn),fn=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ps=new Set(fn)});var Te=c(()=>{"use strict";V();k();xr()});var Ne=c(()=>{"use strict";Te();V()});function K(r){let e=(r??"").trim().toLowerCase();return e==="ghost"||e==="forge"||e==="box"?e:e.includes("forge")?"forge":e.includes("ghost")||e.includes("openclaw")?"ghost":"box"}function oe(r,e){return r[e]?.trim()||null}function _r(r){let e=r?.split(":")[0]?.trim();return e?K(e):null}function G(r=process.env,e={}){let t=[],n=_r(e.boxId),o=_r(oe(r,"KYNVER_BOX_ID")),s=e.boxKind?.trim();if(s)return n&&n!==K(s)&&t.push(`config.boxId=${e.boxId} conflicts with boxKind=${s}; using explicit boxKind=${s}`),{boxKind:K(s),source:"config",slugInferenceBlocked:!1,warnings:t};let i=oe(r,"KYNVER_BOX_KIND");if(i)return o&&o!==K(i)&&t.push(`KYNVER_BOX_ID=${oe(r,"KYNVER_BOX_ID")} conflicts with KYNVER_BOX_KIND=${i}; using explicit KYNVER_BOX_KIND=${i}`),{boxKind:K(i),source:"env",slugInferenceBlocked:!1,warnings:t};if(n)return{boxKind:n,source:"config",slugInferenceBlocked:!1,warnings:t};if(o)return{boxKind:o,source:"env",slugInferenceBlocked:!1,warnings:t};let a=oe(r,"KYNVER_AGENT_OS_SLUG");return a&&t.push(`KYNVER_AGENT_OS_SLUG=${a} is a workspace slug, not box identity \u2014 operators set boxKind via \`kynver setup --box-kind forge|ghost\` or KYNVER_BOX_KIND; customers default to box`),{boxKind:"box",source:"default",slugInferenceBlocked:!!a,warnings:t}}var M=c(()=>{"use strict"});function Pe(r,e){return r==="forge"?4:Math.max(1,e)}function se(r,e){return r==="forge"?Math.min(Math.max(1,e),4):Math.max(1,e)}var ie=c(()=>{"use strict"});var Er=c(()=>{"use strict"});var Js,zs,Le=c(()=>{"use strict";Js=25*1024*1024*1024,zs=12*1024*1024*1024});var ri,ti,Cr=c(()=>{"use strict";Le();ri=5*1024*1024*1024,ti=10*1024*1024*1024});var ci,li,De=c(()=>{"use strict";Cr();Le();ci=30*1024*1024*1024,li=15*1024*1024*1024});function Ar(){return wr()}var ae=c(()=>{"use strict";Fe();k()});var Ir=c(()=>{"use strict";ae();k()});var Tr=c(()=>{"use strict"});var Nr=c(()=>{"use strict";Tr();k()});var Pr=c(()=>{"use strict"});var Lr=c(()=>{"use strict";Pr()});var Dr=c(()=>{"use strict";Lr();k()});var Mr=c(()=>{"use strict"});var Fr=c(()=>{"use strict"});var Kr=c(()=>{"use strict"});var Ke=c(()=>{"use strict"});var Br=c(()=>{"use strict"});var Ur=c(()=>{"use strict";Ke();Br()});var Wr=c(()=>{"use strict";Nr();Dr();Mr();Fr();Te();Kr();Ur();Ke();k()});var $r=c(()=>{"use strict";Wr()});function Hr(r,e={}){let t=e.perWorkerMemBytes??Be,n=e.memReserveBytes??Ue,o=e.memUtilization??We,s=Math.max(0,Math.floor(r*o)-n),i=Math.max(1,Math.floor(s/t));return Math.min(i,ce)}var Be,Ue,We,ce,jr=c(()=>{"use strict";Er();I();M();ie();le();De();ae();Ir();$r();k();Be=500*1024*1024,Ue=4*1024*1024*1024,We=.85,ce=64});function Z(r,e){let t=Number(r);return!Number.isFinite(t)||t<=0?e:Math.floor(t)}function $e(r){let e=r.config??{},t=r.env??process.env,n=Z(e.perWorkerMemBytes,Be),o=Z(e.memReserveBytes,Ue),s=Math.min(1,Math.max(.1,Number(e.memUtilization)>0?Number(e.memUtilization):We)),i=Hr(r.totalMemBytes,{perWorkerMemBytes:n,memReserveBytes:o,memUtilization:s});if(r.configuredMaxWorkersOverride!==void 0&&r.configuredMaxWorkersOverride!==null)return{configuredMaxWorkers:Z(r.configuredMaxWorkersOverride,i),autoCap:i,workerCapSource:"workspace_override"};if(e.maxConcurrentWorkers!==void 0&&e.maxConcurrentWorkers!==null){let l=Z(e.maxConcurrentWorkers,0)||null;if(l)return{configuredMaxWorkers:Math.min(l,ce),autoCap:i,workerCapSource:"config"}}let u=(t.KYNVER_MAX_WORKERS_INTENTIONAL==="1"||t.KYNVER_MAX_WORKERS_INTENTIONAL==="true")&&t.KYNVER_MAX_WORKERS&&Z(t.KYNVER_MAX_WORKERS,0)||null;return u?{configuredMaxWorkers:Math.min(u,ce),autoCap:i,workerCapSource:"env"}:{configuredMaxWorkers:null,autoCap:i,workerCapSource:"auto"}}var le=c(()=>{"use strict";jr()});import{homedir as bn}from"node:os";import kn from"node:path";var Yr,He=c(()=>{"use strict";Yr=kn.join(bn(),".kynver",".env")});var Vr=c(()=>{"use strict"});var Gr=c(()=>{"use strict";Vr()});var qr=c(()=>{"use strict"});var je=c(()=>{"use strict";Gr();qr()});var Jr=c(()=>{"use strict"});var zr=c(()=>{"use strict";Jr()});var ue=c(()=>{"use strict";He();V();I();je();zr()});var Xr=c(()=>{"use strict";M();M()});var Qr=c(()=>{"use strict";He();je();ue()});import{existsSync as T,mkdirSync as En,readdirSync as de,renameSync as Zr,statSync as Cn}from"node:fs";import N from"node:path";function rt(r){try{return Cn(r).isDirectory()}catch{return!1}}function An(r){if(!T(r))return!0;for(let e of et){let t=N.join(r,e);if(T(t)&&(!rt(t)||de(t).length>0))return!1}return!0}function On(r){let e=N.join(r,"runs");if(!T(e)||!rt(e))return!1;for(let t of de(e,{withFileTypes:!0})){if(!t.isDirectory()||t.name==="runs")continue;let n=N.join(e,t.name,"run.json");if(Q(n,void 0)?.id)return!0}return!1}function wn(r){let e=N.join(r,"runs");if(!T(e))return!1;for(let t of de(e,{withFileTypes:!0})){if(!t.isDirectory())continue;if(Q(N.join(e,t.name,"run.json"),void 0)?.boxKind==="ghost")return!0}return!1}function In(r){let e=N.join(r,"ghost");return T(e)?!T(N.join(e,"runs")):wn(r)}function tt(r){return On(r.sharedRoot)?An(r.forgeRoot)?In(r.sharedRoot)?{action:"blocked",blocker:"Forge legacy harness migration blocked: Ghost pool is co-hosted on this host (ghost namespace or ghost-attributed runs under ~/.kynver/harness). Drain in-flight Ghost runs from the shared root, or get operator sign-off for a fresh Forge cutover before enabling box-scoped isolation."}:{action:"migrate"}:{action:"none"}:{action:"none"}}function nt(r,e){En(e,{recursive:!0});for(let t of et){let n=N.join(r,t),o=N.join(e,t);if(T(n)){if(T(o)&&de(o).length>0)throw new Error(`Forge legacy harness migration failed: ${o} is not empty`);if(T(o)){Zr(n,o);continue}Zr(n,o)}}}var et,ot=c(()=>{"use strict";k();et=["runs","worktrees"]});import{existsSync as b}from"node:fs";import{homedir as Tn}from"node:os";import S from"node:path";function Ye(r=process.env){return r.HOME?.trim()||Tn()}function Ve(r=process.env){return S.join(Ye(r),".kynver","harness")}function me(r){let e=S.resolve(F(r.trim()));for(;Nn.has(S.basename(e));)e=S.dirname(e);return e}function Pn(r,e=process.env){return S.join(Ve(e),r)}function Ln(r=process.env){let e=Ve(r);if(b(S.join(e,"runs")))return!0;if(b(e)&&!b(S.join(e,"ghost"))&&!b(S.join(e,"forge")))return b(e);let t=S.join(Ye(r),st);return b(t)}function pe(r){let e=r.env??process.env,t=e.KYNVER_HARNESS_ROOT?.trim()||e.OPUS_HARNESS_ROOT?.trim();if(t)return{harnessRoot:me(t),source:"env"};let n=r.configuredHarnessRoot?.trim();if(n)return{harnessRoot:me(n),source:"config"};let o=Pn(r.boxKind,e);if(b(S.join(o,"runs"))||b(o)&&!Dn(o))return{harnessRoot:o,source:"box_scoped"};let i=Ve(e);if(r.boxKind==="forge"){let a=tt({sharedRoot:i,forgeRoot:o});if(a.action==="blocked")return{harnessRoot:o,source:"box_scoped",migrationBlocker:a.blocker};if(a.action==="migrate")return r.allowForgeLegacyMigration!==!1&&nt(i,o),{harnessRoot:o,source:"legacy_migrated"}}if(r.boxKind==="ghost"&&Ln(e)){if(b(S.join(i,"runs")))return{harnessRoot:i,source:"legacy_shared"};if(b(i)&&!b(S.join(i,"ghost"))&&!b(S.join(i,"forge")))return{harnessRoot:i,source:"legacy_shared"};let u=S.join(Ye(e),st);if(b(u))return{harnessRoot:u,source:"legacy_shared"}}return{harnessRoot:o,source:"box_scoped"}}function Dn(r){if(!b(r))return!0;for(let e of["runs","worktrees"]){let t=S.join(r,e);if(b(t))return!1}return!0}var st,Nn,Ge=c(()=>{"use strict";V();ot();st=S.join(".openclaw","harness");Nn=new Set(["runs","worktrees"])});import it from"node:os";function fe(r){return r?.trim()?r.trim():null}function Mn(r,e){let t=e.trim().toLowerCase()||"host";return`${r}-${t}`.replace(/[^a-z0-9._-]+/g,"-")}function Fn(r){return r.KYNVER_DISPATCH_STRICT_IDENTITY==="1"||r.KYNVER_DISPATCH_STRICT_IDENTITY==="true"||r.KYNVER_DAEMON_STRICT_IDENTITY==="1"||r.KYNVER_DAEMON_STRICT_IDENTITY==="true"}function ge(r=_(),e=process.env,t={}){let n=G(e,r),o=[...n.warnings],s=[],i=!!(r.boxKind?.trim()||fe(e.KYNVER_BOX_KIND)),a=t.strict===!0||Fn(e);if((t.requireExplicitBoxKind||a)&&!i&&s.push("boxKind is not persisted in ~/.kynver/config.json and KYNVER_BOX_KIND is unset \u2014 run `kynver setup` (customers: boxKind=box) or `kynver setup --box-kind forge|ghost` for operator pools before dispatch"),n.slugInferenceBlocked&&!i){let H="ambiguous box identity: KYNVER_AGENT_OS_SLUG is set without KYNVER_BOX_KIND or config.boxKind";a||t.requireExplicitBoxKind?s.push(H):o.push(`${H} \u2014 defaulting box kind to box (customer), not forge/ghost`)}let u=fe(r.runnerId),l=fe(e.KYNVER_RUNTIME_ID)??fe(e.OPENCLAW_RUNTIME_ID),m=u??l??Mn(n.boxKind,it.hostname()),p=u?"config":l?"env":"derived";p==="derived"&&o.push(`runnerId not persisted \u2014 using derived id "${m}"; run \`kynver setup --box-kind ${n.boxKind}\` to persist runner identity`);let d=$e({config:r,env:e,totalMemBytes:it.totalmem()}),$=se(n.boxKind,d.configuredMaxWorkers??Pe(n.boxKind,d.autoCap)),v=pe({boxKind:n.boxKind,configuredHarnessRoot:r.harnessRoot,env:e});return v.migrationBlocker&&s.push(v.migrationBlocker),s.length>0?{ok:!1,identity:null,errors:s,warnings:o}:{ok:!0,identity:{boxKind:n.boxKind,boxKindSource:n.source,runnerId:m,runnerIdSource:p,maxConcurrentWorkers:$,workerCapSource:d.workerCapSource,harnessRoot:v.harnessRoot,harnessRootSource:v.source},errors:s,warnings:o}}var he=c(()=>{"use strict";I();M();ie();le();Ge()});var at=c(()=>{"use strict";Ne();M();Xr();I();ue();Qr();k();he()});import{existsSync as lt,mkdirSync as Un,readFileSync as ut,writeFileSync as Wn}from"node:fs";import{homedir as $n,totalmem as nl}from"node:os";import Je from"node:path";function Hn(r){return{...r,...r.harnessRoot?.trim()?{harnessRoot:F(r.harnessRoot.trim())}:{},...r.defaultRepo?.trim()?{defaultRepo:F(r.defaultRepo.trim())}:{}}}function _(){if(!lt(ct))return{};try{return Hn(JSON.parse(ut(ct,"utf8")))}catch{return{}}}function dt(){if(!lt(qe))return{};try{return JSON.parse(ut(qe,"utf8"))}catch{return{}}}function jn(r){Un(ze,{recursive:!0}),Wn(qe,`${JSON.stringify(r,null,2)}
3
3
  `,{mode:384})}function mt(){return process.env.KYNVER_API_KEY?process.env.KYNVER_API_KEY:dt().apiKey}function Yn(r,e){jn({...dt(),runnerToken:e,runnerTokenAgentOsId:r})}function Vn(r){let e=pt(r);return e||qn("requires --base-url, KYNVER_API_URL, KYNVER_CRON_FIRE_BASE_URL, or ~/.kynver/config.json apiBaseUrl"),e}function pt(r){let e=r||process.env.KYNVER_API_URL||process.env.KYNVER_CRON_FIRE_BASE_URL||process.env.OPENCLAW_CRON_FIRE_BASE_URL||_().apiBaseUrl;return e?Ie(String(e)):void 0}async function ft(r,e,t){let n=mt(),o=pt(t?.baseUrl);if(!n)return{ok:!1,reason:"KYNVER_API_KEY is required to refresh a rejected runner token"};if(!e)return{ok:!1,reason:"agentOsId is required to refresh a rejected runner token"};if(!o)return{ok:!1,reason:"KYNVER_API_URL or --base-url is required to refresh a rejected runner token"};try{let s=await Gn(e,{baseUrl:o,apiKey:n});return s&&s!==r?(Yn(e,s),{ok:!0,token:s}):{ok:!1,reason:"runner credential refresh returned the rejected token"}}catch(s){return{ok:!1,reason:s.message}}}async function Gn(r,e){let t=e?.apiKey||mt();if(!t)throw new Error("API key required \u2014 run `kynver login` first");let o=`${Vn(e?.baseUrl)}/api/agent-os/by-id/${encodeURIComponent(r)}/runner-credentials`,s=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:JSON.stringify({})}),i=await s.text(),a=null;try{a=JSON.parse(i)}catch{a=null}if(!s.ok||!a?.token)throw new Error(`runner credential mint failed (${s.status}): ${a?.error??i.slice(0,200)}`);return a.token}function qn(r){console.error(r),process.exit(1)}var ze,ct,qe,gl,hl,I=c(()=>{"use strict";Ne();V();k();M();ie();le();De();ue();at();he();ze=Je.join($n(),".kynver"),ct=Je.join(ze,"config.json"),qe=Je.join(ze,"credentials");gl=500*1024*1024,hl=4*1024*1024*1024});import gt from"node:path";function ye(r){return me(r)}function Xe(){let r=process.env.KYNVER_HARNESS_ROOT||process.env.OPUS_HARNESS_ROOT;if(r)return ye(r);let e=_(),t=e.harnessRoot?.trim();if(t)return ye(t);let n=ge(e,process.env);return n.identity?n.identity.harnessRoot:pe({boxKind:"forge",configuredHarnessRoot:null}).harnessRoot}function Or(r){return gt.join(ye(r),"runs")}function Jn(r){return gt.join(ye(r),"worktrees")}function wr(){let r=Xe();return{harnessRoot:r,runsDir:Or(r),worktreesDir:Jn(r)}}var Fe=c(()=>{"use strict";I();Ge();he();k()});import{existsSync as Kt,realpathSync as Bt,readFileSync as Ut}from"node:fs";import Sr from"node:path";var Wt=new Set(["ext4","ext3","ext2","btrfs","xfs","f2fs","zfs","tmpfs","overlay","overlayfs"]),$t=new Set(["9p","drvfs","nfs","nfs4","cifs","smb","smbfs","smb3","sshfs","fuse.sshfs","davfs","davfs2","glusterfs","ceph","lustre","afs","vboxsf","prl_fs","virtiofs"]);function Ht(){try{return Ut("/proc/self/mounts","utf8")}catch{return null}}function jt(r){let e=Sr.resolve(r);for(let t=0;t<64;t+=1){if(Kt(e))try{return Bt.native(e)}catch{return e}let n=Sr.dirname(e);if(n===e)return e;e=n}return e}function Yt(r){return r.replace(/\\(\d{3})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,8)))}function Vt(r){let e=[];for(let t of r.split(`
4
4
  `)){let n=t.trim().split(/\s+/);n.length<3||e.push({mountPoint:Yt(n[1]),fsType:n[2]})}return e}function Gt(r,e){let t=null;for(let n of e){let o=n.mountPoint.endsWith("/")?n.mountPoint:`${n.mountPoint}/`;(r===n.mountPoint||`${r}/`.startsWith(o))&&(!t||n.mountPoint.length>t.mountPoint.length)&&(t=n)}return t}function Ee(r,e){let n=(e?.resolveRealPath??jt)(r),o=(e?.mountsSource??Ht)();if(o===null)return{verdict:"rejected",reason:"Mount information unavailable \u2014 the filesystem type cannot be established safely, so WAL mode is refused (fail closed).",filesystemType:null,mountPoint:null,resolvedPath:n};let s=Gt(n,Vt(o));if(!s)return{verdict:"rejected",reason:"No mount entry covers the resolved database path \u2014 refusing WAL mode (fail closed).",filesystemType:null,mountPoint:null,resolvedPath:n};let i=s.fsType.toLowerCase();return $t.has(i)||i.startsWith("fuse.")?{verdict:"rejected",reason:`Filesystem '${i}' is network-like or crosses an OS boundary; SQLite WAL locking is not safe there.`,filesystemType:i,mountPoint:s.mountPoint,resolvedPath:n}:Wt.has(i)?{verdict:"accepted",reason:`Local filesystem '${i}' accepted for WAL mode.`,filesystemType:i,mountPoint:s.mountPoint,resolvedPath:n}:{verdict:"rejected",reason:`Filesystem '${i}' is unknown to the qualification policy; WAL mode is refused rather than guessed (fail closed).`,filesystemType:i,mountPoint:s.mountPoint,resolvedPath:n}}var Ce=1,ne=class extends Error{constructor(e,t){super(`local-run-store schema version ${e} is newer than this runtime supports (${t}); refusing to open. Upgrade the runtime or quarantine the database deliberately.`),this.name="SchemaDowngradeRefusedError"}},qt=[`CREATE TABLE IF NOT EXISTS local_meta (
5
5
  key TEXT PRIMARY KEY,
@@ -1,7 +1,7 @@
1
1
  var f=(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 Tt}from"node:os";import Ut from"node:path";function Es(e){return e==="~"?Tt():e.startsWith("~/")||e.startsWith("~\\")?Ut.join(Tt(),e.slice(2)):e}function Z(e){return Ut.resolve(Es(e))}var oe=f(()=>{"use strict"});import{existsSync as ws,mkdirSync as As,readFileSync as Bt,readdirSync as rl,renameSync as Ps,rmSync as Os,statSync as Kt,writeFileSync as Is}from"node:fs";import{randomBytes as Ds}from"node:crypto";import Ns from"node:path";function Ye(e){console.error(e),process.exit(1)}function $r(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function Ve(e){try{return JSON.parse(e)}catch{return null}}function x(e,r){try{return JSON.parse(Bt(e,"utf8"))}catch(t){if(arguments.length>1)return r;Ye(`failed to read ${e}: ${t.message}`)}}function Ft(e,r){As(Ns.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.${Ds(4).toString("hex")}.tmp`;try{Is(t,`${JSON.stringify(r,null,2)}
2
2
  `),Ps(t,e)}catch(n){try{Os(t,{force:!0})}catch{}throw n}}function v(e){return String(e||"").toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"worker"}function ze(e){try{return Kt(e).size}catch{return 0}}function Je(e){try{return Kt(e).mtime.toISOString()}catch{return null}}function Ht(e,r){return ws(e)?Bt(e,"utf8").split(`
3
3
  `).slice(-r).join(`
4
- `):""}function Q(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Lt(e){let r=null,t=-1/0;for(let n of e){if(!n)continue;let o=Date.parse(n);Number.isFinite(o)&&o>t&&(t=o,r=n)}return r}function Gr(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var b=f(()=>{"use strict"});var Ws,sl,Ms,il,jt=f(()=>{"use strict";Ws=["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"],sl=new Set(Ws),Ms=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],il=new Set(Ms)});import{spawnSync as Gt}from"node:child_process";function ye(e,r,t={}){let n=Gt("git",r,$r({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=Ts(e,r,n);if(t.throwError)throw new Error(o);Ye(o)}return n.stdout||""}function Ts(e,r,t){let n=typeof t.stderr=="string"&&t.stderr.trim()||typeof t.stdout=="string"&&t.stdout.trim()||t.error?.message||`exit ${t.status??"unknown"}`;return`git ${r.join(" ")} failed in ${e}: ${n}`}function Oe(e){return ye(e,["status","--short"],{allowFailure:!0}).split(`
4
+ `):""}function Q(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function Lt(e){let r=null,t=-1/0;for(let n of e){if(!n)continue;let o=Date.parse(n);Number.isFinite(o)&&o>t&&(t=o,r=n)}return r}function Gr(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var b=f(()=>{"use strict"});var Ws,sl,Ms,il,jt=f(()=>{"use strict";Ws=["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"],sl=new Set(Ws),Ms=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],il=new Set(Ms)});import{spawnSync as Gt}from"node:child_process";function ye(e,r,t={}){let n=Gt("git",r,$r({cwd:e,encoding:"utf8"}));if(n.status!==0&&!t.allowFailure){let o=Ts(e,r,n);if(t.throwError)throw new Error(o);Ye(o)}return n.stdout||""}function Ts(e,r,t){let n=typeof t.stderr=="string"&&t.stderr.trim()||typeof t.stdout=="string"&&t.stdout.trim()||t.error?.message||`exit ${t.status??"unknown"}`;return`git ${r.join(" ")} failed in ${e}: ${n}`}function Oe(e){return ye(e,["status","--short"],{allowFailure:!0}).split(`
5
5
  `).map(r=>r.trim()).filter(Boolean)}function w(e,r){try{let t=Gt("git",r,$r({cwd:e,encoding:"utf8"}));return{status:t.status,stdout:t.stdout||"",stderr:t.stderr||"",error:t.error?t.error.message:null}}catch(t){return{status:null,stdout:"",stderr:"",error:t.message}}}function $t(e,r,t){let n=w(e,["merge-base","--is-ancestor",r,t]);return n.status===0?{isAncestor:!0,error:null}:n.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:n.error||n.stderr||n.stdout||`git exited ${n.status}`}}function Xe(e,r="origin/main"){let t=typeof r=="string"?{base:r}:r,n=t.baseCommit?.trim()||t.base?.trim()||"origin/main",o=t.baseCommit?.trim()||null;if(!e)return Yr(n,"missing worktree path");let s=w(e,["rev-parse","HEAD"]);if(s.status!==0)return Yr(n,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let m=w(e,["rev-parse",n]);if(m.status!==0)return Yr(n,m.error||m.stderr||m.stdout||`failed to resolve ${n}`,s.stdout.trim());i=m.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let u=$t(e,i,a),l=$t(e,a,i),c=u.error||l.error||void 0;if(u.isAncestor==null||l.isAncestor==null)return{checked:!1,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:l.isAncestor,relation:"unknown",...c?{error:c}:{}};let d=u.isAncestor?"ahead":l.isAncestor?"merged":"diverged";return{checked:!0,base:n,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:l.isAncestor,relation:d,...c?{error:c}:{}}}function Yr(e,r,t=null){return{checked:!1,base:e,head:t,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var F=f(()=>{"use strict";oe();b();jt()});var qe=f(()=>{"use strict";F();oe()});function se(e){let r=(e??"").trim().toLowerCase();return r==="ghost"||r==="forge"||r==="box"?r:r.includes("forge")?"forge":r.includes("ghost")||r.includes("openclaw")?"ghost":"box"}function Ze(e,r){return e[r]?.trim()||null}function Yt(e){let r=e?.split(":")[0]?.trim();return r?se(r):null}function be(e=process.env,r={}){let t=[],n=Yt(r.boxId),o=Yt(Ze(e,"KYNVER_BOX_ID")),s=r.boxKind?.trim();if(s)return n&&n!==se(s)&&t.push(`config.boxId=${r.boxId} conflicts with boxKind=${s}; using explicit boxKind=${s}`),{boxKind:se(s),source:"config",slugInferenceBlocked:!1,warnings:t};let i=Ze(e,"KYNVER_BOX_KIND");if(i)return o&&o!==se(i)&&t.push(`KYNVER_BOX_ID=${Ze(e,"KYNVER_BOX_ID")} conflicts with KYNVER_BOX_KIND=${i}; using explicit KYNVER_BOX_KIND=${i}`),{boxKind:se(i),source:"env",slugInferenceBlocked:!1,warnings:t};if(n)return{boxKind:n,source:"config",slugInferenceBlocked:!1,warnings:t};if(o)return{boxKind:o,source:"env",slugInferenceBlocked:!1,warnings:t};let a=Ze(e,"KYNVER_AGENT_OS_SLUG");return a&&t.push(`KYNVER_AGENT_OS_SLUG=${a} is a workspace slug, not box identity \u2014 operators set boxKind via \`kynver setup --box-kind forge|ghost\` or KYNVER_BOX_KIND; customers default to box`),{boxKind:"box",source:"default",slugInferenceBlocked:!!a,warnings:t}}var ie=f(()=>{"use strict"});function Vr(e,r){return e==="forge"?4:Math.max(1,r)}function Qe(e,r){return e==="forge"?Math.min(Math.max(1,r),4):Math.max(1,r)}var er=f(()=>{"use strict"});var Vt=f(()=>{"use strict"});import{existsSync as Us,readFileSync as Bs,statfsSync as Ks}from"node:fs";function zr(){if(process.platform!=="linux")return!1;for(let e of["/proc/sys/kernel/osrelease","/proc/version"])try{if(!Us(e))continue;let r=Bs(e,"utf8");if(/microsoft|wsl/i.test(r))return!0}catch{}return!1}function zt(e={}){if(!(e.forceWsl===void 0?zr():e.forceWsl))return null;let t=e.wslHostMount?.trim()||process.env.KYNVER_WSL_HOST_MOUNT?.trim()||Se,n=e.wslHostFreeWarnBytes??Fs,o=e.wslHostFreeCriticalBytes??Hs,s=e.statfs??Ks,i;try{i=s(t)}catch(R){return{ok:!1,path:t,freeBytes:0,totalBytes:0,usedPercent:100,warnBelowBytes:n,criticalBelowBytes:o,reason:`Windows host disk probe failed at ${t}: ${R.message}`,probeError:R.message}}let a=Number(i.bavail)*Number(i.bsize),u=Number(i.blocks)*Number(i.bsize),l=u>0?(u-a)/u*100:100,c=a<n,d=a<o,m=!c&&!d,g=(a/(1024*1024*1024)).toFixed(1),p=null;return m||(p=`Windows host disk ${t} at ${d?"critical":"warning"}: ${g} GiB free (<${(d?o:n)/1024/1024/1024} GiB); WSL VHDX cannot grow safely. ${Ls()}`),{ok:m,path:t,freeBytes:a,totalBytes:u,usedPercent:l,warnBelowBytes:n,criticalBelowBytes:o,reason:p,probeError:null}}function Ls(){return"Recovery: 1) free Windows C: (empty Recycle Bin / Storage Sense / clear %TEMP% and %LOCALAPPDATA%\\Temp\\wsl-crashes); 2) shut down WSL (`wsl --shutdown`) then compact the VHDX (`Optimize-VHD` or `diskpart compact vdisk`); 3) clear local node_modules / .next / harness worktrees before restarting workers; 4) disable recurring dumps via `%USERPROFILE%/.wslconfig` (`maxCrashDumpCount=-1`) or `kynver wsl-crashes --execute`. More help: https://www.kynver.com/help."}var Fs,Hs,Se,Jr=f(()=>{"use strict";Fs=25*1024*1024*1024,Hs=12*1024*1024*1024,Se="/mnt/c"});import{execFileSync as Jt}from"node:child_process";import{existsSync as tr,readFileSync as Xt,readdirSync as js,statSync as $s}from"node:fs";import Xr from"node:path";function rr(e,r){let t=process.env[e];if(!t)return r;let n=Number(t);return Number.isFinite(n)?n:r}function qt(){let e=process.env.KYNVER_WSL_WIN_USER?.trim();if(e)return e;try{let n=Jt("cmd.exe",["/c","echo","%USERNAME%"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();if(n&&n!=="%USERNAME%"&&!n.includes("%"))return n}catch{}let r=process.env.USER?.trim()||process.env.LOGNAME?.trim(),t=process.env.KYNVER_WSL_HOST_MOUNT?.trim()||Se;return r&&tr(Xr.join(t,"Users",r))?r:null}function Js(e={}){let r=e.crashDumpDir?.trim()||process.env.KYNVER_WSL_CRASH_DUMP_DIR?.trim();if(r)return r;let t=e.hostMount?.trim()||process.env.KYNVER_WSL_HOST_MOUNT?.trim()||Se,n=e.windowsUser??qt();return n?`${t.replace(/\\/g,"/").replace(/\/$/,"")}/Users/${n}/AppData/Local/Temp/wsl-crashes`:null}function Xs(e){let r=/^wsl-crash-\d+-(\d+)-(.+)-(\d+)\.dmp$/i.exec(e);if(!r)return{executableHint:null,signal:null,pid:null};let t=Number(r[1]),n=r[2]??"",o=Number(r[3]),s=n.split("_").filter(Boolean);return{executableHint:s.length>0?s[s.length-1]:null,signal:Number.isFinite(o)?o:null,pid:Number.isFinite(t)?t:null}}function qs(){try{if(tr("/proc/sys/kernel/core_pattern"))return Xt("/proc/sys/kernel/core_pattern","utf8").trim()}catch{}try{return Jt("sysctl",["-n","kernel.core_pattern"],{encoding:"utf8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function Zs(e){return!!(e&&/wsl-capture-crash/i.test(e))}function Qs(e,r=Se){let t=Xr.join(r,"Users",e,".wslconfig");if(!tr(t))return{maxCrashDumpCount:null,crashDumpFolder:null};let n;try{n=Xt(t,"utf8")}catch{return null}let o=null,s=null;for(let i of n.split(/\r?\n/)){let a=i.replace(/#.*$/,"").trim();if(!a||a.startsWith("["))continue;let u=a.indexOf("=");if(u<0)continue;let l=a.slice(0,u).trim().toLowerCase(),c=a.slice(u+1).trim();if(l==="maxcrashdumpcount"){let d=Number(c);o=Number.isFinite(d)?d:null}else l==="crashdumpfolder"&&(s=c.replace(/^["']|["']$/g,"")||null)}return{maxCrashDumpCount:o,crashDumpFolder:s}}function ei(e){if(!tr(e))return[];let r=js(e,{withFileTypes:!0}),t=[];for(let n of r){if(!n.isFile()||!n.name.toLowerCase().endsWith(".dmp"))continue;let o=Xr.join(e,n.name);try{let s=$s(o),i=Xs(n.name);t.push({name:n.name,path:o,bytes:s.size,mtimeMs:s.mtimeMs,executableHint:i.executableHint,signal:i.signal,pid:i.pid})}catch{}}return t.sort((n,o)=>o.mtimeMs-n.mtimeMs),t}function ve(e={}){if(!(e.forceWsl===void 0?zr():e.forceWsl))return null;let t=e.hostMount?.trim()||process.env.KYNVER_WSL_HOST_MOUNT?.trim()||Se,n=e.windowsUser??qt(),o=e.warnBelowBytes??rr("KYNVER_WSL_CRASH_DUMP_WARN_BYTES",Gs),s=e.criticalBelowBytes??rr("KYNVER_WSL_CRASH_DUMP_CRITICAL_BYTES",Ys),i=e.warnCount??rr("KYNVER_WSL_CRASH_DUMP_WARN_COUNT",Vs),a=e.criticalCount??rr("KYNVER_WSL_CRASH_DUMP_CRITICAL_COUNT",zs),u=(e.readCorePattern??qs)(),l=Zs(u),c=null;n&&(c=(e.readWslConfig??Qs)(n,t));let d=c?.maxCrashDumpCount??null,m=d===-1,g=Js({hostMount:t,windowsUser:n,crashDumpDir:e.crashDumpDir});if(!g)return{ok:!0,path:null,windowsUser:n,dumpCount:0,totalBytes:0,warnBelowBytes:o,criticalBelowBytes:s,warnCount:i,criticalCount:a,dumps:[],executables:[],corePattern:u,wslCaptureEnabled:l,maxCrashDumpCount:d,dumpsDisabledInWslConfig:m,reason:null,probeError:"windows_user_unresolved"};let p;try{p=(e.listDumps??ei)(g)}catch(P){return{ok:!1,path:g,windowsUser:n,dumpCount:0,totalBytes:0,warnBelowBytes:o,criticalBelowBytes:s,warnCount:i,criticalCount:a,dumps:[],executables:[],corePattern:u,wslCaptureEnabled:l,maxCrashDumpCount:d,dumpsDisabledInWslConfig:m,reason:`WSL crash dump probe failed at ${g}: ${P.message}`,probeError:P.message}}let R=p.reduce((P,h)=>P+h.bytes,0),S=p.length,y=[...new Set(p.map(P=>P.executableHint).filter(P=>!!P))],A=R>=s,j=R>=o,B=S>=a,je=S>=i,te=!(A||B||j||je),ne=null;if(!te){let P=A||B?"critical":"warning",h=(R/1024**3).toFixed(1),q=y.length>0?y.join(", "):"unknown";ne=`WSL crash dumps ${P}: ${S} file(s), ${h} GiB at ${g} (executables: ${q}). `+ri({wslCaptureEnabled:l,dumpsDisabledInWslConfig:m})}return{ok:te,path:g,windowsUser:n,dumpCount:S,totalBytes:R,warnBelowBytes:o,criticalBelowBytes:s,warnCount:i,criticalCount:a,dumps:p,executables:y,corePattern:u,wslCaptureEnabled:l,maxCrashDumpCount:d,dumpsDisabledInWslConfig:m,reason:ne,probeError:null}}function ri(e={}){let r=["Recovery:","1) run `kynver wsl-crashes --execute` or scripts/cleanup-wsl-crashes.ps1 to prune old .dmp files;"];return e.dumpsDisabledInWslConfig||r.push("2) add `[wsl2]\\nmaxCrashDumpCount=-1` to %USERPROFILE%/.wslconfig then `wsl --shutdown` to disable future dumps;"),e.wslCaptureEnabled&&r.push("3) investigate crashing executables (node OOM/SIGBUS often follows Windows C: pressure);"),r.push("More help: https://www.kynver.com/help."),r.join(" ")}var Gs,Ys,Vs,zs,nr=f(()=>{"use strict";Jr();Gs=5*1024*1024*1024,Ys=10*1024*1024*1024,Vs=2,zs=4});import{statfsSync as ti}from"node:fs";function or(e={}){let r=e.diskPath?.trim()||"/",t=e.diskFreeWarnBytes??ni,n=e.diskFreeCriticalBytes??oi,o=e.diskMaxUsedPercent??si,s=e.diskHardMaxUsedPercent??ii,i=ti(r),a=Number(i.bavail)*Number(i.bsize),u=Number(i.blocks)*Number(i.bsize),l=u>0?(u-a)/u*100:100,c=a<t,d=a<n,m=a<t*2,g=m&&l>o,p=m&&l>s,R=!c&&!d&&!g&&!p,S=e.skipWslHostCheck?null:zt(e.wslHost),y=e.skipWslCrashDumpCheck?null:ve(e.wslCrashDumps),A=R&&(S?S.ok:!0)&&(y?y.ok:!0),j=null;return A||(j=[d?`free space below critical ${n} bytes`:null,c?`free space below warning ${t} bytes`:null,p?`used percent above hard cap ${s}%`:null,g?`used percent above cap ${o}%`:null,S&&!S.ok?S.reason:null,y&&!y.ok?y.reason:null].filter(Boolean).join("; ")),ai({ok:A,path:r,freeBytes:a,totalBytes:u,usedPercent:l,warnBelowBytes:t,criticalBelowBytes:n,maxUsedPercent:o,hardMaxUsedPercent:s,reason:j,wslHost:S,wslCrashDumps:y?{ok:y.ok,path:y.path,dumpCount:y.dumpCount,totalBytes:y.totalBytes,executables:y.executables,wslCaptureEnabled:y.wslCaptureEnabled,dumpsDisabledInWslConfig:y.dumpsDisabledInWslConfig,reason:y.reason,probeError:y.probeError}:null})}function ai(e){let r=process.env.KYNVER_DISPATCH_DISK_GATE_FORCE?.trim().toLowerCase();return r?r==="ok"||r==="open"||r==="none"?e.ok?e:{...e,ok:!0,reason:`disk gate forced open by KYNVER_DISPATCH_DISK_GATE_FORCE (suppressed: ${e.reason??"no reason"})`}:r==="block"||r==="pressured"?{...e,ok:!1,reason:`disk gate forced closed by KYNVER_DISPATCH_DISK_GATE_FORCE${e.reason?` (underlying: ${e.reason})`:""}`}:e:e}var ni,oi,si,ii,sr=f(()=>{"use strict";nr();Jr();ni=30*1024*1024*1024,oi=15*1024*1024*1024,si=80,ii=90});import{existsSync as ui,readdirSync as li,statSync as ci}from"node:fs";import qr from"node:path";function ir(){return Qt()}function Zr(){let{runsDir:e}=ir();return Zt(e)}function ar(e){return Zt(G(e))}function di(e){try{return ci(e).isDirectory()}catch{return!1}}function Zt(e){if(!ui(e))return[];let r=[];for(let t of li(e,{withFileTypes:!0})){if(t.name==="runs")continue;let n=qr.join(e,t.name);if(!di(n))continue;let o=x(qr.join(n,"run.json"),void 0);o?.id&&r.push(o)}return r}function Qr(e){let{runsDir:r}=ir();Ft(qr.join(et(r,e.id),"run.json"),e)}function Ie(e){let{harnessRoot:r}=ir();return De(r,e)}function De(e,r){return et(G(e),v(r))}var ae=f(()=>{"use strict";Y();b()});import{existsSync as pi,readdirSync as mi}from"node:fs";import fi from"node:path";function rt(e){let r=new Set;for(let n of Object.keys(e.workers||{}))r.add(v(n));let t=fi.join(Ie(e.id),"workers");if(!pi(t))return[...r];for(let n of mi(t,{withFileTypes:!0}))n.isDirectory()&&r.add(v(n.name));return[...r]}var tt=f(()=>{"use strict";ae();b()});function nt(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let t=JSON.parse(r);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return null}return null}function en(e){let r=e.trim();if(!r)return null;let t=nt(r);if(t)return t;let n=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let u=nt(s[1]??"");u&&n.push(u)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let u=nt(r.slice(i,a+1));u&&n.push(u)}return n.length>0?n[n.length-1]:null}function rn(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?en(r)??(r.trim()||null):r;let t=typeof e.summary=="string"?e.summary.trim():"";if(!t)return null;let n=en(t);return n||t}var tn=f(()=>{"use strict"});import{existsSync as gi,readFileSync as hi}from"node:fs";function nn(e){return e==="complete"}function on(e){return nn(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function xe(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!gi(e))return r;let t=Date.now()+ki,n=new Date(t).toISOString(),o=hi(e,"utf8").split(`
6
6
  `).filter(Boolean);for(let s of o){let i=Ve(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let u=String(a.ts),l=Date.parse(u);Number.isFinite(l)&&l>t?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:u,clampedTo:n}):r.lastHeartbeatAt=u}a.phase!==void 0&&a.phase!==null&&(r.lastHeartbeatPhase=String(a.phase)),a.summary!==void 0&&a.summary!==null&&(r.lastHeartbeatSummary=String(a.summary)),nn(r.lastHeartbeatPhase)&&(r.terminalFinalResult=rn(a)),r.heartbeatBlocker=a.blocker?String(a.blocker):null,a.boxResourceSnapshot&&typeof a.boxResourceSnapshot=="object"&&!Array.isArray(a.boxResourceSnapshot)&&(r.lastBoxResourceSnapshot=a.boxResourceSnapshot),Array.isArray(a.prEvidence)&&(r.lastPrEvidence=a.prEvidence.filter(u=>!!u&&typeof u=="object"&&typeof u.prUrl=="string"))}return r}var ki,ur=f(()=>{"use strict";tn();b();ki=6e4});function an(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function lr(e){if(!e)return[];let r=[],t="",n,o=!1;for(let s of e){if(o){t+=s,o=!1;continue}if(s==="\\"){o=!0;continue}if(n){s===n?n=void 0:t+=s;continue}if(s==='"'||s==="'"){n=s;continue}if(/\s/.test(s)){t&&(r.push(t),t="");continue}t+=s}return t&&r.push(t),r}function un(e){let r=an(e[0]);return!!(r&&Ri.has(r))}function bi(e){let r=e.trim();return r.includes("/")?r.split("/").pop()??r:r}function Si(e){if(!e||e.includes("*"))return null;let r=bi(e);return!r||r.includes("/")?null:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(r)?r:null}function ln(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function ot(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function vi(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function xi(e){let r=[];for(let t=1;t<e.length;t+=1){let n=e[t];if(n){if(n==="--"){r.push(...e.slice(t+1));break}if(n.startsWith("-")){if(n.includes("="))continue;sn.has(n)&&(t+=1);continue}r.push(n)}}return r}function _i(e){let r=!1,t=e.map((o,s)=>{let i=vi(o),a=e[s-1];return a&&sn.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),n=xi(t);if(n.length===2){let[o,s]=n;if(ot(s))return{argv:[t[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};let i=Si(s);if(i)return{argv:[t[0]??"rg","-g",i,o,"."],changed:!0}}return r&&n.length===1?{argv:[...t,"."],changed:!0}:{argv:t,changed:r}}function cn(e){for(let r=1;r<e.length;r+=1){let t=e[r];if(t&&(t==="-c"||t==="-lc"||t==="-cl"||/^-[a-zA-Z]*c[a-zA-Z]*$/u.test(t)))return r+1}return-1}function cr(e){let r=e.trim();if(!r)return{command:r,wrapped:!1};let t=lr(r);if(!t.length)return{command:r,wrapped:!1};let n=an(t[0]);if(!n||!yi.has(n))return{command:r,wrapped:!1};let o=cn(t);if(o<0||o>=t.length)return{command:r,wrapped:!1};let s=t.slice(o).join(" ").trim();return s?{command:s,wrapped:!0}:{command:r,wrapped:!1}}function Ci(e,r){let t=e.trim(),n=lr(t),o=cn(n);if(o<0)return r;let s=n.slice(0,o).join(" "),i=r.includes("'")?`"${r.replace(/"/g,'\\"')}"`:`'${r}'`;return`${s} ${i}`}function Ei(e){let r=e.trim(),t=cr(r),n=lr(t.command);if(!n.length||!un(n))return{segment:r,changed:!1};let o=_i(n);if(!o.changed)return{segment:r,changed:!1};let s=o.argv.join(" ");return t.wrapped?{segment:Ci(r,s),changed:!0}:{segment:s,changed:!0}}function st(e){let r=e.trim();if(!r)return{command:r,changed:!1};let t=r.includes("&&")?" && ":r.includes("||")?" || ":"; ",n=r.split(/\s*(?:&&|\|\||;)\s*/u),o=!1,s=n.map(i=>{let a=Ei(i);return a.changed&&(o=!0),a.segment});return o?{command:s.join(t),changed:!0}:{command:r,changed:!1}}function dn(e){let r=cr(e).command,t=lr(r.trim());return t.length&&un(t)?!0:/\b(rg|ripgrep)\b/i.test(r)}function pn(e){if(!e)return{};let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(|$)/iu);if(r)return{pattern:r[1],target:r[2]?.trim()};let t=e.match(/^search\s+"(.+)"\s+in\s+(.+)$/iu);return t?{pattern:t[1],target:t[2]?.trim()}:{}}function wi(e){let{pattern:r,target:t}=pn(e);return r?ot(t)?{kind:"rg_exclude_syntax",pattern:r,target:t}:ln(t)?{kind:"bad_scope",pattern:r,target:t}:{kind:"not_repo_search",pattern:r,target:t}:{kind:"not_repo_search"}}function Ai(e){let{pattern:r,target:t}=pn(e);if(!r)return null;if(ot(t)){let n=`${t.trim()}/**`;return{command:`rg "${r}" -g '${n}' .`,changed:!0}}return t&&ln(t)?{command:`rg -g ${t} "${r}" .`,changed:!0}:null}function Pi(e){if(e.kind==="bad_scope"&&e.pattern&&e.target)return`Use \`rg -g '${e.target}' ${e.pattern} .\` from the repo root instead of treating ${e.target} as a folder.`;if(e.kind==="rg_exclude_syntax"&&e.pattern){let r=e.target?`${e.target.trim()}/**`:"!node_modules/**";return`Repo search scope \`${e.target??"!node_modules"}\` is not a valid ripgrep path. Use \`rg "${e.pattern}" -g '${r}' .\` from the repo root (exclude globs need a \`/**\` suffix).`}return e.kind==="no_matches"&&e.pattern?`No matches for "${e.pattern}". Try a broader pattern, drop overly short tokens, or search from the repo root with \`rg "${e.pattern}" .\`.`:null}function Oi(e){let r=e.match(/search\s+"(.+)"\s+in\s+([^()]+?)(?:\s*\(agent\)|\s*failed|$)/iu);return r?`search "${r[1]}" in ${r[2]?.trim()}`:null}function it(e){let r=e.meta?.trim()||(e.command?Oi(e.command):null)||null;if(r){let t=wi(r),n=Pi(t);if(n)return n;let o=Ai(r);if(o?.changed)return`Repo search used an invalid scope. Retry with: \`${o.command}\`.`}if(e.command&&/\b(rg|ripgrep)\b/i.test(e.command)){let t=st(e.command);if(t.changed)return`Ripgrep scope may be invalid. Retry with: \`${t.command}\`.`;if(e.exitCode===1)return"Ripgrep returned no matches (exit 1). Try a broader pattern or search from the repo root."}return null}var Ri,yi,sn,mn=f(()=>{"use strict";Ri=new Set(["rg","ripgrep","grep"]),yi=new Set(["bash","sh","dash","zsh"]),sn=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function Ne(e,r=200){let t=e.replace(/\s+/g," ").trim();return t.length>r?`${t.slice(0,r-1)}\u2026`:t}function Ni(e){let r=e.trim();if(!r)return null;if(r.startsWith("{"))try{return JSON.parse(r)}catch{}let t=r.indexOf("{"),n=r.lastIndexOf("}");if(t>=0&&n>t)try{return JSON.parse(r.slice(t,n+1))}catch{return null}return null}function We(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Wi(e){let r=e.metadata;if(!We(r))return null;let t=r.vulnerabilities;if(!We(t))return null;let n=s=>typeof t[s]=="number"?t[s]:0,o={info:n("info"),low:n("low"),moderate:n("moderate"),high:n("high"),critical:n("critical"),total:n("total")};return typeof t.total!="number"&&!o.critical&&!o.high&&!o.moderate&&!o.low&&!o.info?null:o}function Mi(e){let r=[];e.critical&&r.push(`${e.critical} critical`),e.high&&r.push(`${e.high} high`),e.moderate&&r.push(`${e.moderate} moderate`),e.low&&r.push(`${e.low} low`),e.info&&r.push(`${e.info} info`);let t=r.length?r.join(", "):"see report";return`npm audit: ${e.total} vulnerabilit${e.total===1?"y":"ies"} (${t}) \u2014 remediation required`}function Ti(e,r){let t=e.error;if(We(t)){let s=typeof t.summary=="string"?t.summary.trim():"",i=typeof t.code=="string"?t.code.trim():"";if(s)return i?`${i}: ${s}`:s;if(i)return i}let n=typeof e.message=="string"?e.message.trim():"";if(n)return n;let o=r.trim();return o?Ne(o.split(`
7
7
  `).find(Boolean)??o,160):"npm audit failed"}function Ui(e){let r=`${e.stdout}
@@ -1,2 +1 @@
1
- import{execFileSync as m,spawnSync as I}from"node:child_process";import*as R from"node:fs";import*as v from"node:path";import*as u from"node:fs";import{homedir as O}from"node:os";import*as c from"node:path";function P(e){return e.startsWith("~/")?c.join(O(),e.slice(2)):e}function p(e={}){let n=e.env??process.env,o=e.cwd??process.cwd(),r=e.homeDir??(n.HOME?.trim()||n.USERPROFILE?.trim()||O()),t=new Set,s=[],l=E=>{let i=c.resolve(P(E));t.has(i)||(t.add(i),s.push(i))},d=n.KYNVER_ENV_FILE?.trim();d&&l(d);let _=o;for(let E=0;E<12;E+=1){l(c.join(_,".env"));let i=c.dirname(_);if(i===_)break;_=i}l(c.join(r,".kynver",".env"));try{let E=c.join(r,".kynver","config.json");if(u.existsSync(E)){let A=JSON.parse(u.readFileSync(E,"utf8")).defaultRepo?.trim();A&&l(c.join(A,".env"))}}catch{}return s}function N(e){if(!e?.trim())return"(not set)";try{let n=new URL(e),o=(n.pathname||"").replace(/^\//,"").split("?")[0]||"(no database name)";return`${n.hostname} / ${o}`}catch{return"(invalid URL)"}}var b=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],k=new Set(b);var T=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],B=new Set(T);var K="KYNVER_NO_PROD_DB_CREDENTIALS";var C=new Set(["1","true","yes","on"]);function D(e){let n=e[K]?.trim().toLowerCase();return n!==void 0&&C.has(n)}var f=["KYNVER_PRODUCTION_DATABASE_URL","PRODUCTION_DATABASE_URL"],S=[...f];function a(e,n){return e[n]?.trim()||void 0}function h(e){if(!R.existsSync(e))return{};let n={},o=new Set(S);for(let r of R.readFileSync(e,"utf8").split(`
2
- `)){let t=r.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);if(!t||!o.has(t[1]))continue;let s=t[1];n[s]=t[2].replace(/^["']|["']$/g,"").trim()}return n}function Y(e){for(let n of f){let o=a(e,n);if(o)return{ok:!0,databaseUrl:o,source:`env:${n}`,hint:N(o)}}return null}function g(e,n){for(let o of p({cwd:e,env:n})){let r=h(o);for(let t of S){let s=r[t]?.trim();if(s)return{ok:!0,databaseUrl:s,source:`env-file:${t}`,hint:`${N(s)} (${v.basename(o)})`}}}return null}function L(e){let n=process.platform==="win32"?"neon.cmd":"neon",o=["connection-string",e.branch,"--prisma","-o","json","--no-color","--no-analytics"];e.projectId&&o.push("--project-id",e.projectId),e.databaseName&&o.push("--database-name",e.databaseName),e.roleName&&o.push("--role-name",e.roleName),e.pooled&&o.push("--pooled");let r;try{let t=I(n,o,{encoding:"utf8",env:process.env,timeout:3e4});if(t.status!==0)return null;r=(t.stdout||"").trim()}catch{try{r=m("neonctl",o,{encoding:"utf8",env:process.env,timeout:3e4}).trim()}catch{return null}}if(!r)return null;try{let t=JSON.parse(r),s=typeof t.connection_uri=="string"&&t.connection_uri||typeof t.connection_string=="string"&&t.connection_string||typeof t.connectionString=="string"&&t.connectionString;if(s)return s}catch{}return/^postgres(ql)?:\/\//i.test(r)?r:null}function w(e,n){let o=a(e,"KYNVER_NEON_BRANCH")||a(e,"NEON_BRANCH")||"production",r=n({branch:o,projectId:a(e,"KYNVER_NEON_PROJECT_ID")||a(e,"NEON_PROJECT_ID"),databaseName:a(e,"KYNVER_NEON_DATABASE_NAME")||a(e,"NEON_DATABASE_NAME"),roleName:a(e,"KYNVER_NEON_ROLE_NAME")||a(e,"NEON_ROLE_NAME"),pooled:a(e,"KYNVER_NEON_POOLED")==="1"||a(e,"NEON_POOLED")==="1"});return r?{ok:!0,databaseUrl:r,source:"neon-cli",hint:N(r)}:null}function U(e={}){let n=e.env??process.env;if(D(n))return{ok:!1,reason:"Production database credentials are blocked in this harness worker (KYNVER_NO_PROD_DB_CREDENTIALS). Review workers must use scoped AgentOS APIs \u2014 not direct prod DB access.",attempted:[]};let o=e.cwd??process.cwd(),r=e.neonConnectionString??L,t=[],s=p({cwd:o,env:n}),l=w(n,r);if(t.push("neon-cli"),l)return l;for(let i of f)t.push(`env:${i}`);let d=Y(n);if(d)return d;for(let i of S)t.push(`env-file:${i}`);let _=g(o,n);return _||{ok:!1,reason:"No production database credentials found. Authenticate Neon CLI (`neon auth`), set KYNVER_NEON_* / NEON_* project hints, or provide PRODUCTION_DATABASE_URL / KYNVER_PRODUCTION_DATABASE_URL (process env, KYNVER_ENV_FILE, ~/.kynver/.env, or selective .env keys in the repo / defaultRepo checkout)."+(s.length>0?` Searched env files: ${s.slice(0,6).join(", ")}${s.length>6?"\u2026":""}.`:""),attempted:t}}export{U as resolveProductionDatabaseUrl};
1
+ import{execFileSync as m,spawnSync as I}from"node:child_process";import*as R from"node:fs";import*as v from"node:path";import*as u from"node:fs";import{homedir as O}from"node:os";import*as c from"node:path";function P(e){return e.startsWith("~/")?c.join(O(),e.slice(2)):e}function p(e={}){let n=e.env??process.env,o=e.cwd??process.cwd(),r=e.homeDir??(n.HOME?.trim()||n.USERPROFILE?.trim()||O()),t=new Set,s=[],l=E=>{let i=c.resolve(P(E));t.has(i)||(t.add(i),s.push(i))},d=n.KYNVER_ENV_FILE?.trim();d&&l(d);let _=o;for(let E=0;E<12;E+=1){l(c.join(_,".env"));let i=c.dirname(_);if(i===_)break;_=i}l(c.join(r,".kynver",".env"));try{let E=c.join(r,".kynver","config.json");if(u.existsSync(E)){let A=JSON.parse(u.readFileSync(E,"utf8")).defaultRepo?.trim();A&&l(c.join(A,".env"))}}catch{}return s}function N(e){if(!e?.trim())return"(not set)";try{let n=new URL(e),o=(n.pathname||"").replace(/^\//,"").split("?")[0]||"(no database name)";return`${n.hostname} / ${o}`}catch{return"(invalid URL)"}}var b=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],k=new Set(b);var T=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],B=new Set(T);var K="KYNVER_NO_PROD_DB_CREDENTIALS";var C=new Set(["1","true","yes","on"]);function D(e){let n=e[K]?.trim().toLowerCase();return n!==void 0&&C.has(n)}var f=["KYNVER_PRODUCTION_DATABASE_URL","PRODUCTION_DATABASE_URL"],S=[...f];function a(e,n){return e[n]?.trim()||void 0}function h(e){if(!R.existsSync(e))return{};let n={},o=new Set(S);for(let r of R.readFileSync(e,"utf8").split(/\r?\n/)){let t=r.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);if(!t||!o.has(t[1]))continue;let s=t[1];n[s]=t[2].replace(/^["']|["']$/g,"").replace(/\r$/,"").trim()}return n}function Y(e){for(let n of f){let o=a(e,n);if(o)return{ok:!0,databaseUrl:o,source:`env:${n}`,hint:N(o)}}return null}function g(e,n){for(let o of p({cwd:e,env:n})){let r=h(o);for(let t of S){let s=r[t]?.trim();if(s)return{ok:!0,databaseUrl:s,source:`env-file:${t}`,hint:`${N(s)} (${v.basename(o)})`}}}return null}function L(e){let n=process.platform==="win32"?"neon.cmd":"neon",o=["connection-string",e.branch,"--prisma","-o","json","--no-color","--no-analytics"];e.projectId&&o.push("--project-id",e.projectId),e.databaseName&&o.push("--database-name",e.databaseName),e.roleName&&o.push("--role-name",e.roleName),e.pooled&&o.push("--pooled");let r;try{let t=I(n,o,{encoding:"utf8",env:process.env,timeout:3e4});if(t.status!==0)return null;r=(t.stdout||"").trim()}catch{try{r=m("neonctl",o,{encoding:"utf8",env:process.env,timeout:3e4}).trim()}catch{return null}}if(!r)return null;try{let t=JSON.parse(r),s=typeof t.connection_uri=="string"&&t.connection_uri||typeof t.connection_string=="string"&&t.connection_string||typeof t.connectionString=="string"&&t.connectionString;if(s)return s}catch{}return/^postgres(ql)?:\/\//i.test(r)?r:null}function w(e,n){let o=a(e,"KYNVER_NEON_BRANCH")||a(e,"NEON_BRANCH")||"production",r=n({branch:o,projectId:a(e,"KYNVER_NEON_PROJECT_ID")||a(e,"NEON_PROJECT_ID"),databaseName:a(e,"KYNVER_NEON_DATABASE_NAME")||a(e,"NEON_DATABASE_NAME"),roleName:a(e,"KYNVER_NEON_ROLE_NAME")||a(e,"NEON_ROLE_NAME"),pooled:a(e,"KYNVER_NEON_POOLED")==="1"||a(e,"NEON_POOLED")==="1"});return r?{ok:!0,databaseUrl:r,source:"neon-cli",hint:N(r)}:null}function U(e={}){let n=e.env??process.env;if(D(n))return{ok:!1,reason:"Production database credentials are blocked in this harness worker (KYNVER_NO_PROD_DB_CREDENTIALS). Review workers must use scoped AgentOS APIs \u2014 not direct prod DB access.",attempted:[]};let o=e.cwd??process.cwd(),r=e.neonConnectionString??L,t=[],s=p({cwd:o,env:n}),l=w(n,r);if(t.push("neon-cli"),l)return l;for(let i of f)t.push(`env:${i}`);let d=Y(n);if(d)return d;for(let i of S)t.push(`env-file:${i}`);let _=g(o,n);return _||{ok:!1,reason:"No production database credentials found. Authenticate Neon CLI (`neon auth`), set KYNVER_NEON_* / NEON_* project hints, or provide PRODUCTION_DATABASE_URL / KYNVER_PRODUCTION_DATABASE_URL (process env, KYNVER_ENV_FILE, ~/.kynver/.env, or selective .env keys in the repo / defaultRepo checkout)."+(s.length>0?` Searched env files: ${s.slice(0,6).join(", ")}${s.length>6?"\u2026":""}.`:""),attempted:t}}export{U as resolveProductionDatabaseUrl};
@@ -1 +1 @@
1
- var r=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};import{homedir as K}from"node:os";import D from"node:path";function _e(e){return e==="~"?K():e.startsWith("~/")||e.startsWith("~\\")?D.join(K(),e.slice(2)):e}function u(e){return D.resolve(_e(e))}var c=r(()=>{"use strict"});function T(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var s=r(()=>{"use strict"});var ve,cr,Ee,dr,W=r(()=>{"use strict";ve=["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"],cr=new Set(ve),Ee=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],dr=new Set(Ee)});import{spawnSync as Ae}from"node:child_process";function B(e,t){try{let n=Ae("git",t,T({cwd:e,encoding:"utf8"}));return{status:n.status,stdout:n.stdout||"",stderr:n.stderr||"",error:n.error?n.error.message:null}}catch(n){return{status:null,stdout:"",stderr:"",error:n.message}}}var k=r(()=>{"use strict";c();s();W()});import{existsSync as S,readFileSync as F}from"node:fs";import{homedir as Oe}from"node:os";import l from"node:path";import{fileURLToPath as we}from"node:url";function Pe(e){let t=l.join(e,"package.json");if(!S(t))return null;try{let n=JSON.parse(F(t,"utf8"));return typeof n.name=="string"?n.name.trim():null}catch{return null}}function Ne(e){return Pe(e)==="kynver"}function M(e){let t=l.resolve(e);if(!S(t))return null;let n=B(t,["rev-parse","--show-toplevel"]);if(n.status!==0)return null;let o=n.stdout.trim();return o.length?l.resolve(o):null}function Ue(e=import.meta.url){let t=l.dirname(we(e));for(let n=0;n<8;n+=1){let o=l.join(t,"package.json");if(S(o))try{if(JSON.parse(F(o,"utf8")).name==="@kynver-app/runtime")return t}catch{}let i=l.dirname(t);if(i===t)break;t=i}return null}function x(e,t,n,o,i){if(!n)return;let a=l.resolve(n);e.has(a)||(i?.requireMonorepo??!0)&&!Ne(a)||(e.add(a),t.push({repo:a,source:o}))}function Ke(e){let t=e?.cwd??process.cwd(),n=new Set,o=[];x(n,o,M(t),"cwd_git",{requireMonorepo:!1});let i=Ue(e?.runtimeModuleUrl??import.meta.url);i&&x(n,o,M(i),"runtime_checkout");let a=Oe();for(let Se of Ie)x(n,o,u(l.join(a,Se)),"well_known_path");return o}function _(e){return Ke(e)[0]??null}var Ie,p=r(()=>{"use strict";k();c();Ie=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var d=r(()=>{"use strict"});var g=r(()=>{"use strict"});var $=r(()=>{"use strict"});var Ir,Pr,v=r(()=>{"use strict";Ir=25*1024*1024*1024,Pr=12*1024*1024*1024});var Tr,Wr,L=r(()=>{"use strict";v();Tr=5*1024*1024*1024,Wr=10*1024*1024*1024});var Hr,jr,E=r(()=>{"use strict";L();v();Hr=30*1024*1024*1024,jr=15*1024*1024*1024});var j=r(()=>{"use strict";s()});import De from"node:path";var Qr,C=r(()=>{"use strict";c();j();Qr=De.join(".openclaw","harness")});var y=r(()=>{"use strict";m();d();g();b();C()});var G=r(()=>{"use strict";m();C();y();s()});var O=r(()=>{"use strict";G();s()});var z=r(()=>{"use strict";O();s()});var J=r(()=>{"use strict"});var q=r(()=>{"use strict";J();s()});var X=r(()=>{"use strict"});var Z=r(()=>{"use strict";X()});var Q=r(()=>{"use strict";Z();s()});var ee=r(()=>{"use strict"});var re=r(()=>{"use strict"});var ne=r(()=>{"use strict"});var w=r(()=>{"use strict"});var te=r(()=>{"use strict"});var oe=r(()=>{"use strict";w();te()});var se=r(()=>{"use strict";q();Q();ee();re();k();ne();oe();w();s()});var ie=r(()=>{"use strict";se()});var He,je,ae=r(()=>{"use strict";$();m();d();g();b();E();O();z();ie();s();He=500*1024*1024,je=4*1024*1024*1024});var b=r(()=>{"use strict";ae()});import{homedir as Ye}from"node:os";import Ve from"node:path";var ue,I=r(()=>{"use strict";ue=Ve.join(Ye(),".kynver",".env")});var le=r(()=>{"use strict"});var ce=r(()=>{"use strict";le()});var de=r(()=>{"use strict"});var P=r(()=>{"use strict";ce();de()});var me=r(()=>{"use strict"});var fe=r(()=>{"use strict";me()});var R=r(()=>{"use strict";I();c();m();P();fe()});var he=r(()=>{"use strict";d();d()});var ye=r(()=>{"use strict";I();P();R()});var Re=r(()=>{"use strict";p();d();he();m();R();ye();s();y()});import{existsSync as Xe,mkdirSync as Jo,readFileSync as Ze,writeFileSync as qo}from"node:fs";import{homedir as Qe,totalmem as Zo}from"node:os";import N from"node:path";function er(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:u(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:u(e.defaultRepo.trim())}:{}}}function f(){if(!Xe(ke))return{};try{return er(JSON.parse(Ze(ke,"utf8")))}catch{return{}}}var xe,ke,cs,ds,ms,m=r(()=>{"use strict";p();c();s();d();g();b();E();R();Re();y();xe=N.join(Qe(),".kynver"),ke=N.join(xe,"config.json"),cs=N.join(xe,"credentials");ds=500*1024*1024,ms=4*1024*1024*1024});m();p();c();import rr from"node:path";function nr(e){return rr.resolve(u(e.trim()))}function U(e,t,n){let o=e?.trim();return o?{repo:nr(o),source:t,persistedInConfig:n}:null}function tr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function or(e={}){let t=e.env??process.env,n=e.config??f(),o=U(n.defaultRepo,"config",!0);if(o)return o;let i=U(t.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(i)return i;let a=U(t.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return a||tr(_({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{or as resolveDefaultRepo};
1
+ var r=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};import{homedir as K}from"node:os";import D from"node:path";function _e(e){return e==="~"?K():e.startsWith("~/")||e.startsWith("~\\")?D.join(K(),e.slice(2)):e}function u(e){return D.resolve(_e(e))}var c=r(()=>{"use strict"});function T(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var s=r(()=>{"use strict"});var ve,cr,Ee,dr,W=r(()=>{"use strict";ve=["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"],cr=new Set(ve),Ee=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],dr=new Set(Ee)});import{spawnSync as Ae}from"node:child_process";function B(e,t){try{let n=Ae("git",t,T({cwd:e,encoding:"utf8"}));return{status:n.status,stdout:n.stdout||"",stderr:n.stderr||"",error:n.error?n.error.message:null}}catch(n){return{status:null,stdout:"",stderr:"",error:n.message}}}var k=r(()=>{"use strict";c();s();W()});import{existsSync as S,readFileSync as F}from"node:fs";import{homedir as Oe}from"node:os";import l from"node:path";import{fileURLToPath as we}from"node:url";function Pe(e){let t=l.join(e,"package.json");if(!S(t))return null;try{let n=JSON.parse(F(t,"utf8"));return typeof n.name=="string"?n.name.trim():null}catch{return null}}function Ne(e){return Pe(e)==="kynver"}function M(e){let t=l.resolve(e);if(!S(t))return null;let n=B(t,["rev-parse","--show-toplevel"]);if(n.status!==0)return null;let o=n.stdout.trim();return o.length?l.resolve(o):null}function Ue(e=import.meta.url){let t=l.dirname(we(e));for(let n=0;n<8;n+=1){let o=l.join(t,"package.json");if(S(o))try{if(JSON.parse(F(o,"utf8")).name==="@kynver-app/runtime")return t}catch{}let i=l.dirname(t);if(i===t)break;t=i}return null}function x(e,t,n,o,i){if(!n)return;let a=l.resolve(n);e.has(a)||(i?.requireMonorepo??!0)&&!Ne(a)||(e.add(a),t.push({repo:a,source:o}))}function Ke(e){let t=e?.cwd??process.cwd(),n=new Set,o=[];x(n,o,M(t),"cwd_git",{requireMonorepo:!1});let i=Ue(e?.runtimeModuleUrl??import.meta.url);i&&x(n,o,M(i),"runtime_checkout");let a=Oe();for(let Se of Ie)x(n,o,u(l.join(a,Se)),"well_known_path");return o}function _(e){return Ke(e)[0]??null}var Ie,p=r(()=>{"use strict";k();c();Ie=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var d=r(()=>{"use strict"});var g=r(()=>{"use strict"});var $=r(()=>{"use strict"});var Ir,Pr,v=r(()=>{"use strict";Ir=25*1024*1024*1024,Pr=12*1024*1024*1024});var Tr,Wr,L=r(()=>{"use strict";v();Tr=5*1024*1024*1024,Wr=10*1024*1024*1024});var Hr,jr,E=r(()=>{"use strict";L();v();Hr=30*1024*1024*1024,jr=15*1024*1024*1024});var j=r(()=>{"use strict";s()});import De from"node:path";var Qr,C=r(()=>{"use strict";c();j();Qr=De.join(".openclaw","harness")});var y=r(()=>{"use strict";m();d();g();b();C()});var G=r(()=>{"use strict";m();C();y();s()});var O=r(()=>{"use strict";G();s()});var z=r(()=>{"use strict";O();s()});var J=r(()=>{"use strict"});var q=r(()=>{"use strict";J();s()});var X=r(()=>{"use strict"});var Z=r(()=>{"use strict";X()});var Q=r(()=>{"use strict";Z();s()});var ee=r(()=>{"use strict"});var re=r(()=>{"use strict"});var ne=r(()=>{"use strict"});var w=r(()=>{"use strict"});var te=r(()=>{"use strict"});var oe=r(()=>{"use strict";w();te()});var se=r(()=>{"use strict";q();Q();ee();re();k();ne();oe();w();s()});var ie=r(()=>{"use strict";se()});var He,je,ae=r(()=>{"use strict";$();m();d();g();b();E();O();z();ie();s();He=500*1024*1024,je=4*1024*1024*1024});var b=r(()=>{"use strict";ae()});import{homedir as Ye}from"node:os";import Ve from"node:path";var ue,I=r(()=>{"use strict";ue=Ve.join(Ye(),".kynver",".env")});var le=r(()=>{"use strict"});var ce=r(()=>{"use strict";le()});var de=r(()=>{"use strict"});var P=r(()=>{"use strict";ce();de()});var me=r(()=>{"use strict"});var fe=r(()=>{"use strict";me()});var R=r(()=>{"use strict";I();c();m();P();fe()});var he=r(()=>{"use strict";d();d()});var ye=r(()=>{"use strict";I();P();R()});var Re=r(()=>{"use strict";p();d();he();m();R();ye();s();y()});import{existsSync as Xe,mkdirSync as Jo,readFileSync as Ze,writeFileSync as qo}from"node:fs";import{homedir as Qe,totalmem as Zo}from"node:os";import N from"node:path";function er(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:u(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:u(e.defaultRepo.trim())}:{}}}function f(){if(!Xe(ke))return{};try{return er(JSON.parse(Ze(ke,"utf8")))}catch{return{}}}var xe,ke,cs,ds,ms,m=r(()=>{"use strict";p();c();s();d();g();b();E();R();Re();y();xe=N.join(Qe(),".kynver"),ke=N.join(xe,"config.json"),cs=N.join(xe,"credentials");ds=500*1024*1024,ms=4*1024*1024*1024});m();p();c();import rr from"node:path";function nr(e){return rr.resolve(u(e.trim()))}function U(e,t,n){let o=e?.trim();return o?{repo:nr(o),source:t,persistedInConfig:n}:null}function tr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function or(e={}){let t=e.env??process.env,n=e.config??f(),o=U(n.defaultRepo,"config",!0);if(o)return o;let i=U(t.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(i)return i;let a=U(t.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return a||tr(_({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{or as resolveDefaultRepo};
@@ -1,5 +1,5 @@
1
- var a=(e,r,t)=>()=>{if(t)throw t[0];try{return e&&(r=e(e=0)),r}catch(n){throw t=[n],n}};import{homedir as he}from"node:os";import ye from"node:path";function xr(e){return e==="~"?he():e.startsWith("~/")||e.startsWith("~\\")?ye.join(he(),e.slice(2)):e}function v(e){return ye.resolve(xr(e))}var x=a(()=>{"use strict"});var d=a(()=>{"use strict"});var Sr,Zt,Er,en,G=a(()=>{"use strict";Sr=["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"],Zt=new Set(Sr),Er=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],en=new Set(Er)});var q=a(()=>{"use strict";x();d();G()});var z=a(()=>{"use strict";q();x()});var b=a(()=>{"use strict"});var N=a(()=>{"use strict"});var Re=a(()=>{"use strict"});var gn,hn,J=a(()=>{"use strict";gn=25*1024*1024*1024,hn=12*1024*1024*1024});var _n,vn,be=a(()=>{"use strict";J();_n=5*1024*1024*1024,vn=10*1024*1024*1024});var An,wn,X=a(()=>{"use strict";be();J();An=30*1024*1024*1024,wn=15*1024*1024*1024});var _e=a(()=>{"use strict";d()});import Ar from"node:path";var Dn,Q=a(()=>{"use strict";x();_e();Dn=Ar.join(".openclaw","harness")});var K=a(()=>{"use strict";k();b();N();W();Q()});var Se=a(()=>{"use strict";k();Q();K();d()});var ee=a(()=>{"use strict";Se();d()});var Ee=a(()=>{"use strict";ee();d()});var Oe=a(()=>{"use strict"});var Ce=a(()=>{"use strict";Oe();d()});var Ae=a(()=>{"use strict"});var we=a(()=>{"use strict";Ae()});var Pe=a(()=>{"use strict";we();d()});var Ie=a(()=>{"use strict"});var Ne=a(()=>{"use strict"});var Te=a(()=>{"use strict"});var re=a(()=>{"use strict"});var Ke=a(()=>{"use strict"});var We=a(()=>{"use strict";re();Ke()});var Be=a(()=>{"use strict";Ce();Pe();Ie();Ne();q();Te();We();re();d()});var Me=a(()=>{"use strict";Be()});var Br,Mr,De=a(()=>{"use strict";Re();k();b();N();W();X();ee();Ee();Me();d();Br=500*1024*1024,Mr=4*1024*1024*1024});var W=a(()=>{"use strict";De()});import{homedir as Dr}from"node:os";import Ur from"node:path";var Ue,te=a(()=>{"use strict";Ue=Ur.join(Dr(),".kynver",".env")});var Le=a(()=>{"use strict"});var Fe=a(()=>{"use strict";Le()});var $e=a(()=>{"use strict"});var ne=a(()=>{"use strict";Fe();$e()});var He=a(()=>{"use strict"});var je=a(()=>{"use strict";He()});var B=a(()=>{"use strict";te();x();k();ne();je()});var Ye=a(()=>{"use strict";b();b()});var Ve=a(()=>{"use strict";te();ne();B()});var Ge=a(()=>{"use strict";z();b();Ye();k();B();Ve();d();K()});import{existsSync as Gr,mkdirSync as Ks,readFileSync as qr,writeFileSync as Ws}from"node:fs";import{homedir as zr,totalmem as Ms}from"node:os";import oe from"node:path";function Jr(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function S(){if(!Gr(qe))return{};try{return Jr(JSON.parse(qr(qe,"utf8")))}catch{return{}}}var ze,qe,zs,Js,Xs,k=a(()=>{"use strict";z();x();d();b();N();W();X();B();Ge();K();ze=oe.join(zr(),".kynver"),qe=oe.join(ze,"config.json"),zs=oe.join(ze,"credentials");Js=500*1024*1024,Xs=4*1024*1024*1024});var Rr=/^claude[-_]/i,br=/^(?:opus|sonnet|haiku)\b/i;function fe(e){let r=e.trim();return Rr.test(r)||br.test(r)}function ge(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function Y(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function kr(e){return ge(e)?"codex":fe(e)?"claude":(Y(e),"cursor")}function _r(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==="cursor"||n==="composer"?{provider:"cursor",model:o,rule:"executor_ref:provider_cursor"}:null:null}function vr(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?fe(n)||ge(n)||Y(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 h(e){let r=typeof e=="string"?e.trim():"";return r?_r(r)??vr(r):null}function V(e){let r=h(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!Y(r.model)):!1}k();var Je={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 E(e){return Je[e]}function Xe(){return Object.values(Je)}import{existsSync as Qr}from"node:fs";import{homedir as Zr}from"node:os";import C from"node:path";import{createHash as Qe}from"node:crypto";import{statSync as Xr}from"node:fs";import{spawnSync as Ze}from"node:child_process";function y(e){try{let r=Xr(e),t=`${e}|${r.size}|${r.mtimeMs}`;return Qe("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function O(e){return Qe("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function p(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function m(e,r,t={}){let n=t.timeoutMs??8e3;try{let o=Ze(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 i=(o.stderr||o.stdout||"").trim(),s=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:i?`${s}: ${i.slice(0,200)}`:s}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function M(e,r,t={}){let n=t.timeoutMs??8e3;try{return Ze(e,r,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:t.okNote??`${e} authenticated`}:{ok:!1,note:t.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var et="codex";function rt(){let e=Zr();return[process.env.CODEX_HOME?.trim()?C.join(C.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,C.join(e,".codex","auth.json"),C.join(e,".config","codex","auth.json")].filter(t=>!!t)}function tt(e){return C.dirname(e)}function nt(e){let r,t;for(let n of rt()){if(!Qr(n))continue;r??=n;let o=m(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:tt(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??m(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function er(e=new Date().toISOString()){let r=p(et,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:O("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}=nt(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as ot}from"node:fs";import{homedir as it}from"node:os";import ie from"node:path";function st(){let e=process.env.HERMES_HOME?.trim(),r=e?ie.resolve(e):ie.join(it(),".hermes");return ie.join(r,"auth.json")}function D(e=new Date().toISOString()){let r=p("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=m(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=st(),o=ot(n),i=M(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),s=t.ok&&i.ok;return{path:"hermes_openai_codex",ready:s,authSource:s?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:s?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,i.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function A(e=new Date().toISOString()){let r=er(e);if(r.ready)return{...r,path:"codex_cli"};let t=D(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 rr=["low","medium","high"],tr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function nr(e,r){let t=E(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function at(e,r){let t=E(e.providerId),n=E(r.providerId),o=rr.indexOf(t.costTier)-rr.indexOf(n.costTier);if(o!==0)return o;let i=tr[e.binding.authSource]-tr[r.binding.authSource];return i!==0?i:e.providerId.localeCompare(r.providerId)}function se(e){let r=Xe().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&nr(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(at)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let i=e.inventory.bindings[o],s;return nr(o,e.riskClass)?i.ready||(s=i.note??`${o} not bound`):s=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:s}}import{existsSync as lt}from"node:fs";import{homedir as ct}from"node:os";import ut from"node:path";var dt="claude";function pt(){let e=ct();return[ut.join(e,".claude",".credentials.json")]}function or(e=new Date().toISOString()){let r=p(dt,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:O("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=m(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=pt().find(s=>lt(s)),o=M(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),i=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"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 mt}from"node:fs";import{homedir as ft}from"node:os";import ae from"node:path";var gt="agent";function ht(){let e=ft(),r=[ae.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(ae.join(t,"cursor-agent","auth.json")),n&&r.push(ae.join(n,"cursor","auth.json"))}return r}function ir(e=new Date().toISOString()){let r=p(gt,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:O("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=m(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=ht().find(i=>mt(i)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?y(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 yt,readFileSync as Rt}from"node:fs";import{homedir as bt}from"node:os";import le from"node:path";var kt=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function _t(){let e=process.env.HERMES_HOME?.trim(),r=e?le.resolve(e):le.join(bt(),".hermes");return le.join(r,".env")}function vt(e){try{let r=Rt(e,"utf8"),t=[];for(let n of kt)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function sr(e=new Date().toISOString()){let r=p("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=m(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=_t(),o=yt(n),i=o?vt(n):[],l=i.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?y(n):void 0,checkedAt:e,note:u?`Hermes profile bound (${i.length?`keys: ${i.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function ar(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=A(r),n={codex:t,cursor:ir(r),claude:or(r)},o=Object.values(n).filter(i=>i.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:sr(r),hermesOpenAiCodex:D(r),codexAdapterPath:t.path,readyCount:o}}var xt=[/\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],St=[/\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 ce(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Et(e){let r=ce(e,"executorRef").toLowerCase(),t=ce(e,"title").toLowerCase(),n=ce(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 ke}from"node:os";import be from"node:path";function Ar(e){return e==="~"?ke():e.startsWith("~/")||e.startsWith("~\\")?be.join(ke(),e.slice(2)):e}function v(e){return be.resolve(Ar(e))}var x=a(()=>{"use strict"});var d=a(()=>{"use strict"});var wr,sn,Pr,an,X=a(()=>{"use strict";wr=["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"],sn=new Set(wr),Pr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],an=new Set(Pr)});var Q=a(()=>{"use strict";x();d();X()});var Z=a(()=>{"use strict";Q();x()});var _=a(()=>{"use strict"});var K=a(()=>{"use strict"});var ve=a(()=>{"use strict"});var bn,vn,ee=a(()=>{"use strict";bn=25*1024*1024*1024,vn=12*1024*1024*1024});var Cn,An,xe=a(()=>{"use strict";ee();Cn=5*1024*1024*1024,An=10*1024*1024*1024});var Wn,Kn,re=a(()=>{"use strict";xe();ee();Wn=30*1024*1024*1024,Kn=15*1024*1024*1024});var Se=a(()=>{"use strict";d()});import Tr from"node:path";var jn,te=a(()=>{"use strict";x();Se();jn=Tr.join(".openclaw","harness")});var B=a(()=>{"use strict";k();_();K();D();te()});var Ae=a(()=>{"use strict";k();te();B();d()});var oe=a(()=>{"use strict";Ae();d()});var we=a(()=>{"use strict";oe();d()});var Pe=a(()=>{"use strict"});var Ie=a(()=>{"use strict";Pe();d()});var Ne=a(()=>{"use strict"});var Te=a(()=>{"use strict";Ne()});var We=a(()=>{"use strict";Te();d()});var Ke=a(()=>{"use strict"});var Me=a(()=>{"use strict"});var Be=a(()=>{"use strict"});var ie=a(()=>{"use strict"});var De=a(()=>{"use strict"});var Ue=a(()=>{"use strict";ie();De()});var Le=a(()=>{"use strict";Ie();We();Ke();Me();Q();Be();Ue();ie();d()});var Fe=a(()=>{"use strict";Le()});var Fr,$r,$e=a(()=>{"use strict";ve();k();_();K();D();re();oe();we();Fe();d();Fr=500*1024*1024,$r=4*1024*1024*1024});var D=a(()=>{"use strict";$e()});import{homedir as Hr}from"node:os";import jr from"node:path";var He,se=a(()=>{"use strict";He=jr.join(Hr(),".kynver",".env")});var je=a(()=>{"use strict"});var Ye=a(()=>{"use strict";je()});var Ve=a(()=>{"use strict"});var ae=a(()=>{"use strict";Ye();Ve()});var Ge=a(()=>{"use strict"});var qe=a(()=>{"use strict";Ge()});var U=a(()=>{"use strict";se();x();k();ae();qe()});var ze=a(()=>{"use strict";_();_()});var Je=a(()=>{"use strict";se();ae();U()});var Xe=a(()=>{"use strict";Z();_();ze();k();U();Je();d();B()});import{existsSync as Qr,mkdirSync as Ls,readFileSync as Zr,writeFileSync as Fs}from"node:fs";import{homedir as et,totalmem as Hs}from"node:os";import le from"node:path";function rt(e){return{...e,...e.harnessRoot?.trim()?{harnessRoot:v(e.harnessRoot.trim())}:{},...e.defaultRepo?.trim()?{defaultRepo:v(e.defaultRepo.trim())}:{}}}function E(){if(!Qr(Qe))return{};try{return rt(JSON.parse(Zr(Qe,"utf8")))}catch{return{}}}var Ze,Qe,ra,ta,na,k=a(()=>{"use strict";Z();x();d();_();K();D();re();U();Xe();B();Ze=le.join(et(),".kynver"),Qe=le.join(Ze,"config.json"),ra=le.join(Ze,"credentials");ta=500*1024*1024,na=4*1024*1024*1024});var xr=/^claude[-_]/i,Er=/^(?:opus|sonnet|haiku)\b/i;function ye(e){let r=e.trim();return xr.test(r)||Er.test(r)}function Re(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 _e(e){return e.trim().toLowerCase().startsWith("gemini-")}function Sr(e){return Re(e)?"codex":ye(e)?"claude":_e(e)?"gemini":(z(e),"cursor")}function Or(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==="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 Cr(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?ye(n)||Re(n)||z(n)||_e(n)?{lane:t,model:n,provider:Sr(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?Or(r)??Cr(r):null}function J(e){let r=m(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!z(r.model)):!1}k();var er={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 S(e){return er[e]}function rr(){return Object.values(er)}import{existsSync as nt}from"node:fs";import{homedir as ot}from"node:os";import P from"node:path";import{createHash as tr}from"node:crypto";import{statSync as tt}from"node:fs";import{spawnSync as nr}from"node:child_process";function y(e){try{let r=tt(e),t=`${e}|${r.size}|${r.mtimeMs}`;return tr("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function O(e){return tr("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function f(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function g(e,r,t={}){let n=t.timeoutMs??8e3;try{let o=nr(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 i=(o.stderr||o.stdout||"").trim(),s=t.failPrefix??`${e} ${r.join(" ")} failed`;return{ok:!1,note:i?`${s}: ${i.slice(0,200)}`:s}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} probe failed`}}}function L(e,r,t={}){let n=t.timeoutMs??8e3;try{return nr(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 it="codex";function st(){let e=ot();return[process.env.CODEX_HOME?.trim()?P.join(P.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,P.join(e,".codex","auth.json"),P.join(e,".config","codex","auth.json")].filter(t=>!!t)}function at(e){return P.dirname(e)}function lt(e){let r,t;for(let n of st()){if(!nt(n))continue;r??=n;let o=g(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:at(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??g(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function or(e=new Date().toISOString()){let r=f(it,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:O("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}=lt(r),o=!!t&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:t?y(t):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,t?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as ut}from"node:fs";import{homedir as ct}from"node:os";import ue from"node:path";function dt(){let e=process.env.HERMES_HOME?.trim(),r=e?ue.resolve(e):ue.join(ct(),".hermes");return ue.join(r,"auth.json")}function F(e=new Date().toISOString()){let r=f("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=g(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=dt(),o=ut(n),i=L(r,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),s=t.ok&&i.ok;return{path:"hermes_openai_codex",ready:s,authSource:s?"subscription_hermes":"none",sessionFingerprint:o?y(n):void 0,checkedAt:e,note:s?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[t.note,i.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function I(e=new Date().toISOString()){let r=or(e);if(r.ready)return{...r,path:"codex_cli"};let t=F(e);return t.ready?{providerId:"codex",ready:!0,authSource:t.authSource,sessionFingerprint:t.sessionFingerprint,checkedAt:t.checkedAt,note:t.note,path:"hermes_openai_codex",hermesOpenAiCodex:t}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:t,note:[r.note,t.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}var ir=["low","medium","high"],sr={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function ar(e,r){let t=S(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function pt(e,r){let t=S(e.providerId),n=S(r.providerId),o=ir.indexOf(t.costTier)-ir.indexOf(n.costTier);if(o!==0)return o;let i=sr[e.binding.authSource]-sr[r.binding.authSource];return i!==0?i:e.providerId.localeCompare(r.providerId)}function ce(e){let r=rr().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&ar(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(pt)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let i=e.inventory.bindings[o],s;return ar(o,e.riskClass)?i.ready||(s=i.note??`${o} not bound`):s=`${e.riskClass} orchestration requires privileged-capable provider`,{providerId:n.providerId,binding:n.binding,escalatedFrom:o,escalatedReason:s}}import{existsSync as mt}from"node:fs";import{homedir as ft}from"node:os";import gt from"node:path";var ht="claude";function yt(){let e=ft();return[gt.join(e,".claude",".credentials.json")]}function lr(e=new Date().toISOString()){let r=f(ht,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!1,authSource:"api_key_env",sessionFingerprint:O("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=g(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=yt().find(s=>mt(s)),o=L(r,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),i=t.ok&&(o.ok||!!n);return{providerId:"claude",ready:i,authSource:"oauth_local",sessionFingerprint:n?y(n):void 0,checkedAt:e,note:i?"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 Rt}from"node:fs";import{homedir as _t}from"node:os";import de from"node:path";var kt="agent";function bt(){let e=_t(),r=[de.join(e,".config","cursor","auth.json")];if(process.platform==="win32"){let t=process.env.LOCALAPPDATA?.trim(),n=process.env.APPDATA?.trim();t&&r.push(de.join(t,"cursor-agent","auth.json")),n&&r.push(de.join(n,"cursor","auth.json"))}return r}function ur(e=new Date().toISOString()){let r=f(kt,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!1,authSource:"api_key_env",sessionFingerprint:O("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=g(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=bt().find(i=>Rt(i)),o=!!n&&t.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?y(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 vt,readFileSync as xt}from"node:fs";import{homedir as Et}from"node:os";import pe from"node:path";var St=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function Ot(){let e=process.env.HERMES_HOME?.trim(),r=e?pe.resolve(e):pe.join(Et(),".hermes");return pe.join(r,".env")}function Ct(e){try{let r=xt(e,"utf8"),t=[];for(let n of St)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function cr(e=new Date().toISOString()){let r=f("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=g(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Ot(),o=vt(n),i=o?Ct(n):[],l=i.some(u=>u.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",c=t.ok&&o;return{adapterId:"hermes",cliAvailable:t.ok,profileBound:o,authSource:l,sessionFingerprint:o?y(n):void 0,checkedAt:e,note:c?`Hermes profile bound (${i.length?`keys: ${i.join(", ")}`:"no API keys detected"})`:[t.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function dr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=I(r),n={codex:t,cursor:ur(r),claude:lr(r)},o=Object.values(n).filter(i=>i.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:cr(r),hermesOpenAiCodex:F(r),codexAdapterPath:t.path,readyCount:o}}var At=[/\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],wt=[/\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 me(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Pt(e){let r=me(e,"executorRef").toLowerCase(),t=me(e,"title").toLowerCase(),n=me(e,"description").toLowerCase(),o=`${r}
2
2
  ${t}
3
- ${n}`;return xt.some(i=>i.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":St.some(i=>i.test(o))?"low":"elevated"}function Ot(e){let r=E(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 Ct(e){let r=e.inventory??ar();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function _(e){let r=Ot({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 lr(e){let r=e.task??{},t=Et(r),n=Ct({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:A())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),i=e.explicitModel?.trim()||void 0,s=ue;if(o==="codex"||o==="provider:codex"){let c=n.bindings.codex;if(!c.ready){let g=se({inventory:n,riskClass:t});return _(g?{providerId:g.providerId,binding:g.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:i,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}:{providerId:s,binding:n.bindings[s],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:i,escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"})}return _({providerId:"codex",binding:c,riskClass:t,routingRule:"orchestration:explicit_codex",model:i})}if(o==="cursor"||o==="provider:cursor"){let c=n.bindings.cursor;if(c.ready)return _({providerId:"cursor",binding:c,riskClass:t,routingRule:"orchestration:explicit_cursor",model:i})}if(o==="claude"||o==="provider:claude"){let c=n.bindings.claude;if(c.ready)return _({providerId:"claude",binding:c,riskClass:t,routingRule:"orchestration:explicit_claude",model:i})}let l=se({inventory:n,riskClass:t});if(l)return _({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:i,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let u=n.bindings.codex;return _({providerId:s,binding:n.bindings[s],riskClass:t,routingRule:u.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:i,...u.ready?{}:{escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}})}G();d();var At="kynver",cr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],wt=cr.map(e=>`mcp__${At}__${e}`);var U="claude-sonnet-4-6",w="claude-opus-4-8";d();d();var cl=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function It(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var L=It();d();var pe="openai-compatible",Bl=600*1e3;var pr="claude-sonnet-4-6",H="composer-2.5";function f(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Nt(e){if(!e)return;let r=f(e,"workerModelOverride")||f(e,"modelOverride");return r||`${f(e,"title")}
4
- ${f(e,"description")}
5
- ${f(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function ur(e){return e.toLowerCase()}function j(e=S()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||pr}function F(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":"cursor"}function Tt(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:H,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:U,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function dr(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 Kt=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function mr(e,r,t){return Kt.has(e)?w:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?w:U}function fr(e){let r=ur(f(e,"executorRef")),t=f(e,"title").toLowerCase(),n=f(e,"priority")||"normal",o=ur(f(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let s=mr(o,r,t);return{provider:"claude",model:s,rule:s===w?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:L,rule:"lane:codex_orchestration"};if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let s=h(f(e,"executorRef"));return{provider:pe,...s?.model?{model:s.model}:{},rule:"lane:openai_compatible"}}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:L,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 dr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(dr(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 i=j();return{model:i,provider:F(i),rule:"default:global"}}function Wt(e){return e?h(f(e,"executorRef")):null}function Bt(e){let r,t=Wt(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 l=e.explicitModel.trim(),u=Tt(l,e.explicitProvider);u?r=u:r={model:l,provider:e.explicitProvider?.trim()||F(l),rule:"explicit:cli",requestedModel:l}}else if(n)r={model:n,provider:o||F(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&$(e.task)){let l=Nt(e.task),u,c;if(l)u=l,c="task:provider_override";else{let g=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",me=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",yr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";u=mr(g,me,yr),c=u===w?"factory:claude_review":"factory:claude_implementation"}r={model:u,provider:"claude",rule:c,requestedModel:u}}else if(e.task&&Object.keys(e.task).length>0){let l=fr(e.task);r={...l,requestedModel:l.model}}else{let l=j();r={model:l,provider:e.explicitProvider?.trim()||F(l),rule:"default:global",requestedModel:l}}let i=gr({routing:r,task:e.task,explicitProvider:e.explicitProvider,explicitProviderIsOperatorOverride:e.explicitProviderIsOperatorOverride});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"||R(i.provider)&&(e.explicitProviderIsOperatorOverride||$(e.task))||i.provider===pe)return i;let s=lr({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:s.provider,model:s.provider==="codex"?s.model??i.model??L:i.model,rule:s.rule,requestedModel:i.requestedModel,orchestrationAudit:s.audit}}function Mt(e,r,t){return e||r||t||j()||U}var ue="cursor";var Dt=new Set(["claude","opus","anthropic"]),Ut=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function P(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return Dt.has(r)?!0:r.includes("claude")||r.includes("opus")}function $(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=P(e,"executorRef").toLowerCase();if(t==="provider:claude"||t.startsWith("provider:claude:")||t.includes("claude-worker-override")||t.includes("operator-claude"))return!0;let n=h(P(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(Lt(n.model)))return!0;let o=P(e,"description");if(Ut.some(s=>s.test(o)))return!0;let i=P(e,"title");return!!/\[use-claude-worker\]/i.test(i)}function Lt(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Ft(e,r){return{provider:ue,model:H,rule:`policy:cursor_default${r}`,requestedModel:e}}var $t=["explicit:","executor_ref:","factory:","task:"];function Ht(e){return $t.some(r=>e.startsWith(r))}function jt(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||h(P(e,"executorRef"))?.provider?!0:$(e)}function gr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Ht(r.rule)||jt(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Ft(r.model,o)}function Yt(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function hr(e){return e?.trim()||void 0}function Vt(e){let r=Yt(e.task),t=h(r),n=e.explicitProvider?.trim().toLowerCase(),o=hr(e.explicitModel??void 0),i=n||t?.provider,s=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!i&&!s)return{ok:!0};!i&&s&&(/^claude[-_]/i.test(s)||/^(?:opus|sonnet|haiku)\b/i.test(s))&&(i="claude");let u=e.routing.provider,c=hr(e.routing.model),g={provider:u,model:c,rule:e.routing.rule};return i&&i!=="cursor"||r&&V(r)||n&&n!=="cursor"?u==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${i??"non-cursor"}${s?` model=${s}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:i,model:s,source:l},resolved:g}:s&&c&&s!==c&&!R(u)?{ok:!1,error:`model_routing_mismatch: requested model=${s} (${l}) but routing resolved model=${c} (${e.routing.rule})`,requested:{provider:i,model:s,source:l},resolved:g}:{ok:!0,requested:{provider:i,model:s,source:l},resolved:g}:{ok:!0,resolved:g}}export{H as CURSOR_DEFAULT_MODEL,pr as GLOBAL_DEFAULT_MODEL,Vt as assessDispatchModelGuard,V as executorRefRequestsNonCursorWorker,fr as inferModelRoutingFromTask,h as parseExecutorRefRoutingIntent,j as resolveGlobalDefaultModel,Mt as resolveModelFallback,Bt as resolveWorkerLaunch};
3
+ ${n}`;return At.some(i=>i.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":wt.some(i=>i.test(o))?"low":"elevated"}function It(e){let r=S(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 Nt(e){let r=e.inventory??dr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function b(e){let r=It({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 pr(e){let r=e.task??{},t=Pt(r),n=Nt({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:I())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),i=e.explicitModel?.trim()||void 0,s=fe;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let h=ce({inventory:n,riskClass:t});return b(h?{providerId:h.providerId,binding:h.binding,riskClass:t,routingRule:"orchestration:explicit_codex_unavailable_cost_aware",model:i,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"}:{providerId:s,binding:n.bindings[s],riskClass:t,routingRule:"orchestration:codex_unavailable_escalate_cursor",model:i,escalatedFrom:"codex",escalatedReason:u.note??"codex oauth not bound"})}return b({providerId:"codex",binding:u,riskClass:t,routingRule:"orchestration:explicit_codex",model:i})}if(o==="cursor"||o==="provider:cursor"){let u=n.bindings.cursor;if(u.ready)return b({providerId:"cursor",binding:u,riskClass:t,routingRule:"orchestration:explicit_cursor",model:i})}if(o==="claude"||o==="provider:claude"){let u=n.bindings.claude;if(u.ready)return b({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:i})}let l=ce({inventory:n,riskClass:t});if(l)return b({providerId:l.providerId,binding:l.binding,riskClass:t,routingRule:`orchestration:cost_aware_${l.providerId}`,model:i,escalatedFrom:l.escalatedFrom,escalatedReason:l.escalatedReason});let c=n.bindings.codex;return b({providerId:s,binding:n.bindings[s],riskClass:t,routingRule:c.ready?"orchestration:inventory_empty_default_cursor":"orchestration:codex_unavailable_default_cursor",model:i,...c.ready?{}:{escalatedFrom:"codex",escalatedReason:c.note??"codex oauth not bound"}})}X();d();var mr="kynver",fr=["agent_os_context_envelope","agent_os_search_memory","agent_os_search_skills","agent_os_get_skill","agent_os_progress_note"],Tt=fr.map(e=>`mcp__${mr}__${e}`);var H="claude-sonnet-4-6",N="claude-opus-4-8";d();d();var gl=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function Kt(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var j=Kt();d();var ge="openai-compatible",Fl=600*1e3;d();var C="gemini";function A(e=process.env){return e.KYNVER_GEMINI_DEFAULT_MODEL?.trim()||"gemini-2.5-pro"}var T="gemini-api";var eu=600*1e3;var yr="claude-sonnet-4-6",G="composer-2.5";function p(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Dt(e){if(!e)return;let r=p(e,"workerModelOverride")||p(e,"modelOverride");return r||`${p(e,"title")}
4
+ ${p(e,"description")}
5
+ ${p(e,"executorRef")}`.match(/\[(?:worker-)?model:\s*([^\]\n]+)\]/i)?.[1]?.trim()||void 0}function gr(e){return e.toLowerCase()}function q(e=E()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||yr}function Y(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-")?C:"cursor"}function Ut(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:G,provider:"cursor",rule:n&&n!=="cursor"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="claude"||t==="anthropic"?{model:H,provider:"claude",rule:n&&n!=="claude"?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini"||t==="google"?{model:A(),provider:C,rule:n&&n!==C?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:t==="gemini-api"||t==="gemini_api"||t==="google-api"?{model:A(),provider:T,rule:n&&n!==T?"explicit:model_provider_alias_overrode_provider":"explicit:model_provider_alias",requestedModel:e}:null}function hr(e,r){return!!(e.includes("deep")&&e.includes("review")||e.includes("security")||e.includes("plan_author")||e.includes("plan-author")||r.includes("deep review")||r.includes("security review")||e.includes("plan")&&!e.includes("review")&&(e.includes("author")||e.includes("strategy")))}var Lt=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function Rr(e,r,t){return Lt.has(e)?N:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?N:H}function _r(e){let r=gr(p(e,"executorRef")),t=p(e,"title").toLowerCase(),n=p(e,"priority")||"normal",o=gr(p(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let s=Rr(o,r,t);return{provider:"claude",model:s,rule:s===N?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:j,rule:"lane:codex_orchestration"};if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let s=m(p(e,"executorRef"));return{provider:ge,...s?.model?{model:s.model}:{},rule:"lane:openai_compatible"}}if(r.includes("provider:gemini-api")||r.startsWith("gemini-api:")){let s=m(p(e,"executorRef"));return{provider:T,...s?.model?{model:s.model}:{model:A()},rule:"lane:gemini_api"}}if(r.includes("provider:gemini")||r.startsWith("gemini:")){let s=m(p(e,"executorRef"));return{provider:C,...s?.model?{model:s.model}:{model:A()},rule:"lane:gemini"}}if(r.includes("cursor")||r.includes("composer")||r.includes("copilot")||o==="implementer"||o==="repair_implementer")return{provider:"cursor",rule:"lane:implementation"};if(r.includes("codex"))return{provider:"codex",model:j,rule:"lane:codex_orchestration"};if(r.includes("landing")||t.startsWith("land:")||t.includes(" merge"))return{provider:"cursor",rule:"lane:landing"};if(r.includes("review")||/^review[\s:]/.test(t)||o.includes("review"))return hr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(hr(r,t)||o==="plan_author")return{provider:"cursor",rule:"lane:planning"};if(n==="critical")return{provider:"cursor",rule:"priority:critical"};if(n==="high")return{provider:"cursor",rule:"priority:high"};if(n==="low")return{provider:"cursor",rule:"priority:low"};let i=q();return{model:i,provider:Y(i),rule:"default:global"}}function Ft(e){return e?m(p(e,"executorRef")):null}function $t(e){let r,t=Ft(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 l=e.explicitModel.trim(),c=Ut(l,e.explicitProvider);c?r=c:r={model:l,provider:e.explicitProvider?.trim()||Y(l),rule:"explicit:cli",requestedModel:l}}else if(n)r={model:n,provider:o||Y(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&V(e.task)){let l=Dt(e.task),c,u;if(l)c=l,u="task:provider_override";else{let h=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",he=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",vr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";c=Rr(h,he,vr),u=c===N?"factory:claude_review":"factory:claude_implementation"}r={model:c,provider:"claude",rule:u,requestedModel:c}}else if(e.task&&Object.keys(e.task).length>0){let l=_r(e.task);r={...l,requestedModel:l.model}}else{let l=q();r={model:l,provider:e.explicitProvider?.trim()||Y(l),rule:"default:global",requestedModel:l}}let i=kr({routing:r,task:e.task,explicitProvider:e.explicitProvider,explicitProviderIsOperatorOverride:e.explicitProviderIsOperatorOverride});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"||R(i.provider)&&(e.explicitProviderIsOperatorOverride||V(e.task))||i.provider===ge||i.provider===C||i.provider===T)return i;let s=pr({task:e.task,explicitProvider:e.explicitProvider??i.provider,explicitModel:i.model,inventory:e.orchestrationInventory??void 0});return{provider:s.provider,model:s.provider==="codex"?s.model??i.model??j:i.model,rule:s.rule,requestedModel:i.requestedModel,orchestrationAudit:s.audit}}function Ht(e,r,t){return e||r||t||q()||H}var fe="cursor";var jt=new Set(["claude","opus","anthropic"]),Yt=[/\[worker-provider:\s*claude\]/i,/\[use-claude-worker\]/i,/\[operator-worker-provider:\s*claude\]/i];function W(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function R(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return jt.has(r)?!0:r.includes("claude")||r.includes("opus")}function V(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&R(r))return!0;let t=W(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(W(e,"executorRef"));if(n?.provider&&R(n.provider)||n?.model&&R(Vt(n.model)))return!0;let o=W(e,"description");if(Yt.some(s=>s.test(o)))return!0;let i=W(e,"title");return!!/\[use-claude-worker\]/i.test(i)}function Vt(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Gt(e,r){return{provider:fe,model:G,rule:`policy:cursor_default${r}`,requestedModel:e}}var qt=["explicit:","executor_ref:","factory:","task:"];function zt(e){return qt.some(r=>e.startsWith(r))}function Jt(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||m(W(e,"executorRef"))?.provider?!0:V(e)}function kr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&R(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||zt(r.rule)||Jt(t)||!R(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Gt(r.model,o)}function Xt(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function br(e){return e?.trim()||void 0}function Qt(e){let r=Xt(e.task),t=m(r),n=e.explicitProvider?.trim().toLowerCase(),o=br(e.explicitModel??void 0),i=n||t?.provider,s=o||t?.model,l=n||o?"cli":t?.rule??"none";if(!i&&!s)return{ok:!0};!i&&s&&(/^claude[-_]/i.test(s)||/^(?:opus|sonnet|haiku)\b/i.test(s))&&(i="claude");let c=e.routing.provider,u=br(e.routing.model),h={provider:c,model:u,rule:e.routing.rule};return i&&i!=="cursor"||r&&J(r)||n&&n!=="cursor"?c==="cursor"?{ok:!1,error:`model_routing_mismatch: requested ${i??"non-cursor"}${s?` model=${s}`:""} (${l}) but routing resolved to cursor (${e.routing.rule})`,requested:{provider:i,model:s,source:l},resolved:h}:s&&u&&s!==u&&!R(c)?{ok:!1,error:`model_routing_mismatch: requested model=${s} (${l}) but routing resolved model=${u} (${e.routing.rule})`,requested:{provider:i,model:s,source:l},resolved:h}:{ok:!0,requested:{provider:i,model:s,source:l},resolved:h}:{ok:!0,resolved:h}}export{G as CURSOR_DEFAULT_MODEL,yr as GLOBAL_DEFAULT_MODEL,Qt as assessDispatchModelGuard,J as executorRefRequestsNonCursorWorker,_r as inferModelRoutingFromTask,m as parseExecutorRefRoutingIntent,q as resolveGlobalDefaultModel,Ht as resolveModelFallback,$t 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 F,unlinkSync as b,writeFileSync as W}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()-F(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),N=E(a);if(M(a,o))try{b(a)}catch{}else if(N||l(a))continue;let w={slotId:g,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let c=L(a,"wx");W(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"],ke=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],xe=new Set(te);var oe={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Ye=Object.keys(oe);function V(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 se(e,r){let t=V(e),o=V(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,se as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
1
+ import{closeSync as G,existsSync as l,mkdirSync as Y,openSync as L,readdirSync as C,readFileSync as U,statSync as F,unlinkSync as b,writeFileSync as W}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 M(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 O(e,r){let t=E(e);if(t)return M(t,r);if(!l(e))return!0;try{return Date.now()-F(e).mtimeMs>r}catch{return!0}}function q(e,r){if(O(e,r))try{b(e)}catch{}}function X(e){return Y(e,{recursive:!0}),e}function _(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;_({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&&!M(s,t)&&o.push(s)}return o}function d(e={}){return z(e).length}function h(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();_({slotsDir:t,staleMs:o});for(let i=0;i<n;i+=1){let g=B(i),a=J(g,t),V=E(a);if(O(a,o))try{b(a)}catch{}else if(V||l(a))continue;let I={slotId:g,pid:process.pid,acquiredAt:new Date().toISOString(),command:e};try{let c=L(a,"wx");W(c,JSON.stringify(I,null,2),"utf8"),G(c);let w=d({slotsDir:t,staleMs:o});return{admitted:!0,slotId:g,activeSlots:w,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();_({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=h(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=h(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"],ke=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],xe=new Set(te);var oe={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Ye=Object.keys(oe);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 se(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,se as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
@@ -1,2 +1,2 @@
1
- import{readFile as Ee}from"node:fs/promises";import{homedir as ve}from"node:os";import p from"node:path";import{existsSync as D,readFileSync as le}from"node:fs";import y from"node:path";import{existsSync as S,readFileSync as K}from"node:fs";import{homedir as ne}from"node:os";import u from"node:path";import{fileURLToPath as oe}from"node:url";import{spawnSync as te}from"node:child_process";import{homedir as x}from"node:os";import b from"node:path";function Z(e){return e==="~"?x():e.startsWith("~/")||e.startsWith("~\\")?b.join(x(),e.slice(2)):e}function _(e){return b.resolve(Z(e))}function I(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var ee=["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(ee);var re=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],Ge=new Set(re);function T(e,r){try{let t=te("git",r,I({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 se=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function ie(e){let r=u.join(e,"package.json");if(!S(r))return null;try{let t=JSON.parse(K(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function ae(e){return ie(e)==="kynver"}function V(e){let r=u.resolve(e);if(!S(r))return null;let t=T(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?u.resolve(n):null}function ce(e=import.meta.url){let r=u.dirname(oe(e));for(let t=0;t<8;t+=1){let n=u.join(r,"package.json");if(S(n))try{if(JSON.parse(K(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=u.dirname(r);if(o===r)break;r=o}return null}function R(e,r,t,n,o){if(!t)return;let s=u.resolve(t);e.has(s)||(o?.requireMonorepo??!0)&&!ae(s)||(e.add(s),r.push({repo:s,source:n}))}function ue(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];R(t,n,V(r),"cwd_git",{requireMonorepo:!1});let o=ce(e?.runtimeModuleUrl??import.meta.url);o&&R(t,n,V(o),"runtime_checkout");let s=ne();for(let a of se)R(t,n,_(u.join(s,a)),"well_known_path");return n}function G(e){return ue(e)[0]??null}var Y={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},L=Object.keys(Y),f={"@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 $(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 k(e,r){let t=$(e),n=$(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 U(e,r){return k(e,r)>=0}function me(e){let r=null;for(let t of e)(!r||k(t,r)>0)&&(r=t);return r}function de(e){try{let r=JSON.parse(le(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function ge(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let s=y.resolve(o);if(D(y.join(s,"packages/kynver-runtime/package.json"))&&D(y.join(s,"package.json")))return s}return G({cwd:e})?.repo??null}function j(e={}){let r=e.cwd??process.cwd(),t=ge(r,e.repoRoot);if(!t)return{};let n={};for(let o of L){let s=y.join(t,pe[o]),a=de(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function fe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function ye(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&U(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 C(e={}){let r=e.undetectedPolicy??"skip",t=(i,c)=>i?typeof i=="string"?{version:i,source:c}:i:null,n=L.map(i=>{let c=Y[i],d=[],O=t(e.installed?.[i],"installed"),E=t(e.repo?.[i],"repo"),N=t(e.self?.[i],"self");O&&d.push(O),E&&d.push(E),N&&d.push(N);let{version:l,source:g}=ke(d),z=E?.version??null,w=!!l,v=!w&&r==="skip",P=w?U(l,c):v,q=P?[]:ye({packageName:i,minimumVersion:c,effectiveVersion:l,effectiveSource:g,repoVersion:z}),Q=v?`${f[i]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:P?`${f[i]} ${l} meets memory-cost minimum ${c} (${g}).`:`${f[i]} is below memory-cost minimum ${c}`+(l?` (effective ${l} via ${g})`:" (no version detected)")+".";return{packageName:i,displayName:f[i],minimumVersion:c,effectiveVersion:l,effectiveSource:g,ok:P,skipped:v,summary:Q,remediation:q}}),o=n.filter(i=>!i.ok),s=n.filter(i=>i.effectiveVersion).length,a=o.length===0,X=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:X,packages:n}}var h=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 W(e={}){let r=C(e);if(!r.ok)throw new h(r);return r}var Pe=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function m(e){let r=e?.trim();return r||null}function _e(e){return[...new Set(e.filter(r=>!!r))]}function Re(){let e=ve(),r=m(process.env.KYNVER_OPENCLAW_NPM_ROOT)??m(process.env.OPENCLAW_NPM_ROOT)??p.join(e,".openclaw","npm"),t=m(process.env.KYNVER_NPM_GLOBAL_ROOT)??m(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(m(process.env.NPM_CONFIG_PREFIX)?p.join(m(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):p.join(e,".npm-global","lib","node_modules"));return _e([p.join(r,"lib","node_modules"),p.join(r,"node_modules"),t.endsWith("node_modules")?t:p.join(t,"lib","node_modules")])}async function Se(e){try{let r=JSON.parse(await Ee(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function he(e){let r=Re(),t=new Set,n=[];for(let o of r){let s=p.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 he(t)){let s=await Se(o);s&&(!n||k(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 A,join as B}from"node:path";import{fileURLToPath as H}from"node:url";function Me(e){let r=A(H(e));for(let t=0;t<6;t+=1){if(Ce(B(r,"package.json")))return r;let n=A(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${A(H(e))}`)}function Oe(e=import.meta.url){let r=B(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 J=Oe();function Ne(e){let r={};for(let[t,n]of Object.entries(e))n?.version&&(r[t]={version:n.version,source:"installed",path:n.path});return r}async function M(e={}){let[r,t]=await Promise.all([F(),Promise.resolve(j({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:J;return n["@kynver-app/runtime"]={version:o,source:"self"},e.selfPackageName&&e.selfVersion&&e.selfPackageName!=="@kynver-app/runtime"&&(n[e.selfPackageName]={version:e.selfVersion,source:"self"}),{installed:Ne(r),repo:t,self:n,undetectedPolicy:"skip"}}async function we(e={}){let r=await M(e);return C(r)}async function xe(e={}){let r=await M(e);return W(r)}export{M as buildMemoryCostPackageGuardInput,xe as enforceMemoryCostPackageGuardAtStartup,we as evaluateMemoryCostPackageGuardAtStartup};
1
+ import{readFile as ke}from"node:fs/promises";import{homedir as ve}from"node:os";import p from"node:path";import{existsSync as D,readFileSync as le}from"node:fs";import y from"node:path";import{existsSync as S,readFileSync as K}from"node:fs";import{homedir as ne}from"node:os";import u from"node:path";import{fileURLToPath as oe}from"node:url";import{spawnSync as te}from"node:child_process";import{homedir as x}from"node:os";import b from"node:path";function Z(e){return e==="~"?x():e.startsWith("~/")||e.startsWith("~\\")?b.join(x(),e.slice(2)):e}function _(e){return b.resolve(Z(e))}function I(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var ee=["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(ee);var re=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],Ge=new Set(re);function T(e,r){try{let t=te("git",r,I({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 se=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function ie(e){let r=u.join(e,"package.json");if(!S(r))return null;try{let t=JSON.parse(K(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function ae(e){return ie(e)==="kynver"}function V(e){let r=u.resolve(e);if(!S(r))return null;let t=T(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?u.resolve(n):null}function ce(e=import.meta.url){let r=u.dirname(oe(e));for(let t=0;t<8;t+=1){let n=u.join(r,"package.json");if(S(n))try{if(JSON.parse(K(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=u.dirname(r);if(o===r)break;r=o}return null}function R(e,r,t,n,o){if(!t)return;let s=u.resolve(t);e.has(s)||(o?.requireMonorepo??!0)&&!ae(s)||(e.add(s),r.push({repo:s,source:n}))}function ue(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];R(t,n,V(r),"cwd_git",{requireMonorepo:!1});let o=ce(e?.runtimeModuleUrl??import.meta.url);o&&R(t,n,V(o),"runtime_checkout");let s=ne();for(let a of se)R(t,n,_(u.join(s,a)),"well_known_path");return n}function G(e){return ue(e)[0]??null}var Y={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},L=Object.keys(Y),f={"@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 $(e){let r=e.trim().split("-")[0]?.split("+")[0];if(!r)return null;let t=r.split(".");if(t.length<1||t.length>3)return null;let n=t.map(o=>Number.parseInt(o,10));if(n.some(o=>!Number.isFinite(o)||o<0))return null;for(;n.length<3;)n.push(0);return[n[0],n[1],n[2]]}function E(e,r){let t=$(e),n=$(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 U(e,r){return E(e,r)>=0}function me(e){let r=null;for(let t of e)(!r||E(t,r)>0)&&(r=t);return r}function de(e){try{let r=JSON.parse(le(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function ge(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let s=y.resolve(o);if(D(y.join(s,"packages/kynver-runtime/package.json"))&&D(y.join(s,"package.json")))return s}return G({cwd:e})?.repo??null}function j(e={}){let r=e.cwd??process.cwd(),t=ge(r,e.repoRoot);if(!t)return{};let n={};for(let o of L){let s=y.join(t,pe[o]),a=de(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function fe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function ye(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&U(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 Ee(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 C(e={}){let r=e.undetectedPolicy??"skip",t=(i,c)=>i?typeof i=="string"?{version:i,source:c}:i:null,n=L.map(i=>{let c=Y[i],d=[],O=t(e.installed?.[i],"installed"),k=t(e.repo?.[i],"repo"),N=t(e.self?.[i],"self");O&&d.push(O),k&&d.push(k),N&&d.push(N);let{version:l,source:g}=Ee(d),z=k?.version??null,w=!!l,v=!w&&r==="skip",P=w?U(l,c):v,q=P?[]:ye({packageName:i,minimumVersion:c,effectiveVersion:l,effectiveSource:g,repoVersion:z}),Q=v?`${f[i]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:P?`${f[i]} ${l} meets memory-cost minimum ${c} (${g}).`:`${f[i]} is below memory-cost minimum ${c}`+(l?` (effective ${l} via ${g})`:" (no version detected)")+".";return{packageName:i,displayName:f[i],minimumVersion:c,effectiveVersion:l,effectiveSource:g,ok:P,skipped:v,summary:Q,remediation:q}}),o=n.filter(i=>!i.ok),s=n.filter(i=>i.effectiveVersion).length,a=o.length===0,X=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:X,packages:n}}var h=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 W(e={}){let r=C(e);if(!r.ok)throw new h(r);return r}var Pe=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function m(e){let r=e?.trim();return r||null}function _e(e){return[...new Set(e.filter(r=>!!r))]}function Re(){let e=ve(),r=m(process.env.KYNVER_OPENCLAW_NPM_ROOT)??m(process.env.OPENCLAW_NPM_ROOT)??p.join(e,".openclaw","npm"),t=m(process.env.KYNVER_NPM_GLOBAL_ROOT)??m(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(m(process.env.NPM_CONFIG_PREFIX)?p.join(m(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):p.join(e,".npm-global","lib","node_modules"));return _e([p.join(r,"lib","node_modules"),p.join(r,"node_modules"),t.endsWith("node_modules")?t:p.join(t,"lib","node_modules")])}async function Se(e){try{let r=JSON.parse(await ke(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function he(e){let r=Re(),t=new Set,n=[];for(let o of r){let s=p.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 he(t)){let s=await Se(o);s&&(!n||E(s,n.version)>0)&&(n={version:s,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as Ce,readFileSync as Ae}from"node:fs";import{dirname as A,join as B}from"node:path";import{fileURLToPath as H}from"node:url";function Me(e){let r=A(H(e));for(let t=0;t<6;t+=1){if(Ce(B(r,"package.json")))return r;let n=A(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${A(H(e))}`)}function Oe(e=import.meta.url){let r=B(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 J=Oe();function Ne(e){let r={};for(let[t,n]of Object.entries(e))n?.version&&(r[t]={version:n.version,source:"installed",path:n.path});return r}async function M(e={}){let[r,t]=await Promise.all([F(),Promise.resolve(j({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:J;return n["@kynver-app/runtime"]={version:o,source:"self"},e.selfPackageName&&e.selfVersion&&e.selfPackageName!=="@kynver-app/runtime"&&(n[e.selfPackageName]={version:e.selfVersion,source:"self"}),{installed:Ne(r),repo:t,self:n,undetectedPolicy:"skip"}}async function we(e={}){let r=await M(e);return C(r)}async function xe(e={}){let r=await M(e);return W(r)}export{M as buildMemoryCostPackageGuardInput,xe as enforceMemoryCostPackageGuardAtStartup,we 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"],Y=new Set(x);var b=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY"],L=new Set(b);var y={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},w=Object.keys(y),d={"@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 S(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 S(t,e)>=0}function T(t){let e=null;for(let n of t)(!e||S(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 I(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=w.map(o=>{let c=y[o],l=[],k=n(t.installed?.[o],"installed"),g=n(t.repo?.[o],"repo"),_=n(t.self?.[o],"self");k&&l.push(k),g&&l.push(g),_&&l.push(_);let{version:u,source:p}=V(l),P=g?.version??null,v=!!u,f=!v&&e==="skip",E=v?h(u,c):f,O=E?[]:I({packageName:o,minimumVersion:c,effectiveVersion:u,effectiveSource:p,repoVersion:P}),M=f?`${d[o]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:E?`${d[o]} ${u} meets memory-cost minimum ${c} (${p}).`:`${d[o]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:d[o],minimumVersion:c,effectiveVersion:u,effectiveSource:p,ok:E,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 m=class extends Error{result;constructor(e){let n=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(n.join(`
1
+ var 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"],Y=new Set(x);var b=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN","CODEX_API_KEY","GEMINI_API_KEY"],L=new Set(b);var y={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},w=Object.keys(y),d={"@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 S(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 S(t,e)>=0}function T(t){let e=null;for(let n of t)(!e||S(n,e)>0)&&(e=n);return e}function I(t){return t==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${t}`]}function K(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: ${I(e).join("; ")}.`),i.push("Do not publish npm packages or wait on an operator release."),i):(r?i.push(`Upgrade ${e} from ${r} to >= ${n} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):i.push(`Install ${e} >= ${n} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&i.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&a&&i.push(`Repo checkout reports ${a}; rebuild/link repo source if you develop from the monorepo.`),i)}function 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=w.map(o=>{let c=y[o],l=[],_=n(t.installed?.[o],"installed"),g=n(t.repo?.[o],"repo"),k=n(t.self?.[o],"self");_&&l.push(_),g&&l.push(g),k&&l.push(k);let{version:u,source:p}=V(l),P=g?.version??null,v=!!u,f=!v&&e==="skip",E=v?h(u,c):f,O=E?[]:K({packageName:o,minimumVersion:c,effectiveVersion:u,effectiveSource:p,repoVersion:P}),M=f?`${d[o]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:E?`${d[o]} ${u} meets memory-cost minimum ${c} (${p}).`:`${d[o]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:d[o],minimumVersion:c,effectiveVersion:u,effectiveSource:p,ok:E,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 m=class extends Error{result;constructor(e){let n=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(n.join(`
2
2
  `)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function D(t={}){let e=A(t);if(!e.ok)throw new m(e);return e}export{y as MEMORY_COST_PACKAGE_MIN_VERSIONS,m as MemoryCostPackageVersionGuardError,D as assertMemoryCostPackageVersionGuard,S as compareSemver,A as evaluateMemoryCostPackageVersionGuard};