omo-ai 5.1.11 → 5.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- // omo:y1xLiN3lKnofaBBo3AzBAtrd7KpT1GV8vMn75fGhQOc:xE1V0Tu0M-W7qbPAWE96oZWECfAaCG1VE1qlEbZRthk
2
+ // omo:DpZ357q4T3X3RMz5-rqiZKBbvPmUOEKPaqhOIVpM9vM:xE1V0Tu0M-W7qbPAWE96oZWECfAaCG1VE1qlEbZRthk
3
3
  import{spawn as t}from"node:child_process";import*as e from"node:fs";import*as r from"node:fs/promises";function n(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}async function i(t){for(let e=0;;e+=1)try{return await t()}catch(t){if("EINTR"!==n(t)||e>=128)throw t}}function o(t){for(let e=0;;e+=1)try{return t()}catch(t){if("EINTR"!==n(t)||e>=128)throw t}}import{Buffer as a}from"node:buffer";import{constants as s}from"node:fs";function l(t){return"number"==typeof t?0!==(t&s.O_EXCL):"string"==typeof t&&t.toLowerCase().includes("x")}async function c(t,e,r,n){let o="string"==typeof e?a.from(e,r??"utf8"):e,s=0;for(;s<o.length;){n?.throwIfAborted();let{bytesWritten:e}=await i(()=>t.write(o,s));if(e<=0)throw Error(`fs write made no progress at offset ${s}`);s+=e}}function u(t){return"function"==typeof t}function d(t){return(...e)=>i(async()=>t(...e))}function f(t){return(...e)=>o(()=>t(...e))}function p(t,e){let r="async"===e?d:f,n=new Map;return new Proxy(t,{get(t,e){if(n.has(e))return n.get(e);let i=Reflect.get(t,e);if(!u(i))return i;let o=r(i),a=Reflect.get(i,"native");return u(a)&&Object.assign(o,{native:r(a)}),n.set(e,o),o}})}var m=new Set(["stat","sync","datasync","chmod","chown","utimes","truncate"]);var w=p(r,"async"),h=p(e,"sync"),{access:y,chmod:g,copyFile:v,cp:b,link:E,lstat:S,mkdir:x,mkdtemp:_,readFile:I,readdir:N,realpath:O,rename:k,rm:P,rmdir:T,stat:M,unlink:R}=w,{accessSync:A,chmodSync:$,fsyncSync:L,linkSync:C,lstatSync:D,mkdirSync:U,readFileSync:q,readdirSync:j,realpathSync:F,statSync:J,unlinkSync:G,writeFileSync:H,writeSync:B}=h,{constants:V,watch:Y}=e,K=async(...t)=>{let e=()=>r.open(...t);return function(t){return new Proxy(t,{get(t,e){let r=Reflect.get(t,e);if(!u(r))return r;let o=e=>Reflect.apply(r,t,[...e]);return"close"===e||e===Symbol.asyncDispose?(...t)=>{let e=o(t);return e instanceof Promise?e.catch(t=>{if("EINTR"!==n(t))throw t}):e}:"string"==typeof e&&m.has(e)?(...t)=>{let e=o(t);return e instanceof Promise?e.catch(e=>{if("EINTR"!==n(e))throw e;return i(async()=>o(t))}):e}:(...t)=>o(t)}})}(await(l(t[1]??"r")?e():i(e)))},z=(t,r,n)=>function(t,e,r,n){return l(r)?t(e,r,n):o(()=>t(e,r,n))}(e.openSync,t,r,n??void 0);function X(t){try{e.closeSync(t)}catch(t){if("EINTR"!==n(t))throw t}}function Z(t){try{return o(()=>e.statSync(t)),!0}catch{return!1}}import{join as W}from"node:path";import{fileURLToPath as Q}from"node:url";import{randomUUID as tt}from"node:crypto";import{dirname as et}from"node:path";async function rt(t){return JSON.parse(await I(t,"utf8"))}async function nt(t,e,r=384){let n=`${t}.tmp-${process.pid}-${tt()}`,i=await K(n,"wx",r),o=!1;try{try{await i.writeFile(`${JSON.stringify(e,null,2)}\n`,"utf8"),await i.sync()}finally{await i.close()}await k(n,t),o=!0,await async function(t){try{let e=await K(t,"r");try{await e.sync()}finally{await e.close()}}catch(t){let e=t instanceof Error&&"code"in t?t.code:void 0;if("win32"!==process.platform||!["EISDIR","EPERM"].includes(String(e)))throw t}}(et(t))}finally{o||await ot(n)}}async function it(t,e){let r=await rt(t);await nt(t,{...r,...e})}async function ot(t){try{await R(t)}catch(t){if(!(t instanceof Error&&"code"in t&&"ENOENT"===t.code))throw t}}import{spawn as at,spawnSync as st}from"node:child_process";import{execFile as lt}from"node:child_process";var ct=null;function ut(){return ct??=async function(){if("darwin"!==process.platform)return null;try{let{dlopen:t,FFIType:e}=await(import("bun:ffi")),r=t("/usr/lib/libSystem.B.dylib",{proc_pidinfo:{args:[e.i32,e.i32,e.u64,e.ptr,e.i32],returns:e.i32}});return(t,e,n,i,o)=>Number(r.symbols.proc_pidinfo(t,e,n,i,o))}catch{return null}}(),ct}var dt=null;async function ft(t){if("win32"!==process.platform)return null;if(!Number.isSafeInteger(t)||t<=0)return null;dt??=async function(){if("win32"!==process.platform)return null;try{let{dlopen:t,FFIType:e}=await(import("bun:ffi"));return t("kernel32.dll",{OpenProcess:{args:[e.u32,e.i32,e.u32],returns:e.ptr},GetProcessTimes:{args:[e.ptr,e.ptr,e.ptr,e.ptr,e.ptr],returns:e.i32},CloseHandle:{args:[e.ptr],returns:e.i32}}).symbols}catch{return null}}();let e=await dt;if(null===e)return null;let r=e.OpenProcess(4096,0,t);if(null===r||0===r||0n===r)return null;try{let t=new BigUint64Array(1),n=e.GetProcessTimes(r,t,new BigUint64Array(1),new BigUint64Array(1),new BigUint64Array(1)),i=t[0]??0n;return 0===n||0n===i?null:i}finally{e.CloseHandle(r)}}async function pt(t,e){return await new Promise(r=>{lt(t,e,{encoding:"utf8",timeout:2e3,windowsHide:!0},(t,e)=>{if(null!==t)return void r(null);let n=e.trim();r(n.length>0?n:null)})})}var mt=function(t,e){let r;return n=>n!==e?t(n):(r??=t(n).then(t=>(null===t&&(r=void 0),t),t=>{throw r=void 0,t}),r)}(async function(t){if("linux"===process.platform)return await async function(t){try{let e=await I(`/proc/${t}/stat`,"utf8"),r=e.lastIndexOf(")");if(r<0)return null;let n=e.slice(r+2).trim().split(/\s+/)[19];return void 0===n?null:`linux-proc-start-ticks:${n}`}catch{return null}}(t);if("darwin"===process.platform||"freebsd"===process.platform){if("dead"===ht(t))return null;let e=await async function(t){if("darwin"!==process.platform)return null;if(!Number.isSafeInteger(t)||t<=0)return null;let e=await ut();if(null===e)return null;let r=new Uint8Array(136),n=0;try{n=e(t,3,0n,r,136)}catch{return null}if(136!==n)return null;let i=new DataView(r.buffer,r.byteOffset,r.byteLength),o=Number(i.getBigUint64(120,!0));return o>0?o:null}(t);if(null!==e)return`proc-start-epoch:${e}`;let r=await pt("/bin/ps",["-o","lstart=","-p",String(t)]);return null===r?null:`ps-lstart:${r.replace(/\s+/g," ")}`}return"win32"===process.platform?await async function(t){if("dead"===ht(t))return null;let e=await ft(t);if(null!==e)return`win32-creation-filetime:${e}`;let r=await pt("powershell.exe",["-NoProfile","-Command",`(Get-Process -Id ${t} -ErrorAction SilentlyContinue).StartTime.ToUniversalTime().ToString('o')`]);return null===r?null:`win32-creation-date:${r}`}(t):null},process.pid);function wt(t){let e=t.indexOf(":");return e<=0?null:t.slice(0,e)}function ht(t){try{return process.kill(t,0),"alive"}catch(t){let e=function(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}(t);return"ESRCH"===e?"dead":"EPERM"===e?"alive":"unknown"}}function yt(){return"1"===process.env.OMO_MEMORY_SUPERVISOR_ALLOW_TEST_SEAMS}function gt(){if(yt()){let t=process.env.OMO_MEMORY_SUPERVISOR_PLATFORM;if("posix"===t||"win32"===t)return t}return"win32"===process.platform?"win32":"posix"}function vt(t,e){let r=yt()?process.env.OMO_MEMORY_SUPERVISOR_CLOCK_PATH:void 0;if(void 0===r){let r=setTimeout(e,Math.max(0,t-Date.now()));return()=>clearTimeout(r)}let n=!1,i=()=>{if(n)return;let i=Et(r);!Number.isFinite(i)||i<t||(n=!0,o?.close(),clearInterval(a),e())};if(Et(r)>=t)return n=!0,e(),()=>{};let o=Y(r,i),a=setInterval(i,bt);return i(),()=>{n||(n=!0,o.close(),clearInterval(a))}}var bt=25;function Et(t){let e=j(t).map(t=>/^(\d+)-(-?\d+(?:\.\d+)?)$/.exec(t)).filter(t=>null!==t).sort((t,e)=>Number(t[1])-Number(e[1])).at(-1);return void 0===e?Number.NaN:Number(e[2])}function St(t,e){if(!yt())return;let r=process.env.OMO_MEMORY_SUPERVISOR_TASKKILL_RUN_DIR;void 0!==r&&H(`${r}/${t}-${process.pid}.json`,`${JSON.stringify({targetPid:e})}\n`,"utf8")}function xt(t){if(!yt())return;let e=process.env[t];if(void 0===e)return;let r=JSON.parse(e);if(!Array.isArray(r)||!r.every(t=>"string"==typeof t)||0===r.length)throw TypeError(`${t} must be a non-empty string array`);return r}function _t(t,e,r){let[n,...i]=t;if(void 0===n)throw TypeError("termination command is required");if(r){let t=st(n,[...i,...e],{env:process.env,stdio:"ignore",windowsHide:!0});if(void 0!==t.error)throw t.error;return}at(n,[...i,...e],{env:process.env,stdio:"ignore",windowsHide:!0}).once("error",t=>process.stderr.write(`${t.message}\n`))}function It(t,e){St(`posix-${e}`,t);let r=xt("OMO_MEMORY_SUPERVISOR_POSIX_SIGNAL_COMMAND");if(void 0===r)try{process.kill(-t,e)}catch(t){if(!(t instanceof Error&&"code"in t&&"ESRCH"===t.code))throw t}else _t(r,["--signal-group",String(t),e],!1)}function Nt(t){void 0!==t&&St("win32-graceful",t)}function Ot(t,e){"win32"===t?(Nt(e.pid),e.kill()):void 0!==e.pid&&It(e.pid,"SIGTERM")}function kt(t,e,r=!1){void 0!==e&&("win32"===t?function(t,e){_t(xt("OMO_MEMORY_SUPERVISOR_TASKKILL_COMMAND")??["taskkill"],["/pid",String(t),"/T","/F"],e)}(e,r):It(e,"SIGKILL"))}async function Pt(t){return await mt(t)}import{join as Tt}from"node:path";function Mt(t){return"object"==typeof t&&null!==t}function Rt(t,e){try{return t?.[e]}catch(t){return void Error}}function At(t,e){let r=Rt(t,e);return Mt(r)?r:void 0}function $t(t){if(!t)return"";if("string"==typeof t)return t.toLowerCase();if(!Mt(t))try{return JSON.stringify(t).toLowerCase()}catch(t){if(!(t instanceof Error))throw t;return""}let e=At(t,"data"),r=[e,At(t,"error"),t,At(e,"error")].filter(t=>void 0!==t);for(let t of r){let e=Rt(t,"message");if("string"==typeof e&&e.length>0)return e.toLowerCase()}let n=Rt(t,"name");if("string"==typeof n&&n.length>0){let t=n.match(/:\s*(.+)/);if(t)return t[1]?.trim().toLowerCase()??""}try{return JSON.stringify(t).toLowerCase()}catch(t){if(!(t instanceof Error))throw t;return""}}function Lt(t,e){if(function(t){return"object"==typeof t&&null!==t}(t))try{return t[e]}catch(t){return void Error}}function Ct(t){return"terminal_quota_exhausted"===function(t){let e=Lt(t,"data"),r=Lt(t,"detail")??Lt(e,"detail")??t,n=Lt(r,"error")??r,i=Lt(n,"type")??Lt(r,"type");return"string"==typeof i?i.toLowerCase():void 0}(t)||(e=$t(t),!/\bnon[-\s]+terminal\s+quota\b/i.test(e)&&!/\bnon[-\s]+terminal\s+billing\s+limit\b/i.test(e)&&(/\bterminal\s+quota\b/i.test(e)||/\bterminal\s+billing\s+limit\b/i.test(e)||/\bhard\s+billing\s+limit\b/i.test(e)));var e}function Dt(t){if(Ct(t))return"abort";let e=$t(t),r=function(t){if(!Mt(t))return;let e=At(t,"data"),r=[t,e,At(t,"error"),At(e,"error")].filter(t=>void 0!==t);for(let t of r){let e=Rt(t,"name");if("string"==typeof e&&e.length>0)return e}}(t)?.toLowerCase().replace(/[_-]/g,"");return r?.includes("messageabortederror")||r?.includes("aborterror")?"abort":"contextoverflowerror"===r?"context_overflow":r?.includes("ailoadapikeyerror")||r?.includes("loadapi")||/api.?key.?is.?missing/i.test(e)&&/environment variable/i.test(e)?"missing_api_key":/api.?key/i.test(e)&&/must be a string/i.test(e)?"invalid_api_key":r?.includes("providermodelnotfounderror")||r?.includes("modelnotfounderror")||r?.includes("unknownerror")&&/model\s+not\s+found/i.test(e)?"model_not_found":r?.includes("quotaexceeded")||r?.includes("insufficientquota")||r?.includes("billingerror")||r?.includes("resourceexhausted")||r?.includes("insufficientcredits")||r?.includes("usagelimit")||/quota.?exceeded/i.test(e)||/exceeded.*quota/i.test(e)||/quota\b.*\breset/i.test(e)||/usage\s*quota/i.test(e)||/subscription.?(?:quota|limit)/i.test(e)||/insufficient.?(?:quota|balance|funds?|credits?)/i.test(e)||/credits?\s+exhausted/i.test(e)||/\b(?:session|weekly|monthly|daily|hourly|\d+[-\s]hour|plan|call)\s+limit\b/i.test(e)||/\bhit\s+your\b[^.]*\blimit\b/i.test(e)||/\bin\s+arrears\b/i.test(e)||/\brecharge\s+and\s+try\b/i.test(e)||/billing.?(?:hard.?)?limit/i.test(e)||/exhausted\s+your\s+capacity/i.test(e)||/resource.?exhausted/i.test(e)||/out\s+of\s+credits?/i.test(e)||/payment.?required/i.test(e)||/usage\s+limit/i.test(e)||/credit\s+balance.*too\s+low/i.test(e)||/limit\s+exhausted/i.test(e)||/使用上限/.test(e)||/用量上限/.test(e)||/达到.*限制/.test(e)||/额度.*不足/.test(e)||/余额.*不足/.test(e)||/已耗尽/.test(e)||function(t){return/预扣费额度失败/i.test(t)&&/用户剩余额度/i.test(t)||/用户剩余额度/i.test(t)&&/需要预扣费额度/i.test(t)}(e)?"quota_exceeded":void 0}var Ut=new Set(["providermodelnotfounderror","ratelimiterror","modelunavailableerror","providerconnectionerror","authenticationerror"]),qt=new Set(["messageabortederror","permissiondeniederror","contextlengtherror","timeouterror","validationerror","syntaxerror","usererror"]),jt=["rate_limit","rate limit","usage_limit_reached","usage limit has been reached","quota","all credentials for model","cooling down","exhausted your capacity","not found","unavailable","insufficient","too many requests","over limit","overloaded","bad gateway","bad request","unknown provider","provider not found","model_not_supported","model not supported","model is not supported","connection error","network error","timeout","service unavailable","internal_server_error","free usage","usage exceeded","credit","balance","temporarily unavailable","try again","请稍后重试","503","502","504","429","529","selected provider is forbidden","provider is forbidden","频率限制","请求过于频繁","暂时不可用","服务不可用","server_error","an error occurred while processing","upstream request failed"],Ft=["rate limit","cooling down","credentials for model"];function Jt(t){let e=t.name?.toLowerCase();if(void 0!==e&&qt.has(e))return!1;if(Ct(t))return!1;if("quota_exceeded"===Dt(t))return!0;if(void 0!==e&&Ut.has(e))return!0;let r=t.message?.toLowerCase()??"";return!(!(n=r).includes("retrying in")||!Ft.some(t=>n.includes(t)))||(null!=t.statusCode&&(429===t.statusCode||503===t.statusCode||529===t.statusCode)||jt.some(t=>r.includes(t)));var n}var Gt=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/exceeds (?:the )?(?:model'?s )?maximum context length(?: of [\d,]+ tokens?|\s*\([\d,]+\))/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,/input \(\d+ tokens\) is longer than the model'?s context length \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/prompt has [\d,]+ tokens?, but the configured context size is [\d,]+ tokens?/i,/prompt too long; exceeded (?:max )?context length/i,/range of input length should be/i,/model_context_window_exceeded/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i,/(?:request[ _])?(?:body|entity|payload)[_ ]too[_ ]large/i,/Request payload is \d+ (?:bytes, over the \d+ byte|tokens, over the \d+ token) limit Kiro accepts\./i,/Model context limit reached\. Conversation size exceeds model capacity\./i],Ht=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];var Bt=/^Error: Model "([^"]+)" not found\. Use --list-models to see available models\.$/m,Vt=/^(?:Error:\s*)?No API key found for\s+([^\s.]+)/m,Yt=/(?:^|\s)(\d{3})\s*:/;function Kt(t){if(t.timedOut||0===t.code)return;let e=`${t.stderr}\n${t.stdout}`,r=Bt.exec(e)?.[1];if(void 0!==r)return{kind:"model_not_visible",id:r};let n=Vt.exec(e)?.[1];if(void 0!==n)return{kind:"auth_missing",provider:n};let i=function(t){for(let e of[t.stderr,t.stdout]){let t=e.split("\n").map(t=>t.trim()).find(t=>t.length>0);if(void 0!==t)return t.slice(0,200)}return}(t);if(void 0===i)return;if(o=i,!Ht.some(t=>t.test(o))&&Gt.some(t=>t.test(o)))return{kind:"context_overflow",detail:i};var o;let a=Number.parseInt(Yt.exec(i)?.[1]??"",10);return Jt({message:i,...Number.isNaN(a)?{}:{statusCode:a}})?{kind:"provider_unavailable",detail:i}:void 0}import{randomUUID as zt}from"node:crypto";import{dirname as Xt,join as Zt}from"node:path";import{randomUUID as Wt}from"node:crypto";import{hostname as Qt}from"node:os";import te from"node:path";import ee from"node:path";var re=new Set;function ne(t){re.add(t)}function ie(t){re.delete(t)}var oe=/\.candidate-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ae(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}function se(t,e){try{t.onFailure?.(e)}catch{}}function le(t){if("win32"!==process.platform)return!1;let e=ae(t);return"EBUSY"===e||"EPERM"===e||"EACCES"===e}import{randomUUID as ce}from"node:crypto";import{hostname as ue}from"node:os";function de(t){return"string"==typeof t&&t.length>0}function fe(t){let e;try{e=JSON.parse(t)}catch{return null}if("object"!=typeof e||null===e||Array.isArray(e))return null;let r=e;return!Number.isInteger(r.pid)||Number(r.pid)<=0?null:de(r.process_start)&&de(r.hostname)&&de(r.nonce)?!de(r.created_at)||Number.isNaN(Date.parse(r.created_at))?null:de(r.purpose)&&(void 0===r.run_id||de(r.run_id))?{pid:Number(r.pid),process_start:r.process_start,hostname:r.hostname,nonce:r.nonce,created_at:r.created_at,purpose:r.purpose,...void 0===r.run_id?{}:{run_id:r.run_id}}:null:null}async function pe(t,e={}){if(0===t.length)throw Error("lock purpose must not be empty");let r=await mt(process.pid);return{pid:process.pid,process_start:r??"unavailable",hostname:ue(),nonce:ce(),created_at:(new Date).toISOString(),purpose:t,...void 0===e.runId?{}:{run_id:e.runId}}}var me=new Set(["EACCES","EPERM","ENOTSUP"]);class we extends Error{lockPath;owner;retriable=!0;constructor(t,e){super(`Lock is held: ${t}`),this.lockPath=t,this.owner=e,this.name="LockContentionError"}}function he(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}function ye(t,e){if(void 0!==e)return e(t);if("win32"!==process.platform)return!1;let r=he(t);return"EBUSY"===r||"EPERM"===r||"EACCES"===r}async function ge(t){for(let e=0;e<3;e+=1)try{return await(xe.unlink??R)(t),ie(t),!0}catch(r){if("ENOENT"===he(r))return ie(t),!0;if(!ye(r,xe.isSharingError))throw ne(t),_e(te.dirname(t)),r;if(e+1===3)return ne(t),_e(te.dirname(t)),!1}return!1}function ve(t,e){return e?.throwIfAborted(),new Promise((r,n)=>{let i=setTimeout(a,t),o=()=>a(e?.reason??new DOMException("The operation was aborted","AbortError"));function a(t){clearTimeout(i),e?.removeEventListener("abort",o),void 0===t?r():n(t)}e?.addEventListener("abort",o,{once:!0})})}async function be(t){try{let e=await I(t,"utf8"),r=await M(t,{bigint:!0});return{raw:e,record:fe(e),dev:r.dev,ino:r.ino,mtimeMs:Number(r.mtimeMs)}}catch(t){let e=he(t);if("ENOENT"===e)return null;if("\\"===te.sep&&"EPERM"===e)return{raw:"",record:null,dev:0,ino:0,mtimeMs:Date.now()};throw t}}async function Ee(t,e){await x(te.dirname(t),{recursive:!0,mode:448});let{candidatePath:r,handle:n}=await async function(t){for(let e=0;;e+=1){let r=`${t}.candidate-${Wt()}`;try{return{candidatePath:r,handle:await K(r,"wx",384)}}catch(n){if(await ge(r)||_e(te.dirname(t)),"EINTR"!==he(n)||e>=128)throw n}}}(t);try{try{await c(n,`${JSON.stringify(e)}\n`,"utf8"),await n.sync()}finally{await n.close()}try{return await(xe.link??E)(r,t),!0}catch(r){if(function(t){let e=he(t);return"EEXIST"===e||"ENOENT"===e}(r))return!1;if(me.has(he(r)??""))return await async function(t,e){let r;try{r=await K(t,"wx",384)}catch(t){if("EEXIST"===he(t))return!1;throw t}try{return await(xe.writeFallback??c)(r,`${JSON.stringify(e)}\n`,"utf8"),await r.sync(),!0}finally{await r.close()}}(t,e);throw r}}finally{await ge(r)||_e(te.dirname(t))}}var Se=new Set,xe={};function _e(t){Se.delete(t)}async function Ie(t){if(t.hostname!==Qt())return!1;let e=ht(t.pid);if("dead"===e)return!0;if("unknown"===e)return!1;let r=await mt(t.pid);return null!==r&&"unavailable"!==t.process_start&&function(t,e){let r=wt(t);return null!==r&&r===wt(e)&&t!==e}(t.process_start,r)}function Ne(t,e){return t.dev===e.dev&&t.ino===e.ino&&t.mtimeMs===e.mtimeMs&&t.raw===e.raw}async function Oe(t,e,r){return null!==t.record?Ie(t.record):e-t.mtimeMs>r}async function ke(t,e,r){let n=await be(t);if(null===n||!await Oe(n,e,r))return!1;let i=`${t}.reaping-${Wt()}`;try{await k(t,i)}catch(t){if("ENOENT"===he(t))return!1;if(ye(t))return!1;throw t}let o=await be(i);if(null!==o&&Ne(o,n))return await R(i),!0;try{await E(i,t)}catch(t){if("EEXIST"!==he(t))throw t}return await R(i),!1}async function Pe(t,e,r,n,i){if(!await Oe(e,n,i))return!1;let o=`${t}.recovery`,a={...r,nonce:Wt(),created_at:(new Date).toISOString(),purpose:`${r.purpose}:recovery`};for(let t=0;!await Ee(o,a);t+=1)if(t>0||!await ke(o,n,i))return!1;try{let r=await be(t);if(null===r)return!0;if(!Ne(r,e))return!1;if(!await Oe(r,n,i))return!1;let s=await be(o);return null!==s&&s.record?.nonce===a.nonce&&(await R(t),!0)}finally{await Me(o,a)}}async function Te(t,e,r={}){let n=r.waitTimeoutMs??0,i=r.retryDelayMs??25,o=r.incompleteLockGraceMs??5e3,a=r.now??Date.now;if(n<0||i<=0||o<0)throw Error("lock wait options must be positive");let s=te.dirname(t);Se.has(s)||(Se.add(s),await async function(t,e=Date.now,r={}){let n;try{n=await N(t)}catch(e){if("ENOENT"===ae(e)){for(let e of re)ee.dirname(e)===t&&ie(e);return 0}throw e}let i=0;for(let o of n){if(!oe.test(o))continue;let n=ee.join(t,o);try{let t=await M(n);if(!re.has(n)&&e()-t.mtimeMs<=36e5)continue;let o=!1;for(let t=0;t<3;t+=1)try{await(r.unlink??R)(n),ie(n),o=!0;break}catch(e){if("ENOENT"===ae(e)){ie(n),o=!0;break}if(!(r.isSharingError?.(e)??le(e)))throw e;t+1===3&&se(r,n)}o&&(i+=1)}catch(t){"ENOENT"===ae(t)&&ie(n),se(r,n)}}return i}(s,Date.now,{...void 0===xe.unlink?{}:{unlink:xe.unlink},...void 0===xe.isSharingError?{}:{isSharingError:xe.isSharingError},onFailure:()=>_e(s)}).catch(()=>{_e(s)}));let l=a()+n;for(;;){r.signal?.throwIfAborted();let n=await be(t);if(null===n){if(await Ee(t,e))return;if(r.signal?.throwIfAborted(),n=await be(t),null===n)continue}if(!await Pe(t,n,e,a(),o)){if(r.signal?.throwIfAborted(),a()>=l)throw new we(t,n.record);await ve(Math.min(i,Math.max(1,l-a())),r.signal)}}}async function Me(t,e){let r=await be(t);if(null===r||r.record?.nonce!==e.nonce)return!1;try{return await R(t),!0}catch(t){if("ENOENT"===he(t))return!1;throw t}}async function Re(t,e,r,n){await Te(t,e,n);try{return await r()}finally{await Me(t,e)}}Promise.resolve();var Ae=[["\\bAKIA[0-9A-Z]{16}\\b",""],["\\b(?:bearer|token|api[_-]?key|secret|password|passwd|pwd)\\s*[=:]\\s*\\S{1,256}","i"],["\\bAuthorization\\s*:\\s*Bearer\\s+\\S{1,256}","i"],["\\bsk-(?:proj-)?[-_A-Za-z0-9]+\\b",""],["\\b(?:ghp|github_pat|glpat|xox[baprs])-[-_A-Za-z0-9]+\\b",""]];Ae.map(([t,e])=>new RegExp(t,e)),Ae.map(([t,e])=>new RegExp(t,`${e}g`));new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});import{dirname as $e}from"node:path";import{fileURLToPath as Le}from"node:url";$e(Le(import.meta.url));import{dirname as Ce}from"node:path";import{fileURLToPath as De}from"node:url";Ce(De(import.meta.url)),new Date(0).toISOString();var Ue="\\p{Script=Hangul}\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\u30fc";new RegExp(`[${Ue}]+|(?:(?![${Ue}])[\\p{L}\\p{M}\\p{N}])+`,"gu"),new RegExp(`^[${Ue}]+$`,"u"),new RegExp(`[${Ue}]`,"u"),new RegExp(`[${Ue}]`,"gu"),new RegExp(`[\\p{L}${Ue}]`,"gu");import{dirname as qe}from"node:path";import{fileURLToPath as je}from"node:url";qe(je(import.meta.url));function Fe(t){return Zt(t,"terminal-claim.json")}function Je(t,e,r){return t.runId===e.runId&&t.attempt===e.attempt&&(void 0===r||t.kind===r)}function Ge(t,e){let r=`${t}.${process.pid}.${zt()}.candidate`;!function(t,e){let r=z(t,"wx",384);try{H(r,`${JSON.stringify(e,null,2)}\n`,"utf8"),L(r)}finally{X(r)}}(r,e);try{C(r,t)}catch(t){if("EEXIST"===ze(t))return!1;throw t}finally{Ve(r)}return function(t){let e;try{e=z(t,"r")}catch(t){if("win32"===process.platform&&["EISDIR","EPERM"].includes(ze(t)??""))return;throw t}try{L(e)}catch(t){if("win32"!==process.platform||!["EPERM","EACCES","EINVAL"].includes(ze(t)??""))throw t}finally{X(e)}}(Xt(t)),!0}function He(t){let e;try{e=q(t,"utf8")}catch(t){if("ENOENT"===ze(t))return;throw t}try{return{raw:e,claim:Ke(JSON.parse(e))}}catch{return{raw:e,claim:void 0}}}async function Be(t,e,r,n,i,o){let a=await pe("reflection-finalize",{runId:i.runId});return Re(Zt(t,"terminal-claim-recovery.lock"),a,async()=>{let t=He(e);if(void 0!==t){if(t.raw!==r.raw)return t.claim;if("invalid"===n){if(void 0!==t.claim)return t.claim}else{if(void 0===t.claim)return;if("publish"!==t.claim.kind||!Ye(t.claim,o))return t.claim}Ve(e)}},{waitTimeoutMs:Number.POSITIVE_INFINITY})}function Ve(t){try{G(t)}catch(t){if("ENOENT"!==ze(t))throw t}}function Ye(t,e){return"dead"===(e.getPidLiveness??ht)(t.claimantPid)}function Ke(t){if(!function(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)}(t)||1!==t.version||"publish"!==t.kind&&"abandon"!==t.kind||"string"!=typeof t.runId||!Number.isInteger(t.attempt)||!Number.isInteger(t.claimantPid)||Number(t.claimantPid)<=0)throw TypeError("Invalid run terminal claim");return{version:1,kind:t.kind,runId:t.runId,attempt:Number(t.attempt),claimantPid:Number(t.claimantPid)}}function ze(t){return t instanceof Error&&"code"in t?String(t.code):void 0}import{join as Xe}from"node:path";async function Ze(t,e,r){let n={runId:e.runId,attempt:e.attempt??1},i=await async function(t,e,r,n={},i=process.pid){let o=Fe(t),a={version:1,kind:r,runId:e.runId,attempt:e.attempt,claimantPid:i},s=0;for(;;){if(Ge(o,a))return a;let i=He(o);if(void 0===i)continue;let l=i.claim;if(void 0===l){if(s>0)throw TypeError("Invalid run terminal claim");s+=1,await(n.beforeRecovery?.("invalid"));let r=await Be(t,o,i,"invalid",e,n);if(void 0!==r)return r;continue}if(Je(l,e,r))return l;if("publish"!==l.kind||!Ye(l,n))return l;await(n.beforeRecovery?.("dead-publish"));let c=await Be(t,o,i,"dead-publish",e,n);if(void 0!==c)return c}}(t,n,"publish");Je(i,n,"publish")&&(await nt(Tt(t,"publishing.json"),{version:1,...n,finishedAt:r.finishedAt}),await async function(t,e,r,n=Re,i=pe){let o=await i("reflection-finalize",{runId:e});return n(Xe(t,"terminalization.lock"),o,r,{waitTimeoutMs:Number.POSITIVE_INFINITY})}(t,e.runId,async()=>{if(Z(Tt(t,"final.json"))||Z(Tt(t,"abandoned.json")))return;if(!Je(function(t){return Ke(JSON.parse(q(Fe(t),"utf8")))}(t),n,"publish"))return;let i=void 0!==Kt({code:r.childExit.code,stdout:q(e.stdoutPath,"utf8"),stderr:q(e.stderrPath,"utf8"),timedOut:r.timedOut});i&&void 0!==e.nextAttempt&&await it(Tt(t,"ledger.json"),{attempt:e.nextAttempt.attempt,model:e.nextAttempt.model,...void 0===e.nextAttempt.thinking?{thinking:void 0}:{thinking:e.nextAttempt.thinking},launching:!0,pid:void 0,processStart:void 0,childPid:void 0,childProcessStart:void 0}),await nt(Tt(t,"outcome.json"),r),i&&await ot(Fe(t))}))}function We(t){try{B(3,`${JSON.stringify(t)}\n`)}catch(t){if(!(t instanceof Error&&"code"in t&&["EPIPE","EBADF"].includes(String(t.code))))throw t}}var Qe=process.argv.slice(2);try{if("--child-bootstrap"===Qe[0]){if(void 0===Qe[1])throw TypeError("run directory is required");await async function(e){if(!await async function(){for await(let t of process.stdin)if(Buffer.byteLength(t)>0)return!0;return!1}())return;let r=await rt(W(e,"launch.json")),n=gt(),i=t(r.command,[...r.args],{cwd:r.cwd,env:r.env,detached:!1,stdio:["ignore","inherit","inherit"],windowsHide:!0});We({code:i.pid??null,signal:"MODEL_PID"});let o=()=>{"win32"!==n&&"win32"!==process.platform||i.kill()};process.on("SIGTERM",o),process.on("SIGINT",o);let a=vt(r.hardDeadlineAt,()=>{"win32"===n?Ot(n,i):It(process.pid,"SIGTERM")}),s=vt(r.hardDeadlineAt+r.terminationGraceMs,()=>{kt(n,process.pid)});We(await new Promise(t=>{let e=!1;i.once("error",()=>{e||(e=!0,t({code:null,signal:null}))}),i.once("close",(r,n)=>{e||(e=!0,t({code:r,signal:n}))})}).finally(()=>{a(),s()}))}(Qe[1])}else{if(void 0===Qe[0])throw TypeError("run directory is required");await async function(e){let r=W(e,"launch.json"),n=W(e,"ledger.json"),i=await rt(r),o=gt();await it(n,{launching:!1,pid:process.pid,processStart:await Pt(process.pid)});let a,s=z(i.stdoutPath,"w"),l=z(i.stderrPath,"w"),c=t(process.execPath,[Q(import.meta.url),"--child-bootstrap",e],{env:process.env,detached:!0,stdio:["pipe",s,l,"pipe"],windowsHide:!0}),u=c.pid,d="",f=c.stdio[3];null!=f&&"setEncoding"in f&&(f.setEncoding("utf8"),f.on("data",t=>{d+=t;for(let t of d.split("\n"))try{let e=JSON.parse(t);"MODEL_PID"===e.signal&&"number"==typeof e.code&&(a=e.code)}catch(t){if(!(t instanceof SyntaxError))throw t}}));let p=(t=!1)=>{try{kt(o,u,t)}catch(t){process.stderr.write(`${t instanceof Error?t.message:String(t)}\n`)}};if(process.once("exit",()=>p(!0)),process.once("SIGTERM",()=>{p(),u=void 0,process.exit(143)}),process.once("SIGINT",()=>{p(),u=void 0,process.exit(130)}),void 0===c.pid)throw Error("child bootstrap did not receive a pid");await it(n,{childPid:c.pid,childProcessStart:await Pt(c.pid)}),c.stdin?.end("1\n");let m,w=!1,h=Promise.resolve();"win32"===o&&(h=new Promise(t=>{m=t}));let y=vt(i.hardDeadlineAt,()=>{w=!0,"win32"===o?Nt(c.pid):Ot(o,c)}),g=vt(i.hardDeadlineAt+i.terminationGraceMs,()=>{kt(o,a??u),m?.()}),v=await new Promise((t,e)=>{let r=!1;c.once("error",t=>{r||(r=!0,e(t))}),c.once("close",(e,n)=>{r||(r=!0,t({code:e,signal:n}))})}),b=function(t){let e=t.trim().split("\n").at(-1);if(void 0!==e&&0!==e.length)try{let t=JSON.parse(e),r="number"==typeof t.code||null===t.code?t.code:void 0,n="string"==typeof t.signal||null===t.signal?t.signal:void 0;return void 0===r||void 0===n||"MODEL_PID"===n?void 0:{code:r,signal:n}}catch{return}}(d);"win32"===o&&w&&void 0===b&&await h,y(),g(),u=void 0,X(s),X(l);let E=function(){let t=yt()?process.env.OMO_MEMORY_SUPERVISOR_CLOCK_PATH:void 0;return void 0===t?Date.now():Et(t)}(),S=(new Date).toISOString(),x={version:1,runId:i.runId,attempt:i.attempt,finishedAt:S,childExit:b??v,timedOut:w||Number.isFinite(E)&&E>=i.hardDeadlineAt};await Ze(e,i,x),await ot(r),process.exit(0)}(Qe[0])}}catch(t){process.stderr.write(`${t instanceof Error?t.stack??t.message:String(t)}\n`),process.exitCode=1}