fluxflow-cli 4.23.5 → 4.24.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 (67) hide show
  1. package/dist/chunks/{addMemScore-COX3MDEK.js → addMemScore-PWP7GFSP.js} +1 -1
  2. package/dist/chunks/{ai-IOEGZWGA.js → ai-NFNMNHUW.js} +1 -1
  3. package/dist/chunks/{app-OWHF6FXI.js → app-KJGLCANP.js} +142 -142
  4. package/dist/chunks/{chat-J5AAPLPF.js → chat-7T6MVHC3.js} +1 -1
  5. package/dist/chunks/{chunk-BSUDXEA2.js → chunk-3CZWTXIR.js} +1 -1
  6. package/dist/chunks/{chunk-CXNFFI7L.js → chunk-3LTI7Z7N.js} +1 -1
  7. package/dist/chunks/{chunk-7UNVYHZ7.js → chunk-4XXLWMY6.js} +1 -1
  8. package/dist/chunks/{chunk-COUKJJ4O.js → chunk-6AWSJNXE.js} +14 -14
  9. package/dist/chunks/{chunk-P52SKLRJ.js → chunk-7SFAWGE2.js} +1 -1
  10. package/dist/chunks/{chunk-WMRT2YZU.js → chunk-AF7LASZ3.js} +1 -1
  11. package/dist/chunks/chunk-DSVLWYIT.js +2 -0
  12. package/dist/chunks/{chunk-IRFTRBG2.js → chunk-FQBBOFNP.js} +1 -1
  13. package/dist/chunks/{chunk-OOTXMJIA.js → chunk-GRQ7JZZP.js} +1 -1
  14. package/dist/chunks/{chunk-U6UKO6MO.js → chunk-JCT3YL5A.js} +1 -1
  15. package/dist/chunks/chunk-JQ5Y2VZD.js +914 -0
  16. package/dist/chunks/{chunk-6KFABN4O.js → chunk-KNCL7AK2.js} +1 -1
  17. package/dist/chunks/{chunk-QGPOMXO4.js → chunk-OSDQRSY6.js} +1 -1
  18. package/dist/chunks/{chunk-HRKT75ZJ.js → chunk-PQRLA35M.js} +15 -15
  19. package/dist/chunks/{chunk-2KD7V3OK.js → chunk-RZTZPIC5.js} +1 -1
  20. package/dist/chunks/{chunk-RLT6EHPQ.js → chunk-SZYN3VHU.js} +1 -1
  21. package/dist/chunks/{chunk-Z4HHJIHG.js → chunk-VYTQ6J56.js} +1 -1
  22. package/dist/chunks/{chunk-UDJ2C3N3.js → chunk-ZRP6USHC.js} +28 -28
  23. package/dist/chunks/{click-HS7NJR6J.js → click-5ZKBFZ4N.js} +2 -2
  24. package/dist/chunks/{computer_action-YCFAAZNA.js → computer_action-7U3W3F6L.js} +1 -1
  25. package/dist/chunks/{drag-SBWNKGDV.js → drag-YHHKJGL6.js} +1 -1
  26. package/dist/chunks/{emergency_rollback-6M5EH75W.js → emergency_rollback-DXN5WNPR.js} +1 -1
  27. package/dist/chunks/{exec_command-27EPEAE5.js → exec_command-GVLMN5KT.js} +1 -1
  28. package/dist/chunks/export-DEFENSGY.js +1 -0
  29. package/dist/chunks/{file_map-XK7BFZFI.js → file_map-KS6Y7BP3.js} +1 -1
  30. package/dist/chunks/find_file-A6NYLQJS.js +4 -0
  31. package/dist/chunks/{generate_image-S6M2GCD7.js → generate_image-HVWLRINC.js} +1 -1
  32. package/dist/chunks/{getProgress-VG2IBPZU.js → getProgress-A2TW34Q7.js} +2 -2
  33. package/dist/chunks/{invoke-GKLK35YP.js → invoke-A65SLWMF.js} +4 -4
  34. package/dist/chunks/{invokeSync-7PK3CJVJ.js → invokeSync-KP33D2NU.js} +2 -2
  35. package/dist/chunks/{key_press-BT6QQ24M.js → key_press-ZZNA3PF3.js} +1 -1
  36. package/dist/chunks/{keyboard_typing-IWKUCQE4.js → keyboard_typing-QL3DF67Z.js} +1 -1
  37. package/dist/chunks/{memory-5CNSGF6X.js → memory-SRDCQNML.js} +1 -1
  38. package/dist/chunks/{model_config-UZLNHYP5.js → model_config-M24OEKJE.js} +1 -1
  39. package/dist/chunks/paths-2EXHWUSL.js +1 -0
  40. package/dist/chunks/{read_folder-OOKZITME.js → read_folder-EI2CNHNS.js} +5 -5
  41. package/dist/chunks/{saveSummary-XQ2STWSN.js → saveSummary-VKGBD4CG.js} +1 -1
  42. package/dist/chunks/{screen_grid-YL4W6LEM.js → screen_grid-GBIGOR5Q.js} +1 -1
  43. package/dist/chunks/{scroll-TA2JTVSR.js → scroll-C4Z57VQS.js} +1 -1
  44. package/dist/chunks/search_keyword-CSRQFPHQ.js +6 -0
  45. package/dist/chunks/{secrets-BJGXCZRP.js → secrets-LPVNWDTB.js} +1 -1
  46. package/dist/chunks/settings-KKYNW25D.js +1 -0
  47. package/dist/chunks/{todo-C5HHG7TN.js → todo-VG2CVRUI.js} +1 -1
  48. package/dist/chunks/{update_file-2YCGNOBP.js → update_file-WTXXQ4RB.js} +1 -1
  49. package/dist/chunks/{usage-6BBHZ76S.js → usage-VLICZGBC.js} +1 -1
  50. package/dist/chunks/usageServer-HY4ME2BW.js +1 -0
  51. package/dist/chunks/view_file-2THVIMD6.js +1 -0
  52. package/dist/chunks/{web_scrape-LAQI7CVA.js → web_scrape-BHSQTMX4.js} +1 -1
  53. package/dist/chunks/{web_search-D2GOWARI.js → web_search-2PFIJKIL.js} +1 -1
  54. package/dist/chunks/{write_docx-J5OO4ZSE.js → write_docx-I7T3575T.js} +1 -1
  55. package/dist/chunks/{write_file-MDPZMOG3.js → write_file-V6HKMWFB.js} +1 -1
  56. package/dist/chunks/{write_pdf-KF7HZODR.js → write_pdf-XDDKM7V5.js} +1 -1
  57. package/dist/cli.js +8 -8
  58. package/dist/package.json +1 -1
  59. package/package.json +1 -1
  60. package/dist/chunks/chunk-5LRTKLA4.js +0 -923
  61. package/dist/chunks/chunk-RI37VZYB.js +0 -1
  62. package/dist/chunks/export-YTWRQ63I.js +0 -1
  63. package/dist/chunks/paths-Y7ACZJAE.js +0 -1
  64. package/dist/chunks/search_keyword-EAMQWPPI.js +0 -8
  65. package/dist/chunks/settings-ZDBO3FHN.js +0 -1
  66. package/dist/chunks/usageServer-CSS2XQH3.js +0 -1
  67. package/dist/chunks/view_file-4UCCUBFK.js +0 -1
@@ -2,4 +2,4 @@ import{screen as j}from"@nut-tree-fork/nut-js";import B from"screenshot-desktop"
2
2
  <rect x="${w+1}" y="${m+1}" width="${v-2}" height="${y-2}" fill="rgba(0, 255, 255, 0.015)" stroke="rgba(255, 255, 0, 0.3)" stroke-width="1.1" rx="2"/>
3
3
  `;let M;if(s.isCustomY)M=r;else{let g=r+(s.yOffset!==void 0?s.yOffset:3);M=Math.max(m+11,Math.min(m+y+3,g))}u+=`
4
4
  <text x="${e}" y="${M}" font-family="'Segoe UI', Roboto, sans-serif" font-size="14" font-weight="600" fill="#FFFF00" stroke="#000000" stroke-width="2" paint-order="stroke fill" stroke-linejoin="round" opacity="0.8" text-anchor="middle">${G}</text>
5
- `}return`<svg width="${o}" height="${t}" xmlns="http://www.w3.org/2000/svg">${u}</svg>`}var J=1,V=o=>new Promise(t=>setTimeout(t,o));async function Q(){try{let{loadSettings:o}=await import("./settings-ZDBO3FHN.js"),t=await o();return Number(t.display||0)}catch{return 0}}async function st(){let o=await Q();try{let t=await B.listDisplays();if(t&&t.length>0)return{format:"png",screen:(t[o]||t[0]).id}}catch{}return{format:"png"}}async function rt(){let o=0,t=await st();for(;o<2;){let C=await B(t);await V(500);let a=await B(t);if(C.equals(a))return a;o++,o<2&&await V(3e3)}return await V(3e3),await B(t)}async function ht(){try{let o=await rt(),t=await et(o),C=ot(l.TARGET_WIDTH,l.TARGET_HEIGHT,l.COLS,l.ROWS,t),a=await K(o).resize(l.TARGET_WIDTH,l.TARGET_HEIGHT,{fit:"fill"}).composite([{input:Buffer.from(C),top:0,left:0}]).png({quality:100}).toBuffer();if(process.env.SHOW_DEBUG_GRID)try{let s=Z.resolve(process.cwd(),"screenshots");await P.ensureDir(s);let G=Z.join(s,`${J}.png`);await P.writeFile(G,a),J++}catch{}let x=a.toString("base64"),c=t.length,d=o,u=a;return d=null,u=null,{base64:x,mimeType:"image/png",width:l.TARGET_WIDTH,height:l.TARGET_HEIGHT,detectedCount:c}}catch(o){return console.error("Failed to capture gridded screenshot:",o),null}}function nt(o){if(o==null)return null;let t=null;if(typeof o=="number")t=o;else if(typeof o=="string"){let w=o.trim();if(/^\d+$/.test(w))t=parseInt(w,10);else{let m=w.match(/^([A-Z])([0-9]{1,2})$/i);if(m){let v=m[1].toUpperCase().charCodeAt(0)-65,y=parseInt(m[2],10)-1;t=v*l.COLS+y+1}}}if(t===null||isNaN(t))return null;if(U&&U.length>0){let w=U.find(m=>m.cellNum===t);if(w)return{x:w.cx,y:w.cy,colIdx:Math.floor((t-1)%l.COLS),rowIdx:Math.floor((t-1)/l.COLS),cellNum:t}}let C=l.COLS*l.ROWS;if(t<1||t>C)return null;let a=t-1,x=Math.floor(a/l.COLS),c=a%l.COLS,d=l.TARGET_WIDTH/l.COLS,u=l.TARGET_HEIGHT/l.ROWS,s=Math.floor(c*d+d/2),G=Math.floor(x*u+u/2);return{x:s,y:G,colIdx:c,rowIdx:x,cellNum:t}}async function ut(o,t,C){let a=null;if(typeof o=="number"||typeof o=="string"?a=nt(o):o&&typeof o.x=="number"&&typeof o.y=="number"&&(a=o),!a)return null;let x=t,c=C,d=0,u=0,s=await Q();try{let y=await B.listDisplays();if(y&&y.length>0){let e=y[s]||y[0];e.width&&e.height&&(x=e.width,c=e.height),e.left!==void 0&&(d=e.left),e.top!==void 0&&(u=e.top)}}catch{}if(!x||!c)try{x=await j.width(),c=await j.height()}catch{x=1920,c=1080}let G=x/l.TARGET_WIDTH,w=c/l.TARGET_HEIGHT,m=Math.round(a.x*G)+d,v=Math.round(a.y*w)+u;return{x:m,y:v,screenW:x,screenH:c,offsetX:d,offsetY:u}}export{l as a,Q as b,ht as c,nt as d,ut as e};
5
+ `}return`<svg width="${o}" height="${t}" xmlns="http://www.w3.org/2000/svg">${u}</svg>`}var J=1,V=o=>new Promise(t=>setTimeout(t,o));async function Q(){try{let{loadSettings:o}=await import("./settings-KKYNW25D.js"),t=await o();return Number(t.display||0)}catch{return 0}}async function st(){let o=await Q();try{let t=await B.listDisplays();if(t&&t.length>0)return{format:"png",screen:(t[o]||t[0]).id}}catch{}return{format:"png"}}async function rt(){let o=0,t=await st();for(;o<2;){let C=await B(t);await V(500);let a=await B(t);if(C.equals(a))return a;o++,o<2&&await V(3e3)}return await V(3e3),await B(t)}async function ht(){try{let o=await rt(),t=await et(o),C=ot(l.TARGET_WIDTH,l.TARGET_HEIGHT,l.COLS,l.ROWS,t),a=await K(o).resize(l.TARGET_WIDTH,l.TARGET_HEIGHT,{fit:"fill"}).composite([{input:Buffer.from(C),top:0,left:0}]).png({quality:100}).toBuffer();if(process.env.SHOW_DEBUG_GRID)try{let s=Z.resolve(process.cwd(),"screenshots");await P.ensureDir(s);let G=Z.join(s,`${J}.png`);await P.writeFile(G,a),J++}catch{}let x=a.toString("base64"),c=t.length,d=o,u=a;return d=null,u=null,{base64:x,mimeType:"image/png",width:l.TARGET_WIDTH,height:l.TARGET_HEIGHT,detectedCount:c}}catch(o){return console.error("Failed to capture gridded screenshot:",o),null}}function nt(o){if(o==null)return null;let t=null;if(typeof o=="number")t=o;else if(typeof o=="string"){let w=o.trim();if(/^\d+$/.test(w))t=parseInt(w,10);else{let m=w.match(/^([A-Z])([0-9]{1,2})$/i);if(m){let v=m[1].toUpperCase().charCodeAt(0)-65,y=parseInt(m[2],10)-1;t=v*l.COLS+y+1}}}if(t===null||isNaN(t))return null;if(U&&U.length>0){let w=U.find(m=>m.cellNum===t);if(w)return{x:w.cx,y:w.cy,colIdx:Math.floor((t-1)%l.COLS),rowIdx:Math.floor((t-1)/l.COLS),cellNum:t}}let C=l.COLS*l.ROWS;if(t<1||t>C)return null;let a=t-1,x=Math.floor(a/l.COLS),c=a%l.COLS,d=l.TARGET_WIDTH/l.COLS,u=l.TARGET_HEIGHT/l.ROWS,s=Math.floor(c*d+d/2),G=Math.floor(x*u+u/2);return{x:s,y:G,colIdx:c,rowIdx:x,cellNum:t}}async function ut(o,t,C){let a=null;if(typeof o=="number"||typeof o=="string"?a=nt(o):o&&typeof o.x=="number"&&typeof o.y=="number"&&(a=o),!a)return null;let x=t,c=C,d=0,u=0,s=await Q();try{let y=await B.listDisplays();if(y&&y.length>0){let e=y[s]||y[0];e.width&&e.height&&(x=e.width,c=e.height),e.left!==void 0&&(d=e.left),e.top!==void 0&&(u=e.top)}}catch{}if(!x||!c)try{x=await j.width(),c=await j.height()}catch{x=1920,c=1080}let G=x/l.TARGET_WIDTH,w=c/l.TARGET_HEIGHT,m=Math.round(a.x*G)+d,v=Math.round(a.y*w)+u;return{x:m,y:v,screenW:x,screenH:c,offsetX:d,offsetY:u}}export{l as a,Q as b,ht as c,nt as d,ut as e};
@@ -1 +1 @@
1
- import{a as m}from"./chunk-RI37VZYB.js";import d from"fs";import p from"path";import{fileURLToPath as M}from"url";var u={version:0,release:20260913,fallbacks:{janitor_default:"gemini-3.1-flash-lite",janitor_attempts_fallback:"gemma-4-26b-a4b-it",janitor_open_router:"google/gemma-4-26b-a4b-it:free",general_fallback:"gemini-3.1-flash-lite",deepseek_fast_fallback:"deepseek-v4-flash",deepseek_level_1:"deepseek-v4-flash",deepseek_level_2:"deepseek-v4-pro",mistral_janitor_fallback:"",mistral_level_1:"",nvidia_janitor_fallback:"mistralai/mistral-nemotron",nvidia_chat_summarizer_fallback:"nvidia/nemotron-3-super-120b-a12b",google_level_1:"gemini-3-flash-preview",google_level_2:"gemini-3.7-flash",gemma_emergency:"gemma-4-31b-it",gemma_janitor_fallback_google_openrouter:"google/gemma-4-26b-a4b-it:free",gemma_janitor_fallback_google:"gemma-4-26b-a4b-it",inferx_fallback:"",sensenova_fallback:"",crofai_fallback:"",aihubmix_fallback:"",poolside_fallback:"","9router_fallback":"",explabs_fallback:"",tokenharbor_fallback:""},providers:{}};var S=M(import.meta.url),y=p.dirname(S),g="",I=[p.join(y,"../../model_config.json"),p.join(y,"../model_config.json")];for(let e of I)try{if(d.existsSync(e)){g=e;break}}catch{}var _=p.join(m,"model_config.json"),a=null,v=()=>{if(g)try{let e=d.readFileSync(g,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object")return s}catch{}return u&&typeof u=="object"?JSON.parse(JSON.stringify(u)):{version:0,release:20260913,fallbacks:{},providers:{}}};if(d.existsSync(_))try{let e=d.readFileSync(_,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object"){let t=v();s.fallbacks={...t.fallbacks||{},...s.fallbacks||{}},s.providers||(s.providers={}),s.release||(s.release=t.release||20260913),a=s}}catch{}a||(a=v());var F=new Set,k=new Set,f=()=>{let e=new Set,s=new Set;if(a.providers)for(let t of Object.keys(a.providers)){let r=a.providers[t];if(r&&r.models){let o=["Free","Paid"];for(let l of o){let i=r.models[l];if(Array.isArray(i)){for(let n of i)if(n&&n.cmd){let b=n.cmd.trim().toLowerCase();n.multimodal===!0&&e.add(b),n.hasReasoning===!0&&s.add(b)}}}}}if(Array.isArray(a.multimodal_models))for(let t of a.multimodal_models)t&&typeof t=="string"&&e.add(t.trim().toLowerCase());F=e,k=s};f();var L=()=>a,c=()=>{try{return d.existsSync(m)||d.mkdirSync(m,{recursive:!0}),d.writeFileSync(_,JSON.stringify(a,null,2),"utf-8"),!0}catch{return!1}},$=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},N=(e,s,t=!0)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};let o=a.providers?.[e];if(!o||!o.models||!Array.isArray(o.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},J=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(t)if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!0,desc:r}}else l.multimodal=!0;return o.default_free=r,f(),c(),{success:!0}},R=(e,s)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let t=s.trim();if(!t)return{success:!1,reason:"Model ID cannot be empty"};let r=a.providers?.[e];if(!r||!r.models||!Array.isArray(r.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let o=r.models.Free.findIndex(l=>(typeof l=="string"?l:l?.cmd)===t);return o===-1?{success:!1,reason:`Model "${t}" not found in ${e} model list`}:(r.models.Free.splice(o,1),r.default_free===t&&(r.default_free=""),r.default_paid===t&&(r.default_paid=""),f(),c(),{success:!0})},T=(e,s,t)=>{if(!e||!s||!t)return{success:!1,reason:"Invalid provider or model IDs"};let r=s.trim(),o=t.trim();if(!r||!o)return{success:!1,reason:"Model IDs cannot be empty"};let l=a.providers?.[e];if(!l||!l.models||!Array.isArray(l.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let i=l.models.Free.find(n=>(typeof n=="string"?n:n?.cmd)===r);if(!i)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof i=="string"){let n=l.models.Free.indexOf(i);l.models.Free[n]={cmd:o,multimodal:!1,desc:o}}else i.cmd=o,(i.desc===r||!i.desc)&&(i.desc=o);return f(),c(),{success:!0}},x=!1,P=e=>{x=!!e},E=P,U=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return!!(x||F.has(s)||s.startsWith("gemini-")||s.startsWith("gemma-"))},W=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return k.has(s)},z=(e,s)=>{let t=a.providers[e];return t?t.models[s==="Free"?"Free":"Paid"]||[]:[]},G=(e,s)=>{let t=a.providers[e];return t?s==="Free"?t.default_free:t.default_paid:""},K=e=>a.fallbacks[e];export{u as a,L as b,c,$ as d,N as e,J as f,R as g,T as h,P as i,E as j,U as k,W as l,z as m,G as n,K as o};
1
+ import{a as m}from"./chunk-DSVLWYIT.js";import d from"fs";import p from"path";import{fileURLToPath as M}from"url";var u={version:0,release:20260913,fallbacks:{janitor_default:"gemini-3.1-flash-lite",janitor_attempts_fallback:"gemma-4-26b-a4b-it",janitor_open_router:"google/gemma-4-26b-a4b-it:free",general_fallback:"gemini-3.1-flash-lite",deepseek_fast_fallback:"deepseek-v4-flash",deepseek_level_1:"deepseek-v4-flash",deepseek_level_2:"deepseek-v4-pro",mistral_janitor_fallback:"",mistral_level_1:"",nvidia_janitor_fallback:"mistralai/mistral-nemotron",nvidia_chat_summarizer_fallback:"nvidia/nemotron-3-super-120b-a12b",google_level_1:"gemini-3-flash-preview",google_level_2:"gemini-3.7-flash",gemma_emergency:"gemma-4-31b-it",gemma_janitor_fallback_google_openrouter:"google/gemma-4-26b-a4b-it:free",gemma_janitor_fallback_google:"gemma-4-26b-a4b-it",inferx_fallback:"",sensenova_fallback:"",crofai_fallback:"",aihubmix_fallback:"",poolside_fallback:"","9router_fallback":"",explabs_fallback:"",tokenharbor_fallback:""},providers:{}};var S=M(import.meta.url),y=p.dirname(S),g="",I=[p.join(y,"../../model_config.json"),p.join(y,"../model_config.json")];for(let e of I)try{if(d.existsSync(e)){g=e;break}}catch{}var _=p.join(m,"model_config.json"),a=null,v=()=>{if(g)try{let e=d.readFileSync(g,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object")return s}catch{}return u&&typeof u=="object"?JSON.parse(JSON.stringify(u)):{version:0,release:20260913,fallbacks:{},providers:{}}};if(d.existsSync(_))try{let e=d.readFileSync(_,"utf-8"),s=JSON.parse(e);if(s&&typeof s=="object"){let t=v();s.fallbacks={...t.fallbacks||{},...s.fallbacks||{}},s.providers||(s.providers={}),s.release||(s.release=t.release||20260913),a=s}}catch{}a||(a=v());var F=new Set,k=new Set,f=()=>{let e=new Set,s=new Set;if(a.providers)for(let t of Object.keys(a.providers)){let r=a.providers[t];if(r&&r.models){let o=["Free","Paid"];for(let l of o){let i=r.models[l];if(Array.isArray(i)){for(let n of i)if(n&&n.cmd){let b=n.cmd.trim().toLowerCase();n.multimodal===!0&&e.add(b),n.hasReasoning===!0&&s.add(b)}}}}}if(Array.isArray(a.multimodal_models))for(let t of a.multimodal_models)t&&typeof t=="string"&&e.add(t.trim().toLowerCase());F=e,k=s};f();var L=()=>a,c=()=>{try{return d.existsSync(m)||d.mkdirSync(m,{recursive:!0}),d.writeFileSync(_,JSON.stringify(a,null,2),"utf-8"),!0}catch{return!1}},$=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},N=(e,s,t=!0)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};let o=a.providers?.[e];if(!o||!o.models||!Array.isArray(o.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!!t,desc:r}}else l.multimodal=!!t;return f(),c(),{success:!0}},J=(e,s,t=!1)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let r=s.trim();if(!r)return{success:!1,reason:"Model ID cannot be empty"};a.providers||(a.providers={}),a.providers[e]||(a.providers[e]={default_free:"",default_paid:"",models:{Free:[],Paid:[]}});let o=a.providers[e];o.models||(o.models={Free:[],Paid:[]}),Array.isArray(o.models.Free)||(o.models.Free=[]);let l=o.models.Free.find(i=>(typeof i=="string"?i:i?.cmd)===r);if(!l)o.models.Free.push({cmd:r,multimodal:!!t,desc:r});else if(t)if(typeof l=="string"){let i=o.models.Free.indexOf(l);o.models.Free[i]={cmd:r,multimodal:!0,desc:r}}else l.multimodal=!0;return o.default_free=r,f(),c(),{success:!0}},R=(e,s)=>{if(!e||!s)return{success:!1,reason:"Invalid provider or model ID"};let t=s.trim();if(!t)return{success:!1,reason:"Model ID cannot be empty"};let r=a.providers?.[e];if(!r||!r.models||!Array.isArray(r.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let o=r.models.Free.findIndex(l=>(typeof l=="string"?l:l?.cmd)===t);return o===-1?{success:!1,reason:`Model "${t}" not found in ${e} model list`}:(r.models.Free.splice(o,1),r.default_free===t&&(r.default_free=""),r.default_paid===t&&(r.default_paid=""),f(),c(),{success:!0})},T=(e,s,t)=>{if(!e||!s||!t)return{success:!1,reason:"Invalid provider or model IDs"};let r=s.trim(),o=t.trim();if(!r||!o)return{success:!1,reason:"Model IDs cannot be empty"};let l=a.providers?.[e];if(!l||!l.models||!Array.isArray(l.models.Free))return{success:!1,reason:`Provider ${e} has no models configured`};let i=l.models.Free.find(n=>(typeof n=="string"?n:n?.cmd)===r);if(!i)return{success:!1,reason:`Model "${r}" not found in ${e} model list`};if(typeof i=="string"){let n=l.models.Free.indexOf(i);l.models.Free[n]={cmd:o,multimodal:!1,desc:o}}else i.cmd=o,(i.desc===r||!i.desc)&&(i.desc=o);return f(),c(),{success:!0}},x=!1,P=e=>{x=!!e},E=P,U=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return!!(x||F.has(s)||s.startsWith("gemini-")||s.startsWith("gemma-"))},W=e=>{if(!e)return!1;let s=e.trim().toLowerCase();return k.has(s)},z=(e,s)=>{let t=a.providers[e];return t?t.models[s==="Free"?"Free":"Paid"]||[]:[]},G=(e,s)=>{let t=a.providers[e];return t?s==="Free"?t.default_free:t.default_paid:""},K=e=>a.fallbacks[e];export{u as a,L as b,c,$ as d,N as e,J as f,R as g,T as h,P as i,E as j,U as k,W as l,z as m,G as n,K as o};
@@ -1,12 +1,12 @@
1
- import{execSync as a}from"child_process";var t=null,k=()=>{if(process.platform!=="win32")return!1;if(t!==null)return t;try{a("where.exe pwsh.exe",{stdio:"ignore",windowsHide:!0}),t=!0}catch{t=!1}return t},r=null,l=()=>{if(process.platform!=="win32")return!1;if(r!==null)return r;try{a("where.exe powershell.exe",{stdio:"ignore",windowsHide:!0}),r=!0}catch{r=!1}return r},w=()=>k()?"pwsh":l()?"powershell":"cmd",n=null,v=(e,c,u,d,g=!1,p=!0,f,i=!1)=>{n===null&&(n=g);let h=`- JSON escape literal sequences, backslash: \\\\, newLine: \\ n
1
+ import{execSync as o}from"child_process";var t=null,k=()=>{if(process.platform!=="win32")return!1;if(t!==null)return t;try{o("where.exe pwsh.exe",{stdio:"ignore",windowsHide:!0}),t=!0}catch{t=!1}return t},r=null,l=()=>{if(process.platform!=="win32")return!1;if(r!==null)return r;try{o("where.exe powershell.exe",{stdio:"ignore",windowsHide:!0}),r=!0}catch{r=!1}return r},w=()=>k()?"pwsh":l()?"powershell":"cmd",n=null,v=(e,c,u,d,g=!1,p=!0,f,i=!1)=>{n===null&&(n=g);let m=`- JSON escape literal sequences, backslash: \\\\, newLine: \\ n
2
2
  - Same file, multiple edits? One PatchFile (\u226415 blocks)${f?"":`
3
- - Tool denied? Ask for guidance`}
3
+ - Action denied? Ask for guidance`}
4
4
  - Need text or huge file? CodeSearch > Full Read
5
5
  - Avoid unnecessary large file chunk reads
6
- - Dont hallucinate tool results
7
6
  - Stuck on syntax error? Tell user > waste time
8
- `,s=`**Workspace Tools (path = relative; first argument; separator: '/')**
7
+ `,s=`**Workspace (path = relative; first argument; separator: '/')**
9
8
  - ReadFile(path=string, startLine?=int, endLine?=int)${d==="Google"||u?". Supports images":""}
9
+ - FindFile(basename=string). Find file path. Extention optional
10
10
  - ReadFolder(path=string, recurse?=int[1..3])
11
11
  - PatchFile(path=string, allowMultiple?=bool, searchContent1="string match OR ^LINE:start..end$", newContent1=string, ...MAX15). Small searchString. Line Anchor: ^LINE:...$ syntax, must for large blocks & escape sequences
12
12
  - WriteFile(path=string, content=string). Creates/Overwrites. File Exist? PatchFile > WriteFile
@@ -14,11 +14,11 @@ import{execSync as a}from"child_process";var t=null,k=()=>{if(process.platform!=
14
14
  - Run(command=string). Runs ${c==="Windows"?l()?"powershell":"windows CMD":"bash"} command. Destructive command \u2192 Ask user${i?"":`
15
15
  - Goal(method="create/append/get", tasks=string[], markDone=string[]). If long multi-task: create Goals before starting. get + markDone marks complete`}
16
16
  ${n?`
17
- **Emergency Tools**
17
+ **Emergency**
18
18
  Info: initial = current task prompt. Revert id = turn before disaster (eg. disaster: turn_3 \u2192 revert: turn_2). Reason explicitly
19
19
  - EmergencyRollback(method="getCheckpoint/forceRevert", id=string). Rollback workspace in this agent loop. ONLY for catastrophic corruption. Before ending, verify no catastrophe. getCheckpoint: id excluded
20
20
  `:""}${p?`
21
- **Sub Agent Tools**
21
+ **Sub Agent**
22
22
  Default to using subagents whenever helpful, no user nudge needed
23
23
  Invocations:
24
24
  \u2022 Invoke (async/background, \u22647 parallel). Parallelize tasks. May take time
@@ -27,26 +27,26 @@ Invocations:
27
27
  - Await(id=string, timeout=int[..=180]). Event driven wait
28
28
  - GetProgress(id=string). Poll sparingly; NO initial poll. Work or await. Never end while subagent runs
29
29
  - Steer(id=string, message=string). Inject additional instruction into active async subagent
30
- - Cancel(id=string). Cancel async task ONLY if stalled (2m+) or incorrect`:""}`,m=`**Creative Tools (path = relative; first argument, path separator: '/')**
30
+ - Cancel(id=string). Cancel async task ONLY if stalled (2m+) or incorrect`:""}`,h=`**Creative Actions (path = relative; first argument, path separator: '/')**
31
31
  - WritePDF(path=string, content=string, orientation="landscape/portrait"). Proactive A4 page breaks must in css. HTML/CSS for premium layout, stable margins & headers/footers, no watermarks
32
- - WriteDoc(path=string, content=string). A4 Word document, no watermarks, stable margins & headers/footers`,o=`**Computer Use Tools (GUI Desktop Automation)**
32
+ - WriteDoc(path=string, content=string). A4 Word document, no watermarks, stable margins & headers/footers`,a=`**Computer Use (Desktop Automation)**
33
33
  - Click(gridId=int, type="single/double", button="left/middle/right", intendedClickText=string). Click target grid number, intendedClickText: literal text/symbol on screen (OCR scannable, upto 3 words). Double click desktop icons
34
34
  - Drag(fromGridId=int, toGridId=int). Drag mouse from start grid number to target grid number
35
35
  - Scroll(direction="up/down", gridId=int). Scroll viewport vertically
36
36
  - KeyboardTyping(text=string, autoPressEnter?=bool). Type text string into currently active input. JSON escape literal escape sequences
37
37
  - KeyPress(key="key or ;-separated combination, eg: enter, back, backspace, clearInput, ctrl;c, alt;tab, f5, f11, alt;f4"). Press key, shortcut, function key (f1-f12), or clear active input field
38
38
  - RecaptureScreen(). Request fresh gridded screenshot`;return`
39
- -- TOOLS -- Priority
40
- In chat output the format \`[tool:ToolName(arg1="value1")]\` in NEW line
39
+ -- ACTIONS --
40
+ In chat output the format \`[action:ActionName(arg1="value1")]\` in NEW line. Only valid syntax
41
41
  Rules:
42
- - Max 5 tools/turn${e==="Flux"||e.toLowerCase()==="fluxcu"&&!i?" (Goal: 5+)":""}
43
- ${e==="Flux"||e.toLowerCase()==="fluxcu"?`${h}`:""}
42
+ - Max 5 actions/turn${e==="Flux"||e.toLowerCase()==="fluxcu"&&!i?" (Goal: 5+)":""}
43
+ ${e==="Flux"||e.toLowerCase()==="fluxcu"?`${m}`:""}
44
44
  **User Communication**
45
45
  - AskUser(question=string, optionA?="title::description", ...MAX4). Ambiguity, path divergence, security risk
46
46
 
47
- **Web Tools**
47
+ **Web**
48
48
  - WebSearch(query=string, aiMode?=bool, limit?=int[3..10]). Proactive use for unknown/latest info. aiMode: slower, exclude limit
49
49
  - WebScrape(url=string). Proactive use for specific webpage/docs
50
50
 
51
- ${e==="ICU"?`${o}`:e==="FluxCU"?`${s}
52
- ${o}`:e==="Flux"?`${s}`:`${m}`}`.trim()};export{l as a,w as b,v as c};
51
+ ${e==="ICU"?`${a}`:e==="FluxCU"?`${s}
52
+ ${a}`:e==="Flux"?`${s}`:`${h}`}`.trim()};export{l as a,w as b,v as c};
@@ -1,4 +1,4 @@
1
- import{a as T}from"./chunk-Y5JU726N.js";import{a as I}from"./chunk-RI37VZYB.js";import s from"fs";import g from"path";var X=i=>{if(!i)return null;let o=i.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!o)return null;let e=o[1];if((o[2]||"").trim().length===0)return null;let r="",a=e.match(/^name:\s*(.+)$/m);return a&&(r=a[1].trim().replace(/^["']|["']$/g,"")),r?{name:r}:null},Y=i=>{let o=[];if(!i||!s.existsSync(i))return o;let e=(u,r=0)=>{if(!(r>5))try{let a=s.readdirSync(u,{withFileTypes:!0});for(let n of a){let c=g.join(u,n.name),f=n.name.toLowerCase();n.isFile()?f==="skill.md"&&o.push(c):n.isDirectory()&&(r===0?(f==="skills"||f===".skills"||f==="skill"||f===".skill")&&e(c,r+1):e(c,r+1))}}catch{}};return e(i,0),o},q=i=>i.replace(/^\s*---\r?\n[\s\S]*?\r?\n---\s*(\r?\n)?/,""),U=(i,o)=>{if(!o)return null;let e=g.join(i,o);if(s.existsSync(e))try{if(s.statSync(e).isFile())return e}catch{}if(!o.toLowerCase().endsWith(".md")){let n=g.join(i,`${o}.md`);if(s.existsSync(n))try{if(s.statSync(n).isFile())return n}catch{}}let u=o.replace(/\\/g,"/").split("/").filter(Boolean),r=i,a=!0;for(let n=0;n<u.length;n++){let c=u[n].toLowerCase(),f=n===u.length-1;try{if(!s.existsSync(r)||!s.statSync(r).isDirectory()){a=!1;break}let F=s.readdirSync(r).find(M=>{let R=M.toLowerCase();return!!(R===c||f&&!c.endsWith(".md")&&R===`${c}.md`)});if(!F){a=!1;break}let $=g.join(r,F);if(f){if(s.statSync($).isFile())return $;a=!1}else r=$}catch{a=!1;break}}if(u.length===1){let n=u[0],c=["references","reference","scripts","script","examples","example","resources","resource"];for(let f of c){let y=g.join(i,f);if(s.existsSync(y)){let F=U(y,n);if(F)return F}}}return null},Q=async(i,o={})=>{let{path:e,StartLine:u,EndLine:r,start_line:a,end_line:n,startLine:c,endLine:f}=T(i),y=parseInt(u||a||c),F=parseInt(r||n||f),$=!isNaN(y),M=!isNaN(F),R=y||1,N=F||(y?y+800:800);if(!e)return'ERROR: Missing "path" argument for ReadFile.';if(e.trim().toLowerCase().startsWith("#skill")){let d=e.trim().replace(/\\/g,"/").replace(/^#skills?\/?/i,"").split("/").filter(Boolean),C=null,p="",m="";if(d[0]?.toLowerCase()==="global"||d[0]?.toLowerCase()==="project"?(C=d[0].toLowerCase(),p=d[1],m=d.slice(2).join("/")):(p=d[0],m=d.slice(1).join("/")),!p)return`ERROR: Missing skill name in path [${e}].`;let k=t=>{let l=Y(t);for(let h of l)try{let x=s.readFileSync(h,"utf8"),L=X(x),D=g.basename(g.dirname(h)).toLowerCase();if(L?.name&&L.name.toLowerCase()===p.toLowerCase()||D===p.toLowerCase()||h.toLowerCase()===g.join(t,"skill.md").toLowerCase()&&p.toLowerCase()==="skill")return h}catch{}return null},w=null,b=!1;if(C){let t=C==="global"?I:process.cwd();w=k(t)}else{let t=k(process.cwd()),l=k(I);t&&l&&(b=!0),w=t||l}if(!w)return`No '${p}' exist in given scope.`;let E=g.dirname(w),j=w,v=!0;if(m){let t=U(E,m);if(!t)return`No such file or reference '${m}' exist for skill '${p}'. It could be standard file path?`;j=t,v=!1}try{let t=s.readFileSync(j,"utf8");t.startsWith("\uFEFF")&&(t=t.slice(1)),t=t.replace(/\r\n/g,`
1
+ import{a as T}from"./chunk-Y5JU726N.js";import{a as I}from"./chunk-DSVLWYIT.js";import s from"fs";import g from"path";var X=i=>{if(!i)return null;let o=i.match(/^\s*---\r?\n([\s\S]*?)\r?\n---(?:\r?\n)?([\s\S]*)$/);if(!o)return null;let e=o[1];if((o[2]||"").trim().length===0)return null;let r="",a=e.match(/^name:\s*(.+)$/m);return a&&(r=a[1].trim().replace(/^["']|["']$/g,"")),r?{name:r}:null},Y=i=>{let o=[];if(!i||!s.existsSync(i))return o;let e=(u,r=0)=>{if(!(r>5))try{let a=s.readdirSync(u,{withFileTypes:!0});for(let n of a){let c=g.join(u,n.name),f=n.name.toLowerCase();n.isFile()?f==="skill.md"&&o.push(c):n.isDirectory()&&(r===0?(f==="skills"||f===".skills"||f==="skill"||f===".skill")&&e(c,r+1):e(c,r+1))}}catch{}};return e(i,0),o},q=i=>i.replace(/^\s*---\r?\n[\s\S]*?\r?\n---\s*(\r?\n)?/,""),U=(i,o)=>{if(!o)return null;let e=g.join(i,o);if(s.existsSync(e))try{if(s.statSync(e).isFile())return e}catch{}if(!o.toLowerCase().endsWith(".md")){let n=g.join(i,`${o}.md`);if(s.existsSync(n))try{if(s.statSync(n).isFile())return n}catch{}}let u=o.replace(/\\/g,"/").split("/").filter(Boolean),r=i,a=!0;for(let n=0;n<u.length;n++){let c=u[n].toLowerCase(),f=n===u.length-1;try{if(!s.existsSync(r)||!s.statSync(r).isDirectory()){a=!1;break}let F=s.readdirSync(r).find(M=>{let R=M.toLowerCase();return!!(R===c||f&&!c.endsWith(".md")&&R===`${c}.md`)});if(!F){a=!1;break}let $=g.join(r,F);if(f){if(s.statSync($).isFile())return $;a=!1}else r=$}catch{a=!1;break}}if(u.length===1){let n=u[0],c=["references","reference","scripts","script","examples","example","resources","resource"];for(let f of c){let y=g.join(i,f);if(s.existsSync(y)){let F=U(y,n);if(F)return F}}}return null},Q=async(i,o={})=>{let{path:e,StartLine:u,EndLine:r,start_line:a,end_line:n,startLine:c,endLine:f}=T(i),y=parseInt(u||a||c),F=parseInt(r||n||f),$=!isNaN(y),M=!isNaN(F),R=y||1,N=F||(y?y+800:800);if(!e)return'ERROR: Missing "path" argument for ReadFile.';if(e.trim().toLowerCase().startsWith("#skill")){let d=e.trim().replace(/\\/g,"/").replace(/^#skills?\/?/i,"").split("/").filter(Boolean),C=null,p="",m="";if(d[0]?.toLowerCase()==="global"||d[0]?.toLowerCase()==="project"?(C=d[0].toLowerCase(),p=d[1],m=d.slice(2).join("/")):(p=d[0],m=d.slice(1).join("/")),!p)return`ERROR: Missing skill name in path [${e}].`;let k=t=>{let l=Y(t);for(let h of l)try{let x=s.readFileSync(h,"utf8"),L=X(x),D=g.basename(g.dirname(h)).toLowerCase();if(L?.name&&L.name.toLowerCase()===p.toLowerCase()||D===p.toLowerCase()||h.toLowerCase()===g.join(t,"skill.md").toLowerCase()&&p.toLowerCase()==="skill")return h}catch{}return null},w=null,b=!1;if(C){let t=C==="global"?I:process.cwd();w=k(t)}else{let t=k(process.cwd()),l=k(I);t&&l&&(b=!0),w=t||l}if(!w)return`No '${p}' exist in given scope.`;let E=g.dirname(w),j=w,v=!0;if(m){let t=U(E,m);if(!t)return`No such file or reference '${m}' exist for skill '${p}'. It could be standard file path?`;j=t,v=!1}try{let t=s.readFileSync(j,"utf8");t.startsWith("\uFEFF")&&(t=t.slice(1)),t=t.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `),v&&(t=q(t));let l=t.split(`
4
4
  `),h=l.length,x=$?Math.max(0,R-1):0,L=M?Math.min(h,N):h,D=l.slice(x,L),P=e.replace(/\\/g,"/").toLowerCase(),W=P.includes("#skill/global/fluxflow")||P.includes("#skills/global/fluxflow"),_=b?` (Found ${e} in both global & project scope. Loaded [project] as default fallback. Use '#skills/global/...' if needed global)`:"",B=`${W?"DOCs":"Skill"}: [${e.replace(/\\/g,"/")}]${_}`,z=D.map(A=>A.trimEnd()).join(`
@@ -1 +1 @@
1
- import{t as o}from"./chunk-RI37VZYB.js";import r from"fs-extra";import l from"path";import d from"https";var j={js:"tree-sitter-javascript.wasm",jsx:"tree-sitter-javascript.wasm",ts:"tree-sitter-typescript.wasm",tsx:"tree-sitter-tsx.wasm",py:"tree-sitter-python.wasm",c:"tree-sitter-c.wasm",cpp:"tree-sitter-cpp.wasm",java:"tree-sitter-java.wasm",html:"tree-sitter-html.wasm"};async function f(t,s=null){let p=s||`https://unpkg.com/tree-sitter-wasms@0.1.13/out/${t}`,i=l.join(o,t);return await r.ensureDir(o),new Promise((m,n)=>{let h={headers:{"User-Agent":"FluxFlow-Agent"}};d.get(p,h,e=>{if([301,302,307,308].includes(e.statusCode)&&e.headers.location){let a=e.headers.location;if(!a.startsWith("http")){let u=new URL(p);a=`${u.protocol}//${u.host}${a}`}f(t,a).then(m).catch(n);return}if(e.statusCode!==200){n(new Error(`Failed to download ${t}: HTTP ${e.statusCode}`));return}let c=r.createWriteStream(i);e.pipe(c),c.on("finish",()=>{c.close(),m()})}).on("error",e=>{r.existsSync(i)&&r.unlink(i,()=>{}),n(e)})})}function S(t){let s=l.join(o,t);return r.existsSync(s)}async function $(t){let s=l.join(o,t);r.existsSync(s)&&await r.unlink(s)}export{j as a,f as b,S as c,$ as d};
1
+ import{t as o}from"./chunk-DSVLWYIT.js";import r from"fs-extra";import l from"path";import d from"https";var j={js:"tree-sitter-javascript.wasm",jsx:"tree-sitter-javascript.wasm",ts:"tree-sitter-typescript.wasm",tsx:"tree-sitter-tsx.wasm",py:"tree-sitter-python.wasm",c:"tree-sitter-c.wasm",cpp:"tree-sitter-cpp.wasm",java:"tree-sitter-java.wasm",html:"tree-sitter-html.wasm"};async function f(t,s=null){let p=s||`https://unpkg.com/tree-sitter-wasms@0.1.13/out/${t}`,i=l.join(o,t);return await r.ensureDir(o),new Promise((m,n)=>{let h={headers:{"User-Agent":"FluxFlow-Agent"}};d.get(p,h,e=>{if([301,302,307,308].includes(e.statusCode)&&e.headers.location){let a=e.headers.location;if(!a.startsWith("http")){let u=new URL(p);a=`${u.protocol}//${u.host}${a}`}f(t,a).then(m).catch(n);return}if(e.statusCode!==200){n(new Error(`Failed to download ${t}: HTTP ${e.statusCode}`));return}let c=r.createWriteStream(i);e.pipe(c),c.on("finish",()=>{c.close(),m()})}).on("error",e=>{r.existsSync(i)&&r.unlink(i,()=>{}),n(e)})})}function S(t){let s=l.join(o,t);return r.existsSync(s)}async function $(t){let s=l.join(o,t);r.existsSync(s)&&await r.unlink(s)}export{j as a,f as b,S as c,$ as d};
@@ -1 +1 @@
1
- import{a as b}from"./chunk-IRFTRBG2.js";import{c as d,d as l}from"./chunk-L3W2X74K.js";import{f as h,g as m,l as C,m as M,s as f}from"./chunk-RI37VZYB.js";import u from"fs-extra";import j from"path";import{nanoid as L}from"nanoid";var D=Promise.resolve(),A=t=>{let r=D.then(async()=>{try{return await t()}catch(e){throw console.error("Lock Operation Failed:",e),e}});return D=r.catch(()=>{}),r},T=async()=>{await u.ensureDir(m);let t={};if(await u.pathExists(h))try{t=d(h,{})}catch{t={}}for(let r in t){let e=j.join(m,`${r}.json`);Object.defineProperty(t[r],"messages",{get:()=>{if(u.existsSync(e))try{return d(e,[])}catch{return[]}return[]},set:n=>{try{l(e,n)}catch{}},enumerable:!1,configurable:!0})}return t},B=async(t,r,e)=>A(async()=>{await u.ensureDir(m);let n=await T(),s=n[t],i=(e||[]).filter(a=>!a.isUpdateNotification&&(!a.isMeta||a.text&&a.text.includes("Request Cancelled"))),o=a=>{if(!a)return;let I=typeof a=="string"?a:a.text||a.content||"";if(!I||typeof I!="string")return;let w=I.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!w)return;let O=w.split(/\s+/),E;return O.length>7?E=O.slice(0,7).join(" ")+"...":w.length>45?E=w.substring(0,45).trimEnd()+"...":E=w,E},c,y=i.filter(a=>a.role==="user"),p=y[0],g=y[y.length-1],x=o(g),H=o(p);s&&s.prompt?Math.random()<.3&&x?c=x:c=s.prompt:c=H||x;let S=r||(s?s.name:`Session ${t.slice(-6)}`),F=j.join(m,`${t}.json`);l(F,i),n[t]={name:S,prompt:c||void 0,updatedAt:Date.now()};let k={};for(let a in n)k[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};l(h,k)}),J=async(t,r)=>A(async()=>{let e=await T();e[t]?(e[t].name=r,e[t].updatedAt=Date.now()):e[t]={name:r,updatedAt:Date.now()};let n={};for(let s in e)n[s]={name:e[s].name,prompt:e[s].prompt||void 0,updatedAt:e[s].updatedAt};l(h,n)}),N=async t=>A(async()=>{let r=await T();delete r[t];let e={};for(let o in r)e[o]={name:r[o].name,prompt:r[o].prompt||void 0,updatedAt:r[o].updatedAt};if(l(h,e),await u.pathExists(f))try{let o=d(f,[]);if(Array.isArray(o)){let c=o.filter(y=>Object.keys(y)[0]!==String(t));l(f,c)}}catch{}let n=d(C,{});n[t]&&(delete n[t],l(C,n));let s=d(M,{});s[t]&&(delete s[t],l(M,s)),await b.deleteChatBackups(t);let i=j.join(m,`${t}.json`);if(await u.pathExists(i))try{await u.remove(i)}catch{}return r}),Y=()=>`flow-${L(6)}`,q=async t=>{if(!t||t==="Never")return;let r=parseInt(t);if(isNaN(r))return;let e=await T(),n=Date.now(),s=r*24*60*60*1e3,i=0;for(let o in e){let c=e[o];c.updatedAt&&n-c.updatedAt>s&&(await N(o),i++)}return i},G=(t,r=4)=>{if(t.length<=1)return t;let e=t[0],n=t.slice(1),s=r*2,i=n.slice(s);return[e,...i]};var K=async(t,r,e)=>A(async()=>{let n=d(f,[]);Array.isArray(n)||(n=[]);let s=r||0,i=e||0,o={total:s,context:i},c=n.findIndex(p=>Object.keys(p)[0]===String(t));s===0&&i===0?c!==-1&&n.splice(c,1):c!==-1?n[c]={[String(t)]:o}:n.push({[String(t)]:o});let y=n.filter(p=>{if(!p||typeof p!="object")return!1;let g=Object.keys(p)[0];if(!g)return!1;let x=p[g];return x&&((x.total||0)>0||(x.context||0)>0)});l(f,y)}),Q=async t=>{try{if(!await u.pathExists(f))return{total:0,context:0};let r=d(f,[]);if(!Array.isArray(r))return{total:0,context:0};let e=r.find(n=>Object.keys(n)[0]===String(t));return e?{total:0,context:0,...e[String(t)]}:{total:0,context:0}}catch{return{total:0,context:0}}};export{T as a,B as b,J as c,N as d,Y as e,q as f,G as g,K as h,Q as i};
1
+ import{a as b}from"./chunk-FQBBOFNP.js";import{c as d,d as l}from"./chunk-L3W2X74K.js";import{f as h,g as m,l as C,m as M,s as f}from"./chunk-DSVLWYIT.js";import u from"fs-extra";import j from"path";import{nanoid as L}from"nanoid";var D=Promise.resolve(),A=t=>{let r=D.then(async()=>{try{return await t()}catch(e){throw console.error("Lock Operation Failed:",e),e}});return D=r.catch(()=>{}),r},T=async()=>{await u.ensureDir(m);let t={};if(await u.pathExists(h))try{t=d(h,{})}catch{t={}}for(let r in t){let e=j.join(m,`${r}.json`);Object.defineProperty(t[r],"messages",{get:()=>{if(u.existsSync(e))try{return d(e,[])}catch{return[]}return[]},set:n=>{try{l(e,n)}catch{}},enumerable:!1,configurable:!0})}return t},B=async(t,r,e)=>A(async()=>{await u.ensureDir(m);let n=await T(),s=n[t],i=(e||[]).filter(a=>!a.isUpdateNotification&&(!a.isMeta||a.text&&a.text.includes("Request Cancelled"))),o=a=>{if(!a)return;let I=typeof a=="string"?a:a.text||a.content||"";if(!I||typeof I!="string")return;let w=I.replace(/\s*\n+\s*\[Prompted on:.*?\]/g,"").replace(/\[\/?(?:STEERING HINT|QUESTION)(?::\s*\w+)?\]/gi,"").trim();if(!w)return;let O=w.split(/\s+/),E;return O.length>7?E=O.slice(0,7).join(" ")+"...":w.length>45?E=w.substring(0,45).trimEnd()+"...":E=w,E},c,y=i.filter(a=>a.role==="user"),p=y[0],g=y[y.length-1],x=o(g),H=o(p);s&&s.prompt?Math.random()<.3&&x?c=x:c=s.prompt:c=H||x;let S=r||(s?s.name:`Session ${t.slice(-6)}`),F=j.join(m,`${t}.json`);l(F,i),n[t]={name:S,prompt:c||void 0,updatedAt:Date.now()};let k={};for(let a in n)k[a]={name:n[a].name,prompt:n[a].prompt||void 0,updatedAt:n[a].updatedAt};l(h,k)}),J=async(t,r)=>A(async()=>{let e=await T();e[t]?(e[t].name=r,e[t].updatedAt=Date.now()):e[t]={name:r,updatedAt:Date.now()};let n={};for(let s in e)n[s]={name:e[s].name,prompt:e[s].prompt||void 0,updatedAt:e[s].updatedAt};l(h,n)}),N=async t=>A(async()=>{let r=await T();delete r[t];let e={};for(let o in r)e[o]={name:r[o].name,prompt:r[o].prompt||void 0,updatedAt:r[o].updatedAt};if(l(h,e),await u.pathExists(f))try{let o=d(f,[]);if(Array.isArray(o)){let c=o.filter(y=>Object.keys(y)[0]!==String(t));l(f,c)}}catch{}let n=d(C,{});n[t]&&(delete n[t],l(C,n));let s=d(M,{});s[t]&&(delete s[t],l(M,s)),await b.deleteChatBackups(t);let i=j.join(m,`${t}.json`);if(await u.pathExists(i))try{await u.remove(i)}catch{}return r}),Y=()=>`flow-${L(6)}`,q=async t=>{if(!t||t==="Never")return;let r=parseInt(t);if(isNaN(r))return;let e=await T(),n=Date.now(),s=r*24*60*60*1e3,i=0;for(let o in e){let c=e[o];c.updatedAt&&n-c.updatedAt>s&&(await N(o),i++)}return i},G=(t,r=4)=>{if(t.length<=1)return t;let e=t[0],n=t.slice(1),s=r*2,i=n.slice(s);return[e,...i]};var K=async(t,r,e)=>A(async()=>{let n=d(f,[]);Array.isArray(n)||(n=[]);let s=r||0,i=e||0,o={total:s,context:i},c=n.findIndex(p=>Object.keys(p)[0]===String(t));s===0&&i===0?c!==-1&&n.splice(c,1):c!==-1?n[c]={[String(t)]:o}:n.push({[String(t)]:o});let y=n.filter(p=>{if(!p||typeof p!="object")return!1;let g=Object.keys(p)[0];if(!g)return!1;let x=p[g];return x&&((x.total||0)>0||(x.context||0)>0)});l(f,y)}),Q=async t=>{try{if(!await u.pathExists(f))return{total:0,context:0};let r=d(f,[]);if(!Array.isArray(r))return{total:0,context:0};let e=r.find(n=>Object.keys(n)[0]===String(t));return e?{total:0,context:0,...e[String(t)]}:{total:0,context:0}}catch{return{total:0,context:0}}};export{T as a,B as b,J as c,N as d,Y as e,q as f,G as g,K as h,Q as i};
@@ -1,48 +1,48 @@
1
- import{c as X}from"./chunk-RI37VZYB.js";import G from"os";var R=t=>typeof t!="string"?t:t.length>12?(t+"").replace("",""):t,v=(t,o)=>{if(!t)return"";let d=/\x1B\[[0-?]*[ -/]*[@-~]/g,m=t.split(`
2
- `),h=[];if(o<=5)return t;let a=e=>e<32||e>=127&&e<160||e>=768&&e<=879||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071?0:e>=4352&&e<=4447||e>=9001&&e<=9002||e>=11904&&e<=12350||e>=12352&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=128640&&e<=128767||e>=131072&&e<=262141?2:1,p=e=>{let s=e.replace(d,""),r=0;for(let l=0;l<s.length;l++){let i=s.codePointAt(l);i>65535&&l++,r+=a(i)}return r},M=(e,s)=>{let r=0,l=e.length,i=!1;for(let L=0;L<e.length;L++){if(e[L]==="\x1B"&&e[L+1]==="["&&(i=!0),i){(e[L]==="m"||e[L]>="@"&&e[L]<="~"&&e[L]!=="[")&&(i=!1);continue}let F=e.codePointAt(L);F>65535&&L++;let x=a(F);if(r+x>s){l=F>65535?L-1:L;break}if(r+=x,r>=s){l=L+1;break}}return{head:e.substring(0,l),tail:e.substring(l)}};return m.forEach(e=>{if(p(e)<=o){h.push(e);return}let r=e.split(/(\s+)/),l="",i=0,L=e.match(/^(\s*)/),F=L?L[1]:"";r.forEach(x=>{if(x.length===0)return;let u=x;for(;u.length>0;){let S=p(u);if(i+S<=o){l+=u,i+=S;break}l.trim().length>0&&(h.push(l.trimEnd()),l=F.substring(0,Math.min(F.length,8)),i=p(l));let n=Math.max(1,o-i);if(p(u)>n){let{head:f,tail:c}=M(u,n);h.push((l+f).trimEnd()),l=F.substring(0,Math.min(F.length,8)),i=p(l),u=c}else l+=u,i+=p(u),u=""}}),(l.trimEnd().length>0||l===F)&&h.push(l.trimEnd())}),R(h.join(`
3
- `))},rt=t=>{if(!t)return 0;let o=0,d=t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g);d&&(o+=d.length*.55);let m=t.replace(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g," "),h=m.match(/[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g);h&&(o+=h.length);let a=m.split(/[\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g).filter(Boolean);return o+=a.length,Math.max(.1,o)},st=t=>t?t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]|\s+|[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+|[^\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}\-\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]+/g)||[t]:[],ot=t=>{if(!t&&t!==0)return"0.0k";let o=typeof t=="string"?parseFloat(t):t;return o>=1e6?`${(o/1e6).toFixed(1)}m`:o>=1e3?`${(o/1e3).toFixed(1)}k`:o.toString()},lt=(t,o=40)=>{let d=X.replaceAll("\\\\","\\");if(t=t.replace(G.homedir(),"~").replace(d,"FluxFlow").replaceAll("\\","/"),!t||t.length<=o)return R(t);let m=Math.floor((o-3)/2);return R(t.substring(0,m)+"..."+t.substring(t.length-m).replaceAll("\\","/"))},at=t=>{let o=[],d=new Set,m=t.allowMultiple===!0||String(t.allowMultiple).toLowerCase()==="true";Object.keys(t).forEach(e=>{let s=e.match(/^(searchContent|search_content|replaceContent|replace_content|newContent|new_content|content_to_replace|content_to_add|searchBlock|search_block|newBlock|new_block)_?(\d+)?$/i);if(s){let r=s[2]?parseInt(s[2],10):1;d.add(r)}});let h=Array.from(d).sort((e,s)=>e-s),a=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],p=["newContent","new_content","content_to_add","newBlock","new_block"],M=(e,s,r)=>{let l,i;for(let L of s){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){l=t[x];break}if(l!==void 0)break}for(let L of r){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){i=t[x];break}if(i!==void 0)break}return{r:l,n:i}};for(let e of h){let{r:s,n:r}=M(e,a,p);if(s!==void 0&&r!==void 0)o.push({replace:s,new:r});else if(s!==void 0||r!==void 0)return{error:`Mismatched replacement pair for index ${e}. Both replacement and new content must be provided.`,allowMultiple:m}}return{patchPairs:o,allowMultiple:m}},V=t=>{if(!t)return null;let o="",d=0,m=t.length;for(;d<m;){let h=t[d];if(h==="\\"){for(;d<m&&t[d]==="\\";)d++;o+="\\\\*"}else if(h===`
1
+ import{c as X}from"./chunk-DSVLWYIT.js";import G from"os";var R=t=>typeof t!="string"?t:t.length>12?(t+"").replace("",""):t,v=(t,o)=>{if(!t)return"";let d=/\x1B\[[0-?]*[ -/]*[@-~]/g,m=t.split(`
2
+ `),h=[];if(o<=5)return t;let l=e=>e<32||e>=127&&e<160||e>=768&&e<=879||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071?0:e>=4352&&e<=4447||e>=9001&&e<=9002||e>=11904&&e<=12350||e>=12352&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=128640&&e<=128767||e>=131072&&e<=262141?2:1,p=e=>{let s=e.replace(d,""),r=0;for(let c=0;c<s.length;c++){let i=s.codePointAt(c);i>65535&&c++,r+=l(i)}return r},M=(e,s)=>{let r=0,c=e.length,i=!1;for(let L=0;L<e.length;L++){if(e[L]==="\x1B"&&e[L+1]==="["&&(i=!0),i){(e[L]==="m"||e[L]>="@"&&e[L]<="~"&&e[L]!=="[")&&(i=!1);continue}let F=e.codePointAt(L);F>65535&&L++;let x=l(F);if(r+x>s){c=F>65535?L-1:L;break}if(r+=x,r>=s){c=L+1;break}}return{head:e.substring(0,c),tail:e.substring(c)}};return m.forEach(e=>{if(p(e)<=o){h.push(e);return}let r=e.split(/(\s+)/),c="",i=0,L=e.match(/^(\s*)/),F=L?L[1]:"";r.forEach(x=>{if(x.length===0)return;let u=x;for(;u.length>0;){let S=p(u);if(i+S<=o){c+=u,i+=S;break}c.trim().length>0&&(h.push(c.trimEnd()),c=F.substring(0,Math.min(F.length,8)),i=p(c));let n=Math.max(1,o-i);if(p(u)>n){let{head:f,tail:a}=M(u,n);h.push((c+f).trimEnd()),c=F.substring(0,Math.min(F.length,8)),i=p(c),u=a}else c+=u,i+=p(u),u=""}}),(c.trimEnd().length>0||c===F)&&h.push(c.trimEnd())}),R(h.join(`
3
+ `))},rt=t=>{if(!t)return 0;let o=0,d=t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g);d&&(o+=d.length*.55);let m=t.replace(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/g," "),h=m.match(/[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g);h&&(o+=h.length);let l=m.split(/[\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+/g).filter(Boolean);return o+=l.length,Math.max(.1,o)},st=t=>t?t.match(/[\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]|\s+|[<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}-]+|[^\s<>/\._@#$%^&*+=`~|\\:;!?'"()\[\]{}\-\u4e00-\u9fa5\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]+/g)||[t]:[],ot=t=>{if(!t&&t!==0)return"0.0k";let o=typeof t=="string"?parseFloat(t):t;return o>=1e6?`${(o/1e6).toFixed(1)}m`:o>=1e3?`${(o/1e3).toFixed(1)}k`:o.toString()},lt=(t,o=40)=>{let d=X.replaceAll("\\\\","\\");if(t=t.replace(G.homedir(),"~").replace(d,"FluxFlow").replaceAll("\\","/"),!t||t.length<=o)return R(t);let m=Math.floor((o-3)/2);return R(t.substring(0,m)+"..."+t.substring(t.length-m).replaceAll("\\","/"))},ct=t=>{let o=[],d=new Set,m=t.allowMultiple===!0||String(t.allowMultiple).toLowerCase()==="true";Object.keys(t).forEach(e=>{let s=e.match(/^(searchContent|search_content|replaceContent|replace_content|newContent|new_content|content_to_replace|content_to_add|searchBlock|search_block|newBlock|new_block)_?(\d+)?$/i);if(s){let r=s[2]?parseInt(s[2],10):1;d.add(r)}});let h=Array.from(d).sort((e,s)=>e-s),l=["searchContent","search_content","replaceContent","replace_content","content_to_replace","searchBlock","search_block"],p=["newContent","new_content","content_to_add","newBlock","new_block"],M=(e,s,r)=>{let c,i;for(let L of s){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){c=t[x];break}if(c!==void 0)break}for(let L of r){let F=e===1?[`${L}1`,L,`${L}_1`]:[`${L}${e}`,`${L}_${e}`];for(let x of F)if(t[x]!==void 0){i=t[x];break}if(i!==void 0)break}return{r:c,n:i}};for(let e of h){let{r:s,n:r}=M(e,l,p);if(s!==void 0&&r!==void 0)o.push({replace:s,new:r});else if(s!==void 0||r!==void 0)return{error:`Mismatched replacement pair for index ${e}. Both replacement and new content must be provided.`,allowMultiple:m}}return{patchPairs:o,allowMultiple:m}},V=t=>{if(!t)return null;let o="",d=0,m=t.length;for(;d<m;){let h=t[d];if(h==="\\"){for(;d<m&&t[d]==="\\";)d++;o+="\\\\*"}else if(h===`
4
4
  `)o+="(?:\\r?\\n|\\\\*n|\\\\*r|\\s*)",d++;else if(h==="\r")o+="(?:\\r|\\\\*r)?",d++;else if(h===" ")o+="(?:\\t|\\\\*t|\\s*)",d++;else if(h==='"'||h==="'"||h==="`")o.endsWith("\\\\*")||(o+="\\\\*"),o+=h,d++;else if(/[.*+?^${}()|[\]]/.test(h))o+="\\"+h,d++;else if(/\s/.test(h)){for(;d<m&&/\s/.test(t[d])&&t[d]!==`
5
- `&&t[d]!=="\r"&&t[d]!==" ";)d++;o+="\\s*"}else o+=h,d++}if(!o)return null;try{return new RegExp(o,"g")}catch{return null}},ct=(t,o,d={})=>{let m=typeof d=="boolean"?d:!!(d&&d.allowMultiple),h=t.replace(/\r\n/g,`
5
+ `&&t[d]!=="\r"&&t[d]!==" ";)d++;o+="\\s*"}else o+=h,d++}if(!o)return null;try{return new RegExp(o,"g")}catch{return null}},at=(t,o,d={})=>{let m=typeof d=="boolean"?d:!!(d&&d.allowMultiple),h=t.replace(/\r\n/g,`
6
6
  `).replace(/\r/g,`
7
- `),a=n=>n.replace(/^```[\w]*\n?/,"").replace(/```\s*$/,"").replace(/\r\n/g,`
7
+ `),l=n=>n.replace(/^```[\w]*\n?/,"").replace(/```\s*$/,"").replace(/\r\n/g,`
8
8
  `).replace(/\r/g,`
9
9
  `),p=n=>n.match(/^\s*/)[0],M=n=>{let f=n.split(`
10
- `).filter(C=>C.trim()!=="");if(f.length===0)return"";let c=p(f[0]);for(let C of f){let k=p(C);k.length<c.length&&(c=k)}return c},e=(n,f,c="")=>{if(!n||f===void 0)return n;let k=/^\t/m.test(f)?" ":" ",I=b=>b.split(`
11
- `).find(y=>y.trim()!=="")??"",$=I(f).match(/^\s*/)[0].length,g=I(n).match(/^\s*/)[0].length,w=$-g,E=(c.match(/^\s*/)||[""])[0].length;return n.split(`
10
+ `).filter(C=>C.trim()!=="");if(f.length===0)return"";let a=p(f[0]);for(let C of f){let k=p(C);k.length<a.length&&(a=k)}return a},e=(n,f,a="")=>{if(!n||f===void 0)return n;let k=/^\t/m.test(f)?" ":" ",I=b=>b.split(`
11
+ `).find(y=>y.trim()!=="")??"",$=I(f).match(/^\s*/)[0].length,g=I(n).match(/^\s*/)[0].length,w=$-g,E=(a.match(/^\s*/)||[""])[0].length;return n.split(`
12
12
  `).map((b,y)=>{if(b.trim()===""&&y!==0)return"";let T=b.match(/^\s*/)[0].length,_=Math.max(0,T+w);return y===0&&(_=Math.max(0,_-E)),k.repeat(_)+b.trimStart()}).join(`
13
- `)},s=[];for(let n=0;n<o.length;n++){let f=o[n],c=(f.replace||"").trim(),C=a(f.new||"");if(c.startsWith("^LINE:")&&c.endsWith("$")){let E=c.slice(6,-1).trim().split(".."),A=parseInt(E[0]),b=E[1]!==void 0?parseInt(E[1]):A;if(!isNaN(A)&&!isNaN(b)){let y=h.split(`
13
+ `)},s=[];for(let n=0;n<o.length;n++){let f=o[n],a=(f.replace||"").trim(),C=l(f.new||"");if(a.startsWith("^LINE:")&&a.endsWith("$")){let E=a.slice(6,-1).trim().split(".."),A=parseInt(E[0]),b=E[1]!==void 0?parseInt(E[1]):A;if(!isNaN(A)&&!isNaN(b)){let y=h.split(`
14
14
  `);if(A<1||A>y.length||b<A||b>y.length){s.push({index:n,success:!1,error:`Block ${n+1}: Line range ^LINE:${A}..${b}$ out of bounds (file has ${y.length} lines).`});continue}let _=y.slice(A-1,b).join(`
15
- `),N=0;for(let O=0;O<A-1;O++)N+=y[O].length+1;s.push({index:n,success:!0,startPos:N,firstMatchContent:_,content_to_add:C});continue}}let k=a(f.replace||"");if(k===""&&C===""){s.push({index:n,success:!1,error:`Block ${n+1}: Empty replace and add content.`});continue}let I=k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=null;if(k!==""&&h.includes(k))$=new RegExp(I,"g");else{let w=k.split(`
16
- `).map(E=>E.trim()).filter(E=>E.length>0).map(E=>E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s*"));if(w.length>0){let E=w.join("\\s*");try{$=new RegExp(E,"g")}catch{$=new RegExp(I,"g")}}else $=new RegExp(I,"g")}let g=[...h.matchAll($)];if(g.length===0&&k!==""){let w=V(k);w&&(g=[...h.matchAll(w)])}if(g.length===0){s.push({index:n,success:!1,error:`Block ${n+1}: Could not find match.`});continue}if(g.length>1&&!m){s.push({index:n,success:!1,error:`Block ${n+1}: Found ${g.length} matches (must be unique or use allowMultiple: true if sure).`});continue}for(let w of g)s.push({index:n,success:!0,startPos:w.index,firstMatchContent:w[0],content_to_add:C})}let r=s.filter(n=>n.success).sort((n,f)=>n.startPos-f.startPos);for(let n=0;n<r.length-1;n++){let f=r[n],c=r[n+1];f.startPos+f.firstMatchContent.length>c.startPos&&(f.success=!1,f.error=`Block ${f.index+1}: Overlaps with another block.`,c.success=!1,c.error=`Block ${c.index+1}: Overlaps with another block.`)}let l=new Map,i=h,L=0,F=0,x=s.filter(n=>n.success).sort((n,f)=>n.startPos-f.startPos);for(let n of x){let f=n.startPos,c=h.substring(0,f).split(`
17
- `).length,C=f+L,k=c+F,I=i.lastIndexOf(`
15
+ `),N=0;for(let O=0;O<A-1;O++)N+=y[O].length+1;s.push({index:n,success:!0,startPos:N,firstMatchContent:_,content_to_add:C});continue}}let k=l(f.replace||"");if(k===""&&C===""){s.push({index:n,success:!1,error:`Block ${n+1}: Empty replace and add content.`});continue}let I=k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=null;if(k!==""&&h.includes(k))$=new RegExp(I,"g");else{let w=k.split(`
16
+ `).map(E=>E.trim()).filter(E=>E.length>0).map(E=>E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s*"));if(w.length>0){let E=w.join("\\s*");try{$=new RegExp(E,"g")}catch{$=new RegExp(I,"g")}}else $=new RegExp(I,"g")}let g=[...h.matchAll($)];if(g.length===0&&k!==""){let w=V(k);w&&(g=[...h.matchAll(w)])}if(g.length===0){s.push({index:n,success:!1,error:`Block ${n+1}: Could not find match.`});continue}if(g.length>1&&!m){s.push({index:n,success:!1,error:`Block ${n+1}: Found ${g.length} matches (must be unique or use allowMultiple: true if sure).`});continue}for(let w of g)s.push({index:n,success:!0,startPos:w.index,firstMatchContent:w[0],content_to_add:C})}let r=s.filter(n=>n.success).sort((n,f)=>n.startPos-f.startPos);for(let n=0;n<r.length-1;n++){let f=r[n],a=r[n+1];f.startPos+f.firstMatchContent.length>a.startPos&&(f.success=!1,f.error=`Block ${f.index+1}: Overlaps with another block.`,a.success=!1,a.error=`Block ${a.index+1}: Overlaps with another block.`)}let c=new Map,i=h,L=0,F=0,x=s.filter(n=>n.success).sort((n,f)=>n.startPos-f.startPos);for(let n of x){let f=n.startPos,a=h.substring(0,f).split(`
17
+ `).length,C=f+L,k=a+F,I=i.lastIndexOf(`
18
18
  `,C)+1,$=i.substring(I,C),g=e(n.content_to_add,n.firstMatchContent,$),w=i.split(`
19
19
  `),E=[];for(let T=Math.max(0,k-4);T<k-1;T++)E.push({num:T+1,text:w[T]});let A=n.firstMatchContent.split(`
20
- `),b=[],y=k+A.length-1;for(let T=y;T<Math.min(w.length,y+3);T++)b.push({num:T+1,text:w[T]});l.set(n,{success:!0,index:n.index,oldContent:n.firstMatchContent,newContent:g,originalStartLine:c,finalStartLine:k,contextBefore:E,contextAfter:b}),i=i.substring(0,C)+g+i.substring(C+n.firstMatchContent.length),L+=g.length-n.firstMatchContent.length,F+=g.split(`
20
+ `),b=[],y=k+A.length-1;for(let T=y;T<Math.min(w.length,y+3);T++)b.push({num:T+1,text:w[T]});c.set(n,{success:!0,index:n.index,oldContent:n.firstMatchContent,newContent:g,originalStartLine:a,finalStartLine:k,contextBefore:E,contextAfter:b}),i=i.substring(0,C)+g+i.substring(C+n.firstMatchContent.length),L+=g.length-n.firstMatchContent.length,F+=g.split(`
21
21
  `).length-n.firstMatchContent.split(`
22
- `).length}let u=[];for(let n=0;n<o.length;n++){let f=x.filter(c=>c.index===n);if(f.length>0)for(let c of f)l.has(c)&&u.push(l.get(c));else{let c=s.find(C=>C.index===n);u.push({success:!1,error:c?c.error:`Block ${n+1}: Unknown error.`})}}let S=u.filter(n=>!n.success&&n.error&&n.error.includes("Could not find match"));if(S.length===1)S[0].error+=" (Use Line Anchor or Run tool safely if search string fails)";else if(S.length>1){let n=S[S.length-1];n.error+=`
23
- (Tip: Use Line Anchor or Run tool safely if search string fails)`}return{content:i,results:u}},ft=(t,o,d,m=8,h=!1)=>{if(!d||d.length===0)return"";let a=t.split(/\r?\n/),p=o.split(/\r?\n/),M=Math.max(a.length,p.length,1),e=Math.max(4,String(M).length),s=x=>String(x).padStart(e," "),r=`[DIFF_START]
24
- `,l="\u2550".repeat(88),i=0,L=null,F=d.filter(x=>x.success).sort((x,u)=>x.originalStartLine-u.originalStartLine);if(F.forEach((x,u)=>{let S=x.finalStartLine!==void 0?x.finalStartLine:x.originalStartLine;if(L===null)for(i=Math.max(0,S-4);i<S-1;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
22
+ `).length}let u=[];for(let n=0;n<o.length;n++){let f=x.filter(a=>a.index===n);if(f.length>0)for(let a of f)c.has(a)&&u.push(c.get(a));else{let a=s.find(C=>C.index===n);u.push({success:!1,error:a?a.error:`Block ${n+1}: Unknown error.`})}}let S=u.filter(n=>!n.success&&n.error&&n.error.includes("Could not find match"));if(S.length===1)S[0].error+=" (Use Line Anchor or Run tool safely if search string fails)";else if(S.length>1){let n=S[S.length-1];n.error+=`
23
+ (Tip: Use Line Anchor or Run tool safely if search string fails)`}return{content:i,results:u}},ft=(t,o,d,m=8,h=!1)=>{if(!d||d.length===0)return"";let l=t.split(/\r?\n/),p=o.split(/\r?\n/),M=Math.max(l.length,p.length,1),e=Math.max(4,String(M).length),s=x=>String(x).padStart(e," "),r=`[DIFF_START]
24
+ `,c="\u2550".repeat(88),i=0,L=null,F=d.filter(x=>x.success).sort((x,u)=>x.originalStartLine-u.originalStartLine);if(F.forEach((x,u)=>{let S=x.finalStartLine!==void 0?x.finalStartLine:x.originalStartLine;if(L===null)for(i=Math.max(0,S-4);i<S-1;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
25
25
  `,i++;else{let $=L,g=$.originalStartLine+$.oldContent.split(`
26
26
  `).length-1;if(x.originalStartLine-g-1>=m){let E=Math.min(p.length,i+3);for(;i<E;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
27
- `,i++;for(r+=`[UI_CONTEXT] ${l}
27
+ `,i++;for(r+=`[UI_CONTEXT] ${c}
28
28
  `,i=Math.max(i,S-4);i<S-1;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
29
29
  `,i++}else for(;i<S-1;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
30
- `,i++}let n=x.originalStartLine-1,f=a[n]||"",c=x.oldContent.split(`
31
- `),C=f.match(/^\s*/),k=C?C[0]:"";c.forEach(($,g)=>{let w=$;if(c.length===1&&f.trim().length>0&&f.includes($.trim()))w=f;else if(g===0){let E=$.match(/^\s*/);(E?E[0]:"").length<k.length&&f.includes($.trim())&&(w=k+$.trimStart())}r+=`-${s(x.originalStartLine+g)} |${w}
30
+ `,i++}let n=x.originalStartLine-1,f=l[n]||"",a=x.oldContent.split(`
31
+ `),C=f.match(/^\s*/),k=C?C[0]:"";a.forEach(($,g)=>{let w=$;if(a.length===1&&f.trim().length>0&&f.includes($.trim()))w=f;else if(g===0){let E=$.match(/^\s*/);(E?E[0]:"").length<k.length&&f.includes($.trim())&&(w=k+$.trimStart())}r+=`-${s(x.originalStartLine+g)} |${w}
32
32
  `});let I=i;if(x.finalStartLine!==void 0)I=x.finalStartLine-1+(x.newContent?x.newContent.split(`
33
- `).length:0);else{let $=x.originalStartLine+c.length-1,g=a[$]||null;if(g!==null){let w=u<F.length-1?(F[u+1].originalStartLine||p.length)+10:p.length;for(let E=i;E<w;E++){if(p[E]===g){I=E;break}E===p.length-1&&(I=p.length)}}else I=p.length}for(;i<I;)r+=`+${s(i+1)} |${p[i]||""}
33
+ `).length:0);else{let $=x.originalStartLine+a.length-1,g=l[$]||null;if(g!==null){let w=u<F.length-1?(F[u+1].originalStartLine||p.length)+10:p.length;for(let E=i;E<w;E++){if(p[E]===g){I=E;break}E===p.length-1&&(I=p.length)}}else I=p.length}for(;i<I;)r+=`+${s(i+1)} |${p[i]||""}
34
34
  `,i++;L=x}),L!==null){let x=Math.min(p.length,i+3);for(;i<x;)r+=`[UI_CONTEXT] ${s(i+1)} |${p[i]||""}
35
35
  `,i++}if(h){let x=`[DIFF_START]
36
- `,u=r.substring(x.length),S=`[UI_CONTEXT] ${l}
37
- `,f=u.split(S).map(c=>c.split(`
36
+ `,u=r.substring(x.length),S=`[UI_CONTEXT] ${c}
37
+ `,f=u.split(S).map(a=>a.split(`
38
38
  `).filter(k=>k.trim()!=="").length>120?`[[VERIFIED]]
39
- ${c}
40
- [[/VERIFIED]]`:c);r=x+f.join(S)}return r+="[DIFF_END]",R(r)},K=t=>{if(!t)return null;let o=t.replace("[UI_CONTEXT]","").replace(/\r/g,""),d=o.startsWith("-"),m=o.startsWith("+"),h=d||m?o.substring(1):o,a=h.indexOf("|"),p=a!==-1?R(h.substring(0,a).trim()):"",M=R(a!==-1?h.substring(a+1):h);return{isR:d,isA:m,num:p,content:M}},Y=(t,o)=>{if(!t&&!o)return 1;if(!t||!o)return 0;let d=t.length,m=o.length,h=t,a=o;d<m&&(h=o,a=t);let p=h.length,M=a.length,e=new Int32Array(M+1),s=new Int32Array(M+1);for(let i=0;i<=M;i++)e[i]=i;for(let i=1;i<=p;i++){s[0]=i;let L=h[i-1];for(let F=1;F<=M;F++)L===a[F-1]?s[F]=e[F-1]:s[F]=Math.min(e[F],s[F-1],e[F-1])+1;e.set(s)}let r=e[M],l=Math.max(d,m);return l===0?1:1-r/l},z=t=>{let o=[],d=[];t.forEach((r,l)=>{r.parsed.isR?o.push({index:l,content:r.parsed.content}):r.parsed.isA&&d.push({index:l,content:r.parsed.content})});let m=o.length,h=d.length;if(m===0||h===0)return;let a=Array.from({length:m+1},()=>Array(h+1).fill(0)),p=Array.from({length:m+1},()=>Array(h+1).fill(""));for(let r=1;r<=m;r++)p[r][0]="up";for(let r=1;r<=h;r++)p[0][r]="left";let M=Array.from({length:m},()=>Array(h).fill(0));for(let r=0;r<m;r++)for(let l=0;l<h;l++)M[r][l]=Y(o[r].content.trim(),d[l].content.trim());for(let r=1;r<=m;r++)for(let l=1;l<=h;l++){let i=M[r-1][l-1],L=i>=.2?i:-10,F=a[r-1][l-1]+L,x=a[r-1][l],u=a[r][l-1];F>=x&&F>=u?(a[r][l]=F,p[r][l]="diag"):x>=u?(a[r][l]=x,p[r][l]="up"):(a[r][l]=u,p[r][l]="left")}let e=m,s=h;for(;e>0||s>0;)if(p[e][s]==="diag"){if(M[e-1][s-1]>=.2){let l=o[e-1].index,i=d[s-1].index;t[l].pairContent=t[i].parsed.content,t[i].pairContent=t[l].parsed.content}e--,s--}else p[e][s]==="up"?e--:s--},B=new Map,P=new Map,H=200,W=5,U=(t,o)=>{o.set(t.key,t),t.type==="chunk"&&t.blocks&&t.blocks.forEach(d=>U(d,o))},ht=(t,o)=>{if(!t)return{completed:[],active:[]};let d=`${t.id}-${t.text?.length||0}-${o}-${t.isStreaming}-${t.workedDuration||0}`;if(!t.isStreaming&&B.has(d))return B.get(d);let m=R(et(t.text||"",t.role)),h=`${t.id}-${o}`,a=new Map;if(t.isStreaming){let u=P.get(h);u&&m.startsWith(u.text)&&(a=u.blocksMap)}let p=(u,S,n,f={})=>{let c=a.get(u);if(c&&c.text===n&&c.type===S&&!!c.isActiveBlock==!!f.isActiveBlock&&!!c.isStreaming==!!f.isStreaming&&c.pairContent===f.pairContent)return c;let C=R(n),k={...f};return typeof k.pairContent=="string"&&(k.pairContent=R(k.pairContent)),Array.isArray(k.wrappedLines)&&(k.wrappedLines=k.wrappedLines.map(R)),{key:u,isStreamingMsg:!!t.isStreaming,workedDuration:t.workedDuration,type:S,text:C,msg:S==="full-message"?t:void 0,...k}};if(m.includes("- Content Preview:")){let u="",S=m.match(/File\s+\[(.*?)\]/i);S&&(u=S[1].split(".").pop().toLowerCase());let k=((m.split("- Content Preview:")[1]||"").split("[SYSTEM] Check the content preview for verification [/SYSTEM]")[0]?.trim()||"").split(`
39
+ ${a}
40
+ [[/VERIFIED]]`:a);r=x+f.join(S)}return r+="[DIFF_END]",R(r)},K=t=>{if(!t)return null;let o=t.replace("[UI_CONTEXT]","").replace(/\r/g,""),d=o.startsWith("-"),m=o.startsWith("+"),h=d||m?o.substring(1):o,l=h.indexOf("|"),p=l!==-1?R(h.substring(0,l).trim()):"",M=R(l!==-1?h.substring(l+1):h);return{isR:d,isA:m,num:p,content:M}},Y=(t,o)=>{if(!t&&!o)return 1;if(!t||!o)return 0;let d=t.length,m=o.length,h=t,l=o;d<m&&(h=o,l=t);let p=h.length,M=l.length,e=new Int32Array(M+1),s=new Int32Array(M+1);for(let i=0;i<=M;i++)e[i]=i;for(let i=1;i<=p;i++){s[0]=i;let L=h[i-1];for(let F=1;F<=M;F++)L===l[F-1]?s[F]=e[F-1]:s[F]=Math.min(e[F],s[F-1],e[F-1])+1;e.set(s)}let r=e[M],c=Math.max(d,m);return c===0?1:1-r/c},z=t=>{let o=[],d=[];t.forEach((r,c)=>{r.parsed.isR?o.push({index:c,content:r.parsed.content}):r.parsed.isA&&d.push({index:c,content:r.parsed.content})});let m=o.length,h=d.length;if(m===0||h===0)return;let l=Array.from({length:m+1},()=>Array(h+1).fill(0)),p=Array.from({length:m+1},()=>Array(h+1).fill(""));for(let r=1;r<=m;r++)p[r][0]="up";for(let r=1;r<=h;r++)p[0][r]="left";let M=Array.from({length:m},()=>Array(h).fill(0));for(let r=0;r<m;r++)for(let c=0;c<h;c++)M[r][c]=Y(o[r].content.trim(),d[c].content.trim());for(let r=1;r<=m;r++)for(let c=1;c<=h;c++){let i=M[r-1][c-1],L=i>=.2?i:-10,F=l[r-1][c-1]+L,x=l[r-1][c],u=l[r][c-1];F>=x&&F>=u?(l[r][c]=F,p[r][c]="diag"):x>=u?(l[r][c]=x,p[r][c]="up"):(l[r][c]=u,p[r][c]="left")}let e=m,s=h;for(;e>0||s>0;)if(p[e][s]==="diag"){if(M[e-1][s-1]>=.2){let c=o[e-1].index,i=d[s-1].index;t[c].pairContent=t[i].parsed.content,t[i].pairContent=t[c].parsed.content}e--,s--}else p[e][s]==="up"?e--:s--},B=new Map,P=new Map,H=200,W=5,U=(t,o)=>{o.set(t.key,t),t.type==="chunk"&&t.blocks&&t.blocks.forEach(d=>U(d,o))},ht=(t,o)=>{if(!t)return{completed:[],active:[]};let d=`${t.id}-${t.text?.length||0}-${o}-${t.isStreaming}-${t.workedDuration||0}`;if(!t.isStreaming&&B.has(d))return B.get(d);let m=R(et(t.text||"",t.role)),h=`${t.id}-${o}`,l=new Map;if(t.isStreaming){let u=P.get(h);u&&m.startsWith(u.text)&&(l=u.blocksMap)}let p=(u,S,n,f={})=>{let a=l.get(u);if(a&&a.text===n&&a.type===S&&!!a.isActiveBlock==!!f.isActiveBlock&&!!a.isStreaming==!!f.isStreaming&&a.pairContent===f.pairContent)return a;let C=R(n),k={...f};return typeof k.pairContent=="string"&&(k.pairContent=R(k.pairContent)),Array.isArray(k.wrappedLines)&&(k.wrappedLines=k.wrappedLines.map(R)),{key:u,isStreamingMsg:!!t.isStreaming,workedDuration:t.workedDuration,type:S,text:C,msg:S==="full-message"?t:void 0,...k}};if(m.includes("- Content Preview:")){let u="",S=m.match(/File\s+\[(.*?)\]/i);S&&(u=S[1].split(".").pop().toLowerCase());let k=((m.split("- Content Preview:")[1]||"").split("[SYSTEM] Check the content preview for verification [/SYSTEM]")[0]?.trim()||"").split(`
41
41
  `).map(b=>b.replace(/\r$/,"")),I=String(k.length).length,$=[],g=null,w=[],E=()=>{if(!w.length)return;let b=w;w=[],$.push(b.length===1?b[0]:{key:`${b[0].key}-chunk`,type:"chunk",blocks:b})},A=o-(I+6);return k.forEach((b,y)=>{let T=y===k.length-1,_=v(b,A).split(`
42
42
  `),N=p(`${t.id||Date.now()}-write-line-${y}`,"write-line",b,{gutterWidth:I,lineNum:y+1,isFirstLine:y===0,isLastLine:T,extension:u,wrappedLines:_});T&&t.isStreaming?(E(),g=N):(w.push(N),w.length>=W&&E())}),E(),{completed:$,active:g?[g]:[]}}if(m.includes("[DIFF_START]")){let u=m.match(/\[DIFF_START\]([\s\S]*?)(?:\[DIFF_END\]|$)/),n=(u?u[1].trim():"").split(`
43
- `).map(g=>g.replace(/\r$/,"")),f=n.map(g=>({line:g,parsed:K(g),pairContent:null})),c=[];for(let g=0;g<f.length;g++){let w=f[g];w.parsed&&(w.parsed.isR||w.parsed.isA)?c.push(w):c.length>0&&(z(c),c=[])}c.length>0&&z(c);let C=[],k=null,I=[],$=()=>{if(!I.length)return;let g=I;I=[],C.push(g.length===1?g[0]:{key:`${g[0].key}-chunk`,type:"chunk",blocks:g})};return n.forEach((g,w)=>{let E=w===n.length-1,A=f[w].parsed,b=null;A&&(b=v(A.content,o-17).split(`
44
- `));let y=p(`${t.id||Date.now()}-diff-${w}`,"diff-line",g,{isFirstLine:w===0,isLastLine:E,pairContent:f[w].pairContent,wrappedLines:b});E&&t.isStreaming?($(),k=y):(I.push(y),I.length>=W&&$())}),$(),{completed:C,active:k?[k]:[]}}if(t.role==="system"||t.isLogo||t.isHelpRecord||t.isTerminalRecord||t.isHomeWarning||t.isImageStats||t.isAskRecord||t.isAboutRecord||t.isUpdateNotification||t.role==="user")return{completed:[p(`${t.id||Date.now()}-full`,"full-message",m)],active:[]};if(!m&&!t.isStreaming){let u={completed:[],active:[]};return B.set(d,u),u}let M=[],e=null,s=[],r=null,l=()=>{if(!s.length)return;let u=s;s=[],r=null,M.push(u.length===1?u[0]:{key:`${t.id||"x"}-chunk-${u[0].key}`,type:"chunk",blocks:u})},i=(u,S=!1)=>{if(r!==null&&r!==u.type&&l(),s.push(u),r=u.type,s.length>=W){if(t.isStreaming&&S)return;l()}},L=Math.max(20,(o||80)-6),F=Math.max(20,(o||80)-8);if(t.role==="think"){M.push(p(`${t.id}-header`,"think-header",""));let u=m.split(`
43
+ `).map(g=>g.replace(/\r$/,"")),f=n.map(g=>({line:g,parsed:K(g),pairContent:null})),a=[];for(let g=0;g<f.length;g++){let w=f[g];w.parsed&&(w.parsed.isR||w.parsed.isA)?a.push(w):a.length>0&&(z(a),a=[])}a.length>0&&z(a);let C=[],k=null,I=[],$=()=>{if(!I.length)return;let g=I;I=[],C.push(g.length===1?g[0]:{key:`${g[0].key}-chunk`,type:"chunk",blocks:g})};return n.forEach((g,w)=>{let E=w===n.length-1,A=f[w].parsed,b=null;A&&(b=v(A.content,o-17).split(`
44
+ `));let y=p(`${t.id||Date.now()}-diff-${w}`,"diff-line",g,{isFirstLine:w===0,isLastLine:E,pairContent:f[w].pairContent,wrappedLines:b});E&&t.isStreaming?($(),k=y):(I.push(y),I.length>=W&&$())}),$(),{completed:C,active:k?[k]:[]}}if(t.role==="system"||t.isLogo||t.isHelpRecord||t.isTerminalRecord||t.isHomeWarning||t.isImageStats||t.isAskRecord||t.isAboutRecord||t.isUpdateNotification||t.role==="user")return{completed:[p(`${t.id||Date.now()}-full`,"full-message",m)],active:[]};if(!m&&!t.isStreaming){let u={completed:[],active:[]};return B.set(d,u),u}let M=[],e=null,s=[],r=null,c=()=>{if(!s.length)return;let u=s;s=[],r=null,M.push(u.length===1?u[0]:{key:`${t.id||"x"}-chunk-${u[0].key}`,type:"chunk",blocks:u})},i=(u,S=!1)=>{if(r!==null&&r!==u.type&&c(),s.push(u),r=u.type,s.length>=W){if(t.isStreaming&&S)return;c()}},L=Math.max(20,(o||80)-6),F=Math.max(20,(o||80)-8);if(t.role==="think"){M.push(p(`${t.id}-header`,"think-header",""));let u=m.split(`
45
45
  `),S=[];u.forEach(n=>{v(n,F).split(`
46
- `).forEach(c=>S.push(c))}),S.forEach((n,f)=>{let c=f===S.length-1;i(p(`${t.id}-${f}`,"think-line",n,{}),c)}),t.isStreaming||(l(),M.push({key:`${t.id}-footer-padding`,type:"think-footer-padding",text:""}))}else{let u=m.split(`
47
- `),S=!1,n=[],f=!1,c="",C=0,k=0,I=[];u.forEach($=>{let g=$.trim();g.startsWith("```")?(f=!f,I.push($)):f||g.startsWith("|")?I.push($):v($,L).split(`
48
- `).forEach(E=>I.push(E))}),f=!1,I.forEach(($,g)=>{let w=g===I.length-1,E=$.trim().startsWith("|"),A=$.trim().startsWith("```");if(f)A?(f=!1,i(p(`${t.id}-code-close-${k}`,"code-fence-close","",{}),w)):(C++,i(p(`${t.id}-code-line-${g}`,"code-line",$,{lineNum:C,lang:c}),w));else if(A)f=!0,k=g,C=0,c=$.trim().replace(/^```/,"").trim(),i(p(`${t.id}-code-open-${g}`,"code-fence-open",c,{}),w);else if(E){if(S||(S=!0,n=[]),n.push($),n.length===2){let b=n[0],y=b.split("|");y[0]!==void 0&&y[0].trim()===""&&y.shift(),y.length>0&&y[y.length-1].trim()===""&&y.pop();let T=y.map(_=>_.trim());i(p(`${t.id}-table-hdr-${g}`,"table-header",b,{colHeaders:T,colCount:T.length}),w)}else if(n.length>2){let b=$.split("|");b[0]!==void 0&&b[0].trim()===""&&b.shift(),b.length>0&&b[b.length-1].trim()===""&&b.pop();let y=b.map(O=>O.trim()),T=n[0].split("|");T[0]!==void 0&&T[0].trim()===""&&T.shift(),T.length>0&&T[T.length-1].trim()===""&&T.pop();let _=T.map(O=>O.trim()),N=Math.max(1,_.length);i(p(`${t.id}-table-row-${g}`,"table-row",$,{cells:y,colHeaders:_,colCount:N,rowIndex:n.length-3}),w)}w&&!t.isStreaming&&(l(),i(p(`${t.id}-table-end-${g}`,"table-close","",{}),!0))}else S&&(i(p(`${t.id}-table-end-${g}`,"table-close","",{}),w),S=!1,n=[]),i(p(`${t.id}-${g}`,"agent-line",$,{}),w)}),!t.isStreaming&&t.workedDuration&&(l(),M.push(p(`${t.id}-worked-duration`,"worked-duration","")))}t.isStreaming&&s.length>0?e=s.length===1?s[0]:{key:`${t.id||"x"}-chunk-active-${s[0].key}`,type:"chunk",blocks:s}:l();let x={completed:M,active:e?[e]:[]};if(t.isStreaming){let u=new Map;if(M.forEach(S=>U(S,u)),e&&U(e,u),P.set(h,{text:m,blocksMap:u}),P.size>H){let S=P.keys().next().value;P.delete(S)}}else{if(B.set(d,x),B.size>H){let u=B.keys().next().value;B.delete(u)}P.delete(h)}return x},q={},Z=/(\r?\n){2}(?=\[?(?:tool:(?:functions\.)?|tool\.functions|agent:generalist|agent\.generalist|\s*turn\s*:))/gi,D=(t,o)=>{let d=!1,m=!1,h=0;for(;h<o;){if(t.startsWith("```",h)){m=!m,h+=3;continue}!m&&t[h]==="`"&&(h===0||t[h-1]!=="\\")&&(d=!d),h++}return m||d},J=/\[SYSTEM\][\s\S]*?\[\/SYSTEM\]|\[ANSWER\][\s\S]*?(?:\[\/ANSWER\]|$)|\[TOOL RESULT\]:?\s*|^\s*(SUCCESS|ERROR):.*(\r?\n)?|\[\s*turn\s*:\s*(continue|finish)\s*\]|\[\[END\]\]|\[\s*turn\s*:?.*?$|\n\s*turn\s*:?.*?$|\[\s*(?:turn|ANSWER|TOOL).*?$|\n\nResponded on .*|\n\n\[Prompted on: .*\]|@\[TerminalName:.*?, ProcessId:.*?\]/gm,Q=/(\$?\\?\/?\\rightarrow\$?|\$\\rightarrow\$)|(\$?\\?\/?\\leftarrow\$?|\$\\leftarrow\$)|(\$?\\?\/?\\uparrow\$?|\$\\uparrow\$)|(\$?\\?\/?\\downarrow\$?|\$\\downarrow\$)|(\$?\\?\/?\\leftrightarrow\$?|\$\\leftrightarrow\$)/gi,tt=/\b(write_file|update_file|read_folder|view_file|exec_command|web_search|web_scrape|search_keyword|write_pdf|write_docx|generate_image)\b/gi,j=!1,et=(t,o="agent")=>{if(!t)return t;let d=o===!0||o==="think",m=o===!1||o==="agent",h=t.replace(/<\|channel>thought/gi,"<think>").replace(/<channel\|>/gi,"</think>");if(d)return h.replace(/^<(think|thought|thoughts|thinking)>/gi,"").replace(/<\/(think|thought|thoughts|thinking)>$/gi,"").replace(/^\r?\n+/,"").replace(/\r?\n+$/,"");let a=h;m&&(a=a.replace(/<\/?(?:think|thought|thoughts|thinking)>/gi,(e,s,r)=>D(r,s)?e:""),a=a.replace(Z,(e,s,r,l)=>!j&&D(l,r)?e:""),a&&a.includes("[tool:")&&(a=a.replace(/<(\w+)(?:[^>]*)>\s*([\s\S]*?\[tool:[^\]]*\][\s\S]*?)\s*<\/\1>/gi,(e,s,r)=>r&&r.includes("[tool:")?r.trim():e),j&&(a=a.replace(/```(?:tool|yaml|function|json)?\s*\n?([\s\S]*?)\n?\```/gi,(e,s)=>s.includes("[tool:")?s.trim():e))));let p="tool:",M="agent:generalist.";if(m&&(a.toLowerCase().includes(p)||a.toLowerCase().includes(M)))for(;;){let e=a.toLowerCase(),s=e.indexOf(p),r=e.indexOf(M),l=p,i=s;if((s===-1||r!==-1&&r<s)&&(l=M,i=r),i===-1)break;if(!j&&D(a,i)){let c=-1,C=0;for(;;){let k=e.indexOf(p,C),I=e.indexOf(M,C),$=-1,g=p;if(k===-1&&I===-1)break;if(k===-1||I!==-1&&I<k?($=I,g=M):$=k,!D(a,$)){c=$,l=g;break}C=$+g.length}if(c===-1)break;i=c}let L=i,F=!1,x=i-1;for(;x>=0&&/\s/.test(a[x]);)x--;x>=0&&a[x]==="["&&(L=x,F=!0);let u=0,S=!1,n=null,f=i;for(;f<a.length;){let c=a[f];if(!n&&(c==="'"||c==='"'||c==="`")?n=c:n&&c===n&&a[f-1]!=="\\"&&(n=null),n||(c==="("?(u++,S=!0):c===")"&&u--),S&&u===0&&!n){let C=f;if(F){let k=f+1;for(;k<a.length&&/\s/.test(a[k]);)k++;k<a.length&&a[k]==="]"&&(C=k)}a=a.substring(0,L)+a.substring(C+1);break}if(f++,f===a.length)return S&&u>0&&(a=a.substring(0,L)),a}}return a=a.replace(J,""),a=a.replace(Q,e=>{let s=e.toLowerCase();return s.includes("leftrightarrow")?"\u2194":s.includes("rightarrow")?"\u2192":s.includes("leftarrow")?"\u2190":s.includes("uparrow")?"\u2191":s.includes("downarrow")?"\u2193":e}),a=a.replace(tt,e=>q[e.toLowerCase()]||e),a.trim()},ut=()=>{B.clear(),P.clear()};export{R as a,v as b,rt as c,st as d,ot as e,lt as f,at as g,ct as h,ft as i,K as j,z as k,ht as l,j as m,et as n,ut as o};
46
+ `).forEach(a=>S.push(a))}),S.forEach((n,f)=>{let a=f===S.length-1;i(p(`${t.id}-${f}`,"think-line",n,{}),a)}),t.isStreaming||(c(),M.push({key:`${t.id}-footer-padding`,type:"think-footer-padding",text:""}))}else{let u=m.split(`
47
+ `),S=!1,n=[],f=!1,a="",C=0,k=0,I=[];u.forEach($=>{let g=$.trim();g.startsWith("```")?(f=!f,I.push($)):f||g.startsWith("|")?I.push($):v($,L).split(`
48
+ `).forEach(E=>I.push(E))}),f=!1,I.forEach(($,g)=>{let w=g===I.length-1,E=$.trim().startsWith("|"),A=$.trim().startsWith("```");if(f)A?(f=!1,i(p(`${t.id}-code-close-${k}`,"code-fence-close","",{}),w)):(C++,i(p(`${t.id}-code-line-${g}`,"code-line",$,{lineNum:C,lang:a}),w));else if(A)f=!0,k=g,C=0,a=$.trim().replace(/^```/,"").trim(),i(p(`${t.id}-code-open-${g}`,"code-fence-open",a,{}),w);else if(E){if(S||(S=!0,n=[]),n.push($),n.length===2){let b=n[0],y=b.split("|");y[0]!==void 0&&y[0].trim()===""&&y.shift(),y.length>0&&y[y.length-1].trim()===""&&y.pop();let T=y.map(_=>_.trim());i(p(`${t.id}-table-hdr-${g}`,"table-header",b,{colHeaders:T,colCount:T.length}),w)}else if(n.length>2){let b=$.split("|");b[0]!==void 0&&b[0].trim()===""&&b.shift(),b.length>0&&b[b.length-1].trim()===""&&b.pop();let y=b.map(O=>O.trim()),T=n[0].split("|");T[0]!==void 0&&T[0].trim()===""&&T.shift(),T.length>0&&T[T.length-1].trim()===""&&T.pop();let _=T.map(O=>O.trim()),N=Math.max(1,_.length);i(p(`${t.id}-table-row-${g}`,"table-row",$,{cells:y,colHeaders:_,colCount:N,rowIndex:n.length-3}),w)}w&&!t.isStreaming&&(c(),i(p(`${t.id}-table-end-${g}`,"table-close","",{}),!0))}else S&&(i(p(`${t.id}-table-end-${g}`,"table-close","",{}),w),S=!1,n=[]),i(p(`${t.id}-${g}`,"agent-line",$,{}),w)}),!t.isStreaming&&t.workedDuration&&(c(),M.push(p(`${t.id}-worked-duration`,"worked-duration","")))}t.isStreaming&&s.length>0?e=s.length===1?s[0]:{key:`${t.id||"x"}-chunk-active-${s[0].key}`,type:"chunk",blocks:s}:c();let x={completed:M,active:e?[e]:[]};if(t.isStreaming){let u=new Map;if(M.forEach(S=>U(S,u)),e&&U(e,u),P.set(h,{text:m,blocksMap:u}),P.size>H){let S=P.keys().next().value;P.delete(S)}}else{if(B.set(d,x),B.size>H){let u=B.keys().next().value;B.delete(u)}P.delete(h)}return x},q={},Z=/(\r?\n){2}(?=\[?(?:tool:(?:functions\.)?|tool\.functions|action:(?:functions\.)?|action:|action\.functions|\s*turn\s*:))/gi,D=(t,o)=>{let d=!1,m=!1,h=0;for(;h<o;){if(t.startsWith("```",h)){m=!m,h+=3;continue}!m&&t[h]==="`"&&(h===0||t[h-1]!=="\\")&&(d=!d),h++}return m||d},J=/\[SYSTEM\][\s\S]*?\[\/SYSTEM\]|\[ANSWER\][\s\S]*?(?:\[\/ANSWER\]|$)|\[(?:TOOL|ACTION) RESULTS?\]:?\s*|^\s*(SUCCESS|ERROR):.*(\r?\n)?|\[\s*turn\s*:\s*(continue|finish)\s*\]|\[\[END\]\]|\[\s*turn\s*:?.*?$|\n\s*turn\s*:?.*?$|\[\s*(?:turn|ANSWER|TOOL|ACTION).*?$|\n\nResponded on .*|\n\n\[Prompted on: .*\]|@\[TerminalName:.*?, ProcessId:.*?\]/gm,Q=/(\$?\\?\/?\\rightarrow\$?|\$\\rightarrow\$)|(\$?\\?\/?\\leftarrow\$?|\$\\leftarrow\$)|(\$?\\?\/?\\uparrow\$?|\$\\uparrow\$)|(\$?\\?\/?\\downarrow\$?|\$\\downarrow\$)|(\$?\\?\/?\\leftrightarrow\$?|\$\\leftrightarrow\$)/gi,tt=/\b(write_file|update_file|read_folder|view_file|exec_command|web_search|web_scrape|search_keyword|write_pdf|write_docx|generate_image)\b/gi,j=!1,et=(t,o="agent")=>{if(!t)return t;let d=o===!0||o==="think",m=o===!1||o==="agent",h=t.replace(/<\|channel>thought/gi,"<think>").replace(/<channel\|>/gi,"</think>");if(d)return h.replace(/^<(think|thought|thoughts|thinking)>/gi,"").replace(/<\/(think|thought|thoughts|thinking)>$/gi,"").replace(/^\r?\n+/,"").replace(/\r?\n+$/,"");let l=h;m&&(l=l.replace(/<\/?(?:think|thought|thoughts|thinking)>/gi,(e,s,r)=>D(r,s)?e:""),l=l.replace(Z,(e,s,r,c)=>!j&&D(c,r)?e:""),l&&(l.includes("[tool:")||l.includes("[action:"))&&(l=l.replace(/<(\w+)(?:[^>]*)>\s*([\s\S]*?\[(?:tool|action):[^\]]*\][\s\S]*?)\s*<\/\1>/gi,(e,s,r)=>r&&(r.includes("[tool:")||r.includes("[action:"))?r.trim():e),j&&(l=l.replace(/```(?:tool|action|yaml|function|json)?\s*\n?([\s\S]*?)\n?\```/gi,(e,s)=>s.includes("[tool:")||s.includes("[action:")?s.trim():e))));let p="tool:",M="action:";if(m&&(l.toLowerCase().includes(p)||l.toLowerCase().includes(M)))for(;;){let e=l.toLowerCase(),s=e.indexOf(p),r=e.indexOf(M),c=p,i=s;if((s===-1||r!==-1&&r<s)&&(c=M,i=r),i===-1)break;if(!j&&D(l,i)){let a=-1,C=0;for(;;){let k=e.indexOf(p,C),I=e.indexOf(M,C),$=-1,g=p;if(k===-1&&I===-1)break;if(k===-1||I!==-1&&I<k?($=I,g=M):$=k,!D(l,$)){a=$,c=g;break}C=$+g.length}if(a===-1)break;i=a}let L=i,F=!1,x=i-1;for(;x>=0&&/\s/.test(l[x]);)x--;x>=0&&l[x]==="["&&(L=x,F=!0);let u=0,S=!1,n=null,f=i;for(;f<l.length;){let a=l[f];if(!n&&(a==="'"||a==='"'||a==="`")?n=a:n&&a===n&&l[f-1]!=="\\"&&(n=null),n||(a==="("?(u++,S=!0):a===")"&&u--),S&&u===0&&!n){let C=f;if(F){let k=f+1;for(;k<l.length&&/\s/.test(l[k]);)k++;k<l.length&&l[k]==="]"&&(C=k)}l=l.substring(0,L)+l.substring(C+1);break}if(f++,f===l.length)return S&&u>0&&(l=l.substring(0,L)),l}}return l=l.replace(J,""),l=l.replace(Q,e=>{let s=e.toLowerCase();return s.includes("leftrightarrow")?"\u2194":s.includes("rightarrow")?"\u2192":s.includes("leftarrow")?"\u2190":s.includes("uparrow")?"\u2191":s.includes("downarrow")?"\u2193":e}),l=l.replace(tt,e=>q[e.toLowerCase()]||e),l.trim()},ut=()=>{B.clear(),P.clear()};export{R as a,v as b,rt as c,st as d,ot as e,lt as f,ct as g,at as h,ft as i,K as j,z as k,ht as l,j as m,et as n,ut as o};
@@ -1,2 +1,2 @@
1
- import{a as B}from"./chunk-U6UKO6MO.js";import{d as H}from"./chunk-6KFABN4O.js";import{a as j}from"./chunk-Y5JU726N.js";import J from"screenshot-desktop";import v from"sharp";import N from"fs-extra";import q from"path";import"@nut-tree-fork/nut-js";async function A(t,n,s){if(!(!process.env.SHOW_DEBUG_GRID&&!process.env.DEBUG_OCR))try{let i=q.resolve(process.cwd(),"screenshots",t);await N.ensureDir(i),await N.writeFile(q.join(i,n),s)}catch{}}function Q(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(t,n,s=1/0){if(t===n)return 0;if(t.length===0)return n.length;if(n.length===0)return t.length;if(Math.abs(t.length-n.length)>s)return s+1;let i=Array.from({length:n.length+1},(r,e)=>e);for(let r=1;r<=t.length;r++){let e=[r],c=r;for(let o=1;o<=n.length;o++){let f=t[r-1]===n[o-1]?0:1,a=Math.min(e[o-1]+1,i[o]+1,i[o-1]+f);e.push(a),a<c&&(c=a)}if(i=e,c>s)return s+1}return i[n.length]}function X(t){return t<=4?0:t<=8?1:2}async function F(t,n=3){let s=await v(t).metadata();return v(t).resize(Math.round(s.width*n),Math.round(s.height*n),{kernel:"lanczos3"}).greyscale().normalise().toBuffer()}function Y(t){if(!t)return{words:[],lines:[]};let n=[],s=new Map;for(let r of t.split(`
2
- `)){let e=r.split(" ");if(e.length<12||parseInt(e[0])!==5)continue;let o=e[2],f=e[3],a=e[4],h=parseInt(e[6]),x=parseInt(e[7]),b=parseInt(e[8]),u=parseInt(e[9]),l=parseFloat(e[10]),g=e.slice(11).join(" ").trim();if(!g||l<0)continue;let m={x0:h,y0:x,x1:h+b,y1:x+u},w={text:g,confidence:l,bbox:m};n.push(w);let p=`${o}_${f}_${a}`;s.has(p)||s.set(p,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let d=s.get(p);d.words.push(w),d.bbox.x0=Math.min(d.bbox.x0,m.x0),d.bbox.y0=Math.min(d.bbox.y0,m.y0),d.bbox.x1=Math.max(d.bbox.x1,m.x1),d.bbox.y1=Math.max(d.bbox.y1,m.y1)}let i=[];for(let r of s.values())r.words.length>0&&i.push({text:r.words.map(e=>e.text).join(" "),bbox:r.bbox,words:r.words});return{words:n,lines:i}}function tt(t){if(!(t.words&&t.words.length>0)){if(t.blocks&&t.blocks.length>0){t.words=[],t.lines=[];for(let n of t.blocks)for(let s of n.paragraphs||[])for(let i of s.lines||[]){i.bbox&&t.lines.push(i);for(let r of i.words||[])r.bbox&&t.words.push(r)}if(t.words.length>0)return}if(t.tsv){let n=Y(t.tsv);t.words=n.words,t.lines=n.lines}}}function G(t,n,s=0,i=0,r=1){tt(t);let e=o=>({x0:Math.round(o.x0/r)+s,y0:Math.round(o.y0/r)+i,x1:Math.round(o.x1/r)+s,y1:Math.round(o.y1/r)+i}),c=[];if(t.lines&&t.lines.length>0)for(let o of t.lines){let f=o.text?o.text.toLowerCase().trim():"";if(!f||!o.bbox||!(f===n||new RegExp(`\\b${Q(n)}\\b`,"i").test(f)))continue;let h=o.words||(t.words?t.words.filter(l=>l.bbox&&l.bbox.x0>=o.bbox.x0-5&&l.bbox.x1<=o.bbox.x1+5&&l.bbox.y0>=o.bbox.y0-5&&l.bbox.y1<=o.bbox.y1+5):[]),x=n.split(/\s+/),b=x.map(l=>l.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(h.length>0)for(let l=0;l<=h.length-x.length;l++){let g=h.slice(l,l+x.length),m=g.map(w=>(w.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(m===b||m.includes(b)){let w={x0:Math.min(...g.map(p=>p.bbox.x0)),y0:Math.min(...g.map(p=>p.bbox.y0)),x1:Math.max(...g.map(p=>p.bbox.x1)),y1:Math.max(...g.map(p=>p.bbox.y1))};c.push(e(w)),u=!0}}u||c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0)for(let o of t.words){let f=o.text?o.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",a=n.replace(/[^a-z0-9]/g,"");f===a&&o.bbox&&c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0){let o=X(n.length);for(let f of t.words){let a=f.text?f.text.toLowerCase().trim():"";a.length>=3&&Math.abs(a.length-n.length)<=o&&Z(a,n,o)<=o&&f.bbox&&c.push(e(f.bbox))}}return c}function L(t,n){let s=null,i=1/0;for(let r of t){let e=Math.round((r.x0+r.x1)/2),c=Math.round((r.y0+r.y1)/2),o=n.x>=r.x0&&n.x<=r.x1&&n.y>=r.y0&&n.y<=r.y1,f=Math.hypot(e-n.x,c-n.y),a=o?0:f;a<i&&(i=a,s={x:e,y:c,dist:f,containsPoint:o,bbox:r})}return s}function et(t,n,s,i){let c=Math.ceil(t/4),o=Math.ceil(n/2),f=[];for(let a=0;a<2;a++)for(let h=0;h<4;h++){let x=h*c,b=a*o,u=Math.min(c,t-x),l=Math.min(o,n-b),g=x+u/2,m=b+l/2,w=s>=x&&s<x+u&&i>=b&&i<b+l;f.push({x0:x,y0:b,w:u,h:l,cx:g,cy:m,containsTarget:w})}return f.sort((a,h)=>{if(a.containsTarget)return-1;if(h.containsTarget)return 1;let x=Math.hypot(a.cx-s,a.cy-i),b=Math.hypot(h.cx-s,h.cy-i);return x-b})}var W=null;async function nt(){return W||(W=(async()=>{let{createWorker:t}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:s}=await import("./paths-Y7ACZJAE.js");return n.ensureDirSync(s),t("eng",1,{cachePath:s,logger:()=>{}})})().catch(t=>{throw W=null,t})),W}var S=null,V=null;async function ot(){let{getActiveDisplay:t}=await import("./screen_grid-YL4W6LEM.js"),n=await t();if(S&&V===n)return S;V=n,S={format:"png"};try{let s=await J.listDisplays();s&&s.length>0&&(S={format:"png",screen:(s[n]||s[0]).id})}catch{}return S}var gt=async(t,n={})=>{let s=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),i=performance.now(),r=i,e=u=>{if(!s)return;let l=performance.now(),g=(l-r).toFixed(0),m=(l-i).toFixed(0);console.log(`[Click Perf] +${g}ms (${m}ms total) -> ${u}`),r=l};e("Starting click()");let c=j(t),o=c.gridId||c.grid||c.coordinate||c.target||c.id,f=(c.type||c.clickType||"single").toLowerCase(),a=(c.button||"left").toLowerCase(),h=c.intendedClickText||c.text||"";if(!o&&!h)return'ERROR: Missing required "gridId" parameter for Click tool.';let x=o;if(h)try{e("Parsing grid code");let u=o?H(o):null;e("Getting display options");let l=await ot();e("Taking desktop screenshot");let g=await J(l);e("Getting image metadata");let m=await v(g).metadata(),w=m.width||1920,p=m.height||1080,d=u?{x:Math.round(u.x*(w/1280)),y:Math.round(u.y*(p/720))}:{x:w/2,y:p/2},C=h.toLowerCase().trim();e("Acquiring OCR worker");let O=await nt(),R=null,P="",K=u?220:500;if(u){e("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let k=Math.min(Math.round(w/3),w),T=Math.min(Math.round(p/3),p),M=Math.max(0,Math.min(w-k,d.x-Math.floor(k/2))),y=Math.max(0,Math.min(p-T,d.y-Math.floor(T/2))),$=await v(g).extract({left:M,top:y,width:k,height:T}).toBuffer(),I=2,D=await F($,I),E=C.replace(/[^a-z0-9]/g,"_");await A("cropped",`crop_${Date.now()}_${E}.png`,D),e("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await O.setParameters({tessedit_pageseg_mode:"11"});let{data:_}=await O.recognize(D,{},{tsv:!0,blocks:!0});if(e("Pass 1: OCR recognition finished, extracting matches"),_&&_.text){s&&console.log(`[Pass 1 OCR Read]: "${_.text.trim().replace(/\s+/g," ")}"`);let U=G(_,C,M,y,I);if(U.length>0){let z=L(U,d);z&&(z.containsPoint||z.dist<=K)&&(R=z,P="centered target crop OCR")}}}if(!R){e("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let k=await F(g,2),T=C.replace(/[^a-z0-9]/g,"_");await A("fullscreen",`full_${Date.now()}_${T}.png`,k),e("Pass 2: Running Tesseract on full screen"),await O.setParameters({tessedit_pageseg_mode:"3"});let{data:M}=await O.recognize(k,{},{tsv:!0,blocks:!0});if(e("Pass 2: Full-screen OCR finished"),M&&M.text){let y=G(M,C,0,0,2);if(y.length>0){let $=L(y,d);$&&(R=$,P="full-screen OCR")}}}if(!R){e("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let k=et(w,p,d.x,d.y),T=C.replace(/[^a-z0-9]/g,"_");await O.setParameters({tessedit_pageseg_mode:"11"});for(let M=0;M<k.length;M++){let y=k[M];e(`Pass 3: Preprocessing tile ${M+1}/${k.length}`);let $=await v(g).extract({left:y.x0,top:y.y0,width:y.w,height:y.h}).toBuffer(),I=await F($,3);await A("tiles",`tile_${M+1}_${Date.now()}_${T}.png`,I),e(`Pass 3: Running Tesseract on tile ${M+1}`);let{data:D}=await O.recognize(I,{},{tsv:!0,blocks:!0});if(!D||!D.text)continue;let E=G(D,C,y.x0,y.y0,3);if(E.length>0){let _=L(E,d);if(_){R=_,P=`tile ${M+1} OCR (${y.containsTarget?"target tile":`offset ${y.x0},${y.y0}`})`;break}}}}if(R){let k={x:Math.round(R.x*(1280/w)),y:Math.round(R.y*(720/p))};e(`Executing mouse click on matched target (${P})`);let T=await B("click",k,{button:a,clickType:f});return e("Click completed successfully"),`${T} (${P} for "${h}" at ${Math.round(R.dist)}px distance)`}else s&&console.log(`[OCR] No match found for "${h}". Falling back to gridId.`)}catch(u){s&&console.error("[OCR Error]",u)}e(`Executing mouse click on fallback gridId: ${x}`);let b=await B("click",x,{button:a,clickType:f});return e("Fallback click completed"),b};export{gt as click};
1
+ import{a as B}from"./chunk-JCT3YL5A.js";import{d as H}from"./chunk-KNCL7AK2.js";import{a as j}from"./chunk-Y5JU726N.js";import J from"screenshot-desktop";import v from"sharp";import N from"fs-extra";import q from"path";import"@nut-tree-fork/nut-js";async function A(t,n,s){if(!(!process.env.SHOW_DEBUG_GRID&&!process.env.DEBUG_OCR))try{let i=q.resolve(process.cwd(),"screenshots",t);await N.ensureDir(i),await N.writeFile(q.join(i,n),s)}catch{}}function Q(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(t,n,s=1/0){if(t===n)return 0;if(t.length===0)return n.length;if(n.length===0)return t.length;if(Math.abs(t.length-n.length)>s)return s+1;let i=Array.from({length:n.length+1},(r,e)=>e);for(let r=1;r<=t.length;r++){let e=[r],c=r;for(let o=1;o<=n.length;o++){let f=t[r-1]===n[o-1]?0:1,a=Math.min(e[o-1]+1,i[o]+1,i[o-1]+f);e.push(a),a<c&&(c=a)}if(i=e,c>s)return s+1}return i[n.length]}function X(t){return t<=4?0:t<=8?1:2}async function F(t,n=3){let s=await v(t).metadata();return v(t).resize(Math.round(s.width*n),Math.round(s.height*n),{kernel:"lanczos3"}).greyscale().normalise().toBuffer()}function Y(t){if(!t)return{words:[],lines:[]};let n=[],s=new Map;for(let r of t.split(`
2
+ `)){let e=r.split(" ");if(e.length<12||parseInt(e[0])!==5)continue;let o=e[2],f=e[3],a=e[4],h=parseInt(e[6]),x=parseInt(e[7]),b=parseInt(e[8]),u=parseInt(e[9]),l=parseFloat(e[10]),g=e.slice(11).join(" ").trim();if(!g||l<0)continue;let m={x0:h,y0:x,x1:h+b,y1:x+u},w={text:g,confidence:l,bbox:m};n.push(w);let p=`${o}_${f}_${a}`;s.has(p)||s.set(p,{words:[],bbox:{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}});let d=s.get(p);d.words.push(w),d.bbox.x0=Math.min(d.bbox.x0,m.x0),d.bbox.y0=Math.min(d.bbox.y0,m.y0),d.bbox.x1=Math.max(d.bbox.x1,m.x1),d.bbox.y1=Math.max(d.bbox.y1,m.y1)}let i=[];for(let r of s.values())r.words.length>0&&i.push({text:r.words.map(e=>e.text).join(" "),bbox:r.bbox,words:r.words});return{words:n,lines:i}}function tt(t){if(!(t.words&&t.words.length>0)){if(t.blocks&&t.blocks.length>0){t.words=[],t.lines=[];for(let n of t.blocks)for(let s of n.paragraphs||[])for(let i of s.lines||[]){i.bbox&&t.lines.push(i);for(let r of i.words||[])r.bbox&&t.words.push(r)}if(t.words.length>0)return}if(t.tsv){let n=Y(t.tsv);t.words=n.words,t.lines=n.lines}}}function G(t,n,s=0,i=0,r=1){tt(t);let e=o=>({x0:Math.round(o.x0/r)+s,y0:Math.round(o.y0/r)+i,x1:Math.round(o.x1/r)+s,y1:Math.round(o.y1/r)+i}),c=[];if(t.lines&&t.lines.length>0)for(let o of t.lines){let f=o.text?o.text.toLowerCase().trim():"";if(!f||!o.bbox||!(f===n||new RegExp(`\\b${Q(n)}\\b`,"i").test(f)))continue;let h=o.words||(t.words?t.words.filter(l=>l.bbox&&l.bbox.x0>=o.bbox.x0-5&&l.bbox.x1<=o.bbox.x1+5&&l.bbox.y0>=o.bbox.y0-5&&l.bbox.y1<=o.bbox.y1+5):[]),x=n.split(/\s+/),b=x.map(l=>l.replace(/[^a-z0-9]/g,"")).join(" "),u=!1;if(h.length>0)for(let l=0;l<=h.length-x.length;l++){let g=h.slice(l,l+x.length),m=g.map(w=>(w.text||"").toLowerCase().trim().replace(/[^a-z0-9]/g,"")).join(" ");if(m===b||m.includes(b)){let w={x0:Math.min(...g.map(p=>p.bbox.x0)),y0:Math.min(...g.map(p=>p.bbox.y0)),x1:Math.max(...g.map(p=>p.bbox.x1)),y1:Math.max(...g.map(p=>p.bbox.y1))};c.push(e(w)),u=!0}}u||c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0)for(let o of t.words){let f=o.text?o.text.toLowerCase().trim().replace(/[^a-z0-9]/g,""):"",a=n.replace(/[^a-z0-9]/g,"");f===a&&o.bbox&&c.push(e(o.bbox))}if(c.length===0&&t.words&&t.words.length>0){let o=X(n.length);for(let f of t.words){let a=f.text?f.text.toLowerCase().trim():"";a.length>=3&&Math.abs(a.length-n.length)<=o&&Z(a,n,o)<=o&&f.bbox&&c.push(e(f.bbox))}}return c}function L(t,n){let s=null,i=1/0;for(let r of t){let e=Math.round((r.x0+r.x1)/2),c=Math.round((r.y0+r.y1)/2),o=n.x>=r.x0&&n.x<=r.x1&&n.y>=r.y0&&n.y<=r.y1,f=Math.hypot(e-n.x,c-n.y),a=o?0:f;a<i&&(i=a,s={x:e,y:c,dist:f,containsPoint:o,bbox:r})}return s}function et(t,n,s,i){let c=Math.ceil(t/4),o=Math.ceil(n/2),f=[];for(let a=0;a<2;a++)for(let h=0;h<4;h++){let x=h*c,b=a*o,u=Math.min(c,t-x),l=Math.min(o,n-b),g=x+u/2,m=b+l/2,w=s>=x&&s<x+u&&i>=b&&i<b+l;f.push({x0:x,y0:b,w:u,h:l,cx:g,cy:m,containsTarget:w})}return f.sort((a,h)=>{if(a.containsTarget)return-1;if(h.containsTarget)return 1;let x=Math.hypot(a.cx-s,a.cy-i),b=Math.hypot(h.cx-s,h.cy-i);return x-b})}var W=null;async function nt(){return W||(W=(async()=>{let{createWorker:t}=await import("tesseract.js"),n=await import("fs-extra"),{CU_CACHE_DIR:s}=await import("./paths-2EXHWUSL.js");return n.ensureDirSync(s),t("eng",1,{cachePath:s,logger:()=>{}})})().catch(t=>{throw W=null,t})),W}var S=null,V=null;async function ot(){let{getActiveDisplay:t}=await import("./screen_grid-GBIGOR5Q.js"),n=await t();if(S&&V===n)return S;V=n,S={format:"png"};try{let s=await J.listDisplays();s&&s.length>0&&(S={format:"png",screen:(s[n]||s[0]).id})}catch{}return S}var gt=async(t,n={})=>{let s=!!(process.env.SHOW_DEBUG_GRID||process.env.DEBUG_OCR||process.env.VERBOSE),i=performance.now(),r=i,e=u=>{if(!s)return;let l=performance.now(),g=(l-r).toFixed(0),m=(l-i).toFixed(0);console.log(`[Click Perf] +${g}ms (${m}ms total) -> ${u}`),r=l};e("Starting click()");let c=j(t),o=c.gridId||c.grid||c.coordinate||c.target||c.id,f=(c.type||c.clickType||"single").toLowerCase(),a=(c.button||"left").toLowerCase(),h=c.intendedClickText||c.text||"";if(!o&&!h)return'ERROR: Missing required "gridId" parameter for Click tool.';let x=o;if(h)try{e("Parsing grid code");let u=o?H(o):null;e("Getting display options");let l=await ot();e("Taking desktop screenshot");let g=await J(l);e("Getting image metadata");let m=await v(g).metadata(),w=m.width||1920,p=m.height||1080,d=u?{x:Math.round(u.x*(w/1280)),y:Math.round(u.y*(p/720))}:{x:w/2,y:p/2},C=h.toLowerCase().trim();e("Acquiring OCR worker");let O=await nt(),R=null,P="",K=u?220:500;if(u){e("Pass 1: Cropping target crop (3x zoom window, 2x upscale)");let k=Math.min(Math.round(w/3),w),T=Math.min(Math.round(p/3),p),M=Math.max(0,Math.min(w-k,d.x-Math.floor(k/2))),y=Math.max(0,Math.min(p-T,d.y-Math.floor(T/2))),$=await v(g).extract({left:M,top:y,width:k,height:T}).toBuffer(),I=2,D=await F($,I),E=C.replace(/[^a-z0-9]/g,"_");await A("cropped",`crop_${Date.now()}_${E}.png`,D),e("Pass 1: Running Tesseract OCR recognize on crop (PSM 11 - Sparse Text)"),await O.setParameters({tessedit_pageseg_mode:"11"});let{data:_}=await O.recognize(D,{},{tsv:!0,blocks:!0});if(e("Pass 1: OCR recognition finished, extracting matches"),_&&_.text){s&&console.log(`[Pass 1 OCR Read]: "${_.text.trim().replace(/\s+/g," ")}"`);let U=G(_,C,M,y,I);if(U.length>0){let z=L(U,d);z&&(z.containsPoint||z.dist<=K)&&(R=z,P="centered target crop OCR")}}}if(!R){e("Pass 2: Entering Full-Screen OCR (broad scan, PSM 3 - Auto)");let k=await F(g,2),T=C.replace(/[^a-z0-9]/g,"_");await A("fullscreen",`full_${Date.now()}_${T}.png`,k),e("Pass 2: Running Tesseract on full screen"),await O.setParameters({tessedit_pageseg_mode:"3"});let{data:M}=await O.recognize(k,{},{tsv:!0,blocks:!0});if(e("Pass 2: Full-screen OCR finished"),M&&M.text){let y=G(M,C,0,0,2);if(y.length>0){let $=L(y,d);$&&(R=$,P="full-screen OCR")}}}if(!R){e("Pass 3: Entering Tiled OCR fallback (high-res 3x)");let k=et(w,p,d.x,d.y),T=C.replace(/[^a-z0-9]/g,"_");await O.setParameters({tessedit_pageseg_mode:"11"});for(let M=0;M<k.length;M++){let y=k[M];e(`Pass 3: Preprocessing tile ${M+1}/${k.length}`);let $=await v(g).extract({left:y.x0,top:y.y0,width:y.w,height:y.h}).toBuffer(),I=await F($,3);await A("tiles",`tile_${M+1}_${Date.now()}_${T}.png`,I),e(`Pass 3: Running Tesseract on tile ${M+1}`);let{data:D}=await O.recognize(I,{},{tsv:!0,blocks:!0});if(!D||!D.text)continue;let E=G(D,C,y.x0,y.y0,3);if(E.length>0){let _=L(E,d);if(_){R=_,P=`tile ${M+1} OCR (${y.containsTarget?"target tile":`offset ${y.x0},${y.y0}`})`;break}}}}if(R){let k={x:Math.round(R.x*(1280/w)),y:Math.round(R.y*(720/p))};e(`Executing mouse click on matched target (${P})`);let T=await B("click",k,{button:a,clickType:f});return e("Click completed successfully"),`${T} (${P} for "${h}" at ${Math.round(R.dist)}px distance)`}else s&&console.log(`[OCR] No match found for "${h}". Falling back to gridId.`)}catch(u){s&&console.error("[OCR Error]",u)}e(`Executing mouse click on fallback gridId: ${x}`);let b=await B("click",x,{button:a,clickType:f});return e("Fallback click completed"),b};export{gt as click};
@@ -1 +1 @@
1
- import{a as i,b as s}from"./chunk-U6UKO6MO.js";import"./chunk-6KFABN4O.js";import{a as c}from"./chunk-Y5JU726N.js";var d=async(a,p={})=>{let e=c(a),r=e.action||e.type||e.cmd,n=e.target||e.grid||e.gridCode||e.location||e.input;if(!r)return'ERROR: Missing required "action" argument for computer_action (e.g. move, click, drag, scroll, type, key_press, key_combination).';let t=r.toLowerCase();if(t.startsWith("mouse_")||["move","click","drag","scroll"].includes(t)){let o=t.replace("mouse_","");return await i(o,n,{button:e.button,clickType:e.clickType||e.type,from:e.from,to:e.to,direction:e.direction,amount:e.amount?parseInt(e.amount,10):void 0})}if(t.startsWith("key_")||t==="type"||t==="press"){let o=t;t==="press"&&(o="key_press");let u=e.autoPressEnter===!0||e.autoPressEnter==="true"||e.enter===!0||e.enter==="true";return await s(o,n||e.text||e.keys,{...e,autoPressEnter:u})}return`ERROR: Unrecognized action "${r}". Supported actions: move, click, drag, scroll, type, key_press, key_combination.`};export{d as computer_action};
1
+ import{a as i,b as s}from"./chunk-JCT3YL5A.js";import"./chunk-KNCL7AK2.js";import{a as c}from"./chunk-Y5JU726N.js";var d=async(a,p={})=>{let e=c(a),r=e.action||e.type||e.cmd,n=e.target||e.grid||e.gridCode||e.location||e.input;if(!r)return'ERROR: Missing required "action" argument for computer_action (e.g. move, click, drag, scroll, type, key_press, key_combination).';let t=r.toLowerCase();if(t.startsWith("mouse_")||["move","click","drag","scroll"].includes(t)){let o=t.replace("mouse_","");return await i(o,n,{button:e.button,clickType:e.clickType||e.type,from:e.from,to:e.to,direction:e.direction,amount:e.amount?parseInt(e.amount,10):void 0})}if(t.startsWith("key_")||t==="type"||t==="press"){let o=t;t==="press"&&(o="key_press");let u=e.autoPressEnter===!0||e.autoPressEnter==="true"||e.enter===!0||e.enter==="true";return await s(o,n||e.text||e.keys,{...e,autoPressEnter:u})}return`ERROR: Unrecognized action "${r}". Supported actions: move, click, drag, scroll, type, key_press, key_combination.`};export{d as computer_action};
@@ -1 +1 @@
1
- import{a as e}from"./chunk-U6UKO6MO.js";import"./chunk-6KFABN4O.js";import{a as d}from"./chunk-Y5JU726N.js";var m=async(a,i={})=>{let r=d(a),o=r.fromGridId||r.from||r.start,t=r.toGridId||r.to||r.end;return!o||!t?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await e("drag",o,{from:o,to:t})};export{m as drag};
1
+ import{a as e}from"./chunk-JCT3YL5A.js";import"./chunk-KNCL7AK2.js";import{a as d}from"./chunk-Y5JU726N.js";var m=async(a,i={})=>{let r=d(a),o=r.fromGridId||r.from||r.start,t=r.toGridId||r.to||r.end;return!o||!t?'ERROR: Drag requires both "fromGridId" and "toGridId" parameters.':await e("drag",o,{from:o,to:t})};export{m as drag};
@@ -1,4 +1,4 @@
1
- import{a as i}from"./chunk-P52SKLRJ.js";import{a as f}from"./chunk-Y5JU726N.js";import"./chunk-L3W2X74K.js";import"./chunk-RI37VZYB.js";var m=async(k,c={})=>{let l=f(k),s=l.method,d=l.id,a=c.chatId;if(!c.systemSettings?.advanceRollback)return"ERROR: Advance Rollback feature is currently disabled in settings under Security. Tell user to enable it if needed.";if(!a)return"ERROR: No active chat transaction found for rollback.";if(s==="getCheckpoint"){let r=await i.getCheckpoints(a);if(r.length===0)return"No checkpoints available.";let n={write_file:"WriteFile",update_file:"PatchFile",view_file:"ReadFile",read_folder:"ReadFolder",exec_command:"Run",web_search:"WebSearch",web_scrape:"WebScrape",search_keyword:"SearchKeyword",CodeSearch:"SearchKeyword",code_search:"SearchKeyword",write_pdf:"WritePDF",write_docx:"WriteDoc",generate_image:"GenerateImage",file_map:"FileMap",todo:"Todo",goal:"Goal",Goal:"Goal",await:"Await",ask:"AskUser",ask_user:"AskUser",AskUser:"AskUser",askuser:"AskUser",invoke:"Invoke",invokesync:"InvokeSync",getprogress:"GetProgress",cancel:"Cancel",emergency_rollback:"EmergencyRollback",emergencyrollback:"EmergencyRollback"},t=e=>n[e]||n[e.toLowerCase()]||e,o=`Available checkpoints for rollback:
1
+ import{a as i}from"./chunk-7SFAWGE2.js";import{a as f}from"./chunk-Y5JU726N.js";import"./chunk-L3W2X74K.js";import"./chunk-DSVLWYIT.js";var m=async(k,c={})=>{let l=f(k),s=l.method,d=l.id,a=c.chatId;if(!c.systemSettings?.advanceRollback)return"ERROR: Advance Rollback feature is currently disabled in settings under Security. Tell user to enable it if needed.";if(!a)return"ERROR: No active chat transaction found for rollback.";if(s==="getCheckpoint"){let r=await i.getCheckpoints(a);if(r.length===0)return"No checkpoints available.";let n={write_file:"WriteFile",update_file:"PatchFile",view_file:"ReadFile",read_folder:"ReadFolder",exec_command:"Run",web_search:"WebSearch",web_scrape:"WebScrape",search_keyword:"SearchKeyword",CodeSearch:"SearchKeyword",code_search:"SearchKeyword",write_pdf:"WritePDF",write_docx:"WriteDoc",generate_image:"GenerateImage",file_map:"FileMap",todo:"Todo",goal:"Goal",Goal:"Goal",await:"Await",ask:"AskUser",ask_user:"AskUser",AskUser:"AskUser",askuser:"AskUser",invoke:"Invoke",invokesync:"InvokeSync",getprogress:"GetProgress",cancel:"Cancel",emergency_rollback:"EmergencyRollback",emergencyrollback:"EmergencyRollback"},t=e=>n[e]||n[e.toLowerCase()]||e,o=`Available checkpoints for rollback:
2
2
 
3
3
  `;for(let e of r)if(e.id==="initial")o+=`--- Initial State (id: initial) ---
4
4
  Tools Used: User Prompted for task
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i}from"./chunk-CXNFFI7L.js";import"./chunk-HRKT75ZJ.js";import"./chunk-Y5JU726N.js";export{d as activeChildProcess,h as adjustWindowsCommand,c as cleanTerminalOutput,i as exec_command,e as isActiveCommandPty,a as isPtyAvailable,b as stripAnsi,g as terminateActiveCommand,f as writeToActiveCommand};
1
+ import{a,b,c,d,e,f,g,h,i}from"./chunk-3LTI7Z7N.js";import"./chunk-PQRLA35M.js";import"./chunk-Y5JU726N.js";export{d as activeChildProcess,h as adjustWindowsCommand,c as cleanTerminalOutput,i as exec_command,e as isActiveCommandPty,a as isPtyAvailable,b as stripAnsi,g as terminateActiveCommand,f as writeToActiveCommand};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e}from"./chunk-6AWSJNXE.js";import"./chunk-DSVLWYIT.js";export{b as exportCurrentChat,d as exportErrorLogs,e as handleExport,a as parseAgentText,c as parseLogEntries};
@@ -1,4 +1,4 @@
1
- import{a as R}from"./chunk-RLT6EHPQ.js";import{a as N}from"./chunk-Y5JU726N.js";import{t as $}from"./chunk-RI37VZYB.js";import F from"fs-extra";import d from"path";import{createRequire as I}from"module";var E=I(import.meta.url),P=E("web-tree-sitter"),S=!1,b=new Set(["class_declaration","function_declaration","method_definition","arrow_function","function_expression","if_statement","else_clause","for_statement","for_in_statement","for_of_statement","while_statement","do_statement","switch_statement","try_statement","catch_clause","variable_declarator","export_statement","lexical_declaration","variable_declaration","interface_declaration","type_alias_declaration","enum_declaration","import_declaration","jsx_element","jsx_self_closing_element","class_definition","function_definition","decorated_definition","import_from_statement","import_statement","preproc_include","method_declaration","constructor_declaration","assignment_expression","pair","class_specifier","struct_specifier","enum_specifier","field_declaration","element","script_element","style_element"]),O=new Set(["export_statement","lexical_declaration","variable_declaration","variable_declarator","pair","assignment_expression"]);function o(n,t=50){if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length>t?r.substring(0,t-3)+"...":r}function v(n){let t=n.type;if(t==="if_statement"){let e=n.childForFieldName("condition");return e?`if (${o(e.text,40)})`:"if"}if(t==="else_clause")return"else";if(t==="while_statement"||t==="do_statement"){let e=n.childForFieldName("condition");return`${t.split("_")[0]} (${e?o(e.text,40):""})`}if(t==="for_statement"||t==="for_in_statement"||t==="for_of_statement"){let i=n.text.split(`
1
+ import{a as R}from"./chunk-SZYN3VHU.js";import{a as N}from"./chunk-Y5JU726N.js";import{t as $}from"./chunk-DSVLWYIT.js";import F from"fs-extra";import d from"path";import{createRequire as I}from"module";var E=I(import.meta.url),P=E("web-tree-sitter"),S=!1,b=new Set(["class_declaration","function_declaration","method_definition","arrow_function","function_expression","if_statement","else_clause","for_statement","for_in_statement","for_of_statement","while_statement","do_statement","switch_statement","try_statement","catch_clause","variable_declarator","export_statement","lexical_declaration","variable_declaration","interface_declaration","type_alias_declaration","enum_declaration","import_declaration","jsx_element","jsx_self_closing_element","class_definition","function_definition","decorated_definition","import_from_statement","import_statement","preproc_include","method_declaration","constructor_declaration","assignment_expression","pair","class_specifier","struct_specifier","enum_specifier","field_declaration","element","script_element","style_element"]),O=new Set(["export_statement","lexical_declaration","variable_declaration","variable_declarator","pair","assignment_expression"]);function o(n,t=50){if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length>t?r.substring(0,t-3)+"...":r}function v(n){let t=n.type;if(t==="if_statement"){let e=n.childForFieldName("condition");return e?`if (${o(e.text,40)})`:"if"}if(t==="else_clause")return"else";if(t==="while_statement"||t==="do_statement"){let e=n.childForFieldName("condition");return`${t.split("_")[0]} (${e?o(e.text,40):""})`}if(t==="for_statement"||t==="for_in_statement"||t==="for_of_statement"){let i=n.text.split(`
2
2
  `)[0].match(/for\s*(?:await\s*)?\((.*)\)/);return i?`for (${o(i[1],40)})`:"for"}if(t==="switch_statement"){let e=n.childForFieldName("value");return`switch (${e?o(e.text,40):""})`}if(t==="try_statement")return"try";if(t==="catch_clause")return"catch";if(t==="element"||t==="script_element"||t==="style_element"||t==="jsx_element"||t==="jsx_self_closing_element"){let e=n.childForFieldName("opening_element")||n.childForFieldName("start_tag")||n.children.find(c=>c.type==="start_tag")||n,i=e.childForFieldName("name")||e.childForFieldName("tag_name")||e.children.find(c=>c.type==="tag_name");return i?`<${o(i.text,30)}>`:null}if(["import_declaration","import_from_statement","import_statement","preproc_include"].includes(t))return o(n.text.split(`
3
3
  `)[0],60);if(t==="pair"){let e=n.childForFieldName("key");return e?o(e.text.replace(/["']/g,""),40):null}if(t==="assignment_expression"){let e=n.childForFieldName("left");return e?`${o(e.text,30)} = ...`:null}if(t==="variable_declarator"){let e=n.childForFieldName("name")||n.children.find(i=>["identifier","object_pattern","array_pattern"].includes(i.type));return e?o(e.text,40):null}let r=n.childForFieldName("name")||n.childForFieldName("declarator")||n.children.find(e=>["identifier","type_identifier","field_identifier","property_identifier","shorthand_property_identifier"].includes(e.type));if(r){if(r.type.includes("declarator")){let e=r.descendantsOfType("identifier")[0]||r.descendantsOfType("field_identifier")[0];if(e)return o(e.text,40)}return o(r.text,40)}if(["arrow_function","function_expression","function_declaration"].includes(t)){let e=n.parent;for(;e&&e.type!=="program";){let i=v(e);if(i)return i;if(!O.has(e.type))break;e=e.parent}}return null}function L(n){let t=[];function r(e){for(let i of e.children)b.has(i.type)?t.push(i):r(i)}return r(n),t}function j(n){return n.replace(/_([a-z])/g,t=>t[1].toUpperCase())}function T(n,t=0,r=!0,e="",i=null,c=12){let s=n.type,l=v(n),u=b.has(s)||t===0,m=L(n),_=u&&t>0&&(O.has(s)&&m.length>0||l!==null&&l===i&&m.length>0),a="",p=e,g=t,h=i;if(u&&!_){let f=n.startPosition.row+1,x=n.endPosition.row+1,y=j(s),w=l?`${y} [${l}]`:y;t===0?(a+=`\u{1F4C1} ROOT (Lines: ${f}-${x})
4
4
  `,p=e):(a+=`${e}${r?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 "}${w} (Lines: ${f}-${x})
@@ -0,0 +1,4 @@
1
+ import{a as E}from"./chunk-Y5JU726N.js";import{w as F,x as S}from"./chunk-DSVLWYIT.js";import W from"fs/promises";import y from"path";function R(n){let e=n.toLowerCase();if(e.length===0)return[];if(e.length===1)return[e];let o=[];for(let t=0;t<e.length-1;t++)o.push(e.slice(t,t+2));return o}function w(n,e){if(n===e)return 1;if(!n||!e)return 0;let o=R(n),t=R(e);if(o.length===0||t.length===0)return 0;let i=new Map;for(let l of t)i.set(l,(i.get(l)||0)+1);let r=0;for(let l of o){let a=i.get(l)||0;a>0&&(r++,i.set(l,a-1))}return 2*r/(o.length+t.length)}async function x(n,e,o=n,t=1,i=15){if(t>i)return[];let r;try{r=await W.readdir(n,{withFileTypes:!0})}catch{return[]}let l=[];for(let a of r){if(e.has(a.name))continue;let u=y.join(n,a.name);if(a.isDirectory()){let m=await x(u,e,o,t+1,i);l.push(...m)}else{let m=y.relative(o,u).replace(/\\/g,"/");l.push({name:a.name,relPath:`./${m}`})}}return l}var O=async n=>{let e=typeof n=="object"&&n!==null?n:E(n),o=e.basename||e.name||e.path||e.file||e.filename||e.query;if(!o&&typeof n=="string"&&n.trim()){let f=n.trim().replace(/^["']|["']$/g,"");!f.startsWith("{")&&!f.includes("=")&&(o=f)}if(!o)return'ERROR: "basename" parameter is required for FindFile';let t=String(o).trim().replace(/^["']|["']$/g,""),i=t.replace(/^(\.\/|\.\\)/,"").replace(/\\/g,"/"),r=i.toLowerCase(),a=t.includes("*")||t.includes("?")?new RegExp("^"+t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".")+"$","i"):null,u=process.cwd(),m=new Set([...F,...S(u)]);try{let f=await x(u,m,u),g=[];for(let s of f){let h=s.name.toLowerCase(),P=y.parse(s.name).name.toLowerCase(),p=s.relPath.toLowerCase(),d=p.startsWith("./")?p.slice(2):p,c=0;if(s.name===i||s.relPath===`./${i}`)c=1;else if(h===r||p===`./${r}`||d===r)c=.98;else if(P===r)c=.95;else if(a&&(a.test(s.name)||a.test(d)))c=.9;else if(h.includes(r)||d.includes(r))c=.7+r.length/Math.max(h.length,r.length)*.15;else{let C=w(r,h),q=w(r,P),M=w(r,d),L=Math.max(C,q,M);L>=.75&&(c=L*.85)}c>=.6&&g.push({relPath:s.relPath,score:c})}if(g.length===0)return`No file found matching name "${t}"`;g.sort((s,h)=>h.score-s.score||s.relPath.length-h.relPath.length);let $=Array.from(new Set(g.map(s=>s.relPath))),b=$.length;return`${`Found ${b} file${b===1?"":"s"} matching "${t}":
2
+
3
+ `}${$.join(`
4
+ `)}`}catch(f){return`ERROR: Failed to find file: ${f.message}`}};export{O as find_file};
@@ -1 +1 @@
1
- import{a as $}from"./chunk-IRFTRBG2.js";import{a as T}from"./chunk-Y5JU726N.js";import{q as S,r as C,s as B}from"./chunk-7UNVYHZ7.js";import{a as I}from"./chunk-OOTXMJIA.js";import"./chunk-QGPOMXO4.js";import"./chunk-L3W2X74K.js";import"./chunk-RI37VZYB.js";import b from"fs-extra";import E from"path";var F=(a,y={})=>{try{if(a.length<8||a[0]!==137||a[1]!==80||a[2]!==78||a[3]!==71)return a;let s=[],c=[];for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e&1?e=3988292384^e>>>1:e=e>>>1;c[r]=e}let l=r=>{let e=4294967295;for(let n=0;n<r.length;n++)e=c[(e^r[n])&255]^e>>>8;return(e^4294967295)>>>0},f=(r,e)=>{let n=Buffer.from(r,"ascii"),i=Buffer.from(e,"utf-8"),u=n.length+1+i.length,o=Buffer.alloc(8+u+4);o.writeUInt32BE(u,0),o.write("tEXt",4,"ascii"),n.copy(o,8),o[8+n.length]=0,i.copy(o,8+n.length+1);let w=l(o.subarray(4,8+u));return o.writeUInt32BE(w,8+u),o};for(let[r,e]of Object.entries(y))e!=null&&s.push(f(r,String(e)));if(s.length===0)return a;if(a.subarray(12,16).toString("ascii")==="IHDR"){let e=a.subarray(0,33),n=a.subarray(33);return Buffer.concat([e,...s,n])}return a}catch{return a}},N=async(a,y={})=>{let s=T(a),c=s.prompt||s.text,l=s.path||s.outputPath||s.output||"generated_image.png",f=s.ratio;if(!c)return'ERROR: Missing "prompt" argument for generate_image.';let r=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],e=c.toLowerCase();if(r.some(i=>e.includes(i)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let i=await I();if(!await S(i))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await C()).nextResetMin||60}m).`;let o=i.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},w=o.keyType==="Custom"&&o.apiKey?o.apiKey:FALLBACK_IMAGE_KEY,x={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[o.quality]||"zimage",g=1024,m=1024;if(f){let t=f.replace(/\s+/g,"");t==="16:9"?(g=1024,m=576):t==="9:16"?(g=576,m=1024):t==="4:3"?(g=1024,m=768):t==="3:4"?(g=768,m=1024):t==="1:1"&&(g=1024,m=1024)}let M=Math.floor(Math.random()*1e7),k=`https://gen.pollinations.ai/image/${encodeURIComponent(c)}?model=${x}&width=${g}&height=${m}&seed=${M}&enhance=true&reasoning=high&quality=high&negative=${encodeURIComponent("deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated hands and fingers, blurry, low quality, low resolution, extra fingers, censored, watermarks, signatures")}`,d=await fetch(k,{method:"GET",headers:{Authorization:`Bearer ${w}`}});if(!d.ok){let t=d.status,h="";try{h=await d.text()}catch{}return t===402||h.includes("Insufficient balance")||h.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${t}]: ${h||"Unknown API Error"}`}if((d.headers.get("content-type")||"").includes("application/json")){let t=await d.json();return t.status===402||t.error&&t.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${t.error?.message||JSON.stringify(t)}`}let O=await d.arrayBuffer(),p=Buffer.from(O),P={Title:c,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:c,Model:`Fluxflow:${x}`,Ratio:f||"1:1",Seed:String(M)};p=F(p,P);let R=E.resolve(process.cwd(),l);await b.ensureDir(E.dirname(R)),await $.recordFileChange(R),await b.writeFile(R,p),await B(i);let v=E.extname(l).toLowerCase(),L={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[v]||"image/png";return y.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:p.toString("base64"),mimeType:L}}}:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}].`}catch(i){return`ERROR: Failed during image generation: ${i instanceof Error?i.message:String(i)}`}};export{N as generate_image};
1
+ import{a as $}from"./chunk-FQBBOFNP.js";import{a as T}from"./chunk-Y5JU726N.js";import{q as S,r as C,s as B}from"./chunk-4XXLWMY6.js";import{a as I}from"./chunk-GRQ7JZZP.js";import"./chunk-OSDQRSY6.js";import"./chunk-L3W2X74K.js";import"./chunk-DSVLWYIT.js";import b from"fs-extra";import E from"path";var F=(a,y={})=>{try{if(a.length<8||a[0]!==137||a[1]!==80||a[2]!==78||a[3]!==71)return a;let s=[],c=[];for(let r=0;r<256;r++){let e=r;for(let n=0;n<8;n++)e&1?e=3988292384^e>>>1:e=e>>>1;c[r]=e}let l=r=>{let e=4294967295;for(let n=0;n<r.length;n++)e=c[(e^r[n])&255]^e>>>8;return(e^4294967295)>>>0},f=(r,e)=>{let n=Buffer.from(r,"ascii"),i=Buffer.from(e,"utf-8"),u=n.length+1+i.length,o=Buffer.alloc(8+u+4);o.writeUInt32BE(u,0),o.write("tEXt",4,"ascii"),n.copy(o,8),o[8+n.length]=0,i.copy(o,8+n.length+1);let w=l(o.subarray(4,8+u));return o.writeUInt32BE(w,8+u),o};for(let[r,e]of Object.entries(y))e!=null&&s.push(f(r,String(e)));if(s.length===0)return a;if(a.subarray(12,16).toString("ascii")==="IHDR"){let e=a.subarray(0,33),n=a.subarray(33);return Buffer.concat([e,...s,n])}return a}catch{return a}},N=async(a,y={})=>{let s=T(a),c=s.prompt||s.text,l=s.path||s.outputPath||s.output||"generated_image.png",f=s.ratio;if(!c)return'ERROR: Missing "prompt" argument for generate_image.';let r=["nsfw","naked","nudity","nude","porn","sex","xxx","erotic","gore","bloody","violence","abuse","suicide","murder","hentai","pedophile","rape"],e=c.toLowerCase();if(r.some(i=>e.includes(i)))return"ERROR: Prompt blocked by system safety filter (inappropriate or unsafe content detected).";try{let i=await I();if(!await S(i))return`ERROR: Insufficient Quota for selected quality. Either tell user reduce quality or wait for next refresh cycle (${(await C()).nextResetMin||60}m).`;let o=i.imageSettings||{keyType:"Default",quality:"Low-High",apiKey:""},w=o.keyType==="Custom"&&o.apiKey?o.apiKey:FALLBACK_IMAGE_KEY,x={Low:"flux","Low-High":"zimage",Medium:"gptimage","Medium-High":"gptimage",High:"qwen-image",Ultra:"gptimage-large",Premium:"nanobanana-pro"}[o.quality]||"zimage",g=1024,m=1024;if(f){let t=f.replace(/\s+/g,"");t==="16:9"?(g=1024,m=576):t==="9:16"?(g=576,m=1024):t==="4:3"?(g=1024,m=768):t==="3:4"?(g=768,m=1024):t==="1:1"&&(g=1024,m=1024)}let M=Math.floor(Math.random()*1e7),k=`https://gen.pollinations.ai/image/${encodeURIComponent(c)}?model=${x}&width=${g}&height=${m}&seed=${M}&enhance=true&reasoning=high&quality=high&negative=${encodeURIComponent("deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated hands and fingers, blurry, low quality, low resolution, extra fingers, censored, watermarks, signatures")}`,d=await fetch(k,{method:"GET",headers:{Authorization:`Bearer ${w}`}});if(!d.ok){let t=d.status,h="";try{h=await d.text()}catch{}return t===402||h.includes("Insufficient balance")||h.includes("PAYMENT_REQUIRED")?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed with status [${t}]: ${h||"Unknown API Error"}`}if((d.headers.get("content-type")||"").includes("application/json")){let t=await d.json();return t.status===402||t.error&&t.error.code==="PAYMENT_REQUIRED"?"ERROR: Image Generation Currently unavailable. Try again later.":`ERROR: Image Generation failed: ${t.error?.message||JSON.stringify(t)}`}let O=await d.arrayBuffer(),p=Buffer.from(O),P={Title:c,Description:"Generated via FluxFlow CLI",Software:"FluxFlow CLI",Author:"FluxFlow","Creation Time":new Date().toISOString(),Prompt:c,Model:`Fluxflow:${x}`,Ratio:f||"1:1",Seed:String(M)};p=F(p,P);let R=E.resolve(process.cwd(),l);await b.ensureDir(E.dirname(R)),await $.recordFileChange(R),await b.writeFile(R,p),await B(i);let v=E.extname(l).toLowerCase(),L={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".webp":"image/webp"}[v]||"image/png";return y.isMultiModal!==!1?{text:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}]. Output attached to multimodal part`,binaryPart:{inlineData:{data:p.toString("base64"),mimeType:L}}}:`SUCCESS: Image successfully generated from prompt [${c}] and saved to [${l}].`}catch(i){return`ERROR: Failed during image generation: ${i instanceof Error?i.message:String(i)}`}};export{N as generate_image};
@@ -1,4 +1,4 @@
1
- import{a as b}from"./chunk-56EJGQU3.js";import{a as S}from"./chunk-Y5JU726N.js";var U=async(E,k={})=>{let c=S(E).id;if(!c)return'ERROR: Missing "id" argument for getProgress.';let t=b.find(s=>s.id===c);if(!t)return`ERROR: Subagent task with ID [${c}] not found.`;let n=`Subagent Task Status: ${t.status.toUpperCase()}
1
+ import{a as b}from"./chunk-56EJGQU3.js";import{a as S}from"./chunk-Y5JU726N.js";var P=async(E,k={})=>{let c=S(E).id;if(!c)return'ERROR: Missing "id" argument for getProgress.';let t=b.find(s=>s.id===c);if(!t)return`ERROR: Subagent task with ID [${c}] not found.`;let n=`Subagent Task Status: ${t.status.toUpperCase()}
2
2
  `;if(n+=`Title: ${t.title}
3
3
  `,n+=`Task: ${t.task}
4
4
  `,t.startedAt){let s=Math.floor((Date.now()-t.startedAt)/1e3);n+=`Elapsed Time: ${s}s
@@ -23,4 +23,4 @@ ${t.finalAnswer}
23
23
  `),n.replace(/\r\n/g,`
24
24
  `).replace(/\n{3,}/g,`
25
25
 
26
- `).trim().replace(/\[TOOL RESULT\]/gi,"TOOL RESULT:")};export{U as getProgress};
26
+ `).trim().replace(/\[(?:TOOL|ACTION) RESULT\]/gi,"ACTION RESULT:")};export{P as getProgress};
@@ -1,6 +1,6 @@
1
- import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-IOEGZWGA.js"),l=b(w),c=l.task||l.instruction||l.prompt,C=l.model||null,E=l.title||null,m=l.tools||null;if(!c)return'ERROR: Missing "task" argument for invoke.';let f=null;if(m)try{let t=m.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.substring(1,t.length-1)),f=t.split(",").map(n=>n.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let i=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,h=null,S=null,$=new Promise((t,n)=>{h=t,S=n}),e={id:i,title:E||c.substring(0,30),task:c,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:t=>{t&&e.pendingSteerMessages.push(t)},completionPromise:$,_resolveCompletion:h,_rejectCompletion:S,progress:[]},r={chunks:[],totalWords:0};k.push(e),s.onSubagentUpdate&&s.onSubagentUpdate();let a=[],M={...s,taskId:i,onAskMain:async t=>{let n=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,o=null,p=new Promise(g=>{o=g}),u={id:n,question:t,answered:!1,answer:null,askedAt:Date.now(),_resolve:o};return e.questions.push(u),e.status="waiting",s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" is WAITING FOR YOUR INPUT: "${t}"
2
- Respond using tool: [tool:Answer(id="${i}", answer="...")]
3
- [/SYSTEM]`),await p},onVisualFeedback:t=>{e.lastChunkTime=Date.now();let n=t.replace(/\x1b\[[0-9;]*m/g,""),o=n.match(/[✔✘✗✖🔍📖→➕↻•]\s*([A-Za-z0-9\s-]+)/);o?e.currentTool=o[1].trim():e.currentTool=n,s.onSubagentUpdate&&s.onSubagentUpdate()},onTokenChunk:(t,n)=>{let o=Date.now();if(e.lastChunkTime=o,e.currentTool="Thinking",typeof n=="number"&&n>0){r.totalWords+=n,r.chunks.push({time:o,words:n});let p=o-400;if(r.chunks=r.chunks.filter(u=>u.time>=p),r.chunks.length>0){let u=r.chunks.reduce((_,A)=>_+A.words,0),T=r.chunks[0].time,g=Math.max(.4,(o-T)/1e3);e.wps=Math.round(u/g)}}s.onSubagentUpdate&&s.onSubagentUpdate()}};return U(c,M,C,f,50,t=>{if(e.status==="cancelled")return;if(t.startsWith("[Subagent Turn")&&a.length>0&&(e.progress.push([...a]),a=[]),t.includes("[Executing Tool]")){let o=t.match(/\[Executing Tool\]\s*([a-zA-Z0-9_]+)/);o&&(!e.currentTool||e.currentTool==="Thinking")&&(e.currentTool=o[1])}let n=t;if(n.startsWith("[Tool Result]")){let o=n.split(`
1
+ import{a as k,c as d}from"./chunk-56EJGQU3.js";import{a as b}from"./chunk-Y5JU726N.js";var I=async(w,s={})=>{let{runSubagent:U}=await import("./ai-NFNMNHUW.js"),l=b(w),c=l.task||l.instruction||l.prompt,C=l.model||null,E=l.title||null,m=l.tools||null;if(!c)return'ERROR: Missing "task" argument for invoke.';let f=null;if(m)try{let t=m.trim();t.startsWith("[")&&t.endsWith("]")&&(t=t.substring(1,t.length-1)),f=t.split(",").map(n=>n.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let i=`subagent-${Date.now()}-${Math.floor(Math.random()*1e3)}`,h=null,S=null,$=new Promise((t,n)=>{h=t,S=n}),e={id:i,title:E||c.substring(0,30),task:c,status:"running",startedAt:Date.now(),lastChunkTime:Date.now(),wps:0,questions:[],pendingSteerMessages:[],steer:t=>{t&&e.pendingSteerMessages.push(t)},completionPromise:$,_resolveCompletion:h,_rejectCompletion:S,progress:[]},r={chunks:[],totalWords:0};k.push(e),s.onSubagentUpdate&&s.onSubagentUpdate();let a=[],A={...s,taskId:i,onAskMain:async t=>{let n=`q-${Date.now()}-${Math.floor(Math.random()*1e3)}`,o=null,p=new Promise(g=>{o=g}),u={id:n,question:t,answered:!1,answer:null,askedAt:Date.now(),_resolve:o};return e.questions.push(u),e.status="waiting",s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" is WAITING FOR YOUR INPUT: "${t}"
2
+ Respond using tool: [action:Answer(id="${i}", answer="...")]
3
+ [/SYSTEM]`),await p},onVisualFeedback:t=>{e.lastChunkTime=Date.now();let n=t.replace(/\x1b\[[0-9;]*m/g,""),o=n.match(/[✔✘✗✖🔍📖→➕↻•]\s*([A-Za-z0-9\s-]+)/);o?e.currentTool=o[1].trim():e.currentTool=n,s.onSubagentUpdate&&s.onSubagentUpdate()},onTokenChunk:(t,n)=>{let o=Date.now();if(e.lastChunkTime=o,e.currentTool="Thinking",typeof n=="number"&&n>0){r.totalWords+=n,r.chunks.push({time:o,words:n});let p=o-400;if(r.chunks=r.chunks.filter(u=>u.time>=p),r.chunks.length>0){let u=r.chunks.reduce((M,_)=>M+_.words,0),T=r.chunks[0].time,g=Math.max(.4,(o-T)/1e3);e.wps=Math.round(u/g)}}s.onSubagentUpdate&&s.onSubagentUpdate()}};return U(c,A,C,f,50,t=>{if(e.status==="cancelled")return;if(t.startsWith("[Subagent Turn")&&a.length>0&&(e.progress.push([...a]),a=[]),t.includes("[Executing Tool]")){let o=t.match(/\[Executing Tool\]\s*([a-zA-Z0-9_]+)/);o&&(!e.currentTool||e.currentTool==="Thinking")&&(e.currentTool=o[1])}let n=t;if(n.startsWith("[Tool Result]")||n.startsWith("[Action Result]")){let o=n.split(`
4
4
  `);o.length>5&&(n=o.slice(0,4).join(`
5
5
  `)+`
6
- ... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-IOEGZWGA.js");if(t.message==="Subagent task was cancelled."||e.status==="cancelled"||n()){e.status="cancelled",a.push("[SUBAGENT CANCELLED] Task was cancelled."),e.progress.push([...a]),s.onSubagentUpdate&&s.onSubagentUpdate(),e._resolveCompletion&&e._resolveCompletion(null);return}a.push(`[SUBAGENT FAILURE] Error: ${t.message}`),e.progress.push([...a]),e.status="failed",e.error=t.message,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) FAILED with error: ${t.message}. [/SYSTEM]`),e._rejectCompletion&&e._rejectCompletion(t)}),`SUCCESS: Background subagent started. Task ID: ${i}`};export{I as invoke};
6
+ ... [Content/Diff Truncated from Logs] ...`)}a.push(n),s.onSubagentUpdate&&s.onSubagentUpdate()},!0).then(t=>{if(e.status==="cancelled"){e._resolveCompletion&&e._resolveCompletion(t);return}a.length>0&&(e.progress.push([...a]),a=[]),e.status="completed",e.finalAnswer=t,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) has FINISHED. Call GetProgress(id="${i}") to see the final result. [/SYSTEM]`),e._resolveCompletion&&e._resolveCompletion(t)}).catch(async t=>{let{isTerminationSignaled:n}=await import("./ai-NFNMNHUW.js");if(t.message==="Subagent task was cancelled."||e.status==="cancelled"||n()){e.status="cancelled",a.push("[SUBAGENT CANCELLED] Task was cancelled."),e.progress.push([...a]),s.onSubagentUpdate&&s.onSubagentUpdate(),e._resolveCompletion&&e._resolveCompletion(null);return}a.push(`[SUBAGENT FAILURE] Error: ${t.message}`),e.progress.push([...a]),e.status="failed",e.error=t.message,s.onSubagentUpdate&&s.onSubagentUpdate(),d(`[SYSTEM] Background subagent "${e.title}" (id: ${i}) FAILED with error: ${t.message}. [/SYSTEM]`),e._rejectCompletion&&e._rejectCompletion(t)}),`SUCCESS: Background subagent started. Task ID: ${i}`};export{I as invoke};
@@ -1,3 +1,3 @@
1
- import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-IOEGZWGA.js"),s=o(b),a=s.task||s.instruction||s.prompt,m=s.model||null,l=s.tools||null;if(!a)return'ERROR: Missing "task" argument for invokeSync.';let r=null;if(l)try{let e=l.trim();e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),r=e.split(",").map(i=>i.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let n=s.title||a.substring(0,30);try{t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n}`);let e=await u(a,t,m,r,50);return t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} [COMPLETED]
2
- `),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-IOEGZWGA.js"),c=e.message==="Subagent task was cancelled by user."||i();if(t.onVisualFeedback){let d=c?"[CANCELLED]":"[FAILED]";t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} ${d}
1
+ import{a as o}from"./chunk-Y5JU726N.js";var k=async(b,t={})=>{let{runSubagent:u}=await import("./ai-NFNMNHUW.js"),s=o(b),a=s.task||s.instruction||s.prompt,m=s.model||null,l=s.tools||null;if(!a)return'ERROR: Missing "task" argument for invokeSync.';let r=null;if(l)try{let e=l.trim();e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),r=e.split(",").map(i=>i.trim().replace(/^["']|["']$/g,"")).filter(Boolean)}catch{}let n=s.title||a.substring(0,30);try{t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n}`);let e=await u(a,t,m,r,50);return t.onVisualFeedback&&t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} [COMPLETED]
2
+ `),e}catch(e){let{isTerminationSignaled:i}=await import("./ai-NFNMNHUW.js"),c=e.message==="Subagent task was cancelled by user."||i();if(t.onVisualFeedback){let d=c?"[CANCELLED]":"[FAILED]";t.onVisualFeedback(`\x1B[95mSubAgent\x1B[0m: \x1B[32mGeneralist\x1B[0m \u2192 ${n} ${d}
3
3
  `)}return`ERROR: Subagent execution failed: ${e.message}`}};export{k as invokeSync};
@@ -1 +1 @@
1
- import{b as e}from"./chunk-U6UKO6MO.js";import"./chunk-6KFABN4O.js";import{a as i}from"./chunk-Y5JU726N.js";var k=async(s,c={})=>{let t=i(s),a=t.key||t.keys||t.input||t.shortcut;if(!a)return'ERROR: Missing required "key" parameter for KeyPress tool.';let r=String(a).trim().toLowerCase();if(r==="clearinput"||r==="clear_input"||r==="clear")return await e("clear_input");if(r==="back"||r==="browser_back"||r==="browserBack")return await e("browser_back");if(r.includes(";")||r.includes("+")){let o=r.split(/[;+]/).map(n=>n.trim()).filter(Boolean);return await e("key_combination",o)}return await e("key_press",r)};export{k as key_press};
1
+ import{b as e}from"./chunk-JCT3YL5A.js";import"./chunk-KNCL7AK2.js";import{a as i}from"./chunk-Y5JU726N.js";var k=async(s,c={})=>{let t=i(s),a=t.key||t.keys||t.input||t.shortcut;if(!a)return'ERROR: Missing required "key" parameter for KeyPress tool.';let r=String(a).trim().toLowerCase();if(r==="clearinput"||r==="clear_input"||r==="clear")return await e("clear_input");if(r==="back"||r==="browser_back"||r==="browserBack")return await e("browser_back");if(r.includes(";")||r.includes("+")){let o=r.split(/[;+]/).map(n=>n.trim()).filter(Boolean);return await e("key_combination",o)}return await e("key_press",r)};export{k as key_press};
@@ -1 +1 @@
1
- import{b as n}from"./chunk-U6UKO6MO.js";import"./chunk-6KFABN4O.js";import{a as r}from"./chunk-Y5JU726N.js";var p=async(o,u={})=>{let t=r(o),e=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return e==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await n("type",String(e),{autoPressEnter:s})};export{p as keyboard_typing};
1
+ import{b as n}from"./chunk-JCT3YL5A.js";import"./chunk-KNCL7AK2.js";import{a as r}from"./chunk-Y5JU726N.js";var p=async(o,u={})=>{let t=r(o),e=t.text||t.input||t.value||"",s=t.autoPressEnter===!0||t.autoPressEnter==="true"||t.enter===!0||t.enter==="true";return e==null?'ERROR: Missing required "text" parameter for KeyboardTyping tool.':await n("type",String(e),{autoPressEnter:s})};export{p as keyboard_typing};