noskills 4.1.55 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +106 -58
  3. package/chunks/ajan-bridge-T5M4DPDT.js +1 -0
  4. package/chunks/anthropic-TS7EMQML.js +1 -0
  5. package/chunks/approve-HEW3VFYH.js +1 -0
  6. package/chunks/ask-AXHTCVD6.js +2 -0
  7. package/chunks/block-VN76CXZW.js +1 -0
  8. package/chunks/{browser-XLYVEO2J.js → browser-BGFD24RX.js} +1 -1
  9. package/chunks/bun-WZ7BVR7Y.js +1 -0
  10. package/chunks/cancel-7WRAST62.js +1 -0
  11. package/chunks/chunk-3ZJ3UGQL.js +48 -0
  12. package/chunks/chunk-4PF2MT7S.js +29 -0
  13. package/chunks/chunk-575Y3OEG.js +1 -0
  14. package/chunks/{chunk-DZTBXXB3.js → chunk-5DZHAHXW.js} +23 -23
  15. package/chunks/chunk-5PBNUBBY.js +3 -0
  16. package/chunks/{chunk-HNAHPI6V.js → chunk-5RLCKUIF.js} +1 -1
  17. package/chunks/chunk-6YSS6PEL.js +3 -0
  18. package/chunks/chunk-7GC46XEU.js +1 -0
  19. package/chunks/{chunk-LBPD4EIH.js → chunk-7PPUGTKL.js} +1 -1
  20. package/chunks/chunk-AUZWXMWA.js +27 -0
  21. package/chunks/chunk-CH6A3LES.js +91 -0
  22. package/chunks/{chunk-UG26APX2.js → chunk-CML74SNT.js} +1 -1
  23. package/chunks/chunk-CTTMQSHF.js +1 -0
  24. package/chunks/chunk-DBKXMYLF.js +4 -0
  25. package/chunks/chunk-DEHRWREM.js +1 -0
  26. package/chunks/chunk-EIGFDYGQ.js +1 -0
  27. package/chunks/chunk-EIMBEXUJ.js +1 -0
  28. package/chunks/chunk-EJYSOUEA.js +1 -0
  29. package/chunks/chunk-ENP4P2YH.js +0 -0
  30. package/chunks/{chunk-RJX4ZXQ4.js → chunk-EROZRDGT.js} +1 -1
  31. package/chunks/chunk-FE4MKOI4.js +1 -0
  32. package/chunks/chunk-GQTHILPL.js +5 -0
  33. package/chunks/chunk-HISXAZ4Y.js +1 -0
  34. package/chunks/chunk-I4Z2RF7L.js +31 -0
  35. package/chunks/chunk-IFE5SYGK.js +1 -0
  36. package/chunks/chunk-IGDFEGCH.js +2 -0
  37. package/chunks/chunk-JL3MAFYQ.js +1 -0
  38. package/chunks/chunk-JYVB6UAV.js +1 -0
  39. package/chunks/chunk-KJLEPI7T.js +1 -0
  40. package/chunks/chunk-KM64FL2X.js +1 -0
  41. package/chunks/chunk-KMLNG3EC.js +1 -0
  42. package/chunks/chunk-KRKOWSYW.js +148 -0
  43. package/chunks/chunk-KRRPOVQG.js +1 -0
  44. package/chunks/{chunk-CKETVOVQ.js → chunk-LJEWPIEI.js} +1 -1
  45. package/chunks/{chunk-VAP3TSYK.js → chunk-LN4NDYT6.js} +1 -1
  46. package/chunks/{chunk-Z3O5HAIO.js → chunk-NGCBWJML.js} +1 -1
  47. package/chunks/chunk-O4KKKYCH.js +1 -0
  48. package/chunks/chunk-OAWYVETM.js +1 -0
  49. package/chunks/chunk-PKEQKXZW.js +23 -0
  50. package/chunks/chunk-PRQ5CRIG.js +1 -0
  51. package/chunks/{chunk-SWYX6WYQ.js → chunk-PSX63TYP.js} +2 -2
  52. package/chunks/{chunk-5P46WSNG.js → chunk-Q4TI7EYT.js} +1 -1
  53. package/chunks/chunk-QKWJ72HI.js +3 -0
  54. package/chunks/chunk-RAQY37P6.js +1 -0
  55. package/chunks/{openai-QGEN33SU.js → chunk-S4MUTKHT.js} +3 -3
  56. package/chunks/chunk-SLO22P65.js +1 -0
  57. package/chunks/chunk-UE56BMAW.js +21 -0
  58. package/chunks/{chunk-O2NUECRA.js → chunk-VJRCTYGL.js} +1 -1
  59. package/chunks/chunk-VXU6XZ66.js +39 -0
  60. package/chunks/chunk-W4TQLLUK.js +7 -0
  61. package/chunks/{chunk-PKYW3S5P.js → chunk-XDRX4ZBJ.js} +1 -1
  62. package/chunks/{chunk-XNGHRJVK.js → chunk-Y5E7ZCCX.js} +1 -1
  63. package/chunks/chunk-Z7OYXH3J.js +1 -0
  64. package/chunks/claude-code-DIWRQKZA.js +1 -0
  65. package/chunks/cmd-46ZIHXLB.js +1 -0
  66. package/chunks/concern-QSENGU6C.js +1 -0
  67. package/chunks/{config-CZDLCSOC.js → config-S3UXTJN2.js} +1 -1
  68. package/chunks/decision-ledger-GY2W6VWL.js +1 -0
  69. package/chunks/delegate-WKXIER7E.js +1 -0
  70. package/chunks/deno-YM5PW6ZM.js +1 -0
  71. package/chunks/{diagrams-H7NLJF7W.js → diagrams-A7W2EBYV.js} +1 -1
  72. package/chunks/diagrams-CBCUA47B.js +1 -0
  73. package/chunks/{dist-UI3SRKS3.js → dist-3MH5UCQU.js} +3 -3
  74. package/chunks/done-WR3UFYJT.js +1 -0
  75. package/chunks/followup-5EGZEF5Q.js +1 -0
  76. package/chunks/free-KJQHRYZA.js +1 -0
  77. package/chunks/gemini-IWP24T63.js +1 -0
  78. package/chunks/init-437SU6XH.js +1 -0
  79. package/chunks/invoke-hook-LMCWNF65.js +13 -0
  80. package/chunks/kiro-THWCXS5L.js +1 -0
  81. package/chunks/{learn-KIZTV5OH.js → learn-ZTYKBZER.js} +1 -1
  82. package/chunks/ledger-FOOPJ2UO.js +1 -0
  83. package/chunks/list-HNGIOVBK.js +1 -0
  84. package/chunks/loader-command-3A5FK2RF.js +1 -0
  85. package/chunks/loader-reactor-YZM7HO4G.js +1 -0
  86. package/chunks/manager-2MOLEJ4Q.js +3 -0
  87. package/chunks/mod-6EZYRKWV.js +1 -0
  88. package/chunks/{mod-TYCXSLSH.js → mod-7VTKN6Q5.js} +1 -1
  89. package/chunks/mod-7X5TKHKC.js +1 -0
  90. package/chunks/mod-AJIRKRAH.js +1 -0
  91. package/chunks/mod-SFSUQWSB.js +8 -0
  92. package/chunks/mod-TGOMO3CJ.js +1 -0
  93. package/chunks/{multipart-parser-UVM6CEKF.js → multipart-parser-DKDFOZKD.js} +1 -1
  94. package/chunks/next-Y6FOPM4Z.js +15 -0
  95. package/chunks/node-AZK2C657.js +12 -0
  96. package/chunks/node-GQQ42DT2.js +68 -0
  97. package/chunks/node-J4GTOSL2.js +1 -0
  98. package/chunks/ollama-2KAMCXVL.js +1 -0
  99. package/chunks/openai-HHE35TAX.js +31 -0
  100. package/chunks/openai-YES2XJDU.js +1 -0
  101. package/chunks/opencode-S4M7WJTO.js +1 -0
  102. package/chunks/{pack-33LQ7SJT.js → pack-KUT53Z24.js} +4 -4
  103. package/chunks/plan-export-PG2BVRQZ.js +3 -0
  104. package/chunks/purge-JGNJNEET.js +4 -0
  105. package/chunks/reopen-RPDXN3CF.js +1 -0
  106. package/chunks/reset-RBCQO2RF.js +1 -0
  107. package/chunks/review-VMS5MYOV.js +1 -0
  108. package/chunks/{rule-XREVPB5P.js → rule-IB4VKSBC.js} +2 -2
  109. package/chunks/run-62PWXVII.js +3 -0
  110. package/chunks/sdk-FR7Z4YSC.js +1 -0
  111. package/chunks/{session-HBP5GGI2.js → session-Q43KMFL2.js} +1 -1
  112. package/chunks/spec-4RKLPOEM.js +1 -0
  113. package/chunks/{src-GLQPTDNR.js → src-HXQVVTGQ.js} +1 -1
  114. package/chunks/status-OGLFEFF7.js +1 -0
  115. package/chunks/sync-H35O5DN5.js +1 -0
  116. package/chunks/{unstable_chmod-RZ5DE3XZ.js → unstable_chmod-44MCKF3B.js} +1 -1
  117. package/chunks/validate-JX7UTAK5.js +1 -0
  118. package/chunks/vertexai-WF5CKMYI.js +1 -0
  119. package/chunks/watch-SOZDHLSC.js +8 -0
  120. package/chunks/web-3VGRM3W4.js +1 -0
  121. package/chunks/wontfix-RBOGLLWJ.js +1 -0
  122. package/chunks/workerd-I7MLRCLJ.js +1 -0
  123. package/noskills.js +1 -1
  124. package/package.json +2 -2
  125. package/chunks/anthropic-LDUWIUPL.js +0 -1
  126. package/chunks/approve-73ZFRV7E.js +0 -1
  127. package/chunks/ask-VGI3BFZW.js +0 -2
  128. package/chunks/block-5APPOQQK.js +0 -1
  129. package/chunks/bun-5VMFSLLY.js +0 -1
  130. package/chunks/cancel-ZYRZPFRH.js +0 -1
  131. package/chunks/chunk-2GF5IUQD.js +0 -39
  132. package/chunks/chunk-2N4GTHXQ.js +0 -1
  133. package/chunks/chunk-5CNPFLE6.js +0 -1
  134. package/chunks/chunk-5MN3MWQN.js +0 -1
  135. package/chunks/chunk-65A35QPF.js +0 -1
  136. package/chunks/chunk-7UX6WIXX.js +0 -1
  137. package/chunks/chunk-AGPCY6XP.js +0 -1
  138. package/chunks/chunk-AGWPQX43.js +0 -31
  139. package/chunks/chunk-AP3YBNPX.js +0 -1
  140. package/chunks/chunk-D3IKJ7FF.js +0 -1
  141. package/chunks/chunk-EKZXJCT7.js +0 -5
  142. package/chunks/chunk-H77MLIL5.js +0 -4
  143. package/chunks/chunk-JVCVWI3B.js +0 -3
  144. package/chunks/chunk-OLM5RTFK.js +0 -1
  145. package/chunks/chunk-OTRBRRIO.js +0 -1
  146. package/chunks/chunk-U5SHLIO4.js +0 -3
  147. package/chunks/chunk-UT6ZCLRA.js +0 -1
  148. package/chunks/chunk-XS5JHAC7.js +0 -1
  149. package/chunks/chunk-XXBSEOQR.js +0 -148
  150. package/chunks/chunk-YSLRAWBK.js +0 -1
  151. package/chunks/chunk-YSSDQJTT.js +0 -91
  152. package/chunks/chunk-YTNM7A5Y.js +0 -3
  153. package/chunks/claude-code-BWCSAVK2.js +0 -1
  154. package/chunks/cmd-ZXO6KFK6.js +0 -1
  155. package/chunks/concern-RB444PUE.js +0 -1
  156. package/chunks/delegate-QBPFR44C.js +0 -1
  157. package/chunks/deno-QOH6TCLQ.js +0 -1
  158. package/chunks/diagrams-I2QKL7WR.js +0 -1
  159. package/chunks/done-Z2MFKQ45.js +0 -1
  160. package/chunks/followup-JR63B3JS.js +0 -1
  161. package/chunks/free-R4ZTZ76O.js +0 -1
  162. package/chunks/gemini-YR5KT32S.js +0 -1
  163. package/chunks/init-F7JCAPQS.js +0 -1
  164. package/chunks/invoke-hook-CGV6UHU7.js +0 -13
  165. package/chunks/kiro-RGYUKJAX.js +0 -3
  166. package/chunks/list-6EQP6VUL.js +0 -1
  167. package/chunks/manager-R5KNPWLT.js +0 -6
  168. package/chunks/mod-A77UWGGG.js +0 -1
  169. package/chunks/next-J2YKXUKA.js +0 -7
  170. package/chunks/node-3FTYLC7H.js +0 -67
  171. package/chunks/node-BPWE6I45.js +0 -1
  172. package/chunks/ollama-LTZ43OHQ.js +0 -3
  173. package/chunks/openai-Y74OQTVB.js +0 -23
  174. package/chunks/opencode-PZDL7VDP.js +0 -1
  175. package/chunks/purge-G22VY6CI.js +0 -4
  176. package/chunks/reopen-JTFZBGHT.js +0 -1
  177. package/chunks/reset-AW2IS3F6.js +0 -1
  178. package/chunks/review-EESYDNMA.js +0 -1
  179. package/chunks/run-K7FAF7RR.js +0 -3
  180. package/chunks/sdk-6IMATOQ3.js +0 -40
  181. package/chunks/spec-5B3HC5PT.js +0 -1
  182. package/chunks/status-CQ4U3KBF.js +0 -1
  183. package/chunks/sync-TJLHMISX.js +0 -1
  184. package/chunks/vertexai-RUXZ24C2.js +0 -1
  185. package/chunks/watch-WCX4YBL5.js +0 -8
  186. package/chunks/web-PEDL6264.js +0 -1
  187. package/chunks/wontfix-7JMQAMWG.js +0 -1
  188. package/chunks/workerd-IIQRIOBX.js +0 -1
@@ -1,31 +0,0 @@
1
- import{a as wt,b as Ct,c as mr,e as $n}from"./chunk-OTRBRRIO.js";var Qn=mr((Tt,Nn)=>{(function(f,s){typeof Tt=="object"&&typeof Nn<"u"?s(Tt):typeof define=="function"&&define.amd?define(["exports"],s):(f=typeof globalThis<"u"?globalThis:f||self,s(f.WebStreamsPolyfill={}))})(Tt,function(f){"use strict";function s(){}function l(e){return typeof e=="object"&&e!==null||typeof e=="function"}let b=s;function d(e,t){try{Object.defineProperty(e,"name",{value:t,configurable:!0})}catch{}}let R=Promise,C=Promise.prototype.then,ue=Promise.reject.bind(R);function P(e){return new R(e)}function S(e){return P(t=>t(e))}function c(e){return ue(e)}function W(e,t,r){return C.call(e,t,r)}function v(e,t,r){W(W(e,t,r),void 0,b)}function M(e,t){v(e,t)}function N(e,t){v(e,void 0,t)}function Q(e,t,r){return W(e,t,r)}function we(e){W(e,void 0,b)}let fe=e=>{if(typeof queueMicrotask=="function")fe=queueMicrotask;else{let t=S(void 0);fe=r=>W(t,r)}return fe(e)};function de(e,t,r){if(typeof e!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function J(e,t,r){try{return S(de(e,t,r))}catch(n){return c(n)}}let Rr=16384;class k{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(t){let r=this._back,n=r;r._elements.length===Rr-1&&(n={_elements:[],_next:void 0}),r._elements.push(t),n!==r&&(this._back=n,r._next=n),++this._size}shift(){let t=this._front,r=t,n=this._cursor,o=n+1,a=t._elements,i=a[n];return o===Rr&&(r=t._next,o=0),--this._size,this._cursor=o,t!==r&&(this._front=r),a[n]=void 0,i}forEach(t){let r=this._cursor,n=this._front,o=n._elements;for(;(r!==o.length||n._next!==void 0)&&!(r===o.length&&(n=n._next,o=n._elements,r=0,o.length===0));)t(o[r]),++r}peek(){let t=this._front,r=this._cursor;return t._elements[r]}}let wr=Symbol("[[AbortSteps]]"),Cr=Symbol("[[ErrorSteps]]"),qt=Symbol("[[CancelSteps]]"),At=Symbol("[[PullSteps]]"),Wt=Symbol("[[ReleaseSteps]]");function Tr(e,t){e._ownerReadableStream=t,t._reader=e,t._state==="readable"?kt(e):t._state==="closed"?to(e):Pr(e,t._storedError)}function Bt(e,t){let r=e._ownerReadableStream;return j(r,t)}function U(e){let t=e._ownerReadableStream;t._state==="readable"?Ot(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):ro(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),t._readableStreamController[Wt](),t._reader=void 0,e._ownerReadableStream=void 0}function Ve(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function kt(e){e._closedPromise=P((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r})}function Pr(e,t){kt(e),Ot(e,t)}function to(e){kt(e),vr(e)}function Ot(e,t){e._closedPromise_reject!==void 0&&(we(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function ro(e,t){Pr(e,t)}function vr(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}let Er=Number.isFinite||function(e){return typeof e=="number"&&isFinite(e)},no=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function oo(e){return typeof e=="object"||typeof e=="function"}function L(e,t){if(e!==void 0&&!oo(e))throw new TypeError(`${t} is not an object.`)}function O(e,t){if(typeof e!="function")throw new TypeError(`${t} is not a function.`)}function ao(e){return typeof e=="object"&&e!==null||typeof e=="function"}function qr(e,t){if(!ao(e))throw new TypeError(`${t} is not an object.`)}function Y(e,t,r){if(e===void 0)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function Ft(e,t,r){if(e===void 0)throw new TypeError(`${t} is required in '${r}'.`)}function zt(e){return Number(e)}function Ar(e){return e===0?0:e}function io(e){return Ar(no(e))}function It(e,t){let n=Number.MAX_SAFE_INTEGER,o=Number(e);if(o=Ar(o),!Er(o))throw new TypeError(`${t} is not a finite number`);if(o=io(o),o<0||o>n)throw new TypeError(`${t} is outside the accepted range of 0 to ${n}, inclusive`);return!Er(o)||o===0?0:o}function jt(e,t){if(!ae(e))throw new TypeError(`${t} is not a ReadableStream.`)}function Ce(e){return new K(e)}function Wr(e,t){e._reader._readRequests.push(t)}function Dt(e,t,r){let o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function He(e){return e._reader._readRequests.length}function Br(e){let t=e._reader;return!(t===void 0||!ee(t))}class K{constructor(t){if(Y(t,1,"ReadableStreamDefaultReader"),jt(t,"First parameter"),ie(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");Tr(this,t),this._readRequests=new k}get closed(){return ee(this)?this._closedPromise:c(Ge("closed"))}cancel(t=void 0){return ee(this)?this._ownerReadableStream===void 0?c(Ve("cancel")):Bt(this,t):c(Ge("cancel"))}read(){if(!ee(this))return c(Ge("read"));if(this._ownerReadableStream===void 0)return c(Ve("read from"));let t,r,n=P((a,i)=>{t=a,r=i});return ze(this,{_chunkSteps:a=>t({value:a,done:!1}),_closeSteps:()=>t({value:void 0,done:!0}),_errorSteps:a=>r(a)}),n}releaseLock(){if(!ee(this))throw Ge("releaseLock");this._ownerReadableStream!==void 0&&so(this)}}Object.defineProperties(K.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),d(K.prototype.cancel,"cancel"),d(K.prototype.read,"read"),d(K.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(K.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function ee(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_readRequests")?!1:e instanceof K}function ze(e,t){let r=e._ownerReadableStream;r._disturbed=!0,r._state==="closed"?t._closeSteps():r._state==="errored"?t._errorSteps(r._storedError):r._readableStreamController[At](t)}function so(e){U(e);let t=new TypeError("Reader was released");kr(e,t)}function kr(e,t){let r=e._readRequests;e._readRequests=new k,r.forEach(n=>{n._errorSteps(t)})}function Ge(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}let lo=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class Or{constructor(t,r){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=t,this._preventCancel=r}next(){let t=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?Q(this._ongoingPromise,t,t):t(),this._ongoingPromise}return(t){let r=()=>this._returnSteps(t);return this._ongoingPromise?Q(this._ongoingPromise,r,r):r()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let t=this._reader,r,n,o=P((i,u)=>{r=i,n=u});return ze(t,{_chunkSteps:i=>{this._ongoingPromise=void 0,fe(()=>r({value:i,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,U(t),r({value:void 0,done:!0})},_errorSteps:i=>{this._ongoingPromise=void 0,this._isFinished=!0,U(t),n(i)}}),o}_returnSteps(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;let r=this._reader;if(!this._preventCancel){let n=Bt(r,t);return U(r),Q(n,()=>({value:t,done:!0}))}return U(r),S({value:t,done:!0})}}let Fr={next(){return zr(this)?this._asyncIteratorImpl.next():c(Ir("next"))},return(e){return zr(this)?this._asyncIteratorImpl.return(e):c(Ir("return"))}};Object.setPrototypeOf(Fr,lo);function uo(e,t){let r=Ce(e),n=new Or(r,t),o=Object.create(Fr);return o._asyncIteratorImpl=n,o}function zr(e){if(!l(e)||!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl"))return!1;try{return e._asyncIteratorImpl instanceof Or}catch{return!1}}function Ir(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}let jr=Number.isNaN||function(e){return e!==e};var Mt,Lt,$t;function Ie(e){return e.slice()}function Dr(e,t,r,n,o){new Uint8Array(e).set(new Uint8Array(r,n,o),t)}let V=e=>(typeof e.transfer=="function"?V=t=>t.transfer():typeof structuredClone=="function"?V=t=>structuredClone(t,{transfer:[t]}):V=t=>t,V(e)),te=e=>(typeof e.detached=="boolean"?te=t=>t.detached:te=t=>t.byteLength===0,te(e));function Mr(e,t,r){if(e.slice)return e.slice(t,r);let n=r-t,o=new ArrayBuffer(n);return Dr(o,0,e,t,n),o}function xe(e,t){let r=e[t];if(r!=null){if(typeof r!="function")throw new TypeError(`${String(t)} is not a function`);return r}}function fo(e){let t={[Symbol.iterator]:()=>e.iterator},r=async function*(){return yield*t}(),n=r.next;return{iterator:r,nextMethod:n,done:!1}}let Nt=($t=(Mt=Symbol.asyncIterator)!==null&&Mt!==void 0?Mt:(Lt=Symbol.for)===null||Lt===void 0?void 0:Lt.call(Symbol,"Symbol.asyncIterator"))!==null&&$t!==void 0?$t:"@@asyncIterator";function Lr(e,t="sync",r){if(r===void 0)if(t==="async"){if(r=xe(e,Nt),r===void 0){let a=xe(e,Symbol.iterator),i=Lr(e,"sync",a);return fo(i)}}else r=xe(e,Symbol.iterator);if(r===void 0)throw new TypeError("The object is not iterable");let n=de(r,e,[]);if(!l(n))throw new TypeError("The iterator method must return an object");let o=n.next;return{iterator:n,nextMethod:o,done:!1}}function co(e){let t=de(e.nextMethod,e.iterator,[]);if(!l(t))throw new TypeError("The iterator.next() method must return an object");return t}function ho(e){return!!e.done}function bo(e){return e.value}function mo(e){return!(typeof e!="number"||jr(e)||e<0)}function $r(e){let t=Mr(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function Qt(e){let t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function Ut(e,t,r){if(!mo(r)||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function po(e){return e._queue.peek().value}function re(e){e._queue=new k,e._queueTotalSize=0}function Nr(e){return e===DataView}function yo(e){return Nr(e.constructor)}function _o(e){return Nr(e)?1:e.BYTES_PER_ELEMENT}class ce{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Yt(this))throw Zt("view");return this._view}respond(t){if(!Yt(this))throw Zt("respond");if(Y(t,1,"respond"),t=It(t,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(te(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");Ke(this._associatedReadableByteStreamController,t)}respondWithNewView(t){if(!Yt(this))throw Zt("respondWithNewView");if(Y(t,1,"respondWithNewView"),!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(te(t.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");et(this._associatedReadableByteStreamController,t)}}Object.defineProperties(ce.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),d(ce.prototype.respond,"respond"),d(ce.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ce.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class H{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!he(this))throw De("byobRequest");return xt(this)}get desiredSize(){if(!he(this))throw De("desiredSize");return Jr(this)}close(){if(!he(this))throw De("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let t=this._controlledReadableByteStream._state;if(t!=="readable")throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be closed`);je(this)}enqueue(t){if(!he(this))throw De("enqueue");if(Y(t,1,"enqueue"),!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(t.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(t.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let r=this._controlledReadableByteStream._state;if(r!=="readable")throw new TypeError(`The stream (in ${r} state) is not in the readable state and cannot be enqueued to`);Je(this,t)}error(t=void 0){if(!he(this))throw De("error");F(this,t)}[qt](t){Qr(this),re(this);let r=this._cancelAlgorithm(t);return Xe(this),r}[At](t){let r=this._controlledReadableByteStream;if(this._queueTotalSize>0){Xr(this,t);return}let n=this._autoAllocateChunkSize;if(n!==void 0){let o;try{o=new ArrayBuffer(n)}catch(i){t._errorSteps(i);return}let a={buffer:o,bufferByteLength:n,byteOffset:0,byteLength:n,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(a)}Wr(r,t),be(this)}[Wt](){if(this._pendingPullIntos.length>0){let t=this._pendingPullIntos.peek();t.readerType="none",this._pendingPullIntos=new k,this._pendingPullIntos.push(t)}}}Object.defineProperties(H.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),d(H.prototype.close,"close"),d(H.prototype.enqueue,"enqueue"),d(H.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(H.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function he(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")?!1:e instanceof H}function Yt(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")?!1:e instanceof ce}function be(e){if(!Co(e))return;if(e._pulling){e._pullAgain=!0;return}e._pulling=!0;let r=e._pullAlgorithm();v(r,()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,be(e)),null),n=>(F(e,n),null))}function Qr(e){Ht(e),e._pendingPullIntos=new k}function Vt(e,t){let r=!1;e._state==="closed"&&(r=!0);let n=Ur(t);t.readerType==="default"?Dt(e,n,r):Ao(e,n,r)}function Ur(e){let t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function Ze(e,t,r,n){e._queue.push({buffer:t,byteOffset:r,byteLength:n}),e._queueTotalSize+=n}function Yr(e,t,r,n){let o;try{o=Mr(t,r,r+n)}catch(a){throw F(e,a),a}Ze(e,o,0,n)}function Vr(e,t){t.bytesFilled>0&&Yr(e,t.buffer,t.byteOffset,t.bytesFilled),Te(e)}function Hr(e,t){let r=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),n=t.bytesFilled+r,o=r,a=!1,i=n%t.elementSize,u=n-i;u>=t.minimumFill&&(o=u-t.bytesFilled,a=!0);let p=e._queue;for(;o>0;){let h=p.peek(),y=Math.min(o,h.byteLength),_=t.byteOffset+t.bytesFilled;Dr(t.buffer,_,h.buffer,h.byteOffset,y),h.byteLength===y?p.shift():(h.byteOffset+=y,h.byteLength-=y),e._queueTotalSize-=y,Gr(e,y,t),o-=y}return a}function Gr(e,t,r){r.bytesFilled+=t}function xr(e){e._queueTotalSize===0&&e._closeRequested?(Xe(e),Ue(e._controlledReadableByteStream)):be(e)}function Ht(e){e._byobRequest!==null&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function Gt(e){for(;e._pendingPullIntos.length>0;){if(e._queueTotalSize===0)return;let t=e._pendingPullIntos.peek();Hr(e,t)&&(Te(e),Vt(e._controlledReadableByteStream,t))}}function So(e){let t=e._controlledReadableByteStream._reader;for(;t._readRequests.length>0;){if(e._queueTotalSize===0)return;let r=t._readRequests.shift();Xr(e,r)}}function go(e,t,r,n){let o=e._controlledReadableByteStream,a=t.constructor,i=_o(a),{byteOffset:u,byteLength:p}=t,h=r*i,y;try{y=V(t.buffer)}catch(w){n._errorSteps(w);return}let _={buffer:y,bufferByteLength:y.byteLength,byteOffset:u,byteLength:p,bytesFilled:0,minimumFill:h,elementSize:i,viewConstructor:a,readerType:"byob"};if(e._pendingPullIntos.length>0){e._pendingPullIntos.push(_),tn(o,n);return}if(o._state==="closed"){let w=new a(_.buffer,_.byteOffset,0);n._closeSteps(w);return}if(e._queueTotalSize>0){if(Hr(e,_)){let w=Ur(_);xr(e),n._chunkSteps(w);return}if(e._closeRequested){let w=new TypeError("Insufficient bytes to fill elements in the given buffer");F(e,w),n._errorSteps(w);return}}e._pendingPullIntos.push(_),tn(o,n),be(e)}function Ro(e,t){t.readerType==="none"&&Te(e);let r=e._controlledReadableByteStream;if(Xt(r))for(;rn(r)>0;){let n=Te(e);Vt(r,n)}}function wo(e,t,r){if(Gr(e,t,r),r.readerType==="none"){Vr(e,r),Gt(e);return}if(r.bytesFilled<r.minimumFill)return;Te(e);let n=r.bytesFilled%r.elementSize;if(n>0){let o=r.byteOffset+r.bytesFilled;Yr(e,r.buffer,o-n,n)}r.bytesFilled-=n,Vt(e._controlledReadableByteStream,r),Gt(e)}function Zr(e,t){let r=e._pendingPullIntos.peek();Ht(e),e._controlledReadableByteStream._state==="closed"?Ro(e,r):wo(e,t,r),be(e)}function Te(e){return e._pendingPullIntos.shift()}function Co(e){let t=e._controlledReadableByteStream;return t._state!=="readable"||e._closeRequested||!e._started?!1:!!(Br(t)&&He(t)>0||Xt(t)&&rn(t)>0||Jr(e)>0)}function Xe(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function je(e){let t=e._controlledReadableByteStream;if(!(e._closeRequested||t._state!=="readable")){if(e._queueTotalSize>0){e._closeRequested=!0;return}if(e._pendingPullIntos.length>0){let r=e._pendingPullIntos.peek();if(r.bytesFilled%r.elementSize!==0){let n=new TypeError("Insufficient bytes to fill elements in the given buffer");throw F(e,n),n}}Xe(e),Ue(t)}}function Je(e,t){let r=e._controlledReadableByteStream;if(e._closeRequested||r._state!=="readable")return;let{buffer:n,byteOffset:o,byteLength:a}=t;if(te(n))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let i=V(n);if(e._pendingPullIntos.length>0){let u=e._pendingPullIntos.peek();if(te(u.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");Ht(e),u.buffer=V(u.buffer),u.readerType==="none"&&Vr(e,u)}if(Br(r))if(So(e),He(r)===0)Ze(e,i,o,a);else{e._pendingPullIntos.length>0&&Te(e);let u=new Uint8Array(i,o,a);Dt(r,u,!1)}else Xt(r)?(Ze(e,i,o,a),Gt(e)):Ze(e,i,o,a);be(e)}function F(e,t){let r=e._controlledReadableByteStream;r._state==="readable"&&(Qr(e),re(e),Xe(e),En(r,t))}function Xr(e,t){let r=e._queue.shift();e._queueTotalSize-=r.byteLength,xr(e);let n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);t._chunkSteps(n)}function xt(e){if(e._byobRequest===null&&e._pendingPullIntos.length>0){let t=e._pendingPullIntos.peek(),r=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),n=Object.create(ce.prototype);Po(n,e,r),e._byobRequest=n}return e._byobRequest}function Jr(e){let t=e._controlledReadableByteStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function Ke(e,t){let r=e._pendingPullIntos.peek();if(e._controlledReadableByteStream._state==="closed"){if(t!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(t===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range")}r.buffer=V(r.buffer),Zr(e,t)}function et(e,t){let r=e._pendingPullIntos.peek();if(e._controlledReadableByteStream._state==="closed"){if(t.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(t.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.bufferByteLength!==t.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(r.bytesFilled+t.byteLength>r.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let o=t.byteLength;r.buffer=V(t.buffer),Zr(e,o)}function Kr(e,t,r,n,o,a,i){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,t._byobRequest=null,t._queue=t._queueTotalSize=void 0,re(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=o,t._autoAllocateChunkSize=i,t._pendingPullIntos=new k,e._readableStreamController=t;let u=r();v(S(u),()=>(t._started=!0,be(t),null),p=>(F(t,p),null))}function To(e,t,r){let n=Object.create(H.prototype),o,a,i;t.start!==void 0?o=()=>t.start(n):o=()=>{},t.pull!==void 0?a=()=>t.pull(n):a=()=>S(void 0),t.cancel!==void 0?i=p=>t.cancel(p):i=()=>S(void 0);let u=t.autoAllocateChunkSize;if(u===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Kr(e,n,o,a,i,r,u)}function Po(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}function Zt(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function De(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function vo(e,t){L(e,t);let r=e?.mode;return{mode:r===void 0?void 0:Eo(r,`${t} has member 'mode' that`)}}function Eo(e,t){if(e=`${e}`,e!=="byob")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function qo(e,t){var r;L(e,t);let n=(r=e?.min)!==null&&r!==void 0?r:1;return{min:It(n,`${t} has member 'min' that`)}}function en(e){return new ne(e)}function tn(e,t){e._reader._readIntoRequests.push(t)}function Ao(e,t,r){let o=e._reader._readIntoRequests.shift();r?o._closeSteps(t):o._chunkSteps(t)}function rn(e){return e._reader._readIntoRequests.length}function Xt(e){let t=e._reader;return!(t===void 0||!me(t))}class ne{constructor(t){if(Y(t,1,"ReadableStreamBYOBReader"),jt(t,"First parameter"),ie(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!he(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");Tr(this,t),this._readIntoRequests=new k}get closed(){return me(this)?this._closedPromise:c(tt("closed"))}cancel(t=void 0){return me(this)?this._ownerReadableStream===void 0?c(Ve("cancel")):Bt(this,t):c(tt("cancel"))}read(t,r={}){if(!me(this))return c(tt("read"));if(!ArrayBuffer.isView(t))return c(new TypeError("view must be an array buffer view"));if(t.byteLength===0)return c(new TypeError("view must have non-zero byteLength"));if(t.buffer.byteLength===0)return c(new TypeError("view's buffer must have non-zero byteLength"));if(te(t.buffer))return c(new TypeError("view's buffer has been detached"));let n;try{n=qo(r,"options")}catch(h){return c(h)}let o=n.min;if(o===0)return c(new TypeError("options.min must be greater than 0"));if(yo(t)){if(o>t.byteLength)return c(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(o>t.length)return c(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return c(Ve("read from"));let a,i,u=P((h,y)=>{a=h,i=y});return nn(this,t,o,{_chunkSteps:h=>a({value:h,done:!1}),_closeSteps:h=>a({value:h,done:!0}),_errorSteps:h=>i(h)}),u}releaseLock(){if(!me(this))throw tt("releaseLock");this._ownerReadableStream!==void 0&&Wo(this)}}Object.defineProperties(ne.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),d(ne.prototype.cancel,"cancel"),d(ne.prototype.read,"read"),d(ne.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ne.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function me(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")?!1:e instanceof ne}function nn(e,t,r,n){let o=e._ownerReadableStream;o._disturbed=!0,o._state==="errored"?n._errorSteps(o._storedError):go(o._readableStreamController,t,r,n)}function Wo(e){U(e);let t=new TypeError("Reader was released");on(e,t)}function on(e,t){let r=e._readIntoRequests;e._readIntoRequests=new k,r.forEach(n=>{n._errorSteps(t)})}function tt(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function Me(e,t){let{highWaterMark:r}=e;if(r===void 0)return t;if(jr(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function rt(e){let{size:t}=e;return t||(()=>1)}function nt(e,t){L(e,t);let r=e?.highWaterMark,n=e?.size;return{highWaterMark:r===void 0?void 0:zt(r),size:n===void 0?void 0:Bo(n,`${t} has member 'size' that`)}}function Bo(e,t){return O(e,t),r=>zt(e(r))}function ko(e,t){L(e,t);let r=e?.abort,n=e?.close,o=e?.start,a=e?.type,i=e?.write;return{abort:r===void 0?void 0:Oo(r,e,`${t} has member 'abort' that`),close:n===void 0?void 0:Fo(n,e,`${t} has member 'close' that`),start:o===void 0?void 0:zo(o,e,`${t} has member 'start' that`),write:i===void 0?void 0:Io(i,e,`${t} has member 'write' that`),type:a}}function Oo(e,t,r){return O(e,r),n=>J(e,t,[n])}function Fo(e,t,r){return O(e,r),()=>J(e,t,[])}function zo(e,t,r){return O(e,r),n=>de(e,t,[n])}function Io(e,t,r){return O(e,r),(n,o)=>J(e,t,[n,o])}function an(e,t){if(!Pe(e))throw new TypeError(`${t} is not a WritableStream.`)}function jo(e){if(typeof e!="object"||e===null)return!1;try{return typeof e.aborted=="boolean"}catch{return!1}}let Do=typeof AbortController=="function";function Mo(){if(Do)return new AbortController}class oe{constructor(t={},r={}){t===void 0?t=null:qr(t,"First parameter");let n=nt(r,"Second parameter"),o=ko(t,"First parameter");if(ln(this),o.type!==void 0)throw new RangeError("Invalid type is specified");let i=rt(n),u=Me(n,1);Ko(this,o,u,i)}get locked(){if(!Pe(this))throw lt("locked");return ve(this)}abort(t=void 0){return Pe(this)?ve(this)?c(new TypeError("Cannot abort a stream that already has a writer")):ot(this,t):c(lt("abort"))}close(){return Pe(this)?ve(this)?c(new TypeError("Cannot close a stream that already has a writer")):$(this)?c(new TypeError("Cannot close an already-closing stream")):un(this):c(lt("close"))}getWriter(){if(!Pe(this))throw lt("getWriter");return sn(this)}}Object.defineProperties(oe.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),d(oe.prototype.abort,"abort"),d(oe.prototype.close,"close"),d(oe.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(oe.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function sn(e){return new G(e)}function Lo(e,t,r,n,o=1,a=()=>1){let i=Object.create(oe.prototype);ln(i);let u=Object.create(Ee.prototype);return mn(i,u,e,t,r,n,o,a),i}function ln(e){e._state="writable",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=new k,e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function Pe(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")?!1:e instanceof oe}function ve(e){return e._writer!==void 0}function ot(e,t){var r;if(e._state==="closed"||e._state==="errored")return S(void 0);e._writableStreamController._abortReason=t,(r=e._writableStreamController._abortController)===null||r===void 0||r.abort(t);let n=e._state;if(n==="closed"||n==="errored")return S(void 0);if(e._pendingAbortRequest!==void 0)return e._pendingAbortRequest._promise;let o=!1;n==="erroring"&&(o=!0,t=void 0);let a=P((i,u)=>{e._pendingAbortRequest={_promise:void 0,_resolve:i,_reject:u,_reason:t,_wasAlreadyErroring:o}});return e._pendingAbortRequest._promise=a,o||Kt(e,t),a}function un(e){let t=e._state;if(t==="closed"||t==="errored")return c(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));let r=P((o,a)=>{let i={_resolve:o,_reject:a};e._closeRequest=i}),n=e._writer;return n!==void 0&&e._backpressure&&t==="writable"&&sr(n),ea(e._writableStreamController),r}function $o(e){return P((r,n)=>{let o={_resolve:r,_reject:n};e._writeRequests.push(o)})}function Jt(e,t){if(e._state==="writable"){Kt(e,t);return}er(e)}function Kt(e,t){let r=e._writableStreamController;e._state="erroring",e._storedError=t;let n=e._writer;n!==void 0&&dn(n,t),!Vo(e)&&r._started&&er(e)}function er(e){e._state="errored",e._writableStreamController[Cr]();let t=e._storedError;if(e._writeRequests.forEach(o=>{o._reject(t)}),e._writeRequests=new k,e._pendingAbortRequest===void 0){at(e);return}let r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring){r._reject(t),at(e);return}let n=e._writableStreamController[wr](r._reason);v(n,()=>(r._resolve(),at(e),null),o=>(r._reject(o),at(e),null))}function No(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}function Qo(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,Jt(e,t)}function Uo(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,e._state==="erroring"&&(e._storedError=void 0,e._pendingAbortRequest!==void 0&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";let r=e._writer;r!==void 0&&Sn(r)}function Yo(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,e._pendingAbortRequest!==void 0&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),Jt(e,t)}function $(e){return!(e._closeRequest===void 0&&e._inFlightCloseRequest===void 0)}function Vo(e){return!(e._inFlightWriteRequest===void 0&&e._inFlightCloseRequest===void 0)}function Ho(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0}function Go(e){e._inFlightWriteRequest=e._writeRequests.shift()}function at(e){e._closeRequest!==void 0&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);let t=e._writer;t!==void 0&&ar(t,e._storedError)}function tr(e,t){let r=e._writer;r!==void 0&&t!==e._backpressure&&(t?sa(r):sr(r)),e._backpressure=t}class G{constructor(t){if(Y(t,1,"WritableStreamDefaultWriter"),an(t,"First parameter"),ve(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t,t._writer=this;let r=t._state;if(r==="writable")!$(t)&&t._backpressure?ft(this):gn(this),ut(this);else if(r==="erroring")ir(this,t._storedError),ut(this);else if(r==="closed")gn(this),aa(this);else{let n=t._storedError;ir(this,n),_n(this,n)}}get closed(){return pe(this)?this._closedPromise:c(ye("closed"))}get desiredSize(){if(!pe(this))throw ye("desiredSize");if(this._ownerWritableStream===void 0)throw $e("desiredSize");return Jo(this)}get ready(){return pe(this)?this._readyPromise:c(ye("ready"))}abort(t=void 0){return pe(this)?this._ownerWritableStream===void 0?c($e("abort")):xo(this,t):c(ye("abort"))}close(){if(!pe(this))return c(ye("close"));let t=this._ownerWritableStream;return t===void 0?c($e("close")):$(t)?c(new TypeError("Cannot close an already-closing stream")):fn(this)}releaseLock(){if(!pe(this))throw ye("releaseLock");this._ownerWritableStream!==void 0&&cn(this)}write(t=void 0){return pe(this)?this._ownerWritableStream===void 0?c($e("write to")):hn(this,t):c(ye("write"))}}Object.defineProperties(G.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),d(G.prototype.abort,"abort"),d(G.prototype.close,"close"),d(G.prototype.releaseLock,"releaseLock"),d(G.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(G.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function pe(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")?!1:e instanceof G}function xo(e,t){let r=e._ownerWritableStream;return ot(r,t)}function fn(e){let t=e._ownerWritableStream;return un(t)}function Zo(e){let t=e._ownerWritableStream,r=t._state;return $(t)||r==="closed"?S(void 0):r==="errored"?c(t._storedError):fn(e)}function Xo(e,t){e._closedPromiseState==="pending"?ar(e,t):ia(e,t)}function dn(e,t){e._readyPromiseState==="pending"?Rn(e,t):la(e,t)}function Jo(e){let t=e._ownerWritableStream,r=t._state;return r==="errored"||r==="erroring"?null:r==="closed"?0:pn(t._writableStreamController)}function cn(e){let t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");dn(e,r),Xo(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function hn(e,t){let r=e._ownerWritableStream,n=r._writableStreamController,o=ta(n,t);if(r!==e._ownerWritableStream)return c($e("write to"));let a=r._state;if(a==="errored")return c(r._storedError);if($(r)||a==="closed")return c(new TypeError("The stream is closing or closed and cannot be written to"));if(a==="erroring")return c(r._storedError);let i=$o(r);return ra(n,t,o),i}let bn={};class Ee{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!rr(this))throw or("abortReason");return this._abortReason}get signal(){if(!rr(this))throw or("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(t=void 0){if(!rr(this))throw or("error");this._controlledWritableStream._state==="writable"&&yn(this,t)}[wr](t){let r=this._abortAlgorithm(t);return it(this),r}[Cr](){re(this)}}Object.defineProperties(Ee.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ee.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function rr(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")?!1:e instanceof Ee}function mn(e,t,r,n,o,a,i,u){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,re(t),t._abortReason=void 0,t._abortController=Mo(),t._started=!1,t._strategySizeAlgorithm=u,t._strategyHWM=i,t._writeAlgorithm=n,t._closeAlgorithm=o,t._abortAlgorithm=a;let p=nr(t);tr(e,p);let h=r(),y=S(h);v(y,()=>(t._started=!0,st(t),null),_=>(t._started=!0,Jt(e,_),null))}function Ko(e,t,r,n){let o=Object.create(Ee.prototype),a,i,u,p;t.start!==void 0?a=()=>t.start(o):a=()=>{},t.write!==void 0?i=h=>t.write(h,o):i=()=>S(void 0),t.close!==void 0?u=()=>t.close():u=()=>S(void 0),t.abort!==void 0?p=h=>t.abort(h):p=()=>S(void 0),mn(e,o,a,i,u,p,r,n)}function it(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function ea(e){Ut(e,bn,0),st(e)}function ta(e,t){try{return e._strategySizeAlgorithm(t)}catch(r){return Le(e,r),1}}function pn(e){return e._strategyHWM-e._queueTotalSize}function ra(e,t,r){try{Ut(e,t,r)}catch(o){Le(e,o);return}let n=e._controlledWritableStream;if(!$(n)&&n._state==="writable"){let o=nr(e);tr(n,o)}st(e)}function st(e){let t=e._controlledWritableStream;if(!e._started||t._inFlightWriteRequest!==void 0)return;if(t._state==="erroring"){er(t);return}if(e._queue.length===0)return;let n=po(e);n===bn?na(e):oa(e,n)}function Le(e,t){e._controlledWritableStream._state==="writable"&&yn(e,t)}function na(e){let t=e._controlledWritableStream;Ho(t),Qt(e);let r=e._closeAlgorithm();it(e),v(r,()=>(Uo(t),null),n=>(Yo(t,n),null))}function oa(e,t){let r=e._controlledWritableStream;Go(r);let n=e._writeAlgorithm(t);v(n,()=>{No(r);let o=r._state;if(Qt(e),!$(r)&&o==="writable"){let a=nr(e);tr(r,a)}return st(e),null},o=>(r._state==="writable"&&it(e),Qo(r,o),null))}function nr(e){return pn(e)<=0}function yn(e,t){let r=e._controlledWritableStream;it(e),Kt(r,t)}function lt(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function or(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function ye(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function $e(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function ut(e){e._closedPromise=P((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"})}function _n(e,t){ut(e),ar(e,t)}function aa(e){ut(e),Sn(e)}function ar(e,t){e._closedPromise_reject!==void 0&&(we(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function ia(e,t){_n(e,t)}function Sn(e){e._closedPromise_resolve!==void 0&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved")}function ft(e){e._readyPromise=P((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r}),e._readyPromiseState="pending"}function ir(e,t){ft(e),Rn(e,t)}function gn(e){ft(e),sr(e)}function Rn(e,t){e._readyPromise_reject!==void 0&&(we(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function sa(e){ft(e)}function la(e,t){ir(e,t)}function sr(e){e._readyPromise_resolve!==void 0&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled")}function ua(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let lr=ua();function fa(e){if(!(typeof e=="function"||typeof e=="object")||e.name!=="DOMException")return!1;try{return new e,!0}catch{return!1}}function da(){let e=lr?.DOMException;return fa(e)?e:void 0}function ca(){let e=function(r,n){this.message=r||"",this.name=n||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return d(e,"DOMException"),e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}let ha=da()||ca();function wn(e,t,r,n,o,a){let i=Ce(e),u=sn(t);e._disturbed=!0;let p=!1,h=S(void 0);return P((y,_)=>{let w;if(a!==void 0){if(w=()=>{let m=a.reason!==void 0?a.reason:new ha("Aborted","AbortError"),g=[];n||g.push(()=>t._state==="writable"?ot(t,m):S(void 0)),o||g.push(()=>e._state==="readable"?j(e,m):S(void 0)),A(()=>Promise.all(g.map(T=>T())),!0,m)},a.aborted){w();return}a.addEventListener("abort",w)}function D(){return P((m,g)=>{function T(B){B?m():W(Be(),T,g)}T(!1)})}function Be(){return p?S(!0):W(u._readyPromise,()=>P((m,g)=>{ze(i,{_chunkSteps:T=>{h=W(hn(u,T),void 0,s),m(!1)},_closeSteps:()=>m(!0),_errorSteps:g})}))}if(Z(e,i._closedPromise,m=>(n?z(!0,m):A(()=>ot(t,m),!0,m),null)),Z(t,u._closedPromise,m=>(o?z(!0,m):A(()=>j(e,m),!0,m),null)),q(e,i._closedPromise,()=>(r?z():A(()=>Zo(u)),null)),$(t)||t._state==="closed"){let m=new TypeError("the destination writable stream closed before all data could be piped to it");o?z(!0,m):A(()=>j(e,m),!0,m)}we(D());function le(){let m=h;return W(h,()=>m!==h?le():void 0)}function Z(m,g,T){m._state==="errored"?T(m._storedError):N(g,T)}function q(m,g,T){m._state==="closed"?T():M(g,T)}function A(m,g,T){if(p)return;p=!0,t._state==="writable"&&!$(t)?M(le(),B):B();function B(){return v(m(),()=>X(g,T),ke=>X(!0,ke)),null}}function z(m,g){p||(p=!0,t._state==="writable"&&!$(t)?M(le(),()=>X(m,g)):X(m,g))}function X(m,g){return cn(u),U(i),a!==void 0&&a.removeEventListener("abort",w),m?_(g):y(void 0),null}})}class x{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!dt(this))throw ht("desiredSize");return ur(this)}close(){if(!dt(this))throw ht("close");if(!Ae(this))throw new TypeError("The stream is not in a state that permits close");_e(this)}enqueue(t=void 0){if(!dt(this))throw ht("enqueue");if(!Ae(this))throw new TypeError("The stream is not in a state that permits enqueue");return qe(this,t)}error(t=void 0){if(!dt(this))throw ht("error");I(this,t)}[qt](t){re(this);let r=this._cancelAlgorithm(t);return ct(this),r}[At](t){let r=this._controlledReadableStream;if(this._queue.length>0){let n=Qt(this);this._closeRequested&&this._queue.length===0?(ct(this),Ue(r)):Ne(this),t._chunkSteps(n)}else Wr(r,t),Ne(this)}[Wt](){}}Object.defineProperties(x.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),d(x.prototype.close,"close"),d(x.prototype.enqueue,"enqueue"),d(x.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(x.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function dt(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")?!1:e instanceof x}function Ne(e){if(!Cn(e))return;if(e._pulling){e._pullAgain=!0;return}e._pulling=!0;let r=e._pullAlgorithm();v(r,()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Ne(e)),null),n=>(I(e,n),null))}function Cn(e){let t=e._controlledReadableStream;return!Ae(e)||!e._started?!1:!!(ie(t)&&He(t)>0||ur(e)>0)}function ct(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function _e(e){if(!Ae(e))return;let t=e._controlledReadableStream;e._closeRequested=!0,e._queue.length===0&&(ct(e),Ue(t))}function qe(e,t){if(!Ae(e))return;let r=e._controlledReadableStream;if(ie(r)&&He(r)>0)Dt(r,t,!1);else{let n;try{n=e._strategySizeAlgorithm(t)}catch(o){throw I(e,o),o}try{Ut(e,t,n)}catch(o){throw I(e,o),o}}Ne(e)}function I(e,t){let r=e._controlledReadableStream;r._state==="readable"&&(re(e),ct(e),En(r,t))}function ur(e){let t=e._controlledReadableStream._state;return t==="errored"?null:t==="closed"?0:e._strategyHWM-e._queueTotalSize}function ba(e){return!Cn(e)}function Ae(e){let t=e._controlledReadableStream._state;return!e._closeRequested&&t==="readable"}function Tn(e,t,r,n,o,a,i){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,re(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=i,t._strategyHWM=a,t._pullAlgorithm=n,t._cancelAlgorithm=o,e._readableStreamController=t;let u=r();v(S(u),()=>(t._started=!0,Ne(t),null),p=>(I(t,p),null))}function ma(e,t,r,n){let o=Object.create(x.prototype),a,i,u;t.start!==void 0?a=()=>t.start(o):a=()=>{},t.pull!==void 0?i=()=>t.pull(o):i=()=>S(void 0),t.cancel!==void 0?u=p=>t.cancel(p):u=()=>S(void 0),Tn(e,o,a,i,u,r,n)}function ht(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function pa(e,t){return he(e._readableStreamController)?_a(e):ya(e)}function ya(e,t){let r=Ce(e),n=!1,o=!1,a=!1,i=!1,u,p,h,y,_,w=P(q=>{_=q});function D(){return n?(o=!0,S(void 0)):(n=!0,ze(r,{_chunkSteps:A=>{fe(()=>{o=!1;let z=A,X=A;a||qe(h._readableStreamController,z),i||qe(y._readableStreamController,X),n=!1,o&&D()})},_closeSteps:()=>{n=!1,a||_e(h._readableStreamController),i||_e(y._readableStreamController),(!a||!i)&&_(void 0)},_errorSteps:()=>{n=!1}}),S(void 0))}function Be(q){if(a=!0,u=q,i){let A=Ie([u,p]),z=j(e,A);_(z)}return w}function le(q){if(i=!0,p=q,a){let A=Ie([u,p]),z=j(e,A);_(z)}return w}function Z(){}return h=Qe(Z,D,Be),y=Qe(Z,D,le),N(r._closedPromise,q=>(I(h._readableStreamController,q),I(y._readableStreamController,q),(!a||!i)&&_(void 0),null)),[h,y]}function _a(e){let t=Ce(e),r=!1,n=!1,o=!1,a=!1,i=!1,u,p,h,y,_,w=P(m=>{_=m});function D(m){N(m._closedPromise,g=>(m!==t||(F(h._readableStreamController,g),F(y._readableStreamController,g),(!a||!i)&&_(void 0)),null))}function Be(){me(t)&&(U(t),t=Ce(e),D(t)),ze(t,{_chunkSteps:g=>{fe(()=>{n=!1,o=!1;let T=g,B=g;if(!a&&!i)try{B=$r(g)}catch(ke){F(h._readableStreamController,ke),F(y._readableStreamController,ke),_(j(e,ke));return}a||Je(h._readableStreamController,T),i||Je(y._readableStreamController,B),r=!1,n?Z():o&&q()})},_closeSteps:()=>{r=!1,a||je(h._readableStreamController),i||je(y._readableStreamController),h._readableStreamController._pendingPullIntos.length>0&&Ke(h._readableStreamController,0),y._readableStreamController._pendingPullIntos.length>0&&Ke(y._readableStreamController,0),(!a||!i)&&_(void 0)},_errorSteps:()=>{r=!1}})}function le(m,g){ee(t)&&(U(t),t=en(e),D(t));let T=g?y:h,B=g?h:y;nn(t,m,1,{_chunkSteps:Oe=>{fe(()=>{n=!1,o=!1;let Fe=g?i:a;if(g?a:i)Fe||et(T._readableStreamController,Oe);else{let Ln;try{Ln=$r(Oe)}catch(br){F(T._readableStreamController,br),F(B._readableStreamController,br),_(j(e,br));return}Fe||et(T._readableStreamController,Oe),Je(B._readableStreamController,Ln)}r=!1,n?Z():o&&q()})},_closeSteps:Oe=>{r=!1;let Fe=g?i:a,Rt=g?a:i;Fe||je(T._readableStreamController),Rt||je(B._readableStreamController),Oe!==void 0&&(Fe||et(T._readableStreamController,Oe),!Rt&&B._readableStreamController._pendingPullIntos.length>0&&Ke(B._readableStreamController,0)),(!Fe||!Rt)&&_(void 0)},_errorSteps:()=>{r=!1}})}function Z(){if(r)return n=!0,S(void 0);r=!0;let m=xt(h._readableStreamController);return m===null?Be():le(m._view,!1),S(void 0)}function q(){if(r)return o=!0,S(void 0);r=!0;let m=xt(y._readableStreamController);return m===null?Be():le(m._view,!0),S(void 0)}function A(m){if(a=!0,u=m,i){let g=Ie([u,p]),T=j(e,g);_(T)}return w}function z(m){if(i=!0,p=m,a){let g=Ie([u,p]),T=j(e,g);_(T)}return w}function X(){}return h=vn(X,Z,A),y=vn(X,q,z),D(t),[h,y]}function Sa(e){return l(e)&&typeof e.getReader<"u"}function ga(e){return Sa(e)?wa(e.getReader()):Ra(e)}function Ra(e){let t,r=Lr(e,"async"),n=s;function o(){let i;try{i=co(r)}catch(p){return c(p)}let u=S(i);return Q(u,p=>{if(!l(p))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(ho(p))_e(t._readableStreamController);else{let y=bo(p);qe(t._readableStreamController,y)}})}function a(i){let u=r.iterator,p;try{p=xe(u,"return")}catch(_){return c(_)}if(p===void 0)return S(void 0);let h;try{h=de(p,u,[i])}catch(_){return c(_)}let y=S(h);return Q(y,_=>{if(!l(_))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return t=Qe(n,o,a,0),t}function wa(e){let t,r=s;function n(){let a;try{a=e.read()}catch(i){return c(i)}return Q(a,i=>{if(!l(i))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(i.done)_e(t._readableStreamController);else{let u=i.value;qe(t._readableStreamController,u)}})}function o(a){try{return S(e.cancel(a))}catch(i){return c(i)}}return t=Qe(r,n,o,0),t}function Ca(e,t){L(e,t);let r=e,n=r?.autoAllocateChunkSize,o=r?.cancel,a=r?.pull,i=r?.start,u=r?.type;return{autoAllocateChunkSize:n===void 0?void 0:It(n,`${t} has member 'autoAllocateChunkSize' that`),cancel:o===void 0?void 0:Ta(o,r,`${t} has member 'cancel' that`),pull:a===void 0?void 0:Pa(a,r,`${t} has member 'pull' that`),start:i===void 0?void 0:va(i,r,`${t} has member 'start' that`),type:u===void 0?void 0:Ea(u,`${t} has member 'type' that`)}}function Ta(e,t,r){return O(e,r),n=>J(e,t,[n])}function Pa(e,t,r){return O(e,r),n=>J(e,t,[n])}function va(e,t,r){return O(e,r),n=>de(e,t,[n])}function Ea(e,t){if(e=`${e}`,e!=="bytes")throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function qa(e,t){return L(e,t),{preventCancel:!!e?.preventCancel}}function Pn(e,t){L(e,t);let r=e?.preventAbort,n=e?.preventCancel,o=e?.preventClose,a=e?.signal;return a!==void 0&&Aa(a,`${t} has member 'signal' that`),{preventAbort:!!r,preventCancel:!!n,preventClose:!!o,signal:a}}function Aa(e,t){if(!jo(e))throw new TypeError(`${t} is not an AbortSignal.`)}function Wa(e,t){L(e,t);let r=e?.readable;Ft(r,"readable","ReadableWritablePair"),jt(r,`${t} has member 'readable' that`);let n=e?.writable;return Ft(n,"writable","ReadableWritablePair"),an(n,`${t} has member 'writable' that`),{readable:r,writable:n}}class E{constructor(t={},r={}){t===void 0?t=null:qr(t,"First parameter");let n=nt(r,"Second parameter"),o=Ca(t,"First parameter");if(fr(this),o.type==="bytes"){if(n.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let a=Me(n,0);To(this,o,a)}else{let a=rt(n),i=Me(n,1);ma(this,o,i,a)}}get locked(){if(!ae(this))throw Se("locked");return ie(this)}cancel(t=void 0){return ae(this)?ie(this)?c(new TypeError("Cannot cancel a stream that already has a reader")):j(this,t):c(Se("cancel"))}getReader(t=void 0){if(!ae(this))throw Se("getReader");return vo(t,"First parameter").mode===void 0?Ce(this):en(this)}pipeThrough(t,r={}){if(!ae(this))throw Se("pipeThrough");Y(t,1,"pipeThrough");let n=Wa(t,"First parameter"),o=Pn(r,"Second parameter");if(ie(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(ve(n.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let a=wn(this,n.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal);return we(a),n.readable}pipeTo(t,r={}){if(!ae(this))return c(Se("pipeTo"));if(t===void 0)return c("Parameter 1 is required in 'pipeTo'.");if(!Pe(t))return c(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let n;try{n=Pn(r,"Second parameter")}catch(o){return c(o)}return ie(this)?c(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):ve(t)?c(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):wn(this,t,n.preventClose,n.preventAbort,n.preventCancel,n.signal)}tee(){if(!ae(this))throw Se("tee");let t=pa(this);return Ie(t)}values(t=void 0){if(!ae(this))throw Se("values");let r=qa(t,"First parameter");return uo(this,r.preventCancel)}[Nt](t){return this.values(t)}static from(t){return ga(t)}}Object.defineProperties(E,{from:{enumerable:!0}}),Object.defineProperties(E.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),d(E.from,"from"),d(E.prototype.cancel,"cancel"),d(E.prototype.getReader,"getReader"),d(E.prototype.pipeThrough,"pipeThrough"),d(E.prototype.pipeTo,"pipeTo"),d(E.prototype.tee,"tee"),d(E.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(E.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(E.prototype,Nt,{value:E.prototype.values,writable:!0,configurable:!0});function Qe(e,t,r,n=1,o=()=>1){let a=Object.create(E.prototype);fr(a);let i=Object.create(x.prototype);return Tn(a,i,e,t,r,n,o),a}function vn(e,t,r){let n=Object.create(E.prototype);fr(n);let o=Object.create(H.prototype);return Kr(n,o,e,t,r,0,void 0),n}function fr(e){e._state="readable",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function ae(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")?!1:e instanceof E}function ie(e){return e._reader!==void 0}function j(e,t){if(e._disturbed=!0,e._state==="closed")return S(void 0);if(e._state==="errored")return c(e._storedError);Ue(e);let r=e._reader;if(r!==void 0&&me(r)){let o=r._readIntoRequests;r._readIntoRequests=new k,o.forEach(a=>{a._closeSteps(void 0)})}let n=e._readableStreamController[qt](t);return Q(n,s)}function Ue(e){e._state="closed";let t=e._reader;if(t!==void 0&&(vr(t),ee(t))){let r=t._readRequests;t._readRequests=new k,r.forEach(n=>{n._closeSteps()})}}function En(e,t){e._state="errored",e._storedError=t;let r=e._reader;r!==void 0&&(Ot(r,t),ee(r)?kr(r,t):on(r,t))}function Se(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function qn(e,t){L(e,t);let r=e?.highWaterMark;return Ft(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:zt(r)}}let An=e=>e.byteLength;d(An,"size");class bt{constructor(t){Y(t,1,"ByteLengthQueuingStrategy"),t=qn(t,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!Bn(this))throw Wn("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!Bn(this))throw Wn("size");return An}}Object.defineProperties(bt.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(bt.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function Wn(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function Bn(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")?!1:e instanceof bt}let kn=()=>1;d(kn,"size");class mt{constructor(t){Y(t,1,"CountQueuingStrategy"),t=qn(t,"First parameter"),this._countQueuingStrategyHighWaterMark=t.highWaterMark}get highWaterMark(){if(!Fn(this))throw On("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!Fn(this))throw On("size");return kn}}Object.defineProperties(mt.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(mt.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function On(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function Fn(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")?!1:e instanceof mt}function Ba(e,t){L(e,t);let r=e?.cancel,n=e?.flush,o=e?.readableType,a=e?.start,i=e?.transform,u=e?.writableType;return{cancel:r===void 0?void 0:za(r,e,`${t} has member 'cancel' that`),flush:n===void 0?void 0:ka(n,e,`${t} has member 'flush' that`),readableType:o,start:a===void 0?void 0:Oa(a,e,`${t} has member 'start' that`),transform:i===void 0?void 0:Fa(i,e,`${t} has member 'transform' that`),writableType:u}}function ka(e,t,r){return O(e,r),n=>J(e,t,[n])}function Oa(e,t,r){return O(e,r),n=>de(e,t,[n])}function Fa(e,t,r){return O(e,r),(n,o)=>J(e,t,[n,o])}function za(e,t,r){return O(e,r),n=>J(e,t,[n])}class pt{constructor(t={},r={},n={}){t===void 0&&(t=null);let o=nt(r,"Second parameter"),a=nt(n,"Third parameter"),i=Ba(t,"First parameter");if(i.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(i.writableType!==void 0)throw new RangeError("Invalid writableType specified");let u=Me(a,0),p=rt(a),h=Me(o,1),y=rt(o),_,w=P(D=>{_=D});Ia(this,w,h,y,u,p),Da(this,i),i.start!==void 0?_(i.start(this._transformStreamController)):_(void 0)}get readable(){if(!zn(this))throw Mn("readable");return this._readable}get writable(){if(!zn(this))throw Mn("writable");return this._writable}}Object.defineProperties(pt.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(pt.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Ia(e,t,r,n,o,a){function i(){return t}function u(w){return $a(e,w)}function p(w){return Na(e,w)}function h(){return Qa(e)}e._writable=Lo(i,u,h,p,r,n);function y(){return Ua(e)}function _(w){return Ya(e,w)}e._readable=Qe(i,y,_,o,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,yt(e,!0),e._transformStreamController=void 0}function zn(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")?!1:e instanceof pt}function In(e,t){I(e._readable._readableStreamController,t),dr(e,t)}function dr(e,t){St(e._transformStreamController),Le(e._writable._writableStreamController,t),cr(e)}function cr(e){e._backpressure&&yt(e,!1)}function yt(e,t){e._backpressureChangePromise!==void 0&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=P(r=>{e._backpressureChangePromise_resolve=r}),e._backpressure=t}class se{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!_t(this))throw gt("desiredSize");let t=this._controlledTransformStream._readable._readableStreamController;return ur(t)}enqueue(t=void 0){if(!_t(this))throw gt("enqueue");jn(this,t)}error(t=void 0){if(!_t(this))throw gt("error");Ma(this,t)}terminate(){if(!_t(this))throw gt("terminate");La(this)}}Object.defineProperties(se.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),d(se.prototype.enqueue,"enqueue"),d(se.prototype.error,"error"),d(se.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(se.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function _t(e){return!l(e)||!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")?!1:e instanceof se}function ja(e,t,r,n,o){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=n,t._cancelAlgorithm=o,t._finishPromise=void 0,t._finishPromise_resolve=void 0,t._finishPromise_reject=void 0}function Da(e,t){let r=Object.create(se.prototype),n,o,a;t.transform!==void 0?n=i=>t.transform(i,r):n=i=>{try{return jn(r,i),S(void 0)}catch(u){return c(u)}},t.flush!==void 0?o=()=>t.flush(r):o=()=>S(void 0),t.cancel!==void 0?a=i=>t.cancel(i):a=()=>S(void 0),ja(e,r,n,o,a)}function St(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0,e._cancelAlgorithm=void 0}function jn(e,t){let r=e._controlledTransformStream,n=r._readable._readableStreamController;if(!Ae(n))throw new TypeError("Readable side is not in a state that permits enqueue");try{qe(n,t)}catch(a){throw dr(r,a),r._readable._storedError}ba(n)!==r._backpressure&&yt(r,!0)}function Ma(e,t){In(e._controlledTransformStream,t)}function Dn(e,t){let r=e._transformAlgorithm(t);return Q(r,void 0,n=>{throw In(e._controlledTransformStream,n),n})}function La(e){let t=e._controlledTransformStream,r=t._readable._readableStreamController;_e(r);let n=new TypeError("TransformStream terminated");dr(t,n)}function $a(e,t){let r=e._transformStreamController;if(e._backpressure){let n=e._backpressureChangePromise;return Q(n,()=>{let o=e._writable;if(o._state==="erroring")throw o._storedError;return Dn(r,t)})}return Dn(r,t)}function Na(e,t){let r=e._transformStreamController;if(r._finishPromise!==void 0)return r._finishPromise;let n=e._readable;r._finishPromise=P((a,i)=>{r._finishPromise_resolve=a,r._finishPromise_reject=i});let o=r._cancelAlgorithm(t);return St(r),v(o,()=>(n._state==="errored"?We(r,n._storedError):(I(n._readableStreamController,t),hr(r)),null),a=>(I(n._readableStreamController,a),We(r,a),null)),r._finishPromise}function Qa(e){let t=e._transformStreamController;if(t._finishPromise!==void 0)return t._finishPromise;let r=e._readable;t._finishPromise=P((o,a)=>{t._finishPromise_resolve=o,t._finishPromise_reject=a});let n=t._flushAlgorithm();return St(t),v(n,()=>(r._state==="errored"?We(t,r._storedError):(_e(r._readableStreamController),hr(t)),null),o=>(I(r._readableStreamController,o),We(t,o),null)),t._finishPromise}function Ua(e){return yt(e,!1),e._backpressureChangePromise}function Ya(e,t){let r=e._transformStreamController;if(r._finishPromise!==void 0)return r._finishPromise;let n=e._writable;r._finishPromise=P((a,i)=>{r._finishPromise_resolve=a,r._finishPromise_reject=i});let o=r._cancelAlgorithm(t);return St(r),v(o,()=>(n._state==="errored"?We(r,n._storedError):(Le(n._writableStreamController,t),cr(e),hr(r)),null),a=>(Le(n._writableStreamController,a),cr(e),We(r,a),null)),r._finishPromise}function gt(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function hr(e){e._finishPromise_resolve!==void 0&&(e._finishPromise_resolve(),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function We(e,t){e._finishPromise_reject!==void 0&&(we(e._finishPromise),e._finishPromise_reject(t),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function Mn(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}f.ByteLengthQueuingStrategy=bt,f.CountQueuingStrategy=mt,f.ReadableByteStreamController=H,f.ReadableStream=E,f.ReadableStreamBYOBReader=ne,f.ReadableStreamBYOBRequest=ce,f.ReadableStreamDefaultController=x,f.ReadableStreamDefaultReader=K,f.TransformStream=pt,f.TransformStreamDefaultController=se,f.WritableStream=oe,f.WritableStreamDefaultController=Ee,f.WritableStreamDefaultWriter=G})});var Un=mr(()=>{if(!globalThis.ReadableStream)try{let f=wt("node:process"),{emitWarning:s}=f;try{f.emitWarning=()=>{},Object.assign(globalThis,wt("node:stream/web")),f.emitWarning=s}catch(l){throw f.emitWarning=s,l}}catch{Object.assign(globalThis,Qn())}try{let{Blob:f}=wt("buffer");f&&!f.prototype.stream&&(f.prototype.stream=function(l){let b=0,d=this;return new ReadableStream({type:"bytes",async pull(R){let ue=await d.slice(b,Math.min(d.size,b+65536)).arrayBuffer();b+=ue.byteLength,R.enqueue(new Uint8Array(ue)),b===d.size&&R.close()}})})}catch{}});async function*pr(f,s=!0){for(let l of f)if("stream"in l)yield*l.stream();else if(ArrayBuffer.isView(l))if(s){let b=l.byteOffset,d=l.byteOffset+l.byteLength;for(;b!==d;){let R=Math.min(d-b,Yn),C=l.buffer.slice(b,b+R);b+=C.byteLength,yield new Uint8Array(C)}}else yield l;else{let b=0,d=l;for(;b!==d.size;){let C=await d.slice(b,Math.min(d.size,b+Yn)).arrayBuffer();b+=C.byteLength,yield new Uint8Array(C)}}}var ai,Yn,Vn,Va,ge,Pt=Ct(()=>{ai=$n(Un(),1);Yn=65536;Vn=class yr{#e=[];#t="";#r=0;#n="transparent";constructor(s=[],l={}){if(typeof s!="object"||s===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof s[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof l!="object"&&typeof l!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");l===null&&(l={});let b=new TextEncoder;for(let R of s){let C;ArrayBuffer.isView(R)?C=new Uint8Array(R.buffer.slice(R.byteOffset,R.byteOffset+R.byteLength)):R instanceof ArrayBuffer?C=new Uint8Array(R.slice(0)):R instanceof yr?C=R:C=b.encode(`${R}`),this.#r+=ArrayBuffer.isView(C)?C.byteLength:C.size,this.#e.push(C)}this.#n=`${l.endings===void 0?"transparent":l.endings}`;let d=l.type===void 0?"":String(l.type);this.#t=/^[\x20-\x7E]*$/.test(d)?d:""}get size(){return this.#r}get type(){return this.#t}async text(){let s=new TextDecoder,l="";for await(let b of pr(this.#e,!1))l+=s.decode(b,{stream:!0});return l+=s.decode(),l}async arrayBuffer(){let s=new Uint8Array(this.size),l=0;for await(let b of pr(this.#e,!1))s.set(b,l),l+=b.length;return s.buffer}stream(){let s=pr(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(l){let b=await s.next();b.done?l.close():l.enqueue(b.value)},async cancel(){await s.return()}})}slice(s=0,l=this.size,b=""){let{size:d}=this,R=s<0?Math.max(d+s,0):Math.min(s,d),C=l<0?Math.max(d+l,0):Math.min(l,d),ue=Math.max(C-R,0),P=this.#e,S=[],c=0;for(let v of P){if(c>=ue)break;let M=ArrayBuffer.isView(v)?v.byteLength:v.size;if(R&&M<=R)R-=M,C-=M;else{let N;ArrayBuffer.isView(v)?(N=v.subarray(R,Math.min(M,C)),c+=N.byteLength):(N=v.slice(R,Math.min(M,C)),c+=N.size),C-=M,S.push(N),R=0}}let W=new yr([],{type:String(b).toLowerCase()});return W.#r=ue,W.#e=S,W}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](s){return s&&typeof s=="object"&&typeof s.constructor=="function"&&(typeof s.stream=="function"||typeof s.arrayBuffer=="function")&&/^(Blob|File)$/.test(s[Symbol.toStringTag])}};Object.defineProperties(Vn.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Va=Vn,ge=Va});var Ha,Ga,vt,_r=Ct(()=>{Pt();Ha=class extends ge{#e=0;#t="";constructor(s,l,b={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(s,b),b===null&&(b={});let d=b.lastModified===void 0?Date.now():Number(b.lastModified);Number.isNaN(d)||(this.#e=d),this.#t=String(l)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](s){return!!s&&s instanceof ge&&/^(File)$/.test(s[Symbol.toStringTag])}},Ga=Ha,vt=Ga});function bi(f,s=ge){var l=`${Hn()}${Hn()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),b=[],d=`--${l}\r
2
- Content-Disposition: form-data; name="`;return f.forEach((R,C)=>typeof R=="string"?b.push(d+Sr(C)+`"\r
3
- \r
4
- ${R.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
5
- `)}\r
6
- `):b.push(d+Sr(C)+`"; filename="${Sr(R.name,1)}"\r
7
- Content-Type: ${R.type||"application/octet-stream"}\r
8
- \r
9
- `,R,`\r
10
- `)),b.push(`--${l}--`),new s(b,{type:"multipart/form-data; boundary="+l})}var Ye,xa,Za,Hn,Xa,Gn,Sr,Re,ci,Ja=Ct(()=>{Pt();_r();({toStringTag:Ye,iterator:xa,hasInstance:Za}=Symbol),Hn=Math.random,Xa="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),Gn=(f,s,l)=>(f+="",/^(Blob|File)$/.test(s&&s[Ye])?[(l=l!==void 0?l+"":s[Ye]=="File"?s.name:"blob",f),s.name!==l||s[Ye]=="blob"?new vt([s],l,s):s]:[f,s+""]),Sr=(f,s)=>(s?f:f.replace(/\r?\n|\r/g,`\r
11
- `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Re=(f,s,l)=>{if(s.length<l)throw new TypeError(`Failed to execute '${f}' on 'FormData': ${l} arguments required, but only ${s.length} present.`)},ci=class{#e=[];constructor(...s){if(s.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Ye](){return"FormData"}[xa](){return this.entries()}static[Za](s){return s&&typeof s=="object"&&s[Ye]==="FormData"&&!Xa.some(l=>typeof s[l]!="function")}append(...s){Re("append",arguments,2),this.#e.push(Gn(...s))}delete(s){Re("delete",arguments,1),s+="",this.#e=this.#e.filter(([l])=>l!==s)}get(s){Re("get",arguments,1),s+="";for(var l=this.#e,b=l.length,d=0;d<b;d++)if(l[d][0]===s)return l[d][1];return null}getAll(s,l){return Re("getAll",arguments,1),l=[],s+="",this.#e.forEach(b=>b[0]===s&&l.push(b[1])),l}has(s){return Re("has",arguments,1),s+="",this.#e.some(l=>l[0]===s)}forEach(s,l){Re("forEach",arguments,1);for(var[b,d]of this)s.call(l,d,b,this)}set(...s){Re("set",arguments,2);var l=[],b=!0;s=Gn(...s),this.#e.forEach(d=>{d[0]===s[0]?b&&(b=!l.push(s)):l.push(d)}),b&&l.push(s),this.#e=l}*entries(){yield*this.#e}*keys(){for(var[s]of this)yield s}*values(){for(var[,s]of this)yield s}}});var Zn=mr((pi,xn)=>{if(!globalThis.DOMException)try{let{MessageChannel:f}=wt("worker_threads"),s=new f().port1,l=new ArrayBuffer;s.postMessage(l,[l,l])}catch(f){f.constructor.name==="DOMException"&&(globalThis.DOMException=f.constructor)}xn.exports=globalThis.DOMException});import{statSync as Xn,createReadStream as Ka,promises as ei}from"node:fs";import{basename as ti}from"node:path";var Jn,gr,Ri,wi,Ci,Ti,Kn,eo,Et,ri=Ct(()=>{Jn=$n(Zn(),1);_r();Pt();({stat:gr}=ei),Ri=(f,s)=>Kn(Xn(f),f,s),wi=(f,s)=>gr(f).then(l=>Kn(l,f,s)),Ci=(f,s)=>gr(f).then(l=>eo(l,f,s)),Ti=(f,s)=>eo(Xn(f),f,s),Kn=(f,s,l="")=>new ge([new Et({path:s,size:f.size,lastModified:f.mtimeMs,start:0})],{type:l}),eo=(f,s,l="")=>new vt([new Et({path:s,size:f.size,lastModified:f.mtimeMs,start:0})],ti(s),{type:l,lastModified:f.mtimeMs}),Et=class f{#e;#t;constructor(s){this.#e=s.path,this.#t=s.start,this.size=s.size,this.lastModified=s.lastModified}slice(s,l){return new f({path:this.#e,lastModified:this.lastModified,size:l-s,start:this.#t+s})}async*stream(){let{mtimeMs:s}=await gr(this.#e);if(s>this.lastModified)throw new Jn.default("The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.","NotReadableError");yield*Ka(this.#e,{start:this.#t,end:this.#t+this.size-1})}get[Symbol.toStringTag](){return"Blob"}}});export{ge as a,Pt as b,vt as c,ci as d,bi as e,Ja as f,Ri as g,wi as h,Ci as i,Ti as j,ri as k};
12
- /*! Bundled license information:
13
-
14
- web-streams-polyfill/dist/ponyfill.es2018.js:
15
- (**
16
- * @license
17
- * web-streams-polyfill v3.3.3
18
- * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors.
19
- * This code is released under the MIT license.
20
- * SPDX-License-Identifier: MIT
21
- *)
22
-
23
- fetch-blob/index.js:
24
- (*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
25
-
26
- formdata-polyfill/esm.min.js:
27
- (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
28
-
29
- node-domexception/index.js:
30
- (*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
31
- */
@@ -1 +0,0 @@
1
- import{d as r}from"./chunk-JVCVWI3B.js";import{i}from"./chunk-XNGHRJVK.js";var t=async e=>{try{return await r`which ${e}`.noThrow().code()===0}catch{return!1}},s=async()=>{try{return(await fetch("http://localhost:11434/api/version",{signal:AbortSignal.timeout(1e3)})).ok}catch{return!1}},a=e=>i.env.has(e),d=async()=>{let[e,o,l,n]=await Promise.all([t("claude"),s(),t("opencode"),t("kiro")]);return[{name:"claude-code",alias:"cc",type:"CLI",available:e,detail:e?"claude binary found":"claude not on PATH"},{name:"ollama",alias:"ol",type:"HTTP",available:o,detail:o?"localhost:11434 reachable":"localhost:11434 not reachable"},{name:"opencode",alias:"oc",type:"CLI",available:l,detail:l?"opencode binary found":"opencode not on PATH"},{name:"kiro",alias:"kr",type:"CLI",available:n,detail:n?"kiro binary found":"kiro not on PATH"},{name:"anthropic",alias:"ant",type:"API",available:a("ANTHROPIC_API_KEY"),detail:a("ANTHROPIC_API_KEY")?"ANTHROPIC_API_KEY set":"ANTHROPIC_API_KEY not set"},{name:"openai",alias:"oai",type:"API",available:a("OPENAI_API_KEY"),detail:a("OPENAI_API_KEY")?"OPENAI_API_KEY set":"OPENAI_API_KEY not set"},{name:"gemini",alias:"gem",type:"API",available:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY"),detail:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY")?"API key set":"GEMINI_API_KEY not set"},{name:"vertexai",alias:"vtx",type:"API",available:a("GOOGLE_CLOUD_PROJECT"),detail:a("GOOGLE_CLOUD_PROJECT")?"GOOGLE_CLOUD_PROJECT set":"GOOGLE_CLOUD_PROJECT not set"}]};export{d as a};
@@ -1 +0,0 @@
1
- var l={id:"open-source",name:"Open Source",description:"Community-driven, inclusive, well-documented. Prioritize contributor experience, avoid exclusionary patterns, default to permissive choices.",extras:[{questionId:"status_quo",text:"Is this workaround common in the community?"},{questionId:"user_impact",text:"Does this make contribution harder?"},{questionId:"verification",text:"Can a new contributor understand and modify this within 30 minutes of reading?"}],specSections:["Contributor Guide","Public API Surface"],reminders:["Endpoint should be documented in API docs","Consider contributor experience for new patterns","Default to permissive, well-documented choices","New features and API changes must be documented so contributors can discover and use them"],acceptanceCriteria:["Public API documented","Changes reflected in README or relevant docs","No exclusionary patterns introduced"],reviewDimensions:[{id:"contributor-onboarding",label:"Contributor Onboarding",prompt:"Walk through the contributor journey: clone \u2192 install \u2192 run \u2192 modify \u2192 test \u2192 PR. Where does it break? What's undocumented? What would confuse someone seeing this repo for the first time?",evidenceRequired:!0,scope:"all"},{id:"api-surface-quality",label:"API Surface Quality",prompt:"Review every public export, CLI flag, and config option touched by this change. Are names self-explanatory? Are defaults sensible? Is progressive disclosure working (simple things simple, complex things possible)?",evidenceRequired:!0,scope:"api"},{id:"docs-findability",label:"Documentation Findability",prompt:"For each new feature: can a user discover it from README? Are code examples copy-paste runnable? Is there a gap between 'documented' and 'findable'?",evidenceRequired:!0,scope:"all"}]};var u={id:"beautiful-product",name:"Beautiful Product",description:"Design and UX are first-class. Agent critiques UI/UX like a passionate designer. Empty states, error states, loading states, mobile layout \u2014 nothing ships unspecified.",extras:[{questionId:"status_quo",text:"How painful is the current experience?"},{questionId:"status_quo",text:"What does the current UI look like? Rate it 0-10 on design intentionality."},{questionId:"ambition",text:"In the 10-star version, what does the user feel?"},{questionId:"ambition",text:"What would a 10/10 design look like for this feature? Describe the emotional response you want from users."},{questionId:"ambition",text:"What makes this UI NOT look AI-generated? Name specific design decisions that differentiate it from generic templates."},{questionId:"verification",text:"How will you verify design quality? Will you review empty states, loading states, error states, and edge cases (long text, zero results, slow connection)?"}],specSections:["Design States (empty, loading, error, success)","Mobile Layout","Interaction Design","Accessibility"],reminders:["Loading state and error state must be designed, not placeholder","No AI slop \u2014 every UI element is intentional","Empty states need clear CTAs with examples","Rate each UI change 0-10 on design intentionality before marking task complete. If below 7, iterate.","Check all interaction states: loading, empty, error, success, partial. Missing states are bugs, not TODOs.","Edge case check: what happens with 47-character names? Zero results? Network failure mid-action?","AI SLOP BLACKLIST \u2014 reject these patterns in any UI implementation: (1) Purple/violet gradient backgrounds (2) 3-column feature grid with icon-in-circle + bold title + 2-line description (3) Icons in colored circles as decoration (4) Everything centered (text-align: center on all elements) (5) Uniform bubbly border-radius on every element (6) Decorative blobs, floating circles, wavy SVG dividers (7) Emoji as design elements in headings or bullets (8) Colored left-border on cards (9) Generic hero copy ('Welcome to X', 'Unlock the power of...') (10) Cookie-cutter section rhythm (hero \u2192 3 features \u2192 testimonials \u2192 pricing). If the implementation matches any of these patterns, reject it and ask for a redesign with specific, intentional alternatives."],acceptanceCriteria:["All UI states designed (empty, loading, error, success)","Mobile layout considered","No placeholder or skeleton UI left unfinished","All UI states specified and implemented: loading, empty, error, success, partial","No placeholder text in shipped UI \u2014 every empty state has warmth, a primary action, and context","Design rated 7+ on intentionality by the spec author","Basic accessibility: keyboard navigation works, focus indicators visible, sufficient contrast"],reviewDimensions:[{id:"info-hierarchy",label:"Information Hierarchy",prompt:"What does the user see FIRST, SECOND, THIRD? Is the visual hierarchy intentional or accidental? Would a user arriving cold know what to do within 3 seconds?",evidenceRequired:!0,scope:"ui"},{id:"interaction-states",label:"Interaction State Completeness",prompt:"For every UI component in this change, verify: loading state, empty state, error state, success state, partial state. Build a matrix \u2014 mark any MISSING states.",evidenceRequired:!0,scope:"ui"},{id:"user-journey",label:"User Journey & Emotional Arc",prompt:"Walk through the user's complete journey for this feature. What's the emotional arc \u2014 curiosity \u2192 understanding \u2192 action \u2192 satisfaction? Where does it break? Where does it feel mechanical instead of crafted?",evidenceRequired:!1,scope:"ui"},{id:"accessibility",label:"Accessibility Audit",prompt:"Keyboard navigation: can every action be completed without a mouse? Focus management: is focus trapped in modals, restored after close? Contrast: WCAG 2.1 AA (4.5:1 text, 3:1 UI)? Touch targets: minimum 44x44px? Screen reader: are interactive elements labeled?",evidenceRequired:!0,scope:"ui"},{id:"design-system",label:"Design System Alignment",prompt:"Does this change use existing design tokens (colors, spacing, typography) or introduce new ones? If new \u2014 is that intentional? Check for consistency with adjacent screens.",evidenceRequired:!0,scope:"ui"}]};var p={id:"long-lived",name:"Long-Lived",description:"Built to last. Stability, maintainability, and backward compatibility matter. Every shortcut needs justification. Favor boring technology.",extras:[{questionId:"reversibility",text:"Will this decision still be correct in 2 years?"},{questionId:"verification",text:"Is documentation (README, CHANGELOG, API docs) up to date with this change?"},{questionId:"scope_boundary",text:"What technical debt would this introduce?"},{questionId:"status_quo",text:"What assumptions in the current architecture would this change rely on? Could any of them break?"}],specSections:["Migration & Deprecation","Backward Compatibility","Error Recovery","Deployment Plan"],reminders:["Favor boring technology over shiny new tools","Every shortcut needs explicit justification","Consider maintenance burden for new dependencies","If this task changes public behavior, API, CLI flags, or configuration \u2014 update README and relevant docs in the SAME task. Documentation is not a follow-up."],acceptanceCriteria:["Backward compatibility preserved","Migration path documented if breaking","No unnecessary new dependencies","Documentation updated for any public-facing change","Rollback plan exists (how to undo this change if it goes wrong)"],reviewDimensions:[{id:"architecture",label:"Architecture & Coupling",prompt:"Draw the dependency graph for this change. Which modules depend on what? Are there circular dependencies? Single points of failure? Would removing one piece break the whole thing? Is the coupling direction correct (stable \u2192 volatile, not the reverse)?",evidenceRequired:!0,scope:"all"},{id:"error-rescue",label:"Error & Rescue Registry",prompt:"For every new codepath: what can go wrong? Build a table: Method/Codepath | What Can Go Wrong | Exception Class | Rescued? | Recovery Action | User Sees. Flag any row where Rescued=No or User Sees=raw error.",evidenceRequired:!0,scope:"all"},{id:"failure-modes",label:"Failure Modes Analysis",prompt:"For every new codepath: Codepath | Failure Mode | Rescued? | Tested? | User Sees | Logged? Flag CRITICAL gaps: unrescued + untested + silent failure. These block ship.",evidenceRequired:!0,scope:"all"},{id:"deployment-safety",label:"Deployment & Rollback Safety",prompt:"Can this be deployed incrementally? What happens during partial deployment (old code + new code running simultaneously)? Is rollback safe \u2014 can you revert without data loss or schema conflicts? Do you need feature flags?",evidenceRequired:!1,scope:"all"},{id:"trajectory",label:"6-Month Trajectory",prompt:"Fast-forward 6 months. What assumptions in this design might break? What would you regret? Is this creating path dependency that limits future options? What's the cost of changing course later?",evidenceRequired:!1,scope:"all"}],registries:["error-rescue","failure-modes"],dreamStatePrompt:"Synthesize: CURRENT STATE (what exists today) \u2192 THIS SPEC (what changes) \u2192 6-MONTH IDEAL (where should this be heading). What does the ideal architecture look like?"};var h={id:"move-fast",name:"Move Fast",description:"Optimize for shipping speed. Acceptable trade-offs on polish. Good enough is good enough. Reduce ceremony.",extras:[{questionId:"scope_boundary",text:"Which polish items can be deferred to v2?"},{questionId:"ambition",text:"What is the minimum viable 5-star version?"}],specSections:["v1 vs v2 Scope"],reminders:["Good enough is good enough \u2014 ship it","Reduce ceremony, optimize for feedback speed","Mark polish items for v2 explicitly"],acceptanceCriteria:["Core functionality works","v2 items explicitly deferred"],reviewDimensions:[{id:"scope-knife",label:"Scope Knife",prompt:"For every task in this spec: is it v1-essential or v2-deferrable? Apply the rule: if removing this task still leaves a usable feature, it's v2. Be aggressive \u2014 list everything you'd cut and what remains.",evidenceRequired:!1,scope:"all"}]};var m={id:"compliance",name:"Compliance",description:"Audit trails, access controls, data handling rules. Every change is traceable. Verification is mandatory, not optional.",extras:[{questionId:"reversibility",text:"Is the audit trail preserved on rollback?"},{questionId:"verification",text:"Is there an audit/traceability requirement?"}],specSections:["Audit Trail","Access Control","Data Handling"],reminders:["Every state change must be traceable","Verification is mandatory, not optional","Document data handling and retention policies"],acceptanceCriteria:["Audit trail added for state changes","Access control verified","Data handling documented"],reviewDimensions:[{id:"audit-completeness",label:"Audit Trail Completeness",prompt:"For every state mutation in this change: is it logged? Who, what, when, from-value, to-value? Can you reconstruct the full history of any record from the audit log alone?",evidenceRequired:!0,scope:"data"},{id:"data-lifecycle",label:"Data Lifecycle & Retention",prompt:"What data does this feature create, read, update, delete? What's the retention policy? Can a user request deletion (GDPR)? Is PII identified and handled correctly?",evidenceRequired:!0,scope:"data"}]};var g={id:"learning-project",name:"Learning Project",description:"Experimentation is the goal. Encourage trying new patterns, don't punish dead ends. Document learnings over polish.",extras:[{questionId:"ambition",text:"What do you want to learn from building this?"},{questionId:"scope_boundary",text:"What experiments are explicitly allowed?"}],specSections:["Learning Goals","Experiment Log"],reminders:["Document learnings, not just outcomes","Dead ends are acceptable \u2014 document why","Try new patterns freely, polish later"],acceptanceCriteria:["Learnings documented","Experiment outcomes recorded"],reviewDimensions:[{id:"learning-clarity",label:"Learning Goal Clarity",prompt:"For each learning goal: what specific question will be answered? How will you know if the experiment succeeded or failed? What's the 'good enough to learn from' threshold?",evidenceRequired:!1,scope:"all"}]};var f={id:"well-engineered",name:"Well-Engineered",description:"Engineering craftsmanship. Performance is measured, not assumed. Tests are strategic, not ceremonial. Errors are helpful, not cryptic. Security is a design constraint, not a checklist. Observability is built-in, not bolted on. The system is debuggable by someone who didn't write it.",extras:[{questionId:"verification",text:"What's the test strategy? Which layer (unit/integration/e2e) covers which behavior? What's explicitly NOT worth testing?"},{questionId:"status_quo",text:"Are there known performance bottlenecks, missing logs, security concerns, or confusing error messages in the area you're changing?"},{questionId:"ambition",text:"If a developer encounters an error from this code at 3am \u2014 will the error message tell them the problem, the cause, and the fix?"},{questionId:"scope_boundary",text:"Does this change introduce new inputs, new trust boundaries, or new attack surface? What's the threat model?"},{questionId:"user_impact",text:"What's the Time-To-Hello-World for a developer using this for the first time? How many steps from install to first success?"}],specSections:["Test Strategy","Performance Considerations","Observability Plan","Error Handling","Security & Threat Model","Developer Ergonomics"],reminders:["Every error message should contain: what went wrong, why, and what to do about it. 'Something went wrong' is never acceptable.","Test at the right level: unit for logic, integration for boundaries, e2e for critical paths. More tests is better than fewer \u2014 but pointless tests are noise.","Performance claims need evidence: run the benchmark, check the query plan, measure the memory. 'Should be fast' is not engineering.","Every new codepath must be observable: structured log at entry/exit, metric for latency, trace ID for correlation. If you can't see it in production, it doesn't exist.","Escape hatches: every opinionated default should be overridable via config, env var, or parameter. Don't trap users.","Every user input is hostile until validated. Validate at system boundaries, not deep inside business logic.","Never log secrets, tokens, passwords, or PII. Check log output for accidental exposure.","New endpoints need auth/authz. Default to deny.","Progressive disclosure: simple things simple, complex things possible. Don't front-load complexity."],acceptanceCriteria:["Test strategy covers happy path AND failure paths at appropriate layers","No N+1 queries or obvious performance regressions (evidence required)","New codepaths have structured logging with trace correlation","Error messages include problem, cause, and remediation","All user inputs validated at system boundaries","No hardcoded secrets or credentials in code","New endpoints have explicit auth/authz","Getting started path works end-to-end without undocumented steps"],reviewDimensions:[{id:"test-strategy",label:"Test Pyramid Strategy",prompt:"Map every new behavior to a test layer: Unit (pure logic, fast, isolated) | Integration (boundaries, I/O, real deps) | E2E (critical user flows). Flag: untested failure paths, tests that test framework instead of behavior, missing edge cases. Too many tests > too few.",evidenceRequired:!0,scope:"all"},{id:"performance",label:"Performance Analysis",prompt:"For every new codepath: What's the time complexity? Any N+1 queries? Missing database indexes? Unbounded memory growth? Unnecessary serialization? Are there hot paths that need caching? Measure, don't guess.",evidenceRequired:!0,scope:"all"},{id:"observability",label:"Observability & Debuggability",prompt:"For every new codepath: Is there structured logging at entry and exit? Metrics for latency and error rate? Trace ID propagation? If this breaks at 3am, can oncall diagnose it from dashboards and logs without reading source code? What alerts should fire?",evidenceRequired:!0,scope:"all"},{id:"error-quality",label:"Error Message Quality",prompt:"Find every error message, exception, and user-facing failure in this change. For each: does it state the PROBLEM (what happened), CAUSE (why), and FIX (what to do)? Does it include enough context to debug (IDs, paths, values)? Would a user or developer at 3am understand it without reading source code?",evidenceRequired:!0,scope:"all"},{id:"threat-model",label:"Threat Model & Security",prompt:"What are the trust boundaries in this change? Where does untrusted input enter? What could an attacker do \u2014 injection (SQL, XSS, command), privilege escalation, data exfiltration, denial of service? For every new endpoint: who can access it? Is authorization checked at the right layer (not just UI)?",evidenceRequired:!0,scope:"all"},{id:"input-validation",label:"Input Validation Audit",prompt:"Find every point where external data enters the system (HTTP params, file uploads, env vars, webhook payloads, user-controlled DB fields). For each: what validation exists? Maximum size/length? Types enforced? Sanitized before rendering (XSS) or query construction (injection)?",evidenceRequired:!0,scope:"all"},{id:"secrets-lifecycle",label:"Secrets & Credentials",prompt:"What secrets does this change use or introduce (API keys, tokens, passwords, encryption keys)? Where stored? How rotated? Ever logged, serialized to JSON, or included in error messages? Dependencies: any new ones with known CVEs?",evidenceRequired:!0,scope:"all"},{id:"escape-hatches",label:"Escape Hatches & Overridability",prompt:"List every opinionated default introduced by this change (timeouts, limits, formats, behaviors). For each: can the user override it? Via config, env var, or parameter? If not \u2014 should they be able to? Every opinion needs an escape hatch.",evidenceRequired:!0,scope:"all"},{id:"dev-friction",label:"Developer Environment & Onboarding",prompt:"After this change: does `git clone && install && run` still work without manual steps? Any new env vars, services, or tools required? What's the Time-To-Hello-World? Is the dev setup documented? Would a new team member be blocked?",evidenceRequired:!1,scope:"all"},{id:"api-ergonomics",label:"API/CLI Ergonomics",prompt:"Review every public API method, CLI command, and config option touched by this change. Names self-explanatory? Defaults sensible? Progressive disclosure working (simple things simple, complex things possible)? Breaking changes have migration guide with before/after?",evidenceRequired:!0,scope:"api"}],registries:["test-plan"]};var y=[l,u,p,h,m,g,f];var _=()=>Promise.resolve(y),z=(n,e)=>{let t=[];for(let i of n)for(let o of i.extras)o.questionId===e&&t.push(o);return t},$=(n,e)=>{let t=[];for(let i of n)for(let o of i.reminders){if(e!=null){let s=o.toLowerCase();if((s.includes("slop")||s.includes("ui element")||s.includes("design intentionality")||s.includes("interaction states")||s.includes("edge case check")||s.includes("loading state"))&&!e.involvesWebUI||(s.includes("api doc")||s.includes("endpoint should be"))&&!e.involvesPublicAPI)continue}t.push(`${i.id}: ${o}`)}return t},v=n=>{let e=n.toLowerCase();return e.includes("slop")||e.includes("ui element")||e.includes("design intentionality")||e.includes("interaction states")||e.includes("edge case check")||e.includes("loading state")||e.includes("api doc")||e.includes("endpoint should be")||e.includes("migration")||e.includes("rollback")},V=n=>{let e=[],t=[];for(let i of n)for(let o of i.reminders){let s=`${i.id}: ${o}`;v(o)?t.push(s):e.push(s)}return{tier1:e,tier2:t}},X=(n,e,t)=>{let i=e.includes(".")?`.${e.split(".").pop()}`:"",o=[".tsx",".jsx",".html",".css",".svelte",".vue"].includes(i),s=[".ts",".go",".py",".rs"].includes(i),c=[];for(let d of n)for(let a of d.reminders){if(!v(a))continue;let r=a.toLowerCase();(r.includes("slop")||r.includes("ui element")||r.includes("design intentionality")||r.includes("interaction states")||r.includes("edge case check")||r.includes("loading state"))&&!o||(r.includes("api doc")||r.includes("endpoint should be"))&&(!s||!t?.involvesPublicAPI)||c.push(`${d.id}: ${a}`)}return c},J=n=>{let e=[],t=n.map(i=>i.id);return t.includes("move-fast")&&t.includes("compliance")&&e.push({between:["move-fast","compliance"],issue:"Speed vs traceability \u2014 shortcuts may violate audit requirements."}),t.includes("move-fast")&&t.includes("long-lived")&&e.push({between:["move-fast","long-lived"],issue:"Shipping speed vs maintainability \u2014 tech debt decisions need human approval."}),t.includes("beautiful-product")&&t.includes("move-fast")&&e.push({between:["beautiful-product","move-fast"],issue:"Design polish vs speed \u2014 which UI states can be deferred?"}),t.includes("well-engineered")&&t.includes("move-fast")&&e.push({between:["well-engineered","move-fast"],issue:"Engineering rigor vs shipping speed \u2014 which quality dimensions (tests, observability, security hardening) can be deferred to v2?"}),t.includes("well-engineered")&&t.includes("learning-project")&&e.push({between:["well-engineered","learning-project"],issue:"Engineering standards vs experimentation freedom \u2014 how much test/security/observability rigor is appropriate for an experiment?"}),e},K=(n,e)=>{let t=[];for(let i of n)for(let o of i.reviewDimensions??[])e!=null&&(o.scope==="ui"&&!e.involvesWebUI||o.scope==="api"&&!e.involvesPublicAPI||o.scope==="data"&&!e.involvesDataHandling)||t.push({...o,concernId:i.id});return t},Q=n=>{let e=[];for(let t of n)for(let i of t.registries??[])e.includes(i)||e.push(i);return e},Z=n=>n.filter(e=>e.dreamStatePrompt!==void 0&&e.dreamStatePrompt.length>0).map(e=>e.dreamStatePrompt);export{y as a,_ as b,z as c,$ as d,V as e,X as f,J as g,K as h,Q as i,Z as j};
@@ -1,5 +0,0 @@
1
- import{d as Z,e as ee}from"./chunk-PKYW3S5P.js";import{a as te}from"./chunk-7UX6WIXX.js";import{b as Y,c as J}from"./chunk-O2NUECRA.js";import{a as W,d as F,e as V,g as j,h as X,i as K,j as z}from"./chunk-D3IKJ7FF.js";import{c as ne}from"./chunk-UT6ZCLRA.js";import{i as Q}from"./chunk-XNGHRJVK.js";var T=e=>ne(e),o=(e,t)=>T(t===null?e:`spec ${t} ${e}`),ae="NEVER run git write commands (commit, add, push, checkout, stash, reset, merge, rebase, cherry-pick). Git is read-only for agents. The user controls git. You may read: git log, git diff, git status, git show, git blame.",_={hasAskUserTool:!0,optionPresentation:"tool",hasSubAgentDelegation:!0,subAgentMethod:"task"},le=(e,t,n,s,r,l=_)=>{let m=e.execution.iteration>=t,u=l.hasAskUserTool?"Use AskUserQuestion for all decision points.":"Present options as a numbered list at every decision point.",p=[];n||p.push(ae),p.push("Report progress honestly. Not done = 'not done'. Partial = 'partial: [works]/[doesn't]'. Untested = 'untested'. 4 of 6 = '4 of 6 done, 2 remaining'.",`Never skip steps or infer decisions. ${u} Recommend first, then ask. One noskills call per interaction \u2014 never batch-submit or backfill.`,"Display `roadmap` before other content. Display `gate` prominently.","NEVER suggest bypassing, skipping, or 'breaking out of' noskills. Discovery helps the user \u2014 it is not an obstacle. If scope changes: revise spec, reset and create new, or split.","NEVER ask permission to run the next noskills command. After spec new \u2192 run next immediately. After answering questions \u2192 run next. After approve \u2192 run next. After task completion \u2192 run next. The workflow is sequential \u2014 each step has one next step. Just run it.","Listen first: after spec creation, ask 'Tell me about this \u2014 share as much context as you have.' Wait for their response before mode selection. Rich context (>200 chars) \u2192 pre-fill discovery answers as STATED/INFERRED. Brief response \u2192 proceed normally.",'Discovery questions are adaptive. After each answer, generate 1-3 follow-up questions if the answer reveals ambiguity, risk, dependencies, or missing detail. Submit follow-ups via `noskills spec <name> followup <questionId> "question"`. Max 3 per question. Do NOT rush through discovery.',"Confidence scoring: every technical finding needs a confidence score (1-10). 9-10: verified (read code, ran test). 7-8: strong evidence. 5-6: reasonable inference. 3-4: guess. 1-2: speculation. State basis ('read X', 'inferred from Y'). If confidence < 5, prefix with '\u26A0 Unverified:'.");let b=r?.outOfScope??[],x=e.spec;switch(e.phase){case"IDLE":{let d=l.optionPresentation==="tool"?"Pass interactiveOptions DIRECTLY to AskUserQuestion options array (header max 12 chars). Use commandMap to resolve selections. For availableConcerns: AskUserQuestion with multiSelect:true, max 4 per question \u2014 split across questions if needed. Present ALL concerns.":"Present interactiveOptions as numbered list. Use commandMap to resolve selections. Present ALL availableConcerns as numbered list for multiselect.";return{rules:["If the user described a feature/bug/task, create a spec immediately: `noskills spec new \"description\"` \u2014 name is auto-generated. Do NOT present menus or ask 'What would you like to do?' unless the conversation has no prior context.",...p,d,"Encourage full context: 'Tell me what you want to build \u2014 one-liner, detailed requirements, meeting notes, anything.' Slug is auto-generated. Pass full text to `noskills spec new \"...\"`.","After spec new, ask: full discovery, quick discovery, or skip to spec draft. Never skip without asking.","Every task gets a spec. No exceptions. A one-liner fix, a config change, a 'simple' refactor \u2014 all get specs. The spec can be short but it must exist. 'Too simple for a spec' is the anti-pattern."],tone:"Welcoming. Present choices, then wait."}}case"DISCOVERY":{let d=l.hasAskUserTool?"Ask each question via AskUserQuestion. One question per call.":"Ask one question at a time as text.";return{modeOverride:"plan mode. DO NOT create, edit, or write any files. DO NOT run state-modifying commands. MAY read files and run read-only commands (cat, ls, grep, git log, git diff).",rules:[...p,`${d} Never answer questions yourself. Never submit answers without user confirmation. Pre-fill suggested answers from detailed descriptions \u2014 user must confirm each. With a fully formed plan, skip questions but MUST run premise challenge and alternatives.`,"DO NOT create, edit, or write any files.","DO NOT run shell commands that modify state.","You MAY read files and run read-only commands (cat, ls, grep, git log, git diff).","Pre-discovery: (1) pre-discovery codebase scan \u2014 read README, CLAUDE.md, design docs, last 20 commits, TODOs, existing specs, directory structure. Present a brief audit summary. (2) If `preDiscoveryResearch.required`, web-search every `extractedTerms` entry \u2014 report versions, API changes, deprecations. (3) Ask discovery mode: A) Explore scope B) Technical depth C) Validate my plan D) Ship fast. Adapt emphasis accordingly.","Before starting discovery questions, challenge the user's initial spec description against codebase findings. Flag: hidden complexity, conflicts with existing code, scope mismatch, overlapping modules. Ask clarifying follow-ups.","When asking questions, offer concrete options from codebase knowledge alongside the open-ended question (e.g., 'I see three scenarios: A)... B)... C)... D) Something else'). Push back on vague answers. Follow up on short answer with 'Can you be more specific?'",(()=>{let i=z(s);return`${i.length>0?`After answers, ${i.join(" Also: ")}`:"After answers, synthesize CURRENT STATE \u2192 THIS SPEC \u2192 6-MONTH IDEAL vision."} Then: (1) expansion opportunities as numbered proposals with effort (S/M/L/XL), risk, completeness delta \u2014 options: Add/Defer/Skip. (2) Architectural decisions that BLOCK implementation \u2014 present with options, RECOMMENDATION, completeness scores. Unresolved = risk flag. (3) Error/rescue map: codepath | failure mode | handling. Flag CRITICAL GAPS as decisions.`})(),"Present DISCOVERY SUMMARY for confirmation: intent, scope, dream state, expansions, architectural decisions, error map. Ask for confirmation before generating spec. Submit all answers together in one `noskills next --answer` JSON call."],tone:"Curious interviewer with a stake in the answers. Comes PREPARED \u2014 read the codebase first. Challenge assumptions, think about architecture and failure modes."}}case"DISCOVERY_REVIEW":return{modeOverride:"You are in plan mode. Do not create, edit, or write any files. Present the discovery answers to the user for review and confirmation.",rules:[...p,"DO NOT create, edit, or write any files.","Present ALL discovery answers to the user clearly, one by one.",l.hasAskUserTool?"Use AskUserQuestion to ask: 'Are these answers correct, or would you like to revise any?'":"Ask the user: 'Are these answers correct, or would you like to revise any?' Present approval and revision as numbered options.","If the user approves, run the approve command.","If the user wants to revise, collect their corrections and submit them.","You MUST NOT approve on behalf of the user. The user must explicitly confirm.","If noskills output contains a splitProposal, present it to the user with the exact options shown. Do NOT split or merge specs on your own. Do NOT recommend one option over the other unless the user asks for your opinion. The user decides."],tone:"Careful reviewer. The user must confirm every answer."};case"SPEC_DRAFT":{let d=e.discovery.delegations??[],i=[];if(d.length>0){let c=d.filter(f=>f.status==="pending"),y=d.filter(f=>f.status==="answered"),k=d.map(f=>`- ${f.questionId}: delegated to ${f.delegatedTo} \u2014 ${f.status==="answered"?"ANSWERED \u2713":"PENDING"}`);i.push(`DELEGATION STATUS:
2
- ${k.join(`
3
- `)}${c.length>0?`
4
- Approve BLOCKED \u2014 ${c.length} pending delegation(s).`:`
5
- All ${y.length} delegation(s) answered. Approve is allowed.`}`)}return{modeOverride:"plan mode. DO NOT create, edit, or write any files. DO NOT run state-modifying commands. MAY read files and run read-only commands.",rules:[...p,...i,"DO NOT create, edit, or write any files.","Read the spec and present a summary to the user.","Flag any tasks that are too vague to execute.","Flag any missing acceptance criteria.","No placeholders in specs. If a task has 'TBD', 'TODO', 'to be determined', 'details to follow', or 'implement appropriate X' \u2014 fill in the detail or remove the task and add it as an open question.","Ask the user if they want to refine before approving.",l.hasAskUserTool?"When presenting classification options, use AskUserQuestion with multiSelect:true. Do NOT infer classification yourself.":"When presenting classification options, present them as a numbered list with multiselect (user picks multiple numbers). Do NOT infer classification yourself.","When generating or refining tasks, include a 'Files:' hint listing likely files to create/modify. Format: 'Files: `path/to/file.ts`, `path/to/other.ts`'. Hints, not constraints \u2014 helps sub-agents load right context.","If you identify issues in the spec (vague tasks, irrelevant sections, missing acceptance criteria), submit a refinement via: `"+o(`next --answer='{"refinement":"task-1: Add upload endpoint, task-2: Add validation middleware, task-3: Write integration tests"}'`,x)+"`. The spec will be updated and you can review again."],tone:"Thoughtful reviewer preparing to hand off to an implementer."}}case"SPEC_APPROVED":return{rules:[...p,"The spec is approved but execution has not started.","Do not start coding until the user triggers execution.","If the user wants changes, they must reset and re-spec.",l.hasAskUserTool?"Before starting execution, show the spec summary to the user and ask for final confirmation via AskUserQuestion.":"Before starting execution, show the spec summary to the user and ask for final confirmation. Present 'Start execution' and 'Not yet' as numbered options."],tone:"Patient. Wait for the go signal."};case"EXECUTING":{let d=o(`next --answer='{"completed":[...],"remaining":[...],"blocked":[...]}'`,x),i,c,y="Verifier scope: (1) AC verification with evidence. (2) Plan alignment \u2014 does implementation match task description? Flag deviations. (3) Code quality \u2014 follows existing patterns? Flag style breaks, missing error handling. Categorize findings: CRITICAL (blocks completion), IMPORTANT (should fix), SUGGESTION (nice to have).";l.subAgentMethod==="task"?(i=`Spawn noskills-executor via Agent tool. Pass: task title, description, ACs, rules, scope constraints, concern reminders, file paths. Report via \`${d}\`.`,c=`After executor completes, spawn noskills-verifier with changed files + ACs + test commands. Never trust executor self-report alone. ${y}`):l.subAgentMethod==="spawn"?(i=`Use spawn_agent for noskills-executor. Pass: task, ACs, rules, scope, file paths. Use wait_agent to collect. Report via \`${d}\`.`,c=`After executor completes, spawn noskills-verifier with changed files + ACs + test commands. ${y}`):l.subAgentMethod==="fleet"?(i=`Use /fleet for parallel executors. Pass each: task, ACs, rules, scope, file paths. Report via \`${d}\`.`,c=`After fleet completes, run verification pass. ${y}`):l.subAgentMethod==="delegation"?(i=`Use Kiro agent delegation for noskills-executor. Pass: task, ACs, rules, scope, file paths. Report via \`${d}\`.`,c=`After executor completes, delegate to noskills-verifier with changed files + ACs + test commands. ${y}`):(i=`Execute tasks sequentially yourself. Verify (type-check + tests) after each. Report via \`${d}\`.`,c="");let k=l.subAgentMethod!=="none",f=k?`You are the orchestrator. NEVER edit files directly \u2014 delegate ALL edits to noskills-executor. ${i} On sub-agent failure, fall back to direct execution and note it in status.`:i,v=[...p,f,...c?[c]:[],"Do not explore beyond current task. Do not refactor outside scope. Do not add features, tests, or docs not in the spec. timebox context reads \u2014 the deliverable is working code.",...k?["Show a dispatch table: | Step | Agent | Files | Tasks | Est. |. Separate executor for implementation vs tests. Batch tightly-coupled files; parallelize independent modules."]:[],"Edit discipline: (1) Re-read file before editing. (2) Re-read after to confirm. (3) Files >500 LOC: read in chunks. (4) Run type-check + lint after edits \u2014 never mark AC passed if type-check fails. (5) If search returns few results, re-run narrower \u2014 assume truncation.",`On recurring patterns or corrections, ask: 'Permanent rule or just this task?' If permanent: \`${T('rule add "<description>"')}\`. Never write to \`.eser/rules/\` directly.`,"Before structural refactors on files >300 LOC, remove dead code first. Do NOT suggest pausing or stopping mid-spec \u2014 execute to completion. The user decides when to stop.","RATIONALIZATION ALERT: Never use 'should work now', 'looks correct', 'I'm confident', 'seems right', 'probably passes'. Run the command, read the output, report what happened. Evidence, not belief.","TDD: (1) Write test. (2) Run it \u2014 MUST fail. If it passes before implementation, the test is wrong. (3) Implement. (4) Run test \u2014 must pass. Skipping step 2 means the test is unverified.","Parallel vs serial sub-agents: PARALLEL when tasks touch different files with no shared state. SERIAL when tasks modify same files or depend on each other. When unsure, default to serial.",...k?["VERIFICATION REQUIRED: After EVERY task completion, you MUST spawn noskills-verifier before reporting done. If you skip verification and self-report, the status report will flag it. No exceptions \u2014 'it looks correct' is not verification."]:["VERIFICATION REQUIRED: After EVERY task completion, run type-check + tests before reporting done. Evidence of passing tests must be included in the status report."]];e.execution.lastVerification?.passed===!1&&v.push("Tests are failing. Fix ONLY the failing tests. Do not refactor passing code.");let S={rules:v,tone:"Direct. Orchestrate immediately \u2014 spawn sub-agents.",outOfScope:b.length>0?b:void 0};return m?{...S,urgency:`${e.execution.iteration}+ iterations \u2014 context degrading. Finish current task, recommend fresh session.`}:S}case"BLOCKED":return{rules:[...p,"Present the decision to the user exactly as described.","Do not suggest a preferred option unless the user asks for your opinion.","After the user decides, relay the answer immediately. Do not elaborate."],tone:"Brief. The user is making a decision, not having a discussion."};case"COMPLETED":return{rules:[...p,"Report the completion summary. Do not start new work.","If the user wants to continue, they start a new spec."],tone:"Concise. Celebrate briefly, then stop."};default:return{rules:[...p,`Run \`${o("next",x)}\` to get your instructions.`,"Do not take action without noskills guidance."],tone:"Neutral. Waiting for direction."}}},ce=5*60*1e3,de=e=>{let n=e.hasSubAgentDelegation?"enforced":"behavioral";return n==="enforced"?{level:n,capabilities:["PreToolUse file edit gate","Git write guard","Stop iteration tracking","PostToolUse file logging","Sub-agent delegation"]}:{level:n,capabilities:["Behavioral rules only"],gaps:["File edits not blocked in non-execution phases","Git write commands not blocked","No iteration tracking","No file change logging","No sub-agent delegation available"]}},ue=(e,t,n=_)=>{let s=e.spec,r;switch(e.phase){case"IDLE":r=`No active spec. Start one with: \`${T('spec new --name=<slug> "description"')}\``;break;case"DISCOVERY":r=`Discovery in progress for "${e.spec}". ${e.discovery.answers.length} questions answered so far.`;break;case"DISCOVERY_REVIEW":r=`Discovery answers ready for review. ${e.discovery.answers.length} answers collected. Waiting for user confirmation.`;break;case"SPEC_DRAFT":r=`Spec draft ready for review at ${e.specState.path}. Waiting for approval.`;break;case"SPEC_APPROVED":r=`Spec "${e.spec}" is approved. Waiting to start execution.`;break;case"EXECUTING":r=e.execution.lastProgress!==null?`Executing "${e.spec}", iteration ${e.execution.iteration}. Last progress: ${e.execution.lastProgress}. Continue with the current task.`:`Executing "${e.spec}", iteration ${e.execution.iteration}. Start the first task.`;break;case"BLOCKED":r=`Execution blocked: ${e.execution.lastProgress}. Ask the user to resolve.`;break;case"COMPLETED":r=`Spec "${e.spec}" completed in ${e.execution.iteration} iterations.`;break;default:r=`Run \`${o("next",s)}\` to get started.`}let l=de(n);return{protocol:`Run \`${o('next --answer="..."',s)}\` to submit results and advance`,spec:e.spec,branch:e.branch,iteration:e.execution.iteration,lastProgress:e.execution.lastProgress,activeConcerns:t.map(m=>m.id),resumeHint:r,enforcement:l}},pe=e=>{let t=e.spec;if(e.lastCalledAt===null)return{what:"noskills orchestrates your work: IDLE \u2192 DISCOVERY \u2192 DISCOVERY_REVIEW \u2192 SPEC_DRAFT \u2192 SPEC_APPROVED \u2192 EXECUTING \u2192 DONE \u2192 IDLE",how:`Run \`${o("next",t)}\` for instructions. Submit results with \`${o('next --answer="..."',t)}\`. Never make architectural decisions without asking.`,currentPhase:e.phase};let n=new Date(e.lastCalledAt).getTime();if(Date.now()-n>ce)return{what:"noskills orchestrates your work: IDLE \u2192 DISCOVERY \u2192 DISCOVERY_REVIEW \u2192 SPEC_DRAFT \u2192 SPEC_APPROVED \u2192 EXECUTING \u2192 DONE \u2192 IDLE",how:`Run \`${o("next",t)}\` for instructions. Submit results with \`${o('next --answer="..."',t)}\`. Never make architectural decisions without asking.`,currentPhase:e.phase}},se=[{key:"IDLE",label:"IDLE"},{key:"DISCOVERY",label:"DISCOVERY"},{key:"DISCOVERY_REVIEW",label:"REVIEW"},{key:"SPEC_DRAFT",label:"DRAFT"},{key:"SPEC_APPROVED",label:"APPROVED"},{key:"EXECUTING",label:"EXECUTING"},{key:"COMPLETED",label:"DONE"},{key:"IDLE_END",label:"IDLE"}],me=e=>e==="BLOCKED"?se.map(t=>t.key==="EXECUTING"?"[ EXECUTING (BLOCKED) ]":t.label).join(" \u2192 "):se.map(t=>t.key==="IDLE"&&e==="IDLE"?"[ IDLE ]":t.key===e?`[ ${t.label} ]`:t.label).join(" \u2192 "),he=(e,t)=>{switch(e.phase){case"DISCOVERY_REVIEW":return{message:`${e.discovery.answers.length}/6 answers collected.`,action:"Type APPROVE to generate spec, or REVISE to correct answers.",phase:"DISCOVERY_REVIEW"};case"SPEC_APPROVED":return{message:`Spec approved. ${t?.tasks?.length??0} tasks ready.`,action:"Type START to begin execution.",phase:"SPEC_APPROVED"};default:return}},Ve=async(e,t,n,s,r,l,m,u,p,b,x)=>{let d=u??_,i=ue(e,t,d),c=s?.maxIterationsBeforeRestart??15,y=s?.allowGit??!1,k=le(e,c,y,t,r,d);if(e.phase==="EXECUTING"){let I=b??0,A=V(t).tier2.length,h=I+A;h>0&&(k={...k,tier2Summary:`${h} file-specific rules delivered via PreToolUse hook when editing matching files.`})}let f=pe(e),v;switch(e.phase){case"IDLE":v=re(t,W,n.length,m);break;case"DISCOVERY":v=await Ee(e,t,n,p,x);break;case"DISCOVERY_REVIEW":v=Re(e,t);break;case"SPEC_DRAFT":v=De(e);break;case"SPEC_APPROVED":v=Ie(e);break;case"EXECUTING":v=Pe(e,t,n,c,r,l);break;case"BLOCKED":v=Te(e);break;case"COMPLETED":v=await Se(e,x);break;default:v=re(t,W,n.length,m)}let S=me(e.phase),L=he(e,r),E={...v,meta:i,behavioral:k,roadmap:S};L!==void 0&&(E={...E,gate:L}),f!==void 0&&(E={...E,protocolGuide:f});let g=ge(e,t,m);if(g.length>0){let I=g.map(({label:$,description:C})=>({label:$,description:C})),A={};for(let $ of g)A[$.label]=$.command;let h=d.optionPresentation==="tool"?"AskUserQuestion":"prose-numbered-list",R=d.optionPresentation==="tool"?"Use AskUserQuestion tool to present these options. Do NOT use prose.":"Present options as a numbered list. Ask user to pick a number.";E={...E,interactiveOptions:I,commandMap:A,toolHint:h,toolHintInstruction:R}}return E},ge=(e,t,n)=>{let s=e.spec;switch(e.phase){case"IDLE":{let r=[],m=(n?.existingSpecs??[]).filter(u=>u.phase!=="COMPLETED");t.length===0&&r.push({label:"Add concerns (Recommended)",description:"Shape how discovery and specs work by adding project concerns",command:T("concern add <id> [<id2> ...]")}),r.push({label:"Start a new spec",description:"Tell me what you want to build \u2014 a one-liner, detailed requirements, meeting notes, anything",command:T('spec new "description"')});for(let u of m.slice(0,2))r.push({label:`Continue: ${u.name} (${u.phase})`,description:u.detail??`Iteration ${u.iteration}`,command:o("next",u.name)});return t.length>0&&r.push({label:"Edit concerns",description:`Currently: ${t.map(u=>u.id).join(", ")}`,command:T("concern list")}),r.slice(0,4)}case"DISCOVERY_REVIEW":return e.discovery.approved?[{label:"Keep as one spec",description:"All work in a single spec",command:o('next --answer="keep"',s)},{label:"Split into separate specs",description:"Create one spec per independent area",command:o('next --answer="split"',s)}]:[{label:"Approve all answers",description:"Answers look correct \u2014 generate the spec",command:o('next --answer="approve"',s)},{label:"Revise answers",description:"Correct one or more discovery answers",command:o(`next --answer='{"revise":{...}}'`,s)}];case"SPEC_DRAFT":return[{label:"Approve spec",description:"Review looks good \u2014 approve and move to execution",command:o("approve",s)},{label:"Refine spec",description:"Submit refinements to improve tasks or sections",command:o(`next --answer='{"refinement":"..."}'`,s)},{label:"Save for later",description:"Keep the draft as-is. Others can review, add ACs, notes, or tasks. Come back anytime to approve.",command:o('next --answer="save"',s)},{label:"Start over",description:"Reset the spec and start fresh",command:o("reset",s)}];case"SPEC_APPROVED":return[{label:"Start execution",description:"Begin implementing the tasks",command:o('next --answer="start"',s)},{label:"Save for later",description:"Spec is approved but don't start execution yet. Others can still add ACs or notes.",command:o('next --answer="save"',s)}];case"EXECUTING":return[];case"BLOCKED":return[{label:"Resolve block",description:"Provide a resolution to unblock execution",command:o('next --answer="resolution"',s)},{label:"Reset spec",description:"Abandon this spec and start over",command:o("reset",s)}];case"COMPLETED":return[{label:"New spec",description:"Start a new feature spec",command:T('spec new --name=<slug> "description"')},{label:"Reopen spec",description:"Reopen this spec for revision",command:o("reopen",s)},{label:"Check status",description:"Review completed spec summary",command:T("status")}];default:return[]}},fe="noskills is a state-machine orchestrator that acts as a scrum master for both you and your agent \u2014 keeping work focused, decisions in your hands, and tokens efficient.",re=(e,t,n,s)=>({phase:"IDLE",instruction:'No active spec. If the user described what they want, run `noskills spec new "description"` immediately \u2014 name is auto-generated. Present ALL available concerns (split across multiple calls if needed).',welcome:fe,existingSpecs:s?.existingSpecs??[],availableConcerns:t.map(r=>({id:r.id,description:r.description})),activeConcerns:e.map(r=>r.id),activeRulesCount:s?.rulesCount??n,behavioralNote:"These options are fallbacks. If the user already described what they want, act on it directly without presenting these options.",hint:e.length===0?"No concerns active. Consider adding concerns first \u2014 they shape discovery questions and specs.":void 0}),ye=/\b(Node\.?js|Deno|Bun|Go|Rust|Python|Ruby|Java|Kotlin|Swift|PHP|React|Vue|Angular|Svelte|Next\.?js|Nuxt|Remix|Astro|SolidJS|Qwik|TypeScript|Webpack|Vite|esbuild|Rollup|Terraform|Docker|Kubernetes|PostgreSQL|MySQL|Redis|MongoDB|SQLite|Prisma|Drizzle|gRPC|GraphQL|tRPC)\s+v?(\d+(?:\.\d+)?(?:\.\d+)?\+?)\b/gi,ve=e=>{if(e===null||e.length===0)return[];let t=[],n,s=new RegExp(ye.source,"gi");for(;(n=s.exec(e))!==null;)t.push(`${n[1]} ${n[2]}`);return t},oe=e=>{let t=ve(e);if(t.length!==0)return{required:!0,instruction:"Before asking discovery questions, research the current state of all platforms, runtimes, libraries, and APIs mentioned in the spec description. Use web search and Context7 MCP if available. Report findings as a pre-discovery brief to the user. Do NOT assume your training data is current \u2014 versions change, APIs get added, features get deprecated.",extractedTerms:t}},we=50*1024,ie=async e=>{if(e!==null)try{let t=await Q.fs.readTextFile(e);return t.length>we?void 0:{provided:!0,content:t,instruction:"A plan document was provided. Read it carefully, extract relevant information for each discovery question, and present pre-filled answers for user review. Do NOT skip any question \u2014 present your extraction and let the user confirm, correct, or expand. IMPORTANT: When extracting answers from the plan, mark each extraction as [STATED] (directly written in the plan) or [INFERRED] (your interpretation). Present extractions individually for confirmation."}}catch{return}},be=e=>{let t=[],n=e.toLowerCase(),s=["websocket","graphql","grpc","redis","postgres","mongodb","kafka","rabbitmq","docker","kubernetes","lambda","s3"];for(let r of s)n.includes(r)&&t.push(`Answer mentions ${r} \u2014 consider: error handling, versioning, fallback strategy`);return(n.includes("should work")||n.includes("standard approach")||n.includes("probably")||n.includes("i think")||n.includes("not sure"))&&t.push("Answer is vague \u2014 ask for specifics"),(n.includes("and also")||n.includes("we might")||n.includes("could also")||n.includes("maybe we should"))&&t.push("Scope expansion signal \u2014 clarify if in scope or deferred"),(n.includes("tricky")||n.includes("complicated")||n.includes("risky")||n.includes("not sure about"))&&t.push("Risk signal \u2014 dig deeper into what makes it risky"),(n.includes("depends on")||n.includes("after")||n.includes("blocked by")||n.includes("waiting for"))&&t.push("Dependency detected \u2014 clarify what happens if dependency isn't ready"),(n.includes("real-time")||n.includes("scalab")||n.includes("performance")||n.includes("latency")||n.includes("concurrent"))&&t.push("Performance/scale mention \u2014 ask about limits, degradation, monitoring"),t},ke=e=>{switch(e){case"full":return["Ask each discovery question as written. Push for specific, concrete answers.","If the answer is vague, ask follow-up questions before accepting."];case"validate":return["The user has a plan. Your job is to challenge it, not explore it.","For each question, identify assumptions and ask: 'What would prove this wrong?'","If the description already answers a question, present your understanding and ask to confirm.","When pre-filling answers from a rich description, plan, or prior discussion, DISTINGUISH between what the user EXPLICITLY STATED and what you INFERRED. Format each pre-filled item as: '[STATED] GPU skinning in all 3 renderers \u2014 you said this during technical discussion' or '[INFERRED] tangent space is 10-star scope \u2014 I assumed this based on complexity'. The user confirms stated items and corrects inferred items.","Present pre-filled answers ONE ITEM AT A TIME for confirmation, not as a completed block. The user's job is to correct your inferences, not rubber-stamp your summary. If you pre-fill 5 items and 2 are wrong, the user must be able to catch them individually."];case"technical-depth":return["Focus on architecture, data flow, performance, and integration points.","Before each question, scan the codebase for related implementations.","Ask: 'How does this interact with [existing system]?' for each integration point."];case"ship-fast":return["Focus on minimum viable scope.","For each question, also ask: 'What can we defer to a follow-up?'","Push for the smallest version that delivers value."];case"explore":return["Think bigger. What's the 10x version?","For each question, ask about adjacent opportunities.","Suggest possibilities the user might not have considered."]}},xe=(e,t)=>{let n=new Map;for(let s of e){let r="user"in s?s.user:"Unknown User";t!==void 0&&r===t.name||n.set(r,(n.get(r)??0)+1)}return[...n.entries()].map(([s,r])=>({name:s,contributions:`${r} answer${r>1?"s":""}`}))},Ee=async(e,t,n,s,r)=>{let l=e.spec,m=Y(t),u=e.discovery.answers.length,p=J(e.discovery.answers),b=e.discovery.audience==="agent",x=xe(e.discovery.answers,s),d=(e.specNotes??[]).filter(a=>!a.text.startsWith("[TASK] ")).map(a=>({text:a.text,user:a.user})),i={...s!==void 0?{currentUser:s}:{},...x.length>0?{previousContributors:x}:{},...d.length>0?{notes:d}:{}},c=e.discovery.userContext!==void 0&&e.discovery.userContext.length>0,y=e.specDescription!==null&&e.specDescription.length>0,k=e.discovery.planPath!==null,f=e.discovery.mode;if(f===void 0&&!c&&u===0&&!k&&y){let a={phase:"DISCOVERY",instruction:"The user just created this spec. Before starting discovery, ask them to share whatever context they have \u2014 requirements, notes, tasks, or just a brief description. Say: 'Tell me about this \u2014 share as much context as you have.' Listen first, then proceed.",questions:[],answeredCount:0,context:{rules:n,concernReminders:F(t)},transition:{onComplete:o('next --answer="<user context or just start>"',l)},...i};return s!==void 0?{...a,currentUser:s}:a}if(f===void 0&&y&&u===0&&!k){let w={phase:"DISCOVERY",instruction:"Before starting discovery, select the discovery mode that best fits this spec.",questions:[],answeredCount:0,context:{rules:n,concernReminders:F(t)},transition:{onComplete:o('next --answer="<mode>"',l)},modeSelection:{required:!0,instruction:"Select the discovery mode.",options:[{id:"full",label:"Full discovery",description:"Standard 6 questions with all concern extras. Default for new features."},{id:"validate",label:"Validate my plan",description:"I already know what I want \u2014 challenge my assumptions, find gaps."},{id:"technical-depth",label:"Technical depth",description:"Focus on architecture, data flow, performance, integration points."},{id:"ship-fast",label:"Ship fast",description:"Minimum viable scope. What can we defer? What's the MVP?"},{id:"explore",label:"Explore scope",description:"Think bigger. 10x version? Adjacent opportunities? What are we missing?"}]}};if(r!==void 0)try{let P=await Z(r,e.specDescription??"");P.length>0&&(w={...w,previousLearnings:ee(P)})}catch{}return s!==void 0?{...w,currentUser:s}:w}let v=e.discovery.premisesCompleted===!0;if(f!==void 0&&!v&&!p){let a={phase:"DISCOVERY",instruction:"Before asking discovery questions, challenge the premises of this spec.",questions:[],answeredCount:0,context:{rules:n,concernReminders:F(t)},transition:{onComplete:o(`next --answer='{"premises":[...]}'`,l)},premiseChallenge:{required:!0,instruction:"Read the spec description"+(e.discovery.planPath!==null?" and the plan document":"")+'. Identify 2-4 premises the spec assumes. Present each premise and ask the user to agree or disagree. Submit as JSON: {"premises":[{"text":"...","agreed":true/false,"revision":"..."}]}',prompts:["Is this the right problem to solve? Could a different framing yield a simpler solution?","What happens if we do nothing? Is this a real pain point or a hypothetical one?","What existing code already partially solves this? Can we build on it instead?"]}};return s!==void 0?{...a,currentUser:s}:a}let S=f!==void 0?ke(f):[],L=[...n,...S],E=e.specDescription??"",g=E.length>500,I=e.discovery.premises??[],A=I.filter(a=>a.agreed).map(a=>a.text),h=I.filter(a=>!a.agreed&&a.revision!==void 0).map(a=>({original:a.text,revision:a.revision}));if(p){let a=e.revisitHistory??[],w=a.length>0?a[a.length-1]:null,P={phase:"DISCOVERY",instruction:w!==null?"This spec was revisited from EXECUTING. All previous answers are preserved. Review and approve, or revise answers before regenerating the spec.":`All discovery questions answered. Run: \`${o("approve",l)}\``,questions:[],answeredCount:u,context:{rules:n,concernReminders:[]},transition:{onComplete:o("approve",l)},...i};if(w!=null){let q=w;return{...P,revisited:!0,revisitReason:q.reason,previousProgress:{completedTasks:[...q.completedTasks],totalTasks:q.completedTasks.length}}}return P}if(b){let a=e.discovery.currentQuestion,w=m[a];if(w===void 0)return{phase:"DISCOVERY",instruction:`All discovery questions answered. Run: \`${o("approve",l)}\``,questions:[],answeredCount:u,context:{rules:n,concernReminders:[]},transition:{onComplete:o("approve",l)},...i};let P={id:w.id,text:w.text,concerns:[...w.concerns],extras:w.extras.map(O=>O.text)},q={phase:"DISCOVERY",instruction:`Ask this question to the user using AskUserQuestion. Submit the answer with: \`${o('next --agent --answer="<answer>"',l)}\``,questions:[P],answeredCount:u,currentQuestion:a,totalQuestions:m.length,context:{rules:L,concernReminders:F(t)},transition:{onComplete:`${o('next --agent --answer="<answer>"',l)}`},...i},D=q;if((A.length>0||h.length>0)&&(D={...D,...A.length>0?{agreedPremises:A}:{},...h.length>0?{revisedPremises:h}:{}}),a===0){let O=oe(e.specDescription??null);O!==void 0&&(D={...D,preDiscoveryResearch:O});let B=await ie(e.discovery.planPath??null);B!==void 0&&(D={...D,planContext:B}),g&&B===void 0&&(D={...D,richDescription:{provided:!0,length:E.length,content:E,instruction:"The user provided a detailed description. For each question, extract relevant info and present as a pre-filled suggestion. IMPORTANT: When extracting answers from the description, mark each extraction as [STATED] (directly written by the user) or [INFERRED] (your interpretation). Present extractions individually for confirmation."}})}let G=(e.discovery.followUps??[]).filter(O=>O.status==="pending");G.length>0&&(D={...D,pendingFollowUps:G});let H=e.discovery.answers.length>0?e.discovery.answers[e.discovery.answers.length-1]:void 0;if(H!==void 0){let O=be(H.answer);O.length>0&&(D={...D,followUpHints:O})}return D!==q?D:q}let R=new Set(e.discovery.answers.map(a=>a.questionId)),$=m.filter(a=>!R.has(a.id)).map(a=>({id:a.id,text:a.text,concerns:[...a.concerns],extras:a.extras.map(w=>w.text)})),C=e.revisitHistory??[],N=C.length>0?C[C.length-1]:null,U=N!==null,M={phase:"DISCOVERY",instruction:U?"This spec was revisited from EXECUTING. Previous discovery answers are preserved \u2014 review and revise as needed, or approve to regenerate tasks.":"Conduct a thorough discovery conversation. FIRST: perform a pre-discovery codebase scan (README, CLAUDE.md, recent git log, TODOs, directory structure) and present a brief audit summary. THEN: challenge the user's spec description against your findings. THEN: ask the discovery questions one at a time, offering concrete options based on codebase knowledge. AFTER questions: present a dream state table (current \u2192 this spec \u2192 future), scored expansion proposals, architectural decisions, and an error/rescue map. FINALLY: present a complete discovery synthesis for user confirmation before submitting answers as a JSON object.",questions:$,answeredCount:u,context:{rules:L,concernReminders:F(t)},transition:{onComplete:`${o(`next --answer='{"status_quo":"...","ambition":"...",...}'`,l)}`},...i,...A.length>0?{agreedPremises:A}:{},...h.length>0?{revisedPremises:h}:{}};if(U&&N!==void 0)return{...M,revisited:!0,revisitReason:N.reason,previousProgress:{completedTasks:[...N.completedTasks],totalTasks:N.completedTasks.length}};if(u===0){let a=M,w=oe(e.specDescription??null);w!==void 0&&(a={...a,preDiscoveryResearch:w});let P=await ie(e.discovery.planPath??null);if(P!==void 0&&(a={...a,planContext:P}),g&&P===void 0&&(a={...a,richDescription:{provided:!0,length:E.length,content:E,instruction:"The user provided a detailed description. For each question, extract relevant info and present as a pre-filled suggestion."}}),a!==M)return a}return M},Re=(e,t)=>{let n=e.spec,s=Y(t),r=e.discovery.answers.map(d=>{let i=s.find(c=>c.id===d.questionId);return{questionId:d.questionId,question:i?.text??d.questionId,answer:d.answer}}),l=te(e.discovery.answers);if(e.discovery.approved&&l.detected)return{phase:"DISCOVERY_REVIEW",instruction:"Discovery answers are approved. noskills detected multiple independent work areas in this spec. Present the split proposal to the user and let them decide whether to keep as one spec or split into separate specs.",answers:r,transition:{onApprove:o('next --answer="keep"',n),onRevise:o(`next --answer='{"revise":{"status_quo":"corrected answer"}}'`,n)},splitProposal:l};let m=e.discovery.alternativesPresented===!0;if(e.discovery.approved&&!m)return{phase:"DISCOVERY_REVIEW",subPhase:"alternatives",instruction:"Based on discovery answers, propose 2-3 distinct implementation approaches. Present each with name, summary, effort (S/M/L/XL), risk (Low/Med/High), pros, and cons. Ask the user to choose one, or skip.",answers:r,transition:{onApprove:o(`next --answer='{"approach":"A","name":"...","summary":"...","effort":"M","risk":"Low"}'`,n),onRevise:o('next --answer="skip"',n)},alternatives:{required:!0,instruction:"Generate 2-3 approaches from discovery answers and codebase. Present via AskUserQuestion.",format:{fields:["id","name","summary","effort","risk","pros","cons"]}}};let u=e.discovery.batchSubmitted===!0?" IMPORTANT: These answers were BATCH-SUBMITTED (not confirmed one-by-one). You MUST present EVERY answer individually and get explicit user confirmation for each. Do NOT auto-approve.":"",p=X(t),b=K(t),x;if(p.length>0){let d=p.map(c=>({id:c.id,label:c.label,prompt:c.prompt,evidenceRequired:c.evidenceRequired,isRegistry:b.includes(c.id),concernId:c.concernId})),i=d.some(c=>c.isRegistry);x={dimensions:d,instruction:"Before approving, review the plan against each dimension below. For dimensions marked evidenceRequired, cite specific files or code. Present findings to the user for each dimension via AskUserQuestion \u2014 one dimension at a time.",...i?{registryInstruction:"Registry dimensions (isRegistry=true) require a structured table with every row filled. These tables will be included in the generated spec."}:{}}}return{phase:"DISCOVERY_REVIEW",instruction:l.detected?`Present ALL discovery answers to the user for review. ALSO present the split proposal \u2014 noskills detected multiple independent areas.${u}`:`Present ALL discovery answers to the user for review. The user must confirm or correct each answer before the spec can be generated. Use AskUserQuestion to ask for confirmation.${u}`,answers:r,transition:{onApprove:o('next --answer="approve"',n),onRevise:o(`next --answer='{"revise":{"status_quo":"corrected answer"}}'`,n)},splitProposal:l.detected?l:void 0,reviewChecklist:x}},De=e=>{let t=e.spec;return e.classification===null?{phase:"SPEC_DRAFT",instruction:"Before generating the spec, classify what this spec involves. Ask the user to select all that apply.",specPath:e.specState.path??"",transition:{onApprove:`${o(`next --answer='{"involvesWebUI":false,"involvesCLI":false,"involvesPublicAPI":false,"involvesMigration":false,"involvesDataHandling":false}'`,t)}`},classificationRequired:!0,classificationPrompt:{options:[{id:"involvesWebUI",label:"Web/Mobile UI \u2014 layouts, responsive design, visual components"},{id:"involvesCLI",label:"CLI/Terminal UI \u2014 spinners, progress bars, interactive prompts"},{id:"involvesPublicAPI",label:"Public API changes"},{id:"involvesMigration",label:"Data migration or schema changes"},{id:"involvesDataHandling",label:"Data handling or privacy"}],instruction:"Select all that apply. Submit as JSON: `"+o(`next --answer='{"involvesWebUI":true,"involvesCLI":false,"involvesPublicAPI":false,...}'`,t)+"`. If none apply, answer with: `"+o('next --answer="none"',t)+"`"}}:{phase:"SPEC_DRAFT",instruction:"Spec draft is ready. Self-review before presenting to user.",specPath:e.specState.path??"",transition:{onApprove:o("approve",t)},selfReview:{required:!0,checks:["Placeholder scan: no TBD, TODO, vague requirements","Consistency: tasks match discovery, ACs match tasks","Scope: single spec, not multiple independent subsystems","Ambiguity: every AC has one interpretation"],instruction:"Review draft against these checks. Fix issues inline before presenting to user. Do not ask user to fix \u2014 fix it yourself."}}},Ie=e=>{let t=e.spec;return{phase:"SPEC_APPROVED",instruction:"Spec is approved and ready. When the user is ready to start, begin execution.",specPath:e.specState.path??"",transition:{onStart:`${o('next --answer="start"',t)}`}}},Ae=(e,t)=>{if(t===null)return!1;let n=e.toLowerCase();return n.includes("mobile")||n.includes("layout")||n.includes("interaction design")?t.involvesWebUI:n.includes("ui state")||n.includes("skeleton ui")?t.involvesWebUI||t.involvesCLI:n.includes("readme")||n.includes("documentation updated")||n.includes("reflected in")&&n.includes("docs")?!0:n.includes("api doc")||n.includes("public api")?t.involvesPublicAPI:n.includes("migration")||n.includes("backward compat")||n.includes("deprecat")?t.involvesMigration:n.includes("audit trail")||n.includes("access control")||n.includes("data handling")||n.includes("data retention")?t.involvesDataHandling:!0},Ce=(e,t,n,s,r,l,m,u)=>{let p=[],b=new Set(u??[]),x=0,d=()=>`ac-${++x}`;if(s!==null)for(let i of s.items)b.has(i.id)||p.push({id:i.id,text:`[DEBT from iteration ${i.since}] ${i.text}`});if(t&&p.push({id:d(),text:`[FAILED] Tests \u2014 fix this first: ${n.slice(0,200)}`}),l!=null)for(let i of l.verification){let c=d();b.has(c)||p.push({id:c,text:i})}for(let i of e)if(i.acceptanceCriteria!==void 0&&i.acceptanceCriteria.length>0)for(let c of i.acceptanceCriteria){if(!Ae(c,r))continue;let y=d();b.has(y)||p.push({id:y,text:`(${i.id}) ${c}`})}if(m!==void 0)for(let i of m){let c=d();b.has(c)||p.push({id:c,text:`(folder: ${i.folder}) ${i.rule}`})}if(l!=null){let i=l.tasks?.find(c=>c.files!==void 0&&c.files.length>0);i?.files!==void 0&&i.files.length>0&&p.push({id:"scope-check",text:`Scope check: only files listed in task (${i.files.join(", ")}) should be modified. Report any out-of-scope changes with justification.`})}return p.push({id:"mandatory-tests",text:"Tests written and passing for all new and changed behavior"}),p.push({id:"mandatory-docs",text:"Documentation updated for all public-facing changes"}),p},Pe=(e,t,n,s,r,l)=>{let m=e.spec,u=j(t),p=e.execution.iteration>=s,b=e.execution.lastVerification?.passed===!1,x=e.execution.lastVerification?.output??"",d=r?.tasks??[],i=e.execution.completedTasks??[],c=new Set(i),y=d.find(h=>!c.has(h.id))??null,k=y!==null?{id:y.id,title:y.title,totalTasks:d.length,completedTasks:i.length,...y.files!==void 0&&y.files.length>0?{files:y.files}:{}}:void 0;if(e.execution.awaitingStatusReport){let h=Ce(t,b,x,e.execution.debt,e.classification,r,l,e.execution.naItems),R=[];try{let N=JSON.parse(e.execution.lastProgress??"");Array.isArray(N.completed)&&(R=N.completed.filter(U=>typeof U=="string"&&U.startsWith("task-")))}catch{}let C={phase:"EXECUTING",instruction:R.length>=2?`${R.length} tasks reported complete. Report status against ALL relevant acceptance criteria.`:"Before this task is accepted, report your completion status against these acceptance criteria.",context:{rules:n,concernReminders:V(t).tier1},transition:{onComplete:`${o(`next --answer='{"completed":[...],"remaining":[...],"blocked":[...]}'`,m)}`,onBlocked:`${o('block "reason"',m)}`,iteration:e.execution.iteration},statusReportRequired:!0,statusReport:{criteria:h,reportFormat:{completed:"list item IDs you finished (e.g., ['debt-1', 'ac-3']) with evidence",remaining:"list item IDs not yet done",blocked:"list item IDs that need a decision from the user",na:"(optional) list item IDs that are not applicable to this task \u2014 they will be removed from future criteria",newIssues:"(optional) list NEW issues discovered during implementation \u2014 free text, will be assigned debt IDs automatically"}}};return R.length>=2&&(C={...C,batchTasks:R}),b&&(C={...C,verificationFailed:!0,verificationOutput:x.slice(0,2e3)}),C}let f=(e.execution.lastProgress??"").includes("Task not accepted"),v=e.execution.debt?.items??[],S=e.execution.debt?.unaddressedIterations??0,L=k!==void 0?`Execute task ${k.id}: ${k.title} (${k.completedTasks}/${k.totalTasks} completed)`:"All tasks completed. Run `"+o("done",m)+"` to finish.",E;if(b)E="Verification FAILED. Fix the failing tests before continuing.";else if(f&&v.length>0){let h=S>=3?` These items have been outstanding for ${S} iterations.`:"";E=`Task not accepted \u2014 ${v.length} remaining item(s) must be addressed before this task can be completed.${h} Address them, then submit a new status report.`}else E=L;let g={phase:"EXECUTING",instruction:E,task:k,context:{rules:n,concernReminders:V(t).tier1},transition:{onComplete:`${o('next --answer="..."',m)}`,onBlocked:`${o('block "reason"',m)}`,iteration:e.execution.iteration}};if(f&&v.length>0&&(g={...g,taskRejected:!0,rejectionReason:`${v.length} remaining item(s) must be addressed.`,rejectionRemaining:v.map(h=>h.text)}),e.execution.debt!==null&&e.execution.debt.items.length>0){let h=e.execution.debt.unaddressedIterations??0,R=h>=3?`URGENT: These items have been unaddressed for ${h} iterations. Address them IMMEDIATELY before any new work.`:"These were not completed in a previous iteration. Address them BEFORE starting new work.";g={...g,previousIterationDebt:{fromIteration:e.execution.debt.fromIteration,items:e.execution.debt.items,note:R}}}if(b){let h=x.slice(0,2e3);g={...g,verificationFailed:!0,verificationOutput:h}}if(u.length>0){let h=u.map(R=>`${R.between.join(" vs ")}: ${R.issue}`).join("; ");g={...g,concernTensions:u,instruction:`TENSION GATE: ${u.length} concern tension(s) detected: ${h}. You MUST present these to the user and get explicit resolution for each before proceeding. Use AskUserQuestion to ask which side to prioritize.`}}p&&(g={...g,restartRecommended:!0,restartInstruction:`Context may be getting large after ${e.execution.iteration} iterations. Consider starting a new conversation and running \`${o("next",m)}\` to resume - your progress is saved.`});let I=[...e.decisions].reverse().find(h=>!h.promoted);return I!==void 0&&e.execution.lastProgress?.startsWith("Resolved:")&&(g={...g,promotePrompt:{decisionId:I.id,question:I.question,choice:I.choice,prompt:`You just resolved a decision: "${I.choice}". Ask the user: "Should this be a permanent rule for future specs too?" If yes, run: \`${T(`rule add "${I.choice}"`)}\``}}),e.execution.iteration===0&&!b&&!f&&(g={...g,preExecutionReview:{instruction:"Re-read spec before starting. Flag: missing info that will block mid-execution, wrong task order, unclear ACs. Better to catch now than mid-execution."}}),t.some(h=>h.id==="beautiful-product")&&(g={...g,designChecklist:{required:!0,instruction:"Before completing any UI task, rate your implementation 0-10 on these dimensions and include the ratings in your AC report:",dimensions:[{id:"hierarchy",label:"Information hierarchy \u2014 what does the user see first, second, third?"},{id:"states",label:"Interaction states \u2014 loading, empty, error, success all specified?"},{id:"edge-cases",label:"Edge cases \u2014 long text, zero results, slow connection handled?"},{id:"intentionality",label:"Overall intentionality \u2014 does this feel designed or generated?"}]}}),g},Te=e=>{let t=e.spec;return{phase:"BLOCKED",instruction:"A decision is needed. Ask the user.",reason:e.execution.lastProgress??"Unknown",transition:{onResolved:`${o('next --answer="..."',t)}`}}},Se=async(e,t)=>{let s={phase:"COMPLETED",summary:{spec:e.spec,iterations:e.execution.iteration,decisionsCount:e.decisions.length,completionReason:e.completionReason,completionNote:e.completionNote},learningPrompt:{instruction:`LEARNING PENDING \u2014 Record learnings before moving on. For each insight, decide: one-time learning or permanent rule? One-time ("assumed X, was Y") \u2192 \`learn "text"\`. Permanent ("always/never do X") \u2192 \`learn "text" --rule\`. Run: \`noskills spec ${e.spec??"<name>"} learn "text"\` or \`learn "text" --rule\`.`,examples:[`noskills spec ${e.spec??"upload"} learn "Assumed S3 SDK v2, was v3"`,`noskills spec ${e.spec??"upload"} learn "Always use Result types" --rule`,"noskills learn promote 1"]},learningsPending:!0};if(t!==void 0)try{let{checkStaleness:r}=await import("./diagrams-I2QKL7WR.js"),l=await r(t,e.execution.modifiedFiles);if(l.length>0)return{...s,staleDiagrams:l.map(m=>({file:m.file,line:m.line,reason:m.reason})),staleDiagramsBlocking:!0}}catch{}return s};export{Ve as a};
@@ -1,4 +0,0 @@
1
- import{i as r}from"./chunk-XNGHRJVK.js";var v=".eser/.events",l=`${v}/events.jsonl`;var u=async(a,s)=>{let i=`${a}/${v}`,e=`${a}/${l}`;await r.fs.mkdir(i,{recursive:!0});let n=JSON.stringify(s)+`
2
- `,t="";try{t=await r.fs.readTextFile(e)}catch{}await r.fs.writeTextFile(e,t+n)},E=async(a,s)=>{let i=`${a}/${l}`,e;try{e=await r.fs.readTextFile(i)}catch{return[]}let n=e.trim().split(`
3
- `).filter(t=>t.length>0).map(t=>{try{return JSON.parse(t)}catch{return null}}).filter(t=>t!==null);return s?.since!==void 0&&(n=n.filter(t=>t.ts>s.since)),n.reverse(),s?.limit!==void 0&&s.limit>0&&(n=n.slice(0,s.limit)),n},m=(a,s)=>{let i=`${a}/${l}`,e=0,n=!1;(async()=>{try{e=(await r.fs.stat(i)).size}catch{e=0}})();let t=setInterval(async()=>{if(!n)try{let o=await r.fs.stat(i);if(o.size<=e)return;let d=await r.fs.readTextFile(i),f=new TextEncoder().encode(d);if(f.length>e){let y=d.slice(new TextDecoder().decode(f.slice(0,e)).length).trim().split(`
4
- `).filter(c=>c.length>0);for(let c of y)try{let p=JSON.parse(c);s(p)}catch{}}e=o.size}catch{}},500);return()=>{n=!0,clearInterval(t)}};export{u as a,E as b,m as c};
@@ -1,3 +0,0 @@
1
- import{j as m}from"./chunk-XNGHRJVK.js";import{m as x}from"./chunk-YSLRAWBK.js";var p=class extends Error{constructor(e,n,s,i){super(e);this.command=n;this.code=s;this.stderr=i;this.name="CommandError"}};var u=new TextDecoder,g=class r{#t;#r;#e;constructor(t,e=[],n={}){this.#t=t,this.#r=e,this.#e={throwOnError:!0,stdout:"piped",stderr:"piped",...n}}cwd(t){return new r(this.#t,this.#r,{...this.#e,cwd:t})}env(t,e){let n=this.#e.env??{},s;return typeof t=="string"&&e!==void 0?s={...n,[t]:e}:t!==null&&typeof t=="object"?s={...n,...t}:s=n,new r(this.#t,this.#r,{...this.#e,env:s})}stdin(t){return new r(this.#t,this.#r,{...this.#e,stdin:t})}stdout(t){return new r(this.#t,this.#r,{...this.#e,stdout:t})}stderr(t){return new r(this.#t,this.#r,{...this.#e,stderr:t})}timeout(t){return new r(this.#t,this.#r,{...this.#e,timeout:t})}noThrow(){return new r(this.#t,this.#r,{...this.#e,throwOnError:!1})}quiet(){return new r(this.#t,this.#r,{...this.#e,stdout:"null",stderr:"null"})}printCommand(){let t=[this.#t,...this.#r].join(" ");return console.log(`$ ${t}`),this}async spawn(){let{runtime:t}=m,e=await t.exec.spawn(this.#t,this.#r,{cwd:this.#e.cwd,env:this.#e.env,stdin:this.#e.stdin,stdout:this.#e.stdout,stderr:this.#e.stderr});if(!e.success&&this.#e.throwOnError===!0){let n=u.decode(e.stderr);throw new p(`Command failed with exit code ${e.code}: ${this.#t}`,this.#t,e.code,n)}return e}async text(t="stdout"){let e=await this.spawn();switch(t){case"stdout":return u.decode(e.stdout).trim();case"stderr":return u.decode(e.stderr).trim();case"combined":return(u.decode(e.stdout)+u.decode(e.stderr)).trim()}}async json(){let t=await this.text();return JSON.parse(t)}async lines(){let t=await this.text();return t===""?[]:t.split(`
2
- `)}async bytes(){return(await this.spawn()).stdout}async code(){return(await this.noThrow().spawn()).code}pipe(t){return new f([this,t])}child(){let{runtime:t}=m;return t.exec.spawnChild(this.#t,this.#r,{cwd:this.#e.cwd,env:this.#e.env,stdin:this.#e.stdin??"piped",stdout:this.#e.stdout??"piped",stderr:this.#e.stderr??"piped"})}},f=class r{#t;constructor(t){this.#t=t}pipe(t){return new r([...this.#t,t])}async text(){let t="";for(let e of this.#t){let n=await e.spawn();t=u.decode(n.stdout)}return t.trim()}async lines(){let t=await this.text();return t===""?[]:t.split(`
3
- `)}};var y=(r,t)=>{let e=[];for(let s=0;s<r.length;s++){let i=r[s];if(i!==void 0&&e.push(i),s<t.length){let d=t[s];Array.isArray(d)?e.push(d.map(c=>S(String(c))).join(" ")):d!=null&&e.push(S(String(d)))}}let n=e.join("").trim();return O(n)},S=r=>/[\s"'\\$`]/.test(r)?`'${r.replace(/'/g,"'\\''")}'`:r,O=r=>{let t=[],e="",n=!1,s=!1,i=!1;for(let c=0;c<r.length;c++){let a=r[c];if(i){e+=a,i=!1;continue}if(a==="\\"){i=!0;continue}if(a==="'"&&!s){n=!n;continue}if(a==='"'&&!n){s=!s;continue}if(a===" "&&!n&&!s){e.length>0&&(t.push(e),e="");continue}e+=a}e.length>0&&t.push(e);let d=t[0];return d===void 0?["",[]]:[d,t.slice(1)]};var E=(r,...t)=>{let[e,n]=y(r,t);return new g(e,n)};var A=/\x04/g,B=/^Script (started|done),? ?(output file is )?[^\n]*\n?/gm,I=/^script: tcgetattr[^\n]*\n?/gm,M=r=>r.replace(A,"").replace(B,"").replace(I,""),k=(r,t)=>{let e=x();if(e==="darwin"){let n=t.map(i=>`'${i.replace(/'/g,"'\\''")}'`);return{cmd:"sh",args:["-c",`script -q /dev/null ${[r,...n].join(" ")} 2>/dev/null`],usesScript:!0}}return e==="linux"?{cmd:"sh",args:["-c",`script -qc '${(t.length>0?`${r} ${t.map(s=>`'${s.replace(/'/g,"'\\''")}'`).join(" ")}`:r).replace(/'/g,"'\\''")}' /dev/null 2>/dev/null`],usesScript:!0}:{cmd:r,args:t,usesScript:!1}},$=async r=>{let{runtime:t}=m,e=r.args!==void 0?[...r.args]:[],n=k(r.command,e),s={...r.env,TERM:"xterm-256color",COLUMNS:String(r.cols??80),LINES:String(r.rows??24)},i=t.exec.spawnChild(n.cmd,[...n.args],{cwd:r.cwd,env:s,stdin:"piped",stdout:"piped",stderr:"piped"}),d=new TextDecoder,c=new TextEncoder,a=[],C=!1,b=o=>{let l=n.usesScript?M(o):o;if(l.length!==0)for(let h of a)h(l)},v=async o=>{let l=o.getReader();try{for(;;){let{done:h,value:R}=await l.read();if(h)break;b(d.decode(R))}}catch{}finally{l.releaseLock()}},T=()=>{C||(C=!0,i.stdout&&v(i.stdout),i.stderr&&v(i.stderr))},P=null;return i.stdin&&(P=i.stdin.getWriter()),{onData(o){a.push(o),T()},write(o){P?.write(c.encode(o)).catch(()=>{})},resize(o,l){},kill(o){try{i.kill(o==="SIGKILL"?"SIGKILL":"SIGTERM")}catch{}},get pid(){return i.pid},get exitCode(){return i.status.then(o=>o.code)}}};var w=class{#t=new Map;get size(){return this.#t.size}add(t,e){let n={id:t,process:e,active:!0};return this.#t.set(t,n),e.exitCode.then(()=>{n.active=!1}).catch(()=>{n.active=!1}),n}get(t){return this.#t.get(t)}remove(t){let e=this.#t.get(t);return e===void 0?!1:(e.active&&e.process.kill(),this.#t.delete(t),!0)}list(){return[...this.#t.values()]}async killAll(t="SIGTERM"){for(let s of this.#t.values())s.active&&s.process.kill(t);let e=3e3,n=Date.now();for(let s of this.#t.values())if(s.active){let i=e-(Date.now()-n);i>0&&await Promise.race([s.process.exitCode,new Promise(d=>setTimeout(d,i))])}}forceKillAll(){for(let t of this.#t.values())t.active&&(t.process.kill("SIGKILL"),t.active=!1);this.#t.clear()}};export{p as a,g as b,y as c,E as d,$ as e,w as f};
@@ -1 +0,0 @@
1
- var t=class extends Error{provider;statusCode;constructor(s,r){super(s,{cause:r?.cause}),this.name="AiError",this.provider=r?.provider??null,this.statusCode=r?.statusCode??null}},n=class extends t{constructor(s,r){super(s,{...r,statusCode:r?.statusCode??429}),this.name="RateLimitedError"}},o=class extends t{constructor(s,r){super(s,{...r,statusCode:r?.statusCode??401}),this.name="AuthFailedError"}},u=class extends t{constructor(s,r){super(s,{...r,statusCode:r?.statusCode??402}),this.name="InsufficientCreditsError"}},i=class extends t{constructor(s,r){super(s,{...r,statusCode:r?.statusCode??400}),this.name="BadRequestError"}},a=class extends t{constructor(s,r){super(s,{...r,statusCode:r?.statusCode??503}),this.name="ServiceUnavailableError"}},d=class extends t{constructor(s){super(`Model "${s}" not found in registry`),this.name="ModelNotFoundError"}},l=class extends t{constructor(s){super(`Model "${s}" already exists in registry`),this.name="ModelAlreadyExistsError"}},p=class extends t{constructor(s){super(`No factory registered for provider "${s}"`),this.name="UnsupportedProviderError"}},x=e=>e===429?n:e===401?o:e===402?u:e===400?i:e===500||e===503||e===529?a:null,m=(e,s,r)=>{let c=x(s);return c!==null?new c(r.message,{provider:e,statusCode:s,cause:r}):new t(r.message,{provider:e,statusCode:s,cause:r})};export{t as a,d as b,l as c,p as d,m as e};
@@ -1 +0,0 @@
1
- var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var n=(a,b)=>()=>(a&&(b=a(a=0)),b);var o=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports),p=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0})},l=(a,b,c,f)=>{if(b&&typeof b=="object"||typeof b=="function")for(let d of i(b))!k.call(a,d)&&d!==c&&e(a,d,{get:()=>b[d],enumerable:!(f=h(b,d))||f.enumerable});return a};var q=(a,b,c)=>(c=a!=null?g(j(a)):{},l(b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c,a));export{m as a,n as b,o as c,p as d,q as e};
@@ -1,3 +0,0 @@
1
- import{b as S}from"./chunk-RJX4ZXQ4.js";import{d as g}from"./chunk-XXBSEOQR.js";import{i as f}from"./chunk-XNGHRJVK.js";var A=p=>{let i=p.split(/\n/).flatMap(t=>t.trim().length>0?[t.trim()]:[]);return i.length>1?i:p.split(/\.(?=\s+[A-Z])|;\s+/).map(t=>t.trim()).filter(t=>t.length>5)},T=(p,i=[])=>{let t=[],r=p.find(c=>c.questionId==="ambition");if(r!==void 0){let c=r.answer,a=c.match(/10[- ]?star[:\s]+(.+?)(?:\n|$)/is),l=c.match(/5[- ]?star[:\s]+(.+?)(?:\n|$)/is),o=(a!==null?a[1].trim():l!==null?l[1].trim():c.replace(/1[- ]?star[:\s]+[^.]*\.\s*/i,"").trim()).replace(/^(the|a|an|with|plus|also)\s+/i,"").replace(/^(the\s+)?(target|goal|objective)[:\s]+/i,"").trim();o.length>0&&(o=o.charAt(0).toUpperCase()+o.slice(1)),o=o.replace(/[.\u2026]+$/,"").trim(),o.length>140&&(o=o.slice(0,137)+"..."),o.length>3&&t.push(o)}let n=p.find(c=>c.questionId==="verification");if(n!==void 0){let c=n.answer.split(/\n/).map(a=>a.replace(/^\s*[-\u2022*]\s*/,"").trim()).filter(a=>a.length>0);for(let a of c)t.push(a)}for(let c of i){let a=c.choice.toLowerCase();if(a.includes("accepted")||a.includes("add to scope")){let l=c.question.replace(/^should\s+(we|i)\s+/i,"").replace(/\?+$/,"").trim(),e=l.charAt(0).toUpperCase()+l.slice(1);t.push(e)}}return t.length===0&&t.push("_Tasks need to be defined before execution. Add tasks manually or run discovery with more detail._"),t.push("Write or update tests for all new and changed behavior"),t.push("Update documentation for all public-facing changes (README, API docs, CHANGELOG)"),t},x=(p,i)=>{let t={};if(i===null){for(let r of p.specSections)t[r]=!1;return t}for(let r of p.specSections){let n=r.toLowerCase();n.includes("design")||n.includes("mobile")||n.includes("layout")||n.includes("interaction")?t[r]=i.involvesWebUI:n.includes("contributor")||n.includes("public api")||n.includes("api surface")?t[r]=i.involvesPublicAPI:n.includes("migration")||n.includes("deprecation")||n.includes("backward")||n.includes("compatibility")?t[r]=i.involvesMigration:n.includes("audit")||n.includes("access control")||n.includes("data handling")?t[r]=i.involvesDataHandling:t[r]=!0}return t},C=(p,i,t,r,n,c,a,l)=>{let e=[];e.push(`# Spec: ${p}`),e.push(""),e.push("## Status: draft"),e.push(""),t.length>0&&(e.push(`## Concerns: ${t.map(s=>s.id).join(", ")}`),e.push("")),e.push("## Discovery Answers"),e.push("");for(let s of i){if(e.push(`### ${s.questionId}`),e.push(""),e.push(s.answer),"user"in s&&s.user!=="Unknown User"){let u=s;e.push(""),e.push(`_-- ${u.user}_`)}e.push("")}for(let s of t)if(s.specSections.length>0){let u=x(s,n??null);for(let h of s.specSections)u[h]!==!1&&(e.push(`## ${h} (${s.id})`),e.push(""),e.push("_To be addressed during execution._"),e.push(""))}for(let s of t){let u=s.registries??[];if(u.length===0)continue;let h=s.reviewDimensions??[];for(let d of u){let m=h.find(_=>_.id===d);m!==void 0&&(e.push(`## ${m.label} (${s.id})`),e.push(""),e.push(`_${m.prompt}_`),e.push(""),d==="error-rescue"?(e.push("| Codepath | What Can Go Wrong | Exception Class | Rescued? | Recovery Action | User Sees |"),e.push("|----------|-------------------|-----------------|----------|----------------|-----------|"),e.push("| _To be filled during execution._ | | | | | |")):d==="failure-modes"?(e.push("| Codepath | Failure Mode | Rescued? | Tested? | User Sees | Logged? |"),e.push("|----------|--------------|----------|---------|-----------|---------|"),e.push("| _To be filled during execution._ | | | | | |")):d==="test-plan"?(e.push("| Behavior | Test Layer | Happy Path | Failure Path | Edge Case |"),e.push("|----------|------------|------------|--------------|-----------|"),e.push("| _To be filled during execution._ | | | | |")):e.push("_To be filled during execution._"),e.push(""))}}if(r.length>0){e.push("## Decisions"),e.push(""),e.push("| # | Decision | Choice | Promoted |"),e.push("|---|----------|--------|----------|");for(let s=0;s<r.length;s++){let u=r[s];e.push(`| ${s+1} | ${u.question} | ${u.choice} | ${u.promoted?"yes":"no"} |`)}e.push("")}let o=i.find(s=>s.questionId==="scope_boundary");if(o!==void 0){e.push("## Out of Scope"),e.push("");let s=A(o.answer);for(let u of s)e.push(`- ${u}`);e.push("")}let $=T(i,r);e.push("## Tasks"),e.push("");for(let s=0;s<$.length;s++)e.push(`- [ ] task-${s+1}: ${$[s]}`);e.push("");let v=i.find(s=>s.questionId==="verification");if(e.push("## Verification"),e.push(""),v!==void 0){let s=A(v.answer);for(let u of s)e.push(`- ${u}`)}else e.push("_To be defined._");e.push("");let y=c??[];if(y.length>0){e.push("## Custom Acceptance Criteria"),e.push("");for(let s of y)e.push(`- ${s.text} _-- ${s.user}, ${s.addedInPhase}_`);e.push("")}let w=(a??[]).filter(s=>!s.text.startsWith("[TASK] "));if(w.length>0){e.push("## Notes"),e.push("");for(let s of w)e.push(`- ${s.text} _-- ${s.user}, ${s.phase}_`);e.push("")}let b=l??[];if(b.length>0){e.push("## Transition History"),e.push(""),e.push("| From | To | User | Timestamp | Reason |"),e.push("|------|----|------|-----------|--------|");for(let s of b)e.push(`| ${s.from} | ${s.to} | ${s.user} | ${s.timestamp} | ${s.reason??"-"} |`);e.push("")}return e.join(`
2
- `)};var q=async(p,i,t)=>{if(i.spec===null)throw new Error("No active spec");let r=`${p}/${g.specDir(i.spec)}`,n=`${p}/${g.specFile(i.spec)}`;await f.fs.mkdir(r,{recursive:!0});let c=C(i.spec,i.discovery.answers,t,i.decisions,i.classification,i.customACs,i.specNotes,i.transitionHistory);await f.fs.writeTextFile(n,c);let a=S(i.spec,c),l=`${r}/progress.json`,e={spec:i.spec,status:"draft",tasks:a.tasks.map(o=>({id:o.id,title:o.title,status:"pending"})),decisions:i.decisions.map(o=>({question:o.question,choice:o.choice,promoted:o.promoted})),debt:[],updatedAt:new Date().toISOString()};return await f.fs.writeTextFile(l,JSON.stringify(e,null,2)+`
3
- `),n};export{q as a};
@@ -1 +0,0 @@
1
- import{f as e}from"./chunk-XNGHRJVK.js";var n={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},r="npx eser@latest noskills",t=r,i=s=>{t=s},m=()=>t,a=s=>`${t} ${s}`,c=async()=>await e(n,["noskills","nos"])??r;export{i as a,m as b,a as c,c as d};
@@ -1 +0,0 @@
1
- import{d as c}from"./chunk-XXBSEOQR.js";var l={UNINITIALIZED:["IDLE"],IDLE:["DISCOVERY","COMPLETED"],DISCOVERY:["DISCOVERY_REVIEW","COMPLETED"],DISCOVERY_REVIEW:["DISCOVERY_REVIEW","SPEC_DRAFT","COMPLETED"],SPEC_DRAFT:["SPEC_DRAFT","SPEC_APPROVED","COMPLETED"],SPEC_APPROVED:["EXECUTING","COMPLETED"],EXECUTING:["COMPLETED","BLOCKED"],BLOCKED:["EXECUTING","COMPLETED"],COMPLETED:["IDLE","DISCOVERY"]},h=(e,t)=>l[e].includes(t),a=(e,t)=>{if(!h(e,t))throw new Error(`Invalid phase transition: ${e} \u2192 ${t}. Allowed: ${l[e].join(", ")}`)},E=(e,t)=>(a(e.phase,t),{...e,phase:t}),g=(e,t,n,s)=>(a(e.phase,"DISCOVERY"),{...e,phase:"DISCOVERY",spec:t,specDescription:s??null,branch:n,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:[]}),w=(e,t)=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot set discovery mode in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,mode:t}}},C=(e,t)=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot complete premises in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,premises:t,premisesCompleted:!0}}},F=(e,t)=>{if(e.phase!=="DISCOVERY_REVIEW")throw new Error(`Cannot select approach in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,selectedApproach:t,alternativesPresented:!0}}},v=e=>{if(e.phase!=="DISCOVERY_REVIEW")throw new Error(`Cannot skip alternatives in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,alternativesPresented:!0}}},y=(e,t,n,s)=>{if(e.phase!=="DISCOVERY"&&e.phase!=="DISCOVERY_REVIEW")throw new Error(`Cannot add discovery answer in phase: ${e.phase}`);if(n.trim().length<20)throw new Error("Answer too short. Discovery answers must be meaningful (minimum 20 characters).");let i=e.discovery.answers.filter(r=>r.questionId!==t),o={questionId:t,answer:n,user:s?.name??"Unknown User",email:s?.email??"",timestamp:new Date().toISOString(),type:"original"};return{...e,discovery:{...e.discovery,answers:[...i,o]}}};var D=e=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot complete discovery in phase: ${e.phase}`);let t=u(e);if(t.length>0)throw new Error(`Cannot complete discovery: ${t.length} pending follow-up(s). Answer or skip them first.`);return{...e,phase:"DISCOVERY_REVIEW",discovery:{...e.discovery,completed:!0},specState:{path:c.specFile(e.spec),status:"draft"}}},f=e=>(a(e.phase,"SPEC_DRAFT"),{...e,phase:"SPEC_DRAFT"}),x=e=>{if(e.phase!=="DISCOVERY_REVIEW")throw new Error(`Cannot approve discovery answers in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,approved:!0}}},I=e=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot advance discovery question in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,currentQuestion:e.discovery.currentQuestion+1}}},O=e=>(a(e.phase,"SPEC_APPROVED"),{...e,phase:"SPEC_APPROVED",specState:{...e.specState,status:"approved"}}),P=e=>(a(e.phase,"EXECUTING"),{...e,phase:"EXECUTING",discovery:{...e.discovery,completed:!0,approved:!1},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]}});var R=(e,t)=>(a(e.phase,"BLOCKED"),{...e,phase:"BLOCKED",execution:{...e.execution,lastProgress:`BLOCKED: ${t}`}}),U=(e,t)=>({...e,decisions:[...e.decisions,t]}),T=(e,t,n)=>(a(e.phase,"COMPLETED"),{...e,phase:"COMPLETED",completionReason:t,completedAt:new Date().toISOString(),completionNote:n??null}),A=e=>{if(e.phase!=="COMPLETED")throw new Error(`Cannot reopen in phase: ${e.phase}`);return{...e,phase:"DISCOVERY",reopenedFrom:e.completionReason,completionReason:null,completedAt:null,completionNote:null,discovery:{...e.discovery,completed:!1,currentQuestion:0},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},classification:null}},V=(e,t)=>{if(e.phase!=="EXECUTING"&&e.phase!=="BLOCKED")throw new Error(`Cannot revisit in phase: ${e.phase}. Only EXECUTING or BLOCKED can revisit.`);let n={from:e.phase,reason:t,completedTasks:[...e.execution.completedTasks],timestamp:new Date().toISOString()};return{...e,phase:"DISCOVERY",discovery:{...e.discovery,completed:!1,currentQuestion:0,approved:!1},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},classification:null,revisitHistory:[...e.revisitHistory??[],n]}},L=(e,t,n,s,i)=>{let o={from:t,to:n,user:s?.name??"Unknown User",email:s?.email??"",timestamp:new Date().toISOString(),reason:i},r=e.transitionHistory??[];return{...e,transitionHistory:[...r,o]}},b=(e,t,n)=>{let s=e.customACs??[],o={id:`custom-ac-${s.length+1}`,text:t,user:n?.name??"Unknown User",email:n?.email??"",timestamp:new Date().toISOString(),addedInPhase:e.phase};return{...e,customACs:[...s,o]}},Y=(e,t,n)=>{let s=e.specNotes??[],o={id:`note-${s.length+1}`,text:t,user:n?.name??"Unknown User",email:n?.email??"",timestamp:new Date().toISOString(),phase:e.phase};return{...e,specNotes:[...s,o]}},_=(e,t)=>({...e,discovery:{...e.discovery,userContext:t,userContextProcessed:!1}});var m=3,$=(e,t,n,s)=>{let i=e.discovery.followUps??[],o=i.filter(d=>d.parentQuestionId===t).length;if(o>=m)return e;let p={id:`${t}${String.fromCharCode(97+o)}`,parentQuestionId:t,question:n,answer:null,status:"pending",createdBy:s,createdAt:new Date().toISOString()};return{...e,discovery:{...e.discovery,followUps:[...i,p]}}},N=(e,t,n)=>{let i=(e.discovery.followUps??[]).map(o=>o.id===t&&o.status==="pending"?{...o,answer:n,status:"answered",answeredAt:new Date().toISOString()}:o);return{...e,discovery:{...e.discovery,followUps:i}}},k=(e,t)=>{let s=(e.discovery.followUps??[]).map(i=>i.id===t&&i.status==="pending"?{...i,status:"skipped"}:i);return{...e,discovery:{...e.discovery,followUps:s}}},u=e=>(e.discovery.followUps??[]).filter(t=>t.status==="pending"),M=(e,t)=>(e.discovery.followUps??[]).filter(n=>n.parentQuestionId===t),W=(e,t,n,s)=>{let i=e.discovery.delegations??[],o={questionId:t,delegatedTo:n,delegatedBy:s,status:"pending",delegatedAt:new Date().toISOString()};return{...e,discovery:{...e.discovery,delegations:[...i,o]}}},X=(e,t,n,s)=>{let o=(e.discovery.delegations??[]).map(r=>r.questionId===t&&r.status==="pending"?{...r,status:"answered",answer:n,answeredBy:s,answeredAt:new Date().toISOString()}:r);return{...e,discovery:{...e.discovery,delegations:o}}},G=e=>(e.discovery.delegations??[]).filter(t=>t.status==="pending"),Q=e=>{if(!new Set(["IDLE","EXECUTING","BLOCKED","COMPLETED"]).has(e.phase))throw new Error(`Cannot reset from ${e.phase}. Use \`cancel\` or \`wontfix\` instead.`);return{...e,phase:"IDLE",spec: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:[],classification:null,completionReason:null,completedAt:null,completionNote:null,reopenedFrom:null}};export{E as a,g as b,w as c,C as d,F as e,v as f,y as g,D as h,f as i,x as j,I as k,O as l,P as m,R as n,U as o,T as p,A as q,V as r,L as s,b as t,Y as u,_ as v,$ as w,N as x,k as y,M as z,W as A,X as B,G as C,Q as D};