omo-ai 5.1.13 → 5.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/lib/provider-map.json +1 -1
- package/package.json +2 -2
- package/plugin/CHANGELOG.md +36 -0
- package/plugin/extensions/gateway-store-worker.mjs +2 -2
- package/plugin/extensions/memory-run-supervisor.mjs +2 -2
- package/plugin/extensions/omo-computer-use.js +2 -2
- package/plugin/extensions/omo-init-deep-advisor.js +2 -2
- package/plugin/extensions/omo-member.js +1 -1
- package/plugin/extensions/omo-task.js +2 -2
- package/plugin/extensions/omo.js +2 -2
- package/plugin/package.json +1 -1
- package/plugin/runtime/agent-toolkit-sdk/sdk.js +2 -2
- package/plugin/runtime/ast-grep-mcp/manifest.json +1 -1
- package/plugin/runtime/category-coverage/index.js +3 -3
- package/plugin/runtime/lsp-daemon/dist/.omo-runtime-manifest.json +1 -1
- package/plugin/runtime/rollback-migrate.js +1 -1
- package/plugin/runtime/thread-sdk/sdk.js +2 -2
- package/plugin/skills/browser/SKILL.md +26 -2
- package/plugin/skills/browser/references/commands.md +10 -1
- package/plugin/skills/browser/references/install.md +7 -0
- package/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/plugin/skills/browser/scripts/browser-engine-guard.mjs +506 -0
- package/plugin/skills/browser/scripts/omowright.mjs +29 -2
- package/plugin/skills/ultrawork/SKILL.md +4 -7
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// omo:
|
|
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}
|
|
2
|
+
// omo:EH3LeHvdkNRjkG91YsGpI6eA3-w59tzX0Ikmsio3jI4:BbxwJuHW5w14YJPfQqqpcd0yRHSZGoUTHo9goOYb9ls
|
|
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}}var a=new Set(["EPERM","EBUSY","EACCES"]),s=[10,25,50,100,200,400],l=t=>new Promise(e=>setTimeout(e,t));import{Buffer as c}from"node:buffer";import{constants as u}from"node:fs";function d(t){return"number"==typeof t?0!==(t&u.O_EXCL):"string"==typeof t&&t.toLowerCase().includes("x")}async function f(t,e,r,n){let o="string"==typeof e?c.from(e,r??"utf8"):e,a=0;for(;a<o.length;){n?.throwIfAborted();let{bytesWritten:e}=await i(()=>t.write(o,a));if(e<=0)throw Error(`fs write made no progress at offset ${a}`);a+=e}}function p(t){return"function"==typeof t}function m(t){return(...e)=>i(async()=>t(...e))}function w(t){return(...e)=>o(()=>t(...e))}function h(t,e){let r="async"===e?m:w,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(!p(i))return i;let o=r(i),a=Reflect.get(i,"native");return p(a)&&Object.assign(o,{native:r(a)}),n.set(e,o),o}})}var y=new Set(["stat","sync","datasync","chmod","chown","utimes","truncate"]);var g=h(r,"async");function v(t,e){return async function(t,e,r){let i="win32"===r.platform?r.delaysMs??s:[],o=r.sleep??l;for(let s=0;;s+=1)try{return void await r.rename(t,e)}catch(t){let e=i[s],r=n(t);if(void 0===e||void 0===r||!a.has(r))throw t;await o(e)}}(t,e,{rename:g.rename,platform:process.platform})}var E=h(e,"sync"),{access:b,chmod:S,copyFile:x,cp:_,link:I,lstat:N,mkdir:O,mkdtemp:k,readFile:P,readdir:T,realpath:M,rm:R,rmdir:A,stat:$,unlink:C}=g,{accessSync:L,chmodSync:D,fsyncSync:U,linkSync:q,lstatSync:j,mkdirSync:F,readFileSync:J,readdirSync:B,realpathSync:G,statSync:H,unlinkSync:Y,writeFileSync:V,writeSync:K}=E,{constants:z,watch:X}=e,Z=async(...t)=>{let e=()=>r.open(...t);return function(t){return new Proxy(t,{get(t,e){let r=Reflect.get(t,e);if(!p(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&&y.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(d(t[1]??"r")?e():i(e)))},W=(t,r,n)=>function(t,e,r,n){return d(r)?t(e,r,n):o(()=>t(e,r,n))}(e.openSync,t,r,n??void 0);function Q(t){try{e.closeSync(t)}catch(t){if("EINTR"!==n(t))throw t}}function tt(t){try{return o(()=>e.statSync(t)),!0}catch{return!1}}import{join as et}from"node:path";import{fileURLToPath as rt}from"node:url";import{randomUUID as nt}from"node:crypto";import{dirname as it}from"node:path";async function ot(t){return JSON.parse(await P(t,"utf8"))}async function at(t,e,r=384){let n=`${t}.tmp-${process.pid}-${nt()}`,i=await Z(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 v(n,t),o=!0,await async function(t){try{let e=await Z(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}}(it(t))}finally{o||await lt(n)}}async function st(t,e){let r=await ot(t);await at(t,{...r,...e})}async function lt(t){try{await C(t)}catch(t){if(!(t instanceof Error&&"code"in t&&"ENOENT"===t.code))throw t}}import{spawn as ct,spawnSync as ut}from"node:child_process";import{execFile as dt}from"node:child_process";var ft=null;function pt(){return ft??=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}}(),ft}var mt=null;async function wt(t){if("win32"!==process.platform)return null;if(!Number.isSafeInteger(t)||t<=0)return null;mt??=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 mt;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 ht(t,e){return await new Promise(r=>{dt(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 yt=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 P(`/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"===vt(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 pt();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 ht("/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"===vt(t))return null;let e=await wt(t);if(null!==e)return`win32-creation-filetime:${e}`;let r=await ht("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 gt(t){let e=t.indexOf(":");return e<=0?null:t.slice(0,e)}function vt(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 Et(){return"1"===process.env.OMO_MEMORY_SUPERVISOR_ALLOW_TEST_SEAMS}function bt(){if(Et()){let t=process.env.OMO_MEMORY_SUPERVISOR_PLATFORM;if("posix"===t||"win32"===t)return t}return"win32"===process.platform?"win32":"posix"}function St(t,e){let r=Et()?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=_t(r);!Number.isFinite(i)||i<t||(n=!0,o?.close(),clearInterval(a),e())};if(_t(r)>=t)return n=!0,e(),()=>{};let o=X(r,i),a=setInterval(i,xt);return i(),()=>{n||(n=!0,o.close(),clearInterval(a))}}var xt=25;function _t(t){let e=B(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 It(t,e){if(!Et())return;let r=process.env.OMO_MEMORY_SUPERVISOR_TASKKILL_RUN_DIR;void 0!==r&&V(`${r}/${t}-${process.pid}.json`,`${JSON.stringify({targetPid:e})}\n`,"utf8")}function Nt(t){if(!Et())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 Ot(t,e,r){let[n,...i]=t;if(void 0===n)throw TypeError("termination command is required");if(r){let t=ut(n,[...i,...e],{env:process.env,stdio:"ignore",windowsHide:!0});if(void 0!==t.error)throw t.error;return}ct(n,[...i,...e],{env:process.env,stdio:"ignore",windowsHide:!0}).once("error",t=>process.stderr.write(`${t.message}\n`))}function kt(t,e){It(`posix-${e}`,t);let r=Nt("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 Ot(r,["--signal-group",String(t),e],!1)}function Pt(t){void 0!==t&&It("win32-graceful",t)}function Tt(t,e){"win32"===t?(Pt(e.pid),e.kill()):void 0!==e.pid&&kt(e.pid,"SIGTERM")}function Mt(t,e,r=!1){void 0!==e&&("win32"===t?function(t,e){Ot(Nt("OMO_MEMORY_SUPERVISOR_TASKKILL_COMMAND")??["taskkill"],["/pid",String(t),"/T","/F"],e)}(e,r):kt(e,"SIGKILL"))}async function Rt(t){return await yt(t)}import{join as At}from"node:path";function $t(t){return"object"==typeof t&&null!==t}function Ct(t,e){try{return t?.[e]}catch(t){return void Error}}function Lt(t,e){let r=Ct(t,e);return $t(r)?r:void 0}function Dt(t){if(!t)return"";if("string"==typeof t)return t.toLowerCase();if(!$t(t))try{return JSON.stringify(t).toLowerCase()}catch(t){if(!(t instanceof Error))throw t;return""}let e=Lt(t,"data"),r=[e,Lt(t,"error"),t,Lt(e,"error")].filter(t=>void 0!==t);for(let t of r){let e=Ct(t,"message");if("string"==typeof e&&e.length>0)return e.toLowerCase()}let n=Ct(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 Ut(t,e){if(function(t){return"object"==typeof t&&null!==t}(t))try{return t[e]}catch(t){return void Error}}function qt(t){return"terminal_quota_exhausted"===function(t){let e=Ut(t,"data"),r=Ut(t,"detail")??Ut(e,"detail")??t,n=Ut(r,"error")??r,i=Ut(n,"type")??Ut(r,"type");return"string"==typeof i?i.toLowerCase():void 0}(t)||(e=Dt(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 jt(t){if(qt(t))return"abort";let e=Dt(t),r=function(t){if(!$t(t))return;let e=Lt(t,"data"),r=[t,e,Lt(t,"error"),Lt(e,"error")].filter(t=>void 0!==t);for(let t of r){let e=Ct(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 Ft=new Set(["providermodelnotfounderror","ratelimiterror","modelunavailableerror","providerconnectionerror","authenticationerror"]),Jt=new Set(["messageabortederror","permissiondeniederror","contextlengtherror","timeouterror","validationerror","syntaxerror","usererror"]),Bt=["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"],Gt=["rate limit","cooling down","credentials for model"];function Ht(t){let e=t.name?.toLowerCase();if(void 0!==e&&Jt.has(e))return!1;if(qt(t))return!1;if("quota_exceeded"===jt(t))return!0;if(void 0!==e&&Ft.has(e))return!0;let r=t.message?.toLowerCase()??"";return!(!(n=r).includes("retrying in")||!Gt.some(t=>n.includes(t)))||(null!=t.statusCode&&(429===t.statusCode||503===t.statusCode||529===t.statusCode)||Bt.some(t=>r.includes(t)));var n}var Yt=[/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],Vt=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];var Kt=/^Error: Model "([^"]+)" not found\. Use --list-models to see available models\.$/m,zt=/^(?:Error:\s*)?No API key found for\s+([^\s.]+)/m,Xt=/(?:^|\s)(\d{3})\s*:/;function Zt(t){if(t.timedOut||0===t.code)return;let e=`${t.stderr}\n${t.stdout}`,r=Kt.exec(e)?.[1];if(void 0!==r)return{kind:"model_not_visible",id:r};let n=zt.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,!Vt.some(t=>t.test(o))&&Yt.some(t=>t.test(o)))return{kind:"context_overflow",detail:i};var o;let a=Number.parseInt(Xt.exec(i)?.[1]??"",10);return Ht({message:i,...Number.isNaN(a)?{}:{statusCode:a}})?{kind:"provider_unavailable",detail:i}:void 0}import{randomUUID as Wt}from"node:crypto";import{dirname as Qt,join as te}from"node:path";import{randomUUID as ee}from"node:crypto";import{hostname as re}from"node:os";import ne from"node:path";import ie from"node:path";var oe=new Set;function ae(t){oe.add(t)}function se(t){oe.delete(t)}var le=/\.candidate-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ce(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}function ue(t,e){try{t.onFailure?.(e)}catch{}}function de(t){if("win32"!==process.platform)return!1;let e=ce(t);return"EBUSY"===e||"EPERM"===e||"EACCES"===e}import{randomUUID as fe}from"node:crypto";import{hostname as pe}from"node:os";function me(t){return"string"==typeof t&&t.length>0}function we(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:me(r.process_start)&&me(r.hostname)&&me(r.nonce)?!me(r.created_at)||Number.isNaN(Date.parse(r.created_at))?null:me(r.purpose)&&(void 0===r.run_id||me(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 he(t,e={}){if(0===t.length)throw Error("lock purpose must not be empty");let r=await yt(process.pid);return{pid:process.pid,process_start:r??"unavailable",hostname:pe(),nonce:fe(),created_at:(new Date).toISOString(),purpose:t,...void 0===e.runId?{}:{run_id:e.runId}}}var ye=new Set(["EACCES","EPERM","ENOTSUP"]);class ge extends Error{lockPath;owner;retriable=!0;constructor(t,e){super(`Lock is held: ${t}`),this.lockPath=t,this.owner=e,this.name="LockContentionError"}}function ve(t){if(t instanceof Error&&"code"in t)return"string"==typeof t.code?t.code:void 0}function Ee(t,e){if(void 0!==e)return e(t);if("win32"!==process.platform)return!1;let r=ve(t);return"EBUSY"===r||"EPERM"===r||"EACCES"===r}async function be(t){for(let e=0;e<3;e+=1)try{return await(Ne.unlink??C)(t),se(t),!0}catch(r){if("ENOENT"===ve(r))return se(t),!0;if(!Ee(r,Ne.isSharingError))throw ae(t),Oe(ne.dirname(t)),r;if(e+1===3)return ae(t),Oe(ne.dirname(t)),!1}return!1}function Se(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 xe(t){try{let e=await P(t,"utf8"),r=await $(t,{bigint:!0});return{raw:e,record:we(e),dev:r.dev,ino:r.ino,mtimeMs:Number(r.mtimeMs)}}catch(t){let e=ve(t);if("ENOENT"===e)return null;if("\\"===ne.sep&&"EPERM"===e)return{raw:"",record:null,dev:0,ino:0,mtimeMs:Date.now()};throw t}}async function _e(t,e){await O(ne.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-${ee()}`;try{return{candidatePath:r,handle:await Z(r,"wx",384)}}catch(n){if(await be(r)||Oe(ne.dirname(t)),"EINTR"!==ve(n)||e>=128)throw n}}}(t);try{try{await f(n,`${JSON.stringify(e)}\n`,"utf8"),await n.sync()}finally{await n.close()}try{return await(Ne.link??I)(r,t),!0}catch(r){if(function(t){let e=ve(t);return"EEXIST"===e||"ENOENT"===e}(r))return!1;if(ye.has(ve(r)??""))return await async function(t,e){let r;try{r=await Z(t,"wx",384)}catch(t){if("EEXIST"===ve(t))return!1;throw t}try{return await(Ne.writeFallback??f)(r,`${JSON.stringify(e)}\n`,"utf8"),await r.sync(),!0}finally{await r.close()}}(t,e);throw r}}finally{await be(r)||Oe(ne.dirname(t))}}var Ie=new Set,Ne={};function Oe(t){Ie.delete(t)}async function ke(t){if(t.hostname!==re())return!1;let e=vt(t.pid);if("dead"===e)return!0;if("unknown"===e)return!1;let r=await yt(t.pid);return null!==r&&"unavailable"!==t.process_start&&function(t,e){let r=gt(t);return null!==r&&r===gt(e)&&t!==e}(t.process_start,r)}function Pe(t,e){return t.dev===e.dev&&t.ino===e.ino&&t.mtimeMs===e.mtimeMs&&t.raw===e.raw}async function Te(t,e,r){return null!==t.record?ke(t.record):e-t.mtimeMs>r}async function Me(t,e,r){let n=await xe(t);if(null===n||!await Te(n,e,r))return!1;let i=`${t}.reaping-${ee()}`;try{await v(t,i)}catch(t){if("ENOENT"===ve(t))return!1;if(Ee(t))return!1;throw t}let o=await xe(i);if(null!==o&&Pe(o,n))return await C(i),!0;try{await I(i,t)}catch(t){if("EEXIST"!==ve(t))throw t}return await C(i),!1}async function Re(t,e,r,n,i){if(!await Te(e,n,i))return!1;let o=`${t}.recovery`,a={...r,nonce:ee(),created_at:(new Date).toISOString(),purpose:`${r.purpose}:recovery`};for(let t=0;!await _e(o,a);t+=1)if(t>0||!await Me(o,n,i))return!1;try{let r=await xe(t);if(null===r)return!0;if(!Pe(r,e))return!1;if(!await Te(r,n,i))return!1;let s=await xe(o);return null!==s&&s.record?.nonce===a.nonce&&(await C(t),!0)}finally{await $e(o,a)}}async function Ae(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=ne.dirname(t);Ie.has(s)||(Ie.add(s),await async function(t,e=Date.now,r={}){let n;try{n=await T(t)}catch(e){if("ENOENT"===ce(e)){for(let e of oe)ie.dirname(e)===t&&se(e);return 0}throw e}let i=0;for(let o of n){if(!le.test(o))continue;let n=ie.join(t,o);try{let t=await $(n);if(!oe.has(n)&&e()-t.mtimeMs<=36e5)continue;let o=!1;for(let t=0;t<3;t+=1)try{await(r.unlink??C)(n),se(n),o=!0;break}catch(e){if("ENOENT"===ce(e)){se(n),o=!0;break}if(!(r.isSharingError?.(e)??de(e)))throw e;t+1===3&&ue(r,n)}o&&(i+=1)}catch(t){"ENOENT"===ce(t)&&se(n),ue(r,n)}}return i}(s,Date.now,{...void 0===Ne.unlink?{}:{unlink:Ne.unlink},...void 0===Ne.isSharingError?{}:{isSharingError:Ne.isSharingError},onFailure:()=>Oe(s)}).catch(()=>{Oe(s)}));let l=a()+n;for(;;){r.signal?.throwIfAborted();let n=await xe(t);if(null===n){if(await _e(t,e))return;if(r.signal?.throwIfAborted(),n=await xe(t),null===n)continue}if(!await Re(t,n,e,a(),o)){if(r.signal?.throwIfAborted(),a()>=l)throw new ge(t,n.record);await Se(Math.min(i,Math.max(1,l-a())),r.signal)}}}async function $e(t,e){let r=await xe(t);if(null===r||r.record?.nonce!==e.nonce)return!1;try{return await C(t),!0}catch(t){if("ENOENT"===ve(t))return!1;throw t}}async function Ce(t,e,r,n){await Ae(t,e,n);try{return await r()}finally{await $e(t,e)}}Promise.resolve();var Le=[["\\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",""]];Le.map(([t,e])=>new RegExp(t,e)),Le.map(([t,e])=>new RegExp(t,`${e}g`));new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});import{dirname as De}from"node:path";import{fileURLToPath as Ue}from"node:url";De(Ue(import.meta.url));import{dirname as qe}from"node:path";import{fileURLToPath as je}from"node:url";qe(je(import.meta.url)),new Date(0).toISOString();var Fe="\\p{Script=Hangul}\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\u30fc";new RegExp(`[${Fe}]+|(?:(?![${Fe}])[\\p{L}\\p{M}\\p{N}])+`,"gu"),new RegExp(`^[${Fe}]+$`,"u"),new RegExp(`[${Fe}]`,"u"),new RegExp(`[${Fe}]`,"gu"),new RegExp(`[\\p{L}${Fe}]`,"gu");import{dirname as Je}from"node:path";import{fileURLToPath as Be}from"node:url";Je(Be(import.meta.url));function Ge(t){return te(t,"terminal-claim.json")}function He(t,e,r){return t.runId===e.runId&&t.attempt===e.attempt&&(void 0===r||t.kind===r)}function Ye(t,e){let r=`${t}.${process.pid}.${Wt()}.candidate`;!function(t,e){let r=W(t,"wx",384);try{V(r,`${JSON.stringify(e,null,2)}\n`,"utf8"),U(r)}finally{Q(r)}}(r,e);try{q(r,t)}catch(t){if("EEXIST"===We(t))return!1;throw t}finally{ze(r)}return function(t){let e;try{e=W(t,"r")}catch(t){if("win32"===process.platform&&["EISDIR","EPERM"].includes(We(t)??""))return;throw t}try{U(e)}catch(t){if("win32"!==process.platform||!["EPERM","EACCES","EINVAL"].includes(We(t)??""))throw t}finally{Q(e)}}(Qt(t)),!0}function Ve(t){let e;try{e=J(t,"utf8")}catch(t){if("ENOENT"===We(t))return;throw t}try{return{raw:e,claim:Ze(JSON.parse(e))}}catch{return{raw:e,claim:void 0}}}async function Ke(t,e,r,n,i,o){let a=await he("reflection-finalize",{runId:i.runId});return Ce(te(t,"terminal-claim-recovery.lock"),a,async()=>{let t=Ve(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||!Xe(t.claim,o))return t.claim}ze(e)}},{waitTimeoutMs:Number.POSITIVE_INFINITY})}function ze(t){try{Y(t)}catch(t){if("ENOENT"!==We(t))throw t}}function Xe(t,e){return"dead"===(e.getPidLiveness??vt)(t.claimantPid)}function Ze(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 We(t){return t instanceof Error&&"code"in t?String(t.code):void 0}import{join as Qe}from"node:path";async function tr(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=Ge(t),a={version:1,kind:r,runId:e.runId,attempt:e.attempt,claimantPid:i},s=0;for(;;){if(Ye(o,a))return a;let i=Ve(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 Ke(t,o,i,"invalid",e,n);if(void 0!==r)return r;continue}if(He(l,e,r))return l;if("publish"!==l.kind||!Xe(l,n))return l;await(n.beforeRecovery?.("dead-publish"));let c=await Ke(t,o,i,"dead-publish",e,n);if(void 0!==c)return c}}(t,n,"publish");He(i,n,"publish")&&(await at(At(t,"publishing.json"),{version:1,...n,finishedAt:r.finishedAt}),await async function(t,e,r,n=Ce,i=he){let o=await i("reflection-finalize",{runId:e});return n(Qe(t,"terminalization.lock"),o,r,{waitTimeoutMs:Number.POSITIVE_INFINITY})}(t,e.runId,async()=>{if(tt(At(t,"final.json"))||tt(At(t,"abandoned.json")))return;if(!He(function(t){return Ze(JSON.parse(J(Ge(t),"utf8")))}(t),n,"publish"))return;let i=void 0!==Zt({code:r.childExit.code,stdout:J(e.stdoutPath,"utf8"),stderr:J(e.stderrPath,"utf8"),timedOut:r.timedOut});i&&void 0!==e.nextAttempt&&await st(At(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 at(At(t,"outcome.json"),r),i&&await lt(Ge(t))}))}function er(t){try{K(3,`${JSON.stringify(t)}\n`)}catch(t){if(!(t instanceof Error&&"code"in t&&["EPIPE","EBADF"].includes(String(t.code))))throw t}}var rr=process.argv.slice(2);try{if("--child-bootstrap"===rr[0]){if(void 0===rr[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 ot(et(e,"launch.json")),n=bt(),i=t(r.command,[...r.args],{cwd:r.cwd,env:r.env,detached:!1,stdio:["ignore","inherit","inherit"],windowsHide:!0});er({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=St(r.hardDeadlineAt,()=>{"win32"===n?Tt(n,i):kt(process.pid,"SIGTERM")}),s=St(r.hardDeadlineAt+r.terminationGraceMs,()=>{Mt(n,process.pid)});er(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()}))}(rr[1])}else{if(void 0===rr[0])throw TypeError("run directory is required");await async function(e){let r=et(e,"launch.json"),n=et(e,"ledger.json"),i=await ot(r),o=bt();await st(n,{launching:!1,pid:process.pid,processStart:await Rt(process.pid)});let a,s=W(i.stdoutPath,"w"),l=W(i.stderrPath,"w"),c=t(process.execPath,[rt(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{Mt(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 st(n,{childPid:c.pid,childProcessStart:await Rt(c.pid)}),c.stdin?.end("1\n");let m,w=!1,h=Promise.resolve();"win32"===o&&(h=new Promise(t=>{m=t}));let y=St(i.hardDeadlineAt,()=>{w=!0,"win32"===o?Pt(c.pid):Tt(o,c)}),g=St(i.hardDeadlineAt+i.terminationGraceMs,()=>{Mt(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}))})}),E=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===E&&await h,y(),g(),u=void 0,Q(s),Q(l);let b=function(){let t=Et()?process.env.OMO_MEMORY_SUPERVISOR_CLOCK_PATH:void 0;return void 0===t?Date.now():_t(t)}(),S=(new Date).toISOString(),x={version:1,runId:i.runId,attempt:i.attempt,finishedAt:S,childExit:E??v,timedOut:w||Number.isFinite(b)&&b>=i.hardDeadlineAt};await tr(e,i,x),await lt(r),process.exit(0)}(rr[0])}}catch(t){process.stderr.write(`${t instanceof Error?t.stack??t.message:String(t)}\n`),process.exitCode=1}
|