@loicngr/kobo 1.7.16 → 1.7.18
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/AGENTS.md +35 -4
- package/CHANGELOG.md +12 -0
- package/README.md +2 -1
- package/dist/mcp-server/kobo-tasks-handlers.js +48 -5
- package/dist/mcp-server/kobo-tasks-server.js +8 -20
- package/dist/server/db/migrations.js +19 -0
- package/dist/server/db/schema.js +9 -0
- package/dist/server/routes/settings.js +2 -0
- package/dist/server/routes/workspaces.js +242 -56
- package/dist/server/services/agent/engines/claude-code/engine.js +51 -7
- package/dist/server/services/agent/engines/claude-code/options-builder.js +2 -2
- package/dist/server/services/agent/engines/codex/options-builder.js +2 -2
- package/dist/server/services/agent/orchestrator.js +1 -0
- package/dist/server/services/change-source-branch-service.js +150 -0
- package/dist/server/services/chat-history-service.js +41 -0
- package/dist/server/services/file-editor-service.js +59 -0
- package/dist/server/services/forge/github/provider.js +121 -0
- package/dist/server/services/forge/gitlab/provider.js +178 -0
- package/dist/server/services/forge/none.js +23 -0
- package/dist/server/services/forge/registry.js +17 -0
- package/dist/server/services/forge/resolve.js +34 -0
- package/dist/server/services/forge/types.js +9 -0
- package/dist/server/services/git-stats-service.js +32 -0
- package/dist/server/services/pr-watcher-service.js +33 -3
- package/dist/server/services/settings-defaults.js +77 -0
- package/dist/server/services/settings-service.js +34 -0
- package/dist/server/utils/git-ops.js +121 -134
- package/package.json +1 -1
- package/src/client/dist/spa/assets/ActivityFeed-DHf6rSgl.js +8 -0
- package/src/client/dist/spa/assets/{ClosePopup-CxvZA3ft.js → ClosePopup-A-tSm4aa.js} +1 -1
- package/src/client/dist/spa/assets/{CreatePage-CdZr7f3j.js → CreatePage-DL8LTcyD.js} +1 -1
- package/src/client/dist/spa/assets/DiffViewer-C4L5y8Ho.css +1 -0
- package/src/client/dist/spa/assets/DiffViewer-CgzuQueb.js +8 -0
- package/src/client/dist/spa/assets/{HealthPage-z1uIOpYk.js → HealthPage-Zsnyyv66.js} +1 -1
- package/src/client/dist/spa/assets/{MainLayout-BJmBXwYn.css → MainLayout-KEr19FOv.css} +1 -1
- package/src/client/dist/spa/assets/MainLayout-OJcuFEwx.js +37 -0
- package/src/client/dist/spa/assets/{QExpansionItem-BTd5m2yV.js → QExpansionItem-CgJQdznK.js} +1 -1
- package/src/client/dist/spa/assets/{QMenu-C2Wwwf2E.js → QMenu-NVDU7D3u.js} +1 -1
- package/src/client/dist/spa/assets/{QScrollArea-A1wI0IXU.js → QScrollArea-DFNGAP1T.js} +1 -1
- package/src/client/dist/spa/assets/{QTooltip-Bfdmzm_m.js → QTooltip-BC7PnZJ1.js} +1 -1
- package/src/client/dist/spa/assets/{SearchPage-ChmKHNKn.js → SearchPage-CpmeT5hL.js} +1 -1
- package/src/client/dist/spa/assets/{SettingsPage-BJLyYrBN.css → SettingsPage-BTGPZaqC.css} +1 -1
- package/src/client/dist/spa/assets/SettingsPage-CKz2kdw8.js +9 -0
- package/src/client/dist/spa/assets/{TouchPan-BIE5rs7U.js → TouchPan-D0fJnlOC.js} +1 -1
- package/src/client/dist/spa/assets/WorkspacePage-CcWa3--k.js +4 -0
- package/src/client/dist/spa/assets/WorkspacePage-DPj03Um2.css +1 -0
- package/src/client/dist/spa/assets/{build-path-tree-BGUV3nY1.js → build-path-tree-CyqReJkk.js} +1 -1
- package/src/client/dist/spa/assets/{cssMode-BU4X8R6a.js → cssMode-DKW40Eay.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api-B4xBDzmJ.js → editor.api-cIZo-p3R.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-CSZRkloL.js → editor.main-DxYwm0in.js} +3 -3
- package/src/client/dist/spa/assets/{engineFeatures-CLOVr5b4.js → engineFeatures-vEC-j3xd.js} +1 -1
- package/src/client/dist/spa/assets/{expand-template-BxUkuL5g.js → expand-template-Bmbq9pxX.js} +1 -1
- package/src/client/dist/spa/assets/{freemarker2-DRz20wAV.js → freemarker2-DYe7YniO.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-C0dsvPnC.js → handlebars-CFHnjuEe.js} +1 -1
- package/src/client/dist/spa/assets/{html-Cqvj1pWs.js → html-D_DPVIcT.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-BTHNvkm6.js → htmlMode-CULL5FkI.js} +1 -1
- package/src/client/dist/spa/assets/i18n-awaKh__J.js +1 -0
- package/src/client/dist/spa/assets/index-B2qdU9v-.js +52 -0
- package/src/client/dist/spa/assets/{javascript-C8n3U02v.js → javascript-Cj-bhbPb.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-C3AFxQ6K.js → jsonMode-CJrCPpxd.js} +1 -1
- package/src/client/dist/spa/assets/{kobo-commands-BuxgteGZ.js → kobo-commands-B2AhWe1S.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-C4wtUDrJ.js → liquid-B4ttnSVX.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-CaT1p1F2.js → mdx-DT9HeWQS.js} +1 -1
- package/src/client/dist/spa/assets/{monaco.contribution-CJg5GKVf.js → monaco.contribution-Dc3R0xb9.js} +2 -2
- package/src/client/dist/spa/assets/{notifications-BC6en6Lt.js → notifications-Hq-6rEYv.js} +1 -1
- package/src/client/dist/spa/assets/{permissionModes-BQHBTBwa.js → permissionModes-BA0XHeew.js} +1 -1
- package/src/client/dist/spa/assets/{python-Cj54W2Tg.js → python-DSdYwb75.js} +1 -1
- package/src/client/dist/spa/assets/{razor-D3gJxoX_.js → razor-C-5bSEPf.js} +1 -1
- package/src/client/dist/spa/assets/{render-chat-markdown-DxEHr3lW.js → render-chat-markdown-cMOd2guW.js} +1 -1
- package/src/client/dist/spa/assets/{tsMode-B6S4PLWH.js → tsMode-Bck0IzqV.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-Ca8AEX3t.js → typescript-Daj2xIGr.js} +1 -1
- package/src/client/dist/spa/assets/{use-onboarding-CNeLPDtv.js → use-onboarding-Xp0y257M.js} +1 -1
- package/src/client/dist/spa/assets/{xml-CsKo4k8C.js → xml-DLN-RVL8.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-X5yKmi6z.js → yaml-DnDRs7J6.js} +1 -1
- package/src/client/dist/spa/index.html +2 -2
- package/src/mcp-server/kobo-tasks-handlers.ts +56 -5
- package/src/mcp-server/kobo-tasks-server.ts +8 -19
- package/src/client/dist/spa/assets/ActivityFeed-DU6lDEP0.js +0 -8
- package/src/client/dist/spa/assets/DiffViewer-DTdDcKZC.css +0 -1
- package/src/client/dist/spa/assets/DiffViewer-m801GPfI.js +0 -7
- package/src/client/dist/spa/assets/MainLayout-oJdQ-QKM.js +0 -37
- package/src/client/dist/spa/assets/SettingsPage-B59LoCos.js +0 -9
- package/src/client/dist/spa/assets/WorkspacePage-Bj1PJSWT.js +0 -4
- package/src/client/dist/spa/assets/WorkspacePage-tFBswKV9.css +0 -1
- package/src/client/dist/spa/assets/i18n-D1I-Us2H.js +0 -1
- package/src/client/dist/spa/assets/index-KABmOIkF.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,N as r,W as i,b as a,et as o}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{D as s,O as c,P as l}from"./QIcon-BmEX2rXO.js";import{p as u}from"./use-id-BCnfiBjU.js";import{_ as d,h as f,m as p,y as m}from"./notifications-BC6en6Lt.js";import{l as h}from"./index-KABmOIkF.js";function ee(){let e=o(!u.value);return e.value===!1&&r(()=>{e.value=!0}),{isHydrated:e}}var g=typeof ResizeObserver<`u`,te=g===!0?{}:{style:`display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;`,url:`about:blank`},ne=l({name:`QResizeObserver`,props:{debounce:{type:[String,Number],default:100}},emits:[`resize`],setup(i,{emit:o}){let l=null,u,d={width:-1,height:-1};function f(e){e===!0||i.debounce===0||i.debounce===`0`?p():l===null&&(l=setTimeout(p,i.debounce))}function p(){if(l!==null&&(clearTimeout(l),l=null),u){let{offsetWidth:e,offsetHeight:t}=u;(e!==d.width||t!==d.height)&&(d={width:e,height:t},o(`resize`,d))}}let{proxy:m}=a();if(m.trigger=f,g===!0){let t,i=e=>{u=m.$el.parentNode,u?(t=new ResizeObserver(f),t.observe(u),p()):e!==!0&&n(()=>{i(!0)})};return r(()=>{i()}),e(()=>{l!==null&&clearTimeout(l),t!==void 0&&(t.disconnect===void 0?u&&t.unobserve(u):t.disconnect())}),c}else{let{isHydrated:i}=ee(),a;function o(){l!==null&&(clearTimeout(l),l=null),a!==void 0&&(a.removeEventListener!==void 0&&a.removeEventListener(`resize`,f,s.passive),a=void 0)}function c(){o(),u?.contentDocument&&(a=u.contentDocument.defaultView,a.addEventListener(`resize`,f,s.passive),p())}return r(()=>{n(()=>{u=m.$el,u&&c()})}),e(o),()=>{if(i.value===!0)return t(`object`,{class:`q--avoid-card-border`,style:te.style,tabindex:-1,type:`text/html`,data:te.url,"aria-hidden":`true`,onLoad:c})}}}}),{passive:_}=s,re=[`both`,`horizontal`,`vertical`],ie=l({name:`QScrollObserver`,props:{axis:{type:String,validator:e=>re.includes(e),default:`vertical`},debounce:[String,Number],scrollTarget:m},emits:[`scroll`],setup(t,{emit:n}){let o={position:{top:0,left:0},direction:`down`,directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}},s=null,l,u;i(()=>t.scrollTarget,()=>{ee(),h()});function m(){s?.();let e=Math.max(0,d(l)),r=p(l),i={top:e-o.position.top,left:r-o.position.left};if(t.axis===`vertical`&&i.top===0||t.axis===`horizontal`&&i.left===0)return;let a=Math.abs(i.top)>=Math.abs(i.left)?i.top<0?`up`:`down`:i.left<0?`left`:`right`;o.position={top:e,left:r},o.directionChanged=o.direction!==a,o.delta=i,o.directionChanged===!0&&(o.direction=a,o.inflectionPoint=o.position),n(`scroll`,{...o})}function h(){l=f(u,t.scrollTarget),l.addEventListener(`scroll`,g,_),g(!0)}function ee(){l!==void 0&&(l.removeEventListener(`scroll`,g,_),l=void 0)}function g(e){if(e===!0||t.debounce===0||t.debounce===`0`)m();else if(s===null){let[e,n]=t.debounce?[setTimeout(m,t.debounce),clearTimeout]:[requestAnimationFrame(m),cancelAnimationFrame];s=()=>{n(e),s=null}}}let{proxy:te}=a();return i(()=>te.$q.lang.rtl,m),r(()=>{u=te.$el.parentNode,h()}),e(()=>{s?.(),ee()}),Object.assign(te,{trigger:g,getPosition:()=>o}),c}}),ae;function oe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var v=oe();function se(e){v=e}var y={exec:()=>null};function b(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(x.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var ce=(()=>{try{return!0}catch{return!1}})(),x={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},le=/^(?:[ \t]*(?:\n|$))+/,ue=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,de=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,S=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,pe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,C=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,me=b(C).replace(/bull/g,pe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),w=b(C).replace(/bull/g,pe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),he=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,T=/^[^\n]+/,E=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ge=b(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,E).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),D=b(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,pe).getRegex(),_e=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,ve=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ye=b(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,ve).replace(`tag`,_e).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),be=b(he).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex(),O={blockquote:b(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,be).getRegex(),code:ue,def:ge,fences:de,heading:fe,hr:S,html:ye,lheading:me,list:D,newline:le,paragraph:be,table:y,text:T},xe=b(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex(),k={...O,lheading:w,table:xe,paragraph:b(he).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,xe).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex()},Se={...O,html:b(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,ve).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:y,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:b(he).replace(`hr`,S).replace(`heading`,` *#{1,6} *[^
|
|
1
|
+
import{A as e,C as t,D as n,N as r,W as i,b as a,et as o}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{D as s,O as c,P as l}from"./QIcon-BmEX2rXO.js";import{p as u}from"./use-id-BCnfiBjU.js";import{_ as d,h as f,m as p,y as m}from"./notifications-Hq-6rEYv.js";import{l as h}from"./index-B2qdU9v-.js";function ee(){let e=o(!u.value);return e.value===!1&&r(()=>{e.value=!0}),{isHydrated:e}}var g=typeof ResizeObserver<`u`,te=g===!0?{}:{style:`display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;`,url:`about:blank`},ne=l({name:`QResizeObserver`,props:{debounce:{type:[String,Number],default:100}},emits:[`resize`],setup(i,{emit:o}){let l=null,u,d={width:-1,height:-1};function f(e){e===!0||i.debounce===0||i.debounce===`0`?p():l===null&&(l=setTimeout(p,i.debounce))}function p(){if(l!==null&&(clearTimeout(l),l=null),u){let{offsetWidth:e,offsetHeight:t}=u;(e!==d.width||t!==d.height)&&(d={width:e,height:t},o(`resize`,d))}}let{proxy:m}=a();if(m.trigger=f,g===!0){let t,i=e=>{u=m.$el.parentNode,u?(t=new ResizeObserver(f),t.observe(u),p()):e!==!0&&n(()=>{i(!0)})};return r(()=>{i()}),e(()=>{l!==null&&clearTimeout(l),t!==void 0&&(t.disconnect===void 0?u&&t.unobserve(u):t.disconnect())}),c}else{let{isHydrated:i}=ee(),a;function o(){l!==null&&(clearTimeout(l),l=null),a!==void 0&&(a.removeEventListener!==void 0&&a.removeEventListener(`resize`,f,s.passive),a=void 0)}function c(){o(),u?.contentDocument&&(a=u.contentDocument.defaultView,a.addEventListener(`resize`,f,s.passive),p())}return r(()=>{n(()=>{u=m.$el,u&&c()})}),e(o),()=>{if(i.value===!0)return t(`object`,{class:`q--avoid-card-border`,style:te.style,tabindex:-1,type:`text/html`,data:te.url,"aria-hidden":`true`,onLoad:c})}}}}),{passive:_}=s,re=[`both`,`horizontal`,`vertical`],ie=l({name:`QScrollObserver`,props:{axis:{type:String,validator:e=>re.includes(e),default:`vertical`},debounce:[String,Number],scrollTarget:m},emits:[`scroll`],setup(t,{emit:n}){let o={position:{top:0,left:0},direction:`down`,directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}},s=null,l,u;i(()=>t.scrollTarget,()=>{ee(),h()});function m(){s?.();let e=Math.max(0,d(l)),r=p(l),i={top:e-o.position.top,left:r-o.position.left};if(t.axis===`vertical`&&i.top===0||t.axis===`horizontal`&&i.left===0)return;let a=Math.abs(i.top)>=Math.abs(i.left)?i.top<0?`up`:`down`:i.left<0?`left`:`right`;o.position={top:e,left:r},o.directionChanged=o.direction!==a,o.delta=i,o.directionChanged===!0&&(o.direction=a,o.inflectionPoint=o.position),n(`scroll`,{...o})}function h(){l=f(u,t.scrollTarget),l.addEventListener(`scroll`,g,_),g(!0)}function ee(){l!==void 0&&(l.removeEventListener(`scroll`,g,_),l=void 0)}function g(e){if(e===!0||t.debounce===0||t.debounce===`0`)m();else if(s===null){let[e,n]=t.debounce?[setTimeout(m,t.debounce),clearTimeout]:[requestAnimationFrame(m),cancelAnimationFrame];s=()=>{n(e),s=null}}}let{proxy:te}=a();return i(()=>te.$q.lang.rtl,m),r(()=>{u=te.$el.parentNode,h()}),e(()=>{s?.(),ee()}),Object.assign(te,{trigger:g,getPosition:()=>o}),c}}),ae;function oe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var v=oe();function se(e){v=e}var y={exec:()=>null};function b(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(x.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var ce=(()=>{try{return!0}catch{return!1}})(),x={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},le=/^(?:[ \t]*(?:\n|$))+/,ue=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,de=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,S=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,pe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,C=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,me=b(C).replace(/bull/g,pe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),w=b(C).replace(/bull/g,pe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),he=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,T=/^[^\n]+/,E=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ge=b(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,E).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),D=b(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,pe).getRegex(),_e=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,ve=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ye=b(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,ve).replace(`tag`,_e).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),be=b(he).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex(),O={blockquote:b(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,be).getRegex(),code:ue,def:ge,fences:de,heading:fe,hr:S,html:ye,lheading:me,list:D,newline:le,paragraph:be,table:y,text:T},xe=b(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex(),k={...O,lheading:w,table:xe,paragraph:b(he).replace(`hr`,S).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,xe).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,_e).getRegex()},Se={...O,html:b(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,ve).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:y,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:b(he).replace(`hr`,S).replace(`heading`,` *#{1,6} *[^
|
|
2
2
|
]`).replace(`lheading`,me).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Ce=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,A=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,we=/^( {2,}|\\)\n(?!\s*$)/,Te=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,j=/[\p{P}\p{S}]/u,Ee=/[\s\p{P}\p{S}]/u,De=/[^\s\p{P}\p{S}]/u,Oe=b(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,Ee).getRegex(),M=/(?!~)[\p{P}\p{S}]/u,N=/(?!~)[\s\p{P}\p{S}]/u,P=/(?:[^\s\p{P}\p{S}]|~)/u,ke=b(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,ce?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Ae=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,je=b(Ae,`u`).replace(/punct/g,j).getRegex(),Me=b(Ae,`u`).replace(/punct/g,M).getRegex(),Ne=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Pe=b(Ne,`gu`).replace(/notPunctSpace/g,De).replace(/punctSpace/g,Ee).replace(/punct/g,j).getRegex(),Fe=b(Ne,`gu`).replace(/notPunctSpace/g,P).replace(/punctSpace/g,N).replace(/punct/g,M).getRegex(),F=b(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,De).replace(/punctSpace/g,Ee).replace(/punct/g,j).getRegex(),I=b(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,j).getRegex(),Ie=b(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,De).replace(/punctSpace/g,Ee).replace(/punct/g,j).getRegex(),Le=b(/\\(punct)/,`gu`).replace(/punct/g,j).getRegex(),Re=b(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),ze=b(ve).replace(`(?:-->|$)`,`-->`).getRegex(),Be=b(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,ze).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ve=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,He=b(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Ve).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ue=b(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Ve).replace(`ref`,E).getRegex(),L=b(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,E).getRegex(),R=b(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Ue).replace(`nolink`,L).getRegex(),We=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ge={_backpedal:y,anyPunctuation:Le,autolink:Re,blockSkip:ke,br:we,code:A,del:y,delLDelim:y,delRDelim:y,emStrongLDelim:je,emStrongRDelimAst:Pe,emStrongRDelimUnd:F,escape:Ce,link:He,nolink:L,punctuation:Oe,reflink:Ue,reflinkSearch:R,tag:Be,text:Te,url:y},Ke={...Ge,link:b(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Ve).getRegex(),reflink:b(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Ve).getRegex()},qe={...Ge,emStrongRDelimAst:Fe,emStrongLDelim:Me,delLDelim:I,delRDelim:Ie,url:b(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,We).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:b(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,We).getRegex()},Je={...qe,br:b(we).replace(`{2,}`,`*`).getRegex(),text:b(qe.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Ye={normal:O,gfm:k,pedantic:Se},z={normal:Ge,gfm:qe,breaks:Je,pedantic:Ke},B={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Xe=e=>B[e];function V(e,t){if(t){if(x.escapeTest.test(e))return e.replace(x.escapeReplace,Xe)}else if(x.escapeTestNoEncode.test(e))return e.replace(x.escapeReplaceNoEncode,Xe);return e}function Ze(e){try{e=encodeURI(e).replace(x.percentDecode,`%`)}catch{return null}return e}function Qe(e,t){let n=e.replace(x.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(x.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(x.slashPipe,`|`);return n}function H(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function $e(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function et(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function tt(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function nt(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
3
3
|
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
4
4
|
`)}var rt=class{constructor(e){h(this,`options`,void 0),h(this,`rules`,void 0),h(this,`lexer`,void 0),this.options=e||v}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:H(e,`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-cIZo-p3R.js";import{t}from"./monaco.contribution-Dc3R0xb9.js";var n,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s=(e,t,n,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!o.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(s=i(t,c))||s.enumerable});return e},c=(e,t,n)=>(s(e,t,`default`),n&&s(n,t,`default`)),l={};c(l,e);function u(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var d=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:u(`defaultWorkerFactory`,{createScriptURL:e=>e});function f(e){let t=e.label,n=globalThis.MonacoEnvironment;if(n){if(typeof n.getWorker==`function`)return n.getWorker(`workerMain.js`,t);if(typeof n.getWorkerUrl==`function`){let e=n.getWorkerUrl(`workerMain.js`,t);return new Worker(d?d.createScriptURL(e):e,{name:t,type:`module`})}}throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function p(e){let t=Promise.resolve(f({label:e.label??`monaco-editor-worker`,moduleId:e.moduleId})).then(t=>(t.postMessage(`ignore`),t.postMessage(e.createData),t));return l.editor.createWebWorker({worker:t,host:e.host,keepIdleModels:e.keepIdleModels})}var m=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=p({moduleId:`vs/language/typescript/tsWorker`,label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(l.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},h={};h[`lib.d.ts`]=!0,h[`lib.decorators.d.ts`]=!0,h[`lib.decorators.legacy.d.ts`]=!0,h[`lib.dom.asynciterable.d.ts`]=!0,h[`lib.dom.d.ts`]=!0,h[`lib.dom.iterable.d.ts`]=!0,h[`lib.es2015.collection.d.ts`]=!0,h[`lib.es2015.core.d.ts`]=!0,h[`lib.es2015.d.ts`]=!0,h[`lib.es2015.generator.d.ts`]=!0,h[`lib.es2015.iterable.d.ts`]=!0,h[`lib.es2015.promise.d.ts`]=!0,h[`lib.es2015.proxy.d.ts`]=!0,h[`lib.es2015.reflect.d.ts`]=!0,h[`lib.es2015.symbol.d.ts`]=!0,h[`lib.es2015.symbol.wellknown.d.ts`]=!0,h[`lib.es2016.array.include.d.ts`]=!0,h[`lib.es2016.d.ts`]=!0,h[`lib.es2016.full.d.ts`]=!0,h[`lib.es2016.intl.d.ts`]=!0,h[`lib.es2017.d.ts`]=!0,h[`lib.es2017.date.d.ts`]=!0,h[`lib.es2017.full.d.ts`]=!0,h[`lib.es2017.intl.d.ts`]=!0,h[`lib.es2017.object.d.ts`]=!0,h[`lib.es2017.sharedmemory.d.ts`]=!0,h[`lib.es2017.string.d.ts`]=!0,h[`lib.es2017.typedarrays.d.ts`]=!0,h[`lib.es2018.asyncgenerator.d.ts`]=!0,h[`lib.es2018.asynciterable.d.ts`]=!0,h[`lib.es2018.d.ts`]=!0,h[`lib.es2018.full.d.ts`]=!0,h[`lib.es2018.intl.d.ts`]=!0,h[`lib.es2018.promise.d.ts`]=!0,h[`lib.es2018.regexp.d.ts`]=!0,h[`lib.es2019.array.d.ts`]=!0,h[`lib.es2019.d.ts`]=!0,h[`lib.es2019.full.d.ts`]=!0,h[`lib.es2019.intl.d.ts`]=!0,h[`lib.es2019.object.d.ts`]=!0,h[`lib.es2019.string.d.ts`]=!0,h[`lib.es2019.symbol.d.ts`]=!0,h[`lib.es2020.bigint.d.ts`]=!0,h[`lib.es2020.d.ts`]=!0,h[`lib.es2020.date.d.ts`]=!0,h[`lib.es2020.full.d.ts`]=!0,h[`lib.es2020.intl.d.ts`]=!0,h[`lib.es2020.number.d.ts`]=!0,h[`lib.es2020.promise.d.ts`]=!0,h[`lib.es2020.sharedmemory.d.ts`]=!0,h[`lib.es2020.string.d.ts`]=!0,h[`lib.es2020.symbol.wellknown.d.ts`]=!0,h[`lib.es2021.d.ts`]=!0,h[`lib.es2021.full.d.ts`]=!0,h[`lib.es2021.intl.d.ts`]=!0,h[`lib.es2021.promise.d.ts`]=!0,h[`lib.es2021.string.d.ts`]=!0,h[`lib.es2021.weakref.d.ts`]=!0,h[`lib.es2022.array.d.ts`]=!0,h[`lib.es2022.d.ts`]=!0,h[`lib.es2022.error.d.ts`]=!0,h[`lib.es2022.full.d.ts`]=!0,h[`lib.es2022.intl.d.ts`]=!0,h[`lib.es2022.object.d.ts`]=!0,h[`lib.es2022.regexp.d.ts`]=!0,h[`lib.es2022.sharedmemory.d.ts`]=!0,h[`lib.es2022.string.d.ts`]=!0,h[`lib.es2023.array.d.ts`]=!0,h[`lib.es2023.collection.d.ts`]=!0,h[`lib.es2023.d.ts`]=!0,h[`lib.es2023.full.d.ts`]=!0,h[`lib.es5.d.ts`]=!0,h[`lib.es6.d.ts`]=!0,h[`lib.esnext.collection.d.ts`]=!0,h[`lib.esnext.d.ts`]=!0,h[`lib.esnext.decorators.d.ts`]=!0,h[`lib.esnext.disposable.d.ts`]=!0,h[`lib.esnext.full.d.ts`]=!0,h[`lib.esnext.intl.d.ts`]=!0,h[`lib.esnext.object.d.ts`]=!0,h[`lib.esnext.promise.d.ts`]=!0,h[`lib.scripthost.d.ts`]=!0,h[`lib.webworker.asynciterable.d.ts`]=!0,h[`lib.webworker.d.ts`]=!0,h[`lib.webworker.importscripts.d.ts`]=!0,h[`lib.webworker.iterable.d.ts`]=!0;function g(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=g(i,t,n);return r}function _(e){return e?e.map(e=>e.text).join(``):``}var v=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},y=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf(`/lib.`)===0?!!h[e.path.slice(1)]:!1}getOrCreateModel(e){let n=l.Uri.parse(e),r=l.editor.getModel(n);if(r)return r;if(this.isLibFile(n)&&this._hasFetchedLibFiles)return l.editor.createModel(this._libFiles[n.path.slice(1)],`typescript`,n);let i=t.getExtraLibs()[e];return i?l.editor.createModel(i.content,`typescript`,n):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},b=class extends v{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),a=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():l.editor.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),a.dispose(),clearTimeout(r)}},t()},a=e=>{l.editor.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(l.editor.onDidCreateModel(e=>i(e))),this._disposables.push(l.editor.onWillDisposeModel(a)),this._disposables.push(l.editor.onDidChangeModelLanguage(e=>{a(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of l.editor.getModels())a(e)}});let o=()=>{for(let e of l.editor.getModels())a(e),i(e)};this._disposables.push(this._defaults.onDidChange(o)),this._disposables.push(this._defaults.onDidExtraLibsChange(o)),l.editor.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let n=[],{noSyntaxValidation:r,noSemanticValidation:i,noSuggestionDiagnostics:a}=this._defaults.getDiagnosticsOptions();r||n.push(t.getSyntacticDiagnostics(e.uri.toString())),i||n.push(t.getSemanticDiagnostics(e.uri.toString())),a||n.push(t.getSuggestionDiagnostics(e.uri.toString()));let o=await Promise.all(n);if(!o||e.isDisposed())return;let s=o.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),c=s.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?l.Uri.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(c),!e.isDisposed()&&l.editor.setModelMarkers(e,this._selector,s.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:i,column:a}=e.getPositionAt(n),{lineNumber:o,column:s}=e.getPositionAt(n+r),c=[];return t.reportsUnnecessary&&c.push(l.MarkerTag.Unnecessary),t.reportsDeprecated&&c.push(l.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s,message:g(t.messageText,`
|
|
2
2
|
`),code:t.code.toString(),tags:c,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:g(t.messageText,`
|
|
3
3
|
`)})}),n}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return l.MarkerSeverity.Error;case 3:return l.MarkerSeverity.Info;case 0:return l.MarkerSeverity.Warning;case 2:return l.MarkerSeverity.Hint}return l.MarkerSeverity.Info}},x=class e extends v{get triggerCharacters(){return[`.`]}async provideCompletionItems(t,n,r,i){let a=t.getWordUntilPosition(n),o=new l.Range(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn),s=t.uri,c=t.getOffsetAt(n),u=await this._worker(s);if(t.isDisposed())return;let d=await u.getCompletionsAtPosition(s.toString(),c);if(!(!d||t.isDisposed()))return{suggestions:d.entries.map(r=>{let i=o;if(r.replacementSpan){let e=t.getPositionAt(r.replacementSpan.start),n=t.getPositionAt(r.replacementSpan.start+r.replacementSpan.length);i=new l.Range(e.lineNumber,e.column,n.lineNumber,n.column)}let a=[];return r.kindModifiers!==void 0&&r.kindModifiers.indexOf(`deprecated`)!==-1&&a.push(l.languages.CompletionItemTag.Deprecated),{uri:s,position:n,offset:c,range:i,label:r.name,insertText:r.name,sortText:r.sortText,kind:e.convertKind(r.kind),tags:a}})}}async resolveCompletionItem(t,n){let r=t,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:e.convertKind(s.kind),detail:_(s.displayParts),documentation:{value:e.createDocumentationString(s)}}:r}static convertKind(e){switch(e){case k.primitiveType:case k.keyword:return l.languages.CompletionItemKind.Keyword;case k.variable:case k.localVariable:return l.languages.CompletionItemKind.Variable;case k.memberVariable:case k.memberGetAccessor:case k.memberSetAccessor:return l.languages.CompletionItemKind.Field;case k.function:case k.memberFunction:case k.constructSignature:case k.callSignature:case k.indexSignature:return l.languages.CompletionItemKind.Function;case k.enum:return l.languages.CompletionItemKind.Enum;case k.module:return l.languages.CompletionItemKind.Module;case k.class:return l.languages.CompletionItemKind.Class;case k.interface:return l.languages.CompletionItemKind.Interface;case k.warning:return l.languages.CompletionItemKind.File}return l.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=_(e.documentation);if(e.tags)for(let n of e.tags)t+=`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-cIZo-p3R.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:s.languages.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:s.languages.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:s.languages.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:s.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},l={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.</.>>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,`delimiter.bracket`],{include:`common`}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}],[/[A-Z][\w\$]*/,`type.identifier`],{include:`@whitespace`},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:`regexp`,bracket:`@open`,next:`@regexp`}],[/[()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{c as conf,l as language};
|
package/src/client/dist/spa/assets/{use-onboarding-CNeLPDtv.js → use-onboarding-Xp0y257M.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{s as e}from"./notifications-
|
|
1
|
+
import{s as e}from"./notifications-Hq-6rEYv.js";import{n as t}from"./vue-i18n-Cq-KgjJC.js";import{i as n}from"./index-B2qdU9v-.js";var r=[`red-5`,`pink-5`,`purple-5`,`deep-purple-5`,`indigo-5`,`blue-5`,`cyan-5`,`teal-5`,`green-5`,`amber-5`,`orange-5`,`brown-5`],i={"red-5":`white`,"pink-5":`white`,"purple-5":`white`,"deep-purple-5":`white`,"indigo-5":`white`,"blue-5":`white`,"cyan-5":`grey-9`,"teal-5":`white`,"green-5":`grey-9`,"amber-5":`grey-9`,"orange-5":`white`,"brown-5":`white`};function a(t){return e().getProjectByPath(t.projectPath)?.color??null}function o(t){return e().getProjectByPath(t)?.displayName?.trim()||l(t)}function s(e){return o(e.projectPath)}function c(e){let t=a(e);return t?i[t]:`grey-3`}function l(e){return e.replace(/\/+$/,``).split(`/`).pop()??e}var u={},d;function f(e={}){u={animate:!0,allowClose:!0,overlayClickBehavior:`close`,overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:[`next`,`previous`,`close`],disableButtons:[],overlayColor:`#000`,...e}}function p(e){return e?u[e]:u}function m(e){d=e}function h(){return d}var g={};function _(e,t){g[e]=t}function v(e){var t;(t=g[e])==null||t.call(g)}function y(){g={}}function b(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function x(e){let t=`a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])`;return e.flatMap(e=>{let n=e.matches(t),r=Array.from(e.querySelectorAll(t));return[...n?[e]:[],...r]}).filter(e=>getComputedStyle(e).pointerEvents!==`none`&&te(e))}function S(e){if(!e||ee(e))return;let t=p(`smoothScroll`),n=e.offsetHeight>window.innerHeight;e.scrollIntoView({behavior:!t||C(e)?`auto`:`smooth`,inline:`center`,block:n?`start`:`center`})}function C(e){if(!e||!e.parentElement)return;let t=e.parentElement;return t.scrollHeight>t.clientHeight}function ee(e){let t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function te(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}var w={};function T(e,t){w[e]=t}function E(e){return e?w[e]:w}function D(){w={}}function ne(e,t,n,r){let i=E(`__activeStagePosition`),a=i||n.getBoundingClientRect(),o=r.getBoundingClientRect();i={x:b(e,a.x,o.x-a.x,t),y:b(e,a.y,o.y-a.y,t),width:b(e,a.width,o.width-a.width,t),height:b(e,a.height,o.height-a.height,t)},j(i),T(`__activeStagePosition`,i)}function O(e){if(!e)return;let t=e.getBoundingClientRect(),n={x:t.x,y:t.y,width:t.width,height:t.height};T(`__activeStagePosition`,n),j(n)}function k(){let e=E(`__activeStagePosition`),t=E(`__overlaySvg`);if(!e)return;if(!t){console.warn(`No stage svg found.`);return}let n=window.innerWidth,r=window.innerHeight;t.setAttribute(`viewBox`,`0 0 ${n} ${r}`)}function A(e){let t=M(e);document.body.appendChild(t),V(t,e=>{e.target.tagName===`path`&&v(`overlayClick`)}),T(`__overlaySvg`,t)}function j(e){let t=E(`__overlaySvg`);if(!t){A(e);return}let n=t.firstElementChild;if(n?.tagName!==`path`)throw Error(`no path element found in stage svg`);n.setAttribute(`d`,N(e))}function M(e){let t=window.innerWidth,n=window.innerHeight,r=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);r.classList.add(`driver-overlay`,`driver-overlay-animated`),r.setAttribute(`viewBox`,`0 0 ${t} ${n}`),r.setAttribute(`xmlSpace`,`preserve`),r.setAttribute(`xmlnsXlink`,`http://www.w3.org/1999/xlink`),r.setAttribute(`version`,`1.1`),r.setAttribute(`preserveAspectRatio`,`xMinYMin slice`),r.style.fillRule=`evenodd`,r.style.clipRule=`evenodd`,r.style.strokeLinejoin=`round`,r.style.strokeMiterlimit=`2`,r.style.zIndex=`10000`,r.style.position=`fixed`,r.style.top=`0`,r.style.left=`0`,r.style.width=`100%`,r.style.height=`100%`;let i=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return i.setAttribute(`d`,N(e)),i.style.fill=p(`overlayColor`)||`rgb(0,0,0)`,i.style.opacity=`${p(`overlayOpacity`)}`,i.style.pointerEvents=`auto`,i.style.cursor=`auto`,r.appendChild(i),r}function N(e){let t=window.innerWidth,n=window.innerHeight,r=p(`stagePadding`)||0,i=p(`stageRadius`)||0,a=e.width+r*2,o=e.height+r*2,s=Math.min(i,a/2,o/2),c=Math.floor(Math.max(s,0)),l=e.x-r+c,u=e.y-r,d=a-c*2,f=o-c*2;return`M${t},0L0,0L0,${n}L${t},${n}L${t},0Z
|
|
2
2
|
M${l},${u} h${d} a${c},${c} 0 0 1 ${c},${c} v${f} a${c},${c} 0 0 1 -${c},${c} h-${d} a${c},${c} 0 0 1 -${c},-${c} v-${f} a${c},${c} 0 0 1 ${c},-${c} z`}function P(){let e=E(`__overlaySvg`);e&&e.remove()}function F(){let e=document.getElementById(`driver-dummy-element`);if(e)return e;let t=document.createElement(`div`);return t.id=`driver-dummy-element`,t.style.width=`0`,t.style.height=`0`,t.style.pointerEvents=`none`,t.style.opacity=`0`,t.style.position=`fixed`,t.style.top=`50%`,t.style.left=`50%`,document.body.appendChild(t),t}function I(e){let{element:t}=e,n=typeof t==`function`?t():typeof t==`string`?document.querySelector(t):t;n||=F(),re(n,e)}function L(){let e=E(`__activeElement`),t=E(`__activeStep`);e&&(O(e),k(),Y(e,t))}function re(e,t){let n=Date.now(),r=E(`__activeStep`),i=E(`__activeElement`)||e,a=!i||i===e,o=e.id===`driver-dummy-element`,s=i.id===`driver-dummy-element`,c=p(`animate`),l=t.onHighlightStarted||p(`onHighlightStarted`),u=t?.onHighlighted||p(`onHighlighted`),d=r?.onDeselected||p(`onDeselected`),f=p(),m=E();!a&&d&&d(s?void 0:i,r,{config:f,state:m,driver:h()}),l&&l(o?void 0:e,t,{config:f,state:m,driver:h()});let g=!a&&c,_=!1;W(),T(`previousStep`,r),T(`previousElement`,i),T(`activeStep`,t),T(`activeElement`,e);let v=()=>{if(E(`__transitionCallback`)!==v)return;let a=Date.now()-n,s=400-a<=400/2;t.popover&&s&&!_&&g&&(G(e,t),_=!0),p(`animate`)&&a<400?ne(a,400,i,e):(O(e),u&&u(o?void 0:e,t,{config:p(),state:E(),driver:h()}),T(`__transitionCallback`,void 0),T(`__previousStep`,r),T(`__previousElement`,i),T(`__activeStep`,t),T(`__activeElement`,e)),window.requestAnimationFrame(v)};T(`__transitionCallback`,v),window.requestAnimationFrame(v),S(e),!g&&t.popover&&G(e,t),i.classList.remove(`driver-active-element`,`driver-no-interaction`),i.removeAttribute(`aria-haspopup`),i.removeAttribute(`aria-expanded`),i.removeAttribute(`aria-controls`),(t.disableActiveInteraction??p(`disableActiveInteraction`))&&e.classList.add(`driver-no-interaction`),e.classList.add(`driver-active-element`),e.setAttribute(`aria-haspopup`,`dialog`),e.setAttribute(`aria-expanded`,`true`),e.setAttribute(`aria-controls`,`driver-popover-content`)}function ie(){var e;(e=document.getElementById(`driver-dummy-element`))==null||e.remove(),document.querySelectorAll(`.driver-active-element`).forEach(e=>{e.classList.remove(`driver-active-element`,`driver-no-interaction`),e.removeAttribute(`aria-haspopup`),e.removeAttribute(`aria-expanded`),e.removeAttribute(`aria-controls`)})}function R(){let e=E(`__resizeTimeout`);e&&window.cancelAnimationFrame(e),T(`__resizeTimeout`,window.requestAnimationFrame(L))}function z(e){if(!E(`isInitialized`)||!(e.key===`Tab`||e.keyCode===9))return;let t=E(`__activeElement`),n=E(`popover`)?.wrapper,r=x([...n?[n]:[],...t?[t]:[]]),i=r[0],a=r[r.length-1];e.preventDefault(),e.shiftKey?(r[r.indexOf(document.activeElement)-1]||a)?.focus():(r[r.indexOf(document.activeElement)+1]||i)?.focus()}function B(e){var t;((t=p(`allowKeyboardControl`))==null||t)&&(e.key===`Escape`?v(`escapePress`):e.key===`ArrowRight`?v(`arrowRightPress`):e.key===`ArrowLeft`&&v(`arrowLeftPress`))}function V(e,t,n){let r=(t,r)=>{let i=t.target;e.contains(i)&&((!n||n(i))&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()),r?.(t))};document.addEventListener(`pointerdown`,r,!0),document.addEventListener(`mousedown`,r,!0),document.addEventListener(`pointerup`,r,!0),document.addEventListener(`mouseup`,r,!0),document.addEventListener(`click`,e=>{r(e,t)},!0)}function H(){window.addEventListener(`keyup`,B,!1),window.addEventListener(`keydown`,z,!1),window.addEventListener(`resize`,R),window.addEventListener(`scroll`,R)}function U(){window.removeEventListener(`keyup`,B),window.removeEventListener(`resize`,R),window.removeEventListener(`scroll`,R)}function W(){let e=E(`popover`);e&&(e.wrapper.style.display=`none`)}function G(e,t){let n=E(`popover`);n&&document.body.removeChild(n.wrapper),n=oe(),document.body.appendChild(n.wrapper);let{title:r,description:i,showButtons:a,disableButtons:o,showProgress:s,nextBtnText:c=p(`nextBtnText`)||`Next →`,prevBtnText:l=p(`prevBtnText`)||`← Previous`,progressText:u=p(`progressText`)||`{current} of {total}`}=t.popover||{};n.nextButton.innerHTML=c,n.previousButton.innerHTML=l,n.progress.innerHTML=u,r?(n.title.innerHTML=r,n.title.style.display=`block`):n.title.style.display=`none`,i?(n.description.innerHTML=i,n.description.style.display=`block`):n.description.style.display=`none`;let d=a||p(`showButtons`),f=s||p(`showProgress`)||!1,m=d?.includes(`next`)||d?.includes(`previous`)||f;n.closeButton.style.display=d.includes(`close`)?`block`:`none`,m?(n.footer.style.display=`flex`,n.progress.style.display=f?`block`:`none`,n.nextButton.style.display=d.includes(`next`)?`block`:`none`,n.previousButton.style.display=d.includes(`previous`)?`block`:`none`):n.footer.style.display=`none`;let g=o||p(`disableButtons`)||[];g!=null&&g.includes(`next`)&&(n.nextButton.disabled=!0,n.nextButton.classList.add(`driver-popover-btn-disabled`)),g!=null&&g.includes(`previous`)&&(n.previousButton.disabled=!0,n.previousButton.classList.add(`driver-popover-btn-disabled`)),g!=null&&g.includes(`close`)&&(n.closeButton.disabled=!0,n.closeButton.classList.add(`driver-popover-btn-disabled`));let _=n.wrapper;_.style.display=`block`,_.style.left=``,_.style.top=``,_.style.bottom=``,_.style.right=``,_.id=`driver-popover-content`,_.setAttribute(`role`,`dialog`),_.setAttribute(`aria-labelledby`,`driver-popover-title`),_.setAttribute(`aria-describedby`,`driver-popover-description`);let y=n.arrow;y.className=`driver-popover-arrow`,_.className=`driver-popover ${t.popover?.popoverClass||p(`popoverClass`)||``}`.trim(),V(n.wrapper,n=>{let r=n.target,i=t.popover?.onNextClick||p(`onNextClick`),a=t.popover?.onPrevClick||p(`onPrevClick`),o=t.popover?.onCloseClick||p(`onCloseClick`);if(r.closest(`.driver-popover-next-btn`))return i?i(e,t,{config:p(),state:E(),driver:h()}):v(`nextClick`);if(r.closest(`.driver-popover-prev-btn`))return a?a(e,t,{config:p(),state:E(),driver:h()}):v(`prevClick`);if(r.closest(`.driver-popover-close-btn`))return o?o(e,t,{config:p(),state:E(),driver:h()}):v(`closeClick`)},e=>!(n!=null&&n.description.contains(e))&&!(n!=null&&n.title.contains(e))&&typeof e.className==`string`&&e.className.includes(`driver-popover`)),T(`popover`,n);let b=t.popover?.onPopoverRender||p(`onPopoverRender`);b&&b(n,{config:p(),state:E(),driver:h()}),Y(e,t),S(_);let C=x([_,...e.classList.contains(`driver-dummy-element`)?[]:[e]]);C.length>0&&C[0].focus()}function K(){let e=E(`popover`);if(!(e!=null&&e.wrapper))return;let t=e.wrapper.getBoundingClientRect(),n=p(`stagePadding`)||0,r=p(`popoverOffset`)||0;return{width:t.width+n+r,height:t.height+n+r,realWidth:t.width,realHeight:t.height}}function q(e,t){let{elementDimensions:n,popoverDimensions:r,popoverPadding:i,popoverArrowDimensions:a}=t;return e===`start`?Math.max(Math.min(n.top-i,window.innerHeight-r.realHeight-a.width),a.width):e===`end`?Math.max(Math.min(n.top-r?.realHeight+n.height+i,window.innerHeight-r?.realHeight-a.width),a.width):e===`center`?Math.max(Math.min(n.top+n.height/2-r?.realHeight/2,window.innerHeight-r?.realHeight-a.width),a.width):0}function J(e,t){let{elementDimensions:n,popoverDimensions:r,popoverPadding:i,popoverArrowDimensions:a}=t;return e===`start`?Math.max(Math.min(n.left-i,window.innerWidth-r.realWidth-a.width),a.width):e===`end`?Math.max(Math.min(n.left-r?.realWidth+n.width+i,window.innerWidth-r?.realWidth-a.width),a.width):e===`center`?Math.max(Math.min(n.left+n.width/2-r?.realWidth/2,window.innerWidth-r?.realWidth-a.width),a.width):0}function Y(e,t){let n=E(`popover`);if(!n)return;let{align:r=`start`,side:i=`left`}=t?.popover||{},a=r,o=e.id===`driver-dummy-element`?`over`:i,s=p(`stagePadding`)||0,c=K(),l=n.arrow.getBoundingClientRect(),u=e.getBoundingClientRect(),d=u.top-c.height,f=d>=0,m=window.innerHeight-(u.bottom+c.height),h=m>=0,g=u.left-c.width,_=g>=0,v=window.innerWidth-(u.right+c.width),y=v>=0,b=!f&&!h&&!_&&!y,x=o;if(o===`top`&&f?y=_=h=!1:o===`bottom`&&h?y=_=f=!1:o===`left`&&_?y=f=h=!1:o===`right`&&y&&(_=f=h=!1),o===`over`){let e=window.innerWidth/2-c.realWidth/2,t=window.innerHeight/2-c.realHeight/2;n.wrapper.style.left=`${e}px`,n.wrapper.style.right=`auto`,n.wrapper.style.top=`${t}px`,n.wrapper.style.bottom=`auto`}else if(b){let e=window.innerWidth/2-c?.realWidth/2;n.wrapper.style.left=`${e}px`,n.wrapper.style.right=`auto`,n.wrapper.style.bottom=`10px`,n.wrapper.style.top=`auto`}else if(_){let e=Math.min(g,window.innerWidth-c?.realWidth-l.width),t=q(a,{elementDimensions:u,popoverDimensions:c,popoverPadding:s,popoverArrowDimensions:l});n.wrapper.style.left=`${e}px`,n.wrapper.style.top=`${t}px`,n.wrapper.style.bottom=`auto`,n.wrapper.style.right=`auto`,x=`left`}else if(y){let e=Math.min(v,window.innerWidth-c?.realWidth-l.width),t=q(a,{elementDimensions:u,popoverDimensions:c,popoverPadding:s,popoverArrowDimensions:l});n.wrapper.style.right=`${e}px`,n.wrapper.style.top=`${t}px`,n.wrapper.style.bottom=`auto`,n.wrapper.style.left=`auto`,x=`right`}else if(f){let e=Math.min(d,window.innerHeight-c.realHeight-l.width),t=J(a,{elementDimensions:u,popoverDimensions:c,popoverPadding:s,popoverArrowDimensions:l});n.wrapper.style.top=`${e}px`,n.wrapper.style.left=`${t}px`,n.wrapper.style.bottom=`auto`,n.wrapper.style.right=`auto`,x=`top`}else if(h){let e=Math.min(m,window.innerHeight-c?.realHeight-l.width),t=J(a,{elementDimensions:u,popoverDimensions:c,popoverPadding:s,popoverArrowDimensions:l});n.wrapper.style.left=`${t}px`,n.wrapper.style.bottom=`${e}px`,n.wrapper.style.top=`auto`,n.wrapper.style.right=`auto`,x=`bottom`}b?n.arrow.classList.add(`driver-popover-arrow-none`):ae(a,x,e)}function ae(e,t,n){let r=E(`popover`);if(!r)return;let i=n.getBoundingClientRect(),a=K(),o=r.arrow,s=a.width,c=window.innerWidth,l=i.width,u=i.left,d=a.height,f=window.innerHeight,m=i.top,h=i.height;o.className=`driver-popover-arrow`;let g=t,_=e;if(t===`top`?(u+l<=0?(g=`right`,_=`end`):u+l-s<=0&&(g=`top`,_=`start`),u>=c?(g=`left`,_=`end`):u+s>=c&&(g=`top`,_=`end`)):t===`bottom`?(u+l<=0?(g=`right`,_=`start`):u+l-s<=0&&(g=`bottom`,_=`start`),u>=c?(g=`left`,_=`start`):u+s>=c&&(g=`bottom`,_=`end`)):t===`left`?(m+h<=0?(g=`bottom`,_=`end`):m+h-d<=0&&(g=`left`,_=`start`),m>=f?(g=`top`,_=`end`):m+d>=f&&(g=`left`,_=`end`)):t===`right`&&(m+h<=0?(g=`bottom`,_=`start`):m+h-d<=0&&(g=`right`,_=`start`),m>=f?(g=`top`,_=`start`):m+d>=f&&(g=`right`,_=`end`)),!g)o.classList.add(`driver-popover-arrow-none`);else{o.classList.add(`driver-popover-arrow-side-${g}`),o.classList.add(`driver-popover-arrow-align-${_}`);let e=n.getBoundingClientRect(),i=o.getBoundingClientRect(),a=p(`stagePadding`)||0,s=e.left-a<window.innerWidth&&e.right+a>0&&e.top-a<window.innerHeight&&e.bottom+a>0;t===`bottom`&&s&&(i.x>e.x&&i.x+i.width<e.x+e.width?r.wrapper.style.transform=`translateY(0)`:(o.classList.remove(`driver-popover-arrow-align-${_}`),o.classList.add(`driver-popover-arrow-none`),r.wrapper.style.transform=`translateY(-${a/2}px)`))}}function oe(){let e=document.createElement(`div`);e.classList.add(`driver-popover`);let t=document.createElement(`div`);t.classList.add(`driver-popover-arrow`);let n=document.createElement(`header`);n.id=`driver-popover-title`,n.classList.add(`driver-popover-title`),n.style.display=`none`,n.innerText=`Popover Title`;let r=document.createElement(`div`);r.id=`driver-popover-description`,r.classList.add(`driver-popover-description`),r.style.display=`none`,r.innerText=`Popover description is here`;let i=document.createElement(`button`);i.type=`button`,i.classList.add(`driver-popover-close-btn`),i.setAttribute(`aria-label`,`Close`),i.innerHTML=`×`;let a=document.createElement(`footer`);a.classList.add(`driver-popover-footer`);let o=document.createElement(`span`);o.classList.add(`driver-popover-progress-text`),o.innerText=``;let s=document.createElement(`span`);s.classList.add(`driver-popover-navigation-btns`);let c=document.createElement(`button`);c.type=`button`,c.classList.add(`driver-popover-prev-btn`),c.innerHTML=`← Previous`;let l=document.createElement(`button`);return l.type=`button`,l.classList.add(`driver-popover-next-btn`),l.innerHTML=`Next →`,s.appendChild(c),s.appendChild(l),a.appendChild(o),a.appendChild(s),e.appendChild(i),e.appendChild(t),e.appendChild(n),e.appendChild(r),e.appendChild(a),{wrapper:e,arrow:t,title:n,description:r,footer:a,previousButton:c,nextButton:l,closeButton:i,footerButtons:s,progress:o}}function se(){var e;let t=E(`popover`);t&&((e=t.wrapper.parentElement)==null||e.removeChild(t.wrapper))}function X(e={}){f(e);function t(){p(`allowClose`)&&u()}function n(){let e=p(`overlayClickBehavior`);if(p(`allowClose`)&&e===`close`){u();return}if(typeof e==`function`){let t=E(`__activeStep`);e(E(`__activeElement`),t,{config:p(),state:E(),driver:h()});return}e===`nextStep`&&r()}function r(){let e=E(`activeIndex`),t=p(`steps`)||[];if(e===void 0)return;let n=e+1;t[n]?l(n):u()}function i(){let e=E(`activeIndex`),t=p(`steps`)||[];if(e===void 0)return;let n=e-1;t[n]?l(n):u()}function a(e){(p(`steps`)||[])[e]?l(e):u()}function o(){if(E(`__transitionCallback`))return;let e=E(`activeIndex`),t=E(`__activeStep`),n=E(`__activeElement`);if(e===void 0||t===void 0||E(`activeIndex`)===void 0)return;let r=t.popover?.onPrevClick||p(`onPrevClick`);if(r)return r(n,t,{config:p(),state:E(),driver:h()});i()}function s(){if(E(`__transitionCallback`))return;let e=E(`activeIndex`),t=E(`__activeStep`),n=E(`__activeElement`);if(e===void 0||t===void 0)return;let i=t.popover?.onNextClick||p(`onNextClick`);if(i)return i(n,t,{config:p(),state:E(),driver:h()});r()}function c(){E(`isInitialized`)||(T(`isInitialized`,!0),document.body.classList.add(`driver-active`,p(`animate`)?`driver-fade`:`driver-simple`),H(),_(`overlayClick`,n),_(`escapePress`,t),_(`arrowLeftPress`,o),_(`arrowRightPress`,s))}function l(e=0){let t=p(`steps`);if(!t){console.error(`No steps to drive through`),u();return}if(!t[e]){u();return}T(`__activeOnDestroyed`,document.activeElement),T(`activeIndex`,e);let n=t[e],r=t[e+1],i=t[e-1],a=n.popover?.doneBtnText||p(`doneBtnText`)||`Done`,o=p(`allowClose`),s=n.popover?.showProgress===void 0?p(`showProgress`):n.popover?.showProgress,c=(n.popover?.progressText||p(`progressText`)||`{{current}} of {{total}}`).replace(`{{current}}`,`${e+1}`).replace(`{{total}}`,`${t.length}`),d=n.popover?.showButtons||p(`showButtons`),f=[`next`,`previous`,...o?[`close`]:[]].filter(e=>!(d!=null&&d.length)||d.includes(e)),m=n.popover?.onNextClick||p(`onNextClick`),h=n.popover?.onPrevClick||p(`onPrevClick`),g=n.popover?.onCloseClick||p(`onCloseClick`);I({...n,popover:{showButtons:f,nextBtnText:r?void 0:a,disableButtons:[...i?[]:[`previous`]],showProgress:s,progressText:c,onNextClick:m||(()=>{r?l(e+1):u()}),onPrevClick:h||(()=>{l(e-1)}),onCloseClick:g||(()=>{u()}),...n?.popover||{}}})}function u(e=!0){let t=E(`__activeElement`),n=E(`__activeStep`),r=E(`__activeOnDestroyed`),i=p(`onDestroyStarted`);if(e&&i){i(!t||t?.id===`driver-dummy-element`?void 0:t,n,{config:p(),state:E(),driver:h()});return}let a=n?.onDeselected||p(`onDeselected`),o=p(`onDestroyed`);if(document.body.classList.remove(`driver-active`,`driver-fade`,`driver-simple`),U(),se(),ie(),P(),y(),D(),t&&n){let e=t.id===`driver-dummy-element`;a&&a(e?void 0:t,n,{config:p(),state:E(),driver:h()}),o&&o(e?void 0:t,n,{config:p(),state:E(),driver:h()})}r&&r.focus()}let d={isActive:()=>E(`isInitialized`)||!1,refresh:R,drive:(e=0)=>{c(),l(e)},setConfig:f,setSteps:e=>{D(),f({...p(),steps:e})},getConfig:p,getState:E,getActiveIndex:()=>E(`activeIndex`),isFirstStep:()=>E(`activeIndex`)===0,isLastStep:()=>{let e=p(`steps`)||[],t=E(`activeIndex`);return t!==void 0&&t===e.length-1},getActiveStep:()=>E(`activeStep`),getActiveElement:()=>E(`activeElement`),getPreviousElement:()=>E(`previousElement`),getPreviousStep:()=>E(`previousStep`),moveNext:r,movePrevious:i,moveTo:a,hasNextStep:()=>{let e=p(`steps`)||[],t=E(`activeIndex`);return t!==void 0&&!!e[t+1]},hasPreviousStep:()=>{let e=p(`steps`)||[],t=E(`activeIndex`);return t!==void 0&&!!e[t-1]},highlight:e=>{c(),I({...e,popover:e.popover?{showButtons:[],showProgress:!1,progressText:``,...e.popover}:void 0})},destroy:()=>{u(!1)}};return m(d),d}var Z=`kobo:onboarding-done`;function ce(){return localStorage.getItem(Z)===`1`}function le(){localStorage.setItem(Z,`1`)}var Q=[`general`,`agents`,`skills`,`prompts`,`scripts`,`notion`,`voice`,`notifications`,`worktrees`,`projects`,`templates`,`export`];function $(e,t=2e3){return new Promise(n=>{let r=Date.now(),i=()=>{let a=document.querySelector(e);a&&(a.offsetWidth>0||a.offsetHeight>0)||Date.now()-r>t?n():requestAnimationFrame(i)};i()})}function ue(){let{t:e}=t(),r=n(),i;async function a(e){document.querySelector(`[data-tour="settings-nav-${e}"]`)?.click(),await $(`[data-tour="settings-card-${e}"]`)}function o(){let t=t=>({title:e(`onboarding.${t}.title`),description:e(`onboarding.${t}.description`)}),n=[{element:`[data-tour="workspace-list"]`,popover:t(`list`)},{element:`[data-tour="create-workspace"]`,popover:t(`create`)},{element:`[data-tour="search"]`,popover:t(`search`)},{element:`[data-tour="health"]`,popover:t(`health`)},{element:`[data-tour="settings"]`,popover:{...t(`settings`),onNextClick:async()=>{await r.push(`/settings`),await a(`general`),i?.moveNext()}}}],o=Q.map((e,n)=>{let o=Q[n-1],s=Q[n+1];return{element:`[data-tour="settings-card-${e}"]`,popover:{...t(`settings-${e}`),onPrevClick:async()=>{o?await a(o):(await r.push(`/`),await $(`[data-tour="workspace-list"]`)),i?.movePrevious()},...s?{onNextClick:async()=>{await a(s),i?.moveNext()}}:{}}}});return[...n,...o]}async function s(){r.currentRoute.value.path!==`/`&&(await r.push(`/`),await $(`[data-tour="workspace-list"]`)),i=X({showProgress:!0,progressText:`{{current}} / {{total}}`,overlayColor:`#000000`,popoverClass:`kobo-onboarding-popover`,nextBtnText:e(`onboarding.next`),prevBtnText:e(`onboarding.prev`),doneBtnText:e(`onboarding.done`),onDestroyStarted:()=>{(!i?.hasNextStep()||window.confirm(e(`onboarding.exitConfirm`)))&&i?.destroy()},steps:o()}),i.drive()}function c(){ce()||(le(),setTimeout(()=>void s(),500))}return{startTour:s,maybeStartOnFirstVisit:c}}export{o as a,s as i,r as n,c as o,a as r,ue as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-cIZo-p3R.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:s.languages.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:s.languages.IndentAction.Indent}}]},l={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{c as conf,l as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-cIZo-p3R.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:s.languages.IndentAction.Indent}}]},l={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{c as conf,l as language};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-
|
|
1
|
+
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-B2qdU9v-.js"></script>
|
|
2
2
|
<link rel="modulepreload" crossorigin href="/assets/runtime-core.esm-bundler-D_RRiKBh.js">
|
|
3
3
|
<link rel="modulepreload" crossorigin href="/assets/vue-i18n-Cq-KgjJC.js">
|
|
4
4
|
<link rel="modulepreload" crossorigin href="/assets/QIcon-BmEX2rXO.js">
|
|
5
5
|
<link rel="modulepreload" crossorigin href="/assets/use-id-BCnfiBjU.js">
|
|
6
6
|
<link rel="modulepreload" crossorigin href="/assets/QBtn-CoU-UC_j.js">
|
|
7
|
-
<link rel="modulepreload" crossorigin href="/assets/notifications-
|
|
7
|
+
<link rel="modulepreload" crossorigin href="/assets/notifications-Hq-6rEYv.js">
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/assets/QInput-D0t39uK_.js">
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/use-checkbox-DnSuDqo2.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/QRadio-M9mC5jZy.js">
|
|
@@ -376,6 +376,52 @@ export function listWorkspaceImagesHandler(worktreePath: string): WorkspaceImage
|
|
|
376
376
|
})
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
+
/** One imported ticket, normalised across origins. */
|
|
380
|
+
export interface TicketSource {
|
|
381
|
+
type: 'notion' | 'sentry'
|
|
382
|
+
/** Origin URL parsed from the file's `## Source` block; null if absent. */
|
|
383
|
+
url: string | null
|
|
384
|
+
content: string
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* `## Source` block markers written by the workspace creation route — a
|
|
389
|
+
* `- Notion: <url>` line for Notion imports, `- Sentry: <url>` for Sentry.
|
|
390
|
+
* The marker is the discriminator: it is what tells a ticket file apart from
|
|
391
|
+
* an agent note, and Notion apart from Sentry.
|
|
392
|
+
*/
|
|
393
|
+
const SOURCE_MARKER = /^- (Notion|Sentry): (.+)$/m
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Read the mission's source-of-truth ticket(s). Both the Notion and Sentry
|
|
397
|
+
* importers write their extracted brief into `.ai/thoughts/` at workspace
|
|
398
|
+
* creation; this returns one entry per ticket file, typed by origin.
|
|
399
|
+
*
|
|
400
|
+
* Only `.md` files at the *root* of `.ai/thoughts/` are considered — agent
|
|
401
|
+
* notes live under `.ai/thoughts/logs/` and are deliberately skipped. Files
|
|
402
|
+
* with no recognised `## Source` marker (stray notes) are skipped too.
|
|
403
|
+
* Sorted by `type` for a deterministic order. Empty array when nothing matches.
|
|
404
|
+
*/
|
|
405
|
+
export function getTicketSourcesHandler(worktreePath: string): TicketSource[] {
|
|
406
|
+
const thoughtsDir = path.join(worktreePath, '.ai', 'thoughts')
|
|
407
|
+
if (!fs.existsSync(thoughtsDir)) return []
|
|
408
|
+
|
|
409
|
+
const sources: TicketSource[] = []
|
|
410
|
+
for (const entry of fs.readdirSync(thoughtsDir, { withFileTypes: true })) {
|
|
411
|
+
if (!entry.isFile() || !entry.name.endsWith('.md')) continue
|
|
412
|
+
const content = fs.readFileSync(path.join(thoughtsDir, entry.name), 'utf-8')
|
|
413
|
+
const match = content.match(SOURCE_MARKER)
|
|
414
|
+
if (!match) continue
|
|
415
|
+
sources.push({
|
|
416
|
+
type: match[1].toLowerCase() as TicketSource['type'],
|
|
417
|
+
url: match[2].trim() || null,
|
|
418
|
+
content: content.trim(),
|
|
419
|
+
})
|
|
420
|
+
}
|
|
421
|
+
sources.sort((a, b) => a.type.localeCompare(b.type))
|
|
422
|
+
return sources
|
|
423
|
+
}
|
|
424
|
+
|
|
379
425
|
// ── Documents ────────────────────────────────────────────────────────────────
|
|
380
426
|
|
|
381
427
|
/** Directories (relative to the worktree root) scanned for AI-generated docs. */
|
|
@@ -463,9 +509,14 @@ export function readDocumentHandler(worktreePath: string, relPath: string): Docu
|
|
|
463
509
|
}
|
|
464
510
|
|
|
465
511
|
/**
|
|
466
|
-
* Append a thought / decision / note to
|
|
467
|
-
* Creates the directory if missing.
|
|
468
|
-
* the file actually written — useful
|
|
512
|
+
* Append a thought / decision / note to
|
|
513
|
+
* `.ai/thoughts/logs/<YYYY-MM-DD>-<slug>.md`. Creates the directory if missing.
|
|
514
|
+
* Returns the path (worktree-relative) of the file actually written — useful
|
|
515
|
+
* for the agent to reference it in chat.
|
|
516
|
+
*
|
|
517
|
+
* Notes live in the `logs/` sub-directory so they stay separate from the
|
|
518
|
+
* mission's source-of-truth ticket files at the root of `.ai/thoughts/` —
|
|
519
|
+
* `get_ticket` reads only the root and therefore never picks up agent notes.
|
|
469
520
|
*/
|
|
470
521
|
export function logThoughtHandler(
|
|
471
522
|
worktreePath: string,
|
|
@@ -476,7 +527,7 @@ export function logThoughtHandler(
|
|
|
476
527
|
const content = data.content?.trim()
|
|
477
528
|
if (!content) throw new Error('content is required')
|
|
478
529
|
|
|
479
|
-
const thoughtsDir = path.join(worktreePath, '.ai', 'thoughts')
|
|
530
|
+
const thoughtsDir = path.join(worktreePath, '.ai', 'thoughts', 'logs')
|
|
480
531
|
fs.mkdirSync(thoughtsDir, { recursive: true })
|
|
481
532
|
|
|
482
533
|
const date = new Date().toISOString().slice(0, 10)
|
|
@@ -491,7 +542,7 @@ export function logThoughtHandler(
|
|
|
491
542
|
const tagSuffix = data.tag ? `-${data.tag.replace(/[^a-z0-9]+/gi, '-').toLowerCase()}` : ''
|
|
492
543
|
const filename = `${date}-${slug}${tagSuffix}.md`
|
|
493
544
|
const abs = path.join(thoughtsDir, filename)
|
|
494
|
-
const relPath = `.ai/thoughts/${filename}`
|
|
545
|
+
const relPath = `.ai/thoughts/logs/${filename}`
|
|
495
546
|
|
|
496
547
|
const header = `# ${title}\n\n_${new Date().toISOString()}_${data.tag ? ` · tag: \`${data.tag}\`` : ''}\n\n`
|
|
497
548
|
fs.writeFileSync(abs, header + content + (content.endsWith('\n') ? '' : '\n'), 'utf-8')
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import fs from 'node:fs'
|
|
3
|
-
import path from 'node:path'
|
|
4
2
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
|
|
5
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
6
4
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js'
|
|
@@ -14,6 +12,7 @@ import {
|
|
|
14
12
|
getDevServerStatusHandler,
|
|
15
13
|
getSessionUsageHandler,
|
|
16
14
|
getSettingsHandler,
|
|
15
|
+
getTicketSourcesHandler,
|
|
17
16
|
getWorkspaceInfoHandler,
|
|
18
17
|
listDocumentsHandler,
|
|
19
18
|
listTasksHandler,
|
|
@@ -326,9 +325,9 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
326
325
|
annotations: { destructiveHint: false, openWorldHint: false },
|
|
327
326
|
},
|
|
328
327
|
{
|
|
329
|
-
name: '
|
|
328
|
+
name: 'get_ticket',
|
|
330
329
|
description:
|
|
331
|
-
'CALL when the user references "the ticket", "the Notion page", or when you need the source-of-truth text for the mission.
|
|
330
|
+
'CALL when the user references "the ticket", "the issue", "the Notion page", or when you need the source-of-truth text for the mission. Works for any source — a Notion ticket or a Sentry issue. Returns `{ sources: [{ type, url, content }] }`, one entry per imported ticket (type is "notion" or "sentry"). Usually one source; empty when none was imported.',
|
|
332
331
|
inputSchema: { type: 'object', properties: {}, required: [] },
|
|
333
332
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
334
333
|
},
|
|
@@ -416,7 +415,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
416
415
|
{
|
|
417
416
|
name: 'log_thought',
|
|
418
417
|
description:
|
|
419
|
-
'CALL WHEN you make a decision worth remembering — architecture choice, trade-off taken, dead-end avoided, pattern discovered. Appends a dated markdown file to .ai/thoughts/. Keep entries short and focused; one decision per call. Use create_task for actionable follow-ups instead.',
|
|
418
|
+
'CALL WHEN you make a decision worth remembering — architecture choice, trade-off taken, dead-end avoided, pattern discovered. Appends a dated markdown file to .ai/thoughts/logs/. Keep entries short and focused; one decision per call. Use create_task for actionable follow-ups instead.',
|
|
420
419
|
inputSchema: {
|
|
421
420
|
type: 'object',
|
|
422
421
|
properties: {
|
|
@@ -658,21 +657,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
658
657
|
return ok(listWorkspaceImagesHandler(info.worktreePath))
|
|
659
658
|
}
|
|
660
659
|
|
|
661
|
-
|
|
660
|
+
// `get_notion_ticket` is the pre-1.7 name, kept as a back-compat alias so
|
|
661
|
+
// sessions resumed against an older tool list still resolve.
|
|
662
|
+
if (name === 'get_ticket' || name === 'get_notion_ticket') {
|
|
662
663
|
const info = getWorkspaceInfoHandler(db, workspaceId!)
|
|
663
|
-
|
|
664
|
-
let ticketContent = ''
|
|
665
|
-
if (fs.existsSync(thoughtsDir)) {
|
|
666
|
-
const files = fs.readdirSync(thoughtsDir).filter((f) => f.endsWith('.md'))
|
|
667
|
-
for (const file of files) {
|
|
668
|
-
ticketContent += `${fs.readFileSync(path.join(thoughtsDir, file), 'utf-8')}\n`
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
return ok({
|
|
672
|
-
notionUrl: info.notionUrl,
|
|
673
|
-
notionPageId: info.notionPageId,
|
|
674
|
-
ticketContent: ticketContent.trim() || null,
|
|
675
|
-
})
|
|
664
|
+
return ok({ sources: getTicketSourcesHandler(info.worktreePath) })
|
|
676
665
|
}
|
|
677
666
|
|
|
678
667
|
if (name === 'get_git_info') {
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{D as e,G as t,I as n,N as r,P as i,R as a,St as o,W as s,_ as c,at as l,d as u,et as d,f,g as p,l as m,p as h,r as g,u as _,xt as v,y,yt as b}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{U as x,l as S,t as C}from"./QIcon-BmEX2rXO.js";import{c as w,s as T}from"./notifications-BC6en6Lt.js";import{t as E}from"./QBtn-CoU-UC_j.js";import{n as D}from"./vue-i18n-Cq-KgjJC.js";import{c as O,f as ee,h as k,u as A}from"./index-KABmOIkF.js";import{t as te}from"./QSpinnerDots-DspFKwCZ.js";import{t as j}from"./QTooltip-Bfdmzm_m.js";import{t as ne}from"./QExpansionItem-BTd5m2yV.js";import{t as re}from"./QScrollArea-A1wI0IXU.js";import{i as ie,n as M,t as N}from"./render-chat-markdown-DxEHr3lW.js";import{t as P}from"./documents-B3nitIYF.js";import{t as F}from"./_plugin-vue_export-helper-Cj6tcsj6.js";function ae(e,t,n=!0){let r=[],i=new Map,a=new Map;for(let n=0;n<e.length;n++){let o=e[n],s=t?.[n];switch(o.kind){case`message:text`:{let e=i.get(o.messageId);if(e)e.text+=o.text,e.streaming=o.streaming;else{let e={type:`text`,messageId:o.messageId,text:o.text,streaming:o.streaming,ts:s};i.set(o.messageId,e),r.push(e)}break}case`message:end`:{let e=i.get(o.messageId);e&&(e.streaming=!1);break}case`message:thinking`:r.push({type:`thinking`,messageId:o.messageId,text:o.text,ts:s});break;case`tool:call`:{let e={type:`tool`,toolCallId:o.toolCallId,name:o.name,input:o.input,ts:s};a.set(o.toolCallId,e),r.push(e);break}case`tool:result`:{let e=a.get(o.toolCallId);e&&(e.result={output:o.output,isError:o.isError});break}case`session:started`:r.push({type:`session`,kind:`started`,detail:{engineSessionId:o.engineSessionId,model:o.model},ts:s});break;case`session:ended`:r.push({type:`session`,kind:`ended`,detail:{reason:o.reason,exitCode:o.exitCode},ts:s});break;case`session:compacted`:r.push({type:`session`,kind:`compacted`,ts:s});break;case`session:brainstorm-complete`:case`session:user-input-requested`:case`message:raw`:case`skills:discovered`:case`usage`:case`rate_limit`:case`subagent:progress`:case`error`:break;default:}}let o=null;for(let e of r)e.type===`text`&&e.streaming&&(o&&(o.streaming=!1),o=e);return o&&!n&&(o.streaming=!1),r}function oe(e,t){if(t.length===0)return e;let n=t.map(e=>({type:`user`,content:e.content,sender:e.sender,ts:e.ts})),r=[...e,...n];r.sort((e,t)=>{let n=e.ts??``,r=t.ts??``;return n===r?0:n?r?n<r?-1:1:-1:1});let i;for(let e of r)e.type===`user`&&e.sender!==`system-prompt`&&e.ts&&(!i||e.ts>i)&&(i=e.ts);if(i)for(let e of r)e.type===`text`&&e.streaming&&(!e.ts||e.ts<i)&&(e.streaming=!1);return r}var I=new Set([`setup`,`cleanup`,`archive`]);function L(e){switch(e.type){case`user`:return e.sender===`system-prompt`?`system-prompt`:I.has(e.sender)?`script`:`user`;case`session`:return`session`;default:return`agent`}}function se(e){let t=[],n=null,r=null;for(let i of e){let e=L(i),a=e===`session`||e===`system-prompt`,o=e===`script`&&i.type===`user`?`script:${i.sender}`:e;!n||r!==o||a?(n={speaker:e,ts:i.ts,items:[i]},r=o,t.push(n),a&&(n=null)):n.items.push(i)}return t}var R={class:`text-caption text-grey-6`},ce=y({__name:`SessionEventItem`,props:{item:{}},setup(e){let t=e,r=m(()=>{switch(t.item.kind){case`started`:return`session.started`;case`ended`:return`session.ended`;case`compacted`:return`session.compacted`;default:return`session.started`}});return(e,t)=>(n(),h(`span`,R,o(e.$t(r.value)),1))}});function le(e,t){if(t.length===0||e.length===0)return e;let n=[...t].sort((e,t)=>t.length-e.length),r=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`),i=r.body.firstChild;if(!i)return e;function a(e){if(e.nodeType===Node.TEXT_NODE){z(e,n,r);return}if(e.nodeName===`A`)return;let t=Array.from(e.childNodes);for(let e of t)a(e)}return a(i),i.innerHTML}function z(e,t,n){let r=e.textContent??``;if(!t.some(e=>r.includes(e)))return;let i=n.createDocumentFragment(),a=0;for(;a<r.length;){let e=B(r,a,t);if(!e){i.appendChild(n.createTextNode(r.slice(a)));break}e.index>a&&i.appendChild(n.createTextNode(r.slice(a,e.index)));let o=n.createElement(`a`);o.className=`document-link`,o.setAttribute(`data-document-path`,e.path),o.setAttribute(`href`,`#`),o.textContent=e.path,i.appendChild(o),a=e.index+e.path.length}e.parentNode?.replaceChild(i,e)}function B(e,t,n){let r=null;for(let i of n){let n=e.indexOf(i,t);n<0||(!r||n<r.index||n===r.index&&i.length>r.path.length)&&(r={index:n,path:i})}return r}var V=[`innerHTML`],ue=F(y({__name:`TextMessageItem`,props:{item:{}},setup(e){let t=e,r=P(),i=O(),a=m(()=>{let e=i.selectedWorkspaceId;return e?r.documentsFor(e).map(e=>e.path):[]}),o=m(()=>M(le(ie.parse(t.item.text,{async:!1,breaks:!0,gfm:!0}),a.value),{addAttr:[`data-document-path`]}));function s(e){let t=e.target?.closest(`.document-link`);if(!t)return;e.preventDefault();let n=t.getAttribute(`data-document-path`),a=i.selectedWorkspaceId;!n||!a||r.openDocumentByPath(a,n)}return(t,r)=>(n(),h(`div`,{class:`markdown-message`,onClick:s},[_(`div`,{innerHTML:o.value},null,8,V),e.item.streaming?(n(),u(S,{key:0,size:`xs`,class:`q-ml-xs`})):f(``,!0)]))}}),[[`__scopeId`,`data-v-1b7bd8ca`]]),de={key:0,class:`text-caption text-grey-5`,style:{"font-style":`italic`}},H=[`innerHTML`],U={key:1,style:{"white-space":`pre-wrap`}},W=F(y({__name:`ThinkingItem`,props:{item:{}},setup(e){let r=e,i=m(()=>r.item.text.trim().slice(0,100)),a=m(()=>r.item.text.trim().length>0),s=m(()=>r.item.text.trim().length>100),c=m(()=>N(r.item.text));return(r,l)=>a.value?(n(),h(`div`,de,[s.value?(n(),u(ne,{key:0,dense:``,"dense-toggle":``,label:i.value,"header-class":`text-grey-5 text-caption`,style:{"font-style":`italic`}},{default:t(()=>[_(`div`,{class:`q-py-xs markdown-thinking`,innerHTML:c.value},null,8,H)]),_:1},8,[`label`])):(n(),h(`span`,U,o(e.item.text),1))])):f(``,!0)}}),[[`__scopeId`,`data-v-7f45ed94`]]);function fe(e,t){let n=e.split(`
|
|
2
|
-
`),r=t.split(`
|
|
3
|
-
`),i=n.length,a=r.length,o=Array.from({length:i+1},()=>Array(a+1).fill(0));for(let e=i-1;e>=0;e--)for(let t=a-1;t>=0;t--)n[e]===r[t]?o[e][t]=o[e+1][t+1]+1:o[e][t]=Math.max(o[e+1][t],o[e][t+1]);let s=[],c=0,l=0;for(;c<i&&l<a;)n[c]===r[l]?(s.push({type:`context`,content:n[c]}),c++,l++):o[c+1][l]>=o[c][l+1]?(s.push({type:`del`,content:n[c]}),c++):(s.push({type:`add`,content:r[l]}),l++);for(;c<i;)s.push({type:`del`,content:n[c++]});for(;l<a;)s.push({type:`add`,content:r[l++]});return s}function pe(e){let t=e.split(`
|
|
4
|
-
`),n=[];for(let e of t)e.startsWith(`@@`)||e.startsWith(`+++`)||e.startsWith(`---`)||(e.startsWith(`+`)?n.push({type:`add`,content:e.slice(1)}):e.startsWith(`-`)?n.push({type:`del`,content:e.slice(1)}):e.startsWith(` `)?n.push({type:`context`,content:e.slice(1)}):e.length>0&&n.push({type:`context`,content:e}));return n}function G(e,t){if(!t||typeof t!=`object`)return null;let n=t;if(e===`Edit`){let e=n.file_path;if(!e)return null;let t=n.old_string??``,r=n.new_string??``,i=typeof n.diff==`string`?n.diff:``;if(!t&&!r&&i.length>0){let t=pe(i);return{toolName:`Edit`,filePath:e,additions:t.filter(e=>e.type===`add`).length,deletions:t.filter(e=>e.type===`del`).length,diffLines:t}}return{toolName:`Edit`,filePath:e,oldString:t,newString:r,replaceAll:n.replace_all??!1,additions:r?r.split(`
|
|
5
|
-
`).length:0,deletions:t?t.split(`
|
|
6
|
-
`).length:0}}if(e===`Write`){let e=n.file_path;if(!e)return null;let t=n.content??``;return{toolName:`Write`,filePath:e,content:t,additions:t?t.split(`
|
|
7
|
-
`).length:0,deletions:0}}if(e===`Bash`){let e=(n.command??``).match(/^\s*rm\s+(?:-[a-zA-Z]*\s+)*(.+)/);if(e)return{toolName:`Bash:rm`,filePath:e[1].trim().replace(/["']/g,``),additions:0,deletions:1}}return null}function K(e,t){if(!e||!t?.projectPath)return e;let n=t.worktreePath;if(n){let t=q(e,n);if(t!==e)return t}let r=q(e,`${t.projectPath}/${w}/${t.workingBranch}`);return r===e?q(e,t.projectPath):r}function q(e,t){if(!t)return e;let n=J(t);return n?e.replace(RegExp(`${n}[\\\\/]+`,`g`),``).replace(RegExp(`${n}(?=\\s|$|["'\`])`,`g`),`.`):e}function J(e){let t=e.replace(/[\\/]+$/,``);return t?`${/^[\\/]+/.test(t)?`[\\\\/]+`:``}${t.split(/[\\/]+/).filter(Boolean).map(me).join(`[\\\\/]+`)}`:``}function me(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var Y={class:`tool-name`},X=[`title`],he={key:0,class:`tool-stat-add`},ge={key:1,class:`tool-stat-del`},Z={class:`diff-sign`},Q={class:`tool-name`},$=[`title`],_e=F(y({__name:`ToolCallItem`,props:{item:{}},setup(e){let t=e,r=d(!1),i=O(),l=m(()=>G(t.item.name,t.item.input)),v=m(()=>l.value?K(l.value.filePath,i.selectedWorkspace):``),y={Bash:`terminal`,Read:`description`,Edit:`edit`,Write:`edit_note`,MultiEdit:`edit`,Glob:`folder_open`,Grep:`manage_search`,LS:`list`,Skill:`auto_awesome`,Task:`hub`,Agent:`hub`,TodoWrite:`checklist`,TodoRead:`checklist`,ToolSearch:`search`,WebFetch:`public`,WebSearch:`travel_explore`,NotebookRead:`book`,NotebookEdit:`edit_note`,SendMessage:`send`,ExitPlanMode:`check_circle_outline`,KillShell:`stop_circle`,BashOutput:`terminal`},S=m(()=>y[t.item.name]??`build`),w=m(()=>{if(l.value)return``;let e=t.item.input,n=T(e);return n?K(n,i.selectedWorkspace):``});function T(e){if(!e||typeof e!=`object`)return typeof e==`string`?e:``;let t=e;for(let e of[`file_path`,`path`,`command`,`pattern`,`query`,`url`,`skill`,`description`,`subject`,`prompt`]){let n=t[e];if(typeof n==`string`&&n.length>0)return n}for(let e of Object.values(t))if(typeof e==`string`&&e.length>0)return e;return``}let E=m(()=>{let e=l.value;return e?e.diffLines?e.diffLines:e.toolName===`Edit`&&e.oldString!==void 0&&e.newString!==void 0?fe(e.oldString,e.newString):e.toolName===`Write`&&e.content!==void 0?e.content.split(`
|
|
8
|
-
`).map(e=>({type:`add`,content:e})):e.toolName===`Bash:rm`?[{type:`del`,content:`File deleted`}]:null:null}),D=m(()=>{let e=t.item.result;if(!e)return``;if(typeof e.output==`string`)return e.output;try{return JSON.stringify(e.output)}catch{return String(e.output)}}),ee=new Set([`Read`]),k=m(()=>!!(t.item.result&&D.value)&&(!ee.has(t.item.name)||t.item.result?.isError===!0));function A(){r.value=!r.value}return s(()=>t.item.result?.isError===!0,e=>{e&&(r.value=!0)},{immediate:!0}),(t,i)=>l.value?(n(),h(`div`,{key:0,class:b([`tool-row`,{"tool-row-expanded":r.value}])},[_(`div`,{class:`tool-header`,onClick:A},[c(C,{name:S.value,size:`14px`,class:`tool-icon`},null,8,[`name`]),_(`span`,Y,o(l.value.toolName===`Bash:rm`?`Bash`:l.value.toolName),1),_(`span`,{class:`tool-path`,title:l.value.filePath},o(v.value),9,X),l.value.additions>0?(n(),h(`span`,he,`+`+o(l.value.additions),1)):f(``,!0),l.value.deletions>0?(n(),h(`span`,ge,`-`+o(l.value.deletions),1)):f(``,!0),e.item.result?.isError?(n(),u(C,{key:2,name:`error_outline`,color:`negative`,size:`xs`,class:`q-ml-xs`})):e.item.result?(n(),u(C,{key:3,name:`check`,color:`positive`,size:`xs`,class:`q-ml-xs`})):f(``,!0),c(C,{name:r.value?`expand_less`:`expand_more`,size:`xs`,class:`q-ml-auto text-grey-6`},null,8,[`name`])]),r.value&&E.value?(n(),h(`div`,{key:0,class:`tool-diff`,onClick:i[0]||=x(()=>{},[`stop`])},[(n(!0),h(g,null,a(E.value,(e,t)=>(n(),h(`div`,{key:t,class:b([`diff-line`,{"diff-del":e.type===`del`,"diff-add":e.type===`add`,"diff-context":e.type===`context`}])},[_(`span`,Z,o(e.type===`del`?`-`:e.type===`add`?`+`:` `),1),p(o(e.content),1)],2))),128))])):f(``,!0)],2)):(n(),h(`div`,{key:1,class:b([`tool-row tool-row-generic`,{"tool-row-expanded":r.value,"tool-row--toggleable":k.value}])},[_(`div`,{class:`tool-header`,onClick:i[1]||=e=>k.value&&A()},[c(C,{name:S.value,size:`14px`,class:`tool-icon`},null,8,[`name`]),_(`span`,Q,o(e.item.name),1),w.value?(n(),h(`span`,{key:0,class:`tool-arg`,title:T(e.item.input)||w.value},o(w.value),9,$)):f(``,!0),e.item.result?.isError?(n(),u(C,{key:1,name:`error_outline`,color:`negative`,size:`xs`,class:`q-ml-auto`})):e.item.result?(n(),u(C,{key:2,name:`check`,color:`positive`,size:`xs`,class:`q-ml-auto`})):f(``,!0),k.value?(n(),u(C,{key:3,name:r.value?`expand_less`:`expand_more`,size:`xs`,class:`q-ml-xs text-grey-6`},null,8,[`name`])):f(``,!0)]),r.value&&k.value?(n(),h(`div`,{key:0,class:`tool-output`,onClick:i[2]||=x(()=>{},[`stop`])},o(D.value),1)):f(``,!0)],2))}}),[[`__scopeId`,`data-v-1702f1be`]]);function ve(e,t){return t?e.replace(/\[image:\s+([^\]]+)\]/g,(e,n)=>{let r=String(n).trim();return/^(\.ai\/images\/|images\/)/.test(r)?`}/images/file?path=${encodeURIComponent(r)}`})`:e}):e}var ye=[`innerHTML`],be=[`innerHTML`],xe=[`src`],Se=F(y({__name:`UserMessageItem`,props:{item:{}},setup(e){let r=e,i=O(),a=m(()=>r.item.sender===`system-prompt`),o=m(()=>N(ve(r.item.content,i.selectedWorkspaceId??``))),s=d(null),l=d(!1);function p(e){let t=e.target;if(t?.tagName!==`IMG`)return;let n=t;n.src&&(s.value=n.src,l.value=!0)}return(e,r)=>(n(),h(g,null,[a.value?(n(),u(ne,{key:0,dense:``,"dense-toggle":``,label:e.$t(`chat.systemPrompt`),"header-class":`text-grey-5 text-caption`},{default:t(()=>[_(`div`,{class:`q-py-xs markdown-user-prompt`,innerHTML:o.value},null,8,ye)]),_:1},8,[`label`])):(n(),h(`div`,{key:1,class:`markdown-message`,onClick:p},[_(`div`,{innerHTML:o.value},null,8,be)])),c(k,{modelValue:l.value,"onUpdate:modelValue":r[1]||=e=>l.value=e},{default:t(()=>[s.value?(n(),h(`img`,{key:0,src:s.value,alt:``,class:`image-lightbox-img`,onClick:r[0]||=e=>l.value=!1},null,8,xe)):f(``,!0)]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-f34be4c5`]]),Ce={class:`turn-header`},we={key:0,class:`turn-time`},Te={class:`turn-time turn-time-updated`},Ee={key:2,class:`turn-actions`},De={class:`turn-body`},Oe={key:0,class:`turn-scroll-top`},ke=F(y({__name:`TurnCard`,props:{turn:{}},emits:[`scrollTo`],setup(e,{emit:r}){let i=e,s=r,{t:y}=D(),x=d(null);function S(){let e=x.value;if(!e)return;let t=e.closest(`.q-scrollarea`)?.querySelector(`.q-scrollarea__content`);if(!t){e.scrollIntoView({behavior:`smooth`,block:`start`});return}let n=e.getBoundingClientRect().top-t.getBoundingClientRect().top;s(`scrollTo`,Math.max(0,n-8))}let w=m(()=>{switch(i.turn.speaker){case`user`:return{label:y(`chat.you`),accent:`#ce93d8`,badgeClass:`turn-badge-user`};case`agent`:return{label:y(`chat.agent`),accent:`#7986cb`,badgeClass:`turn-badge-agent`};case`system-prompt`:return{label:y(`chat.systemPrompt`),accent:`#757575`,badgeClass:`turn-badge-system`};case`session`:return{label:y(`chat.session`),accent:`#616161`,badgeClass:`turn-badge-session`};case`script`:{let e=i.turn.items[0],t=e?.type===`user`?e.sender:``;return{label:y(t===`archive`?`chat.archiveScript`:t===`setup`?`chat.setupScript`:`chat.cleanupScript`),accent:`#4db6ac`,badgeClass:`turn-badge-script`}}}});function T(e,t=!1){if(!e)return``;let n=new Date(e);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(void 0,t?{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}:{hour:`2-digit`,minute:`2-digit`})}let O=m(()=>T(i.turn.ts)),ee=m(()=>{let e=i.turn.items;if(e.length===0)return null;for(let t=e.length-1;t>=0;t--){let n=e[t].ts;if(n)return n}return null}),k=m(()=>{let e=i.turn.ts,t=ee.value;if(!t||!e||t===e)return``;let n=new Date(e).getTime(),r=new Date(t).getTime();return Number.isNaN(n)||Number.isNaN(r)||r<=n?``:T(t,r-n<6e4)}),A=m(()=>k.value!==``),te=m(()=>i.turn.items.filter(e=>e.type===`tool`).length);return(r,i)=>(n(),h(`div`,{ref_key:`cardEl`,ref:x,class:b([`turn-card`,{"turn-card--user":e.turn.speaker===`user`}]),style:v({"--turn-accent":w.value.accent})},[_(`div`,Ce,[_(`span`,{class:b([`turn-badge`,w.value.badgeClass])},o(w.value.label),3),O.value?(n(),h(`span`,we,o(O.value),1)):f(``,!0),A.value?(n(),h(g,{key:1},[c(C,{name:`arrow_forward`,size:`10px`,color:`grey-7`,class:`turn-time-arrow`}),_(`span`,Te,[p(o(k.value)+` `,1),c(j,null,{default:t(()=>[p(o(l(y)(`chat.lastUpdatedAt`,{time:k.value})),1)]),_:1})])],64)):f(``,!0),te.value>0?(n(),h(`span`,Ee,` · `+o(l(y)(`chat.nActions`,{n:te.value})),1)):f(``,!0)]),_(`div`,De,[(n(!0),h(g,null,a(e.turn.items,(e,t)=>(n(),h(g,{key:t},[e.type===`text`?(n(),u(ue,{key:0,item:e},null,8,[`item`])):e.type===`thinking`?(n(),u(W,{key:1,item:e},null,8,[`item`])):e.type===`tool`?(n(),u(_e,{key:2,item:e},null,8,[`item`])):e.type===`user`?(n(),u(Se,{key:3,item:e},null,8,[`item`])):e.type===`session`?(n(),u(ce,{key:4,item:e},null,8,[`item`])):f(``,!0)],64))),128))]),e.turn.items.length>4?(n(),h(`div`,Oe,[c(E,{flat:``,round:``,dense:``,size:`xs`,icon:`arrow_upward`,color:`grey-6`,class:`turn-scroll-top-btn`,onClick:S},{default:t(()=>[c(j,null,{default:t(()=>[p(o(l(y)(`chat.scrollToTurnTop`)),1)]),_:1})]),_:1})])):f(``,!0)],6))}}),[[`__scopeId`,`data-v-ce5d132b`]]),Ae={key:0,class:`activity-feed-switching`},je={key:1,class:`activity-feed-wrap`},Me={key:0,class:`text-center q-py-sm text-caption text-grey-6`},Ne={class:`q-pa-md`},Pe={key:1,class:`q-px-md q-pb-md`},Fe={class:`activity-feed-nav-cluster`},Ie=60,Le=200,Re=200,ze=400,Be=200,Ve=180,He=F(y({__name:`ActivityFeed`,props:{workspaceId:{}},setup(l){let v=l,y=ee(),b=T(),x=O(),C=m(()=>x.selectedSessionId),w=m(()=>x.sessions.find(e=>e.id===C.value)?.engineSessionId??null),D=m(()=>{let e=x.sessions;return e.length===0?!1:C.value===e[e.length-1].id});function k(e){return C.value?e?e===C.value||e===w.value:D.value:!0}let j=m(()=>(x.activityFeeds[v.workspaceId]??[]).filter(e=>e.type===`text`&&typeof e.content==`string`&&k(e.sessionId)).map(e=>({content:e.content,sender:e.meta?.sender??`user`,ts:e.timestamp,sessionId:e.sessionId}))),ie=m(()=>A(x.workspaces.find(e=>e.id===v.workspaceId)?.status)),M=m(()=>{let e=y.eventsFor(v.workspaceId),t=y.timestampsFor(v.workspaceId),n=y.sessionIdsFor(v.workspaceId),r=[],i=[];for(let a=0;a<e.length;a++)k(n[a])&&(r.push(e[a]),i.push(t[a]));let a=oe(ae(r,i,ie.value),j.value);return se(b.showVerboseSystemMessages?a:a.filter(e=>e.type!==`session`))}),N=m(()=>b.showVerboseSystemMessages?y.eventsFor(v.workspaceId).filter(e=>e.kind===`message:raw`).map(e=>e.content):[]),P=d(null),F=d(!0),I=d(!1),L=!1,R=d(!0),ce=d(new Map);function le(e){F.value=e.verticalSize-e.verticalPosition-e.verticalContainerSize<=Ie,L&&e.verticalPosition<=Le&&!I.value&&B()&&de()}function z(e,t){return`${e}:${t}`}function B(){let e=C.value;return e?ce.value.get(z(v.workspaceId,e))??!0:y.hasMoreOlderFor(v.workspaceId)}function V(e,t,n){ce.value.set(z(e,t),n)}function ue(e){if(!C.value)return y.oldestIdFor(e);let t=y.eventIdsFor(e),n=y.sessionIdsFor(e);for(let e=0;e<t.length;e++){if(!k(n[e]))continue;let r=t[e];if(r)return r}}async function de(){let t=v.workspaceId,n=C.value,r=ue(t);if(!r)return;I.value=!0;let i=Date.now();try{let i=P.value;await e();let a=i?.getScroll().verticalSize??0,o=i?.getScroll().verticalPosition??0,s=new URLSearchParams({before:r,limit:`200`});n&&s.set(`session`,n);let c=fetch(`/api/workspaces/${t}/events?${s.toString()}`),l=new Promise(e=>setTimeout(e,Re)),[u]=await Promise.all([c,l]);if(!u.ok){n?V(t,n,!1):y.prepend(t,[],[],{oldestId:r,hasMoreOlder:!1});return}let d=await u.json(),f=d.events??[],p=f.filter(e=>e.type===`agent:event`&&e.workspaceId===t),m=f.filter(e=>e.type===`user:message`&&e.workspaceId===t),h=p.map(e=>e.payload),g=p.map(e=>e.createdAt),_=p.map(e=>e.sessionId??null),v=p.map(e=>e.id),b=f.length>0?f[0].id:r;n&&V(t,n,d.hasMore),y.prepend(t,h,g,{oldestId:b,hasMoreOlder:n?y.hasMoreOlderFor(t):d.hasMore,sessionIds:_,eventIds:v});for(let e of m){let n=e.payload;typeof n.content==`string`&&x.addActivityItem(t,{id:e.id,type:`text`,content:n.content,timestamp:e.createdAt,sessionId:e.sessionId??void 0,meta:{sender:n.sender??`user`}})}if(await e(),i){let e=i.getScroll().verticalSize-a;if(e>0){let t=Math.max(o+e,Le+50);i.setScrollPosition(`vertical`,t,0)}}}catch(e){console.error(`[ActivityFeed] failed to load older events:`,e)}finally{let e=Date.now()-i,t=Math.max(0,Re-e);await new Promise(e=>setTimeout(e,t+ze)),I.value=!1}}async function H(t=0){await e();let n=P.value;if(!n)return;let r=n.getScroll();n.setScrollPosition(`vertical`,r.verticalSize,t)}let U=null,W=0;function fe(){if(U!=null)return;let e=performance.now()-W<Ve;U=requestAnimationFrame(()=>{U=null,W=performance.now(),H(e?0:180)})}function pe(e){let t=P.value;t&&t.setScrollPosition(`vertical`,Math.max(0,e),250)}let G=d([]),K=d(null);function q(){let e=M.value,t=G.value,n=[];if(t.length===e.length){for(let r=0;r<e.length;r++){if(e[r].speaker!==`user`)continue;let i=t[r]?.$el;i&&n.push(i)}if(n.length>0)return n}let r=K.value?.parentElement;if(r){let e=r.querySelectorAll(`.turn-card--user`);for(let t of e)n.push(t)}return n}function J(){let e=P.value;if(!e)return null;let t=K.value;if(!t)return null;let n=e.getScroll().verticalPosition,r=t.getBoundingClientRect().top,i=null;for(let e of q()){let t=e.getBoundingClientRect().top-r;if(t<n-40)i=t;else break}return i}async function me(){let t=P.value;if(!t)return;let n=J();if(n===null)for(let t=0;t<15&&B();t++){for(;I.value;)await new Promise(e=>setTimeout(e,50));if(await de(),await e(),n=J(),n!==null)break}n!==null&&t.setScrollPosition(`vertical`,Math.max(0,n-12),250)}async function Y(){L=!1,await e(),await H(0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{L=!0})})}let X=m(()=>{let e=y.sessionIdsFor(v.workspaceId);if(!C.value)return e.length;let t=0;for(let n of e)k(n)&&t++;return t}),he=m(()=>y.eventsFor(v.workspaceId).length);async function ge(){R.value=!0;let e=Date.now();await new Promise(e=>setTimeout(e,Be));let t=e+5e3;for(;he.value===0&&Date.now()<t;)await new Promise(e=>setTimeout(e,50));R.value=!1}s(R,async e=>{!e&&X.value>0&&await Y(),!e&&X.value===0&&C.value&&$()}),r(()=>{ge(),X.value>0&&Y(),C.value&&$()});let Z=!1;s(X,async(e,t)=>{if(!Z&&e>0){Z=!0,await Y();return}e>t&&F.value&&!I.value&&fe()}),i(()=>{U!=null&&(cancelAnimationFrame(U),U=null)}),s(()=>v.workspaceId,()=>{F.value=!0,Z=!1,L=!1,ge(),X.value>0&&Y()}),s(()=>x.selectedSessionId,async()=>{F.value=!0,L=!1,await Y(),$()});let Q=new Set;async function $(){let t=C.value;if(!t||X.value>0)return;let n=z(v.workspaceId,t);if(!Q.has(n)){Q.add(n);try{let n=await fetch(`/api/workspaces/${v.workspaceId}/events?session=${encodeURIComponent(t)}&limit=500`);if(!n.ok)return;let r=await n.json(),i=r.events??[];if(i.length===0)return;let a=i.filter(e=>e.type===`agent:event`&&e.workspaceId===v.workspaceId),o=i.filter(e=>e.type===`user:message`&&e.workspaceId===v.workspaceId),s=a.map(e=>e.payload),c=a.map(e=>e.createdAt),l=a.map(e=>e.sessionId??null),u=a.map(e=>e.id);V(v.workspaceId,t,r.hasMore),s.length>0&&y.prepend(v.workspaceId,s,c,{oldestId:i[0].id,hasMoreOlder:y.hasMoreOlderFor(v.workspaceId),sessionIds:l,eventIds:u});for(let e of o){let t=e.payload;typeof t.content==`string`&&x.addActivityItem(v.workspaceId,{id:e.id,type:`text`,content:t.content,timestamp:e.createdAt,sessionId:e.sessionId??void 0,meta:{sender:t.sender??`user`}})}await e(),await H(0)}catch(e){console.error(`[ActivityFeed] fetchSessionIfMissing failed:`,e),Q.delete(n)}}}s(m(()=>j.value.filter(e=>e.sender!==`system-prompt`).length),async(e,t)=>{e>t&&(F.value=!0,await H(180))});async function _e(){F.value=!0,await H(250)}return(e,r)=>R.value?(n(),h(`div`,Ae,[c(te,{size:`40px`,color:`indigo-4`})])):(n(),h(`div`,je,[c(re,{ref_key:`scrollRef`,ref:P,class:`activity-feed-scroll`,onScroll:le},{default:t(()=>[_(`div`,{ref_key:`contentOriginRef`,ref:K,class:`content-origin-marker`},null,512),I.value?(n(),h(`div`,Me,[c(S,{size:`sm`}),p(` `+o(e.$t(`activity.loading_older`)),1)])):f(``,!0),_(`div`,Ne,[(n(!0),h(g,null,a(M.value,(e,t)=>(n(),u(ke,{key:t,ref_for:!0,ref_key:`turnRefs`,ref:G,turn:e,onScrollTo:pe},null,8,[`turn`]))),128))]),N.value.length?(n(),h(`div`,Pe,[c(ne,{label:e.$t(`activity.raw_lines`,{n:N.value.length}),dense:``},{default:t(()=>[(n(!0),h(g,null,a(N.value,(e,t)=>(n(),h(`div`,{key:t,class:`text-caption text-grey q-pa-xs`},o(e),1))),128))]),_:1},8,[`label`])])):f(``,!0)]),_:1},512),_(`div`,Fe,[F.value?f(``,!0):(n(),u(E,{key:0,round:``,dense:``,unelevated:``,color:`grey-9`,"text-color":`grey-3`,icon:`arrow_downward`,size:`sm`,class:`activity-feed-nav-btn`,title:e.$t(`activity.scroll_to_bottom`),onClick:_e},null,8,[`title`])),c(E,{round:``,dense:``,unelevated:``,color:`grey-9`,"text-color":`grey-3`,icon:`arrow_upward`,size:`sm`,class:`activity-feed-nav-btn`,title:e.$t(`activity.prev_user_message`),onClick:me},null,8,[`title`])])]))}}),[[`__scopeId`,`data-v-c133a623`]]);export{He as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.review-comment-block[data-v-9abff76f]{background:#28283cb3;border:1px solid #6366f166;border-radius:6px;padding:8px 10px;font-size:12px}.comment-thread-item.with-separator[data-v-9abff76f]{border-top:1px solid #6366f133;margin-top:6px;padding-top:6px}.comment-content[data-v-9abff76f] p{margin:0 0 .3em}.comment-content[data-v-9abff76f] p:last-child{margin-bottom:0}.comment-content[data-v-9abff76f] code{background:#0000004d;border-radius:3px;padding:.1em .3em}.comment-footer[data-v-9abff76f]{align-items:center;gap:4px;margin-top:4px;display:flex}.comment-time[data-v-9abff76f]{margin-right:auto}.comment-actions[data-v-9abff76f]{justify-content:flex-end;gap:6px;display:flex}.comment-textarea[data-v-9abff76f]{font-size:12px}.reply-btn[data-v-9abff76f]{font-size:11px}.review-draft-panel[data-v-e21064fb]{background:#1a1a2e;border-right:1px solid #2a2a4a;flex-direction:column;height:100%;display:flex}.file-group-header[data-v-e21064fb]{align-items:center;padding:4px 0;font-weight:500;display:flex}.draft-line[data-v-e21064fb]{align-items:center;gap:4px;padding:2px 8px 2px 20px;font-size:11px;display:flex}.draft-line[data-v-e21064fb]:hover{background:#6366f11a}.global-message-box[data-v-e21064fb]{flex-shrink:0}.global-textarea[data-v-e21064fb]{font-size:12px}.diff-viewer[data-v-e60cf8ea]{background-color:#1a1a2e}.diff-header[data-v-e60cf8ea]{background-color:#16162a;border-bottom:1px solid #2a2a4a;min-height:48px}.diff-file-list-wrapper[data-v-e60cf8ea]{flex-shrink:0;height:100%;position:relative}.diff-file-list-resize-handle[data-v-e60cf8ea]{cursor:col-resize;z-index:10;width:4px;height:100%;transition:background-color .15s;position:absolute;top:0;right:-2px}.diff-file-list-resize-handle[data-v-e60cf8ea]:hover,.diff-file-list-resize-handle[data-v-e60cf8ea]:active{background-color:#6c63ff80}.diff-file-list[data-v-e60cf8ea]{background-color:#16162a;border-color:#2a2a4a}.diff-tree[data-v-e60cf8ea] .q-tree__node-header{align-items:center;min-height:22px;padding:2px 4px}.diff-tree[data-v-e60cf8ea] .q-tree__node-header.q-tree__node--selected{background-color:#6c63ff2e!important;border-left:2px solid #6c63ff!important}.diff-tree[data-v-e60cf8ea] .q-tree__node-header:not(.q-tree__node--selected):hover{background-color:#ffffff08}.send-to-chat-btn[data-v-e60cf8ea]{z-index:10;padding:2px 10px;font-size:11px;position:absolute;bottom:16px;right:16px}[data-v-e60cf8ea] .review-mode-active .line-numbers{cursor:pointer;transition:background .15s,color .15s}[data-v-e60cf8ea] .review-mode-active .line-numbers:hover{color:#c7d2fe;background:#6366f140}.review-zone-overlay[data-v-e60cf8ea]{z-index:50;pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-sizing:border-box;background:#141423f2;border-left:3px solid #6366f199;padding:4px;position:absolute;left:60px;right:16px;overflow:auto}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-CSZRkloL.js","assets/index-KABmOIkF.js","assets/vue-i18n-Cq-KgjJC.js","assets/runtime-core.esm-bundler-D_RRiKBh.js","assets/QIcon-BmEX2rXO.js","assets/use-id-BCnfiBjU.js","assets/notifications-BC6en6Lt.js","assets/QBtn-CoU-UC_j.js","assets/QRadio-M9mC5jZy.js","assets/use-checkbox-DnSuDqo2.js","assets/QInput-D0t39uK_.js","assets/QCheckbox-Cq2STfHp.js","assets/QToggle-DBzTAIbK.js","assets/index-ClabzOPc.css","assets/editor.api-B4xBDzmJ.js","assets/editor-COGk2gAX.css","assets/monaco.contribution-CJg5GKVf.js","assets/editor-CS3NEPi9.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{C as e,G as t,I as n,K as r,N as i,P as a,R as o,St as s,W as c,_ as l,at as u,d,et as f,f as p,g as m,l as h,p as g,r as _,u as v,xt as y,y as b,yt as x}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{P as S,a as C,t as w}from"./QIcon-BmEX2rXO.js";import{r as ee}from"./use-id-BCnfiBjU.js";import{n as T,t as E}from"./QBtn-CoU-UC_j.js";import{n as te}from"./vue-i18n-Cq-KgjJC.js";import{i as D,o as O,t as k}from"./QInput-D0t39uK_.js";import{c as ne,n as re,o as ie}from"./index-KABmOIkF.js";import{t as ae}from"./QSpinnerDots-DspFKwCZ.js";import{n as oe,t as se}from"./QItemSection-DRg-QuAD.js";import{t as A}from"./QTooltip-Bfdmzm_m.js";import{t as ce}from"./QScrollArea-A1wI0IXU.js";import{t as j}from"./render-chat-markdown-DxEHr3lW.js";import{t as M}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as N}from"./QBadge-NEwszYs7.js";import{t as le}from"./QSpace-DONPiIes.js";import{i as P,n as ue,r as de,t as fe}from"./build-path-tree-BGUV3nY1.js";import{t as pe}from"./QList-B3TuWSqL.js";import{t as me}from"./QMenu-C2Wwwf2E.js";import{t as he}from"./ClosePopup-CxvZA3ft.js";import{t as ge}from"./use-quasar-k24tGxE-.js";var F=S({name:`QBtnToggle`,props:{...O,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(t,{slots:n,emit:r}){let i=h(()=>t.options.find(e=>e.value===t.modelValue)!==void 0),a=D(h(()=>({type:`hidden`,name:t.name,value:t.modelValue}))),o=h(()=>T(t)),s=h(()=>({rounded:t.rounded,dense:t.dense,...o.value})),c=h(()=>t.options.map((e,n)=>{let{attrs:r,value:i,slot:a,...o}=e;return{slot:a,props:{key:n,"aria-pressed":i===t.modelValue?`true`:`false`,...r,...o,...s.value,disable:t.disable===!0||o.disable===!0,color:i===t.modelValue?u(o,`toggleColor`):u(o,`color`),textColor:i===t.modelValue?u(o,`toggleTextColor`):u(o,`textColor`),noCaps:u(o,`noCaps`)===!0,noWrap:u(o,`noWrap`)===!0,size:u(o,`size`),padding:u(o,`padding`),ripple:u(o,`ripple`),stack:u(o,`stack`)===!0,stretch:u(o,`stretch`)===!0,onClick(t){l(i,e,t)}}}}));function l(e,n,i){t.readonly!==!0&&(t.modelValue===e?t.clearable===!0&&(r(`update:modelValue`,null,null),r(`clear`)):r(`update:modelValue`,e,n),r(`click`,i))}function u(e,n){return e[n]===void 0?t[n]:e[n]}function d(){let r=c.value.map(t=>e(E,t.props,t.slot===void 0?void 0:n[t.slot]));return t.name!==void 0&&t.disable!==!0&&i.value===!0&&a(r,`push`),C(n.default,r)}return()=>e(P,{class:`q-btn-toggle`,...o.value,rounded:t.rounded,stretch:t.stretch,glossy:t.glossy,spread:t.spread},d)}});function I(e){if(!e.filePath||e.filePath.startsWith(`/`))throw Error(`Invalid filePath: must be non-empty POSIX path relative to workspace root`);return{id:crypto.randomUUID(),filePath:e.filePath,line:e.line,content:e.content,createdAt:new Date().toISOString()}}function L(e){let t=e.split(`
|
|
3
|
-
`);return t.length===1?e:t.map((e,t)=>t===0?e:` ${e}`).join(`
|
|
4
|
-
`)}function R(e){let{comments:t,globalMessage:n}=e;if(t.length===0)return`## Code review\n\n${n}`;let r=new Map;for(let e of t){let t=r.get(e.filePath)??[];t.push(e),r.set(e.filePath,t)}for(let e of r.values())e.sort((e,t)=>e.line-t.line||e.createdAt.localeCompare(t.createdAt));let i=Array.from(r.keys()).sort(),a=i.map(e=>`### \`${e}\`\n\n${r.get(e).map(e=>`- **L${e.line}** : ${L(e.content)}`).join(`
|
|
5
|
-
`)}`),o=i.length,s=`_${t.length} comment${t.length===1?``:`s`} across ${o} file${o===1?``:`s`}. Address them and ping me back when done._`;return`## Code review — please address the following${n?`\n\n${n}`:``}\n\n${a.join(`
|
|
6
|
-
|
|
7
|
-
`)}\n\n---\n${s}`}var z=300;function B(e){return`kobo:review-draft:${e}`}function V(e){let t=localStorage.getItem(B(e));if(!t)return{comments:[],globalMessage:``};try{let e=JSON.parse(t);return{comments:Array.isArray(e.comments)?e.comments:[],globalMessage:typeof e.globalMessage==`string`?e.globalMessage:``}}catch{return{comments:[],globalMessage:``}}}function _e(e,t){let n=f(V(e)),r=null;function i(){r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null;try{localStorage.setItem(B(e),JSON.stringify(n.value))}catch(e){console.warn(`[review-draft] persist failed:`,e)}},z)}function a(){if(r!==null){clearTimeout(r),r=null;try{localStorage.setItem(B(e),JSON.stringify(n.value))}catch(e){console.warn(`[review-draft] flush failed:`,e)}}}function o(e){let t=I(e);return n.value.comments.push(t),i(),t}function s(e,t){let r=n.value.comments.find(t=>t.id===e);r&&(r.content=t,i())}function c(e){n.value.comments=n.value.comments.filter(t=>t.id!==e),i()}function l(e){n.value.globalMessage=e,i()}function u(){n.value={comments:[],globalMessage:``},r!==null&&(clearTimeout(r),r=null),localStorage.removeItem(B(e))}async function d(r){if(n.value.comments.length===0&&n.value.globalMessage.trim()===``)return{ok:!1,error:`Draft is empty`};a();let i=R(n.value);try{await t.sendChatMessage(e,i,r)}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}return u(),{ok:!0}}return{draft:n,addComment:o,updateComment:s,deleteComment:c,setGlobalMessage:l,clearDraft:u,flush:a,submit:d}}var ve={class:`review-comment-block`},ye={class:`comment-actions q-mt-xs`},H=[`innerHTML`],be={class:`comment-footer`},U={class:`comment-time text-caption text-grey-7`},xe={class:`comment-actions q-mt-xs`},Se=M(b({__name:`ReviewCommentBlock`,props:{comments:{},startInAddMode:{type:Boolean}},emits:[`add`,`update`,`delete`,`dismissEmpty`],setup(e,{emit:r}){let i=e,a=r,{t:c}=te(),u=ge(),h=f(null),y=f(``),b=f(i.startInAddMode===!0),S=f(``);function C(e){return j(e)}function w(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return c(`common.justNow`);if(n<60)return c(`common.minutesAgo`,{count:n});let r=Math.floor(n/60);return r<24?c(`common.hoursAgo`,{count:r}):c(`common.daysAgo`,{count:Math.floor(r/24)})}function ee(e){h.value=e.id,y.value=e.content}function T(){h.value=null,y.value=``}function D(e){let t=y.value.trim();t&&(a(`update`,e,t),h.value=null,y.value=``)}function O(e){u.dialog({title:c(`diff.deleteComment`),message:c(`diff.deleteCommentConfirm`),cancel:!0,persistent:!0,ok:{label:c(`diff.deleteComment`),color:`negative`,flat:!1,unelevated:!0}}).onOk(()=>{a(`delete`,e)})}function ne(){b.value=!1,S.value=``,i.comments.length===0&&a(`dismissEmpty`)}function re(){let e=S.value.trim();e&&(a(`add`,e),b.value=!1,S.value=``)}return(r,i)=>(n(),g(`div`,ve,[(n(!0),g(_,null,o(e.comments,(e,a)=>(n(),g(`div`,{key:e.id,class:x([`comment-thread-item`,{"with-separator":a>0}])},[h.value===e.id?(n(),g(_,{key:0},[l(k,{modelValue:y.value,"onUpdate:modelValue":i[0]||=e=>y.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,autofocus:``,class:`comment-textarea`,placeholder:r.$t(`diff.commentPlaceholder`)},null,8,[`modelValue`,`placeholder`]),v(`div`,ye,[l(E,{flat:``,dense:``,size:`sm`,label:r.$t(`common.cancel`),onClick:T},null,8,[`label`]),l(E,{unelevated:``,dense:``,size:`sm`,color:`primary`,label:r.$t(`common.save`),onClick:t=>D(e.id)},null,8,[`label`,`onClick`])])],64)):(n(),g(_,{key:1},[v(`div`,{class:`comment-content`,innerHTML:C(e.content)},null,8,H),v(`div`,be,[v(`span`,U,s(w(e.createdAt)),1),l(E,{flat:``,dense:``,round:``,size:`xs`,icon:`edit`,color:`grey-5`,onClick:t=>ee(e)},{default:t(()=>[l(A,null,{default:t(()=>[m(s(r.$t(`diff.editComment`)),1)]),_:1})]),_:1},8,[`onClick`]),l(E,{flat:``,dense:``,round:``,size:`xs`,icon:`delete`,color:`grey-5`,onClick:t=>O(e.id)},{default:t(()=>[l(A,null,{default:t(()=>[m(s(r.$t(`diff.deleteComment`)),1)]),_:1})]),_:1},8,[`onClick`])])],64))],2))),128)),b.value?(n(),g(_,{key:0},[l(k,{modelValue:S.value,"onUpdate:modelValue":i[1]||=e=>S.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,autofocus:``,class:`comment-textarea q-mt-sm`,placeholder:r.$t(`diff.commentPlaceholder`)},null,8,[`modelValue`,`placeholder`]),v(`div`,xe,[l(E,{flat:``,dense:``,size:`sm`,label:r.$t(`common.cancel`),onClick:ne},null,8,[`label`]),l(E,{unelevated:``,dense:``,size:`sm`,color:`primary`,disable:!S.value.trim(),label:r.$t(`diff.addComment`),onClick:re},null,8,[`disable`,`label`])])],64)):e.comments.length>0?(n(),d(E,{key:1,flat:``,dense:``,size:`sm`,icon:`reply`,label:r.$t(`diff.replyComment`),class:`reply-btn q-mt-xs`,onClick:i[2]||=e=>b.value=!0},null,8,[`label`])):p(``,!0)]))}}),[[`__scopeId`,`data-v-9abff76f`]]),Ce={class:`review-draft-panel q-pa-sm`},W={class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},we={key:0,class:`text-caption text-grey-7 q-pa-sm`},Te=[`onClick`],G={style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},K=[`onClick`],Ee={class:`text-grey-6 q-mr-xs`,style:{"font-family":`monospace`}},De={class:`text-grey-3 ellipsis`},Oe={class:`global-message-box q-mt-sm`},ke=M(b({__name:`ReviewDraftPanel`,props:{comments:{},globalMessage:{},submitting:{type:Boolean}},emits:[`updateGlobal`,`jumpToFile`,`jumpToComment`,`submit`],setup(e,{emit:r}){let i=e,a=r,c=h(()=>i.comments.length),u=h(()=>{let e=new Map;for(let t of i.comments){let n=e.get(t.filePath)??[];n.push(t),e.set(t.filePath,n)}for(let t of e.values())t.sort((e,t)=>e.line-t.line||e.createdAt.localeCompare(t.createdAt));return Array.from(e.entries()).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({filePath:e,comments:t}))});function d(e){let t=e.replace(/\n+/g,` `).trim();return t.length>80?`${t.slice(0,77)}…`:t}return(r,i)=>(n(),g(`div`,Ce,[v(`div`,W,s(r.$t(`diff.reviewDraft`)),1),l(ce,{class:`comments-scroll`,style:{height:`calc(100% - 220px)`}},{default:t(()=>[u.value.length===0?(n(),g(`div`,we,s(r.$t(`diff.reviewEmpty`)),1)):p(``,!0),(n(!0),g(_,null,o(u.value,e=>(n(),g(`div`,{key:e.filePath,class:`file-group q-mb-sm`},[v(`div`,{class:`file-group-header text-grey-3 cursor-pointer ellipsis`,onClick:t=>a(`jumpToFile`,e.filePath)},[l(w,{name:`description`,size:`14px`,color:`indigo-4`,class:`q-mr-xs`}),v(`span`,G,s(e.filePath),1),l(N,{label:String(e.comments.length),color:`indigo-8`,"text-color":`white`,class:`q-ml-xs`},null,8,[`label`])],8,Te),(n(!0),g(_,null,o(e.comments,e=>(n(),g(`div`,{key:e.id,class:`draft-line cursor-pointer`,onClick:t=>a(`jumpToComment`,e.filePath,e.line)},[v(`span`,Ee,`L`+s(e.line),1),v(`span`,De,s(d(e.content)),1)],8,K))),128))]))),128))]),_:1}),v(`div`,Oe,[l(k,{"model-value":e.globalMessage,type:`textarea`,autogrow:``,rows:`3`,dense:``,dark:``,outlined:``,placeholder:r.$t(`diff.reviewGlobalPlaceholder`),class:`global-textarea`,"onUpdate:modelValue":i[0]||=e=>a(`updateGlobal`,String(e))},null,8,[`model-value`,`placeholder`]),l(E,{unelevated:``,"no-caps":``,color:`primary`,class:`full-width q-mt-sm`,disable:c.value===0&&!e.globalMessage.trim(),loading:e.submitting,onClick:i[1]||=e=>a(`submit`)},{default:t(()=>[m(s(r.$t(`diff.submitReview`,{n:c.value})),1)]),_:1},8,[`disable`,`loading`])])]))}}),[[`__scopeId`,`data-v-e21064fb`]]),Ae={class:`diff-viewer column full-height`},je={class:`diff-header row items-center q-px-md q-py-sm no-wrap`},Me={class:`text-body1 text-weight-medium text-grey-3`},Ne={key:0,class:`text-caption text-grey-6 q-ml-md`,style:{"font-size":`11px`}},Pe={class:`text-grey-7`},Fe={class:`text-green-4`},Ie={class:`text-grey-7`},Le={key:1,class:`text-caption text-grey-5 q-ml-md ellipsis`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,"max-width":`400px`}},Re={class:`row col no-wrap`,style:{"min-height":`0`}},ze={key:0,class:`review-draft-panel-wrapper`,style:{width:`300px`,minWidth:`240px`,flexShrink:0,borderRight:`1px solid #2a2a4a`}},Be={key:1,class:`text-caption text-grey-8 q-pa-sm`},Ve={class:`text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},He={class:`text-grey-3 ellipsis`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Ue={class:`col column`,style:{"min-width":`0`,position:`relative`}},We={key:0,class:`col column items-center justify-center`},Ge={key:1,class:`col column items-center justify-center text-grey-8 text-caption`},Ke=`kobo:diff:hideUnchanged`,qe=`kobo:diff:includeUntracked`,Je=`kobo:diff:mode`,Ye=`kobo:diffViewerFileListWidth`,q=180,Xe=600,Ze=M(b({__name:`DiffViewer`,props:{workspaceId:{},initialReviewMode:{type:Boolean}},emits:[`close`,`sendToChat`],setup(e,{emit:b}){let x=e,S=b,{t:C}=te(),T=ge(),D=f([]),O=f(``),k=f(``),j=f(null),M=f(!1),P=f(!1),I=f(null),L=f(`side`),R=f(localStorage.getItem(Ke)!==`0`),z=f(localStorage.getItem(qe)===`1`),B=f(`branch`),V=f(x.initialReviewMode||localStorage.getItem(Je)===`review`?`review`:`inspect`);c(V,e=>{localStorage.setItem(Je,e),e===`review`?ye():ve()});function ve(){nt();for(let e of Z)e.dispose();Z=[],Y&&Y.getModifiedEditor().getDomNode()?.classList.remove(`review-mode-active`)}function ye(){Y&&(ut(),j.value&&ot(j.value))}let H=ie(),be=ne(),U=_e(x.workspaceId,{sendChatMessage:async(e,t,n)=>{if(!H.isConnected())throw Error(`WebSocket not connected — cannot send the review`);H.sendChatMessage(e,t,n)}}),xe=h(()=>U.draft.value.comments),Ce=h(()=>U.draft.value.globalMessage),W=f(!1);async function we(){W.value=!0;try{let e=await U.submit(be.selectedSessionId??void 0);e.ok?(T.notify({type:`positive`,message:C(`diff.reviewSubmitted`),position:`top`}),S(`close`)):T.notify({type:`negative`,message:C(`diff.reviewSubmitFailed`,{error:e.error??``}),position:`top`})}finally{W.value=!1}}let Te=h(()=>{let e=new Map;if(V.value!==`review`)return e;for(let t of U.draft.value.comments)e.set(t.filePath,(e.get(t.filePath)??0)+1);return e});function G(e){if(V.value!==`review`||!e)return 0;let t=0;for(let n of U.draft.value.comments)n.filePath.startsWith(`${e}/`)&&t++;return t}function K(e){return e.nodeKey.startsWith(`dir:`)?e.nodeKey.slice(4):``}function Ee(e){j.value=e}async function De(e=3e3){let t=Date.now();for(;P.value;){if(Date.now()-t>e)return;await new Promise(e=>setTimeout(e,30))}}async function Oe(e,t){j.value!==e&&(j.value=e,await De()),Y?.getModifiedEditor().revealLineInCenter(t)}let Ze=parseInt(localStorage.getItem(Ye)??`280`,10),Qe=f(Math.min(Xe,Math.max(q,Ze)));function $e(e){e.preventDefault();let t=e.target.closest(`.diff-viewer`);if(!t)return;let n=t.getBoundingClientRect().left,r=e=>{Qe.value=Math.min(Xe,Math.max(q,e.clientX-n))},i=()=>{localStorage.setItem(Ye,String(Qe.value)),document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i),document.body.style.cursor=``,document.body.style.userSelect=``};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}let J=null,Y=null,X=[],Z=[],Q=f([]),et=f(null);function tt(){if(!Y)return;let e=Y.getModifiedEditor();for(let t of Q.value)t.topPx=e.getTopForLineNumber(t.line+1)-e.getScrollTop()-t.heightPx}function nt(){if(!Y){Q.value=[];return}Y.getModifiedEditor().changeViewZones(e=>{for(let t of Q.value)try{e.removeZone(t.zoneId)}catch{}}),Q.value=[]}function rt(e,t,n){if(!Y)return;let r=Y.getModifiedEditor(),i=r.getModel()?.getLineCount()??0;if(e<1||e>i)return;let a=document.createElement(`div`);a.style.pointerEvents=`none`;let o=t.length>0?t.length*4+1:0,s=Math.max(6,o+(n?6:0)),c=``;r.changeViewZones(t=>{c=t.addZone({afterLineNumber:e,heightInLines:s,domNode:a})});let l=s*18,u=r.getTopForLineNumber(e+1)-r.getScrollTop()-l;Q.value.push({zoneId:c,placeholderNode:a,line:e,comments:t,transient:n,topPx:u,heightPx:l})}function it(e){if(!Y)return;let t=Y.getModifiedEditor(),n=Q.value.filter(t=>t.line===e);n.length!==0&&(t.changeViewZones(e=>{for(let t of n)try{e.removeZone(t.zoneId)}catch{}}),Q.value=Q.value.filter(t=>t.line!==e))}function at(e,t){it(t);let n=U.draft.value.comments.filter(n=>n.filePath===e&&n.line===t);n.length!==0&&(n.sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),rt(t,n,!1))}function ot(e){if(!Y||V.value!==`review`)return;let t=U.draft.value.comments.filter(t=>t.filePath===e),n=new Map;for(let e of t){let t=n.get(e.line)??[];t.push(e),n.set(e.line,t)}for(let e of n.values())e.sort((e,t)=>e.createdAt.localeCompare(t.createdAt));for(let[e,t]of n)rt(e,t,!1)}function st(e,t,n){U.addComment({filePath:e,line:t,content:n}),at(e,t)}function ct(e,t,n,r){U.updateComment(n,r),at(e,t)}function lt(e,t,n){U.deleteComment(n),at(e,t)}function ut(){if(!Y||V.value!==`review`||!J)return;let e=Y.getModifiedEditor(),t=e.getDomNode();t&&t.classList.add(`review-mode-active`),Z.push(e.onMouseDown(e=>{if(e.target.type!==3)return;let t=e.target.position?.lineNumber??0;t<1||!j.value||dt(j.value,t)}),e.onDidScrollChange(()=>tt()),e.onDidLayoutChange(()=>tt()))}function dt(e,t){it(t),rt(t,U.draft.value.comments.filter(n=>n.filePath===e&&n.line===t).sort((e,t)=>e.createdAt.localeCompare(t.createdAt)),!0)}function ft(){nt();for(let e of Z)e.dispose();if(Z=[],!Y)return;Y.getModifiedEditor().getDomNode()?.classList.remove(`review-mode-active`);for(let e of X)e.dispose();X=[];let e=Y.getModel();Y.dispose(),Y=null,e?.original?.dispose(),e?.modified?.dispose()}let pt=h(()=>fe(D.value)),mt=h(()=>j.value?`file:${j.value}`:``);async function $(){M.value=!0;try{let e=new URLSearchParams({mode:B.value});B.value===`branch`&&z.value&&e.set(`includeUntracked`,`1`);let t=await fetch(`/api/workspaces/${x.workspaceId}/diff?${e}`,{cache:`no-store`});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();D.value=n.files,O.value=n.sourceBranch??``,k.value=n.workingBranch??``}catch(e){console.error(`Failed to load diff files:`,e)}finally{M.value=!1}}async function ht(e){if(I.value){P.value=!0;try{J||(self.MonacoEnvironment={getWorker(e,t){return t===`json`?new Worker(new URL(`/assets/json.worker-C9p7xCYk.js`,``+import.meta.url),{type:`module`}):t===`css`||t===`scss`||t===`less`?new Worker(new URL(`/assets/css.worker-D1piIYC4.js`,``+import.meta.url),{type:`module`}):t===`html`||t===`handlebars`||t===`razor`?new Worker(new URL(`/assets/html.worker-C4q4XMPn.js`,``+import.meta.url),{type:`module`}):t===`typescript`||t===`javascript`?new Worker(new URL(`/assets/ts.worker-Cj3zTgVE.js`,``+import.meta.url),{type:`module`}):new Worker(new URL(`/assets/editor.worker-CJ9iTmkr.js`,``+import.meta.url),{type:`module`})}},J=await re(()=>import(`./editor.main-CSZRkloL.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])),J.editor.defineTheme(`kobo-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"editor.background":`#1a1a2e`,"diffEditor.insertedTextBackground":`#22c55e20`,"diffEditor.removedTextBackground":`#ef444420`}}));let t=await fetch(`/api/workspaces/${x.workspaceId}/diff-file?path=${encodeURIComponent(e)}&mode=${B.value}`,{cache:`no-store`});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json(),r={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,sql:`sql`,py:`python`,rs:`rust`,go:`go`}[e.split(`.`).pop()??``]??`plaintext`;ft();let i=J.editor.createModel(n.original??``,r),a=J.editor.createModel(n.modified??``,r);Y=J.editor.createDiffEditor(I.value,{theme:`kobo-dark`,readOnly:!0,renderSideBySide:L.value===`side`,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineHeight:18,hideUnchangedRegions:{enabled:R.value,contextLineCount:3,minimumLineCount:3,revealLineCount:20}}),Y.setModel({original:i,modified:a}),yt(),V.value===`review`&&(ut(),ot(e))}catch(e){console.error(`Failed to load file diff:`,e)}finally{P.value=!1}}}function gt(e,t){let n=t===`untracked`;T.dialog({title:C(n?`diff.deleteUntracked`:`diff.rollbackToRemote`),message:C(n?`diff.deleteUntrackedConfirm`:`diff.rollbackConfirm`,{path:e}),cancel:!0,persistent:!0,color:n?`red`:`orange`,ok:{label:C(n?`diff.deleteUntrackedConfirmOk`:`diff.rollbackConfirmOk`),color:n?`red-7`:`orange-7`,flat:!1,unelevated:!0}}).onOk(()=>{_t(e)})}async function _t(e){try{let t=await fetch(`/api/workspaces/${x.workspaceId}/rollback-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})});if(!t.ok){let e=await t.json().catch(()=>({}));T.notify({type:`negative`,message:e.error||C(`diff.rollbackFailed`),position:`top`});return}let n=await t.json().catch(()=>({})),r=C(`diff.rollbackDoneRemote`);n.target===`head`?r=C(`diff.rollbackDoneHead`):n.target===`deleted`&&(r=C(`diff.rollbackDoneDeleted`)),T.notify({type:`positive`,message:r,position:`top`}),await $(),j.value===e&&(D.value.some(t=>t.path===e)?await ht(e):j.value=null)}catch(e){console.error(`rollbackFile failed:`,e),T.notify({type:`negative`,message:C(`diff.rollbackFailed`),position:`top`})}}let vt=f(!1);function yt(){if(!Y)return;for(let e of X)e.dispose();X=[];let e=Y.getModifiedEditor(),t=Y.getOriginalEditor();for(let n of[e,t]){let e=n.onDidChangeCursorSelection(()=>{let e=n.getSelection();vt.value=!!(e&&!e.isEmpty())});X.push(e)}}function bt(){if(!(!Y||!j.value))for(let e of[Y.getModifiedEditor(),Y.getOriginalEditor()]){let t=e.getSelection();if(t&&!t.isEmpty()){let n=e.getModel();if(!n)continue;let r=n.getValueInRange(t),i=e===Y.getModifiedEditor()?`modified`:`original`;S(`sendToChat`,`\`\`\`\n// ${j.value} (${i}) L${t.startLineNumber}-L${t.endLineNumber}\n${r}\n\`\`\``);return}}}c(j,e=>{e?ht(e):ft()}),c(L,()=>{Y&&Y.updateOptions({renderSideBySide:L.value===`side`})}),c(R,e=>{localStorage.setItem(Ke,e?`1`:`0`),Y&&Y.updateOptions({hideUnchangedRegions:{enabled:e,contextLineCount:3,minimumLineCount:3,revealLineCount:20}})}),c(B,async()=>{let e=j.value;await $(),e&&D.value.some(t=>t.path===e)?ht(e):j.value=null}),c(z,async e=>{localStorage.setItem(qe,e?`1`:`0`),await $(),j.value&&!D.value.some(e=>e.path===j.value)&&(j.value=null)});function xt(e){switch(e){case`added`:return`#4ade80`;case`untracked`:return`#86efac`;case`deleted`:return`#f87171`;case`renamed`:return`#60a5fa`;default:return`#f59e0b`}}return i($),a(()=>{U.flush(),ft()}),(e,i)=>(n(),g(`div`,Ae,[v(`div`,je,[l(w,{name:`difference`,size:`18px`,color:`indigo-4`,class:`q-mr-xs`}),v(`span`,Me,s(e.$t(`diff.title`)),1),l(N,{label:`${D.value.length}`,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`]),O.value?(n(),g(`span`,Ne,[B.value===`branch`?(n(),g(_,{key:0},[v(`span`,Pe,s(O.value),1),l(w,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),v(`span`,Fe,s(k.value),1)],64)):(n(),g(_,{key:1},[v(`span`,Ie,`origin/`+s(k.value),1),l(w,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),i[7]||=v(`span`,{class:`text-green-4`},`HEAD`,-1)],64))])):p(``,!0),j.value?(n(),g(`span`,Le,s(j.value),1)):p(``,!0),l(le),l(F,{modelValue:B.value,"onUpdate:modelValue":i[0]||=e=>B.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.scopeBranch`),value:`branch`},{label:e.$t(`diff.scopeUnpushed`),value:`unpushed`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),l(F,{modelValue:V.value,"onUpdate:modelValue":i[1]||=e=>V.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.modeInspect`),value:`inspect`},{label:e.$t(`diff.modeReview`),value:`review`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),l(F,{modelValue:L.value,"onUpdate:modelValue":i[2]||=e=>L.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.side`),value:`side`},{label:e.$t(`diff.inline`),value:`inline`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),l(E,{icon:R.value?`unfold_less`:`unfold_more`,dense:``,flat:``,size:`sm`,color:R.value?`indigo-4`:`grey-5`,class:`q-mr-sm`,onClick:i[3]||=e=>R.value=!R.value},{default:t(()=>[l(A,{anchor:`bottom middle`,self:`top middle`,delay:400},{default:t(()=>[m(s(R.value?e.$t(`diff.showUnchanged`):e.$t(`diff.hideUnchanged`)),1)]),_:1})]),_:1},8,[`icon`,`color`]),B.value===`branch`?(n(),d(E,{key:2,icon:`visibility`,dense:``,flat:``,size:`sm`,color:z.value?`indigo-4`:`grey-5`,class:`q-mr-sm`,onClick:i[4]||=e=>z.value=!z.value},{default:t(()=>[l(A,{anchor:`bottom middle`,self:`top middle`,delay:400},{default:t(()=>[m(s(z.value?e.$t(`diff.hideUntracked`):e.$t(`diff.showUntracked`)),1)]),_:1})]),_:1},8,[`color`])):p(``,!0),l(E,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,size:`sm`,disable:W.value,onClick:i[5]||=e=>S(`close`)},{default:t(()=>[l(A,null,{default:t(()=>[m(s(e.$t(`tooltip.closeDiffViewer`)),1)]),_:1})]),_:1},8,[`disable`])]),l(ee,{dark:``}),v(`div`,Re,[V.value===`review`?(n(),g(`div`,ze,[l(ke,{comments:xe.value,"global-message":Ce.value,submitting:W.value,onUpdateGlobal:u(U).setGlobalMessage,onJumpToFile:Ee,onJumpToComment:Oe,onSubmit:we},null,8,[`comments`,`global-message`,`submitting`,`onUpdateGlobal`])])):p(``,!0),v(`div`,{class:`diff-file-list-wrapper`,style:y({width:`${Qe.value}px`,minWidth:`${q}px`})},[l(ce,{class:`diff-file-list q-pa-xs`,style:{width:`100%`,height:`100%`,"border-right":`1px solid #2a2a4a`}},{default:t(()=>[M.value?(n(),d(ae,{key:0,size:`24px`,color:`grey-6`,class:`q-ma-md`})):D.value.length===0?(n(),g(`div`,Be,s(e.$t(`diff.noChanges`)),1)):(n(),d(de,{key:2,nodes:pt.value,"node-key":`nodeKey`,"label-key":`label`,"children-key":`children`,dark:``,dense:``,"default-expand-all":``,"no-selection-unset":``,selected:mt.value,class:`diff-tree`,"onUpdate:selected":i[6]||=e=>{typeof e!=`string`||!e.startsWith(`file:`)||(j.value=e.slice(5))}},{"default-header":t(({node:i})=>[i.isFolder?(n(),g(_,{key:0},[l(w,{name:`folder`,size:`14px`,color:`indigo-4`,class:`q-mr-xs`}),v(`span`,Ve,s(i.label),1),l(N,{label:i.children?u(ue)(i.children):0,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`]),V.value===`review`&&G(K(i))>0?(n(),d(N,{key:0,label:String(G(K(i))),color:`grey-7`,"text-color":`grey-3`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])):p(``,!0)],64)):(n(),g(_,{key:1},[l(w,{name:`description`,size:`14px`,style:y({color:xt(i.file.status)}),class:`q-mr-xs`},{default:t(()=>[l(A,null,{default:t(()=>[m(s(i.file.status),1)]),_:2},1024)]),_:2},1032,[`style`]),v(`span`,He,s(i.label),1),V.value===`review`&&(Te.value.get(i.file.path)??0)>0?(n(),d(N,{key:0,label:String(Te.value.get(i.file.path)),color:`indigo-8`,"text-color":`white`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])):p(``,!0),l(me,{"touch-position":``,"context-menu":``},{default:t(()=>[l(pe,{dense:``,dark:``,style:{"min-width":`220px`}},{default:t(()=>[r((n(),d(oe,{clickable:``,onClick:e=>gt(i.file.path,i.file.status)},{default:t(()=>[l(se,{avatar:``},{default:t(()=>[l(w,{name:i.file.status===`untracked`?`delete`:`restore`,size:`16px`,color:i.file.status===`untracked`?`red-5`:`orange-5`},null,8,[`name`,`color`])]),_:2},1024),l(se,null,{default:t(()=>[m(s(i.file.status===`untracked`?e.$t(`diff.deleteUntracked`):e.$t(`diff.rollbackToRemote`)),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[he]])]),_:2},1024)]),_:2},1024)],64))]),_:1},8,[`nodes`,`selected`]))]),_:1}),v(`div`,{class:`diff-file-list-resize-handle`,onMousedown:$e},null,32)],4),v(`div`,Ue,[P.value?(n(),g(`div`,We,[l(ae,{size:`32px`,color:`indigo-4`})])):j.value?p(``,!0):(n(),g(`div`,Ge,s(e.$t(`diff.selectFile`)),1)),v(`div`,{ref_key:`editorWrapperRef`,ref:et,class:`col`,style:{"min-height":`0`,position:`relative`,overflow:`hidden`}},[v(`div`,{ref_key:`editorContainer`,ref:I,style:{position:`absolute`,inset:`0`}},null,512),(n(!0),g(_,null,o(Q.value,e=>(n(),g(`div`,{key:e.zoneId,class:`review-zone-overlay`,style:y({top:`${e.topPx}px`,height:`${e.heightPx}px`})},[l(Se,{comments:e.comments,"start-in-add-mode":e.transient,onAdd:t=>st(j.value??``,e.line,t),onUpdate:(t,n)=>ct(j.value??``,e.line,t,n),onDelete:t=>lt(j.value??``,e.line,t),onDismissEmpty:t=>it(e.line)},null,8,[`comments`,`start-in-add-mode`,`onAdd`,`onUpdate`,`onDelete`,`onDismissEmpty`])],4))),128))],512),vt.value?(n(),d(E,{key:2,"no-caps":``,dense:``,size:`sm`,color:`primary`,icon:`chat`,label:e.$t(`diff.addToChat`),class:`send-to-chat-btn`,onClick:bt},null,8,[`label`])):p(``,!0)])])]))}}),[[`__scopeId`,`data-v-e60cf8ea`]]);export{Ze as default};
|