@loicngr/kobo 1.5.3 → 1.5.5

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 (81) hide show
  1. package/README.md +1 -1
  2. package/dist/server/db/migrations.js +7 -0
  3. package/dist/server/db/schema.js +1 -0
  4. package/dist/server/index.js +2 -2
  5. package/dist/server/routes/settings.js +11 -0
  6. package/dist/server/routes/workspaces.js +13 -5
  7. package/dist/server/services/agent-manager.js +4 -1
  8. package/dist/server/services/notion-service.js +35 -17
  9. package/dist/server/services/sentry-service.js +8 -3
  10. package/dist/server/services/settings-service.js +40 -4
  11. package/dist/server/services/workspace-service.js +16 -3
  12. package/dist/server/utils/mcp-client.js +33 -13
  13. package/dist/server/utils/paths.js +8 -0
  14. package/package.json +3 -3
  15. package/src/client/dist/spa/assets/ActivityFeed-CAgtfoqj.js +10 -0
  16. package/src/client/dist/spa/assets/{ClosePopup-jSuaV6dg.js → ClosePopup-BfANRQ7n.js} +1 -1
  17. package/src/client/dist/spa/assets/CreatePage-CNnVeRGC.css +1 -0
  18. package/src/client/dist/spa/assets/CreatePage-CnsmjbZl.js +2 -0
  19. package/src/client/dist/spa/assets/DiffViewer-CwAhR0Bt.js +2 -0
  20. package/src/client/dist/spa/assets/MainLayout-1KXWlMYS.css +1 -0
  21. package/src/client/dist/spa/assets/{MainLayout-z-GTmsNk.js → MainLayout-D9UzZ0l0.js} +17 -17
  22. package/src/client/dist/spa/assets/{QBadge-xNMZEqT-.js → QBadge-DENdn6Dv.js} +1 -1
  23. package/src/client/dist/spa/assets/QExpansionItem-ZAI_l6AW.js +1 -0
  24. package/src/client/dist/spa/assets/{QList-C0MyMgKh.js → QList-aKZe9BNZ.js} +1 -1
  25. package/src/client/dist/spa/assets/QMenu-DDXq2SFM.js +1 -0
  26. package/src/client/dist/spa/assets/{QSpinnerDots-FJCnAvfw.js → QSpinnerDots-DytntAbf.js} +1 -1
  27. package/src/client/dist/spa/assets/SettingsPage-DCgRTq-c.js +1 -0
  28. package/src/client/dist/spa/assets/SettingsPage-oWZ8sGFm.css +1 -0
  29. package/src/client/dist/spa/assets/{TouchPan-DuISf80E.js → TouchPan-D_gmnARo.js} +1 -1
  30. package/src/client/dist/spa/assets/WorkspacePage-BSBiQTKy.js +4 -0
  31. package/src/client/dist/spa/assets/{WorkspacePage-BIYgMXby.css → WorkspacePage-DZwv9kFd.css} +1 -1
  32. package/src/client/dist/spa/assets/{_plugin-vue_export-helper-fkfRoKj2.js → _plugin-vue_export-helper-DkL3SKZ8.js} +1 -1
  33. package/src/client/dist/spa/assets/{cssMode-4TH_2zaD.js → cssMode-CzYfUUcg.js} +1 -1
  34. package/src/client/dist/spa/assets/{editor.api-CyJb27tS.js → editor.api-Do3RvGrr.js} +1 -1
  35. package/src/client/dist/spa/assets/{editor.main-oZnnOWQQ.js → editor.main-BXGLrNaH.js} +3 -3
  36. package/src/client/dist/spa/assets/{formatters-B5Igo0Lf.js → formatters-hnFdqDO2.js} +1 -1
  37. package/src/client/dist/spa/assets/{freemarker2-QspagBXp.js → freemarker2-DD7dLGS5.js} +1 -1
  38. package/src/client/dist/spa/assets/{handlebars-DNK4bfk9.js → handlebars-C6fNrY_c.js} +1 -1
  39. package/src/client/dist/spa/assets/{html-DoAFaOJE.js → html-CsN_ZrNj.js} +1 -1
  40. package/src/client/dist/spa/assets/{htmlMode-Dd2XBcML.js → htmlMode-BePbSvxH.js} +1 -1
  41. package/src/client/dist/spa/assets/i18n-C_tQYbyT.js +1 -0
  42. package/src/client/dist/spa/assets/i18n-zwZDkEfm.js +1 -0
  43. package/src/client/dist/spa/assets/index-BJT6ZfVp.js +5 -0
  44. package/src/client/dist/spa/assets/{javascript-C8gxtWJG.js → javascript-CkZZHPRD.js} +1 -1
  45. package/src/client/dist/spa/assets/{jsonMode-BW-w1oEn.js → jsonMode-CsqbZ0c2.js} +1 -1
  46. package/src/client/dist/spa/assets/{liquid-CQDlB55c.js → liquid-CB4bbF-9.js} +1 -1
  47. package/src/client/dist/spa/assets/{marked.esm-CGMwQXW0.js → marked.esm-DIsIySzr.js} +1 -1
  48. package/src/client/dist/spa/assets/{mdx-DUS2o1l2.js → mdx-goM-jFgd.js} +1 -1
  49. package/src/client/dist/spa/assets/models-Dwzf2zDK.js +1 -0
  50. package/src/client/dist/spa/assets/{monaco.contribution-BSsdGujG.js → monaco.contribution-tq8HWx81.js} +2 -2
  51. package/src/client/dist/spa/assets/{private.use-form-1cZLVjGN.js → private.use-form-BWfHn8G9.js} +1 -1
  52. package/src/client/dist/spa/assets/{python-DVWLF-An.js → python-BKb3PkXw.js} +1 -1
  53. package/src/client/dist/spa/assets/{razor-bodgahcD.js → razor-rLKJylZh.js} +1 -1
  54. package/src/client/dist/spa/assets/scroll-CHtHNzvE.js +1 -0
  55. package/src/client/dist/spa/assets/settings-BdrDg_dO.js +1 -0
  56. package/src/client/dist/spa/assets/touch-5Jv2Ep3F.js +1 -0
  57. package/src/client/dist/spa/assets/{tsMode-C7oNyY1g.js → tsMode-CjX_dUdq.js} +1 -1
  58. package/src/client/dist/spa/assets/{typescript-C_X20eQu.js → typescript-Bg5NM6yP.js} +1 -1
  59. package/src/client/dist/spa/assets/{use-checkbox-DwkIkUAc.js → use-checkbox-By4PLtaB.js} +1 -1
  60. package/src/client/dist/spa/assets/vue-i18n-CFW7O-jl.js +3 -0
  61. package/src/client/dist/spa/assets/{xml-BVbLd8T0.js → xml-BMWcIRqp.js} +1 -1
  62. package/src/client/dist/spa/assets/{yaml-D5WOobuH.js → yaml-C2uOvXS0.js} +1 -1
  63. package/src/client/dist/spa/index.html +7 -7
  64. package/src/client/dist/spa/assets/ActivityFeed-C7knqOOL.js +0 -10
  65. package/src/client/dist/spa/assets/CreatePage-Owxm6Tpi.js +0 -2
  66. package/src/client/dist/spa/assets/CreatePage-y7wOGccu.css +0 -1
  67. package/src/client/dist/spa/assets/DiffViewer-mLBk-G-D.js +0 -2
  68. package/src/client/dist/spa/assets/MainLayout-DH5FgF9v.css +0 -1
  69. package/src/client/dist/spa/assets/QExpansionItem-BoxRv2sW.js +0 -1
  70. package/src/client/dist/spa/assets/QMenu-DayfIdY0.js +0 -1
  71. package/src/client/dist/spa/assets/QPage-D7SSe7S1.js +0 -1
  72. package/src/client/dist/spa/assets/SettingsPage-BzJ9LphQ.js +0 -1
  73. package/src/client/dist/spa/assets/SettingsPage-ai7Q_1KB.css +0 -1
  74. package/src/client/dist/spa/assets/WorkspacePage-Dv_vuDsw.js +0 -4
  75. package/src/client/dist/spa/assets/i18n-NIfrKJms.js +0 -1
  76. package/src/client/dist/spa/assets/i18n-ckoKODmn.js +0 -1
  77. package/src/client/dist/spa/assets/index-B4-QwpHI.js +0 -5
  78. package/src/client/dist/spa/assets/scroll-CWjBCoBR.js +0 -1
  79. package/src/client/dist/spa/assets/settings-CuK-S6HH.js +0 -1
  80. package/src/client/dist/spa/assets/touch-Bojc73iM.js +0 -1
  81. package/src/client/dist/spa/assets/vue-i18n-nv59vAyH.js +0 -3
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-BXGLrNaH.js","assets/index-BJT6ZfVp.js","assets/vue-i18n-CFW7O-jl.js","assets/scroll-CHtHNzvE.js","assets/settings-BdrDg_dO.js","assets/use-checkbox-By4PLtaB.js","assets/private.use-form-BWfHn8G9.js","assets/i18n-zwZDkEfm.js","assets/index-eX_lKHSg.css","assets/editor.api-Do3RvGrr.js","assets/editor-COGk2gAX.css","assets/monaco.contribution-tq8HWx81.js","assets/editor-CS3NEPi9.css"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,C as n,G as r,I as i,M as a,N as o,O as s,P as c,R as l,U as u,W as d,_ as f,a as p,b as m,bt as h,d as g,f as _,g as v,m as y,n as b,p as x,u as S,vt as C,xt as w,y as T}from"./vue-i18n-CFW7O-jl.js";import{E,L as D,T as O,V as k,c as A,ct as j,s as M,z as N}from"./scroll-CHtHNzvE.js";import{a as P,i as F,o as I,r as L,s as R,t as z}from"./private.use-form-BWfHn8G9.js";import{S as B}from"./index-BJT6ZfVp.js";import{t as V}from"./QSpinnerDots-DytntAbf.js";import{n as H,p as ee,t as U}from"./_plugin-vue_export-helper-DkL3SKZ8.js";import{t as W}from"./QBadge-DENdn6Dv.js";import{r as G}from"./touch-5Jv2Ep3F.js";import{n as K,t as q}from"./TouchPan-D_gmnARo.js";import{t as J}from"./format-Ex4UmWdz.js";var Y=j({name:`QBtnGroup`,props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){let r=S(()=>{let t=[`unelevated`,`outline`,`flat`,`rounded`,`square`,`push`,`stretch`,`glossy`].filter(t=>e[t]===!0).map(e=>`q-btn-group--${e}`).join(` `);return`q-btn-group row no-wrap${t.length===0?``:` `+t}`+(e.spread===!0?` q-btn-group--spread`:` inline`)});return()=>n(`div`,{class:r.value},k(t.default))}}),te=j({name:`QBtnToggle`,props:{...L,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(e,{slots:t,emit:r}){let i=S(()=>e.options.find(t=>t.value===e.modelValue)!==void 0),a=z(S(()=>({type:`hidden`,name:e.name,value:e.modelValue}))),o=S(()=>E(e)),s=S(()=>({rounded:e.rounded,dense:e.dense,...o.value})),c=S(()=>e.options.map((t,n)=>{let{attrs:r,value:i,slot:a,...o}=t;return{slot:a,props:{key:n,"aria-pressed":i===e.modelValue?`true`:`false`,...r,...o,...s.value,disable:e.disable===!0||o.disable===!0,color:i===e.modelValue?u(o,`toggleColor`):u(o,`color`),textColor:i===e.modelValue?u(o,`toggleTextColor`):u(o,`textColor`),noCaps:u(o,`noCaps`)===!0,noWrap:u(o,`noWrap`)===!0,size:u(o,`size`),padding:u(o,`padding`),ripple:u(o,`ripple`),stack:u(o,`stack`)===!0,stretch:u(o,`stretch`)===!0,onClick(e){l(i,t,e)}}}}));function l(t,n,i){e.readonly!==!0&&(e.modelValue===t?e.clearable===!0&&(r(`update:modelValue`,null,null),r(`clear`)):r(`update:modelValue`,t,n),r(`click`,i))}function u(t,n){return t[n]===void 0?e[n]:t[n]}function d(){let r=c.value.map(e=>n(O,e.props,e.slot===void 0?void 0:t[e.slot]));return e.name!==void 0&&e.disable!==!0&&i.value===!0&&a(r,`push`),N(t.default,r)}return()=>n(Y,{class:`q-btn-toggle`,...o.value,rounded:e.rounded,stretch:e.stretch,glossy:e.glossy,spread:e.spread},d)}}),X=j({props:[`store`,`barStyle`,`verticalBarStyle`,`horizontalBarStyle`],setup(e){return()=>[n(`div`,{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onVerticalMousedown}),n(`div`,{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onHorizontalMousedown}),r(n(`div`,{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":`true`}),e.store.thumbVertDir),r(n(`div`,{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":`true`}),e.store.thumbHorizDir)]}}),Z=[`vertical`,`horizontal`],Q={vertical:{offset:`offsetY`,scroll:`scrollTop`,dir:`down`,dist:`y`},horizontal:{offset:`offsetX`,scroll:`scrollLeft`,dir:`right`,dist:`x`}},$={prevent:!0,mouse:!0,mouseAllDir:!0},ne=e=>e>=250?50:Math.ceil(e/5),re=j({name:`QScrollArea`,props:{...I,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(r,{slots:i,emit:o}){let c=e(!1),l=e(!1),d=e(!1),f={vertical:e(0),horizontal:e(0)},p={vertical:{ref:e(null),position:e(0),size:e(0)},horizontal:{ref:e(null),position:e(0),size:e(0)}},{proxy:h}=m(),g=P(r,h.$q),_=null,v,y=e(null),b=S(()=>`q-scrollarea`+(g.value===!0?` q-scrollarea--dark`:``));Object.assign(f,{verticalInner:S(()=>f.vertical.value-r.verticalOffset[0]-r.verticalOffset[1]),horizontalInner:S(()=>f.horizontal.value-r.horizontalOffset[0]-r.horizontalOffset[1])}),p.vertical.percentage=S(()=>{let e=p.vertical.size.value-f.vertical.value;if(e<=0)return 0;let t=J(p.vertical.position.value/e,0,1);return Math.round(t*1e4)/1e4}),p.vertical.thumbHidden=S(()=>(r.visible===null?d.value:r.visible)!==!0&&c.value===!1&&l.value===!1||p.vertical.size.value<=f.vertical.value+1),p.vertical.thumbStart=S(()=>r.verticalOffset[0]+p.vertical.percentage.value*(f.verticalInner.value-p.vertical.thumbSize.value)),p.vertical.thumbSize=S(()=>Math.round(J(f.verticalInner.value*f.verticalInner.value/p.vertical.size.value,ne(f.verticalInner.value),f.verticalInner.value))),p.vertical.style=S(()=>({...r.thumbStyle,...r.verticalThumbStyle,top:`${p.vertical.thumbStart.value}px`,height:`${p.vertical.thumbSize.value}px`,right:`${r.horizontalOffset[1]}px`})),p.vertical.thumbClass=S(()=>`q-scrollarea__thumb q-scrollarea__thumb--v absolute-right`+(p.vertical.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),p.vertical.barClass=S(()=>`q-scrollarea__bar q-scrollarea__bar--v absolute-right`+(p.vertical.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``)),p.horizontal.percentage=S(()=>{let e=p.horizontal.size.value-f.horizontal.value;if(e<=0)return 0;let t=J(Math.abs(p.horizontal.position.value)/e,0,1);return Math.round(t*1e4)/1e4}),p.horizontal.thumbHidden=S(()=>(r.visible===null?d.value:r.visible)!==!0&&c.value===!1&&l.value===!1||p.horizontal.size.value<=f.horizontal.value+1),p.horizontal.thumbStart=S(()=>r.horizontalOffset[0]+p.horizontal.percentage.value*(f.horizontalInner.value-p.horizontal.thumbSize.value)),p.horizontal.thumbSize=S(()=>Math.round(J(f.horizontalInner.value*f.horizontalInner.value/p.horizontal.size.value,ne(f.horizontalInner.value),f.horizontalInner.value))),p.horizontal.style=S(()=>({...r.thumbStyle,...r.horizontalThumbStyle,[h.$q.lang.rtl===!0?`right`:`left`]:`${p.horizontal.thumbStart.value}px`,width:`${p.horizontal.thumbSize.value}px`,bottom:`${r.verticalOffset[1]}px`})),p.horizontal.thumbClass=S(()=>`q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom`+(p.horizontal.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),p.horizontal.barClass=S(()=>`q-scrollarea__bar q-scrollarea__bar--h absolute-bottom`+(p.horizontal.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``));let x=S(()=>p.vertical.thumbHidden.value===!0&&p.horizontal.thumbHidden.value===!0?r.contentStyle:r.contentActiveStyle);function C(){let e={};return Z.forEach(t=>{let n=p[t];Object.assign(e,{[t+`Position`]:n.position.value,[t+`Percentage`]:n.percentage.value,[t+`Size`]:n.size.value,[t+`ContainerSize`]:f[t].value,[t+`ContainerInnerSize`]:f[t+`Inner`].value})}),e}let w=R(()=>{let e=C();e.ref=h,o(`scroll`,e)},0);function T(e,t,n){if(Z.includes(e)===!1){console.error(`[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)`);return}(e===`vertical`?A:M)(y.value,t,n)}function E({height:e,width:t}){let n=!1;f.vertical.value!==e&&(f.vertical.value=e,n=!0),f.horizontal.value!==t&&(f.horizontal.value=t,n=!0),n===!0&&F()}function D({position:e}){let t=!1;p.vertical.position.value!==e.top&&(p.vertical.position.value=e.top,t=!0),p.horizontal.position.value!==e.left&&(p.horizontal.position.value=e.left,t=!0),t===!0&&F()}function O({height:e,width:t}){p.horizontal.size.value!==t&&(p.horizontal.size.value=t,F()),p.vertical.size.value!==e&&(p.vertical.size.value=e,F())}function k(e,t){let n=p[t];if(e.isFirst===!0){if(n.thumbHidden.value===!0)return;v=n.position.value,l.value=!0}else if(l.value!==!0)return;e.isFinal===!0&&(l.value=!1);let r=Q[t],i=(n.size.value-f[t].value)/(f[t+`Inner`].value-n.thumbSize.value),a=e.distance[r.dist];I(v+(e.direction===r.dir?1:-1)*a*i,t)}function j(e,t){let n=p[t];if(n.thumbHidden.value!==!0){let i=t===`vertical`?r.verticalOffset[0]:r.horizontalOffset[0],a=e[Q[t].offset]-i,o=n.thumbStart.value-i;(a<o||a>o+n.thumbSize.value)&&I(J((a-n.thumbSize.value/2)/(f[t+`Inner`].value-n.thumbSize.value),0,1)*Math.max(0,n.size.value-f[t].value),t),n.ref.value!==null&&n.ref.value.dispatchEvent(new MouseEvent(e.type,e))}}function F(){c.value=!0,_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null,c.value=!1},r.delay),r.onScroll!==void 0&&w()}function I(e,t){y.value[Q[t].scroll]=e}let L=null;function z(){L!==null&&clearTimeout(L),L=setTimeout(()=>{L=null,d.value=!0},h.$q.platform.is.ios?50:0)}function B(){L!==null&&(clearTimeout(L),L=null),d.value=!1}let V=null;u(()=>h.$q.lang.rtl,e=>{y.value!==null&&M(y.value,Math.abs(p.horizontal.position.value)*(e===!0?-1:1))}),a(()=>{V={top:p.vertical.position.value,left:p.horizontal.position.value}}),s(()=>{if(V===null)return;let e=y.value;e!==null&&(M(e,V.left),A(e,V.top))}),t(w.cancel),Object.assign(h,{getScrollTarget:()=>y.value,getScroll:C,getScrollPosition:()=>({top:p.vertical.position.value,left:p.horizontal.position.value}),getScrollPercentage:()=>({top:p.vertical.percentage.value,left:p.horizontal.percentage.value}),setScrollPosition:T,setScrollPercentage(e,t,n){T(e,t*(p[e].size.value-f[e].value)*(e===`horizontal`&&h.$q.lang.rtl===!0?-1:1),n)}});let H={scroll:p,thumbVertDir:[[q,e=>{k(e,`vertical`)},void 0,{vertical:!0,...$}]],thumbHorizDir:[[q,e=>{k(e,`horizontal`)},void 0,{horizontal:!0,...$}]],onVerticalMousedown(e){j(e,`vertical`)},onHorizontalMousedown(e){j(e,`horizontal`)}};return()=>n(`div`,{class:b.value,onMouseenter:z,onMouseleave:B},[n(`div`,{ref:y,class:`q-scrollarea__container scroll relative-position fit hide-scrollbar`,tabindex:r.tabindex===void 0?void 0:r.tabindex},[n(`div`,{class:`q-scrollarea__content absolute`,style:x.value},N(i.default,[n(G,{debounce:0,onResize:O})])),n(K,{axis:`both`,onScroll:D})]),n(G,{debounce:0,onResize:E}),n(X,{store:H,barStyle:r.barStyle,verticalBarStyle:r.verticalBarStyle,horizontalBarStyle:r.horizontalBarStyle})])}}),ie={class:`diff-viewer column full-height`},ae={class:`diff-header row items-center q-px-md q-py-sm no-wrap`},oe={class:`text-body1 text-weight-medium text-grey-3`},se={key:0,class:`text-caption text-grey-6 q-ml-md`,style:{"font-size":`11px`}},ce={class:`text-grey-7`},le={class:`text-green-4`},ue={key:1,class:`text-caption text-grey-5 q-ml-md ellipsis`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,"max-width":`400px`}},de={class:`row col no-wrap`,style:{"min-height":`0`}},fe={key:1,class:`text-caption text-grey-8 q-pa-sm`},pe=[`onClick`],me={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},he=[`onClick`],ge={class:`text-caption text-grey-3 ellipsis`,style:{"font-size":`11px`}},_e={class:`col column`,style:{"min-width":`0`,position:`relative`}},ve={key:0,class:`col column items-center justify-center`},ye={key:1,class:`col column items-center justify-center text-grey-8 text-caption`},be=U(T({__name:`DiffViewer`,props:{workspaceId:{}},emits:[`close`,`sendToChat`],setup(t,{emit:n}){let r=t,a=n,{t:s}=b(),m=e([]),T=e(``),E=e(``),k=e(null),A=e(!1),j=e(!1),M=e(null),N=e(`side`),P=e(new Set),I=null,L=null,R=[];function z(e){let t=0;for(let n of e)n.isDir?t+=z(n.children):t++;return t}let U=S(()=>{let e=[];for(let t of m.value){let n=t.path.split(`/`),r=e;for(let e=0;e<n.length;e++){let i=n[e],a=e===n.length-1,o=n.slice(0,e+1).join(`/`),s=r.find(e=>e.name===i&&e.isDir===!a);s||(s={name:i,path:a?t.path:o,isDir:!a,status:a?t.status:void 0,children:[]},r.push(s)),r=s.children}}function t(e){e.sort((e,t)=>e.isDir===t.isDir?e.name.localeCompare(t.name):e.isDir?-1:1);for(let n of e)n.children.length>0&&t(n.children)}return t(e),e}),G=S(()=>{let e=[];function t(n,r){for(let i of n)i.isDir?(e.push({name:i.name,path:i.path,isDir:!0,depth:r,fileCount:z(i.children)}),P.value.has(i.path)||t(i.children,r+1)):e.push({name:i.name,path:i.path,isDir:!1,depth:r,status:i.status})}return t(U.value,0),e});function K(e){P.value.has(e)?P.value.delete(e):P.value.add(e)}async function q(){A.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspaceId}/diff`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();m.value=t.files,T.value=t.sourceBranch??``,E.value=t.workingBranch??``}catch(e){console.error(`Failed to load diff files:`,e)}finally{A.value=!1}}async function J(e){if(M.value){j.value=!0;try{I||(self.MonacoEnvironment={getWorker(e,t){return t===`json`?new Worker(new URL(`/assets/json.worker-C9p7xCYk.js`,``+import.meta.url),{type:`module`}):t===`css`||t===`scss`||t===`less`?new Worker(new URL(`/assets/css.worker-D1piIYC4.js`,``+import.meta.url),{type:`module`}):t===`html`||t===`handlebars`||t===`razor`?new Worker(new URL(`/assets/html.worker-C4q4XMPn.js`,``+import.meta.url),{type:`module`}):t===`typescript`||t===`javascript`?new Worker(new URL(`/assets/ts.worker-Cj3zTgVE.js`,``+import.meta.url),{type:`module`}):new Worker(new URL(`/assets/editor.worker-CJ9iTmkr.js`,``+import.meta.url),{type:`module`})}},I=await B(()=>import(`./editor.main-BXGLrNaH.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),I.editor.defineTheme(`kobo-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"editor.background":`#1a1a2e`,"diffEditor.insertedTextBackground":`#22c55e20`,"diffEditor.removedTextBackground":`#ef444420`}}));let t=await fetch(`/api/workspaces/${r.workspaceId}/diff-file?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json(),i={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,sql:`sql`,py:`python`,rs:`rust`,go:`go`}[e.split(`.`).pop()??``]??`plaintext`;if(L){for(let e of R)e.dispose();R=[];let e=L.getModel();L.dispose(),L=null,e?.original?.dispose(),e?.modified?.dispose()}let a=I.editor.createModel(n.original??``,i),o=I.editor.createModel(n.modified??``,i);L=I.editor.createDiffEditor(M.value,{theme:`kobo-dark`,readOnly:!0,renderSideBySide:N.value===`side`,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineHeight:18}),L.setModel({original:a,modified:o}),X()}catch(e){console.error(`Failed to load file diff:`,e)}finally{j.value=!1}}}let Y=e(!1);function X(){if(!L)return;for(let e of R)e.dispose();R=[];let e=L.getModifiedEditor(),t=L.getOriginalEditor();for(let n of[e,t]){let e=n.onDidChangeCursorSelection(()=>{let e=n.getSelection();Y.value=!!(e&&!e.isEmpty())});R.push(e)}}function Z(){if(!(!L||!k.value))for(let e of[L.getModifiedEditor(),L.getOriginalEditor()]){let t=e.getSelection();if(t&&!t.isEmpty()){let n=e.getModel();if(!n)continue;let r=n.getValueInRange(t),i=e===L.getModifiedEditor()?`modified`:`original`;a(`sendToChat`,`\`\`\`\n// ${k.value} (${i}) L${t.startLineNumber}-L${t.endLineNumber}\n${r}\n\`\`\``);return}}}u(k,e=>{e&&J(e)}),u(N,()=>{L&&L.updateOptions({renderSideBySide:N.value===`side`})});function Q(e){switch(e){case`added`:return`add_circle`;case`deleted`:return`remove_circle`;case`renamed`:return`drive_file_rename_outline`;default:return`edit`}}function $(e){switch(e){case`added`:return`#4ade80`;case`deleted`:return`#f87171`;case`renamed`:return`#60a5fa`;default:return`#f59e0b`}}return o(q),c(()=>{for(let e of R)e.dispose();if(R=[],L){let e=L.getModel();L.dispose(),L=null,e?.original?.dispose(),e?.modified?.dispose()}}),(e,t)=>(i(),y(`div`,ie,[g(`div`,ae,[f(D,{name:`difference`,size:`18px`,color:`indigo-4`,class:`q-mr-xs`}),g(`span`,oe,w(e.$t(`diff.title`)),1),f(W,{label:`${m.value.length}`,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`]),T.value?(i(),y(`span`,se,[g(`span`,ce,w(T.value),1),f(D,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),g(`span`,le,w(E.value),1)])):x(``,!0),k.value?(i(),y(`span`,ue,w(k.value),1)):x(``,!0),f(ee),f(te,{modelValue:N.value,"onUpdate:modelValue":t[0]||=e=>N.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.side`),value:`side`},{label:e.$t(`diff.inline`),value:`inline`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),f(O,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,size:`sm`,onClick:t[1]||=e=>a(`close`)},{default:d(()=>[f(H,null,{default:d(()=>[v(w(e.$t(`tooltip.closeDiffViewer`)),1)]),_:1})]),_:1})]),f(F,{dark:``}),g(`div`,de,[f(re,{class:`diff-file-list q-pa-xs`,style:{width:`280px`,"min-width":`200px`,height:`100%`,"border-right":`1px solid #2a2a4a`}},{default:d(()=>[A.value?(i(),_(V,{key:0,size:`24px`,color:`grey-6`,class:`q-ma-md`})):m.value.length===0?(i(),y(`div`,fe,w(e.$t(`diff.noChanges`)),1)):(i(!0),y(p,{key:2},l(G.value,e=>(i(),y(p,{key:e.path},[e.isDir?(i(),y(`div`,{key:0,class:`diff-dir-item cursor-pointer`,style:h({paddingLeft:`${e.depth*12+4}px`}),onClick:t=>K(e.path)},[f(D,{name:P.value.has(e.path)?`chevron_right`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),f(D,{name:`folder`,size:`13px`,color:`amber-7`,class:`q-mx-xs`}),g(`span`,me,w(e.name),1),f(W,{label:e.fileCount,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])],12,pe)):(i(),y(`div`,{key:1,class:C([`diff-file-item cursor-pointer`,{"diff-file-item--active":k.value===e.path}]),style:h({paddingLeft:`${e.depth*12+20}px`}),onClick:t=>k.value=e.path},[f(D,{name:Q(e.status),size:`11px`,style:h({color:$(e.status)}),class:`q-mr-xs`},null,8,[`name`,`style`]),g(`span`,ge,w(e.name),1)],14,he))],64))),128))]),_:1}),g(`div`,_e,[j.value?(i(),y(`div`,ve,[f(V,{size:`32px`,color:`indigo-4`})])):k.value?x(``,!0):(i(),y(`div`,ye,w(e.$t(`diff.selectFile`)),1)),g(`div`,{ref_key:`editorContainer`,ref:M,class:`col`,style:{"min-height":`0`}},null,512),Y.value?(i(),_(O,{key:2,"no-caps":``,dense:``,size:`sm`,color:`primary`,icon:`chat`,label:e.$t(`diff.addToChat`),class:`send-to-chat-btn`,onClick:Z},null,8,[`label`])):x(``,!0)])])]))}}),[[`__scopeId`,`data-v-4ed3860e`]]);export{be as default};
@@ -0,0 +1 @@
1
+ .acceptance-item[data-v-63b144ad]{padding:2px 0}.acceptance-item[data-v-63b144ad]:hover{background-color:#ffffff08}.acceptance-item:hover .criterion-delete-btn[data-v-63b144ad]{opacity:1}.criterion-delete-btn[data-v-63b144ad]{opacity:0;transition:opacity .15s}.acceptance-title[data-v-63b144ad]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-63b144ad]{opacity:.7;text-decoration:line-through}.criterion-input[data-v-63b144ad] .q-field__control{height:22px;min-height:22px;padding:0}.criterion-input[data-v-63b144ad] input{color:#e0e0e0;font-size:12px}.criterion-input[data-v-63b144ad] input::placeholder{color:#555}.criterion-add-row[data-v-63b144ad],.todo-item[data-v-4eddf754]{padding:2px 0}.todo-title[data-v-4eddf754]{word-break:break-word;line-height:1.4}.text-strike[data-v-4eddf754]{opacity:.7;text-decoration:line-through}.log-content[data-v-9e03d2b2]{max-height:60vh;overflow-y:auto}.log-text[data-v-9e03d2b2]{color:#ccc;white-space:pre-wrap;word-break:break-all;background:#0d0d1a;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.dd-panel[data-v-20c5f4bd]{min-height:48px}.git-btn[data-v-54c55a94]{padding:2px 10px;font-size:11px}.notion-link[data-v-99e38dbd]{text-decoration:none;display:inline-flex}.notion-link[data-v-99e38dbd]:hover{text-decoration:underline}.task-item[data-v-99e38dbd]{padding:2px 0}.task-item[data-v-99e38dbd]:hover{background-color:#ffffff08}.task-item:hover .task-delete-btn[data-v-99e38dbd]{opacity:1}.task-delete-btn[data-v-99e38dbd]{opacity:0;transition:opacity .15s}.task-title[data-v-99e38dbd]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-99e38dbd]{opacity:.7;text-decoration:line-through}.task-input[data-v-99e38dbd] .q-field__control{height:22px;min-height:22px;padding:0}.task-input[data-v-99e38dbd] input{color:#e0e0e0;font-size:12px}.task-input[data-v-99e38dbd] input::placeholder{color:#555}.task-add-row[data-v-99e38dbd]{padding:2px 0}.plan-content[data-v-442c2eef]{color:#d0d0d0;overflow-wrap:break-word;font-size:12px;line-height:1.6}.plan-content[data-v-442c2eef] h1{color:#e0e0e0;margin:16px 0 8px;font-size:16px}.plan-content[data-v-442c2eef] h2{color:#e0e0e0;margin:14px 0 6px;font-size:14px}.plan-content[data-v-442c2eef] h3{color:#e0e0e0;margin:12px 0 4px;font-size:13px}.plan-content[data-v-442c2eef] code{background:#1a1a2e;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.plan-content[data-v-442c2eef] pre{background:#1a1a2e;border-radius:6px;padding:8px 12px;font-size:11px;overflow-x:auto}.plan-content[data-v-442c2eef] pre code{background:0 0;padding:0}.plan-content[data-v-442c2eef] ul,.plan-content[data-v-442c2eef] ol{padding-left:20px}.plan-content[data-v-442c2eef] li{margin-bottom:2px}.plan-content[data-v-442c2eef] input[type=checkbox]{pointer-events:none;margin-right:6px}.plan-content[data-v-442c2eef] table{border-collapse:collapse;width:100%;margin:8px 0;font-size:11px}.plan-content[data-v-442c2eef] th,.plan-content[data-v-442c2eef] td{text-align:left;border:1px solid #2a2a4a;padding:4px 8px}.plan-content[data-v-442c2eef] th{color:#e0e0e0;background:#1a1a2e}.plan-content[data-v-442c2eef] blockquote{color:#a0a0b0;border-left:3px solid #4a4a6a;margin:8px 0;padding:4px 12px}.plan-content[data-v-442c2eef] a{color:#818cf8}.plan-content[data-v-442c2eef] hr{border:none;border-top:1px solid #2a2a4a;margin:12px 0}.stat-group-label[data-v-b2f461ff]{text-transform:uppercase;letter-spacing:.05em;color:#888;font-size:10px;font-weight:600}.stat-row[data-v-b2f461ff]{justify-content:space-between;align-items:center;padding:2px 0;display:flex}.stat-label[data-v-b2f461ff]{color:#999;font-size:12px}.stat-value[data-v-b2f461ff]{color:#ddd;font-family:Roboto Mono,monospace;font-size:12px;font-weight:500}.stat-value-muted[data-v-b2f461ff]{color:#999;margin-left:4px;font-size:11px}.stat-subtext[data-v-b2f461ff]{color:#8a8aa8;font-size:11px}.usage-breakdown[data-v-b2f461ff]{background:#2a2a4f;border:1px solid #3b3b61;border-radius:999px;width:100%;height:8px;display:flex;overflow:hidden}.usage-breakdown-input[data-v-b2f461ff]{background:linear-gradient(90deg,#6d76ff 0%,#8f96ff 100%);height:100%}.usage-breakdown-output[data-v-b2f461ff]{background:linear-gradient(90deg,#7f6bff 0%,#a598ff 100%);height:100%}.stat-value-ellipsis[data-v-b2f461ff]{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.stat-section[data-v-b2f461ff]{justify-content:space-between;align-items:center;display:flex}.subagents-panel[data-v-81ad2481]{overflow-y:auto}.subagent-item[data-v-81ad2481]{background:#1e1e3a;border:1px solid #2a2a4a}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:-moz-fit-content;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.tools-panel[data-v-b6669c42]{min-height:48px}.workspace-list[data-v-5d93447b]{background-color:#16162a;overflow-x:hidden}.wl-search[data-v-5d93447b]{background-color:#224;padding:0 8px}.wl-search[data-v-5d93447b] .q-field__control{height:32px}.wl-search[data-v-5d93447b] input{color:#ccc;font-size:12px}.wl-group-header[data-v-5d93447b]:hover{background-color:#ffffff08}.wl-project-group+.wl-project-group[data-v-5d93447b]{margin-top:6px}.wl-project-label[data-v-5d93447b]{align-items:center;padding-bottom:2px;font-size:11px;display:flex}.wl-item[data-v-5d93447b]{background-color:#224;margin-bottom:4px;transition:background-color .15s;position:relative}.wl-item[data-v-5d93447b]:last-child{margin-bottom:0}.wl-item[data-v-5d93447b]:hover{background-color:#2a2a4a}.wl-item--selected[data-v-5d93447b]{background-color:#2a2a4a;outline:1px solid #6c63ff66}.wl-item-action[data-v-5d93447b]{position:absolute;top:4px;right:4px}.wl-item--archived .wl-item-action[data-v-5d93447b]{opacity:0;transition:opacity .15s}.wl-item--archived:hover .wl-item-action[data-v-5d93447b]{opacity:1}.wl-item-unarchive[data-v-5d93447b]{right:28px}.wl-item-delete[data-v-5d93447b]{right:4px}.wl-item--archived[data-v-5d93447b]{opacity:.6;background-color:#1a1a30}.wl-item--archived[data-v-5d93447b]:hover{opacity:.85}.wl-item--archived.wl-item--selected[data-v-5d93447b]{opacity:1}.dd-dot[data-v-5d93447b]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dd-dot--running[data-v-5d93447b]{background-color:#22c55e;box-shadow:0 0 4px #22c55e80}.bg-dark[data-v-a47eb368]{background-color:#16162a!important;border-color:#2a2a4a!important}.resize-handle[data-v-a47eb368]{cursor:col-resize;z-index:10;width:4px;height:100%;transition:background-color .15s;position:absolute;top:0;right:-2px}.resize-handle[data-v-a47eb368]:hover,.resize-handle[data-v-a47eb368]:active{background-color:#6c63ff80}.vertical-resize-handle[data-v-a47eb368]{cursor:row-resize;background-color:#2a2a4a;height:4px;transition:background-color .15s}.vertical-resize-handle[data-v-a47eb368]:hover,.vertical-resize-handle[data-v-a47eb368]:active{background-color:#6c63ff80}