eser 4.1.49 → 4.1.50
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/chunks/{anthropic-QBGNUIP3.js → anthropic-YMZNUQKZ.js} +1 -1
- package/chunks/{approve-HF44PKLL.js → approve-PXC7FMDI.js} +1 -1
- package/chunks/{ask-M3VS3GIJ.js → ask-6DWHUCLO.js} +1 -1
- package/chunks/{block-F7S7PYMQ.js → block-CSVO3R47.js} +1 -1
- package/chunks/{build-Y4OQZN3X.js → build-S4DSRSSR.js} +1 -1
- package/chunks/cancel-AJOYWYV5.js +2 -0
- package/chunks/{changelog-gen-LMXK5T7J.js → changelog-gen-TE6FXELA.js} +1 -1
- package/chunks/{chunk-43E7ZXUB.js → chunk-2PWSTO7A.js} +1 -1
- package/chunks/{chunk-D43XK3L2.js → chunk-3CE7GA2P.js} +1 -1
- package/chunks/{chunk-FNPBHLLZ.js → chunk-3KGG2I2A.js} +1 -1
- package/chunks/{chunk-3MMV2UHT.js → chunk-4QMRLILJ.js} +1 -1
- package/chunks/{chunk-3VZXRI4F.js → chunk-4XXI5LYN.js} +1 -1
- package/chunks/{chunk-YVKPHSJX.js → chunk-66VSO643.js} +1 -1
- package/chunks/chunk-67AFLWXV.js +4 -0
- package/chunks/{chunk-U25GY4AZ.js → chunk-72R6CKNY.js} +1 -1
- package/chunks/{chunk-RSYERFWM.js → chunk-AUDMKDAA.js} +1 -1
- package/chunks/{chunk-K7TY7247.js → chunk-BESTYZQY.js} +1 -1
- package/chunks/{chunk-LYM57LLM.js → chunk-BJ45FF6F.js} +1 -1
- package/chunks/{chunk-XFCBVUI7.js → chunk-BNZPRQUS.js} +1 -1
- package/chunks/{chunk-KHBIOZJE.js → chunk-BVIGTD2Z.js} +1 -1
- package/chunks/{chunk-SNWQNMGD.js → chunk-CE6UVD6F.js} +1 -1
- package/chunks/{chunk-PHOYLFXC.js → chunk-DHNS2KLJ.js} +1 -1
- package/chunks/{chunk-WTMV5GTZ.js → chunk-DTDUHDLM.js} +1 -1
- package/chunks/{chunk-MTCPFQ5I.js → chunk-FVXGVHUR.js} +1 -1
- package/chunks/{chunk-3D5TBTM3.js → chunk-HTC2FO4I.js} +2 -2
- package/chunks/{chunk-Q66KA572.js → chunk-HV3EYAGF.js} +1 -1
- package/chunks/{chunk-XVH5L5HY.js → chunk-IY3YRKJJ.js} +1 -1
- package/chunks/{chunk-XBCL25QR.js → chunk-KFSZ6MDH.js} +1 -1
- package/chunks/{chunk-RBU3HF66.js → chunk-KNIM3QST.js} +1 -1
- package/chunks/chunk-LS5MCZUM.js +2 -0
- package/chunks/{chunk-HVQK35SO.js → chunk-MGNBNMJZ.js} +1 -1
- package/chunks/chunk-MX5DKVDI.js +2 -0
- package/chunks/{chunk-TDIR6AUJ.js → chunk-N6PXARPJ.js} +1 -1
- package/chunks/{chunk-L7ROACZC.js → chunk-NWWXAZFA.js} +1 -1
- package/chunks/{chunk-Q56M5KDF.js → chunk-OSNPAAYT.js} +1 -1
- package/chunks/{chunk-6BILFSH2.js → chunk-PBZV2KA3.js} +1 -1
- package/chunks/{chunk-FQY3JLY2.js → chunk-PG7KG7NX.js} +1 -1
- package/chunks/{chunk-FFEFO7MA.js → chunk-PY6ZNQ4B.js} +1 -1
- package/chunks/{chunk-PPSDIDOI.js → chunk-QHVTWYZJ.js} +1 -1
- package/chunks/chunk-QL5FA3P3.js +2 -0
- package/chunks/{chunk-3TS5IRPD.js → chunk-QRNSYEPI.js} +1 -1
- package/chunks/{chunk-N4NDBIQS.js → chunk-QXSFQQGJ.js} +1 -1
- package/chunks/{chunk-DYMKE4R3.js → chunk-TBRDRQQK.js} +1 -1
- package/chunks/{chunk-JMGANJGV.js → chunk-TTLUVJIR.js} +1 -1
- package/chunks/chunk-UTWYRNI6.js +17 -0
- package/chunks/{chunk-3PZVRB75.js → chunk-UYGKTA3C.js} +1 -1
- package/chunks/chunk-VKB3B2FE.js +4 -0
- package/chunks/{chunk-IIFFSCDJ.js → chunk-VXVW4UNH.js} +1 -1
- package/chunks/{chunk-2DAFGT4S.js → chunk-WJI2X6IA.js} +1 -1
- package/chunks/{chunk-C6URCXQM.js → chunk-YCI2VITZ.js} +1 -1
- package/chunks/chunk-YXETE4S3.js +4 -0
- package/chunks/{chunk-U34MRDPH.js → chunk-Z2RL2SFY.js} +1 -1
- package/chunks/{chunk-AWMLF355.js → chunk-ZQ7KN4HT.js} +1 -1
- package/chunks/{claude-code-UJYCO6CN.js → claude-code-RN3Q2VCK.js} +1 -1
- package/chunks/commitmsg-BRWGZ26L.js +15 -0
- package/chunks/{concern-7ZK3KY54.js → concern-DXCLVP5Y.js} +1 -1
- package/chunks/{dev-XHMBUBQE.js → dev-NJVFMPTE.js} +1 -1
- package/chunks/done-HGZT3ZOT.js +2 -0
- package/chunks/{file-tools-shared-YKDNDDHR.js → file-tools-shared-IIW7WSUM.js} +1 -1
- package/chunks/free-IPJPYOJS.js +2 -0
- package/chunks/{gh-AWX6I7FO.js → gh-YLYXDL2X.js} +1 -1
- package/chunks/{gh-contributors-EDZTKR5E.js → gh-contributors-YFATSPSW.js} +1 -1
- package/chunks/{init-GBMYF3YG.js → init-BZ6B74SY.js} +1 -1
- package/chunks/{init-3HE3P3N3.js → init-X6KNS3NC.js} +1 -1
- package/chunks/{invoke-hook-EIOZ5WSA.js → invoke-hook-KLJOYZF5.js} +2 -2
- package/chunks/{kiro-V6SMU4OL.js → kiro-JS5UVLRL.js} +1 -1
- package/chunks/{list-NX7RRO6R.js → list-COFD6OUQ.js} +1 -1
- package/chunks/{list-ZVCGDRUH.js → list-RI4IF5TD.js} +1 -1
- package/chunks/{main-NCAKIBQC.js → main-JZTE4B4L.js} +1 -1
- package/chunks/{manager-GC34GK44.js → manager-FMP6PKIR.js} +5 -5
- package/chunks/{mod-VZT7JWPZ.js → mod-64M47KGW.js} +1 -1
- package/chunks/{mod-NSL6IJRQ.js → mod-CTW3YE4Q.js} +1 -1
- package/chunks/{mod-7ICCX4OY.js → mod-D5IDWU35.js} +1 -1
- package/chunks/{mod-5NDTGNVM.js → mod-DESWHMN6.js} +1 -1
- package/chunks/{mod-52TIS344.js → mod-MC2WNSB2.js} +1 -1
- package/chunks/{mod-DFDEWFDA.js → mod-TUZZQKGZ.js} +1 -1
- package/chunks/{mod-KPIOBBDD.js → mod-YNYASB66.js} +1 -1
- package/chunks/next-6K3PS64Z.js +9 -0
- package/chunks/{ollama-DFG5G467.js → ollama-PL4UHEF2.js} +1 -1
- package/chunks/{opencode-UA45VV3W.js → opencode-K4G7UMAE.js} +1 -1
- package/chunks/{pack-B5VXZEW7.js → pack-YQVWUWCL.js} +1 -1
- package/chunks/{purge-Q3FI3S5M.js → purge-ZQ23VDGR.js} +1 -1
- package/chunks/{release-4VI2Y2ZT.js → release-XACZAR6J.js} +2 -2
- package/chunks/{release-notes-2ZYPZ6TK.js → release-notes-W6MNV6OT.js} +1 -1
- package/chunks/{release-tag-SG4WPYDZ.js → release-tag-HSZX6WYU.js} +1 -1
- package/chunks/{reopen-6FB7DVV2.js → reopen-Z3MPVAGR.js} +1 -1
- package/chunks/reset-NWO3MNAG.js +2 -0
- package/chunks/{rule-EJKPIOLE.js → rule-CH5GMFKE.js} +1 -1
- package/chunks/{run-BV6BHCCQ.js → run-5YOXFMP2.js} +1 -1
- package/chunks/{run-DAKF5SJN.js → run-IMXYUDHS.js} +1 -1
- package/chunks/{scripts-VRQQ24O3.js → scripts-XTXYY5MJ.js} +1 -1
- package/chunks/{sdk-L2SQCWYV.js → sdk-EJKXYVDC.js} +8 -8
- package/chunks/{serve-5MTJLRIN.js → serve-3PZ7RBQY.js} +1 -1
- package/chunks/session-22XFZLH2.js +2 -0
- package/chunks/spec-PWS2UYVL.js +2 -0
- package/chunks/{status-6XVLXNA5.js → status-G5D6BYFF.js} +1 -1
- package/chunks/{sync-EEH6563X.js → sync-URY32B7Y.js} +1 -1
- package/chunks/{system-JBGO2IFD.js → system-CP5L6XUP.js} +1 -1
- package/chunks/{system-QDBQLRO6.js → system-N5A3SM5G.js} +1 -1
- package/chunks/{validate-bom-XTZYCKGP.js → validate-bom-EH5Z5TVU.js} +1 -1
- package/chunks/{validate-case-conflict-CQIPKKHY.js → validate-case-conflict-XN4KQDSK.js} +1 -1
- package/chunks/{validate-circular-deps-Y6X6GZCG.js → validate-circular-deps-YZ4DIXIM.js} +1 -1
- package/chunks/{validate-docs-ZOHUOW3I.js → validate-docs-BE32R2UM.js} +1 -1
- package/chunks/{validate-filenames-6E634ZHO.js → validate-eof-JPKT2D3D.js} +1 -1
- package/chunks/{validate-export-names-7V3647EU.js → validate-export-names-D3QNF6VB.js} +1 -1
- package/chunks/{validate-eof-4I2QAFTC.js → validate-filenames-DMZ46CRH.js} +1 -1
- package/chunks/{validate-json-LRWPQ4JX.js → validate-json-KG3U4NLK.js} +1 -1
- package/chunks/validate-large-files-C2ILVCDB.js +2 -0
- package/chunks/validate-licenses-P24RTTYG.js +2 -0
- package/chunks/validate-line-endings-F65GG2PC.js +2 -0
- package/chunks/validate-merge-conflict-PVT6WR2W.js +2 -0
- package/chunks/{validate-mod-exports-Y6W74PAB.js → validate-mod-exports-J6KLADGR.js} +1 -1
- package/chunks/{validate-package-configs-VVCKJELU.js → validate-package-configs-BFCQMBEI.js} +1 -1
- package/chunks/validate-secrets-RBD2KJ3R.js +2 -0
- package/chunks/validate-shebangs-L5YR7AGC.js +2 -0
- package/chunks/validate-submodules-HD7CSBOG.js +2 -0
- package/chunks/validate-symlinks-RPSZMV5Y.js +2 -0
- package/chunks/{validate-toml-FNXGITZJ.js → validate-toml-OMUYIHX2.js} +1 -1
- package/chunks/validate-trailing-whitespace-BIG3YYFY.js +2 -0
- package/chunks/{validate-yaml-YRAD4HU3.js → validate-yaml-VTE42YLF.js} +1 -1
- package/chunks/{versions-LJSQVW77.js → versions-GXSXTSSG.js} +1 -1
- package/chunks/{watch-N3KV2ONB.js → watch-EVUCQISN.js} +6 -6
- package/chunks/wontfix-4R2ESAR5.js +2 -0
- package/eser.js +1 -1
- package/package.json +1 -1
- package/chunks/cancel-Q6LMMZBV.js +0 -2
- package/chunks/chunk-2TANTKYS.js +0 -4
- package/chunks/chunk-C2IORZTF.js +0 -4
- package/chunks/chunk-EQUPVWVY.js +0 -2
- package/chunks/chunk-FXDWRGGR.js +0 -2
- package/chunks/chunk-GVTM4EOU.js +0 -4
- package/chunks/chunk-LJ7A5HYR.js +0 -2
- package/chunks/chunk-RBQ2FOSL.js +0 -17
- package/chunks/commitmsg-57EMHAFY.js +0 -11
- package/chunks/done-FQQYM27R.js +0 -2
- package/chunks/free-XOGOSVEQ.js +0 -2
- package/chunks/next-2LOPGEJO.js +0 -9
- package/chunks/reset-T4YMGQPV.js +0 -2
- package/chunks/session-3HOLYHOY.js +0 -2
- package/chunks/spec-3P3HJT27.js +0 -2
- package/chunks/validate-large-files-RV7O7ZUR.js +0 -2
- package/chunks/validate-licenses-KHDUSBXM.js +0 -2
- package/chunks/validate-line-endings-XOCAE22U.js +0 -2
- package/chunks/validate-merge-conflict-PDJRAIKU.js +0 -2
- package/chunks/validate-secrets-UI5XKJ6B.js +0 -2
- package/chunks/validate-shebangs-GE23Z6NU.js +0 -2
- package/chunks/validate-submodules-R5JKX3Z6.js +0 -2
- package/chunks/validate-symlinks-WBF6VHHT.js +0 -2
- package/chunks/validate-trailing-whitespace-UCMQTQ3B.js +0 -2
- package/chunks/wontfix-MJJ2LK6J.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a,b}from"./chunk-
|
|
2
|
+
import{a,b}from"./chunk-QHVTWYZJ.js";import"./chunk-BNQAZLIQ.js";import"./chunk-J7YTWK67.js";import"./chunk-5WJ6AUNY.js";export{a as AnthropicModel,b as anthropicFactory};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as T}from"./chunk-
|
|
2
|
+
import{a as T}from"./chunk-Z2RL2SFY.js";import"./chunk-IZUADMIU.js";import{a as V,d as k}from"./chunk-2PWSTO7A.js";import{h}from"./chunk-L32KHQVT.js";import{i as _,l as F,s as S}from"./chunk-QL5FA3P3.js";import{c as g,e as E,g as D,h as u,i as f,k as P,o as A}from"./chunk-KNIM3QST.js";import{c as o}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{f as y,h as C,k as R}from"./chunk-SHN5MT56.js";import{c as p,d,f as n,g as m,k as w}from"./chunk-YVN2NZL4.js";import{a as v,b as i}from"./chunk-FFWPJP7A.js";import{i as l}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var J=async x=>{let s=y({renderer:R.ansi(),sink:C.stdout()}),r=l.process.cwd(),c=D(x);if(!c.ok)return s.writeln(n(c.error)),await s.close(),i({exitCode:1});let t;try{t=await E(r,c.spec)}catch(a){let e=a instanceof Error?a.message:String(a);return s.writeln(n(e)),await s.close(),i({exitCode:1})}let I=await P(r);if(t.spec!==null){let a=`${r}/${g.specDir(t.spec)}`;try{await l.fs.stat(a)}catch{return s.writeln(n(`Active spec '${t.spec}' directory not found.`)),s.writeln(d("Run `noskills reset` to return to idle.")),await s.close(),i({exitCode:1})}}if(t.phase==="SPEC_DRAFT"){if(t.classification===null&&t.spec!==null){let O=(await A(r)).filter(U=>I?.concerns.includes(U.id)??!1);try{await T(r,t,O)}catch{}}let a=await h(r),e=F(t);e=S(e,"SPEC_DRAFT","SPEC_APPROVED",a),await u(r,e),e.spec!==null&&await f(r,e.spec,e),e.spec!==null&&(await V(r,e.spec,"approved"),await k(r,e.spec,"approved")),s.writeln(m("\u2714")," Spec approved. Phase: ",w("SPEC_APPROVED")),s.writeln("When ready, run ",p(`${o('next --answer="start"')}`)," to begin execution.")}else if(t.phase==="DISCOVERY_REVIEW"){let a=await h(r),e=_(t);e=S(e,"DISCOVERY_REVIEW","SPEC_DRAFT",a),await u(r,e),e.spec!==null&&await f(r,e.spec,e),s.writeln(m("\u2714")," Discovery answers approved. Phase: ",w("SPEC_DRAFT")),s.writeln("Review the spec and run ",p(o("approve"))," again to approve.")}else t.phase==="DISCOVERY"&&t.discovery.completed?(s.writeln(d("Discovery complete. Spec draft already generated.")),s.writeln("Review the spec and run ",p(o("approve"))," again when in SPEC_DRAFT phase.")):s.writeln(n(`Cannot approve in phase: ${t.phase}`));return await s.close(),v(void 0)};export{J as main};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as _,b as $}from"./chunk-GE3LJ6QM.js";import{a as F}from"./chunk-BNQAZLIQ.js";import{d as x,f as v,g as I,h as y,k as P}from"./chunk-SHN5MT56.js";import{d as O,e as L,g as R}from"./chunk-5DWJ7WEE.js";import{a as T}from"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-J7YTWK67.js";import{d as S}from"./chunk-
|
|
2
|
+
import{a as _,b as $}from"./chunk-GE3LJ6QM.js";import{a as F}from"./chunk-BNQAZLIQ.js";import{d as x,f as v,g as I,h as y,k as P}from"./chunk-SHN5MT56.js";import{d as O,e as L,g as R}from"./chunk-5DWJ7WEE.js";import{a as T}from"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-J7YTWK67.js";import{d as S}from"./chunk-VKB3B2FE.js";import{a as C,b as g}from"./chunk-FFWPJP7A.js";import{i as m}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var k=(e,t,n)=>{let i=e.streamText(t,n);return{name:`ai-text/${e.provider}/${e.modelId}`,readable:new ReadableStream({async start(o){try{for await(let s of i)s.kind==="content_delta"&&o.enqueue(x(s.textDelta));o.close()}catch(s){o.error(s)}}})}};var Y={cc:"claude-code",ol:"ollama",oc:"opencode",oai:"openai",ant:"anthropic",gem:"gemini",vtx:"vertexai"},q={"claude-code":"Claude Code",ollama:"Ollama",opencode:"OpenCode",kiro:"Kiro",anthropic:"Anthropic API",openai:"OpenAI API",gemini:"Gemini API",vertexai:"Vertex AI"},H=e=>Y[e]??e,K=async e=>{if(e){let t=m.process.stderr.getWriter(),n=v({renderer:P.ansi(),sink:y.writable(new WritableStream({async write(i){await t.write(new TextEncoder().encode(String(i.data)))},close(){t.releaseLock()}}))});await O.configure({sinks:{stderr:R.getOutputSink(n)},loggers:[{category:["ai"],lowestLevel:T.Debug,sinks:["stderr"]}]})}return L.getLogger(["ai","ask"])},M=async e=>{await e.info("Auto-detecting AI provider...");try{if(await S`which claude`.noThrow().code()===0)return await e.info("Claude Code detected."),"claude-code"}catch{}try{if((await fetch("http://localhost:11434/api/version",{signal:AbortSignal.timeout(1e3)})).ok)return await e.info("Ollama detected at localhost:11434."),"ollama"}catch{}try{if(await S`which opencode`.noThrow().code()===0)return await e.info("OpenCode detected."),"opencode"}catch{}if(m.capabilities.env){if(m.env.has("ANTHROPIC_API_KEY"))return await e.info("Anthropic API key detected."),"anthropic";if(m.env.has("OPENAI_API_KEY"))return await e.info("OpenAI API key detected."),"openai"}throw new Error("No AI provider detected. Install claude, ollama, or set ANTHROPIC_API_KEY / OPENAI_API_KEY.")},U=async e=>{switch(e){case"claude-code":return(await import("./claude-code-RN3Q2VCK.js")).claudeCodeFactory;case"ollama":return(await import("./ollama-PL4UHEF2.js")).ollamaFactory;case"opencode":return(await import("./opencode-K4G7UMAE.js")).openCodeFactory;case"kiro":return(await import("./kiro-JS5UVLRL.js")).kiroFactory;case"anthropic":return(await import("./anthropic-YMZNUQKZ.js")).anthropicFactory;case"openai":return(await import("./openai-2KONKHWL.js")).openaiFactory;case"gemini":return(await import("./gemini-43AWJEWI.js")).geminiFactory;case"vertexai":return(await import("./vertexai-2F2A3VTE.js")).vertexaiFactory;default:throw new Error(`Unknown provider: ${e}`)}},le=async e=>{let t=e??[],n=null,i=null,o=null,s=!1,p=!1,A=[],a=0;for(;a<t.length;){let r=t[a];if(r==="-p"||r==="--provider"){n=t[a+1]??null,a+=2;continue}if(r==="-m"||r==="--model"){i=t[a+1]??null,a+=2;continue}if(r==="--max-tokens"){let c=t[a+1];c!==void 0&&(o=Number(c)),a+=2;continue}if(r==="--json"){s=!0,a+=1;continue}if(r==="-v"||r==="--verbose"){p=!0,a+=1;continue}r.startsWith("-")||A.push(r),a+=1}let f=A.join(" ");if(f.length===0)return g({message:'Usage: ai ask "your prompt" [-p provider] [-m model] [--verbose]',exitCode:1});let d=await K(p);try{let r=n!==null?H(n):await M(d),c=q[r]??r,E=i??z(r);await d.info(`Using ${c} (${E})`);let N=await U(r),w=new _({factories:[N]});await w.addModel("default",{provider:r,model:E});let h=w.getDefault();if(h===null)return g({message:"Failed to initialize model",exitCode:1});let b=[F("user",f)];if(await d.info(`Sending prompt (${f.length} chars)...`),s){let u=await h.generateText({messages:b,maxTokens:o??void 0});await d.info(`Response received (${$(u).length} chars)`);let l=v({sink:y.stdout()});l.writeln(JSON.stringify(u,null,2)),await l.close()}else{let u=k(h,{messages:b,maxTokens:o??void 0});await I().from(u).to(V()).run();let l=m.process.stdout.getWriter();await l.write(new TextEncoder().encode(`
|
|
3
3
|
`)),l.releaseLock()}return await w.close(),C(void 0)}catch(r){let c=r instanceof Error?r.message:String(r);return await d.error(c),p&&r instanceof Error&&r.cause!==void 0&&await d.debug(`Cause: ${String(r.cause)}`),g({message:c,exitCode:1})}},j=12,G=e=>new Promise(t=>setTimeout(t,e)),V=(e=j)=>{let t=new TextEncoder;return{name:"typewriter",writable:new WritableStream({async write(n){let i=String(n.data),o=m.process.stdout.getWriter();for(let s of i)await o.write(t.encode(s)),await G(e);o.releaseLock()}})}},z=e=>{switch(e){case"claude-code":return"claude-sonnet-4-20250514";case"ollama":return"llama3";case"opencode":return"default";case"kiro":return"default";case"anthropic":return"claude-sonnet-4-20250514";case"openai":return"gpt-4o";case"gemini":return"gemini-2.0-flash";case"vertexai":return"gemini-2.0-flash";default:return"default"}};export{le as main};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{h as $}from"./chunk-L32KHQVT.js";import{
|
|
2
|
+
import{h as $}from"./chunk-L32KHQVT.js";import{n as v,s as A}from"./chunk-QL5FA3P3.js";import{c as y,e as k,g as C,h as S,i as x}from"./chunk-KNIM3QST.js";import{c as E}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{f as w,h,k as g}from"./chunk-SHN5MT56.js";import{c as u,d as p,f as a,h as f}from"./chunk-YVN2NZL4.js";import{a as d,b as n}from"./chunk-FFWPJP7A.js";import{i as l}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var q=async m=>{let e=w({renderer:g.ansi(),sink:h.stdout()}),i=l.process.cwd(),o=C(m);if(!o.ok)return e.writeln(a(o.error)),await e.close(),n({exitCode:1});let c=(m??[]).filter(t=>!t.startsWith("--spec=")).join(" ")||"No reason given",s;try{s=await k(i,o.spec)}catch(t){let R=t instanceof Error?t.message:String(t);return e.writeln(a(R)),await e.close(),n({exitCode:1})}if(s.spec!==null){let t=`${i}/${y.specDir(s.spec)}`;try{await l.fs.stat(t)}catch{return e.writeln(a(`Active spec '${s.spec}' directory not found.`)),e.writeln(p("Run `noskills reset` to return to idle.")),await e.close(),n({exitCode:1})}}if(s.phase!=="EXECUTING")return e.writeln(a(`Cannot block in phase: ${s.phase}`)),await e.close(),n({exitCode:1});let b=await $(i),r=v(s,c);return r=A(r,"EXECUTING","BLOCKED",b,c),await S(i,r),r.spec!==null&&await x(i,r.spec,r),e.writeln(f("\u26A0")," Spec blocked: ",p(c)),e.writeln("Resolve with: ",u(`${E('next --answer="resolution"')}`)),await e.close(),d(void 0)};export{q as main};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
2
|
import{f as d,h as g,k as m}from"./chunk-SHN5MT56.js";import{b as c,d as L,h as C,k as u}from"./chunk-YVN2NZL4.js";import"./chunk-PWLF3WXM.js";import{a as v}from"./chunk-RNFCAHVL.js";import"./chunk-MG65QJY6.js";import{a as y}from"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var V=["trace","debug","info","warn","error","fatal"],N=async x=>{let{flags:o}=v(x??[],[{name:"out-dir",type:"string",default:"dist",description:"Output directory"},{name:"clean",type:"boolean",description:"Clean output first"},{name:"no-minify",type:"boolean",description:"Disable minification"},{name:"analyze",type:"boolean",description:"Analyze bundle size"},{name:"log-level",type:"string",default:"info",description:"Log level"}]),t=d({renderer:m.ansi(),sink:g.stdout()});t.writeln(u(`
|
|
3
3
|
\u{1F4E6} Building for production...
|
|
4
|
-
`));let e=await import("./mod-5JT4O5L3.js"),{runtime:n}=await import("./mod-4XKQZL6W.js"),i=n.process.cwd(),p=o["out-dir"],S=!o["no-minify"],h=o.clean,k=o.analyze,f=o["log-level"]??"info",b=V.includes(f.toLowerCase())?f.toLowerCase():"info",z={trace:e.Severities.Trace,debug:e.Severities.Debug,info:e.Severities.Info,warn:e.Severities.Warning,error:e.Severities.Error,fatal:e.Severities.Critical},D=d({renderer:m.ansi(),sink:g.stdout()});await e.config.configure({sinks:{console:e.sinks.getOutputSink(D)},loggers:[{category:["laroux-bundler"],lowestLevel:z[b],sinks:["console"]}]});let[{build:A,createBuildContext:E},{loadConfig:O},{reactPlugin:B},{createTailwindPlugin:P}]=await Promise.all([import("./system-
|
|
4
|
+
`));let e=await import("./mod-5JT4O5L3.js"),{runtime:n}=await import("./mod-4XKQZL6W.js"),i=n.process.cwd(),p=o["out-dir"],S=!o["no-minify"],h=o.clean,k=o.analyze,f=o["log-level"]??"info",b=V.includes(f.toLowerCase())?f.toLowerCase():"info",z={trace:e.Severities.Trace,debug:e.Severities.Debug,info:e.Severities.Info,warn:e.Severities.Warning,error:e.Severities.Error,fatal:e.Severities.Critical},D=d({renderer:m.ansi(),sink:g.stdout()});await e.config.configure({sinks:{console:e.sinks.getOutputSink(D)},loggers:[{category:["laroux-bundler"],lowestLevel:z[b],sinks:["console"]}]});let[{build:A,createBuildContext:E},{loadConfig:O},{reactPlugin:B},{createTailwindPlugin:P}]=await Promise.all([import("./system-N5A3SM5G.js"),import("./load-config-JZNJVJXH.js"),import("./mod-CTW3YE4Q.js"),import("./mod-64M47KGW.js")]),T=e.logger.getLogger(["laroux-bundler","cli"]),s=await O(i),r={projectRoot:i,srcDir:n.path.resolve(i,s.srcDir),distDir:n.path.resolve(i,p),logLevel:b,fonts:s.fonts,images:s.images,cssModuleTypes:s.cssModuleTypes,noCssModuleAutoReference:s.noCssModuleAutoReference,browserShims:s.browserShims,serverExternals:s.build.serverExternals,build:{...s.build,minify:S}};if(h)try{await n.fs.remove(r.distDir,{recursive:!0}),T.debug(`Cleaned ${r.distDir}`)}catch{}let R=P({globalCssPath:n.path.resolve(i,"src/app/styles/global.css")}),j=E(r,{framework:B,css:R,bundlerBackend:"rolldown"});if(await A(j),await e.config.reset(),k){t.writeln(u(`
|
|
5
5
|
\u{1F4CA} Bundle Analysis:
|
|
6
6
|
`));try{let M=`${p}/client/manifest.json`,$=await n.fs.readTextFile(M),w=JSON.parse($);t.writeln(c("Chunks:"));for(let[a,l]of Object.entries(w.files)){let I=(l.size/1024).toFixed(2);t.writeln(c(` ${a.padEnd(30)} ${I.padStart(8)} KB`))}let F=Object.values(w.files).reduce((a,l)=>a+l.size,0);t.writeln(L(`
|
|
7
7
|
Total: ${(F/1024).toFixed(2)} KB`))}catch{t.writeln(C("Could not analyze build (manifest.json not found)"))}}return await t.close(),y(void 0)};export{N as main};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as I,d as x}from"./chunk-2PWSTO7A.js";import{h as D}from"./chunk-L32KHQVT.js";import{p as C,s as E,v as k}from"./chunk-QL5FA3P3.js";import{c as w,e as h,g as S,h as g,i as y}from"./chunk-KNIM3QST.js";import"./chunk-2XNFZXHY.js";import{f as d,h as u,k as f}from"./chunk-SHN5MT56.js";import{d as l,f as n,g as m}from"./chunk-YVN2NZL4.js";import{a as p,b as i}from"./chunk-FFWPJP7A.js";import{i as o}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var q=async T=>{let e=d({renderer:f.ansi(),sink:u.stdout()}),r=o.process.cwd(),c=S(T);if(!c.ok)return e.writeln(n(c.error)),await e.close(),i({exitCode:1});let s;try{s=await h(r,c.spec)}catch(a){let A=a instanceof Error?a.message:String(a);return e.writeln(n(A)),await e.close(),i({exitCode:1})}if(s.phase==="IDLE"||s.phase==="UNINITIALIZED"||s.phase==="COMPLETED")return e.writeln(n(`Cannot cancel in phase: ${s.phase}`)),await e.close(),i({exitCode:1});if(s.spec!==null){let a=`${r}/${w.specDir(s.spec)}`;try{await o.fs.stat(a)}catch{return e.writeln(n(`Active spec '${s.spec}' directory not found.`)),e.writeln(l("Run `noskills reset` to return to idle.")),await e.close(),i({exitCode:1})}}let U=await D(r),t=C(s,"cancelled");t=E(t,s.phase,"COMPLETED",U,"cancelled"),t.spec!==null&&await y(r,t.spec,t);let v=k(t);return await g(r,v),t.spec!==null&&(await I(r,t.spec,"cancelled"),await x(r,t.spec,"cancelled")),e.writeln(m("\u2714")," Spec cancelled."),await e.close(),p(void 0)};export{q as main};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as R,b as A}from"./chunk-
|
|
2
|
+
import{a as R,b as A}from"./chunk-FVXGVHUR.js";import{a as w}from"./chunk-KFSZ6MDH.js";import"./chunk-HTC2FO4I.js";import"./chunk-GTHXGAMQ.js";import"./chunk-3XJLLDR5.js";import"./chunk-P7WCO724.js";import"./chunk-2XNFZXHY.js";import{a as x}from"./chunk-LFNUSULJ.js";import{a as y,c as v}from"./chunk-JTSRGXS4.js";import{o as m}from"./chunk-4TTJVJEI.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import{f as h}from"./chunk-P2MUEKFT.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-VKB3B2FE.js";import{a as C}from"./chunk-MG65QJY6.js";import{g as u}from"./chunk-FFWPJP7A.js";import"./chunk-2BOCLC67.js";import"./chunk-N7DXBY3O.js";import"./chunk-7ATUODBM.js";import"./chunk-AP72BKVG.js";import{j as p}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var{ctx:f,output:q}=y(),$={feat:"Added",fix:"Fixed",refactor:"Changed",perf:"Changed",docs:"Changed",revert:"Removed"},E=new Set(["chore","ci","test"]),S=/^(\w+)(?:\(([^)]+)\))?!?:\s{1,5}(.+)$/,T=/\s{0,100}\(take\s{1,100}[IVXLCDM\d]+\)\s{0,100}\.?$/i,G=(t,o)=>{let n=t.match(S);if(n!==null)return{type:n[1].toLowerCase(),scope:n[2],message:n[3].trim(),hash:o}},O=t=>t.replace(T,"").trim(),N=t=>{let o=[];for(let n of t){let e=G(n.subject,n.hash);e!==void 0&&o.push(e)}return o},I=t=>{let o=new Set,n=[];for(let e of t){let s=O(e.message),a=s.replace(/[.\s]{1,20}$/,"").toLowerCase(),l=`${e.type}:${a}`;o.has(l)||(o.add(l),n.push({...e,message:s}))}return n},P=t=>{let o=new Map;for(let n of t){if(E.has(n.type))continue;let e=$[n.type];if(e===void 0)continue;let s=o.get(e);s!==void 0?s.push(n):o.set(e,[n])}return o},M=t=>t.scope!==void 0?`- **${t.scope}:** ${t.message}`:`- ${t.message}`,b=(t,o)=>{let n=P(o);if(n.size===0){let l=new Date().toISOString().split("T")[0];return`## ${t} - ${l}
|
|
3
3
|
|
|
4
4
|
_Maintenance release._`}let e=new Date().toISOString().split("T")[0],s=[`## ${t} - ${e}`],a=["Added","Changed","Fixed","Removed"];for(let l of a){let r=n.get(l);if(!(r===void 0||r.length===0)){s.push("",`### ${l}`,"");for(let d of r)s.push(M(d))}}return s.join(`
|
|
5
5
|
`)},k=(t,o,n)=>{let e=t.split(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as o}from"./chunk-
|
|
2
|
+
import{c as o}from"./chunk-KNIM3QST.js";import{i as e}from"./chunk-6DBKPC2O.js";var d=async(r,i,n)=>{let s=`${r}/${o.specFile(i)}`;try{let t=await e.fs.readTextFile(s);t=t.replace(/^## Status: .+$/m,`## Status: ${n}`),await e.fs.writeTextFile(s,t)}catch{}},u=async(r,i,n)=>{let s=`${r}/${o.specFile(i)}`;try{let t=await e.fs.readTextFile(s),a=new RegExp(`^(- )\\[ \\]( ${n}:.*)$`,"m");t=t.replace(a,"$1[x]$2"),await e.fs.writeTextFile(s,t)}catch{}},w=async(r,i,n,s)=>{let t=`${r}/${o.specDir(i)}/progress.json`;try{let a=await e.fs.readTextFile(t),c=JSON.parse(a);for(let p of c.tasks)p.id===n&&(p.status=s);c.updatedAt=new Date().toISOString(),await e.fs.writeTextFile(t,JSON.stringify(c,null,2)+`
|
|
3
3
|
`)}catch{}},f=async(r,i,n)=>{let s=`${r}/${o.specDir(i)}/progress.json`;try{let t=await e.fs.readTextFile(s),a=JSON.parse(t);a.status=n,a.updatedAt=new Date().toISOString(),await e.fs.writeTextFile(s,JSON.stringify(a,null,2)+`
|
|
4
4
|
`)}catch{}};export{d as a,u as b,w as c,f as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as E}from"./chunk-
|
|
2
|
+
import{a as E}from"./chunk-VXVW4UNH.js";import{a as y}from"./chunk-LFNUSULJ.js";import{b as C}from"./chunk-JTSRGXS4.js";import{f as v}from"./chunk-P2MUEKFT.js";import{b as i,f as m,g as x,h as k,i as g}from"./chunk-YVN2NZL4.js";import{g as p}from"./chunk-FFWPJP7A.js";import{j as h}from"./chunk-6DBKPC2O.js";var l=C(),d=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase(),f=(e,o=[])=>{let s=e.split("/").filter(r=>r.length>0);for(let r of s){let t=r.startsWith(".")?r.slice(1):r;if(t.length===0)continue;let a=h.runtime.path.extname(t);if(a.length>0&&(t=t.slice(0,-a.length)),t.length!==0&&!o.includes(t)&&!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(t))return!1}return!0},N=async(e={})=>{let{root:o=".",ignoreWords:s=[]}=e,r=await E(o),t=[];for(let a of r){let n=a.config.exports?.value;if(n!=null){if(typeof n=="string"){f(n,s)||t.push({packageName:a.name,exportPath:n,suggestion:d(n)});continue}if(n!==null&&typeof n=="object")for(let[u,c]of Object.entries(n))f(u,s)||t.push({packageName:a.name,exportPath:u,suggestion:d(u)}),typeof c=="string"&&!f(c,s)&&t.push({packageName:a.name,exportPath:c,suggestion:d(c)})}}return{isValid:t.length===0,violations:t,packagesChecked:r.length}},w=e=>v.fromPromise(()=>N(e)),b=e=>p.ok({root:"."}),A=e=>{if(p.isFail(e))return l.writeln(m("\u2717"),i(" "+String(e.error))),p.fail({exitCode:1});let{value:o}=e;if(l.writeln(g("\u2139"),i(` Checked ${o.packagesChecked} packages.`)),!o.isValid){l.writeln(m("\u2717"),i(` Found ${o.violations.length} naming violations:`));for(let s of o.violations)l.writeln(k("\u26A0"),i(" "+s.packageName)),l.writeln(g("\u2139"),i(` Export: ${s.exportPath}`)),l.writeln(g("\u2139"),i(` Suggestion: ${s.suggestion}`));return p.fail({exitCode:1})}return l.writeln(x("\u2713"),i(" All export names follow conventions.")),p.ok(void 0)},P=y.createTrigger({handler:w,adaptInput:b,adaptOutput:A}),W=async e=>await P({command:"validate-export-names",args:[],flags:{}});export{N as a,w as b,P as c,W as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as u}from"./chunk-
|
|
2
|
+
import{c as u}from"./chunk-YXETE4S3.js";import{a as i,e as m}from"./chunk-J7YTWK67.js";var p="http://localhost:11434",d=class{capabilities=["text_generation","streaming","vision"];provider="ollama";modelId;baseUrl;config;constructor(e,o){this.baseUrl=e,this.config=o,this.modelId=o.model}async generateText(e,o){let s=g(this.config,e,!1);try{let t=await fetch(`${this.baseUrl}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s),signal:o});if(!t.ok)throw await f(t);let r=await t.json();return h(r,this.modelId)}catch(t){throw t instanceof i?t:new i(t instanceof Error?t.message:String(t),{provider:"ollama",cause:t instanceof Error?t:void 0})}}async*streamText(e,o){let s=g(this.config,e,!0);try{let t=await fetch(`${this.baseUrl}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s),signal:o});if(!t.ok){yield{kind:"error",error:await f(t)};return}if(t.body===null){yield{kind:"error",error:new i("No response body",{provider:"ollama"})};return}for await(let r of u(t.body)){let l=k(r);l!==null&&(yield l)}}catch(t){t instanceof i?yield{kind:"error",error:t}:yield{kind:"error",error:new i(t instanceof Error?t.message:String(t),{provider:"ollama",cause:t instanceof Error?t:void 0})}}}close(){return Promise.resolve()}getRawClient(){return null}},v={provider:"ollama",createModel(n){let e=n.properties?.baseUrl??p;return Promise.resolve(new d(e,n))}},g=(n,e,o)=>{let s=y(e.messages,e.system),t={model:n.model,messages:s,stream:o},r={};return e.temperature!==void 0&&(r.temperature=e.temperature),e.maxTokens!==void 0&&(r.num_predict=e.maxTokens),e.topP!==void 0&&(r.top_p=e.topP),e.stopWords!==void 0&&(r.stop=e.stopWords),Object.keys(r).length>0&&(t.options=r),e.responseFormat!==void 0&&(e.responseFormat.type==="json_schema"?t.format=e.responseFormat.jsonSchema:e.responseFormat.type==="json_object"&&(t.format="json")),t},y=(n,e)=>{let o=[];e!==void 0&&o.push({role:"system",content:e});for(let s of n){if(s.role==="system"){let a=[];for(let c of s.content)c.kind==="text"&&a.push(c.text);o.push({role:"system",content:a.join(`
|
|
3
3
|
`)});continue}let t=[],r=[];for(let a of s.content)a.kind==="text"?t.push(a.text):a.kind==="image"&&a.image.url!==void 0&&r.push(a.image.url);let l={role:s.role==="tool"?"user":s.role,content:t.join(`
|
|
4
4
|
`)};r.length>0&&(l.images=r),o.push(l)}return o},h=(n,e)=>{let o=[];return n.message?.content!==void 0&&o.push({kind:"text",text:n.message.content}),{content:o,stopReason:n.done_reason==="length"?"max_tokens":"end_turn",usage:{inputTokens:n.prompt_eval_count??0,outputTokens:n.eval_count??0,totalTokens:(n.prompt_eval_count??0)+(n.eval_count??0)},modelId:e,rawResponse:n}},k=n=>{if(n===null||typeof n!="object")return null;let e=n;return e.done===!0?{kind:"message_done",stopReason:e.done_reason==="length"?"max_tokens":"end_turn",usage:{inputTokens:e.prompt_eval_count??0,outputTokens:e.eval_count??0,totalTokens:(e.prompt_eval_count??0)+(e.eval_count??0)}}:e.message?.content!==void 0&&e.message.content.length>0?{kind:"content_delta",textDelta:e.message.content}:e.response!==void 0&&e.response.length>0?{kind:"content_delta",textDelta:e.response}:null},f=async n=>{let e;try{e=(await n.json()).error??`Ollama HTTP ${n.status}`}catch{e=`Ollama HTTP ${n.status}: ${n.statusText}`}return m("ollama",n.status,new Error(e))};export{d as a,v as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as n}from"./chunk-
|
|
2
|
+
import{a as n}from"./chunk-MGNBNMJZ.js";var e=n({name:"validate-case-conflict",description:"Detect filenames that differ only by case",canFix:!1,stacks:[],defaults:{},checkAll(r){let o=new Map,s=[];for(let t of r){let a=t.path.toLowerCase(),i=o.get(a);i!==void 0?s.push({path:t.path,message:`case conflict with "${i}"`}):o.set(a,t.path)}return s}}),f=e.run,m=e.validator,d=e.main;export{e as a,f as b,m as c,d};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as o}from"./chunk-
|
|
2
|
+
import{a as o}from"./chunk-MGNBNMJZ.js";var p=[{name:"AWS Access Key ID",pattern:/AKIA[0-9A-Z]{16}/},{name:"Private Key",pattern:/-----BEGIN\s{1,5}(RSA\s{1,5}|EC\s{1,5}|DSA\s{1,5}|OPENSSH\s{1,5})?PRIVATE KEY-----/},{name:"Generic secret assignment",pattern:/(?:secret|password|api_key|apikey|access_token|auth_token|private_key)\s{0,5}[=:]\s{0,5}["'][^"']{8,}["']/i}],d=[/\.lock$/,/package-lock\.json$/,/\.test\./,/testdata\//,/\.snap$/,/\.min\./],t=o({name:"validate-secrets",description:"Detect credentials and private keys",canFix:!1,stacks:[],defaults:{},checkFile(a,s){if(s===void 0)return[];for(let e of d)if(e.test(a.path))return[];let n=[],r=s.split(`
|
|
3
3
|
`);for(let e=0;e<r.length;e++){let i=r[e];for(let{name:c,pattern:l}of p)if(l.test(i)){n.push({path:a.path,line:e+1,message:`potential ${c} detected`});break}}return n}}),k=t.run,T=t.validator,y=t.main;export{t as a,k as b,T as c,y as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as o}from"./chunk-
|
|
2
|
+
import{a as o}from"./chunk-MGNBNMJZ.js";var a=o({name:"validate-shebangs",description:"Validate shebang/executable consistency",canFix:!1,stacks:[],defaults:{},checkFile(t,i){return[]}}),r=a.run,l=a.validator,c=a.main;export{a,r as b,l as c,c as d};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as S,b as p,d as T,e as m,f,g as y}from"./chunk-YXETE4S3.js";import{a as l}from"./chunk-J7YTWK67.js";var k=class{capabilities=["text_generation","streaming"];provider="kiro";modelId;binary;config;constructor(e,r){this.binary=e,this.config=r,this.modelId=r.model}async generateText(e,r){let i=v(this.config,e),c=y(e.messages,e.system),o=p(this.binary,i,{signal:r,stdinData:c}),u=m(o.stderr),t=await T(o.stdout,this.modelId),d=await o.waitForExit(),s=await u,a=f("kiro",d.code,s);if(a!==null)throw a;return t}async*streamText(e,r){let i=v(this.config,e),c=y(e.messages,e.system),o=p(this.binary,i,{signal:r,stdinData:c}),u=m(o.stderr);try{let t=new TextDecoder,d=o.stdout.getReader(),s="",a=await d.read();for(;a.done!==!0;){s+=t.decode(a.value,{stream:!0});let h=s.split(`
|
|
3
|
+
`);s=h.pop()??"";for(let _ of h){let g=_.trim();if(g.length!==0){try{let A=JSON.parse(g),w=C(A);if(w!==null){yield w;continue}}catch{}yield{kind:"content_delta",textDelta:g+`
|
|
4
|
+
`}}}a=await d.read()}d.releaseLock(),s.trim().length>0&&(yield{kind:"content_delta",textDelta:s.trim()});let E=await o.waitForExit(),b=await u,x=f("kiro",E.code,b);x!==null?yield{kind:"error",error:x}:yield{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0}}}catch(t){t instanceof l?yield{kind:"error",error:t}:yield{kind:"error",error:new l(t instanceof Error?t.message:String(t),{provider:"kiro",cause:t instanceof Error?t:void 0})}}}close(){return Promise.resolve()}getRawClient(){return null}},D={provider:"kiro",async createModel(n){let e=await S("kiro",n);return new k(e,n)}},v=(n,e)=>{let r=[];r.push("--output","json"),r.push("--model",n.model),e.maxTokens!==void 0&&r.push("--max-tokens",String(e.maxTokens));let i=n.properties?.args;return i!==void 0&&r.push(...i),r},C=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="content"||e.type==="text"){let r=e.text??e.content;return r!==void 0?{kind:"content_delta",textDelta:String(r)}:null}return e.type==="done"||e.type==="result"||e.done===!0?{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new l(e.error?.message??e.message??"Unknown Kiro error",{provider:"kiro"})}:null};export{k as a,D as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as r}from"./chunk-
|
|
2
|
+
import{a as r}from"./chunk-MGNBNMJZ.js";var n=r({name:"validate-eof",description:"Ensure files end with exactly one newline",canFix:!0,stacks:[],defaults:{},checkFile(i,e){return e===void 0?[]:e.length===0?[]:e.endsWith(`
|
|
3
3
|
`)?e.endsWith(`
|
|
4
4
|
|
|
5
5
|
`)?[{path:i.path,message:"file has multiple trailing newlines"}]:[]:[{path:i.path,message:"file does not end with a newline"}]},fixFile(i,e){if(e.length===0)return;let t=`${e.replace(/\n+$/,"")}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as C,c as E}from"./chunk-
|
|
2
|
+
import{a as C,c as E}from"./chunk-VXVW4UNH.js";import{a as k}from"./chunk-LFNUSULJ.js";import{b as x}from"./chunk-JTSRGXS4.js";import{f as h}from"./chunk-P2MUEKFT.js";import{b as i,f as d,g as f,h as u,i as g}from"./chunk-YVN2NZL4.js";import{g as n}from"./chunk-FFWPJP7A.js";import{j as c}from"./chunk-6DBKPC2O.js";var l=x(),b=t=>{let e=new Set,r=/export\s+\*\s+from\s+["']([^"']+)["']/g,a=/export\s+\{[^}]*\}\s+from\s+["']([^"']+)["']/g,o=/export\s+type\s+\{[^}]*\}\s+from\s+["']([^"']+)["']/g;for(let s of t.matchAll(r))s[1]!==void 0&&e.add(s[1]);for(let s of t.matchAll(a))s[1]!==void 0&&e.add(s[1]);for(let s of t.matchAll(o))s[1]!==void 0&&e.add(s[1]);return e},y=t=>{let e=t.startsWith("./")?t.slice(2):t;return e.endsWith(".ts")&&(e=e.slice(0,-3)),e},O=t=>!(t==="mod.ts"||t.endsWith("_test.ts")||t.endsWith("_bench.ts")||t.startsWith("_")||t.includes("/")),P=async(t={})=>{let{root:e=".",failFast:r=!1}=t,a=await C(e),o=[];for(let s of a){let v=c.runtime.path.join(s.path,"mod.ts"),m;try{m=await c.runtime.fs.readTextFile(v)}catch{continue}let M=b(m),w=new Set([...M].map(p=>y(p))),A=await E(s.path);for(let p of A){let R=c.runtime.path.basename(p);if(!O(R))continue;let F=y(p);if(!w.has(F)&&(o.push({packageName:s.name,file:p}),r))return{isComplete:!1,missingExports:o,packagesChecked:a.length}}}return{isComplete:o.length===0,missingExports:o,packagesChecked:a.length}},W=t=>h.fromPromise(()=>P(t)),_=t=>n.ok({root:"."}),z=t=>{if(n.isFail(t))return l.writeln(d("\u2717"),i(" "+String(t.error))),n.fail({exitCode:1});let{value:e}=t;if(l.writeln(g("\u2139"),i(` Checked ${e.packagesChecked} packages.`)),!e.isComplete){l.writeln(d("\u2717"),i(` Found ${e.missingExports.length} missing exports:`));for(let r of e.missingExports)l.writeln(u("\u26A0"),i(` ${r.packageName}: ${r.file}`));return n.fail({exitCode:1})}return l.writeln(f("\u2713"),i(" All mod.ts exports are complete.")),n.ok(void 0)},S=k.createTrigger({handler:W,adaptInput:_,adaptOutput:z}),N=async t=>await S({command:"validate-mod-exports",args:[],flags:{}});export{P as a,W as b,S as c,N as d};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as s}from"./chunk-
|
|
2
|
+
import{a as s}from"./chunk-MGNBNMJZ.js";var l=[/^<{7}\s/,/^={7}$/,/^>{7}\s/],i=s({name:"validate-merge-conflict",description:"Detect merge conflict markers",canFix:!1,stacks:[],defaults:{},checkFile(a,o){if(o===void 0)return[];let r=[],e=o.split(`
|
|
3
3
|
`);for(let t=0;t<e.length;t++)for(let n of l)if(n.test(e[t])){r.push({path:a.path,line:t+1,message:`merge conflict marker: ${e[t].slice(0,20)}`});break}return r}}),f=i.run,u=i.validator,d=i.main;export{i as a,f as b,u as c,d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as d}from"./chunk-
|
|
2
|
+
import{a as d}from"./chunk-MGNBNMJZ.js";import{b as p}from"./chunk-NBA6EFWU.js";var c="2023",u=new RegExp(`// Copyright ([0-9]{4})-present Eser Ozvataf and other contributors\\. All rights reserved\\. ([0-9A-Za-z-.]+) license\\.
|
|
3
3
|
`),l=`// Copyright ${c}-present Eser Ozvataf and other contributors. All rights reserved. Apache-2.0 license.`,T=[/docs\//,/etc\/templates\//,/manifest\.gen\.ts$/],g=t=>T.some(e=>e.test(t)),x=(t,e,r)=>{if(e===void 0||g(t.path))return[];let s=e.startsWith("#!")?e.indexOf(`
|
|
4
4
|
`)+1:0,n=e.slice(s).match(u);return n!==null?n[1]===c?[]:[{path:t.path,message:"incorrect copyright year",fixed:r.fix}]:[{path:t.path,message:"missing copyright header",fixed:r.fix}]},E=(t,e,r)=>{if(g(t.path))return;let a=e.startsWith("#!"),s=a?e.indexOf(`
|
|
5
5
|
`)+1:0,i=e.slice(s),n=i.match(u);if(n!==null&&n[1]===c)return;let o;if(n!==null){let f=e.slice(0,s),m=i.replace(n[0],"");o=`${f}${l}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
var r={name:"@eser/cli",version:"4.1.
|
|
2
|
+
var r={name:"@eser/cli",version:"4.1.50",type:"module",exports:"./main.ts",bin:{eser:"./bin.ts"},dependencies:{"@eser/ai":"workspace:*","@eser/codebase":"workspace:*","@eser/kit":"workspace:*","@eser/noskills":"workspace:*","@eser/laroux-server":"workspace:*","@eser/workflows":"workspace:*","@eser/functions":"workspace:*","@eser/logging":"workspace:*","@eser/shell":"workspace:*","@eser/standards":"workspace:*","@std/cli":"npm:@jsr/std__cli@^1.0.25","@std/fmt":"npm:@jsr/std__fmt@^1.0.8"},devDependencies:{"@std/assert":"npm:@jsr/std__assert@^1.0.16",esbuild:"^0.27.3"},optionalDependencies:{"@eserstack/ajan-darwin-arm64":"^4.1.47","@eserstack/ajan-darwin-x64":"^4.1.47","@eserstack/ajan-linux-arm64":"^4.1.47","@eserstack/ajan-linux-x64":"^4.1.47","@eserstack/ajan-win32-x64":"^4.1.47","@eserstack/ajan-wasm":"^4.1.47"}};export{r as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{d as g}from"./chunk-NBA6EFWU.js";import{d as p}from"./chunk-
|
|
2
|
+
import{d as g}from"./chunk-NBA6EFWU.js";import{d as p}from"./chunk-VKB3B2FE.js";import{i as o}from"./chunk-6DBKPC2O.js";var m=[/node_modules/,/\.git\//,/\/dist\//,/etc\/coverage/,/etc\/temp/,/\.output\//],x=async t=>{try{let n=await p`git ls-files --cached --others --exclude-standard`.cwd(t).noThrow().lines();return n.length>0?n:null}catch{return null}},k=async(t={})=>{let{root:n=".",extensions:e,exclude:s=[]}=t,l=[...m,...s.map(r=>typeof r=="string"?new RegExp(r):r)],u=[],d=await x(n);if(d!==null)for(let r of d){let i=o.path.join(n,r),c=o.path.basename(r);if(e!==void 0&&e.length>0&&!g(r,e)||l.some(a=>a.test(i)||a.test(r)))continue;let y=0,f=!1;try{let a=await o.fs.lstat(i);if(y=a.size,f=a.isSymlink,a.isDirectory&&!(t.includeDirs??!1))continue}catch{continue}u.push({path:i,name:c,size:y,isSymlink:f})}else for await(let r of o.fs.walk(n,{includeDirs:t.includeDirs??!1,includeFiles:!0,exts:e,skip:l})){if(!r.isFile&&!r.isSymlink)continue;let i=0;try{i=(await o.fs.stat(r.path)).size}catch{continue}u.push({path:r.path,name:r.name,size:i,isSymlink:r.isSymlink})}if(t.includeOnly!==void 0&&t.includeOnly.length>0){let r=t.includeOnly;return u.filter(i=>r.some(c=>i.path.endsWith(c)||i.path.includes(c)))}return u},B=async t=>{if(t.textContent!==void 0)return t.textContent;try{let n=await h(t);if(w(n))return;let e=new TextDecoder().decode(n);return t.textContent=e,e}catch{return}},h=async t=>{if(t.rawBytes!==void 0)return t.rawBytes;let n=await o.fs.readFile(t.path);return t.rawBytes=n,n},w=t=>{let n=Math.min(t.length,8192);for(let e=0;e<n;e++)if(t[e]===0)return!0;return!1},M=(t,n)=>{for(let e of n)if(typeof e=="string"){if(t.includes(e)||t.endsWith(e))return!0}else if(e.test(t))return!0;return!1},b=(t,n)=>{let e=new Map;for(let s of n)e.set(s.path,s);for(let s of t){let l=e.get(s.path);l!==void 0&&(s.textContent=l.newContent,s.rawBytes=void 0)}},D=async t=>{let n=0;for(let e of t)e.oldContent!==e.newContent&&(await o.fs.writeTextFile(e.path,e.newContent),n++);return n};export{m as a,k as b,B as c,h as d,w as e,M as f,b as g,D as h};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{n as $e}from"./chunk-NVPQJFAI.js";import{a as ge,b as me,d as X,e as Ye,f as et,g as tt,h as U}from"./chunk-LWQPFCWC.js";import{a as nt}from"./chunk-3OG2MEF2.js";import{c as fe}from"./chunk-
|
|
2
|
+
import{n as $e}from"./chunk-NVPQJFAI.js";import{a as ge,b as me,d as X,e as Ye,f as et,g as tt,h as U}from"./chunk-LWQPFCWC.js";import{a as nt}from"./chunk-3OG2MEF2.js";import{c as fe}from"./chunk-HTC2FO4I.js";import{a as pe,b as re,c as z,d as Be}from"./chunk-NBA6EFWU.js";import{e as S}from"./chunk-5DWJ7WEE.js";import{i as o}from"./chunk-6DBKPC2O.js";import{e as H,i as Qe}from"./chunk-6G6UVWJN.js";var I=S.getLogger(["laroux-bundler","server-action-transform"]);function mn(e,t){return`${e.replace(/\.[cm]?[jt]sx?$/,"")}#${t}`}function hn(e,t){let n=mn(e,t);return`Object.defineProperties(${t}, {
|
|
3
3
|
$$typeof: { value: Symbol.for("react.server.reference"), enumerable: false },
|
|
4
4
|
$$id: { value: "${n}", enumerable: false },
|
|
5
5
|
$$bound: { value: null, enumerable: false, writable: true }
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as w}from"./chunk-
|
|
2
|
+
import{a as w}from"./chunk-VXVW4UNH.js";import{a as v}from"./chunk-LFNUSULJ.js";import{b as y}from"./chunk-JTSRGXS4.js";import{f as k}from"./chunk-P2MUEKFT.js";import{b as l,f,g as h,h as C,i as m}from"./chunk-YVN2NZL4.js";import{g as a}from"./chunk-FFWPJP7A.js";var p=y(),D=e=>{let s=new Map,r=new Set(e.map(i=>i.name));for(let i of e){let n=[];for(let d of i.config._loadedFiles){let t=d.content,u=t.dependencies;if(u!==void 0)for(let c of Object.keys(u))r.has(c)&&n.push(c);let o=t.imports;if(o!==void 0)for(let c of Object.values(o))r.has(c)&&n.push(c)}s.set(i.name,[...new Set(n)])}return s},x=e=>{let s=[],r=new Set,i=new Set,n=[],d=t=>{r.add(t),i.add(t),n.push(t);let u=e.get(t)??[];for(let o of u)if(!r.has(o))d(o);else if(i.has(o)){let c=n.indexOf(o),g=n.slice(c);g.push(o),s.push(g)}n.pop(),i.delete(t)};for(let t of e.keys())r.has(t)||d(t);return s},R=async(e={})=>{let{root:s="."}=e,r=await w(s),i=D(r),n=x(i);return{hasCycles:n.length>0,cycles:n,packagesChecked:r.length}},O=e=>k.fromPromise(()=>R(e)),b=e=>a.ok({root:"."}),A=e=>{if(a.isFail(e))return p.writeln(f("\u2717"),l(" "+(e.error instanceof Error?e.error.message:String(e.error)))),a.fail({exitCode:1});let{value:s}=e;if(p.writeln(m("\u2139"),l(` Checked ${s.packagesChecked} packages.`)),s.hasCycles){p.writeln(f("\u2717"),l(` Found ${s.cycles.length} circular dependencies:`));for(let r of s.cycles)p.writeln(C("\u26A0"),l(` ${r.join(" \u2192 ")}`));return a.fail({exitCode:1})}return p.writeln(h("\u2713"),l(" No circular dependencies found.")),a.ok(void 0)},M=v.createTrigger({handler:O,adaptInput:b,adaptOutput:A}),_=async e=>await M({command:"validate-circular-deps",args:[],flags:{}});export{R as a,O as b,M as c,_ as d};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as w}from"./chunk-4X4NHXFE.js";import{a as p}from"./chunk-2XNFZXHY.js";import{b as c}from"./chunk-
|
|
2
|
+
import{b as w}from"./chunk-4X4NHXFE.js";import{a as p}from"./chunk-2XNFZXHY.js";import{b as c}from"./chunk-VKB3B2FE.js";import{e as y}from"./chunk-5WJ6AUNY.js";var C=()=>{let e=new Map;return{register:o=>{e.set(o.name,o)},registerAll:o=>{for(let r of o)e.set(r.name,r)},get:o=>e.get(o),getAll:()=>[...e.values()],has:o=>e.has(o),names:()=>[...e.keys()]}};var k=y(p(),1);var h=e=>{let o=e.workflows;if(!Array.isArray(o))throw new Error("Invalid config: 'workflows' must be an array");for(let r=0;r<o.length;r++){let n=o[r],t=n?.id!==void 0&&n.id!==""?`workflow '${n.id}'`:`workflow at index ${r}`;if(typeof n?.id!="string"||n.id==="")throw new Error(`Invalid config: ${t} must have a non-empty 'id' string`);if(!Array.isArray(n.on)||n.on.length===0)throw new Error(`Invalid config: ${t} must have a non-empty 'on' array`);if(!Array.isArray(n.steps)||n.steps.length===0)throw new Error(`Invalid config: ${t} must have a non-empty 'steps' array`);for(let s=0;s<n.steps.length;s++){let i=n.steps[s];if(typeof i=="string")continue;if(typeof i!="object"||i===null||Array.isArray(i))throw new Error(`Invalid config: ${t}, step ${s} must be a string or an object with exactly one key`);let l=Object.keys(i);if(l.length!==1)throw new Error(`Invalid config: ${t}, step ${s} must be an object with exactly one key (got ${l.length})`)}}};var b=async e=>{let o=await w(e);if(o===null)return null;let r={stack:o.stack,workflows:o.workflows??[],scripts:o.scripts};return h(r),r};var I={name:"shell",description:"Execute shell commands",run:async e=>{let o=e.command,r=e.fixCommand,n=e.name??o??"shell",t=e.fix??!1,s=e.root??".",i=e.workingDirectory??s;if(o===void 0||o.length===0)throw new Error(`Shell tool requires a 'command' option. Usage: { shell: { command: "deno fmt --check" } }`);let l=t&&r!==void 0?r:o,a=await new c("sh",["-c",l]).cwd(i).noThrow().spawn(),f=a.code;if(f===0)return{name:n,passed:!0,issues:[],mutations:[],stats:{exitCode:0}};let d=new TextDecoder,g=d.decode(a.stderr).trim(),m=[d.decode(a.stdout).trim(),g].filter(u=>u.length>0).join(`
|
|
3
3
|
`);return{name:n,passed:!1,issues:[{message:m||`Command exited with code ${f}`}],mutations:[],stats:{exitCode:f}}}};export{C as a,b,I as c};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{d as i}from"./chunk-
|
|
2
|
+
import{d as i}from"./chunk-VKB3B2FE.js";var n="#%$".repeat(35),g=s=>{let e=s.split(n).map(t=>{let c=t.slice(0,40);t=t.slice(40);let r=t.indexOf(`
|
|
3
3
|
`);if(r<0)return{hash:c,subject:t.trim(),body:""};let o=t.slice(0,r).trim(),a=t.slice(r+1).trim();return{hash:c,subject:o,body:a}});return e.shift(),e},m=async()=>await i`git describe --tags --abbrev=0`.text();var l=async(s,e)=>{let t=`--pretty=format:${n}%H%B`,c=`${s}..${e}`,r=await i`git --no-pager log ${t} ${c}`.text();return g(r)};var p=async(s,e)=>{await i`git tag -a ${s} -m ${e}`.spawn()},h=async(s,e)=>{await i`git push ${s} ${e}`.spawn()};export{m as a,l as b,p as c,h as d};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as
|
|
3
|
-
`,z=async(e,n)=>{let r=JSON.parse(JSON.stringify(e.content));for(let[t,o]of Object.entries(n))V(r,t,o);let i=q(r);await p.fs.writeTextFile(e.filepath,i),e.content=r,e.rawText=i},Q=(e,n,r)=>{let{targetFiles:i="all",createIfMissing:t=!1}=r,o=e[n];if(i==="origin"){if(o===void 0){let s=e._loadedFiles[0];return t&&s!==void 0?[s]:[]}let l=e._loadedFiles.find(s=>s.filepath===o.origin.filepath);return l?[l]:[]}if(i==="all")return!o&&!t?[]:!o&&t?[...e._loadedFiles]:R(e,n);let a=new Set(i);return e._loadedFiles.filter(l=>a.has(l.fileType))},J=async(e,n,r,i={})=>{let t=[],o=[],a=[],l=Q(e,n,i);if(l.length===0)return{updated:t,failed:o,skipped:a};for(let s of l){let d=F[n]?.[s.fileType];if(!d){a.push(s.filepath);continue}if(K(s.content,d)===r){a.push(s.filepath);continue}try{await z(s,{[d]:r}),t.push(s.filepath)}catch(f){o.push({filepath:s.filepath,reason:f instanceof Error?f.message:String(f)})}}if(t.length>0){let s=e[n];if(s)s.value=r;else{let d=e._loadedFiles.find(g=>t.includes(g.filepath));if(d){let g=F[n]?.[d.fileType];g&&(e[n]={value:r,origin:{filepath:d.filepath,fileType:d.fileType,propertyPath:g},alternateOrigins:[]})}}}return{updated:t,failed:o,skipped:a}};var X=async(e,n,r)=>await J(e,"version",n,{...r,targetFiles:"all"});var w=class extends Error{constructor(n){super(n),this.name="WorkspaceError"}},U=async e=>{try{return await T({baseDir:e})}catch(n){throw n instanceof m?new w(`No package config file found in ${p.path.resolve(e)}`):n}},Z=async(e,n)=>{let r=[];for(let i of n)if(i.endsWith("/*")){let t=p.path.join(e,i.slice(0,-2));try{for await(let o of p.fs.readDir(t))o.isDirectory&&r.push(p.path.join(t,o.name))}catch{}}else if(i.includes("*")||i.includes("?")){let t=i.split("/"),o=[],a=0;for(let f=0;f<t.length;f++){if(t[f].includes("*")||t[f].includes("?")){a=f;break}o.push(t[f])}let l=p.path.join(e,...o),d=t.slice(a).join("/").replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,".*").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]"),g=new RegExp(`^${d}$`);try{for await(let f of p.fs.walk(l,{includeDirs:!0,includeFiles:!1})){let
|
|
2
|
+
import{a as D}from"./chunk-GTHXGAMQ.js";import{a as j}from"./chunk-3XJLLDR5.js";import{a as O}from"./chunk-P7WCO724.js";import{a as S}from"./chunk-2XNFZXHY.js";import{i as p}from"./chunk-6DBKPC2O.js";import{e as _}from"./chunk-5WJ6AUNY.js";var y={DenoJson:"deno.json",DenoJsonc:"deno.jsonc",JsrJson:"jsr.json",JsrJsonc:"jsr.jsonc",PackageJson:"package.json"},k=[y.DenoJson,y.DenoJsonc,y.JsrJson,y.JsrJsonc,y.PackageJson],P=Symbol.for("baseDir"),F={name:{"deno.json":"name","deno.jsonc":"name","jsr.json":"name","jsr.jsonc":"name","package.json":"name"},version:{"deno.json":"version","deno.jsonc":"version","jsr.json":"version","jsr.jsonc":"version","package.json":"version"},description:{"package.json":"description"},license:{"deno.json":"license","deno.jsonc":"license","package.json":"license"},private:{"package.json":"private"},exports:{"deno.json":"exports","deno.jsonc":"exports","jsr.json":"exports","jsr.jsonc":"exports","package.json":"exports"},workspaces:{"deno.json":"workspace","deno.jsonc":"workspace","package.json":"workspaces"},imports:{"deno.json":"imports","deno.jsonc":"imports"},dependencies:{"package.json":"dependencies"},devDependencies:{"package.json":"devDependencies"}};var b=_(S(),1);var c={Unknown:0,EnvironmentFile:1,Json:2,JsonWithComments:3,Toml:4,Yaml:5};var I={[c.Unknown]:"unknown",[c.EnvironmentFile]:"environment",[c.Json]:"JSON",[c.JsonWithComments]:"JSONC",[c.Toml]:"TOML",[c.Yaml]:"YAML"},h=class extends Error{filepath;format;constructor(n,r,i){super(`Failed to parse ${I[r]??"unknown"} file "${n}": ${i.message}`,{cause:i}),this.name="ConfigParseError",this.filepath=n,this.format=r}};var A=e=>{let n=p.path.extname(e);return n===".json"?c.Json:n===".jsonc"?c.JsonWithComments:n===".yaml"||n===".yml"?c.Yaml:n===".toml"?c.Toml:n===".env"?c.EnvironmentFile:c.Unknown},x=async(e,n)=>{let r=n??A(e),i=await p.fs.readTextFile(e);try{return r===c.Json?{content:JSON.parse(i),filepath:e,format:r}:r===c.JsonWithComments?{content:j(i),filepath:e,format:r}:r===c.Yaml?{content:b.parse(i),filepath:e,format:r}:r===c.Toml?{content:O(i),filepath:e,format:r}:{content:void 0,filepath:e,format:c.Unknown}}catch(t){throw t instanceof Error?new h(e,r,t):new h(e,r,new Error(String(t)))}};var M=(e,n,r)=>{if(e==null)return r;let i=n.length;if(i===0)return e;let t=e;for(let o=0;o<i;o++){if(t==null)return r;let a=n[o];t=t[a]}return t===void 0?r:t};var m=class extends Error{filepath;constructor(n,r,i){super(n,{cause:i}),this.name="PackageLoadError",this.filepath=r}},$=async(e,n)=>{if(await p.fs.exists(e)===!1||(await p.fs.stat(e)).isFile===!1)return;let t=await p.fs.readTextFile(e),a=(await x(e)).content;if(a!==void 0)return{filepath:e,fileType:n,content:a,rawText:t}},Y=async(e,n)=>{let r=[];for(let i of n){let t=p.path.join(e,i),o=await $(t,i);o&&r.push(o)}return r},B=(e,n)=>M(e,n.split(".")),u=(e,n,r)=>{let i,t,o=[];for(let a of n){let l=r[e]?.[a.fileType];if(l===void 0)continue;let s=B(a.content,l);if(s===void 0)continue;let d={filepath:a.filepath,fileType:a.fileType,propertyPath:l};i===void 0?(i=s,t=d):o.push(d)}if(!(i===void 0||t===void 0))return{value:i,origin:t,alternateOrigins:o}},G=e=>e===void 0?F:D(F,e),H=e=>[...e].sort((n,r)=>k.indexOf(n)-k.indexOf(r)),T=async(e={})=>{let{baseDir:n=".",includeFiles:r=k,fieldMappings:i,searchParents:t=!1}=e,o=G(i),a=H(r),l=p.path.resolve(n),s=[];for(;s=await Y(l,a),!(s.length>0||!t);){let g=p.path.dirname(l);if(g===l)break;l=g}if(s.length===0)throw new m(`No config files found in ${n}. Looked for: ${a.join(", ")}`);return{name:u("name",s,o),version:u("version",s,o),description:u("description",s,o),license:u("license",s,o),private:u("private",s,o),exports:u("exports",s,o),workspaces:u("workspaces",s,o),imports:u("imports",s,o),dependencies:u("dependencies",s,o),devDependencies:u("devDependencies",s,o),[P]:l,_loadedFiles:s}},v=async(e={})=>{try{return await T(e)}catch(n){if(n instanceof m)return;throw n}},R=(e,n)=>{let r=e[n];if(!r)return[];let i=new Set([r.origin.filepath,...r.alternateOrigins.map(t=>t.filepath)]);return e._loadedFiles.filter(t=>i.has(t.filepath))},E=e=>e[P];var K=(e,n)=>{let r=n.split("."),i=e;for(let t of r){if(L.has(t)||i==null||typeof i!="object"||!Object.hasOwn(i,t))return;i=i[t]}return i},L=new Set(["__proto__","constructor","prototype"]),V=(e,n,r)=>{let i=n.split(".");for(let a of i)if(a===void 0||a.length===0||L.has(a))return;let t=e;for(let a=0;a<i.length-1;a++){let l=i[a];if(!Object.hasOwn(t,l)||typeof t[l]!="object"||t[l]===null){let s=Object.create(null);t[l]=s,t=s}else t=t[l]}let o=i[i.length-1];t[o]=r},q=e=>`${JSON.stringify(e,null,2)}
|
|
3
|
+
`,z=async(e,n)=>{let r=JSON.parse(JSON.stringify(e.content));for(let[t,o]of Object.entries(n))V(r,t,o);let i=q(r);await p.fs.writeTextFile(e.filepath,i),e.content=r,e.rawText=i},Q=(e,n,r)=>{let{targetFiles:i="all",createIfMissing:t=!1}=r,o=e[n];if(i==="origin"){if(o===void 0){let s=e._loadedFiles[0];return t&&s!==void 0?[s]:[]}let l=e._loadedFiles.find(s=>s.filepath===o.origin.filepath);return l?[l]:[]}if(i==="all")return!o&&!t?[]:!o&&t?[...e._loadedFiles]:R(e,n);let a=new Set(i);return e._loadedFiles.filter(l=>a.has(l.fileType))},J=async(e,n,r,i={})=>{let t=[],o=[],a=[],l=Q(e,n,i);if(l.length===0)return{updated:t,failed:o,skipped:a};for(let s of l){let d=F[n]?.[s.fileType];if(!d){a.push(s.filepath);continue}if(K(s.content,d)===r){a.push(s.filepath);continue}try{await z(s,{[d]:r}),t.push(s.filepath)}catch(f){o.push({filepath:s.filepath,reason:f instanceof Error?f.message:String(f)})}}if(t.length>0){let s=e[n];if(s)s.value=r;else{let d=e._loadedFiles.find(g=>t.includes(g.filepath));if(d){let g=F[n]?.[d.fileType];g&&(e[n]={value:r,origin:{filepath:d.filepath,fileType:d.fileType,propertyPath:g},alternateOrigins:[]})}}}return{updated:t,failed:o,skipped:a}};var X=async(e,n,r)=>await J(e,"version",n,{...r,targetFiles:"all"});var w=class extends Error{constructor(n){super(n),this.name="WorkspaceError"}},U=async e=>{try{return await T({baseDir:e})}catch(n){throw n instanceof m?new w(`No package config file found in ${p.path.resolve(e)}`):n}},Z=async(e,n)=>{let r=[];for(let i of n)if(i.endsWith("/*")){let t=p.path.join(e,i.slice(0,-2));try{for await(let o of p.fs.readDir(t))o.isDirectory&&r.push(p.path.join(t,o.name))}catch{}}else if(i.includes("*")||i.includes("?")){let t=i.split("/"),o=[],a=0;for(let f=0;f<t.length;f++){if(t[f].includes("*")||t[f].includes("?")){a=f;break}o.push(t[f])}let l=p.path.join(e,...o),d=t.slice(a).join("/").replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,".*").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]"),g=new RegExp(`^${d}$`);try{for await(let f of p.fs.walk(l,{includeDirs:!0,includeFiles:!1})){let C=p.path.relative(l,f.path);C!==""&&g.test(C)&&r.push(f.path)}}catch{}}else r.push(p.path.join(e,i));return r},ee=async e=>{let n=await U(e),r=n.workspaces?.value;if(!Array.isArray(r))throw new w("Package config doesn't have workspace field.");for(let o of r)if(typeof o!="string")throw new w("Package config workspace field should be an array of strings.");let i=await Z(e,r),t=[];for(let o of i){let a=await v({baseDir:o});if(a===void 0)continue;let l=a.name?.value,s=a.version?.value,d=a.private?.value;l!==void 0&&d!==!0&&t.push({name:l,version:s??"0.0.0",config:a})}return[n,t]};export{y as a,T as b,v as c,E as d,X as e,ee as f};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as l}from"./chunk-
|
|
2
|
+
import{a as l}from"./chunk-MGNBNMJZ.js";var p=new Set(["con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"]),E=/^[a-z0-9_./[\]@-]+$/,u=/^[a-z0-9./[\]@-]+$/,g=[".claude/",".github/",".git/","CLAUDE.md","AGENTS.md","CHANGELOG.md","Makefile","Dockerfile","LICENSE","README.md","VERSION"],d=(o,s)=>{for(let e of s)if(e.includes("*")){let a=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]+");if(new RegExp(a).test(o))return!0}else if(o.includes(e)||o.endsWith(e))return!0;return!1},c=l({name:"validate-filenames",description:"Enforce filename conventions (kebab-case / snake_case)",canFix:!1,stacks:[],defaults:{},checkAll(o,s){let e=[],a=s.rules,f=s.exclude??g;for(let t of o){if(d(t.path,f))continue;let i=t.name,m=i.replace(/\.[^.]+$/,"");if(p.has(m.toLowerCase())){e.push({path:t.path,message:`Windows-reserved filename: ${i}`});continue}if(a!==void 0){let r=!1;for(let n of a)if(n.directory==="*"||t.path.includes(n.directory)){if(n.exclude!==void 0&&d(t.path,n.exclude)){r=!0;break}(n.convention==="snake_case"?E:u).test(i)||e.push({path:t.path,message:`filename must be ${n.convention}`}),r=!0;break}if(r)continue}u.test(i)||e.push({path:t.path,message:"filename must be kebab-case"})}return e}}),S=c.run,k=c.validator,v=c.main;export{c as a,S as b,k as c,v as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as n}from"./chunk-3XJLLDR5.js";import{a as r}from"./chunk-
|
|
2
|
+
import{a as n}from"./chunk-3XJLLDR5.js";import{a as r}from"./chunk-MGNBNMJZ.js";var o=r({name:"validate-json",description:"Validate JSON syntax",canFix:!1,stacks:[],defaults:{},extensions:["json","jsonc"],checkFile(e,a,t){if(a===void 0)return[];if((t.exclude??[]).some(s=>e.path.includes(s)))return[];try{return e.name.endsWith(".jsonc")?n(a):JSON.parse(a),[]}catch(s){let i=s instanceof SyntaxError?s.message:"invalid JSON";return[{path:e.path,message:i}]}}}),p=o.run,f=o.validator,x=o.main;export{o as a,p as b,f as c,x as d};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{e as x,f as w}from"./chunk-
|
|
2
|
+
import{e as x,f as w}from"./chunk-HTC2FO4I.js";import{a as O}from"./chunk-LFNUSULJ.js";import{a as F,c as U}from"./chunk-JTSRGXS4.js";import{o as i}from"./chunk-4TTJVJEI.js";import{a as S,b as v,c as P,d as u}from"./chunk-J2Z7NG2X.js";import{f as V}from"./chunk-P2MUEKFT.js";import{a as k}from"./chunk-MG65QJY6.js";import{g as a}from"./chunk-FFWPJP7A.js";import{j as y}from"./chunk-7ATUODBM.js";import{j as h}from"./chunk-6DBKPC2O.js";var{ctx:d,output:_}=F(),I=async(s={})=>{let{root:e="."}=s,o=y(e,"VERSION");try{return(await h.runtime.fs.readTextFile(o)).trim()}catch{return}},N=async(s,e)=>{let o=y(s,"VERSION");await h.runtime.fs.writeTextFile(o,e+`
|
|
3
3
|
`)},M=s=>{let e=u("0.0.0");for(let o of s){let n=u(o);S(n,e)>0&&(e=n)}return v(e)},T=async(s={})=>{let{root:e="."}=s,[o,n]=await w(e),l=o.version?.value??"0.0.0";return{packages:[{name:o.name?.value??"(root)",version:l},...n.map(p=>({name:p.name,version:p.version}))]}},j=async(s,e={})=>{let{root:o=".",dryRun:n=!1,updateVersionFile:l=!0}=e,[c,f]=await w(o),p=c.version?.value??"0.0.0",b=c.name?.value??"(root)",A=[p,...f.map(t=>t.version)],C=M(A),r;if(s==="explicit"){if(e.explicitVersion===void 0)throw new Error('explicitVersion is required when command is "explicit".');u(e.explicitVersion),r=e.explicitVersion}else s==="sync"?r=C:r=v(P(u(C),s));let m=[],E=p!==r;n||await x(c,r),m.push({name:b,from:p,to:r,changed:E});for(let t of f){let g=t.version!==r;n||await x(t.config,r),m.push({name:t.name,from:t.version,to:r,changed:g})}let R=[];if(l){let t=await I({root:o}),g=t!==r;!n&&g&&await N(o,r),R.push({path:"VERSION",from:t??"",to:r,changed:g})}let $=m.filter(t=>t.changed).length;return{command:s,targetVersion:r,updates:m,fileUpdates:R,changedCount:$,dryRun:n}},H=s=>s.mode==="show"?V.fromPromise(async()=>({mode:"show",result:await T()})):V.fromPromise(async()=>({mode:"update",result:await j(s.command,s.options)})),D=s=>{let e=s.args[0];if(e===void 0)return a.ok({mode:"show"});let o=["sync","patch","minor","major"],n,l;o.includes(e)?n=e:(n="explicit",l=e);let c=s.flags["dry-run"]===!0;return a.ok({mode:"update",command:n,options:{dryRun:c,explicitVersion:l}})},W=s=>{if(a.isFail(s))return a.fail({exitCode:1,message:String(s.error)});let e=s.value;if(e.mode==="show")return console.table(e.result.packages),a.ok(void 0);let{result:o}=e;o.command==="sync"?i.info(d,"Syncing all versions..."):o.command==="explicit"?i.info(d,`Setting all versions to ${o.targetVersion}...`):i.info(d,`Bumping all versions (${o.command})...`),i.info(d,`Target version: ${o.targetVersion}`),console.table(o.updates);for(let n of o.fileUpdates)n.changed&&i.info(d,`${n.path} (${n.from} \u2192 ${n.to})`);return o.dryRun?i.info(d,`Dry run - ${o.changedCount} packages would be modified.`):i.success(d,`Done. Updated ${o.changedCount} packages.`),a.ok(void 0)},q=O.createTrigger({handler:H,adaptInput:D,adaptOutput:W}),ee=async s=>{let e=k(s??[],{boolean:["dry-run"]}),o=U("versions",e);return await q(o)};export{I as a,T as b,j as c,H as d,q as e,ee as f};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as v}from"./chunk-2XNFZXHY.js";import{i as s}from"./chunk-6DBKPC2O.js";import{e as $}from"./chunk-5WJ6AUNY.js";var f=()=>({version:"0.1.0",phase:"IDLE",spec:null,specDescription:null,branch:null,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human",approved:!1,planPath:null},specState:{path:null,status:"none"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[],lastCalledAt:null,classification:null,completionReason:null,completedAt:null,completionNote:null,reopenedFrom:null,revisitHistory:[]}),k=(e,t,r,n)=>({concerns:e,tools:t,providers:r,project:n,maxIterationsBeforeRestart:15,verifyCommand:null,allowGit:!1,command:"npx eser@latest noskills"});var l=$(v(),1);var i=".eser",c=`${i}/.state`,S=`${c}/state.json`,m=`${i}/manifest.yml`,y=`${i}/concerns`,h=`${i}/rules`,u=`${i}/specs`,w=`${i}/workflows`,p=`${c}/specs`,
|
|
2
|
+
import{a as v}from"./chunk-2XNFZXHY.js";import{i as s}from"./chunk-6DBKPC2O.js";import{e as $}from"./chunk-5WJ6AUNY.js";var f=()=>({version:"0.1.0",phase:"IDLE",spec:null,specDescription:null,branch:null,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human",approved:!1,planPath:null},specState:{path:null,status:"none"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[],lastCalledAt:null,classification:null,completionReason:null,completedAt:null,completionNote:null,reopenedFrom:null,revisitHistory:[]}),k=(e,t,r,n)=>({concerns:e,tools:t,providers:r,project:n,maxIterationsBeforeRestart:15,verifyCommand:null,allowGit:!1,command:"npx eser@latest noskills"});var l=$(v(),1);var i=".eser",c=`${i}/.state`,S=`${c}/state.json`,m=`${i}/manifest.yml`,y=`${i}/concerns`,h=`${i}/rules`,u=`${i}/specs`,w=`${i}/workflows`,p=`${c}/specs`,F=`${c}/active.json`,a=`${i}/.sessions`,d={eserDir:i,stateDir:c,stateFile:S,manifestFile:m,concernsDir:y,rulesDir:h,specsDir:u,workflowsDir:w,specStatesDir:p,activeFile:F,specDir:e=>`${u}/${e}`,specFile:e=>`${u}/${e}/spec.md`,specStateFile:e=>`${p}/${e}.json`,concernFile:e=>`${y}/${e}.json`,sessionsDir:a,sessionFile:e=>`${a}/${e}.json`,eserGitignore:`${i}/.gitignore`},x=async e=>{let t=`${e}/${S}`;try{let r=await s.fs.readTextFile(t);return JSON.parse(r)}catch{return f()}},O=async(e,t)=>{if(t==null)return x(e);let r=`${e}/${d.specDir(t)}`;try{await s.fs.stat(r)}catch{throw new Error(`Spec '${t}' not found. Run \`noskills spec list\` to see available specs.`)}let n=await b(e,t);if(n.spec===t)return n;let o=await x(e);return o.spec===t?o:{...n,spec:t}};var A=e=>{if(e===void 0)return null;for(let t of e)if(t.startsWith("--spec="))return t.slice(7);return null},j=e=>{let t=A(e);return t===null||t.length===0?{ok:!1,error:"Error: spec name is required. Use `noskills spec <name> <command>` format."}:{ok:!0,spec:t}},I=async(e,t)=>{let r=`${e}/${c}`,n=`${e}/${S}`;await s.fs.mkdir(r,{recursive:!0}),await s.fs.writeTextFile(n,JSON.stringify(t,null,2)+`
|
|
3
3
|
`)};var b=async(e,t)=>{let r=`${e}/${d.specStateFile(t)}`;try{let n=await s.fs.readTextFile(r);return JSON.parse(n)}catch{return f()}},C=async(e,t,r)=>{let n=`${e}/${p}`,o=`${e}/${d.specStateFile(t)}`;await s.fs.mkdir(n,{recursive:!0}),await s.fs.writeTextFile(o,JSON.stringify(r,null,2)+`
|
|
4
4
|
`)},_=async e=>{let t=`${e}/${p}`,r=[];try{for await(let n of s.fs.readDir(t))if(n.isFile&&n.name.endsWith(".json")){let o=n.name.replace(/\.json$/,""),g=await s.fs.readTextFile(`${t}/${n.name}`);r.push({name:o,state:JSON.parse(g)})}}catch{}return r},M=async e=>{let t=`${e}/${m}`;try{let r=await s.fs.readTextFile(t),n=l.parse(r);return n?.noskills===void 0?null:n.noskills}catch{return null}},L=async(e,t)=>{let r=`${e}/${m}`,n;try{let g=await s.fs.readTextFile(r);n=l.parseDocument(g)}catch{n=new l.Document({})}let o=n.createNode(t);o.commentBefore=" noskills orchestrator \u2014 inline comments in this section won't be preserved on next write",n.set("noskills",o),await s.fs.writeTextFile(r,n.toString())},J=async(e,t)=>{let r=`${e}/${d.concernFile(t)}`;try{let n=await s.fs.readTextFile(r);return JSON.parse(n)}catch{return null}},q=async(e,t)=>{let r=`${e}/${y}`,n=`${e}/${d.concernFile(t.id)}`;await s.fs.mkdir(r,{recursive:!0}),await s.fs.writeTextFile(n,JSON.stringify(t,null,2)+`
|
|
5
5
|
`)},U=async e=>{let t=`${e}/${y}`,r=[];try{for await(let n of s.fs.readDir(t))if(n.isFile&&n.name.endsWith(".json")){let o=await s.fs.readTextFile(`${t}/${n.name}`);r.push(JSON.parse(o))}}catch{}return r},V=async e=>{let t=[i,c,p,y,h,u,w];for(let n of t)await s.fs.mkdir(`${e}/${n}`,{recursive:!0});let r=`${e}/${d.eserGitignore}`;try{await s.fs.stat(r)}catch{await s.fs.writeTextFile(r,`# eser toolchain runtime state \u2014 not tracked by git
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as h,b as p,c as S,d as k,e as g,f as m,g as f}from"./chunk-YXETE4S3.js";import{a as c}from"./chunk-J7YTWK67.js";var y=class{capabilities=["text_generation","streaming"];provider="opencode";modelId;binary;config;constructor(e,r){this.binary=e,this.config=r,this.modelId=r.model}async generateText(e,r){let o=w(this.config,e,"json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),l=g(s.stderr),t=await k(s.stdout,this.modelId),u=await s.waitForExit(),a=await l,d=m("opencode",u.code,a);if(d!==null)throw d;return t}async*streamText(e,r){let o=w(this.config,e,"stream-json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),l=g(s.stderr);try{for await(let d of S(s.stdout)){let x=v(d);x!==null&&(yield x)}let t=await s.waitForExit(),u=await l,a=m("opencode",t.code,u);a!==null&&(yield{kind:"error",error:a})}catch(t){t instanceof c?yield{kind:"error",error:t}:yield{kind:"error",error:new c(t instanceof Error?t.message:String(t),{provider:"opencode",cause:t instanceof Error?t:void 0})}}}close(){return Promise.resolve()}getRawClient(){return null}},b={provider:"opencode",async createModel(n){let e=await h("opencode",n);return new y(e,n)}},w=(n,e,r)=>{let o=["--output-format",r];o.push("--model",n.model),e.maxTokens!==void 0&&o.push("--max-tokens",String(e.maxTokens));let i=n.properties?.args;return i!==void 0&&o.push(...i),o},v=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="content_block_delta"||e.type==="assistant"){let r=e.delta?.text??e.message?.content?.[0]?.text;return r!==void 0?{kind:"content_delta",textDelta:r}:null}return e.type==="result"||e.done===!0?{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new c(e.error?.message??"Unknown OpenCode error",{provider:"opencode"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as F,c as p}from"./chunk-
|
|
2
|
+
import{b as F,c as p}from"./chunk-BVIGTD2Z.js";import{a as g,c as h}from"./chunk-JTSRGXS4.js";import{o as c}from"./chunk-4TTJVJEI.js";import{a as x}from"./chunk-MG65QJY6.js";import{g as d}from"./chunk-FFWPJP7A.js";var{ctx:m,output:E}=g(),b=e=>{let y=async s=>{let i={root:s?.root??".",fix:s?.fix??!1,exclude:s?.exclude??[],...e.defaults,...s},r=s?._changedFiles,t={root:i.root,extensions:e.extensions,exclude:i.exclude,includeOnly:r!==void 0&&r.length>0?r:void 0},l=await F(t),n=[],u=[];if(e.checkAll!==void 0){let o=await e.checkAll(l,i);n.push(...o)}else if(e.checkFile!==void 0)for(let o of l){let a=await p(o),f=e.checkFile(o,a,i);n.push(...f)}if(i.fix&&e.canFix&&e.fixFile!==void 0)for(let o of l){let a=await p(o);if(a===void 0)continue;let f=e.fixFile(o,a,i);f!==void 0&&u.push(f)}return{name:e.name,issues:n,mutations:u,filesChecked:l.length}},k={name:e.name,description:e.description,requiredStacks:e.stacks,async validate(s){let i=s.options?.fix,r=s.options??{},t=await y({root:s.root,fix:i??!1,exclude:[],...r});return{name:e.name,passed:t.issues.length===0,issues:t.issues.map(l=>({severity:"error",message:`${l.message}${l.fixed?" (fixed)":""}`,file:l.path,line:l.line})),stats:{filesChecked:t.filesChecked,issuesFound:t.issues.length,fixedCount:t.mutations.length}}}},T=async s=>{let i=e.canFix&&s.flags.fix===!0,r=s.flags.root??".",t=s.flags.exclude,l=t!==void 0?Array.isArray(t)?t:[t]:[];try{let n=await y({root:r,fix:i,exclude:l});if(n.mutations.length>0){let{writeMutations:o}=await import("./file-tools-shared-IIW7WSUM.js"),a=await o(n.mutations);c.success(m,`Fixed ${a} file(s) for ${e.name}.`)}if(n.issues.length===0&&n.mutations.length===0)return c.success(m,`${e.name}: ${n.filesChecked} files checked, no issues.`),d.ok(void 0);let u=n.issues.filter(o=>!o.fixed);if(u.length>0){for(let o of u){let a=o.line!==void 0?`${o.path}:${o.line}`:o.path;c.error(m,`${a}: ${o.message}`)}return d.fail({exitCode:1})}return d.ok(void 0)}catch(n){return c.error(m,n instanceof Error?n.message:String(n)),d.fail({exitCode:1})}};return{config:e,run:y,validator:k,main:async s=>{let i=e.canFix?["fix"]:[],r=x(s??[],{boolean:[...i,"help"],string:["root","exclude"],alias:{h:"help"}});if(r.help)return console.log(`eser codebase ${e.name} \u2014 ${e.description}
|
|
3
3
|
`),console.log(`Usage: eser codebase ${e.name} [options]
|
|
4
4
|
`),console.log("Options:"),e.canFix&&console.log(" --fix Auto-fix issues"),console.log(" --root <dir> Root directory (default: .)"),console.log(" --exclude <p> Exclude pattern"),console.log(" -h, --help Show this help"),d.ok(void 0);let t=h(e.name,r);return await T(t)}}};export{b as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as k,b as p,c as h,e as m,f as u,g as f}from"./chunk-YXETE4S3.js";import{a as c}from"./chunk-J7YTWK67.js";var y=class{capabilities=["text_generation","streaming","tool_calling"];provider="claude-code";modelId;binary;config;constructor(e,n){this.binary=e,this.config=n,this.modelId=n.model}async generateText(e,n){let r=w(this.config,e,"json"),a=f(e.messages,e.system),o=p(this.binary,r,{signal:n,stdinData:a}),l=m(o.stderr),s=o.stdout.getReader(),i=[],d=new TextDecoder,g=await s.read();for(;g.done!==!0;)i.push(d.decode(g.value,{stream:!0})),g=await s.read();s.releaseLock();let T=await o.waitForExit(),_=await l,x=u("claude-code",T.code,_);if(x!==null)throw x;let S=i.join("");return v(S,this.modelId)}async*streamText(e,n){let r=this.config.properties?.streamFormat??"text",a=w(this.config,e,r),o=f(e.messages,e.system),l=p(this.binary,a,{signal:n,stdinData:o}),s=m(l.stderr);try{r==="stream-json"?yield*this.#t(l,s):yield*this.#e(l,s)}catch(i){i instanceof c?yield{kind:"error",error:i}:yield{kind:"error",error:new c(i instanceof Error?i.message:String(i),{provider:"claude-code",cause:i instanceof Error?i:void 0})}}}async*#e(e,n){let r=new TextDecoder,a=e.stdout.getReader(),o=await a.read();for(;o.done!==!0;){let d=r.decode(o.value,{stream:!0});d.length>0&&(yield{kind:"content_delta",textDelta:d}),o=await a.read()}a.releaseLock();let l=await e.waitForExit(),s=await n,i=u("claude-code",l.code,s);i!==null?yield{kind:"error",error:i}:yield{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0}}}async*#t(e,n){for await(let l of h(e.stdout)){let s=E(l);s!==null&&(yield s)}let r=await e.waitForExit(),a=await n,o=u("claude-code",r.code,a);o!==null&&(yield{kind:"error",error:o})}close(){return Promise.resolve()}getRawClient(){return null}},P={provider:"claude-code",async createModel(t){let e=await k("claude",t);return new y(e,t)}},w=(t,e,n)=>{let r=[];n!=="text"&&r.push("--output-format",n),n==="stream-json"&&r.push("--verbose"),r.push("--model",t.model);let a=t.properties?.maxTurns;a!==void 0&&r.push("--max-turns",String(a));let o=t.properties?.allowedTools;if(o!==void 0)for(let s of o)r.push("--allowedTools",s);let l=t.properties?.args;return l!==void 0&&r.push(...l),r},v=(t,e)=>{try{let n=JSON.parse(t);return b(n,e)}catch{return{content:[{kind:"text",text:t.trim()}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e}}},b=(t,e)=>{let n=[];if(t.result!==void 0)n.push({kind:"text",text:String(t.result)});else if(t.message?.content!==void 0)for(let r of t.message.content)r.type==="text"?n.push({kind:"text",text:r.text}):r.type==="tool_use"&&n.push({kind:"tool_call",toolCall:{id:r.id??r.name,name:r.name,arguments:r.input??{}}});else typeof t=="string"&&n.push({kind:"text",text:t});return n.length===0&&n.push({kind:"text",text:JSON.stringify(t)}),{content:n,stopReason:t.stop_reason==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:t.usage?.input_tokens??0,outputTokens:t.usage?.output_tokens??0,totalTokens:(t.usage?.input_tokens??0)+(t.usage?.output_tokens??0)},modelId:e,rawResponse:t}},E=t=>{if(t===null||typeof t!="object")return null;let e=t;if(e.type==="assistant"){if(e.message?.content!==void 0){for(let n of e.message.content)if(n.type==="text")return{kind:"content_delta",textDelta:n.text}}return null}return e.type==="content_block_delta"?e.delta?.type==="text_delta"?{kind:"content_delta",textDelta:e.delta.text}:null:e.type==="result"?{kind:"message_done",stopReason:e.subtype==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new c(e.error?.message??"Unknown Claude Code error",{provider:"claude-code"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,P as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as i}from"./chunk-
|
|
2
|
+
import{a as i}from"./chunk-MGNBNMJZ.js";import{j as a}from"./chunk-6DBKPC2O.js";var s=i({name:"validate-symlinks",description:"Detect broken symlinks",canFix:!1,stacks:[],defaults:{},async checkAll(n){let o=[];for(let t of n)if(t.isSymlink)try{await a.runtime.fs.stat(t.path)}catch{o.push({path:t.path,message:"broken symlink \u2014 target not found"})}return o}}),l=s.run,c=s.validator,m=s.main;export{s as a,l as b,c,m as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as y}from"./chunk-
|
|
2
|
+
import{c as y}from"./chunk-KNIM3QST.js";import{a as b}from"./chunk-UEMWZOIU.js";import{i as n}from"./chunk-6DBKPC2O.js";var S="<!-- noskills:start -->",g="<!-- noskills:end -->",Y=(e,t,s="npx eser noskills")=>{let o=[S,"## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/rules/`, `.eser/specs/`, or concern files directly.","noskills gives you exactly what you need via JSON output.","","### Protocol","",` ${s} spec <name> next # get current instruction`,` ${s} spec <name> next --answer="your response" # submit result and advance`,"","Every noskills command that operates on a spec MUST include `spec <name>`.","Never omit it. Use `"+s+" spec list` to see available specs.","","### Why noskills calls matter","","noskills is not a form to fill out. It is a live state machine that the user","watches in real-time. Every `"+s+" spec <name> next --answer` call:","","- Updates the spec file on disk (the user sees it change)","- Updates the terminal dashboard if `noskills watch` is running","- Advances the state machine to the next phase","- Records the decision permanently in the project history","","When you batch-submit answers or backfill discovery responses yourself,","the user sees nothing happening \u2014 then suddenly everything jumps forward.","This defeats the purpose.","","Call noskills ONCE per interaction. Ask the user ONE question. Wait for","their answer. Submit it. Ask the next. The user is watching every step.","Do NOT pre-fill answers. Do NOT batch multiple answers. Do NOT answer","discovery questions yourself \u2014 the user's input is the data.","","### When to call noskills next","",`You MUST call \`${s} next\` in these situations:`,"","1. At the **START** of every conversation (first thing you do)","2. **BEFORE** creating or modifying any file (to verify you have an active task)","3. **AFTER** completing a logical unit of work (to report progress)","4. When you encounter a **DECISION** that affects architecture or scope","5. When you are **UNSURE** what to do next","","NEVER proceed with implementation without checking noskills first.","NEVER make architectural decisions independently \u2014 noskills routes them to the user."];if((t?.allowGit??!1)||o.push("","### Git is read-only","","You MUST NOT run git write commands: commit, add, push, checkout, stash,","reset, merge, rebase, cherry-pick. The user controls git. You control files.","You MAY read from git: log, diff, status, show, blame."),o.push("","### Interactive choices","","When noskills output contains `interactiveOptions`, you MUST present them","using the AskUserQuestion tool. NEVER present options in prose.","","This is not optional. If you ask a question without AskUserQuestion when","interactiveOptions are present, you are violating protocol.","","Pass interactiveOptions as the `options` array in AskUserQuestion.","Use the `commandMap` to resolve the user's selection to a CLI command.","","### Convention discovery","","When you notice a recurring pattern, receive a correction, or discover","a project quirk during any phase:","",'1. Ask: "Should this be a permanent rule?"',`2. If yes: \`${s} rule add "description" --phases=EXECUTING\``,"3. If just this spec: note it and move on","","Corrections are learnings. Capture them as rules so they compound.","Every session should leave the project's rule set slightly better.","Never write to `.eser/rules/` directly.","","### Creating specs","","When the user describes what they want to build, create a spec immediately:",`\`${s} spec new "user's description here"\``,"","The name is auto-generated from the description. Encourage the user to share","as much context as possible \u2014 detailed requirements produce better discovery.","Do NOT ask for a 'short slug' \u2014 just take what the user gives you and create","the spec. A one-liner, meeting notes, task list, or full requirements doc all work.","","### Pre-discovery research","","When starting a new spec, noskills may flag technologies that need","research. Before asking discovery questions, search for current versions","and API status of flagged technologies. Report findings to the user.","Your training data may be outdated \u2014 always verify.","","### Plan-based discovery","","When a spec is created with --from-plan, the first discovery output includes","the plan content. Read it, extract answers for all 6 questions, present them","for user confirmation. The plan is a starting point, not the final answer.","","### Discovery modes","","noskills offers 5 discovery modes selected at the start of each spec:","- full: Standard 6 questions (default)","- validate: Challenge the user's existing plan","- technical-depth: Focus on architecture and integration","- ship-fast: Minimum viable scope","- explore: Think bigger, find opportunities","","### Premise challenge","","After mode selection, challenge 2-4 premises from the spec description.","Present each premise for the user to agree/disagree. Submit as JSON.","","### Alternatives generation","","Before spec draft, propose 2-3 implementation approaches.","User picks one or skips. The selected approach shapes the spec.","","### AI slop prevention","","When implementing UI, avoid these generic AI-generated patterns:","- 3-column grids with icon circles (the most recognizable AI layout)","- Purple gradients, decorative blobs, wavy dividers","- Everything centered, uniform border-radius everywhere",'- Generic hero copy ("Welcome to...", "Unlock the power of...")',"- Cookie-cutter section rhythm","","Every UI element must feel intentional, not generated. If it looks like","every other AI-built site, iterate until it doesn't.","","### Spec splitting","","When noskills suggests splitting a spec, present the options and wait for the","user's decision. Never split a spec without explicit user approval.","","### Decision principle: Explicit > Clever","","You NEVER skip steps, bypass questions, or make assumptions on behalf of the user.","- Discovery questions \u2192 ask the user, don't answer yourself","- Classification \u2192 ask the user, don't infer","- Spec approval \u2192 ask the user, don't auto-approve","- Task refinement \u2192 ask the user, don't self-assign","- Rule promotion \u2192 ask the user, don't decide",`If you think something can be skipped, ASK "would you like to skip this?" \u2014 don't skip it.`,"","### Command execution","","When told to run a noskills command, execute it IMMEDIATELY. Do not explore,","research, read source code, or plan first. The command output contains all the","context you need. Exploring noskills internals wastes tokens and delays the user.","","### JSON output","","noskills returns JSON with a `phase` field and phase-specific instructions.","The `meta` block contains resume context - use it to orient yourself,","especially after compaction or at the start of a new session.","Follow the `instruction` field. Use `transition` commands to advance state.","","### Phase progress","","Every noskills output includes a roadmap showing the current phase.","Display it to the user. At critical transitions (approve, start execution),","noskills shows a gate with an explicit action. Present these prominently.","","### Code quality rules","","These rules apply during spec execution:","- After every file edit, run type-check and lint before reporting success","- Files over 500 LOC: read in chunks, never assume single read = full file","- If search returns few results, re-run narrower \u2014 assume truncation","- Re-read every file before and after editing","- Before refactoring large files, clean dead code first (separate commit)","","### Execution commitment","","Once a spec enters EXECUTING, complete it. Do not suggest mid-execution",'checkpoints, pauses, or "should we stop here?" questions.',"","noskills encourages small, meaningful specs defined during discovery.","If a spec is well-scoped, there is no reason to stop halfway \u2014 half-done","delivers nothing. If it feels too large mid-execution, that means","discovery should have split it. Finish this one, improve the next."),e.length>0){o.push("","### Active Rules","");for(let i of e)o.push(`- ${i}`)}return o.push(g),o.join(`
|
|
3
3
|
`)},x=async(e,t,s,o="npx eser noskills")=>{let i=`${e}/CLAUDE.md`,r=Y(t,s,o),a;try{a=await n.fs.readTextFile(i);let c=a.indexOf(S),l=a.indexOf(g);c!==-1&&l!==-1?a=a.slice(0,c)+r+a.slice(l+g.length):a=a.trimEnd()+`
|
|
4
4
|
|
|
5
5
|
`+r+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as t}from"./chunk-
|
|
2
|
+
import{a as t}from"./chunk-MGNBNMJZ.js";var n=t({name:"validate-line-endings",description:"Normalize line endings to LF",canFix:!0,stacks:[],defaults:{},checkFile(i,e){return e===void 0?[]:e.includes("\r")?[{path:i.path,message:"file contains CRLF or CR line endings"}]:[]},fixFile(i,e){let r=e.replace(/\r\n/g,`
|
|
3
3
|
`).replace(/\r/g,`
|
|
4
4
|
`);if(r!==e)return{path:i.path,oldContent:e,newContent:r}}}),s=n.run,d=n.validator,p=n.main;export{n as a,s as b,d as c,p as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as e}from"./chunk-NMEPQK3T.js";var i=new e({description:"AI provider interface \u2014 ask questions, generate content",modules:{ask:{description:"Send a prompt to an AI provider",load:()=>import("./ask-
|
|
2
|
+
import{a as e}from"./chunk-NMEPQK3T.js";var i=new e({description:"AI provider interface \u2014 ask questions, generate content",modules:{ask:{description:"Send a prompt to an AI provider",load:()=>import("./ask-6DWHUCLO.js")},list:{description:"List available AI providers",load:()=>import("./list-COFD6OUQ.js")}}});export{i as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as b,b as w,d as F,f as D}from"./chunk-
|
|
2
|
+
import{a as b,b as w,d as F,f as D}from"./chunk-HTC2FO4I.js";import{a as C}from"./chunk-LFNUSULJ.js";import{b as h}from"./chunk-JTSRGXS4.js";import{f as R}from"./chunk-P2MUEKFT.js";import{b as l,f as m,g as k,h as A,i as g}from"./chunk-YVN2NZL4.js";import{g as d}from"./chunk-FFWPJP7A.js";var x=(e,r)=>{let o={},t=e.length;for(let s=0;s<t;s++){let n=e[s],a=r(n);o[a]===void 0?o[a]=[n]:o[a].push(n)}return o};var u=h(),P=(e,r)=>e===r?!0:typeof e!=typeof r||typeof e!="object"||e===null||r===null?!1:JSON.stringify(e)===JSON.stringify(r),O=(e,r)=>e[r],j=e=>e.startsWith("npm:@jsr/"),B=e=>{let r=e.slice(9),o=r.indexOf("__");if(o===-1)throw new Error(`Invalid npm JSR format: ${e}`);let t=r.slice(0,o),s=r.slice(o+2),n=s.indexOf("@"),a,p;return n===-1?(a=s,p=""):(a=s.slice(0,n),p=s.slice(n)),`jsr:@${t}/${a}${p}`},_=(e,r)=>j(r)?B(r):r.startsWith("npm:")?r:`npm:${e}@${r}`,S=e=>e==="workspace:*"||e.startsWith("workspace:"),M=(e,r,o)=>{let t=[],s=r.dependencies??{},n=r.devDependencies??{},a={...s,...n},p=o.imports??{};for(let[y,c]of Object.entries(a)){if(S(c))continue;let f=_(y,c),i=p[y];i===void 0?t.push({packageName:e,dependencyName:y,issue:"missing_in_deno",expected:f}):i!==f&&t.push({packageName:e,dependencyName:y,issue:"version_mismatch",expected:f,actual:i})}for(let[y,c]of Object.entries(p))a[y]===void 0&&t.push({packageName:e,dependencyName:y,issue:"missing_in_package",actual:p[y]});return t},G=async(e,r)=>{let o=[],t=[],s=await w({baseDir:e,includeFiles:[b.DenoJson,b.PackageJson]}),n=s._loadedFiles.find(c=>c.fileType===b.DenoJson),a=s._loadedFiles.find(c=>c.fileType===b.PackageJson);if(n===void 0||a===void 0)return{inconsistencies:[],dependencyInconsistencies:[]};let p=["name","version","exports"];for(let c of p){let f=O(n.content,c),i=O(a.content,c);f===void 0||i===void 0||P(f,i)||o.push({packageName:r,field:c,denoValue:f,packageValue:i})}let y=M(r,a.content,n.content);return t.push(...y),{inconsistencies:o,dependencyInconsistencies:t}},K=async(e={})=>{let{root:r=".",failFast:o=!1}=e,[t,s]=await D(r),n=[],a=[],p=0;for(let c of s){let f=F(c.config);try{let i=await G(f,c.name);if(p++,i.inconsistencies.length>0&&n.push(...i.inconsistencies),i.dependencyInconsistencies.length>0&&a.push(...i.dependencyInconsistencies),o&&(i.inconsistencies.length>0||i.dependencyInconsistencies.length>0))return{isConsistent:!1,inconsistencies:n,dependencyInconsistencies:a,packagesChecked:p}}catch{continue}}return{isConsistent:!(n.length>0||a.length>0),inconsistencies:n,dependencyInconsistencies:a,packagesChecked:p}},v=e=>typeof e=="string"?`"${e}"`:JSON.stringify(e,null,2),H=e=>{switch(e.issue){case"missing_in_deno":return`Missing in deno.json imports. Expected: ${e.expected}`;case"missing_in_package":return`Extra in deno.json imports (not in package.json): ${e.actual}`;case"version_mismatch":return`Version mismatch. Expected: ${e.expected}, Actual: ${e.actual}`}},L=e=>R.fromPromise(()=>K(e)),$=e=>d.ok({root:"."}),N=e=>{if(d.isFail(e))return u.writeln(m("\u2717"),l(" "+String(e.error))),d.fail({exitCode:1});let{value:r}=e;if(u.writeln(g("\u2139"),l(` Checked ${r.packagesChecked} packages.`)),!r.isConsistent){if(r.inconsistencies.length>0){u.writeln(m("\u2717"),l(` Found ${r.inconsistencies.length} field inconsistencies:`));let o=x(r.inconsistencies,t=>t.packageName);for(let[t,s]of Object.entries(o)){u.writeln(A("\u26A0"),l(" "+t));for(let n of s)u.writeln(m("\u2717"),l(` ${n.field} mismatch:`)),u.writeln(g("\u2139"),l(` deno.json: ${v(n.denoValue)}`)),u.writeln(g("\u2139"),l(` package.json: ${v(n.packageValue)}`))}}if(r.dependencyInconsistencies.length>0){u.writeln(m("\u2717"),l(` Found ${r.dependencyInconsistencies.length} dependency inconsistencies:`));let o=x(r.dependencyInconsistencies,t=>t.packageName);for(let[t,s]of Object.entries(o)){u.writeln(A("\u26A0"),l(" "+t));for(let n of s)u.writeln(m("\u2717"),l(` ${n.dependencyName}:`)),u.writeln(g("\u2139"),l(` ${H(n)}`))}}return d.fail({exitCode:1})}return u.writeln(k("\u2713"),l(" All package configs are consistent.")),d.ok(void 0)},J=C.createTrigger({handler:L,adaptInput:$,adaptOutput:N}),qn=async e=>await J({command:"validate-package-configs",args:[],flags:{}});export{K as a,L as b,J as c,qn as d};
|