@kynver-app/runtime 0.2.19 → 0.2.24

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.
Files changed (48) hide show
  1. package/README.md +52 -18
  2. package/dist/bootstrap.d.ts +48 -0
  3. package/dist/cli.d.ts +11 -0
  4. package/dist/cli.js +73 -66
  5. package/dist/config.d.ts +1 -1
  6. package/dist/cron/cron-install-plan.d.ts +3 -1
  7. package/dist/daemon-keeper.d.ts +32 -0
  8. package/dist/doctor/runner-install.d.ts +86 -2
  9. package/dist/doctor/runtime-takeover-deploy-evidence.d.ts +7 -3
  10. package/dist/doctor/runtime-takeover.probes.d.ts +1 -1
  11. package/dist/index.d.ts +5 -2
  12. package/dist/index.js +95 -88
  13. package/dist/landing/land-pr-check-classify.d.ts +6 -0
  14. package/dist/orchestration-providers/inventory.d.ts +27 -4
  15. package/dist/provider-evidence/index.d.ts +0 -1
  16. package/dist/providers/model-preflight.d.ts +8 -0
  17. package/dist/providers/openai-compatible-response.d.ts +23 -0
  18. package/dist/providers/openai-compatible-runner.d.ts +1 -0
  19. package/dist/providers/openai-compatible.d.ts +46 -0
  20. package/dist/scheduler-cutover.d.ts +1 -1
  21. package/dist/server/adapter-contract.d.ts +1 -0
  22. package/dist/server/adapter-contract.js +1 -0
  23. package/dist/server/cleanup.js +14 -14
  24. package/dist/server/context-budget-receipt.d.ts +2 -0
  25. package/dist/server/context-budget-receipt.js +6 -0
  26. package/dist/server/db-credentials.d.ts +1 -0
  27. package/dist/server/db-credentials.js +2 -0
  28. package/dist/server/default-repo.js +1 -1
  29. package/dist/server/heavy-verification.js +1 -1
  30. package/dist/server/memory-cost-enforce.js +2 -2
  31. package/dist/server/memory-cost.js +2 -2
  32. package/dist/server/model-routing.d.ts +3 -0
  33. package/dist/server/model-routing.js +5 -0
  34. package/dist/server/monitor.js +7 -7
  35. package/dist/server/node-runtime-policy.d.ts +1 -0
  36. package/dist/server/node-runtime-policy.js +1 -0
  37. package/dist/server/orchestration.d.ts +1 -1
  38. package/dist/server/orchestration.js +1 -1
  39. package/dist/server/prompt.d.ts +1 -0
  40. package/dist/server/prompt.js +19 -0
  41. package/dist/server/worker-policy.d.ts +1 -1
  42. package/dist/server/worker-policy.js +2 -2
  43. package/dist/status.d.ts +3 -1
  44. package/dist/stream.d.ts +13 -0
  45. package/dist/worker-provider-policy.d.ts +21 -4
  46. package/dist/worker-usage.d.ts +20 -0
  47. package/dist/worktree.d.ts +33 -0
  48. package/package.json +34 -3
@@ -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}};function U(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var i=r(()=>{"use strict"});var _e,ir,ve,ar,D=r(()=>{"use strict";_e=["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"],ir=new Set(_e),ve=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],ar=new Set(ve)});import{spawnSync as Ee}from"node:child_process";function W(e,t){try{let n=Ee("git",t,U({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";i();D()});import{homedir as T}from"node:os";import B from"node:path";function Ce(e){return e==="~"?T():e.startsWith("~/")||e.startsWith("~\\")?B.join(T(),e.slice(2)):e}function f(e){return B.resolve(Ce(e))}var c=r(()=>{"use strict"});import{existsSync as x,readFileSync as F}from"node:fs";import{homedir as Ae}from"node:os";import a from"node:path";import{fileURLToPath as Oe}from"node:url";function Ie(e){let t=a.join(e,"package.json");if(!x(t))return null;try{let n=JSON.parse(F(t,"utf8"));return typeof n.name=="string"?n.name.trim():null}catch{return null}}function Pe(e){return Ie(e)==="kynver"}function M(e){let t=a.resolve(e);if(!x(t))return null;let n=W(t,["rev-parse","--show-toplevel"]);if(n.status!==0)return null;let o=n.stdout.trim();return o.length?a.resolve(o):null}function Ne(e=import.meta.url){let t=a.dirname(Oe(e));for(let n=0;n<8;n+=1){let o=a.join(t,"package.json");if(x(o))try{if(JSON.parse(F(o,"utf8")).name==="@kynver-app/runtime")return t}catch{}let s=a.dirname(t);if(s===t)break;t=s}return null}function S(e,t,n,o){if(!n)return;let s=a.resolve(n);e.has(s)||Pe(s)&&(e.add(s),t.push({repo:s,source:o}))}function Ke(e){let t=e?.cwd??process.cwd(),n=new Set,o=[];S(n,o,M(t),"cwd_git");let s=Ne(e?.runtimeModuleUrl??import.meta.url);s&&S(n,o,M(s),"runtime_checkout");let m=Ae();for(let xe of we)S(n,o,f(a.join(m,xe)),"well_known_path");return o}function _(e){return Ke(e)[0]??null}var we,p=r(()=>{"use strict";k();c();we=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var l=r(()=>{"use strict"});var g=r(()=>{"use strict"});var L=r(()=>{"use strict"});var wr,Ir,v=r(()=>{"use strict";wr=25*1024*1024*1024,Ir=12*1024*1024*1024});var Dr,Wr,H=r(()=>{"use strict";v();Dr=5*1024*1024*1024,Wr=10*1024*1024*1024});var Hr,$r,E=r(()=>{"use strict";H();v();Hr=30*1024*1024*1024,$r=15*1024*1024*1024});var j=r(()=>{"use strict";i()});import Ue from"node:path";var Zr,C=r(()=>{"use strict";c();j();Zr=Ue.join(".openclaw","harness")});var y=r(()=>{"use strict";u();l();g();b();C()});var G=r(()=>{"use strict";u();C();y();i()});var O=r(()=>{"use strict";G();i()});var z=r(()=>{"use strict";O();i()});var J=r(()=>{"use strict"});var q=r(()=>{"use strict";J();i()});var X=r(()=>{"use strict"});var Z=r(()=>{"use strict";X()});var Q=r(()=>{"use strict";Z();i()});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();i()});var ie=r(()=>{"use strict";se()});var He,$e,ae=r(()=>{"use strict";L();u();l();g();b();E();O();z();ie();i();He=500*1024*1024,$e=4*1024*1024*1024});var b=r(()=>{"use strict";ae()});import{homedir as je}from"node:os";import Ye from"node:path";var le,I=r(()=>{"use strict";le=Ye.join(je(),".kynver",".env")});var ue=r(()=>{"use strict"});var ce=r(()=>{"use strict";ue()});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();u();P();fe()});var he=r(()=>{"use strict";l();l()});var ye=r(()=>{"use strict";I();P();R()});var Re=r(()=>{"use strict";p();l();he();u();R();ye();i();y()});import{existsSync as Xe,mkdirSync as zo,readFileSync as Ze,writeFileSync as Jo}from"node:fs";import{homedir as Qe,totalmem as Xo}from"node:os";import N from"node:path";function d(){if(!Xe(ke))return{};try{return JSON.parse(Ze(ke,"utf8"))}catch{return{}}}var Se,ke,us,cs,ds,u=r(()=>{"use strict";p();c();i();l();g();b();E();R();Re();y();Se=N.join(Qe(),".kynver"),ke=N.join(Se,"config.json"),us=N.join(Se,"credentials");cs=500*1024*1024,ds=4*1024*1024*1024});u();p();c();import er from"node:path";function rr(e){return er.resolve(f(e.trim()))}function K(e,t,n){let o=e?.trim();return o?{repo:rr(o),source:t,persistedInConfig:n}:null}function nr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function tr(e={}){let t=e.env??process.env,n=e.config??d(),o=K(n.defaultRepo,"config",!0);if(o)return o;let s=K(t.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(s)return s;let m=K(t.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return m||nr(_({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{tr 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}};function K(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var i=r(()=>{"use strict"});var _e,ir,ve,ar,D=r(()=>{"use strict";_e=["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"],ir=new Set(_e),ve=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],ar=new Set(ve)});import{spawnSync as Ee}from"node:child_process";function T(e,t){try{let n=Ee("git",t,K({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";i();D()});import{homedir as W}from"node:os";import B from"node:path";function Ce(e){return e==="~"?W():e.startsWith("~/")||e.startsWith("~\\")?B.join(W(),e.slice(2)):e}function f(e){return B.resolve(Ce(e))}var c=r(()=>{"use strict"});import{existsSync as x,readFileSync as F}from"node:fs";import{homedir as Ae}from"node:os";import a from"node:path";import{fileURLToPath as Oe}from"node:url";function Ie(e){let t=a.join(e,"package.json");if(!x(t))return null;try{let n=JSON.parse(F(t,"utf8"));return typeof n.name=="string"?n.name.trim():null}catch{return null}}function Pe(e){return Ie(e)==="kynver"}function M(e){let t=a.resolve(e);if(!x(t))return null;let n=T(t,["rev-parse","--show-toplevel"]);if(n.status!==0)return null;let o=n.stdout.trim();return o.length?a.resolve(o):null}function Ne(e=import.meta.url){let t=a.dirname(Oe(e));for(let n=0;n<8;n+=1){let o=a.join(t,"package.json");if(x(o))try{if(JSON.parse(F(o,"utf8")).name==="@kynver-app/runtime")return t}catch{}let s=a.dirname(t);if(s===t)break;t=s}return null}function S(e,t,n,o){if(!n)return;let s=a.resolve(n);e.has(s)||Pe(s)&&(e.add(s),t.push({repo:s,source:o}))}function Ue(e){let t=e?.cwd??process.cwd(),n=new Set,o=[];S(n,o,M(t),"cwd_git");let s=Ne(e?.runtimeModuleUrl??import.meta.url);s&&S(n,o,M(s),"runtime_checkout");let m=Ae();for(let xe of we)S(n,o,f(a.join(m,xe)),"well_known_path");return o}function _(e){return Ue(e)[0]??null}var we,p=r(()=>{"use strict";k();c();we=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"]});var u=r(()=>{"use strict"});var g=r(()=>{"use strict"});var L=r(()=>{"use strict"});var wr,Ir,v=r(()=>{"use strict";wr=25*1024*1024*1024,Ir=12*1024*1024*1024});var Dr,Tr,H=r(()=>{"use strict";v();Dr=5*1024*1024*1024,Tr=10*1024*1024*1024});var Hr,$r,E=r(()=>{"use strict";H();v();Hr=30*1024*1024*1024,$r=15*1024*1024*1024});var j=r(()=>{"use strict";i()});import Ke from"node:path";var Zr,C=r(()=>{"use strict";c();j();Zr=Ke.join(".openclaw","harness")});var h=r(()=>{"use strict";l();u();g();b();C()});var G=r(()=>{"use strict";l();C();h();i()});var O=r(()=>{"use strict";G();i()});var z=r(()=>{"use strict";O();i()});var J=r(()=>{"use strict"});var q=r(()=>{"use strict";J();i()});var X=r(()=>{"use strict"});var Z=r(()=>{"use strict";X()});var Q=r(()=>{"use strict";Z();i()});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();i()});var ie=r(()=>{"use strict";se()});var He,$e,ae=r(()=>{"use strict";L();l();u();g();b();E();O();z();ie();i();He=500*1024*1024,$e=4*1024*1024*1024});var b=r(()=>{"use strict";ae()});import{homedir as je}from"node:os";import Ye from"node:path";var ue,I=r(()=>{"use strict";ue=Ye.join(je(),".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();l();P();fe()});var ye=r(()=>{"use strict";u();u()});var he=r(()=>{"use strict";I();P();R()});var Re=r(()=>{"use strict";p();u();ye();l();R();he();i();h()});import{existsSync as Xe,mkdirSync as zo,readFileSync as Ze,writeFileSync as Jo}from"node:fs";import{homedir as Qe,totalmem as Xo}from"node:os";import N from"node:path";function d(){if(!Xe(ke))return{};try{return JSON.parse(Ze(ke,"utf8"))}catch{return{}}}var Se,ke,ls,cs,ds,l=r(()=>{"use strict";p();c();i();u();g();b();E();R();Re();h();Se=N.join(Qe(),".kynver"),ke=N.join(Se,"config.json"),ls=N.join(Se,"credentials");cs=500*1024*1024,ds=4*1024*1024*1024});l();p();c();import er from"node:path";function rr(e){return er.resolve(f(e.trim()))}function U(e,t,n){let o=e?.trim();return o?{repo:rr(o),source:t,persistedInConfig:n}:null}function nr(e){return e?{repo:e.repo,source:e.source,persistedInConfig:!1}:null}function tr(e={}){let t=e.env??process.env,n=e.config??d(),o=U(n.defaultRepo,"config",!0);if(o)return o;let s=U(t.KYNVER_DEFAULT_REPO,"env_default_repo",!1);if(s)return s;let m=U(t.KYNVER_HARNESS_REPO,"env_harness_repo",!1);return m||nr(_({cwd:e.cwd,runtimeModuleUrl:e.runtimeModuleUrl}))}export{tr as resolveDefaultRepo};
@@ -1 +1 @@
1
- import{closeSync as Y,existsSync as l,mkdirSync as $,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 A(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}import{mkdirSync as D}from"node:fs";import{tmpdir as K}from"node:os";import d from"node:path";import{homedir as T}from"node:os";import h from"node:path";function k(){let e=process.env.KYNVER_STATE_ROOT;return e?h.resolve(e):h.join(T(),".kynver","state")}function H(){return!!(process.env.VERCEL||process.env.VERCEL_ENV||process.env.AWS_LAMBDA_FUNCTION_NAME||process.env.AWS_EXECUTION_ENV)}function G(){let e=process.env.KYNVER_HEAVY_VERIFICATION_STATE_ROOT;return e?d.resolve(e):H()?d.join(K(),"kynver","state","heavy-verification"):d.join(k(),"heavy-verification")}function y(){return d.join(G(),"slots")}function u(){let e=y();return D(e,{recursive:!0}),e}var f=120*6e4,x=1;function j(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function p(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?j(e,x):x}function B(e){return`slot-${e}`}function J(e,r=y()){return v.join(r,`${e}.json`)}function E(e){if(!l(e))return null;try{let r=JSON.parse(U(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function O(e,r=f){if(!e||!A(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function N(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 X(e,r){if(N(e,r))try{b(e)}catch{}}function q(e){return $(e,{recursive:!0}),e}function _(e={}){let r=q(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);X(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&&!O(s,t)&&o.push(s)}return o}function m(e={}){return z(e).length}function R(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),P=E(a);if(N(a,o))try{b(a)}catch{}else if(P||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"),Y(c);let I=m({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=m({slotsDir:t,staleMs:o});return{admitted:!1,slotId:null,activeSlots:s,maxSlots:n,reason:`heavy verification at capacity (${s}/${n} slots)`}}function V(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=m({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=R(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=R(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"],Ae=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],he=new Set(te);var ne={"@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(ne);function M(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 oe(e,r){let t=M(e),o=M(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{V as assessHeavyVerificationGate,oe as compareSemver,m 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 h(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}import{mkdirSync as D}from"node:fs";import{tmpdir as K}from"node:os";import m from"node:path";import{homedir as T}from"node:os";import A from"node:path";function k(){let e=process.env.KYNVER_STATE_ROOT;return e?A.resolve(e):A.join(T(),".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 D(e,{recursive:!0}),e}var f=120*6e4,x=1;function j(e,r){let t=Number(e);return!Number.isFinite(t)||t<=0?r:Math.floor(t)}function S(){let e=process.env.KYNVER_HEAVY_VERIFICATION_SKIP?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"}function p(){let e=process.env.KYNVER_HEAVY_VERIFICATION_MAX_CONCURRENT;return e?j(e,x):x}function B(e){return`slot-${e}`}function J(e,r=y()){return v.join(r,`${e}.json`)}function E(e){if(!l(e))return null;try{let r=JSON.parse(U(e,"utf8"));if(typeof r.slotId=="string"&&typeof r.pid=="number"&&typeof r.acquiredAt=="string"&&typeof r.command=="string")return r}catch{return null}return null}function O(e,r=f){if(!e||!h(e.pid))return!0;let t=Date.parse(e.acquiredAt);return Number.isNaN(t)?!0:Date.now()-t>r}function V(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 X(e,r){if(V(e,r))try{b(e)}catch{}}function q(e){return Y(e,{recursive:!0}),e}function _(e={}){let r=q(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);X(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&&!O(s,t)&&o.push(s)}return o}function d(e={}){return z(e).length}function R(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),P=E(a);if(V(a,o))try{b(a)}catch{}else if(P||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 N(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=R(e,o);for(;!s.admitted&&Date.now()<n;)Z(Math.min(t,n-Date.now())),s=R(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"],he=new Set(re);var te=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],Ae=new Set(te);var ne={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Ge=Object.keys(ne);function M(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 oe(e,r){let t=M(e),o=M(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{N as assessHeavyVerificationGate,oe as compareSemver,d as countActiveHeavyVerificationSlots,S as isHeavyVerificationGateSkipped,p as resolveHeavyVerificationMaxConcurrent,ee as waitForHeavyVerificationSlot};
@@ -1,2 +1,2 @@
1
- import{readFile as ge}from"node:fs/promises";import{homedir as fe}from"node:os";import l from"node:path";import{existsSync as V,readFileSync as ie}from"node:fs";import g from"node:path";import{existsSync as v,readFileSync as I}from"node:fs";import{homedir as q}from"node:os";import a from"node:path";import{fileURLToPath as ee}from"node:url";import{spawnSync as Q}from"node:child_process";function M(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var z=["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"],Ne=new Set(z);var X=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],we=new Set(X);function O(e,r){try{let t=Q("git",r,M({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}}}import{homedir as N}from"node:os";import w from"node:path";function Z(e){return e==="~"?N():e.startsWith("~/")||e.startsWith("~\\")?w.join(N(),e.slice(2)):e}function b(e){return w.resolve(Z(e))}var re=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function te(e){let r=a.join(e,"package.json");if(!v(r))return null;try{let t=JSON.parse(I(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function ne(e){return te(e)==="kynver"}function x(e){let r=a.resolve(e);if(!v(r))return null;let t=O(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?a.resolve(n):null}function oe(e=import.meta.url){let r=a.dirname(ee(e));for(let t=0;t<8;t+=1){let n=a.join(r,"package.json");if(v(n))try{if(JSON.parse(I(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=a.dirname(r);if(o===r)break;r=o}return null}function k(e,r,t,n){if(!t)return;let o=a.resolve(t);e.has(o)||ne(o)&&(e.add(o),r.push({repo:o,source:n}))}function se(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];k(t,n,x(r),"cwd_git");let o=oe(e?.runtimeModuleUrl??import.meta.url);o&&k(t,n,x(o),"runtime_checkout");let i=q();for(let s of re)k(t,n,b(a.join(i,s)),"well_known_path");return n}function T(e){return se(e)[0]??null}var G={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},D=Object.keys(G),P={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"},ae={"@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 K(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 f(e,r){let t=K(e),n=K(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 $(e,r){return f(e,r)>=0}function ce(e){let r=null;for(let t of e)(!r||f(t,r)>0)&&(r=t);return r}function ue(e){try{let r=JSON.parse(ie(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function le(e,r){let t=[r,process.env.KYNVER_REPO,e].filter(o=>!!o?.trim());for(let o of t){let i=g.resolve(o);if(V(g.join(i,"packages/kynver-runtime/package.json"))&&V(g.join(i,"package.json")))return i}return T({cwd:e})?.repo??null}function Y(e={}){let r=e.cwd??process.cwd(),t=le(r,e.repoRoot);if(!t)return{};let n={};for(let o of D){let i=g.join(t,ae[o]),s=ue(i);s&&(n[o]={version:s,source:"repo",path:i})}return n}function pe(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function me(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:i}=e,s=[];return i&&$(i,t)?(s.push(`Use the monorepo checkout (${i}) instead of a stale npm install: ${pe(r).join("; ")}.`),s.push("Do not publish npm packages or wait on an operator release."),s):(n?s.push(`Upgrade ${r} from ${n} to >= ${t} (npm install -g ${r}@latest or align OpenClaw npm prefix).`):s.push(`Install ${r} >= ${t} before running memory-heavy AgentOS paths.`),r==="@kynver-app/runtime"&&s.push("Repo-source alternative: npm run kynver:build && npm run kynver"),o==="installed"&&i&&s.push(`Repo checkout reports ${i}; rebuild/link repo source if you develop from the monorepo.`),s)}function de(e){if(e.length===0)return{version:null,source:"unknown"};let r=ce(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 R(e={}){let r=(s,c)=>s?typeof s=="string"?{version:s,source:c}:s:null,t=D.map(s=>{let c=G[s],m=[],A=r(e.installed?.[s],"installed"),y=r(e.repo?.[s],"repo"),h=r(e.self?.[s],"self");A&&m.push(A),y&&m.push(y),h&&m.push(h);let{version:u,source:d}=de(m),F=y?.version??null,E=u?$(u,c):!1,B=E?[]:me({packageName:s,minimumVersion:c,effectiveVersion:u,effectiveSource:d,repoVersion:F}),J=E?`${P[s]} ${u} meets memory-cost minimum ${c} (${d}).`:`${P[s]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${d})`:" (no version detected)")+".";return{packageName:s,displayName:P[s],minimumVersion:c,effectiveVersion:u,effectiveSource:d,ok:E,summary:J,remediation:B}}),n=t.filter(s=>!s.ok),o=n.length===0,i=o?"All managed AgentOS packages meet memory-cost minimum versions.":`Memory-cost package guard blocked ${n.length} stale package(s): ${n.map(s=>`${s.packageName} < ${s.minimumVersion}`).join("; ")}.`;return{ok:o,summary:i,packages:t}}var _=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 L(e={}){let r=R(e);if(!r.ok)throw new _(r);return r}var ye=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function p(e){let r=e?.trim();return r||null}function Ee(e){return[...new Set(e.filter(r=>!!r))]}function ke(){let e=fe(),r=p(process.env.KYNVER_OPENCLAW_NPM_ROOT)??p(process.env.OPENCLAW_NPM_ROOT)??l.join(e,".openclaw","npm"),t=p(process.env.KYNVER_NPM_GLOBAL_ROOT)??p(process.env.KYNVER_NPM_GLOBAL_MODULES_ROOT)??(p(process.env.NPM_CONFIG_PREFIX)?l.join(p(process.env.NPM_CONFIG_PREFIX),"lib","node_modules"):l.join(e,".npm-global","lib","node_modules"));return Ee([l.join(r,"lib","node_modules"),l.join(r,"node_modules"),t.endsWith("node_modules")?t:l.join(t,"lib","node_modules")])}async function ve(e){try{let r=JSON.parse(await ge(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function Pe(e){let r=ke(),t=new Set,n=[];for(let o of r){let i=l.join(o,e,"package.json");t.has(i)||(t.add(i),n.push(i))}return n}async function j(e=new Date().toISOString()){let r={};for(let t of ye){let n=null;for(let o of Pe(t)){let i=await ve(o);i&&(!n||f(i,n.version)>0)&&(n={version:i,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as _e,readFileSync as Re}from"node:fs";import{dirname as S,join as W}from"node:path";import{fileURLToPath as U}from"node:url";function Se(e){let r=S(U(e));for(let t=0;t<6;t+=1){if(_e(W(r,"package.json")))return r;let n=S(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${S(U(e))}`)}function Ce(e=import.meta.url){let r=W(Se(e),"package.json"),t=JSON.parse(Re(r,"utf8"));if(typeof t.version!="string"||!t.version.trim())throw new Error(`Missing package.json version at ${r}`);return t.version}var H=Ce();function Ae(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 C(e={}){let[r,t]=await Promise.all([j(),Promise.resolve(Y({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:H;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:Ae(r),repo:t,self:n}}async function he(e={}){let r=await C(e);return R(r)}async function Me(e={}){let r=await C(e);return L(r)}export{C as buildMemoryCostPackageGuardInput,Me as enforceMemoryCostPackageGuardAtStartup,he as evaluateMemoryCostPackageGuardAtStartup};
1
+ import{readFile as ye}from"node:fs/promises";import{homedir as Ee}from"node:os";import p from"node:path";import{existsSync as G,readFileSync as ce}from"node:fs";import y from"node:path";import{existsSync as _,readFileSync as V}from"node:fs";import{homedir as re}from"node:os";import u from"node:path";import{fileURLToPath as te}from"node:url";import{spawnSync as q}from"node:child_process";function N(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}var Q=["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"],be=new Set(Q);var Z=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],xe=new Set(Z);function w(e,r){try{let t=q("git",r,N({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}}}import{homedir as b}from"node:os";import x from"node:path";function ee(e){return e==="~"?b():e.startsWith("~/")||e.startsWith("~\\")?x.join(b(),e.slice(2)):e}function I(e){return x.resolve(ee(e))}var ne=["Kynver","repos/Kynver","repos/kynver-source-main","code/Kynver","projects/Kynver"];function oe(e){let r=u.join(e,"package.json");if(!_(r))return null;try{let t=JSON.parse(V(r,"utf8"));return typeof t.name=="string"?t.name.trim():null}catch{return null}}function se(e){return oe(e)==="kynver"}function T(e){let r=u.resolve(e);if(!_(r))return null;let t=w(r,["rev-parse","--show-toplevel"]);if(t.status!==0)return null;let n=t.stdout.trim();return n.length?u.resolve(n):null}function ie(e=import.meta.url){let r=u.dirname(te(e));for(let t=0;t<8;t+=1){let n=u.join(r,"package.json");if(_(n))try{if(JSON.parse(V(n,"utf8")).name==="@kynver-app/runtime")return r}catch{}let o=u.dirname(r);if(o===r)break;r=o}return null}function P(e,r,t,n){if(!t)return;let o=u.resolve(t);e.has(o)||se(o)&&(e.add(o),r.push({repo:o,source:n}))}function ae(e){let r=e?.cwd??process.cwd(),t=new Set,n=[];P(t,n,T(r),"cwd_git");let o=ie(e?.runtimeModuleUrl??import.meta.url);o&&P(t,n,T(o),"runtime_checkout");let s=re();for(let a of ne)P(t,n,I(u.join(s,a)),"well_known_path");return n}function K(e){return ae(e)[0]??null}var $={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},Y=Object.keys($),f={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"},ue={"@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 D(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=D(e),n=D(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 L(e,r){return E(e,r)>=0}function le(e){let r=null;for(let t of e)(!r||E(t,r)>0)&&(r=t);return r}function pe(e){try{let r=JSON.parse(ce(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function me(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(G(y.join(s,"packages/kynver-runtime/package.json"))&&G(y.join(s,"package.json")))return s}return K({cwd:e})?.repo??null}function j(e={}){let r=e.cwd??process.cwd(),t=me(r,e.repoRoot);if(!t)return{};let n={};for(let o of Y){let s=y.join(t,ue[o]),a=pe(s);a&&(n[o]={version:a,source:"repo",path:s})}return n}function ge(e){return e==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${e}`]}function de(e){let{packageName:r,minimumVersion:t,effectiveVersion:n,effectiveSource:o,repoVersion:s}=e,a=[];return s&&L(s,t)?(a.push(`Use the monorepo checkout (${s}) instead of a stale npm install: ${ge(r).join("; ")}.`),a.push("Do not publish npm packages or wait on an operator release."),a):(n?a.push(`Upgrade ${r} from ${n} to >= ${t} (npm install -g ${r}@latest or align OpenClaw npm prefix).`):a.push(`Install ${r} >= ${t} before running memory-heavy AgentOS paths.`),r==="@kynver-app/runtime"&&a.push("Repo-source alternative: npm run kynver:build && npm run kynver"),o==="installed"&&s&&a.push(`Repo checkout reports ${s}; rebuild/link repo source if you develop from the monorepo.`),a)}function fe(e){if(e.length===0)return{version:null,source:"unknown"};let r=le(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 S(e={}){let r=(i,c)=>i?typeof i=="string"?{version:i,source:c}:i:null,t=Y.map(i=>{let c=$[i],g=[],C=r(e.installed?.[i],"installed"),k=r(e.repo?.[i],"repo"),M=r(e.self?.[i],"self");C&&g.push(C),k&&g.push(k),M&&g.push(M);let{version:l,source:d}=fe(g),J=k?.version??null,O=!!l,v=O?L(l,c):!0,z=v?[]:de({packageName:i,minimumVersion:c,effectiveVersion:l,effectiveSource:d,repoVersion:J}),X=v?O?`${f[i]} ${l} meets memory-cost minimum ${c} (${d}).`:`${f[i]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:`${f[i]} is below memory-cost minimum ${c}`+(l?` (effective ${l} via ${d})`:" (no version detected)")+".";return{packageName:i,displayName:f[i],minimumVersion:c,effectiveVersion:l,effectiveSource:d,ok:v,summary:X,remediation:z}}),n=t.filter(i=>!i.ok),o=t.filter(i=>i.effectiveVersion).length,s=n.length===0,a=s?o===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":o===t.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${o}/${t.length} present).`:`Memory-cost package guard blocked ${n.length} stale package(s): ${n.map(i=>`${i.packageName} < ${i.minimumVersion}`).join("; ")}.`;return{ok:s,summary:a,packages:t}}var R=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 U(e={}){let r=S(e);if(!r.ok)throw new R(r);return r}var ke=["@kynver-app/runtime","@kynver-app/openclaw-agent-os","@kynver-app/mcp-agent-os"];function m(e){let r=e?.trim();return r||null}function ve(e){return[...new Set(e.filter(r=>!!r))]}function Pe(){let e=Ee(),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 ve([p.join(r,"lib","node_modules"),p.join(r,"node_modules"),t.endsWith("node_modules")?t:p.join(t,"lib","node_modules")])}async function _e(e){try{let r=JSON.parse(await ye(e,"utf8"));return typeof r.version=="string"&&r.version.trim()?r.version.trim():null}catch{return null}}function Re(e){let r=Pe(),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 W(e=new Date().toISOString()){let r={};for(let t of ke){let n=null;for(let o of Re(t)){let s=await _e(o);s&&(!n||E(s,n.version)>0)&&(n={version:s,path:o})}n&&(r[t]={version:n.version,observedAt:e,path:n.path})}return r}import{existsSync as Se,readFileSync as he}from"node:fs";import{dirname as h,join as F}from"node:path";import{fileURLToPath as H}from"node:url";function Ae(e){let r=h(H(e));for(let t=0;t<6;t+=1){if(Se(F(r,"package.json")))return r;let n=h(r);if(n===r)break;r=n}throw new Error(`package.json not found above ${h(H(e))}`)}function Ce(e=import.meta.url){let r=F(Ae(e),"package.json"),t=JSON.parse(he(r,"utf8"));if(typeof t.version!="string"||!t.version.trim())throw new Error(`Missing package.json version at ${r}`);return t.version}var B=Ce();function Me(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 A(e={}){let[r,t]=await Promise.all([W(),Promise.resolve(j({cwd:e.cwd,repoRoot:e.repoRoot}))]),n={},o=e.selfPackageName==="@kynver-app/runtime"&&e.selfVersion?e.selfVersion:B;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:Me(r),repo:t,self:n}}async function Oe(e={}){let r=await A(e);return S(r)}async function Ne(e={}){let r=await A(e);return U(r)}export{A as buildMemoryCostPackageGuardInput,Ne as enforceMemoryCostPackageGuardAtStartup,Oe as evaluateMemoryCostPackageGuardAtStartup};
@@ -1,2 +1,2 @@
1
- var C=["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(C);var P=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],I=new Set(P);var f={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},O=Object.keys(f),g={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"};function _(n){let e=n.trim().split("-")[0]?.split("+")[0];if(!e)return null;let o=e.split(".");if(o.length<1||o.length>3)return null;let t=o.map(s=>Number.parseInt(s,10));if(t.some(s=>!Number.isFinite(s)||s<0))return null;for(;t.length<3;)t.push(0);return[t[0],t[1],t[2]]}function E(n,e){let o=_(n),t=_(e);if(!o||!t)return 0;for(let s=0;s<3;s+=1){if(o[s]>t[s])return 1;if(o[s]<t[s])return-1}return 0}function R(n,e){return E(n,e)>=0}function M(n){let e=null;for(let o of n)(!e||E(o,e)>0)&&(e=o);return e}function N(n){return n==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${n}`]}function x(n){let{packageName:e,minimumVersion:o,effectiveVersion:t,effectiveSource:s,repoVersion:i}=n,r=[];return i&&R(i,o)?(r.push(`Use the monorepo checkout (${i}) instead of a stale npm install: ${N(e).join("; ")}.`),r.push("Do not publish npm packages or wait on an operator release."),r):(t?r.push(`Upgrade ${e} from ${t} to >= ${o} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):r.push(`Install ${e} >= ${o} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&r.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&i&&r.push(`Repo checkout reports ${i}; rebuild/link repo source if you develop from the monorepo.`),r)}function b(n){if(n.length===0)return{version:null,source:"unknown"};let e=M(n.map(t=>t.version));if(!e)return{version:null,source:"unknown"};let o=n.find(t=>t.version===e)??n[0];return{version:o.version,source:o.source}}function k(n={}){let e=(r,a)=>r?typeof r=="string"?{version:r,source:a}:r:null,o=O.map(r=>{let a=f[r],u=[],y=e(n.installed?.[r],"installed"),d=e(n.repo?.[r],"repo"),S=e(n.self?.[r],"self");y&&u.push(y),d&&u.push(d),S&&u.push(S);let{version:c,source:l}=b(u),v=d?.version??null,m=c?R(c,a):!1,A=m?[]:x({packageName:r,minimumVersion:a,effectiveVersion:c,effectiveSource:l,repoVersion:v}),h=m?`${g[r]} ${c} meets memory-cost minimum ${a} (${l}).`:`${g[r]} is below memory-cost minimum ${a}`+(c?` (effective ${c} via ${l})`:" (no version detected)")+".";return{packageName:r,displayName:g[r],minimumVersion:a,effectiveVersion:c,effectiveSource:l,ok:m,summary:h,remediation:A}}),t=o.filter(r=>!r.ok),s=t.length===0,i=s?"All managed AgentOS packages meet memory-cost minimum versions.":`Memory-cost package guard blocked ${t.length} stale package(s): ${t.map(r=>`${r.packageName} < ${r.minimumVersion}`).join("; ")}.`;return{ok:s,summary:i,packages:o}}var p=class extends Error{result;constructor(e){let o=[e.summary,...e.packages.filter(t=>!t.ok).flatMap(t=>[`- ${t.summary}`,...t.remediation.map(s=>` \u2192 ${s}`)])];super(o.join(`
2
- `)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function w(n={}){let e=k(n);if(!e.ok)throw new p(e);return e}export{f as MEMORY_COST_PACKAGE_MIN_VERSIONS,p as MemoryCostPackageVersionGuardError,w as assertMemoryCostPackageVersionGuard,E as compareSemver,k as evaluateMemoryCostPackageVersionGuard};
1
+ var O=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],V=new Set(O);var M=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],D=new Set(M);var E={"@kynver-app/runtime":"0.1.83","@kynver-app/openclaw-agent-os":"0.1.43","@kynver-app/mcp-agent-os":"0.3.34"},N=Object.keys(E),m={"@kynver-app/runtime":"Kynver runtime","@kynver-app/openclaw-agent-os":"OpenClaw AgentOS plugin","@kynver-app/mcp-agent-os":"AgentOS MCP server"};function v(n){let e=n.trim().split("-")[0]?.split("+")[0];if(!e)return null;let t=e.split(".");if(t.length<1||t.length>3)return null;let r=t.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 y(n,e){let t=v(n),r=v(e);if(!t||!r)return 0;for(let s=0;s<3;s+=1){if(t[s]>r[s])return 1;if(t[s]<r[s])return-1}return 0}function R(n,e){return y(n,e)>=0}function x(n){let e=null;for(let t of n)(!e||y(t,e)>0)&&(e=t);return e}function b(n){return n==="@kynver-app/runtime"?["npm run kynver:build","npm run kynver"]:[`npm run build -w ${n}`]}function w(n){let{packageName:e,minimumVersion:t,effectiveVersion:r,effectiveSource:s,repoVersion:a}=n,i=[];return a&&R(a,t)?(i.push(`Use the monorepo checkout (${a}) instead of a stale npm install: ${b(e).join("; ")}.`),i.push("Do not publish npm packages or wait on an operator release."),i):(r?i.push(`Upgrade ${e} from ${r} to >= ${t} (npm install -g ${e}@latest or align OpenClaw npm prefix).`):i.push(`Install ${e} >= ${t} before running memory-heavy AgentOS paths.`),e==="@kynver-app/runtime"&&i.push("Repo-source alternative: npm run kynver:build && npm run kynver"),s==="installed"&&a&&i.push(`Repo checkout reports ${a}; rebuild/link repo source if you develop from the monorepo.`),i)}function T(n){if(n.length===0)return{version:null,source:"unknown"};let e=x(n.map(r=>r.version));if(!e)return{version:null,source:"unknown"};let t=n.find(r=>r.version===e)??n[0];return{version:t.version,source:t.source}}function A(n={}){let e=(o,c)=>o?typeof o=="string"?{version:o,source:c}:o:null,t=N.map(o=>{let c=E[o],l=[],S=e(n.installed?.[o],"installed"),g=e(n.repo?.[o],"repo"),_=e(n.self?.[o],"self");S&&l.push(S),g&&l.push(g),_&&l.push(_);let{version:u,source:p}=T(l),h=g?.version??null,k=!!u,f=k?R(u,c):!0,C=f?[]:w({packageName:o,minimumVersion:c,effectiveVersion:u,effectiveSource:p,repoVersion:h}),P=f?k?`${m[o]} ${u} meets memory-cost minimum ${c} (${p}).`:`${m[o]} is not installed \u2014 memory-cost minimum ${c} applies when this package is present.`:`${m[o]} is below memory-cost minimum ${c}`+(u?` (effective ${u} via ${p})`:" (no version detected)")+".";return{packageName:o,displayName:m[o],minimumVersion:c,effectiveVersion:u,effectiveSource:p,ok:f,summary:P,remediation:C}}),r=t.filter(o=>!o.ok),s=t.filter(o=>o.effectiveVersion).length,a=r.length===0,i=a?s===0?"No managed AgentOS packages detected \u2014 memory-cost version guard has nothing to enforce.":s===t.length?"All managed AgentOS packages meet memory-cost minimum versions.":`Detected AgentOS packages meet memory-cost minimum versions (${s}/${t.length} present).`:`Memory-cost package guard blocked ${r.length} stale package(s): ${r.map(o=>`${o.packageName} < ${o.minimumVersion}`).join("; ")}.`;return{ok:a,summary:i,packages:t}}var d=class extends Error{result;constructor(e){let t=[e.summary,...e.packages.filter(r=>!r.ok).flatMap(r=>[`- ${r.summary}`,...r.remediation.map(s=>` \u2192 ${s}`)])];super(t.join(`
2
+ `)),this.name="MemoryCostPackageVersionGuardError",this.result=e}};function K(n={}){let e=A(n);if(!e.ok)throw new d(e);return e}export{E as MEMORY_COST_PACKAGE_MIN_VERSIONS,d as MemoryCostPackageVersionGuardError,K as assertMemoryCostPackageVersionGuard,y as compareSemver,A as evaluateMemoryCostPackageVersionGuard};
@@ -0,0 +1,3 @@
1
+ export { parseExecutorRefRoutingIntent, executorRefRequestsNonCursorWorker, type ExecutorRefRoutingIntent, } from "../executor-ref-routing.js";
2
+ export { assessDispatchModelGuard, type DispatchModelGuardInput, type DispatchModelGuardResult, } from "../dispatch-model-guard.js";
3
+ export { GLOBAL_DEFAULT_MODEL, CURSOR_DEFAULT_MODEL, inferModelRoutingFromTask, resolveGlobalDefaultModel, resolveModelFallback, resolveWorkerLaunch, type ModelRoutingDecision, } from "../model-routing.js";
@@ -0,0 +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}};var d=a(()=>{"use strict"});var br,$t,Rr,Ht,V=a(()=>{"use strict";br=["ANTHROPIC_API_KEY","ANALYST_API_KEY","RECRUITER_API_KEY","AUTH_SECRET","NEXTAUTH_SECRET","DATABASE_URL","PRODUCTION_DATABASE_URL","KYNVER_PRODUCTION_DATABASE_URL","REDIS_URL","GOOGLE_CLIENT_SECRET","GITHUB_CLIENT_SECRET","KYNVER_API_KEY","KYNVER_SERVICE_SECRET","KYNVER_RUNTIME_SECRET","KYNVER_CRON_SECRET","OPENCLAW_CRON_SECRET","QSTASH_TOKEN","QSTASH_CURRENT_SIGNING_KEY","QSTASH_NEXT_SIGNING_KEY","TOOL_SECRETS_KEK","TOOL_EXECUTOR_DISPATCH_SECRET","CLOUDFLARE_API_TOKEN","STRIPE_SECRET_KEY","STRIPE_WEBHOOK_SECRET","STRIPE_IDENTITY_WEBHOOK_SECRET","VOYAGE_API_KEY","PERPLEXITY_API_KEY","FRED_API_KEY","FMP_API_KEY","CURSOR_API_KEY","MEMORY_CONTENT_KEK","LLM_BYOK_KEK","KYNVER_COMMAND_AUTH_KEY","KYNVER_INSTRUCTION_BUNDLE_KEY","KYNVER_MEMORY_LEDGER_KEY","KYNVER_JWKS_PRIVATE_KEY_JWK"],$t=new Set(br),Rr=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],Ht=new Set(Rr)});var G=a(()=>{"use strict";d();V()});var E=a(()=>{"use strict"});var z=a(()=>{"use strict";G();E()});var R=a(()=>{"use strict"});var I=a(()=>{"use strict"});var fe=a(()=>{"use strict"});var on,sn,q=a(()=>{"use strict";on=25*1024*1024*1024,sn=12*1024*1024*1024});var dn,mn,ge=a(()=>{"use strict";q();dn=5*1024*1024*1024,mn=10*1024*1024*1024});var bn,Rn,J=a(()=>{"use strict";ge();q();bn=30*1024*1024*1024,Rn=15*1024*1024*1024});var ye=a(()=>{"use strict";d()});import xr from"node:path";var An,X=a(()=>{"use strict";E();ye();An=xr.join(".openclaw","harness")});var K=a(()=>{"use strict";v();R();I();B();X()});var ve=a(()=>{"use strict";v();X();K();d()});var Q=a(()=>{"use strict";ve();d()});var ke=a(()=>{"use strict";Q();d()});var xe=a(()=>{"use strict"});var _e=a(()=>{"use strict";xe();d()});var Se=a(()=>{"use strict"});var Ee=a(()=>{"use strict";Se()});var Ce=a(()=>{"use strict";Ee();d()});var Oe=a(()=>{"use strict"});var Ae=a(()=>{"use strict"});var Pe=a(()=>{"use strict"});var ee=a(()=>{"use strict"});var we=a(()=>{"use strict"});var Ie=a(()=>{"use strict";ee();we()});var Ne=a(()=>{"use strict";_e();Ce();Oe();Ae();G();Pe();Ie();ee();d()});var Ke=a(()=>{"use strict";Ne()});var wr,Ir,Be=a(()=>{"use strict";fe();v();R();I();B();J();Q();ke();Ke();d();wr=500*1024*1024,Ir=4*1024*1024*1024});var B=a(()=>{"use strict";Be()});import{homedir as Nr}from"node:os";import Kr from"node:path";var De,re=a(()=>{"use strict";De=Kr.join(Nr(),".kynver",".env")});var We=a(()=>{"use strict"});var Te=a(()=>{"use strict";We()});var Ue=a(()=>{"use strict"});var te=a(()=>{"use strict";Te();Ue()});var Me=a(()=>{"use strict"});var Le=a(()=>{"use strict";Me()});var D=a(()=>{"use strict";re();E();v();te();Le()});var Fe=a(()=>{"use strict";R();R()});var $e=a(()=>{"use strict";re();te();D()});var He=a(()=>{"use strict";z();R();Fe();v();D();$e();d();K()});import{existsSync as Fr,mkdirSync as Es,readFileSync as $r,writeFileSync as Cs}from"node:fs";import{homedir as Hr,totalmem as As}from"node:os";import ne from"node:path";function x(){if(!Fr(je))return{};try{return JSON.parse($r(je,"utf8"))}catch{return{}}}var Ye,je,Ls,Fs,$s,v=a(()=>{"use strict";z();E();d();R();I();B();J();D();He();K();Ye=ne.join(Hr(),".kynver"),je=ne.join(Ye,"config.json"),Ls=ne.join(Ye,"credentials");Fs=500*1024*1024,$s=4*1024*1024*1024});var pr=/^claude[-_]/i,fr=/^(?:opus|sonnet|haiku)\b/i;function me(e){let r=e.trim();return pr.test(r)||fr.test(r)}function pe(e){let r=e.trim().toLowerCase();return r.startsWith("gpt-")||r.startsWith("gpt5")||r.includes("codex")}function j(e){let r=e.trim().toLowerCase();return r.includes("composer")||r.includes("cursor")}function gr(e){return pe(e)?"codex":me(e)?"claude":(j(e),"cursor")}function hr(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 yr(e){if(!e.startsWith("harness-lane:"))return null;let r=e.split(":").map(o=>o.trim()).filter(Boolean);if(r.length<2)return null;let t=r[1],n=r.slice(2).join(":");return n?me(n)||pe(n)||j(n)?{lane:t,model:n,provider:gr(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?hr(r)??yr(r):null}function Y(e){let r=h(e);return r?!!(r.provider&&r.provider!=="cursor"||r.model&&!j(r.model)):!1}v();var Ve={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0}};function _(e){return Ve[e]}function Ge(){return Object.values(Ve)}import{existsSync as Yr}from"node:fs";import{homedir as Vr}from"node:os";import C from"node:path";import{createHash as ze}from"node:crypto";import{statSync as jr}from"node:fs";import{spawnSync as qe}from"node:child_process";function y(e){try{let r=jr(e),t=`${e}|${r.size}|${r.mtimeMs}`;return ze("sha256").update(t).digest("hex").slice(0,16)}catch{return}}function S(e){return ze("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function m(e,r){for(let t of r){let n=process.env[t]?.trim();if(n)return n}return e}function p(e,r,t={}){let n=t.timeoutMs??8e3;try{let o=qe(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 W(e,r,t={}){let n=t.timeoutMs??8e3;try{return qe(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 Gr="codex";function zr(){let e=Vr();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 qr(e){return C.dirname(e)}function Jr(e){let r,t;for(let n of zr()){if(!Yr(n))continue;r??=n;let o=p(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:qr(n)}});if(t??=o,o.ok)return{authPath:n,login:o}}return{authPath:r,login:t??p(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function Je(e=new Date().toISOString()){let r=m(Gr,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:S("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}=Jr(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 Xr}from"node:fs";import{homedir as Zr}from"node:os";import oe from"node:path";function Qr(){let e=process.env.HERMES_HOME?.trim(),r=e?oe.resolve(e):oe.join(Zr(),".hermes");return oe.join(r,"auth.json")}function T(e=new Date().toISOString()){let r=m("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=p(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=Qr(),o=Xr(n),i=W(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 O(e=new Date().toISOString()){let r=Je(e);if(r.ready)return{...r,path:"codex_cli"};let t=T(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 Xe=["low","medium","high"],Ze={oauth_local:0,subscription_hermes:0,runner_token:1,api_key_env:2,none:3};function Qe(e,r){let t=_(e);return r==="privileged"?t.supportsPrivilegedPlatformActions:r==="low"?t.supportsLowRiskOrchestration:!0}function et(e,r){let t=_(e.providerId),n=_(r.providerId),o=Xe.indexOf(t.costTier)-Xe.indexOf(n.costTier);if(o!==0)return o;let i=Ze[e.binding.authSource]-Ze[r.binding.authSource];return i!==0?i:e.providerId.localeCompare(r.providerId)}function ie(e){let r=Ge().map(l=>({providerId:l.id,binding:e.inventory.bindings[l.id]})).filter(l=>l.binding.ready&&Qe(l.providerId,e.riskClass));if(r.length===0)return null;let n=[...r].sort(et)[0],o="codex";if(n.providerId===o)return{providerId:n.providerId,binding:n.binding};let i=e.inventory.bindings[o],s;return Qe(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 rt}from"node:fs";import{homedir as tt}from"node:os";import nt from"node:path";var ot="claude";function it(){let e=tt();return[nt.join(e,".claude",".credentials.json")]}function er(e=new Date().toISOString()){let r=m(ot,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!0,authSource:"api_key_env",sessionFingerprint:S("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let t=p(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=it().find(s=>rt(s)),o=W(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 st}from"node:fs";import{homedir as at}from"node:os";import lt from"node:path";var ut="agent";function ct(){let e=at();return[lt.join(e,".config","cursor","auth.json")]}function rr(e=new Date().toISOString()){let r=m(ut,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!0,authSource:"api_key_env",sessionFingerprint:S("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let t=p(r,["-v"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=ct().find(i=>st(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 dt,readFileSync as mt}from"node:fs";import{homedir as pt}from"node:os";import se from"node:path";var ft=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function gt(){let e=process.env.HERMES_HOME?.trim(),r=e?se.resolve(e):se.join(pt(),".hermes");return se.join(r,".env")}function ht(e){try{let r=mt(e,"utf8"),t=[];for(let n of ft)new RegExp(`^${n}=`,"m").test(r)&&t.push(n);return t}catch{return[]}}function tr(e=new Date().toISOString()){let r=m("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),t=p(r,["--version"],{okNote:`${r} CLI available`,failPrefix:`${r} CLI not available`}),n=gt(),o=dt(n),i=o?ht(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 nr(e={}){let r=e.nowIso?.()??new Date().toISOString(),t=O(r),n={codex:t,cursor:rr(r),claude:er(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:tr(r),hermesOpenAiCodex:T(r),codexAdapterPath:t.path,readyCount:o}}var yt=[/\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],bt=[/\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 ae(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function Rt(e){let r=ae(e,"executorRef").toLowerCase(),t=ae(e,"title").toLowerCase(),n=ae(e,"description").toLowerCase(),o=`${r}
2
+ ${t}
3
+ ${n}`;return yt.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":bt.some(i=>i.test(o))?"low":"elevated"}function vt(e){let r=_(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 kt(e){let r=e.inventory??nr();return e.codexBinding?{...r,bindings:{...r.bindings,codex:e.codexBinding}}:r}function k(e){let r=vt({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 or(e){let r=e.task??{},t=Rt(r),n=kt({inventory:e.inventory,codexBinding:e.codexBinding??(e.inventory?null:O())}),o=e.preferLowCost===!1?null:e.explicitProvider?.trim().toLowerCase(),i=e.explicitModel?.trim()||void 0,s=le;if(o==="codex"||o==="provider:codex"){let u=n.bindings.codex;if(!u.ready){let g=ie({inventory:n,riskClass:t});return k(g?{providerId:g.providerId,binding:g.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 k({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 k({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 k({providerId:"claude",binding:u,riskClass:t,routingRule:"orchestration:explicit_claude",model:i})}let l=ie({inventory:n,riskClass:t});if(l)return k({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 k({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"}})}V();d();var U="claude-sonnet-4-6",A="claude-opus-4-8";d();d();var qa=process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4";function _t(){return process.env.KYNVER_CODEX_DEFAULT_MODEL?.trim()||"gpt-5.4"}var M=_t();d();var ce="openai-compatible",dl=600*1e3;var ar="claude-sonnet-4-6",$="composer-2.5";function f(e,r){let t=e[r];return typeof t=="string"?t.trim():""}function St(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 ir(e){return e.toLowerCase()}function H(e=x()){let r=e.defaultModel?.trim();if(r)return r;let t=process.env.KYNVER_DEFAULT_MODEL?.trim();return t||ar}function L(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 Et(e,r){let t=e.trim().toLowerCase(),n=r?.trim();return t==="cursor"?{model:$,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 sr(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 Ct=new Set(["report_reviewer","deep_reviewer","plan_reviewer"]);function lr(e,r,t){return Ct.has(e)?A:r.includes("review")||/^review[\s:]/.test(t)||t.includes("critique")?A:U}function ur(e){let r=ir(f(e,"executorRef")),t=f(e,"title").toLowerCase(),n=f(e,"priority")||"normal",o=ir(f(e,"roleLane"));if(r.includes("provider:claude")||r.startsWith("claude:")){let s=lr(o,r,t);return{provider:"claude",model:s,rule:s===A?"factory:claude_review":"factory:claude_implementation"}}if(r.includes("provider:codex")||r.startsWith("codex:"))return{provider:"codex",model:M,rule:"lane:codex_orchestration"};if(r.includes("provider:openai")||r.startsWith("openai-compatible:")){let s=h(f(e,"executorRef"));return{provider:ce,...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:M,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 sr(r,t)||o==="deep_reviewer"?{provider:"cursor",rule:"lane:deep_review"}:{provider:"cursor",rule:"lane:review"};if(sr(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=H();return{model:i,provider:L(i),rule:"default:global"}}function Ot(e){return e?h(f(e,"executorRef")):null}function At(e){let r,t=Ot(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=Et(l,e.explicitProvider);c?r=c:r={model:l,provider:e.explicitProvider?.trim()||L(l),rule:"explicit:cli",requestedModel:l}}else if(n)r={model:n,provider:o||L(n),rule:t?.rule??"executor_ref:model",requestedModel:n};else if(e.task&&F(e.task)){let l=St(e.task),c,u;if(l)c=l,u="task:provider_override";else{let g=typeof e.task.roleLane=="string"?e.task.roleLane.toLowerCase():"",de=typeof e.task.executorRef=="string"?e.task.executorRef.toLowerCase():"",mr=typeof e.task.title=="string"?e.task.title.toLowerCase():"";c=lr(g,de,mr),u=c===A?"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=ur(e.task);r={...l,requestedModel:l.model}}else{let l=H();r={model:l,provider:e.explicitProvider?.trim()||L(l),rule:"default:global",requestedModel:l}}let i=cr({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"||b(i.provider)&&(e.explicitProviderIsOperatorOverride||F(e.task))||i.provider===ce)return i;let s=or({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??M:i.model,rule:s.rule,requestedModel:i.requestedModel,orchestrationAudit:s.audit}}function Pt(e,r,t){return e||r||t||H()||U}var le="cursor";var wt=new Set(["claude","opus","anthropic"]),It=[/\[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 b(e){if(!e?.trim())return!1;let r=e.trim().toLowerCase();return wt.has(r)?!0:r.includes("claude")||r.includes("opus")}function F(e){if(!e)return!1;let r=e.workerProviderOverride;if(typeof r=="string"&&b(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&&b(n.provider)||n?.model&&b(Nt(n.model)))return!0;let o=P(e,"description");if(It.some(s=>s.test(o)))return!0;let i=P(e,"title");return!!/\[use-claude-worker\]/i.test(i)}function Nt(e){let r=e.trim().toLowerCase();return/^claude[-_]/.test(r)||/^(?:opus|sonnet|haiku)\b/.test(r)?"claude":r}function Kt(e,r){return{provider:le,model:$,rule:`policy:cursor_default${r}`,requestedModel:e}}var Bt=["explicit:","executor_ref:","factory:","task:"];function Dt(e){return Bt.some(r=>e.startsWith(r))}function Wt(e){if(!e)return!1;let r=e.workerProviderOverride;return typeof r=="string"&&r.trim()||h(P(e,"executorRef"))?.provider?!0:F(e)}function cr(e){let{routing:r,task:t}=e,n=e.explicitProvider?.trim().toLowerCase();if(e.explicitProviderIsOperatorOverride&&b(n))return{...r,provider:"claude",rule:r.rule.startsWith("explicit:")?r.rule:"explicit:operator_provider"};if(n||Dt(r.rule)||Wt(t)||!b(r.provider))return r;let o=r.rule&&r.rule!=="default:global"?`:${r.rule.replace(/:/g,"_")}`:"";return Kt(r.model,o)}function Tt(e){let r=e?.executorRef;return typeof r=="string"?r.trim():""}function dr(e){return e?.trim()||void 0}function Ut(e){let r=Tt(e.task),t=h(r),n=e.explicitProvider?.trim().toLowerCase(),o=dr(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=dr(e.routing.model),g={provider:c,model:u,rule:e.routing.rule};return i&&i!=="cursor"||r&&Y(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:g}:s&&u&&s!==u&&!b(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:g}:{ok:!0,requested:{provider:i,model:s,source:l},resolved:g}:{ok:!0,resolved:g}}export{$ as CURSOR_DEFAULT_MODEL,ar as GLOBAL_DEFAULT_MODEL,Ut as assessDispatchModelGuard,Y as executorRefRequestsNonCursorWorker,ur as inferModelRoutingFromTask,h as parseExecutorRefRoutingIntent,H as resolveGlobalDefaultModel,Pt as resolveModelFallback,At as resolveWorkerLaunch};
@@ -1,8 +1,8 @@
1
- var l=(e,r,n)=>()=>{if(n)throw n[0];try{return e&&(r=e(e=0)),r}catch(t){throw n=[t],t}};function j(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let n=JSON.parse(r);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{return null}return null}function ue(e){let r=e.trim();if(!r)return null;let n=j(r);if(n)return n;let t=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let u=j(s[1]??"");u&&t.push(u)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let u=j(r.slice(i,a+1));u&&t.push(u)}return t.length>0?t[t.length-1]:null}function ce(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?ue(r)??(r.trim()||null):r;let n=typeof e.summary=="string"?e.summary.trim():"";if(!n)return null;let t=ue(n);return t||n}var de=l(()=>{"use strict"});import{existsSync as Nr,mkdirSync as tt,readFileSync as Wr,readdirSync as ot,renameSync as st,rmSync as it,statSync as me,writeFileSync as at}from"node:fs";function fe(e){console.error(e),process.exit(1)}function Y(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function A(e){try{return JSON.parse(e)}catch{return null}}function O(e){try{return me(e).size}catch{return 0}}function w(e){try{return me(e).mtime.toISOString()}catch{return null}}function pe(e,r){return Nr(e)?Wr(e,"utf8").split(`
1
+ var l=(e,r,n)=>()=>{if(n)throw n[0];try{return e&&(r=e(e=0)),r}catch(t){throw n=[t],t}};function Y(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let n=JSON.parse(r);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{return null}return null}function ce(e){let r=e.trim();if(!r)return null;let n=Y(r);if(n)return n;let t=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let u=Y(s[1]??"");u&&t.push(u)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let u=Y(r.slice(i,a+1));u&&t.push(u)}return t.length>0?t[t.length-1]:null}function de(e){let r=e.finalResult??e.final_result;if(r!=null)return typeof r=="string"?ce(r)??(r.trim()||null):r;let n=typeof e.summary=="string"?e.summary.trim():"";if(!n)return null;let t=ce(n);return t||n}var me=l(()=>{"use strict"});import{existsSync as Wr,mkdirSync as at,readFileSync as Tr,readdirSync as lt,renameSync as ut,rmSync as ct,statSync as fe,writeFileSync as dt}from"node:fs";function pe(e){console.error(e),process.exit(1)}function V(e){return process.platform!=="win32"?e:{windowsHide:!0,...e}}function w(e){try{return JSON.parse(e)}catch{return null}}function O(e){try{return fe(e).size}catch{return 0}}function I(e){try{return fe(e).mtime.toISOString()}catch{return null}}function ge(e,r){return Wr(e)?Tr(e,"utf8").split(`
2
2
  `).slice(-r).join(`
3
- `):""}function I(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function ge(e){let r=null,n=-1/0;for(let t of e){if(!t)continue;let o=Date.parse(t);Number.isFinite(o)&&o>n&&(n=o,r=t)}return r}function V(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var p=l(()=>{"use strict"});import{existsSync as Kr,readFileSync as Tr}from"node:fs";function he(e){return e==="complete"}function ye(e){return he(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function be(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!Kr(e))return r;let n=Date.now()+Br,t=new Date(n).toISOString(),o=Tr(e,"utf8").split(`
4
- `).filter(Boolean);for(let s of o){let i=A(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let u=String(a.ts),m=Date.parse(u);Number.isFinite(m)&&m>n?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:u,clampedTo:t}):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)),he(r.lastHeartbeatPhase)&&(r.terminalFinalResult=ce(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 Br,ke=l(()=>{"use strict";de();p();Br=6e4});function xe(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function P(e){if(!e)return[];let r=[],n="",t,o=!1;for(let s of e){if(o){n+=s,o=!1;continue}if(s==="\\"){o=!0;continue}if(t){s===t?t=void 0:n+=s;continue}if(s==='"'||s==="'"){t=s;continue}if(/\s/.test(s)){n&&(r.push(n),n="");continue}n+=s}return n&&r.push(n),r}function Se(e){let r=xe(e[0]);return!!(r&&Ur.has(r))}function Mr(e){let r=e.trim();return r.includes("/")?r.split("/").pop()??r:r}function Fr(e){if(!e||e.includes("*"))return null;let r=Mr(e);return!r||r.includes("/")?null:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(r)?r:null}function _e(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function G(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function Hr(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function Lr(e){let r=[];for(let n=1;n<e.length;n+=1){let t=e[n];if(t){if(t==="--"){r.push(...e.slice(n+1));break}if(t.startsWith("-")){if(t.includes("="))continue;Re.has(t)&&(n+=1);continue}r.push(t)}}return r}function $r(e){let r=!1,n=e.map((o,s)=>{let i=Hr(o),a=e[s-1];return a&&Re.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),t=Lr(n);if(t.length===2){let[o,s]=t;if(G(s))return{argv:[n[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};let i=Fr(s);if(i)return{argv:[n[0]??"rg","-g",i,o,"."],changed:!0}}return r&&t.length===1?{argv:[...n,"."],changed:!0}:{argv:n,changed:r}}function ve(e){for(let r=1;r<e.length;r+=1){let n=e[r];if(n&&(n==="-c"||n==="-lc"||n==="-cl"||/^-[a-zA-Z]*c[a-zA-Z]*$/u.test(n)))return r+1}return-1}function N(e){let r=e.trim();if(!r)return{command:r,wrapped:!1};let n=P(r);if(!n.length)return{command:r,wrapped:!1};let t=xe(n[0]);if(!t||!Dr.has(t))return{command:r,wrapped:!1};let o=ve(n);if(o<0||o>=n.length)return{command:r,wrapped:!1};let s=n.slice(o).join(" ").trim();return s?{command:s,wrapped:!0}:{command:r,wrapped:!1}}function jr(e,r){let n=e.trim(),t=P(n),o=ve(t);if(o<0)return r;let s=t.slice(0,o).join(" "),i=r.includes("'")?`"${r.replace(/"/g,'\\"')}"`:`'${r}'`;return`${s} ${i}`}function Yr(e){let r=e.trim(),n=N(r),t=P(n.command);if(!t.length||!Se(t))return{segment:r,changed:!1};let o=$r(t);if(!o.changed)return{segment:r,changed:!1};let s=o.argv.join(" ");return n.wrapped?{segment:jr(r,s),changed:!0}:{segment:s,changed:!0}}function z(e){let r=e.trim();if(!r)return{command:r,changed:!1};let n=r.includes("&&")?" && ":r.includes("||")?" || ":"; ",t=r.split(/\s*(?:&&|\|\||;)\s*/u),o=!1,s=t.map(i=>{let a=Yr(i);return a.changed&&(o=!0),a.segment});return o?{command:s.join(n),changed:!0}:{command:r,changed:!1}}function Ee(e){let r=N(e).command,n=P(r.trim());return n.length&&Se(n)?!0:/\b(rg|ripgrep)\b/i.test(r)}function Ce(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 n=e.match(/^search\s+"(.+)"\s+in\s+(.+)$/iu);return n?{pattern:n[1],target:n[2]?.trim()}:{}}function Vr(e){let{pattern:r,target:n}=Ce(e);return r?G(n)?{kind:"rg_exclude_syntax",pattern:r,target:n}:_e(n)?{kind:"bad_scope",pattern:r,target:n}:{kind:"not_repo_search",pattern:r,target:n}:{kind:"not_repo_search"}}function Gr(e){let{pattern:r,target:n}=Ce(e);if(!r)return null;if(G(n)){let t=`${n.trim()}/**`;return{command:`rg "${r}" -g '${t}' .`,changed:!0}}return n&&_e(n)?{command:`rg -g ${n} "${r}" .`,changed:!0}:null}function zr(e){if(e.kind==="bad_scope"&&e.pattern?.includes("agent-os-land-pr")&&e.target==="package.json")return"Search package.json with a glob from the repo root: `rg -g package.json agent-os-land-pr .` \u2014 or run `node scripts/agent-os-land-pr.mjs <pr-url>` directly.";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 Jr(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 J(e){let r=e.meta?.trim()||(e.command?Jr(e.command):null)||null;if(r){let n=Vr(r),t=zr(n);if(t)return t;let o=Gr(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 n=z(e.command);if(n.changed)return`Ripgrep scope may be invalid. Retry with: \`${n.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 Ur,Dr,Re,Ae=l(()=>{"use strict";Ur=new Set(["rg","ripgrep","grep"]),Dr=new Set(["bash","sh","dash","zsh"]),Re=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function S(e,r=200){let n=e.replace(/\s+/g," ").trim();return n.length>r?`${n.slice(0,r-1)}\u2026`:n}function Zr(e){let r=e.trim();if(!r)return null;if(r.startsWith("{"))try{return JSON.parse(r)}catch{}let n=r.indexOf("{"),t=r.lastIndexOf("}");if(n>=0&&t>n)try{return JSON.parse(r.slice(n,t+1))}catch{return null}return null}function _(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Qr(e){let r=e.metadata;if(!_(r))return null;let n=r.vulnerabilities;if(!_(n))return null;let t=s=>typeof n[s]=="number"?n[s]:0,o={info:t("info"),low:t("low"),moderate:t("moderate"),high:t("high"),critical:t("critical"),total:t("total")};return typeof n.total!="number"&&!o.critical&&!o.high&&!o.moderate&&!o.low&&!o.info?null:o}function en(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 n=r.length?r.join(", "):"see report";return`npm audit: ${e.total} vulnerabilit${e.total===1?"y":"ies"} (${n}) \u2014 remediation required`}function rn(e,r){let n=e.error;if(_(n)){let s=typeof n.summary=="string"?n.summary.trim():"",i=typeof n.code=="string"?n.code.trim():"";if(s)return i?`${i}: ${s}`:s;if(i)return i}let t=typeof e.message=="string"?e.message.trim():"";if(t)return t;let o=r.trim();return o?S(o.split(`
5
- `).find(Boolean)??o,160):"npm audit failed"}function nn(e){let r=`${e.stdout}
6
- ${e.stderr}`.trim(),n=Zr(r);if(!n||!_(n)){let o=S(r||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit failed (invalid or missing JSON): ${o}`,parseError:"invalid_json"}}if(_(n.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${rn(n,e.stderr)}`};let t=Qr(n);return t?e.exitCode===0&&t.total===0?{kind:"success",exitCode:0,summary:"npm audit: no vulnerabilities reported",audit:t}:{kind:"audit_findings",exitCode:e.exitCode,summary:en(t),audit:t}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function tn(e){return qr.test(e)}function on(e){let r=N(e).command;return Oe.test(e)||Oe.test(r)||Ee(e)}function sn(e){let r=J({command:e.command,exitCode:e.exitCode});if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"ripgrep finished (exit 0)"};if(e.exitCode===1){let t=(e.stderr||e.interleaved).trim();if(t&&Xr.test(t)){let i=S(t,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=z(e.command),s=o.changed&&!r?` Retry with: \`${o.command}\`.`:"";return{kind:"search_no_matches",exitCode:1,summary:r??`ripgrep: no matches (exit 1).${s} Try a broader pattern or search from the repo root.`}}let n=S(e.interleaved||e.stdout||e.stderr||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:r??`ripgrep failed (exit ${e.exitCode}): ${n}`}}function we(e){let r=e.stdout??"",n=e.stderr??"",t=e.interleavedOutput??"";if(tn(e.command)){let i=r.trim()||t.trim()||n.trim();return nn({exitCode:e.exitCode,stdout:i,stderr:n})}if(on(e.command))return sn({command:e.command,exitCode:e.exitCode,stdout:r,stderr:n,interleaved:t});let o=J({command:e.command,exitCode:e.exitCode});if(o&&e.exitCode!==0)return{kind:"command_failure",exitCode:e.exitCode,summary:o};if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"command succeeded (exit 0)"};let s=S(t||r||n||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var qr,Oe,Xr,Ie=l(()=>{"use strict";Ae();qr=/\bnpm\s+audit\b/i,Oe=/\b(rg|ripgrep)\b/i,Xr=/\b(error|invalid|unknown|panic|not found)\b/i});import{existsSync as an,readFileSync as ln}from"node:fs";function un(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function cn(e){if(!e)return null;for(let r of Object.keys(e))if(r.endsWith("ToolCall")){let n=r.slice(0,-8);return n.length?n:r}return null}function dn(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",r.is_error&&(e.error=String(r.result||r.api_error_status||"stream result error"))}function mn(e){if(e.type!=="tool_call"||e.subtype!=="completed")return null;let n=(e.tool_call&&typeof e.tool_call=="object"&&!Array.isArray(e.tool_call)?e.tool_call:null)?.shellToolCall;if(!n||typeof n!="object"||Array.isArray(n))return null;let t=n,o=t.args,s=o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.command=="string"?String(o.command):"",i=t.result;if(!i||typeof i!="object"||Array.isArray(i))return null;let a=i.success??i.failure;if(!a||typeof a!="object"||Array.isArray(a))return null;let u=a,m=typeof u.exitCode=="number"?u.exitCode:0;return{command:s,exitCode:m,stdout:typeof u.stdout=="string"?u.stdout:"",stderr:typeof u.stderr=="string"?u.stderr:"",interleaved:typeof u.interleavedOutput=="string"?u.interleavedOutput:""}}function fn(e,r){r.kind==="success"||r.kind==="search_no_matches"||(e.lastShellOutcome=r)}function Pe(e){let r={firstEventAt:null,lastEventAt:null,currentTool:null,finalResult:null,error:null,lastShellOutcome:null};if(!an(e))return r;let n=ln(e,"utf8").split(`
7
- `).filter(Boolean);for(let t of n){let o=A(t);if(!o)continue;let s=un(o);if(s&&(r.firstEventAt||=s,r.lastEventAt=s),o.type==="stream_event"&&o.event&&typeof o.event=="object"&&o.event.type==="content_block_start"){let a=o.event.content_block;a?.type==="tool_use"&&(r.currentTool=String(a.name||"tool"))}if(o.type==="assistant"&&o.message&&typeof o.message=="object"){let a=o.message.content;if(Array.isArray(a)){let u=a.find(m=>m?.type==="tool_use");u&&(r.currentTool=String(u.name||r.currentTool))}}if(o.type==="tool_call"&&o.subtype==="started"){let a=o.tool_call&&typeof o.tool_call=="object"&&!Array.isArray(o.tool_call)?o.tool_call:void 0,u=cn(a);u&&(r.currentTool=u)}let i=mn(o);i&&fn(r,we({command:i.command,exitCode:i.exitCode,stdout:i.stdout,stderr:i.stderr,interleavedOutput:i.interleaved})),o.type==="result"&&dn(r,o)}return r}var Ne=l(()=>{"use strict";Ie();p()});function gn(e,r=240){let n=e.replace(/\s+/g," ").trim();return n.length>r?`${n.slice(0,r-1)}\u2026`:n}function We(e){let r=(e??"").trim();if(!r)return null;for(let n of pn)if(n.test.test(r))return{blocked:!0,reason:`${n.label}: ${gn(r)}`};return null}var pn,Ke=l(()=>{"use strict";pn=[{test:/\b(?:invalid|unknown|unsupported|unrecognized)\b[^.\n]*\bmodel\b/i,label:"provider rejected the requested model"},{test:/\bmodel\b[^.\n]*\b(?:not\s+(?:found|supported|available|recognized|valid)|is\s+not\s+valid|does\s+not\s+exist)/i,label:"provider rejected the requested model"},{test:/\b(?:did you mean|available models|choose (?:a|one of)|supported models)\b/i,label:"provider rejected the requested model"},{test:/model preflight failed/i,label:"model/provider preflight failed"},{test:/\b(?:command not found|ENOENT|is the .*CLI on PATH|executable not found|no such file or directory)\b/i,label:"provider CLI is missing or not on PATH"},{test:/\bfailed to spawn\b/i,label:"provider failed to spawn the worker process"},{test:/\b(?:not logged in|unauthorized|authentication (?:failed|required)|invalid api key|missing api key|401)\b/i,label:"provider authentication failed"},{test:/\b(?:out of usage|increase limits?|switch to auto|ask your admin to increase your limit|usage limits?|quota exceeded|insufficient_quota|credits? exhausted|billing|payment required)\b/i,label:"provider quota exhausted"}]});function Te(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function hn(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function yn(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:Te(e.head)}function bn(e,r,n){let t=["exited_with_changes_salvage"];if((e==="uncommitted"||e==="both")&&t.push(`${r} uncommitted change${r===1?"":"s"} with no final result`),(e==="committed_ahead"||e==="both")&&n){let o=n.length>12?n.slice(0,12):n;t.push(`commit ${o} ahead of base with no final result`)}return t.push("review worktree \u2014 commit, open a PR, or run a salvage worker before discarding"),t.join(": ")}function Be(e){if(e.alive||hn(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,n=Te(e.headCommit)??yn(e.gitAncestry),t=r>0,o=!!n;if(!t&&!o)return{kind:"none",salvageable:!1,uncommittedCount:0,headCommit:null,attentionReason:"process exited without a final result"};let s=t&&o?"both":t?"uncommitted":"committed_ahead";return{kind:s,salvageable:!0,uncommittedCount:r,headCommit:n,attentionReason:bn(s,r,n)}}var Ue=l(()=>{"use strict"});var kn,_t,Rn,vt,De=l(()=>{"use strict";kn=["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"],_t=new Set(kn),Rn=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],vt=new Set(Rn)});import{spawnSync as Fe}from"node:child_process";function xn(e,r,n={}){let t=Fe("git",r,Y({cwd:e,encoding:"utf8"}));if(t.status!==0&&!n.allowFailure){let o=`git ${r.join(" ")} failed: ${t.stderr||t.stdout}`;if(n.throwError)throw new Error(o);fe(o)}return t.stdout||""}function He(e){return xn(e,["status","--short"],{allowFailure:!0}).split(`
8
- `).map(r=>r.trim()).filter(Boolean)}function W(e,r){try{let n=Fe("git",r,Y({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}}}function Me(e,r,n){let t=W(e,["merge-base","--is-ancestor",r,n]);return t.status===0?{isAncestor:!0,error:null}:t.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:t.error||t.stderr||t.stdout||`git exited ${t.status}`}}function Le(e,r="origin/main"){let n=typeof r=="string"?{base:r}:r,t=n.baseCommit?.trim()||n.base?.trim()||"origin/main",o=n.baseCommit?.trim()||null;if(!e)return q(t,"missing worktree path");let s=W(e,["rev-parse","HEAD"]);if(s.status!==0)return q(t,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let f=W(e,["rev-parse",t]);if(f.status!==0)return q(t,f.error||f.stderr||f.stdout||`failed to resolve ${t}`,s.stdout.trim());i=f.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:t,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let u=Me(e,i,a),m=Me(e,a,i),d=u.error||m.error||void 0;if(u.isAncestor==null||m.isAncestor==null)return{checked:!1,base:t,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:"unknown",...d?{error:d}:{}};let c=u.isAncestor?"ahead":m.isAncestor?"merged":"diverged";return{checked:!0,base:t,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:c,...d?{error:d}:{}}}function q(e,r,n=null){return{checked:!1,base:e,head:n,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var X=l(()=>{"use strict";p();De()});function v(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Sn(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function _n(e){if(v(e.headCommit)||v(e.prUrl)||v(e.artifactBundlePath)||v(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&v(r.head))}function $e(e){return Sn(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:_n(e)?{blocked:!0,detail:`Worktree has ${e.changedFiles.length} uncommitted change(s); commit or discard before landing`}:{blocked:!0,reason:"dirty_worktree_no_pr",detail:`Worktree has ${e.changedFiles.length} uncommitted change(s) with no commit or PR; commit, open a PR, or discard before landing`}:{blocked:!1}}function je(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var Ye=l(()=>{"use strict"});function Z(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let n=JSON.parse(r);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{return null}return null}function Ve(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function K(e){let r=e.trim();if(!r)return null;let n=Z(r);if(n)return n;let t=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let d=Z(s[1]??"");d&&t.push(d)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let d=Z(r.slice(i,a+1));d&&t.push(d)}if(t.length===0)return null;let u=t[t.length-1],m=Ve(u);for(let d of t){let c=Ve(d);c>m&&(u=d,m=c)}return u}var Q=l(()=>{"use strict"});function Ge(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:e.trim()||null}function ze(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function vn(e){return new Set(e.map(r=>ze(Ge(r)??r)).filter(Boolean))}function Je(e,r,n){let t=Ge(e)??e;if(!t)return"unrelated";let o=ze(t);return vn(r).has(o)?"contract":n?(n.outcome==="skipped"||n.outcome==="blocked")&&n.reason?.trim()?"support":(n.outcome==="merged","unrelated"):"unrelated"}var qe=l(()=>{"use strict"});function R(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function En(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="object"?Object.keys(e).length>0:!0}function b(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:R(e)}function T(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function Xe(e){let r=null;if(typeof e=="string"){let o=K(e);o&&(r=o)}else e&&typeof e=="object"&&!Array.isArray(e)&&(r=e);if(!r)return[];let n=r.targetPrReconciliation??r.target_pr_reconciliation;if(!Array.isArray(n))return[];let t=[];for(let o of n){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,i=b(String(s.prUrl??s.pr_url??"")),a=R(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||t.push({prUrl:i,outcome:a,mergeCommit:R(s.mergeCommit??s.merge_commit),reason:R(s.reason)})}return t}function Ze(e,r){let n=[],t=b(R(e.prUrl)??"");if(t&&n.push(t),r&&typeof r=="object"&&!Array.isArray(r)){let o=r,s=b(String(o.prUrl??o.pr_url??""));s&&n.push(s)}return[...new Set(n)]}function Qe(e){let{contract:r,snapshot:n}=e,t=e.finalResult??n.finalResult;if(!r.landingOnly&&r.targetPrUrls.length===0&&!r.repairEnforceOriginalPr)return{blocked:!1};if(!En(t))return(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&r.targetPrUrls.length>0?{blocked:!0,reason:"missing_target_pr_reconciliation",detail:`Final result required to reconcile target PR(s): ${r.targetPrUrls.join(", ")}`}:{blocked:!1};if(!(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&!r.repairEnforceOriginalPr)return{blocked:!1};let s=r.repairEnforceOriginalPr?b(R(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?b(r.targetPrUrls[0]):null):null;if(s){let c=Ze(n,t);if(!(t&&typeof t=="object"&&!Array.isArray(t)&&t.supersedesOriginalTargetPr===!0)){for(let y of c)if(y!==s)return{blocked:!0,reason:"duplicate_repair_pr",detail:`Repair worker opened or attached PR ${y} instead of canonical target ${s}`}}let h=Xe(t).find(y=>y.prUrl===s);if(!h||h.outcome!=="merged"&&!(h.reason?.trim()&&(h.outcome==="skipped"||h.outcome==="blocked")))return{blocked:!0,reason:"missing_repair_target_reconciliation",detail:`Repair worker must reconcile target PR ${s}`}}let i=Xe(t),a=new Map(i.map(c=>[T(c.prUrl),c])),u=new Set(r.targetPrUrls.map(c=>T(b(c)??c)).filter(Boolean)),m=Ze(n,t);if(r.landingOnly)for(let c of m){let f=a.get(T(c)),g=Je(c,r.targetPrUrls,f);if(!(g==="contract"||g==="support"))return u.size>0?{blocked:!0,reason:"unrelated_implementation_pr",detail:`Landing-only worker attached unrelated PR ${c}`}:{blocked:!0,reason:"unrelated_implementation_pr",detail:"Landing-only worker must not open new implementation PRs"}}if(r.targetPrUrls.length===0)return{blocked:!1};let d=[];for(let c of r.targetPrUrls){let f=T(b(c)??c),g=a.get(f);if(!g){d.push(f);continue}g.outcome!=="merged"&&!g.reason?.trim()&&d.push(f)}return d.length>0?{blocked:!0,reason:d.every(c=>a.has(c))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${d.join(", ")}`}:{blocked:!1}}function er(e){if(e.blocked)return e.detail??e.reason}var rr=l(()=>{"use strict";Q();qe()});function An(e){let r=Date.now();if(e.completionBlocker&&!nr(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&wn(e.finalResult))return{state:"done",reason:"local-only worker superseded by merged PR"};let o={finalResult:e.finalResult,changedFiles:e.changedFiles??[],gitAncestry:e.gitAncestry??null,prUrl:e.prUrl??null},s=$e(o);if(s.blocked){let i=je(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=Qe({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=er(i);if(a)return{state:"needs_attention",reason:i.reason?`landing contract (${i.reason}): ${a}`:`landing contract: ${a}`}}return{state:"done",reason:"final result recorded"}}if(!e.alive){if(On(e))return{state:"done",reason:"empty abandoned worker record"};let o=We(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Be({alive:!1,finalResult:null,changedFiles:e.changedFiles,gitAncestry:e.gitAncestry});if(s?.salvageable){let a=e.error?.trim();return{state:"needs_attention",reason:a?`${s.attentionReason} (${a})`:s.attentionReason}}let i=e.error?.trim();return{state:"needs_attention",reason:i?`process exited without a final result: ${i}`:s?.attentionReason??"process exited without a final result"}}if(e.heartbeatBlocker)return{state:"blocked",reason:`worker heartbeat reported blocker: ${e.heartbeatBlocker}`};let n=e.startedAt?Date.parse(e.startedAt):NaN;if(!e.firstEventAt&&e.stdoutBytes===0&&e.heartbeatBytes===0&&Number.isFinite(n)&&r-n>Cn)return{state:"needs_attention",reason:`no first stream event ${V(n)}s after start`};let t=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(t)&&r-t>B?{state:"stale",reason:`no log/event/heartbeat activity for ${V(t)}s`}:{state:"ok",reason:"recent activity"}}function nr(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function On(e){return e.finalResult||e.taskId||e.agentOsId||e.stdoutBytes>0||(e.stderrBytes??0)>0||e.heartbeatBytes>0||e.error?.trim()||(e.changedFiles??[]).some(r=>r.trim())?!1:/empty worker dir|marked abandoned/i.test(e.reconcileReason??"")}function wn(e){let r=null;if(typeof e=="string"?r=K(e):e&&typeof e=="object"&&!Array.isArray(e)&&(r=e),!r)return!1;let n=r.targetPrReconciliation??r.target_pr_reconciliation;return Array.isArray(n)?n.some(t=>!t||typeof t!="object"||Array.isArray(t)?!1:String(t.outcome??"").trim()==="merged"):!1}function In(e,r,n){let t=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&t!==void 0&&t!==null?t:r||(t??ye(n))}function tr(e,r={}){let n=Pe(e.stdoutPath),t=be(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=In(e,n.finalResult,t),i=o?!1:I(e.pid),a=O(e.stdoutPath),u=O(e.stderrPath),m=O(e.heartbeatPath),d=He(e.worktreePath),c=Le(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),f=ge([n.lastEventAt,t.lastHeartbeatAt,w(e.stdoutPath),w(e.stderrPath),w(e.heartbeatPath)]),g=n.error||!i&&!s&&pe(e.stderrPath,10).trim()||void 0,h=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,y=nr(h)?null:h,Ir=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,$=An({alive:i,finalResult:s,firstEventAt:n.firstEventAt,stdoutBytes:a,stderrBytes:u,heartbeatBytes:m,lastActivityAt:f,heartbeatBlocker:t.heartbeatBlocker,startedAt:e.startedAt,error:g,changedFiles:d,gitAncestry:c,completionBlocker:y,landingContract:Ir,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),Pr=y||$.state==="blocked"?"blocked":o||$.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:Pr,attention:$,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:u,heartbeatBytes:m,firstEventAt:n.firstEventAt,lastEventAt:n.lastEventAt,lastActivityAt:f,currentTool:o?null:n.currentTool,heartbeatCount:t.heartbeatCount,lastHeartbeatAt:t.lastHeartbeatAt,lastHeartbeatPhase:t.lastHeartbeatPhase,lastHeartbeatSummary:t.lastHeartbeatSummary,heartbeatBlocker:t.heartbeatBlocker,timestampAnomalies:t.timestampAnomalies,finalResult:s,error:g,changedFiles:d,gitAncestry:c,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.provider??e.orchestrationAudit?.provider??null,boxKind:e.boxKind??null,boxId:e.boxId??null,runtimeId:e.runtimeId??null,personaSlug:e.personaSlug??null,dispatched:e.dispatched??null,localOnly:e.localOnly??null}}function or(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function sr(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var Cn,B,E=l(()=>{"use strict";ke();Ne();Ke();Ue();X();Ye();rr();Q();p();Cn=18e4,B=6e5});var C=l(()=>{"use strict"});var ee=l(()=>{"use strict";X();C()});var k=l(()=>{"use strict"});var U=l(()=>{"use strict"});var ur=l(()=>{"use strict"});var io,ao,re=l(()=>{"use strict";io=25*1024*1024*1024,ao=12*1024*1024*1024});var fo,po,cr=l(()=>{"use strict";re();fo=5*1024*1024*1024,po=10*1024*1024*1024});var Ro,xo,ne=l(()=>{"use strict";cr();re();Ro=30*1024*1024*1024,xo=15*1024*1024*1024});var dr=l(()=>{"use strict";D();p()});var mr=l(()=>{"use strict";E()});var Un,Dn,gr=l(()=>{"use strict";ur();x();k();U();M();ne();D();dr();mr();p();Un=500*1024*1024,Dn=4*1024*1024*1024});var M=l(()=>{"use strict";gr()});import{homedir as Fn}from"node:os";import Hn from"node:path";var hr,se=l(()=>{"use strict";hr=Hn.join(Fn(),".kynver",".env")});var yr=l(()=>{"use strict"});var br=l(()=>{"use strict";yr()});var kr=l(()=>{"use strict"});var ie=l(()=>{"use strict";br();kr()});var Rr=l(()=>{"use strict"});var xr=l(()=>{"use strict";Rr()});var F=l(()=>{"use strict";se();C();x();ie();xr()});var Sr=l(()=>{"use strict";k();k()});var _r=l(()=>{"use strict";se();ie();F()});var vr=l(()=>{"use strict";p()});import Vn from"node:path";var Hs,ae=l(()=>{"use strict";C();vr();Hs=Vn.join(".openclaw","harness")});var L=l(()=>{"use strict";x();k();U();M();ae()});var Cr=l(()=>{"use strict";ee();k();Sr();x();F();_r();p();L()});import{homedir as Zn,totalmem as fi}from"node:os";import le from"node:path";var Ar,Ei,Ci,Ai,Oi,x=l(()=>{"use strict";ee();C();p();k();U();M();ne();F();Cr();L();Ar=le.join(Zn(),".kynver"),Ei=le.join(Ar,"config.json"),Ci=le.join(Ar,"credentials"),Ai=500*1024*1024,Oi=4*1024*1024*1024});var Or=l(()=>{"use strict";x();ae();L();p()});var D=l(()=>{"use strict";Or();p()});E();var ir="kynver-harness:",Pn="@runner:";function ar(e){return e?.trim()?e.trim():null}function Nn(e){let r=ar(e);if(!r?.startsWith(ir))return null;let n=r.slice(ir.length),t=n.indexOf(Pn);return t>=0?n.slice(0,t).trim()||null:n.trim()||null}function lr(e,r){let n=ar(r);return n?Nn(e)===n:!1}E();p();function Wn(e){let{worker:r,status:n,taskLease:t}=e,o=t?.leaseOwner??null;if(r.dispatched&&t){if(t.status==="running"&&o&&!lr(o,r.runId))return{health:"orphaned",reason:`task lease held by ${o}, expected harness run ${r.runId}`};let i=r.leaseToken?.trim()??"",a=t.leaseToken?.trim()??"";if(t.status==="running"&&i&&a&&i!==a)return{health:"orphaned",reason:"task leaseToken superseded on board \u2014 completion replay would fail"};if(t.status==="running"&&!n.alive&&!n.finalResult)return{health:"orphaned",reason:"board task running but worker process is not alive"}}if(r.status==="running"&&!n.alive&&!n.finalResult)return{health:"orphaned",reason:"worker.json still running but process is dead"};if(n.attention.state==="stale")return{health:"stale",reason:n.attention.reason};let s=n.lastHeartbeatAt?Date.parse(n.lastHeartbeatAt):NaN;return n.alive&&Number.isFinite(s)&&Date.now()-s>B?{health:"stale",reason:`heartbeat older than ${Math.floor(B/1e3)}s`}:n.alive&&r.pid&&!I(r.pid)?{health:"orphaned",reason:"pid recorded but process is not alive"}:t?.status==="running"&&!n.alive&&n.finalResult?{health:"healthy",reason:"finished worker awaiting completion replay"}:{health:"healthy",reason:n.attention.reason||"worker within expected lifecycle bounds"}}D();function wr(e){return!!e.completionReportedAt?.trim()}E();function Qn(e){let{worker:r,status:n}=e,t=[];r.localOnly&&t.push("local-only worker (no board linkage)"),(!r.agentOsId||!r.taskId)&&t.push("missing agentOsId/taskId linkage"),wr(r)&&t.push("completion already acknowledged"),r.completionBlocker&&t.push(r.completionBlocker),n.heartbeatBlocker&&n.alive&&t.push(`worker heartbeat blocker: ${n.heartbeatBlocker}`),n.attention.state==="blocked"&&t.push(n.attention.reason||"worker attention blocked"),sr(n)&&t.push(n.attention.reason||"landing gate blocked");let o=or(n),s;return o?n.finalResult?s="final_result":n.alive?s="terminal_status":s="process_exited":t.push("worker has not reached a terminal condition"),{eligible:o&&t.length===0,terminalVerified:o,terminalReason:s,blockers:t}}export{Qn as assessAutoCompleteEligibility,Wn as classifyWorkerHealth,tr as computeWorkerStatus};
3
+ `):""}function P(e){if(!e)return!1;try{return process.kill(e,0),!0}catch{return!1}}function he(e){let r=null,n=-1/0;for(let t of e){if(!t)continue;let o=Date.parse(t);Number.isFinite(o)&&o>n&&(n=o,r=t)}return r}function G(e){return Math.max(0,Math.round((Date.now()-e)/1e3))}var p=l(()=>{"use strict"});import{existsSync as Kr,readFileSync as Br}from"node:fs";function ye(e){return e==="complete"}function be(e){return ye(e.lastHeartbeatPhase)?e.terminalFinalResult!==void 0&&e.terminalFinalResult!==null?e.terminalFinalResult:e.lastHeartbeatSummary?.trim()||"completed":null}function ke(e){let r={heartbeatCount:0,lastHeartbeatAt:null,lastHeartbeatPhase:null,lastHeartbeatSummary:null,terminalFinalResult:null,heartbeatBlocker:null,timestampAnomalies:[],lastBoxResourceSnapshot:null,lastPrEvidence:[]};if(!Kr(e))return r;let n=Date.now()+Ur,t=new Date(n).toISOString(),o=Br(e,"utf8").split(`
4
+ `).filter(Boolean);for(let s of o){let i=w(s);if(!i||typeof i!="object"||Array.isArray(i))continue;let a=i;if(r.heartbeatCount++,a.ts){let u=String(a.ts),m=Date.parse(u);Number.isFinite(m)&&m>n?r.timestampAnomalies.push({kind:"future_heartbeat_timestamp",observedAt:u,clampedTo:t}):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)),ye(r.lastHeartbeatPhase)&&(r.terminalFinalResult=de(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 Ur,Re=l(()=>{"use strict";me();p();Ur=6e4});function Se(e){return e?(e.split("/").pop()??e).replace(/\.exe$/i,"").toLowerCase():null}function N(e){if(!e)return[];let r=[],n="",t,o=!1;for(let s of e){if(o){n+=s,o=!1;continue}if(s==="\\"){o=!0;continue}if(t){s===t?t=void 0:n+=s;continue}if(s==='"'||s==="'"){t=s;continue}if(/\s/.test(s)){n&&(r.push(n),n="");continue}n+=s}return n&&r.push(n),r}function _e(e){let r=Se(e[0]);return!!(r&&Dr.has(r))}function Fr(e){let r=e.trim();return r.includes("/")?r.split("/").pop()??r:r}function Hr(e){if(!e||e.includes("*"))return null;let r=Fr(e);return!r||r.includes("/")?null:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(r)?r:null}function ve(e){return!e||e.includes("/")||e.includes("*")?!1:/\.(?:json|md|mjs|cjs|js|ts|tsx|yaml|yml)$/iu.test(e)}function z(e){if(!e)return!1;let r=e.trim();return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")}function Lr(e){if(!e.startsWith("--glob="))return e;let r=e.slice(7);return r.startsWith("!")&&!r.includes("/")&&!r.endsWith("/**")?`--glob=${r}/**`:e}function $r(e){let r=[];for(let n=1;n<e.length;n+=1){let t=e[n];if(t){if(t==="--"){r.push(...e.slice(n+1));break}if(t.startsWith("-")){if(t.includes("="))continue;xe.has(t)&&(n+=1);continue}r.push(t)}}return r}function jr(e){let r=!1,n=e.map((o,s)=>{let i=Lr(o),a=e[s-1];return a&&xe.has(a)&&o.startsWith("!")&&!o.includes("/")&&!o.endsWith("/**")&&(i=`${o}/**`),i!==o&&(r=!0),i}),t=$r(n);if(t.length===2){let[o,s]=t;if(z(s))return{argv:[n[0]??"rg",o,"-g",`${s}/**`,"."],changed:!0};let i=Hr(s);if(i)return{argv:[n[0]??"rg","-g",i,o,"."],changed:!0}}return r&&t.length===1?{argv:[...n,"."],changed:!0}:{argv:n,changed:r}}function Ee(e){for(let r=1;r<e.length;r+=1){let n=e[r];if(n&&(n==="-c"||n==="-lc"||n==="-cl"||/^-[a-zA-Z]*c[a-zA-Z]*$/u.test(n)))return r+1}return-1}function W(e){let r=e.trim();if(!r)return{command:r,wrapped:!1};let n=N(r);if(!n.length)return{command:r,wrapped:!1};let t=Se(n[0]);if(!t||!Mr.has(t))return{command:r,wrapped:!1};let o=Ee(n);if(o<0||o>=n.length)return{command:r,wrapped:!1};let s=n.slice(o).join(" ").trim();return s?{command:s,wrapped:!0}:{command:r,wrapped:!1}}function Yr(e,r){let n=e.trim(),t=N(n),o=Ee(t);if(o<0)return r;let s=t.slice(0,o).join(" "),i=r.includes("'")?`"${r.replace(/"/g,'\\"')}"`:`'${r}'`;return`${s} ${i}`}function Vr(e){let r=e.trim(),n=W(r),t=N(n.command);if(!t.length||!_e(t))return{segment:r,changed:!1};let o=jr(t);if(!o.changed)return{segment:r,changed:!1};let s=o.argv.join(" ");return n.wrapped?{segment:Yr(r,s),changed:!0}:{segment:s,changed:!0}}function J(e){let r=e.trim();if(!r)return{command:r,changed:!1};let n=r.includes("&&")?" && ":r.includes("||")?" || ":"; ",t=r.split(/\s*(?:&&|\|\||;)\s*/u),o=!1,s=t.map(i=>{let a=Vr(i);return a.changed&&(o=!0),a.segment});return o?{command:s.join(n),changed:!0}:{command:r,changed:!1}}function Ce(e){let r=W(e).command,n=N(r.trim());return n.length&&_e(n)?!0:/\b(rg|ripgrep)\b/i.test(r)}function Ae(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 n=e.match(/^search\s+"(.+)"\s+in\s+(.+)$/iu);return n?{pattern:n[1],target:n[2]?.trim()}:{}}function Gr(e){let{pattern:r,target:n}=Ae(e);return r?z(n)?{kind:"rg_exclude_syntax",pattern:r,target:n}:ve(n)?{kind:"bad_scope",pattern:r,target:n}:{kind:"not_repo_search",pattern:r,target:n}:{kind:"not_repo_search"}}function zr(e){let{pattern:r,target:n}=Ae(e);if(!r)return null;if(z(n)){let t=`${n.trim()}/**`;return{command:`rg "${r}" -g '${t}' .`,changed:!0}}return n&&ve(n)?{command:`rg -g ${n} "${r}" .`,changed:!0}:null}function Jr(e){if(e.kind==="bad_scope"&&e.pattern?.includes("agent-os-land-pr")&&e.target==="package.json")return"Search package.json with a glob from the repo root: `rg -g package.json agent-os-land-pr .` \u2014 or run `node scripts/agent-os-land-pr.mjs <pr-url>` directly.";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 qr(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 q(e){let r=e.meta?.trim()||(e.command?qr(e.command):null)||null;if(r){let n=Gr(r),t=Jr(n);if(t)return t;let o=zr(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 n=J(e.command);if(n.changed)return`Ripgrep scope may be invalid. Retry with: \`${n.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 Dr,Mr,xe,we=l(()=>{"use strict";Dr=new Set(["rg","ripgrep","grep"]),Mr=new Set(["bash","sh","dash","zsh"]),xe=new Set(["-e","--regexp","-f","--file","-m","--max-count","-A","--after-context","-B","--before-context","-C","--context","-g","--glob","--iglob"])});function _(e,r=200){let n=e.replace(/\s+/g," ").trim();return n.length>r?`${n.slice(0,r-1)}\u2026`:n}function Qr(e){let r=e.trim();if(!r)return null;if(r.startsWith("{"))try{return JSON.parse(r)}catch{}let n=r.indexOf("{"),t=r.lastIndexOf("}");if(n>=0&&t>n)try{return JSON.parse(r.slice(n,t+1))}catch{return null}return null}function v(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function en(e){let r=e.metadata;if(!v(r))return null;let n=r.vulnerabilities;if(!v(n))return null;let t=s=>typeof n[s]=="number"?n[s]:0,o={info:t("info"),low:t("low"),moderate:t("moderate"),high:t("high"),critical:t("critical"),total:t("total")};return typeof n.total!="number"&&!o.critical&&!o.high&&!o.moderate&&!o.low&&!o.info?null:o}function rn(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 n=r.length?r.join(", "):"see report";return`npm audit: ${e.total} vulnerabilit${e.total===1?"y":"ies"} (${n}) \u2014 remediation required`}function nn(e,r){let n=e.error;if(v(n)){let s=typeof n.summary=="string"?n.summary.trim():"",i=typeof n.code=="string"?n.code.trim():"";if(s)return i?`${i}: ${s}`:s;if(i)return i}let t=typeof e.message=="string"?e.message.trim():"";if(t)return t;let o=r.trim();return o?_(o.split(`
5
+ `).find(Boolean)??o,160):"npm audit failed"}function tn(e){let r=`${e.stdout}
6
+ ${e.stderr}`.trim(),n=Qr(r);if(!n||!v(n)){let o=_(r||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit failed (invalid or missing JSON): ${o}`,parseError:"invalid_json"}}if(v(n.error))return{kind:"command_failure",exitCode:e.exitCode,summary:`npm audit command failed: ${nn(n,e.stderr)}`};let t=en(n);return t?e.exitCode===0&&t.total===0?{kind:"success",exitCode:0,summary:"npm audit: no vulnerabilities reported",audit:t}:{kind:"audit_findings",exitCode:e.exitCode,summary:rn(t),audit:t}:{kind:"command_failure",exitCode:e.exitCode,summary:"npm audit failed: JSON response missing vulnerability metadata",parseError:"missing_metadata"}}function on(e){return Xr.test(e)}function sn(e){let r=W(e).command;return Oe.test(e)||Oe.test(r)||Ce(e)}function an(e){let r=q({command:e.command,exitCode:e.exitCode});if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"ripgrep finished (exit 0)"};if(e.exitCode===1){let t=(e.stderr||e.interleaved).trim();if(t&&Zr.test(t)){let i=_(t,160);return{kind:"command_failure",exitCode:1,summary:r??`ripgrep failed (exit 1): ${i}`}}let o=J(e.command),s=o.changed&&!r?` Retry with: \`${o.command}\`.`:"";return{kind:"search_no_matches",exitCode:1,summary:r??`ripgrep: no matches (exit 1).${s} Try a broader pattern or search from the repo root.`}}let n=_(e.interleaved||e.stdout||e.stderr||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:r??`ripgrep failed (exit ${e.exitCode}): ${n}`}}function Ie(e){let r=e.stdout??"",n=e.stderr??"",t=e.interleavedOutput??"";if(on(e.command)){let i=r.trim()||t.trim()||n.trim();return tn({exitCode:e.exitCode,stdout:i,stderr:n})}if(sn(e.command))return an({command:e.command,exitCode:e.exitCode,stdout:r,stderr:n,interleaved:t});let o=q({command:e.command,exitCode:e.exitCode});if(o&&e.exitCode!==0)return{kind:"command_failure",exitCode:e.exitCode,summary:o};if(e.exitCode===0)return{kind:"success",exitCode:0,summary:"command succeeded (exit 0)"};let s=_(t||r||n||`exit ${e.exitCode}`,180);return{kind:"command_failure",exitCode:e.exitCode,summary:`command failed (exit ${e.exitCode}): ${s}`}}var Xr,Oe,Zr,Pe=l(()=>{"use strict";we();Xr=/\bnpm\s+audit\b/i,Oe=/\b(rg|ripgrep)\b/i,Zr=/\b(error|invalid|unknown|panic|not found)\b/i});import{existsSync as ln,readFileSync as un}from"node:fs";function cn(e){let r=e.timestamp_ms;return e.timestamp||e.ts||(r?new Date(r).toISOString():void 0)}function dn(e){if(!e)return null;for(let r of Object.keys(e))if(r.endsWith("ToolCall")){let n=r.slice(0,-8);return n.length?n:r}return null}function mn(e,r){e.finalResult=r.result||r.subtype||r.terminal_reason||"completed",r.is_error&&(e.error=String(r.result||r.api_error_status||"stream result error"))}function R(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function fn(e){let r=e.usage;return r&&typeof r=="object"&&!Array.isArray(r)?r:null}function pn(e){if(typeof e.model=="string"&&e.model.trim())return e.model.trim();let r=e.modelUsage;if(r&&typeof r=="object"&&!Array.isArray(r)){let n=Object.keys(r)[0];if(n?.trim())return n.trim()}}function gn(e,r){let n=fn(r);if(!n)return;let t=R(n.input_tokens)??R(n.inputTokens)??R(n.prompt_tokens),o=R(n.output_tokens)??R(n.outputTokens)??R(n.completion_tokens);if(t===void 0&&o===void 0)return;let s=pn(r)??e.usage?.model;e.usage={...t!==void 0?{inputTokens:t}:{},...o!==void 0?{outputTokens:o}:{},...s?{model:s}:{}}}function hn(e){if(e.type!=="tool_call"||e.subtype!=="completed")return null;let n=(e.tool_call&&typeof e.tool_call=="object"&&!Array.isArray(e.tool_call)?e.tool_call:null)?.shellToolCall;if(!n||typeof n!="object"||Array.isArray(n))return null;let t=n,o=t.args,s=o&&typeof o=="object"&&!Array.isArray(o)&&typeof o.command=="string"?String(o.command):"",i=t.result;if(!i||typeof i!="object"||Array.isArray(i))return null;let a=i.success??i.failure;if(!a||typeof a!="object"||Array.isArray(a))return null;let u=a,m=typeof u.exitCode=="number"?u.exitCode:0;return{command:s,exitCode:m,stdout:typeof u.stdout=="string"?u.stdout:"",stderr:typeof u.stderr=="string"?u.stderr:"",interleaved:typeof u.interleavedOutput=="string"?u.interleavedOutput:""}}function yn(e,r){r.kind==="success"||r.kind==="search_no_matches"||(e.lastShellOutcome=r)}function Ne(e){let r={firstEventAt:null,lastEventAt:null,currentTool:null,finalResult:null,error:null,lastShellOutcome:null,usage:null};if(!ln(e))return r;let n=un(e,"utf8").split(`
7
+ `).filter(Boolean);for(let t of n){let o=w(t);if(!o)continue;let s=cn(o);if(s&&(r.firstEventAt||=s,r.lastEventAt=s),o.type==="stream_event"&&o.event&&typeof o.event=="object"&&o.event.type==="content_block_start"){let a=o.event.content_block;a?.type==="tool_use"&&(r.currentTool=String(a.name||"tool"))}if(o.type==="assistant"&&o.message&&typeof o.message=="object"){let a=o.message.content;if(Array.isArray(a)){let u=a.find(m=>m?.type==="tool_use");u&&(r.currentTool=String(u.name||r.currentTool))}}if(o.type==="tool_call"&&o.subtype==="started"){let a=o.tool_call&&typeof o.tool_call=="object"&&!Array.isArray(o.tool_call)?o.tool_call:void 0,u=dn(a);u&&(r.currentTool=u)}let i=hn(o);i&&yn(r,Ie({command:i.command,exitCode:i.exitCode,stdout:i.stdout,stderr:i.stderr,interleavedOutput:i.interleaved})),o.type==="result"&&mn(r,o),gn(r,o)}return r}var We=l(()=>{"use strict";Pe();p()});function kn(e,r=240){let n=e.replace(/\s+/g," ").trim();return n.length>r?`${n.slice(0,r-1)}\u2026`:n}function Te(e){let r=(e??"").trim();if(!r)return null;for(let n of bn)if(n.test.test(r))return{blocked:!0,reason:`${n.label}: ${kn(r)}`};return null}var bn,Ke=l(()=>{"use strict";bn=[{test:/\b(?:invalid|unknown|unsupported|unrecognized)\b[^.\n]*\bmodel\b/i,label:"provider rejected the requested model"},{test:/\bmodel\b[^.\n]*\b(?:not\s+(?:found|supported|available|recognized|valid)|is\s+not\s+valid|does\s+not\s+exist)/i,label:"provider rejected the requested model"},{test:/\b(?:did you mean|available models|choose (?:a|one of)|supported models)\b/i,label:"provider rejected the requested model"},{test:/model preflight failed/i,label:"model/provider preflight failed"},{test:/\b(?:command not found|ENOENT|is the .*CLI on PATH|executable not found|no such file or directory)\b/i,label:"provider CLI is missing or not on PATH"},{test:/\bfailed to spawn\b/i,label:"provider failed to spawn the worker process"},{test:/\b(?:not logged in|unauthorized|authentication (?:failed|required)|invalid api key|missing api key|401)\b/i,label:"provider authentication failed"},{test:/\b(?:out of usage|increase limits?|switch to auto|ask your admin to increase your limit|usage limits?|quota exceeded|insufficient_quota|credits? exhausted|billing|payment required)\b/i,label:"provider quota exhausted"}]});function Be(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Rn(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function xn(e){return!e?.checked||e.headIsAncestorOfBase!==!1?null:Be(e.head)}function Sn(e,r,n){let t=["exited_with_changes_salvage"];if((e==="uncommitted"||e==="both")&&t.push(`${r} uncommitted change${r===1?"":"s"} with no final result`),(e==="committed_ahead"||e==="both")&&n){let o=n.length>12?n.slice(0,12):n;t.push(`commit ${o} ahead of base with no final result`)}return t.push("review worktree \u2014 commit, open a PR, or run a salvage worker before discarding"),t.join(": ")}function Ue(e){if(e.alive||Rn(e.finalResult))return null;let r=(e.changedFiles??[]).filter(i=>i.trim()).length,n=Be(e.headCommit)??xn(e.gitAncestry),t=r>0,o=!!n;if(!t&&!o)return{kind:"none",salvageable:!1,uncommittedCount:0,headCommit:null,attentionReason:"process exited without a final result"};let s=t&&o?"both":t?"uncommitted":"committed_ahead";return{kind:s,salvageable:!0,uncommittedCount:r,headCommit:n,attentionReason:Sn(s,r,n)}}var De=l(()=>{"use strict"});var _n,At,vn,wt,Me=l(()=>{"use strict";_n=["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"],At=new Set(_n),vn=["GITHUB_TOKEN","GH_TOKEN","CLAUDE_CODE_OAUTH_TOKEN"],wt=new Set(vn)});import{spawnSync as He}from"node:child_process";function En(e,r,n={}){let t=He("git",r,V({cwd:e,encoding:"utf8"}));if(t.status!==0&&!n.allowFailure){let o=`git ${r.join(" ")} failed: ${t.stderr||t.stdout}`;if(n.throwError)throw new Error(o);pe(o)}return t.stdout||""}function Le(e){return En(e,["status","--short"],{allowFailure:!0}).split(`
8
+ `).map(r=>r.trim()).filter(Boolean)}function T(e,r){try{let n=He("git",r,V({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}}}function Fe(e,r,n){let t=T(e,["merge-base","--is-ancestor",r,n]);return t.status===0?{isAncestor:!0,error:null}:t.status===1?{isAncestor:!1,error:null}:{isAncestor:null,error:t.error||t.stderr||t.stdout||`git exited ${t.status}`}}function $e(e,r="origin/main"){let n=typeof r=="string"?{base:r}:r,t=n.baseCommit?.trim()||n.base?.trim()||"origin/main",o=n.baseCommit?.trim()||null;if(!e)return X(t,"missing worktree path");let s=T(e,["rev-parse","HEAD"]);if(s.status!==0)return X(t,s.error||s.stderr||s.stdout||"failed to resolve HEAD");let i;if(o)i=o;else{let f=T(e,["rev-parse",t]);if(f.status!==0)return X(t,f.error||f.stderr||f.stdout||`failed to resolve ${t}`,s.stdout.trim());i=f.stdout.trim()}let a=s.stdout.trim();if(a===i)return{checked:!0,base:t,head:a,baseHead:i,baseIsAncestorOfHead:!0,headIsAncestorOfBase:!0,relation:"synced"};let u=Fe(e,i,a),m=Fe(e,a,i),d=u.error||m.error||void 0;if(u.isAncestor==null||m.isAncestor==null)return{checked:!1,base:t,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:"unknown",...d?{error:d}:{}};let c=u.isAncestor?"ahead":m.isAncestor?"merged":"diverged";return{checked:!0,base:t,head:a,baseHead:i,baseIsAncestorOfHead:u.isAncestor,headIsAncestorOfBase:m.isAncestor,relation:c,...d?{error:d}:{}}}function X(e,r,n=null){return{checked:!1,base:e,head:n,baseHead:null,baseIsAncestorOfHead:null,headIsAncestorOfBase:null,relation:"unknown",error:r}}var Z=l(()=>{"use strict";p();Me()});function E(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function Cn(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="boolean"?e:Array.isArray(e)?e.length>0:typeof e=="object"?Object.keys(e).length>0:!0}function An(e){if(E(e.headCommit)||E(e.prUrl)||E(e.artifactBundlePath)||E(e.patchPath))return!0;let r=e.gitAncestry;return!!(r?.checked&&r.headIsAncestorOfBase===!1&&E(r.head))}function je(e){return Cn(e.finalResult)?e.changedFiles.length===0?{blocked:!1}:An(e)?{blocked:!0,detail:`Worktree has ${e.changedFiles.length} uncommitted change(s); commit or discard before landing`}:{blocked:!0,reason:"dirty_worktree_no_pr",detail:`Worktree has ${e.changedFiles.length} uncommitted change(s) with no commit or PR; commit, open a PR, or discard before landing`}:{blocked:!1}}function Ye(e){if(e.blocked)return e.detail??e.reason??"dirty_worktree_no_pr"}var Ve=l(()=>{"use strict"});function Q(e){let r=e.trim();if(!r.startsWith("{"))return null;try{let n=JSON.parse(r);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{return null}return null}function Ge(e){let r=e.targetPrReconciliation??e.target_pr_reconciliation??e.targetPrs??e.target_prs;return Array.isArray(r)?r.length:0}function K(e){let r=e.trim();if(!r)return null;let n=Q(r);if(n)return n;let t=[],o=/```(?:json)?\s*([\s\S]*?)```/gi,s;for(;(s=o.exec(r))!==null;){let d=Q(s[1]??"");d&&t.push(d)}let i=r.indexOf("{"),a=r.lastIndexOf("}");if(i>=0&&a>i){let d=Q(r.slice(i,a+1));d&&t.push(d)}if(t.length===0)return null;let u=t[t.length-1],m=Ge(u);for(let d of t){let c=Ge(d);c>m&&(u=d,m=c)}return u}var ee=l(()=>{"use strict"});function ze(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:e.trim()||null}function Je(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function wn(e){return new Set(e.map(r=>Je(ze(r)??r)).filter(Boolean))}function qe(e,r,n){let t=ze(e)??e;if(!t)return"unrelated";let o=Je(t);return wn(r).has(o)?"contract":n?(n.outcome==="skipped"||n.outcome==="blocked")&&n.reason?.trim()?"support":(n.outcome==="merged","unrelated"):"unrelated"}var Xe=l(()=>{"use strict"});function x(e){if(typeof e!="string")return null;let r=e.trim();return r.length?r:null}function On(e){return e==null?!1:typeof e=="string"?e.trim().length>0:typeof e=="object"?Object.keys(e).length>0:!0}function b(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`https://github.com/${r[1]}/pull/${r[2]}`:x(e)}function B(e){let r=e.trim().match(/github\.com\/([^/]+\/[^/]+)\/(?:pull|pulls)\/(\d+)/i);return r?`${r[1].toLowerCase()}/pull/${r[2]}`:e.trim().toLowerCase()}function Ze(e){let r=null;if(typeof e=="string"){let o=K(e);o&&(r=o)}else e&&typeof e=="object"&&!Array.isArray(e)&&(r=e);if(!r)return[];let n=r.targetPrReconciliation??r.target_pr_reconciliation;if(!Array.isArray(n))return[];let t=[];for(let o of n){if(!o||typeof o!="object"||Array.isArray(o))continue;let s=o,i=b(String(s.prUrl??s.pr_url??"")),a=x(s.outcome);!i||a!=="merged"&&a!=="skipped"&&a!=="blocked"||t.push({prUrl:i,outcome:a,mergeCommit:x(s.mergeCommit??s.merge_commit),reason:x(s.reason)})}return t}function Qe(e,r){let n=[],t=b(x(e.prUrl)??"");if(t&&n.push(t),r&&typeof r=="object"&&!Array.isArray(r)){let o=r,s=b(String(o.prUrl??o.pr_url??""));s&&n.push(s)}return[...new Set(n)]}function er(e){let{contract:r,snapshot:n}=e,t=e.finalResult??n.finalResult;if(!r.landingOnly&&r.targetPrUrls.length===0&&!r.repairEnforceOriginalPr)return{blocked:!1};if(!On(t))return(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&r.targetPrUrls.length>0?{blocked:!0,reason:"missing_target_pr_reconciliation",detail:`Final result required to reconcile target PR(s): ${r.targetPrUrls.join(", ")}`}:{blocked:!1};if(!(r.requiresTargetPrReconciliation??(r.landingOnly||!!r.repairEnforceOriginalPr||r.targetPrUrls.length>0))&&!r.repairEnforceOriginalPr)return{blocked:!1};let s=r.repairEnforceOriginalPr?b(x(r.targetPrUrl)??"")??(r.targetPrUrls.length===1?b(r.targetPrUrls[0]):null):null;if(s){let c=Qe(n,t);if(!(t&&typeof t=="object"&&!Array.isArray(t)&&t.supersedesOriginalTargetPr===!0)){for(let y of c)if(y!==s)return{blocked:!0,reason:"duplicate_repair_pr",detail:`Repair worker opened or attached PR ${y} instead of canonical target ${s}`}}let h=Ze(t).find(y=>y.prUrl===s);if(!h||h.outcome!=="merged"&&!(h.reason?.trim()&&(h.outcome==="skipped"||h.outcome==="blocked")))return{blocked:!0,reason:"missing_repair_target_reconciliation",detail:`Repair worker must reconcile target PR ${s}`}}let i=Ze(t),a=new Map(i.map(c=>[B(c.prUrl),c])),u=new Set(r.targetPrUrls.map(c=>B(b(c)??c)).filter(Boolean)),m=Qe(n,t);if(r.landingOnly)for(let c of m){let f=a.get(B(c)),g=qe(c,r.targetPrUrls,f);if(!(g==="contract"||g==="support"))return u.size>0?{blocked:!0,reason:"unrelated_implementation_pr",detail:`Landing-only worker attached unrelated PR ${c}`}:{blocked:!0,reason:"unrelated_implementation_pr",detail:"Landing-only worker must not open new implementation PRs"}}if(r.targetPrUrls.length===0)return{blocked:!1};let d=[];for(let c of r.targetPrUrls){let f=B(b(c)??c),g=a.get(f);if(!g){d.push(f);continue}g.outcome!=="merged"&&!g.reason?.trim()&&d.push(f)}return d.length>0?{blocked:!0,reason:d.every(c=>a.has(c))?"incomplete_target_pr_landing":"missing_target_pr_reconciliation",detail:`Target PR reconciliation incomplete: ${d.join(", ")}`}:{blocked:!1}}function rr(e){if(e.blocked)return e.detail??e.reason}var nr=l(()=>{"use strict";ee();Xe()});function Pn(e){let r=Date.now();if(e.completionBlocker&&!tr(e.completionBlocker))return{state:"blocked",reason:e.completionBlocker};if(e.finalResult){if(e.localOnly&&Wn(e.finalResult))return{state:"done",reason:"local-only worker superseded by merged PR"};let o={finalResult:e.finalResult,changedFiles:e.changedFiles??[],gitAncestry:e.gitAncestry??null,prUrl:e.prUrl??null},s=je(o);if(s.blocked){let i=Ye(s);return{state:"needs_attention",reason:s.reason?`landing blocked (${s.reason}): ${i}`:`landing blocked: ${i}`}}if(e.landingContract){let i=er({contract:e.landingContract,snapshot:o,finalResult:e.finalResult}),a=rr(i);if(a)return{state:"needs_attention",reason:i.reason?`landing contract (${i.reason}): ${a}`:`landing contract: ${a}`}}return{state:"done",reason:"final result recorded"}}if(!e.alive){if(Nn(e))return{state:"done",reason:"empty abandoned worker record"};let o=Te(e.error);if(o)return{state:"blocked",reason:o.reason};let s=Ue({alive:!1,finalResult:null,changedFiles:e.changedFiles,gitAncestry:e.gitAncestry});if(s?.salvageable){let a=e.error?.trim();return{state:"needs_attention",reason:a?`${s.attentionReason} (${a})`:s.attentionReason}}let i=e.error?.trim();return{state:"needs_attention",reason:i?`process exited without a final result: ${i}`:s?.attentionReason??"process exited without a final result"}}if(e.heartbeatBlocker)return{state:"blocked",reason:`worker heartbeat reported blocker: ${e.heartbeatBlocker}`};let n=e.startedAt?Date.parse(e.startedAt):NaN;if(!e.firstEventAt&&e.stdoutBytes===0&&e.heartbeatBytes===0&&Number.isFinite(n)&&r-n>In)return{state:"needs_attention",reason:`no first stream event ${G(n)}s after start`};let t=e.lastActivityAt?Date.parse(e.lastActivityAt):NaN;return Number.isFinite(t)&&r-t>U?{state:"stale",reason:`no log/event/heartbeat activity for ${G(t)}s`}:{state:"ok",reason:"recent activity"}}function tr(e){let r=e?.trim();return r?/completion acknowledged but board not advanced/i.test(r)&&/task already terminal/i.test(r):!1}function Nn(e){return e.finalResult||e.taskId||e.agentOsId||e.stdoutBytes>0||(e.stderrBytes??0)>0||e.heartbeatBytes>0||e.error?.trim()||(e.changedFiles??[]).some(r=>r.trim())?!1:/empty worker dir|marked abandoned/i.test(e.reconcileReason??"")}function Wn(e){let r=null;if(typeof e=="string"?r=K(e):e&&typeof e=="object"&&!Array.isArray(e)&&(r=e),!r)return!1;let n=r.targetPrReconciliation??r.target_pr_reconciliation;return Array.isArray(n)?n.some(t=>!t||typeof t!="object"||Array.isArray(t)?!1:String(t.outcome??"").trim()==="merged"):!1}function Tn(e,r,n){let t=e.completionSnapshot?.finalResult;return e.completionAckSource==="local-pr-merged-reconcile"&&t!==void 0&&t!==null?t:r||(t??be(n))}function or(e,r={}){let n=Ne(e.stdoutPath),t=ke(e.heartbeatPath),o=typeof e.completionReportedAt=="string"&&e.completionReportedAt.trim().length>0,s=Tn(e,n.finalResult,t),i=o?!1:P(e.pid),a=O(e.stdoutPath),u=O(e.stderrPath),m=O(e.heartbeatPath),d=Le(e.worktreePath),c=$e(e.worktreePath,{base:r.base,baseCommit:r.baseCommit}),f=he([n.lastEventAt,t.lastHeartbeatAt,I(e.stdoutPath),I(e.stderrPath),I(e.heartbeatPath)]),g=n.error||!i&&!s&&ge(e.stderrPath,10).trim()||void 0,h=typeof e.completionBlocker=="string"&&e.completionBlocker.trim()?e.completionBlocker.trim():null,y=tr(h)?null:h,Pr=e.repairTargetPrUrl?{landingOnly:!1,targetPrUrls:[e.repairTargetPrUrl],targetPrUrl:e.repairTargetPrUrl,repairEnforceOriginalPr:!0}:null,j=Pn({alive:i,finalResult:s,firstEventAt:n.firstEventAt,stdoutBytes:a,stderrBytes:u,heartbeatBytes:m,lastActivityAt:f,heartbeatBlocker:t.heartbeatBlocker,startedAt:e.startedAt,error:g,changedFiles:d,gitAncestry:c,completionBlocker:y,landingContract:Pr,prUrl:e.repairTargetPrUrl??e.taskPrUrl??null,localOnly:e.localOnly===!0,taskId:e.taskId??null,agentOsId:e.agentOsId??null,reconcileReason:e.reconcileReason??null}),Nr=y||j.state==="blocked"?"blocked":o||j.state==="done"?"done":s?"exited":i?"running":"exited";return{runId:e.runId,worker:e.name,pid:e.pid,alive:i,status:Nr,attention:j,branch:e.branch,worktreePath:e.worktreePath,ownedPaths:e.ownedPaths,stdoutBytes:a,stderrBytes:u,heartbeatBytes:m,firstEventAt:n.firstEventAt,lastEventAt:n.lastEventAt,lastActivityAt:f,currentTool:o?null:n.currentTool,heartbeatCount:t.heartbeatCount,lastHeartbeatAt:t.lastHeartbeatAt,lastHeartbeatPhase:t.lastHeartbeatPhase,lastHeartbeatSummary:t.lastHeartbeatSummary,heartbeatBlocker:t.heartbeatBlocker,timestampAnomalies:t.timestampAnomalies,finalResult:s,error:g,changedFiles:d,gitAncestry:c,instructionPolicyFingerprint:e.instructionPolicyFingerprint??null,instructionPolicyEvidence:e.instructionPolicyEvidence??null,model:e.model??e.orchestrationAudit?.model??null,provider:e.provider??e.orchestrationAudit?.provider??null,usage:n.usage??null,boxKind:e.boxKind??null,boxId:e.boxId??null,runtimeId:e.runtimeId??null,personaSlug:e.personaSlug??null,dispatched:e.dispatched??null,localOnly:e.localOnly??null}}function sr(e){return!!(e.finalResult||e.alive===!1||e.status==="exited"||e.status==="done")}function ir(e){return e.finalResult?e.attention.state==="needs_attention"||e.attention.state==="blocked":!1}var In,U,C=l(()=>{"use strict";Re();We();Ke();De();Z();Ve();nr();ee();p();In=18e4,U=6e5});var A=l(()=>{"use strict"});var re=l(()=>{"use strict";Z();A()});var k=l(()=>{"use strict"});var D=l(()=>{"use strict"});var cr=l(()=>{"use strict"});var co,mo,ne=l(()=>{"use strict";co=25*1024*1024*1024,mo=12*1024*1024*1024});var yo,bo,dr=l(()=>{"use strict";ne();yo=5*1024*1024*1024,bo=10*1024*1024*1024});var vo,Eo,te=l(()=>{"use strict";dr();ne();vo=30*1024*1024*1024,Eo=15*1024*1024*1024});var mr=l(()=>{"use strict";M();p()});var fr=l(()=>{"use strict";C()});var Hn,Ln,hr=l(()=>{"use strict";cr();S();k();D();F();te();M();mr();fr();p();Hn=500*1024*1024,Ln=4*1024*1024*1024});var F=l(()=>{"use strict";hr()});import{homedir as jn}from"node:os";import Yn from"node:path";var yr,ie=l(()=>{"use strict";yr=Yn.join(jn(),".kynver",".env")});var br=l(()=>{"use strict"});var kr=l(()=>{"use strict";br()});var Rr=l(()=>{"use strict"});var ae=l(()=>{"use strict";kr();Rr()});var xr=l(()=>{"use strict"});var Sr=l(()=>{"use strict";xr()});var H=l(()=>{"use strict";ie();A();S();ae();Sr()});var _r=l(()=>{"use strict";k();k()});var vr=l(()=>{"use strict";ie();ae();H()});var Er=l(()=>{"use strict";p()});import qn from"node:path";var Ys,le=l(()=>{"use strict";A();Er();Ys=qn.join(".openclaw","harness")});var $=l(()=>{"use strict";S();k();D();F();le()});var Ar=l(()=>{"use strict";re();k();_r();S();H();vr();p();$()});import{homedir as nt,totalmem as yi}from"node:os";import ue from"node:path";var wr,Oi,Ii,Pi,Ni,S=l(()=>{"use strict";re();A();p();k();D();F();te();H();Ar();$();wr=ue.join(nt(),".kynver"),Oi=ue.join(wr,"config.json"),Ii=ue.join(wr,"credentials"),Pi=500*1024*1024,Ni=4*1024*1024*1024});var Or=l(()=>{"use strict";S();le();$();p()});var M=l(()=>{"use strict";Or();p()});C();var ar="kynver-harness:",Kn="@runner:";function lr(e){return e?.trim()?e.trim():null}function Bn(e){let r=lr(e);if(!r?.startsWith(ar))return null;let n=r.slice(ar.length),t=n.indexOf(Kn);return t>=0?n.slice(0,t).trim()||null:n.trim()||null}function ur(e,r){let n=lr(r);return n?Bn(e)===n:!1}C();p();function Un(e){let{worker:r,status:n,taskLease:t}=e,o=t?.leaseOwner??null;if(r.dispatched&&t){if(t.status==="running"&&o&&!ur(o,r.runId))return{health:"orphaned",reason:`task lease held by ${o}, expected harness run ${r.runId}`};let i=r.leaseToken?.trim()??"",a=t.leaseToken?.trim()??"";if(t.status==="running"&&i&&a&&i!==a)return{health:"orphaned",reason:"task leaseToken superseded on board \u2014 completion replay would fail"};if(t.status==="running"&&!n.alive&&!n.finalResult)return{health:"orphaned",reason:"board task running but worker process is not alive"}}if(r.status==="running"&&!n.alive&&!n.finalResult)return{health:"orphaned",reason:"worker.json still running but process is dead"};if(n.attention.state==="stale")return{health:"stale",reason:n.attention.reason};let s=n.lastHeartbeatAt?Date.parse(n.lastHeartbeatAt):NaN;return n.alive&&Number.isFinite(s)&&Date.now()-s>U?{health:"stale",reason:`heartbeat older than ${Math.floor(U/1e3)}s`}:n.alive&&r.pid&&!P(r.pid)?{health:"orphaned",reason:"pid recorded but process is not alive"}:t?.status==="running"&&!n.alive&&n.finalResult?{health:"healthy",reason:"finished worker awaiting completion replay"}:{health:"healthy",reason:n.attention.reason||"worker within expected lifecycle bounds"}}M();function Ir(e){return!!e.completionReportedAt?.trim()}C();function tt(e){let{worker:r,status:n}=e,t=[];r.localOnly&&t.push("local-only worker (no board linkage)"),(!r.agentOsId||!r.taskId)&&t.push("missing agentOsId/taskId linkage"),Ir(r)&&t.push("completion already acknowledged"),r.completionBlocker&&t.push(r.completionBlocker),n.heartbeatBlocker&&n.alive&&t.push(`worker heartbeat blocker: ${n.heartbeatBlocker}`),n.attention.state==="blocked"&&t.push(n.attention.reason||"worker attention blocked"),ir(n)&&t.push(n.attention.reason||"landing gate blocked");let o=sr(n),s;return o?n.finalResult?s="final_result":n.alive?s="terminal_status":s="process_exited":t.push("worker has not reached a terminal condition"),{eligible:o&&t.length===0,terminalVerified:o,terminalReason:s,blockers:t}}export{tt as assessAutoCompleteEligibility,Un as classifyWorkerHealth,or as computeWorkerStatus};
@@ -0,0 +1 @@
1
+ export { evaluateNodeRuntimePolicy, KYNVER_NODE_PATCH_FLOOR, PRIVATE_ROOT_NODE_RANGE, PUBLISHED_NODE_RANGE, type NodeRuntimePolicyStatus, type NodeRuntimePolicyVerdict, } from "../node-runtime-policy.js";
@@ -0,0 +1 @@
1
+ var s="24.11.0",l=">=24.11.0",c=">=24.11.0 <25";function a(r){let e=r.trim().replace(/^v/,""),o=/^(\d+)\.(\d+)\.(\d+)$/.exec(e);return o?{major:Number(o[1]),minor:Number(o[2]),patch:Number(o[3])}:null}function u(r,e){return r.major!==e.major?r.major-e.major:r.minor!==e.minor?r.minor-e.minor:r.patch-e.patch}function d(r){let e=r.trim().split(/\s+/),o=null,i=null;for(let t of e)if(t.startsWith(">="))o=a(t.slice(2));else if(t.startsWith("<")){let n=t.slice(1);i=a(n)??(/^\d+$/.test(n)?{major:Number(n),minor:0,patch:0}:null)}if(!o)throw new Error(`Unsupported node policy range: ${r}`);return{floor:o,below:i}}function m(r,e=l){let{floor:o,below:i}=d(e),t=a(r);if(!t)return{status:"invalid_version",currentVersion:r.trim(),requiredRange:e,remediation:`Node version could not be parsed as X.Y.Z (prereleases are unsupported). Install Node ${s} or a later release within the supported range.`};let n=`${t.major}.${t.minor}.${t.patch}`;return u(t,o)<0?{status:"upgrade_required",currentVersion:n,requiredRange:e,remediation:`Upgrade Node to >=${s}. See docs/runbooks/node-24-fleet-migration.md for the per-host procedure.`}:i&&u(t,i)>=0?{status:"unsupported_major",currentVersion:n,requiredRange:e,remediation:`Node ${t.major}.x is newer than this artifact's qualified range (${e}). Use a qualified Node major or wait for the next runtime qualification.`}:{status:"compatible",currentVersion:n,requiredRange:e,remediation:null}}export{s as KYNVER_NODE_PATCH_FLOOR,c as PRIVATE_ROOT_NODE_RANGE,l as PUBLISHED_NODE_RANGE,m as evaluateNodeRuntimePolicy};
@@ -1,7 +1,7 @@
1
1
  export { buildOrchestrationProviderInventory } from "../orchestration-providers/inventory.js";
2
2
  export { listOrchestrationProviderCapabilities } from "../orchestration-providers/capabilities.js";
3
3
  export type { OrchestrationProviderBindingStatus, OrchestrationProviderCapability, OrchestrationProviderId, } from "../orchestration-providers/types.js";
4
- export type { OrchestrationCloudApiCredits } from "../orchestration-providers/inventory.js";
4
+ export type { OrchestrationCloudApiCredits, OrchestrationWorkerEndpoint, } from "../orchestration-providers/inventory.js";
5
5
  export type { HermesCliAdapterStatus } from "../orchestration-providers/hermes-cli-adapter.js";
6
6
  export type { HermesOpenAiCodexBindingStatus } from "../orchestration-providers/hermes-openai-codex-binding.js";
7
7
  export type { CodexOrchestrationPath } from "../orchestration-providers/codex-orchestration-adapter.js";
@@ -1 +1 @@
1
- import{existsSync as R}from"node:fs";import{homedir as H}from"node:os";import K from"node:path";import{createHash as A}from"node:crypto";import{statSync as B}from"node:fs";import{spawnSync as x}from"node:child_process";function c(e){try{let t=B(e),r=`${e}|${t.size}|${t.mtimeMs}`;return A("sha256").update(r).digest("hex").slice(0,16)}catch{return}}function u(e){return A("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function d(e,t){for(let r of t){let n=process.env[r]?.trim();if(n)return n}return e}function a(e,t,r={}){let n=r.timeoutMs??8e3;try{let o=x(e,t,{encoding:"utf8",timeout:n,env:{...process.env,...r.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:r.okNote??`${e} ${t.join(" ")}: ok`};let i=(o.stderr||o.stdout||"").trim(),s=r.failPrefix??`${e} ${t.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 h(e,t,r={}){let n=r.timeoutMs??8e3;try{return x(e,t,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:r.okNote??`${e} authenticated`}:{ok:!1,note:r.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var T="claude";function j(){let e=H();return[K.join(e,".claude",".credentials.json")]}function _(e=new Date().toISOString()){let t=d(T,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!0,authSource:"api_key_env",sessionFingerprint:u("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=j().find(s=>R(s)),o=h(t,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),i=r.ok&&(o.ok||!!n);return{providerId:"claude",ready:i,authSource:"oauth_local",sessionFingerprint:n?c(n):void 0,checkedAt:e,note:i?"Local Claude Code OAuth session bound on runner":[r.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as L}from"node:fs";import{homedir as D}from"node:os";import l from"node:path";var M="codex";function Y(){let e=D();return[process.env.CODEX_HOME?.trim()?l.join(l.resolve(process.env.CODEX_HOME.trim()),"auth.json"):null,l.join(e,".codex","auth.json"),l.join(e,".config","codex","auth.json")].filter(r=>!!r)}function $(e){return l.dirname(e)}function F(e){let t,r;for(let n of Y()){if(!L(n))continue;t??=n;let o=a(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:$(n)}});if(r??=o,o.ok)return{authPath:n,login:o}}return{authPath:t,login:r??a(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function P(e=new Date().toISOString()){let t=d(M,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:u("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:r,login:n}=F(t),o=!!r&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:r?c(r):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,r?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as w}from"node:fs";import{homedir as U}from"node:os";import O from"node:path";function V(){let e=process.env.HERMES_HOME?.trim(),t=e?O.resolve(e):O.join(U(),".hermes");return O.join(t,"auth.json")}function m(e=new Date().toISOString()){let t=d("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=V(),o=w(n),i=h(t,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),s=r.ok&&i.ok;return{path:"hermes_openai_codex",ready:s,authSource:s?"subscription_hermes":"none",sessionFingerprint:o?c(n):void 0,checkedAt:e,note:s?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[r.note,i.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function S(e=new Date().toISOString()){let t=P(e);if(t.ready)return{...t,path:"codex_cli"};let r=m(e);return r.ready?{providerId:"codex",ready:!0,authSource:r.authSource,sessionFingerprint:r.sessionFingerprint,checkedAt:r.checkedAt,note:r.note,path:"hermes_openai_codex",hermesOpenAiCodex:r}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:r,note:[t.note,r.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}import{existsSync as X}from"node:fs";import{homedir as G}from"node:os";import J from"node:path";var z="agent";function W(){let e=G();return[J.join(e,".config","cursor","auth.json")]}function I(e=new Date().toISOString()){let t=d(z,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!0,authSource:"api_key_env",sessionFingerprint:u("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let r=a(t,["-v"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=W().find(i=>X(i)),o=!!n&&r.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?c(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[r.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as q,readFileSync as Q}from"node:fs";import{homedir as Z}from"node:os";import g from"node:path";var ee=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function te(){let e=process.env.HERMES_HOME?.trim(),t=e?g.resolve(e):g.join(Z(),".hermes");return g.join(t,".env")}function re(e){try{let t=Q(e,"utf8"),r=[];for(let n of ee)new RegExp(`^${n}=`,"m").test(t)&&r.push(n);return r}catch{return[]}}function E(e=new Date().toISOString()){let t=d("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=te(),o=q(n),i=o?re(n):[],v=i.some(N=>N.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",k=r.ok&&o;return{adapterId:"hermes",cliAvailable:r.ok,profileBound:o,authSource:v,sessionFingerprint:o?c(n):void 0,checkedAt:e,note:k?`Hermes profile bound (${i.length?`keys: ${i.join(", ")}`:"no API keys detected"})`:[r.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function oe(e={}){let t=e.nowIso?.()??new Date().toISOString(),r=S(t),n={codex:r,cursor:I(t),claude:_(t)},o=Object.values(n).filter(i=>i.ready).length;return{generatedAt:t,bindings:n,cloudApiCredits:{anthropicApiKey:!!process.env.ANTHROPIC_API_KEY?.trim(),openaiApiKey:!!process.env.OPENAI_API_KEY?.trim(),codexApiKey:!!process.env.CODEX_API_KEY?.trim()},hermes:E(t),hermesOpenAiCodex:m(t),codexAdapterPath:r.path,readyCount:o}}var ne={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0}};function ie(){return Object.values(ne)}var b=["off","observe","enforce"];function se(e){let t=(e??"off").trim().toLowerCase();return b.includes(t)?t:"off"}function f(e=process.env){return se(e.KYNVER_ORCHESTRATION_POLICY_MODE)}function C(e=process.env){let t=e.KYNVER_ORCHESTRATION_ENFORCE_TASKS?.trim().toLowerCase();return t?t==="1"||t==="true"||t==="yes"||t==="on":f(e)==="enforce"}import{createHash as ae}from"node:crypto";function p(e){if(e==null)return null;let t=e.trim();return t.length?t:null}function y(e){let t=p(e.sessionId)??"anonymous",r=p(e.title)??p(e.action)??"foreground",n=ae("sha256").update([p(e.planId)??"",p(e.parentTaskId)??"",r.toLowerCase()].join("|")).digest("hex").slice(0,16);return`hermes-foreground:${t}:${n}`}function ce(e,t){return e==="enforce"&&t?"enforce_harness_task":e==="observe"?"observe_bypass":"allow_local"}function de(e,t=process.env){let r=f(t),n=C(t),o=ce(r,n),i=o==="enforce_harness_task"?y({sessionId:e.sessionId,planId:e.planId,parentTaskId:e.parentTaskId,title:e.title,action:e.action}):null,s;return r==="off"?s="Orchestration policy off \u2014 local foreground path allowed.":o==="observe_bypass"?s=`Observe mode: ${e.action} bypass logged; local fallback preserved.`:o==="enforce_harness_task"?s=`Enforce mode: ${e.action} must create linked harness AgentTask (${i}).`:s="Local foreground path allowed.",{mode:r,decision:o,idempotencyKey:i,bypassLogged:o==="observe_bypass",reason:s}}export{y as buildForegroundHarnessIdempotencyKey,oe as buildOrchestrationProviderInventory,de as evaluateOrchestrationPolicy,C as isOrchestrationEnforceTasksEnabled,ie as listOrchestrationProviderCapabilities,f as resolveOrchestrationPolicyMode};
1
+ import{existsSync as R}from"node:fs";import{homedir as K}from"node:os";import H from"node:path";import{createHash as A}from"node:crypto";import{statSync as B}from"node:fs";import{spawnSync as _}from"node:child_process";function c(e){try{let t=B(e),r=`${e}|${t.size}|${t.mtimeMs}`;return A("sha256").update(r).digest("hex").slice(0,16)}catch{return}}function u(e){return A("sha256").update(`env:${e}`).digest("hex").slice(0,16)}function d(e,t){for(let r of t){let n=process.env[r]?.trim();if(n)return n}return e}function a(e,t,r={}){let n=r.timeoutMs??8e3;try{let o=_(e,t,{encoding:"utf8",timeout:n,env:{...process.env,...r.env,CI:"1",NO_COLOR:"1"}});if(o.status===0)return{ok:!0,note:r.okNote??`${e} ${t.join(" ")}: ok`};let i=(o.stderr||o.stdout||"").trim(),s=r.failPrefix??`${e} ${t.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 h(e,t,r={}){let n=r.timeoutMs??8e3;try{return _(e,t,{stdio:"ignore",timeout:n,env:{...process.env,CI:"1",NO_COLOR:"1"}}).status===0?{ok:!0,note:r.okNote??`${e} authenticated`}:{ok:!1,note:r.failNote??`${e} not authenticated`}}catch(o){return{ok:!1,note:o instanceof Error?o.message:`${e} auth probe failed`}}}var T="claude";function j(){let e=K();return[H.join(e,".claude",".credentials.json")]}function x(e=new Date().toISOString()){let t=d(T,["KYNVER_CLAUDE_BIN","CLAUDE_BIN"]);if(process.env.ANTHROPIC_API_KEY?.trim())return{providerId:"claude",ready:!0,authSource:"api_key_env",sessionFingerprint:u("ANTHROPIC_API_KEY"),checkedAt:e,note:"ANTHROPIC_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=j().find(s=>R(s)),o=h(t,["auth","status"],{okNote:"claude auth status: authenticated",failNote:"claude auth status: not authenticated"}),i=r.ok&&(o.ok||!!n);return{providerId:"claude",ready:i,authSource:"oauth_local",sessionFingerprint:n?c(n):void 0,checkedAt:e,note:i?"Local Claude Code OAuth session bound on runner":[r.note,o.note,n?void 0:"no ~/.claude/.credentials.json"].filter(Boolean).join("; ")}}import{existsSync as L}from"node:fs";import{homedir as Y}from"node:os";import p from"node:path";var D="codex";function M(){let e=Y();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(r=>!!r)}function $(e){return p.dirname(e)}function F(e){let t,r;for(let n of M()){if(!L(n))continue;t??=n;let o=a(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status",env:{CODEX_HOME:$(n)}});if(r??=o,o.ok)return{authPath:n,login:o}}return{authPath:t,login:r??a(e,["login","status"],{okNote:"codex login status: authenticated",failPrefix:"codex login status"})}}function P(e=new Date().toISOString()){let t=d(D,["KYNVER_CODEX_BIN","CODEX_BIN"]);if(process.env.CODEX_API_KEY?.trim())return{providerId:"codex",ready:!0,authSource:"api_key_env",sessionFingerprint:u("CODEX_API_KEY"),checkedAt:e,note:"CODEX_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let{authPath:r,login:n}=F(t),o=!!r&&n.ok;return{providerId:"codex",ready:o,authSource:"oauth_local",sessionFingerprint:r?c(r):void 0,checkedAt:e,note:o?"Local Codex OAuth session bound on runner":[n.note,r?void 0:"no Codex auth store found"].filter(Boolean).join("; ")}}import{existsSync as w}from"node:fs";import{homedir as U}from"node:os";import O from"node:path";function V(){let e=process.env.HERMES_HOME?.trim(),t=e?O.resolve(e):O.join(U(),".hermes");return O.join(t,"auth.json")}function f(e=new Date().toISOString()){let t=d("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=V(),o=w(n),i=h(t,["auth","status","openai-codex"],{okNote:"hermes openai-codex: logged in",failNote:"hermes openai-codex: not logged in"}),s=r.ok&&i.ok;return{path:"hermes_openai_codex",ready:s,authSource:s?"subscription_hermes":"none",sessionFingerprint:o?c(n):void 0,checkedAt:e,note:s?"Hermes openai-codex subscription session bound (ChatGPT Codex OAuth)":[r.note,i.note,o?void 0:"no ~/.hermes/auth.json"].filter(Boolean).join("; ")}}function S(e=new Date().toISOString()){let t=P(e);if(t.ready)return{...t,path:"codex_cli"};let r=f(e);return r.ready?{providerId:"codex",ready:!0,authSource:r.authSource,sessionFingerprint:r.sessionFingerprint,checkedAt:r.checkedAt,note:r.note,path:"hermes_openai_codex",hermesOpenAiCodex:r}:{providerId:"codex",ready:!1,authSource:"none",checkedAt:e,path:"none",hermesOpenAiCodex:r,note:[t.note,r.note].filter(Boolean).join("; ")||"Codex CLI and Hermes openai-codex unavailable"}}import{existsSync as X}from"node:fs";import{homedir as W}from"node:os";import G from"node:path";var J="agent";function z(){let e=W();return[G.join(e,".config","cursor","auth.json")]}function I(e=new Date().toISOString()){let t=d(J,["KYNVER_CURSOR_AGENT_BIN","CURSOR_AGENT_BIN"]);if(process.env.CURSOR_API_KEY?.trim())return{providerId:"cursor",ready:!0,authSource:"api_key_env",sessionFingerprint:u("CURSOR_API_KEY"),checkedAt:e,note:"CURSOR_API_KEY present (env binding \u2014 cloud credits path, no token stored in Kynver)"};let r=a(t,["-v"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=z().find(i=>X(i)),o=!!n&&r.ok;return{providerId:"cursor",ready:o,authSource:"oauth_local",sessionFingerprint:n?c(n):void 0,checkedAt:e,note:o?"Local Cursor/Composer OAuth session bound on runner":[r.note,n?void 0:"no ~/.config/cursor/auth.json"].filter(Boolean).join("; ")}}import{existsSync as q,readFileSync as Q}from"node:fs";import{homedir as Z}from"node:os";import g from"node:path";var ee=["OPENAI_API_KEY","ANTHROPIC_API_KEY","KYNVER_API_KEY","KYNVER_BASE_URL"];function te(){let e=process.env.HERMES_HOME?.trim(),t=e?g.resolve(e):g.join(Z(),".hermes");return g.join(t,".env")}function re(e){try{let t=Q(e,"utf8"),r=[];for(let n of ee)new RegExp(`^${n}=`,"m").test(t)&&r.push(n);return r}catch{return[]}}function E(e=new Date().toISOString()){let t=d("hermes",["KYNVER_HERMES_BIN","HERMES_BIN"]),r=a(t,["--version"],{okNote:`${t} CLI available`,failPrefix:`${t} CLI not available`}),n=te(),o=q(n),i=o?re(n):[],v=i.some(N=>N.endsWith("_API_KEY"))?"api_key_env":o?"oauth_local":"none",k=r.ok&&o;return{adapterId:"hermes",cliAvailable:r.ok,profileBound:o,authSource:v,sessionFingerprint:o?c(n):void 0,checkedAt:e,note:k?`Hermes profile bound (${i.length?`keys: ${i.join(", ")}`:"no API keys detected"})`:[r.note,o?void 0:"no ~/.hermes/.env"].filter(Boolean).join("; ")}}function oe(e={}){let t=e.nowIso?.()??new Date().toISOString(),r=S(t),n={codex:r,cursor:I(t),claude:x(t)},o=Object.values(n).filter(i=>i.ready).length;return{generatedAt:t,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:E(t),hermesOpenAiCodex:f(t),codexAdapterPath:r.path,readyCount:o}}var ne={codex:{id:"codex",displayName:"Codex (BYO OAuth / Hermes openai-codex)",costTier:"low",authSources:["oauth_local","api_key_env","subscription_hermes"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!1},cursor:{id:"cursor",displayName:"Cursor / Composer",costTier:"medium",authSources:["oauth_local","api_key_env"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0},claude:{id:"claude",displayName:"Claude Code",costTier:"high",authSources:["oauth_local"],supportsLowRiskOrchestration:!0,supportsPrivilegedPlatformActions:!0}};function ie(){return Object.values(ne)}var b=["off","observe","enforce"];function se(e){let t=(e??"off").trim().toLowerCase();return b.includes(t)?t:"off"}function m(e=process.env){return se(e.KYNVER_ORCHESTRATION_POLICY_MODE)}function C(e=process.env){let t=e.KYNVER_ORCHESTRATION_ENFORCE_TASKS?.trim().toLowerCase();return t?t==="1"||t==="true"||t==="yes"||t==="on":m(e)==="enforce"}import{createHash as ae}from"node:crypto";function l(e){if(e==null)return null;let t=e.trim();return t.length?t:null}function y(e){let t=l(e.sessionId)??"anonymous",r=l(e.title)??l(e.action)??"foreground",n=ae("sha256").update([l(e.planId)??"",l(e.parentTaskId)??"",r.toLowerCase()].join("|")).digest("hex").slice(0,16);return`hermes-foreground:${t}:${n}`}function ce(e,t){return e==="enforce"&&t?"enforce_harness_task":e==="observe"?"observe_bypass":"allow_local"}function de(e,t=process.env){let r=m(t),n=C(t),o=ce(r,n),i=o==="enforce_harness_task"?y({sessionId:e.sessionId,planId:e.planId,parentTaskId:e.parentTaskId,title:e.title,action:e.action}):null,s;return r==="off"?s="Orchestration policy off \u2014 local foreground path allowed.":o==="observe_bypass"?s=`Observe mode: ${e.action} bypass logged; local fallback preserved.`:o==="enforce_harness_task"?s=`Enforce mode: ${e.action} must create linked harness AgentTask (${i}).`:s="Local foreground path allowed.",{mode:r,decision:o,idempotencyKey:i,bypassLogged:o==="observe_bypass",reason:s}}export{y as buildForegroundHarnessIdempotencyKey,oe as buildOrchestrationProviderInventory,de as evaluateOrchestrationPolicy,C as isOrchestrationEnforceTasksEnabled,ie as listOrchestrationProviderCapabilities,m as resolveOrchestrationPolicyMode};
@@ -0,0 +1 @@
1
+ export { buildPrompt, buildPromptWithReceipt, RUNTIME_PROMPT_ENFORCEMENT, type BuildPromptInput, } from "../prompt.js";