eser 4.1.48 → 4.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/chunks/approve-HF44PKLL.js +2 -0
  2. package/chunks/block-F7S7PYMQ.js +2 -0
  3. package/chunks/{build-DPBRNANI.js → build-Y4OQZN3X.js} +1 -1
  4. package/chunks/cancel-Q6LMMZBV.js +2 -0
  5. package/chunks/{changelog-gen-627BV77Z.js → changelog-gen-LMXK5T7J.js} +1 -1
  6. package/chunks/{chunk-TZDEJTLC.js → chunk-2DAFGT4S.js} +1 -1
  7. package/chunks/{chunk-R4GKIRAI.js → chunk-3MMV2UHT.js} +1 -1
  8. package/chunks/{chunk-JFKHBLJB.js → chunk-3PZVRB75.js} +1 -1
  9. package/chunks/{chunk-73IMECRI.js → chunk-3SBAWBWS.js} +1 -1
  10. package/chunks/{chunk-ULIMXXRY.js → chunk-3TS5IRPD.js} +1 -1
  11. package/chunks/{chunk-7KFSTOXR.js → chunk-3VZXRI4F.js} +1 -1
  12. package/chunks/{chunk-7NKYCWAA.js → chunk-43E7ZXUB.js} +1 -1
  13. package/chunks/chunk-4NNSMDFH.js +2 -0
  14. package/chunks/chunk-4TTJVJEI.js +2 -0
  15. package/chunks/{chunk-R3UCRXDC.js → chunk-AWMLF355.js} +1 -1
  16. package/chunks/{chunk-LYPDFFKK.js → chunk-C6URCXQM.js} +1 -1
  17. package/chunks/{chunk-H6P3EACV.js → chunk-D43XK3L2.js} +1 -1
  18. package/chunks/{chunk-OLHBVIWG.js → chunk-DYMKE4R3.js} +1 -1
  19. package/chunks/{chunk-UGYRUVUH.js → chunk-FFEFO7MA.js} +1 -1
  20. package/chunks/{chunk-YKEVDAWS.js → chunk-FQY3JLY2.js} +1 -1
  21. package/chunks/chunk-FXDWRGGR.js +2 -0
  22. package/chunks/{chunk-ATYDQCCJ.js → chunk-HVQK35SO.js} +1 -1
  23. package/chunks/{chunk-DLBRD3UT.js → chunk-JMGANJGV.js} +1 -1
  24. package/chunks/{chunk-O325ZU5M.js → chunk-JTSRGXS4.js} +1 -1
  25. package/chunks/{chunk-RHVDIXOM.js → chunk-K7TY7247.js} +1 -1
  26. package/chunks/chunk-L32KHQVT.js +3 -0
  27. package/chunks/{chunk-2LF7QSIN.js → chunk-L7ROACZC.js} +8 -8
  28. package/chunks/{chunk-2YTW3JQ6.js → chunk-LYM57LLM.js} +1 -1
  29. package/chunks/{chunk-WI2RW3YL.js → chunk-PHOYLFXC.js} +1 -1
  30. package/chunks/{chunk-MW3RJU6I.js → chunk-Q56M5KDF.js} +1 -1
  31. package/chunks/{chunk-J5HFD7AQ.js → chunk-Q66KA572.js} +1 -1
  32. package/chunks/chunk-RBQ2FOSL.js +17 -0
  33. package/chunks/chunk-RBU3HF66.js +10 -0
  34. package/chunks/{chunk-TFRONHJA.js → chunk-RSYERFWM.js} +1 -1
  35. package/chunks/{chunk-5JV6KQMP.js → chunk-SNWQNMGD.js} +1 -1
  36. package/chunks/{chunk-JO4JKJ7R.js → chunk-TDIR6AUJ.js} +1 -1
  37. package/chunks/{chunk-C7NZBKCW.js → chunk-U25GY4AZ.js} +1 -1
  38. package/chunks/chunk-U34MRDPH.js +4 -0
  39. package/chunks/{chunk-CVDLYIOW.js → chunk-XBCL25QR.js} +1 -1
  40. package/chunks/{chunk-DM6U63HP.js → chunk-XFCBVUI7.js} +1 -1
  41. package/chunks/{chunk-XUV7CW3L.js → chunk-XVH5L5HY.js} +1 -1
  42. package/chunks/{chunk-4LQG2WOJ.js → chunk-YVKPHSJX.js} +1 -1
  43. package/chunks/{concern-I6LCWEIC.js → concern-7ZK3KY54.js} +1 -1
  44. package/chunks/config-O3OOS5BQ.js +2 -0
  45. package/chunks/{dev-JM7NU24M.js → dev-XHMBUBQE.js} +1 -1
  46. package/chunks/done-FQQYM27R.js +2 -0
  47. package/chunks/{free-5NMWMMYS.js → free-XOGOSVEQ.js} +1 -1
  48. package/chunks/{gh-DJ2YTDQX.js → gh-AWX6I7FO.js} +2 -2
  49. package/chunks/{gh-contributors-SXUFX3SO.js → gh-contributors-EDZTKR5E.js} +1 -1
  50. package/chunks/{init-M3P2QCX2.js → init-3HE3P3N3.js} +1 -1
  51. package/chunks/invoke-hook-EIOZ5WSA.js +12 -0
  52. package/chunks/{main-JAGIKKVD.js → main-NCAKIBQC.js} +1 -1
  53. package/chunks/manager-GC34GK44.js +7 -0
  54. package/chunks/{mod-QCXWBSGJ.js → mod-52TIS344.js} +1 -1
  55. package/chunks/{mod-2WMXZZGJ.js → mod-DFDEWFDA.js} +1 -1
  56. package/chunks/next-2LOPGEJO.js +9 -0
  57. package/chunks/{pack-7TGKWDRO.js → pack-B5VXZEW7.js} +1 -1
  58. package/chunks/{purge-IKPQWHBC.js → purge-Q3FI3S5M.js} +1 -1
  59. package/chunks/{release-SEKFNXRA.js → release-4VI2Y2ZT.js} +2 -2
  60. package/chunks/{release-notes-UUCPVHBQ.js → release-notes-2ZYPZ6TK.js} +1 -1
  61. package/chunks/{release-tag-F4B6ICW4.js → release-tag-SG4WPYDZ.js} +1 -1
  62. package/chunks/reopen-6FB7DVV2.js +2 -0
  63. package/chunks/{reset-BJZ263XC.js → reset-T4YMGQPV.js} +1 -1
  64. package/chunks/{rule-PQ6WRV5W.js → rule-EJKPIOLE.js} +1 -1
  65. package/chunks/run-BV6BHCCQ.js +4 -0
  66. package/chunks/{serve-OGJIE344.js → serve-5MTJLRIN.js} +1 -1
  67. package/chunks/{session-CFDY73RJ.js → session-3HOLYHOY.js} +1 -1
  68. package/chunks/spec-3P3HJT27.js +2 -0
  69. package/chunks/status-6XVLXNA5.js +2 -0
  70. package/chunks/{sync-N5STAT6M.js → sync-EEH6563X.js} +1 -1
  71. package/chunks/{system-6GEEPUXD.js → system-JBGO2IFD.js} +1 -1
  72. package/chunks/{system-3236RFTI.js → system-QDBQLRO6.js} +1 -1
  73. package/chunks/{validate-bom-ME2NQAP3.js → validate-bom-XTZYCKGP.js} +1 -1
  74. package/chunks/{validate-case-conflict-QUNIB43P.js → validate-case-conflict-CQIPKKHY.js} +1 -1
  75. package/chunks/{validate-circular-deps-DLUCIW7T.js → validate-circular-deps-Y6X6GZCG.js} +1 -1
  76. package/chunks/{validate-commit-msg-SRLJRTKU.js → validate-commit-msg-MXTBUPTC.js} +1 -1
  77. package/chunks/{validate-docs-43LWHLVW.js → validate-docs-ZOHUOW3I.js} +1 -1
  78. package/chunks/{validate-filenames-WNLZI2S6.js → validate-eof-4I2QAFTC.js} +1 -1
  79. package/chunks/{validate-export-names-D5I5DZTN.js → validate-export-names-7V3647EU.js} +1 -1
  80. package/chunks/{validate-eof-RV3IK6ZM.js → validate-filenames-6E634ZHO.js} +1 -1
  81. package/chunks/{validate-json-6KIMBNBJ.js → validate-json-LRWPQ4JX.js} +1 -1
  82. package/chunks/validate-large-files-RV7O7ZUR.js +2 -0
  83. package/chunks/validate-licenses-KHDUSBXM.js +2 -0
  84. package/chunks/validate-line-endings-XOCAE22U.js +2 -0
  85. package/chunks/validate-merge-conflict-PDJRAIKU.js +2 -0
  86. package/chunks/{validate-mod-exports-VCV4VZ5F.js → validate-mod-exports-Y6W74PAB.js} +1 -1
  87. package/chunks/{validate-package-configs-6PGL2YGD.js → validate-package-configs-VVCKJELU.js} +1 -1
  88. package/chunks/validate-secrets-UI5XKJ6B.js +2 -0
  89. package/chunks/validate-shebangs-GE23Z6NU.js +2 -0
  90. package/chunks/validate-submodules-R5JKX3Z6.js +2 -0
  91. package/chunks/validate-symlinks-WBF6VHHT.js +2 -0
  92. package/chunks/{validate-toml-PV3G7EFD.js → validate-toml-FNXGITZJ.js} +1 -1
  93. package/chunks/validate-trailing-whitespace-UCMQTQ3B.js +2 -0
  94. package/chunks/{validate-yaml-IOMFQTSQ.js → validate-yaml-YRAD4HU3.js} +1 -1
  95. package/chunks/{versions-ROLQITT5.js → versions-LJSQVW77.js} +1 -1
  96. package/chunks/{watch-4NXY7JEX.js → watch-N3KV2ONB.js} +1 -1
  97. package/chunks/wontfix-MJJ2LK6J.js +2 -0
  98. package/eser.js +1 -1
  99. package/package.json +1 -1
  100. package/chunks/approve-UWBYGXCF.js +0 -2
  101. package/chunks/block-W76WKMS3.js +0 -2
  102. package/chunks/cancel-46C7E5N7.js +0 -2
  103. package/chunks/chunk-2HSGE3TL.js +0 -2
  104. package/chunks/chunk-DPZJWN2Y.js +0 -2
  105. package/chunks/chunk-TMMAF763.js +0 -10
  106. package/chunks/chunk-WZHVKEPB.js +0 -17
  107. package/chunks/chunk-XOMPQOI6.js +0 -4
  108. package/chunks/chunk-YACXTCWF.js +0 -2
  109. package/chunks/done-A5VWIFOF.js +0 -2
  110. package/chunks/invoke-hook-6BKTP2JY.js +0 -12
  111. package/chunks/manager-GN6J4AUV.js +0 -7
  112. package/chunks/next-TIUOHHFS.js +0 -9
  113. package/chunks/reopen-G4IUIH73.js +0 -2
  114. package/chunks/run-Y4ESAQUK.js +0 -4
  115. package/chunks/spec-CYRR2XUA.js +0 -2
  116. package/chunks/status-ZE2SA6FP.js +0 -2
  117. package/chunks/validate-large-files-UXP7AZCW.js +0 -2
  118. package/chunks/validate-licenses-BL6PNSBP.js +0 -2
  119. package/chunks/validate-line-endings-NYHXORRG.js +0 -2
  120. package/chunks/validate-merge-conflict-IWUP4ZMW.js +0 -2
  121. package/chunks/validate-secrets-JV4ZSOVR.js +0 -2
  122. package/chunks/validate-shebangs-YACNWUG7.js +0 -2
  123. package/chunks/validate-submodules-ZXID3VEK.js +0 -2
  124. package/chunks/validate-symlinks-QNMKPYUY.js +0 -2
  125. package/chunks/validate-trailing-whitespace-5Q5SEHOD.js +0 -2
  126. package/chunks/wontfix-YSXRDPKA.js +0 -2
@@ -1,9 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a as fe}from"./chunk-NTY267SI.js";import"./chunk-L5OC7F24.js";import{a as le,b as de,c as pe,d as G}from"./chunk-WZHVKEPB.js";import{a as Q}from"./chunk-NY4W44PI.js";import"./chunk-2HSGE3TL.js";import{a as ue,b as me,d as v}from"./chunk-2ZYCRMUT.js";import{a as z,b as K,d as Y}from"./chunk-2LF7QSIN.js";import{a as Ie}from"./chunk-XOMPQOI6.js";import{a as q}from"./chunk-IZUADMIU.js";import{a as xe,b as Ce,c as De,d as Re}from"./chunk-7NKYCWAA.js";import{a as ge,b as he,e as k,f as B,g as X,h as Se,i as we,k as ve,m as Z,n as ye}from"./chunk-DPZJWN2Y.js";import{a as te,c as F,e as se,f as ne,i as ie,j as re,k as oe,o as ae,q as U,v as H,z as ce}from"./chunk-TMMAF763.js";import{c as j}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{a as J,b as D}from"./chunk-FFWPJP7A.js";import{i as h}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var Fe=o=>o.split(`
3
- `).map(e=>e.replace(/^[-*]\s+/,"").trim()).filter(e=>e.length>0&&!e.startsWith("#")),ke=async(o,e)=>{let r=[],i=(e.startsWith(o)?e.slice(o.length+1):e).split("/");i.pop();for(let t=i.length;t>=0;t--){let n=`${t===0?o:`${o}/${i.slice(0,t).join("/")}`}/.folder-rules.md`,a=t===0?".":i.slice(0,t).join("/");try{let l=await h.fs.readTextFile(n),u=Fe(l);for(let p of u)r.push({folder:a,rule:p})}catch{}}return r},ee=async(o,e)=>{let r=new Set,c=[];for(let i of e){let t=await ke(o,i);for(let s of t){let n=`${s.folder}::${s.rule}`;r.has(n)||(r.add(n),c.push(s))}}return c};var Ze=async o=>{let e=h.process.cwd(),r=ue(o),c=me(o);if(!await ce(e))return await v({error:`noskills not initialized. Run: ${j("init")}`},r),D({exitCode:1});let i=null;for(let m of c)m.startsWith("--answer=")&&(i=m.slice(9));let t=ne(c),s;try{s=await se(e,t)}catch(m){let d=m instanceof Error?m.message:String(m);return await v({error:d},r),D({exitCode:1})}if(t===null&&s.phase!=="IDLE"&&s.phase!=="FREE"&&s.phase!=="COMPLETED")return await v({error:"Error: --spec=<name> is required. Use `noskills spec list` to see available specs."},r),D({exitCode:1});let n=await oe(e);if(n?.command!==void 0){let{setCommandPrefix:m}=await import("./cmd-QE4P4DS4.js");m(n.command)}if(n===null)return await v({error:"No config found"},r),D({exitCode:1});if(s.spec!==null&&s.phase!=="IDLE"&&s.phase!=="COMPLETED"){let m=`${e}/${F.specDir(s.spec)}`;try{await h.fs.stat(m)}catch{return await v({error:!0,message:`Active spec '${s.spec}' directory not found. Files may have been deleted manually.`,suggestion:`Run \`${j("reset")}\` to return to IDLE, or \`${j("cancel")}\` to mark as cancelled.`},r),D({exitCode:1})}}let a=fe(c,n);s.phase==="DISCOVERY"&&s.discovery.audience!==a&&(s={...s,discovery:{...s.discovery,audience:a}});let u=(await ae(e)).filter(m=>n.concerns.includes(m.id));if(i!==null){let m=await Ae(e,s,n,u,i);await U(e,m);let d={...m,lastCalledAt:new Date().toISOString()};await U(e,d);let b=h.env.get("NOSKILLS_SESSION")??null;b!==null&&await H(e,b,d.phase);let C=await z(e),E=K(C,d.phase),_=d.spec!==null?await q(e,d.spec):null,O=await be(e,d),T=await ee(e,O),f=Y(n?.tools??[]),S=G(d,u,E,n,_,T,void 0,f);return await v(S,r),J(void 0)}let p={...s,lastCalledAt:new Date().toISOString()};await U(e,p);let x=h.env.get("NOSKILLS_SESSION")??null;x!==null&&await H(e,x,p.phase);let y=await z(e),P=K(y,p.phase),M=p.spec!==null?await q(e,p.spec):null,V=await be(e,p),A=await ee(e,V),R;p.phase==="IDLE"&&(R={existingSpecs:(await re(e)).map(d=>({name:d.name,phase:d.state.phase,iteration:d.state.execution.iteration,detail:d.state.phase==="EXECUTING"?`${d.state.execution.completedTasks.length} tasks done, iteration ${d.state.execution.iteration}`:d.state.phase==="SPEC_DRAFT"?"awaiting approval":d.state.phase==="COMPLETED"?"completed":void 0})),rulesCount:P.length});let W=Y(n?.tools??[]),$=G(p,u,P,n,M,A,R,W);return await v($,r),J(void 0)},Ae=async(o,e,r,c,i)=>{switch(e.phase){case"DISCOVERY":{let t=e.discovery.audience==="agent",s=null;try{let a=JSON.parse(i);typeof a=="object"&&a!==null&&!Array.isArray(a)&&(t?le.map(p=>p.id).every(p=>p in a)&&(s=a):s=a)}catch{}let n=e;if(s!==null)for(let[a,l]of Object.entries(s))typeof l=="string"&&l.length>0&&(n=k(n,a,l));else{let a=de(c),l=n.discovery.currentQuestion,u=a[l];if(u===void 0)return e;n=k(n,u.id,i),n=we(n)}return pe(n.discovery.answers)&&(n=B(n)),n}case"DISCOVERY_REVIEW":{let t=i.trim().toLowerCase();if(t==="approve"){let s=Q(e.discovery.answers);return s.detected&&s.proposals.length>=2?Se(e):X(e)}if(t==="split")return await $e(o,e);if(t==="keep"){let s=Z(e,{id:`decision-split-keep-${Date.now()}`,question:"Split spec into separate areas?",choice:"Chose to keep as single spec despite multiple areas detected",promoted:!1,timestamp:new Date().toISOString()});return X(s)}try{let s=JSON.parse(i);if(typeof s.revise=="object"&&s.revise!==null){let n=e;for(let[a,l]of Object.entries(s.revise))typeof l=="string"&&l.length>0&&(n=k(n,a,l));return n}}catch{}return e}case"SPEC_DRAFT":{if(e.classification===null){let t,s=i.trim().toLowerCase();if(s==="none"||s==="skip")t={involvesWebUI:!1,involvesCLI:!1,involvesPublicAPI:!1,involvesMigration:!1,involvesDataHandling:!1};else try{let a=JSON.parse(i);t={involvesWebUI:a.involvesWebUI===!0||a.involvesUI===!0,involvesCLI:a.involvesCLI===!0||a.involvesUI===!0,involvesPublicAPI:a.involvesPublicAPI===!0,involvesMigration:a.involvesMigration===!0,involvesDataHandling:a.involvesDataHandling===!0}}catch{t={involvesWebUI:!1,involvesCLI:!1,involvesPublicAPI:!1,involvesMigration:!1,involvesDataHandling:!1}}let n={...e,classification:t};try{await Ie(o,n,c)}catch{}return n}try{let t=JSON.parse(i);if(typeof t.refinement=="string"&&t.refinement.length>0){let s=t.refinement;if(e.spec!==null){let n=`${o}/${F.specFile(e.spec)}`,a=await h.fs.readTextFile(n);if(s.includes("task-")){let u=Oe(s).map(y=>`- [ ] ${y}`).join(`
4
- `),p=/## Tasks\n\n([\s\S]*?)(?=\n## |\n*$)/,x=a.replace(p,`## Tasks
5
-
6
- ${u}
7
- `);await h.fs.writeTextFile(n,x)}}return e}}catch{}return e}case"SPEC_APPROVED":{let t=ve(e);return t.spec!==null&&(await xe(o,t.spec,"executing"),await Re(o,t.spec,"executing")),t}case"EXECUTING":{if(!e.execution.awaitingStatusReport){let t={...e,execution:{...e.execution,lastProgress:i}};if(r.verifyCommand!==null&&r.verifyCommand!==void 0&&r.verifyCommand.length>0){let s=await Le(o,r.verifyCommand);if(t={...t,execution:{...t.execution,lastVerification:s}},!s.passed)return t}return t={...t,execution:{...t.execution,awaitingStatusReport:!0}},t}return await Te(o,e,i,c)}case"BLOCKED":{let t=e.execution.lastProgress??"Unknown",s={id:`d${e.decisions.length+1}`,question:t.replace(/^BLOCKED:\s*/,""),choice:i,promoted:!1,timestamp:new Date().toISOString()},n=Z(e,s);return n=ge(n,"EXECUTING"),n={...n,execution:{...n.execution,lastProgress:`Resolved: ${i}`}},n}default:return e}},$e=async(o,e)=>{let r=Q(e.discovery.answers);if(!r.detected||r.proposals.length===0)return e;let c=[];for(let t of r.proposals){let s=`${o}/${F.specDir(t.name)}`;await h.fs.mkdir(s,{recursive:!0});let n=e.discovery.answers.filter(u=>t.relevantAnswers.includes(u.questionId)),l=he(te(),t.name,`spec/${t.name}`);for(let u of n)l=k(l,u.questionId,u.answer);l=B(l),await ie(o,t.name,l),c.push(t.name)}return ye(e,"cancelled",`Split into: ${c.join(", ")}`)},Oe=o=>o.split(/(?=task-\d+:)/).map(e=>e.replace(/[,;\n\s]+$/,"").trim()).filter(e=>/^task-\d+:/.test(e)),Te=async(o,e,r,c)=>{let i;try{i=JSON.parse(r)}catch{return{...e,execution:{...e.execution,lastProgress:r,awaitingStatusReport:!1}}}let t=e;if(e.execution.debt!==null&&e.execution.debt.items.length>0&&typeof e.execution.debt.items[0]=="string"){let S=e.execution.debt.items.map((w,g)=>({id:`legacy-${g+1}`,text:w,since:e.execution.debt.fromIteration}));t={...e,execution:{...e.execution,debt:{...e.execution.debt,items:S}}};let L=new TextEncoder,I=h.process.stderr.getWriter();await I.write(L.encode(`noskills: migrated legacy string[] debt to DebtItem[] format
8
- `)),I.releaseLock()}let s=new Set(["mandatory-tests","mandatory-docs"]),a=(i.na??[]).filter(f=>s.has(f));if(a.length>0)return{...t,execution:{...t.execution,lastProgress:`REJECTED: Tests and documentation ACs require explicit justification to mark as N/A. Explain why tests or docs are not needed for this spec. Rejected IDs: ${a.join(", ")}`,awaitingStatusReport:!0}};let l=i.completed??[],u=new Set(l),p=i.na??[],x=new Set(p),y=i.newIssues??[],P=i.remaining??[],M=i.blocked??[],V=t.execution.debt?.unaddressedIterations??0,A=t.execution.debt!==null?t.execution.debt.items.filter(f=>!u.has(f.id)&&!x.has(f.id)):[],R=t.execution.debtCounter??0,W=y.map((f,S)=>({id:`debt-${R+S+1}`,text:f,since:t.execution.iteration})),$=[...A,...W],d=P.length===0&&M.length===0&&y.length===0||$.length===0?null:{items:$,fromIteration:t.execution.debt?.fromIteration??t.execution.iteration,unaddressedIterations:A.length>0?V+1:1},b=[...new Set([...t.execution.naItems??[],...p])],C=[];l.length>0&&C.push(`Completed: ${l.join(", ")}`),p.length>0&&C.push(`N/A: ${p.join(", ")}`);let E=C.length>0?C.join("; "):"Status report submitted",_=t.execution.lastVerification===null||t.execution.lastVerification.passed===!0,O=d===null&&_,T=R+y.length;if(O&&t.spec!==null){let f=await q(o,t.spec);if(f!==null){let S=t.execution.completedTasks??[],L=new Set(S),I=[];try{let g=JSON.parse(t.execution.lastProgress??"");Array.isArray(g.completed)&&(I=g.completed.filter(N=>!L.has(N)&&f.tasks.some(Ee=>Ee.id===N)))}catch{}if(I.length===0){let g=f.tasks.find(N=>!L.has(N.id));g!==void 0&&(I=[g.id])}let w=[];for(let g of I)await Ce(o,t.spec,g),await De(o,t.spec,g,"done"),w.push(g);if(w.length>0){let g=w.length===1?`Task ${w[0]} accepted`:`Tasks ${w.join(", ")} accepted`;return{...t,execution:{...t.execution,lastProgress:`${g}: ${E}`,awaitingStatusReport:!1,debt:d,completedTasks:[...S,...w],debtCounter:T,naItems:b}}}}}return{...t,execution:{...t.execution,lastProgress:O?E:`Task not accepted \u2014 remaining items must be addressed first. ${E}`,awaitingStatusReport:!1,debt:d,debtCounter:T,naItems:b}}},Le=async(o,e)=>{try{let{execSync:r}=await import("node:child_process"),c=r(e,{cwd:o,encoding:"utf-8",timeout:6e4,stdio:["pipe","pipe","pipe"]});return{passed:!0,output:String(c).slice(0,4e3),timestamp:new Date().toISOString()}}catch(r){let c=r,i=((c.stdout??"")+(c.stderr??"")).slice(0,4e3);return c.status!==void 0?{passed:!1,output:i||"Verification failed with no output",timestamp:new Date().toISOString()}:{passed:!1,output:`Verification command failed to execute: ${r instanceof Error?r.message:String(r)}`,timestamp:new Date().toISOString()}}},be=async(o,e)=>{let r=[...e.execution.modifiedFiles??[]],c=await Ne(o);return[...new Set([...r,...c])]},Ne=async o=>{let e=`${o}/${F.stateDir}/files-changed.jsonl`;try{let c=(await h.fs.readTextFile(e)).trim().split(`
9
- `).filter(Boolean),i=[];for(let t of c)try{let s=JSON.parse(t);i.includes(s.file)||i.push(s.file)}catch{}return i}catch{return[]}};export{Ae as handleAnswer,Ze as main,Oe as parseRefinementTasks};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{o as y}from"./chunk-DPZJWN2Y.js";import{e as f,g as h,h as S,i as g}from"./chunk-TMMAF763.js";import"./chunk-2XNFZXHY.js";import{f as u,h as d,k as w}from"./chunk-SHN5MT56.js";import{d as l,f as n,g as m}from"./chunk-YVN2NZL4.js";import{a as p,b as t}from"./chunk-FFWPJP7A.js";import{i as c}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var A=async C=>{let e=u({renderer:w.ansi(),sink:d.stdout()}),a=c.process.cwd(),i=h(C);if(!i.ok)return e.writeln(n(i.error)),await e.close(),t({exitCode:1});let s;try{s=await f(a,i.spec)}catch(o){let k=o instanceof Error?o.message:String(o);return e.writeln(n(k)),await e.close(),t({exitCode:1})}if(s.phase!=="COMPLETED")return e.writeln(n(`Cannot reopen in phase: ${s.phase}`)),e.writeln(l("Only COMPLETED specs can be reopened.")),await e.close(),t({exitCode:1});let r=y(s);return await S(a,r),r.spec!==null&&await g(a,r.spec,r),e.writeln(m("\u2714")," Spec reopened. Discovery answers preserved \u2014 run `noskills next` to revise."),await e.close(),p(void 0)};export{A as main};
@@ -1,4 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{d as B}from"./chunk-WZHVKEPB.js";import"./chunk-NY4W44PI.js";import"./chunk-2HSGE3TL.js";import{c as W,d as X}from"./chunk-2LF7QSIN.js";import{a as _,k as j}from"./chunk-DPZJWN2Y.js";import{d as g,e as N,f as U,h as $,k as G,o as L,z as M}from"./chunk-TMMAF763.js";import{b as E,c as V}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{a as D,b as A,g as F}from"./chunk-YACXTCWF.js";import{f as R,h as O,k as T}from"./chunk-SHN5MT56.js";import{c as v,d as o,f as l,g as P,h,k as I}from"./chunk-YVN2NZL4.js";import{a as S,b as w}from"./chunk-FFWPJP7A.js";import{i as y}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var ue=async t=>{let e=R({renderer:T.ansi(),sink:O.stdout()}),i=y.process.cwd(),n=t?.includes("--unattended")??!1,r=z(t,"--max-turns")??10,p=z(t,"--max-iterations")??50;if(!await M(i))return e.writeln(l(`noskills not initialized. Run: ${V("init")}`)),await e.close(),w({exitCode:1});let x=U(t),c=await N(i,x);if(c.phase!=="EXECUTING"&&c.phase!=="SPEC_APPROVED")return e.writeln(l(`Cannot run from phase: ${c.phase}`)),e.writeln(o("Must be in SPEC_APPROVED or EXECUTING to start.")),await e.close(),w({exitCode:1});if(c.phase==="SPEC_APPROVED"){e.writeln(o("Starting execution from approved spec..."));let s=j(c);await $(i,s)}let u=await G(i);if(u===null)return e.writeln(l("Config not found.")),await e.close(),w({exitCode:1});e.writeln(v(`${E()} run`)),e.writeln(o(`Mode: ${n?"unattended":"interactive"}, max-turns: ${r}, max-iterations: ${p}`)),e.writeln("");let m=0,d=0;for(;m<p;){m++;let s=await g(i);if(s.phase==="COMPLETED"){e.writeln(""),e.writeln(P("\u2714")," Spec completed!"),e.writeln(` Iterations: ${s.execution.iteration}`),e.writeln(` Decisions: ${s.decisions.length}`);break}if(s.phase==="BLOCKED"){let a=s.execution.lastProgress??"Unknown";if(e.writeln(""),e.writeln(h("\u26A0")," Execution blocked: ",o(a)),n){await Z(i,a,m),e.writeln(o("Logged to .eser/.state/blocked.log. Resolve and re-run.")),d=1;break}let C=A(),f=await F(C,{message:"Enter resolution (or leave empty to stop):"});if(D(f)||f===""){e.writeln(o("Stopped by user."));break}let k=_(s,"EXECUTING");await $(i,{...k,execution:{...k.execution,lastProgress:`Resolved: ${f}`}});continue}if(s.phase!=="EXECUTING"){e.writeln(l(`Unexpected phase: ${s.phase}. Stopping.`)),d=1;break}let H=(await L(i)).filter(a=>u.concerns.includes(a.id)),q=await W(i),K=X(u.tools),J=B(s,H,q,u,void 0,void 0,void 0,K),Q=Y(J);e.writeln(I(`\u2500\u2500 Iteration ${m}`),o(` (execution: ${s.execution.iteration}, debt: ${s.execution.debt?.items.length??0})`)),s.execution.lastProgress!==null&&e.writeln(o(` Last: ${s.execution.lastProgress}`)),s.execution.lastVerification?.passed===!1&&e.writeln(l(" Verification failed \u2014 agent will fix")),s.execution.debt!==null&&e.writeln(h(` Debt: ${s.execution.debt.items.length} items`)),e.writeln(o(" Spawning agent..."));try{await(await import("./mod-7ICCX4OY.js")).exec`claude -p ${Q} --max-turns ${String(r)} --output-format json`.noThrow().text()}catch{e.writeln(l(" Failed to spawn claude CLI. Is it installed?")),d=1;break}e.writeln(o(" Agent exited. Stop hook captured state."));let b=await g(i);if(u.autoCommit===!0&&u.allowGit!==!1)try{let a=await import("./mod-7ICCX4OY.js");if((await a.exec`git diff --name-only`.noThrow().text()).trim().length>0){await a.exec`git add -A`.noThrow().text();let f=`noskills: iteration ${b.execution.iteration} \u2014 ${b.execution.lastProgress??"progress"}`;await a.exec`git commit -m ${f}`.noThrow().text(),e.writeln(o(" Auto-committed."))}}catch{e.writeln(o(" Auto-commit failed (non-fatal)."))}}return m>=p&&(e.writeln(""),e.writeln(h("\u26A0"),` Max iterations (${p}) reached. Stopping.`),d=2),await e.close(),d!==0?w({exitCode:d}):S(void 0)},Y=t=>{let e=[];if(e.push(t.meta.resumeHint),e.push(""),t.meta.spec!==null&&(e.push(`Working on spec: ${t.meta.spec}`),e.push("")),"instruction"in t&&(e.push(t.instruction),e.push("")),"previousIterationDebt"in t){let n=t.previousIterationDebt;if(n!==void 0){e.push(`DEBT from iteration ${n.fromIteration} (address first):`);for(let r of n.items)e.push(`- ${r}`);e.push("")}}if("statusReportRequired"in t){let n=t.statusReport;if(n!==void 0){e.push("Report against these acceptance criteria:");for(let r of n.criteria)e.push(`- ${r}`);e.push("")}}if("verificationFailed"in t&&t.verificationFailed===!0&&(e.push("Test output:"),e.push(("verificationOutput"in t?t.verificationOutput:"")??""),e.push("")),t.behavioral.rules.length>0){e.push("Rules:");for(let n of t.behavioral.rules)e.push(`- ${n}`);e.push("")}if("context"in t){let n=t.context;if(n.concernReminders.length>0){e.push("Reminders:");for(let r of n.concernReminders)e.push(`- ${r}`);e.push("")}}let i=E();return e.push(`When done, report progress: ${i} next --answer="your progress"`),e.push(`If blocked, run: ${i} block "reason"`),e.push(`When all tasks are complete: ${i} done`),e.join(`
3
- `)},z=(t,e)=>{if(t===void 0)return null;let i=`${e}=`;for(let n of t)if(n.startsWith(i)){let r=parseInt(n.slice(i.length),10);if(!isNaN(r)&&r>0)return r}return null},Z=async(t,e,i)=>{let n=`${t}/.eser/.state/blocked.log`,r=`[${new Date().toISOString()}] iteration=${i} reason=${e}
4
- `;try{let{appendFileSync:p,mkdirSync:x}=await import("node:fs"),{dirname:c}=await import("node:path");x(c(n),{recursive:!0}),p(n,r)}catch{}};export{ue as main};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a as Y}from"./chunk-NY4W44PI.js";import{a as _,d as U}from"./chunk-2ZYCRMUT.js";import{b as A,e as M,f as N,n as F,p as L}from"./chunk-DPZJWN2Y.js";import{a as b,c as g,e as O,f as V,i as v,j as W,z as P}from"./chunk-TMMAF763.js";import{b as E,c as R}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{f as y,h as C,k as $}from"./chunk-SHN5MT56.js";import{c as u,d as a,f as c,g as D,h as z,k as q}from"./chunk-YVN2NZL4.js";import{a as S,b as d}from"./chunk-FFWPJP7A.js";import{i as h}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var j=new Set(["new","list","help","next","approve","done","block","reset","cancel","wontfix","reopen","revisit","split"]),X=new Map([["next",()=>import("./next-TIUOHHFS.js")],["approve",()=>import("./approve-UWBYGXCF.js")],["done",()=>import("./done-A5VWIFOF.js")],["block",()=>import("./block-W76WKMS3.js")],["reset",()=>import("./reset-BJZ263XC.js")],["cancel",()=>import("./cancel-46C7E5N7.js")],["wontfix",()=>import("./wontfix-YSXRDPKA.js")],["reopen",()=>import("./reopen-G4IUIH73.js")]]);var pe=async r=>{let e=r?.[0];if(e==="new")return await B(r?.slice(1));if(e==="list")return await G(r?.slice(1));if(e==="help"||e===void 0){let p=E(),l=y({renderer:$.ansi(),sink:C.stdout()});return l.writeln(`Usage: ${p} spec <new <name> "desc" | list | <name> <command>>`),l.writeln(""),l.writeln(a(" Commands for a spec:")),l.writeln(a(" next, approve, done, block, reset, cancel, wontfix, reopen, revisit, split")),l.writeln(""),l.writeln(a(" Examples:")),l.writeln(a(` ${p} spec new my-feature "Add upload support"`)),l.writeln(a(` ${p} spec my-feature next`)),l.writeln(a(` ${p} spec my-feature next --answer="approve"`)),await l.close(),S(void 0)}let n=e,s=r?.[1];if(s===void 0)return await(await import("./status-ZE2SA6FP.js")).main([`--spec=${n}`]);if(s==="split")return await H([`--spec=${n}`,...r?.slice(2)??[]]);if(s==="revisit")return await J([`--spec=${n}`,...r?.slice(2)??[]]);let i=X.get(s);if(i!==void 0)return await(await i()).main([`--spec=${n}`,...r?.slice(2)??[]]);let o=y({renderer:$.ansi(),sink:C.stdout()});return o.writeln(c(`Unknown command: spec ${n} ${s}`)),o.writeln(a(" Valid: next, approve, done, block, reset, cancel, wontfix, reopen, revisit, split")),await o.close(),d({exitCode:1})},B=async r=>{let e=y({renderer:$.ansi(),sink:C.stdout()}),n=h.process.cwd();if(!await P(n))return e.writeln(c("noskills is not initialized.")," Run: ",u(R("init"))),await e.close(),d({exitCode:1});let s=null,i=[];if(r!==void 0){let m=!1;for(let f of r)f.startsWith("--name=")?(s=f.slice(7),m=!0):f.startsWith("-")||(!m&&s===null?(s=f,m=!0):i.push(f))}let o=i.join(" ");if(s===null||s.length===0)return e.writeln(c("Error: spec name is required.")),e.writeln(a("Example: "),u(`${E()} spec new photo-upload "photo upload feature"`)),await e.close(),d({exitCode:1});if(j.has(s))return e.writeln(c(`"${s}" is a reserved name.`),a(" Choose a different spec name.")),await e.close(),d({exitCode:1});let p=/^[a-z0-9][a-z0-9-]*[a-z0-9]$/;if(s.length>50||s.length>1&&!p.test(s)||s.length===1&&!/^[a-z0-9]$/.test(s))return e.writeln(c("Invalid spec name: "),u(s)),e.writeln(a("Must be lowercase, hyphens, numbers only. Max 50 chars. Regex: /^[a-z0-9][a-z0-9-]*[a-z0-9]$/")),await e.close(),d({exitCode:1});if(o.length===0)return e.writeln(c("Please provide a description: "),u(`${E()} spec new --name=${s} "photo upload feature"`)),await e.close(),d({exitCode:1});let l=`spec/${s}`,t=`${n}/${g.specDir(s)}`;try{return await h.fs.stat(t),e.writeln(c(`Spec "${s}" already exists.`),a(` Use a different --name or run \`${E()} reset --spec=${s}\` first.`)),await e.close(),d({exitCode:1})}catch{}let w=b(),x=A(w,s,l,o);return await h.fs.mkdir(`${n}/${g.specDir(s)}`,{recursive:!0}),await v(n,s,x),e.writeln(D("\u2714")," Spec started: ",u(s)),e.writeln(" Directory: ",a(g.specDir(s))),e.writeln(" Branch: ",a(l)),e.writeln(" Phase: ",z("DISCOVERY")),e.writeln(""),e.writeln("Run ",u(R(`next --spec=${s}`))," to begin discovery questions."),await e.close(),S(void 0)},G=async r=>{let e=h.process.cwd(),n=_(r),s=await W(e),i=`${e}/${g.specsDir}`,o=new Set(s.map(t=>t.name)),p=[];for(let t of s)p.push({name:t.name,phase:t.state.phase,iteration:t.state.execution.iteration});try{for await(let t of h.fs.readDir(i))t.isDirectory&&!o.has(t.name)&&p.push({name:t.name,phase:"IDLE",iteration:0})}catch{}if(n==="json")return await U(p,"json"),S(void 0);let l=y({renderer:$.ansi(),sink:C.stdout()});if(l.writeln(u("Specs")),l.writeln(""),p.length===0)l.writeln(a(" No specs yet."));else for(let t of p){let w=t.phase==="COMPLETED"?D(t.phase):t.phase==="EXECUTING"?q(t.phase):t.phase==="BLOCKED"?c(t.phase):z(t.phase),x=t.phase==="EXECUTING"?a(` iteration ${t.iteration}`):"";l.writeln(" ",a("\u25CB")," ",t.name," ",w,x)}return await l.close(),S(void 0)},K=r=>{let e=[],n=0;for(;n<r.length;)if(r[n]==="--into"&&n+1<r.length){let s=r[n+1],i=s;n+2<r.length&&!r[n+2].startsWith("-")?(i=r[n+2],n+=3):n+=2,e.push({name:s,description:i})}else n+=1;return e},H=async r=>{let e=y({renderer:$.ansi(),sink:C.stdout()}),n=h.process.cwd();if(!await P(n))return e.writeln(c("noskills is not initialized.")," Run: ",u(R("init"))),await e.close(),d({exitCode:1});let s=V(r??[]);if(s===null)return e.writeln(c("Error: --spec=<name> is required.")),e.writeln(a("Example: "),u(`${E()} spec split --spec=parent --into name1 "desc1" --into name2 "desc2"`)),await e.close(),d({exitCode:1});let i;try{i=await O(n,s)}catch(t){let w=t instanceof Error?t.message:String(t);return e.writeln(c(`Error: ${w}`)),await e.close(),d({exitCode:1})}if(i.phase!=="DISCOVERY"&&i.phase!=="DISCOVERY_REVIEW")return e.writeln(c(`Cannot split spec in phase ${i.phase}. Must be in DISCOVERY or DISCOVERY_REVIEW.`)),await e.close(),d({exitCode:1});let o=K(r??[]);if(o.length<2){let t=Y(i.discovery.answers);if(!t.detected||t.proposals.length<2)return e.writeln(c("Error: at least 2 --into entries required, or discovery answers must contain 2+ independent areas.")),await e.close(),d({exitCode:1});let w=[];for(let m of t.proposals){let f=`${n}/${g.specDir(m.name)}`;await h.fs.mkdir(f,{recursive:!0});let T=i.discovery.answers.filter(I=>m.relevantAnswers.includes(I.questionId)),k=A(b(),m.name,`spec/${m.name}`);for(let I of T)k=M(k,I.questionId,I.answer);k=N(k),await v(n,m.name,k),w.push(m.name)}let x=F(i,"cancelled",`Split into: ${w.join(", ")}`);await v(n,s,x),e.writeln(D("Split complete."),` Created ${w.length} sub-specs:`);for(let m of w)e.writeln(" ",a("\u25CB")," ",u(m));return e.writeln("",a(`Parent spec "${s}" cancelled.`)),await e.close(),S(void 0)}let p=[];for(let t of o){let w=`${n}/${g.specDir(t.name)}`;await h.fs.mkdir(w,{recursive:!0});let m=A(b(),t.name,`spec/${t.name}`);for(let f of i.discovery.answers)m=M(m,f.questionId,f.answer);m=N(m),await v(n,t.name,m),p.push(t.name)}let l=F(i,"cancelled",`Split into: ${p.join(", ")}`);await v(n,s,l),e.writeln(D("Split complete."),` Created ${p.length} sub-specs:`);for(let t of p)e.writeln(" ",a("\u25CB")," ",u(t));return e.writeln("",a(`Parent spec "${s}" cancelled.`)),await e.close(),S(void 0)},J=async r=>{let e=y({renderer:$.ansi(),sink:C.stdout()}),n=h.process.cwd();if(!await P(n))return e.writeln(c("noskills is not initialized.")," Run: ",u(R("init"))),await e.close(),d({exitCode:1});let s=V(r??[]);if(s===null)return e.writeln(c("Error: --spec=<name> is required.")),e.writeln(a("Example: "),u(`${E()} spec revisit --spec=my-spec "reason for revisit"`)),await e.close(),d({exitCode:1});let i=(r??[]).find(t=>!t.startsWith("--")&&t!==s);if(i===void 0||i.trim().length===0)return e.writeln(c('Error: Reason is required: noskills spec revisit --spec=X "reason"')),await e.close(),d({exitCode:1});let o;try{o=await O(n,s)}catch(t){let w=t instanceof Error?t.message:String(t);return e.writeln(c(`Error: ${w}`)),await e.close(),d({exitCode:1})}if(o.phase==="DISCOVERY"||o.phase==="DISCOVERY_REVIEW"||o.phase==="SPEC_DRAFT"||o.phase==="SPEC_APPROVED")return e.writeln(c("Already in planning phase, no need to revisit.")),await e.close(),d({exitCode:1});if(o.phase==="COMPLETED")return e.writeln(c(`Spec is completed. Use \`${E()} reopen --spec=${s}\` instead.`)),await e.close(),d({exitCode:1});if(o.phase==="IDLE"||o.phase==="FREE")return e.writeln(c("No active spec to revisit.")),await e.close(),d({exitCode:1});let p=o.execution.completedTasks.length,l=L(o,i.trim());return await v(n,s,l),e.writeln(D("Revisit complete.")),e.writeln(" Phase: ",u("DISCOVERY"),a(` (revisited from ${o.phase})`)),p>0&&e.writeln(" Previous progress: ",u(`${p} tasks completed`)),e.writeln(" Reason: ",a(`"${i.trim()}"`)),e.writeln(" Discovery answers preserved \u2014 revise or re-approve."),await e.close(),S(void 0)};export{j as RESERVED_NAMES,pe as main};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a as f,d as P}from"./chunk-WZHVKEPB.js";import"./chunk-NY4W44PI.js";import"./chunk-2HSGE3TL.js";import{a as k,d as w}from"./chunk-2ZYCRMUT.js";import{c as R,d as S}from"./chunk-2LF7QSIN.js";import{e as b,f as x,k as D,o as v,z as O}from"./chunk-TMMAF763.js";import{c as h}from"./chunk-UEMWZOIU.js";import"./chunk-2XNFZXHY.js";import{f as d,h as u,k as m}from"./chunk-SHN5MT56.js";import{c as i,d as r,f as c,g as y,h as p,k as I}from"./chunk-YVN2NZL4.js";import{a as l,b as E}from"./chunk-FFWPJP7A.js";import{i as C}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var W=async g=>{let t=C.process.cwd(),o=k(g);if(!await O(t)){if(o==="json")await w({error:"noskills is not initialized"},o);else{let s=d({renderer:m.ansi(),sink:u.stdout()});s.writeln(c("noskills is not initialized.")," Run: ",i(h("init"))),await s.close()}return E({exitCode:1})}let V=x(g),e=await b(t,V),n=await D(t),T={phase:e.phase,spec:e.spec,branch:e.branch,discovery:e.phase==="DISCOVERY"||e.phase==="DISCOVERY_REVIEW"?{answered:e.discovery.answers.length,total:f.length}:void 0,execution:e.phase==="EXECUTING"||e.phase==="BLOCKED"?{iteration:e.execution.iteration,lastProgress:e.execution.lastProgress,debt:e.execution.debt?.items.length??0,verificationPassed:e.execution.lastVerification?.passed??null}:void 0,concerns:n?.concerns??[],tools:n?.tools??[],decisions:e.decisions.length};if(o==="json"){let a=(await v(t)).filter(N=>n!==null&&n.concerns.includes(N.id)),$=await R(t),j=S(n?.tools??[]),F=P(e,a,$,n,void 0,void 0,void 0,j);return await w({...T,...F},"json"),l(void 0)}{let s=d({renderer:m.ansi(),sink:u.stdout()});s.writeln(i(`${h("status")}`)),s.writeln("");let a=e.phase==="COMPLETED"?y(e.phase):e.phase==="BLOCKED"?c(e.phase):e.phase==="EXECUTING"?I(e.phase):p(e.phase);s.writeln(" Phase: ",a),e.spec!==null&&s.writeln(" Spec: ",i(e.spec)),e.branch!==null&&s.writeln(" Branch: ",e.branch),(e.phase==="DISCOVERY"||e.phase==="DISCOVERY_REVIEW")&&s.writeln(` Discovery: ${e.discovery.answers.length}/${f.length} questions answered`),e.phase==="EXECUTING"&&(s.writeln(` Iteration: ${e.execution.iteration}`),e.execution.lastProgress!==null&&s.writeln(" Progress: ",r(e.execution.lastProgress)),e.execution.debt!==null&&s.writeln(p(` Debt: ${e.execution.debt.items.length} items`))),n!==null&&(s.writeln(""),n.concerns.length>0&&s.writeln(" Concerns: ",r(n.concerns.join(", "))),n.tools.length>0&&s.writeln(" Tools: ",r(n.tools.join(", ")))),e.decisions.length>0&&(s.writeln(""),s.writeln(` Decisions: ${e.decisions.length}`)),await s.close()}return l(void 0)};export{W as main};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-JFKHBLJB.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-2YTW3JQ6.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-MW3RJU6I.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-RHVDIXOM.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-7KFSTOXR.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-4LQG2WOJ.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-ULIMXXRY.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-JO4JKJ7R.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a,b,c,d}from"./chunk-UGYRUVUH.js";import"./chunk-ATYDQCCJ.js";import"./chunk-KHBIOZJE.js";import"./chunk-O325ZU5M.js";import"./chunk-YACXTCWF.js";import"./chunk-VV47GXU5.js";import"./chunk-J2Z7NG2X.js";import"./chunk-YTF3BAQS.js";import"./chunk-S7S2I2K5.js";import"./chunk-NBA6EFWU.js";import"./chunk-SHN5MT56.js";import"./chunk-7DPLGQHN.js";import"./chunk-YVN2NZL4.js";import"./chunk-GVTM4EOU.js";import"./chunk-MG65QJY6.js";import"./chunk-FFWPJP7A.js";import"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";export{d as main,b as run,a as tool,c as validator};
@@ -1,2 +0,0 @@
1
- import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
2
- import{a as y,d as A}from"./chunk-7NKYCWAA.js";import{n as E}from"./chunk-DPZJWN2Y.js";import{c as x,e as S,g,h as k,i as C}from"./chunk-TMMAF763.js";import"./chunk-2XNFZXHY.js";import{f as d,h as w,k as h}from"./chunk-SHN5MT56.js";import{d as u,f as n,g as f}from"./chunk-YVN2NZL4.js";import{a as m,b as i}from"./chunk-FFWPJP7A.js";import{i as c}from"./chunk-6DBKPC2O.js";import"./chunk-ALFFE37K.js";import"./chunk-6G6UVWJN.js";import"./chunk-5WJ6AUNY.js";var q=async l=>{let e=d({renderer:h.ansi(),sink:w.stdout()}),a=c.process.cwd(),o=g(l);if(!o.ok)return e.writeln(n(o.error)),await e.close(),i({exitCode:1});let p=(l??[]).filter(r=>!r.startsWith("--spec=")).join(" ");if(p.length===0)return e.writeln(n('A reason is required: noskills wontfix "reason text"')),await e.close(),i({exitCode:1});let s;try{s=await S(a,o.spec)}catch(r){let D=r instanceof Error?r.message:String(r);return e.writeln(n(D)),await e.close(),i({exitCode:1})}if(s.phase==="IDLE"||s.phase==="FREE"||s.phase==="UNINITIALIZED"||s.phase==="COMPLETED")return e.writeln(n(`Cannot mark as won't fix in phase: ${s.phase}`)),await e.close(),i({exitCode:1});if(s.spec!==null){let r=`${a}/${x.specDir(s.spec)}`;try{await c.fs.stat(r)}catch{return e.writeln(n(`Active spec '${s.spec}' directory not found.`)),e.writeln(u("Run `noskills reset` to return to IDLE.")),await e.close(),i({exitCode:1})}}let t=E(s,"wontfix",p);return await k(a,t),t.spec!==null&&await C(a,t.spec,t),t.spec!==null&&(await y(a,t.spec,"wontfix"),await A(a,t.spec,"wontfix")),e.writeln(f("\u2714"),` Spec marked as won't fix: ${p}`),await e.close(),m(void 0)};export{q as main};