@autocode-cli/autocode 0.21.1 → 0.22.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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BuuGzzuh.js → BBgAVlXU.js} +1 -1
- package/.output/public/_nuxt/{DhuvGw28.js → BZUmpBmU.js} +1 -1
- package/.output/public/_nuxt/{BzvIhKXa.js → Bsd2P-Xc.js} +1 -1
- package/.output/public/_nuxt/{Bsqp2d_a.js → BthlfLoK.js} +1 -1
- package/.output/public/_nuxt/{Cd5yfd14.js → Bu1Qq2g-.js} +1 -1
- package/.output/public/_nuxt/{M3URyIjQ.js → BvF9_V7p.js} +1 -1
- package/.output/public/_nuxt/{BWErkScs.js → BvUbqlcZ.js} +1 -1
- package/.output/public/_nuxt/{DbxL9lRD.js → Bxcwuw3U.js} +1 -1
- package/.output/public/_nuxt/{C3DyBObH.js → CTV7-Iux.js} +1 -1
- package/.output/public/_nuxt/{BZdWLkNK.js → CWENDdnZ.js} +1 -1
- package/.output/public/_nuxt/{tpFEFzWU.js → CjVJcaTo.js} +6 -6
- package/.output/public/_nuxt/{DJfR4FNQ.js → CoGBQbLh.js} +1 -1
- package/.output/public/_nuxt/{BS2O5lAl.js → D4lcVP-d.js} +1 -1
- package/.output/public/_nuxt/{jiBgvKN8.js → D8RlVVzC.js} +1 -1
- package/.output/public/_nuxt/{klDmWiiM.js → DBuWa6JT.js} +1 -1
- package/.output/public/_nuxt/{cws29Auc.js → DFQ30pd7.js} +1 -1
- package/.output/public/_nuxt/{BUbpbjMi.js → DNUcHFTN.js} +1 -1
- package/.output/public/_nuxt/{Grz13CMP.js → DRo5NaOZ.js} +1 -1
- package/.output/public/_nuxt/{DM9QX0ua.js → DU0awelf.js} +1 -1
- package/.output/public/_nuxt/{DePtrdSj.js → DYYF8rpr.js} +1 -1
- package/.output/public/_nuxt/{zdvAcfWI.js → DaYBQX26.js} +1 -1
- package/.output/public/_nuxt/{D0OpJRhu.js → DwfwVH0w.js} +1 -1
- package/.output/public/_nuxt/{DJYjLDDn.js → DykwyQae.js} +1 -1
- package/.output/public/_nuxt/{5BZMNEHZ.js → FIIaIpPb.js} +1 -1
- package/.output/public/_nuxt/{BGpVLUX4.js → QtPIr4OQ.js} +1 -1
- package/.output/public/_nuxt/{B3M7yX_T.js → TA-NBooC.js} +1 -1
- package/.output/public/_nuxt/{DABng7wj.js → TB1o0NrH.js} +1 -1
- package/.output/public/_nuxt/{B-hNDTeU.js → Zzp33YZj.js} +1 -1
- package/.output/public/_nuxt/{BvKypUr1.js → _HJO0SwU.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/83d9a3fc-c99e-4e26-adef-e7f5b329b81a.json +1 -0
- package/.output/public/_nuxt/{BEvfVEPP.js → iHS1jy-1.js} +1 -1
- package/.output/public/_nuxt/{Dwo43MMH.js → jYigECdj.js} +1 -1
- package/.output/public/_payload.json +1 -1
- package/.output/public/index.html +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/server.mjs +2 -2
- package/.output/server/chunks/build/styles.mjs +7 -7
- package/.output/server/chunks/nitro/nitro.mjs +234 -229
- package/.output/server/chunks/routes/api/issues/_id/_column/log.get.mjs +4 -1
- package/.output/server/chunks/routes/api/issues/_id/_column/log.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/ancestors.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/ancestors.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.delete.mjs +6 -2
- package/.output/server/chunks/routes/api/issues/_id/attachments/_attachmentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/attachments.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/attachments.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/attachments.post.mjs +8 -1
- package/.output/server/chunks/routes/api/issues/_id/attachments.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/children.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/children.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/full-history.get.mjs +7 -1
- package/.output/server/chunks/routes/api/issues/_id/full-history.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/full-terminal.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/full-terminal.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/log.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/log.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/prompt.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/prompt.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/history.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/log.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/_id/log.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/autocomplete.post.mjs +14 -8
- package/.output/server/chunks/routes/api/issues/autocomplete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/graph.get.mjs +3 -1
- package/.output/server/chunks/routes/api/issues/graph.get.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/builds/meta/12e415a4-da3b-4d7e-887c-761413993080.json +0 -1
- /package/.output/public/_i18n/{b8ZJBc5M → zP5M_e1m}/en/messages.json +0 -0
- /package/.output/public/_i18n/{b8ZJBc5M → zP5M_e1m}/fr/messages.json +0 -0
package/.output/nitro.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as C}from"./
|
|
1
|
+
import{_ as C}from"./Bu1Qq2g-.js";import{_ as T}from"./DU0awelf.js";import{d as x,G as F,v as h,l as I,s as L,c as a,f as v,e as n,h as e,j as V,t,F as D,p as B,w as H,b as i,q as S,g as X,_ as A}from"./CjVJcaTo.js";import{u as y}from"./DRo5NaOZ.js";const E={class:"terminal-page"},R={class:"card"},j={class:"section-header"},q={class:"session-badge"},z={key:0,class:"column-badge"},G={key:0,class:"loading"},J={key:1,class:"error-message"},O={key:2,class:"empty"},W={key:3,class:"terminal-content"},Y={class:"log-time"},K={class:"log-level"},M={class:"log-message"},P={class:"actions"},Q=x({__name:"terminal",async setup(U){let o,c;const p=F(),l=p.params.id,u=p.params.sessionId,{data:r}=([o,c]=h(()=>y(`/api/issues/${l}`,"$WXwXsy2rDm")),o=await o,c(),o),f=I(()=>{if(!r.value)return null;const s={id:r.value.key,title:r.value.title,column:r.value.column_slug};return r.value.priority&&(s.priority=r.value.priority),s}),{data:d,status:$,error:g}=([o,c]=h(()=>y(`/api/issues/${l}/history/${u}/log`,"$7VJyO-YXL0")),o=await o,c(),o),k=s=>{const m=new Date(s);return isNaN(m.getTime())?s:m.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",second:"2-digit"})};return L({title:`Terminal ${u} - ${l} - AutoCode`}),(s,m)=>{const w=C,b=T;return i(),a("div",E,[v(w,{issue:e(f),"active-tab":"history"},null,8,["issue"]),n("div",R,[n("div",j,[n("h2",null,t(s.$t("history.viewTerminal")),1),n("span",q,t(e(u)),1),e(d)?.column?(i(),a("span",z,t(e(d).column),1)):V("",!0)]),e($)==="pending"?(i(),a("div",G,t(s.$t("app.loading")),1)):e(g)?(i(),a("div",J,t(e(g).message),1)):e(d)?.logs?.length?(i(),a("div",W,[(i(!0),a(D,null,B(e(d).logs,(_,N)=>(i(),a("div",{key:N,class:S(["log-entry",`log-${_.level}`])},[n("span",Y,t(k(_.timestamp)),1),n("span",K,t(_.level),1),n("span",M,t(_.message),1)],2))),128))])):(i(),a("div",O,t(s.$t("terminal.noLogs")),1))]),n("div",P,[v(b,{to:`/issue/${e(l)}/history`,class:"btn-secondary"},{default:H(()=>[X(t(s.$t("nav.back")),1)]),_:1},8,["to"])])])}}}),os=A(Q,[["__scopeId","data-v-608b488c"]]);export{os as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as ne,G as ae,x as oe,l,r as v,v as R,u as le,o as re,s as ie,c as r,e as a,j as C,t as n,h as e,q as ce,F as ue,C as de,D as pe,H as me,g as q,b as i,_ as ve}from"./
|
|
1
|
+
import{d as ne,G as ae,x as oe,l,r as v,v as R,u as le,o as re,s as ie,c as r,e as a,j as C,t as n,h as e,q as ce,F as ue,C as de,D as pe,H as me,g as q,b as i,_ as ve}from"./CjVJcaTo.js";import{u as fe}from"./D8RlVVzC.js";import{u as ge}from"./D4lcVP-d.js";import{u as D}from"./DRo5NaOZ.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"},Te={class:"meta-item"},Ve={key:0,class:"meta-item meta-dirty"},Fe=ne({__name:"prompt",async setup(Ie){let u,g;const w=ae(),N=oe(),{success:P,error:B}=fe(),{pipelineConfig:E,isColumnInPipeline:M,addColumnBySlug:j,removeColumnBySlug:z,savePipeline:T,loadActivePipeline:H}=ge(),d=l(()=>w.params.slug),y=l(()=>w.query.pipeline||""),G=l(()=>w.query.name||""),U=l(()=>G.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:V,refresh:W}=([u,g]=R(()=>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||"":""),F=l(()=>c.value?m.value:f.value),Z=l(()=>{const s=F.value;return!s||typeof s!="string"?0:s.split(`
|
|
2
2
|
`).length}),K=l(()=>{const s=F.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:I}=([u,g]=R(()=>D("/api/catalog","$8GjW2wVST-")),u=await u,g(),u),k=l(()=>{if(!I.value)return null;const s=d.value.replace(/^\d+_/,"");for(const o of["definition","action","finish"]){const A=I.value.segments[o].columns.find(se=>se.slug.replace(/^\d+_/,"")===s);if(A)return{...A,segment:o}}return null}),ee=l(()=>M(d.value)),$=l(()=>ee.value.inPipeline),te=async()=>{if(k.value){h.value=!0;try{if($.value)z(d.value),await T(),P(t("pipeline.columnRemoved"));else{const s=k.value.segment;j(d.value,k.value.name,s),await T(),P(t("pipeline.columnAdded"))}}catch{B(t("error.saveFailed"))}finally{h.value=!1}}};return re(()=>{H()}),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(U)),1),e(y)?(i(),r("span",be,n(e(y)),1)):C("",!0)]),a("div",ke,[!e(c)&&e(k)&&e(E)?(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(V)?(i(),r("div",Se,n(e(V).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),q(" "+n(e(Z)),1)]),a("span",Te,[a("strong",null,n(e(t)("column.chars"))+":",1),q(" "+n(e(K)),1)]),e(c)&&e(p)?(i(),r("span",Ve,n(e(t)("form.unsavedChanges")),1)):C("",!0)])]))]))}}),Ee=ve(Fe,[["__scopeId","data-v-bf4ee782"]]);export{Ee as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as d}from"./
|
|
1
|
+
import{_ as d}from"./DU0awelf.js";import{u}from"./DRo5NaOZ.js";import{d as m,u as f,v as g,o as v,K as x,s as h,c as i,j as y,h as e,t as p,e as C,f as w,w as k,b as c,g as N,_ as V}from"./CjVJcaTo.js";const b={class:"pipeline-page"},B={key:0,class:"loading card"},I={key:1,class:"empty-state card"},$=m({__name:"index",async setup(A){let t,_;const{t:a}=f(),{data:n,pending:l}=([t,_]=g(()=>u("/api/pipelines","$p7t_x6yV7n")),t=await t,_(),t);return v(()=>{if(n.value?.length){const s=n.value.find(o=>o.active)||n.value[0];s&&x(`/settings/pipeline/${encodeURIComponent(s.name)}`,{replace:!0})}}),h({title:"Pipeline Configuration - AutoCode"}),(r,s)=>{const o=d;return c(),i("div",b,[e(l)?(c(),i("div",B,p(e(a)("app.loading")),1)):e(n)?.length?y("",!0):(c(),i("div",I,[C("p",null,p(e(a)("pipeline.noColumns")),1),w(o,{to:"/settings/pipeline/new",class:"btn btn-primary"},{default:k(()=>[N(" + "+p(e(a)("pipeline.new")),1)]),_:1})]))])}}}),E=V($,[["__scopeId","data-v-9f6aa041"]]);export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as w}from"./
|
|
1
|
+
import{_ as w}from"./Bu1Qq2g-.js";import{_ as b}from"./DU0awelf.js";import{d as x,G as I,u as B,v as m,l as C,s as N,c as r,f as v,e as n,h as t,t as o,w as S,b as c,g as F,_ as G}from"./CjVJcaTo.js";import{u as h}from"./DRo5NaOZ.js";const H={class:"prompt-page"},P={class:"card"},V={class:"section-header"},A={class:"column-badge"},E={key:0,class:"loading"},q={key:1,class:"error-message"},D={key:2,class:"empty"},L={key:3,class:"prompt-content"},R={class:"actions"},T=x({__name:"prompt",async setup(U){let s,i;const l=I(),{locale:y}=B(),u=l.params.id,p=l.params.column,{data:a}=([s,i]=m(()=>h(`/api/issues/${u}`,"$cZ6-GFSir3")),s=await s,i(),s),f=C(()=>{if(!a.value)return null;const e={id:a.value.key,title:a.value.title,column:a.value.column_slug};return a.value.priority&&(e.priority=a.value.priority),e}),{data:_,status:g,error:d}=([s,i]=m(()=>h(`/api/columns/${p}/prompt`,{query:{lang:y.value}},"$s9GIcvnBUu")),s=await s,i(),s);return N({title:`Prompt ${p} - ${u} - AutoCode`}),(e,Z)=>{const $=w,k=b;return c(),r("div",H,[v($,{issue:t(f),"active-tab":"history"},null,8,["issue"]),n("div",P,[n("div",V,[n("h2",null,o(e.$t("history.viewPrompt")),1),n("span",A,o(t(p)),1)]),t(g)==="pending"?(c(),r("div",E,o(e.$t("app.loading")),1)):t(d)?(c(),r("div",q,o(t(d).message),1)):t(_)?.content?(c(),r("div",L,[n("pre",null,o(t(_).content),1)])):(c(),r("div",D,o(e.$t("column.noPrompt")),1))]),n("div",R,[v(k,{to:`/issue/${t(u)}/history`,class:"btn-secondary"},{default:S(()=>[F(o(e.$t("nav.back")),1)]),_:1},8,["to"])])])}}}),M=G(T,[["__scopeId","data-v-9385d4f2"]]);export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as v}from"./
|
|
1
|
+
import{_ as v}from"./DU0awelf.js";import{d as f,G as $,l as y,c as d,e as a,f as c,w as n,h as m,g as i,t as e,j as _,q as u,b as r,_ as k}from"./CjVJcaTo.js";const T={class:"issue-header"},g={class:"issue-info"},N={class:"issue-title"},C={class:"issue-id"},V={class:"issue-meta"},x={class:"column-name"},B={class:"issue-tabs"},I=f({__name:"IssueHeader",props:{issue:{},activeTab:{}},setup(s){const h=s,b=$(),l=y(()=>b.path.match(/\/issue\/[^/]+\/history\/[^/]+\/(terminal|prompt)$/)?{to:`/issue/${h.issue?.id}/history`,label:"issue.history"}:{to:"/kanban",label:"nav.kanban"});return(t,j)=>{const o=v;return r(),d("div",T,[a("div",g,[c(o,{to:m(l).to,class:"back-link"},{default:n(()=>[i(" ← "+e(t.$t(m(l).label)),1)]),_:1},8,["to"]),a("h1",N,[a("span",C,e(s.issue?.id),1),i(" "+e(s.issue?.title),1)]),a("div",V,[s.issue?.priority?(r(),d("span",{key:0,class:u(["badge",`badge-${s.issue.priority}`])},e(s.issue.priority),3)):_("",!0),a("span",x,e(s.issue?.column),1)])]),a("nav",B,[c(o,{to:`/issue/${s.issue?.id}`,class:u(["tab",{active:s.activeTab==="details"}])},{default:n(()=>[i(e(t.$t("issue.details")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/comments`,class:u(["tab",{active:s.activeTab==="comments"}])},{default:n(()=>[i(e(t.$t("issue.comments")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/history`,class:u(["tab",{active:s.activeTab==="history"}])},{default:n(()=>[i(e(t.$t("issue.history")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/terminal`,class:u(["tab",{active:s.activeTab==="terminal"}])},{default:n(()=>[i(e(t.$t("issue.terminal")),1)]),_:1},8,["to","class"])])])}}}),L=Object.assign(k(I,[["__scopeId","data-v-242cda85"]]),{__name:"IssueHeader"});export{L as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as be}from"./
|
|
1
|
+
import{_ as be}from"./DU0awelf.js";import{d as we,x as xe,u as Ce,r as v,o as K,y as U,a as $e,v as H,m as j,s as Ie,c as a,e as r,j as p,t as u,f as q,w as G,h as o,n as Y,F as Q,p as X,b as l,g as S,z as N,q as A,_ as De}from"./CjVJcaTo.js";import{u as Se}from"./D8RlVVzC.js";import{u as Ee}from"./QtPIr4OQ.js";import{u as Z}from"./DRo5NaOZ.js";import{u as Me}from"./Zzp33YZj.js";const Le={class:"kanban-page"},Te={class:"page-header"},Re={class:"header-actions"},ze={key:0,class:"loading"},Ne={key:1,class:"error-message"},Ae={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"},je={class:"issue-key"},qe={key:0,class:"processing-indicator",title:"Claude is working..."},Ge=["onClick"],Ye={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),m=v(null),T=v(!1),V=v(0),k=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);j(()=>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,m.value=null,T.value=!1},pe=e=>{m.value=e},fe=()=>{m.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,m.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,m.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:me}=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{}},ke=async()=>{try{const e=await $fetch("/api/stats");e.processingIssues&&(k.value=new Set(e.processingIssues))}catch{}},J=e=>{if(!k.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(()=>{ke()}),j(me,e=>{if((e?.type==="refresh"||e?.type==="issue-update")&&B(),e?.type==="claude_start"&&e.issue){const s=e.issue;k.value=new Set([...k.value,s])}if(e?.type==="claude_end"&&e.issue){const s=e.issue,n=new Set(k.value);n.delete(s),k.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,[q(n,{to:"/issues/graph",class:"btn btn-secondary"},{default:G(()=>[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",Ne,u(o(O)?.message||o(W)?.message),1)):(l(),a("div",Ae,[r("div",{ref_key:"scrollTopRef",ref:b,class:"scroll-top",onScroll:te},[r("div",{class:"scroll-spacer",style:Y({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:A(["board-column",{"drag-over":o(m)===t.slug}]),onDragover:N(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)]),q(n,{to:`/column/${t.slug}/prompt?name=${encodeURIComponent(t.name)}`,class:"column-action",title:"View prompt"},{default:G(()=>[...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:A(["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",je,[J(i.key)?(l(),a("span",qe,"⚙️")):p("",!0),S(" "+u(i.key),1)]),r("button",{class:"issue-menu-btn",title:"Menu",onClick:N(z=>he(z,i),["stop"])}," ☰ ",8,Ge)]),r("div",Ye,u(i.title),1),r("div",Qe,[i.priority?(l(),a("span",{key:0,class:A(["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:N(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:Y({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,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"./
|
|
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"./CjVJcaTo.js";import{u as L}from"./D8RlVVzC.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
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 +1 @@
|
|
|
1
|
-
import{d,u as p,l as c,o as g,c as n,b as o,F as v,p as h,q as L,h as l,t as f,_ as S}from"./
|
|
1
|
+
import{d,u as p,l as c,o as g,c as n,b as o,F as v,p as h,q as L,h as l,t as f,_ as S}from"./CjVJcaTo.js";const b={class:"lang-switcher"},k=["title","onClick"],r="autocode-lang",w=d({__name:"LangSwitcher",setup(C){const{locale:a,locales:_,setLocale:u}=p(),i=c(()=>_.value),m=c(()=>a.value),s=async e=>{await u(e),localStorage.setItem(r,e),document.documentElement.lang=e};return g(()=>{const e=localStorage.getItem(r);e&&e!==a.value&&s(e),document.documentElement.lang=a.value}),(e,E)=>(o(),n("div",b,[(o(!0),n(v,null,h(l(i),t=>(o(),n("button",{key:t.code,class:L(["lang-btn",{active:l(m)===t.code}]),title:t.name,onClick:x=>s(t.code)},f(t.code.toUpperCase()),11,k))),128))]))}}),y=Object.assign(S(w,[["__scopeId","data-v-2d84a2aa"]]),{__name:"LangSwitcher"});export{y as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as h}from"./
|
|
1
|
+
import{_ as h}from"./DU0awelf.js";import{_ as C}from"./Bxcwuw3U.js";import{d as g,r as x,G as y,m as w,o as N,a as I,c as _,b as l,e as n,f as a,w as u,q as f,h as i,F as $,p as k,g as A,t as d,_ as v,i as E,an as L,ao as O,ap as B}from"./CjVJcaTo.js";import{u as H}from"./D8RlVVzC.js";const S={class:"app-header"},T={class:"header-content"},V={class:"header-actions"},j={class:"btn-text"},F=["aria-label"],G=g({__name:"AppHeader",setup(m){const t=x(!1),c=[{to:"/kanban",label:"nav.kanban"},{to:"/stats",label:"nav.stats"},{to:"/changelog",label:"nav.changelog"},{to:"/settings/pipeline",label:"nav.settings"}],r=y();return w(()=>r.path,()=>{t.value=!1}),N(()=>{const o=e=>{e.key==="Escape"&&(t.value=!1)};document.addEventListener("keydown",o),I(()=>{document.removeEventListener("keydown",o)})}),(o,e)=>{const s=h,b=C;return l(),_("header",S,[n("div",T,[a(s,{to:"/",class:"logo"},{default:u(()=>[...e[2]||(e[2]=[n("span",{class:"logo-icon"},"⚡",-1),n("span",{class:"logo-text"},"AutoCode",-1)])]),_:1}),n("nav",{class:f(["main-nav",{open:i(t)}])},[(l(),_($,null,k(c,p=>a(s,{key:p.to,to:p.to,class:"nav-link",onClick:e[0]||(e[0]=W=>t.value=!1)},{default:u(()=>[A(d(o.$t(p.label)),1)]),_:2},1032,["to"])),64))],2),n("div",V,[a(s,{to:"/issue/new",class:"btn btn-primary new-issue-btn"},{default:u(()=>[e[3]||(e[3]=n("span",{class:"btn-icon"},"+",-1)),n("span",j,d(o.$t("nav.newIssue")),1)]),_:1}),a(b),n("button",{class:"mobile-menu-btn","aria-label":i(t)?"Close menu":"Open menu",onClick:e[1]||(e[1]=p=>t.value=!i(t))},[n("span",{class:f(["hamburger",{open:i(t)}])},[...e[4]||(e[4]=[n("span",null,null,-1),n("span",null,null,-1),n("span",null,null,-1)])],2)],8,F)])])])}}}),M=Object.assign(v(G,[["__scopeId","data-v-055d7a5c"]]),{__name:"AppHeader"}),q={class:"notification-container"},z={class:"notification-icon"},D={class:"notification-message"},K=["onClick"],R=g({__name:"NotificationContainer",setup(m){const{notifications:t,remove:c}=H(),r=o=>({success:"OK",error:"X",warning:"!",info:"i"})[o]||"i";return(o,e)=>(l(),E(O,{to:"body"},[n("div",q,[a(L,{name:"notification"},{default:u(()=>[(l(!0),_($,null,k(i(t),s=>(l(),_("div",{key:s.id,class:f(["notification",`notification-${s.type}`])},[n("span",z,d(r(s.type)),1),n("span",D,d(s.message),1),n("button",{class:"notification-close",onClick:b=>i(c)(s.id)},"x",8,K)],2))),128))]),_:1})])]))}}),U=Object.assign(v(R,[["__scopeId","data-v-87475ab3"]]),{__name:"NotificationContainer"}),X={},J={class:"app-layout"},P={class:"app-main"};function Q(m,t){const c=M,r=U;return l(),_("div",J,[a(c),n("main",P,[B(m.$slots,"default",{},void 0,!0)]),t[0]||(t[0]=n("footer",{class:"app-footer"},[n("p",null,"AutoCode v0.3.0")],-1)),a(r)])}const tn=v(X,[["render",Q],["__scopeId","data-v-157bd0ef"]]);export{tn as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as _e}from"./Cd5yfd14.js";import{_ as he}from"./DM9QX0ua.js";import{d as fe,G as ye,x as ge,u as be,r as v,v as R,l as S,m as $e,s as ke,c as n,f as K,e as t,j as C,h as s,C as T,D as O,H as A,g as Q,t as a,E as W,F as L,p as H,q as Y,w as Ce,z as we,b as r,_ as Ee}from"./tpFEFzWU.js";import{d as De}from"./C0Rlrcoy.js";import{u as Me}from"./jiBgvKN8.js";import{u as Pe}from"./BGpVLUX4.js";import{u as q}from"./Grz13CMP.js";const Se={class:"issue-view-page"},Te={class:"issue-content"},Ve={class:"main-section"},Ne={class:"card title-card"},Ae={class:"title-row"},Le=["placeholder"],He=["disabled","title"],Ue={key:0,class:"spinner"},Oe={key:1,class:"sparkle"},Fe={class:"card"},Ie={class:"form-row"},Be={class:"form-group"},Je={class:"form-label",for:"edit-priority"},Re={value:""},qe={value:"low"},ze={value:"medium"},Xe={value:"high"},je={value:"critical"},Ge={class:"form-group"},Ke={class:"form-label",for:"edit-parent"},Qe=["placeholder"],We={id:"parent-suggestions"},Ye=["value"],Ze={class:"meta-badges"},xe={class:"meta-badge column-badge"},et={key:0,class:"meta-badge semver-badge"},tt={key:0,class:"card"},st={class:"labels-list"},at={class:"card"},it={class:"section-header"},ot=["innerHTML"],lt=["placeholder"],nt={class:"card"},rt={class:"section-header"},ct={key:0,class:"criteria-list"},ut={key:1,class:"empty-criteria"},dt={key:2,class:"criteria-edit"},vt=["onUpdate:modelValue","placeholder"],pt=["onClick"],mt={class:"actions-bar"},_t=["disabled"],ht=["disabled"],ft={key:2,class:"done-badge"},yt={class:"sidebar"},gt={class:"card"},bt={class:"action-buttons"},$t={class:"card"},kt={class:"metadata-list"},Ct={class:"metadata-item"},wt={class:"metadata-item"},Et={class:"metadata-item"},Dt={key:0,class:"card"},Mt={class:"modal"},Pt={class:"modal-header"},St={class:"modal-title"},Tt={class:"modal-body"},Vt=["value"],Nt={class:"modal-footer"},At=fe({__name:"index",async setup(Lt){let d,w;const Z=ye(),x=ge(),{t:_,locale:ee}=be(),{success:V,error:E}=Me(),{getErrorMessage:N}=Pe(),g=Z.params.id,D=v(!1),M=v(""),F=v(!1),U=v(!1),P=v(!1),h=v(!1),u=v(!1),c=v([]),{data:i,refresh:I}=([d,w]=R(()=>q(`/api/issues/${g}`,"$IXIJsCSqf0")),d=await d,w(),d),{data:b}=([d,w]=R(()=>q("/api/columns","$xdX8vE_27c")),d=await d,w(),d),{data:te}=([d,w]=R(()=>q("/api/issues","$81nxEVnLdN")),d=await d,w(),d),se=S(()=>(te.value||[]).filter(e=>e.key!==g).slice(0,10)),p=v(i.value?.title||""),f=v(i.value?.description||""),y=v(i.value?.priority||""),$=v(i.value?.parent_key||"");$e(i,e=>{e&&(p.value=e.title,f.value=e.description||"",y.value=e.priority||"",$.value=e.parent_key||"")});const z=S(()=>!i.value||!b.value?i.value?.column_slug||"":b.value.find(o=>o.slug===i.value?.column_slug)?.name||i.value.column_slug),B=S(()=>{if(!i.value||!b.value||b.value.length===0)return!1;const e=b.value[b.value.length-1];return i.value.column_slug===e?.slug}),ae=S(()=>{if(!i.value)return null;const e={id:i.value.key,title:p.value,column:i.value.column_slug};return i.value.priority&&(e.priority=i.value.priority),e}),X=S(()=>{if(!i.value)return!1;const e=p.value!==i.value.title,o=f.value!==(i.value.description||""),k=y.value!==(i.value.priority||""),J=$.value!==(i.value.parent_key||""),l=u.value&&JSON.stringify(c.value.filter(m=>m.trim()))!==JSON.stringify(i.value.acceptance_criteria||[]);return e||o||k||J||l}),ie=S(()=>{const e=h.value?f.value:i.value?.description||"";return e?De(e):`<span style="color: var(--text-muted)">${_("issue.noDescription")}</span>`}),j=e=>e?new Date(e).toLocaleDateString():"-",oe=()=>{h.value=!h.value},le=()=>{u.value||(c.value=[...i.value?.acceptance_criteria||[]],c.value.length===0&&(c.value=[""])),u.value=!u.value},ne=()=>{c.value.push("")},re=e=>{c.value.splice(e,1),c.value.length===0&&(c.value=[""])},ce=async()=>{if(!(!p.value.trim()||P.value)){P.value=!0;try{const e=u.value?c.value.filter(k=>k.trim()):i.value?.acceptance_criteria||[],o=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:p.value,lang:ee.value,description:f.value||void 0,priority:y.value||void 0,acceptance_criteria:e.length>0?e:void 0,parent_key:$.value||void 0}});if(o.description&&(f.value=o.description,h.value=!0),o.priority){const k={P0:"critical",P1:"high",P2:"medium",P3:"low"};y.value=k[o.priority]||o.priority}o.acceptance_criteria&&Array.isArray(o.acceptance_criteria)&&(c.value=o.acceptance_criteria.length>0?o.acceptance_criteria:[""],u.value=!0),V(_("autocomplete.rememberSave"))}catch(e){E(N(e,_("autocomplete.error")))}finally{P.value=!1}}},ue=async()=>{if(X.value){U.value=!0;try{const e={title:p.value,description:f.value,priority:y.value||void 0,parent_key:$.value||void 0};u.value&&(e.acceptance_criteria=c.value.filter(o=>o.trim())),await $fetch(`/api/issues/${g}`,{method:"PATCH",body:e}),V(_("notify.issueSaved")),h.value&&(h.value=!1),u.value&&(u.value=!1),I()}catch(e){E(N(e))}finally{U.value=!1}}},de=async()=>{F.value=!0;try{await $fetch(`/api/issues/${g}/next`,{method:"POST"}),V(_("notify.issueAdvanced")),I()}catch(e){E(N(e))}finally{F.value=!1}},ve=()=>{M.value=i.value?.column_slug||"",D.value=!0},pe=async()=>{if(!M.value){E(_("notify.error"));return}try{await $fetch(`/api/issues/${g}/move`,{method:"POST",body:{column:M.value,force:!0}}),V(_("notify.issueMoved")),D.value=!1,I()}catch(e){E(N(e))}},me=async()=>{if(confirm(_("issue.confirmArchive")))try{await $fetch(`/api/issues/${g}/archive`,{method:"DELETE"}),V(_("notify.issueArchived")),x.push("/")}catch(e){E(N(e))}};return ke({title:`${g} - AutoCode`}),(e,o)=>{const k=_e,J=he;return r(),n("div",Se,[K(k,{issue:s(ae),"active-tab":"details"},null,8,["issue"]),t("div",Te,[t("div",Ve,[t("div",Ne,[t("div",Ae,[T(t("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>A(p)?p.value=l:null),type:"text",class:"title-input",placeholder:e.$t("issue.title")},null,8,Le),[[O,s(p)]]),t("button",{type:"button",class:"btn-autocomplete",disabled:s(P)||!s(p).trim(),title:e.$t("autocomplete.tooltip"),onClick:ce},[s(P)?(r(),n("span",Ue)):(r(),n("span",Oe,"✨")),Q(" "+a(s(P)?e.$t("autocomplete.loading"):e.$t("autocomplete.button")),1)],8,He)])]),t("div",Fe,[t("h2",null,a(e.$t("issue.metadata")),1),t("div",Ie,[t("div",Be,[t("label",Je,a(e.$t("issue.priority")),1),T(t("select",{id:"edit-priority","onUpdate:modelValue":o[1]||(o[1]=l=>A(y)?y.value=l:null),class:"form-input"},[t("option",Re,a(e.$t("form.select")),1),t("option",qe,a(e.$t("priority.low")),1),t("option",ze,a(e.$t("priority.medium")),1),t("option",Xe,a(e.$t("priority.high")),1),t("option",je,a(e.$t("priority.critical")),1)],512),[[W,s(y)]])]),t("div",Ge,[t("label",Ke,a(e.$t("issue.parent")),1),T(t("input",{id:"edit-parent","onUpdate:modelValue":o[2]||(o[2]=l=>A($)?$.value=l:null),type:"text",class:"form-input",placeholder:e.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Qe),[[O,s($)]]),t("datalist",We,[(r(!0),n(L,null,H(s(se),l=>(r(),n("option",{key:l.key,value:l.key},a(l.title),9,Ye))),128))])])]),t("div",Ze,[t("span",xe,a(s(z)),1),s(i)?.semver?(r(),n("span",et,a(s(i).semver),1)):C("",!0)])]),s(i)?.labels?.length?(r(),n("div",tt,[t("h2",null,a(e.$t("issue.labels")),1),t("div",st,[(r(!0),n(L,null,H(s(i).labels,(l,m)=>(r(),n("span",{key:m,class:"label-tag"},a(l),1))),128))])])):C("",!0),t("div",at,[t("div",it,[t("h2",null,a(e.$t("issue.description")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(h)}]),onClick:oe},a(s(h)?"✓":"✏️"),3)]),s(h)?T((r(),n("textarea",{key:1,"onUpdate:modelValue":o[3]||(o[3]=l=>A(f)?f.value=l:null),class:"description-edit",placeholder:e.$t("issue.description"),rows:"10"},null,8,lt)),[[O,s(f)]]):(r(),n("div",{key:0,class:"description",innerHTML:s(ie)},null,8,ot))]),t("div",nt,[t("div",rt,[t("h2",null,a(e.$t("issue.acceptanceCriteria")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(u)}]),onClick:le},a(s(u)?"✓":"✏️"),3)]),!s(u)&&s(i)?.acceptance_criteria?.length?(r(),n("ul",ct,[(r(!0),n(L,null,H(s(i).acceptance_criteria,(l,m)=>(r(),n("li",{key:m,class:"criteria-item"},a(l),1))),128))])):s(u)?(r(),n("div",dt,[(r(!0),n(L,null,H(s(c),(l,m)=>(r(),n("div",{key:m,class:"criteria-input-row"},[T(t("input",{"onUpdate:modelValue":G=>s(c)[m]=G,type:"text",class:"form-input",placeholder:e.$t("form.criteriaPlaceholder")},null,8,vt),[[O,s(c)[m]]]),t("button",{class:"btn-icon",type:"button",onClick:G=>re(m)},"×",8,pt)]))),128)),t("button",{class:"btn btn-secondary btn-sm",type:"button",onClick:ne}," + "+a(e.$t("form.addCriteria")),1)])):(r(),n("p",ut,a(e.$t("issue.noCriteria")),1))]),t("div",mt,[t("button",{class:"btn btn-primary",disabled:s(U)||!s(X),onClick:ue},a(s(U)?e.$t("form.saving"):e.$t("form.save")),9,_t),s(B)?C("",!0):(r(),n("button",{key:0,class:"btn btn-secondary",disabled:s(F),onClick:de},a(e.$t("issue.next"))+" → ",9,ht)),s(B)?C("",!0):(r(),n("button",{key:1,class:"btn btn-danger",onClick:me},a(e.$t("issue.archive")),1)),s(B)?(r(),n("span",ft," ✓ "+a(e.$t("issue.done")),1)):C("",!0)])]),t("aside",yt,[t("div",gt,[t("h3",null,a(e.$t("issue.actions")),1),t("div",bt,[t("button",{class:"btn btn-secondary",onClick:ve},a(e.$t("issue.move")),1)])]),t("div",$t,[t("h3",null,a(e.$t("issue.details")),1),t("dl",kt,[t("div",Ct,[t("dt",null,a(e.$t("issue.status")),1),t("dd",null,a(s(z)),1)]),t("div",wt,[t("dt",null,a(e.$t("issue.created")),1),t("dd",null,a(j(s(i)?.created_at)),1)]),t("div",Et,[t("dt",null,a(e.$t("issue.updated")),1),t("dd",null,a(j(s(i)?.updated_at)),1)])])]),s(i)?.parent_key?(r(),n("div",Dt,[t("h3",null,a(e.$t("issue.parent")),1),K(J,{to:`/issue/${s(i).parent_key}`,class:"parent-link"},{default:Ce(()=>[Q(a(s(i).parent_key),1)]),_:1},8,["to"])])):C("",!0)])]),s(D)?(r(),n("div",{key:0,class:"modal-overlay active",onClick:o[7]||(o[7]=we(l=>D.value=!1,["self"]))},[t("div",Mt,[t("div",Pt,[t("h3",St,a(e.$t("issue.move")),1),t("button",{class:"modal-close",onClick:o[4]||(o[4]=l=>D.value=!1)},"×")]),t("div",Tt,[T(t("select",{"onUpdate:modelValue":o[5]||(o[5]=l=>A(M)?M.value=l:null),class:"form-input"},[(r(!0),n(L,null,H(s(b),l=>(r(),n("option",{key:l.slug,value:l.slug},a(l.name),9,Vt))),128))],512),[[W,s(M)]])]),t("div",Nt,[t("button",{class:"btn btn-secondary",onClick:o[6]||(o[6]=l=>D.value=!1)},a(e.$t("modal.cancel")),1),t("button",{class:"btn btn-primary",onClick:pe},a(e.$t("modal.confirm")),1)])])])):C("",!0)])}}}),Rt=Ee(At,[["__scopeId","data-v-07b1c9a3"]]);export{Rt as default};
|
|
1
|
+
import{_ as _e}from"./Bu1Qq2g-.js";import{_ as he}from"./DU0awelf.js";import{d as fe,G as ye,x as ge,u as be,r as v,v as R,l as S,m as $e,s as ke,c as n,f as K,e as t,j as C,h as s,C as T,D as O,H as A,g as Q,t as a,E as W,F as L,p as H,q as Y,w as Ce,z as we,b as r,_ as Ee}from"./CjVJcaTo.js";import{d as De}from"./C0Rlrcoy.js";import{u as Me}from"./D8RlVVzC.js";import{u as Pe}from"./QtPIr4OQ.js";import{u as q}from"./DRo5NaOZ.js";const Se={class:"issue-view-page"},Te={class:"issue-content"},Ve={class:"main-section"},Ne={class:"card title-card"},Ae={class:"title-row"},Le=["placeholder"],He=["disabled","title"],Ue={key:0,class:"spinner"},Oe={key:1,class:"sparkle"},Fe={class:"card"},Ie={class:"form-row"},Be={class:"form-group"},Je={class:"form-label",for:"edit-priority"},Re={value:""},qe={value:"low"},ze={value:"medium"},Xe={value:"high"},je={value:"critical"},Ge={class:"form-group"},Ke={class:"form-label",for:"edit-parent"},Qe=["placeholder"],We={id:"parent-suggestions"},Ye=["value"],Ze={class:"meta-badges"},xe={class:"meta-badge column-badge"},et={key:0,class:"meta-badge semver-badge"},tt={key:0,class:"card"},st={class:"labels-list"},at={class:"card"},it={class:"section-header"},ot=["innerHTML"],lt=["placeholder"],nt={class:"card"},rt={class:"section-header"},ct={key:0,class:"criteria-list"},ut={key:1,class:"empty-criteria"},dt={key:2,class:"criteria-edit"},vt=["onUpdate:modelValue","placeholder"],pt=["onClick"],mt={class:"actions-bar"},_t=["disabled"],ht=["disabled"],ft={key:2,class:"done-badge"},yt={class:"sidebar"},gt={class:"card"},bt={class:"action-buttons"},$t={class:"card"},kt={class:"metadata-list"},Ct={class:"metadata-item"},wt={class:"metadata-item"},Et={class:"metadata-item"},Dt={key:0,class:"card"},Mt={class:"modal"},Pt={class:"modal-header"},St={class:"modal-title"},Tt={class:"modal-body"},Vt=["value"],Nt={class:"modal-footer"},At=fe({__name:"index",async setup(Lt){let d,w;const Z=ye(),x=ge(),{t:_,locale:ee}=be(),{success:V,error:E}=Me(),{getErrorMessage:N}=Pe(),g=Z.params.id,D=v(!1),M=v(""),F=v(!1),U=v(!1),P=v(!1),h=v(!1),u=v(!1),c=v([]),{data:i,refresh:I}=([d,w]=R(()=>q(`/api/issues/${g}`,"$IXIJsCSqf0")),d=await d,w(),d),{data:b}=([d,w]=R(()=>q("/api/columns","$xdX8vE_27c")),d=await d,w(),d),{data:te}=([d,w]=R(()=>q("/api/issues","$81nxEVnLdN")),d=await d,w(),d),se=S(()=>(te.value||[]).filter(e=>e.key!==g).slice(0,10)),p=v(i.value?.title||""),f=v(i.value?.description||""),y=v(i.value?.priority||""),$=v(i.value?.parent_key||"");$e(i,e=>{e&&(p.value=e.title,f.value=e.description||"",y.value=e.priority||"",$.value=e.parent_key||"")});const z=S(()=>!i.value||!b.value?i.value?.column_slug||"":b.value.find(o=>o.slug===i.value?.column_slug)?.name||i.value.column_slug),B=S(()=>{if(!i.value||!b.value||b.value.length===0)return!1;const e=b.value[b.value.length-1];return i.value.column_slug===e?.slug}),ae=S(()=>{if(!i.value)return null;const e={id:i.value.key,title:p.value,column:i.value.column_slug};return i.value.priority&&(e.priority=i.value.priority),e}),X=S(()=>{if(!i.value)return!1;const e=p.value!==i.value.title,o=f.value!==(i.value.description||""),k=y.value!==(i.value.priority||""),J=$.value!==(i.value.parent_key||""),l=u.value&&JSON.stringify(c.value.filter(m=>m.trim()))!==JSON.stringify(i.value.acceptance_criteria||[]);return e||o||k||J||l}),ie=S(()=>{const e=h.value?f.value:i.value?.description||"";return e?De(e):`<span style="color: var(--text-muted)">${_("issue.noDescription")}</span>`}),j=e=>e?new Date(e).toLocaleDateString():"-",oe=()=>{h.value=!h.value},le=()=>{u.value||(c.value=[...i.value?.acceptance_criteria||[]],c.value.length===0&&(c.value=[""])),u.value=!u.value},ne=()=>{c.value.push("")},re=e=>{c.value.splice(e,1),c.value.length===0&&(c.value=[""])},ce=async()=>{if(!(!p.value.trim()||P.value)){P.value=!0;try{const e=u.value?c.value.filter(k=>k.trim()):i.value?.acceptance_criteria||[],o=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:p.value,lang:ee.value,description:f.value||void 0,priority:y.value||void 0,acceptance_criteria:e.length>0?e:void 0,parent_key:$.value||void 0}});if(o.description&&(f.value=o.description,h.value=!0),o.priority){const k={P0:"critical",P1:"high",P2:"medium",P3:"low"};y.value=k[o.priority]||o.priority}o.acceptance_criteria&&Array.isArray(o.acceptance_criteria)&&(c.value=o.acceptance_criteria.length>0?o.acceptance_criteria:[""],u.value=!0),V(_("autocomplete.rememberSave"))}catch(e){E(N(e,_("autocomplete.error")))}finally{P.value=!1}}},ue=async()=>{if(X.value){U.value=!0;try{const e={title:p.value,description:f.value,priority:y.value||void 0,parent_key:$.value||void 0};u.value&&(e.acceptance_criteria=c.value.filter(o=>o.trim())),await $fetch(`/api/issues/${g}`,{method:"PATCH",body:e}),V(_("notify.issueSaved")),h.value&&(h.value=!1),u.value&&(u.value=!1),I()}catch(e){E(N(e))}finally{U.value=!1}}},de=async()=>{F.value=!0;try{await $fetch(`/api/issues/${g}/next`,{method:"POST"}),V(_("notify.issueAdvanced")),I()}catch(e){E(N(e))}finally{F.value=!1}},ve=()=>{M.value=i.value?.column_slug||"",D.value=!0},pe=async()=>{if(!M.value){E(_("notify.error"));return}try{await $fetch(`/api/issues/${g}/move`,{method:"POST",body:{column:M.value,force:!0}}),V(_("notify.issueMoved")),D.value=!1,I()}catch(e){E(N(e))}},me=async()=>{if(confirm(_("issue.confirmArchive")))try{await $fetch(`/api/issues/${g}/archive`,{method:"DELETE"}),V(_("notify.issueArchived")),x.push("/")}catch(e){E(N(e))}};return ke({title:`${g} - AutoCode`}),(e,o)=>{const k=_e,J=he;return r(),n("div",Se,[K(k,{issue:s(ae),"active-tab":"details"},null,8,["issue"]),t("div",Te,[t("div",Ve,[t("div",Ne,[t("div",Ae,[T(t("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>A(p)?p.value=l:null),type:"text",class:"title-input",placeholder:e.$t("issue.title")},null,8,Le),[[O,s(p)]]),t("button",{type:"button",class:"btn-autocomplete",disabled:s(P)||!s(p).trim(),title:e.$t("autocomplete.tooltip"),onClick:ce},[s(P)?(r(),n("span",Ue)):(r(),n("span",Oe,"✨")),Q(" "+a(s(P)?e.$t("autocomplete.loading"):e.$t("autocomplete.button")),1)],8,He)])]),t("div",Fe,[t("h2",null,a(e.$t("issue.metadata")),1),t("div",Ie,[t("div",Be,[t("label",Je,a(e.$t("issue.priority")),1),T(t("select",{id:"edit-priority","onUpdate:modelValue":o[1]||(o[1]=l=>A(y)?y.value=l:null),class:"form-input"},[t("option",Re,a(e.$t("form.select")),1),t("option",qe,a(e.$t("priority.low")),1),t("option",ze,a(e.$t("priority.medium")),1),t("option",Xe,a(e.$t("priority.high")),1),t("option",je,a(e.$t("priority.critical")),1)],512),[[W,s(y)]])]),t("div",Ge,[t("label",Ke,a(e.$t("issue.parent")),1),T(t("input",{id:"edit-parent","onUpdate:modelValue":o[2]||(o[2]=l=>A($)?$.value=l:null),type:"text",class:"form-input",placeholder:e.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Qe),[[O,s($)]]),t("datalist",We,[(r(!0),n(L,null,H(s(se),l=>(r(),n("option",{key:l.key,value:l.key},a(l.title),9,Ye))),128))])])]),t("div",Ze,[t("span",xe,a(s(z)),1),s(i)?.semver?(r(),n("span",et,a(s(i).semver),1)):C("",!0)])]),s(i)?.labels?.length?(r(),n("div",tt,[t("h2",null,a(e.$t("issue.labels")),1),t("div",st,[(r(!0),n(L,null,H(s(i).labels,(l,m)=>(r(),n("span",{key:m,class:"label-tag"},a(l),1))),128))])])):C("",!0),t("div",at,[t("div",it,[t("h2",null,a(e.$t("issue.description")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(h)}]),onClick:oe},a(s(h)?"✓":"✏️"),3)]),s(h)?T((r(),n("textarea",{key:1,"onUpdate:modelValue":o[3]||(o[3]=l=>A(f)?f.value=l:null),class:"description-edit",placeholder:e.$t("issue.description"),rows:"10"},null,8,lt)),[[O,s(f)]]):(r(),n("div",{key:0,class:"description",innerHTML:s(ie)},null,8,ot))]),t("div",nt,[t("div",rt,[t("h2",null,a(e.$t("issue.acceptanceCriteria")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(u)}]),onClick:le},a(s(u)?"✓":"✏️"),3)]),!s(u)&&s(i)?.acceptance_criteria?.length?(r(),n("ul",ct,[(r(!0),n(L,null,H(s(i).acceptance_criteria,(l,m)=>(r(),n("li",{key:m,class:"criteria-item"},a(l),1))),128))])):s(u)?(r(),n("div",dt,[(r(!0),n(L,null,H(s(c),(l,m)=>(r(),n("div",{key:m,class:"criteria-input-row"},[T(t("input",{"onUpdate:modelValue":G=>s(c)[m]=G,type:"text",class:"form-input",placeholder:e.$t("form.criteriaPlaceholder")},null,8,vt),[[O,s(c)[m]]]),t("button",{class:"btn-icon",type:"button",onClick:G=>re(m)},"×",8,pt)]))),128)),t("button",{class:"btn btn-secondary btn-sm",type:"button",onClick:ne}," + "+a(e.$t("form.addCriteria")),1)])):(r(),n("p",ut,a(e.$t("issue.noCriteria")),1))]),t("div",mt,[t("button",{class:"btn btn-primary",disabled:s(U)||!s(X),onClick:ue},a(s(U)?e.$t("form.saving"):e.$t("form.save")),9,_t),s(B)?C("",!0):(r(),n("button",{key:0,class:"btn btn-secondary",disabled:s(F),onClick:de},a(e.$t("issue.next"))+" → ",9,ht)),s(B)?C("",!0):(r(),n("button",{key:1,class:"btn btn-danger",onClick:me},a(e.$t("issue.archive")),1)),s(B)?(r(),n("span",ft," ✓ "+a(e.$t("issue.done")),1)):C("",!0)])]),t("aside",yt,[t("div",gt,[t("h3",null,a(e.$t("issue.actions")),1),t("div",bt,[t("button",{class:"btn btn-secondary",onClick:ve},a(e.$t("issue.move")),1)])]),t("div",$t,[t("h3",null,a(e.$t("issue.details")),1),t("dl",kt,[t("div",Ct,[t("dt",null,a(e.$t("issue.status")),1),t("dd",null,a(s(z)),1)]),t("div",wt,[t("dt",null,a(e.$t("issue.created")),1),t("dd",null,a(j(s(i)?.created_at)),1)]),t("div",Et,[t("dt",null,a(e.$t("issue.updated")),1),t("dd",null,a(j(s(i)?.updated_at)),1)])])]),s(i)?.parent_key?(r(),n("div",Dt,[t("h3",null,a(e.$t("issue.parent")),1),K(J,{to:`/issue/${s(i).parent_key}`,class:"parent-link"},{default:Ce(()=>[Q(a(s(i).parent_key),1)]),_:1},8,["to"])])):C("",!0)])]),s(D)?(r(),n("div",{key:0,class:"modal-overlay active",onClick:o[7]||(o[7]=we(l=>D.value=!1,["self"]))},[t("div",Mt,[t("div",Pt,[t("h3",St,a(e.$t("issue.move")),1),t("button",{class:"modal-close",onClick:o[4]||(o[4]=l=>D.value=!1)},"×")]),t("div",Tt,[T(t("select",{"onUpdate:modelValue":o[5]||(o[5]=l=>A(M)?M.value=l:null),class:"form-input"},[(r(!0),n(L,null,H(s(b),l=>(r(),n("option",{key:l.slug,value:l.slug},a(l.name),9,Vt))),128))],512),[[W,s(M)]])]),t("div",Nt,[t("button",{class:"btn btn-secondary",onClick:o[6]||(o[6]=l=>D.value=!1)},a(e.$t("modal.cancel")),1),t("button",{class:"btn btn-primary",onClick:pe},a(e.$t("modal.confirm")),1)])])])):C("",!0)])}}}),Rt=Ee(At,[["__scopeId","data-v-07b1c9a3"]]);export{Rt as default};
|