@neuralnomads/codenomad-dev 0.20.0-dev-20260922-e68ac524 → 0.20.0-dev-20260922-0a31a8b3

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 (112) hide show
  1. package/dist/opencode/compatibility/location.js +11 -0
  2. package/dist/opencode/compatibility/location.js.map +1 -1
  3. package/dist/opencode/compatibility/location.test.js +21 -0
  4. package/dist/opencode/compatibility/location.test.js.map +1 -1
  5. package/dist/server/__tests__/instance-proxy.test.js +27 -0
  6. package/dist/server/__tests__/instance-proxy.test.js.map +1 -1
  7. package/dist/server/http-server.js +1 -0
  8. package/dist/server/http-server.js.map +1 -1
  9. package/dist/workspaces/__tests__/git-common-directory.test.js +11 -0
  10. package/dist/workspaces/__tests__/git-common-directory.test.js.map +1 -1
  11. package/dist/workspaces/git-process.js +16 -6
  12. package/dist/workspaces/git-process.js.map +1 -1
  13. package/dist/workspaces/git-status.js +32 -38
  14. package/dist/workspaces/git-status.js.map +1 -1
  15. package/dist/workspaces/git-status.test.js +28 -1
  16. package/dist/workspaces/git-status.test.js.map +1 -1
  17. package/package.json +1 -1
  18. package/public/assets/App-CkXPZUpS.js +51 -0
  19. package/public/assets/App-CkXPZUpS.js.map +1 -0
  20. package/public/assets/{FilesTab-CznSFRW_.js → FilesTab-C4o3_OHJ.js} +3 -3
  21. package/public/assets/{FilesTab-CznSFRW_.js.map → FilesTab-C4o3_OHJ.js.map} +1 -1
  22. package/public/assets/{GitChangesTab-DLtyzpX0.js → GitChangesTab-ClsL5QrZ.js} +3 -3
  23. package/public/assets/{GitChangesTab-DLtyzpX0.js.map → GitChangesTab-ClsL5QrZ.js.map} +1 -1
  24. package/public/assets/{SplitFilePanel-BHkyIER4.js → SplitFilePanel-C_dI-kjb.js} +2 -2
  25. package/public/assets/{SplitFilePanel-BHkyIER4.js.map → SplitFilePanel-C_dI-kjb.js.map} +1 -1
  26. package/public/assets/{StatusTab-BB3L4UEF.js → StatusTab-_gvxV-qq.js} +2 -2
  27. package/public/assets/{StatusTab-BB3L4UEF.js.map → StatusTab-_gvxV-qq.js.map} +1 -1
  28. package/public/assets/{align-justify-BGcr8Y3G.js → align-justify-CboH-c3n.js} +2 -2
  29. package/public/assets/{align-justify-BGcr8Y3G.js.map → align-justify-CboH-c3n.js.map} +1 -1
  30. package/public/assets/{bundle-full-CwHbX2Tz.js → bundle-full-CL2fEEcE.js} +2 -2
  31. package/public/assets/{bundle-full-CwHbX2Tz.js.map → bundle-full-CL2fEEcE.js.map} +1 -1
  32. package/public/assets/{client-state-CjVIIkWh.js → client-state-BB0go4Xe.js} +2 -2
  33. package/public/assets/{client-state-CjVIIkWh.js.map → client-state-BB0go4Xe.js.map} +1 -1
  34. package/public/assets/{diff-viewer-FNBCogHl.js → diff-viewer-C-B3vwne.js} +2 -2
  35. package/public/assets/{diff-viewer-FNBCogHl.js.map → diff-viewer-C-B3vwne.js.map} +1 -1
  36. package/public/assets/index-4LEntpq0.js +2 -0
  37. package/public/assets/index-4LEntpq0.js.map +1 -0
  38. package/public/assets/index-4mzZPz2j.css +1 -0
  39. package/public/assets/index-B2wje_CF.js +2 -0
  40. package/public/assets/index-B2wje_CF.js.map +1 -0
  41. package/public/assets/index-BDbkD8FO.js +2 -0
  42. package/public/assets/index-BDbkD8FO.js.map +1 -0
  43. package/public/assets/index-BbUJLdzG.js +2 -0
  44. package/public/assets/index-BbUJLdzG.js.map +1 -0
  45. package/public/assets/index-Bdh_-CtJ.js +2 -0
  46. package/public/assets/index-Bdh_-CtJ.js.map +1 -0
  47. package/public/assets/index-C9Jqb-tF.js +2 -0
  48. package/public/assets/index-C9Jqb-tF.js.map +1 -0
  49. package/public/assets/index-CIT8ANJK.js +3 -0
  50. package/public/assets/index-CIT8ANJK.js.map +1 -0
  51. package/public/assets/index-CheaKG9m.js +2 -0
  52. package/public/assets/{index-C2jBtFkI.js.map → index-CheaKG9m.js.map} +1 -1
  53. package/public/assets/index-DbnGqvtc.js +2 -0
  54. package/public/assets/index-DbnGqvtc.js.map +1 -0
  55. package/public/assets/index-DhOvQD1j.js +2 -0
  56. package/public/assets/index-DhOvQD1j.js.map +1 -0
  57. package/public/assets/{index-CLgpBTF6.js → index-DrTKEExa.js} +2 -2
  58. package/public/assets/{index-CLgpBTF6.js.map → index-DrTKEExa.js.map} +1 -1
  59. package/public/assets/index-Gk3Kwcb2.js +2 -0
  60. package/public/assets/index-Gk3Kwcb2.js.map +1 -0
  61. package/public/assets/{loading-D8BcUQaM.js → loading-Cs2CSqHx.js} +2 -2
  62. package/public/assets/{loading-D8BcUQaM.js.map → loading-Cs2CSqHx.js.map} +1 -1
  63. package/public/assets/main-DAwgVcRN.js +42 -0
  64. package/public/assets/main-DAwgVcRN.js.map +1 -0
  65. package/public/assets/{markdown-CRPEbAqL.js → markdown-DheZTu4V.js} +4 -4
  66. package/public/assets/{markdown-CRPEbAqL.js.map → markdown-DheZTu4V.js.map} +1 -1
  67. package/public/assets/monaco-viewer-BtzCmjFO.js +27 -0
  68. package/public/assets/monaco-viewer-BtzCmjFO.js.map +1 -0
  69. package/public/assets/{startup-state-settings-card-CHqS2Pmg.js → startup-state-settings-card-CmMXcnR-.js} +2 -2
  70. package/public/assets/{startup-state-settings-card-CHqS2Pmg.js.map → startup-state-settings-card-CmMXcnR-.js.map} +1 -1
  71. package/public/assets/{terminal-square-DhmNJqNG.js → terminal-square-ypyAq6Ni.js} +2 -2
  72. package/public/assets/{terminal-square-DhmNJqNG.js.map → terminal-square-ypyAq6Ni.js.map} +1 -1
  73. package/public/assets/{todo-DXJ5kP_Z.js → todo-Cgy3-kyM.js} +2 -2
  74. package/public/assets/{todo-DXJ5kP_Z.js.map → todo-Cgy3-kyM.js.map} +1 -1
  75. package/public/assets/{tool-call-Bjo9DalZ.js → tool-call-0UMa6igS.js} +17 -17
  76. package/public/assets/{tool-call-Bjo9DalZ.js.map → tool-call-0UMa6igS.js.map} +1 -1
  77. package/public/assets/{unified-picker-CxrTM_tY.js → unified-picker-C-lhbMQ0.js} +2 -2
  78. package/public/assets/{unified-picker-CxrTM_tY.js.map → unified-picker-C-lhbMQ0.js.map} +1 -1
  79. package/public/assets/{wrap-text-BznZeD4J.js → wrap-text-BjODGwnM.js} +2 -2
  80. package/public/assets/{wrap-text-BznZeD4J.js.map → wrap-text-BjODGwnM.js.map} +1 -1
  81. package/public/index.html +4 -4
  82. package/public/loading.html +4 -4
  83. package/public/sw.js +1 -1
  84. package/public/sw.js.map +1 -1
  85. package/public/assets/App-BSkmbNUC.js +0 -51
  86. package/public/assets/App-BSkmbNUC.js.map +0 -1
  87. package/public/assets/index-AeE49W2c.js +0 -2
  88. package/public/assets/index-AeE49W2c.js.map +0 -1
  89. package/public/assets/index-B875QQLi.js +0 -2
  90. package/public/assets/index-B875QQLi.js.map +0 -1
  91. package/public/assets/index-BhInW6hR.js +0 -3
  92. package/public/assets/index-BhInW6hR.js.map +0 -1
  93. package/public/assets/index-C2jBtFkI.js +0 -2
  94. package/public/assets/index-C8zCyB6Z.js +0 -2
  95. package/public/assets/index-C8zCyB6Z.js.map +0 -1
  96. package/public/assets/index-C9vJvaFa.js +0 -2
  97. package/public/assets/index-C9vJvaFa.js.map +0 -1
  98. package/public/assets/index-CLdQSSfU.js +0 -2
  99. package/public/assets/index-CLdQSSfU.js.map +0 -1
  100. package/public/assets/index-CaYFZAN4.js +0 -2
  101. package/public/assets/index-CaYFZAN4.js.map +0 -1
  102. package/public/assets/index-ChudAs0f.js +0 -2
  103. package/public/assets/index-ChudAs0f.js.map +0 -1
  104. package/public/assets/index-D292-iMl.js +0 -2
  105. package/public/assets/index-D292-iMl.js.map +0 -1
  106. package/public/assets/index-DYBqUC9X.css +0 -1
  107. package/public/assets/index-Dk3HFhZs.js +0 -2
  108. package/public/assets/index-Dk3HFhZs.js.map +0 -1
  109. package/public/assets/main-DRbjgAo8.js +0 -42
  110. package/public/assets/main-DRbjgAo8.js.map +0 -1
  111. package/public/assets/monaco-viewer-CG0aPZ-r.js +0 -27
  112. package/public/assets/monaco-viewer-CG0aPZ-r.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{t as B,i as s,m as L,e as N}from"./monaco-viewer-CG0aPZ-r.js";import{e as j,a as S}from"./git-diff-vendor-CT8HfOQw.js";import{u as q}from"./index-BhInW6hR.js";import{a as l}from"./main-DRbjgAo8.js";import{b as $,c as _,g as z,i as A}from"./client-state-CjVIIkWh.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";var D=B('<div class=settings-card><div class=settings-card-header><div><h3 class=settings-card-title></h3><p class=settings-card-subtitle></p></div><span class=settings-scope-badge></span></div><div class=settings-stack><div class=settings-toggle-row><div><div class=settings-toggle-title></div><div class=settings-toggle-caption></div></div><label class=settings-checkbox-toggle><input type=checkbox><span></span></label></div><div class=settings-toggle-row><div><div class=settings-toggle-title></div><div class=settings-toggle-caption></div></div><button type=button class="selector-button selector-button-secondary w-auto whitespace-nowrap">');const Q=()=>{const{t}=q(),[c,a]=j(!1),x=async i=>{a(!0);try{await z(i)}catch{l({message:t("settings.appearance.startup.updateError"),variant:"error"})}finally{a(!1)}},y=async()=>{a(!0);try{await A(),l({message:t("settings.appearance.startup.clearSuccess"),variant:"success"})}catch{l({message:t("settings.appearance.startup.clearError"),variant:"error"})}finally{a(!1)}};return(()=>{var i=D(),o=i.firstChild,d=o.firstChild,g=d.firstChild,C=g.nextSibling,w=d.nextSibling,k=o.nextSibling,p=k.firstChild,u=p.firstChild,v=u.firstChild,E=v.nextSibling,R=u.nextSibling,r=R.firstChild,P=r.nextSibling,I=p.nextSibling,b=I.firstChild,m=b.firstChild,T=m.nextSibling,n=b.nextSibling;return s(g,()=>t("settings.appearance.startup.title")),s(C,()=>t("settings.appearance.startup.subtitle")),s(w,()=>t("settings.scope.device")),s(v,()=>t("settings.appearance.startup.restore.title")),s(E,()=>t("settings.appearance.startup.restore.subtitle")),r.addEventListener("change",e=>void x(e.currentTarget.checked)),s(P,(()=>{var e=L(()=>!!$());return()=>e()?t("settings.common.enabled"):t("settings.common.disabled")})()),s(m,()=>t("settings.appearance.startup.clear.title")),s(T,()=>t("settings.appearance.startup.clear.subtitle")),n.$$click=()=>void y(),s(n,()=>t("settings.appearance.startup.clear.action")),S(e=>{var f=c()||!_(),h=c()||!_();return f!==e.e&&(r.disabled=e.e=f),h!==e.t&&(n.disabled=e.t=h),e},{e:void 0,t:void 0}),S(()=>r.checked=$()),i})()};N(["click"]);export{Q as StartupStateSettingsCard};
2
- //# sourceMappingURL=startup-state-settings-card-CHqS2Pmg.js.map
1
+ import{t as B,i as s,m as L,e as N}from"./monaco-viewer-BtzCmjFO.js";import{e as j,a as S}from"./git-diff-vendor-CT8HfOQw.js";import{u as q}from"./index-CIT8ANJK.js";import{a as l}from"./main-DAwgVcRN.js";import{b as $,c as _,g as z,i as A}from"./client-state-BB0go4Xe.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";var D=B('<div class=settings-card><div class=settings-card-header><div><h3 class=settings-card-title></h3><p class=settings-card-subtitle></p></div><span class=settings-scope-badge></span></div><div class=settings-stack><div class=settings-toggle-row><div><div class=settings-toggle-title></div><div class=settings-toggle-caption></div></div><label class=settings-checkbox-toggle><input type=checkbox><span></span></label></div><div class=settings-toggle-row><div><div class=settings-toggle-title></div><div class=settings-toggle-caption></div></div><button type=button class="selector-button selector-button-secondary w-auto whitespace-nowrap">');const Q=()=>{const{t}=q(),[c,a]=j(!1),x=async i=>{a(!0);try{await z(i)}catch{l({message:t("settings.appearance.startup.updateError"),variant:"error"})}finally{a(!1)}},y=async()=>{a(!0);try{await A(),l({message:t("settings.appearance.startup.clearSuccess"),variant:"success"})}catch{l({message:t("settings.appearance.startup.clearError"),variant:"error"})}finally{a(!1)}};return(()=>{var i=D(),o=i.firstChild,d=o.firstChild,g=d.firstChild,C=g.nextSibling,w=d.nextSibling,k=o.nextSibling,p=k.firstChild,u=p.firstChild,v=u.firstChild,E=v.nextSibling,R=u.nextSibling,r=R.firstChild,P=r.nextSibling,I=p.nextSibling,b=I.firstChild,m=b.firstChild,T=m.nextSibling,n=b.nextSibling;return s(g,()=>t("settings.appearance.startup.title")),s(C,()=>t("settings.appearance.startup.subtitle")),s(w,()=>t("settings.scope.device")),s(v,()=>t("settings.appearance.startup.restore.title")),s(E,()=>t("settings.appearance.startup.restore.subtitle")),r.addEventListener("change",e=>void x(e.currentTarget.checked)),s(P,(()=>{var e=L(()=>!!$());return()=>e()?t("settings.common.enabled"):t("settings.common.disabled")})()),s(m,()=>t("settings.appearance.startup.clear.title")),s(T,()=>t("settings.appearance.startup.clear.subtitle")),n.$$click=()=>void y(),s(n,()=>t("settings.appearance.startup.clear.action")),S(e=>{var f=c()||!_(),h=c()||!_();return f!==e.e&&(r.disabled=e.e=f),h!==e.t&&(n.disabled=e.t=h),e},{e:void 0,t:void 0}),S(()=>r.checked=$()),i})()};N(["click"]);export{Q as StartupStateSettingsCard};
2
+ //# sourceMappingURL=startup-state-settings-card-CmMXcnR-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-state-settings-card-CHqS2Pmg.js","sources":["../../../components/settings/startup-state-settings-card.tsx"],"sourcesContent":["import { createSignal, type Component } from \"solid-js\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { showToastNotification } from \"../../lib/notifications\"\nimport {\n clearRestoredClientState,\n clientStateIsPrimary,\n restorePreviousStateEnabled,\n setRestorePreviousStateEnabled,\n} from \"../../stores/client-state\"\n\nexport const StartupStateSettingsCard: Component = () => {\n const { t } = useI18n()\n const [busy, setBusy] = createSignal(false)\n\n const updateRestoreSetting = async (enabled: boolean) => {\n setBusy(true)\n try {\n await setRestorePreviousStateEnabled(enabled)\n } catch {\n showToastNotification({ message: t(\"settings.appearance.startup.updateError\"), variant: \"error\" })\n } finally {\n setBusy(false)\n }\n }\n\n const clearStartupState = async () => {\n setBusy(true)\n try {\n await clearRestoredClientState()\n showToastNotification({ message: t(\"settings.appearance.startup.clearSuccess\"), variant: \"success\" })\n } catch {\n showToastNotification({ message: t(\"settings.appearance.startup.clearError\"), variant: \"error\" })\n } finally {\n setBusy(false)\n }\n }\n\n return (\n <div class=\"settings-card\">\n <div class=\"settings-card-header\">\n <div>\n <h3 class=\"settings-card-title\">{t(\"settings.appearance.startup.title\")}</h3>\n <p class=\"settings-card-subtitle\">{t(\"settings.appearance.startup.subtitle\")}</p>\n </div>\n <span class=\"settings-scope-badge\">{t(\"settings.scope.device\")}</span>\n </div>\n\n <div class=\"settings-stack\">\n <div class=\"settings-toggle-row\">\n <div>\n <div class=\"settings-toggle-title\">{t(\"settings.appearance.startup.restore.title\")}</div>\n <div class=\"settings-toggle-caption\">{t(\"settings.appearance.startup.restore.subtitle\")}</div>\n </div>\n <label class=\"settings-checkbox-toggle\">\n <input\n type=\"checkbox\"\n checked={restorePreviousStateEnabled()}\n disabled={busy() || !clientStateIsPrimary()}\n onChange={(event) => void updateRestoreSetting(event.currentTarget.checked)}\n />\n <span>{restorePreviousStateEnabled() ? t(\"settings.common.enabled\") : t(\"settings.common.disabled\")}</span>\n </label>\n </div>\n\n <div class=\"settings-toggle-row\">\n <div>\n <div class=\"settings-toggle-title\">{t(\"settings.appearance.startup.clear.title\")}</div>\n <div class=\"settings-toggle-caption\">{t(\"settings.appearance.startup.clear.subtitle\")}</div>\n </div>\n <button\n type=\"button\"\n class=\"selector-button selector-button-secondary w-auto whitespace-nowrap\"\n disabled={busy() || !clientStateIsPrimary()}\n onClick={() => void clearStartupState()}\n >\n {t(\"settings.appearance.startup.clear.action\")}\n </button>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["StartupStateSettingsCard","t","useI18n","busy","setBusy","createSignal","updateRestoreSetting","enabled","setRestorePreviousStateEnabled","showToastNotification","message","variant","clearStartupState","clearRestoredClientState","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_$insert","addEventListener","event","currentTarget","checked","_c$","_$memo","restorePreviousStateEnabled","$$click","_$effect","_p$","_v$","clientStateIsPrimary","_v$2","e","disabled","undefined","_$delegateEvents"],"mappings":"u+BAUO,MAAMA,EAAsCA,IAAM,CACvD,KAAM,CAAEC,CAAAA,EAAMC,EAAAA,EACR,CAACC,EAAMC,CAAO,EAAIC,EAAa,EAAK,EAEpCC,EAAuB,MAAOC,GAAqB,CACvDH,EAAQ,EAAI,EACZ,GAAI,CACF,MAAMI,EAA+BD,CAAO,CAC9C,MAAQ,CACNE,EAAsB,CAAEC,QAAST,EAAE,yCAAyC,EAAGU,QAAS,OAAA,CAAS,CACnG,QAAA,CACEP,EAAQ,EAAK,CACf,CACF,EAEMQ,EAAoB,SAAY,CACpCR,EAAQ,EAAI,EACZ,GAAI,CACF,MAAMS,EAAAA,EACNJ,EAAsB,CAAEC,QAAST,EAAE,0CAA0C,EAAGU,QAAS,SAAA,CAAW,CACtG,MAAQ,CACNF,EAAsB,CAAEC,QAAST,EAAE,wCAAwC,EAAGU,QAAS,OAAA,CAAS,CAClG,QAAA,CACEP,EAAQ,EAAK,CACf,CACF,EAEA,OAAA,IAAA,CAAA,IAAAU,EAAAC,EAAAA,EAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAC,WAAAE,EAAAD,EAAAD,WAAAG,EAAAD,EAAAE,YAAAC,EAAAJ,EAAAG,YAAAE,EAAAP,EAAAK,YAAAG,EAAAD,EAAAN,WAAAQ,EAAAD,EAAAP,WAAAS,EAAAD,EAAAR,WAAAU,EAAAD,EAAAL,YAAAO,EAAAH,EAAAJ,YAAAQ,EAAAD,EAAAX,WAAAa,EAAAD,EAAAR,YAAAU,EAAAP,EAAAH,YAAAW,EAAAD,EAAAd,WAAAgB,EAAAD,EAAAf,WAAAiB,EAAAD,EAAAZ,YAAAc,EAAAH,EAAAX,YAAAe,OAAAA,EAAAjB,EAAA,IAIyClB,EAAE,mCAAmC,CAAC,EAAAmC,EAAAhB,EAAA,IACpCnB,EAAE,sCAAsC,CAAC,EAAAmC,EAAAd,EAAA,IAE1CrB,EAAE,uBAAuB,CAAC,EAAAmC,EAAAV,EAAA,IAMtBzB,EAAE,2CAA2C,CAAC,EAAAmC,EAAAT,EAAA,IAC5C1B,EAAE,8CAA8C,CAAC,EAAA4B,EAAAQ,iBAAA,SAO1EC,GAAU,KAAKhC,EAAqBgC,EAAMC,cAAcC,OAAO,CAAC,EAAAJ,EAAAN,GAAA,IAAA,CAAA,IAAAW,EAAAC,EAAA,IAAA,CAAA,CAEtEC,GAA6B,EAAA,MAAA,IAA7BF,EAAAA,EAAgCxC,EAAE,yBAAyB,EAAIA,EAAE,0BAA0B,CAAC,IAAA,EAAAmC,EAAAH,EAAA,IAM/DhC,EAAE,yCAAyC,CAAC,EAAAmC,EAAAF,EAAA,IAC1CjC,EAAE,4CAA4C,CAAC,EAAAkC,EAAAS,QAM5E,IAAM,KAAKhC,EAAAA,EAAmBwB,EAAAD,EAAA,IAEtClC,EAAE,0CAA0C,CAAC,EAAA4C,EAAAC,GAAA,CAAA,IAAAC,EAlBlC5C,EAAAA,GAAU,CAAC6C,EAAAA,EAAsBC,EAenC9C,KAAU,CAAC6C,EAAAA,EAAsBD,OAAAA,IAAAD,EAAAI,IAAArB,EAAAsB,SAAAL,EAAAI,EAAAH,GAAAE,IAAAH,EAAA7C,IAAAkC,EAAAgB,SAAAL,EAAA7C,EAAAgD,GAAAH,CAAA,EAAA,CAAAI,EAAAE,OAAAnD,EAAAmD,MAAAA,CAAA,EAAAP,MAAAhB,EAAAW,QAhBhCG,EAAAA,CAA6B,EAAA7B,CAAA,GAAA,CAyBpD,EAACuC,EAAA,CAAA,OAAA,CAAA"}
1
+ {"version":3,"file":"startup-state-settings-card-CmMXcnR-.js","sources":["../../../components/settings/startup-state-settings-card.tsx"],"sourcesContent":["import { createSignal, type Component } from \"solid-js\"\nimport { useI18n } from \"../../lib/i18n\"\nimport { showToastNotification } from \"../../lib/notifications\"\nimport {\n clearRestoredClientState,\n clientStateIsPrimary,\n restorePreviousStateEnabled,\n setRestorePreviousStateEnabled,\n} from \"../../stores/client-state\"\n\nexport const StartupStateSettingsCard: Component = () => {\n const { t } = useI18n()\n const [busy, setBusy] = createSignal(false)\n\n const updateRestoreSetting = async (enabled: boolean) => {\n setBusy(true)\n try {\n await setRestorePreviousStateEnabled(enabled)\n } catch {\n showToastNotification({ message: t(\"settings.appearance.startup.updateError\"), variant: \"error\" })\n } finally {\n setBusy(false)\n }\n }\n\n const clearStartupState = async () => {\n setBusy(true)\n try {\n await clearRestoredClientState()\n showToastNotification({ message: t(\"settings.appearance.startup.clearSuccess\"), variant: \"success\" })\n } catch {\n showToastNotification({ message: t(\"settings.appearance.startup.clearError\"), variant: \"error\" })\n } finally {\n setBusy(false)\n }\n }\n\n return (\n <div class=\"settings-card\">\n <div class=\"settings-card-header\">\n <div>\n <h3 class=\"settings-card-title\">{t(\"settings.appearance.startup.title\")}</h3>\n <p class=\"settings-card-subtitle\">{t(\"settings.appearance.startup.subtitle\")}</p>\n </div>\n <span class=\"settings-scope-badge\">{t(\"settings.scope.device\")}</span>\n </div>\n\n <div class=\"settings-stack\">\n <div class=\"settings-toggle-row\">\n <div>\n <div class=\"settings-toggle-title\">{t(\"settings.appearance.startup.restore.title\")}</div>\n <div class=\"settings-toggle-caption\">{t(\"settings.appearance.startup.restore.subtitle\")}</div>\n </div>\n <label class=\"settings-checkbox-toggle\">\n <input\n type=\"checkbox\"\n checked={restorePreviousStateEnabled()}\n disabled={busy() || !clientStateIsPrimary()}\n onChange={(event) => void updateRestoreSetting(event.currentTarget.checked)}\n />\n <span>{restorePreviousStateEnabled() ? t(\"settings.common.enabled\") : t(\"settings.common.disabled\")}</span>\n </label>\n </div>\n\n <div class=\"settings-toggle-row\">\n <div>\n <div class=\"settings-toggle-title\">{t(\"settings.appearance.startup.clear.title\")}</div>\n <div class=\"settings-toggle-caption\">{t(\"settings.appearance.startup.clear.subtitle\")}</div>\n </div>\n <button\n type=\"button\"\n class=\"selector-button selector-button-secondary w-auto whitespace-nowrap\"\n disabled={busy() || !clientStateIsPrimary()}\n onClick={() => void clearStartupState()}\n >\n {t(\"settings.appearance.startup.clear.action\")}\n </button>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["StartupStateSettingsCard","t","useI18n","busy","setBusy","createSignal","updateRestoreSetting","enabled","setRestorePreviousStateEnabled","showToastNotification","message","variant","clearStartupState","clearRestoredClientState","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_el$8","_el$9","_el$0","_el$1","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_$insert","addEventListener","event","currentTarget","checked","_c$","_$memo","restorePreviousStateEnabled","$$click","_$effect","_p$","_v$","clientStateIsPrimary","_v$2","e","disabled","undefined","_$delegateEvents"],"mappings":"u+BAUO,MAAMA,EAAsCA,IAAM,CACvD,KAAM,CAAEC,CAAAA,EAAMC,EAAAA,EACR,CAACC,EAAMC,CAAO,EAAIC,EAAa,EAAK,EAEpCC,EAAuB,MAAOC,GAAqB,CACvDH,EAAQ,EAAI,EACZ,GAAI,CACF,MAAMI,EAA+BD,CAAO,CAC9C,MAAQ,CACNE,EAAsB,CAAEC,QAAST,EAAE,yCAAyC,EAAGU,QAAS,OAAA,CAAS,CACnG,QAAA,CACEP,EAAQ,EAAK,CACf,CACF,EAEMQ,EAAoB,SAAY,CACpCR,EAAQ,EAAI,EACZ,GAAI,CACF,MAAMS,EAAAA,EACNJ,EAAsB,CAAEC,QAAST,EAAE,0CAA0C,EAAGU,QAAS,SAAA,CAAW,CACtG,MAAQ,CACNF,EAAsB,CAAEC,QAAST,EAAE,wCAAwC,EAAGU,QAAS,OAAA,CAAS,CAClG,QAAA,CACEP,EAAQ,EAAK,CACf,CACF,EAEA,OAAA,IAAA,CAAA,IAAAU,EAAAC,EAAAA,EAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAC,WAAAE,EAAAD,EAAAD,WAAAG,EAAAD,EAAAE,YAAAC,EAAAJ,EAAAG,YAAAE,EAAAP,EAAAK,YAAAG,EAAAD,EAAAN,WAAAQ,EAAAD,EAAAP,WAAAS,EAAAD,EAAAR,WAAAU,EAAAD,EAAAL,YAAAO,EAAAH,EAAAJ,YAAAQ,EAAAD,EAAAX,WAAAa,EAAAD,EAAAR,YAAAU,EAAAP,EAAAH,YAAAW,EAAAD,EAAAd,WAAAgB,EAAAD,EAAAf,WAAAiB,EAAAD,EAAAZ,YAAAc,EAAAH,EAAAX,YAAAe,OAAAA,EAAAjB,EAAA,IAIyClB,EAAE,mCAAmC,CAAC,EAAAmC,EAAAhB,EAAA,IACpCnB,EAAE,sCAAsC,CAAC,EAAAmC,EAAAd,EAAA,IAE1CrB,EAAE,uBAAuB,CAAC,EAAAmC,EAAAV,EAAA,IAMtBzB,EAAE,2CAA2C,CAAC,EAAAmC,EAAAT,EAAA,IAC5C1B,EAAE,8CAA8C,CAAC,EAAA4B,EAAAQ,iBAAA,SAO1EC,GAAU,KAAKhC,EAAqBgC,EAAMC,cAAcC,OAAO,CAAC,EAAAJ,EAAAN,GAAA,IAAA,CAAA,IAAAW,EAAAC,EAAA,IAAA,CAAA,CAEtEC,GAA6B,EAAA,MAAA,IAA7BF,EAAAA,EAAgCxC,EAAE,yBAAyB,EAAIA,EAAE,0BAA0B,CAAC,IAAA,EAAAmC,EAAAH,EAAA,IAM/DhC,EAAE,yCAAyC,CAAC,EAAAmC,EAAAF,EAAA,IAC1CjC,EAAE,4CAA4C,CAAC,EAAAkC,EAAAS,QAM5E,IAAM,KAAKhC,EAAAA,EAAmBwB,EAAAD,EAAA,IAEtClC,EAAE,0CAA0C,CAAC,EAAA4C,EAAAC,GAAA,CAAA,IAAAC,EAlBlC5C,EAAAA,GAAU,CAAC6C,EAAAA,EAAsBC,EAenC9C,KAAU,CAAC6C,EAAAA,EAAsBD,OAAAA,IAAAD,EAAAI,IAAArB,EAAAsB,SAAAL,EAAAI,EAAAH,GAAAE,IAAAH,EAAA7C,IAAAkC,EAAAgB,SAAAL,EAAA7C,EAAAgD,GAAAH,CAAA,EAAA,CAAAI,EAAAE,OAAAnD,EAAAmD,MAAAA,CAAA,EAAAP,MAAAhB,EAAAW,QAhBhCG,EAAAA,CAA6B,EAAA7B,CAAA,GAAA,CAyBpD,EAACuC,EAAA,CAAA,OAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{I as r}from"./main-DRbjgAo8.js";import{k as a,p as o}from"./git-diff-vendor-CT8HfOQw.js";const t=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],p=e=>a(r,o(e,{name:"TerminalSquare",iconNode:t}));export{p as T};
2
- //# sourceMappingURL=terminal-square-DhmNJqNG.js.map
1
+ import{I as r}from"./main-DAwgVcRN.js";import{k as a,p as o}from"./git-diff-vendor-CT8HfOQw.js";const t=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],p=e=>a(r,o(e,{name:"TerminalSquare",iconNode:t}));export{p as T};
2
+ //# sourceMappingURL=terminal-square-ypyAq6Ni.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-square-DhmNJqNG.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/terminal-square.jsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'm7 11 2-2-2-2', key: '1lz0vl' }],\n ['path', { d: 'M11 13h4', key: '1p7l4v' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n];\nconst TerminalSquare = (props) => (<Icon {...props} name=\"TerminalSquare\" iconNode={iconNode}/>);\nexport default TerminalSquare;\n"],"names":["iconNode","d","key","width","height","x","y","rx","ry","TerminalSquare","props","_$createComponent","Icon","_$mergeProps","name"],"mappings":"gGACA,MAAMA,EAAW,CACb,CAAC,OAAQ,CAAEC,EAAG,gBAAiBC,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAED,EAAG,WAAYC,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAEC,MAAO,KAAMC,OAAQ,KAAMC,EAAG,IAAKC,EAAG,IAAKC,GAAI,IAAKC,GAAI,IAAKN,IAAK,QAAS,CAAC,CAAC,EAEtFO,EAAkBC,GAAKC,EAAOC,EAAIC,EAAKH,EAAK,CAAEI,KAAI,iBAAkBd,SAAAA,CAAkB,CAAA,CAAA","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"terminal-square-ypyAq6Ni.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/terminal-square.jsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'm7 11 2-2-2-2', key: '1lz0vl' }],\n ['path', { d: 'M11 13h4', key: '1p7l4v' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n];\nconst TerminalSquare = (props) => (<Icon {...props} name=\"TerminalSquare\" iconNode={iconNode}/>);\nexport default TerminalSquare;\n"],"names":["iconNode","d","key","width","height","x","y","rx","ry","TerminalSquare","props","_$createComponent","Icon","_$mergeProps","name"],"mappings":"gGACA,MAAMA,EAAW,CACb,CAAC,OAAQ,CAAEC,EAAG,gBAAiBC,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAED,EAAG,WAAYC,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAEC,MAAO,KAAMC,OAAQ,KAAMC,EAAG,IAAKC,EAAG,IAAKC,GAAI,IAAKC,GAAI,IAAKN,IAAK,QAAS,CAAC,CAAC,EAEtFO,EAAkBC,GAAKC,EAAOC,EAAIC,EAAKH,EAAK,CAAEI,KAAI,iBAAkBd,SAAAA,CAAkB,CAAA,CAAA","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{t as C,i as b,d as E,a as W}from"./monaco-viewer-CG0aPZ-r.js";import{k as d,p as k,S as G,a as R,F as O}from"./git-diff-vendor-CT8HfOQw.js";import{r as f,a as P,i as I,b as D,f as V}from"./App-BSkmbNUC.js";import{t as v,u as Y}from"./index-BhInW6hR.js";import{I as A}from"./main-DRbjgAo8.js";const Q=[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],U=e=>d(A,k(e,{name:"CheckCircle",iconNode:Q})),J=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]],K=e=>d(A,k(e,{name:"CircleEllipsis",iconNode:J})),X=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]],Z=e=>d(A,k(e,{name:"MinusCircle",iconNode:X})),tt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],et=e=>d(A,k(e,{name:"PauseCircle",iconNode:tt}));function a(e,t){typeof t=="string"&&t.trim().length>0&&e.push(t)}function h(e,t){const o=V(t);o!=null&&o.text.trim()&&e.push(o.text)}function g(e,t){const{metadata:o}=f(t.toolState);a(e,t.toolName),a(e,o.title),a(e,o.description),a(e,t.toolState&&"title"in t.toolState?t.toolState.title:void 0)}function m(e,t){a(e,t.toolState&&"message"in t.toolState?t.toolState.message:void 0),a(e,t.toolState&&"error"in t.toolState?t.toolState.error:void 0)}function wt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);g(t,e);const l=o&&P(o)?s:o&&(I(o)||D(o))&&r.output?r.output:r.diff??r.preview??n.content;return a(t,typeof n.command=="string"?`$ ${n.command}`:void 0),a(t,n.filePath),a(t,n.path),h(t,l),m(t,e),t}function Nt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);return g(t,e),a(t,typeof n.command=="string"&&n.command.length>0?`$ ${n.command}`:void 0),h(t,o&&P(o)?s:o&&(I(o)||D(o))?r.output:void 0),m(t,e),t}function Pt(e){const t=[],{input:o,metadata:n}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,o.path),a(t,o.name),a(t,n.preview),m(t,e),t}function _t(e){const t=[],{input:o,metadata:n}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,typeof o.content=="string"?o.content:n.content),m(t,e),t}function ot(e){const t=[],{input:o,metadata:n,output:r}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,o.path),a(t,n.diff),h(t,r),h(t,n.output),m(t,e),t}function Bt(e){const t=ot(e),{metadata:o,output:n}=f(e.toolState),r=Array.isArray(o.files)?o.files:[];for(const s of r)a(t,s==null?void 0:s.filePath),a(t,s==null?void 0:s.relativePath),a(t,s==null?void 0:s.diff),a(t,s==null?void 0:s.patch);return h(t,o.diagnostics),h(t,n),t}function xt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);return g(t,e),a(t,n.url),h(t,o&&P(o)?s:r.output),m(t,e),t}function Mt(e){const t=[],{input:o,metadata:n,output:r}=f(e.toolState);return g(t,e),a(t,o.prompt),a(t,o.subagent_type),a(t,o.agent),h(t,r),h(t,n.summary),m(t,e),t}function nt(e){const t=[],{metadata:o}=f(e.toolState),n=Array.isArray(o.todos)?o.todos:[];g(t,e);for(const r of n)a(t,r==null?void 0:r.content),a(t,r==null?void 0:r.status);return m(t,e),t}function Et(e){const t=[],{input:o,metadata:n}=f(e.toolState),r=Array.isArray(o.questions)?o.questions:[],s=Array.isArray(n.answers)?n.answers:[];g(t,e);for(const l of r){a(t,l.header),a(t,l.question);const c=Array.isArray(l.options)?l.options:[];for(const u of c)a(t,u.label),a(t,u.description);h(t,l.answer)}return h(t,s),m(t,e),t}var S=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],$={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",8:"hidden",9:"strikethrough"};function rt(e,t){const o=e.indexOf("\x1B",t);if(o!==-1&&e[o+1]==="["){const n=e.indexOf("m",o);if(n!==-1)return{sequence:e.substring(o+2,n).split(";"),startPosition:o,position:n+1}}return{position:e.length}}function q(e){const t=e.shift();if(t==="2"){const o=e.splice(0,3).map(n=>Number.parseInt(n));return o.length!==3||o.some(n=>Number.isNaN(n))?void 0:{type:"rgb",rgb:o}}else if(t==="5"){const o=e.shift();if(o)return{type:"table",index:Number(o)}}}function st(e){const t=[];for(;e.length>0;){const o=e.shift();if(!o)continue;const n=Number.parseInt(o);if(!Number.isNaN(n))if(n===0)t.push({type:"resetAll"});else if(n<=9)$[n]&&t.push({type:"setDecoration",value:$[n]});else if(n<=29){const r=$[n-20];r&&(t.push({type:"resetDecoration",value:r}),r==="dim"&&t.push({type:"resetDecoration",value:"bold"}))}else if(n<=37)t.push({type:"setForegroundColor",value:{type:"named",name:S[n-30]}});else if(n===38){const r=q(e);r&&t.push({type:"setForegroundColor",value:r})}else if(n===39)t.push({type:"resetForegroundColor"});else if(n<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:S[n-40]}});else if(n===48){const r=q(e);r&&t.push({type:"setBackgroundColor",value:r})}else n===49?t.push({type:"resetBackgroundColor"}):n===53?t.push({type:"setDecoration",value:"overline"}):n===55?t.push({type:"resetDecoration",value:"overline"}):n>=90&&n<=97?t.push({type:"setForegroundColor",value:{type:"named",name:S[n-90+8]}}):n>=100&&n<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:S[n-100+8]}})}return t}function N(){let e=null,t=null,o=new Set;return{parse(n){const r=[];let s=0;do{const l=rt(n,s),c=l.sequence?n.substring(s,l.startPosition):n.substring(s);if(c.length>0&&r.push({value:c,foreground:e,background:t,decorations:new Set(o)}),l.sequence){const u=st(l.sequence);for(const i of u)i.type==="resetAll"?(e=null,t=null,o.clear()):i.type==="resetForegroundColor"?e=null:i.type==="resetBackgroundColor"?t=null:i.type==="resetDecoration"&&o.delete(i.value);for(const i of u)i.type==="setForegroundColor"?e=i.value:i.type==="setBackgroundColor"?t=i.value:i.type==="setDecoration"&&o.add(i.value)}s=l.position}while(s<n.length);return r}}}var at={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function lt(e=at){function t(c){return e[c]}function o(c){return`#${c.map(u=>Math.max(0,Math.min(u,255)).toString(16).padStart(2,"0")).join("")}`}let n;function r(){if(n)return n;n=[];for(let i=0;i<S.length;i++)n.push(t(S[i]));let c=[0,95,135,175,215,255];for(let i=0;i<6;i++)for(let T=0;T<6;T++)for(let y=0;y<6;y++)n.push(o([c[i],c[T],c[y]]));let u=8;for(let i=0;i<24;i++,u+=10)n.push(o([u,u,u]));return n}function s(c){return r()[c]}function l(c){switch(c.type){case"named":return t(c.name);case"rgb":return o(c.rgb);case"table":return s(c.index)}}return{value:l}}const w="\x1B",it=/\\u001b|\\x1b|\\033/,ct=/\u001b/,F=lt();function Rt(e){const t=_(e);return ct.test(t)}function qt(e){const t=_(e),n=N().parse(t);return L(n)}function Ft(){let e=N();return{reset(){e=N()},render(t){const o=_(t),n=e.parse(o);return L(n)}}}function _(e){return it.test(e)?e.replace(/\\u001b/gi,w).replace(/\\x1b/gi,w).replace(/\\033/g,w):e}function L(e){let t="";for(const o of e){if(!o.value)continue;const n=ut(o),r=dt(o.value);if(!n){t+=r;continue}t+=`<span style="${n}">${r}</span>`}return t}function ut(e){const t=e.decorations;let o=e.foreground?F.value(e.foreground):null,n=e.background?F.value(e.background):null;if(t.has("reverse")){const l=o;o=n,n=l}const r=[];o&&r.push(`color: ${o}`),n&&r.push(`background-color: ${n}`),t.has("bold")&&r.push("font-weight: 600"),t.has("dim")&&r.push("opacity: 0.7"),t.has("italic")&&r.push("font-style: italic");const s=[];return t.has("underline")&&s.push("underline"),t.has("strikethrough")&&s.push("line-through"),t.has("overline")&&s.push("overline"),s.length>0&&r.push(`text-decoration-line: ${s.join(" ")}`),t.has("hidden")&&(r.push("color: transparent"),r.push("background-color: transparent")),r.length>0?r.join("; "):null}function dt(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;").replace(/'/g,"&#39;")}var ft=C("<div class=tool-call-todo-empty>"),pt=C("<div class=tool-call-todo-region><div class=tool-call-todos role=list>"),ht=C("<span>"),gt=C("<div class=tool-call-todo-item role=listitem><span class=tool-call-todo-checkbox></span><div class=tool-call-todo-body><div class=tool-call-todo-heading><span class=tool-call-todo-text>");function mt(e){return e==="completed"||e==="in_progress"||e==="cancelled"?e:"pending"}function z(e){if(!e)return[];const{metadata:t}=f(e),o=Array.isArray(t.todos)?t.todos:[],n=[];for(let r=0;r<o.length;r++){const s=o[r],l=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!l)continue;const c=mt(s.status),u=typeof(s==null?void 0:s.id)=="string"&&s.id.length>0?s.id:`${r}-${l}`;n.push({id:u,content:l,status:c})}return n}function j(e){return e.reduce((t,o)=>(t.total+=1,t[o.status]=(t[o.status]||0)+1,t),{total:0,pending:0,in_progress:0,completed:0,cancelled:0})}function yt(e,t){switch(t){case"completed":return e("toolCall.renderer.todo.status.completed");case"in_progress":return e("toolCall.renderer.todo.status.inProgress");case"cancelled":return e("toolCall.renderer.todo.status.cancelled");default:return e("toolCall.renderer.todo.status.pending")}}function bt(e){switch(e.status){case"completed":return d(U,{class:"tool-call-todo-icon","aria-hidden":"true"});case"in_progress":return d(K,{class:"tool-call-todo-icon","aria-hidden":"true"});case"cancelled":return d(Z,{class:"tool-call-todo-icon","aria-hidden":"true"});default:return d(et,{class:"tool-call-todo-icon","aria-hidden":"true"})}}function vt(e){const{t}=Y(),o=z(e.state);return j(o).total===0?(()=>{var r=ft();return b(r,()=>e.emptyLabel??t("toolCall.renderer.todo.empty")),r})():(()=>{var r=pt(),s=r.firstChild;return b(s,d(O,{each:o,children:l=>{const c=yt(t,l.status);return(()=>{var u=gt(),i=u.firstChild,T=i.nextSibling,y=T.firstChild,H=y.firstChild;return E(i,"aria-label",c),b(i,d(bt,{get status(){return l.status}})),b(H,()=>l.content),b(y,d(G,{get when(){return e.showStatusLabel!==!1},get children(){var p=ht();return b(p,c),R(()=>W(p,`tool-call-todo-status tool-call-todo-status-${l.status}`)),p}}),null),R(p=>{var B=l.status==="completed",x=l.status==="cancelled",M=l.status;return B!==p.e&&u.classList.toggle("tool-call-todo-item-completed",p.e=B),x!==p.t&&u.classList.toggle("tool-call-todo-item-cancelled",p.t=x),M!==p.a&&E(i,"data-status",p.a=M),p},{e:void 0,t:void 0,a:void 0}),u})()}})),r})()}function St(e){if(!e)return v("toolCall.renderer.todo.title.plan");const t=z(e);if(e.status!=="completed"||t.length===0)return v("toolCall.renderer.todo.title.plan");const o=j(t);return o.pending===o.total?v("toolCall.renderer.todo.title.creating"):o.completed===o.total?v("toolCall.renderer.todo.title.completing"):v("toolCall.renderer.todo.title.updating")}const It={tools:["todowrite"],getSearchText:nt,getAction:()=>v("toolCall.renderer.action.planning"),getTitle({toolState:e}){return St(e())},renderBody({toolState:e}){const t=e();return t?d(vt,{state:t}):null}};export{vt as T,qt as a,Nt as b,Ft as c,wt as d,ot as e,Et as f,Bt as g,Rt as h,Pt as i,Mt as j,xt as k,_t as l,It as t};
2
- //# sourceMappingURL=todo-DXJ5kP_Z.js.map
1
+ import{t as C,i as b,d as E,a as W}from"./monaco-viewer-BtzCmjFO.js";import{k as d,p as k,S as G,a as R,F as O}from"./git-diff-vendor-CT8HfOQw.js";import{r as f,a as P,i as I,b as D,f as V}from"./App-CkXPZUpS.js";import{t as v,u as Y}from"./index-CIT8ANJK.js";import{I as A}from"./main-DAwgVcRN.js";const Q=[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],U=e=>d(A,k(e,{name:"CheckCircle",iconNode:Q})),J=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M17 12h.01",key:"1m0b6t"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M7 12h.01",key:"eqddd0"}]],K=e=>d(A,k(e,{name:"CircleEllipsis",iconNode:J})),X=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]],Z=e=>d(A,k(e,{name:"MinusCircle",iconNode:X})),tt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],et=e=>d(A,k(e,{name:"PauseCircle",iconNode:tt}));function a(e,t){typeof t=="string"&&t.trim().length>0&&e.push(t)}function h(e,t){const o=V(t);o!=null&&o.text.trim()&&e.push(o.text)}function g(e,t){const{metadata:o}=f(t.toolState);a(e,t.toolName),a(e,o.title),a(e,o.description),a(e,t.toolState&&"title"in t.toolState?t.toolState.title:void 0)}function m(e,t){a(e,t.toolState&&"message"in t.toolState?t.toolState.message:void 0),a(e,t.toolState&&"error"in t.toolState?t.toolState.error:void 0)}function wt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);g(t,e);const l=o&&P(o)?s:o&&(I(o)||D(o))&&r.output?r.output:r.diff??r.preview??n.content;return a(t,typeof n.command=="string"?`$ ${n.command}`:void 0),a(t,n.filePath),a(t,n.path),h(t,l),m(t,e),t}function Nt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);return g(t,e),a(t,typeof n.command=="string"&&n.command.length>0?`$ ${n.command}`:void 0),h(t,o&&P(o)?s:o&&(I(o)||D(o))?r.output:void 0),m(t,e),t}function Pt(e){const t=[],{input:o,metadata:n}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,o.path),a(t,o.name),a(t,n.preview),m(t,e),t}function _t(e){const t=[],{input:o,metadata:n}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,typeof o.content=="string"?o.content:n.content),m(t,e),t}function ot(e){const t=[],{input:o,metadata:n,output:r}=f(e.toolState);return g(t,e),a(t,o.filePath),a(t,o.path),a(t,n.diff),h(t,r),h(t,n.output),m(t,e),t}function Bt(e){const t=ot(e),{metadata:o,output:n}=f(e.toolState),r=Array.isArray(o.files)?o.files:[];for(const s of r)a(t,s==null?void 0:s.filePath),a(t,s==null?void 0:s.relativePath),a(t,s==null?void 0:s.diff),a(t,s==null?void 0:s.patch);return h(t,o.diagnostics),h(t,n),t}function xt(e){const t=[],o=e.toolState,{input:n,metadata:r,output:s}=f(o);return g(t,e),a(t,n.url),h(t,o&&P(o)?s:r.output),m(t,e),t}function Mt(e){const t=[],{input:o,metadata:n,output:r}=f(e.toolState);return g(t,e),a(t,o.prompt),a(t,o.subagent_type),a(t,o.agent),h(t,r),h(t,n.summary),m(t,e),t}function nt(e){const t=[],{metadata:o}=f(e.toolState),n=Array.isArray(o.todos)?o.todos:[];g(t,e);for(const r of n)a(t,r==null?void 0:r.content),a(t,r==null?void 0:r.status);return m(t,e),t}function Et(e){const t=[],{input:o,metadata:n}=f(e.toolState),r=Array.isArray(o.questions)?o.questions:[],s=Array.isArray(n.answers)?n.answers:[];g(t,e);for(const l of r){a(t,l.header),a(t,l.question);const c=Array.isArray(l.options)?l.options:[];for(const u of c)a(t,u.label),a(t,u.description);h(t,l.answer)}return h(t,s),m(t,e),t}var S=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],$={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",8:"hidden",9:"strikethrough"};function rt(e,t){const o=e.indexOf("\x1B",t);if(o!==-1&&e[o+1]==="["){const n=e.indexOf("m",o);if(n!==-1)return{sequence:e.substring(o+2,n).split(";"),startPosition:o,position:n+1}}return{position:e.length}}function q(e){const t=e.shift();if(t==="2"){const o=e.splice(0,3).map(n=>Number.parseInt(n));return o.length!==3||o.some(n=>Number.isNaN(n))?void 0:{type:"rgb",rgb:o}}else if(t==="5"){const o=e.shift();if(o)return{type:"table",index:Number(o)}}}function st(e){const t=[];for(;e.length>0;){const o=e.shift();if(!o)continue;const n=Number.parseInt(o);if(!Number.isNaN(n))if(n===0)t.push({type:"resetAll"});else if(n<=9)$[n]&&t.push({type:"setDecoration",value:$[n]});else if(n<=29){const r=$[n-20];r&&(t.push({type:"resetDecoration",value:r}),r==="dim"&&t.push({type:"resetDecoration",value:"bold"}))}else if(n<=37)t.push({type:"setForegroundColor",value:{type:"named",name:S[n-30]}});else if(n===38){const r=q(e);r&&t.push({type:"setForegroundColor",value:r})}else if(n===39)t.push({type:"resetForegroundColor"});else if(n<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:S[n-40]}});else if(n===48){const r=q(e);r&&t.push({type:"setBackgroundColor",value:r})}else n===49?t.push({type:"resetBackgroundColor"}):n===53?t.push({type:"setDecoration",value:"overline"}):n===55?t.push({type:"resetDecoration",value:"overline"}):n>=90&&n<=97?t.push({type:"setForegroundColor",value:{type:"named",name:S[n-90+8]}}):n>=100&&n<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:S[n-100+8]}})}return t}function N(){let e=null,t=null,o=new Set;return{parse(n){const r=[];let s=0;do{const l=rt(n,s),c=l.sequence?n.substring(s,l.startPosition):n.substring(s);if(c.length>0&&r.push({value:c,foreground:e,background:t,decorations:new Set(o)}),l.sequence){const u=st(l.sequence);for(const i of u)i.type==="resetAll"?(e=null,t=null,o.clear()):i.type==="resetForegroundColor"?e=null:i.type==="resetBackgroundColor"?t=null:i.type==="resetDecoration"&&o.delete(i.value);for(const i of u)i.type==="setForegroundColor"?e=i.value:i.type==="setBackgroundColor"?t=i.value:i.type==="setDecoration"&&o.add(i.value)}s=l.position}while(s<n.length);return r}}}var at={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function lt(e=at){function t(c){return e[c]}function o(c){return`#${c.map(u=>Math.max(0,Math.min(u,255)).toString(16).padStart(2,"0")).join("")}`}let n;function r(){if(n)return n;n=[];for(let i=0;i<S.length;i++)n.push(t(S[i]));let c=[0,95,135,175,215,255];for(let i=0;i<6;i++)for(let T=0;T<6;T++)for(let y=0;y<6;y++)n.push(o([c[i],c[T],c[y]]));let u=8;for(let i=0;i<24;i++,u+=10)n.push(o([u,u,u]));return n}function s(c){return r()[c]}function l(c){switch(c.type){case"named":return t(c.name);case"rgb":return o(c.rgb);case"table":return s(c.index)}}return{value:l}}const w="\x1B",it=/\\u001b|\\x1b|\\033/,ct=/\u001b/,F=lt();function Rt(e){const t=_(e);return ct.test(t)}function qt(e){const t=_(e),n=N().parse(t);return L(n)}function Ft(){let e=N();return{reset(){e=N()},render(t){const o=_(t),n=e.parse(o);return L(n)}}}function _(e){return it.test(e)?e.replace(/\\u001b/gi,w).replace(/\\x1b/gi,w).replace(/\\033/g,w):e}function L(e){let t="";for(const o of e){if(!o.value)continue;const n=ut(o),r=dt(o.value);if(!n){t+=r;continue}t+=`<span style="${n}">${r}</span>`}return t}function ut(e){const t=e.decorations;let o=e.foreground?F.value(e.foreground):null,n=e.background?F.value(e.background):null;if(t.has("reverse")){const l=o;o=n,n=l}const r=[];o&&r.push(`color: ${o}`),n&&r.push(`background-color: ${n}`),t.has("bold")&&r.push("font-weight: 600"),t.has("dim")&&r.push("opacity: 0.7"),t.has("italic")&&r.push("font-style: italic");const s=[];return t.has("underline")&&s.push("underline"),t.has("strikethrough")&&s.push("line-through"),t.has("overline")&&s.push("overline"),s.length>0&&r.push(`text-decoration-line: ${s.join(" ")}`),t.has("hidden")&&(r.push("color: transparent"),r.push("background-color: transparent")),r.length>0?r.join("; "):null}function dt(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;").replace(/'/g,"&#39;")}var ft=C("<div class=tool-call-todo-empty>"),pt=C("<div class=tool-call-todo-region><div class=tool-call-todos role=list>"),ht=C("<span>"),gt=C("<div class=tool-call-todo-item role=listitem><span class=tool-call-todo-checkbox></span><div class=tool-call-todo-body><div class=tool-call-todo-heading><span class=tool-call-todo-text>");function mt(e){return e==="completed"||e==="in_progress"||e==="cancelled"?e:"pending"}function z(e){if(!e)return[];const{metadata:t}=f(e),o=Array.isArray(t.todos)?t.todos:[],n=[];for(let r=0;r<o.length;r++){const s=o[r],l=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!l)continue;const c=mt(s.status),u=typeof(s==null?void 0:s.id)=="string"&&s.id.length>0?s.id:`${r}-${l}`;n.push({id:u,content:l,status:c})}return n}function j(e){return e.reduce((t,o)=>(t.total+=1,t[o.status]=(t[o.status]||0)+1,t),{total:0,pending:0,in_progress:0,completed:0,cancelled:0})}function yt(e,t){switch(t){case"completed":return e("toolCall.renderer.todo.status.completed");case"in_progress":return e("toolCall.renderer.todo.status.inProgress");case"cancelled":return e("toolCall.renderer.todo.status.cancelled");default:return e("toolCall.renderer.todo.status.pending")}}function bt(e){switch(e.status){case"completed":return d(U,{class:"tool-call-todo-icon","aria-hidden":"true"});case"in_progress":return d(K,{class:"tool-call-todo-icon","aria-hidden":"true"});case"cancelled":return d(Z,{class:"tool-call-todo-icon","aria-hidden":"true"});default:return d(et,{class:"tool-call-todo-icon","aria-hidden":"true"})}}function vt(e){const{t}=Y(),o=z(e.state);return j(o).total===0?(()=>{var r=ft();return b(r,()=>e.emptyLabel??t("toolCall.renderer.todo.empty")),r})():(()=>{var r=pt(),s=r.firstChild;return b(s,d(O,{each:o,children:l=>{const c=yt(t,l.status);return(()=>{var u=gt(),i=u.firstChild,T=i.nextSibling,y=T.firstChild,H=y.firstChild;return E(i,"aria-label",c),b(i,d(bt,{get status(){return l.status}})),b(H,()=>l.content),b(y,d(G,{get when(){return e.showStatusLabel!==!1},get children(){var p=ht();return b(p,c),R(()=>W(p,`tool-call-todo-status tool-call-todo-status-${l.status}`)),p}}),null),R(p=>{var B=l.status==="completed",x=l.status==="cancelled",M=l.status;return B!==p.e&&u.classList.toggle("tool-call-todo-item-completed",p.e=B),x!==p.t&&u.classList.toggle("tool-call-todo-item-cancelled",p.t=x),M!==p.a&&E(i,"data-status",p.a=M),p},{e:void 0,t:void 0,a:void 0}),u})()}})),r})()}function St(e){if(!e)return v("toolCall.renderer.todo.title.plan");const t=z(e);if(e.status!=="completed"||t.length===0)return v("toolCall.renderer.todo.title.plan");const o=j(t);return o.pending===o.total?v("toolCall.renderer.todo.title.creating"):o.completed===o.total?v("toolCall.renderer.todo.title.completing"):v("toolCall.renderer.todo.title.updating")}const It={tools:["todowrite"],getSearchText:nt,getAction:()=>v("toolCall.renderer.action.planning"),getTitle({toolState:e}){return St(e())},renderBody({toolState:e}){const t=e();return t?d(vt,{state:t}):null}};export{vt as T,qt as a,Nt as b,Ft as c,wt as d,ot as e,Et as f,Bt as g,Rt as h,Pt as i,Mt as j,xt as k,_t as l,It as t};
2
+ //# sourceMappingURL=todo-Cgy3-kyM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"todo-DXJ5kP_Z.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/check-circle.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/circle-ellipsis.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/minus-circle.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/pause-circle.jsx","../../../components/tool-call/search-text.ts","../../../../../../node_modules/ansi-sequence-parser/dist/index.js","../../../lib/ansi.ts","../../../components/tool-call/renderers/todo.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'M22 11.08V12a10 10 0 1 1-5.93-9.14', key: 'g774vq' }],\n ['path', { d: 'm9 11 3 3L22 4', key: '1pflzl' }],\n];\nconst CheckCircle = (props) => (<Icon {...props} name=\"CheckCircle\" iconNode={iconNode}/>);\nexport default CheckCircle;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M17 12h.01', key: '1m0b6t' }],\n ['path', { d: 'M12 12h.01', key: '1mp3jc' }],\n ['path', { d: 'M7 12h.01', key: 'eqddd0' }],\n];\nconst CircleEllipsis = (props) => (<Icon {...props} name=\"CircleEllipsis\" iconNode={iconNode}/>);\nexport default CircleEllipsis;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n];\nconst MinusCircle = (props) => (<Icon {...props} name=\"MinusCircle\" iconNode={iconNode}/>);\nexport default MinusCircle;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9', key: 'c1nkhi' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9', key: 'h65svq' }],\n];\nconst PauseCircle = (props) => (<Icon {...props} name=\"PauseCircle\" iconNode={iconNode}/>);\nexport default PauseCircle;\n","import type { ToolSearchTextContext } from \"./types\"\nimport {\n formatUnknown,\n isToolStateCompleted,\n isToolStateError,\n isToolStateRunning,\n readToolStatePayload,\n} from \"./utils\"\n\ntype QuestionOption = { label?: unknown; description?: unknown }\ntype QuestionPrompt = { header?: unknown; question?: unknown; options?: unknown; multiple?: unknown; answer?: unknown }\n\nfunction appendString(values: string[], value: unknown) {\n if (typeof value === \"string\" && value.trim().length > 0) values.push(value)\n}\n\nfunction appendFormatted(values: string[], value: unknown) {\n const result = formatUnknown(value)\n if (result?.text.trim()) values.push(result.text)\n}\n\nfunction appendBaseToolText(values: string[], context: ToolSearchTextContext) {\n const { metadata } = readToolStatePayload(context.toolState)\n appendString(values, context.toolName)\n appendString(values, metadata.title)\n appendString(values, metadata.description)\n appendString(values, context.toolState && \"title\" in context.toolState ? (context.toolState as any).title : undefined)\n}\n\nfunction appendToolErrorText(values: string[], context: ToolSearchTextContext) {\n appendString(values, context.toolState && \"message\" in context.toolState ? (context.toolState as any).message : undefined)\n appendString(values, context.toolState && \"error\" in context.toolState ? (context.toolState as any).error : undefined)\n}\n\nexport function getDefaultToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n\n const primaryOutput = state && isToolStateCompleted(state)\n ? output\n : state && (isToolStateRunning(state) || isToolStateError(state)) && metadata.output\n ? metadata.output\n : metadata.diff ?? metadata.preview ?? input.content\n\n appendString(values, typeof input.command === \"string\" ? `$ ${input.command}` : undefined)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendFormatted(values, primaryOutput)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getBashToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n appendString(values, typeof input.command === \"string\" && input.command.length > 0 ? `$ ${input.command}` : undefined)\n appendFormatted(\n values,\n state && isToolStateCompleted(state)\n ? output\n : state && (isToolStateRunning(state) || isToolStateError(state))\n ? metadata.output\n : undefined,\n )\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getReadToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendString(values, input.name)\n appendString(values, metadata.preview)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getWriteToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, typeof input.content === \"string\" ? input.content : metadata.content)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getDiffToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata, output } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendString(values, metadata.diff)\n appendFormatted(values, output)\n appendFormatted(values, metadata.output)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getApplyPatchToolSearchText(context: ToolSearchTextContext): string[] {\n const values = getDiffToolSearchText(context)\n const { metadata, output } = readToolStatePayload(context.toolState)\n const files = Array.isArray((metadata as any).files) ? ((metadata as any).files as any[]) : []\n\n for (const file of files) {\n appendString(values, file?.filePath)\n appendString(values, file?.relativePath)\n appendString(values, file?.diff)\n appendString(values, file?.patch)\n }\n\n appendFormatted(values, (metadata as any).diagnostics)\n appendFormatted(values, output)\n return values\n}\n\nexport function getWebfetchToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n appendString(values, input.url)\n appendFormatted(values, state && isToolStateCompleted(state) ? output : metadata.output)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getTaskToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata, output } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.prompt)\n appendString(values, input.subagent_type)\n appendString(values, input.agent)\n appendFormatted(values, output)\n appendFormatted(values, metadata.summary)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getTodoToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { metadata } = readToolStatePayload(context.toolState)\n const todos = Array.isArray((metadata as any).todos) ? ((metadata as any).todos as any[]) : []\n appendBaseToolText(values, context)\n\n for (const todo of todos) {\n appendString(values, todo?.content)\n appendString(values, todo?.status)\n }\n\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getQuestionToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n const questions = Array.isArray(input.questions) ? (input.questions as QuestionPrompt[]) : []\n const answers = Array.isArray((metadata as any).answers) ? ((metadata as any).answers as unknown[]) : []\n appendBaseToolText(values, context)\n\n for (const question of questions) {\n appendString(values, question.header)\n appendString(values, question.question)\n const options = Array.isArray(question.options) ? (question.options as QuestionOption[]) : []\n for (const option of options) {\n appendString(values, option.label)\n appendString(values, option.description)\n }\n appendFormatted(values, question.answer)\n }\n\n appendFormatted(values, answers)\n appendToolErrorText(values, context)\n return values\n}\n","// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 8: \"hidden\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B\", position);\n if (nextEscape !== -1) {\n if (value[nextEscape + 1] === \"[\") {\n const nextClose = value.indexOf(\"m\", nextEscape);\n if (nextClose !== -1) {\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n }\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence) {\n const colorMode = sequence.shift();\n if (colorMode === \"2\") {\n const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x)))\n return;\n return {\n type: \"rgb\",\n rgb\n };\n } else if (colorMode === \"5\") {\n const index = sequence.shift();\n if (index) {\n return { type: \"table\", index: Number(index) };\n }\n }\n}\nfunction parseSequence(sequence) {\n const commands = [];\n while (sequence.length > 0) {\n const code = sequence.shift();\n if (!code)\n continue;\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n if (decoration === \"dim\") {\n commands.push({\n type: \"resetDecoration\",\n value: \"bold\"\n });\n }\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt === 53) {\n commands.push({\n type: \"setDecoration\",\n value: \"overline\"\n });\n } else if (codeInt === 55) {\n commands.push({\n type: \"resetDecoration\",\n value: \"overline\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\nfunction parseAnsiSequences(value) {\n return createAnsiSequenceParser().parse(value);\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\nexport {\n createAnsiSequenceParser,\n createColorPalette,\n decorations,\n defaultNamedColorsMap,\n namedColors,\n parseAnsiSequences\n};\n","import { createAnsiSequenceParser, createColorPalette } from \"ansi-sequence-parser\"\n\nconst ESC_CHAR = \"\\u001b\"\nconst ANSI_LITERAL_PATTERN = /\\\\u001b|\\\\x1b|\\\\033/\nconst ANSI_ESCAPE_PATTERN = /\\u001b/\n\nconst colorPalette = createColorPalette()\n\nexport function hasAnsi(text: string): boolean {\n const normalized = normalizeAnsiText(text)\n return ANSI_ESCAPE_PATTERN.test(normalized)\n}\n\nexport function ansiToHtml(text: string): string {\n const normalized = normalizeAnsiText(text)\n const parser = createAnsiSequenceParser()\n const tokens = parser.parse(normalized)\n return tokensToHtml(tokens)\n}\n\nexport interface AnsiStreamRenderer {\n reset: () => void\n render: (chunk: string) => string\n}\n\nexport function createAnsiStreamRenderer(): AnsiStreamRenderer {\n let parser = createAnsiSequenceParser()\n\n return {\n reset() {\n parser = createAnsiSequenceParser()\n },\n render(chunk: string) {\n const normalized = normalizeAnsiText(chunk)\n const tokens = parser.parse(normalized)\n return tokensToHtml(tokens)\n },\n }\n}\n\nfunction normalizeAnsiText(text: string): string {\n if (!ANSI_LITERAL_PATTERN.test(text)) {\n return text\n }\n\n return text\n .replace(/\\\\u001b/gi, ESC_CHAR)\n .replace(/\\\\x1b/gi, ESC_CHAR)\n .replace(/\\\\033/g, ESC_CHAR)\n}\n\nfunction tokensToHtml(tokens: { value: string; foreground: unknown; background: unknown; decorations: Set<string> }[]): string {\n let html = \"\"\n\n for (const token of tokens) {\n if (!token.value) {\n continue\n }\n\n const styles = buildTokenStyles(token)\n const escaped = escapeHtml(token.value)\n\n if (!styles) {\n html += escaped\n continue\n }\n\n html += `<span style=\"${styles}\">${escaped}</span>`\n }\n\n return html\n}\n\nfunction buildTokenStyles(token: { foreground: any; background: any; decorations: Set<string> }): string | null {\n const decorations = token.decorations\n let foreground = token.foreground ? colorPalette.value(token.foreground) : null\n let background = token.background ? colorPalette.value(token.background) : null\n\n if (decorations.has(\"reverse\")) {\n const swapped = foreground\n foreground = background\n background = swapped\n }\n\n const styles: string[] = []\n\n if (foreground) {\n styles.push(`color: ${foreground}`)\n }\n\n if (background) {\n styles.push(`background-color: ${background}`)\n }\n\n if (decorations.has(\"bold\")) {\n styles.push(\"font-weight: 600\")\n }\n\n if (decorations.has(\"dim\")) {\n styles.push(\"opacity: 0.7\")\n }\n\n if (decorations.has(\"italic\")) {\n styles.push(\"font-style: italic\")\n }\n\n const lines: string[] = []\n if (decorations.has(\"underline\")) {\n lines.push(\"underline\")\n }\n if (decorations.has(\"strikethrough\")) {\n lines.push(\"line-through\")\n }\n if (decorations.has(\"overline\")) {\n lines.push(\"overline\")\n }\n if (lines.length > 0) {\n styles.push(`text-decoration-line: ${lines.join(\" \")}`)\n }\n\n if (decorations.has(\"hidden\")) {\n styles.push(\"color: transparent\")\n styles.push(\"background-color: transparent\")\n }\n\n return styles.length > 0 ? styles.join(\"; \") : null\n}\n\nfunction escapeHtml(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\\\"/g, \"&quot;\")\n .replace(/'/g, \"&#39;\")\n}\n","import { For, Show } from \"solid-js\"\nimport type { ToolState } from \"../../../types/tool-state\"\nimport { CheckCircle, CircleEllipsis, MinusCircle, PauseCircle } from \"lucide-solid\"\nimport type { ToolRenderer } from \"../types\"\nimport { readToolStatePayload } from \"../utils\"\nimport { useI18n, tGlobal } from \"../../../lib/i18n\"\nimport { getTodoToolSearchText } from \"../search-text\"\n\nexport type TodoViewStatus = \"pending\" | \"in_progress\" | \"completed\" | \"cancelled\"\n\nexport interface TodoViewItem {\n id: string\n content: string\n status: TodoViewStatus\n}\n\nfunction normalizeTodoStatus(rawStatus: unknown): TodoViewStatus {\n if (rawStatus === \"completed\" || rawStatus === \"in_progress\" || rawStatus === \"cancelled\") return rawStatus\n return \"pending\"\n}\n\nfunction extractTodosFromState(state?: ToolState): TodoViewItem[] {\n if (!state) return []\n const { metadata } = readToolStatePayload(state)\n const todos = Array.isArray((metadata as any).todos) ? (metadata as any).todos : []\n const items: TodoViewItem[] = []\n\n for (let index = 0; index < todos.length; index++) {\n const todo = todos[index]\n const content = typeof todo?.content === \"string\" ? todo.content.trim() : \"\"\n if (!content) continue\n const status = normalizeTodoStatus((todo as any).status)\n const id = typeof todo?.id === \"string\" && todo.id.length > 0 ? todo.id : `${index}-${content}`\n items.push({ id, content, status })\n }\n\n return items\n}\n\nfunction summarizeTodos(todos: TodoViewItem[]) {\n return todos.reduce(\n (acc, todo) => {\n acc.total += 1\n acc[todo.status] = (acc[todo.status] || 0) + 1\n return acc\n },\n { total: 0, pending: 0, in_progress: 0, completed: 0, cancelled: 0 } as Record<TodoViewStatus | \"total\", number>,\n )\n}\n\nfunction getTodoStatusLabel(t: (key: string) => string, status: TodoViewStatus): string {\n switch (status) {\n case \"completed\":\n return t(\"toolCall.renderer.todo.status.completed\")\n case \"in_progress\":\n return t(\"toolCall.renderer.todo.status.inProgress\")\n case \"cancelled\":\n return t(\"toolCall.renderer.todo.status.cancelled\")\n default:\n return t(\"toolCall.renderer.todo.status.pending\")\n }\n}\n\nfunction TodoStatusIcon(props: { status: TodoViewStatus }) {\n switch (props.status) {\n case \"completed\":\n return <CheckCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n case \"in_progress\":\n return <CircleEllipsis class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n case \"cancelled\":\n return <MinusCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n default:\n return <PauseCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n }\n}\n\ninterface TodoListViewProps {\n state?: ToolState\n emptyLabel?: string\n showStatusLabel?: boolean\n}\n\nexport function TodoListView(props: TodoListViewProps) {\n const { t } = useI18n()\n const todos = extractTodosFromState(props.state)\n const counts = summarizeTodos(todos)\n\n if (counts.total === 0) {\n return <div class=\"tool-call-todo-empty\">{props.emptyLabel ?? t(\"toolCall.renderer.todo.empty\")}</div>\n }\n\n return (\n <div class=\"tool-call-todo-region\">\n <div class=\"tool-call-todos\" role=\"list\">\n <For each={todos}>\n {(todo) => {\n const label = getTodoStatusLabel(t, todo.status)\n return (\n <div\n class=\"tool-call-todo-item\"\n classList={{\n \"tool-call-todo-item-completed\": todo.status === \"completed\",\n \"tool-call-todo-item-cancelled\": todo.status === \"cancelled\",\n }}\n role=\"listitem\"\n >\n <span class=\"tool-call-todo-checkbox\" data-status={todo.status} aria-label={label}>\n <TodoStatusIcon status={todo.status} />\n </span>\n <div class=\"tool-call-todo-body\">\n <div class=\"tool-call-todo-heading\">\n <span class=\"tool-call-todo-text\">{todo.content}</span>\n <Show when={props.showStatusLabel !== false}>\n <span class={`tool-call-todo-status tool-call-todo-status-${todo.status}`}>{label}</span>\n </Show>\n </div>\n </div>\n </div>\n )\n }}\n </For>\n </div>\n </div>\n )\n}\n\nexport function getTodoTitle(state?: ToolState): string {\n if (!state) return tGlobal(\"toolCall.renderer.todo.title.plan\")\n\n const todos = extractTodosFromState(state)\n if (state.status !== \"completed\" || todos.length === 0) return tGlobal(\"toolCall.renderer.todo.title.plan\")\n\n const counts = summarizeTodos(todos)\n if (counts.pending === counts.total) return tGlobal(\"toolCall.renderer.todo.title.creating\")\n if (counts.completed === counts.total) return tGlobal(\"toolCall.renderer.todo.title.completing\")\n return tGlobal(\"toolCall.renderer.todo.title.updating\")\n}\n\nexport const todoRenderer: ToolRenderer = {\n tools: [\"todowrite\"],\n getSearchText: getTodoToolSearchText,\n getAction: () => tGlobal(\"toolCall.renderer.action.planning\"),\n getTitle({ toolState }) {\n return getTodoTitle(toolState())\n },\n renderBody({ toolState }) {\n const state = toolState()\n if (!state) return null\n\n return <TodoListView state={state} />\n },\n}\n"],"names":["iconNode","d","key","CheckCircle","props","_$createComponent","Icon","_$mergeProps","name","cx","cy","r","CircleEllipsis","MinusCircle","x1","x2","y1","y2","PauseCircle","appendString","values","value","appendFormatted","result","formatUnknown","appendBaseToolText","context","metadata","readToolStatePayload","appendToolErrorText","getDefaultToolSearchText","state","input","output","primaryOutput","isToolStateCompleted","isToolStateRunning","isToolStateError","getBashToolSearchText","getReadToolSearchText","getWriteToolSearchText","getDiffToolSearchText","getApplyPatchToolSearchText","files","file","getWebfetchToolSearchText","getTaskToolSearchText","getTodoToolSearchText","todos","todo","getQuestionToolSearchText","questions","answers","question","options","option","namedColors","decorations","findSequence","position","nextEscape","nextClose","parseColor","sequence","colorMode","rgb","x","index","parseSequence","commands","code","codeInt","decoration","color","createAnsiSequenceParser","foreground","background","decorations2","tokens","findResult","text","styleToken","defaultNamedColorsMap","createColorPalette","namedColorsMap","namedColor","rgbColor","colorTable","getColorTable","levels","g","b","level","tableColor","ESC_CHAR","ANSI_LITERAL_PATTERN","ANSI_ESCAPE_PATTERN","colorPalette","hasAnsi","normalized","normalizeAnsiText","ansiToHtml","tokensToHtml","createAnsiStreamRenderer","parser","chunk","html","token","styles","buildTokenStyles","escaped","escapeHtml","swapped","lines","normalizeTodoStatus","rawStatus","extractTodosFromState","Array","isArray","items","length","content","trim","status","id","push","summarizeTodos","reduce","acc","total","pending","in_progress","completed","cancelled","getTodoStatusLabel","t","TodoStatusIcon","TodoListView","useI18n","_el$","_tmpl$","_$insert","emptyLabel","_el$2","_tmpl$2","_el$3","firstChild","For","each","children","label","_el$4","_tmpl$4","_el$5","_el$6","nextSibling","_el$7","_el$8","_$setAttribute","Show","when","showStatusLabel","_el$9","_tmpl$3","_$effect","_$className","_p$","_v$","_v$2","_v$3","e","classList","toggle","a","undefined","getTodoTitle","tGlobal","counts","todoRenderer","tools","getSearchText","getAction","getTitle","toolState","renderBody"],"mappings":"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","x_google_ignoreList":[0,1,2,3,5]}
1
+ {"version":3,"file":"todo-Cgy3-kyM.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/check-circle.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/circle-ellipsis.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/minus-circle.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/pause-circle.jsx","../../../components/tool-call/search-text.ts","../../../../../../node_modules/ansi-sequence-parser/dist/index.js","../../../lib/ansi.ts","../../../components/tool-call/renderers/todo.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'M22 11.08V12a10 10 0 1 1-5.93-9.14', key: 'g774vq' }],\n ['path', { d: 'm9 11 3 3L22 4', key: '1pflzl' }],\n];\nconst CheckCircle = (props) => (<Icon {...props} name=\"CheckCircle\" iconNode={iconNode}/>);\nexport default CheckCircle;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M17 12h.01', key: '1m0b6t' }],\n ['path', { d: 'M12 12h.01', key: '1mp3jc' }],\n ['path', { d: 'M7 12h.01', key: 'eqddd0' }],\n];\nconst CircleEllipsis = (props) => (<Icon {...props} name=\"CircleEllipsis\" iconNode={iconNode}/>);\nexport default CircleEllipsis;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n];\nconst MinusCircle = (props) => (<Icon {...props} name=\"MinusCircle\" iconNode={iconNode}/>);\nexport default MinusCircle;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9', key: 'c1nkhi' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9', key: 'h65svq' }],\n];\nconst PauseCircle = (props) => (<Icon {...props} name=\"PauseCircle\" iconNode={iconNode}/>);\nexport default PauseCircle;\n","import type { ToolSearchTextContext } from \"./types\"\nimport {\n formatUnknown,\n isToolStateCompleted,\n isToolStateError,\n isToolStateRunning,\n readToolStatePayload,\n} from \"./utils\"\n\ntype QuestionOption = { label?: unknown; description?: unknown }\ntype QuestionPrompt = { header?: unknown; question?: unknown; options?: unknown; multiple?: unknown; answer?: unknown }\n\nfunction appendString(values: string[], value: unknown) {\n if (typeof value === \"string\" && value.trim().length > 0) values.push(value)\n}\n\nfunction appendFormatted(values: string[], value: unknown) {\n const result = formatUnknown(value)\n if (result?.text.trim()) values.push(result.text)\n}\n\nfunction appendBaseToolText(values: string[], context: ToolSearchTextContext) {\n const { metadata } = readToolStatePayload(context.toolState)\n appendString(values, context.toolName)\n appendString(values, metadata.title)\n appendString(values, metadata.description)\n appendString(values, context.toolState && \"title\" in context.toolState ? (context.toolState as any).title : undefined)\n}\n\nfunction appendToolErrorText(values: string[], context: ToolSearchTextContext) {\n appendString(values, context.toolState && \"message\" in context.toolState ? (context.toolState as any).message : undefined)\n appendString(values, context.toolState && \"error\" in context.toolState ? (context.toolState as any).error : undefined)\n}\n\nexport function getDefaultToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n\n const primaryOutput = state && isToolStateCompleted(state)\n ? output\n : state && (isToolStateRunning(state) || isToolStateError(state)) && metadata.output\n ? metadata.output\n : metadata.diff ?? metadata.preview ?? input.content\n\n appendString(values, typeof input.command === \"string\" ? `$ ${input.command}` : undefined)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendFormatted(values, primaryOutput)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getBashToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n appendString(values, typeof input.command === \"string\" && input.command.length > 0 ? `$ ${input.command}` : undefined)\n appendFormatted(\n values,\n state && isToolStateCompleted(state)\n ? output\n : state && (isToolStateRunning(state) || isToolStateError(state))\n ? metadata.output\n : undefined,\n )\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getReadToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendString(values, input.name)\n appendString(values, metadata.preview)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getWriteToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, typeof input.content === \"string\" ? input.content : metadata.content)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getDiffToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata, output } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.filePath)\n appendString(values, input.path)\n appendString(values, metadata.diff)\n appendFormatted(values, output)\n appendFormatted(values, metadata.output)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getApplyPatchToolSearchText(context: ToolSearchTextContext): string[] {\n const values = getDiffToolSearchText(context)\n const { metadata, output } = readToolStatePayload(context.toolState)\n const files = Array.isArray((metadata as any).files) ? ((metadata as any).files as any[]) : []\n\n for (const file of files) {\n appendString(values, file?.filePath)\n appendString(values, file?.relativePath)\n appendString(values, file?.diff)\n appendString(values, file?.patch)\n }\n\n appendFormatted(values, (metadata as any).diagnostics)\n appendFormatted(values, output)\n return values\n}\n\nexport function getWebfetchToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const state = context.toolState\n const { input, metadata, output } = readToolStatePayload(state)\n appendBaseToolText(values, context)\n appendString(values, input.url)\n appendFormatted(values, state && isToolStateCompleted(state) ? output : metadata.output)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getTaskToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata, output } = readToolStatePayload(context.toolState)\n appendBaseToolText(values, context)\n appendString(values, input.prompt)\n appendString(values, input.subagent_type)\n appendString(values, input.agent)\n appendFormatted(values, output)\n appendFormatted(values, metadata.summary)\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getTodoToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { metadata } = readToolStatePayload(context.toolState)\n const todos = Array.isArray((metadata as any).todos) ? ((metadata as any).todos as any[]) : []\n appendBaseToolText(values, context)\n\n for (const todo of todos) {\n appendString(values, todo?.content)\n appendString(values, todo?.status)\n }\n\n appendToolErrorText(values, context)\n return values\n}\n\nexport function getQuestionToolSearchText(context: ToolSearchTextContext): string[] {\n const values: string[] = []\n const { input, metadata } = readToolStatePayload(context.toolState)\n const questions = Array.isArray(input.questions) ? (input.questions as QuestionPrompt[]) : []\n const answers = Array.isArray((metadata as any).answers) ? ((metadata as any).answers as unknown[]) : []\n appendBaseToolText(values, context)\n\n for (const question of questions) {\n appendString(values, question.header)\n appendString(values, question.question)\n const options = Array.isArray(question.options) ? (question.options as QuestionOption[]) : []\n for (const option of options) {\n appendString(values, option.label)\n appendString(values, option.description)\n }\n appendFormatted(values, question.answer)\n }\n\n appendFormatted(values, answers)\n appendToolErrorText(values, context)\n return values\n}\n","// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 8: \"hidden\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B\", position);\n if (nextEscape !== -1) {\n if (value[nextEscape + 1] === \"[\") {\n const nextClose = value.indexOf(\"m\", nextEscape);\n if (nextClose !== -1) {\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n }\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence) {\n const colorMode = sequence.shift();\n if (colorMode === \"2\") {\n const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x)))\n return;\n return {\n type: \"rgb\",\n rgb\n };\n } else if (colorMode === \"5\") {\n const index = sequence.shift();\n if (index) {\n return { type: \"table\", index: Number(index) };\n }\n }\n}\nfunction parseSequence(sequence) {\n const commands = [];\n while (sequence.length > 0) {\n const code = sequence.shift();\n if (!code)\n continue;\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n if (decoration === \"dim\") {\n commands.push({\n type: \"resetDecoration\",\n value: \"bold\"\n });\n }\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt === 53) {\n commands.push({\n type: \"setDecoration\",\n value: \"overline\"\n });\n } else if (codeInt === 55) {\n commands.push({\n type: \"resetDecoration\",\n value: \"overline\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\nfunction parseAnsiSequences(value) {\n return createAnsiSequenceParser().parse(value);\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\nexport {\n createAnsiSequenceParser,\n createColorPalette,\n decorations,\n defaultNamedColorsMap,\n namedColors,\n parseAnsiSequences\n};\n","import { createAnsiSequenceParser, createColorPalette } from \"ansi-sequence-parser\"\n\nconst ESC_CHAR = \"\\u001b\"\nconst ANSI_LITERAL_PATTERN = /\\\\u001b|\\\\x1b|\\\\033/\nconst ANSI_ESCAPE_PATTERN = /\\u001b/\n\nconst colorPalette = createColorPalette()\n\nexport function hasAnsi(text: string): boolean {\n const normalized = normalizeAnsiText(text)\n return ANSI_ESCAPE_PATTERN.test(normalized)\n}\n\nexport function ansiToHtml(text: string): string {\n const normalized = normalizeAnsiText(text)\n const parser = createAnsiSequenceParser()\n const tokens = parser.parse(normalized)\n return tokensToHtml(tokens)\n}\n\nexport interface AnsiStreamRenderer {\n reset: () => void\n render: (chunk: string) => string\n}\n\nexport function createAnsiStreamRenderer(): AnsiStreamRenderer {\n let parser = createAnsiSequenceParser()\n\n return {\n reset() {\n parser = createAnsiSequenceParser()\n },\n render(chunk: string) {\n const normalized = normalizeAnsiText(chunk)\n const tokens = parser.parse(normalized)\n return tokensToHtml(tokens)\n },\n }\n}\n\nfunction normalizeAnsiText(text: string): string {\n if (!ANSI_LITERAL_PATTERN.test(text)) {\n return text\n }\n\n return text\n .replace(/\\\\u001b/gi, ESC_CHAR)\n .replace(/\\\\x1b/gi, ESC_CHAR)\n .replace(/\\\\033/g, ESC_CHAR)\n}\n\nfunction tokensToHtml(tokens: { value: string; foreground: unknown; background: unknown; decorations: Set<string> }[]): string {\n let html = \"\"\n\n for (const token of tokens) {\n if (!token.value) {\n continue\n }\n\n const styles = buildTokenStyles(token)\n const escaped = escapeHtml(token.value)\n\n if (!styles) {\n html += escaped\n continue\n }\n\n html += `<span style=\"${styles}\">${escaped}</span>`\n }\n\n return html\n}\n\nfunction buildTokenStyles(token: { foreground: any; background: any; decorations: Set<string> }): string | null {\n const decorations = token.decorations\n let foreground = token.foreground ? colorPalette.value(token.foreground) : null\n let background = token.background ? colorPalette.value(token.background) : null\n\n if (decorations.has(\"reverse\")) {\n const swapped = foreground\n foreground = background\n background = swapped\n }\n\n const styles: string[] = []\n\n if (foreground) {\n styles.push(`color: ${foreground}`)\n }\n\n if (background) {\n styles.push(`background-color: ${background}`)\n }\n\n if (decorations.has(\"bold\")) {\n styles.push(\"font-weight: 600\")\n }\n\n if (decorations.has(\"dim\")) {\n styles.push(\"opacity: 0.7\")\n }\n\n if (decorations.has(\"italic\")) {\n styles.push(\"font-style: italic\")\n }\n\n const lines: string[] = []\n if (decorations.has(\"underline\")) {\n lines.push(\"underline\")\n }\n if (decorations.has(\"strikethrough\")) {\n lines.push(\"line-through\")\n }\n if (decorations.has(\"overline\")) {\n lines.push(\"overline\")\n }\n if (lines.length > 0) {\n styles.push(`text-decoration-line: ${lines.join(\" \")}`)\n }\n\n if (decorations.has(\"hidden\")) {\n styles.push(\"color: transparent\")\n styles.push(\"background-color: transparent\")\n }\n\n return styles.length > 0 ? styles.join(\"; \") : null\n}\n\nfunction escapeHtml(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\\\"/g, \"&quot;\")\n .replace(/'/g, \"&#39;\")\n}\n","import { For, Show } from \"solid-js\"\nimport type { ToolState } from \"../../../types/tool-state\"\nimport { CheckCircle, CircleEllipsis, MinusCircle, PauseCircle } from \"lucide-solid\"\nimport type { ToolRenderer } from \"../types\"\nimport { readToolStatePayload } from \"../utils\"\nimport { useI18n, tGlobal } from \"../../../lib/i18n\"\nimport { getTodoToolSearchText } from \"../search-text\"\n\nexport type TodoViewStatus = \"pending\" | \"in_progress\" | \"completed\" | \"cancelled\"\n\nexport interface TodoViewItem {\n id: string\n content: string\n status: TodoViewStatus\n}\n\nfunction normalizeTodoStatus(rawStatus: unknown): TodoViewStatus {\n if (rawStatus === \"completed\" || rawStatus === \"in_progress\" || rawStatus === \"cancelled\") return rawStatus\n return \"pending\"\n}\n\nfunction extractTodosFromState(state?: ToolState): TodoViewItem[] {\n if (!state) return []\n const { metadata } = readToolStatePayload(state)\n const todos = Array.isArray((metadata as any).todos) ? (metadata as any).todos : []\n const items: TodoViewItem[] = []\n\n for (let index = 0; index < todos.length; index++) {\n const todo = todos[index]\n const content = typeof todo?.content === \"string\" ? todo.content.trim() : \"\"\n if (!content) continue\n const status = normalizeTodoStatus((todo as any).status)\n const id = typeof todo?.id === \"string\" && todo.id.length > 0 ? todo.id : `${index}-${content}`\n items.push({ id, content, status })\n }\n\n return items\n}\n\nfunction summarizeTodos(todos: TodoViewItem[]) {\n return todos.reduce(\n (acc, todo) => {\n acc.total += 1\n acc[todo.status] = (acc[todo.status] || 0) + 1\n return acc\n },\n { total: 0, pending: 0, in_progress: 0, completed: 0, cancelled: 0 } as Record<TodoViewStatus | \"total\", number>,\n )\n}\n\nfunction getTodoStatusLabel(t: (key: string) => string, status: TodoViewStatus): string {\n switch (status) {\n case \"completed\":\n return t(\"toolCall.renderer.todo.status.completed\")\n case \"in_progress\":\n return t(\"toolCall.renderer.todo.status.inProgress\")\n case \"cancelled\":\n return t(\"toolCall.renderer.todo.status.cancelled\")\n default:\n return t(\"toolCall.renderer.todo.status.pending\")\n }\n}\n\nfunction TodoStatusIcon(props: { status: TodoViewStatus }) {\n switch (props.status) {\n case \"completed\":\n return <CheckCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n case \"in_progress\":\n return <CircleEllipsis class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n case \"cancelled\":\n return <MinusCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n default:\n return <PauseCircle class=\"tool-call-todo-icon\" aria-hidden=\"true\" />\n }\n}\n\ninterface TodoListViewProps {\n state?: ToolState\n emptyLabel?: string\n showStatusLabel?: boolean\n}\n\nexport function TodoListView(props: TodoListViewProps) {\n const { t } = useI18n()\n const todos = extractTodosFromState(props.state)\n const counts = summarizeTodos(todos)\n\n if (counts.total === 0) {\n return <div class=\"tool-call-todo-empty\">{props.emptyLabel ?? t(\"toolCall.renderer.todo.empty\")}</div>\n }\n\n return (\n <div class=\"tool-call-todo-region\">\n <div class=\"tool-call-todos\" role=\"list\">\n <For each={todos}>\n {(todo) => {\n const label = getTodoStatusLabel(t, todo.status)\n return (\n <div\n class=\"tool-call-todo-item\"\n classList={{\n \"tool-call-todo-item-completed\": todo.status === \"completed\",\n \"tool-call-todo-item-cancelled\": todo.status === \"cancelled\",\n }}\n role=\"listitem\"\n >\n <span class=\"tool-call-todo-checkbox\" data-status={todo.status} aria-label={label}>\n <TodoStatusIcon status={todo.status} />\n </span>\n <div class=\"tool-call-todo-body\">\n <div class=\"tool-call-todo-heading\">\n <span class=\"tool-call-todo-text\">{todo.content}</span>\n <Show when={props.showStatusLabel !== false}>\n <span class={`tool-call-todo-status tool-call-todo-status-${todo.status}`}>{label}</span>\n </Show>\n </div>\n </div>\n </div>\n )\n }}\n </For>\n </div>\n </div>\n )\n}\n\nexport function getTodoTitle(state?: ToolState): string {\n if (!state) return tGlobal(\"toolCall.renderer.todo.title.plan\")\n\n const todos = extractTodosFromState(state)\n if (state.status !== \"completed\" || todos.length === 0) return tGlobal(\"toolCall.renderer.todo.title.plan\")\n\n const counts = summarizeTodos(todos)\n if (counts.pending === counts.total) return tGlobal(\"toolCall.renderer.todo.title.creating\")\n if (counts.completed === counts.total) return tGlobal(\"toolCall.renderer.todo.title.completing\")\n return tGlobal(\"toolCall.renderer.todo.title.updating\")\n}\n\nexport const todoRenderer: ToolRenderer = {\n tools: [\"todowrite\"],\n getSearchText: getTodoToolSearchText,\n getAction: () => tGlobal(\"toolCall.renderer.action.planning\"),\n getTitle({ toolState }) {\n return getTodoTitle(toolState())\n },\n renderBody({ toolState }) {\n const state = toolState()\n if (!state) return null\n\n return <TodoListView state={state} />\n },\n}\n"],"names":["iconNode","d","key","CheckCircle","props","_$createComponent","Icon","_$mergeProps","name","cx","cy","r","CircleEllipsis","MinusCircle","x1","x2","y1","y2","PauseCircle","appendString","values","value","appendFormatted","result","formatUnknown","appendBaseToolText","context","metadata","readToolStatePayload","appendToolErrorText","getDefaultToolSearchText","state","input","output","primaryOutput","isToolStateCompleted","isToolStateRunning","isToolStateError","getBashToolSearchText","getReadToolSearchText","getWriteToolSearchText","getDiffToolSearchText","getApplyPatchToolSearchText","files","file","getWebfetchToolSearchText","getTaskToolSearchText","getTodoToolSearchText","todos","todo","getQuestionToolSearchText","questions","answers","question","options","option","namedColors","decorations","findSequence","position","nextEscape","nextClose","parseColor","sequence","colorMode","rgb","x","index","parseSequence","commands","code","codeInt","decoration","color","createAnsiSequenceParser","foreground","background","decorations2","tokens","findResult","text","styleToken","defaultNamedColorsMap","createColorPalette","namedColorsMap","namedColor","rgbColor","colorTable","getColorTable","levels","g","b","level","tableColor","ESC_CHAR","ANSI_LITERAL_PATTERN","ANSI_ESCAPE_PATTERN","colorPalette","hasAnsi","normalized","normalizeAnsiText","ansiToHtml","tokensToHtml","createAnsiStreamRenderer","parser","chunk","html","token","styles","buildTokenStyles","escaped","escapeHtml","swapped","lines","normalizeTodoStatus","rawStatus","extractTodosFromState","Array","isArray","items","length","content","trim","status","id","push","summarizeTodos","reduce","acc","total","pending","in_progress","completed","cancelled","getTodoStatusLabel","t","TodoStatusIcon","TodoListView","useI18n","_el$","_tmpl$","_$insert","emptyLabel","_el$2","_tmpl$2","_el$3","firstChild","For","each","children","label","_el$4","_tmpl$4","_el$5","_el$6","nextSibling","_el$7","_el$8","_$setAttribute","Show","when","showStatusLabel","_el$9","_tmpl$3","_$effect","_$className","_p$","_v$","_v$2","_v$3","e","classList","toggle","a","undefined","getTodoTitle","tGlobal","counts","todoRenderer","tools","getSearchText","getAction","getTitle","toolState","renderBody"],"mappings":"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","x_google_ignoreList":[0,1,2,3,5]}