@autocode-cli/autocode 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BcawioR3.js → BF1FNKpo.js} +1 -1
  3. package/.output/public/_nuxt/{C4itadaD.js → BKgoaBe9.js} +1 -1
  4. package/.output/public/_nuxt/BOzzMxYL.js +1 -0
  5. package/.output/public/_nuxt/BPYrUKVJ.js +1 -0
  6. package/.output/public/_nuxt/{DuqIS0qR.js → Bl6DKdr9.js} +1 -1
  7. package/.output/public/_nuxt/{DJIybA4c.js → BudTJbMr.js} +1 -1
  8. package/.output/public/_nuxt/{BvE9NWMw.js → BwPqhjQb.js} +1 -1
  9. package/.output/public/_nuxt/C3Jd76kn.js +1 -0
  10. package/.output/public/_nuxt/CT76fD4_.js +1 -0
  11. package/.output/public/_nuxt/CT9ZVcpr.js +1 -0
  12. package/.output/public/_nuxt/CbERujx_.js +1 -0
  13. package/.output/public/_nuxt/Cfu7TUal.js +1 -0
  14. package/.output/public/_nuxt/DBW98U2A.js +1 -0
  15. package/.output/public/_nuxt/{D8M2gN6n.js → DIl-GKGe.js} +1 -1
  16. package/.output/public/_nuxt/{CuwYCM4v.js → DMHPjZJ1.js} +1 -1
  17. package/.output/public/_nuxt/{oH1B3N8m.js → DOIhSWF4.js} +1 -1
  18. package/.output/public/_nuxt/{CYH4f4uY.js → DUsrIVTt.js} +1 -1
  19. package/.output/public/_nuxt/{CvcfIZU-.js → D_sUdDm5.js} +1 -1
  20. package/.output/public/_nuxt/DfDT6tJB.js +1 -0
  21. package/.output/public/_nuxt/DpqBUziq.js +1 -0
  22. package/.output/public/_nuxt/{Btwtsr_u.js → DvCAC3Uz.js} +6 -6
  23. package/.output/public/_nuxt/{CWZ6WSwr.js → Ed7ZeZIY.js} +1 -1
  24. package/.output/public/_nuxt/{DXwIM0gJ.js → SqIe7aZ_.js} +1 -1
  25. package/.output/public/_nuxt/TffA2O8B.js +1 -0
  26. package/.output/public/_nuxt/{BBMcfTGy.js → URcLHuFv.js} +1 -1
  27. package/.output/public/_nuxt/XNHBPZxA.js +2 -0
  28. package/.output/public/_nuxt/{DGmZExaA.js → YduSsW3Y.js} +1 -1
  29. package/.output/public/_nuxt/{DnOmfKyh.js → ZP3TJPNU.js} +1 -1
  30. package/.output/public/_nuxt/_A6JQ1m1.js +1 -0
  31. package/.output/public/_nuxt/builds/latest.json +1 -1
  32. package/.output/public/_nuxt/builds/meta/8b3dd97e-9761-416b-ac6a-ad9520be16c9.json +1 -0
  33. package/.output/public/_nuxt/{B5lFKq3G.js → glG37Iyb.js} +2 -2
  34. package/.output/public/_nuxt/{index.CDND7dpO.css → index.BPtCYaAj.css} +1 -1
  35. package/.output/public/_nuxt/ksOwuH0X.js +1 -0
  36. package/.output/public/_payload.json +1 -1
  37. package/.output/public/index.html +1 -1
  38. package/.output/server/chunks/build/{IssueHeader-BKlqeUoH.mjs → IssueHeader-B7e5iHD2.mjs} +2 -2
  39. package/.output/server/chunks/build/{IssueHeader-BKlqeUoH.mjs.map → IssueHeader-B7e5iHD2.mjs.map} +1 -1
  40. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs +8 -0
  41. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs.map +1 -0
  42. package/.output/server/chunks/build/{_id_-CE9OXhn_.mjs → _id_-BkQdGao9.mjs} +3 -3
  43. package/.output/server/chunks/build/{_id_-CE9OXhn_.mjs.map → _id_-BkQdGao9.mjs.map} +1 -1
  44. package/.output/server/chunks/build/{_name_-UJA12Rs2.mjs → _name_-Bx0tlsuC.mjs} +4 -4
  45. package/.output/server/chunks/build/{_name_-UJA12Rs2.mjs.map → _name_-Bx0tlsuC.mjs.map} +1 -1
  46. package/.output/server/chunks/build/{autocreate-DrAjWR5B.mjs → autocreate-BKmQCL6G.mjs} +2 -2
  47. package/.output/server/chunks/build/{autocreate-DrAjWR5B.mjs.map → autocreate-BKmQCL6G.mjs.map} +1 -1
  48. package/.output/server/chunks/build/{changelog-CVp1u2jo.mjs → changelog-CPAiTbux.mjs} +3 -3
  49. package/.output/server/chunks/build/{changelog-CVp1u2jo.mjs.map → changelog-CPAiTbux.mjs.map} +1 -1
  50. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  51. package/.output/server/chunks/build/{comments-CZn-fPmX.mjs → comments-B6FmsdGj.mjs} +5 -5
  52. package/.output/server/chunks/build/{comments-CZn-fPmX.mjs.map → comments-B6FmsdGj.mjs.map} +1 -1
  53. package/.output/server/chunks/build/{default-BovpaVrS.mjs → default-ClOjNBLU.mjs} +2 -2
  54. package/.output/server/chunks/build/{default-BovpaVrS.mjs.map → default-ClOjNBLU.mjs.map} +1 -1
  55. package/.output/server/chunks/build/{fetch-B5NxMLIO.mjs → fetch-BalOxSm0.mjs} +2 -2
  56. package/.output/server/chunks/build/{fetch-B5NxMLIO.mjs.map → fetch-BalOxSm0.mjs.map} +1 -1
  57. package/.output/server/chunks/build/{graph-C-r91hz6.mjs → graph-or_2DXSN.mjs} +3 -3
  58. package/.output/server/chunks/build/{graph-C-r91hz6.mjs.map → graph-or_2DXSN.mjs.map} +1 -1
  59. package/.output/server/chunks/build/{index-Bm8ROtfk.mjs → index-BWzrulJ1.mjs} +5 -5
  60. package/.output/server/chunks/build/{index-Bm8ROtfk.mjs.map → index-BWzrulJ1.mjs.map} +1 -1
  61. package/.output/server/chunks/build/{index-CqyAV1ko.mjs → index-Bdb9Wjvd.mjs} +11 -9
  62. package/.output/server/chunks/build/index-Bdb9Wjvd.mjs.map +1 -0
  63. package/.output/server/chunks/build/{index-C0DupdV0.mjs → index-C9DhE5Ib.mjs} +4 -4
  64. package/.output/server/chunks/build/{index-C0DupdV0.mjs.map → index-C9DhE5Ib.mjs.map} +1 -1
  65. package/.output/server/chunks/build/{index-D2tcUNO-.mjs → index-CkUY55Rm.mjs} +5 -5
  66. package/.output/server/chunks/build/{index-D2tcUNO-.mjs.map → index-CkUY55Rm.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{kanban-CMVmXpCA.mjs → kanban-BbnnuQoY.mjs} +4 -4
  68. package/.output/server/chunks/build/{kanban-CMVmXpCA.mjs.map → kanban-BbnnuQoY.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{new-DMctSKBX.mjs → new-C25vHdwr.mjs} +4 -4
  70. package/.output/server/chunks/build/{new-DMctSKBX.mjs.map → new-C25vHdwr.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{new-BUvtXOoH.mjs → new-p056r5b8.mjs} +3 -3
  72. package/.output/server/chunks/build/{new-BUvtXOoH.mjs.map → new-p056r5b8.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{nuxt-link-Cq8xZgFP.mjs → nuxt-link-B96tVLOe.mjs} +2 -2
  74. package/.output/server/chunks/build/nuxt-link-B96tVLOe.mjs.map +1 -0
  75. package/.output/server/chunks/build/{prompt-evT7Aaj_.mjs → prompt-C0QRjuRR.mjs} +5 -5
  76. package/.output/server/chunks/build/{prompt-evT7Aaj_.mjs.map → prompt-C0QRjuRR.mjs.map} +1 -1
  77. package/.output/server/chunks/build/{prompt-BzvhmzrW.mjs → prompt-CAxt9gTZ.mjs} +5 -5
  78. package/.output/server/chunks/build/{prompt-BzvhmzrW.mjs.map → prompt-CAxt9gTZ.mjs.map} +1 -1
  79. package/.output/server/chunks/build/{prompt-BD-UncOd.mjs → prompt-DxFODHZ4.mjs} +3 -3
  80. package/.output/server/chunks/build/{prompt-BD-UncOd.mjs.map → prompt-DxFODHZ4.mjs.map} +1 -1
  81. package/.output/server/chunks/build/server.mjs +24 -24
  82. package/.output/server/chunks/build/{stats-Cxo5MAfa.mjs → stats-gAuozd36.mjs} +4 -4
  83. package/.output/server/chunks/build/{stats-Cxo5MAfa.mjs.map → stats-gAuozd36.mjs.map} +1 -1
  84. package/.output/server/chunks/build/styles.mjs +19 -19
  85. package/.output/server/chunks/build/{terminal-B0__67-c.mjs → terminal-C-rvtlKb.mjs} +5 -5
  86. package/.output/server/chunks/build/{terminal-B0__67-c.mjs.map → terminal-C-rvtlKb.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{terminal-D_WbT8Ri.mjs → terminal-CQGWwaEP.mjs} +5 -5
  88. package/.output/server/chunks/build/{terminal-D_WbT8Ri.mjs.map → terminal-CQGWwaEP.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{terminal-BtTmOD6s.mjs → terminal-DvJ3AJCr.mjs} +5 -5
  90. package/.output/server/chunks/build/{terminal-BtTmOD6s.mjs.map → terminal-DvJ3AJCr.mjs.map} +1 -1
  91. package/.output/server/chunks/nitro/nitro.mjs +460 -312
  92. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  93. package/.output/server/package.json +1 -1
  94. package/package.json +1 -1
  95. package/templates/prompts/_synthesis-done.en.md +46 -0
  96. package/templates/prompts/_synthesis-done.fr.md +46 -0
  97. package/.output/public/_nuxt/Br7Y24-t.js +0 -1
  98. package/.output/public/_nuxt/C4ybMJ7Z.js +0 -1
  99. package/.output/public/_nuxt/C7Lp5NPF.js +0 -1
  100. package/.output/public/_nuxt/CMcAFpoK.js +0 -1
  101. package/.output/public/_nuxt/CvmJj3tc.js +0 -1
  102. package/.output/public/_nuxt/D-DgzaOC.js +0 -1
  103. package/.output/public/_nuxt/D2qvqRWP.js +0 -1
  104. package/.output/public/_nuxt/D5ZS_G-Z.js +0 -1
  105. package/.output/public/_nuxt/D90sdSc5.js +0 -1
  106. package/.output/public/_nuxt/DhNKaVRN.js +0 -1
  107. package/.output/public/_nuxt/DkN85EyM.js +0 -2
  108. package/.output/public/_nuxt/DmYbhlFa.js +0 -1
  109. package/.output/public/_nuxt/I-u8LDqX.js +0 -1
  110. package/.output/public/_nuxt/builds/meta/234711bd-452d-42ba-9430-4d79ebc81813.json +0 -1
  111. package/.output/public/_nuxt/nnCcRJrE.js +0 -1
  112. package/.output/server/chunks/build/LandingFooter-styles.CEshuzKW.mjs +0 -8
  113. package/.output/server/chunks/build/LandingFooter-styles.CEshuzKW.mjs.map +0 -1
  114. package/.output/server/chunks/build/index-CqyAV1ko.mjs.map +0 -1
  115. package/.output/server/chunks/build/nuxt-link-Cq8xZgFP.mjs.map +0 -1
  116. /package/.output/public/_i18n/{JmX-ZbAb → dfanCcWv}/en/messages.json +0 -0
  117. /package/.output/public/_i18n/{JmX-ZbAb → dfanCcWv}/fr/messages.json +0 -0
@@ -1 +1 @@
1
- import{l as h,r as o}from"./Btwtsr_u.js";const v={BACKLOG:"backlog",DONE:"done"};function S(u){const t=u.replace(/^\d+_/,"");return t===v.BACKLOG||t===v.DONE}function L(u){return u.replace(/^\d+_/,"")===v.BACKLOG}function $(u){return u.replace(/^\d+_/,"")===v.DONE}const c=o(""),e=o(null),f=o(!1),p=o(!1),d=o(!1),w=()=>{const u=async l=>{if(l){p.value=!0;try{const n=await $fetch(`/api/pipelines/${l}`);e.value=n,f.value=!1}finally{p.value=!1}}},t=async()=>{if(!(!e.value||!c.value)){d.value=!0;try{return await $fetch(`/api/pipelines/${c.value}`,{method:"PUT",body:{version:e.value.version,description:e.value.description,definition:e.value.definition,action:e.value.action,finish:e.value.finish}}),f.value=!1,!0}finally{d.value=!1}}},s=()=>{f.value=!0},g=l=>l.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),m=h(()=>e.value?[...e.value.definition,...e.value.action,...e.value.finish]:[]),y=h(()=>e.value?e.value.definition.length>0&&e.value.action.length>0&&e.value.finish.length>0:!1),P=(l,n)=>{if(!e.value||!n.trim())return!1;const i=g(n);return m.value.map(r=>r.slug.replace(/^\d+_/,"")).includes(i)?!1:(e.value[l].push({name:n,slug:i}),s(),!0)},_=(l,n)=>{if(!e.value||S(n.slug))return!1;const i=e.value[l].findIndex(a=>a.slug===n.slug);return i>-1?(e.value[l].splice(i,1),s(),!0):!1},C=l=>{if(!e.value)return{inPipeline:!1};const n=l.replace(/^\d+_/,"");for(const i of["definition","action","finish"]){const a=e.value[i].find(r=>r.slug.replace(/^\d+_/,"")===n);if(a)return{inPipeline:!0,segment:i,column:a}}return{inPipeline:!1}};return{selectedPipeline:c,pipelineConfig:e,isDirty:f,loading:p,saving:d,loadPipeline:u,savePipeline:t,markDirty:s,generateSlug:g,allColumns:m,isValid:y,addColumn:P,removeColumn:_,isColumnInPipeline:C,addColumnBySlug:(l,n,i)=>{if(!e.value)return!1;const a=l.replace(/^\d+_/,"");return C(a).inPipeline?!1:(e.value[i].push({name:n,slug:a}),s(),!0)},removeColumnBySlug:l=>{if(!e.value)return!1;const n=l.replace(/^\d+_/,"");if(S(n))return!1;for(const i of["definition","action","finish"]){const a=e.value[i].findIndex(r=>r.slug.replace(/^\d+_/,"")===n);if(a>-1)return e.value[i].splice(a,1),s(),!0}return!1},loadActivePipeline:async()=>{if(!e.value)try{const n=(await $fetch("/api/pipelines")).find(i=>i.active);n&&(c.value=n.name,await u(n.name))}catch{}}}};export{L as a,$ as b,S as i,w as u};
1
+ import{m as h,r as o}from"./DvCAC3Uz.js";const v={BACKLOG:"backlog",DONE:"done"};function S(u){const t=u.replace(/^\d+_/,"");return t===v.BACKLOG||t===v.DONE}function L(u){return u.replace(/^\d+_/,"")===v.BACKLOG}function $(u){return u.replace(/^\d+_/,"")===v.DONE}const c=o(""),e=o(null),f=o(!1),p=o(!1),d=o(!1),w=()=>{const u=async l=>{if(l){p.value=!0;try{const n=await $fetch(`/api/pipelines/${l}`);e.value=n,f.value=!1}finally{p.value=!1}}},t=async()=>{if(!(!e.value||!c.value)){d.value=!0;try{return await $fetch(`/api/pipelines/${c.value}`,{method:"PUT",body:{version:e.value.version,description:e.value.description,definition:e.value.definition,action:e.value.action,finish:e.value.finish}}),f.value=!1,!0}finally{d.value=!1}}},s=()=>{f.value=!0},g=l=>l.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),m=h(()=>e.value?[...e.value.definition,...e.value.action,...e.value.finish]:[]),y=h(()=>e.value?e.value.definition.length>0&&e.value.action.length>0&&e.value.finish.length>0:!1),P=(l,n)=>{if(!e.value||!n.trim())return!1;const i=g(n);return m.value.map(r=>r.slug.replace(/^\d+_/,"")).includes(i)?!1:(e.value[l].push({name:n,slug:i}),s(),!0)},_=(l,n)=>{if(!e.value||S(n.slug))return!1;const i=e.value[l].findIndex(a=>a.slug===n.slug);return i>-1?(e.value[l].splice(i,1),s(),!0):!1},C=l=>{if(!e.value)return{inPipeline:!1};const n=l.replace(/^\d+_/,"");for(const i of["definition","action","finish"]){const a=e.value[i].find(r=>r.slug.replace(/^\d+_/,"")===n);if(a)return{inPipeline:!0,segment:i,column:a}}return{inPipeline:!1}};return{selectedPipeline:c,pipelineConfig:e,isDirty:f,loading:p,saving:d,loadPipeline:u,savePipeline:t,markDirty:s,generateSlug:g,allColumns:m,isValid:y,addColumn:P,removeColumn:_,isColumnInPipeline:C,addColumnBySlug:(l,n,i)=>{if(!e.value)return!1;const a=l.replace(/^\d+_/,"");return C(a).inPipeline?!1:(e.value[i].push({name:n,slug:a}),s(),!0)},removeColumnBySlug:l=>{if(!e.value)return!1;const n=l.replace(/^\d+_/,"");if(S(n))return!1;for(const i of["definition","action","finish"]){const a=e.value[i].findIndex(r=>r.slug.replace(/^\d+_/,"")===n);if(a>-1)return e.value[i].splice(a,1),s(),!0}return!1},loadActivePipeline:async()=>{if(!e.value)try{const n=(await $fetch("/api/pipelines")).find(i=>i.active);n&&(c.value=n.name,await u(n.name))}catch{}}}};export{L as a,$ as b,S as i,w as u};
@@ -1 +1 @@
1
- import{_ as T}from"./CuwYCM4v.js";import{u as U}from"./BvE9NWMw.js";import{u as V,s as B}from"./BcawioR3.js";import{d as D,u as K,r as L,v as M,m as E,o as R,a as j,l as b,s as q,c as l,e as s,f as z,w as g,t,j as r,h as o,q as H,F as h,p as I,b as n,g as k,i as W,_ as G}from"./Btwtsr_u.js";const J={class:"stats-page"},P={class:"page-header"},Q={class:"header-badges"},X={key:0,class:"badge badge-profile"},Y={key:1,class:"badge badge-model"},Z={key:0,class:"loading"},x={key:0,class:"processing-alert card"},ss={class:"processing-issues"},ts={class:"stats-grid"},es={class:"stat-card card"},as={class:"stat-value"},os={class:"stat-breakdown"},ns={class:"breakdown-item"},ls={class:"label"},is={class:"value"},ds={class:"breakdown-item"},cs={class:"label"},rs={class:"value"},us={class:"stat-footer"},_s={class:"calls-count"},ps={class:"cost-value"},hs={key:0,class:"started-at"},ks={class:"stat-card card"},vs={class:"stat-value"},fs={class:"stat-breakdown"},ms={class:"breakdown-item"},ys={class:"label"},$s={class:"value"},bs={class:"breakdown-item"},gs={class:"label"},Is={class:"value"},ws={class:"stat-footer"},Cs={class:"calls-count"},As={class:"cost-value"},Fs={class:"stat-card card info-card"},Os={class:"cost-explanation"},Ns={class:"card history-card"},Ss={key:0,class:"empty"},Ts={key:1,class:"table-container"},Us={class:"history-table"},Vs={key:1,class:"text-muted"},Bs={class:"cost-cell"},Ds=D({__name:"stats",async setup(Ks){let c,v;const{locale:w}=K(),u=L(!1),{data:a,status:C,refresh:f}=([c,v]=M(()=>U("/api/stats","$ygpy_aVKAm")),c=await c,v(),c),{lastMessage:A}=V();E(A,e=>{(e?.type==="claude_end"||e?.type==="stats-update"||e?.type==="refresh")&&(u.value=!0,f().finally(()=>{u.value=!1}))});let _;R(()=>{_=B(()=>{f()},5e3)}),j(()=>{_&&clearInterval(_)});const F=b(()=>(a.value?.session?.tokensInput||0)+(a.value?.session?.tokensOutput||0)),O=b(()=>(a.value?.totals?.tokensInput||0)+(a.value?.totals?.tokensOutput||0)),d=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),p=e=>e.toFixed(4),N=e=>e?e<1e3?e+"ms":(e/1e3).toFixed(1)+"s":"-",m=e=>e?new Date(e).toLocaleString(w.value==="fr"?"fr-FR":"en-US"):"-";return q({title:"Statistics - AutoCode"}),(e,y)=>{const $=T;return n(),l("div",J,[s("header",P,[z($,{to:"/kanban",class:"back-link"},{default:g(()=>[k(" ← "+t(e.$t("stats.backToKanban")),1)]),_:1}),s("h1",null,t(e.$t("stats.title")),1),s("div",Q,[o(a)?.profile?(n(),l("span",X,t(o(a).profile),1)):r("",!0),o(a)?.model?(n(),l("span",Y,t(o(a).model),1)):r("",!0),s("span",{class:H(["refresh-indicator",{active:o(u)}])},null,2)])]),o(C)==="pending"?(n(),l("div",Z,t(e.$t("kanban.loading")),1)):(n(),l(h,{key:1},[o(a)?.processingIssues?.length?(n(),l("div",x,[s("h3",null,t(e.$t("stats.processing")),1),s("div",ss,[(n(!0),l(h,null,I(o(a).processingIssues,i=>(n(),l("span",{key:i,class:"processing-badge"},[y[0]||(y[0]=s("span",{class:"dot-pulse"},null,-1)),k(" "+t(i),1)]))),128))])])):r("",!0),s("div",ts,[s("div",es,[s("h2",null,t(e.$t("stats.session")),1),s("div",as,t(d(o(F))),1),s("div",os,[s("div",ns,[s("span",ls,t(e.$t("stats.tokensInput")),1),s("span",is,t(d(o(a)?.session?.tokensInput||0)),1)]),s("div",ds,[s("span",cs,t(e.$t("stats.tokensOutput")),1),s("span",rs,t(d(o(a)?.session?.tokensOutput||0)),1)])]),s("div",us,[s("span",_s,t(o(a)?.session?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",ps,"$"+t(p(o(a)?.session?.costUsd||0)),1)]),o(a)?.session?.startedAt?(n(),l("div",hs,t(e.$t("stats.startedAt"))+": "+t(m(o(a).session.startedAt)),1)):r("",!0)]),s("div",ks,[s("h2",null,t(e.$t("stats.totals")),1),s("div",vs,t(d(o(O))),1),s("div",fs,[s("div",ms,[s("span",ys,t(e.$t("stats.tokensInput")),1),s("span",$s,t(d(o(a)?.totals?.tokensInput||0)),1)]),s("div",bs,[s("span",gs,t(e.$t("stats.tokensOutput")),1),s("span",Is,t(d(o(a)?.totals?.tokensOutput||0)),1)])]),s("div",ws,[s("span",Cs,t(o(a)?.totals?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",As,"$"+t(p(o(a)?.totals?.costUsd||0)),1)])]),s("div",Fs,[s("h2",null,t(e.$t("stats.cost")),1),s("p",Os,t(e.$t("stats.costExplanation")),1)])]),s("div",Ns,[s("h2",null,t(e.$t("stats.recentActivity")),1),o(a)?.history?.length?(n(),l("div",Ts,[s("table",Us,[s("thead",null,[s("tr",null,[s("th",null,t(e.$t("stats.issue")),1),s("th",null,t(e.$t("stats.column")),1),s("th",null,t(e.$t("stats.tokensInput")),1),s("th",null,t(e.$t("stats.tokensOutput")),1),s("th",null,t(e.$t("stats.cost")),1),s("th",null,t(e.$t("stats.duration")),1),s("th",null,t(e.$t("stats.date")),1)])]),s("tbody",null,[(n(!0),l(h,null,I(o(a).history,(i,S)=>(n(),l("tr",{key:S},[s("td",null,[i.issue?(n(),W($,{key:0,to:`/issue/${i.issue}`,class:"issue-link"},{default:g(()=>[k(t(i.issue),1)]),_:2},1032,["to"])):(n(),l("span",Vs,"-"))]),s("td",null,t(i.column||"-"),1),s("td",null,t(d(i.tokensInput)),1),s("td",null,t(d(i.tokensOutput)),1),s("td",Bs,"$"+t(p(i.costUsd||0)),1),s("td",null,t(N(i.duration)),1),s("td",null,t(m(i.timestamp)),1)]))),128))])])])):(n(),l("div",Ss,t(e.$t("stats.noActivity")),1))])],64))])}}}),js=G(Ds,[["__scopeId","data-v-3e093864"]]);export{js as default};
1
+ import{_ as T}from"./DMHPjZJ1.js";import{u as U}from"./BwPqhjQb.js";import{u as V,s as B}from"./BF1FNKpo.js";import{d as D,u as K,r as L,x as M,n as E,o as R,a as j,m as b,v as q,c as l,e as s,f as z,w as g,t,k as r,h as o,s as H,F as h,q as I,b as n,g as k,j as W,_ as G}from"./DvCAC3Uz.js";const J={class:"stats-page"},P={class:"page-header"},Q={class:"header-badges"},X={key:0,class:"badge badge-profile"},Y={key:1,class:"badge badge-model"},Z={key:0,class:"loading"},x={key:0,class:"processing-alert card"},ss={class:"processing-issues"},ts={class:"stats-grid"},es={class:"stat-card card"},as={class:"stat-value"},os={class:"stat-breakdown"},ns={class:"breakdown-item"},ls={class:"label"},is={class:"value"},ds={class:"breakdown-item"},cs={class:"label"},rs={class:"value"},us={class:"stat-footer"},_s={class:"calls-count"},ps={class:"cost-value"},hs={key:0,class:"started-at"},ks={class:"stat-card card"},vs={class:"stat-value"},fs={class:"stat-breakdown"},ms={class:"breakdown-item"},ys={class:"label"},$s={class:"value"},bs={class:"breakdown-item"},gs={class:"label"},Is={class:"value"},ws={class:"stat-footer"},Cs={class:"calls-count"},As={class:"cost-value"},Fs={class:"stat-card card info-card"},Os={class:"cost-explanation"},Ns={class:"card history-card"},Ss={key:0,class:"empty"},Ts={key:1,class:"table-container"},Us={class:"history-table"},Vs={key:1,class:"text-muted"},Bs={class:"cost-cell"},Ds=D({__name:"stats",async setup(Ks){let c,v;const{locale:w}=K(),u=L(!1),{data:a,status:C,refresh:f}=([c,v]=M(()=>U("/api/stats","$ygpy_aVKAm")),c=await c,v(),c),{lastMessage:A}=V();E(A,e=>{(e?.type==="claude_end"||e?.type==="stats-update"||e?.type==="refresh")&&(u.value=!0,f().finally(()=>{u.value=!1}))});let _;R(()=>{_=B(()=>{f()},5e3)}),j(()=>{_&&clearInterval(_)});const F=b(()=>(a.value?.session?.tokensInput||0)+(a.value?.session?.tokensOutput||0)),O=b(()=>(a.value?.totals?.tokensInput||0)+(a.value?.totals?.tokensOutput||0)),d=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),p=e=>e.toFixed(4),N=e=>e?e<1e3?e+"ms":(e/1e3).toFixed(1)+"s":"-",m=e=>e?new Date(e).toLocaleString(w.value==="fr"?"fr-FR":"en-US"):"-";return q({title:"Statistics - AutoCode"}),(e,y)=>{const $=T;return n(),l("div",J,[s("header",P,[z($,{to:"/kanban",class:"back-link"},{default:g(()=>[k(" ← "+t(e.$t("stats.backToKanban")),1)]),_:1}),s("h1",null,t(e.$t("stats.title")),1),s("div",Q,[o(a)?.profile?(n(),l("span",X,t(o(a).profile),1)):r("",!0),o(a)?.model?(n(),l("span",Y,t(o(a).model),1)):r("",!0),s("span",{class:H(["refresh-indicator",{active:o(u)}])},null,2)])]),o(C)==="pending"?(n(),l("div",Z,t(e.$t("kanban.loading")),1)):(n(),l(h,{key:1},[o(a)?.processingIssues?.length?(n(),l("div",x,[s("h3",null,t(e.$t("stats.processing")),1),s("div",ss,[(n(!0),l(h,null,I(o(a).processingIssues,i=>(n(),l("span",{key:i,class:"processing-badge"},[y[0]||(y[0]=s("span",{class:"dot-pulse"},null,-1)),k(" "+t(i),1)]))),128))])])):r("",!0),s("div",ts,[s("div",es,[s("h2",null,t(e.$t("stats.session")),1),s("div",as,t(d(o(F))),1),s("div",os,[s("div",ns,[s("span",ls,t(e.$t("stats.tokensInput")),1),s("span",is,t(d(o(a)?.session?.tokensInput||0)),1)]),s("div",ds,[s("span",cs,t(e.$t("stats.tokensOutput")),1),s("span",rs,t(d(o(a)?.session?.tokensOutput||0)),1)])]),s("div",us,[s("span",_s,t(o(a)?.session?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",ps,"$"+t(p(o(a)?.session?.costUsd||0)),1)]),o(a)?.session?.startedAt?(n(),l("div",hs,t(e.$t("stats.startedAt"))+": "+t(m(o(a).session.startedAt)),1)):r("",!0)]),s("div",ks,[s("h2",null,t(e.$t("stats.totals")),1),s("div",vs,t(d(o(O))),1),s("div",fs,[s("div",ms,[s("span",ys,t(e.$t("stats.tokensInput")),1),s("span",$s,t(d(o(a)?.totals?.tokensInput||0)),1)]),s("div",bs,[s("span",gs,t(e.$t("stats.tokensOutput")),1),s("span",Is,t(d(o(a)?.totals?.tokensOutput||0)),1)])]),s("div",ws,[s("span",Cs,t(o(a)?.totals?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",As,"$"+t(p(o(a)?.totals?.costUsd||0)),1)])]),s("div",Fs,[s("h2",null,t(e.$t("stats.cost")),1),s("p",Os,t(e.$t("stats.costExplanation")),1)])]),s("div",Ns,[s("h2",null,t(e.$t("stats.recentActivity")),1),o(a)?.history?.length?(n(),l("div",Ts,[s("table",Us,[s("thead",null,[s("tr",null,[s("th",null,t(e.$t("stats.issue")),1),s("th",null,t(e.$t("stats.column")),1),s("th",null,t(e.$t("stats.tokensInput")),1),s("th",null,t(e.$t("stats.tokensOutput")),1),s("th",null,t(e.$t("stats.cost")),1),s("th",null,t(e.$t("stats.duration")),1),s("th",null,t(e.$t("stats.date")),1)])]),s("tbody",null,[(n(!0),l(h,null,I(o(a).history,(i,S)=>(n(),l("tr",{key:S},[s("td",null,[i.issue?(n(),W($,{key:0,to:`/issue/${i.issue}`,class:"issue-link"},{default:g(()=>[k(t(i.issue),1)]),_:2},1032,["to"])):(n(),l("span",Vs,"-"))]),s("td",null,t(i.column||"-"),1),s("td",null,t(d(i.tokensInput)),1),s("td",null,t(d(i.tokensOutput)),1),s("td",Bs,"$"+t(p(i.costUsd||0)),1),s("td",null,t(N(i.duration)),1),s("td",null,t(m(i.timestamp)),1)]))),128))])])])):(n(),l("div",Ss,t(e.$t("stats.noActivity")),1))])],64))])}}}),js=G(Ds,[["__scopeId","data-v-3e093864"]]);export{js as default};
@@ -0,0 +1 @@
1
+ import{_ as be}from"./DMHPjZJ1.js";import{d as we,y as xe,u as Ce,r as v,o as K,z as U,a as $e,x as H,n as q,v as Ie,c as a,e as r,k as p,t as u,f as G,w as Y,h as o,p as j,F as Q,q as X,b as l,g as S,A,s as N,_ as De}from"./DvCAC3Uz.js";import{u as Se}from"./Bl6DKdr9.js";import{u as Ee}from"./YduSsW3Y.js";import{u as Z}from"./BwPqhjQb.js";import{u as Me}from"./BF1FNKpo.js";const Le={class:"kanban-page"},Te={class:"page-header"},Re={class:"header-actions"},ze={key:0,class:"loading"},Ae={key:1,class:"error-message"},Ne={key:2,class:"board-wrapper"},Fe=["onDragover","onDrop"],Pe={class:"column-header"},Ve={class:"column-header-top"},Oe={class:"column-title"},We={class:"column-count"},Be={key:0,class:"wip-limit"},Je={class:"column-content"},Ke={key:0,class:"column-empty"},Ue=["onDragstart","onClick"],He={class:"issue-header"},qe={class:"issue-key"},Ge={key:0,class:"processing-indicator",title:"Claude is working..."},Ye=["onClick"],je={class:"issue-title"},Qe={class:"issue-meta"},Xe={key:1,class:"parent-indicator",title:"Has parent"},Ze=["onClick"],ee=5,es=we({__name:"kanban",async setup(ss){let f,x;const se=xe(),{t:C}=Ce(),{success:E,error:M}=Se(),{getErrorMessage:L}=Ee(),b=v(null),h=v(null),F=v(0);let _=!1;const te=()=>{_||!b.value||!h.value||(_=!0,h.value.scrollLeft=b.value.scrollLeft,_=!1)},ne=()=>{_||!b.value||!h.value||(_=!0,b.value.scrollLeft=h.value.scrollLeft,_=!1)},$=()=>{h.value&&(F.value=h.value.scrollWidth)};K(()=>{U($),window.addEventListener("resize",$)}),$e(()=>{window.removeEventListener("resize",$)});const P=v({}),g=v(null),k=v(null),T=v(!1),V=v(0),m=v(new Set),d=v({visible:!1,x:0,y:0,issue:null}),{data:c,status:oe,error:O}=([f,x]=H(()=>Z("/api/columns","$35IWyimU8j")),f=await f,x(),f),{data:y,status:ae,error:W,refresh:R}=([f,x]=H(()=>Z("/api/issues","$0eQrGqHYDa")),f=await f,x(),f);q(()=>c.value,()=>U($));const w=e=>y.value?y.value.filter(s=>s.column_slug===e):[],I=e=>P.value[e]??ee,re=e=>{const s=w(e),n=I(e);return s.slice(0,n)},le=e=>{const s=w(e),n=I(e);return s.length>n},ie=e=>{const s=w(e),n=I(e);return Math.max(0,s.length-n)},ue=e=>{const s=I(e);P.value[e]=s+ee},ce=e=>{const s=Date.now()-V.value;(!T.value||s<150)&&se.push(`/issue/${e}`)},de=e=>{g.value=e,V.value=Date.now(),setTimeout(()=>{g.value===e&&(T.value=!0)},100)},ve=()=>{g.value=null,k.value=null,T.value=!1},pe=e=>{k.value=e},fe=()=>{k.value=null},ge=async e=>{if(!g.value)return;const s=g.value;if(y.value?.find(t=>t.key===s)?.column_slug===e){g.value=null,k.value=null;return}try{await $fetch(`/api/issues/${s}/move`,{method:"POST",body:{column:e}}),E(C("notify.issueMoved")),R()}catch(t){M(L(t))}finally{g.value=null,k.value=null}},he=(e,s)=>{e.preventDefault(),e.stopPropagation(),d.value={visible:!0,x:e.clientX,y:e.clientY,issue:s}},D=()=>{d.value.visible=!1},ye=async()=>{if(!d.value.issue||!c.value||c.value.length===0)return;const e=d.value.issue.key,s=c.value[c.value.length-1];if(s)try{await $fetch(`/api/issues/${e}/move`,{method:"POST",body:{column:s.slug,force:!0}}),E(C("notify.issueArchived")),R()}catch(n){M(L(n))}finally{D()}},_e=async()=>{if(!d.value.issue)return;if(!confirm(C("issue.confirmDelete"))){D();return}const e=d.value.issue.key;try{await $fetch(`/api/issues/${e}/archive`,{method:"DELETE"}),E(C("notify.issueDeleted")),R()}catch(s){M(L(s))}finally{D()}},{lastMessage:ke}=Me(),B=async()=>{try{const e=await $fetch("/api/issues");if(y.value&&e){const s=JSON.stringify(y.value),n=JSON.stringify(e);s!==n&&(y.value=e)}}catch{}},me=async()=>{try{const e=await $fetch("/api/stats");e.processingIssues&&(m.value=new Set(e.processingIssues))}catch{}},J=e=>{if(!m.value.has(e)||!c.value||c.value.length<2)return!1;const s=y.value?.find(t=>t.key===e);if(!s)return!1;const n=c.value.findIndex(t=>t.slug===s.column_slug);return!(n===0||n===c.value.length-1)};return K(()=>{me()}),q(ke,e=>{if((e?.type==="refresh"||e?.type==="issue-update")&&B(),e?.type==="claude_start"&&e.issue){const s=e.issue;m.value=new Set([...m.value,s])}if(e?.type==="claude_end"&&e.issue){const s=e.issue,n=new Set(m.value);n.delete(s),m.value=n,B()}}),Ie({title:"Kanban - AutoCode"}),(e,s)=>{const n=be;return l(),a("div",Le,[r("header",Te,[r("h1",null,u(e.$t("kanban.title")),1),r("div",Re,[G(n,{to:"/issues/graph",class:"btn btn-secondary"},{default:Y(()=>[S(u(e.$t("graph.title")),1)]),_:1})])]),o(oe)==="pending"||o(ae)==="pending"?(l(),a("div",ze,u(e.$t("kanban.loading")),1)):o(O)||o(W)?(l(),a("div",Ae,u(o(O)?.message||o(W)?.message),1)):(l(),a("div",Ne,[r("div",{ref_key:"scrollTopRef",ref:b,class:"scroll-top",onScroll:te},[r("div",{class:"scroll-spacer",style:j({width:o(F)+"px"})},null,4)],544),r("div",{ref_key:"boardRef",ref:h,class:"board",onScroll:ne},[(l(!0),a(Q,null,X(o(c),t=>(l(),a("div",{key:t.slug,class:N(["board-column",{"drag-over":o(k)===t.slug}]),onDragover:A(i=>pe(t.slug),["prevent"]),onDragleave:fe,onDrop:i=>ge(t.slug)},[r("div",Pe,[r("div",Ve,[r("h2",Oe,[S(u(t.name)+" ",1),r("span",We,u(w(t.slug).length),1)]),G(n,{to:`/column/${t.slug}/prompt?name=${encodeURIComponent(t.name)}`,class:"column-action",title:"View prompt"},{default:Y(()=>[...s[0]||(s[0]=[S(" 👁 ",-1)])]),_:1},8,["to"])]),t.wip_limit?(l(),a("span",Be,u(e.$t("kanban.wipLimit"))+": "+u(t.wip_limit),1)):p("",!0)]),r("div",Je,[w(t.slug).length===0?(l(),a("div",Ke,u(e.$t("kanban.noIssues")),1)):p("",!0),(l(!0),a(Q,null,X(re(t.slug),i=>(l(),a("div",{key:i.key,class:N(["issue-card",{dragging:o(g)===i.key,processing:J(i.key)}]),draggable:"true",onDragstart:z=>de(i.key),onDragend:ve,onClick:z=>ce(i.key)},[r("div",He,[r("div",qe,[J(i.key)?(l(),a("span",Ge,"⚙️")):p("",!0),S(" "+u(i.key),1)]),r("button",{class:"issue-menu-btn",title:"Menu",onClick:A(z=>he(z,i),["stop"])}," ☰ ",8,Ye)]),r("div",je,u(i.title),1),r("div",Qe,[i.priority?(l(),a("span",{key:0,class:N(["badge",`badge-${i.priority}`])},u(i.priority),3)):p("",!0),i.parent_key?(l(),a("span",Xe," ^ ")):p("",!0)])],42,Ue))),128)),le(t.slug)?(l(),a("button",{key:1,class:"load-more-btn",onClick:A(i=>ue(t.slug),["stop"])},u(e.$t("kanban.loadMore"))+" ("+u(ie(t.slug))+") ",9,Ze)):p("",!0)])],42,Fe))),128))],544)])),o(d).visible?(l(),a("div",{key:3,style:{position:"fixed",inset:"0",zIndex:99998},onClick:D})):p("",!0),o(d).visible?(l(),a("div",{key:4,style:j({position:"fixed",top:o(d).y+"px",left:o(d).x+"px",zIndex:99999,background:"white",border:"1px solid #ddd",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0,0,0,0.15)",padding:"4px 0",minWidth:"140px"})},[o(d).issue&&o(c)&&o(d).issue.column_slug!==o(c)[o(c).length-1]?.slug?(l(),a("button",{key:0,style:{display:"block",width:"100%",padding:"10px 16px",textAlign:"left",background:"none",border:"none",cursor:"pointer",fontSize:"14px"},onClick:ye},u(e.$t("issue.archive")),1)):p("",!0),r("button",{style:{display:"block",width:"100%",padding:"10px 16px",textAlign:"left",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#ef4444"},onClick:_e},u(e.$t("common.delete")),1)],4)):p("",!0)])}}}),is=De(es,[["__scopeId","data-v-a660ac78"]]);export{is as default};
@@ -1 +1 @@
1
- import{u as V}from"./BvE9NWMw.js";import{r as y,o as T,A as N,d as B,u as H,v as j,l as b,s as P,c as e,e as s,t as n,j as _,h as l,g as v,F as f,p as S,b as a,_ as R}from"./Btwtsr_u.js";const L={CHANGELOG_LAST_SEEN:"autocode-changelog-lastSeen"};function U(){const u=y(null),c=y(!1);T(()=>{const o=localStorage.getItem(L.CHANGELOG_LAST_SEEN);o&&(u.value=o)});const i=o=>{u.value=o,localStorage.setItem(L.CHANGELOG_LAST_SEEN,o),c.value=!1},d=o=>u.value?u.value!==o?(c.value=!0,!0):!1:(i(o),!1);return{lastSeenVersion:N(u),hasNewChanges:N(c),markAsSeen:i,checkForUpdates:d}}const q={class:"changelog-page"},K={class:"page-header"},M={class:"summary-section"},Y={key:1,class:"summary-loading"},x={key:2,class:"summary-banner"},z={class:"summary-text"},J={key:0,class:"loading"},Q={key:1,class:"error-message"},W={key:2,class:"empty"},X={key:3,class:"changelog-list"},Z={class:"entry-header"},ee={class:"entry-version"},ae={key:0,class:"badge badge-success"},se={class:"entry-date"},te={class:"entry-content"},ne=B({__name:"changelog",async setup(u){let c,i;const{locale:d}=H(),{data:o,status:w,error:k}=([c,i]=j(()=>V("/api/changelog",{query:{lang:d.value}},"$j1EO-12DBP")),c=await c,i(),c),C=b(()=>o.value?.data?.entries||[]),E=b(()=>o.value?.data?.topTag||""),{lastSeenVersion:A,markAsSeen:$}=U(),h=y(null),g=y(!1);async function G(){g.value=!0;const t=localStorage.getItem("autocode-changelog-seen");try{const r=await $fetch("/api/changelog/summary",{method:"POST",body:{lang:d.value,lastSeenTag:t}});r?.data?.summary&&(h.value=r.data.summary)}catch{}finally{g.value=!1}}const O=t=>A.value?t>A.value:!1;T(()=>{E.value&&$(E.value)});const D=t=>new Date(t).toLocaleDateString(d.value==="fr"?"fr-FR":"en-US",{year:"numeric",month:"long",day:"numeric"});return P({title:"Changelog - AutoCode"}),(t,r)=>(a(),e("div",q,[s("header",K,[s("h1",null,n(t.$t("changelog.title")),1)]),s("div",M,[!l(h)&&!l(g)?(a(),e("button",{key:0,class:"btn btn-secondary summary-btn",onClick:G},[r[0]||(r[0]=s("span",{class:"btn-icon"},"✨",-1)),v(" "+n(t.$t("changelog.generateSummary")),1)])):_("",!0),l(g)?(a(),e("div",Y,[r[1]||(r[1]=s("span",{class:"spinner"},null,-1)),v(" "+n(t.$t("changelog.generatingSummary")),1)])):_("",!0),l(h)&&!l(g)?(a(),e("div",x,[r[2]||(r[2]=s("div",{class:"summary-icon"},[s("span",{class:"icon"},"✨")],-1)),s("p",z,n(l(h)),1)])):_("",!0)]),l(w)==="pending"?(a(),e("div",J,n(t.$t("app.loading")),1)):l(k)?(a(),e("div",Q,n(l(k).message),1)):l(C)?.length?(a(),e("div",X,[(a(!0),e(f,null,S(l(C),m=>(a(),e("article",{key:m.tag,class:"changelog-entry card"},[s("header",Z,[s("h2",ee,[v(n(m.tag)+" ",1),O(m.tag)?(a(),e("span",ae,n(t.$t("changelog.new")),1)):_("",!0)]),s("time",se,n(D(m.date)),1)]),s("div",te,[(a(!0),e(f,null,S(m.sections,p=>(a(),e("div",{key:p.title,class:"entry-section"},[s("h3",null,n(p.title),1),s("ul",null,[(a(!0),e(f,null,S(p.items,(F,I)=>(a(),e("li",{key:I},n(F),1))),128))])]))),128))])]))),128))])):(a(),e("div",W,n(t.$t("changelog.noChanges")),1))]))}}),re=R(ne,[["__scopeId","data-v-03a0ef3e"]]);export{re as default};
1
+ import{u as I}from"./BwPqhjQb.js";import{r as y,o as T,B as A,d as V,u as H,x as q,m as b,v as P,c as e,e as s,t as n,k as _,h as l,g as v,F as f,q as S,b as a,_ as R}from"./DvCAC3Uz.js";const L={CHANGELOG_LAST_SEEN:"autocode-changelog-lastSeen"};function U(){const u=y(null),c=y(!1);T(()=>{const o=localStorage.getItem(L.CHANGELOG_LAST_SEEN);o&&(u.value=o)});const i=o=>{u.value=o,localStorage.setItem(L.CHANGELOG_LAST_SEEN,o),c.value=!1},d=o=>u.value?u.value!==o?(c.value=!0,!0):!1:(i(o),!1);return{lastSeenVersion:A(u),hasNewChanges:A(c),markAsSeen:i,checkForUpdates:d}}const j={class:"changelog-page"},x={class:"page-header"},K={class:"summary-section"},M={key:1,class:"summary-loading"},Y={key:2,class:"summary-banner"},z={class:"summary-text"},J={key:0,class:"loading"},Q={key:1,class:"error-message"},W={key:2,class:"empty"},X={key:3,class:"changelog-list"},Z={class:"entry-header"},ee={class:"entry-version"},ae={key:0,class:"badge badge-success"},se={class:"entry-date"},te={class:"entry-content"},ne=V({__name:"changelog",async setup(u){let c,i;const{locale:d}=H(),{data:o,status:w,error:k}=([c,i]=q(()=>I("/api/changelog",{query:{lang:d.value}},"$j1EO-12DBP")),c=await c,i(),c),C=b(()=>o.value?.data?.entries||[]),E=b(()=>o.value?.data?.topTag||""),{lastSeenVersion:N,markAsSeen:$}=U(),h=y(null),g=y(!1);async function G(){g.value=!0;const t=localStorage.getItem("autocode-changelog-seen");try{const r=await $fetch("/api/changelog/summary",{method:"POST",body:{lang:d.value,lastSeenTag:t}});r?.data?.summary&&(h.value=r.data.summary)}catch{}finally{g.value=!1}}const O=t=>N.value?t>N.value:!1;T(()=>{E.value&&$(E.value)});const B=t=>new Date(t).toLocaleDateString(d.value==="fr"?"fr-FR":"en-US",{year:"numeric",month:"long",day:"numeric"});return P({title:"Changelog - AutoCode"}),(t,r)=>(a(),e("div",j,[s("header",x,[s("h1",null,n(t.$t("changelog.title")),1)]),s("div",K,[!l(h)&&!l(g)?(a(),e("button",{key:0,class:"btn btn-secondary summary-btn",onClick:G},[r[0]||(r[0]=s("span",{class:"btn-icon"},"✨",-1)),v(" "+n(t.$t("changelog.generateSummary")),1)])):_("",!0),l(g)?(a(),e("div",M,[r[1]||(r[1]=s("span",{class:"spinner"},null,-1)),v(" "+n(t.$t("changelog.generatingSummary")),1)])):_("",!0),l(h)&&!l(g)?(a(),e("div",Y,[r[2]||(r[2]=s("div",{class:"summary-icon"},[s("span",{class:"icon"},"✨")],-1)),s("p",z,n(l(h)),1)])):_("",!0)]),l(w)==="pending"?(a(),e("div",J,n(t.$t("app.loading")),1)):l(k)?(a(),e("div",Q,n(l(k).message),1)):l(C)?.length?(a(),e("div",X,[(a(!0),e(f,null,S(l(C),m=>(a(),e("article",{key:m.tag,class:"changelog-entry card"},[s("header",Z,[s("h2",ee,[v(n(m.tag)+" ",1),O(m.tag)?(a(),e("span",ae,n(t.$t("changelog.new")),1)):_("",!0)]),s("time",se,n(B(m.date)),1)]),s("div",te,[(a(!0),e(f,null,S(m.sections,p=>(a(),e("div",{key:p.title,class:"entry-section"},[s("h3",null,n(p.title),1),s("ul",null,[(a(!0),e(f,null,S(p.items,(D,F)=>(a(),e("li",{key:F},n(D),1))),128))])]))),128))])]))),128))])):(a(),e("div",W,n(t.$t("changelog.noChanges")),1))]))}}),re=R(ne,[["__scopeId","data-v-03a0ef3e"]]);export{re as default};
@@ -0,0 +1,2 @@
1
+ import{d as ne,H as ae,y as oe,m as l,r as v,x as E,u as le,o as re,v as ie,c as r,e as a,k as C,t as n,h as e,s as ce,F as ue,D as de,E as pe,I as me,g as R,b as i,_ as ve}from"./DvCAC3Uz.js";import{u as fe}from"./Bl6DKdr9.js";import{u as ge}from"./Ed7ZeZIY.js";import{u as D}from"./BwPqhjQb.js";const ye={class:"column-prompt-page"},_e={class:"page-header card"},he={class:"header-left"},be={key:0,class:"pipeline-badge"},ke={class:"header-right"},Ce=["disabled"],we=["disabled"],Pe={key:0,class:"loading card"},Se={key:1,class:"error-message card"},$e={key:2,class:"prompt-container card"},xe={key:0,class:"prompt-content"},Ne={class:"prompt-meta"},Be={class:"meta-item"},Ie={class:"meta-item"},Te={key:0,class:"meta-item meta-dirty"},Ve=ne({__name:"prompt",async setup(Fe){let u,g;const w=ae(),N=oe(),{success:P,error:B}=fe(),{pipelineConfig:M,isColumnInPipeline:q,addColumnBySlug:z,removeColumnBySlug:H,savePipeline:I,loadActivePipeline:j}=ge(),d=l(()=>w.params.slug),y=l(()=>w.query.pipeline||""),U=l(()=>w.query.name||""),G=l(()=>U.value||d.value),J=()=>{window.history.length>1?N.back():N.push("/kanban")},S=v(!1),c=v(!1),m=v(""),p=v(!1),_=v(!1),h=v(!1),{data:b,status:L,error:T,refresh:W}=([u,g]=E(()=>D(()=>{const s=new URLSearchParams;y.value&&s.set("pipeline",y.value);const o=s.toString();return`/api/columns/${d.value}/prompt${o?`?${o}`:""}`},"$jZPB4J8e0r")),u=await u,g(),u),f=l(()=>b.value?typeof b.value=="string"?b.value:b.value.content||"":""),V=l(()=>c.value?m.value:f.value),Z=l(()=>{const s=V.value;return!s||typeof s!="string"?0:s.split(`
2
+ `).length}),K=l(()=>{const s=V.value;return!s||typeof s!="string"?0:s.length}),O=async()=>{if(f.value)try{await navigator.clipboard.writeText(f.value),S.value=!0,setTimeout(()=>{S.value=!1},2e3)}catch(s){console.error("Failed to copy:",s)}},Q=()=>{m.value=f.value,p.value=!1,c.value=!0},X=()=>{p.value&&!confirm("Vous avez des modifications non enregistrées. Voulez-vous vraiment annuler ?")||(c.value=!1,p.value=!1)},Y=async()=>{_.value=!0;try{await $fetch(`/api/columns/${d.value}/actions`,{method:"PATCH",body:{content:m.value}}),P(t("pipeline.promptSaved")),p.value=!1,await W(),c.value=!1}catch{B(t("error.saveFailed"))}finally{_.value=!1}},{t}=le(),{data:F}=([u,g]=E(()=>D("/api/catalog","$8GjW2wVST-")),u=await u,g(),u),k=l(()=>{if(!F.value)return null;const s=d.value.replace(/^\d+_/,"");for(const o of["definition","action","finish"]){const A=F.value.segments[o].columns.find(se=>se.slug.replace(/^\d+_/,"")===s);if(A)return{...A,segment:o}}return null}),ee=l(()=>q(d.value)),$=l(()=>ee.value.inPipeline),te=async()=>{if(k.value){h.value=!0;try{if($.value)H(d.value),await I(),P(t("pipeline.columnRemoved"));else{const s=k.value.segment;z(d.value,k.value.name,s),await I(),P(t("pipeline.columnAdded"))}}catch{B(t("error.saveFailed"))}finally{h.value=!1}}};return re(()=>{j()}),ie({title:l(()=>`${d.value} - AutoCode`)}),(s,o)=>(i(),r("div",ye,[a("header",_e,[a("div",he,[a("button",{class:"back-link",onClick:J},"← "+n(e(t)("nav.back")),1),o[2]||(o[2]=a("span",{class:"header-separator"},"/",-1)),a("h1",null,n(e(G)),1),e(y)?(i(),r("span",be,n(e(y)),1)):C("",!0)]),a("div",ke,[!e(c)&&e(k)&&e(M)?(i(),r("button",{key:0,class:ce(["btn btn-sm",e($)?"btn-danger":"btn-success"]),disabled:e(h),onClick:te},n(e(h)?"...":e($)?e(t)("column.deactivate"):e(t)("column.activate")),11,Ce)):C("",!0),e(c)?C("",!0):(i(),r("button",{key:1,class:"btn btn-secondary btn-sm",onClick:O},n(e(S)?e(t)("form.copied"):e(t)("form.copy")),1)),e(c)?(i(),r(ue,{key:3},[a("button",{class:"btn btn-secondary btn-sm",onClick:X},n(e(t)("modal.cancel")),1),a("button",{class:"btn btn-primary btn-sm",disabled:e(_)||!e(p),onClick:Y},n(e(_)?e(t)("form.saving"):e(t)("form.save")),9,we)],64)):(i(),r("button",{key:2,class:"btn btn-primary btn-sm",onClick:Q},n(e(t)("column.edit")),1))])]),e(L)==="pending"?(i(),r("div",Pe,n(e(t)("app.loading")),1)):e(T)?(i(),r("div",Se,n(e(T).message),1)):(i(),r("div",$e,[e(c)?de((i(),r("textarea",{key:1,"onUpdate:modelValue":o[0]||(o[0]=x=>me(m)?m.value=x:null),class:"code-editor",spellcheck:"false",onInput:o[1]||(o[1]=x=>p.value=!0)},null,544)),[[pe,e(m)]]):(i(),r("pre",xe,[a("code",null,n(e(f)),1)])),a("div",Ne,[a("span",Be,[a("strong",null,n(e(t)("column.lines"))+":",1),R(" "+n(e(Z)),1)]),a("span",Ie,[a("strong",null,n(e(t)("column.chars"))+":",1),R(" "+n(e(K)),1)]),e(c)&&e(p)?(i(),r("span",Te,n(e(t)("form.unsavedChanges")),1)):C("",!0)])]))]))}}),Me=ve(Ve,[["__scopeId","data-v-bf4ee782"]]);export{Me as default};
@@ -1 +1 @@
1
- import{u as o}from"./Btwtsr_u.js";const c=()=>{const{t:e}=o(),s=i=>{if(!i)return e("notify.error");const r=i.toLowerCase();if(r.includes("wip limit")){const n=i.match(/(\d+)\s+issue/),t=n?n[1]:"1";return e("apiError.wipLimit",{count:t})}return r.includes("cannot skip")||r.includes("cannot move from")?e("apiError.cannotSkip"):r.includes("acceptance criteria required")?e("apiError.acceptanceCriteriaRequired"):r.includes("not found")&&r.includes("issue")?e("apiError.issueNotFound"):r.includes("required")&&r.includes("column")?e("apiError.columnRequired"):r.includes("move")&&r.includes("failed")?e("apiError.moveFailed"):r.includes("save")&&r.includes("failed")?e("apiError.saveFailed"):r.includes("delete")&&r.includes("failed")?e("apiError.deleteFailed"):i};return{translateError:s,getErrorMessage:(i,r)=>{const n=i?.data?.message;if(n)return s(n);const t=i?.message;return t?s(t):r||e("notify.error")}}};export{c as u};
1
+ import{u as o}from"./DvCAC3Uz.js";const c=()=>{const{t:e}=o(),s=i=>{if(!i)return e("notify.error");const r=i.toLowerCase();if(r.includes("wip limit")){const n=i.match(/(\d+)\s+issue/),t=n?n[1]:"1";return e("apiError.wipLimit",{count:t})}return r.includes("cannot skip")||r.includes("cannot move from")?e("apiError.cannotSkip"):r.includes("acceptance criteria required")?e("apiError.acceptanceCriteriaRequired"):r.includes("not found")&&r.includes("issue")?e("apiError.issueNotFound"):r.includes("required")&&r.includes("column")?e("apiError.columnRequired"):r.includes("move")&&r.includes("failed")?e("apiError.moveFailed"):r.includes("save")&&r.includes("failed")?e("apiError.saveFailed"):r.includes("delete")&&r.includes("failed")?e("apiError.deleteFailed"):i};return{translateError:s,getErrorMessage:(i,r)=>{const n=i?.data?.message;if(n)return s(n);const t=i?.message;return t?s(t):r||e("notify.error")}}};export{c as u};
@@ -1 +1 @@
1
- import{_ as it}from"./CuwYCM4v.js";import{d as st,x as ot,r as g,u as rt,B as N,v as at,l as U,s as nt,c as l,e,f as X,w as E,t as r,j as $,g as h,C as v,D as k,h as o,q as V,E as lt,F as D,p as S,z as T,b as c,_ as ct}from"./Btwtsr_u.js";import{u as pt}from"./DuqIS0qR.js";import{u as dt}from"./DGmZExaA.js";import{u as ut}from"./BvE9NWMw.js";const mt=()=>({validateTitle:p=>p.trim()?p.length>200?"Title too long (max 200 characters)":null:"Title is required",validateDescription:p=>p.trim()?null:"Description is required",validateKey:p=>/^AC-\d{6}$/.test(p)?null:"Invalid issue key format (AC-XXXXXX)",validateFile:p=>{const F=["image/png","image/jpeg","image/gif","image/webp","application/pdf","text/plain","text/markdown","application/json","application/xml"];return p.size>10485760?"File too large (max 10MB)":F.includes(p.type)?null:"File type not allowed"}}),ft={class:"new-issue-page"},ht={class:"page-header"},vt={class:"form-group"},_t={class:"form-label",for:"title"},yt={class:"title-row"},bt=["disabled","title"],gt={key:0,class:"spinner"},$t={key:1,class:"sparkle"},kt={key:0,class:"error-text"},Ct={class:"form-group"},wt={class:"form-label",for:"description"},Ft={class:"form-hint"},It={key:0,class:"error-text"},Vt={class:"form-row"},Dt={class:"form-group"},St={class:"form-label",for:"priority"},Tt={value:""},At={value:"low"},Bt={value:"medium"},zt={value:"high"},Pt={value:"critical"},qt={class:"form-group"},Mt={class:"form-label",for:"parent"},Nt=["placeholder"],Ut={id:"parent-suggestions"},Xt=["value"],Et={class:"form-group"},jt={class:"form-label"},Kt={class:"criteria-list"},Lt=["onUpdate:modelValue","placeholder"],Ot=["onClick"],Rt={class:"form-group"},Ht={class:"form-label"},Gt={key:0,class:"attachments-list"},Jt={class:"file-name"},Qt={class:"file-size"},Wt=["onClick"],Yt={key:1,class:"error-text"},Zt={class:"form-actions"},xt=["disabled"],te=st({__name:"new",async setup(j){let f,C;const A=ot(),{success:p,error:w}=pt(),{validateTitle:F,validateDescription:K,validateFile:L}=mt(),{getErrorMessage:B}=dt(),z=g(null),_=g(!1),y=g(!1),m=g(!1),{locale:O,t:P}=rt(),s=N({title:"",description:"",priority:"",parent:"",acceptanceCriteria:[""],attachments:[]}),n=N({title:"",description:"",attachments:""}),{data:R}=([f,C]=at(()=>ut("/api/issues","$PR1V20I2qI")),f=await f,C(),f),H=U(()=>(R.value||[]).slice(0,10)),q=U(()=>s.title.trim()&&s.description.trim()&&!n.attachments),b=t=>{t==="title"?n.title=F(s.title)||"":t==="description"&&(n.description=K(s.description)||"")},G=async()=>{if(!(!s.title.trim()||m.value)){m.value=!0;try{const t=s.acceptanceCriteria.filter(d=>d.trim()),i=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:s.title,lang:O.value,description:s.description||void 0,priority:s.priority||void 0,acceptance_criteria:t.length>0?t:void 0,parent_key:s.parent||void 0}});if(i.description&&(s.description=i.description),i.priority){const d={P0:"critical",P1:"high",P2:"medium",P3:"low"};s.priority=d[i.priority]||i.priority}i.acceptance_criteria&&Array.isArray(i.acceptance_criteria)&&(s.acceptanceCriteria=i.acceptance_criteria.length>0?i.acceptance_criteria:[""]),p(P("autocomplete.rememberSave"))}catch(t){w(B(t,P("autocomplete.error")))}finally{m.value=!1}}},J=()=>{s.acceptanceCriteria.push("")},Q=t=>{s.acceptanceCriteria.splice(t,1)},W=()=>{z.value?.click()},Y=t=>{const i=t.target;i.files&&M(Array.from(i.files))},Z=t=>{_.value=!1,t.dataTransfer?.files&&M(Array.from(t.dataTransfer.files))},M=t=>{n.attachments="";for(const i of t){const d=L(i);if(d){n.attachments=d;return}s.attachments.push(i)}},x=t=>{s.attachments.splice(t,1),n.attachments=""},tt=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,et=async()=>{if(q.value&&(b("title"),b("description"),!(n.title||n.description))){y.value=!0;try{const t=s.acceptanceCriteria.filter(d=>d.trim()),i=await $fetch("/api/issues",{method:"POST",body:{title:s.title,description:s.description,priority:s.priority||void 0,parent_key:s.parent||void 0,acceptance_criteria:t.length>0?t:void 0}});p("Issue created"),A.push(`/issue/${i.key}`)}catch(t){w(B(t,"Failed to create issue"))}finally{y.value=!1}}};return nt({title:"New Issue - AutoCode"}),(t,i)=>{const d=it;return c(),l("div",ft,[e("header",ht,[X(d,{to:"/kanban",class:"back-link"},{default:E(()=>[h(" ← "+r(t.$t("nav.kanban")),1)]),_:1}),e("h1",null,r(t.$t("nav.newIssue")),1)]),e("form",{class:"issue-form card",onSubmit:T(et,["prevent"])},[e("div",vt,[e("label",_t,[h(r(t.$t("issue.title"))+" ",1),i[8]||(i[8]=e("span",{class:"required"},"*",-1))]),e("div",yt,[v(e("input",{id:"title","onUpdate:modelValue":i[0]||(i[0]=a=>o(s).title=a),type:"text",class:V(["form-input",{"has-error":o(n).title}]),required:"",onBlur:i[1]||(i[1]=a=>b("title"))},null,34),[[k,o(s).title]]),e("button",{type:"button",class:"btn-autocomplete",disabled:o(m)||!o(s).title.trim(),title:t.$t("autocomplete.tooltip"),onClick:G},[o(m)?(c(),l("span",gt)):(c(),l("span",$t,"✨")),h(" "+r(o(m)?t.$t("autocomplete.loading"):t.$t("autocomplete.button")),1)],8,bt)]),o(n).title?(c(),l("span",kt,r(o(n).title),1)):$("",!0)]),e("div",Ct,[e("label",wt,[h(r(t.$t("issue.description"))+" ",1),i[9]||(i[9]=e("span",{class:"required"},"*",-1))]),v(e("textarea",{id:"description","onUpdate:modelValue":i[2]||(i[2]=a=>o(s).description=a),class:V(["form-input",{"has-error":o(n).description}]),rows:"8",required:"",onBlur:i[3]||(i[3]=a=>b("description"))},null,34),[[k,o(s).description]]),e("p",Ft,r(t.$t("form.markdownSupported")),1),o(n).description?(c(),l("span",It,r(o(n).description),1)):$("",!0)]),e("div",Vt,[e("div",Dt,[e("label",St,r(t.$t("issue.priority")),1),v(e("select",{id:"priority","onUpdate:modelValue":i[4]||(i[4]=a=>o(s).priority=a),class:"form-input"},[e("option",Tt,r(t.$t("form.select")),1),e("option",At,r(t.$t("priority.low")),1),e("option",Bt,r(t.$t("priority.medium")),1),e("option",zt,r(t.$t("priority.high")),1),e("option",Pt,r(t.$t("priority.critical")),1)],512),[[lt,o(s).priority]])]),e("div",qt,[e("label",Mt,r(t.$t("issue.parent")),1),v(e("input",{id:"parent","onUpdate:modelValue":i[5]||(i[5]=a=>o(s).parent=a),type:"text",class:"form-input",placeholder:t.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Nt),[[k,o(s).parent]]),e("datalist",Ut,[(c(!0),l(D,null,S(o(H),a=>(c(),l("option",{key:a.key,value:a.key},r(a.title),9,Xt))),128))])])]),e("div",Et,[e("label",jt,r(t.$t("issue.acceptanceCriteria")),1),e("div",Kt,[(c(!0),l(D,null,S(o(s).acceptanceCriteria,(a,u)=>(c(),l("div",{key:u,class:"criteria-item"},[v(e("input",{"onUpdate:modelValue":I=>o(s).acceptanceCriteria[u]=I,type:"text",class:"form-input",placeholder:t.$t("form.criteriaPlaceholder")},null,8,Lt),[[k,o(s).acceptanceCriteria[u]]]),e("button",{type:"button",class:"btn-icon",onClick:I=>Q(u)},"×",8,Ot)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:J}," + "+r(t.$t("form.addCriteria")),1)])]),e("div",Rt,[e("label",Ht,r(t.$t("issue.attachments")),1),e("div",{class:V(["dropzone",{dragover:o(_)}]),onDragover:i[6]||(i[6]=T(a=>_.value=!0,["prevent"])),onDragleave:i[7]||(i[7]=a=>_.value=!1),onDrop:T(Z,["prevent"])},[e("input",{ref_key:"fileInput",ref:z,type:"file",multiple:"",class:"file-input",onChange:Y},null,544),e("p",null,r(t.$t("form.dropFiles")),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:W},r(t.$t("form.browse")),1)],34),o(s).attachments.length?(c(),l("ul",Gt,[(c(!0),l(D,null,S(o(s).attachments,(a,u)=>(c(),l("li",{key:u},[e("span",Jt,r(a.name),1),e("span",Qt,r(tt(a.size)),1),e("button",{type:"button",class:"btn-icon",onClick:I=>x(u)},"×",8,Wt)]))),128))])):$("",!0),o(n).attachments?(c(),l("span",Yt,r(o(n).attachments),1)):$("",!0)]),e("div",Zt,[X(d,{to:"/kanban",class:"btn btn-secondary"},{default:E(()=>[h(r(t.$t("form.cancel")),1)]),_:1}),e("button",{type:"submit",class:"btn btn-primary",disabled:o(y)||!o(q)},r(o(y)?t.$t("form.creating"):t.$t("form.create")),9,xt)])],32)])}}}),ae=ct(te,[["__scopeId","data-v-78563ddb"]]);export{ae as default};
1
+ import{_ as it}from"./DMHPjZJ1.js";import{d as st,y as ot,r as g,u as rt,C as N,x as at,m as U,v as nt,c as l,e,f as X,w as E,t as r,k as $,g as h,D as v,E as k,h as o,s as V,G as lt,F as D,q as S,A as T,b as c,_ as ct}from"./DvCAC3Uz.js";import{u as pt}from"./Bl6DKdr9.js";import{u as dt}from"./YduSsW3Y.js";import{u as ut}from"./BwPqhjQb.js";const mt=()=>({validateTitle:p=>p.trim()?p.length>200?"Title too long (max 200 characters)":null:"Title is required",validateDescription:p=>p.trim()?null:"Description is required",validateKey:p=>/^AC-\d{6}$/.test(p)?null:"Invalid issue key format (AC-XXXXXX)",validateFile:p=>{const F=["image/png","image/jpeg","image/gif","image/webp","application/pdf","text/plain","text/markdown","application/json","application/xml"];return p.size>10485760?"File too large (max 10MB)":F.includes(p.type)?null:"File type not allowed"}}),ft={class:"new-issue-page"},ht={class:"page-header"},vt={class:"form-group"},_t={class:"form-label",for:"title"},yt={class:"title-row"},bt=["disabled","title"],gt={key:0,class:"spinner"},$t={key:1,class:"sparkle"},kt={key:0,class:"error-text"},Ct={class:"form-group"},wt={class:"form-label",for:"description"},Ft={class:"form-hint"},It={key:0,class:"error-text"},Vt={class:"form-row"},Dt={class:"form-group"},St={class:"form-label",for:"priority"},Tt={value:""},At={value:"low"},Bt={value:"medium"},Pt={value:"high"},qt={value:"critical"},zt={class:"form-group"},Mt={class:"form-label",for:"parent"},Nt=["placeholder"],Ut={id:"parent-suggestions"},Xt=["value"],Et={class:"form-group"},Kt={class:"form-label"},jt={class:"criteria-list"},Lt=["onUpdate:modelValue","placeholder"],Ot=["onClick"],Rt={class:"form-group"},Gt={class:"form-label"},Ht={key:0,class:"attachments-list"},Jt={class:"file-name"},Qt={class:"file-size"},Wt=["onClick"],Yt={key:1,class:"error-text"},Zt={class:"form-actions"},xt=["disabled"],te=st({__name:"new",async setup(K){let f,C;const A=ot(),{success:p,error:w}=pt(),{validateTitle:F,validateDescription:j,validateFile:L}=mt(),{getErrorMessage:B}=dt(),P=g(null),_=g(!1),y=g(!1),m=g(!1),{locale:O,t:q}=rt(),s=N({title:"",description:"",priority:"",parent:"",acceptanceCriteria:[""],attachments:[]}),n=N({title:"",description:"",attachments:""}),{data:R}=([f,C]=at(()=>ut("/api/issues","$PR1V20I2qI")),f=await f,C(),f),G=U(()=>(R.value||[]).slice(0,10)),z=U(()=>s.title.trim()&&s.description.trim()&&!n.attachments),b=t=>{t==="title"?n.title=F(s.title)||"":t==="description"&&(n.description=j(s.description)||"")},H=async()=>{if(!(!s.title.trim()||m.value)){m.value=!0;try{const t=s.acceptanceCriteria.filter(d=>d.trim()),i=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:s.title,lang:O.value,description:s.description||void 0,priority:s.priority||void 0,acceptance_criteria:t.length>0?t:void 0,parent_key:s.parent||void 0}});if(i.description&&(s.description=i.description),i.priority){const d={P0:"critical",P1:"high",P2:"medium",P3:"low"};s.priority=d[i.priority]||i.priority}i.acceptance_criteria&&Array.isArray(i.acceptance_criteria)&&(s.acceptanceCriteria=i.acceptance_criteria.length>0?i.acceptance_criteria:[""]),p(q("autocomplete.rememberSave"))}catch(t){w(B(t,q("autocomplete.error")))}finally{m.value=!1}}},J=()=>{s.acceptanceCriteria.push("")},Q=t=>{s.acceptanceCriteria.splice(t,1)},W=()=>{P.value?.click()},Y=t=>{const i=t.target;i.files&&M(Array.from(i.files))},Z=t=>{_.value=!1,t.dataTransfer?.files&&M(Array.from(t.dataTransfer.files))},M=t=>{n.attachments="";for(const i of t){const d=L(i);if(d){n.attachments=d;return}s.attachments.push(i)}},x=t=>{s.attachments.splice(t,1),n.attachments=""},tt=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,et=async()=>{if(z.value&&(b("title"),b("description"),!(n.title||n.description))){y.value=!0;try{const t=s.acceptanceCriteria.filter(d=>d.trim()),i=await $fetch("/api/issues",{method:"POST",body:{title:s.title,description:s.description,priority:s.priority||void 0,parent_key:s.parent||void 0,acceptance_criteria:t.length>0?t:void 0}});p("Issue created"),A.push(`/issue/${i.key}`)}catch(t){w(B(t,"Failed to create issue"))}finally{y.value=!1}}};return nt({title:"New Issue - AutoCode"}),(t,i)=>{const d=it;return c(),l("div",ft,[e("header",ht,[X(d,{to:"/kanban",class:"back-link"},{default:E(()=>[h(" ← "+r(t.$t("nav.kanban")),1)]),_:1}),e("h1",null,r(t.$t("nav.newIssue")),1)]),e("form",{class:"issue-form card",onSubmit:T(et,["prevent"])},[e("div",vt,[e("label",_t,[h(r(t.$t("issue.title"))+" ",1),i[8]||(i[8]=e("span",{class:"required"},"*",-1))]),e("div",yt,[v(e("input",{id:"title","onUpdate:modelValue":i[0]||(i[0]=a=>o(s).title=a),type:"text",class:V(["form-input",{"has-error":o(n).title}]),required:"",onBlur:i[1]||(i[1]=a=>b("title"))},null,34),[[k,o(s).title]]),e("button",{type:"button",class:"btn-autocomplete",disabled:o(m)||!o(s).title.trim(),title:t.$t("autocomplete.tooltip"),onClick:H},[o(m)?(c(),l("span",gt)):(c(),l("span",$t,"✨")),h(" "+r(o(m)?t.$t("autocomplete.loading"):t.$t("autocomplete.button")),1)],8,bt)]),o(n).title?(c(),l("span",kt,r(o(n).title),1)):$("",!0)]),e("div",Ct,[e("label",wt,[h(r(t.$t("issue.description"))+" ",1),i[9]||(i[9]=e("span",{class:"required"},"*",-1))]),v(e("textarea",{id:"description","onUpdate:modelValue":i[2]||(i[2]=a=>o(s).description=a),class:V(["form-input",{"has-error":o(n).description}]),rows:"8",required:"",onBlur:i[3]||(i[3]=a=>b("description"))},null,34),[[k,o(s).description]]),e("p",Ft,r(t.$t("form.markdownSupported")),1),o(n).description?(c(),l("span",It,r(o(n).description),1)):$("",!0)]),e("div",Vt,[e("div",Dt,[e("label",St,r(t.$t("issue.priority")),1),v(e("select",{id:"priority","onUpdate:modelValue":i[4]||(i[4]=a=>o(s).priority=a),class:"form-input"},[e("option",Tt,r(t.$t("form.select")),1),e("option",At,r(t.$t("priority.low")),1),e("option",Bt,r(t.$t("priority.medium")),1),e("option",Pt,r(t.$t("priority.high")),1),e("option",qt,r(t.$t("priority.critical")),1)],512),[[lt,o(s).priority]])]),e("div",zt,[e("label",Mt,r(t.$t("issue.parent")),1),v(e("input",{id:"parent","onUpdate:modelValue":i[5]||(i[5]=a=>o(s).parent=a),type:"text",class:"form-input",placeholder:t.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Nt),[[k,o(s).parent]]),e("datalist",Ut,[(c(!0),l(D,null,S(o(G),a=>(c(),l("option",{key:a.key,value:a.key},r(a.title),9,Xt))),128))])])]),e("div",Et,[e("label",Kt,r(t.$t("issue.acceptanceCriteria")),1),e("div",jt,[(c(!0),l(D,null,S(o(s).acceptanceCriteria,(a,u)=>(c(),l("div",{key:u,class:"criteria-item"},[v(e("input",{"onUpdate:modelValue":I=>o(s).acceptanceCriteria[u]=I,type:"text",class:"form-input",placeholder:t.$t("form.criteriaPlaceholder")},null,8,Lt),[[k,o(s).acceptanceCriteria[u]]]),e("button",{type:"button",class:"btn-icon",onClick:I=>Q(u)},"×",8,Ot)]))),128)),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:J}," + "+r(t.$t("form.addCriteria")),1)])]),e("div",Rt,[e("label",Gt,r(t.$t("issue.attachments")),1),e("div",{class:V(["dropzone",{dragover:o(_)}]),onDragover:i[6]||(i[6]=T(a=>_.value=!0,["prevent"])),onDragleave:i[7]||(i[7]=a=>_.value=!1),onDrop:T(Z,["prevent"])},[e("input",{ref_key:"fileInput",ref:P,type:"file",multiple:"",class:"file-input",onChange:Y},null,544),e("p",null,r(t.$t("form.dropFiles")),1),e("button",{type:"button",class:"btn btn-secondary btn-sm",onClick:W},r(t.$t("form.browse")),1)],34),o(s).attachments.length?(c(),l("ul",Ht,[(c(!0),l(D,null,S(o(s).attachments,(a,u)=>(c(),l("li",{key:u},[e("span",Jt,r(a.name),1),e("span",Qt,r(tt(a.size)),1),e("button",{type:"button",class:"btn-icon",onClick:I=>x(u)},"×",8,Wt)]))),128))])):$("",!0),o(n).attachments?(c(),l("span",Yt,r(o(n).attachments),1)):$("",!0)]),e("div",Zt,[X(d,{to:"/kanban",class:"btn btn-secondary"},{default:E(()=>[h(r(t.$t("form.cancel")),1)]),_:1}),e("button",{type:"submit",class:"btn btn-primary",disabled:o(y)||!o(z)},r(o(y)?t.$t("form.creating"):t.$t("form.create")),9,xt)])],32)])}}}),ae=ct(te,[["__scopeId","data-v-78563ddb"]]);export{ae as default};
@@ -0,0 +1 @@
1
+ import{_ as d}from"./DMHPjZJ1.js";import{d as r,H as u,m as _,v as p,c as i,e,f as l,g as o,t as c,h as m,w as f,b as x,_ as b}from"./DvCAC3Uz.js";const k={class:"test-page card"},v=r({__name:"[id]",setup(N){const a=u(),s=_(()=>a.params.id);return p({title:`Test ${s.value} - AutoCode`}),(g,t)=>{const n=d;return x(),i("div",k,[t[2]||(t[2]=e("h1",null,"Test Route Dynamique",-1)),e("p",null,[t[0]||(t[0]=o(" ID: ",-1)),e("code",null,c(m(s)),1)]),l(n,{to:"/kanban",class:"btn btn-secondary"},{default:f(()=>[...t[1]||(t[1]=[o(" Retour ",-1)])]),_:1})])}}}),C=b(v,[["__scopeId","data-v-bd9f8600"]]);export{C as default};
@@ -1 +1 @@
1
- {"id":"234711bd-452d-42ba-9430-4d79ebc81813","timestamp":1767767273310}
1
+ {"id":"8b3dd97e-9761-416b-ac6a-ad9520be16c9","timestamp":1767768336643}
@@ -0,0 +1 @@
1
+ {"id":"8b3dd97e-9761-416b-ac6a-ad9520be16c9","timestamp":1767768336643,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":["/"]}
@@ -1,2 +1,2 @@
1
- import{d as H,r as p,l as R,s as V,c,e,j as y,t as a,C as B,D as J,h as t,H as z,g as I,F as N,p as A,y as M,b as i,q as O,z as q,_ as G}from"./Btwtsr_u.js";import{u as L}from"./DuqIS0qR.js";const U={class:"autocreate-page"},W={class:"page-header"},K={class:"page-description"},Q={class:"card input-section"},X={class:"form-group"},Y={class:"form-label",for:"prompt"},Z=["placeholder"],x=["disabled"],ee={key:0,class:"card streaming-section"},se={key:0,class:"cursor"},te={key:1,class:"card error-section"},ae={class:"error-text"},oe={key:2,class:"proposals-section"},le={class:"proposals-grid"},re=["onClick"],ne={class:"proposal-header"},ce=["checked","onChange"],ie={class:"proposal-description"},ue={class:"proposal-meta"},pe={class:"badge"},de={class:"proposals-actions"},he=["disabled"],ve={key:3,class:"card results-section"},fe={class:"results-list"},_e={class:"result-icon"},ge={class:"result-name"},me={key:0,class:"result-error"},ye=H({__name:"autocreate",setup(be){const{success:F,error:C}=L(),f=p(""),_=p(!1),k=p(!1),b=p(""),$=p(null),d=p([]),n=p([]),h=p([]),g=p(""),w=R(()=>d.value.length>0&&n.value.length===d.value.length),j=async()=>{if(f.value.trim()){_.value=!0,b.value="",d.value=[],h.value=[],n.value=[],g.value="";try{const s=await fetch("/api/catalog/autocreate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:f.value})});if(!s.ok)throw new Error(`HTTP error: ${s.status}`);const o=s.body?.getReader(),l=new TextDecoder;if(o){let r="";for(;;){const{done:m,value:v}=await o.read();if(m)break;r+=l.decode(v,{stream:!0});const P=r.split(`
2
- `);r=P.pop()||"";for(const S of P)if(S.startsWith("data: "))try{const u=JSON.parse(S.slice(6));u.type==="thinking"&&u.content?(b.value+=u.content,M(()=>{$.value&&($.value.scrollTop=$.value.scrollHeight)})):u.type==="proposals"&&u.proposals?(d.value=u.proposals,b.value=""):u.type==="error"&&u.message&&(g.value=u.message)}catch{}}}}catch{g.value="Failed to generate proposals. Please try again.",C("Generation failed")}finally{_.value=!1}}},T=s=>{const o=n.value.indexOf(s);o===-1?n.value.push(s):n.value.splice(o,1)},D=()=>{w.value?n.value=[]:n.value=d.value.map((s,o)=>o)},E=async()=>{if(n.value.length){k.value=!0,h.value=[];try{const s=n.value.map(v=>d.value[v]),o=await fetch("/api/catalog/autocreate/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposals:s})});if(!o.ok)throw new Error("Failed to apply proposals");const l=await o.json();h.value=l;const r=h.value.filter(v=>v.success).length,m=h.value.filter(v=>!v.success).length;m===0?F(`Successfully applied ${r} columns`):C(`Applied ${r}, failed ${m}`)}catch{C("Failed to apply proposals")}finally{k.value=!1}}};return V({title:"Autocreate - AutoCode"}),(s,o)=>(i(),c("div",U,[e("header",W,[e("h1",null,a(s.$t("autocreate.title")),1),e("p",K,a(s.$t("autocreate.description")),1)]),e("div",Q,[e("div",X,[e("label",Y,a(s.$t("autocreate.prompt")),1),B(e("textarea",{id:"prompt","onUpdate:modelValue":o[0]||(o[0]=l=>z(f)?f.value=l:null),class:"form-input",rows:"4",placeholder:s.$t("autocreate.promptPlaceholder")},null,8,Z),[[J,t(f)]])]),e("button",{class:"btn btn-primary",disabled:!t(f).trim()||t(_),onClick:j},a(t(_)?s.$t("autocreate.generating"):s.$t("autocreate.generate")),9,x)]),t(b)||t(_)?(i(),c("div",ee,[e("h2",null,a(s.$t("autocreate.thinking")),1),e("div",{ref_key:"streamingRef",ref:$,class:"streaming-output"},[I(a(t(b))+" ",1),t(_)?(i(),c("span",se,"▊")):y("",!0)],512)])):y("",!0),t(g)?(i(),c("div",te,[e("p",ae,a(t(g)),1),e("button",{class:"btn btn-secondary",onClick:o[1]||(o[1]=l=>g.value="")},a(s.$t("form.dismiss")),1)])):y("",!0),t(d).length?(i(),c("div",oe,[e("h2",null,a(s.$t("autocreate.proposals")),1),e("div",le,[(i(!0),c(N,null,A(t(d),(l,r)=>(i(),c("div",{key:r,class:O(["proposal-card card",{selected:t(n).includes(r)}]),onClick:m=>T(r)},[e("div",ne,[e("input",{type:"checkbox",checked:t(n).includes(r),onClick:o[2]||(o[2]=q(()=>{},["stop"])),onChange:m=>T(r)},null,40,ce),e("h3",null,a(l.name),1)]),e("p",ie,a(l.description),1),e("div",ue,[e("span",pe,a(l.type),1)])],10,re))),128))]),e("div",de,[e("button",{class:"btn btn-secondary",onClick:D},a(t(w)?s.$t("autocreate.deselectAll"):s.$t("autocreate.selectAll")),1),e("button",{class:"btn btn-primary",disabled:!t(n).length||t(k),onClick:E},a(t(k)?s.$t("autocreate.applying"):s.$t("autocreate.apply"))+" ("+a(t(n).length)+") ",9,he)])])):y("",!0),t(h).length?(i(),c("div",ve,[e("h2",null,a(s.$t("autocreate.results")),1),e("ul",fe,[(i(!0),c(N,null,A(t(h),(l,r)=>(i(),c("li",{key:r,class:O({success:l.success,error:!l.success})},[e("span",_e,a(l.success?"✓":"✗"),1),e("span",ge,a(l.name),1),l.error?(i(),c("span",me,a(l.error),1)):y("",!0)],2))),128))])])):y("",!0)]))}}),Ce=G(ye,[["__scopeId","data-v-8a41c3ab"]]);export{Ce as default};
1
+ import{d as V,r as p,m as j,v as B,c,e,k as y,t as a,D as H,E as I,h as t,I as J,g as z,F as A,q as N,z as M,b as i,s as O,A as q,_ as G}from"./DvCAC3Uz.js";import{u as L}from"./Bl6DKdr9.js";const U={class:"autocreate-page"},W={class:"page-header"},K={class:"page-description"},Q={class:"card input-section"},X={class:"form-group"},Y={class:"form-label",for:"prompt"},Z=["placeholder"],x=["disabled"],ee={key:0,class:"card streaming-section"},se={key:0,class:"cursor"},te={key:1,class:"card error-section"},ae={class:"error-text"},oe={key:2,class:"proposals-section"},le={class:"proposals-grid"},re=["onClick"],ne={class:"proposal-header"},ce=["checked","onChange"],ie={class:"proposal-description"},ue={class:"proposal-meta"},pe={class:"badge"},de={class:"proposals-actions"},he=["disabled"],ve={key:3,class:"card results-section"},fe={class:"results-list"},_e={class:"result-icon"},ge={class:"result-name"},me={key:0,class:"result-error"},ye=V({__name:"autocreate",setup(ke){const{success:E,error:C}=L(),f=p(""),_=p(!1),b=p(!1),k=p(""),$=p(null),d=p([]),n=p([]),h=p([]),g=p(""),w=j(()=>d.value.length>0&&n.value.length===d.value.length),F=async()=>{if(f.value.trim()){_.value=!0,k.value="",d.value=[],h.value=[],n.value=[],g.value="";try{const s=await fetch("/api/catalog/autocreate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:f.value})});if(!s.ok)throw new Error(`HTTP error: ${s.status}`);const o=s.body?.getReader(),l=new TextDecoder;if(o){let r="";for(;;){const{done:m,value:v}=await o.read();if(m)break;r+=l.decode(v,{stream:!0});const P=r.split(`
2
+ `);r=P.pop()||"";for(const S of P)if(S.startsWith("data: "))try{const u=JSON.parse(S.slice(6));u.type==="thinking"&&u.content?(k.value+=u.content,M(()=>{$.value&&($.value.scrollTop=$.value.scrollHeight)})):u.type==="proposals"&&u.proposals?(d.value=u.proposals,k.value=""):u.type==="error"&&u.message&&(g.value=u.message)}catch{}}}}catch{g.value="Failed to generate proposals. Please try again.",C("Generation failed")}finally{_.value=!1}}},T=s=>{const o=n.value.indexOf(s);o===-1?n.value.push(s):n.value.splice(o,1)},D=()=>{w.value?n.value=[]:n.value=d.value.map((s,o)=>o)},R=async()=>{if(n.value.length){b.value=!0,h.value=[];try{const s=n.value.map(v=>d.value[v]),o=await fetch("/api/catalog/autocreate/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposals:s})});if(!o.ok)throw new Error("Failed to apply proposals");const l=await o.json();h.value=l;const r=h.value.filter(v=>v.success).length,m=h.value.filter(v=>!v.success).length;m===0?E(`Successfully applied ${r} columns`):C(`Applied ${r}, failed ${m}`)}catch{C("Failed to apply proposals")}finally{b.value=!1}}};return B({title:"Autocreate - AutoCode"}),(s,o)=>(i(),c("div",U,[e("header",W,[e("h1",null,a(s.$t("autocreate.title")),1),e("p",K,a(s.$t("autocreate.description")),1)]),e("div",Q,[e("div",X,[e("label",Y,a(s.$t("autocreate.prompt")),1),H(e("textarea",{id:"prompt","onUpdate:modelValue":o[0]||(o[0]=l=>J(f)?f.value=l:null),class:"form-input",rows:"4",placeholder:s.$t("autocreate.promptPlaceholder")},null,8,Z),[[I,t(f)]])]),e("button",{class:"btn btn-primary",disabled:!t(f).trim()||t(_),onClick:F},a(t(_)?s.$t("autocreate.generating"):s.$t("autocreate.generate")),9,x)]),t(k)||t(_)?(i(),c("div",ee,[e("h2",null,a(s.$t("autocreate.thinking")),1),e("div",{ref_key:"streamingRef",ref:$,class:"streaming-output"},[z(a(t(k))+" ",1),t(_)?(i(),c("span",se,"▊")):y("",!0)],512)])):y("",!0),t(g)?(i(),c("div",te,[e("p",ae,a(t(g)),1),e("button",{class:"btn btn-secondary",onClick:o[1]||(o[1]=l=>g.value="")},a(s.$t("form.dismiss")),1)])):y("",!0),t(d).length?(i(),c("div",oe,[e("h2",null,a(s.$t("autocreate.proposals")),1),e("div",le,[(i(!0),c(A,null,N(t(d),(l,r)=>(i(),c("div",{key:r,class:O(["proposal-card card",{selected:t(n).includes(r)}]),onClick:m=>T(r)},[e("div",ne,[e("input",{type:"checkbox",checked:t(n).includes(r),onClick:o[2]||(o[2]=q(()=>{},["stop"])),onChange:m=>T(r)},null,40,ce),e("h3",null,a(l.name),1)]),e("p",ie,a(l.description),1),e("div",ue,[e("span",pe,a(l.type),1)])],10,re))),128))]),e("div",de,[e("button",{class:"btn btn-secondary",onClick:D},a(t(w)?s.$t("autocreate.deselectAll"):s.$t("autocreate.selectAll")),1),e("button",{class:"btn btn-primary",disabled:!t(n).length||t(b),onClick:R},a(t(b)?s.$t("autocreate.applying"):s.$t("autocreate.apply"))+" ("+a(t(n).length)+") ",9,he)])])):y("",!0),t(h).length?(i(),c("div",ve,[e("h2",null,a(s.$t("autocreate.results")),1),e("ul",fe,[(i(!0),c(A,null,N(t(h),(l,r)=>(i(),c("li",{key:r,class:O({success:l.success,error:!l.success})},[e("span",_e,a(l.success?"✓":"✗"),1),e("span",ge,a(l.name),1),l.error?(i(),c("span",me,a(l.error),1)):y("",!0)],2))),128))])])):y("",!0)]))}}),Ce=G(ye,[["__scopeId","data-v-8a41c3ab"]]);export{Ce as default};
@@ -1 +1 @@
1
- .landing-matrix-bg[data-v-b5216f08]{height:100%;left:0;opacity:.35;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.landing-demo[data-v-5e25f58c]{background:linear-gradient(135deg,#6366f11a,#a855f71a);border-radius:var(--landing-radius-xl);margin:0 auto;max-width:900px;padding:var(--landing-spacing-xl) var(--landing-spacing-lg);text-align:center}.landing-demo-content h2[data-v-5e25f58c]{background:var(--landing-gradient-1);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.landing-demo-content p[data-v-5e25f58c]{color:var(--landing-text-secondary);font-size:1.25rem;margin-bottom:var(--landing-spacing-xl);margin-left:auto;margin-right:auto;max-width:600px}.landing-btn-large[data-v-5e25f58c]{font-size:1.125rem;padding:var(--landing-spacing-md) var(--landing-spacing-xl)}.landing-podcast-player[data-v-5dee128b]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-xl);margin:0 auto;max-width:700px;padding:var(--landing-spacing-xl)}.podcast-info[data-v-5dee128b]{gap:var(--landing-spacing-md);margin-bottom:var(--landing-spacing-lg)}.podcast-artwork[data-v-5dee128b],.podcast-info[data-v-5dee128b]{align-items:center;display:flex}.podcast-artwork[data-v-5dee128b]{background:var(--landing-gradient-1);border-radius:var(--landing-radius-md);color:#fff;height:64px;justify-content:center;width:64px}.podcast-meta h3[data-v-5dee128b]{color:var(--landing-text-primary);font-size:1.125rem;margin:0 0 var(--landing-spacing-xs)}.podcast-lang-badge[data-v-5dee128b]{background:var(--landing-accent);border-radius:var(--landing-radius-sm);color:#fff;font-size:.75rem;font-weight:600;padding:2px 8px}.podcast-controls[data-v-5dee128b]{align-items:center;display:flex;gap:var(--landing-spacing-md)}.podcast-play-btn[data-v-5dee128b]{align-items:center;background:var(--landing-accent);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;transition:all var(--landing-transition);width:48px}.podcast-play-btn[data-v-5dee128b]:hover:not(:disabled){background:var(--landing-accent-hover);transform:scale(1.05)}.podcast-play-btn[data-v-5dee128b]:disabled{cursor:not-allowed;opacity:.5}.podcast-progress-container[data-v-5dee128b]{cursor:pointer;flex:1}.podcast-progress-bar[data-v-5dee128b]{background:var(--landing-border-color);border-radius:4px;height:8px;overflow:hidden}.podcast-progress-fill[data-v-5dee128b]{background:var(--landing-gradient-1);height:100%;transition:width .1s linear}.podcast-time[data-v-5dee128b]{color:var(--landing-text-muted);display:flex;font-size:.75rem;justify-content:space-between;margin-top:var(--landing-spacing-xs)}.podcast-speed[data-v-5dee128b]{display:flex;gap:4px}.podcast-speed button[data-v-5dee128b]{background:transparent;border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-sm);color:var(--landing-text-secondary);cursor:pointer;font-size:.75rem;padding:4px 8px;transition:all var(--landing-transition)}.podcast-speed button.active[data-v-5dee128b],.podcast-speed button[data-v-5dee128b]:hover{background:var(--landing-accent);border-color:var(--landing-accent);color:#fff}.podcast-volume[data-v-5dee128b]{align-items:center;display:flex;gap:var(--landing-spacing-xs)}.podcast-volume svg[data-v-5dee128b]{color:var(--landing-text-secondary)}.podcast-volume input[type=range][data-v-5dee128b]{-webkit-appearance:none;background:var(--landing-border-color);border-radius:4px;height:4px;width:80px}.podcast-volume input[type=range][data-v-5dee128b]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--landing-accent);border-radius:50%;cursor:pointer;height:14px;width:14px}@media(max-width:768px){.podcast-controls[data-v-5dee128b]{flex-wrap:wrap}.podcast-progress-container[data-v-5dee128b]{order:3;width:100%}.podcast-speed[data-v-5dee128b],.podcast-volume[data-v-5dee128b]{order:4}}.landing-pipeline-flow[data-v-b084b36d]{align-items:stretch;display:flex;gap:var(--landing-spacing-md);justify-content:center;margin-bottom:var(--landing-spacing-xl)}.pipeline-phase[data-v-b084b36d]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);flex:1;max-width:250px;padding:var(--landing-spacing-lg);text-align:center;transition:all var(--landing-transition)}.pipeline-phase[data-v-b084b36d]:hover{transform:translateY(-4px)}.pipeline-phase-blue[data-v-b084b36d]{border-top:3px solid #3b82f6}.pipeline-phase-purple[data-v-b084b36d]{border-top:3px solid #8b5cf6}.pipeline-phase-orange[data-v-b084b36d]{border-top:3px solid #f59e0b}.pipeline-phase-green[data-v-b084b36d]{border-top:3px solid #22c55e}.phase-icon[data-v-b084b36d]{font-size:2rem;margin-bottom:var(--landing-spacing-sm)}.pipeline-phase h3[data-v-b084b36d]{color:var(--landing-text-primary);font-size:1rem;margin-bottom:var(--landing-spacing-xs)}.pipeline-phase>p[data-v-b084b36d]{color:var(--landing-text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:var(--landing-spacing-sm)}.phase-items[data-v-b084b36d]{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.phase-item[data-v-b084b36d]{background:#8b5cf633;border-radius:var(--landing-radius-sm);color:#a78bfa;font-size:.7rem;padding:2px 6px}.pipeline-arrow[data-v-b084b36d]{align-items:center;color:var(--landing-text-muted);display:flex}.landing-pipeline-note[data-v-b084b36d]{align-items:center;background:#6366f11a;border-radius:var(--landing-radius-lg);display:flex;gap:var(--landing-spacing-md);justify-content:center;margin:0 auto;max-width:600px;padding:var(--landing-spacing-md) var(--landing-spacing-lg)}.note-icon[data-v-b084b36d]{font-size:1.5rem}.landing-pipeline-note p[data-v-b084b36d]{color:var(--landing-text-secondary);font-size:.9rem;margin:0}@media(max-width:900px){.landing-pipeline-flow[data-v-b084b36d]{align-items:center;flex-direction:column}.pipeline-phase[data-v-b084b36d]{max-width:100%;width:100%}.pipeline-arrow[data-v-b084b36d]{transform:rotate(90deg)}}.landing-autonomy-grid[data-v-89440757]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(3,1fr);margin-bottom:var(--landing-spacing-2xl)}.landing-autonomy-card[data-v-89440757]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);text-align:center;transition:all var(--landing-transition)}.landing-autonomy-card[data-v-89440757]:hover{border-color:var(--landing-accent);transform:translateY(-4px)}.autonomy-icon[data-v-89440757]{font-size:3rem;margin-bottom:var(--landing-spacing-md)}.landing-autonomy-card h3[data-v-89440757]{color:var(--landing-text-primary);font-size:1.25rem;margin-bottom:var(--landing-spacing-sm)}.landing-autonomy-card p[data-v-89440757]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6}.landing-autonomy-workflow[data-v-89440757]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);margin:0 auto;max-width:800px;overflow:hidden}.workflow-header[data-v-89440757]{background:#ffffff0d;border-bottom:1px solid var(--landing-border-color);color:var(--landing-text-secondary);font-size:.875rem;font-weight:600;padding:var(--landing-spacing-sm) var(--landing-spacing-md);text-align:center}.workflow-content[data-v-89440757]{padding:var(--landing-spacing-xl)}.workflow-source[data-v-89440757]{display:flex;justify-content:center}.workflow-node[data-v-89440757]{align-items:center;background:var(--landing-code-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-md);display:flex;gap:var(--landing-spacing-sm);padding:var(--landing-spacing-md) var(--landing-spacing-lg)}.source-node[data-v-89440757]{background:#6366f11a;border-color:var(--landing-accent)}.node-icon[data-v-89440757]{font-size:1.25rem}.node-text[data-v-89440757]{color:var(--landing-text-primary);font-size:.9rem}.workflow-arrow-down[data-v-89440757]{color:var(--landing-text-muted);display:flex;justify-content:center;padding:var(--landing-spacing-sm) 0}.workflow-paths[data-v-89440757]{display:grid;gap:var(--landing-spacing-md);grid-template-columns:repeat(3,1fr)}.workflow-path[data-v-89440757]{align-items:center;display:flex;flex-direction:column;gap:var(--landing-spacing-sm)}.path-condition[data-v-89440757]{background:var(--landing-code-bg);border-radius:var(--landing-radius-sm);color:var(--landing-text-muted);font-size:.75rem;padding:4px 8px}.action-node[data-v-89440757]{flex-direction:column;text-align:center;width:100%}.path-1 .action-node[data-v-89440757]{background:#22c55e1a;border-color:#22c55e}.path-2 .action-node[data-v-89440757]{background:#f59e0b1a;border-color:#f59e0b}.path-3 .action-node[data-v-89440757]{background:#8b5cf61a;border-color:#8b5cf6}@media(max-width:768px){.landing-autonomy-grid[data-v-89440757],.workflow-paths[data-v-89440757]{grid-template-columns:1fr}}.landing-commands-table-wrapper[data-v-dc1385aa]{margin:0 auto;max-width:800px;overflow-x:auto}.landing-commands-table[data-v-dc1385aa]{border-collapse:collapse;width:100%}.landing-commands-table td[data-v-dc1385aa],.landing-commands-table th[data-v-dc1385aa]{border:1px solid var(--landing-border-color);padding:var(--landing-spacing-md) var(--landing-spacing-lg);text-align:left}.landing-commands-table th[data-v-dc1385aa]{background:#6366f11a;color:var(--landing-text-primary);font-weight:600}.landing-commands-table td[data-v-dc1385aa]{background:var(--landing-card-bg);color:var(--landing-text-secondary)}.landing-commands-table code[data-v-dc1385aa]{background:var(--landing-code-bg);border-radius:var(--landing-radius-sm);color:var(--landing-accent);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;padding:4px 8px}.landing-commands-table tr:hover td[data-v-dc1385aa]{background:#6366f10d}.landing-architecture-flow[data-v-ab99f707]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--landing-spacing-md);justify-content:center;margin-bottom:var(--landing-spacing-2xl)}.flow-step[data-v-ab99f707]{align-items:center;background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);display:flex;flex-direction:column;gap:var(--landing-spacing-sm);padding:var(--landing-spacing-lg) var(--landing-spacing-xl);transition:all var(--landing-transition)}.flow-step.highlight[data-v-ab99f707]{background:linear-gradient(135deg,#6366f133,#a855f733);border-color:var(--landing-accent)}.flow-step.success[data-v-ab99f707]{background:#22c55e1a;border-color:#22c55e}.flow-icon[data-v-ab99f707]{font-size:2rem}.flow-step span[data-v-ab99f707]{color:var(--landing-text-primary);font-weight:600}.flow-arrow[data-v-ab99f707]{color:var(--landing-text-muted);font-size:1.5rem}.landing-architecture-details[data-v-ab99f707]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(3,1fr)}.architecture-detail-card[data-v-ab99f707]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);text-align:center}.detail-icon[data-v-ab99f707]{font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.architecture-detail-card h3[data-v-ab99f707]{color:var(--landing-text-primary);font-size:1.125rem;margin-bottom:var(--landing-spacing-sm)}.architecture-detail-card p[data-v-ab99f707]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6}@media(max-width:768px){.landing-architecture-flow[data-v-ab99f707]{flex-direction:column}.flow-arrow[data-v-ab99f707]{transform:rotate(90deg)}.landing-architecture-details[data-v-ab99f707]{grid-template-columns:1fr}}.landing-roadmap-grid[data-v-c498be6d]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(2,1fr);margin-bottom:var(--landing-spacing-xl);margin-left:auto;margin-right:auto;max-width:800px}.landing-roadmap-card[data-v-c498be6d]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);position:relative;text-align:center}.roadmap-icon[data-v-c498be6d]{font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.landing-roadmap-card h3[data-v-c498be6d]{color:var(--landing-text-primary);font-size:1.25rem;margin-bottom:var(--landing-spacing-sm)}.landing-roadmap-card p[data-v-c498be6d]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:var(--landing-spacing-md)}.roadmap-status[data-v-c498be6d]{background:#eab30833;border-radius:var(--landing-radius-sm);color:#eab308;font-size:.75rem;font-weight:600;padding:4px 12px;text-transform:uppercase}.landing-roadmap-cta[data-v-c498be6d]{text-align:center}@media(max-width:768px){.landing-roadmap-grid[data-v-c498be6d]{grid-template-columns:1fr}}.landing-footer[data-v-63ea1028]{border-top:1px solid var(--landing-border);padding:3rem 2rem;position:relative;z-index:1}.landing-footer-content[data-v-63ea1028]{gap:1.5rem;margin:0 auto;max-width:800px;text-align:center}.landing-footer-brand[data-v-63ea1028],.landing-footer-content[data-v-63ea1028]{align-items:center;display:flex;flex-direction:column}.landing-footer-brand[data-v-63ea1028]{gap:.5rem}.landing-footer-logo[data-v-63ea1028]{background:var(--landing-gradient-1);-webkit-background-clip:text;font-size:1.75rem;font-weight:700;-webkit-text-fill-color:transparent;background-clip:text}.landing-footer-tagline[data-v-63ea1028]{color:var(--landing-text-muted);font-size:.875rem}.landing-footer-nav[data-v-63ea1028]{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.landing-footer-nav a[data-v-63ea1028]{align-items:center;color:var(--landing-text-secondary);display:inline-flex;font-size:.9rem;gap:.5rem;text-decoration:none;transition:color .2s}.landing-footer-nav a[data-v-63ea1028]:hover{color:var(--landing-accent-light)}.landing-footer-nav svg[data-v-63ea1028]{opacity:.7}.landing-footer-nav a:hover svg[data-v-63ea1028]{opacity:1}.landing-footer-dashboard[data-v-63ea1028]{background:var(--landing-accent);border-radius:6px;color:#fff!important;font-weight:500;padding:.5rem 1rem}.landing-footer-dashboard[data-v-63ea1028]:hover{background:var(--landing-accent-light)}.landing-footer-bottom[data-v-63ea1028]{border-top:1px solid var(--landing-border);padding-top:1rem;width:100%}.landing-footer-copy[data-v-63ea1028]{color:var(--landing-text-muted);font-size:.8rem;margin:0}@media(max-width:768px){.landing-footer[data-v-63ea1028]{padding:2rem 1rem}.landing-footer-nav[data-v-63ea1028]{gap:1rem}}
1
+ .landing-matrix-bg[data-v-b5216f08]{height:100%;left:0;opacity:.35;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.landing-demo[data-v-5e25f58c]{background:linear-gradient(135deg,#6366f11a,#a855f71a);border-radius:var(--landing-radius-xl);margin:0 auto;max-width:900px;padding:var(--landing-spacing-xl) var(--landing-spacing-lg);text-align:center}.landing-demo-content h2[data-v-5e25f58c]{background:var(--landing-gradient-1);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.landing-demo-content p[data-v-5e25f58c]{color:var(--landing-text-secondary);font-size:1.25rem;margin-bottom:var(--landing-spacing-xl);margin-left:auto;margin-right:auto;max-width:600px}.landing-btn-large[data-v-5e25f58c]{font-size:1.125rem;padding:var(--landing-spacing-md) var(--landing-spacing-xl)}.landing-podcast-player[data-v-5dee128b]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-xl);margin:0 auto;max-width:700px;padding:var(--landing-spacing-xl)}.podcast-info[data-v-5dee128b]{gap:var(--landing-spacing-md);margin-bottom:var(--landing-spacing-lg)}.podcast-artwork[data-v-5dee128b],.podcast-info[data-v-5dee128b]{align-items:center;display:flex}.podcast-artwork[data-v-5dee128b]{background:var(--landing-gradient-1);border-radius:var(--landing-radius-md);color:#fff;height:64px;justify-content:center;width:64px}.podcast-meta h3[data-v-5dee128b]{color:var(--landing-text-primary);font-size:1.125rem;margin:0 0 var(--landing-spacing-xs)}.podcast-lang-badge[data-v-5dee128b]{background:var(--landing-accent);border-radius:var(--landing-radius-sm);color:#fff;font-size:.75rem;font-weight:600;padding:2px 8px}.podcast-controls[data-v-5dee128b]{align-items:center;display:flex;gap:var(--landing-spacing-md)}.podcast-play-btn[data-v-5dee128b]{align-items:center;background:var(--landing-accent);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;transition:all var(--landing-transition);width:48px}.podcast-play-btn[data-v-5dee128b]:hover:not(:disabled){background:var(--landing-accent-hover);transform:scale(1.05)}.podcast-play-btn[data-v-5dee128b]:disabled{cursor:not-allowed;opacity:.5}.podcast-progress-container[data-v-5dee128b]{cursor:pointer;flex:1}.podcast-progress-bar[data-v-5dee128b]{background:var(--landing-border-color);border-radius:4px;height:8px;overflow:hidden}.podcast-progress-fill[data-v-5dee128b]{background:var(--landing-gradient-1);height:100%;transition:width .1s linear}.podcast-time[data-v-5dee128b]{color:var(--landing-text-muted);display:flex;font-size:.75rem;justify-content:space-between;margin-top:var(--landing-spacing-xs)}.podcast-speed[data-v-5dee128b]{display:flex;gap:4px}.podcast-speed button[data-v-5dee128b]{background:transparent;border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-sm);color:var(--landing-text-secondary);cursor:pointer;font-size:.75rem;padding:4px 8px;transition:all var(--landing-transition)}.podcast-speed button.active[data-v-5dee128b],.podcast-speed button[data-v-5dee128b]:hover{background:var(--landing-accent);border-color:var(--landing-accent);color:#fff}.podcast-volume[data-v-5dee128b]{align-items:center;display:flex;gap:var(--landing-spacing-xs)}.podcast-volume svg[data-v-5dee128b]{color:var(--landing-text-secondary)}.podcast-volume input[type=range][data-v-5dee128b]{-webkit-appearance:none;background:var(--landing-border-color);border-radius:4px;height:4px;width:80px}.podcast-volume input[type=range][data-v-5dee128b]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--landing-accent);border-radius:50%;cursor:pointer;height:14px;width:14px}@media(max-width:768px){.podcast-controls[data-v-5dee128b]{flex-wrap:wrap}.podcast-progress-container[data-v-5dee128b]{order:3;width:100%}.podcast-speed[data-v-5dee128b],.podcast-volume[data-v-5dee128b]{order:4}}.landing-pipeline-flow[data-v-b084b36d]{align-items:stretch;display:flex;gap:var(--landing-spacing-md);justify-content:center;margin-bottom:var(--landing-spacing-xl)}.pipeline-phase[data-v-b084b36d]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);flex:1;max-width:250px;padding:var(--landing-spacing-lg);text-align:center;transition:all var(--landing-transition)}.pipeline-phase[data-v-b084b36d]:hover{transform:translateY(-4px)}.pipeline-phase-blue[data-v-b084b36d]{border-top:3px solid #3b82f6}.pipeline-phase-purple[data-v-b084b36d]{border-top:3px solid #8b5cf6}.pipeline-phase-orange[data-v-b084b36d]{border-top:3px solid #f59e0b}.pipeline-phase-green[data-v-b084b36d]{border-top:3px solid #22c55e}.phase-icon[data-v-b084b36d]{font-size:2rem;margin-bottom:var(--landing-spacing-sm)}.pipeline-phase h3[data-v-b084b36d]{color:var(--landing-text-primary);font-size:1rem;margin-bottom:var(--landing-spacing-xs)}.pipeline-phase>p[data-v-b084b36d]{color:var(--landing-text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:var(--landing-spacing-sm)}.phase-items[data-v-b084b36d]{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.phase-item[data-v-b084b36d]{background:#8b5cf633;border-radius:var(--landing-radius-sm);color:#a78bfa;font-size:.7rem;padding:2px 6px}.pipeline-arrow[data-v-b084b36d]{align-items:center;color:var(--landing-text-muted);display:flex}.landing-pipeline-note[data-v-b084b36d]{align-items:center;background:#6366f11a;border-radius:var(--landing-radius-lg);display:flex;gap:var(--landing-spacing-md);justify-content:center;margin:0 auto;max-width:600px;padding:var(--landing-spacing-md) var(--landing-spacing-lg)}.note-icon[data-v-b084b36d]{font-size:1.5rem}.landing-pipeline-note p[data-v-b084b36d]{color:var(--landing-text-secondary);font-size:.9rem;margin:0}@media(max-width:900px){.landing-pipeline-flow[data-v-b084b36d]{align-items:center;flex-direction:column}.pipeline-phase[data-v-b084b36d]{max-width:100%;width:100%}.pipeline-arrow[data-v-b084b36d]{transform:rotate(90deg)}}.landing-autonomy-grid[data-v-89440757]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(3,1fr);margin-bottom:var(--landing-spacing-2xl)}.landing-autonomy-card[data-v-89440757]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);text-align:center;transition:all var(--landing-transition)}.landing-autonomy-card[data-v-89440757]:hover{border-color:var(--landing-accent);transform:translateY(-4px)}.autonomy-icon[data-v-89440757]{font-size:3rem;margin-bottom:var(--landing-spacing-md)}.landing-autonomy-card h3[data-v-89440757]{color:var(--landing-text-primary);font-size:1.25rem;margin-bottom:var(--landing-spacing-sm)}.landing-autonomy-card p[data-v-89440757]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6}.landing-autonomy-workflow[data-v-89440757]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);margin:0 auto;max-width:800px;overflow:hidden}.workflow-header[data-v-89440757]{background:#ffffff0d;border-bottom:1px solid var(--landing-border-color);color:var(--landing-text-secondary);font-size:.875rem;font-weight:600;padding:var(--landing-spacing-sm) var(--landing-spacing-md);text-align:center}.workflow-content[data-v-89440757]{padding:var(--landing-spacing-xl)}.workflow-source[data-v-89440757]{display:flex;justify-content:center}.workflow-node[data-v-89440757]{align-items:center;background:var(--landing-code-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-md);display:flex;gap:var(--landing-spacing-sm);padding:var(--landing-spacing-md) var(--landing-spacing-lg)}.source-node[data-v-89440757]{background:#6366f11a;border-color:var(--landing-accent)}.node-icon[data-v-89440757]{font-size:1.25rem}.node-text[data-v-89440757]{color:var(--landing-text-primary);font-size:.9rem}.workflow-arrow-down[data-v-89440757]{color:var(--landing-text-muted);display:flex;justify-content:center;padding:var(--landing-spacing-sm) 0}.workflow-paths[data-v-89440757]{display:grid;gap:var(--landing-spacing-md);grid-template-columns:repeat(3,1fr)}.workflow-path[data-v-89440757]{align-items:center;display:flex;flex-direction:column;gap:var(--landing-spacing-sm)}.path-condition[data-v-89440757]{background:var(--landing-code-bg);border-radius:var(--landing-radius-sm);color:var(--landing-text-muted);font-size:.75rem;padding:4px 8px}.action-node[data-v-89440757]{flex-direction:column;text-align:center;width:100%}.path-1 .action-node[data-v-89440757]{background:#22c55e1a;border-color:#22c55e}.path-2 .action-node[data-v-89440757]{background:#f59e0b1a;border-color:#f59e0b}.path-3 .action-node[data-v-89440757]{background:#8b5cf61a;border-color:#8b5cf6}@media(max-width:768px){.landing-autonomy-grid[data-v-89440757],.workflow-paths[data-v-89440757]{grid-template-columns:1fr}}.landing-commands-table-wrapper[data-v-dc1385aa]{margin:0 auto;max-width:800px;overflow-x:auto}.landing-commands-table[data-v-dc1385aa]{border-collapse:collapse;width:100%}.landing-commands-table td[data-v-dc1385aa],.landing-commands-table th[data-v-dc1385aa]{border:1px solid var(--landing-border-color);padding:var(--landing-spacing-md) var(--landing-spacing-lg);text-align:left}.landing-commands-table th[data-v-dc1385aa]{background:#6366f11a;color:var(--landing-text-primary);font-weight:600}.landing-commands-table td[data-v-dc1385aa]{background:var(--landing-card-bg);color:var(--landing-text-secondary)}.landing-commands-table code[data-v-dc1385aa]{background:var(--landing-code-bg);border-radius:var(--landing-radius-sm);color:var(--landing-accent);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;padding:4px 8px}.landing-commands-table tr:hover td[data-v-dc1385aa]{background:#6366f10d}.landing-architecture-flow[data-v-ab99f707]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--landing-spacing-md);justify-content:center;margin-bottom:var(--landing-spacing-2xl)}.flow-step[data-v-ab99f707]{align-items:center;background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);display:flex;flex-direction:column;gap:var(--landing-spacing-sm);padding:var(--landing-spacing-lg) var(--landing-spacing-xl);transition:all var(--landing-transition)}.flow-step.highlight[data-v-ab99f707]{background:linear-gradient(135deg,#6366f133,#a855f733);border-color:var(--landing-accent)}.flow-step.success[data-v-ab99f707]{background:#22c55e1a;border-color:#22c55e}.flow-icon[data-v-ab99f707]{font-size:2rem}.flow-step span[data-v-ab99f707]{color:var(--landing-text-primary);font-weight:600}.flow-arrow[data-v-ab99f707]{color:var(--landing-text-muted);font-size:1.5rem}.landing-architecture-details[data-v-ab99f707]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(3,1fr)}.architecture-detail-card[data-v-ab99f707]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);text-align:center}.detail-icon[data-v-ab99f707]{font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.architecture-detail-card h3[data-v-ab99f707]{color:var(--landing-text-primary);font-size:1.125rem;margin-bottom:var(--landing-spacing-sm)}.architecture-detail-card p[data-v-ab99f707]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6}@media(max-width:768px){.landing-architecture-flow[data-v-ab99f707]{flex-direction:column}.flow-arrow[data-v-ab99f707]{transform:rotate(90deg)}.landing-architecture-details[data-v-ab99f707]{grid-template-columns:1fr}}.landing-roadmap-grid[data-v-c498be6d]{display:grid;gap:var(--landing-spacing-lg);grid-template-columns:repeat(2,1fr);margin-bottom:var(--landing-spacing-xl);margin-left:auto;margin-right:auto;max-width:800px}.landing-roadmap-card[data-v-c498be6d]{background:var(--landing-card-bg);border:1px solid var(--landing-border-color);border-radius:var(--landing-radius-lg);padding:var(--landing-spacing-xl);position:relative;text-align:center}.roadmap-icon[data-v-c498be6d]{font-size:2.5rem;margin-bottom:var(--landing-spacing-md)}.landing-roadmap-card h3[data-v-c498be6d]{color:var(--landing-text-primary);font-size:1.25rem;margin-bottom:var(--landing-spacing-sm)}.landing-roadmap-card p[data-v-c498be6d]{color:var(--landing-text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:var(--landing-spacing-md)}.roadmap-status[data-v-c498be6d]{background:#eab30833;border-radius:var(--landing-radius-sm);color:#eab308;font-size:.75rem;font-weight:600;padding:4px 12px;text-transform:uppercase}.landing-roadmap-cta[data-v-c498be6d]{text-align:center}@media(max-width:768px){.landing-roadmap-grid[data-v-c498be6d]{grid-template-columns:1fr}}.landing-footer[data-v-22d40de7]{border-top:1px solid var(--landing-border);padding:3rem 2rem;position:relative;z-index:1}.landing-footer-content[data-v-22d40de7]{gap:1.5rem;margin:0 auto;max-width:800px;text-align:center}.landing-footer-brand[data-v-22d40de7],.landing-footer-content[data-v-22d40de7]{align-items:center;display:flex;flex-direction:column}.landing-footer-brand[data-v-22d40de7]{gap:.5rem}.landing-footer-logo[data-v-22d40de7]{background:var(--landing-gradient-1);-webkit-background-clip:text;font-size:1.75rem;font-weight:700;-webkit-text-fill-color:transparent;background-clip:text}.landing-footer-tagline[data-v-22d40de7]{color:var(--landing-text-muted);font-size:.875rem}.landing-footer-nav[data-v-22d40de7]{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.landing-footer-nav a[data-v-22d40de7]{align-items:center;color:var(--landing-text-secondary);display:inline-flex;font-size:.9rem;gap:.5rem;text-decoration:none;transition:color .2s}.landing-footer-nav a[data-v-22d40de7]:hover{color:var(--landing-accent-light)}.landing-footer-nav svg[data-v-22d40de7]{opacity:.7}.landing-footer-nav a:hover svg[data-v-22d40de7]{opacity:1}.landing-footer-dashboard[data-v-22d40de7]{background:var(--landing-accent);border-radius:6px;color:#fff!important;font-weight:500;padding:.5rem 1rem}.landing-footer-dashboard[data-v-22d40de7]:hover{background:var(--landing-accent-light)}.landing-footer-bottom[data-v-22d40de7]{border-top:1px solid var(--landing-border);padding-top:1rem;width:100%}.landing-footer-copy[data-v-22d40de7]{color:var(--landing-text-muted);font-size:.8rem;margin:0}@media(max-width:768px){.landing-footer[data-v-22d40de7]{padding:2rem 1rem}.landing-footer-nav[data-v-22d40de7]{gap:1rem}}
@@ -0,0 +1 @@
1
+ import{d as h,r as $,o as O,a as U,c as r,b as d,_ as T,u as f,e as n,f as m,w as S,g as A,t as e,h as o,i as W,j as D,k as F,l as I,m as P,n as X,p as Y,F as b,q as x,s as R,v as J}from"./DvCAC3Uz.js";import{_ as E}from"./DMHPjZJ1.js";import{_ as K}from"./CT76fD4_.js";const Q=h({__name:"LandingMatrixBg",setup(v){const t=$(null),l=['autocode new "Fix login bug" -p P1',"autocode serve --expose","autocode next AC-000042","autocode move AC-000001 review","autocode pipeline show default","autocode stats --session","autocode health --verbose","autocode list --tree","autocode history AC-000015 --full",'autocode comment AC-000003 "Done"',"autocode catalog add security-audit","autocode init && autocode serve","GET /api/issues?column=in-progress","POST /api/issues { title, priority }","PATCH /api/issues/AC-000001","POST /api/issues/:id/next","GET /api/pipelines/default","GET /api/workflow/health","POST /api/issues/:id/comments","GET /api/stats",'claude -p "Review this code"','claude -p "Fix the failing tests"','claude -p "Add security validation"','claude -p "Refactor for clarity"',"await claude.execute(prompt)",'claude --model opus "Analyze"',"pipeline.advance(issue)","if (review.passed) next()","while (!tests.green) retry()","bestPractices.validate(code)","security.audit(changes)","duplication.detect(diff)","consistency.check(style)","prisma.issue.findMany()","prisma.issue.update({ data })","await prisma.$transaction()","SELECT * FROM issues WHERE done"],i=["rgba(99, 102, 241, ","rgba(139, 92, 246, ","rgba(168, 85, 247, ","rgba(192, 132, 252, ","rgba(236, 72, 153, "];let a=[],s=null;function u(){const g=t.value;if(!g)return;const L=()=>{g.width=window.innerWidth,g.height=window.innerHeight};L(),window.addEventListener("resize",L);const _=g.getContext("2d");if(!_)return;const z=Math.floor(window.innerWidth/60);a=[];for(let C=0;C<z;C++)y(g.width,g.height);function j(){if(!_||!g)return;_.clearRect(0,0,g.width,g.height);const C=Date.now();for(let M=a.length-1;M>=0;M--){const c=a[M];if(c.phase==="writing")c.charIndex+=c.speed*.5,c.charIndex>=c.text.length&&(c.phase="visible",c.visibleTime=C);else if(c.phase==="visible")C-c.visibleTime>300+Math.random()*500&&(c.phase="fading");else if(c.phase==="fading"&&(c.opacity-=.03*c.speed,c.opacity<=0)){a.splice(M,1),y(g.width,g.height);continue}_.font=`${c.fontSize}px 'JetBrains Mono', 'Fira Code', monospace`;const H=c.text.substring(0,Math.floor(c.charIndex));if(_.shadowColor=c.color+"0.5)",_.shadowBlur=8,_.fillStyle=c.color+(c.opacity*.8).toFixed(2)+")",_.fillText(H,c.x,c.y),_.shadowBlur=0,_.fillStyle=c.color+c.opacity.toFixed(2)+")",_.fillText(H,c.x,c.y),c.phase==="writing"&&Math.floor(C/100)%2===0){const B=c.x+_.measureText(H).width;_.fillStyle=c.color+"0.9)",_.fillRect(B+2,c.y-c.fontSize+4,2,c.fontSize)}}s=requestAnimationFrame(j)}j()}function y(g,L){const _=10+Math.random()*6,z=l[Math.floor(Math.random()*l.length)];a.push({x:Math.random()*(g-300),y:50+Math.random()*(L-100),text:z,charIndex:0,opacity:.2+Math.random()*.4,speed:.5+Math.random()*3.5,color:i[Math.floor(Math.random()*i.length)],phase:"writing",visibleTime:0,fontSize:_})}return O(()=>{u()}),U(()=>{s&&cancelAnimationFrame(s)}),(g,L)=>(d(),r("canvas",{ref_key:"canvasRef",ref:t,class:"landing-matrix-bg","aria-hidden":"true"},null,512))}}),Z=Object.assign(T(Q,[["__scopeId","data-v-b5216f08"]]),{__name:"LandingMatrixBg"}),nn={class:"landing-nav"},tn={class:"landing-nav-container"},en={class:"landing-beta-badge"},on={class:"landing-nav-links"},an={href:"#features"},sn={href:"#workflow"},ln={href:"#installation"},dn={href:"#faq"},cn={href:"#api"},rn={class:"landing-nav-right"},pn=h({__name:"LandingNav",setup(v){const{t}=f(),l=W(),i=$(!1);return O(()=>{i.value=window.location.host.endsWith(".gitlab.io")}),(a,s)=>{const u=E,y=K;return d(),r("nav",nn,[n("div",tn,[m(u,{to:"/",class:"landing-logo"},{default:S(()=>[s[0]||(s[0]=n("span",null,"⚡",-1)),s[1]||(s[1]=A(" AutoCode ",-1)),n("span",en,"v"+e(o(l).public.appVersion),1)]),_:1}),n("ul",on,[n("li",null,[n("a",an,e(o(t)("landing.nav.features")),1)]),n("li",null,[n("a",sn,e(o(t)("landing.nav.workflow")),1)]),n("li",null,[n("a",ln,e(o(t)("landing.nav.installation")),1)]),n("li",null,[n("a",dn,e(o(t)("landing.nav.faq")),1)]),n("li",null,[n("a",cn,e(o(t)("landing.nav.api")),1)])]),n("div",rn,[m(y),o(i)?F("",!0):(d(),D(u,{key:0,to:"/kanban",class:"landing-nav-cta"},{default:S(()=>[A(e(o(t)("landing.nav.dashboard")),1)]),_:1}))])])])}}}),un=Object.assign(pn,{__name:"LandingNav"}),_n={class:"landing-hero"},gn={class:"landing-hero-content"},mn={class:"landing-hero-badge"},hn={class:"gradient"},vn={class:"landing-hero-buttons"},fn={href:"#installation",class:"landing-btn landing-btn-primary"},yn=h({__name:"LandingHero",setup(v){const{t}=f();return(l,i)=>(d(),r("section",_n,[n("div",gn,[n("div",mn,[i[0]||(i[0]=n("span",null,"Wrapper",-1)),n("span",null,e(o(t)("landing.hero.badge")),1)]),n("h1",null,[A(e(o(t)("landing.hero.title1")),1),i[1]||(i[1]=n("br",null,null,-1)),n("span",hn,e(o(t)("landing.hero.title2")),1)]),n("p",null,e(o(t)("landing.hero.description")),1),n("div",vn,[n("a",fn,[A(e(o(t)("landing.hero.cta"))+" ",1),i[2]||(i[2]=n("svg",{width:"20",height:"20",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7l5 5m0 0l-5 5m5-5H6"})],-1))]),i[3]||(i[3]=I('<a href="https://gitlab.com/evkoh/autocode" class="landing-btn landing-btn-secondary" target="_blank"><svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"></path></svg> GitLab </a><a href="https://www.npmjs.com/package/@autocode-cli/autocode" class="landing-btn landing-btn-secondary" target="_blank"><svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M0 7.334v8h6.666v1.332H12v-1.332h12v-8H0zm6.666 6.664H5.334v-4H3.999v4H1.335V8.667h5.331v5.331zm4 0v1.336H8.001V8.667h5.334v5.332h-2.669v-.001zm12.001 0h-1.33v-4h-1.336v4h-1.335v-4h-1.33v4h-2.671V8.667h8.002v5.331zM10.665 10H12v2.667h-1.335V10z"></path></svg> npm </a>',2))]),i[4]||(i[4]=I('<div class="landing-terminal"><div class="landing-terminal-header"><span class="landing-terminal-dot red"></span><span class="landing-terminal-dot yellow"></span><span class="landing-terminal-dot green"></span></div><div class="landing-terminal-body"><div class="landing-terminal-line"><span class="landing-terminal-prompt">$</span><span class="landing-terminal-command">npm install -g @autocode-cli/autocode</span></div><div class="landing-terminal-output"><span style="color:#22c55e;">+ @autocode-cli/autocode installed</span></div><div class="landing-terminal-line"><span class="landing-terminal-prompt">$</span><span class="landing-terminal-command">autocode serve</span></div><div class="landing-terminal-output"> Dashboard available at <span class="landing-terminal-accent">http://localhost:3000</span></div></div></div>',1))])]))}}),kn=Object.assign(yn,{__name:"LandingHero"}),wn={id:"demo",class:"landing-section landing-demo"},bn={class:"landing-demo-content"},$n={key:1,href:"https://gitlab.com/evkoh/autocode",target:"_blank",class:"landing-btn landing-btn-primary landing-btn-large"},xn=h({__name:"LandingDemo",setup(v){const{t}=f(),l=$(!1);return O(()=>{const i=window.location.hostname;l.value=i==="localhost"||i==="127.0.0.1"}),(i,a)=>{const s=E;return d(),r("section",wn,[n("div",bn,[n("h2",null,e(o(t)("landing.demo.title")),1),n("p",null,e(o(t)("landing.demo.description")),1),o(l)?(d(),D(s,{key:0,to:"/kanban",class:"landing-btn landing-btn-primary landing-btn-large"},{default:S(()=>[A(e(o(t)("landing.demo.cta"))+" ",1),a[0]||(a[0]=n("svg",{width:"24",height:"24",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M14 5l7 7m0 0l-7 7m7-7H3"})],-1))]),_:1})):(d(),r("a",$n,[A(e(o(t)("landing.demo.ctaGitlab"))+" ",1),a[1]||(a[1]=n("svg",{width:"24",height:"24",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M14 5l7 7m0 0l-7 7m7-7H3"})],-1))]))])])}}}),Ln=Object.assign(T(xn,[["__scopeId","data-v-5e25f58c"]]),{__name:"LandingDemo"}),Cn={id:"podcast",class:"landing-section"},Mn={class:"landing-section-header"},An={class:"landing-podcast-player"},Tn=["src"],zn={class:"podcast-info"},Hn={class:"podcast-meta"},jn={class:"podcast-lang-badge"},Bn={class:"podcast-controls"},Pn=["disabled"],Sn={key:0,width:"24",height:"24",fill:"currentColor",viewBox:"0 0 24 24"},Fn={key:1,width:"24",height:"24",fill:"currentColor",viewBox:"0 0 24 24"},In={class:"podcast-progress-bar"},On={class:"podcast-time"},Rn={class:"podcast-speed"},Vn=["onClick"],qn={class:"podcast-volume"},Dn=["value"],En=h({__name:"LandingPodcast",setup(v){const{t,locale:l}=f(),i=$(null),a=$(!1),s=$(0),u=$(0),y=$(1),g=$(1),L=$(!1),_=P(()=>`./media/podcast/${l.value}.m4a`),z=P(()=>M(s.value)),j=P(()=>M(u.value)),C=P(()=>u.value>0?s.value/u.value*100:0);function M(k){const p=Math.floor(k/60),w=Math.floor(k%60);return`${p}:${w.toString().padStart(2,"0")}`}function c(){i.value&&(a.value?i.value.pause():i.value.play())}function H(){i.value&&(s.value=i.value.currentTime)}function B(){i.value&&(u.value=i.value.duration,L.value=!0)}function V(k){if(!i.value||!u.value)return;const w=k.currentTarget.getBoundingClientRect(),N=(k.clientX-w.left)/w.width;i.value.currentTime=N*u.value}function q(k){g.value=k,i.value&&(i.value.playbackRate=k)}function G(k){const p=k.target;y.value=parseFloat(p.value),i.value&&(i.value.volume=y.value)}return X(l,()=>{if(i.value){const k=a.value,p=s.value;i.value.load(),i.value.currentTime=p,k&&i.value.play()}}),(k,p)=>(d(),r("section",Cn,[n("div",Mn,[n("h2",null,e(o(t)("landing.podcast.title")),1),n("p",null,e(o(t)("landing.podcast.description")),1)]),n("div",An,[n("audio",{ref_key:"audioRef",ref:i,src:o(_),preload:"metadata",onTimeupdate:H,onLoadedmetadata:B,onPlay:p[0]||(p[0]=w=>a.value=!0),onPause:p[1]||(p[1]=w=>a.value=!1),onEnded:p[2]||(p[2]=w=>a.value=!1)},null,40,Tn),n("div",zn,[p[3]||(p[3]=n("div",{class:"podcast-artwork"},[n("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"currentColor"},[n("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})])],-1)),n("div",Hn,[n("h3",null,e(o(t)("landing.podcast.episode")),1),n("span",jn,e(o(l).toUpperCase()),1)])]),n("div",Bn,[n("button",{class:"podcast-play-btn",disabled:!o(L),onClick:c},[o(a)?(d(),r("svg",Fn,[...p[5]||(p[5]=[n("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(d(),r("svg",Sn,[...p[4]||(p[4]=[n("path",{d:"M8 5v14l11-7z"},null,-1)])]))],8,Pn),n("div",{class:"podcast-progress-container",onClick:V},[n("div",In,[n("div",{class:"podcast-progress-fill",style:Y({width:`${o(C)}%`})},null,4)]),n("div",On,[n("span",null,e(o(z)),1),n("span",null,e(o(j)),1)])]),n("div",Rn,[(d(),r(b,null,x([.5,1,1.5,2],w=>n("button",{key:w,class:R({active:o(g)===w}),onClick:N=>q(w)},e(w)+"x ",11,Vn)),64))]),n("div",qn,[p[6]||(p[6]=n("svg",{width:"20",height:"20",fill:"currentColor",viewBox:"0 0 24 24"},[n("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})],-1)),n("input",{type:"range",min:"0",max:"1",step:"0.1",value:o(y),onInput:G},null,40,Dn)])])])]))}}),Nn=Object.assign(T(En,[["__scopeId","data-v-5dee128b"]]),{__name:"LandingPodcast"}),Wn={id:"features",class:"landing-section"},Gn={class:"landing-section-header"},Un={class:"landing-features-grid"},Xn={class:"landing-feature-icon"},Yn=h({__name:"LandingFeatures",setup(v){const{t}=f(),l=[{icon:"🎯",key:"wrapper"},{icon:"🛡️",key:"pipeline"},{icon:"⏱️",key:"time"},{icon:"🗄️",key:"filesystem"},{icon:"📊",key:"kanban"},{icon:"🔧",key:"custom"},{icon:"💰",key:"cost"},{icon:"🪄",key:"autocreate",highlight:!0},{icon:"🌐",key:"expose"}];return(i,a)=>(d(),r("section",Wn,[n("div",Gn,[n("h2",null,e(o(t)("landing.features.title")),1),n("p",null,e(o(t)("landing.features.subtitle")),1)]),n("div",Un,[(d(),r(b,null,x(l,s=>n("div",{key:s.key,class:R(["landing-feature-card",{highlight:s.highlight}])},[n("div",Xn,e(s.icon),1),n("h3",null,e(o(t)(`landing.features.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.features.${s.key}.desc`)),1)],2)),64))])]))}}),Jn=Object.assign(Yn,{__name:"LandingFeatures"}),Kn={id:"pipeline",class:"landing-section"},Qn={class:"landing-section-header"},Zn={class:"landing-pipeline-flow"},nt={class:"phase-icon"},tt={key:0,class:"phase-items"},et={key:0,class:"pipeline-arrow"},ot={class:"landing-pipeline-note"},at=h({__name:"LandingPipeline",setup(v){const{t}=f(),l=[{key:"create",icon:"📝",color:"blue"},{key:"reviews",icon:"🔍",color:"purple",items:["bestPractices","duplication","consistency","security"]},{key:"tests",icon:"🧪",color:"orange"},{key:"deploy",icon:"🚀",color:"green"}];return(i,a)=>(d(),r("section",Kn,[n("div",Qn,[n("h2",null,e(o(t)("landing.pipeline.title")),1),n("p",null,e(o(t)("landing.pipeline.subtitle")),1)]),n("div",Zn,[(d(),r(b,null,x(l,(s,u)=>(d(),r(b,{key:s.key},[n("div",{class:R(["pipeline-phase",`pipeline-phase-${s.color}`])},[n("div",nt,e(s.icon),1),n("h3",null,e(o(t)(`landing.pipeline.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.pipeline.${s.key}.desc`)),1),s.items?(d(),r("div",tt,[(d(!0),r(b,null,x(s.items,y=>(d(),r("span",{key:y,class:"phase-item"},e(o(t)(`landing.pipeline.reviews.${y}`)),1))),128))])):F("",!0)],2),u<l.length-1?(d(),r("div",et,[...a[0]||(a[0]=[n("svg",{width:"24",height:"24",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 7l5 5m0 0l-5 5m5-5H6"})],-1)])])):F("",!0)],64))),64))]),n("div",ot,[a[1]||(a[1]=n("span",{class:"note-icon"},"💡",-1)),n("p",null,e(o(t)("landing.pipeline.note")),1)])]))}}),st=Object.assign(T(at,[["__scopeId","data-v-b084b36d"]]),{__name:"LandingPipeline"}),it={id:"workflow",class:"landing-section landing-workflow"},lt={class:"landing-section-header"},dt={class:"landing-workflow-container"},ct={class:"landing-workflow-steps"},rt={class:"landing-step-number"},pt={class:"landing-step-content"},ut=h({__name:"LandingWorkflow",setup(v){const{t}=f(),l=[{number:"1",key:"install"},{number:"2",key:"init"},{number:"3",key:"create"},{number:"4",key:"serve"}];return(i,a)=>(d(),r("section",it,[n("div",lt,[n("h2",null,e(o(t)("landing.workflow.title")),1),n("p",null,e(o(t)("landing.workflow.subtitle")),1)]),n("div",dt,[n("div",ct,[(d(),r(b,null,x(l,s=>n("div",{key:s.key,class:"landing-workflow-step"},[n("div",rt,e(s.number),1),n("div",pt,[n("h4",null,e(o(t)(`landing.workflow.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.workflow.${s.key}.desc`)),1)])])),64))])])]))}}),_t=Object.assign(ut,{__name:"LandingWorkflow"}),gt={id:"autonomy",class:"landing-section"},mt={class:"landing-section-header"},ht={class:"landing-autonomy-grid"},vt={class:"autonomy-icon"},ft={class:"landing-autonomy-workflow"},yt={class:"workflow-header"},kt={class:"workflow-content"},wt={class:"workflow-source"},bt={class:"workflow-node source-node"},$t={class:"node-text"},xt={class:"workflow-paths"},Lt={class:"workflow-path path-1"},Ct={class:"workflow-node action-node"},Mt={class:"node-text"},At={class:"workflow-path path-2"},Tt={class:"workflow-node action-node"},zt={class:"node-text"},Ht={class:"workflow-path path-3"},jt={class:"workflow-node action-node"},Bt={class:"node-text"},Pt=h({__name:"LandingAutonomy",setup(v){const{t}=f(),l=[{key:"skip",icon:"⏭️"},{key:"correct",icon:"🔄"},{key:"spawn",icon:"🐣"}];return(i,a)=>(d(),r("section",gt,[n("div",mt,[n("h2",null,e(o(t)("landing.autonomy.title")),1),n("p",null,e(o(t)("landing.autonomy.subtitle")),1)]),n("div",ht,[(d(),r(b,null,x(l,s=>n("div",{key:s.key,class:"landing-autonomy-card"},[n("div",vt,e(s.icon),1),n("h3",null,e(o(t)(`landing.autonomy.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.autonomy.${s.key}.desc`)),1)])),64))]),n("div",ft,[n("div",yt,[n("span",null,e(o(t)("landing.autonomy.codeTitle")),1)]),n("div",kt,[n("div",wt,[n("div",bt,[a[0]||(a[0]=n("span",{class:"node-icon"},"🔍",-1)),n("span",$t,e(o(t)("landing.autonomy.code.comment1")),1)])]),a[7]||(a[7]=n("div",{class:"workflow-arrow-down"},[n("svg",{width:"24",height:"40",viewBox:"0 0 24 40",fill:"none",stroke:"currentColor"},[n("path",{"stroke-width":"2",d:"M12 0v32m0 0l-6-6m6 6l6-6"})])],-1)),n("div",xt,[n("div",Lt,[a[2]||(a[2]=n("div",{class:"path-condition"},"Hors scope ?",-1)),n("div",Ct,[a[1]||(a[1]=n("span",{class:"node-icon"},"🐣",-1)),n("span",Mt,e(o(t)("landing.autonomy.code.comment2")),1)])]),n("div",At,[a[4]||(a[4]=n("div",{class:"path-condition"},"Dans le scope ?",-1)),n("div",Tt,[a[3]||(a[3]=n("span",{class:"node-icon"},"⚡",-1)),n("span",zt,e(o(t)("landing.autonomy.code.comment3")),1)])]),n("div",Ht,[a[6]||(a[6]=n("div",{class:"path-condition"},"Amélioration ?",-1)),n("div",jt,[a[5]||(a[5]=n("span",{class:"node-icon"},"📝",-1)),n("span",Bt,e(o(t)("landing.autonomy.code.comment4")),1)])])])])])]))}}),St=Object.assign(T(Pt,[["__scopeId","data-v-89440757"]]),{__name:"LandingAutonomy"}),Ft={id:"installation",class:"landing-section"},It={class:"landing-section-header"},Ot={class:"landing-install-container"},Rt={class:"landing-code-block"},Vt={class:"landing-code-header"},qt={class:"landing-code-content"},Dt={class:"landing-code-comment"},Et={class:"landing-code-block"},Nt={class:"landing-code-header"},Wt={class:"landing-code-content"},Gt={class:"landing-code-comment"},Ut={class:"landing-code-block"},Xt={class:"landing-code-header"},Yt={class:"landing-code-content"},Jt={class:"landing-code-comment"},Kt=h({__name:"LandingInstall",setup(v){const{t}=f(),l=async i=>{try{await navigator.clipboard.writeText(i)}catch{}};return(i,a)=>(d(),r("section",Ft,[n("div",It,[n("h2",null,e(o(t)("landing.install.title")),1),n("p",null,e(o(t)("landing.install.subtitle")),1)]),n("div",Ot,[n("div",Rt,[n("div",Vt,[n("span",null,e(o(t)("landing.install.step1")),1),n("button",{class:"landing-copy-btn",onClick:a[0]||(a[0]=s=>l("npm install -g @autocode-cli/autocode"))},e(o(t)("landing.install.copy")),1)]),n("div",qt,[n("code",null,[n("span",Dt,"# "+e(o(t)("landing.install.globalInstall")),1),a[3]||(a[3]=n("br",null,null,-1)),a[4]||(a[4]=n("span",{class:"landing-code-command"},"npm install -g @autocode-cli/autocode",-1))])])]),n("div",Et,[n("div",Nt,[n("span",null,e(o(t)("landing.install.step2")),1),n("button",{class:"landing-copy-btn",onClick:a[1]||(a[1]=s=>l("autocode init"))},e(o(t)("landing.install.copy")),1)]),n("div",Wt,[n("code",null,[n("span",Gt,"# "+e(o(t)("landing.install.initProject")),1),a[5]||(a[5]=n("br",null,null,-1)),a[6]||(a[6]=n("span",{class:"landing-code-command"},"autocode init",-1))])])]),n("div",Ut,[n("div",Xt,[n("span",null,e(o(t)("landing.install.step3")),1),n("button",{class:"landing-copy-btn",onClick:a[2]||(a[2]=s=>l("autocode serve"))},e(o(t)("landing.install.copy")),1)]),n("div",Yt,[n("code",null,[n("span",Jt,"# "+e(o(t)("landing.install.startDashboard")),1),a[7]||(a[7]=n("br",null,null,-1)),a[8]||(a[8]=n("span",{class:"landing-code-command"},"autocode serve",-1))])])])])]))}}),Qt=Object.assign(Kt,{__name:"LandingInstall"}),Zt={id:"commands",class:"landing-section"},ne={class:"landing-section-header"},te={class:"landing-commands-table-wrapper"},ee={class:"landing-commands-table"},oe=h({__name:"LandingCommands",setup(v){const{t}=f(),l=[{cmd:"autocode init",key:"init"},{cmd:"autocode serve",key:"serve"},{cmd:"autocode serve --expose",key:"expose"},{cmd:"autocode new <title> [desc]",key:"new"},{cmd:"autocode list",key:"list"},{cmd:"autocode show <key>",key:"show"},{cmd:"autocode next <key>",key:"next"},{cmd:"autocode move <key> <column>",key:"move"},{cmd:"autocode start <key>",key:"start"},{cmd:"autocode comment <key> <text>",key:"comment"},{cmd:"autocode history <key>",key:"history"},{cmd:"autocode parent <key> [parent]",key:"parent"},{cmd:"autocode stats",key:"stats"},{cmd:"autocode health",key:"health"},{cmd:"autocode pipeline <action>",key:"pipeline"},{cmd:"autocode catalog",key:"catalog"},{cmd:"autocode help",key:"help"}];return(i,a)=>(d(),r("section",Zt,[n("div",ne,[n("h2",null,e(o(t)("landing.commands.title")),1),n("p",null,e(o(t)("landing.commands.subtitle")),1)]),n("div",te,[n("table",ee,[n("thead",null,[n("tr",null,[n("th",null,e(o(t)("landing.commands.command")),1),n("th",null,e(o(t)("landing.commands.description")),1)])]),n("tbody",null,[(d(),r(b,null,x(l,s=>n("tr",{key:s.key},[n("td",null,[n("code",null,e(s.cmd),1)]),n("td",null,e(o(t)(`landing.commands.${s.key}`)),1)])),64))])])])]))}}),ae=Object.assign(T(oe,[["__scopeId","data-v-dc1385aa"]]),{__name:"LandingCommands"}),se={id:"architecture",class:"landing-section"},ie={class:"landing-section-header"},le={class:"landing-architecture-flow"},de={class:"flow-step"},ce={class:"flow-step success"},re={class:"landing-architecture-details"},pe={class:"detail-icon"},ue=h({__name:"LandingArchitecture",setup(v){const{t}=f(),l=[{key:"storage",icon:"🗄️"},{key:"interfaces",icon:"🔌"},{key:"tech",icon:"⚙️"}];return(i,a)=>(d(),r("section",se,[n("div",ie,[n("h2",null,e(o(t)("landing.architecture.title")),1),n("p",null,e(o(t)("landing.architecture.subtitle")),1)]),n("div",le,[n("div",de,[a[0]||(a[0]=n("div",{class:"flow-icon"},"👤",-1)),n("span",null,e(o(t)("landing.architecture.flow.you")),1)]),a[2]||(a[2]=I('<div class="flow-arrow" data-v-ab99f707>→</div><div class="flow-step highlight" data-v-ab99f707><div class="flow-icon" data-v-ab99f707>⚡</div><span data-v-ab99f707>AutoCode</span></div><div class="flow-arrow" data-v-ab99f707>→</div><div class="flow-step" data-v-ab99f707><div class="flow-icon" data-v-ab99f707>🤖</div><span data-v-ab99f707>Claude Code</span></div><div class="flow-arrow" data-v-ab99f707>→</div>',5)),n("div",ce,[a[1]||(a[1]=n("div",{class:"flow-icon"},"✅",-1)),n("span",null,e(o(t)("landing.architecture.flow.validated")),1)])]),n("div",re,[(d(),r(b,null,x(l,s=>n("div",{key:s.key,class:"architecture-detail-card"},[n("div",pe,e(s.icon),1),n("h3",null,e(o(t)(`landing.architecture.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.architecture.${s.key}.desc`)),1)])),64))])]))}}),_e=Object.assign(T(ue,[["__scopeId","data-v-ab99f707"]]),{__name:"LandingArchitecture"}),ge={id:"api",class:"landing-section"},me={class:"landing-section-header"},he={class:"landing-api-grid"},ve={class:"landing-api-endpoint"},fe=h({__name:"LandingApi",setup(v){const{t}=f(),l=[{method:"get",endpoint:"/api/issues"},{method:"get",endpoint:"/api/issues/:id"},{method:"post",endpoint:"/api/issues"},{method:"patch",endpoint:"/api/issues/:id"},{method:"post",endpoint:"/api/issues/:id/move"},{method:"post",endpoint:"/api/issues/:id/next"},{method:"get",endpoint:"/api/issues/:id/comments"},{method:"post",endpoint:"/api/issues/:id/comments"},{method:"delete",endpoint:"/api/issues/:id/archive"},{method:"get",endpoint:"/api/columns"},{method:"get",endpoint:"/api/pipelines"},{method:"get",endpoint:"/api/stats"}];return(i,a)=>(d(),r("section",ge,[n("div",me,[n("h2",null,e(o(t)("landing.api.title")),1),n("p",null,e(o(t)("landing.api.subtitle")),1)]),n("div",he,[(d(),r(b,null,x(l,s=>n("div",{key:s.endpoint,class:"landing-api-card"},[n("span",{class:R(["landing-api-method",s.method])},e(s.method.toUpperCase()),3),n("span",ve,e(s.endpoint),1)])),64))])]))}}),ye=Object.assign(fe,{__name:"LandingApi"}),ke={id:"roadmap",class:"landing-section"},we={class:"landing-section-header"},be={class:"landing-roadmap-grid"},$e={class:"roadmap-icon"},xe={class:"roadmap-status"},Le={class:"landing-roadmap-cta"},Ce={href:"https://gitlab.com/evkoh/autocode/-/issues",target:"_blank",class:"landing-btn landing-btn-secondary"},Me=h({__name:"LandingRoadmap",setup(v){const{t}=f(),l=[{key:"mcp",icon:"🔗"},{key:"catalog",icon:"📚"}];return(i,a)=>(d(),r("section",ke,[n("div",we,[n("h2",null,e(o(t)("landing.roadmap.title")),1),n("p",null,e(o(t)("landing.roadmap.subtitle")),1)]),n("div",be,[(d(),r(b,null,x(l,s=>n("div",{key:s.key,class:"landing-roadmap-card"},[n("div",$e,e(s.icon),1),n("h3",null,e(o(t)(`landing.roadmap.${s.key}.title`)),1),n("p",null,e(o(t)(`landing.roadmap.${s.key}.desc`)),1),n("span",xe,e(o(t)("landing.roadmap.coming")),1)])),64))]),n("div",Le,[n("a",Ce,[A(e(o(t)("landing.roadmap.cta"))+" ",1),a[0]||(a[0]=n("svg",{width:"20",height:"20",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))])])]))}}),Ae=Object.assign(T(Me,[["__scopeId","data-v-c498be6d"]]),{__name:"LandingRoadmap"}),Te={id:"faq",class:"landing-section"},ze={class:"landing-section-header"},He={class:"landing-faq-container"},je=h({__name:"LandingFaq",setup(v){const{t}=f(),l=["what","install","free","pipeline","claude","customize","database","testing"];return(i,a)=>(d(),r("section",Te,[n("div",ze,[n("h2",null,e(o(t)("landing.faq.title")),1),n("p",null,e(o(t)("landing.faq.subtitle")),1)]),n("div",He,[(d(),r(b,null,x(l,s=>n("div",{key:s,class:"landing-faq-item"},[n("h3",null,e(o(t)(`landing.faq.${s}.q`)),1),n("p",null,e(o(t)(`landing.faq.${s}.a`)),1)])),64))])]))}}),Be=Object.assign(je,{__name:"LandingFaq"}),Pe={class:"landing-footer"},Se={class:"landing-footer-content"},Fe={class:"landing-footer-brand"},Ie={class:"landing-footer-logo"},Oe={class:"landing-beta-badge"},Re={class:"landing-footer-tagline"},Ve={class:"landing-footer-nav"},qe={class:"landing-footer-bottom"},De={class:"landing-footer-copy"},Ee=h({__name:"LandingFooter",setup(v){const{t}=f(),l=W(),i=new Date().getFullYear(),a=$(!1);return O(()=>{a.value=window.location.host.endsWith(".gitlab.io")}),(s,u)=>{const y=E;return d(),r("footer",Pe,[n("div",Se,[n("div",Fe,[n("span",Ie,[u[0]||(u[0]=A(" AutoCode ",-1)),n("span",Oe,"v"+e(o(l).public.appVersion),1)]),n("span",Re,e(o(t)("landing.footer.madeWith")),1)]),n("nav",Ve,[u[1]||(u[1]=I('<a href="https://gitlab.com/evkoh/autocode" target="_blank" rel="noopener" data-v-22d40de7><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-v-22d40de7><path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z" data-v-22d40de7></path></svg> GitLab </a><a href="https://www.npmjs.com/package/@autocode-cli/autocode" target="_blank" rel="noopener" data-v-22d40de7><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-v-22d40de7><path d="M0 7.334v8h6.666v1.332H12v-1.332h12v-8H0zm6.666 6.664H5.334v-4H3.999v4H1.335V8.667h5.331v5.331zm4 0v1.336H8.001V8.667h5.334v5.332h-2.669v-.001zm12.001 0h-1.33v-4h-1.336v4h-1.335v-4h-1.33v4h-2.671V8.667h8.002v5.331z" data-v-22d40de7></path></svg> npm </a><a href="#api" data-v-22d40de7>API</a>',3)),o(a)?F("",!0):(d(),D(y,{key:0,to:"/kanban",class:"landing-footer-dashboard"},{default:S(()=>[A(e(o(t)("landing.footer.dashboard")),1)]),_:1}))]),n("div",qe,[n("p",De," © "+e(o(i))+" AutoCode · "+e(o(t)("landing.footer.license")),1)])])])}}}),Ne=Object.assign(T(Ee,[["__scopeId","data-v-22d40de7"]]),{__name:"LandingFooter"}),We={class:"landing-page"},Ye=h({__name:"index",setup(v){const{t}=f();return J({title:()=>t("landing.meta.title"),link:[{rel:"icon",type:"image/svg+xml",href:"/favicon.svg"},{rel:"canonical",href:"https://autocode.dev/"}],meta:[{name:"description",content:()=>t("landing.meta.description")},{name:"keywords",content:()=>t("landing.meta.keywords")},{property:"og:type",content:"website"},{property:"og:url",content:"https://autocode.dev/"},{property:"og:title",content:()=>t("landing.meta.title")},{property:"og:description",content:()=>t("landing.meta.description")},{property:"og:site_name",content:"AutoCode"},{property:"og:image",content:"https://autocode.dev/og-image.svg"},{property:"og:image:width",content:"1200"},{property:"og:image:height",content:"630"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:()=>t("landing.meta.title")},{name:"twitter:description",content:()=>t("landing.meta.description")},{name:"twitter:image",content:"https://autocode.dev/og-image.svg"}]}),(l,i)=>{const a=Z,s=un,u=kn,y=Ln,g=Nn,L=Jn,_=st,z=_t,j=St,C=Qt,M=ae,c=_e,H=ye,B=Ae,V=Be,q=Ne;return d(),r("div",We,[m(a),m(s),m(u),m(y),m(g),m(L),m(_),m(z),m(j),m(C),m(M),m(c),m(H),m(B),m(V),m(q)])}}});export{Ye as default};
@@ -1 +1 @@
1
- [{"data":1,"prerenderedAt":3},["ShallowReactive",2],{},1767767300895]
1
+ [{"data":1,"prerenderedAt":3},["ShallowReactive",2],{},1767768362955]