@systemfsoftware/omp-claude-compat 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CommandExecutor-B_nJZc9B.js +1 -0
- package/dist/dist-DQtXO3Ic.js +18 -0
- package/dist/esm-DxC3o46t.js +55 -0
- package/dist/hook-dispatcher.executor-eSEEzqYS.js +3 -0
- package/dist/index.js +1 -1
- package/dist/inject-instructions.executor-BdtS86PG.js +3 -0
- package/dist/runtime-D3PIHvF6.js +1 -0
- package/package.json +13 -7
- package/dist/dist-spu_CyKU.js +0 -17
- package/dist/hook-dispatcher.executor-ZebBJ5Sk.js +0 -3
- package/dist/inject-instructions.executor-CwW6M_qL.js +0 -3
- package/dist/runtime-DwpyNRPD.js +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{A as e,B as t,C as n,Cn as r,D as i,Dn as a,E as o,En as s,F as c,Ft as l,H as u,I as d,N as f,O as p,On as m,P as h,S as ee,Sn as te,St as ne,T as g,Tn as _,U as v,V as y,b,bn as x,bt as S,jt as C,k as w,kn as T,kt as re,mt as ie,pt as ae,r as E,s as D,w as O,wn as k,xt as A,y as j,z as M}from"./esm-DxC3o46t.js";import{f as oe,l as se,o as ce,p as le,s as ue,t as de,u as fe}from"./CommandExecutor-B_nJZc9B.js";import{a as N,d as pe,i as P,o as F,r as I,s as L}from"./dist-DQtXO3Ic.js";import{homedir as R}from"node:os";o({code:n,stdout:g,stderr:g});var z=class extends i()(`Block`,{reason:g}){},B=class extends i()(`Allow`,{}){},V=class extends i()(`Warning`,{message:g}){};w(z,B,V);var H=class extends i()(`Blocked`,{reason:g}){},U=class extends i()(`Continue`,{warning:h(g),updatedInput:h(O({key:g,value:e}))}){};w(H,U);const W=f(d(o({decision:h(g),reason:h(g),hookSpecificOutput:h(o({permissionDecision:h(g),permissionDecisionReason:h(g),updatedInput:h(O({key:g,value:e}))}))}))),me=o({type:ee(`command`),command:g,async:h(b),timeout:h(n)}),G=o({matcher:h(g),hooks:j(me)}),K=o({PreToolUse:c(j(G),{exact:!0,default:()=>[]}),PostToolUse:c(j(G),{exact:!0,default:()=>[]}),UserPromptSubmit:c(j(G),{exact:!0,default:()=>[]}),Stop:c(j(G),{exact:!0,default:()=>[]}),SessionStart:c(j(G),{exact:!0,default:()=>[]}),SessionEnd:c(j(G),{exact:!0,default:()=>[]})}),he=f(w(o({hooks:K,disableAllHooks:h(b)}),o({...K.fields,disableAllHooks:h(b)})));function ge(e){return a(he(e),e=>{if(`hooks`in e)return e;let{disableAllHooks:t,...n}=e;return{hooks:n,disableAllHooks:t}})}const _e=[`PreToolUse`,`PostToolUse`,`UserPromptSubmit`,`SessionStart`,`SessionEnd`,`Stop`];function ve(e){let t={hooks:{PreToolUse:[],PostToolUse:[],UserPromptSubmit:[],SessionStart:[],SessionEnd:[],Stop:[]}};for(let n of e){for(let e of _e)t.hooks[e]=(t.hooks[e]??[]).concat(Array.from(n.hooks[e]));n.disableAllHooks!==void 0&&(t.disableAllHooks=n.disableAllHooks)}return t}function q(e){return e.disableAllHooks===!0}var ye=class extends p()(`HookVerdictError`,{raw:g}){},J=class extends i()(`ExitBlock`,{}){},Y=class extends i()(`ExitParse`,{}){},X=class extends i()(`ExitOther`,{}){};w(J,Y,X);const be=e=>u(e).pipe(v(2,()=>new J({})),v(0,()=>new Y({})),t(()=>new X({}))),xe=(e,n)=>u(e.trim()).pipe(v(``,()=>`Blocked by ${n} hook`),t(e=>e)),Se=(e,n)=>u(e.hookSpecificOutput?.permissionDecision??e.decision).pipe(v(`deny`,()=>new z({reason:e.hookSpecificOutput?.permissionDecisionReason??`Blocked by ${n} hook`})),v(`block`,()=>new z({reason:e.reason??`Blocked by ${n} hook`})),t(()=>new B({}))),Ce=e=>u(e.trim()).pipe(v(``,()=>new B({})),t(e=>new V({message:e}))),we=(e,t)=>u(be(e.code)).pipe(y(`ExitBlock`,()=>T(new z({reason:xe(e.stderr,t)}))),y(`ExitParse`,()=>m(W(e.stdout),{onLeft:()=>s(new ye({raw:e.stdout})),onRight:e=>T(Se(e,t))})),y(`ExitOther`,()=>T(Ce(e.stderr))),M);function Te(e,t){let n=e.replace(/"\$OMP_PROJECT_DIR"|'\$OMP_PROJECT_DIR'/g,JSON.stringify(t)).replace(/"\$\{OMP_PROJECT_DIR\}"|'\$\{OMP_PROJECT_DIR\}'/g,JSON.stringify(t)).replace(/"\$CLAUDE_PROJECT_DIR"|'\$CLAUDE_PROJECT_DIR'/g,JSON.stringify(t)).replace(/"\$\{CLAUDE_PROJECT_DIR\}"|'\$\{CLAUDE_PROJECT_DIR\}'/g,JSON.stringify(t)).replace(/\$OMP_PROJECT_DIR|\$\{OMP_PROJECT_DIR\}/g,JSON.stringify(t)).replace(/\$CLAUDE_PROJECT_DIR|\$\{CLAUDE_PROJECT_DIR\}/g,JSON.stringify(t)).trim();return{cmd:`sh`,args:[`-c`,n.startsWith(`"`)&&n.endsWith(`"`)?n.slice(1,-1):n]}}const Z=S(`loadSettingsFile`)(function*(t){let n=yield*(yield*pe).readFileString(t).pipe(ae(()=>C(``)));if(n===``)return null;let r=f(d(O({key:g,value:e})))(n);if(k(r))return null;let i=r.right,a=ge(i);return k(a)?null:a.right}),Ee=S(`loadSettings`)(function*(e){let t=[`${R()}/.claude/settings.json`,`${e}/.claude/settings.json`,`${e}/.claude/settings.local.json`,`/etc/claude-code/managed-settings.json`];return yield*De(t)}),De=S(`loadSettingsWithPaths`)(function*(e){let t=[];for(let n of e){let e=yield*Z(n);e!==null&&t.push(e)}return t.length===0?null:ve(t)}),Q=S(`runHookScript`)(function*(e,t,n,r){let i=yield*de,{cmd:a,args:o}=Te(e,n),s=JSON.stringify(t),c=se(a,...o).pipe(le(n),ce({OMP_PROJECT_DIR:n,CLAUDE_PROJECT_DIR:n}),ue(s),oe(`pipe`),fe(`pipe`));return yield*re(ne(function*(){let e=yield*i.start(c),t=yield*e.stdout.pipe(E(),D),n=yield*e.stderr.pipe(E(),D),r=yield*e.exitCode;return{code:typeof r==`number`?r:Number(r),stdout:t,stderr:n}})).pipe(l(r),ie(`TimeoutException`,()=>C({code:-1,stdout:``,stderr:`timeout after ${r}ms`})))}),$=S(`runHooksForEvent`)(function*(e,t,n,i,a){let o=i.cwd,s,c=!1,l=n;for(let n of e)if(P(t,n.matcher))for(let e of n.hooks){let t=(e.timeout??10)*1e3;if(e.async){yield*A(Q(e.command,l,o,t));continue}let n=yield*Q(e.command,l,o,t),i=u(u(m(we(n,a),{onLeft:e=>u(e).pipe(y(`HookVerdictError`,e=>new V({message:`Hook exited 0 but produced invalid JSON: ${e.raw.slice(0,200)}`})),M),onRight:e=>e})).pipe(y(`Block`,e=>new H({reason:e.reason})),y(`Warning`,e=>new U({warning:e.message})),y(`Allow`,()=>{let e=W(n.stdout);return new U({updatedInput:_(e)?e.right.hookSpecificOutput?.updatedInput:void 0})}),M)).pipe(y(`Blocked`,e=>r({block:!0,reason:e.reason})),y(`Continue`,e=>(e.warning!==void 0&&s===void 0&&(s=e.warning),e.updatedInput!==void 0&&(l={...l,...e.updatedInput},c=!0),te())),M);if(x(i))return i.value}return{...c?{updatedInput:l}:{},...s===void 0?{}:{warning:s}}}),Oe=S(`runPreToolUseHooks`)(function*(e,t,n){if(q(e))return;let r=F(t.toolName),i=L(()=>n.sessionManager.getSessionId()),a={...i,tool_name:r,tool_input:N(r,t.input),tool_call_id:t.toolCallId},o=I(t.toolName,t.input);if(o!==void 0&&o.length>0){let r={...i,tool_name:`Bash`,tool_input:{command:o},tool_call_id:t.toolCallId},a=yield*$(e.hooks.PreToolUse,`Bash`,r,n,`PreToolUse`);if(a.block)return a.reason===void 0?{block:!0}:{block:!0,reason:a.reason}}let s=yield*$(e.hooks.PreToolUse,r,a,n,`PreToolUse`);if(s.block)return s.reason===void 0?{block:!0}:{block:!0,reason:s.reason};if(s.updatedInput&&typeof s.updatedInput==`object`&&`tool_input`in s.updatedInput&&s.updatedInput.tool_input&&typeof s.updatedInput.tool_input==`object`){let e=s.updatedInput.tool_input;for(let[n,r]of Object.entries(e))t.input[n]=r}}),ke=S(`runPostToolUseHooks`)(function*(e,t,n){let r=F(t.toolName);if(q(e))return;let i={...L(()=>n.sessionManager.getSessionId()),tool_name:r,tool_input:N(r,t.input),tool_call_id:t.toolCallId,output:t.content,is_error:t.isError??!1};return yield*$(e.hooks.PostToolUse,r,i,n,`PostToolUse`)}),Ae=S(`runUserPromptSubmitHooks`)(function*(e,t,n){let r=e.hooks.UserPromptSubmit;if(q(e)||r.length===0)return;let i=n.cwd,a=``,o={...L(()=>n.sessionManager.getSessionId()),prompt:t.text,source:t.source};for(let e of r)for(let t of e.hooks){let e=yield*Q(t.command,o,i,(t.timeout??10)*1e3);if(e.code!==0)continue;let n=e.stdout.trim();n.length>0&&(a+=(a.length>0?`
|
|
2
|
+
|
|
3
|
+
`:``)+n)}if(a.length===0)return;let s={text:`${a}\n\n${t.text}`};return t.images!==void 0&&(s.images=t.images),s}),je=S(`runSessionStartHooks`)(function*(e,t,n){if(q(e))return;let r=e.hooks.SessionStart;if(r.length===0)return;let i=n.cwd,a={...L(()=>n.sessionManager.getSessionId()),reason:t};for(let e of r)if(!(e.matcher&&!P(t,e.matcher)))for(let t of e.hooks){let e=(t.timeout??10)*1e3;if(t.async){yield*A(Q(t.command,a,i,e));continue}yield*Q(t.command,a,i,e)}}),Me=S(`runLifecycleHooks`)(function*(e,t){if(e.length===0)return;let n=t.cwd,r={...L(()=>t.sessionManager.getSessionId())};for(let t of e)for(let e of t.hooks){let t=(e.timeout??10)*1e3;e.async?yield*A(Q(e.command,r,n,t)):yield*Q(e.command,r,n,t)}});export{Ee as loadSettings,Me as runLifecycleHooks,ke as runPostToolUseHooks,Oe as runPreToolUseHooks,je as runSessionStartHooks,Ae as runUserPromptSubmitHooks};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>{let t=async e=>{let[t,n]=await Promise.all([import(`./runtime-
|
|
1
|
+
const e=(e,t)=>{e(e=>{e.setTimeout(()=>{t()},0)});let n=()=>{t().then(({default:e})=>e.dispose())};process.on(`SIGINT`,n),process.on(`SIGTERM`,n)},t=e=>{let t=async e=>{let[t,n]=await Promise.all([import(`./runtime-D3PIHvF6.js`).then(e=>e.default),import(`./esm-DxC3o46t.js`)]),{Cause:r,Effect:i,Exit:a}=n,o=e.pipe(i.exit),s=await t.runPromise(o);if(a.isFailure(s))throw r.squash(s.cause);return s.value};e.on(`tool_call`,async(e,n)=>{let{loadSettings:r,runPreToolUseHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let t=yield*r(n.cwd);if(t)return yield*i(t,e,n)}))}),e.on(`tool_result`,async(e,n)=>{let{loadSettings:r,runPostToolUseHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let t=yield*r(n.cwd);if(!t)return;let a=yield*i(t,e,n);if(a?.block)return{isError:!0,content:[{type:`text`,text:a.reason??`Blocked by PostToolUse hook`}]};if(a?.warning)return{content:[...e.content??[],{type:`text`,text:a.warning}],isError:e.isError}}))}),e.on(`input`,async(e,n)=>{let{loadSettings:r,runUserPromptSubmitHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let t=yield*r(n.cwd);if(t)return yield*i(t,e,n)}))}),e.on(`session_start`,async(e,n)=>{let{loadSettings:r,runSessionStartHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let e=yield*r(n.cwd);e&&(yield*i(e,`start`,n))}))}),e.on(`session_compact`,async(e,n)=>{let{loadSettings:r,runSessionStartHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let e=yield*r(n.cwd);e&&(yield*i(e,`compact`,n))}))}),e.on(`agent_start`,async(e,n)=>{let{loadSettings:r,runSessionStartHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let e=yield*r(n.cwd);e&&(yield*i(e,`resume`,n))}))}),e.on(`session_shutdown`,async(e,n)=>{let{loadSettings:r,runLifecycleHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let e=yield*r(n.cwd);e&&(e.disableAllHooks||(yield*i(e.hooks.SessionEnd,n)))}))}),e.on(`session_stop`,async(e,n)=>{let{loadSettings:r,runLifecycleHooks:i}=await import(`./hook-dispatcher.executor-eSEEzqYS.js`),{Effect:a}=await import(`./esm-DxC3o46t.js`);return t(a.gen(function*(){let e=yield*r(n.cwd);e&&(e.disableAllHooks||(yield*i(e.hooks.Stop,n)))}))})},n=e=>{e.on(`before_agent_start`,async(e,t)=>{let n=await import(`./runtime-D3PIHvF6.js`).then(e=>e.default),{loadReferencedContent:r}=await import(`./inject-instructions.executor-BdtS86PG.js`),{Cause:i,Config:a,Effect:o,Exit:s}=await import(`./esm-DxC3o46t.js`),c=await n.runPromise(o.gen(function*(){let e=yield*a.string(`CLAUDE_PROJECT_DIR`).pipe(a.withDefault(process.cwd()));return yield*r(e)}).pipe(o.exit));if(s.isFailure(c))throw i.squash(c.cause);let l=c.value;if(l!==``)return{systemPrompt:[...e.systemPrompt,``,l]}})};function r(r){t(r),n(r),e(e=>r.on(`session_start`,(t,n)=>e(n)),()=>import(`./runtime-D3PIHvF6.js`))}export{r as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{Cn as e,D as t,E as n,H as r,Sn as i,T as a,Tn as o,V as s,bn as c,bt as l,gt as u,jt as d,pt as f,vn as p,wn as m,y as h,z as g}from"./esm-DxC3o46t.js";import{c as _,d as v,t as y}from"./dist-DQtXO3Ic.js";const b=[`AGENTS.md`];var x=class extends t()(`Inject`,{}){},S=class extends t()(`Skip`,{matched:a}){};n({baseName:a,skipList:h(a)});const C=e=>p(e.skipList.find(t=>t===e.baseName)),w=e=>r(C(e)).pipe(s(`None`,()=>new x),s(`Some`,e=>new S({matched:e.value})),g),T=l(`extractRefs`)(function*(e,t,n){let r=yield*v,i=yield*_,a=[];for(let s of e.split(`
|
|
2
|
+
`)){let e=s.trim().replace(/^[-*+]\s+/,``);if(!e.startsWith(`@`))continue;let c=e.slice(1).trim();if(!c||c.includes(` `)||i.isAbsolute(c))continue;let l=i.resolve(t,c);if(l.startsWith(n+`/`)||l===n){let e=yield*u(r.exists(l));if(o(e)&&e.right){a.push({sourcePath:t,resolvedPath:l});continue}}let d=i.resolve(n,c);(d.startsWith(n+`/`)||d===n)&&d!==l&&a.push({sourcePath:n,resolvedPath:d})}return a}),E=l(`loadReferencedContent`)(function*(t){let n=yield*v,a=yield*_,l=yield*y,p=[a.resolve(t,`CLAUDE.md`),a.resolve(t,`.claude`,`CLAUDE.md`)],h=[];for(let e of p){let r=yield*u(n.readFileString(e,`utf-8`));if(o(r)){let n=yield*T(r.right,a.dirname(e),t);h.push(...n)}}let x=new Set,S=[];for(let e of h)x.has(e.resolvedPath)||(x.add(e.resolvedPath),S.push(e));let C=(yield*l.load(t).pipe(f(()=>d(void 0))))?.no_inject_refs??b,E=[];for(let o of S){let l=o.resolvedPath.slice(t.length+1);if(c(r(w({baseName:a.basename(o.resolvedPath),skipList:C})).pipe(s(`Skip`,t=>e(t.matched)),s(`Inject`,()=>i()),g)))continue;let d=yield*u(n.readFileString(o.resolvedPath,`utf-8`));m(d)||E.push(`## ${l}\n${d.right}\n`)}return E.length===0?``:[`# Injected @-references from CLAUDE.md`,`The following files were @-imported by CLAUDE.md and contain project rules.`,``,...E].join(`
|
|
3
|
+
`)});export{E as loadReferencedContent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,$t as t,At as n,Bt as r,Cn as i,Ct as a,Dt as o,Et as s,Ht as c,Lt as l,Mn as u,Mt as d,Nt as f,Ot as p,Pt as m,Q as ee,Qt as h,Rt as te,Sn as ne,Tt as re,Vt as g,W as ie,Xt as ae,Zt as oe,_ as se,_n as ce,_t as le,at as ue,c as de,ct as _,d as fe,dt as pe,en as me,et as v,f as he,ft as y,ht as ge,i as _e,identity as ve,it as ye,jn as be,jt as b,kt as xe,lt as x,m as Se,nn as S,nt as C,ot as w,p as T,pipe as E,pn as Ce,rn as D,rt as we,sn as Te,t as Ee,tn as O,tt as De,vn as k,vt as A,wt as j,xn as Oe,xt as ke,yn as Ae,yt as M,zt as je}from"./esm-DxC3o46t.js";import{a as Me,c as N,d as P,i as F,n as Ne,r as Pe,t as Fe}from"./CommandExecutor-B_nJZc9B.js";import{_ as Ie,b as I,d as L,f as R,g as Le,h as Re,l as ze,m as Be,n as Ve,p as z,u as He,v as Ue,y as We}from"./dist-DQtXO3Ic.js";import*as Ge from"node:os";import*as Ke from"node:crypto";import*as B from"node:path";import*as V from"node:fs";import*as H from"node:child_process";const U=(e,t,n)=>(...r)=>y(i=>{try{e(...r,(e,n)=>{i(e?A(t?t(e,r):e):b(n))})}catch(e){i(n?A(n(e,r)):ge(e))}}),W=(e,t,n)=>_e(qe(e,t,n)),qe=(e,t,n)=>C(()=>Xe(e(),t,Te(void 0),n)),Je=(e,t,{encoding:n,endOnDone:r=!0}={},i=_)=>{let a=Ye(e,n),o=r?y(t=>{`closed`in e&&e.closed?t(_):(e.once(`finish`,()=>t(_)),e.end())}):_;return{awaitRead:()=>_,emit:a,error:e=>c(o,t(e)),done:e=>c(o,i)}},Ye=(e,t)=>n=>n.length===0?_:y(r=>{let i=n[Symbol.iterator](),a=i.next();function o(){let n=a;a=i.next();let s=e.write(n.value,t);a.done?r(_):s?o():e.once(`drain`,o)}o()}),Xe=(t,n,r,i)=>{if(!t.readable)return we;let a=je(!1);function o(){a.unsafeOpen()}function s(e){r.current=ae(n(e)),a.unsafeOpen()}function c(){r.current=oe,a.unsafeOpen()}t.on(`readable`,o),t.on(`error`,s),t.on(`end`,c);let l=i?.chunkSize?Number(i.chunkSize):void 0;return e(C(function e(){let n=t.read(l);if(n===null)return r.current?De(r.current):(a.unsafeClose(),v(a.await,e));let i=[n];for(;;){if(n=t.read(l),n===null)return v(ye(Ce(i)),e);i.push(n)}}),f(()=>{t.off(`readable`,o),t.off(`error`,s),t.off(`end`,c),i?.closeOnDone!==!1&&`closed`in t&&!t.closed&&t.destroy()}))},Ze=(e,t,n)=>se(Qe(e,t,n)),Qe=(e,n,r)=>v(g(f(()=>e()),S()),([e,i])=>ee($e(e,i,n),Je(e,e=>me(i,e),r,t(i,_)))),$e=(e,t,n)=>d(()=>{function r(e){D(t,A(n(e)))}return e.on(`error`,r),le(h(t),f(()=>{e.removeListener(`error`,r)}))}),G=(e,t)=>(n,[r])=>{let i=`Unknown`;switch(n.code){case`ENOENT`:i=`NotFound`;break;case`EACCES`:i=`PermissionDenied`;break;case`EEXIST`:i=`AlreadyExists`;break;case`EISDIR`:i=`BadResource`;break;case`ENOTDIR`:i=`BadResource`;break;case`EBUSY`:i=`Busy`;break;case`ELOOP`:i=`BadResource`;break}return new I({reason:i,module:e,method:t,pathOrDescriptor:r,syscall:n.syscall,description:n.message,cause:n})},et=e=>typeof e==`string`?e:`pipe`,K=e=>typeof e==`string`?e:`pipe`,q=e=>e instanceof globalThis.Error?e:new globalThis.Error(String(e)),J=(e,t,n)=>{let r=N(n).reduce((e,t)=>{let n=`${t.command} ${t.args.join(` `)}`;return e.length===0?n:`${e} | ${n}`},``);return G(`Command`,e)(t,[r])},tt={[F]:F,...be,toJSON(){return{_id:`@effect/platform/CommandExecutor/Process`,pid:this.pid}}},Y=e=>t=>{switch(t._tag){case`StandardCommand`:{let n=M(S(),e=>y(n=>{let r=H.spawn(t.command,t.args,{stdio:[et(t.stdin),K(t.stdout),K(t.stderr)],cwd:Ae(t.cwd,u),shell:t.shell,env:{...process.env,...Object.fromEntries(t.env)},detached:process.platform!==`win32`});return r.on(`error`,e=>{n(A(J(`spawn`,e,t)))}),r.on(`exit`,(...t)=>{D(e,b(t))}),r.on(`spawn`,()=>{n(b([r,e]))}),f(()=>{r.kill(`SIGTERM`)})})),r=process.platform===`win32`?(e,n)=>y(n=>{H.exec(`taskkill /pid ${e.pid} /T /F`,e=>{n(e?A(J(`kill`,q(e),t)):_)})}):(e,n)=>te({try:()=>process.kill(-e.pid,n),catch:e=>J(`kill`,q(e),t)}),i=(e,n)=>d(()=>e.kill(n)?_:A(J(`kill`,new globalThis.Error(`Failed to kill process`),t)));return E(Oe(t.cwd,{onNone:()=>_,onSome:t=>e.access(t)}),c(x(n,([e,t])=>M(O(t),n=>n?M(h(t),([t])=>t!==0&&t!==null?r(e,`SIGTERM`).pipe(a):_):r(e,`SIGTERM`).pipe(p(()=>i(e,`SIGTERM`)),c(h(t)),a)))),j(([e,n])=>{let a=Se;e.stdin!==null&&(a=Ze(()=>e.stdin,e=>J(`toWritable`,q(e),t)));let o=M(h(n),([e,n])=>e===null?A(J(`exitCode`,new globalThis.Error(`Process interrupted due to receipt of signal: ${n}`),t)):b(Ne(e))),l=s(O(n)),u=(t=`SIGTERM`)=>r(e,t).pipe(p(()=>i(e,t)),c(pe(h(n)))),d=Pe(e.pid),f=W(()=>e.stderr,e=>J(`fromReadable(stderr)`,q(e),t)),m=W(()=>e.stdout,e=>J(`fromReadable(stdout)`,q(e),t));return typeof t.stdout!=`string`&&(m=fe(m,t.stdout)),Object.assign(Object.create(tt),{pid:d,exitCode:o,isRunning:l,kill:u,stdin:a,stderr:f,stdout:m})}),typeof t.stdin==`string`?ve:m(e=>ke(de(t.stdin,e.stdin))))}case`PipedCommand`:{let n=N(t);if(n.length===1)return E(n[0],Y(e));let r=n[0],i=n.slice(1),a=i.slice(0,i.length-1),o=i[i.length-1];return E(P(o,a.reduce((t,n)=>E(P(n,t),Y(e),j(e=>e.stdout),T),E(Y(e)(r),j(e=>e.stdout),T))),Y(e))}}},nt=ue(Fe,E(L,j(e=>Me(Y(e))))),X=e=>t=>new We({module:`FileSystem`,method:e,cause:t}),rt=(()=>{let e=U(V.access,G(`FileSystem`,`access`),X(`access`));return(t,n)=>{let r=V.constants.F_OK;return n?.readable&&(r|=V.constants.R_OK),n?.writable&&(r|=V.constants.W_OK),e(t,r)}})(),it=(()=>{let e=U(V.cp,G(`FileSystem`,`copy`),X(`copy`));return(t,n,r)=>e(t,n,{force:r?.overwrite??!1,preserveTimestamps:r?.preserveTimestamps??!1,recursive:!0})})(),at=(()=>{let e=U(V.copyFile,G(`FileSystem`,`copyFile`),X(`copyFile`));return(t,n)=>e(t,n)})(),ot=(()=>{let e=U(V.chmod,G(`FileSystem`,`chmod`),X(`chmod`));return(t,n)=>e(t,n)})(),st=(()=>{let e=U(V.chown,G(`FileSystem`,`chown`),X(`chown`));return(t,n,r)=>e(t,n,r)})(),ct=(()=>{let e=U(V.link,G(`FileSystem`,`link`),X(`link`));return(t,n)=>e(t,n)})(),lt=(()=>{let e=U(V.mkdir,G(`FileSystem`,`makeDirectory`),X(`makeDirectory`));return(t,n)=>e(t,{recursive:n?.recursive??!1,mode:n?.mode})})(),Z=e=>{let t=U(V.mkdtemp,G(`FileSystem`,e),X(e));return e=>d(()=>{let n=e?.prefix??``,r=typeof e?.directory==`string`?B.join(e.directory,`.`):Ge.tmpdir();return t(n?B.join(r,n):r+`/`)})},ut=Z(`makeTempDirectory`),Q=e=>{let t=U(V.rm,G(`FileSystem`,e),X(e));return(e,n)=>t(e,{recursive:n?.recursive??!1,force:n?.force??!1})},dt=Q(`remove`),ft=(()=>{let e=Z(`makeTempDirectoryScoped`),t=Q(`makeTempDirectoryScoped`);return n=>x(e(n),e=>o(t(e,{recursive:!0})))})(),pt=e=>{let t=U(V.open,G(`FileSystem`,e),X(e)),n=U(V.close,G(`FileSystem`,e),X(e));return(e,r)=>E(x(t(e,r?.flag??`r`,r?.mode),e=>o(n(e))),j(e=>ht(He(e),r?.flag?.startsWith(`a`)??!1)))},mt=pt(`open`),ht=(()=>{let e=e=>U(V.read,G(`FileSystem`,e),X(e)),t=e(`read`),n=e(`readAlloc`),a=U(V.fstat,G(`FileSystem`,`stat`),X(`stat`)),o=U(V.ftruncate,G(`FileSystem`,`truncate`),X(`truncate`)),s=U(V.fsync,G(`FileSystem`,`sync`),X(`sync`)),c=e=>U(V.write,G(`FileSystem`,e),X(e)),l=c(`write`),u=c(`writeAll`);class p{fd;append;[R];semaphore=r(1);position=0n;constructor(e,t){this.fd=e,this.append=t,this[R]=R}get stat(){return j(a(this.fd),wt)}get sync(){return s(this.fd)}seek(e,t){let n=z(e);return this.semaphore.withPermits(1)(f(()=>(t===`start`?this.position=n:t===`current`&&(this.position+=n),this.position)))}read(e){return this.semaphore.withPermits(1)(j(d(()=>t(this.fd,{buffer:e,position:this.position})),e=>{let t=z(e);return this.position+=t,t}))}readAlloc(e){let t=Number(e);return this.semaphore.withPermits(1)(M(f(()=>Buffer.allocUnsafeSlow(t)),e=>j(n(this.fd,{buffer:e,position:this.position}),n=>{if(n===0)return ne();if(this.position+=BigInt(n),n===t)return i(e);let r=Buffer.allocUnsafeSlow(n);return e.copy(r,0,0,n),i(r)})))}truncate(e){return this.semaphore.withPermits(1)(j(o(this.fd,e?Number(e):void 0),()=>{if(!this.append){let t=BigInt(e??0);this.position>t&&(this.position=t)}}))}write(e){return this.semaphore.withPermits(1)(j(d(()=>l(this.fd,e,void 0,void 0,this.append?void 0:Number(this.position))),e=>{let t=z(e);return this.append||(this.position+=t),t}))}writeAllChunk(e){return M(d(()=>u(this.fd,e,void 0,void 0,this.append?void 0:Number(this.position))),t=>t===0?A(new I({module:`FileSystem`,method:`writeAll`,reason:`WriteZero`,pathOrDescriptor:this.fd,description:`write returned 0 bytes written`})):(this.append||(this.position+=BigInt(t)),t<e.length?this.writeAllChunk(e.subarray(t)):_))}writeAll(e){return this.semaphore.withPermits(1)(this.writeAllChunk(e))}}return(e,t)=>new p(e,t)})(),gt=e=>{let t=Z(e),n=pt(e),r=e=>f(()=>Ke.randomBytes(e).toString(`hex`));return e=>E(g(t(e),r(6)),j(([t,n])=>B.join(t,n+(e?.suffix??``))),m(e=>xe(n(e,{flag:`w+`}))))},_t=gt(`makeTempFile`),vt=(()=>{let e=gt(`makeTempFileScoped`),t=Q(`makeTempFileScoped`);return n=>x(e(n),e=>o(t(B.dirname(e),{recursive:!0})))})(),yt=(e,t)=>l({try:()=>V.promises.readdir(e,t),catch:t=>G(`FileSystem`,`readDirectory`)(t,[e])}),bt=e=>y((t,n)=>{try{V.readFile(e,{signal:n},(n,r)=>{t(n?A(G(`FileSystem`,`readFile`)(n,[e])):b(r))})}catch(e){t(A(X(`readFile`)(e)))}}),xt=(()=>{let e=U(V.readlink,G(`FileSystem`,`readLink`),X(`readLink`));return t=>e(t)})(),St=(()=>{let e=U(V.realpath,G(`FileSystem`,`realPath`),X(`realPath`));return t=>e(t)})(),Ct=(()=>{let e=U(V.rename,G(`FileSystem`,`rename`),X(`rename`));return(t,n)=>e(t,n)})(),wt=e=>({type:e.isFile()?`File`:e.isDirectory()?`Directory`:e.isSymbolicLink()?`SymbolicLink`:e.isBlockDevice()?`BlockDevice`:e.isCharacterDevice()?`CharacterDevice`:e.isFIFO()?`FIFO`:e.isSocket()?`Socket`:`Unknown`,mtime:k(e.mtime),atime:k(e.atime),birthtime:k(e.birthtime),dev:e.dev,rdev:k(e.rdev),ino:k(e.ino),mode:e.mode,nlink:k(e.nlink),uid:k(e.uid),gid:k(e.gid),size:z(e.size),blksize:k(z(e.blksize)),blocks:k(e.blocks)}),$=(()=>{let e=U(V.stat,G(`FileSystem`,`stat`),X(`stat`));return t=>j(e(t),wt)})(),Tt=(()=>{let e=U(V.symlink,G(`FileSystem`,`symlink`),X(`symlink`));return(t,n)=>e(t,n)})(),Et=(()=>{let e=U(V.truncate,G(`FileSystem`,`truncate`),X(`truncate`));return(t,n)=>e(t,n===void 0?void 0:Number(n))})(),Dt=(()=>{let e=U(V.utimes,G(`FileSystem`,`utime`),X(`utime`));return(t,n,r)=>e(t,n,r)})(),Ot=(e,t)=>Ee(n=>x(f(()=>{let r=V.watch(e,{recursive:t?.recursive},(e,t)=>{if(t)switch(e){case`rename`:n.fromEffect(re($(t),{onSuccess:e=>b(Re({path:t})),onFailure:e=>e._tag===`SystemError`&&e.reason===`NotFound`?b(Le({path:t})):A(e)}));return;case`change`:n.single(Ie({path:t}));return}});return r.on(`error`,t=>{n.fail(new I({module:`FileSystem`,reason:`Unknown`,method:`watch`,pathOrDescriptor:e,cause:t}))}),r.on(`close`,()=>{n.end()}),r}),e=>f(()=>e.close()))),kt=(e,t,n)=>$(t).pipe(j(r=>e.pipe(ce(e=>e.register(t,r,n)),Ae(()=>Ot(t,n)))),he),At=(e,t,n)=>y((r,i)=>{try{V.writeFile(e,t,{signal:i,flag:n?.flag,mode:n?.mode},t=>{r(t?A(G(`FileSystem`,`writeFile`)(t,[e])):_)})}catch(e){r(A(X(`writeFile`)(e)))}}),jt=ue(L,j(n(Be),e=>Ue({access:rt,chmod:ot,chown:st,copy:it,copyFile:at,link:ct,makeDirectory:lt,makeTempDirectory:ut,makeTempDirectoryScoped:ft,makeTempFile:_t,makeTempFileScoped:vt,open:mt,readDirectory:yt,readFile:bt,readLink:xt,realPath:St,remove:dt,rename:Ct,stat:$,symlink:Tt,truncate:Et,utimes:Dt,watch(t,n){return kt(e,t,n)},writeFile:At}))),Mt=nt.pipe(w(jt),w(ze)),Nt=ie(Ve.pipe(w(Mt)));export{Nt as default};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@systemfsoftware/omp-claude-compat",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"author": "Ryan Lee <drdgvhbh@gmail.com>",
|
|
6
6
|
"description": "OMP Claude Code compatibility: dispatch .claude/settings.json hooks + inject CLAUDE.md @-references",
|
|
7
7
|
"type": "module",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"tsdown": "^0.22.9",
|
|
31
31
|
"typescript": "^7",
|
|
32
32
|
"vitest": "^4",
|
|
33
|
-
"@systemfsoftware/effect-gherkin-spec": "^0.3.
|
|
34
|
-
"@systemfsoftware/effect-memfs": "^1.0.
|
|
35
|
-
"@systemfsoftware/
|
|
36
|
-
"@systemfsoftware/
|
|
37
|
-
"@systemfsoftware/
|
|
33
|
+
"@systemfsoftware/effect-gherkin-spec": "^0.3.7",
|
|
34
|
+
"@systemfsoftware/effect-memfs": "^1.0.7",
|
|
35
|
+
"@systemfsoftware/tsconfig": "^1.2.6",
|
|
36
|
+
"@systemfsoftware/oxlint-config": "^0.1.0",
|
|
37
|
+
"@systemfsoftware/omp-utils": "^0.0.0"
|
|
38
38
|
},
|
|
39
39
|
"omp": {
|
|
40
40
|
"extensions": [
|
|
@@ -45,8 +45,14 @@
|
|
|
45
45
|
"provenance": true
|
|
46
46
|
},
|
|
47
47
|
"inlinedDependencies": {
|
|
48
|
+
"@effect/platform": "0.97.0",
|
|
49
|
+
"@effect/platform-node": "0.97.1",
|
|
50
|
+
"@effect/platform-node-shared": "0.50.1",
|
|
48
51
|
"@jsr/std__collections": "1.3.0",
|
|
49
|
-
"@jsr/std__toml": "1.0.11"
|
|
52
|
+
"@jsr/std__toml": "1.0.11",
|
|
53
|
+
"effect": "3.22.0",
|
|
54
|
+
"fast-check": "3.23.2",
|
|
55
|
+
"pure-rand": "6.1.0"
|
|
50
56
|
},
|
|
51
57
|
"repository": {
|
|
52
58
|
"type": "git",
|
package/dist/dist-spu_CyKU.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{FileSystem as e}from"@effect/platform/FileSystem";import{Context as t,Effect as n,Layer as r,MutableHashMap as i,Option as a,ParseResult as o,Ref as s,Schema as c}from"effect";import{Path as l}from"@effect/platform/Path";const u={arrays:`merge`,sets:`merge`,maps:`merge`};function d(e,t,n){return f(e,t,new Set,n??u)}function f(e,t,n,r){let i={},a=new Set([...g(e),...g(t)]);for(let o of a){if(o===`__proto__`)continue;let a=e[o];if(!Object.hasOwn(t,o)){i[o]=a;continue}let s=t[o];if(h(a)&&h(s)&&!n.has(a)&&!n.has(s)){n.add(a),n.add(s),i[o]=ee(a,s,n,r);continue}i[o]=s}return i}function ee(e,t,n,r){if(p(e)&&p(t))return f(e,t,n,r);if(m(e)&&m(t)){if(Array.isArray(e)&&Array.isArray(t))return r.arrays===`merge`?e.concat(t):t;if(e instanceof Map&&t instanceof Map){if(r.maps===`merge`){let n=new Map(e);for(let[e,r]of t)n.set(e,r);return n}return t}if(e instanceof Set&&t instanceof Set){if(r.sets===`merge`){let n=new Set(e);for(let e of t)n.add(e);return n}return t}}return t}function p(e){return Object.getPrototypeOf(e)===Object.prototype}function m(e){return typeof e[Symbol.iterator]==`function`}function h(e){return typeof e==`object`&&!!e}function g(e){let t=Object.keys(e),n=Object.getOwnPropertySymbols(e);if(n.length===0)return t;for(let r of n)Object.prototype.propertyIsEnumerable.call(e,r)&&t.push(r);return t}function te(e){return e%4==0&&e%100!=0||e%400==0}var _=class{#e=/[ \t]/;#t=0;#n;constructor(e){this.#n=e}get position(){return this.#t}get source(){return this.#n}char(e=0){return this.#n[this.#t+e]??``}slice(e,t){return this.#n.slice(this.#t+e,this.#t+t)}next(e=1){this.#t+=e}skipWhitespaces(){for(;this.#e.test(this.char())&&!this.eof();)this.next();if(!this.isCurrentCharEOL()&&/\s/.test(this.char())){let e=`\\u`+this.char().charCodeAt(0).toString(16),t=this.#t;throw SyntaxError(`Cannot parse the TOML: It contains invalid whitespace at position '${t}': \`${e}\``)}}nextUntilChar(e={skipComments:!0}){for(;!this.eof();){let t=this.char();if(this.#e.test(t)||this.isCurrentCharEOL())this.next();else if(e.skipComments&&this.char()===`#`)for(;!this.isCurrentCharEOL()&&!this.eof();)this.next();else break}}eof(){return this.#t>=this.#n.length}isCurrentCharEOL(){return this.char()===`
|
|
2
|
-
`||this.startsWith(`\r
|
|
3
|
-
`)}startsWith(e){return this.#n.startsWith(e,this.#t)}match(e){if(!e.sticky)throw Error(`RegExp ${e} does not have a sticky 'y' flag`);return e.lastIndex=this.#t,this.#n.match(e)}};function v(e){return{ok:!0,body:e}}function y(){return{ok:!1}}function b(e,t={__proto__:null}){return e.reduceRight((e,t)=>({[t]:e}),t)}function x(e){return typeof e==`object`&&!!e}function S(e,t){let n=t[0];if(!n)throw Error(`Cannot parse the TOML: key length is not a positive number`);return e[n]}function ne(e,t){let{keys:n,type:r,value:i}=t,a=S(e,n);if(a===void 0)return Object.assign(e,b(n,i));if(Array.isArray(a))return C(a.at(-1),{type:r,keys:n.slice(1),value:i}),e;if(x(a))return C(a,{type:r,keys:n.slice(1),value:i}),e;throw Error(`Unexpected assign`)}function re(e,t){let{type:n,keys:r,value:i}=t,a=S(e,r);if(a===void 0)return Object.assign(e,b(r,[i]));if(Array.isArray(a))return t.keys.length===1?a.push(i):C(a.at(-1),{type:t.type,keys:t.keys.slice(1),value:t.value}),e;if(x(a))return C(a,{type:n,keys:r.slice(1),value:i}),e;throw Error(`Unexpected assign`)}function C(e,t){switch(t.type){case`Block`:return d(e,t.value);case`Table`:return ne(e,t);case`TableArray`:return re(e,t)}}function w(e){return t=>{for(let n of e){let e=n(t);if(e.ok)return e}return y()}}function ie(e,t){let n=D(t);return r=>{let i=[],a=e(r);if(!a.ok)return v(i);for(i.push(a.body);!r.eof()&&n(r).ok;){let n=e(r);if(!n.ok)throw SyntaxError(`Invalid token after "${t}"`);i.push(n.body)}return v(i)}}function ae(e,t){let n=D(t);return r=>{let i=e(r);if(!i.ok)return y();let a=[i.body];for(;!r.eof()&&n(r).ok;){let n=e(r);if(!n.ok)throw SyntaxError(`Invalid token after "${t}"`);a.push(n.body)}return v(a)}}function oe(e,t,n){let r=D(t);return i=>{let a=i.position,o=e(i);if(!o.ok)return y();if(!r(i).ok)throw SyntaxError(`key/value pair doesn't have "${t}"`);let s=n(i);if(!s.ok){let e=i.source.indexOf(`
|
|
4
|
-
`,i.position),t=e>0?e:i.source.length,n=i.source.slice(a,t);throw SyntaxError(`Cannot parse value on line '${n}'`)}return v(b(o.body,s.body))}}function se(e){return t=>{let n=e(t);if(!n.ok)return y();let r={__proto__:null};for(let e of n.body)typeof e==`object`&&e&&(r=d(r,e));return v(r)}}function T(e){return t=>{let n=[];for(;!t.eof();){let r=e(t);if(!r.ok)break;n.push(r.body),t.nextUntilChar()}return n.length===0?y():v(n)}}function E(e,t,n){let r=D(e),i=D(n);return a=>{if(!r(a).ok)return y();let o=t(a);if(!o.ok)throw SyntaxError(`Invalid token after "${e}"`);if(!i(a).ok)throw SyntaxError(`Not closed by "${n}" after started with "${e}"`);return v(o.body)}}function D(e){return t=>(t.skipWhitespaces(),t.startsWith(e)?(t.next(e.length),t.skipWhitespaces(),v(void 0)):y())}const ce=/[A-Za-z0-9_-]+/y;function le(e){e.skipWhitespaces();let t=e.match(ce)?.[0];return t?(e.next(t.length),v(t)):y()}function O(e){if(e.char()!==`\\`)return y();switch(e.next(),e.char()){case`b`:return e.next(),v(`\b`);case`t`:return e.next(),v(` `);case`n`:return e.next(),v(`
|
|
5
|
-
`);case`f`:return e.next(),v(`\f`);case`r`:return e.next(),v(`\r`);case`u`:case`U`:{let t=e.char()===`u`?4:6,n=parseInt(`0x`+e.slice(1,1+t),16),r=String.fromCodePoint(n);return e.next(t+1),v(r)}case`"`:return e.next(),v(`"`);case`\\`:return e.next(),v(`\\`);default:throw SyntaxError(`Invalid escape sequence: \\${e.char()}`)}}function k(e){if(e.skipWhitespaces(),e.char()!==`"`)return y();e.next();let t=[];for(;e.char()!==`"`&&!e.eof();){if(e.char()===`
|
|
6
|
-
`)throw SyntaxError(`Single-line string cannot contain EOL`);let n=O(e);n.ok?t.push(n.body):(t.push(e.char()),e.next())}if(e.eof())throw SyntaxError(`Single-line string is not closed:\n${t.join(``)}`);return e.next(),v(t.join(``))}function A(e){if(e.skipWhitespaces(),e.char()!==`'`)return y();e.next();let t=[];for(;e.char()!==`'`&&!e.eof();){if(e.char()===`
|
|
7
|
-
`)throw SyntaxError(`Single-line string cannot contain EOL`);t.push(e.char()),e.next()}if(e.eof())throw SyntaxError(`Single-line string is not closed:\n${t.join(``)}`);return e.next(),v(t.join(``))}function ue(e){if(e.skipWhitespaces(),!e.startsWith(`"""`))return y();e.next(3),e.char()===`
|
|
8
|
-
`?e.next():e.startsWith(`\r
|
|
9
|
-
`)&&e.next(2);let t=[];for(;!e.startsWith(`"""`)&&!e.eof();){if(e.startsWith(`\\
|
|
10
|
-
`)){e.next(),e.nextUntilChar({skipComments:!1});continue}else if(e.startsWith(`\\\r
|
|
11
|
-
`)){e.next(),e.nextUntilChar({skipComments:!1});continue}let n=O(e);n.ok?t.push(n.body):(t.push(e.char()),e.next())}if(e.eof())throw SyntaxError(`Multi-line string is not closed:\n${t.join(``)}`);return e.char(3)===`"`&&(t.push(`"`),e.next()),e.next(3),v(t.join(``))}function j(e){if(e.skipWhitespaces(),!e.startsWith(`'''`))return y();e.next(3),e.char()===`
|
|
12
|
-
`?e.next():e.startsWith(`\r
|
|
13
|
-
`)&&e.next(2);let t=[];for(;!e.startsWith(`'''`)&&!e.eof();)t.push(e.char()),e.next();if(e.eof())throw SyntaxError(`Multi-line string is not closed:\n${t.join(``)}`);return e.char(3)===`'`&&(t.push(`'`),e.next()),e.next(3),v(t.join(``))}const M=/(?:true|false)\b/y;function N(e){e.skipWhitespaces();let t=e.match(M);if(!t)return y();let n=t[0];return e.next(n.length),v(n===`true`)}const P=new Map([[`inf`,1/0],[`+inf`,1/0],[`-inf`,-1/0]]),F=/[+-]?inf\b/y;function I(e){e.skipWhitespaces();let t=e.match(F);if(!t)return y();let n=t[0];return e.next(n.length),v(P.get(n))}const L=/[+-]?nan\b/y;function R(e){e.skipWhitespaces();let t=e.match(L);if(!t)return y();let n=t[0];return e.next(n.length),v(NaN)}const z=ae(w([le,k,A]),`.`),B=/0b[01]+(?:_[01]+)*\b/y;function V(e){e.skipWhitespaces();let t=e.match(B)?.[0];if(!t)return y();e.next(t.length);let n=t.slice(2).replaceAll(`_`,``),r=parseInt(n,2);return isNaN(r)?y():v(r)}const H=/0o[0-7]+(?:_[0-7]+)*\b/y;function U(e){e.skipWhitespaces();let t=e.match(H)?.[0];if(!t)return y();e.next(t.length);let n=t.slice(2).replaceAll(`_`,``),r=parseInt(n,8);return isNaN(r)?y():v(r)}const de=/0x[0-9a-f]+(?:_[0-9a-f]+)*\b/iy;function fe(e){e.skipWhitespaces();let t=e.match(de)?.[0];if(!t)return y();e.next(t.length);let n=t.slice(2).replaceAll(`_`,``),r=parseInt(n,16);return isNaN(r)?y():v(r)}const pe=/[+-]?(?:0|[1-9][0-9]*(?:_[0-9]+)*)\b/y;function me(e){e.skipWhitespaces();let t=e.match(pe)?.[0];if(!t)return y();e.next(t.length);let n=t.replaceAll(`_`,``);return v(parseInt(n,10))}const he=/[+-]?(?:0|[1-9][0-9]*(?:_[0-9]+)*)(?:\.[0-9]+(?:_[0-9]+)*)?(?:e[+-]?[0-9]+(?:_[0-9]+)*)?\b/iy;function ge(e){e.skipWhitespaces();let t=e.match(he)?.[0];if(!t)return y();e.next(t.length);let n=t.replaceAll(`_`,``),r=parseFloat(n);return isNaN(r)?y():v(r)}const _e=/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})(?:[ 0-9TZ.:+-]+)?\b/y;function W(e){e.skipWhitespaces();let t=e.match(_e);if(!t)return y();let n=t[0];e.next(n.length);let r=t.groups;if(r.month==`02`){let e=parseInt(r.day);if(e>29)throw SyntaxError(`Invalid date string "${t}"`);let n=parseInt(r.year);if(e>28&&!te(n))throw SyntaxError(`Invalid date string "${t}"`)}let i=new Date(n.trim());if(isNaN(i.getTime()))throw SyntaxError(`Invalid date string "${t}"`);return v(i)}const ve=/(\d{2}):(\d{2}):(\d{2})(?:\.[0-9]+)?\b/y;function ye(e){e.skipWhitespaces();let t=e.match(ve)?.[0];return t?(e.next(t.length),v(t)):y()}function be(e){if(e.skipWhitespaces(),e.char()!==`[`)return y();e.next();let t=[];for(;!e.eof();){e.nextUntilChar();let n=G(e);if(!n.ok||(t.push(n.body),e.skipWhitespaces(),e.char()!==`,`))break;e.next()}if(e.nextUntilChar(),e.char()!==`]`)throw SyntaxError(`Array is not closed`);return e.next(),v(t)}function xe(e){if(e.nextUntilChar(),e.char(1)===`}`)return e.next(2),v({__proto__:null});let t=E(`{`,ie(K,`,`),`}`)(e);if(!t.ok)return y();let n={__proto__:null};for(let e of t.body)n=d(n,e);return v(n)}const G=w([ue,j,k,A,N,I,R,W,ye,V,U,fe,ge,me,be,xe]),K=oe(z,`=`,G);function q(e){e.nextUntilChar();let t=se(T(K))(e);return t.ok?v({type:`Block`,value:t.body}):y()}const Se=E(`[`,z,`]`);function Ce(e){e.nextUntilChar();let t=Se(e);if(!t.ok)return y();e.nextUntilChar();let n=q(e);return v({type:`Table`,keys:t.body,value:n.ok?n.body.value:{__proto__:null}})}const we=E(`[[`,z,`]]`);function Te(e){e.nextUntilChar();let t=we(e);if(!t.ok)return y();e.nextUntilChar();let n=q(e);return v({type:`TableArray`,keys:t.body,value:n.ok?n.body.value:{__proto__:null}})}function Ee(e){let t=T(w([q,Te,Ce]))(e);return t.ok?v(t.body.reduce(C,{__proto__:null})):v({__proto__:null})}function J(e,t){let n=e.source.slice(0,e.position).split(`
|
|
14
|
-
`);return`Parse error on line ${n.length}, column ${n.at(-1)?.length??0}: ${t}`}function De(e){return t=>{let n=new _(t);try{let t=e(n);if(t.ok&&n.eof())return t.body;let r=`Unexpected character: "${n.char()}"`;throw SyntaxError(J(n,r))}catch(e){throw e instanceof Error?SyntaxError(J(n,e.message)):SyntaxError(J(n,`Invalid error type caught`))}}}function Oe(e){return De(Ee)(e)}const ke={ctx_execute:!0,ctx_batch_execute:!0};function Ae(e,t){return ke[e]?e!==`ctx_execute`||t.language===`shell`:!1}function je(e,t){if(Ae(e,t)){if(e===`ctx_execute`)return typeof t.code==`string`?t.code:void 0;if(Array.isArray(t.commands))return t.commands.map(e=>typeof e==`object`&&e?e.command:``).filter(e=>typeof e==`string`).join(`
|
|
15
|
-
`)}}const Y=new Map;function Me(e,t){if(!t||t.length===0)return!0;let n=t.split(`|`).map(e=>e.trim()).filter(Boolean).join(`|`);if(n.length===0)return!0;let r=Y.get(n);if(r!==void 0)return r.test(e);let i=RegExp(`^(?:${n})$`);return Y.set(n,i),i.test(e)}function Ne(e){return{session_id:e(),agent_id:null}}const X=c.Record({key:c.String,value:c.Array(c.String)}).pipe(c.brand(`TomlConfig`)),Pe=c.transformOrFail(c.String,c.typeSchema(X),{strict:!0,decode:e=>o.try({try:()=>Oe(e),catch:e=>new o.Unexpected(e,`TOML parse error`)}).pipe(o.flatMap(e=>o.decodeUnknown(X)(e))),encode:(e,t,n)=>o.fail(new o.Forbidden(n,e,`TomlConfigFromText is decode-only`))}),Z=`systemfsoftware.toml`,Q=c.decodeSync(X)({});var $=class extends t.Tag(`TomlLoader`)(){};const Fe=r.effect($,n.gen(function*(){let t=yield*s.make(i.empty()),r=yield*e,o=yield*l;return $.of({load:n.fn(`TomlLoader.load`)(function*(e){let l=yield*s.get(t),u=i.get(l,e);if(a.isSome(u))return u.value;let d=o.join(e,Z);if(!(yield*r.exists(d)))return yield*s.update(t,t=>(i.set(t,e,Q),t)),Q;let f=yield*r.readFileString(d).pipe(n.flatMap(c.decodeUnknown(Pe)),n.tapError(e=>n.logError(`[toml-loader] malformed ${Z} at ${d} — failing open, which voids EVERY key in the file, not just the malformed one`,e)),n.catchAll(()=>n.succeed(Q)));return yield*s.update(t,t=>(i.set(t,e,f),t)),f})})})),Ie={Write:!0,Edit:!0,Read:!0,MultiEdit:!0,Update:!0,Create:!0},Le={Edit:!0,MultiEdit:!0,Update:!0};function Re(e){return Array.isArray(e)&&e.length>0&&e.every(e=>typeof e==`object`&&!!e&&(`new_text`in e||`old_text`in e))}function ze(e,t){let n=t;if(Ie[e]===!0&&`path`in n&&!(`file_path`in n)){let{path:e,...t}=n;n={file_path:e,...t}}if(Le[e]===!0&&`edits`in n&&Re(n.edits)&&!(`new_string`in n)){let e=n.edits.map(e=>({old_string:typeof e.old_text==`string`?e.old_text:``,new_string:typeof e.new_text==`string`?e.new_text:``}));n={...n,edits:e,old_string:e.map(e=>e.old_string).join(`
|
|
16
|
-
`),new_string:e.map(e=>e.new_string).join(`
|
|
17
|
-
`)}}return n}function Be(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}export{ze as a,Me as i,Fe as n,Be as o,je as r,Ne as s,$ as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,o as n,r,s as i}from"./dist-spu_CyKU.js";import{Command as a}from"@effect/platform";import{CommandExecutor as o}from"@effect/platform/CommandExecutor";import{FileSystem as s}from"@effect/platform/FileSystem";import{Effect as c,Either as l,Match as u,Option as d,Schema as f,Stream as p}from"effect";import{homedir as m}from"node:os";f.Struct({code:f.Number,stdout:f.String,stderr:f.String});var h=class extends f.TaggedClass()(`Block`,{reason:f.String}){},g=class extends f.TaggedClass()(`Allow`,{}){},_=class extends f.TaggedClass()(`Warning`,{message:f.String}){};f.Union(h,g,_);var v=class extends f.TaggedClass()(`Blocked`,{reason:f.String}){},y=class extends f.TaggedClass()(`Continue`,{warning:f.optional(f.String),updatedInput:f.optional(f.Record({key:f.String,value:f.Unknown}))}){};f.Union(v,y);const b=f.Struct({decision:f.optional(f.String),reason:f.optional(f.String),hookSpecificOutput:f.optional(f.Struct({permissionDecision:f.optional(f.String),permissionDecisionReason:f.optional(f.String),updatedInput:f.optional(f.Record({key:f.String,value:f.Unknown}))}))}),x=f.decodeUnknownEither(f.parseJson(b)),S=f.Struct({type:f.Literal(`command`),command:f.String,async:f.optional(f.Boolean),timeout:f.optional(f.Number)}),C=f.Struct({matcher:f.optional(f.String),hooks:f.Array(S)}),w=f.Struct({PreToolUse:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]}),PostToolUse:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]}),UserPromptSubmit:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]}),Stop:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]}),SessionStart:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]}),SessionEnd:f.optionalWith(f.Array(C),{exact:!0,default:()=>[]})}),T=f.Struct({hooks:w,disableAllHooks:f.optional(f.Boolean)}),E=f.Struct({...w.fields,disableAllHooks:f.optional(f.Boolean)}),D=f.Union(T,E),O=f.decodeUnknownEither(D);function k(e){return l.map(O(e),e=>{if(`hooks`in e)return e;let{disableAllHooks:t,...n}=e;return{hooks:n,disableAllHooks:t}})}const A=[`PreToolUse`,`PostToolUse`,`UserPromptSubmit`,`SessionStart`,`SessionEnd`,`Stop`];function j(e){let t={hooks:{PreToolUse:[],PostToolUse:[],UserPromptSubmit:[],SessionStart:[],SessionEnd:[],Stop:[]}};for(let n of e){for(let e of A)t.hooks[e]=(t.hooks[e]??[]).concat(Array.from(n.hooks[e]));n.disableAllHooks!==void 0&&(t.disableAllHooks=n.disableAllHooks)}return t}function M(e){return e.disableAllHooks===!0}var N=class extends f.TaggedError()(`HookVerdictError`,{raw:f.String}){},P=class extends f.TaggedClass()(`ExitBlock`,{}){},F=class extends f.TaggedClass()(`ExitParse`,{}){},I=class extends f.TaggedClass()(`ExitOther`,{}){};f.Union(P,F,I);const L=e=>u.value(e).pipe(u.when(2,()=>new P({})),u.when(0,()=>new F({})),u.orElse(()=>new I({}))),R=(e,t)=>u.value(e.trim()).pipe(u.when(``,()=>`Blocked by ${t} hook`),u.orElse(e=>e)),z=(e,t)=>u.value(e.hookSpecificOutput?.permissionDecision??e.decision).pipe(u.when(`deny`,()=>new h({reason:e.hookSpecificOutput?.permissionDecisionReason??`Blocked by ${t} hook`})),u.when(`block`,()=>new h({reason:e.reason??`Blocked by ${t} hook`})),u.orElse(()=>new g({}))),B=e=>u.value(e.trim()).pipe(u.when(``,()=>new g({})),u.orElse(e=>new _({message:e}))),V=(e,t)=>u.value(L(e.code)).pipe(u.tag(`ExitBlock`,()=>l.right(new h({reason:R(e.stderr,t)}))),u.tag(`ExitParse`,()=>l.match(x(e.stdout),{onLeft:()=>l.left(new N({raw:e.stdout})),onRight:e=>l.right(z(e,t))})),u.tag(`ExitOther`,()=>l.right(B(e.stderr))),u.exhaustive);function H(e,t){let n=e.replace(/"\$OMP_PROJECT_DIR"|'\$OMP_PROJECT_DIR'/g,JSON.stringify(t)).replace(/"\$\{OMP_PROJECT_DIR\}"|'\$\{OMP_PROJECT_DIR\}'/g,JSON.stringify(t)).replace(/"\$CLAUDE_PROJECT_DIR"|'\$CLAUDE_PROJECT_DIR'/g,JSON.stringify(t)).replace(/"\$\{CLAUDE_PROJECT_DIR\}"|'\$\{CLAUDE_PROJECT_DIR\}'/g,JSON.stringify(t)).replace(/\$OMP_PROJECT_DIR|\$\{OMP_PROJECT_DIR\}/g,JSON.stringify(t)).replace(/\$CLAUDE_PROJECT_DIR|\$\{CLAUDE_PROJECT_DIR\}/g,JSON.stringify(t)).trim();return{cmd:`sh`,args:[`-c`,n.startsWith(`"`)&&n.endsWith(`"`)?n.slice(1,-1):n]}}const U=c.fn(`loadSettingsFile`)(function*(e){let t=yield*(yield*s).readFileString(e).pipe(c.catchAll(()=>c.succeed(``)));if(t===``)return null;let n=f.decodeUnknownEither(f.parseJson(f.Record({key:f.String,value:f.Unknown})))(t);if(l.isLeft(n))return null;let r=n.right,i=k(r);return l.isLeft(i)?null:i.right}),W=c.fn(`loadSettings`)(function*(e){let t=[`${m()}/.claude/settings.json`,`${e}/.claude/settings.json`,`${e}/.claude/settings.local.json`,`/etc/claude-code/managed-settings.json`];return yield*G(t)}),G=c.fn(`loadSettingsWithPaths`)(function*(e){let t=[];for(let n of e){let e=yield*U(n);e!==null&&t.push(e)}return t.length===0?null:j(t)}),K=c.fn(`runHookScript`)(function*(e,t,n,r){let i=yield*o,{cmd:s,args:l}=H(e,n),u=JSON.stringify(t),d=a.make(s,...l).pipe(a.workingDirectory(n),a.env({OMP_PROJECT_DIR:n,CLAUDE_PROJECT_DIR:n}),a.feed(u),a.stdout(`pipe`),a.stderr(`pipe`));return yield*c.scoped(c.gen(function*(){let e=yield*i.start(d),t=yield*e.stdout.pipe(p.decodeText(),p.mkString),n=yield*e.stderr.pipe(p.decodeText(),p.mkString),r=yield*e.exitCode;return{code:typeof r==`number`?r:Number(r),stdout:t,stderr:n}})).pipe(c.timeout(r),c.catchTag(`TimeoutException`,()=>c.succeed({code:-1,stdout:``,stderr:`timeout after ${r}ms`})))}),q=c.fn(`runHooksForEvent`)(function*(e,n,r,i,a){let o=i.cwd,s,f=!1,p=r;for(let r of e)if(t(n,r.matcher))for(let e of r.hooks){let t=(e.timeout??10)*1e3;if(e.async){yield*c.forkDaemon(K(e.command,p,o,t));continue}let n=yield*K(e.command,p,o,t),r=V(n,a),i=l.match(r,{onLeft:e=>u.value(e).pipe(u.tag(`HookVerdictError`,e=>new _({message:`Hook exited 0 but produced invalid JSON: ${e.raw.slice(0,200)}`})),u.exhaustive),onRight:e=>e}),m=u.value(i).pipe(u.tag(`Block`,e=>new v({reason:e.reason})),u.tag(`Warning`,e=>new y({warning:e.message})),u.tag(`Allow`,()=>{let e=x(n.stdout);return new y({updatedInput:l.isRight(e)?e.right.hookSpecificOutput?.updatedInput:void 0})}),u.exhaustive),h=u.value(m).pipe(u.tag(`Blocked`,e=>d.some({block:!0,reason:e.reason})),u.tag(`Continue`,e=>(e.warning!==void 0&&s===void 0&&(s=e.warning),e.updatedInput!==void 0&&(p={...p,...e.updatedInput},f=!0),d.none())),u.exhaustive);if(d.isSome(h))return h.value}return{...f?{updatedInput:p}:{},...s===void 0?{}:{warning:s}}}),J=c.fn(`runPreToolUseHooks`)(function*(t,a,o){if(M(t))return;let s=n(a.toolName),c=i(()=>o.sessionManager.getSessionId()),l={...c,tool_name:s,tool_input:e(s,a.input),tool_call_id:a.toolCallId},u=r(a.toolName,a.input);if(u!==void 0&&u.length>0){let e={...c,tool_name:`Bash`,tool_input:{command:u},tool_call_id:a.toolCallId},n=yield*q(t.hooks.PreToolUse,`Bash`,e,o,`PreToolUse`);if(n.block)return n.reason===void 0?{block:!0}:{block:!0,reason:n.reason}}let d=yield*q(t.hooks.PreToolUse,s,l,o,`PreToolUse`);if(d.block)return d.reason===void 0?{block:!0}:{block:!0,reason:d.reason};if(d.updatedInput&&typeof d.updatedInput==`object`&&`tool_input`in d.updatedInput&&d.updatedInput.tool_input&&typeof d.updatedInput.tool_input==`object`){let e=d.updatedInput.tool_input;for(let[t,n]of Object.entries(e))a.input[t]=n}}),Y=c.fn(`runPostToolUseHooks`)(function*(t,r,a){let o=n(r.toolName);if(M(t))return;let s={...i(()=>a.sessionManager.getSessionId()),tool_name:o,tool_input:e(o,r.input),tool_call_id:r.toolCallId,output:r.content,is_error:r.isError??!1};return yield*q(t.hooks.PostToolUse,o,s,a,`PostToolUse`)}),X=c.fn(`runUserPromptSubmitHooks`)(function*(e,t,n){let r=e.hooks.UserPromptSubmit;if(M(e)||r.length===0)return;let a=n.cwd,o=``,s={...i(()=>n.sessionManager.getSessionId()),prompt:t.text,source:t.source};for(let e of r)for(let t of e.hooks){let e=yield*K(t.command,s,a,(t.timeout??10)*1e3);if(e.code!==0)continue;let n=e.stdout.trim();n.length>0&&(o+=(o.length>0?`
|
|
2
|
-
|
|
3
|
-
`:``)+n)}if(o.length===0)return;let c={text:`${o}\n\n${t.text}`};return t.images!==void 0&&(c.images=t.images),c}),Z=c.fn(`runSessionStartHooks`)(function*(e,n,r){if(M(e))return;let a=e.hooks.SessionStart;if(a.length===0)return;let o=r.cwd,s={...i(()=>r.sessionManager.getSessionId()),reason:n};for(let e of a)if(!(e.matcher&&!t(n,e.matcher)))for(let t of e.hooks){let e=(t.timeout??10)*1e3;if(t.async){yield*c.forkDaemon(K(t.command,s,o,e));continue}yield*K(t.command,s,o,e)}}),Q=c.fn(`runLifecycleHooks`)(function*(e,t){if(e.length===0)return;let n=t.cwd,r={...i(()=>t.sessionManager.getSessionId())};for(let t of e)for(let e of t.hooks){let t=(e.timeout??10)*1e3;e.async?yield*c.forkDaemon(K(e.command,r,n,t)):yield*K(e.command,r,n,t)}});export{W as loadSettings,Q as runLifecycleHooks,Y as runPostToolUseHooks,J as runPreToolUseHooks,Z as runSessionStartHooks,X as runUserPromptSubmitHooks};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./dist-spu_CyKU.js";import{FileSystem as t}from"@effect/platform/FileSystem";import{Effect as n,Either as r,Match as i,Option as a,Schema as o}from"effect";import*as s from"@effect/platform/Path";const c=[`AGENTS.md`];var l=class extends o.TaggedClass()(`Inject`,{}){},u=class extends o.TaggedClass()(`Skip`,{matched:o.String}){};o.Struct({baseName:o.String,skipList:o.Array(o.String)});const d=e=>a.fromNullable(e.skipList.find(t=>t===e.baseName)),f=e=>i.value(d(e)).pipe(i.tag(`None`,()=>new l),i.tag(`Some`,e=>new u({matched:e.value})),i.exhaustive),p=n.fn(`extractRefs`)(function*(e,i,a){let o=yield*t,c=yield*s.Path,l=[];for(let t of e.split(`
|
|
2
|
-
`)){let e=t.trim().replace(/^[-*+]\s+/,``);if(!e.startsWith(`@`))continue;let s=e.slice(1).trim();if(!s||s.includes(` `)||c.isAbsolute(s))continue;let u=c.resolve(i,s);if(u.startsWith(a+`/`)||u===a){let e=yield*n.either(o.exists(u));if(r.isRight(e)&&e.right){l.push({sourcePath:i,resolvedPath:u});continue}}let d=c.resolve(a,s);(d.startsWith(a+`/`)||d===a)&&d!==u&&l.push({sourcePath:a,resolvedPath:d})}return l}),m=n.fn(`loadReferencedContent`)(function*(o){let l=yield*t,u=yield*s.Path,d=yield*e,m=[u.resolve(o,`CLAUDE.md`),u.resolve(o,`.claude`,`CLAUDE.md`)],h=[];for(let e of m){let t=yield*n.either(l.readFileString(e,`utf-8`));if(r.isRight(t)){let n=yield*p(t.right,u.dirname(e),o);h.push(...n)}}let g=new Set,_=[];for(let e of h)g.has(e.resolvedPath)||(g.add(e.resolvedPath),_.push(e));let v=(yield*d.load(o).pipe(n.tapError(e=>n.logWarning(`[omp-claude-compat] could not read systemfsoftware.toml in ${o}; using the default skip list`,e)),n.catchAll(()=>n.succeed(void 0))))?.no_inject_refs??c,y=[];for(let e of _){let t=e.resolvedPath.slice(o.length+1),s=i.value(f({baseName:u.basename(e.resolvedPath),skipList:v})).pipe(i.tag(`Skip`,e=>a.some(e.matched)),i.tag(`Inject`,()=>a.none()),i.exhaustive);if(a.isSome(s)){yield*n.logInfo(`[omp-claude-compat] skipped @-ref ${t}: host already provides ${s.value}`);continue}let c=yield*n.either(l.readFileString(e.resolvedPath,`utf-8`));if(r.isLeft(c)){yield*n.logWarning(`[omp-claude-compat] could not read @-ref ${t}; skipping it`);continue}y.push(`## ${t}\n${c.right}\n`)}return y.length===0?``:[`# Injected @-references from CLAUDE.md`,`The following files were @-imported by CLAUDE.md and contain project rules.`,``,...y].join(`
|
|
3
|
-
`)});export{m as loadReferencedContent};
|
package/dist/runtime-DwpyNRPD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./dist-spu_CyKU.js";import{Layer as t,ManagedRuntime as n}from"effect";import*as r from"@effect/platform/Path";import{NodeCommandExecutor as i,NodeFileSystem as a}from"@effect/platform-node";const o=i.layer.pipe(t.provideMerge(a.layer),t.provideMerge(r.layer)),s=n.make(e.pipe(t.provideMerge(o)));export{s as default};
|