@specship/specship-win32-arm64 0.11.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/bin/specship.js +9 -60
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/reflect/index.d.ts +1 -1
- package/lib/dist/reflect/index.d.ts.map +1 -1
- package/lib/dist/reflect/index.js +2 -1
- package/lib/dist/reflect/index.js.map +1 -1
- package/lib/dist/reflect/miner.d.ts +8 -0
- package/lib/dist/reflect/miner.d.ts.map +1 -1
- package/lib/dist/reflect/miner.js +64 -36
- package/lib/dist/reflect/miner.js.map +1 -1
- package/lib/dist/server/cli.js +5 -49
- package/lib/dist/server/routes/claude.js +13 -5
- package/lib/dist/server/server.js +17 -2
- package/lib/dist/server/ssr/md.mjs +83 -0
- package/lib/dist/server/ssr/render.mjs +564 -0
- package/lib/dist/server/ssr/routes.js +73 -0
- package/lib/dist/server/static-handler.js +30 -0
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +3 -3
- package/package.json +1 -1
- package/lib/dist/web/chunk-2AJCHB7P.js +0 -1
- package/lib/dist/web/chunk-2CPLUFCH.js +0 -2
- package/lib/dist/web/chunk-2I7L37NS.js +0 -1
- package/lib/dist/web/chunk-2IVSOVQZ.js +0 -1
- package/lib/dist/web/chunk-2NAWAJB5.js +0 -1
- package/lib/dist/web/chunk-2OJBIPE4.js +0 -1
- package/lib/dist/web/chunk-3E2WB6D5.js +0 -1
- package/lib/dist/web/chunk-3EBFYSCH.js +0 -2
- package/lib/dist/web/chunk-3QCQ4BXS.js +0 -1
- package/lib/dist/web/chunk-42XVAQ6I.js +0 -1
- package/lib/dist/web/chunk-4G7XU55L.js +0 -1
- package/lib/dist/web/chunk-4IMMPEYM.js +0 -1
- package/lib/dist/web/chunk-4TJQJPCZ.js +0 -1
- package/lib/dist/web/chunk-4WZIHTPC.js +0 -1
- package/lib/dist/web/chunk-4YVSYOSD.js +0 -1
- package/lib/dist/web/chunk-5BQIOYKW.js +0 -1
- package/lib/dist/web/chunk-5HGWHUJA.js +0 -1
- package/lib/dist/web/chunk-5NTGUSXJ.js +0 -1
- package/lib/dist/web/chunk-5Y244R4G.js +0 -1
- package/lib/dist/web/chunk-6RRDPT5Z.js +0 -1
- package/lib/dist/web/chunk-6VKB2ZWM.js +0 -1
- package/lib/dist/web/chunk-7656MA24.js +0 -1
- package/lib/dist/web/chunk-7DMFVTU4.js +0 -1
- package/lib/dist/web/chunk-7KWBINA7.js +0 -1
- package/lib/dist/web/chunk-7SMPKVEP.js +0 -1
- package/lib/dist/web/chunk-AHI5XEVX.js +0 -1
- package/lib/dist/web/chunk-AS2GV63A.js +0 -1
- package/lib/dist/web/chunk-AZJVTPLU.js +0 -1
- package/lib/dist/web/chunk-AZUUBUEJ.js +0 -1
- package/lib/dist/web/chunk-BLBRMCN2.js +0 -1
- package/lib/dist/web/chunk-BMIAXD2V.js +0 -2
- package/lib/dist/web/chunk-BPCJLNBS.js +0 -47
- package/lib/dist/web/chunk-BUXWEHIY.js +0 -1
- package/lib/dist/web/chunk-CGVC666W.js +0 -1
- package/lib/dist/web/chunk-DLQPZWSI.css +0 -1
- package/lib/dist/web/chunk-DOKZOFKM.js +0 -1
- package/lib/dist/web/chunk-DTWIJ3GJ.js +0 -1
- package/lib/dist/web/chunk-DYRFLPJA.js +0 -1
- package/lib/dist/web/chunk-E3J3CXR5.js +0 -1
- package/lib/dist/web/chunk-E73OX2P7.js +0 -1
- package/lib/dist/web/chunk-EAXRKDLV.js +0 -1
- package/lib/dist/web/chunk-EBKKDHYI.js +0 -1
- package/lib/dist/web/chunk-EE7V7Q5P.js +0 -1
- package/lib/dist/web/chunk-EKY2FUHU.js +0 -1
- package/lib/dist/web/chunk-EP6XOPXH.js +0 -1
- package/lib/dist/web/chunk-ESGDLJOJ.js +0 -1
- package/lib/dist/web/chunk-ETJG7NCY.js +0 -1
- package/lib/dist/web/chunk-EUUEFEDI.js +0 -1
- package/lib/dist/web/chunk-EXBUKHH2.js +0 -17
- package/lib/dist/web/chunk-FC3R7YHR.js +0 -4
- package/lib/dist/web/chunk-FGNZDHTL.js +0 -11
- package/lib/dist/web/chunk-FIJW2UNJ.js +0 -1
- package/lib/dist/web/chunk-FMV5PXRC.js +0 -5
- package/lib/dist/web/chunk-G7RXFHYO.js +0 -1
- package/lib/dist/web/chunk-G7VZT5KB.js +0 -3
- package/lib/dist/web/chunk-GRZYXPSO.js +0 -7
- package/lib/dist/web/chunk-GYGPS3AN.js +0 -1
- package/lib/dist/web/chunk-H7AF7YS4.js +0 -1
- package/lib/dist/web/chunk-HDZDQILN.js +0 -1
- package/lib/dist/web/chunk-HMK6UO6N.js +0 -1
- package/lib/dist/web/chunk-IHEE5NYJ.js +0 -1
- package/lib/dist/web/chunk-IOB4JJT4.js +0 -1
- package/lib/dist/web/chunk-ISNEBICW.js +0 -1
- package/lib/dist/web/chunk-J2GZVLHH.js +0 -1
- package/lib/dist/web/chunk-JGDK6YKG.js +0 -1
- package/lib/dist/web/chunk-JLOJCDIY.js +0 -1
- package/lib/dist/web/chunk-JTFXTIPE.js +0 -903
- package/lib/dist/web/chunk-K7UD24Z4.js +0 -1
- package/lib/dist/web/chunk-KYSTCHAH.js +0 -1
- package/lib/dist/web/chunk-LB6JPLX2.js +0 -1
- package/lib/dist/web/chunk-LNSVDHCI.js +0 -1
- package/lib/dist/web/chunk-LVGIY3SO.js +0 -1
- package/lib/dist/web/chunk-LXLHIHEN.js +0 -1
- package/lib/dist/web/chunk-M42QOYAE.js +0 -1
- package/lib/dist/web/chunk-ML5ULGHY.js +0 -1
- package/lib/dist/web/chunk-MNFTHCSJ.js +0 -1
- package/lib/dist/web/chunk-N6SS4G6S.js +0 -1
- package/lib/dist/web/chunk-NKPK3BR3.js +0 -1
- package/lib/dist/web/chunk-NTBJG6SJ.js +0 -1
- package/lib/dist/web/chunk-NUDB3Q2Y.js +0 -3
- package/lib/dist/web/chunk-OTQR5VFM.js +0 -1
- package/lib/dist/web/chunk-OXEF5E3E.js +0 -1
- package/lib/dist/web/chunk-P62EJGSF.js +0 -1
- package/lib/dist/web/chunk-PCW6R7OP.js +0 -1
- package/lib/dist/web/chunk-PGGJPDJG.js +0 -1
- package/lib/dist/web/chunk-POCVU4VK.js +0 -2
- package/lib/dist/web/chunk-PS6HRYQQ.js +0 -3
- package/lib/dist/web/chunk-PUYSJNJR.js +0 -1
- package/lib/dist/web/chunk-PZSU53SS.js +0 -1
- package/lib/dist/web/chunk-Q2RVFS45.js +0 -1
- package/lib/dist/web/chunk-Q7L6LLAK.js +0 -1
- package/lib/dist/web/chunk-QCMKJIWY.js +0 -1
- package/lib/dist/web/chunk-QH6CF3M3.js +0 -1
- package/lib/dist/web/chunk-QIZ65CGB.js +0 -1
- package/lib/dist/web/chunk-QPA2REUE.js +0 -1
- package/lib/dist/web/chunk-QQ5LD7PI.js +0 -1
- package/lib/dist/web/chunk-QR6L3KAC.js +0 -1
- package/lib/dist/web/chunk-R2DLK4HO.js +0 -1
- package/lib/dist/web/chunk-RD6TVPOT.js +0 -1
- package/lib/dist/web/chunk-RKY4EJYJ.js +0 -1
- package/lib/dist/web/chunk-RONYWVY7.js +0 -1
- package/lib/dist/web/chunk-RXKXYF2C.js +0 -1
- package/lib/dist/web/chunk-S5J5WQXB.js +0 -6
- package/lib/dist/web/chunk-SQPYSOV6.js +0 -1
- package/lib/dist/web/chunk-SWKJRNYY.js +0 -1
- package/lib/dist/web/chunk-SYGIPC2P.js +0 -4
- package/lib/dist/web/chunk-T7AZ65JP.js +0 -1
- package/lib/dist/web/chunk-TCZDVOHD.js +0 -1
- package/lib/dist/web/chunk-TPTITA3V.js +0 -1
- package/lib/dist/web/chunk-TR335633.js +0 -1
- package/lib/dist/web/chunk-TWVVIWKO.js +0 -1
- package/lib/dist/web/chunk-U67LRNER.js +0 -1
- package/lib/dist/web/chunk-UR5KDXPX.js +0 -1
- package/lib/dist/web/chunk-UR6O2GEH.js +0 -1
- package/lib/dist/web/chunk-USVLLFVR.js +0 -1
- package/lib/dist/web/chunk-UTNMGWTP.js +0 -1
- package/lib/dist/web/chunk-V74ZPP4B.js +0 -1
- package/lib/dist/web/chunk-VECWMHJP.js +0 -1
- package/lib/dist/web/chunk-VUACT35R.js +0 -3
- package/lib/dist/web/chunk-VZI7H4SZ.js +0 -1
- package/lib/dist/web/chunk-W5TEIONI.js +0 -2
- package/lib/dist/web/chunk-WB6YHOD4.js +0 -1
- package/lib/dist/web/chunk-WBJ5VEB5.js +0 -1
- package/lib/dist/web/chunk-WBT64AWV.js +0 -1
- package/lib/dist/web/chunk-WFXJIXZE.js +0 -4
- package/lib/dist/web/chunk-WTGYRH3Z.js +0 -298
- package/lib/dist/web/chunk-WXTCVDTP.js +0 -1
- package/lib/dist/web/chunk-XAUQEKZX.js +0 -1
- package/lib/dist/web/chunk-XCDHWLVH.js +0 -1
- package/lib/dist/web/chunk-XKG5X37F.js +0 -1
- package/lib/dist/web/chunk-Y3H6FFUZ.js +0 -1
- package/lib/dist/web/chunk-Y4F5ULGJ.js +0 -1
- package/lib/dist/web/chunk-YEGKAAEE.js +0 -1
- package/lib/dist/web/chunk-YM2KU57F.js +0 -1
- package/lib/dist/web/chunk-YRERBP6T.js +0 -1
- package/lib/dist/web/chunk-YV5LB22R.js +0 -1
- package/lib/dist/web/chunk-YWIRU745.js +0 -1
- package/lib/dist/web/chunk-ZLV4VCDG.js +0 -3
- package/lib/dist/web/chunk-ZTVI5KFF.js +0 -1
- package/lib/dist/web/favicon-16.png +0 -0
- package/lib/dist/web/favicon-180.png +0 -0
- package/lib/dist/web/favicon-32.png +0 -0
- package/lib/dist/web/favicon-512.png +0 -0
- package/lib/dist/web/favicon-small.svg +0 -15
- package/lib/dist/web/favicon.ico +0 -0
- package/lib/dist/web/favicon.svg +0 -20
- package/lib/dist/web/icon-192.png +0 -0
- package/lib/dist/web/icon-512.png +0 -0
- package/lib/dist/web/index.html +0 -146
- package/lib/dist/web/main-ESADRXN2.css +0 -1
- package/lib/dist/web/main-JT2RR3JS.js +0 -1
- package/lib/dist/web/manifest.webmanifest +0 -15
- package/lib/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
- package/lib/dist/web/sw.js +0 -69
- /package/lib/dist/{web/styles-ATJUD7TT.css → server/ssr/public/app.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[\[.*\]\]/,"annotation"],[/^\s*#\w+/,"keyword"],[/int\d*/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t={defaultToken:"",ignoreCase:!1,tokenPostfix:".mips",regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:[".data",".text","syscall","trap","add","addu","addi","addiu","and","andi","div","divu","mult","multu","nor","or","ori","sll","slv","sra","srav","srl","srlv","sub","subu","xor","xori","lhi","lho","lhi","llo","slt","slti","sltu","sltiu","beq","bgtz","blez","bne","j","jal","jalr","jr","lb","lbu","lh","lhu","lw","li","la","sb","sh","sw","mfhi","mflo","mthi","mtlo","move"],symbols:/[\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\$[a-zA-Z_]\w*/,"variable.predefined"],[/[.a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},t={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],doctype:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".r",roxygen:["@alias","@aliases","@assignee","@author","@backref","@callGraph","@callGraphDepth","@callGraphPrimitives","@concept","@describeIn","@description","@details","@docType","@encoding","@evalNamespace","@evalRd","@example","@examples","@export","@exportClass","@exportMethod","@exportPattern","@family","@field","@formals","@format","@import","@importClassesFrom","@importFrom","@importMethodsFrom","@include","@inherit","@inheritDotParams","@inheritParams","@inheritSection","@keywords","@md","@method","@name","@noMd","@noRd","@note","@param","@rawNamespace","@rawRd","@rdname","@references","@return","@S3method","@section","@seealso","@setClass","@slot","@source","@template","@templateVar","@title","@TODO","@usage","@useDynLib"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'$/,"comment.doc"],[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<</,"operator"],[/>>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}};export{e as conf,o as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".pascaligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["begin","block","case","const","else","end","fail","for","from","function","if","is","nil","of","remove","return","skip","then","type","var","while","with","option","None","transaction"],typeKeywords:["bool","int","list","map","nat","record","string","unit","address","map","mtz","xtz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,o as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"COMMENT"},brackets:[["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:":",close:"."}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},t={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=><!~?:&|+\-*\/\^%]+/,tokenizer:{root:[[/^(\s*)(comment:?(?:\s.*|))$/,["","comment"]],[/"/,{token:"identifier.quote",bracket:"@open",next:"@quoted_identifier"}],["LEX$",{token:"keyword",bracket:"@open",next:"@identifier_until_period"}],["LEXON",{token:"keyword",bracket:"@open",next:"@semver"}],[":",{token:"delimiter",bracket:"@open",next:"@identifier_until_period"}],[/[a-z_$][\w$]*/,{cases:{"@operators":"operator","@typeKeywords":"keyword.type","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as m,n as p}from"./chunk-JTFXTIPE.js";import{d as E}from"./chunk-Q7L6LLAK.js";var C={};E(C,{JsxEmit:()=>c,ModuleKind:()=>u,ModuleResolutionKind:()=>_,NewLineKind:()=>l,ScriptTarget:()=>b,getJavaScriptWorker:()=>v,getTypeScriptWorker:()=>x,javascriptDefaults:()=>d,typescriptDefaults:()=>f,typescriptVersion:()=>L});var h="5.9.3";var u=(t=>(t[t.None=0]="None",t[t.CommonJS=1]="CommonJS",t[t.AMD=2]="AMD",t[t.UMD=3]="UMD",t[t.System=4]="System",t[t.ES2015=5]="ES2015",t[t.ESNext=99]="ESNext",t))(u||{}),c=(t=>(t[t.None=0]="None",t[t.Preserve=1]="Preserve",t[t.React=2]="React",t[t.ReactNative=3]="ReactNative",t[t.ReactJSX=4]="ReactJSX",t[t.ReactJSXDev=5]="ReactJSXDev",t))(c||{}),l=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(l||{}),b=(t=>(t[t.ES3=0]="ES3",t[t.ES5=1]="ES5",t[t.ES2015=2]="ES2015",t[t.ES2016=3]="ES2016",t[t.ES2017=4]="ES2017",t[t.ES2018=5]="ES2018",t[t.ES2019=6]="ES2019",t[t.ES2020=7]="ES2020",t[t.ESNext=99]="ESNext",t[t.JSON=100]="JSON",t[t.Latest=99]="Latest",t))(b||{}),_=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(_||{}),n=class{constructor(i,r,e,o,s){this._onDidChange=new m,this._onDidExtraLibsChange=new m,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(i),this.setDiagnosticsOptions(r),this.setWorkerOptions(e),this.setInlayHintsOptions(o),this.setModeConfiguration(s),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(i,r){let e;if(typeof r>"u"?e=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:e=r,this._extraLibs[e]&&this._extraLibs[e].content===i)return{dispose:()=>{}};let o=1;return this._removedExtraLibs[e]&&(o=this._removedExtraLibs[e]+1),this._extraLibs[e]&&(o=this._extraLibs[e].version+1),this._extraLibs[e]={content:i,version:o},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let s=this._extraLibs[e];s&&s.version===o&&(delete this._extraLibs[e],this._removedExtraLibs[e]=o,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(i){for(let r in this._extraLibs)this._removedExtraLibs[r]=this._extraLibs[r].version;if(this._extraLibs=Object.create(null),i&&i.length>0)for(let r of i){let e=r.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,o=r.content,s=1;this._removedExtraLibs[e]&&(s=this._removedExtraLibs[e]+1),this._extraLibs[e]={content:o,version:s}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(i){this._compilerOptions=i||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(i){this._diagnosticsOptions=i||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(i){this._workerOptions=i||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(i){this._inlayHintsOptions=i||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(i){}setEagerModelSync(i){this._eagerModelSync=i}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(i){this._modeConfiguration=i||Object.create(null),this._onDidChange.fire(void 0)}},L=h,g={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},f=new n({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},g),d=new n({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},g),x=()=>a().then(t=>t.getTypeScriptWorker()),v=()=>a().then(t=>t.getJavaScriptWorker());function a(){return import("./chunk-FGNZDHTL.js")}p.onLanguage("typescript",()=>a().then(t=>t.setupTypeScript(f)));p.onLanguage("javascript",()=>a().then(t=>t.setupJavaScript(d)));export{f as a,C as b};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{a as j}from"./chunk-G7VZT5KB.js";import{a as G}from"./chunk-PZSU53SS.js";import{c as V}from"./chunk-DTWIJ3GJ.js";import{a as H}from"./chunk-JGDK6YKG.js";import{a as $}from"./chunk-TWVVIWKO.js";import{Aa as c,Ga as E,I as z,Ia as P,Ka as m,M as w,N as k,Ta as _,Ua as S,Va as l,W as T,Wa as p,X as A,Xa as y,aa as I,bb as R,ea as o,ka as B,lb as u,qa as M,ra as x,sa as v,ua as N,va as C,wa as h,xa as d,ya as i,yb as U,za as r,zb as K}from"./chunk-SYGIPC2P.js";import"./chunk-Q7L6LLAK.js";var J=()=>[1,2,3,4,5],Y=(n,t)=>t.key,F=(n,t)=>t.id;function X(n,t){n&1&&(i(0,"span",20),c(1,"span",33),l(2," Seed "),r())}function W(n,t){n&1&&(i(0,"span",21),c(1,"span",33),l(2," Live "),r())}function Z(n,t){if(n&1){let e=E();i(0,"div",24),c(1,"app-icon",34),i(2,"div",35)(3,"div",5),l(4,"Couldn't load memory"),r(),i(5,"div",36),l(6),r()(),i(7,"button",37),P("click",function(){w(e);let s=m();return k(s.reload())}),l(8,"Retry"),r()()}n&2&&(o(),d("size",16),o(5),p(t))}function ee(n,t){n&1&&(i(0,"div",25),c(1,"app-icon",38),i(2,"div",35)(3,"div",5),l(4,"No project selected"),r(),i(5,"div",36),l(6,"Pick a project from the top bar to see its CLAUDE.md hierarchy and saved notes."),r()()()),n&2&&(o(),d("size",16))}function te(n,t){n&1&&(i(0,"div",26),c(1,"app-icon",38),i(2,"div",35)(3,"div",5),l(4,"Showing example memory"),r(),i(5,"div",36),l(6,"The selected project has no CLAUDE.md or saved notes yet. The cards below illustrate what real data would look like."),r()()()),n&2&&(o(),d("size",16))}function ne(n,t){if(n&1&&c(0,"span",33),n&2){let e=m().$implicit;_("background",e.color)}}function oe(n,t){if(n&1&&(i(0,"span",41),l(1),r()),n&2){let e=m().$implicit;o(),p(e.count)}}function ie(n,t){if(n&1){let e=E();i(0,"button",39),P("click",function(){let s=w(e).$implicit,g=m();return k(g.onTypeFilter(s.key))}),x(1,ne,1,2,"span",40),l(2),x(3,oe,2,1,"span",41),r()}if(n&2){let e=t.$implicit,a=m();_("--chip-color",e.color)("--chip-bg",e.soft),S("active",a.typeFilter()===e.key),M("aria-pressed",a.typeFilter()===e.key),o(),v(e.key!=="all"?1:-1),o(),y(" ",e.label," "),o(),v(e.count!==void 0?3:-1)}}function re(n,t){if(n&1&&(i(0,"span",30),l(1),r()),n&2){let e=m();o(),p(e.typeDesc())}}function ae(n,t){n&1&&(i(0,"div",48),c(1,"div",49),i(2,"div",50),c(3,"div",51)(4,"div",52),r(),c(5,"div",53),r())}function le(n,t){n&1&&C(0,ae,6,0,"div",48,N),n&2&&h(R(0,J))}function ce(n,t){if(n&1){let e=E();i(0,"button",37),P("click",function(){w(e);let s=m(3);return k(s.clearFilter())}),l(1,"Show all types"),r()}}function de(n,t){if(n&1&&(i(0,"div",44)(1,"div",54),l(2,"Nothing here"),r(),i(3,"div"),l(4),r(),x(5,ce,2,0,"button",55),r()),n&2){let e=m(2);o(4),y("No ",e.filterEmptyNoun()," loaded for this project."),o(),v(e.typeFilter()!=="all"?5:-1)}}function se(n,t){n&1&&c(0,"app-icon",67),n&2&&d("size",10)}function pe(n,t){if(n&1){let e=E();i(0,"button",62),P("click",function(){let s=w(e).$implicit,g=m(4);return k(g.onSelectByObj(s))}),c(1,"span",63)(2,"app-icon",64),i(3,"span",65)(4,"span",66),l(5),x(6,se,1,1,"app-icon",67),r(),i(7,"span",68),l(8),r()(),i(9,"span",69),l(10),r()()}if(n&2){let e=t.$implicit,a=m(4);S("selected",a.selectedId()===e.id)("indent",a.isIndented(e)),M("aria-pressed",a.selectedId()===e.id)("aria-label",a.nameFor(e)+" \u2014 "+a.L[e.level].label),o(),_("background",a.L[e.level].color),o(),d("name",a.iconFor(e))("size",13),o(3),y(" ",a.nameFor(e)," "),o(),v(e.readOnly?6:-1),o(),d("title",a.shortPath(e)),o(),p(a.shortPath(e)),o(2),p(a.fmtK(e.tokens))}}function me(n,t){if(n&1&&(i(0,"div",56)(1,"div",57)(2,"span",58),l(3),r(),i(4,"span",59),l(5),r()(),i(6,"div",60),l(7),r(),C(8,pe,11,15,"button",61,F),r()),n&2){let e=t.$implicit,a=m(3);o(3),p(a.L[e.key].label),o(2),p(a.rowItems(e).length),o(2),p(a.L[e.key].desc),o(),h(a.rowItems(e))}}function ge(n,t){if(n&1&&C(0,me,10,3,"div",56,Y),n&2){let e=m(2);h(e.railGroups())}}function ue(n,t){n&1&&(i(0,"span",72),c(1,"app-icon",86),l(2," read-only"),r()),n&2&&(o(),d("size",10))}function xe(n,t){if(n&1&&(i(0,"div",77)(1,"div",12),l(2,"Saved in"),r(),i(3,"button",87),l(4),r()()),n&2){let e=m();o(3),M("aria-label","Jump to session "+e.session),o(),p(e.session)}}function ve(n,t){if(n&1&&(i(0,"span",88),l(1),r()),n&2){let e=t.$implicit;o(),y("#",e)}}function fe(n,t){if(n&1&&(i(0,"div",79),C(1,ve,2,1,"span",88,N),r()),n&2){let e=m();o(),h(e.tags)}}function _e(n,t){if(n&1&&(i(0,"div",90),c(1,"app-icon",91),i(2,"span",92),l(3),r(),i(4,"span",93),l(5),r()()),n&2){let e=t.$implicit,a=m(4);o(),d("size",12),o(),d("title",e.path),o(),p(e.path),o(2),p(a.fmtK(e.tokens))}}function ye(n,t){if(n&1&&(i(0,"div",81)(1,"div",58),l(2),r(),i(3,"div",89),C(4,_e,6,4,"div",90,F),r()()),n&2){let e=m(3);o(2),y("Imports \xB7 ",e.currentImports().length),o(2),h(e.currentImports())}}function be(n,t){if(n&1&&(i(0,"button",55),c(1,"app-icon",94),l(2),r()),n&2){let e=m();M("aria-label",(e.type==="note"?"Edit note":"Edit memory")+" "+e.path),o(),d("size",13),o(),y(" ",e.type==="note"?"Edit note":"Edit memory"," ")}}function Ce(n,t){if(n&1&&(i(0,"button",85),c(1,"app-icon",95),l(2," Forget "),r()),n&2){let e=m();M("aria-label","Forget note "+e.path),o(),d("size",13)}}function he(n,t){if(n&1&&(i(0,"div",46)(1,"div",70)(2,"span",71),c(3,"app-icon",64),l(4),r(),i(5,"span",71),l(6),r(),i(7,"span",30),l(8),r(),c(9,"span",19),x(10,ue,3,1,"span",72),r(),i(11,"div",73)(12,"span",74),l(13),r(),c(14,"app-copy-btn",75),r(),i(15,"div",76)(16,"div",77)(17,"div",12),l(18,"Tokens"),r(),i(19,"div",78),l(20),r()(),i(21,"div",77)(22,"div",12),l(23,"Lines"),r(),i(24,"div",78),l(25),r()(),i(26,"div",77)(27,"div",12),l(28,"Scope"),r(),i(29,"div",78),l(30),r()(),i(31,"div",77)(32,"div",12),l(33,"Modified"),r(),i(34,"div",78),l(35),r()(),x(36,xe,5,2,"div",77),r(),x(37,fe,3,0,"div",79),c(38,"div",80),x(39,ye,6,1,"div",81),i(40,"div",82),x(41,be,3,3,"button",55),i(42,"button",83),c(43,"app-icon",84),l(44," Copy contents "),r(),x(45,Ce,3,2,"button",85),r()()),n&2){let e=t,a=m(2);o(2),_("background",a.T[e.type].soft)("color",a.T[e.type].color),o(),d("name",a.T[e.type].icon)("size",10),o(),y(" ",a.T[e.type].label," "),o(),_("background",a.L[e.level].soft)("color",a.L[e.level].color),o(),p(a.L[e.level].label),o(2),p(a.L[e.level].desc),o(2),v(e.readOnly?10:-1),o(2),d("title",e.path),o(),p(e.path),o(),d("text",e.path),o(6),p(a.fmtK(e.tokens)),o(5),p(e.lines),o(5),p(a.L[e.level].label),o(5),p(e.modified),o(),v(e.type==="note"&&e.session?36:-1),o(),v(e.type==="note"&&(e.tags!=null&&e.tags.length)?37:-1),o(),d("innerHTML",a.currentBody(),I),o(),v(a.currentImports().length>0?39:-1),o(2),v(e.readOnly?-1:41),o(2),d("size",13),o(2),v(e.type==="note"?45:-1)}}function Me(n,t){n&1&&(i(0,"div",47),c(1,"app-icon",3),i(2,"div"),l(3,"Pick an item from the rail to see its contents."),r()()),n&2&&(o(),d("size",32))}function Pe(n,t){if(n&1&&(i(0,"div",31)(1,"div",42)(2,"div",43),x(3,le,2,1)(4,de,6,2,"div",44)(5,ge,2,0),r()(),i(6,"div",45),x(7,he,46,28,"div",46)(8,Me,4,1,"div",47),r()()),n&2){let e,a=m();o(3),v(a.loading()&&a.source()==="seed"?3:a.visibleCount()===0?4:5),o(4),v((e=a.current())?7:8,e)}}function Oe(n,t){n&1&&c(0,"app-icon",109),n&2&&d("size",11)}function we(n,t){if(n&1&&(i(0,"div",103),c(1,"div",104),i(2,"div",105)(3,"div",106)(4,"span",107),l(5),r(),i(6,"span",71),l(7),r(),i(8,"span",108),l(9),r(),c(10,"span",19),x(11,Oe,1,1,"app-icon",109),i(12,"span",110),l(13),r()(),c(14,"div",111),r()()),n&2){let e=t.$implicit,a=t.$index,s=m(3);o(),_("background",s.L[e.level].color),o(4),p(a+1),o(),_("background",s.L[e.level].soft)("color",s.L[e.level].color),o(),p(s.L[e.level].label),o(),d("title",e.path),o(),p(e.path),o(2),v(e.readOnly?11:-1),o(2),p(s.fmtK(e.tokens)),o(),d("innerHTML",s.renderBody(e.body),I)}}function ke(n,t){if(n&1&&(i(0,"div",101),l(1,"Instructions \xB7 precedence order"),r(),i(2,"div",102),C(3,we,15,13,"div",103,F),r()),n&2){let e=m(2);o(3),h(e.effectiveInstructions())}}function Ee(n,t){n&1&&(i(0,"div",100)(1,"div",54),l(2,"No instructions loaded"),r(),i(3,"div"),l(4,"This project has no CLAUDE.md hierarchy yet."),r()())}function Se(n,t){if(n&1&&(i(0,"div",103),c(1,"div",104),i(2,"div",105)(3,"div",106)(4,"span",71),l(5),r(),i(6,"span",108),l(7),r(),c(8,"span",19),i(9,"span",110),l(10),r()(),c(11,"div",111),r()()),n&2){let e=t.$implicit,a=m(3);o(),_("background",a.L[e.level].color),o(3),_("background",a.L[e.level].soft)("color",a.L[e.level].color),o(),p(a.L[e.level].label),o(),d("title",e.path),o(),p(e.path),o(3),p(a.fmtK(e.tokens)),o(),d("innerHTML",a.renderBody(e.body),I)}}function ze(n,t){if(n&1&&(i(0,"div",112)(1,"span"),l(2,"Notes \xB7 memory tool"),r(),i(3,"span",113),l(4,"retrieved facts, not precedence-ranked"),r()(),i(5,"div",102),C(6,Se,12,11,"div",103,F),r()),n&2){let e=m(2);o(6),h(e.effectiveNotes())}}function Te(n,t){if(n&1&&(i(0,"div",32)(1,"div",96),c(2,"app-icon",97),i(3,"span",98),l(4,"Effective memory"),r(),i(5,"span",30),l(6,"\xB7 everything the agent loads"),r()(),i(7,"div",99),l(8," Instructions merge in precedence order \u2014 managed policy is authoritative, and lower blocks fill in where higher ones are silent. Saved notes are appended as retrieved context. "),r(),x(9,ke,5,0)(10,Ee,5,0,"div",100),x(11,ze,8,0),r()),n&2){let e=m();o(2),d("size",15),o(7),v(e.effectiveInstructions().length>0?9:10),o(2),v(e.effectiveNotes().length>0?11:-1)}}var Q={enterprise:{key:"enterprise",label:"Managed",color:"#E5A50A",soft:"rgba(229,165,10,0.14)",desc:"Organization policy \xB7 cannot be overridden"},user:{key:"user",label:"User",color:"#29D2BE",soft:"rgba(41,210,190,0.14)",desc:"Personal \xB7 applies to every project"},project:{key:"project",label:"Project",color:"#5B93F2",soft:"rgba(91,147,242,0.14)",desc:"Team-shared \xB7 checked into the repo"},subdir:{key:"subdir",label:"Directory",color:"#A586F5",soft:"rgba(165,134,245,0.14)",desc:"Scoped to a subtree \xB7 loaded when cwd is inside"},import:{key:"import",label:"Import",color:"#7B8696",soft:"rgba(123,134,150,0.12)",desc:"Pulled in via @path reference"},note:{key:"note",label:"Notes",color:"#46C26B",soft:"rgba(70,194,107,0.14)",desc:"Agent-written \xB7 memory tool"}},f={instruction:{key:"instruction",label:"Instructions",color:"#5B93F2",soft:"rgba(91,147,242,0.14)",icon:"memory",desc:"Directives & rules from CLAUDE.md"},note:{key:"note",label:"Notes",color:"#46C26B",soft:"rgba(70,194,107,0.14)",icon:"tips",desc:"Facts the agent saved via the memory tool"},import:{key:"import",label:"Imports",color:"#29D2BE",soft:"rgba(41,210,190,0.14)",icon:"external",desc:"Files pulled in via @path"}},Ie=["enterprise","project","subdir","import","user"],Fe=[{id:"m-ent",level:"enterprise",type:"instruction",name:"CLAUDE.md",scope:"managed",readOnly:!0,path:"/Library/Application Support/ClaudeCode/CLAUDE.md",tokens:210,lines:9,modified:"managed",body:"# Engineering policy (managed)\n\n- All code must pass `pnpm lint` and `pnpm typecheck` before commit.\n- Never commit secrets, API keys, or `.env` files.\n- Prefer dependency-free solutions; new deps require review.\n- Validate all external input at trust boundaries.\n- Production logs must not contain user content."},{id:"m-user",level:"user",type:"instruction",name:"CLAUDE.md",scope:"~/.claude",path:"~/.claude/CLAUDE.md",tokens:280,lines:12,modified:"3d ago",body:"# Personal preferences\n\n- Before reading a file, try `specship_explore` for structure first.\n- Use conventional commits (`feat:`, `fix:`, `chore:`).\n- Prefer `rg` over `grep`, `fd` over `find`.\n- Keep responses terse \u2014 show diffs, not whole files.\n- Editor open command: `cursor`.\n- Default model for read/edit turns: Sonnet."},{id:"m-proj",level:"project",type:"instruction",name:"CLAUDE.md",scope:"project root",path:"~/dev/specship/CLAUDE.md",tokens:760,lines:28,modified:"2h ago",imports:["m-imp-conv","m-imp-style"],body:"# SpecShip \u2014 project memory\n\n## Architecture\n- Electron + Angular renderer in `packages/web-ng`.\n- MCP server in `src/mcp`, graph engine in `src/graph`.\n- SQLite via better-sqlite3; migrations in `src/db/migrations.ts`.\n\n## Commands\n- `npm run dev` \u2014 renderer + MCP in watch mode.\n- `npm test` \u2014 vitest; `npm run eval` \u2014 evaluation runner.\n- `npm run cli` \u2014 local SpecShip binary.\n\n## Conventions\n- Spec IDs are stable: `REQ-<AREA>-<NNN>`.\n- Never edit generated files under `src/graph/_gen`.\n\n@docs/conventions.md\n@specs/STYLE.md"},{id:"m-sub",level:"subdir",type:"instruction",name:"CLAUDE.md",scope:"src/graph",path:"~/dev/specship/src/graph/CLAUDE.md",tokens:190,lines:7,modified:"1d ago",body:`# Graph engine notes
|
|
2
|
-
|
|
3
|
-
- Layout runs in a worker \u2014 keep \`applyLayout\` pure.
|
|
4
|
-
- Node positions are cached by content hash.
|
|
5
|
-
- Above 5k nodes, cull to viewport + 1-hop (REQ-GRAPH-006).
|
|
6
|
-
- Synthesized edges are dashed; never persist them.`},{id:"m-imp-conv",level:"import",type:"import",name:"conventions.md",scope:"@import",path:"docs/conventions.md",tokens:120,lines:6,modified:"5d ago",body:"# Conventions\n\n- One component per file; co-locate styles.\n- Name event handlers `onX`; booleans `isX`/`hasX`.\n- No default exports in shared modules."},{id:"m-imp-style",level:"import",type:"import",name:"STYLE.md",scope:"@import",path:"specs/STYLE.md",tokens:100,lines:5,modified:"5d ago",body:`# Spec style
|
|
7
|
-
|
|
8
|
-
- Requirements use MUST / SHOULD / MAY.
|
|
9
|
-
- Each requirement gets one acceptance block.
|
|
10
|
-
- Keep titles under 8 words.`},{id:"n-build",level:"note",type:"note",name:"build-system.md",scope:"memory tool",path:"~/.claude/memory/build-system.md",tokens:64,lines:4,modified:"today 14:31",session:"a3f9c1d2",tags:["build","tooling"],body:"# Build system\n\n- Package manager is **npm**, never pnpm in this fork.\n- `npm run dev` runs renderer + MCP in watch mode.\n- Run `npm run build` after any schema change."},{id:"n-auth",level:"note",type:"note",name:"auth-jwt.md",scope:"memory tool",path:"~/.claude/memory/auth-jwt.md",tokens:58,lines:4,modified:"today 15:38",session:"a3f9c1d2",tags:["auth","REQ-AUTH-005"],body:"# Auth model\n\n- Session tokens are signed **JWTs**.\n- `checkExpiry` tolerates 30s clock skew (REQ-AUTH-005).\n- Expired tokens return 401 with `code: token_expired`."},{id:"n-graph",level:"note",type:"note",name:"graph-perf.md",scope:"memory tool",path:"~/.claude/memory/graph-perf.md",tokens:52,lines:4,modified:"yest 16:44",session:"f04a8b13",tags:["graph","perf"],body:`# Graph performance
|
|
11
|
-
|
|
12
|
-
- Above 5k nodes, layout culls to viewport + 1-hop.
|
|
13
|
-
- \`applyLayout\` must stay pure (runs in a worker).
|
|
14
|
-
- Node positions cached by content hash.`},{id:"n-cost",level:"note",type:"note",name:"cost-prefs.md",scope:"memory tool",path:"~/.claude/memory/cost-prefs.md",tokens:44,lines:3,modified:"Jun 4 09:20",session:"b5f2c8d9",tags:["cost","model"],body:`# Cost preferences
|
|
15
|
-
|
|
16
|
-
- Route read/edit-only turns to Sonnet.
|
|
17
|
-
- Pin a stable system-prompt prefix to keep the 1h cache warm.`}],q=class n{sanitizer=z(U);api=z($);projects=z(H);view=T("sources");typeFilter=T("all");selectedId=T("m-proj");L=Q;T=f;resource=V(this.api,()=>`/api/memory${this.projects.projectQuery()}`);files=u(()=>{let t=this.resource.state().data;return t?.files?.length?t.files:Fe});source=u(()=>this.resource.state().data?.files?.length?"api":"seed");loading=u(()=>this.resource.state().loading);errorMessage=u(()=>{let t=this.resource.state().error;return t?t.message:null});noProject=u(()=>this.resource.state().noProject);totalTokens=u(()=>this.files().reduce((t,e)=>t+e.tokens,0));instructionCount=u(()=>this.files().filter(t=>t.type==="instruction").length);noteCount=u(()=>this.files().filter(t=>t.type==="note").length);importCount=u(()=>this.files().filter(t=>t.type==="import").length);autoSelect=A(()=>{let t=this.files();if(t.length&&!t.find(e=>e.id===this.selectedId())){let e=t.find(a=>a.level==="project")??t[0];e&&this.selectedId.set(e.id)}});current=u(()=>this.files().find(t=>t.id===this.selectedId()));currentLevel=u(()=>{let t=this.current();return t?Q[t.level]:null});currentBody=u(()=>{let t=this.current();return this.sanitizer.bypassSecurityTrustHtml(t?j(t.body):"")});currentImports=u(()=>{let t=this.current();if(!t?.imports)return[];let e=this.files();return t.imports.map(a=>e.find(s=>s.id===a)).filter(a=>!!a)});typeDesc=u(()=>{let t=this.typeFilter();return t==="all"?"":f[t].desc});filterEmptyNoun=u(()=>{let t=this.typeFilter();return t==="all"?"memory files":f[t].label.toLowerCase()});typeChips=u(()=>[{key:"all",label:"All",color:"var(--text-secondary)",soft:"var(--bg-active)"},{key:"instruction",label:f.instruction.label,color:f.instruction.color,soft:f.instruction.soft,count:this.instructionCount()},{key:"note",label:f.note.label,color:f.note.color,soft:f.note.soft,count:this.noteCount()},{key:"import",label:f.import.label,color:f.import.color,soft:f.import.soft,count:this.importCount()}]);railGroups=u(()=>{let t=this.typeFilter(),e=this.files(),a=g=>t==="all"||g.type===t;return[{key:"enterprise",items:e.filter(g=>g.level==="enterprise")},{key:"user",items:e.filter(g=>g.level==="user")},{key:"project",items:e.filter(g=>g.level==="project"||g.level==="subdir")},{key:"note",items:e.filter(g=>g.level==="note")}].filter(g=>g.items.length>0).filter(g=>g.items.some(b=>a(b)||(b.imports??[]).some(L=>{let O=e.find(D=>D.id===L);return O?a(O):!1})))});visibleCount=u(()=>this.railGroups().reduce((e,a)=>e+this.rowItems(a).length,0));effectiveInstructions=u(()=>{let t=this.typeFilter(),e=this.files(),a=[];for(let s of Ie)for(let g of e)g.level===s&&a.push(g);return a.filter(s=>t==="all"||s.type===t)});effectiveNotes=u(()=>{let t=this.typeFilter();return this.files().filter(e=>e.type==="note"&&(t==="all"||t==="note"))});rowItems(t){let e=this.typeFilter(),a=this.files(),s=b=>e==="all"||b.type===e,g=[];for(let b of t.items)if(s(b)&&g.push(b),b.imports)for(let L of b.imports){let O=a.find(D=>D.id===L);O&&s(O)&&g.push(O)}return g}isIndented(t){return t.level==="import"}iconFor(t){return t.level==="import"?"external":t.level==="note"?"tips":"memory"}nameFor(t){return t.level==="import"||t.level==="note"?t.name:t.scope}shortPath(t){return t.path}fmtK(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:`${t}`}renderBody(t){return this.sanitizer.bypassSecurityTrustHtml(j(t))}onSelect(t){this.selectedId.set(t)}onViewChange(t){this.view.set(t)}onTypeFilter(t){this.typeFilter.set(t)}onSelectByObj(t){this.selectedId.set(t.id)}reload(){this.resource.refetch()}clearFilter(){this.typeFilter.set("all")}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=B({type:n,selectors:[["app-memory"]],decls:60,vars:23,consts:[[1,"memory-page","col"],[1,"page-head"],[1,"row","gap-10"],["name","memory",3,"size"],[1,"col","gap-2","grow"],[1,"title"],[1,"sub"],["role","tablist","aria-label","Memory view",1,"seg"],["role","tab",1,"seg-btn",3,"click"],[1,"stat-strip","row","gap-10"],[1,"stat"],["name","memory",2,"color","var(--accent)",3,"size"],[1,"lbl"],[1,"val","mono"],["name","memory",2,"color","var(--node-spec)",3,"size"],[1,"stat","icon-tips"],["name","tips",3,"size"],[1,"stat","icon-import"],["name","external",3,"size"],[1,"grow"],["title","No /api/memory data \u2014 showing illustrative seed",1,"source-pill","seed"],["title","Live from /api/memory",1,"source-pill","ok"],["aria-label","Reload memory",1,"btn","btn-secondary","btn-sm",3,"click","disabled"],["name","refresh",3,"size"],["role","alert",1,"state-banner","error"],[1,"state-banner","no-project"],[1,"state-banner","seed"],[1,"filter-bar","row","gap-6"],["name","filter",2,"color","var(--text-muted)",3,"size"],[1,"chip",3,"active","--chip-color","--chip-bg"],[1,"secondary","xs"],[1,"split","row"],[1,"eff-scroll","scroll-y"],[1,"dot"],["name","warning",3,"size"],[1,"body"],[1,"desc"],[1,"btn","btn-secondary","btn-sm",3,"click"],["name","info",3,"size"],[1,"chip",3,"click"],[1,"dot",3,"background"],[1,"cnt","mono","tabular"],[1,"rail","col"],[1,"rail-scroll","scroll-y"],[1,"rail-empty"],[1,"detail","col"],[1,"detail-scroll","scroll-y"],[1,"detail-empty"],[1,"skeleton-row"],[1,"skeleton","skeleton-line"],[1,"col","gap-6","grow"],[1,"skeleton","skeleton-line",2,"width","60%"],[1,"skeleton","skeleton-line",2,"width","85%","height","8px"],[1,"skeleton","skeleton-line",2,"width","30px"],[1,"empty-title"],[1,"btn","btn-secondary","btn-sm"],[1,"rail-group"],[1,"rail-group-head"],[1,"eyebrow"],[1,"count","mono","tabular"],[1,"rail-group-desc"],[1,"src-row",3,"selected","indent"],[1,"src-row",3,"click"],[1,"pill-dot"],[3,"name","size"],[1,"src-text"],[1,"src-name"],["name","lock",2,"color","var(--warn)","margin-left","4px",3,"size"],[1,"src-path",3,"title"],[1,"src-tokens","mono","tabular"],[1,"row","gap-8","head-pills"],[1,"pill"],[1,"pill","warn"],[1,"path-row"],[1,"path",3,"title"],[3,"text"],[1,"kv-strip"],[1,"kv"],[1,"val","mono","tabular"],[1,"tags"],[1,"body-card","md-content",3,"innerHTML"],[1,"imports"],[1,"actions","row","gap-8"],["aria-label","Copy contents to clipboard",1,"btn","btn-secondary","btn-sm"],["name","copy",3,"size"],[1,"btn","btn-ghost","btn-sm","danger"],["name","lock",3,"size"],[1,"val","mono","session-link"],[1,"tag","mono"],[1,"col","gap-6"],[1,"import-row"],["name","external",2,"color","var(--node-route)",3,"size"],[1,"mono","grow",3,"title"],[1,"mono","tabular"],["name","reveal",3,"size"],["name","x",3,"size"],[1,"row","gap-8","eff-head"],["name","layers",2,"color","var(--accent)",3,"size"],[1,"eff-title"],[1,"eff-desc"],[1,"rail-empty",2,"margin","0"],[1,"eff-section-head"],[1,"col","gap-10"],[1,"eff-block"],[1,"bar"],[1,"body","col"],[1,"row","gap-8","head"],[1,"ord","mono","tabular"],[1,"path","mono",3,"title"],["name","lock",2,"color","var(--warn)",3,"size"],[1,"mono","tabular","muted"],[1,"md","md-content",3,"innerHTML"],[1,"row","gap-6","eff-section-head","notes-head"],[1,"muted","xs"]],template:function(e,a){if(e&1&&(i(0,"div",0)(1,"div",1)(2,"div",2),c(3,"app-icon",3),i(4,"div",4)(5,"div",5),l(6,"Memory"),r(),i(7,"div",6),l(8,"Everything the agent remembers \u2014 across levels and types"),r()(),i(9,"div",7)(10,"button",8),P("click",function(){return a.onViewChange("sources")}),l(11,"Sources"),r(),i(12,"button",8),P("click",function(){return a.onViewChange("effective")}),l(13,"Effective"),r()()()(),i(14,"div",9)(15,"div",10),c(16,"app-icon",11),i(17,"div")(18,"div",12),l(19,"Loaded"),r(),i(20,"div",13),l(21),r()()(),i(22,"div",10),c(23,"app-icon",14),i(24,"div")(25,"div",12),l(26,"Instructions"),r(),i(27,"div",13),l(28),r()()(),i(29,"div",15),c(30,"app-icon",16),i(31,"div")(32,"div",12),l(33,"Notes"),r(),i(34,"div",13),l(35),r()()(),i(36,"div",17),c(37,"app-icon",18),i(38,"div")(39,"div",12),l(40,"Imports"),r(),i(41,"div",13),l(42),r()()(),c(43,"span",19),x(44,X,3,0,"span",20)(45,W,3,0,"span",21),i(46,"button",22),P("click",function(){return a.reload()}),c(47,"app-icon",23),l(48),r()(),x(49,Z,9,2,"div",24)(50,ee,7,1,"div",25)(51,te,7,1,"div",26),i(52,"div",27),c(53,"app-icon",28),C(54,ie,4,10,"button",29,Y),c(56,"span",19),x(57,re,2,1,"span",30),r(),x(58,Pe,9,2,"div",31)(59,Te,12,3,"div",32),r()),e&2){let s;o(3),d("size",18),o(7),S("active",a.view()==="sources"),M("aria-pressed",a.view()==="sources"),o(2),S("active",a.view()==="effective"),M("aria-pressed",a.view()==="effective"),o(4),d("size",14),o(5),y("",a.fmtK(a.totalTokens())," tokens"),o(2),d("size",14),o(5),p(a.instructionCount()),o(2),d("size",14),o(5),p(a.noteCount()),o(2),d("size",14),o(5),p(a.importCount()),o(2),v(a.source()==="seed"?44:45),o(2),d("disabled",a.loading()),o(),d("size",13),o(),y(" ",a.loading()?"Loading\u2026":"Reload"," "),o(),v((s=a.errorMessage())?49:a.noProject()?50:a.source()==="seed"&&!a.loading()?51:-1,s),o(4),d("size",13),o(),h(a.typeChips()),o(3),v(a.typeFilter()!=="all"?57:-1),o(),v(a.view()==="sources"?58:59)}},dependencies:[K,G],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.memory-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow:hidden}.xs[_ngcontent-%COMP%]{font-size:11px}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.secondary[_ngcontent-%COMP%]{color:var(--text-secondary)}.grow[_ngcontent-%COMP%]{flex:1}.eyebrow[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.page-head[_ngcontent-%COMP%]{flex-shrink:0;padding:16px 18px 4px}.page-head[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:16px;font-weight:650;letter-spacing:-.01em}.page-head[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12px}.seg[_ngcontent-%COMP%]{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-panel)}.seg-btn[_ngcontent-%COMP%]{background:transparent;border:0;padding:4px 11px;height:24px;border-radius:5px;color:var(--text-muted);font-family:var(--font-ui);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.seg-btn[_ngcontent-%COMP%]:hover{color:var(--text-secondary)}.seg-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.seg-btn.active[_ngcontent-%COMP%]{background:var(--bg-active);color:var(--text-primary)}.stat-strip[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;flex-shrink:0;padding:12px 18px}.stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:9px;color:var(--accent)}.stat[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.04em}.stat[_ngcontent-%COMP%] .val[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--text-primary);margin-top:1px;white-space:nowrap}.stat.icon-tips[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--node-test)}.stat.icon-import[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--node-route)}.source-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.source-pill[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.source-pill.ok[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.source-pill.ok[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--success)}.source-pill.seed[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.source-pill.seed[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--warn)}.filter-bar[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;flex-shrink:0;padding:0 18px 14px}.chip[_ngcontent-%COMP%]{height:26px;padding:0 11px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-muted);font-family:var(--font-ui);font-size:11.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,color .12s,border-color .12s}.chip[_ngcontent-%COMP%]:hover{border-color:var(--border-strong);color:var(--text-secondary)}.chip[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip.active[_ngcontent-%COMP%]{border-color:transparent;background:var(--chip-bg);color:var(--chip-color)}.chip[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.chip[_ngcontent-%COMP%] .cnt[_ngcontent-%COMP%]{opacity:.7;font-size:11px}.state-banner[_ngcontent-%COMP%]{flex-shrink:0;margin:0 18px 14px;padding:10px 14px;border-radius:8px;border:1px solid;font-size:12.5px;line-height:1.5;display:flex;align-items:flex-start;gap:10px}.state-banner[_ngcontent-%COMP%] .body[_ngcontent-%COMP%]{flex:1;min-width:0}.state-banner[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-weight:600;font-size:12.5px}.state-banner[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12px;margin-top:1px}.state-banner[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.state-banner.seed[_ngcontent-%COMP%]{background:var(--warn-soft);border-color:#e5a50a59;color:var(--warn)}.state-banner.error[_ngcontent-%COMP%]{background:var(--error-soft);border-color:#ff5a5a59;color:var(--error)}.state-banner.no-project[_ngcontent-%COMP%]{background:var(--bg-panel);border-color:var(--border-subtle);color:var(--text-secondary)}.state-banner.no-project[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:var(--text-primary)}.split[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:stretch;flex:1;min-height:0;min-width:0;border-top:1px solid var(--border-subtle)}.rail[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:320px;flex-shrink:0;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--border-subtle);background:var(--bg-panel)}.rail-scroll[_ngcontent-%COMP%]{flex:1;min-height:0;padding:10px 8px 16px;overflow-y:auto;overflow-x:hidden}.rail-group[_ngcontent-%COMP%]{margin-bottom:14px}.rail-group-head[_ngcontent-%COMP%]{padding:8px 10px 4px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rail-group-head[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-faint)}.rail-group-desc[_ngcontent-%COMP%]{padding:0 10px 6px;color:var(--text-faint);font-size:10.5px;line-height:1.45}.src-row[_ngcontent-%COMP%]{appearance:none;background:transparent;border:0;width:100%;text-align:left;cursor:pointer;color:inherit;display:grid;grid-template-columns:8px 14px 1fr auto;align-items:center;column-gap:10px;padding:8px 10px;border-radius:7px;min-width:0;transition:background .12s}.src-row.indent[_ngcontent-%COMP%]{padding-left:26px}.src-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.src-row[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.src-row.selected[_ngcontent-%COMP%]{background:var(--accent-soft)}.src-row.selected[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--accent)}.src-row.selected[_ngcontent-%COMP%] .src-name[_ngcontent-%COMP%]{color:var(--accent)}.src-row[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--text-muted);flex-shrink:0}.src-row[_ngcontent-%COMP%] .src-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;min-width:0}.src-name[_ngcontent-%COMP%]{font-size:12px;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.src-path[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left;unicode-bidi:plaintext}.src-tokens[_ngcontent-%COMP%]{font-size:10.5px;flex-shrink:0;color:var(--text-muted)}.pill-dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.rail-empty[_ngcontent-%COMP%]{margin:12px 10px;padding:16px 14px;border:1px dashed var(--border-subtle);border-radius:8px;text-align:center;color:var(--text-secondary);font-size:12px}.rail-empty[_ngcontent-%COMP%] .empty-title[_ngcontent-%COMP%]{color:var(--text-primary);font-weight:600;font-size:12.5px;margin-bottom:4px}.rail-empty[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-top:8px}.detail[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.detail-scroll[_ngcontent-%COMP%]{flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.detail-empty[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);gap:6px;font-size:13px}.detail-empty[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{color:var(--text-faint)}.head-pills[_ngcontent-%COMP%]{margin-bottom:8px;flex-wrap:wrap;align-items:center;row-gap:6px}.pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;line-height:1.4;white-space:nowrap}.pill.warn[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.pill.ok[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.path-row[_ngcontent-%COMP%]{margin-bottom:14px;display:flex;align-items:center;gap:8px;min-width:0}.path[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;direction:rtl;text-align:left;unicode-bidi:plaintext}.kv-strip[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px 24px;padding:12px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:18px}.kv[_ngcontent-%COMP%] .lbl[_ngcontent-%COMP%]{color:var(--text-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.kv[_ngcontent-%COMP%] .val[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--text-primary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-link[_ngcontent-%COMP%]{background:none;border:0;padding:0;cursor:pointer;color:var(--accent);font-family:var(--font-mono);font-size:13px;font-weight:600}.session-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.session-link[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.tags[_ngcontent-%COMP%]{margin-bottom:14px;flex-wrap:wrap;gap:6px;display:flex}.tag[_ngcontent-%COMP%]{font-size:10.5px;color:var(--node-test);background:var(--node-test-soft);padding:2px 8px;border-radius:5px;white-space:nowrap;font-family:var(--font-mono)}.body-card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:10px;padding:18px 22px;margin-bottom:18px}.imports[_ngcontent-%COMP%]{margin-bottom:18px}.imports[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{margin-bottom:8px}.import-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:7px;border:1px solid var(--border-subtle);font-size:11.5px;min-width:0}.import-row[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-row[_ngcontent-%COMP%] .mono.tabular[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted)}.actions[_ngcontent-%COMP%]{margin-top:18px;flex-wrap:wrap}.btn-ghost.danger[_ngcontent-%COMP%]{color:var(--error)}.btn-ghost.danger[_ngcontent-%COMP%]:hover{background:var(--error-soft)}.eff-scroll[_ngcontent-%COMP%]{flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.eff-head[_ngcontent-%COMP%]{margin-bottom:6px;align-items:center}.eff-title[_ngcontent-%COMP%]{font-weight:600;font-size:14px}.eff-desc[_ngcontent-%COMP%]{font-size:12.5px;line-height:1.55;margin-bottom:18px;color:var(--text-secondary)}.eff-section-head[_ngcontent-%COMP%]{margin-bottom:10px;color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.notes-head[_ngcontent-%COMP%]{margin-top:22px;align-items:baseline}.eff-block[_ngcontent-%COMP%]{display:flex;overflow:hidden;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-panel)}.eff-block[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{width:4px;flex-shrink:0}.eff-block[_ngcontent-%COMP%] .body[_ngcontent-%COMP%]{flex:1;min-width:0;padding:14px 16px}.eff-block[_ngcontent-%COMP%] .head[_ngcontent-%COMP%]{margin-bottom:10px;align-items:center;row-gap:6px}.eff-block[_ngcontent-%COMP%] .ord[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);width:18px;text-align:center;background:var(--bg-canvas);border-radius:4px;padding:1px 0}.eff-block[_ngcontent-%COMP%] .head[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eff-block[_ngcontent-%COMP%] .md[_ngcontent-%COMP%]{padding-left:24px}.md-content[_ngcontent-%COMP%] .md-h1[_ngcontent-%COMP%]{font-size:15px;font-weight:650;color:var(--text-primary);letter-spacing:-.01em;margin:0 0 10px}.md-content[_ngcontent-%COMP%] .md-h2[_ngcontent-%COMP%]{font-size:13px;font-weight:650;color:var(--text-primary);letter-spacing:-.005em;margin:18px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.md-content[_ngcontent-%COMP%] .md-h3[_ngcontent-%COMP%]{font-size:12px;font-weight:650;color:var(--text-primary);margin:14px 0 6px}.md-content[_ngcontent-%COMP%] .md-h4[_ngcontent-%COMP%]{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:12px 0 4px}.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%]{font-size:12.5px;line-height:1.6;color:var(--text-secondary);margin:0 0 4px;overflow-wrap:anywhere}.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary)}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%]{padding:0;margin:4px 0 6px}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{position:relative;padding:2px 0 2px 22px;font-size:12.5px;line-height:1.6;color:var(--text-secondary);overflow-wrap:anywhere}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary)}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%]{list-style:none}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:"\\2022";position:absolute;left:6px;top:2px;color:var(--text-faint)}.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%]{list-style:none;counter-reset:md-ol}.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{counter-increment:md-ol}.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:counter(md-ol) ".";position:absolute;left:0;top:2px;color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px;min-width:18px;text-align:right}.md-content[_ngcontent-%COMP%] .md-spacer[_ngcontent-%COMP%]{height:6px}.md-content[_ngcontent-%COMP%] .md-import[_ngcontent-%COMP%]{display:inline-block;font-size:11.5px;color:var(--node-route);background:var(--node-route-soft);padding:2px 8px;border-radius:5px;margin:4px 0}.md-content[_ngcontent-%COMP%] .md-inline-code[_ngcontent-%COMP%]{font-size:11.5px;background:var(--bg-canvas);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle);color:var(--node-spec)}.md-content[_ngcontent-%COMP%] .md-blockquote[_ngcontent-%COMP%]{margin:6px 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-secondary);font-size:12.5px;line-height:1.55;border-radius:0 6px 6px 0}.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%]{position:relative;margin:8px 0 10px;padding:12px 14px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:8px;overflow-x:auto;max-width:100%}.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{display:block;font-size:11.5px;line-height:1.55;color:var(--text-primary);white-space:pre}.md-content[_ngcontent-%COMP%] .md-pre-lang[_ngcontent-%COMP%]{position:absolute;top:6px;right:10px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:lowercase;background:var(--bg-panel);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.md-content[_ngcontent-%COMP%] .md-table-scroll[_ngcontent-%COMP%]{max-width:100%;overflow-x:auto;margin:10px 0;border:1px solid var(--border-subtle);border-radius:8px}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:11.5px}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:var(--bg-panel);font-weight:650;color:var(--text-primary);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-strong);white-space:nowrap}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:var(--text-secondary)}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%]{border-bottom:0}.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.md-content[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child{margin-top:0}.skeleton[_ngcontent-%COMP%]{background:var(--bg-panel);border-radius:6px;animation:_ngcontent-%COMP%_pulse 1.4s ease-in-out infinite}.skeleton-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:14px 1fr auto;gap:10px;padding:10px}.skeleton-line[_ngcontent-%COMP%]{height:10px;border-radius:4px}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.55}50%{opacity:.85}}'],changeDetection:0})};export{q as Memory};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as gt}from"./chunk-V74ZPP4B.js";import{a as Z}from"./chunk-NKPK3BR3.js";import{a as ut}from"./chunk-G7VZT5KB.js";import{a as xt}from"./chunk-JLOJCDIY.js";import{a as mt}from"./chunk-P62EJGSF.js";import{a as _t}from"./chunk-PZSU53SS.js";import{a as rt,c as lt,d as st}from"./chunk-DOKZOFKM.js";import{b as dt,c as Y}from"./chunk-DTWIJ3GJ.js";import"./chunk-JGDK6YKG.js";import{a as pt}from"./chunk-TWVVIWKO.js";import{Aa as d,Ga as N,I as F,Ia as M,Ka as p,M as k,N as S,R as K,Ta as C,Ua as q,Va as l,W as V,Wa as u,X as j,Xa as g,Ya as H,Za as nt,aa as L,bb as it,ea as o,gb as z,ib as $,ka as X,lb as h,qa as U,ra as m,sa as _,ta as tt,ua as et,va as O,vb as ot,wa as D,xa as c,ya as r,yb as at,za as a,zb as ct}from"./chunk-SYGIPC2P.js";import"./chunk-Q7L6LLAK.js";function Pt(n){return n>=85?{label:"Excellent",color:"var(--success)"}:n>=70?{label:"Good",color:"var(--node-route)"}:n>=50?{label:"Fair",color:"var(--warn)"}:{label:"Needs work",color:"var(--error)"}}function wt(n){let e=(n.input_tokens||0)+(n.cache_creation_tokens||0)+(n.cache_read_tokens||0);return e>0?(n.cache_read_tokens||0)/e:0}function Mt(n,e){let t=n.toLowerCase();return/grep|call site|every/.test(t)?`Use \`specship_search '${e||"<symbol>"}' --kind call-site\` instead of grep \u2014 it returns just the qualified call sites.`:/read|explain|map|where|how |why |walk|boundaries|module/.test(t)?`Use \`specship_explore --symbol ${e||"<symbol>"} --depth 2\` and summarize callers, callees and linked specs \u2014 avoid re-reading the file.`:/implement/.test(t)&&!/REQ-[A-Z]+-\d+/.test(n)?`Reference the requirement id: \`Implement REQ-\u2026: ${n.slice(0,48)}\u2026\` then plan before editing.`:e?null:`${n} \u2014 name the exact symbol, file or REQ id so it can be resolved structurally.`}function Tt(n){return n.is_specship===1||/specship_/.test(n.tool_name)||/^mcp__/.test(n.tool_name)}function Et(n){return(n.tool_name==="Bash"||n.tool_name==="Grep"||n.tool_name==="Read")&&(n.result_length||0)>3e4}function J(n,e){let t=n.text||"",i=(t.match(/[a-z][a-zA-Z]+[A-Z][a-zA-Z]+/)||[])[0],s=(t.match(/[\w/]+\.(ts|tsx|js|md)/)||[])[0],f=(t.match(/REQ-[A-Z]+-\d+/)||[])[0]||i||s,T=!!f,b=/^(read |grep |look |check |explain |tell me|why |what )/i.test(t.trim()),E=t.length>=45&&!b||t.length>=72,B=e.some(Et),A=e.some(Tt),R=wt(n)>=.5,P=62,I=[];I.push({label:"Names a concrete target",ok:T}),P+=T?12:-10,I.push({label:"Scoped & specific",ok:E}),P+=E?10:-9,I.push({label:"Cache-friendly",ok:R}),P+=R?8:-10,I.push({label:"Structural over brute-force",ok:A||!B}),P+=A||!B?9:-13,P=Math.max(14,Math.min(98,Math.round(P)));let w=[];T||w.push({sev:"warn",text:"Name the exact symbol, file or REQ id so the agent doesn\u2019t have to search for it first."}),E||w.push({sev:"warn",text:"Lead with the concrete change you want rather than an open-ended question."}),B&&!A&&w.push({sev:"error",text:"This turn leaned on Read/grep and pulled a lot of tokens. Ask for a structural query instead.",fix:`specship_explore --symbol ${i||"<name>"} --depth 2`}),R||w.push({sev:"warn",text:"Cache hit was low \u2014 keep a stable prompt prefix and avoid reordering context to reuse the 1h cache."}),w.length===0&&w.push({sev:"info",text:"Well-formed prompt \u2014 specific, scoped and cache-friendly. Nothing to change."});let Q=P<72?Mt(t,f):null,G=Pt(P);return{score:P,label:G.label,color:G.color,factors:I,suggestions:w,rewrite:Q}}function vt(n){return`Prompt quality: ${n.label} (${n.score}/100)
|
|
2
|
-
`+n.suggestions.map(e=>`- ${e.text}${e.fix?` [${e.fix}]`:""}`).join(`
|
|
3
|
-
`)+(n.rewrite?`
|
|
4
|
-
Suggested rewrite: ${n.rewrite}`:"")}var Ot=()=>["/sessions"],Dt=(n,e)=>e.label,ht=(n,e)=>e.id,bt=(n,e)=>e.prompt.id,ft=(n,e)=>e.name;function It(n,e){if(n&1&&(r(0,"app-pill",7),l(1),a()),n&2){let t=p();c("color","var(--node-spec)")("bg","var(--node-spec-soft)"),o(),u(t.session().last_model)}}function zt(n,e){if(n&1&&l(0),n&2){let t=p(),i=p();nt(" \xB7 ",i.fmtClock(t.started_at)," \u2013 ",i.fmtClock(t.ended_at)," (",i.fmtDurationSec(t.started_at,t.ended_at),") ")}}function $t(n,e){if(n&1&&(r(0,"div",10),l(1),m(2,zt,1,3),a()),n&2){let t=e;o(),g("",t.project_path," "),o(),_(t.started_at&&t.ended_at?2:-1)}}function Rt(n,e){n&1&&(r(0,"div",14),l(1,"Loading session\u2026"),a())}function Ft(n,e){if(n&1){let t=N();r(0,"div",15)(1,"div",17),l(2,"Couldn't load session"),a(),r(3,"div",18),l(4),a(),r(5,"button",19),M("click",function(){k(t);let s=p();return S(s.forceRefresh())}),l(6,"Retry"),a()()}if(n&2){let t,i=p();o(4),u((t=i.resource.state().error)==null?null:t.message)}}function qt(n,e){if(n&1&&(r(0,"app-pill",25),d(1,"app-icon",56),l(2),a()),n&2){let t=p();o(),c("size",10),o(),u(t.slashCommand)}}function Bt(n,e){n&1&&(r(0,"app-pill",26),d(1,"app-icon",57),l(2,"subagent"),a()),n&2&&(o(),c("size",10))}function Nt(n,e){if(n&1&&(r(0,"span",31),l(1),a()),n&2){let t=p();o(),u(t.prompt.model)}}function At(n,e){if(n&1&&(r(0,"span",31),l(1),a()),n&2){let t=p(),i=p(2);o(),u(i.fmtDurationMs(t.prompt.durationMs))}}function Vt(n,e){if(n&1&&(r(0,"div",68),d(1,"app-icon",72),r(2,"span",73),l(3),a()()),n&2){let t=e.$implicit;o(),C("color",t.ok?"var(--success)":"var(--warn)"),c("name",t.ok?"check":"minus")("size",13),o(),q("bad",!t.ok),o(),u(t.label)}}function Lt(n,e){if(n&1&&(r(0,"div",76)(1,"code",77),l(2),a(),d(3,"app-copy-btn",50),a()),n&2){let t=p().$implicit;o(2),u(t.fix),o(),c("text",t.fix)}}function Ht(n,e){if(n&1&&(r(0,"div",71),d(1,"span",74),r(2,"div",27)(3,"div",75),l(4),a(),m(5,Lt,4,2,"div",76),a()()),n&2){let t=e.$implicit;o(),C("background",t.sev==="error"?"var(--error)":t.sev==="warn"?"var(--warn)":"var(--success)"),o(3),u(t.text),o(),_(t.fix?5:-1)}}function Qt(n,e){if(n&1&&(r(0,"div",69),l(1,"Suggested rewrite"),a(),r(2,"div",78)(3,"span",79),l(4),a(),d(5,"app-copy-btn",50),a()),n&2){let t=p();o(4),u(t.rewrite),o(),c("text",t.rewrite)}}function Gt(n,e){if(n&1&&(r(0,"div",58)(1,"div",59),d(2,"app-icon",60),r(3,"span",61),l(4,"Prompt quality"),a(),d(5,"span",27),r(6,"span",62),l(7),r(8,"span",63),l(9),a()(),d(10,"app-copy-btn",64),a(),r(11,"div",65),d(12,"app-bar",66),a(),r(13,"div",67),O(14,Vt,4,7,"div",68,Dt),a(),r(16,"div",69),l(17,"How to improve"),a(),r(18,"div",70),O(19,Ht,6,4,"div",71,tt),a(),m(21,Qt,6,2),a()),n&2){let t=e,i=p(3);C("border-color","color-mix(in srgb, "+t.color+" 32%, transparent)")("background","color-mix(in srgb, "+t.color+" 6%, var(--bg-canvas))"),o(2),C("color",t.color),c("size",14),o(4),C("color",t.color)("background","color-mix(in srgb, "+t.color+" 15%, transparent)"),o(),g("",t.label," \xB7 "),o(2),g("",t.score,"/100"),o(),c("text",i.qualityShareText()),o(2),c("frac",t.score/100)("color",t.color)("height",6),o(2),D(t.factors),o(5),D(t.suggestions),o(2),_(t.rewrite?21:-1)}}function Wt(n,e){if(n&1&&d(0,"app-copy-btn",50),n&2){let t=p();c("text",t.prompt.text)}}function jt(n,e){if(n&1&&d(0,"div",52),n&2){let t=p(),i=p(2);c("innerHTML",i.renderAssistant(t.prompt.assistant_text),L)}}function Ut(n,e){n&1&&(r(0,"div",53),l(1,"No assistant text captured for this turn."),a())}function Yt(n,e){if(n&1&&(r(0,"details",54)(1,"summary",80),l(2,"Extended thinking"),a(),d(3,"div",81),a()),n&2){let t=p(),i=p(2);o(3),c("innerHTML",i.renderAssistant(t.prompt.thinking_text),L)}}function Zt(n,e){if(n&1&&(r(0,"span",85),l(1),a()),n&2){let t=p().$implicit;o(),u(t.input_summary)}}function Jt(n,e){if(n&1&&(r(0,"span",86),l(1),a()),n&2){let t=p().$implicit,i=p(4);o(),u(i.fmtBytes(t.result_length))}}function Kt(n,e){if(n&1&&(r(0,"div",83)(1,"span",84),l(2),a(),m(3,Zt,2,1,"span",85),d(4,"span",27),m(5,Jt,2,1,"span",86),a()),n&2){let t=e.$implicit,i=p(4);o(),C("color",i.toolColor(t.tool_name)),o(),u(t.tool_name),o(),_(t.input_summary?3:-1),o(2),_(t.result_length?5:-1)}}function Xt(n,e){if(n&1&&(r(0,"div",34),l(1),a(),r(2,"div",82),O(3,Kt,6,5,"div",83,ht),a()),n&2){let t=p(),i=p(2);o(),H("Tools \xB7 ",t.tools.length," \xB7 returned ",i.fmtBytes(t.toolBytes)),o(2),D(t.tools)}}function te(n,e){if(n&1){let t=N();r(0,"div",20)(1,"div",22)(2,"button",23),M("click",function(){k(t);let s=p(2);return S(s.closePrompt())}),d(3,"app-icon",3),l(4," Timeline "),a(),r(5,"span",24),l(6),a(),m(7,qt,3,2,"app-pill",25),m(8,Bt,3,1,"app-pill",26),d(9,"span",27),r(10,"button",28),M("click",function(){k(t);let s=p(2);return S(s.stepPrompt(-1))}),d(11,"app-icon",3),l(12," Prev"),a(),r(13,"button",28),M("click",function(){k(t);let s=p(2);return S(s.stepPrompt(1))}),l(14,"Next "),d(15,"app-icon",29),a()(),r(16,"div",30)(17,"span",31),l(18),a(),r(19,"span",31),l(20),a(),m(21,Nt,2,1,"span",31),r(22,"span",31),d(23,"app-icon",32),l(24),a(),m(25,At,2,1,"span",31),a(),m(26,Gt,22,18,"div",33),r(27,"div",34),l(28,"Token breakdown"),a(),r(29,"div",35),d(30,"div",36)(31,"div",37)(32,"div",38)(33,"div",39),a(),r(34,"div",40)(35,"span",41),d(36,"span",42),l(37),a(),r(38,"span",41),d(39,"span",43),l(40),a(),r(41,"span",41),d(42,"span",44),l(43),a(),r(44,"span",41),d(45,"span",45),l(46),a()(),r(47,"div",46)(48,"div",47)(49,"div",48)(50,"span",49),l(51,"Input"),a(),d(52,"span",27),m(53,Wt,1,1,"app-copy-btn",50),a(),r(54,"pre",51),l(55),a()(),r(56,"div",47)(57,"div",48)(58,"span",49),l(59,"Output"),a()(),m(60,jt,1,1,"div",52)(61,Ut,2,0,"div",53),a()(),m(62,Yt,4,1,"details",54),m(63,Xt,5,2),d(64,"div",55),a()}if(n&2){let t,i=e,s=p(2);o(3),c("size",14),o(3),u(s.fmtClock(i.prompt.ts)),o(),_(i.slashCommand?7:-1),o(),_(i.prompt.is_sidechain===1?8:-1),o(2),c("disabled",!s.hasPrevPrompt()),o(),c("size",13),o(2),c("disabled",!s.hasNextPrompt()),o(2),c("size",13),o(3),g("",s.fmtTokens(i.totalTokens)," tok"),o(),C("color",i.prompt.cost_usd>2.5?"var(--error)":"var(--text-primary)"),o(),g("$",i.prompt.cost_usd.toFixed(2)),o(),_(i.prompt.model?21:-1),o(2),c("size",10),o(),g(" ",i.tools.length," tools"),o(),_(i.prompt.durationMs?25:-1),o(),_((t=s.quality())?26:-1,t),o(4),C("width",s.promptTokPct(i.prompt,"input"),"%"),c("title","Input: "+s.fmtTokens(i.prompt.input_tokens)),o(),C("width",s.promptTokPct(i.prompt,"output"),"%"),c("title","Output: "+s.fmtTokens(i.prompt.output_tokens)),o(),C("width",s.promptTokPct(i.prompt,"cacheWrite"),"%"),c("title","Cache write: "+s.fmtTokens(i.prompt.cache_creation_tokens)),o(),C("width",s.promptTokPct(i.prompt,"cacheRead"),"%"),c("title","Cache read: "+s.fmtTokens(i.prompt.cache_read_tokens)),o(4),g("Input ",s.fmtTokens(i.prompt.input_tokens)),o(3),g("Output ",s.fmtTokens(i.prompt.output_tokens)),o(3),g("Cache write ",s.fmtTokens(i.prompt.cache_creation_tokens)),o(3),g("Cache read ",s.fmtTokens(i.prompt.cache_read_tokens)),o(7),_(i.prompt.text?53:-1),o(2),u(i.prompt.text||"(assistant-only turn)"),o(5),_(i.prompt.assistant_text?60:61),o(2),_(i.prompt.thinking_text?62:-1),o(),_(i.tools.length?63:-1)}}function ee(n,e){n&1&&(r(0,"app-pill",118),d(1,"app-icon",57),l(2,"subagent "),a()),n&2&&(c("color","var(--node-route)")("bg","var(--node-route-soft)"),o(),c("size",10))}function ne(n,e){if(n&1&&d(0,"app-icon",119),n&2){let t=p().$implicit;c("size",12)("title",t.slashCommand)}}function ie(n,e){if(n&1&&l(0),n&2){let t=p().$implicit;g(" ",t.prompt.text.length>140?t.prompt.text.slice(0,140)+"\u2026":t.prompt.text," ")}}function oe(n,e){n&1&&(r(0,"span",121),l(1,"(assistant-only turn)"),a())}function ae(n,e){if(n&1&&(r(0,"span",122),l(1),a()),n&2){let t=p().$implicit;c("title","SpecShip \xB7 spent ~"+t.specshipSpendTokens+" tok \xB7 est. saved ~"+t.specshipSavedTokens+" tok"),o(),g("SS ~",t.specshipSpendTokens," tok")}}function re(n,e){if(n&1&&(r(0,"span",126),l(1),a()),n&2){let t=p().$implicit,i=p(3);o(),u(i.fmtDurationMs(t.prompt.durationMs))}}function le(n,e){if(n&1&&(r(0,"section",134)(1,"div",135),l(2,"User prompt"),a(),r(3,"pre",141),l(4),a()()),n&2){let t=p(2).$implicit;o(4),u(t.prompt.text)}}function se(n,e){if(n&1&&(r(0,"section",134)(1,"div",135),l(2,"Assistant response"),a(),d(3,"div",142),a()),n&2){let t=p(2).$implicit,i=p(3);o(3),c("innerHTML",i.renderAssistant(t.prompt.assistant_text),L)}}function pe(n,e){if(n&1&&(r(0,"section",134)(1,"details",143)(2,"summary",144),l(3," Extended thinking "),r(4,"span",145),l(5,"(click to expand)"),a()(),d(6,"div",146),a()()),n&2){let t=p(2).$implicit,i=p(3);o(6),c("innerHTML",i.renderAssistant(t.prompt.thinking_text),L)}}function de(n,e){if(n&1&&(r(0,"div",137)(1,"div",138),l(2,"Duration"),a(),r(3,"div",139),l(4),a()()),n&2){let t=p(2).$implicit,i=p(3);o(4),u(i.fmtDurationMs(t.prompt.durationMs))}}function ce(n,e){if(n&1&&(r(0,"div",137)(1,"div",138),l(2,"Model"),a(),r(3,"div",139),l(4),a()()),n&2){let t=p(2).$implicit;o(4),u(t.prompt.model)}}function me(n,e){if(n&1&&(r(0,"div",148)(1,"span",149),l(2),a()()),n&2){let t=e.$implicit;c("title",t),o(2),u(t)}}function _e(n,e){if(n&1&&(r(0,"section",134)(1,"div",135),l(2),a(),r(3,"div",147),O(4,me,3,2,"div",148,et),a()()),n&2){let t=p(2).$implicit;o(2),g("Files touched \xB7 ",t.filesTouched.length),o(2),D(t.filesTouched)}}function ue(n,e){n&1&&l(0," \u203A ")}function xe(n,e){if(n&1&&(r(0,"span",155),l(1),a()),n&2){let t=p().$implicit;o(),u(t.input_summary)}}function ge(n,e){if(n&1&&(r(0,"span",156),l(1),a()),n&2){let t=p().$implicit,i=p(6);o(),u(i.fmtBytes(t.result_length))}}function ve(n,e){if(n&1&&(r(0,"pre",157),l(1),a()),n&2){let t=p().$implicit,i=p(6);o(),u(i.formatToolInput(t.input_json))}}function fe(n,e){if(n&1){let t=N();r(0,"div",151)(1,"button",152),M("click",function(){let s=k(t).$implicit,x=p(6);return S(x.toggleToolInput(s.id))}),r(2,"span",153),m(3,ue,1,0),a(),r(4,"span",154),l(5),a(),m(6,xe,2,1,"span",155),d(7,"span",27),m(8,ge,2,1,"span",156),a(),m(9,ve,2,1,"pre",157),a()}if(n&2){let t=e.$implicit,i=p(6);o(),q("has-input",!!t.input_json)("expanded",i.isToolInputExpanded(t.id)),c("disabled",!t.input_json),U("aria-expanded",i.isToolInputExpanded(t.id)),o(),q("open",i.isToolInputExpanded(t.id)),o(),_(t.input_json?3:-1),o(),C("color",i.toolColor(t.tool_name)),o(),u(t.tool_name),o(),_(t.input_summary?6:-1),o(2),_(t.result_length?8:-1),o(),_(t.input_json&&i.isToolInputExpanded(t.id)?9:-1)}}function Ce(n,e){if(n&1&&(r(0,"section",134)(1,"div",135),l(2),a(),r(3,"div",150),O(4,fe,10,15,"div",151,ht),a()()),n&2){let t=p(2).$implicit,i=p(3);o(2),H("Tool calls \xB7 ",t.tools.length," \xB7 returned ",i.fmtBytes(t.toolBytes)),o(2),D(t.tools)}}function he(n,e){if(n&1&&(r(0,"div",133),m(1,le,5,1,"section",134),m(2,se,4,1,"section",134),m(3,pe,7,1,"section",134),r(4,"section",134)(5,"div",135),l(6,"Token breakdown"),a(),r(7,"div",136)(8,"div",137)(9,"div",138),l(10,"Input"),a(),r(11,"div",139),l(12),a()(),r(13,"div",137)(14,"div",138),l(15,"Output"),a(),r(16,"div",139),l(17),a()(),r(18,"div",137)(19,"div",138),l(20,"Cache write"),a(),r(21,"div",139),l(22),a()(),r(23,"div",137)(24,"div",138),l(25,"Cache read"),a(),r(26,"div",139),l(27),a()(),r(28,"div",137)(29,"div",138),l(30,"Cost"),a(),r(31,"div",140),l(32),a()(),m(33,de,5,1,"div",137),m(34,ce,5,1,"div",137),a()(),m(35,_e,6,1,"section",134),m(36,Ce,6,2,"section",134),a()),n&2){let t=p().$implicit,i=p(3);o(),_(t.prompt.text?1:-1),o(),_(t.prompt.assistant_text?2:-1),o(),_(t.prompt.thinking_text?3:-1),o(9),u(i.fmtTokens(t.prompt.input_tokens)),o(5),u(i.fmtTokens(t.prompt.output_tokens)),o(5),u(i.fmtTokens(t.prompt.cache_creation_tokens)),o(5),u(i.fmtTokens(t.prompt.cache_read_tokens)),o(5),g("$",t.prompt.cost_usd.toFixed(4)),o(),_(t.prompt.durationMs?33:-1),o(),_(t.prompt.model?34:-1),o(),_(t.filesTouched.length>0?35:-1),o(),_(t.tools.length>0?36:-1)}}function be(n,e){if(n&1){let t=N();r(0,"div",97)(1,"div",115),M("click",function(){let s=k(t).$implicit,x=p(3);return S(x.toggleExpand(s.prompt.id))})("keydown.enter",function(){let s=k(t).$implicit,x=p(3);return S(x.toggleExpand(s.prompt.id))})("keydown.space",function(s){let x=k(t).$implicit,f=p(3);return s.preventDefault(),S(f.toggleExpand(x.prompt.id))}),r(2,"span",116),l(3),a(),d(4,"span",117),m(5,ee,3,3,"app-pill",118),m(6,ne,1,2,"app-icon",119),r(7,"span",120),m(8,ie,1,1)(9,oe,2,0,"span",121),a(),m(10,ae,2,2,"span",122),r(11,"span",123),d(12,"app-icon",124),r(13,"span",125),l(14),a()(),m(15,re,2,1,"span",126),r(16,"span",127),l(17),a(),r(18,"span",128),l(19),z(20,"number"),a(),r(21,"span",129),l(22),a(),r(23,"button",130),M("click",function(s){let x=k(t).$implicit,f=p(3);return s.stopPropagation(),S(f.openPrompt(x.prompt.id))}),d(24,"app-icon",131),a(),d(25,"app-icon",132),a(),m(26,he,37,12,"div",133),a()}if(n&2){let t=e.$implicit,i=p(3);o(),q("expanded",i.isExpanded(t.prompt.id)),U("aria-expanded",i.isExpanded(t.prompt.id)),o(2),u(i.fmtClock(t.prompt.ts)),o(),C("background",i.promptQualityColor(t)),o(),_(t.prompt.is_sidechain===1?5:-1),o(),_(t.slashCommand?6:-1),o(2),_(t.prompt.text?8:9),o(2),_(t.specshipSpendTokens>0?10:-1),o(2),c("size",11),o(2),u(t.tools.length),o(),_(t.prompt.durationMs?15:-1),o(2),u(i.fmtTokens(t.totalTokens)),o(),C("color",i.cacheColor(t.totalTokens>0?(t.prompt.cache_read_tokens||0)/t.totalTokens:0)),o(),g(" ",t.totalTokens>0?$(20,23,(t.prompt.cache_read_tokens||0)/t.totalTokens*100,"1.0-0"):0,"% "),o(2),C("color",t.prompt.cost_usd>2.5?"var(--error)":"var(--text-primary)"),o(),g("$",t.prompt.cost_usd.toFixed(2)),o(2),c("size",12),o(),c("size",14),o(),_(i.isExpanded(t.prompt.id)?26:-1)}}function ye(n,e){n&1&&(r(0,"div",16),l(1,"No prompts logged for this session yet."),a())}function ke(n,e){if(n&1&&(r(0,"span",163),l(1),a()),n&2){let t=p().$implicit;o(),g("\xD7",t.count)}}function Se(n,e){if(n&1&&(r(0,"span",161),d(1,"app-icon",56),l(2),m(3,ke,2,1,"span",163),a()),n&2){let t=e.$implicit;o(),c("size",10),o(),g("",t.name," "),o(),_(t.count>1?3:-1)}}function Pe(n,e){if(n&1&&(r(0,"span",163),l(1),a()),n&2){let t=p().$implicit;o(),g("\xD7",t.count)}}function we(n,e){if(n&1&&(r(0,"span",162),d(1,"app-icon",60),l(2),m(3,Pe,2,1,"span",163),a()),n&2){let t=e.$implicit;o(),c("size",10),o(),g("",t.name," "),o(),_(t.count>1?3:-1)}}function Me(n,e){if(n&1&&(r(0,"div",158)(1,"div",99),l(2,"Commands & skills"),a(),r(3,"div",160),O(4,Se,4,3,"span",161,ft),O(6,we,4,3,"span",162,ft),a()()),n&2){let t=p();o(4),D(t.slashCommands),o(2),D(t.skills)}}function Te(n,e){if(n&1&&(r(0,"div",99),l(1),a(),d(2,"app-h-bars",164),r(3,"div",165),l(4,"bar = call count"),a()),n&2){let t=p(),i=p(3);o(),g("Tools used \xB7 ",t.byTool.length),o(),c("items",t.byTool)("fmt",i.fmtTokensFn)("color",i.toolBarColor)}}function Ee(n,e){if(n&1&&(r(0,"div",159)(1,"div",166)(2,"span",167),l(3,"SpecShip"),a(),r(4,"span",168),l(5,"est."),a()(),r(6,"div",169)(7,"div",68)(8,"span",170),l(9,"Spent"),a(),r(10,"span",171),l(11),a()(),r(12,"div",68)(13,"span",170),l(14,"Est. saved"),a(),r(15,"span",172),l(16),a()(),r(17,"div",173)(18,"span",170),l(19,"Net"),a(),r(20,"span",174),l(21),a()()()()),n&2){let t=p(),i=p(3);o(11),g("~",i.fmtTokens(t.specship.spendTokens)," tok"),o(5),g("~",i.fmtTokens(t.specship.savedTokens)," tok"),o(4),C("color",t.specship.netTokens>=0?"var(--success)":"var(--warn)"),o(),H("",t.specship.netTokens>0?"+":"","",i.fmtTokens(t.specship.netTokens)," tok")}}function Oe(n,e){if(n&1&&(m(0,Me,8,0,"div",158),m(1,Te,5,4),m(2,Ee,22,6,"div",159)),n&2){let t=e;_(t.slashCommands.length||t.skills.length?0:-1),o(),_(t.byTool.length?1:-1),o(),_(t.specship&&t.specship.spendTokens>0?2:-1)}}function De(n,e){if(n&1&&(r(0,"div",102)(1,"span",177),l(2),a(),r(3,"div",27),d(4,"app-bar",178),a(),r(5,"span",179),l(6),a()()),n&2){let t=e.$implicit,i=p(4);o(2),u(i.fmtClock(t.prompt.ts)),o(2),c("frac",t.prompt.cost_usd/i.maxPromptCost())("color",t.prompt.cost_usd>2.5?"var(--error)":"var(--accent)"),o(2),g("$",t.prompt.cost_usd.toFixed(2))}}function Ie(n,e){if(n&1&&(r(0,"div",175),l(1,"Cost per prompt"),a(),r(2,"div",176),O(3,De,7,4,"div",102,bt),a()),n&2){let t=p(3);o(3),D(t.groups())}}function ze(n,e){if(n&1){let t=N();r(0,"div",21)(1,"div",87)(2,"div",88)(3,"div",89)(4,"div",90),l(5,"Cost"),a(),r(6,"div",91),l(7),a()(),r(8,"div",89)(9,"div",90),l(10,"Prompts"),a(),r(11,"div",92),l(12),a()(),r(13,"div",89)(14,"div",90),l(15,"Window"),a(),r(16,"div",93),l(17),a()(),r(18,"div",89)(19,"div",90),l(20,"Cache hit"),a(),r(21,"div",92),l(22),z(23,"number"),a()(),r(24,"div",89)(25,"div",90),l(26,"Tool calls"),a(),r(27,"div",92),l(28),a()()(),r(29,"div",94)(30,"span",49),l(31),a(),r(32,"span",95),l(33,"click a prompt for full detail"),a(),d(34,"div",27),r(35,"button",23),M("click",function(){k(t);let s=p(2);return S(s.expandAll())}),l(36,"Expand all"),a(),r(37,"button",23),M("click",function(){k(t);let s=p(2);return S(s.collapseAll())}),l(38,"Collapse all"),a()(),r(39,"div",96),O(40,be,27,26,"div",97,bt,!1,ye,2,0,"div",16),a()(),r(43,"div",98)(44,"div",99),l(45,"Token mix"),a(),r(46,"div",100),d(47,"div",36)(48,"div",37)(49,"div",38)(50,"div",39),a(),r(51,"div",101)(52,"div",102),d(53,"span",103),r(54,"span",104),l(55,"Input"),a(),r(56,"span",105),l(57),a(),r(58,"span",106),l(59),z(60,"number"),a()(),r(61,"div",102),d(62,"span",107),r(63,"span",104),l(64,"Output"),a(),r(65,"span",105),l(66),a(),r(67,"span",106),l(68),z(69,"number"),a()(),r(70,"div",102),d(71,"span",108),r(72,"span",104),l(73,"Cache write"),a(),r(74,"span",105),l(75),a(),r(76,"span",106),l(77),z(78,"number"),a()(),r(79,"div",102),d(80,"span",109),r(81,"span",104),l(82,"Cache read"),a(),r(83,"span",105),l(84),a(),r(85,"span",106),l(86),z(87,"number"),a()()(),r(88,"div",110)(89,"div",102),d(90,"app-icon",111),r(91,"span",112),l(92,"Cache effectiveness"),a()(),r(93,"div",113)(94,"span",114),l(95),z(96,"number"),a(),r(97,"span",112),l(98,"of input served from cache"),a()()(),m(99,Oe,3,3),m(100,Ie,5,0),a()()}if(n&2){let t,i=p(),s=p();o(7),g("$",i.total_cost_usd.toFixed(2)),o(5),u(i.prompt_count),o(5),H(" ",s.fmtClock(i.started_at)," \u2013 ",s.fmtClock(i.ended_at).split(" ").pop()," "),o(4),C("color",s.cacheColor(s.cacheReadRate())),o(),g(" ",$(23,34,s.cacheReadRate()*100,"1.0-0"),"% "),o(6),u(s.totalToolCalls()),o(3),g("Prompt timeline \xB7 ",s.groups().length),o(9),D(s.groups()),o(7),C("width",s.tokPct("input"),"%"),c("title","Input: "+s.fmtTokens(i.total_input_tokens)),o(),C("width",s.tokPct("output"),"%"),c("title","Output: "+s.fmtTokens(i.total_output_tokens)),o(),C("width",s.tokPct("cacheWrite"),"%"),c("title","Cache write: "+s.fmtTokens(i.total_cache_creation_tokens)),o(),C("width",s.tokPct("cacheRead"),"%"),c("title","Cache read: "+s.fmtTokens(i.total_cache_read_tokens)),o(7),u(s.fmtTokens(i.total_input_tokens)),o(2),g("",$(60,37,s.tokPct("input"),"1.0-0"),"%"),o(7),u(s.fmtTokens(i.total_output_tokens)),o(2),g("",$(69,40,s.tokPct("output"),"1.0-0"),"%"),o(7),u(s.fmtTokens(i.total_cache_creation_tokens)),o(2),g("",$(78,43,s.tokPct("cacheWrite"),"1.0-0"),"%"),o(7),u(s.fmtTokens(i.total_cache_read_tokens)),o(2),g("",$(87,46,s.tokPct("cacheRead"),"1.0-0"),"%"),o(4),c("size",13),o(5),g("",$(96,49,s.cacheReadRate()*100,"1.0-0"),"%"),o(4),_((t=s.summaryData())?99:-1,t),o(),_(s.groups().length>0?100:-1)}}function $e(n,e){if(n&1&&m(0,te,65,38,"div",20)(1,ze,101,52,"div",21),n&2){let t,i=p();_((t=i.selectedGroup())?0:1,t)}}function Re(n,e){n&1&&(r(0,"div",16),l(1,"Session not found."),a())}var Fe=5e3,qe=/<command-name>([^<]+)<\/command-name>/,Be=new Set(["Read","Edit","Write","NotebookEdit","MultiEdit"]);function Ne(n){if(!n)return[];try{let e=JSON.parse(n);return Array.isArray(e)?e.filter(t=>Array.isArray(t)&&t.length>=2&&typeof t[0]=="string"&&typeof t[1]=="number"):[]}catch{return[]}}var Ct=class n{api=F(pt);route=F(rt);router=F(lt);sanitizer=F(at);destroyRef=F(K);refresh=F(dt);liveMode=V("idle");idSig=Z(this.route.paramMap,{initialValue:this.route.snapshot.paramMap});id=h(()=>this.idSig().get("id")??"");localRefreshing=V(!1);expandedIds=V(new Set);expandedToolInputs=V(new Set);resource=Y(this.api,()=>{let e=this.id();return e?`/api/claude/session/${encodeURIComponent(e)}`:null});summary=Y(this.api,()=>{let e=this.id();return e?`/api/claude/session/${encodeURIComponent(e)}/summary`:null});session=h(()=>this.resource.state().data?.session??null);prompts=h(()=>this.resource.state().data?.prompts??[]);toolCalls=h(()=>this.resource.state().data?.toolCalls??[]);summaryData=h(()=>this.summary.state().data??null);groups=h(()=>{let e=this.prompts(),t=this.toolCalls(),i=new Map;for(let s of t){let x=i.get(s.prompt_id)??[];x.push(s),i.set(s.prompt_id,x)}return e.map(s=>{let x=i.get(s.id)??[],f=(s.input_tokens||0)+(s.output_tokens||0)+(s.cache_creation_tokens||0)+(s.cache_read_tokens||0),T=x.reduce((v,y)=>v+(y.result_length||0),0),b=s.text?qe.exec(s.text):null,E=b?b[1].trim():null,B=x.length>0?Math.max(...x.map(v=>v.ts||0)):0,A=B>s.ts?B-s.ts:0,R=new Map;for(let v of x)R.set(v.tool_name,(R.get(v.tool_name)??0)+1);let P=Array.from(R.entries()).map(([v,y])=>({name:v,count:y,color:this.toolColor(v)})).sort((v,y)=>y.count-v.count),I=new Set;for(let v of x)Be.has(v.tool_name)&&v.input_summary&&I.add(v.input_summary);let w=x.filter(v=>v.is_specship===1),Q=w.reduce((v,y)=>v+(y.result_length||0),0),G=w.length>0?Math.ceil(Q/4):0,W=new Map;for(let v of w)if(v.resolution==="resolved")for(let[y,St]of Ne(v.displaced_files))W.has(y)||W.set(y,St);let yt=Array.from(W.values()).reduce((v,y)=>v+y,0),kt=Math.ceil(Math.max(0,yt-Q)/4);return{prompt:s,tools:x,totalTokens:f,toolBytes:T,slashCommand:E,durationMs:A,toolBreakdown:P,filesTouched:Array.from(I),specshipSpendTokens:G,specshipSavedTokens:kt}})});totalToolCalls=h(()=>this.toolCalls().length);queryMap=Z(this.route.queryParamMap,{initialValue:this.route.snapshot.queryParamMap});selectedPromptId=h(()=>this.queryMap().get("prompt"));selectedIndex=h(()=>{let e=this.selectedPromptId();return e?this.groups().findIndex(t=>t.prompt.id===e):-1});selectedGroup=h(()=>{let e=this.selectedIndex();return e>=0?this.groups()[e]:null});quality=h(()=>{let e=this.selectedGroup();return e?J(e.prompt,e.tools):null});qualityShareText=h(()=>{let e=this.quality();return e?vt(e):""});hasPrevPrompt=h(()=>this.selectedIndex()>0);hasNextPrompt=h(()=>{let e=this.selectedIndex();return e>=0&&e<this.groups().length-1});promptCacheRate(e){let t=(e.input_tokens||0)+(e.cache_creation_tokens||0)+(e.cache_read_tokens||0);return t>0?(e.cache_read_tokens||0)/t:0}promptQualityColor(e){return J(e.prompt,e.tools).color}openPrompt(e){this.router.navigate([],{relativeTo:this.route,queryParams:{prompt:e},queryParamsHandling:"merge"})}closePrompt(){this.router.navigate([],{relativeTo:this.route,queryParams:{prompt:null},queryParamsHandling:"merge"})}stepPrompt(e){let t=this.selectedIndex(),i=this.groups()[t+e];i&&this.openPrompt(i.prompt.id)}promptTok(e,t){return t==="input"?e.input_tokens||0:t==="output"?e.output_tokens||0:t==="cacheWrite"?e.cache_creation_tokens||0:e.cache_read_tokens||0}promptTokPct(e,t){let i=(e.input_tokens||0)+(e.output_tokens||0)+(e.cache_creation_tokens||0)+(e.cache_read_tokens||0)||1;return this.promptTok(e,t)/i*100}totalTokens=h(()=>{let e=this.session();return e&&(e.total_input_tokens||0)+(e.total_output_tokens||0)+(e.total_cache_creation_tokens||0)+(e.total_cache_read_tokens||0)||1});maxPromptCost=h(()=>{let e=this.groups();return Math.max(1e-4,...e.map(t=>t.prompt.cost_usd||0))});toolBarColor=e=>{let t=e.name;return t==="Read"?"var(--node-spec)":t==="Edit"||t==="Write"||t==="MultiEdit"?"var(--accent)":t==="Bash"?"var(--warn)":t==="Grep"||t==="Glob"?"var(--node-test)":t==="Task"?"var(--node-route)":t.startsWith("mcp__")?"var(--success)":"var(--node-code)"};cacheReadRate=h(()=>{let e=this.session();if(!e)return 0;let t=(e.total_input_tokens||0)+(e.total_cache_creation_tokens||0)+(e.total_cache_read_tokens||0);return t>0?(e.total_cache_read_tokens||0)/t:0});constructor(){j(()=>{!this.resource.state().loading&&this.localRefreshing()&&this.localRefreshing.set(!1)});let e=null,t=null,i=()=>{t!==null&&(clearInterval(t),t=null)},s=()=>{t===null&&(t=setInterval(()=>{typeof document<"u"&&document.visibilityState==="visible"&&this.resource.refetch()},Fe))},x=()=>{e&&(e(),e=null)},f=b=>{b&&(x(),e=this.api.openEventStream(`/api/claude/session/${encodeURIComponent(b)}/events`,E=>{E==="prompt_added"||E==="tool_call_added"?this.resource.refetch():E==="snapshot"?(this.liveMode.set("live"),i()):E==="stream_error"&&(this.liveMode.set("polling"),s())},()=>{this.liveMode.set("polling"),s()},["prompt_added","tool_call_added","snapshot","stream_error"]))},T=()=>{if(!(typeof document>"u"))if(document.visibilityState==="visible"){this.resource.refetch();let b=this.id();b&&this.liveMode()==="polling"&&f(b)}else i()};j(()=>{let b=this.id();if(x(),i(),!b){this.liveMode.set("idle");return}f(b)}),typeof document<"u"&&document.addEventListener("visibilitychange",T),this.destroyRef.onDestroy(()=>{x(),i(),this.liveMode.set("idle"),typeof document<"u"&&document.removeEventListener("visibilitychange",T)})}async forceRefresh(){this.localRefreshing.set(!0),await this.refresh.triggerGlobalRefresh()}isExpanded(e){return this.expandedIds().has(e)}toggleExpand(e){this.expandedIds.update(t=>{let i=new Set(t);return i.has(e)?i.delete(e):i.add(e),i})}expandAll(){this.expandedIds.set(new Set(this.prompts().map(e=>e.id)))}collapseAll(){this.expandedIds.set(new Set)}isToolInputExpanded(e){return this.expandedToolInputs().has(e)}toggleToolInput(e){this.expandedToolInputs.update(t=>{let i=new Set(t);return i.has(e)?i.delete(e):i.add(e),i})}renderAssistant(e){return this.sanitizer.bypassSecurityTrustHtml(ut(e??""))}formatToolInput(e){if(!e)return"";try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}fmtBytes(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} kB`:`${(e/(1024*1024)).toFixed(1)} MB`:"0"}fmtTokens(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}fmtTokensFn=e=>this.fmtTokens(e);fmtClock(e){if(!e)return"";try{let t=new Date(e),i=new Date;i.setHours(0,0,0,0);let s=864e5,x=i.getTime()-new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),f=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"});return x===0?f:x===s?"Yest "+f:t.toLocaleDateString([],{month:"short",day:"numeric"})+" "+f}catch{return String(e)}}fmtDurationSec(e,t){if(!e||!t)return"";let i=Math.round((t-e)/1e3);if(i<60)return`${i}s`;let s=Math.floor(i/60),x=i%60;if(s<60)return`${s}m ${x}s`;let f=Math.floor(s/60),T=s%60;return`${f}h ${T}m`}fmtDurationMs(e){if(!e||e<=0)return"";if(e<1e3)return`${e}ms`;let t=e/1e3;if(t<60)return`${t.toFixed(t<10?1:0)}s`;let i=Math.floor(t/60),s=Math.round(t%60);if(i<60)return`${i}m ${s}s`;let x=Math.floor(i/60),f=i%60;return`${x}h ${f}m`}basename(e){if(!e)return"";if(e.length<=40)return e;let t=e.split("/");return t.length<=2?e:"\u2026/"+t.slice(-2).join("/")}toolColor(e){return e==="Read"?"var(--node-spec)":e==="Edit"||e==="Write"||e==="MultiEdit"||e==="NotebookEdit"?"var(--accent)":e==="Bash"?"var(--warn)":e==="Grep"||e==="Glob"?"var(--node-test)":e==="Task"?"var(--node-route)":e.startsWith("mcp__")?"var(--success)":"var(--text-secondary)"}cacheColor(e){return e>=.7?"var(--success)":e>=.5?"var(--warn)":"var(--error)"}tokPct(e){let t=this.session();if(!t)return 0;let i=this.totalTokens();return(e==="input"?t.total_input_tokens||0:e==="output"?t.total_output_tokens||0:e==="cacheWrite"?t.total_cache_creation_tokens||0:t.total_cache_read_tokens||0)/i*100}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=X({type:n,selectors:[["app-session-detail"]],decls:22,vars:20,consts:[[1,"sd-root"],[1,"page-head"],[1,"back-link","btn","btn-ghost","btn-sm",3,"routerLink"],["name","chevronLeft",3,"size"],[1,"title-block"],[1,"title"],[1,"mono","session-id"],[3,"color","bg"],[1,"live-pill",3,"title"],[1,"dot"],[1,"sub"],[1,"page-actions"],["type","button","aria-label","Refresh session detail",1,"btn","btn-secondary","btn-sm","refresh-btn",3,"click","disabled"],["name","refresh",3,"size"],[1,"loading"],[1,"error"],[1,"empty"],[1,"error-title"],[1,"error-detail"],[1,"btn","btn-secondary","btn-sm",3,"click"],[1,"scroll-y","pp-page"],[1,"sd-body"],[1,"row","gap-10","pp-head"],["type","button",1,"btn","btn-ghost","btn-sm",3,"click"],[1,"mono","muted","pp-time"],["color","var(--node-code)","bg","var(--node-code-soft)"],["color","var(--node-route)","bg","var(--node-route-soft)"],[1,"grow"],["type","button",1,"btn","btn-ghost","btn-sm",3,"click","disabled"],["name","chevronRight",3,"size"],[1,"row","gap-6","pp-meta"],[1,"pp-chip","mono"],["name","wrench",3,"size"],[1,"pp-quality",3,"border-color","background"],[1,"eyebrow","pp-sec-lbl"],[1,"tok-bar","pp-tokbar"],[1,"tok-seg",2,"background","var(--node-spec)",3,"title"],[1,"tok-seg",2,"background","var(--node-code)",3,"title"],[1,"tok-seg",2,"background","var(--warn)",3,"title"],[1,"tok-seg",2,"background","var(--node-route)",3,"title"],[1,"row","gap-12","pp-tok-legend"],[1,"pp-tok-li"],[1,"dot",2,"background","var(--node-spec)"],[1,"dot",2,"background","var(--node-code)"],[1,"dot",2,"background","var(--warn)"],[1,"dot",2,"background","var(--node-route)"],[1,"pp-io"],[1,"pp-io-col"],[1,"row","gap-6","pp-io-head"],[1,"eyebrow"],[3,"text"],[1,"pp-io-body","mono"],[1,"pp-io-body","md-content",3,"innerHTML"],[1,"pp-io-body","muted"],[1,"pp-thinking"],[2,"height","24px"],["name","command",3,"size"],["name","bot",3,"size"],[1,"pp-quality"],[1,"row","gap-8","pp-q-head"],["name","sparkles",3,"size"],[1,"pp-q-title"],[1,"pill","pp-q-grade"],[1,"tabular"],["label","Share",3,"text"],[1,"pp-q-bar"],[3,"frac","color","height"],[1,"pp-q-factors"],[1,"row","gap-6"],[1,"eyebrow","pp-q-sub"],[1,"col","gap-8"],[1,"row","gap-8","pp-sug"],[3,"name","size"],[1,"pp-q-factor"],[1,"pp-sug-dot"],[1,"pp-sug-text"],[1,"row","gap-6","pp-sug-fix"],[1,"mono"],[1,"row","gap-8","pp-rewrite"],[1,"grow","pp-rewrite-text"],[1,"eyebrow","pp-thinking-sum"],[1,"md-content","pp-thinking-body",3,"innerHTML"],[1,"col","gap-4","pp-tools"],[1,"row","gap-8","pp-tool"],[1,"mono","pp-tool-name"],[1,"mono","muted","pp-tool-input"],[1,"mono","muted","pp-tool-bytes"],[1,"scroll-y","sd-main"],[1,"stat-strip"],[1,"stat"],[1,"stat-lbl"],[1,"stat-val","cost"],[1,"stat-val","mono"],[1,"stat-val","mono",2,"font-size","12px"],[1,"row","gap-8",2,"justify-content","space-between","margin-bottom","8px"],[1,"muted",2,"font-size","11px"],[1,"col","gap-6",2,"padding-bottom","16px"],[1,"prompt","card"],[1,"scroll-y","sd-rail"],[1,"eyebrow",2,"margin-bottom","10px"],[1,"tok-bar",2,"margin-bottom","10px"],[1,"col","gap-6",2,"margin-bottom","20px"],[1,"row","gap-8"],[2,"width","9px","height","9px","border-radius","2px","background","var(--node-spec)","flex-shrink","0"],[1,"muted","grow",2,"font-size","11.5px"],[1,"mono","tabular",2,"font-size","11.5px"],[1,"mono","tabular","muted",2,"font-size","10px","width","32px","text-align","right"],[2,"width","9px","height","9px","border-radius","2px","background","var(--node-code)","flex-shrink","0"],[2,"width","9px","height","9px","border-radius","2px","background","var(--warn)","flex-shrink","0"],[2,"width","9px","height","9px","border-radius","2px","background","var(--node-route)","flex-shrink","0"],[1,"cache-card",2,"margin-bottom","20px"],["name","database",2,"color","var(--success)",3,"size"],[1,"muted",2,"font-size","10.5px"],[1,"row",2,"align-items","baseline","gap","8px","margin-top","4px"],[1,"tabular",2,"font-size","24px","font-weight","700","color","var(--success)"],["role","button","tabindex","0",1,"prompt-head","row","gap-10",3,"click","keydown.enter","keydown.space"],[1,"mono","muted",2,"font-size","10.5px","width","52px","flex-shrink","0"],["title","Prompt quality",2,"width","8px","height","8px","border-radius","50%","flex-shrink","0"],[2,"flex-shrink","0",3,"color","bg"],["name","command",2,"color","var(--node-code)","flex-shrink","0",3,"size","title"],[1,"grow",2,"font-size","12.5px","overflow","hidden","text-overflow","ellipsis","white-space","nowrap","min-width","0"],[1,"muted"],[1,"pill",2,"color","var(--success)","background","var(--success-soft)","font-family","var(--font-mono)","font-size","10px","font-weight","600","flex-shrink","0","cursor","help",3,"title"],[1,"row","gap-4",2,"flex-shrink","0"],["name","wrench",2,"color","var(--text-muted)",3,"size"],[1,"mono","tabular","muted",2,"font-size","11px"],["title","Wall-clock duration for this prompt",1,"mono","tabular","muted",2,"font-size","11px","width","44px","text-align","right","flex-shrink","0"],[1,"mono","tabular","muted",2,"font-size","11px","width","50px","text-align","right","flex-shrink","0"],[1,"mono","tabular",2,"font-size","11px","width","38px","text-align","right","flex-shrink","0"],[1,"mono","tabular",2,"font-size","13px","font-weight","600","width","54px","text-align","right","flex-shrink","0"],["type","button","title","Open full view","aria-label","Open full prompt view",1,"pp-open-btn",3,"click"],["name","maximize",3,"size"],["name","chevronRight",2,"color","var(--text-muted)","flex-shrink","0",3,"size"],[1,"prompt-body"],[1,"prompt-section"],[1,"section-lbl"],[1,"kv-row"],[1,"kv"],[1,"kv-lbl"],[1,"kv-val","mono"],[1,"kv-val","mono","cost"],[1,"prompt-pre"],[1,"assistant-body","md-content",3,"innerHTML"],[1,"thinking-details"],[1,"section-lbl","thinking-summary"],[1,"muted","xs"],[1,"thinking-body","md-content",3,"innerHTML"],[1,"files-touched"],[1,"file-row",3,"title"],[1,"file-path","mono"],[1,"tools"],[1,"tool-block"],["type","button",1,"tool-row",3,"click","disabled"],["aria-hidden","true",1,"tool-chevron","mono"],[1,"tool-name","mono"],[1,"tool-input","mono"],[1,"tool-bytes","mono","muted"],[1,"tool-input-json","mono"],[2,"margin-bottom","20px"],[2,"margin-top","16px","padding","10px 12px","background","var(--success-soft)","border","1px solid rgba(70,194,107,0.25)","border-radius","8px"],[1,"row","gap-6",2,"flex-wrap","wrap"],[1,"pill",2,"color","var(--node-code)","background","var(--node-code-soft)","font-family","var(--font-mono)","font-weight","500"],[1,"pill",2,"color","var(--node-test)","background","var(--node-test-soft)","font-family","var(--font-mono)","font-weight","500"],[2,"opacity","0.7"],["valueKey","calls",3,"items","fmt","color"],[1,"muted",2,"font-size","10px","margin-top","8px"],[1,"row","gap-8",2,"margin-bottom","4px"],[2,"font-size","10.5px","font-weight","700","color","var(--success)","text-transform","uppercase","letter-spacing","0.04em"],[1,"pill",2,"color","var(--success)","background","rgba(70,194,107,0.15)","font-size","9.5px","padding","1px 5px"],[1,"col","gap-4"],[1,"muted","grow",2,"font-size","11px"],[1,"mono","tabular",2,"font-size","11px","color","var(--text-primary)"],[1,"mono","tabular",2,"font-size","11px","color","var(--success)"],[1,"row","gap-6",2,"border-top","1px dashed rgba(70,194,107,0.3)","padding-top","4px","margin-top","2px"],[1,"mono","tabular",2,"font-size","11px"],[1,"eyebrow",2,"margin","20px 0 10px"],[1,"col","gap-5"],[1,"mono","muted",2,"font-size","10px","width","44px","flex-shrink","0"],[3,"frac","color"],[1,"mono","tabular",2,"font-size","10.5px","width","40px","text-align","right"]],template:function(t,i){if(t&1&&(r(0,"div",0)(1,"header",1)(2,"a",2),d(3,"app-icon",3),l(4," Sessions "),a(),r(5,"div",4)(6,"div",5)(7,"span",6),l(8),a(),m(9,It,2,3,"app-pill",7),r(10,"span",8),d(11,"span",9),l(12),a()(),m(13,$t,3,2,"div",10),a(),r(14,"div",11)(15,"button",12),M("click",function(){return i.forceRefresh()}),d(16,"app-icon",13),l(17),a()()(),m(18,Rt,2,0,"div",14)(19,Ft,7,1,"div",15)(20,$e,2,1)(21,Re,2,0,"div",16),a()),t&2){let s,x,f;o(2),c("routerLink",it(19,Ot)),o(),c("size",14),o(5),u(i.id().slice(0,12)),o(),_((s=i.session())!=null&&s.last_model?9:-1),o(),q("live",i.liveMode()==="live")("polling",i.liveMode()==="polling")("idle",i.liveMode()==="idle"),c("title",i.liveMode()==="live"?"Live \u2014 new prompts push as Claude Code writes them":i.liveMode()==="polling"?"Polling \u2014 SSE unavailable, refetching every 5s":"Idle \u2014 live updates paused"),o(2),g(" ",i.liveMode()==="live"?"Live":i.liveMode()==="polling"?"Polling":"Idle"," "),o(),_((x=i.session())?13:-1,x),o(2),q("spinning",i.localRefreshing()||i.refresh.loading()),c("disabled",i.refresh.loading()),o(),c("size",13),o(),g(" ",i.localRefreshing()||i.refresh.loading()?"Refreshing\u2026":"Refresh"," "),o(),_(i.resource.state().loading&&!i.session()?18:i.resource.state().error?19:(f=i.session())?20:21,f)}},dependencies:[st,ct,xt,mt,_t,gt,ot],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:contents}.sd-root[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;min-height:0;padding:16px 18px 0}.page-head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.back-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);text-decoration:none}.title-block[_ngcontent-%COMP%]{flex:1;min-width:250px}.title[_ngcontent-%COMP%]{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.session-id[_ngcontent-%COMP%]{color:var(--accent);font-size:14px}.live-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;cursor:help}.live-pill[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.live-pill.live[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.live-pill.live[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--success);animation:_ngcontent-%COMP%_live-pulse 1.6s ease-in-out infinite}.live-pill.polling[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.live-pill.polling[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--warn)}.live-pill.idle[_ngcontent-%COMP%]{color:var(--text-muted);background:var(--bg-canvas)}.live-pill.idle[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--text-muted)}@keyframes _ngcontent-%COMP%_live-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}.sub[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:12px;margin-top:2px}.page-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.refresh-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px}.refresh-btn.spinning[_ngcontent-%COMP%] app-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin .9s linear infinite;color:var(--accent)}.refresh-btn[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.8}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sd-body[_ngcontent-%COMP%]{flex:1;display:flex;min-height:0;gap:0}.sd-main[_ngcontent-%COMP%]{flex:1;min-width:0;padding:0 0 18px}.sd-rail[_ngcontent-%COMP%]{width:290px;flex-shrink:0;border-left:1px solid var(--border-subtle);background:var(--bg-panel);padding:16px}.stat-strip[_ngcontent-%COMP%]{display:flex;gap:24px;padding:12px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:16px}.stat[_ngcontent-%COMP%] .stat-lbl[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted)}.stat[_ngcontent-%COMP%] .stat-val[_ngcontent-%COMP%]{font-size:16px;font-weight:600;margin-top:2px;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat-val.cost[_ngcontent-%COMP%]{color:var(--accent)}.tok-bar[_ngcontent-%COMP%]{display:flex;height:10px;border-radius:999px;overflow:hidden}.tok-seg[_ngcontent-%COMP%]{height:100%}.cache-card[_ngcontent-%COMP%]{background:var(--success-soft);border:1px solid rgba(70,194,107,.25);border-radius:8px;padding:10px 12px}.prompt.card[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:9px;overflow:hidden;transition:border-color .12s}.prompt.card[_ngcontent-%COMP%]:hover{border-color:var(--border-strong)}.prompt-head[_ngcontent-%COMP%]{width:100%;padding:11px 12px;background:transparent;border:0;text-align:left;cursor:pointer;color:inherit;font-family:inherit}.prompt-head[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.prompt-head[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pp-open-btn[_ngcontent-%COMP%]{flex-shrink:0;display:inline-flex;align-items:center;background:transparent;border:0;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:4px;opacity:0;transition:opacity .1s,background .1s,color .1s}.prompt-head[_ngcontent-%COMP%]:hover .pp-open-btn[_ngcontent-%COMP%]{opacity:1}.pp-open-btn[_ngcontent-%COMP%]:hover{background:var(--bg-panel-2);color:var(--text-primary)}.pp-open-btn[_ngcontent-%COMP%]:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}.pp-page[_ngcontent-%COMP%]{flex:1;min-height:0;padding:18px}.pp-head[_ngcontent-%COMP%]{align-items:center;margin-bottom:14px}.pp-time[_ngcontent-%COMP%]{font-size:11.5px}.pp-meta[_ngcontent-%COMP%]{flex-wrap:wrap;margin-bottom:16px}.pp-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:6px;background:var(--bg-panel);border:1px solid var(--border-subtle);color:var(--text-secondary)}.pp-quality[_ngcontent-%COMP%]{border:1px solid var(--border-subtle);border-radius:8px;padding:12px;margin-bottom:16px}.pp-q-head[_ngcontent-%COMP%]{align-items:center;margin-bottom:10px}.pp-q-title[_ngcontent-%COMP%]{font-weight:600;font-size:12.5px}.pp-q-grade[_ngcontent-%COMP%]{font-weight:600}.pp-q-bar[_ngcontent-%COMP%]{margin-bottom:12px}.pp-q-factors[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:12px}.pp-q-factor[_ngcontent-%COMP%]{font-size:11.5px;color:var(--text-secondary)}.pp-q-factor.bad[_ngcontent-%COMP%]{color:var(--text-primary)}.pp-q-sub[_ngcontent-%COMP%]{margin-bottom:7px}.pp-q-sub[_ngcontent-%COMP%] + .col[_ngcontent-%COMP%], .pp-q-sub[_ngcontent-%COMP%] + .pp-rewrite[_ngcontent-%COMP%]{margin-top:0}.col[_ngcontent-%COMP%] + .pp-q-sub[_ngcontent-%COMP%], .pp-q-bar[_ngcontent-%COMP%] + .pp-q-factors[_ngcontent-%COMP%] + .pp-q-sub[_ngcontent-%COMP%]{margin-top:12px}.pp-sug[_ngcontent-%COMP%]{align-items:flex-start}.pp-sug-dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px}.pp-sug-text[_ngcontent-%COMP%]{font-size:12px;line-height:1.5;color:var(--text-secondary);text-wrap:pretty}.pp-sug-fix[_ngcontent-%COMP%]{margin-top:5px;align-items:center}.pp-sug-fix[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{font-size:11px;color:var(--text-primary);background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:5px;padding:2px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-rewrite[_ngcontent-%COMP%]{align-items:flex-start;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:7px;padding:9px 11px}.pp-rewrite-text[_ngcontent-%COMP%]{font-size:12px;line-height:1.5;color:var(--text-primary);text-wrap:pretty}.pp-sec-lbl[_ngcontent-%COMP%]{margin:16px 0 8px}.pp-tokbar[_ngcontent-%COMP%]{margin-bottom:8px}.pp-tok-legend[_ngcontent-%COMP%]{flex-wrap:wrap;margin-bottom:16px}.pp-tok-li[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--text-muted)}.pp-tok-li[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:2px}.pp-io[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.pp-io-col[_ngcontent-%COMP%]{min-width:0;display:flex;flex-direction:column}.pp-io-head[_ngcontent-%COMP%]{margin-bottom:6px;align-items:center}.pp-io-body[_ngcontent-%COMP%]{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:8px;padding:11px 13px;font-size:12px;line-height:1.6;max-height:460px;overflow:auto;margin:0}pre.pp-io-body[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word}.pp-thinking[_ngcontent-%COMP%]{margin-bottom:16px}.pp-thinking-sum[_ngcontent-%COMP%]{cursor:pointer}.pp-thinking-body[_ngcontent-%COMP%]{margin-top:8px}.pp-tool[_ngcontent-%COMP%]{padding:7px 10px;border-radius:6px;background:var(--bg-panel);border:1px solid var(--border-subtle);align-items:center}.pp-tool-name[_ngcontent-%COMP%]{font-size:12px;font-weight:600}.pp-tool-input[_ngcontent-%COMP%]{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-tool-bytes[_ngcontent-%COMP%]{font-size:11px}@media(max-width:720px){.pp-io[_ngcontent-%COMP%]{grid-template-columns:1fr}}.prompt-body[_ngcontent-%COMP%]{border-top:1px solid var(--border-subtle);padding:14px 16px;background:var(--bg-canvas)}.prompt-section[_ngcontent-%COMP%]{margin-bottom:14px}.prompt-section[_ngcontent-%COMP%]:last-child{margin-bottom:0}.section-lbl[_ngcontent-%COMP%]{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.prompt-pre[_ngcontent-%COMP%]{margin:0;padding:10px 12px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:7px;font-family:var(--font-mono);font-size:11.5px;line-height:1.55;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto}.kv-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px 18px}.kv[_ngcontent-%COMP%] .kv-lbl[_ngcontent-%COMP%]{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.kv[_ngcontent-%COMP%] .kv-val[_ngcontent-%COMP%]{font-size:12.5px;font-weight:600;margin-top:2px;color:var(--text-primary);font-variant-numeric:tabular-nums}.kv-val.cost[_ngcontent-%COMP%]{color:var(--accent)}.tools[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}.tool-block[_ngcontent-%COMP%]{display:flex;flex-direction:column}.tool-row[_ngcontent-%COMP%]{appearance:none;background:var(--bg-panel);border:1px solid var(--border-subtle);color:inherit;font-family:inherit;text-align:left;display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border-radius:6px;font-size:11.5px;cursor:pointer}.tool-row[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--bg-hover)}.tool-row[_ngcontent-%COMP%]:disabled{cursor:default}.tool-row[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-row.expanded[_ngcontent-%COMP%]{border-bottom-left-radius:0;border-bottom-right-radius:0}.tool-chevron[_ngcontent-%COMP%]{width:10px;color:var(--text-muted);transition:transform .12s;font-size:12px;flex-shrink:0;display:inline-block}.tool-chevron.open[_ngcontent-%COMP%]{transform:rotate(90deg);color:var(--accent)}.tool-name[_ngcontent-%COMP%]{font-weight:600;flex-shrink:0}.tool-input[_ngcontent-%COMP%]{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px}.tool-bytes[_ngcontent-%COMP%]{font-size:10.5px;flex-shrink:0}.tool-input-json[_ngcontent-%COMP%]{margin:0;padding:10px 14px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-top:0;border-radius:0 0 6px 6px;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto}.assistant-body[_ngcontent-%COMP%]{padding:10px 14px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:7px;font-size:12.5px;line-height:1.55;color:var(--text-primary);max-height:480px;overflow-y:auto;overflow-wrap:anywhere}.thinking-details[_ngcontent-%COMP%]{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:7px;padding:8px 12px}.thinking-summary[_ngcontent-%COMP%]{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.thinking-summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.thinking-summary[_ngcontent-%COMP%]:before{content:"\\203a";display:inline-block;transition:transform .12s;font-size:14px;color:var(--text-muted)}.thinking-details[open][_ngcontent-%COMP%] .thinking-summary[_ngcontent-%COMP%]:before{transform:rotate(90deg);color:var(--accent)}.thinking-body[_ngcontent-%COMP%]{margin-top:10px;padding:8px 0 0;border-top:1px dashed var(--border-subtle);font-size:12px;line-height:1.55;color:var(--text-secondary);max-height:320px;overflow-y:auto;overflow-wrap:anywhere}.files-touched[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px;font-size:11.5px;max-height:180px;overflow-y:auto;padding:6px 10px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:6px}.files-touched[_ngcontent-%COMP%] .file-row[_ngcontent-%COMP%]{display:flex;align-items:center;min-width:0}.files-touched[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.loading[_ngcontent-%COMP%]{padding:40px 18px;text-align:center;color:var(--text-muted);font-size:13px}.error[_ngcontent-%COMP%]{padding:16px;margin:12px 0;border-radius:8px;border:1px solid rgba(255,90,90,.35);background:var(--error-soft);color:var(--error);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.error-title[_ngcontent-%COMP%]{font-weight:600;font-size:13px}.error-detail[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary)}.empty[_ngcontent-%COMP%]{padding:30px 18px;color:var(--text-muted);font-size:12.5px;text-align:center}.md-content[_ngcontent-%COMP%] .md-h1[_ngcontent-%COMP%]{font-size:14px;font-weight:650;color:var(--text-primary);letter-spacing:-.01em;margin:0 0 8px}.md-content[_ngcontent-%COMP%] .md-h2[_ngcontent-%COMP%]{font-size:12.5px;font-weight:650;color:var(--text-primary);margin:14px 0 4px;padding-bottom:3px;border-bottom:1px solid var(--border-subtle)}.md-content[_ngcontent-%COMP%] .md-h3[_ngcontent-%COMP%]{font-size:12px;font-weight:650;color:var(--text-primary);margin:12px 0 4px}.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%]{font-size:12.5px;line-height:1.6;color:var(--text-primary);margin:0 0 4px;overflow-wrap:anywhere}.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary);font-weight:650}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%]{padding:0;margin:4px 0 6px}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{position:relative;padding:2px 0 2px 20px;font-size:12.5px;line-height:1.55;color:var(--text-primary);overflow-wrap:anywhere}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%]{list-style:none}.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:"\\2022";position:absolute;left:4px;top:1px;color:var(--text-faint)}.md-content[_ngcontent-%COMP%] .md-spacer[_ngcontent-%COMP%]{height:5px}.md-content[_ngcontent-%COMP%] .md-inline-code[_ngcontent-%COMP%]{font-size:11px;background:var(--bg-canvas);padding:1px 5px;border-radius:3px;border:1px solid var(--border-subtle);color:var(--node-spec)}.md-content[_ngcontent-%COMP%] .md-blockquote[_ngcontent-%COMP%]{margin:5px 0;padding:6px 10px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-secondary);font-size:12px;line-height:1.5;border-radius:0 5px 5px 0}.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%]{position:relative;margin:6px 0 8px;padding:10px 12px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:6px;overflow-x:auto}.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{display:block;font-size:11px;line-height:1.5;color:var(--text-primary);white-space:pre}.md-content[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child{margin-top:0}'],changeDetection:0})};export{Ct as SessionDetail};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{a as Q}from"./chunk-EUUEFEDI.js";import{a as q}from"./chunk-AZJVTPLU.js";import{f as B,i as x,j as U,k as C,m as h,n as u}from"./chunk-JTFXTIPE.js";import{a as G,b as J}from"./chunk-Q7L6LLAK.js";var F=class{constructor(t,e){this._modeId=t,this._defaults=e,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(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let t=++this._updateExtraLibsToken,e=await this._worker.getProxy();this._updateExtraLibsToken===t&&e.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=q({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(new URL("ts.worker.js",import.meta.url),{type:"module"}),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(h.getModels().filter(t=>t.getLanguageId()===this._modeId).map(t=>t.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...t){let e=await this._getClient();return this._worker&&await this._worker.withSyncedResources(t),e}};var r={};r["lib.d.ts"]=!0;r["lib.decorators.d.ts"]=!0;r["lib.decorators.legacy.d.ts"]=!0;r["lib.dom.asynciterable.d.ts"]=!0;r["lib.dom.d.ts"]=!0;r["lib.dom.iterable.d.ts"]=!0;r["lib.es2015.collection.d.ts"]=!0;r["lib.es2015.core.d.ts"]=!0;r["lib.es2015.d.ts"]=!0;r["lib.es2015.generator.d.ts"]=!0;r["lib.es2015.iterable.d.ts"]=!0;r["lib.es2015.promise.d.ts"]=!0;r["lib.es2015.proxy.d.ts"]=!0;r["lib.es2015.reflect.d.ts"]=!0;r["lib.es2015.symbol.d.ts"]=!0;r["lib.es2015.symbol.wellknown.d.ts"]=!0;r["lib.es2016.array.include.d.ts"]=!0;r["lib.es2016.d.ts"]=!0;r["lib.es2016.full.d.ts"]=!0;r["lib.es2016.intl.d.ts"]=!0;r["lib.es2017.arraybuffer.d.ts"]=!0;r["lib.es2017.d.ts"]=!0;r["lib.es2017.date.d.ts"]=!0;r["lib.es2017.full.d.ts"]=!0;r["lib.es2017.intl.d.ts"]=!0;r["lib.es2017.object.d.ts"]=!0;r["lib.es2017.sharedmemory.d.ts"]=!0;r["lib.es2017.string.d.ts"]=!0;r["lib.es2017.typedarrays.d.ts"]=!0;r["lib.es2018.asyncgenerator.d.ts"]=!0;r["lib.es2018.asynciterable.d.ts"]=!0;r["lib.es2018.d.ts"]=!0;r["lib.es2018.full.d.ts"]=!0;r["lib.es2018.intl.d.ts"]=!0;r["lib.es2018.promise.d.ts"]=!0;r["lib.es2018.regexp.d.ts"]=!0;r["lib.es2019.array.d.ts"]=!0;r["lib.es2019.d.ts"]=!0;r["lib.es2019.full.d.ts"]=!0;r["lib.es2019.intl.d.ts"]=!0;r["lib.es2019.object.d.ts"]=!0;r["lib.es2019.string.d.ts"]=!0;r["lib.es2019.symbol.d.ts"]=!0;r["lib.es2020.bigint.d.ts"]=!0;r["lib.es2020.d.ts"]=!0;r["lib.es2020.date.d.ts"]=!0;r["lib.es2020.full.d.ts"]=!0;r["lib.es2020.intl.d.ts"]=!0;r["lib.es2020.number.d.ts"]=!0;r["lib.es2020.promise.d.ts"]=!0;r["lib.es2020.sharedmemory.d.ts"]=!0;r["lib.es2020.string.d.ts"]=!0;r["lib.es2020.symbol.wellknown.d.ts"]=!0;r["lib.es2021.d.ts"]=!0;r["lib.es2021.full.d.ts"]=!0;r["lib.es2021.intl.d.ts"]=!0;r["lib.es2021.promise.d.ts"]=!0;r["lib.es2021.string.d.ts"]=!0;r["lib.es2021.weakref.d.ts"]=!0;r["lib.es2022.array.d.ts"]=!0;r["lib.es2022.d.ts"]=!0;r["lib.es2022.error.d.ts"]=!0;r["lib.es2022.full.d.ts"]=!0;r["lib.es2022.intl.d.ts"]=!0;r["lib.es2022.object.d.ts"]=!0;r["lib.es2022.regexp.d.ts"]=!0;r["lib.es2022.string.d.ts"]=!0;r["lib.es2023.array.d.ts"]=!0;r["lib.es2023.collection.d.ts"]=!0;r["lib.es2023.d.ts"]=!0;r["lib.es2023.full.d.ts"]=!0;r["lib.es2023.intl.d.ts"]=!0;r["lib.es2024.arraybuffer.d.ts"]=!0;r["lib.es2024.collection.d.ts"]=!0;r["lib.es2024.d.ts"]=!0;r["lib.es2024.full.d.ts"]=!0;r["lib.es2024.object.d.ts"]=!0;r["lib.es2024.promise.d.ts"]=!0;r["lib.es2024.regexp.d.ts"]=!0;r["lib.es2024.sharedmemory.d.ts"]=!0;r["lib.es2024.string.d.ts"]=!0;r["lib.es5.d.ts"]=!0;r["lib.es6.d.ts"]=!0;r["lib.esnext.array.d.ts"]=!0;r["lib.esnext.collection.d.ts"]=!0;r["lib.esnext.d.ts"]=!0;r["lib.esnext.decorators.d.ts"]=!0;r["lib.esnext.disposable.d.ts"]=!0;r["lib.esnext.error.d.ts"]=!0;r["lib.esnext.float16.d.ts"]=!0;r["lib.esnext.full.d.ts"]=!0;r["lib.esnext.intl.d.ts"]=!0;r["lib.esnext.iterator.d.ts"]=!0;r["lib.esnext.promise.d.ts"]=!0;r["lib.esnext.sharedmemory.d.ts"]=!0;r["lib.scripthost.d.ts"]=!0;r["lib.webworker.asynciterable.d.ts"]=!0;r["lib.webworker.d.ts"]=!0;r["lib.webworker.importscripts.d.ts"]=!0;r["lib.webworker.iterable.d.ts"]=!0;function T(i,t,e=0){if(typeof i=="string")return i;if(i===void 0)return"";let a="";if(e){a+=t;for(let o=0;o<e;o++)a+=" "}if(a+=i.messageText,e++,i.next)for(let o of i.next)a+=T(o,t,e);return a}function _(i){return i?i.map(t=>t.text).join(""):""}var y=class{constructor(t){this._worker=t}_textSpanToRange(t,e){let a=t.getPositionAt(e.start),o=t.getPositionAt(e.start+e.length),{lineNumber:l,column:m}=a,{lineNumber:n,column:s}=o;return{startLineNumber:l,startColumn:m,endLineNumber:n,endColumn:s}}},L=class{constructor(t){this._worker=t,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(t){return t&&t.path.indexOf("/lib.")===0?!!r[t.path.slice(1)]:!1}getOrCreateModel(t){let e=C.parse(t),a=h.getModel(e);if(a)return a;if(this.isLibFile(e)&&this._hasFetchedLibFiles)return h.createModel(this._libFiles[e.path.slice(1)],"typescript",e);let o=Q.getExtraLibs()[t];return o?h.createModel(o.content,"typescript",e):null}_containsLibFile(t){for(let e of t)if(this.isLibFile(e))return!0;return!1}async fetchLibFilesIfNecessary(t){this._containsLibFile(t)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(t=>t.getLibFiles()).then(t=>{this._hasFetchedLibFiles=!0,this._libFiles=t})),this._fetchLibFilesPromise}},A=class extends y{constructor(t,e,a,o){super(o),this._libFiles=t,this._defaults=e,this._selector=a,this._disposables=[],this._listener=Object.create(null);let l=s=>{if(s.getLanguageId()!==a)return;let c=()=>{let{onlyVisible:b}=this._defaults.getDiagnosticsOptions();b?s.isAttachedToEditor()&&this._doValidate(s):this._doValidate(s)},p,d=s.onDidChangeContent(()=>{clearTimeout(p),p=window.setTimeout(c,500)}),g=s.onDidChangeAttached(()=>{let{onlyVisible:b}=this._defaults.getDiagnosticsOptions();b&&(s.isAttachedToEditor()?c():h.setModelMarkers(s,this._selector,[]))});this._listener[s.uri.toString()]={dispose(){d.dispose(),g.dispose(),clearTimeout(p)}},c()},m=s=>{h.setModelMarkers(s,this._selector,[]);let c=s.uri.toString();this._listener[c]&&(this._listener[c].dispose(),delete this._listener[c])};this._disposables.push(h.onDidCreateModel(s=>l(s))),this._disposables.push(h.onWillDisposeModel(m)),this._disposables.push(h.onDidChangeModelLanguage(s=>{m(s.model),l(s.model)})),this._disposables.push({dispose(){for(let s of h.getModels())m(s)}});let n=()=>{for(let s of h.getModels())m(s),l(s)};this._disposables.push(this._defaults.onDidChange(n)),this._disposables.push(this._defaults.onDidExtraLibsChange(n)),h.getModels().forEach(s=>l(s))}dispose(){this._disposables.forEach(t=>t&&t.dispose()),this._disposables=[]}async _doValidate(t){let e=await this._worker(t.uri);if(t.isDisposed())return;let a=[],{noSyntaxValidation:o,noSemanticValidation:l,noSuggestionDiagnostics:m}=this._defaults.getDiagnosticsOptions();o||a.push(e.getSyntacticDiagnostics(t.uri.toString())),l||a.push(e.getSemanticDiagnostics(t.uri.toString())),m||a.push(e.getSuggestionDiagnostics(t.uri.toString()));let n=await Promise.all(a);if(!n||t.isDisposed())return;let s=n.reduce((p,d)=>d.concat(p),[]).filter(p=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(p.code)===-1),c=s.map(p=>p.relatedInformation||[]).reduce((p,d)=>d.concat(p),[]).map(p=>p.file?C.parse(p.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(c),!t.isDisposed()&&h.setModelMarkers(t,this._selector,s.map(p=>this._convertDiagnostics(t,p)))}_convertDiagnostics(t,e){let a=e.start||0,o=e.length||1,{lineNumber:l,column:m}=t.getPositionAt(a),{lineNumber:n,column:s}=t.getPositionAt(a+o),c=[];return e.reportsUnnecessary&&c.push(U.Unnecessary),e.reportsDeprecated&&c.push(U.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(e.category),startLineNumber:l,startColumn:m,endLineNumber:n,endColumn:s,message:T(e.messageText,`
|
|
2
|
-
`),code:e.code.toString(),tags:c,relatedInformation:this._convertRelatedInformation(t,e.relatedInformation)}}_convertRelatedInformation(t,e){if(!e)return[];let a=[];return e.forEach(o=>{let l=t;if(o.file&&(l=this._libFiles.getOrCreateModel(o.file.fileName)),!l)return;let m=o.start||0,n=o.length||1,{lineNumber:s,column:c}=l.getPositionAt(m),{lineNumber:p,column:d}=l.getPositionAt(m+n);a.push({resource:l.uri,startLineNumber:s,startColumn:c,endLineNumber:p,endColumn:d,message:T(o.messageText,`
|
|
3
|
-
`)})}),a}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return x.Error;case 3:return x.Info;case 0:return x.Warning;case 2:return x.Hint}return x.Info}},P=class i extends y{get triggerCharacters(){return["."]}async provideCompletionItems(t,e,a,o){let l=t.getWordUntilPosition(e),m=new B(e.lineNumber,l.startColumn,e.lineNumber,l.endColumn),n=t.uri,s=t.getOffsetAt(e),c=await this._worker(n);if(t.isDisposed())return;let p=await c.getCompletionsAtPosition(n.toString(),s);return!p||t.isDisposed()?void 0:{suggestions:p.entries.map(g=>{let b=m;if(g.replacementSpan){let v=t.getPositionAt(g.replacementSpan.start),D=t.getPositionAt(g.replacementSpan.start+g.replacementSpan.length);b=new B(v.lineNumber,v.column,D.lineNumber,D.column)}let S=[];return g.kindModifiers!==void 0&&g.kindModifiers.indexOf("deprecated")!==-1&&S.push(u.CompletionItemTag.Deprecated),{uri:n,position:e,offset:s,range:b,label:g.name,insertText:g.name,sortText:g.sortText,kind:i.convertKind(g.kind),tags:S}})}}async resolveCompletionItem(t,e){let a=t,o=a.uri,l=a.position,m=a.offset,s=await(await this._worker(o)).getCompletionEntryDetails(o.toString(),m,a.label);return s?{uri:o,position:l,label:s.name,kind:i.convertKind(s.kind),detail:_(s.displayParts),documentation:{value:i.createDocumentationString(s)}}:a}static convertKind(t){switch(t){case f.primitiveType:case f.keyword:return u.CompletionItemKind.Keyword;case f.variable:case f.localVariable:return u.CompletionItemKind.Variable;case f.memberVariable:case f.memberGetAccessor:case f.memberSetAccessor:return u.CompletionItemKind.Field;case f.function:case f.memberFunction:case f.constructSignature:case f.callSignature:case f.indexSignature:return u.CompletionItemKind.Function;case f.enum:return u.CompletionItemKind.Enum;case f.module:return u.CompletionItemKind.Module;case f.class:return u.CompletionItemKind.Class;case f.interface:return u.CompletionItemKind.Interface;case f.warning:return u.CompletionItemKind.File}return u.CompletionItemKind.Property}static createDocumentationString(t){let e=_(t.documentation);if(t.tags)for(let a of t.tags)e+=`
|
|
4
|
-
|
|
5
|
-
${X(a)}`;return e}};function X(i){let t=`*@${i.name}*`;if(i.name==="param"&&i.text){let[e,...a]=i.text;t+=`\`${e.text}\``,a.length>0&&(t+=` \u2014 ${a.map(o=>o.text).join(" ")}`)}else Array.isArray(i.text)?t+=` \u2014 ${i.text.map(e=>e.text).join(" ")}`:i.text&&(t+=` \u2014 ${i.text}`);return t}var I=class i extends y{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(t){switch(t.triggerKind){case u.SignatureHelpTriggerKind.TriggerCharacter:return t.triggerCharacter?t.isRetrigger?{kind:"retrigger",triggerCharacter:t.triggerCharacter}:{kind:"characterTyped",triggerCharacter:t.triggerCharacter}:{kind:"invoked"};case u.SignatureHelpTriggerKind.ContentChange:return t.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case u.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(t,e,a,o){let l=t.uri,m=t.getOffsetAt(e),n=await this._worker(l);if(t.isDisposed())return;let s=await n.getSignatureHelpItems(l.toString(),m,{triggerReason:i._toSignatureHelpTriggerReason(o)});if(!s||t.isDisposed())return;let c={activeSignature:s.selectedItemIndex,activeParameter:s.argumentIndex,signatures:[]};return s.items.forEach(p=>{let d={label:"",parameters:[]};d.documentation={value:_(p.documentation)},d.label+=_(p.prefixDisplayParts),p.parameters.forEach((g,b,S)=>{let v=_(g.displayParts),D={label:v,documentation:{value:_(g.documentation)}};d.label+=v,d.parameters.push(D),b<S.length-1&&(d.label+=_(p.separatorDisplayParts))}),d.label+=_(p.suffixDisplayParts),c.signatures.push(d)}),{value:c,dispose(){}}}},O=class extends y{async provideHover(t,e,a){let o=t.uri,l=t.getOffsetAt(e),m=await this._worker(o);if(t.isDisposed())return;let n=await m.getQuickInfoAtPosition(o.toString(),l);if(!n||t.isDisposed())return;let s=_(n.documentation),c=n.tags?n.tags.map(d=>X(d)).join(`
|
|
6
|
-
|
|
7
|
-
`):"",p=_(n.displayParts);return{range:this._textSpanToRange(t,n.textSpan),contents:[{value:"```typescript\n"+p+"\n```\n"},{value:s+(c?`
|
|
8
|
-
|
|
9
|
-
`+c:"")}]}}},N=class extends y{async provideDocumentHighlights(t,e,a){let o=t.uri,l=t.getOffsetAt(e),m=await this._worker(o);if(t.isDisposed())return;let n=await m.getDocumentHighlights(o.toString(),l,[o.toString()]);if(!(!n||t.isDisposed()))return n.flatMap(s=>s.highlightSpans.map(c=>({range:this._textSpanToRange(t,c.textSpan),kind:c.kind==="writtenReference"?u.DocumentHighlightKind.Write:u.DocumentHighlightKind.Text})))}},K=class extends y{constructor(t,e){super(e),this._libFiles=t}async provideDefinition(t,e,a){let o=t.uri,l=t.getOffsetAt(e),m=await this._worker(o);if(t.isDisposed())return;let n=await m.getDefinitionAtPosition(o.toString(),l);if(!n||t.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(n.map(c=>C.parse(c.fileName))),t.isDisposed()))return;let s=[];for(let c of n){let p=this._libFiles.getOrCreateModel(c.fileName);p&&s.push({uri:p.uri,range:this._textSpanToRange(p,c.textSpan)})}return s}},M=class extends y{constructor(t,e){super(e),this._libFiles=t}async provideReferences(t,e,a,o){let l=t.uri,m=t.getOffsetAt(e),n=await this._worker(l);if(t.isDisposed())return;let s=await n.getReferencesAtPosition(l.toString(),m);if(!s||t.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(s.map(p=>C.parse(p.fileName))),t.isDisposed()))return;let c=[];for(let p of s){let d=this._libFiles.getOrCreateModel(p.fileName);d&&c.push({uri:d.uri,range:this._textSpanToRange(d,p.textSpan)})}return c}},R=class extends y{async provideDocumentSymbols(t,e){let a=t.uri,o=await this._worker(a);if(t.isDisposed())return;let l=await o.getNavigationTree(a.toString());if(!l||t.isDisposed())return;let m=(s,c)=>({name:s.text,detail:"",kind:w[s.kind]||u.SymbolKind.Variable,range:this._textSpanToRange(t,s.spans[0]),selectionRange:this._textSpanToRange(t,s.spans[0]),tags:[],children:s.childItems?.map(d=>m(d,s.text)),containerName:c});return l.childItems?l.childItems.map(s=>m(s)):[]}},f=(()=>{class i{}return i.unknown="",i.keyword="keyword",i.script="script",i.module="module",i.class="class",i.interface="interface",i.type="type",i.enum="enum",i.variable="var",i.localVariable="local var",i.function="function",i.localFunction="local function",i.memberFunction="method",i.memberGetAccessor="getter",i.memberSetAccessor="setter",i.memberVariable="property",i.constructorImplementation="constructor",i.callSignature="call",i.indexSignature="index",i.constructSignature="construct",i.parameter="parameter",i.typeParameter="type parameter",i.primitiveType="primitive type",i.label="label",i.alias="alias",i.const="const",i.let="let",i.warning="warning",i})(),w=Object.create(null);w[f.module]=u.SymbolKind.Module;w[f.class]=u.SymbolKind.Class;w[f.enum]=u.SymbolKind.Enum;w[f.interface]=u.SymbolKind.Interface;w[f.memberFunction]=u.SymbolKind.Method;w[f.memberVariable]=u.SymbolKind.Property;w[f.memberGetAccessor]=u.SymbolKind.Property;w[f.memberSetAccessor]=u.SymbolKind.Property;w[f.variable]=u.SymbolKind.Variable;w[f.const]=u.SymbolKind.Variable;w[f.localVariable]=u.SymbolKind.Variable;w[f.variable]=u.SymbolKind.Variable;w[f.function]=u.SymbolKind.Function;w[f.localFunction]=u.SymbolKind.Function;var k=class extends y{static _convertOptions(t){return{ConvertTabsToSpaces:t.insertSpaces,TabSize:t.tabSize,IndentSize:t.tabSize,IndentStyle:2,NewLineCharacter:`
|
|
10
|
-
`,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(t,e){return{text:e.newText,range:this._textSpanToRange(t,e.span)}}},E=class extends k{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(t,e,a,o){let l=t.uri,m=t.getOffsetAt({lineNumber:e.startLineNumber,column:e.startColumn}),n=t.getOffsetAt({lineNumber:e.endLineNumber,column:e.endColumn}),s=await this._worker(l);if(t.isDisposed())return;let c=await s.getFormattingEditsForRange(l.toString(),m,n,k._convertOptions(a));if(!(!c||t.isDisposed()))return c.map(p=>this._convertTextChanges(t,p))}},H=class extends k{get autoFormatTriggerCharacters(){return[";","}",`
|
|
11
|
-
`]}async provideOnTypeFormattingEdits(t,e,a,o,l){let m=t.uri,n=t.getOffsetAt(e),s=await this._worker(m);if(t.isDisposed())return;let c=await s.getFormattingEditsAfterKeystroke(m.toString(),n,a,k._convertOptions(o));if(!(!c||t.isDisposed()))return c.map(p=>this._convertTextChanges(t,p))}},V=class extends k{async provideCodeActions(t,e,a,o){let l=t.uri,m=t.getOffsetAt({lineNumber:e.startLineNumber,column:e.startColumn}),n=t.getOffsetAt({lineNumber:e.endLineNumber,column:e.endColumn}),s=k._convertOptions(t.getOptions()),c=a.markers.filter(b=>b.code).map(b=>b.code).map(Number),p=await this._worker(l);if(t.isDisposed())return;let d=await p.getCodeFixesAtPosition(l.toString(),m,n,c,s);return!d||t.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(b=>b.changes.filter(S=>S.isNewFile).length===0).map(b=>this._tsCodeFixActionToMonacoCodeAction(t,a,b)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(t,e,a){let o=[];for(let m of a.changes)for(let n of m.textChanges)o.push({resource:t.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(t,n.span),text:n.newText}});return{title:a.description,edit:{edits:o},diagnostics:e.markers,kind:"quickfix"}}},W=class extends y{constructor(t,e){super(e),this._libFiles=t}async provideRenameEdits(t,e,a,o){let l=t.uri,m=l.toString(),n=t.getOffsetAt(e),s=await this._worker(l);if(t.isDisposed())return;let c=await s.getRenameInfo(m,n,{allowRenameOfImportPath:!1});if(c.canRename===!1)return{edits:[],rejectReason:c.localizedErrorMessage};if(c.fileToRename!==void 0)throw new Error("Renaming files is not supported.");let p=await s.findRenameLocations(m,n,!1,!1,!1);if(!p||t.isDisposed())return;let d=[];for(let g of p){let b=this._libFiles.getOrCreateModel(g.fileName);if(b)d.push({resource:b.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(b,g.textSpan),text:a}});else throw new Error(`Unknown file ${g.fileName}.`)}return{edits:d}}},j=class extends y{async provideInlayHints(t,e,a){let o=t.uri,l=o.toString(),m=t.getOffsetAt({lineNumber:e.startLineNumber,column:e.startColumn}),n=t.getOffsetAt({lineNumber:e.endLineNumber,column:e.endColumn}),s=await this._worker(o);return t.isDisposed()?null:{hints:(await s.provideInlayHints(l,m,n)).map(d=>J(G({},d),{label:d.text,position:t.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(t){switch(t){case"Parameter":return u.InlayHintKind.Parameter;case"Type":return u.InlayHintKind.Type;default:return u.InlayHintKind.Type}}};var $,z;function ms(i){z=Y(i,"typescript")}function ds(i){$=Y(i,"javascript")}function fs(){return new Promise((i,t)=>{if(!$)return t("JavaScript not registered!");i($)})}function gs(){return new Promise((i,t)=>{if(!z)return t("TypeScript not registered!");i(z)})}function Y(i,t){let e=[],a=new F(t,i),o=(...n)=>a.getLanguageServiceWorker(...n),l=new L(o);function m(){let{modeConfiguration:n}=i;Z(e),n.completionItems&&e.push(u.registerCompletionItemProvider(t,new P(o))),n.signatureHelp&&e.push(u.registerSignatureHelpProvider(t,new I(o))),n.hovers&&e.push(u.registerHoverProvider(t,new O(o))),n.documentHighlights&&e.push(u.registerDocumentHighlightProvider(t,new N(o))),n.definitions&&e.push(u.registerDefinitionProvider(t,new K(l,o))),n.references&&e.push(u.registerReferenceProvider(t,new M(l,o))),n.documentSymbols&&e.push(u.registerDocumentSymbolProvider(t,new R(o))),n.rename&&e.push(u.registerRenameProvider(t,new W(l,o))),n.documentRangeFormattingEdits&&e.push(u.registerDocumentRangeFormattingEditProvider(t,new E(o))),n.onTypeFormattingEdits&&e.push(u.registerOnTypeFormattingEditProvider(t,new H(o))),n.codeActions&&e.push(u.registerCodeActionProvider(t,new V(o))),n.inlayHints&&e.push(u.registerInlayHintsProvider(t,new j(o))),n.diagnostics&&e.push(new A(l,i,t,o))}return m(),o}function Z(i){for(;i.length;)i.pop().dispose()}export{y as Adapter,V as CodeActionAdaptor,K as DefinitionAdapter,A as DiagnosticsAdapter,N as DocumentHighlightAdapter,E as FormatAdapter,k as FormatHelper,H as FormatOnTypeAdapter,j as InlayHintsAdapter,f as Kind,L as LibFiles,R as OutlineAdapter,O as QuickInfoAdapter,M as ReferenceAdapter,W as RenameAdapter,I as SignatureHelpAdapter,P as SuggestAdapter,F as WorkerManager,T as flattenDiagnosticMessageText,fs as getJavaScriptWorker,gs as getTypeScriptWorker,ds as setupJavaScript,ms as setupTypeScript};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-Q7L6LLAK.js";var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},n={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=><!~?:&|+\-*\^%;\.,\/]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[<.*>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}};export{e as conf,n as language};
|