alchemylab-opencode 2.0.1 → 2.0.3

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 (232) hide show
  1. package/NODE_COMPAT.md +8 -1
  2. package/dist/20260127222353_familiar_lady_ursula-YYOFSQD5.js +18 -0
  3. package/dist/20260211171708_add_project_commands-3GKQTPBZ.js +18 -0
  4. package/dist/20260213144116_wakeful_the_professor-ROO7OAVL.js +18 -0
  5. package/dist/20260225215848_workspace-V2OZTNFF.js +18 -0
  6. package/dist/20260227213759_add_session_workspace_id-GVDWAXKM.js +18 -0
  7. package/dist/20260228203230_blue_harpoon-Z5QP2II5.js +18 -0
  8. package/dist/20260303231226_add_workspace_fields-QOVAFN7W.js +18 -0
  9. package/dist/20260309230000_move_org_to_state-RQURSDZD.js +18 -0
  10. package/dist/20260312043431_session_message_cursor-VBISKDXL.js +18 -0
  11. package/dist/20260323234822_events-PILJHLNA.js +18 -0
  12. package/dist/20260410174513_workspace-name-63YCZ5NS.js +18 -0
  13. package/dist/20260413175956_chief_energizer-NMAZYGDO.js +18 -0
  14. package/dist/20260423070820_add_icon_url_override-RAJCVNEP.js +18 -0
  15. package/dist/20260427172553_slow_nightmare-ULYYZLR4.js +18 -0
  16. package/dist/20260428004200_add_session_path-U4WO2TGE.js +18 -0
  17. package/dist/20260501142318_next_venus-6BCYATSC.js +18 -0
  18. package/dist/20260504145000_add_sync_owner-RGVHV6LN.js +18 -0
  19. package/dist/20260507164347_add_workspace_time-GE6UHNPM.js +18 -0
  20. package/dist/{20260510033149_session_usage-UGBVOXZB.js → 20260510033149_session_usage-7XHCFVKY.js} +5 -1
  21. package/dist/20260511000411_data_migration_state-2EGZKFLB.js +18 -0
  22. package/dist/20260511173437_session-metadata-K322YY33.js +18 -0
  23. package/dist/20260601010001_normalize_storage_paths-VZDTY366.js +18 -0
  24. package/dist/{20260225215848_workspace-ZMSOZSPA.js → 20260601202201_amazing_prowler-YT6PLK3L.js} +5 -1
  25. package/dist/{20260228203230_blue_harpoon-IW3Z4TQZ.js → 20260602002951_lowly_union_jack-6VLQTBVB.js} +5 -1
  26. package/dist/20260602182828_add_project_directories-TVSRD25A.js +18 -0
  27. package/dist/20260603001617_session_message_projection_indexes-PHKTF6HK.js +18 -0
  28. package/dist/{20260622170816_reset_v2_session_state-5JPHJTZG.js → 20260603040000_session_message_projection_order-7RTV2POG.js} +5 -1
  29. package/dist/20260603141458_session_input_inbox-RSBWABG7.js +18 -0
  30. package/dist/20260603160727_jittery_ezekiel_stane-DXBLLRVV.js +18 -0
  31. package/dist/20260604172448_event_sourced_session_input-H6Z3JEBD.js +18 -0
  32. package/dist/20260605003541_add_session_context_snapshot-6FDPM2TK.js +18 -0
  33. package/dist/20260605042240_add_context_epoch_agent-C2OF2UKR.js +18 -0
  34. package/dist/20260611035744_credential-YNZ47FSH.js +18 -0
  35. package/dist/20260611192811_lush_chimera-E357VI6P.js +18 -0
  36. package/dist/20260612174303_project_dir_strategy-VUGGK42O.js +18 -0
  37. package/dist/20260622142730_simplify_session_context_epoch-UYGXZ5BX.js +18 -0
  38. package/dist/20260622170816_reset_v2_session_state-EILLPCJQ.js +18 -0
  39. package/dist/20260622202450_simplify_session_input-Y65GDGBO.js +18 -0
  40. package/dist/NodeSdk-AGMQWBHH.js +18 -0
  41. package/dist/anthropic-45OFTLAW.js +18 -0
  42. package/dist/anthropic-ND6UHXWL.js +18 -0
  43. package/dist/app-runtime-ZWWQ4JTM.js +18 -0
  44. package/dist/chunk-2MRHL4B2.js +18 -0
  45. package/dist/chunk-2XWBNI3L.js +1490 -0
  46. package/dist/chunk-4MBUHJHY.js +22 -0
  47. package/dist/chunk-6MAPFAXY.js +190 -0
  48. package/dist/chunk-7XX6TY62.js +259 -0
  49. package/dist/chunk-ANF3QA3Z.js +48 -0
  50. package/dist/chunk-AUB2TEYJ.js +55 -0
  51. package/dist/chunk-AZUMH3TO.js +18 -0
  52. package/dist/chunk-BQ4IEPN3.js +19 -0
  53. package/dist/chunk-CYRZU5QM.js +33 -0
  54. package/dist/chunk-DGJQZN2Q.js +18 -0
  55. package/dist/chunk-DO2UZ6NY.js +18 -0
  56. package/dist/chunk-DZ6G4VSD.js +19 -0
  57. package/dist/chunk-EK6FQQHY.js +20 -0
  58. package/dist/chunk-ELPXQ32J.js +90 -0
  59. package/dist/chunk-F5PY52BY.js +18 -0
  60. package/dist/chunk-FGLPSSRK.js +19 -0
  61. package/dist/chunk-FV7U6PVP.js +18 -0
  62. package/dist/chunk-FYYAOZPU.js +18 -0
  63. package/dist/chunk-GDWO6EXN.js +22 -0
  64. package/dist/chunk-GW3ZRKAI.js +20 -0
  65. package/dist/chunk-IQSFXWDQ.js +18 -0
  66. package/dist/chunk-IYUSBBGY.js +35 -0
  67. package/dist/chunk-JPOFLMNH.js +18 -0
  68. package/dist/{chunk-VURLSDCB.js → chunk-K5LKDIVU.js} +4 -0
  69. package/dist/chunk-KS4WLVK5.js +19 -0
  70. package/dist/chunk-L3CE2Y3L.js +55 -0
  71. package/dist/chunk-LIXP4TPL.js +18 -0
  72. package/dist/chunk-LSC4RT5V.js +36 -0
  73. package/dist/chunk-M5A6NFHQ.js +28 -0
  74. package/dist/chunk-M6E6KNLV.js +30 -0
  75. package/dist/chunk-MLFZXUGQ.js +18 -0
  76. package/dist/chunk-NDI67DRG.js +31 -0
  77. package/dist/chunk-OCWGUTZJ.js +36 -0
  78. package/dist/chunk-OGDRUXMJ.js +18 -0
  79. package/dist/chunk-OGJKLJC7.js +29 -0
  80. package/dist/chunk-P5RLCJUV.js +18 -0
  81. package/dist/chunk-Q3WIUQXB.js +18 -0
  82. package/dist/{20260227213759_add_session_workspace_id-ROENWPKA.js → chunk-QCRIXKIC.js} +5 -1
  83. package/dist/chunk-QD24DLUD.js +18 -0
  84. package/dist/chunk-R2GWBJEP.js +18 -0
  85. package/dist/chunk-RIA6SDOY.js +780 -0
  86. package/dist/chunk-RPAXSOGH.js +18 -0
  87. package/dist/chunk-TK5R7QUN.js +18 -0
  88. package/dist/chunk-TNQWZFIZ.js +28 -0
  89. package/dist/chunk-UCLPBO4I.js +18 -0
  90. package/dist/chunk-V6FDDNGV.js +117 -0
  91. package/dist/chunk-V6HERYFV.js +18 -0
  92. package/dist/chunk-V7XKKJ7X.js +24 -0
  93. package/dist/chunk-VHDYUBBS.js +23 -0
  94. package/dist/chunk-VWLJXTZ5.js +18 -0
  95. package/dist/chunk-VXAPFOIL.js +22 -0
  96. package/dist/chunk-WKZYINC7.js +29 -0
  97. package/dist/chunk-WL33KE3H.js +920 -0
  98. package/dist/chunk-WPMP2ZFE.js +40 -0
  99. package/dist/chunk-WRTNIOI3.js +18 -0
  100. package/dist/chunk-WZ4237YY.js +19 -0
  101. package/dist/chunk-X5F46HR5.js +18 -0
  102. package/dist/chunk-XPS7TQZG.js +22 -0
  103. package/dist/chunk-XSKT4AXR.js +878 -0
  104. package/dist/chunk-YJPP6IQ3.js +23 -0
  105. package/dist/chunk-ZYQWFC55.js +22 -0
  106. package/dist/code-mode-H3HRSD24.js +502 -0
  107. package/dist/copilot-provider-QVMLQZZC.js +18 -0
  108. package/dist/dist-5NQOHNPL.js +18 -0
  109. package/dist/dist-7CT3XCNN.js +32 -0
  110. package/dist/dist-CL46WFZG.js +18 -0
  111. package/dist/dist-HXJTF22W.js +32 -0
  112. package/dist/dist-JFXI53ZF.js +22 -0
  113. package/dist/dist-KBYKWVT5.js +22 -0
  114. package/dist/dist-KGNO5AP7.js +35 -0
  115. package/dist/dist-KTNLTEHB.js +18 -0
  116. package/dist/dist-KZ5R5QM5.js +24 -0
  117. package/dist/{20260605042240_add_context_epoch_agent-W6IQYZXE.js → dist-LOXU6IEM.js} +5 -1
  118. package/dist/dist-NLXUYBW7.js +32 -0
  119. package/dist/dist-O4DF72J2.js +22 -0
  120. package/dist/dist-PH4MEGVR.js +22 -0
  121. package/dist/{20260511000411_data_migration_state-FB4LBFSE.js → dist-QJPOJCLB.js} +5 -1
  122. package/dist/dist-QYH62TCJ.js +22 -0
  123. package/dist/{20260303231226_add_workspace_fields-OUVZMNAG.js → dist-RIC4WKHC.js} +5 -1
  124. package/dist/dist-T776XKTM.js +22 -0
  125. package/dist/dist-TCE5MKZQ.js +23 -0
  126. package/dist/dist-TH2Q44RX.js +50 -0
  127. package/dist/dist-VV5FV5RT.js +101 -0
  128. package/dist/dist-WZJ3LNRG.js +28 -0
  129. package/dist/dist-XAFENVUS.js +22 -0
  130. package/dist/dist-XPFB35TX.js +32 -0
  131. package/dist/dist-es-43ZM44MP.js +18 -0
  132. package/dist/dist-es-CH2YKBKX.js +18 -0
  133. package/dist/{20260428004200_add_session_path-LGW75WYA.js → dist-es-DHCTZZ2E.js} +5 -1
  134. package/dist/dist-es-EVVG3KDV.js +26 -0
  135. package/dist/dist-es-HRCONNGK.js +18 -0
  136. package/dist/dist-es-L2GU465G.js +18 -0
  137. package/dist/dist-es-RGEIM2BP.js +18 -0
  138. package/dist/dist-es-RZ25XEH6.js +18 -0
  139. package/dist/dist-es-SITTNOGV.js +18 -0
  140. package/dist/esm-NN5W7YCL.js +18 -0
  141. package/dist/esm-XWJSHYHG.js +18 -0
  142. package/dist/getMachineId-bsd-L5I5TZ5I.js +18 -0
  143. package/dist/getMachineId-darwin-YB7KG37W.js +19 -0
  144. package/dist/getMachineId-linux-EL47KXX7.js +18 -0
  145. package/dist/getMachineId-unsupported-QOWPEBPN.js +18 -0
  146. package/dist/getMachineId-win-HCRYRDFJ.js +18 -0
  147. package/dist/lib-7VH6D2QJ.js +199 -0
  148. package/dist/loadCognitoIdentity-EWT55EI7.js +18 -0
  149. package/dist/loadSso-AGOUE6RL.js +18 -0
  150. package/dist/{20260213144116_wakeful_the_professor-ZVDD54AK.js → loadSts-RH5L3PIX.js} +5 -1
  151. package/dist/mantle-IJXDXT4M.js +25 -0
  152. package/dist/mime-types-GSWEOYZ5.js +18 -0
  153. package/dist/multipart-parser-KZWMKXA4.js +19 -0
  154. package/dist/{20260211171708_add_project_commands-GDOHPDPF.js → open-7KXTRM37.js} +5 -1
  155. package/dist/openai-ZOJI6I5R.js +18 -0
  156. package/dist/p-map-CYL6ILJW.js +18 -0
  157. package/dist/photon-W56QZY4L.js +18 -0
  158. package/dist/{20260423070820_add_icon_url_override-X5SHFGTI.js → pkce-VT4ITJTB.js} +5 -1
  159. package/dist/{pty.node-Y3N2XKYG.js → pty.node-IWULXXG6.js} +5 -1
  160. package/dist/run.js +5 -1
  161. package/dist/serve.js +143 -1
  162. package/dist/server-XRUYBM7W.js +21 -0
  163. package/dist/session-4BXV4JJH.js +18 -0
  164. package/dist/signin-DKBWDEYP.js +18 -0
  165. package/dist/src-JODD73WX.js +18 -0
  166. package/dist/src-QJHT5SCV.js +18 -0
  167. package/dist/src-SMM4U63G.js +18 -0
  168. package/dist/src-WDYKISPD.js +20 -0
  169. package/dist/sso-oidc-S3P64MCY.js +18 -0
  170. package/dist/sts-RG44NMOQ.js +18 -0
  171. package/dist/token-2V62AM3G.js +18 -0
  172. package/dist/token-util-VXONHEUD.js +18 -0
  173. package/dist/unified-W3ZKZ4HG.js +18 -0
  174. package/dist/worktree-B2LROS2B.js +18 -0
  175. package/package.json +40 -40
  176. package/postinstall.cjs +4 -2
  177. package/dist/20260127222353_familiar_lady_ursula-KV747FJX.js +0 -14
  178. package/dist/20260309230000_move_org_to_state-NOXAPU5V.js +0 -14
  179. package/dist/20260312043431_session_message_cursor-DJ4T3T4R.js +0 -14
  180. package/dist/20260323234822_events-72GIKJ2A.js +0 -14
  181. package/dist/20260410174513_workspace-name-JXSWFBJN.js +0 -14
  182. package/dist/20260413175956_chief_energizer-4HEWZ6U3.js +0 -14
  183. package/dist/20260427172553_slow_nightmare-PS5T2AH2.js +0 -14
  184. package/dist/20260501142318_next_venus-J3TLVXZ6.js +0 -14
  185. package/dist/20260504145000_add_sync_owner-3R52GB4C.js +0 -14
  186. package/dist/20260507164347_add_workspace_time-JHDRCZAR.js +0 -14
  187. package/dist/20260511173437_session-metadata-T2XHGWHS.js +0 -14
  188. package/dist/20260601010001_normalize_storage_paths-5MAY5GT3.js +0 -14
  189. package/dist/20260601202201_amazing_prowler-PET224YG.js +0 -14
  190. package/dist/20260602002951_lowly_union_jack-PG6XDMGL.js +0 -14
  191. package/dist/20260602182828_add_project_directories-ZCH2ACGG.js +0 -14
  192. package/dist/20260603001617_session_message_projection_indexes-XVLJTUF2.js +0 -14
  193. package/dist/20260603040000_session_message_projection_order-XG6RACZQ.js +0 -14
  194. package/dist/20260603141458_session_input_inbox-K2VQ7V6E.js +0 -14
  195. package/dist/20260603160727_jittery_ezekiel_stane-WKJLRDO7.js +0 -14
  196. package/dist/20260604172448_event_sourced_session_input-NTXOECR7.js +0 -14
  197. package/dist/20260605003541_add_session_context_snapshot-DXMQEXMT.js +0 -14
  198. package/dist/20260611035744_credential-XTMSYTJD.js +0 -14
  199. package/dist/20260611192811_lush_chimera-XPLIQMJD.js +0 -14
  200. package/dist/20260612174303_project_dir_strategy-FR2NGQKK.js +0 -14
  201. package/dist/20260622142730_simplify_session_context_epoch-NTQZR3RE.js +0 -14
  202. package/dist/20260622202450_simplify_session_input-2EXF2HMV.js +0 -14
  203. package/dist/app-runtime-HQBOCDV5.js +0 -14
  204. package/dist/chunk-4FEBIOI5.js +0 -865
  205. package/dist/chunk-4K2RXRZL.js +0 -14
  206. package/dist/chunk-4RFMKEKM.js +0 -1455
  207. package/dist/chunk-BM2C7NHL.js +0 -41
  208. package/dist/chunk-MKEMZFJI.js +0 -393
  209. package/dist/chunk-OMDJ6ZZ2.js +0 -684
  210. package/dist/chunk-OWMG4NNF.js +0 -186
  211. package/dist/chunk-QRABYJKL.js +0 -14
  212. package/dist/chunk-RHIWAYN5.js +0 -14
  213. package/dist/chunk-Z5TLIUAI.js +0 -28
  214. package/dist/code-mode-7BQJUARW.js +0 -40
  215. package/dist/copilot-provider-TX4YFKJZ.js +0 -14
  216. package/dist/photon-VQS5F5BI.js +0 -14
  217. package/dist/server-BFUQR7MX.js +0 -17
  218. package/dist/session-6RNXZNG6.js +0 -14
  219. package/dist/worktree-QHQHX3SG.js +0 -14
  220. package/patches/@ai-sdk%2Famazon-bedrock@4.0.166.patch +0 -164
  221. package/patches/@ai-sdk%2Fanthropic@3.0.111.patch +0 -528
  222. package/patches/@ai-sdk%2Fgoogle@3.0.73.patch +0 -69
  223. package/patches/@ai-sdk%2Fgroq@3.0.31.patch +0 -79
  224. package/patches/@ai-sdk%2Fmistral@3.0.51.patch +0 -714
  225. package/patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch +0 -39
  226. package/patches/@ai-sdk%2Fopenai@3.0.88.patch +0 -280
  227. package/patches/@ai-sdk%2Fxai@3.0.139.patch +0 -296
  228. package/patches/@modelcontextprotocol%2Fsdk@1.29.0.patch +0 -647
  229. package/patches/@npmcli%2Fagent@4.0.2.patch +0 -13
  230. package/patches/effect@4.0.0-beta.83.patch +0 -57
  231. package/patches/gcp-metadata@8.1.2.patch +0 -14
  232. package/patches/pacote@21.5.0.patch +0 -18
@@ -0,0 +1,18 @@
1
+ // Built by esbuild from opencode-server source
2
+ if (typeof globalThis.Bun === 'undefined') {
3
+ globalThis.Bun = {
4
+ version: '0.0.0-node-compat',
5
+ stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
6
+ which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
7
+ };
8
+ }
9
+ if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
10
+ if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
11
+ import { createRequire as __alchemyCreateRequire } from 'node:module';
12
+ const require = __alchemyCreateRequire(import.meta.url);
13
+ import { fileURLToPath as __alchemyFileURLToPath } from 'node:url';
14
+ import { dirname as __alchemyDirname } from 'node:path';
15
+ const __alchemy_filename = __alchemyFileURLToPath(import.meta.url);
16
+ const __alchemy_dirname = __alchemyDirname(__alchemy_filename);
17
+
18
+ import{a as sr,c as Ne,cd as ge,ia as Be,ja as $e,la as le,lb as pr,ma as ce,mb as fe,mc as dr,na as N,pa as Qe,pc as Q,q as lr,rc as ur,sc as mr,tc as yr,uc as Ze,x as Ke,ya as cr,za as fr}from"./chunk-7XX6TY62.js";import{a as Cr}from"./chunk-FV7U6PVP.js";import{Bc as ar,Bf as t,Tc as ee,bb as se,bi as W,pj as u,rg as or}from"./chunk-ELPXQ32J.js";import{a as o,d as Pr,e as Fe,g as ir}from"./chunk-2MRHL4B2.js";var br=Pr((xr,He)=>{((x,v)=>{typeof define=="function"&&define.amd?define([],v):typeof He=="object"&&He.exports?He.exports=v():x.fuzzysort=v()})(xr,x=>{"use strict";var v=o((r,e)=>{if(!r||!e)return B;var i=R(r);me(e)||(e=M(e));var f=i.bitflags;return(f&e._bitflags)!==f?B:H(i,e)},"single"),g=o((r,e,i)=>{if(!r)return i?.all?Y(e,i):Ve;var f=R(r),p=f.bitflags,l=f.containsSpace,a=T(i?.threshold||0),y=i?.limit||Je,d=0,_=0,S=e.length;function X(ye){d<y?(Te.add(ye),++d):(++_,ye._score>Te.peek()._score&&Te.replaceTop(ye))}if(o(X,"push_result"),i?.key)for(var G=i.key,E=0;E<S;++E){var q=e[E],F=Re(q,G);if(F&&(me(F)||(F=M(F)),(p&F._bitflags)===p)){var C=H(f,F);C!==B&&(C._score<a||(C.obj=q,X(C)))}}else if(i?.keys){var ae=i.keys,K=ae.length;e:for(var E=0;E<S;++E){var q=e[E];{for(var O=0,w=0;w<K;++w){var G=ae[w],F=Re(q,G);if(!F){We[w]=Ie;continue}me(F)||(F=M(F)),We[w]=F,O|=F._bitflags}if((p&O)!==p)continue}if(l)for(let k=0;k<f.spaceSearches.length;k++)te[k]=J;for(var w=0;w<K;++w){if(F=We[w],F===Ie){xe[w]=Ie;continue}if(xe[w]=H(f,F,!1,l),xe[w]===B){xe[w]=Ie;continue}if(l)for(let L=0;L<f.spaceSearches.length;L++){if(ue[L]>-1e3&&te[L]>J){var $=(te[L]+ue[L])/4;$>te[L]&&(te[L]=$)}ue[L]>te[L]&&(te[L]=ue[L])}}if(l){for(let k=0;k<f.spaceSearches.length;k++)if(te[k]===J)continue e}else{var b=!1;for(let k=0;k<K;k++)if(xe[k]._score!==J){b=!0;break}if(!b)continue}var V=new h(K);for(let k=0;k<K;k++)V[k]=xe[k];if(l){var D=0;for(let k=0;k<f.spaceSearches.length;k++)D+=te[k]}else{var D=J;for(let L=0;L<K;L++){var C=V[L];if(C._score>-1e3&&D>J){var $=(D+C._score)/4;$>D&&(D=$)}C._score>D&&(D=C._score)}}if(V.obj=q,V._score=D,i?.scoreFn){if(D=i.scoreFn(V),!D)continue;D=T(D),V._score=D}D<a||X(V)}}else for(var E=0;E<S;++E){var F=e[E];if(F&&(me(F)||(F=M(F)),(p&F._bitflags)===p)){var C=H(f,F);C!==B&&(C._score<a||X(C))}}if(d===0)return Ve;for(var oe=new Array(d),E=d-1;E>=0;--E)oe[E]=Te.poll();return oe.total=d+_,oe},"go"),c=o((r,e="<b>",i="</b>")=>{for(var f=typeof e=="function"?e:void 0,p=r.target,l=p.length,a=r.indexes,y="",d=0,_=0,S=!1,X=[],G=0;G<l;++G){var E=p[G];if(a[_]===G){if(++_,S||(S=!0,f?(X.push(y),y=""):y+=e),_===a.length){f?(y+=E,X.push(f(y,d++)),y="",X.push(p.substr(G+1))):y+=E+i+p.substr(G+1);break}}else S&&(S=!1,f?(X.push(f(y,d++)),y=""):y+=i);y+=E}return f?X:y},"highlight"),m=o(r=>{typeof r=="number"?r=""+r:typeof r!="string"&&(r="");var e=he(r);return A(r,{_targetLower:e._lower,_targetLowerCodes:e.lowerCodes,_bitflags:e.bitflags})},"prepare"),s=o(()=>{Ue.clear(),Xe.clear()},"cleanup");class n{static{o(this,"Result")}get indexes(){return this._indexes.slice(0,this._indexes.len).sort((e,i)=>e-i)}set indexes(e){return this._indexes=e}highlight(e,i){return c(this,e,i)}get score(){return I(this._score)}set score(e){this._score=T(e)}}class h extends Array{static{o(this,"KeysResult")}get score(){return I(this._score)}set score(e){this._score=T(e)}}var A=o((r,e)=>{let i=new n;return i.target=r,i.obj=e.obj??B,i._score=e._score??J,i._indexes=e._indexes??[],i._targetLower=e._targetLower??"",i._targetLowerCodes=e._targetLowerCodes??B,i._nextBeginningIndexes=e._nextBeginningIndexes??B,i._bitflags=e._bitflags??0,i},"new_result"),I=o(r=>r===J?0:r>1?r:Math.E**(((-r+1)**.04307-1)*-2),"normalizeScore"),T=o(r=>r===0?J:r>1?r:1-Math.pow(Math.log(r)/-2+1,1/.04307),"denormalizeScore"),P=o(r=>{typeof r=="number"?r=""+r:typeof r!="string"&&(r=""),r=r.trim();var e=he(r),i=[];if(e.containsSpace){var f=r.split(/\s+/);f=[...new Set(f)];for(var p=0;p<f.length;p++)if(f[p]!==""){var l=he(f[p]);i.push({lowerCodes:l.lowerCodes,_lower:f[p].toLowerCase(),containsSpace:!1})}}return{lowerCodes:e.lowerCodes,_lower:e._lower,containsSpace:e.containsSpace,bitflags:e.bitflags,spaceSearches:i}},"prepareSearch"),M=o(r=>{if(r.length>999)return m(r);var e=Ue.get(r);return e!==void 0||(e=m(r),Ue.set(r,e)),e},"getPrepared"),R=o(r=>{if(r.length>999)return P(r);var e=Xe.get(r);return e!==void 0||(e=P(r),Xe.set(r,e)),e},"getPreparedSearch"),Y=o((r,e)=>{var i=[];i.total=r.length;var f=e?.limit||Je;if(e?.key)for(var p=0;p<r.length;p++){var l=r[p],a=Re(l,e.key);if(a!=B){me(a)||(a=M(a));var y=A(a.target,{_score:a._score,obj:l});if(i.push(y),i.length>=f)return i}}else if(e?.keys)for(var p=0;p<r.length;p++){for(var l=r[p],d=new h(e.keys.length),_=e.keys.length-1;_>=0;--_){var a=Re(l,e.keys[_]);if(!a){d[_]=Ie;continue}me(a)||(a=M(a)),a._score=J,a._indexes.len=0,d[_]=a}if(d.obj=l,d._score=J,i.push(d),i.length>=f)return i}else for(var p=0;p<r.length;p++){var a=r[p];if(a!=B&&(me(a)||(a=M(a)),a._score=J,a._indexes.len=0,i.push(a),i.length>=f))return i}return i},"all"),H=o((r,e,i=!1,f=!1)=>{if(i===!1&&r.containsSpace)return U(r,e,f);for(var p=r._lower,l=r.lowerCodes,a=l[0],y=e._targetLowerCodes,d=l.length,_=y.length,E=0,S=0,X=0;;){var G=a===y[S];if(G){if(re[X++]=S,++E,E===d)break;a=l[E]}if(++S,S>=_)return B}var E=0,q=!1,F=0,C=e._nextBeginningIndexes;C===B&&(C=e._nextBeginningIndexes=Ir(e.target)),S=re[0]===0?0:C[re[0]-1];var ae=0;if(S!==_)for(;;)if(S>=_){if(E<=0||(++ae,ae>200))break;--E;var K=Ae[--F];S=C[K]}else{var G=l[E]===y[S];if(G){if(Ae[F++]=S,++E,E===d){q=!0;break}++S}else S=C[S]}var O=d<=1?-1:e._targetLower.indexOf(p,re[0]),w=!!~O,$=w?O===0||e._nextBeginningIndexes[O-1]===O:!1;if(w&&!$){for(var b=0;b<C.length;b=C[b])if(!(b<=O)){for(var V=0;V<d&&l[V]===e._targetLowerCodes[b+V];V++);if(V===d){O=b,$=!0;break}}}var D=o(k=>{for(var L=0,nr=0,ne=1;ne<d;++ne)k[ne]-k[ne-1]!==1&&(L-=k[ne],++nr);var kr=k[d-1]-k[0]-(d-1);if(L-=(12+kr)*nr,k[0]!==0&&(L-=k[0]*k[0]*.2),!q)L*=1e3;else{for(var Ye=1,ne=C[0];ne<_;ne=C[ne])++Ye;Ye>24&&(L*=(Ye-24)*10)}return L-=(_-d)/2,w&&(L/=1+d*d*1),$&&(L/=1+d*d*1),L-=(_-d)/2,L},"calculateScore");if(q)if($){for(var b=0;b<d;++b)re[b]=O+b;var oe=re,ye=D(re)}else var oe=Ae,ye=D(Ae);else{if(w)for(var b=0;b<d;++b)re[b]=O+b;var oe=re,ye=D(oe)}e._score=ye;for(var b=0;b<d;++b)e._indexes[b]=oe[b];e._indexes.len=d;let De=new n;return De.target=e.target,De._score=e._score,De._indexes=e._indexes,De},"algorithm"),U=o((r,e,i)=>{for(var f=new Set,p=0,l=B,a=0,y=r.spaceSearches,d=y.length,_=0,S=o(()=>{for(let $=_-1;$>=0;$--)e._nextBeginningIndexes[Me[$*2+0]]=Me[$*2+1]},"resetNextBeginningIndexes"),X=!1,w=0;w<d;++w){ue[w]=J;var G=y[w];if(l=H(G,e),i){if(l===B)continue;X=!0}else if(l===B)return S(),B;var E=w===d-1;if(!E){var q=l._indexes,F=!0;for(let b=0;b<q.len-1;b++)if(q[b+1]-q[b]!==1){F=!1;break}if(F){var C=q[q.len-1]+1,ae=e._nextBeginningIndexes[C-1];for(let b=C-1;b>=0&&ae===e._nextBeginningIndexes[b];b--)e._nextBeginningIndexes[b]=C,Me[_*2+0]=b,Me[_*2+1]=ae,_++}}p+=l._score/d,ue[w]=l._score/d,l._indexes[0]<a&&(p-=(a-l._indexes[0])*2),a=l._indexes[0];for(var K=0;K<l._indexes.len;++K)f.add(l._indexes[K])}if(i&&!X)return B;S();var O=H(r,e,!0);if(O!==B&&O._score>p){if(i)for(var w=0;w<d;++w)ue[w]=O._score/d;return O}i&&(l=e),l._score=p;var w=0;for(let $ of f)l._indexes[w++]=$;return l._indexes.len=w,l},"algorithmSpaces"),j=o(r=>r.replace(new RegExp("\\p{Script=Latin}+","gu"),e=>e.normalize("NFD")).replace(/[\u0300-\u036f]/g,""),"remove_accents"),he=o(r=>{r=j(r);for(var e=r.length,i=r.toLowerCase(),f=[],p=0,l=!1,a=0;a<e;++a){var y=f[a]=i.charCodeAt(a);if(y===32){l=!0;continue}var d=y>=97&&y<=122?y-97:y>=48&&y<=57?26:y<=127?30:31;p|=1<<d}return{lowerCodes:f,bitflags:p,containsSpace:l,_lower:i}},"prepareLowerInfo"),de=o(r=>{for(var e=r.length,i=[],f=0,p=!1,l=!1,a=0;a<e;++a){var y=r.charCodeAt(a),d=y>=65&&y<=90,_=d||y>=97&&y<=122||y>=48&&y<=57,S=d&&!p||!l||!_;p=d,l=_,S&&(i[f++]=a)}return i},"prepareBeginningIndexes"),Ir=o(r=>{r=j(r);for(var e=r.length,i=de(r),f=[],p=i[0],l=0,a=0;a<e;++a)p>a?f[a]=p:(p=i[++l],f[a]=p===void 0?e:p);return f},"prepareNextBeginningIndexes"),Ue=new Map,Xe=new Map,re=[],Ae=[],Me=[],te=[],ue=[],We=[],xe=[],Re=o((r,e)=>{var i=r[e];if(i!==void 0)return i;if(typeof e=="function")return e(r);var f=e;Array.isArray(e)||(f=e.split("."));for(var p=f.length,l=-1;r&&++l<p;)r=r[f[l]];return r},"getValue"),me=o(r=>typeof r=="object"&&typeof r._bitflags=="number","isPrepared"),Je=1/0,J=-Je,Ve=[];Ve.total=0;var B=null,Ie=m(""),Fr=o(r=>{var e=[],i=0,f={},p=o(l=>{for(var a=0,y=e[a],d=1;d<i;){var _=d+1;a=d,_<i&&e[_]._score<e[d]._score&&(a=_),e[a-1>>1]=e[a],d=1+(a<<1)}for(var S=a-1>>1;a>0&&y._score<e[S]._score;S=(a=S)-1>>1)e[a]=e[S];e[a]=y},"v");return f.add=(l=>{var a=i;e[i++]=l;for(var y=a-1>>1;a>0&&l._score<e[y]._score;y=(a=y)-1>>1)e[a]=e[y];e[a]=l}),f.poll=(l=>{if(i!==0){var a=e[0];return e[0]=e[--i],p(),a}}),f.peek=(l=>{if(i!==0)return e[0]}),f.replaceTop=(l=>{e[0]=l,p()}),f},"fastpriorityqueue"),Te=Fr();return{single:v,go:g,prepare:m,cleanup:s}})});var Se={};Fe(Se,{Error:()=>Ce,InvalidPatternError:()=>Le,Ripgrep:()=>Se,Service:()=>be,node:()=>Br});var Pe={};Fe(Pe,{Entry:()=>z,Event:()=>Lr,FileSystem:()=>Pe,FindInput:()=>ke,Match:()=>pe,Submatch:()=>ze});var gr=cr({type:"file.edited",schema:{file:u.String}}),Lr={Edited:gr,Definitions:fr(gr)},z=u.Struct({path:N,type:u.Literals(["file","directory"])}).annotate({identifier:"FileSystem.Entry"}),ze=u.Struct({text:u.String,start:ce,end:ce}).annotate({identifier:"FileSystem.Submatch"}),pe=u.Struct({entry:z,line:le,offset:ce,text:u.String,submatches:u.Array(ze)}).annotate({identifier:"FileSystem.Match"}),ke=class extends u.Class("FileSystem.FindInput")({query:u.String,type:u.Literals(["file","directory"]).pipe(Qe),limit:le.pipe(Qe)}){static{o(this,"FindInput")}};import je from"path";var vr=ir(Cr(),1);import Ar from"path";function Ge(x,v){let g=v?.PATH??v?.Path??process.env.PATH??process.env.Path??"",c=g?g+Ar.delimiter+fe.Path.bin:fe.Path.bin,m=vr.default.sync(x,{nothrow:!0,path:c,pathExt:v?.PATHEXT??v?.PathExt??process.env.PATHEXT??process.env.PathExt});return typeof m=="string"?m:null}o(Ge,"which");var Oe;(s=>{let x="15.1.0",v={"arm64-darwin":{platform:"aarch64-apple-darwin",extension:"tar.gz"},"arm64-linux":{platform:"aarch64-unknown-linux-gnu",extension:"tar.gz"},"x64-darwin":{platform:"x86_64-apple-darwin",extension:"tar.gz"},"x64-linux":{platform:"x86_64-unknown-linux-musl",extension:"tar.gz"},"arm64-win32":{platform:"aarch64-pc-windows-msvc",extension:"zip"},"ia32-win32":{platform:"i686-pc-windows-msvc",extension:"zip"},"x64-win32":{platform:"x86_64-pc-windows-msvc",extension:"zip"}};class g extends se.Service()("@opencode/RipgrepBinary"){static{o(this,"Service")}}s.Service=g;let c=ee.effect(g,t.gen(function*(){let n=yield*Q.Service,h=Ke.filterStatusOk(yield*Ke.HttpClient),A=yield*sr,I=t.fnUntraced(function*(P,M){let R=yield*A.spawn(Ne.make(P,M,{extendEnv:!0,stdin:"ignore"})),[Y,H,U]=yield*t.all([W.mkString(W.decodeText(R.stdout)),W.mkString(W.decodeText(R.stderr)),R.exitCode],{concurrency:"unbounded"});return{stdout:Y,stderr:H,code:U}},t.scoped),T=t.fnUntraced(function*(P,M,R){let Y=yield*n.makeTempDirectoryScoped({directory:fe.Path.bin,prefix:"ripgrep-"});if(M.extension==="zip"){let U=(yield*t.sync(()=>Ge("powershell.exe")??Ge("pwsh.exe")))??"powershell.exe",j=yield*I(U,["-NoProfile","-NonInteractive","-Command",`$global:ProgressPreference = 'SilentlyContinue'; Expand-Archive -LiteralPath '${P.replaceAll("'","''")}' -DestinationPath '${Y.replaceAll("'","''")}' -Force`]);if(j.code!==0)throw new Error(j.stderr.trim()||j.stdout.trim()||`ripgrep extraction failed with code ${j.code}`)}if(M.extension==="tar.gz"){let U=yield*I("tar",["-xzf",P,"-C",Y]);if(U.code!==0)throw new Error(U.stderr.trim()||U.stdout.trim()||`ripgrep extraction failed with code ${U.code}`)}let H=je.join(Y,`ripgrep-${x}-${M.platform}`,process.platform==="win32"?"rg.exe":"rg");if(!(yield*n.isFile(H)))throw new Error(`ripgrep archive did not contain executable: ${H}`);yield*n.copyFile(H,R),process.platform!=="win32"&&(yield*n.chmod(R,493))},t.scoped);return g.of({filepath:yield*t.cached(t.gen(function*(){let P=yield*t.sync(()=>Ge(process.platform==="win32"?"rg.exe":"rg"));if(P&&(yield*n.isFile(P).pipe(t.orDie)))return P;let M=je.join(fe.Path.bin,`rg${process.platform==="win32"?".exe":""}`);if(yield*n.isFile(M).pipe(t.orDie))return M;let R=`${process.arch}-${process.platform}`,Y=v[R];if(!Y)throw new Error(`unsupported platform for ripgrep: ${R}`);let H=`ripgrep-${x}-${Y.platform}.${Y.extension}`,U=`https://github.com/BurntSushi/ripgrep/releases/download/${x}/${H}`,j=je.join(fe.Path.bin,H);yield*t.logInfo("downloading ripgrep",{url:U}),yield*n.ensureDir(fe.Path.bin).pipe(t.orDie);let he=yield*lr.get(U).pipe(h.execute,t.flatMap(de=>de.arrayBuffer),t.mapError(de=>de instanceof Error?de:new Error(String(de))));if(he.byteLength===0)throw new Error(`failed to download ripgrep from ${U}`);return yield*n.writeWithDirs(j,new Uint8Array(he)),yield*T(j,Y,M),yield*n.remove(j,{force:!0}).pipe(t.ignore),M}))})}));s.node=Be({service:g,layer:c,deps:[Q.node,dr,ur.node]})})(Oe||={});var Mr=8*1024,hr=64*1024,Rr=100,Tr=u.Struct({type:u.Literal("match"),data:u.Struct({path:u.Struct({text:u.String}),lines:u.Struct({text:u.String}),line_number:le,absolute_offset:ce,submatches:u.Array(u.Struct({match:u.Struct({text:u.String}),start:ce,end:ce}))})}),Ce=class extends u.TaggedErrorClass()("Ripgrep.Error",{message:u.String,cause:u.optional(u.Defect())}){static{o(this,"Error")}},Le=class extends u.TaggedErrorClass()("Ripgrep.InvalidPatternError",{pattern:u.String,message:u.String}){static{o(this,"InvalidPatternError")}},be=class extends se.Service()("@opencode/v2/Ripgrep"){static{o(this,"Service")}},ve=o((x,v)=>new Ce({message:x,cause:v}),"failure"),Dr=o(x=>x.includes("regex parse error")||x.includes("error parsing regex"),"isInvalidPattern"),Nr=ee.effect(be,t.gen(function*(){let x=yield*Ze.Service,v=yield*Oe.Service,g=o(c=>{let m=t.scoped(t.gen(function*(){let n=yield*x.spawn(Ne.make(yield*v.filepath,c.args,{cwd:c.cwd,extendEnv:!0,stdin:"ignore"})),h=yield*yr(n.stderr,Mr).pipe(t.map(R=>R.buffer.toString("utf8")),t.forkScoped),A=0,I=yield*W.decodeText(n.stdout).pipe(W.splitLines,W.filter(R=>R.length>0),W.mapEffect(c.parse),W.filter(R=>R!==void 0),W.tap(R=>!c.onItem||A++>=c.limit?t.void:c.onItem(R)),W.take(c.limit+1),W.runCollect,t.map(R=>[...R])),T=I.length>c.limit;if(T)return{items:I.slice(0,c.limit),truncated:T,partial:!1};let P=yield*n.exitCode,M=yield*or.join(h);return c.pattern&&P===2&&Dr(M)?yield*new Le({pattern:c.pattern,message:M.trim()}):P!==0&&P!==1&&P!==2?yield*ve(M.trim()||`ripgrep failed with code ${P}`):{items:P===1?[]:I,truncated:!1,partial:P===2}}));return(c.signal?m.pipe(t.raceFirst(mr(c.signal))):m).pipe(t.mapError(n=>n instanceof Ce||n instanceof Le?n:ve("ripgrep execution failed",n)))},"run");return be.of({glob:o(c=>g({cwd:c.cwd,limit:c.limit,signal:c.signal,args:["--no-config","--files",...c.hidden?["--hidden"]:[],...c.follow?["--follow"]:[],`--glob=${c.pattern}`,"--glob=!**/.git/**","."],parse:o(m=>t.succeed(m.replace(/^(?:\.[\\/])+/u,"").replace(/^[\\/]+/u,"").replaceAll("\\","/")),"parse")}).pipe(t.map(m=>m.items.map(s=>z.make({path:N.make(s),type:"file"}))),t.catchTag("Ripgrep.InvalidPatternError",m=>t.fail(ve(m.message,m)))),"glob"),find:o(c=>g({cwd:c.cwd,limit:c.limit,signal:c.signal,args:["--no-config","--files",...c.hidden?["--hidden"]:[],...c.follow?["--follow"]:[],...c.pattern==="*"?[]:[`--glob=${c.pattern}`],"--glob=!**/.git/**","."],parse:o(m=>{let s=m.replace(/^(?:\.[\\/])+/u,"").replace(/^[\\/]+/u,"").replaceAll("\\","/");return t.succeed(z.make({path:N.make(s),type:"file"}))},"parse"),onItem:c.onEntry}).pipe(t.map(m=>m.items),t.catchTag("Ripgrep.InvalidPatternError",m=>t.fail(ve(m.message,m)))),"find"),grep:o(c=>g({...c,args:["--no-config","--json","--hidden","--no-messages",...c.include?[`--glob=${c.include}`]:[],"--glob=!**/.git/**","--",c.pattern,c.file??"."],parse:o(m=>(Buffer.byteLength(m,"utf8")>hr?t.fail(ve(`Ripgrep JSON record exceeded ${hr} bytes`)):t.try({try:o(()=>JSON.parse(m),"try"),catch:o(s=>ve("Invalid ripgrep JSON output",s),"catch")})).pipe(t.flatMap(s=>!s||typeof s!="object"||!("type"in s)||s.type!=="match"?t.succeed(void 0):u.decodeUnknownEffect(Tr)(s).pipe(t.map(n=>({...n.data,path:{text:n.data.path.text.replace(/^\.[\\/]/,"")},submatches:n.data.submatches.slice(0,Rr)})),t.mapError(n=>ve("Invalid ripgrep match output",n))))),"parse")}).pipe(t.map(m=>m.items.map(s=>{let n=s.path.text.replace(/^(?:\.[\\/])+/u,"").replace(/^[\\/]+/u,"").replaceAll("\\","/");return pe.make({entry:z.make({path:N.make(n),type:"file"}),line:s.line_number,offset:s.absolute_offset,text:s.lines.text.length>2e3?s.lines.text.slice(0,2e3).replace(/[\uD800-\uDBFF]$/,"")+"...":s.lines.text,submatches:s.submatches.map(h=>({text:h.match.text,start:h.start,end:h.end}))})}))),"grep")})})),Br=Be({service:be,layer:Nr,deps:[Oe.node,Ze.node]});var tr={};Fe(tr,{Content:()=>qr,Entry:()=>z,Event:()=>Xr,FileSystem:()=>tr,FindInput:()=>ke,GlobInput:()=>er,GrepInput:()=>rr,ListInput:()=>Ur,Match:()=>pe,ReadInput:()=>Hr,Service:()=>Ee,Submatch:()=>ze,node:()=>Jr});import qe from"path";var _e={};Fe(_e,{FileSystemSearch:()=>_e,Service:()=>ie,fffLayer:()=>_r,locationLayer:()=>Gr,node:()=>Or,ripgrepLayer:()=>wr});import Z from"path";var we={};Fe(we,{Fff:()=>we,available:()=>$r,create:()=>zr});function $r(){return!1}o($r,"available");function zr(x){return{ok:!1,error:"fff unavailable on node runtime"}}o(zr,"create");var Sr=ir(br(),1);var ie=class extends se.Service()("@opencode/v2/FileSystem/Search"){static{o(this,"Service")}},wr=ee.effect(ie,t.gen(function*(){let x=yield*Q.Service,v=yield*ge.Service,g=yield*Se.Service,c=yield*ar.Scope,m={files:[],directories:[]},s=new Set;return yield*g.find({cwd:v.directory,pattern:"*",limit:v.vcs?Number.MAX_SAFE_INTEGER:1e5,onEntry:o(n=>t.sync(()=>{m.files.push(n.path);let h=n.path.split("/");h.slice(0,-1).forEach((A,I)=>s.add(h.slice(0,I+1).join("/")+Z.sep)),m.directories=Array.from(s)}),"onEntry")}).pipe(t.orDie,t.asVoid,t.forkIn(c)),ie.of({glob:o(n=>t.gen(function*(){let h=Z.resolve(v.directory,n.path??"."),I=(yield*x.stat(h).pipe(t.orDie)).type==="File"?Z.dirname(h):h;return yield*g.glob({cwd:I,pattern:n.pattern,limit:n.limit??Number.MAX_SAFE_INTEGER}).pipe(t.map(T=>T.map(P=>z.make({...P,path:N.make(Z.relative(v.directory,Z.resolve(I,P.path)))}))),t.orDie)}),"glob"),grep:o(n=>t.gen(function*(){let h=Z.resolve(v.directory,n.path??"."),A=yield*x.stat(h).pipe(t.orDie),I=A.type==="File"?Z.dirname(h):h;return yield*g.grep({cwd:I,pattern:n.pattern,file:A.type==="File"?Z.basename(h):void 0,include:n.include,limit:n.limit??Number.MAX_SAFE_INTEGER}).pipe(t.map(T=>T.map(P=>pe.make({...P,entry:z.make({...P.entry,path:N.make(Z.relative(v.directory,Z.resolve(I,P.entry.path)))})}))),t.orDie)}),"grep"),find:o(n=>t.gen(function*(){let h=n.type==="file"?m.files:n.type==="directory"?m.directories:[...m.files,...m.directories];return Sr.default.go(n.query,h,{limit:n.limit??50}).map(A=>{let I=A.target,T=I.endsWith(Z.sep)?"directory":"file";return z.make({path:N.make(I),type:T})})}),"find")})})),_r=ee.effect(ie,t.gen(function*(){let x=yield*ge.Service,v=yield*t.try({try:o(()=>we.create({basePath:x.directory,aiMode:!0,disableMmapCache:!0,disableContentIndexing:!0}),"try"),catch:o(g=>g,"catch")}).pipe(t.catch(g=>t.logWarning("failed to initialize fff",{error:g}).pipe(t.as(void 0))));return v?.ok?(yield*t.addFinalizer(()=>t.sync(()=>v.value.destroy()).pipe(t.ignore)),ie.of({glob:o(g=>t.sync(()=>{let c=g.path?.replaceAll("\\","/").replace(/\/$/,""),m=v.value.glob(c?`${c}/${g.pattern}`:g.pattern,{pageIndex:0,pageSize:g.limit});if(!m.ok)throw m.error;return m.value.items.map(s=>z.make({path:N.make(s.relativePath.replaceAll("\\","/")),type:"file"}))}),"glob"),grep:o(g=>t.sync(()=>{let c=g.path?.replaceAll("\\","/").replace(/\/$/,""),m=v.value.grep([c?`${c}/**`:void 0,g.include,g.pattern].filter(s=>s!==void 0).join(" "),{mode:"regex",pageSize:g.limit,timeBudgetMs:1500});if(!m.ok)throw m.error;return m.value.items.map(s=>{let n=Buffer.from(s.lineContent);return pe.make({entry:z.make({path:N.make(s.relativePath.replaceAll("\\","/")),type:"file"}),line:s.lineNumber,offset:s.byteOffset,text:s.lineContent.length>2e3?s.lineContent.slice(0,2e3)+"...":s.lineContent,submatches:s.matchRanges.map(([h,A])=>({text:n.subarray(h,A).toString("utf8"),start:h,end:A}))})})}),"grep"),find:o(g=>t.sync(()=>{let c={pageIndex:0,pageSize:g.limit??50};return(()=>{if(g.type==="file"){let n=v.value.fileSearch(g.query.trim(),c);if(!n.ok)throw n.error;return n.value.items.map((h,A)=>({path:h.relativePath,type:"file",score:n.value.scores[A]?.total??0}))}if(g.type==="directory"){let n=v.value.directorySearch(g.query.trim(),c);if(!n.ok)throw n.error;return n.value.items.map((h,A)=>({path:h.relativePath,type:"directory",score:n.value.scores[A]?.total??0}))}let s=v.value.mixedSearch(g.query.trim(),c);if(!s.ok)throw s.error;return s.value.items.map((n,h)=>({path:n.item.relativePath,type:n.type,score:s.value.scores[h]?.total??0}))})().sort((s,n)=>n.score-s.score||s.path.length-n.path.length).map(s=>{let n=s.path.replaceAll("\\","/").replace(/\/$/,"");return z.make({path:N.make(n+(s.type==="directory"?Z.sep:"")),type:s.type})})}),"find")})):(v&&(yield*t.logWarning("failed to initialize fff",{error:v.error})),ie.of({find:o(()=>t.succeed([]),"find"),glob:o(()=>t.succeed([]),"glob"),grep:o(()=>t.succeed([]),"grep")}))})),Er=ee.unwrap(t.sync(()=>pr.OPENCODE_DISABLE_FFF||!we.available()?wr:_r)),Gr=Er,Or=$e({service:ie,layer:Er,deps:[Q.node,ge.node,Se.node]});var Hr=u.Struct({path:N}),qr=u.Struct({uri:u.String,name:u.String.pipe(u.optional),content:u.String,encoding:u.Literals(["utf8","base64"]),mime:u.String}).annotate({identifier:"FileSystem.Content"}),Ur=u.Struct({path:N.pipe(u.optional)});var er=class extends u.Class("FileSystem.GlobInput")({pattern:u.String,path:N.pipe(u.optional),limit:le.pipe(u.optional)}){static{o(this,"GlobInput")}},rr=class extends u.Class("FileSystem.GrepInput")({pattern:u.String,path:N.pipe(u.optional),include:u.String.pipe(u.optional),limit:le.pipe(u.optional)}){static{o(this,"GrepInput")}},Xr=Pe.Event,Ee=class extends se.Service()("@opencode/v2/FileSystem"){static{o(this,"Service")}},Wr=ee.effect(Ee,t.gen(function*(){let x=yield*Q.Service,v=yield*ge.Service,g=yield*_e.Service,c=yield*x.realPath(v.directory).pipe(t.orDie),m=t.fnUntraced(function*(s){let n=qe.resolve(v.directory,s??".");if(!Q.contains(v.directory,n))return yield*t.die(new Error("Path escapes the location"));let h=yield*x.realPath(n).pipe(t.orDie);return Q.contains(c,h)?{absolute:n,real:h,directory:v.directory,root:c}:yield*t.die(new Error("Path escapes the location"))});return Ee.of({find:g.find,glob:g.glob,grep:g.grep,read:t.fn("FileSystem.read")(function*(s){let n=yield*m(s.path);return(yield*x.stat(n.real).pipe(t.orDie)).type!=="File"?yield*t.die(new Error("Path is not a file")):{content:yield*x.readFile(n.real).pipe(t.orDie),mime:Q.mimeType(n.real)}}),list:t.fn("FileSystem.list")(function*(s={}){let n=yield*m(s.path);return(yield*x.stat(n.real).pipe(t.orDie)).type!=="Directory"?yield*t.die(new Error("Path is not a directory")):yield*x.readDirectoryEntries(n.real).pipe(t.orDie,t.map(A=>A.flatMap(I=>{if(I.type!=="file"&&I.type!=="directory")return[];let T=qe.join(n.absolute,I.name),P=qe.relative(n.directory,T);return[z.make({path:N.make(P+(I.type==="directory"?qe.sep:"")),type:I.type})]}).sort((I,T)=>I.type===T.type?I.path.localeCompare(T.path):I.type==="directory"?-1:1)))})})})),Jr=$e({service:Ee,layer:Wr,deps:[Q.node,ge.node,_e.node]});export{br as a,Pe as b,Ge as c,Se as d,_e as e,tr as f};