dskcode 0.1.47 → 0.1.48

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.
@@ -0,0 +1,12 @@
1
+ import{d as p}from"./chunk-LPD7BHH5.js";p();var Et="ws://127.0.0.1:54006";p();import{mkdir as Te,appendFile as Ie}from"fs/promises";import{fileURLToPath as Oe}from"url";import{join as K,basename as V,sep as C}from"path";var ie="logger",ae=2e3,je=500;function E(){let t=process.env.HOME??process.env.USERPROFILE??"~";return K(t,".dskcode","logs")}function Ae(t){return V(t)||"_root"}var z=class t{static#n=new Set;static async flushAll(){let e=[];for(let n of t.#n)e.push(n.flush());await Promise.allSettled(e)}static async endAllAndFlush(){let e=[];for(let n of t.#n)e.push(n.#c());await Promise.allSettled(e)}#e;#t;#i;#o=Promise.resolve();#s=0;#r=!1;#a=!1;constructor(e,n,o){if(this.#t=o?.enabled??!0,this.#i=Date.now(),!this.#t){this.#e="";return}let r=o?.logsDir??E(),s=Ae(n);this.#e=K(r,s,`${e}.jsonl`),t.#n.add(this)}get logPath(){return this.#e}get enabled(){return this.#t}log(e){if(!this.#t||this.#r||this.#s>=je)return;let n={...e,time:e.time??_e(e.ts),loc:e.loc??ce()};this.#s++,this.#o=this.#o.then(()=>this.#d(n)).catch(()=>{}).finally(()=>this.#s--)}async flush(){this.#r=!0,await this.#o.catch(()=>{}),t.#n.delete(this)}async#c(){this.#t&&(this.#r||(this.#a||(this.logSessionEnd(Date.now()-this.#i),this.#a=!0),await this.flush()))}async#d(e){let n=K(this.#e,"..");await Te(n,{recursive:!0});let o=Ue(e);await Ie(this.#e,o,"utf-8")}logSessionStart(e,n,o,r){this.log({ts:Date.now(),type:"session_start",sessionId:e,cwd:n,model:o,mode:r})}logUserMessage(e){this.log({ts:Date.now(),type:"user_message",content:e})}logAssistantText(e,n){this.log({ts:Date.now(),type:"assistant_text",content:e,round:n})}logReasoning(e,n){this.log({ts:Date.now(),type:"reasoning",content:e,round:n})}logToolCall(e,n,o,r,s){this.log({ts:Date.now(),type:"tool_call",name:e,callId:n,arguments:o,...s!==void 0?{parsedArgs:s}:{},round:r})}logToolResult(e,n,o,r,s,i,d,u){this.log({ts:Date.now(),type:"tool_result",name:e,callId:n,success:o,data:De(r),...s?{error:s}:{},...i!==void 0?{elapsed:i}:{},...u?{schemaIssues:u}:{},round:d})}logUsage(e,n,o,r,s,i){this.log({ts:Date.now(),type:"usage",model:e,promptTokens:n,completionTokens:o,...r!==void 0?{cachedPromptTokens:r}:{},cost:s,round:i})}logError(e,n){this.log({ts:Date.now(),type:"error",message:e,...n?{stack:n}:{}})}logTurnDone(e,n){this.log({ts:Date.now(),type:"turn_done",elapsed:e,toolRounds:n})}logSessionEnd(e){this.log({ts:Date.now(),type:"session_end",elapsed:e})}logReflections(e){this.log({ts:Date.now(),type:"reflection",items:e})}};function De(t){return t.length<=ae?t:t.slice(0,ae)+`...[\u5DF2\u622A\u65AD\uFF0C\u539F\u59CB\u957F\u5EA6 ${t.length}]`}function _e(t){let e=new Date(t),n=(o,r=2)=>String(o).padStart(r,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${n(e.getHours())}:${n(e.getMinutes())}:${n(e.getSeconds())}.${n(e.getMilliseconds(),3)}`}var D=null;function Ne(){if(D!==null)return D;try{let t=Oe(import.meta.url),e=t.split(C),n=e.lastIndexOf("src");D=n>0?e.slice(0,n).join(C):t}catch{D=""}return D}var Me=/\s+at\s+.+?\((.+):(\d+):\d+\)|\s+at\s+(.+):(\d+):\d+/;function ce(){let t;try{let o=new Error;Error.captureStackTrace?.(o,ce),t=o.stack}catch{return{file:"<unknown>",line:0}}if(!t)return{file:"<unknown>",line:0};let e=Ne(),n=t.split(`
2
+ `);for(let o of n){let r=Me.exec(o);if(!r)continue;let s=r[1]??r[3]??"",i=Number(r[2]??r[4]??"0");if(!s)continue;let d=s.replace(/^file:\/\/\//,"").replace(/^file:\/\//,"");if(d.includes(`${C}${ie}${C}`)||d.endsWith(`${C}${ie}`)||d.includes(`${C}node_modules${C}`))continue;let u=d;return e&&d.startsWith(e)&&(u=d.slice(e.length).replace(/^[/\\]/,"")||V(d)),{file:u||V(d),line:i}}return{file:"<unknown>",line:0}}var $e=80,Fe="\u2500".repeat($e);function Ue(t){let e=`[${t.time}] [${t.type}] @ ${t.loc.file}:${t.loc.line}`,n=JSON.stringify(t,null,2);return`${Fe}
3
+ ${e}
4
+ ${n}
5
+
6
+ `}p();p();var We="\u2500".repeat(80);function de(t){return t.split(We).map(e=>e.trim()).filter(e=>e.length>0)}function Be(t){let e=t.split(`
7
+ `),n=e.findIndex(o=>o.trimStart().startsWith("{"));if(n<0)throw new Error("log block: \u627E\u4E0D\u5230 JSON \u8D77\u59CB\u884C");return e.slice(n).join(`
8
+ `)}function le(t){let e;try{e=Be(t)}catch(n){let o=t.slice(0,200);throw new Error(`parseBlock \u5931\u8D25: ${n.message}; block \u9884\u89C8: ${o}`)}return JSON.parse(e)}function q(t){let e=de(t),n=[];for(let o of e)try{n.push(le(o))}catch{}return n}p();import{readdir as ue,readFile as Je,stat as He}from"fs/promises";import{join as G,basename as Mt,sep as $t}from"path";function Ke(t){for(let e of t)if(e.type==="session_start")return{startedAt:e.ts,cwd:e.cwd??"",model:e.model??""};return{startedAt:0,cwd:"",model:""}}async function $(t,e,n){let o=G(t,e,`${n}.jsonl`);try{let[r,s]=await Promise.all([He(o),Je(o,"utf-8")]);return{events:q(s),size:r.size,mtime:r.mtimeMs}}catch(r){if(r.code==="ENOENT")return{events:[],size:0,mtime:0};throw r}}function O(t,e){if(!/^[A-Za-z0-9._-]+$/.test(t))throw new Error(`${e} \u5305\u542B\u975E\u6CD5\u5B57\u7B26: ${t}`)}async function X(t,e=E()){let n;try{n=await ue(e)}catch(s){if(s.code==="ENOENT")return{projects:[],sessions:[]};throw s}let o=[],r=[];for(let s of n){if(!/^[A-Za-z0-9._-]+$/.test(s)||t.projectName&&s!==t.projectName)continue;let i=G(e,s),d;try{d=await ue(i)}catch{continue}let u=!1;for(let v of d){if(!v.endsWith(".jsonl"))continue;let w=v.slice(0,-6);if(/^[A-Za-z0-9._-]+$/.test(w))try{let{events:m,size:x,mtime:B}=await $(e,s,w);if(t.activeOnly){if(m.some(S=>S.type==="session_end"))continue;let I=t.activeStaleMs??10*6e4;if(I>0&&m.length>0){let S=m[m.length-1];if(S&&Date.now()-S.ts>I)continue}}let y=Ke(m);r.push({project:s,sessionId:w,size:x,mtime:B,startedAt:y.startedAt,cwd:y.cwd,model:y.model}),u=!0}catch{}}u&&o.push(s)}return o.sort((s,i)=>s.localeCompare(i)),r.sort((s,i)=>i.startedAt-s.startedAt),{projects:o,sessions:r}}async function F(t,e=E()){O(t.project,"project"),O(t.sessionId,"sessionId");let{events:n,size:o,mtime:r}=await $(e,t.project,t.sessionId),s=n.length,i=Math.max(0,t.fromIndex??0),d=Math.max(1,Math.min(t.limit??200,2e3)),u=n.slice(i,i+d);return{project:t.project,sessionId:t.sessionId,total:s,events:u,hasMore:i+u.length<s,size:o,mtime:r}}async function Y(t,e=E(),n){O(t.project,"project"),O(t.sessionId,"sessionId");let o=G(e,t.project,`${t.sessionId}.jsonl`),r=Math.max(100,Math.min(t.timeoutMs??3e4,12e4)),s=Math.max(50,Math.min(t.pollIntervalMs??300,2e3)),i=Math.max(0,t.fromIndex??0),u=Date.now()+r,v=await $(e,t.project,t.sessionId);if(v.events.length>i)return{project:t.project,sessionId:t.sessionId,events:v.events.slice(i),total:v.events.length,timedOut:!1};for(;;){if(n?.aborted)return{project:t.project,sessionId:t.sessionId,events:[],total:v.events.length,timedOut:!0};if(Date.now()>=u)return{project:t.project,sessionId:t.sessionId,events:[],total:v.events.length,timedOut:!0};if(await new Promise(m=>setTimeout(m,s)),n?.aborted)return{project:t.project,sessionId:t.sessionId,events:[],total:v.events.length,timedOut:!0};let w;try{w=await $(e,t.project,t.sessionId)}catch{continue}if(w.events.length>i)return{project:t.project,sessionId:t.sessionId,events:w.events.slice(i),total:w.events.length,timedOut:!1}}}async function Z(t,e=E()){if(!t.content||!t.content.trim())throw new Error("EMPTY_CONTENT: content \u4E0D\u80FD\u4E3A\u7A7A");O(t.project,"project"),O(t.sessionId,"sessionId");let{SessionRegistry:n}=await import("./session-registry-HSCHBXFO.js"),o=n.get(t.project,t.sessionId);if(!o)throw new Error(`SESSION_NOT_FOUND: \u8FDB\u7A0B\u5185\u6CA1\u6709\u627E\u5230 sessionId=${t.sessionId} (project=${t.project})\u3002\u53EF\u80FD\u8BE5 dskcode \u8FDB\u7A0B\u5DF2\u9000\u51FA\uFF0C\u6216 model \u5207\u6362\u5BFC\u81F4 session \u88AB\u91CD\u5EFA\u3002`);if(o.remoteInput)try{await o.remoteInput.onRemoteUserInput(t.content,"chrome")}catch(s){let i=s instanceof Error?s:new Error(String(s));throw new Error(`REMOTE_REJECTED: ${i.message}`,{cause:i})}else try{for await(let s of o.session.chat(t.content));}catch(s){let i=s instanceof Error?s:new Error(String(s));throw new Error(`CHAT_FAILED: ${i.message}`,{cause:i})}if(o.flushLogger)try{await o.flushLogger()}catch{}else await new Promise(s=>setTimeout(s,50));return{ok:!0,accepted:!0,totalEvents:(await F({project:t.project,sessionId:t.sessionId,fromIndex:0,limit:1},e)).total}}p();import{WebSocketServer as ft}from"ws";import{EventEmitter as pt}from"events";import{copyFile as mt,mkdir as ht,readFile as vt,writeFile as yt}from"fs/promises";import{existsSync as ne}from"fs";import{join as oe}from"path";import{randomUUID as wt}from"crypto";import{readFileSync as Rt}from"fs";import{fileURLToPath as bt}from"url";p();import{existsSync as Ve,watch as ze}from"fs";import{mkdir as U,readFile as _,writeFile as W}from"fs/promises";import{join as R}from"path";var j={defaultProvider:"deepseek",maxTokens:8192,temperature:.7,maxToolRounds:20,providers:[{name:"deepseek",baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"}],tools:[{name:"read_file",enabled:!0},{name:"write_file",enabled:!0},{name:"edit_file",enabled:!0},{name:"bash",enabled:!0},{name:"glob",enabled:!0},{name:"grep",enabled:!0},{name:"ls",enabled:!0},{name:"fetch",enabled:!0}],plugins:[],stock:{symbols:[{code:"sh000001"},{code:"sz399300"},{code:"sh601899"}]},thinking:{enabled:!1,effort:"high"}};function ge(t){if(t)return[t];let e=process.env.HOME??process.env.USERPROFILE??"~";return[R(e,".dskcode","settings.json"),R(process.cwd(),".dskcode","settings.json")]}function qe(t,e){let n={...t};return e.defaultProvider!==void 0&&(n.defaultProvider=e.defaultProvider),e.verbose!==void 0&&(n.verbose=e.verbose),e.maxTokens!==void 0&&(n.maxTokens=e.maxTokens),e.temperature!==void 0&&(n.temperature=e.temperature),e.maxToolRounds!==void 0&&(n.maxToolRounds=e.maxToolRounds),e.budgetLimit!==void 0&&(n.budgetLimit=e.budgetLimit),e.tokenBudgetLimit!==void 0&&(n.tokenBudgetLimit=e.tokenBudgetLimit),e.providers!==void 0&&(n.providers=e.providers),e.tools!==void 0&&(n.tools=e.tools),e.plugins!==void 0&&(n.plugins=e.plugins),e.stock!==void 0&&(n.stock=e.stock),e.voice!==void 0&&(n.voice=e.voice),e.permissions!==void 0&&(n.permissions=e.permissions),e.thinking!==void 0&&(n.thinking=e.thinking),n}var P="DSKCODE_",Ge={[`${P}DEFAULT_PROVIDER`]:"defaultProvider",[`${P}VERBOSE`]:"verbose",[`${P}MAX_TOKENS`]:"maxTokens",[`${P}TEMPERATURE`]:"temperature",[`${P}MAX_TOOL_ROUNDS`]:"maxToolRounds",[`${P}BUDGET_LIMIT`]:"budgetLimit",[`${P}TOKEN_BUDGET_LIMIT`]:"tokenBudgetLimit",[`${P}THINKING`]:"thinking.enabled",[`${P}THINKING_EFFORT`]:"thinking.effort"};function Xe(t){let e={...t,providers:[...t.providers]};for(let[o,r]of Object.entries(Ge)){let s=process.env[o];if(s!==void 0){if(r.startsWith("thinking.")){let i=r.slice(9),d=e.thinking??{enabled:!1,effort:"high"};i==="enabled"?e.thinking={...d,enabled:s==="1"||s.toLowerCase()==="true"}:i==="effort"&&(s==="high"||s==="max")&&(e.thinking={...d,effort:s});continue}switch(r){case"verbose":case"defaultProvider":{e[r]=s;break}case"maxTokens":case"maxToolRounds":case"budgetLimit":case"tokenBudgetLimit":{let i=Number(s);Number.isFinite(i)&&i>=0&&(e[r]=i);break}case"temperature":{let i=Number(s);Number.isFinite(i)&&i>=0&&i<=2&&(e[r]=i);break}}}}let n=process.env.DEEPSEEK_API_KEY;if(n){let o=e.providers.findIndex(r=>r.name==="deepseek");if(o!==-1){let r=e.providers[o];r.apiKey||(e.providers[o]={...r,apiKey:n})}else e.providers.unshift({name:"deepseek",baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash",apiKey:n})}return e}function Qt(t,e){let n={...t,providers:[...t.providers]};if(e.verbose!==void 0&&(n.verbose=e.verbose),e.model!==void 0){let o=n.providers.findIndex(r=>r.name===n.defaultProvider);o!==-1&&(n.providers[o]={...n.providers[o],model:e.model})}return e.maxTokens!==void 0&&e.maxTokens>0&&(n.maxTokens=e.maxTokens),e.temperature!==void 0&&e.temperature>=0&&e.temperature<=2&&(n.temperature=e.temperature),e.budgetLimit!==void 0&&e.budgetLimit>=0&&(n.budgetLimit=e.budgetLimit),e.tokenBudgetLimit!==void 0&&e.tokenBudgetLimit>=0&&(n.tokenBudgetLimit=e.tokenBudgetLimit),n}function Ye(t){let e=[];(!t.providers||t.providers.length===0)&&e.push({field:"providers",message:"\u81F3\u5C11\u9700\u8981\u914D\u7F6E\u4E00\u4E2A Provider\u3002\u8BF7\u901A\u8FC7\u914D\u7F6E\u6587\u4EF6\u6216 DEEPSEEK_API_KEY \u73AF\u5883\u53D8\u91CF\u8BBE\u7F6E\u3002"});let n=["deepseek-v4-flash","deepseek-v4-pro"];for(let o=0;o<t.providers.length;o++){let r=t.providers[o];r.name||e.push({field:`providers[${o}].name`,message:`\u7B2C ${o+1} \u4E2A Provider \u7F3A\u5C11 name \u5B57\u6BB5\u3002`}),r.model?n.includes(r.model)||e.push({field:`providers[${o}].model`,message:`Provider "${r.name||o}" \u7684 model "${r.model}" \u4E0D\u53D7\u652F\u6301\u3002dskcode \u4EC5\u652F\u6301: ${n.join(", ")}`}):e.push({field:`providers[${o}].model`,message:`Provider "${r.name||o}" \u7F3A\u5C11 model \u5B57\u6BB5\u3002`})}return t.defaultProvider&&(t.providers.some(r=>r.name===t.defaultProvider)||e.push({field:"defaultProvider",message:`\u9ED8\u8BA4 Provider "${t.defaultProvider}" \u672A\u5728 providers \u4E2D\u5B9A\u4E49\u3002`})),t.temperature!==void 0&&(t.temperature<0||t.temperature>2)&&e.push({field:"temperature",message:"temperature \u5FC5\u987B\u5728 0.0 ~ 2.0 \u4E4B\u95F4\u3002"}),t.maxTokens!==void 0&&t.maxTokens<1&&e.push({field:"maxTokens",message:"maxTokens \u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 1\u3002"}),t.maxToolRounds!==void 0&&t.maxToolRounds<1&&e.push({field:"maxToolRounds",message:"maxToolRounds \u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 1\u3002"}),t.budgetLimit!==void 0&&t.budgetLimit<0&&e.push({field:"budgetLimit",message:"budgetLimit \u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 0\uFF080 \u8868\u793A\u4E0D\u9650\u5236\uFF09\u3002"}),t.tokenBudgetLimit!==void 0&&t.tokenBudgetLimit<0&&e.push({field:"tokenBudgetLimit",message:"tokenBudgetLimit \u5FC5\u987B\u5927\u4E8E\u7B49\u4E8E 0\uFF080 \u8868\u793A\u4E0D\u9650\u5236\uFF09\u3002"}),e}async function fe(t){let e=ge(t),n=structuredClone(j);for(let o of e)try{let r=await _(o,"utf-8"),s=JSON.parse(r);n=qe(n,s)}catch{}return n=Xe(n),n}async function Q(t){let e=await fe(t),n=Ye(e);return{config:e,errors:n}}function pe(t,e){let n=ge(e).filter(s=>Ve(s));n.length===0&&n.push(R(process.cwd(),".dskcode","settings.json"));let o=[],r;for(let s of n)try{let i=ze(s,d=>{d==="change"&&(r&&clearTimeout(r),r=setTimeout(()=>{(async()=>{try{let u=await fe(e);t(u)}catch{}})()},300))});o.push(i)}catch{}return()=>{r&&clearTimeout(r);for(let s of o)s.close()}}async function en(t){let e=process.env.HOME??process.env.USERPROFILE??"~",n=R(e,".dskcode"),o=R(n,"settings.json");await U(n,{recursive:!0});let r;try{let d=await _(o,"utf-8");r=JSON.parse(d)}catch{r=structuredClone(j)}let s=r.providers??[],i=s.find(d=>d.name==="deepseek");return i?i.apiKey=t:s.push({name:"deepseek",apiKey:t,baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"}),r.providers=s,await W(o,JSON.stringify(r,null,2),"utf-8"),o}async function tn(t){let e=process.env.HOME??process.env.USERPROFILE??"~",n=R(e,".dskcode"),o=R(n,"settings.json");await U(n,{recursive:!0});let r;try{let u=await _(o,"utf-8");r=JSON.parse(u)}catch{r=structuredClone(j)}let s=r.providers??[],i=r.defaultProvider??"deepseek",d=s.find(u=>u.name===i);return d?d.model=t:s.push({name:i,baseUrl:"https://api.deepseek.com",model:t}),r.providers=s,await W(o,JSON.stringify(r,null,2),"utf-8"),o}async function nn(t){let e=process.env.HOME??process.env.USERPROFILE??"~",n=R(e,".dskcode"),o=R(n,"settings.json");await U(n,{recursive:!0});let r;try{let s=await _(o,"utf-8");r=JSON.parse(s)}catch{r=structuredClone(j)}return r.stock={symbols:t},await W(o,JSON.stringify(r,null,2),"utf-8"),o}async function on(){let t=process.env.HOME??process.env.USERPROFILE??"~",e=R(t,".dskcode"),n=R(e,"settings.json");await U(e,{recursive:!0});let o;try{let r=await _(n,"utf-8");o=JSON.parse(r)}catch{return null}return o.permissions!==void 0?null:(o.permissions={tools:{}},await W(n,JSON.stringify(o,null,2),"utf-8"),n)}p();p();import{mkdir as Ze,readFile as ln,writeFile as Qe,unlink as et}from"fs/promises";import{randomUUID as tt}from"crypto";import{existsSync as nt}from"fs";import{join as ot,dirname as st}from"path";import{rename as rt}from"fs";function me(t){let e=t??process.env.HOME??process.env.USERPROFILE??"";return ot(e,".dskcode","config-ui.json")}async function he(t,e){let n=me(e);await Ze(st(n),{recursive:!0});let o={version:1,token:tt(),endpoints:{ws:t},pid:process.pid,startedAt:new Date().toISOString()},r=n+".tmp";return await Qe(r,JSON.stringify(o,null,2)+`
9
+ `,"utf8"),await it(r,n),n}async function ve(t){let e=me(t);if(nt(e))try{await et(e)}catch{}}async function it(t,e){await new Promise((n,o)=>{rt(t,e,r=>r?o(r):n())})}p();import{appendFile as at,mkdir as ct,truncate as dt}from"fs/promises";import{existsSync as lt}from"fs";import{join as ye}from"path";function we(t){let e=t??process.env.HOME??process.env.USERPROFILE??"";return ye(e,".dskcode","wslog.jsonl")}async function Re(t={}){if(t.disabled)return{path:"",log:()=>{},close:async()=>{}};let e=we(t.home);try{await ct(ye(e,".."),{recursive:!0})}catch{return{path:"",log:()=>{},close:async()=>{}}}let n=()=>new Date().toISOString();return{path:e,log(o){let r={ts:n(),pid:process.pid,...o},s;try{s=JSON.stringify(r)+`
10
+ `}catch{return}at(e,s,"utf8").catch(()=>{})},async close(){}}}function be(t){return!t||typeof t!="object"?[]:Object.keys(t)}async function ke(t){let e=we(t);if(e&&lt(e))try{await dt(e,0)}catch{}}function N(t,e=1024){return t?t.length<=e?t:t.slice(0,e)+"\u2026(truncated)":""}var T=null;function ee(){if(T!==null)return T;try{let t=[new URL("../../package.json",import.meta.url),new URL("../../../package.json",import.meta.url)];for(let e of t)try{let n=bt(e),o=Rt(n,"utf8");return T=JSON.parse(o).version??"0.0.0",T}catch{}T="unknown"}catch{T="unknown"}return T}var se=class extends Error{constructor(n,o){super(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5176\u4ED6\u8FDB\u7A0B\u5360\u7528\uFF08\u591A\u534A\u662F\u53E6\u4E00\u4E2A dskcode\uFF09\u3002\u5982\u679C\u662F\u53E6\u4E00\u4EFD dskcode \u5148\u542F\u7684 ws\uFF0C\u8981\u4E48\u5148\u5173\u6389\u5B83\uFF0C\u8981\u4E48\u6539\u672C\u4FA7 host:port\u3002`);this.host=n;this.port=o;this.name="PortInUseError"}host;port};function A(t){if(t)return t;let e=process.env.HOME??process.env.USERPROFILE??"",n=oe(e,".dskcode","settings.json");if(ne(n))return n;let o=oe(process.cwd(),".dskcode","settings.json");return ne(o)?o:n}async function kt(t,e){let n=A(e);await ht(oe(n,".."),{recursive:!0});let o={};try{let s=await vt(n,"utf8"),i=JSON.parse(s);i&&typeof i=="object"&&(o=i)}catch{o=structuredClone(j)}for(let[s,i]of Object.entries(t))i!==void 0&&(o[s]=i);let r=JSON.stringify(o,null,2)+`
11
+ `;if(ne(n))try{await mt(n,n+".bak")}catch{}return await Lt(n,r),n}async function Lt(t,e){let n=[0,200,500,1500,3e3],o;for(let r of n){r>0&&await new Promise(s=>setTimeout(s,r));try{await yt(t,e,"utf8");return}catch(s){if(o=s,process.platform!=="win32")throw s;let i=s.code;if(i!=="EPERM"&&i!=="EACCES"&&i!=="EBUSY")throw s}}throw o}async function Nn(t={}){let e=t.host??"127.0.0.1",n=t.port??54006,o=wt(),r=t.logsDir??E();t.disableWsLog!==!0&&t.truncateWsLogOnStart!==!1&&await ke(t.home);let s=await Re({home:t.home,disabled:t.disableWsLog===!0}),i=new ft({host:e,port:n}),d=new pt,u="config.reloaded",v=0,w=a=>{let g=A(t.configPath),l={configPath:g,source:a},c=Le(y,{kind:"event",method:"event.runtime.reload",payload:l});return d.emit(u,l),s.log({kind:"reload.emit",source:a,configPath:g,subscribers:y.size}),c};function m(a,g,l){te(a,{id:g,ok:!0,result:l});let h=a._socket;s.log({kind:"rpc.out",clientIp:h?.remoteAddress,id:g,ok:!0,resultKeys:l&&typeof l=="object"?Object.keys(l):[]})}function x(a,g,l){te(a,{id:g,ok:!1,error:l});let h=a._socket;s.log({kind:"rpc.err",clientIp:h?.remoteAddress,id:g,code:l?.code,message:N(l?.message,200)})}let B=new Promise((a,g)=>{i.once("listening",()=>{let l=i.address();a({port:l.port})}),i.once("error",l=>{l&&l.code==="EADDRINUSE"?g(new se(e,n)):g(l instanceof Error?l:new Error(String(l)))})});t.autoStart;let y=new Set;i.on("connection",a=>{let g=a._socket,l=g?.remoteAddress??"unknown",c=g?.remotePort??0,h=Date.now();s.log({kind:"client.connect",clientIp:l,clientPort:c});let f={kind:"hello",version:1,configPath:A(t.configPath),authToken:o,dskcodeVersion:ee()};te(a,f),s.log({kind:"client.hello",clientIp:l,clientPort:c}),a.on("message",b=>{Ee(a,b.toString())}),a.on("close",(b,M)=>{y.delete(a);let Ce=M?M.toString():"";s.log({kind:"client.disconnect",clientIp:l,clientPort:c,code:b,reason:N(Ce,200),durationMs:Date.now()-h})}),a.on("error",b=>{y.delete(a),s.log({kind:"client.error",clientIp:l,clientPort:c,message:N(b?.message,200)})}),y.add(a)});let re=pe(async a=>{if(Date.now()<v){s.log({kind:"config.changed",suppressed:!0});return}await Le(y,{kind:"event",method:"event.config.changed",payload:{config:a,configPath:A(t.configPath),source:"file"}});let g=A(t.configPath);d.emit(u,{configPath:g,source:"file"}),s.log({kind:"config.changed",source:"file",configPath:g,keyCount:a&&typeof a=="object"?Object.keys(a).length:0,subscribers:y.size})},t.configPath),{port:I}=await B,S=`ws://${e}:${I}`,J="";t.persistConnectionInfo!==!1&&(t.home&&(process.env.HOME=t.home,process.env.USERPROFILE=t.home),J=await he(S,t.home)),s.log({kind:"server.start",host:e,port:I,url:S,pid:process.pid,dskcodeVersion:ee(),connectionInfoPath:J||null,logPath:s.path||null,truncated:t.disableWsLog!==!0&&t.truncateWsLogOnStart!==!1});let H={ws:i,host:e,port:I,url:S,connectionInfoPath:J,authToken:o,dskcodeVersion:ee(),onConfigChanged:a=>(d.on(u,a),()=>d.off(u,a)),notifyReload:a=>w(a),close:async()=>{s.log({kind:"server.close",reason:"explicit"}),re(),d.removeAllListeners(u);for(let a of y)try{a.close()}catch{}await new Promise(a=>i.close(()=>a())),t.persistConnectionInfo!==!1&&await ve(t.home),await s.close()}};return H.__suppressEchoUntil=a=>{v=a},H;async function Ee(a,g){let l=a._socket,c;try{c=JSON.parse(g)}catch{return s.log({kind:"rpc.in",clientIp:l?.remoteAddress,parseError:!0,preview:N(g,200)}),x(a,0,{code:"BAD_JSON",message:"invalid JSON"})}if(typeof c.id!="number"||typeof c.method!="string")return s.log({kind:"rpc.in",clientIp:l?.remoteAddress,method:c?.method,badShape:!0}),x(a,0,{code:"BAD_REQUEST",message:"id/method missing"});s.log({kind:"rpc.in",clientIp:l?.remoteAddress,id:c.id,method:c.method});let h=c.params??{};if(h.token!==o){let f=h.token;return s.log({kind:"rpc.auth_fail",clientIp:l?.remoteAddress,id:c.id,method:c.method,tokenProvided:typeof f=="string"&&f.length>0,tokenLen:typeof f=="string"?f.length:0}),x(a,c.id,{code:"UNAUTHORIZED",message:"bad token"})}try{switch(c.method){case"config.get":return await m(a,c.id,await Pe(t.configPath));case"config.set":{let f=await Se(h.patch??{},t.configPath,H.__suppressEchoUntil);m(a,c.id,f),await w("api");return}case"config.schema":return m(a,c.id,xe());case"config.watch.subscribe":return m(a,c.id,{subscribed:!0});case"logs.list":{let f=await X(h??{},r);return m(a,c.id,f)}case"logs.read":{let f=await F(h,r);return m(a,c.id,f)}case"logs.tail":{let f=new AbortController,b=()=>f.abort();a.once("close",b);try{let M=await Y(h,r,f.signal);return m(a,c.id,M)}finally{a.off("close",b)}}case"chat.send":{let f=await Z(h,r);return m(a,c.id,f)}case"ping":return m(a,c.id,{pong:Date.now()});default:return x(a,c.id,{code:"UNKNOWN_METHOD",message:`unknown method: ${c.method}`})}}catch(f){let b=f;return x(a,c.id,{code:"INTERNAL",message:b.message??String(f)})}}async function Pe(a){let{config:g,errors:l}=await Q(a);return{config:g,errors:l,configPath:A(a)}}async function Se(a,g,l){l(Date.now()+3e3);let c=await kt(a,g),{config:h,errors:f}=await Q(g);return s.log({kind:"config.set",configPath:c,keys:be(a),keyCount:Object.keys(h).length,errorCount:f.length}),{config:h,errors:f,configPath:c}}function xe(){return{fields:{defaultProvider:{label:"\u9ED8\u8BA4 Provider",type:"string",help:"providers \u5217\u8868\u4E2D\u67D0\u4E2A name"},verbose:{label:"\u8BE6\u7EC6\u65E5\u5FD7",type:"boolean"},maxTokens:{label:"\u6700\u5927 Token \u6570",type:"number",min:1,max:32768},temperature:{label:"\u6E29\u5EA6 (0~2)",type:"number",min:0,max:2,help:"\u8D8A\u9AD8\u8D8A\u53D1\u6563"},maxToolRounds:{label:"\u5355\u4F1A\u8BDD\u6700\u5927\u5DE5\u5177\u8F6E\u6B21",type:"number",min:1,max:100},budgetLimit:{label:"\u6BCF\u65E5\u9884\u7B97 (\u5143, 0=\u4E0D\u9650)",type:"number",min:0},tokenBudgetLimit:{label:"\u6BCF\u65E5 Token \u9884\u7B97 (0=\u4E0D\u9650)",type:"number",min:0},providers:{label:"Provider \u5217\u8868 (\u9AD8\u7EA7)",type:"list-string",help:"\u5EFA\u8BAE\u6539\u7528\u7EC8\u7AEF chat"},tools:{label:"\u5185\u7F6E\u5DE5\u5177 (\u9AD8\u7EA7)",type:"list-string"},plugins:{label:"\u5916\u90E8 MCP \u63D2\u4EF6 (\u9AD8\u7EA7)",type:"list-string"},"stock.symbols":{label:"\u81EA\u9009\u80A1\u4EE3\u7801\u5217\u8868",type:"list-string",help:"\u5982 sh513090 / sz000001"},"voice.appId":{label:"\u8BED\u97F3 App ID",type:"string"},"voice.accessKey":{label:"\u8BED\u97F3 Access Key",type:"string"},"thinking.enabled":{label:"\u6DF1\u5EA6\u601D\u8003",type:"boolean",help:"\u542F\u7528\u540E\u6A21\u578B\u56DE\u7B54\u524D\u4F1A\u8FDB\u884C\u66F4\u957F\u7684\u63A8\u7406\uFF08\u4EC5\u90E8\u5206\u6A21\u578B\u652F\u6301\uFF09"},"thinking.effort":{label:"\u601D\u8003\u5F3A\u5EA6",type:"select",enum:["high","max"],help:"high = \u6807\u51C6\u6DF1\u5EA6, max = \u6700\u5927\u52AA\u529B"},"permissions.default":{label:"\u6743\u9650\u5BA1\u6279\u9ED8\u8BA4\u7B56\u7565",type:"select",enum:["confirm","allow","deny"],help:"\u672A\u547D\u4E2D\u6B63\u5219\u89C4\u5219\u65F6\u7684\u9ED8\u8BA4\u884C\u4E3A"}}}}}async function Le(t,e){let n=JSON.stringify(e);for(let o of t)if(o.readyState===o.OPEN)try{o.send(n)}catch{}}function te(t,e){t.readyState===t.OPEN&&t.send(JSON.stringify(e))}export{j as a,Qt as b,Q as c,en as d,tn as e,nn as f,on as g,Et as h,z as i,Nn as j};
12
+ //# sourceMappingURL=chunk-LG2AWYGC.js.map
@@ -0,0 +1,2 @@
1
+ import{d as i}from"./chunk-LPD7BHH5.js";i();import{basename as a}from"path";var o=class t{static#e=new Map;static register(e,r,n){let s={sessionId:e.id,project:d(e),session:e,flushLogger:r,remoteInput:n,registeredAt:Date.now()};return t.#e.set(e.id,s),s}static unregister(e){t.#e.delete(e)}static get(e,r){let n=t.#e.get(r);if(n&&n.project===e)return n}static list(){return Array.from(t.#e.values())}static clear(){t.#e.clear()}};function d(t){let e=t.cwd??"";return a(e)||"_root"}export{o as a};
2
+ //# sourceMappingURL=chunk-XAWVLVWL.js.map
@@ -0,0 +1,4 @@
1
+ import{h as f,j as a}from"./chunk-LG2AWYGC.js";import"./chunk-XAWVLVWL.js";import{d}from"./chunk-LPD7BHH5.js";d();import{useEffect as h,useState as S}from"react";import{render as x,Box as c,Text as o}from"ink";import l from"chalk";import{jsx as e,jsxs as t}from"react/jsx-runtime";function p({url:n,token:r,infoPath:i,port:s}){return t(c,{flexDirection:"column",paddingX:1,paddingY:1,children:[e(o,{bold:!0,color:"cyan",children:"dskcode config-ui"}),e(o,{dimColor:!0,children:"\u672C\u5730 WebSocket \u670D\u52A1\u5DF2\u542F\u52A8\uFF0C\u7B49\u5F85 Chrome \u6269\u5C55\u8FDE\u63A5"}),t(c,{marginTop:1,flexDirection:"column",children:[t(o,{children:[e(o,{dimColor:!0,children:"endpoint : "}),e(o,{color:"green",children:n})]}),t(o,{children:[e(o,{dimColor:!0,children:"token : "}),e(o,{color:"yellow",children:r})]}),t(o,{children:[e(o,{dimColor:!0,children:"port : "}),e(o,{children:s})]}),t(o,{children:[e(o,{dimColor:!0,children:"info file : "}),e(o,{children:i})]})]}),t(c,{marginTop:1,flexDirection:"column",children:[e(o,{dimColor:!0,children:"\u64CD\u4F5C\u63D0\u793A\uFF1A"}),e(o,{dimColor:!0,children:` \xB7 Chrome \u6269\u5C55\u9ED8\u8BA4\u8FDE\u63A5 ${f}`}),e(o,{dimColor:!0,children:" \xB7 \u6309 Ctrl+C \u9000\u51FA"})]}),t(c,{marginTop:1,children:[e(o,{color:"gray",children:"[dskcode] "}),e(o,{dimColor:!0,children:"listening..."})]})]})}async function y(n){let r=await a({host:n.host??"127.0.0.1",port:n.port??54006,autoStart:!0});console.error(l.cyan(`
2
+ dskcode config-ui`)),console.error(l.dim(` endpoint : ${r.url}`)),console.error(l.dim(` token : ${r.authToken}`)),console.error(l.dim(` info file: ${r.connectionInfoPath}
3
+ `));let{unmount:i}=x(e(p,{url:r.url,token:r.authToken,infoPath:r.connectionInfoPath,port:r.port}),{exitOnCtrlC:!1});await new Promise(s=>{let m=async()=>{i(),await r.close(),s(),process.exit(0)};process.once("SIGINT",()=>{m()}),process.once("SIGTERM",()=>{m()})})}async function U(n={}){let r=await a({host:n.host??"127.0.0.1",port:n.port??54006,autoStart:!0}).catch(i=>{if(i.name==="PortInUseError")return console.error(l.yellow(` \u26A0 ${i.message} Chrome \u6269\u5C55\u65E0\u6CD5\u8FDE\u63A5\u5230\u672C\u8FDB\u7A0B\uFF08\u8FDE\u4E0D\u5230\u5176\u4ED6 dskcode\uFF09\u3002`)),null;throw i});return r?(console.error(l.dim(` [config-ui] ws server listening on ${r.url} (token: ${r.authToken.slice(0,8)}\u2026)`)),r):null}export{p as ConfigUiPanel,U as startConfigServerBackground,y as startConfigUi};
4
+ //# sourceMappingURL=config-ui-LWC4GWEV.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-OJQVGZV3.js";import{a as r}from"./chunk-2JA3PUM5.js";import{d as e}from"./chunk-LPD7BHH5.js";e();var n=Object.freeze(JSON.parse(`{"displayName":"GDResource","name":"gdresource","patterns":[{"include":"#embedded_shader"},{"include":"#embedded_gdscript"},{"include":"#comment"},{"include":"#heading"},{"include":"#key_value"}],"repository":{"comment":{"captures":{"1":{"name":"punctuation.definition.comment.gdresource"}},"match":"(;).*$\\\\n?","name":"comment.line.gdresource"},"data":{"patterns":[{"include":"#comment"},{"begin":"(?<!\\\\w)(\\\\{)\\\\s*","beginCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"end":"\\\\s*(})(?!\\\\w)","endCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"patterns":[{"include":"#key_value"},{"include":"#data"}]},{"begin":"(?<!\\\\w)(\\\\[)\\\\s*","beginCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"end":"\\\\s*(])(?!\\\\w)","endCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"patterns":[{"include":"#data"}]},{"begin":"\\"\\"\\"","end":"\\"\\"\\"","name":"string.quoted.triple.basic.block.gdresource","patterns":[{"match":"\\\\\\\\([\\\\n \\"/\\\\\\\\bfnrt]|u\\\\h{4}|U\\\\h{8})","name":"constant.character.escape.gdresource"},{"match":"\\\\\\\\[^\\\\n\\"/\\\\\\\\bfnrt]","name":"invalid.illegal.escape.gdresource"}]},{"match":"\\"res://[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"support.function.any-method.gdresource"},{"match":"(?<=type=)\\"[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"support.class.library.gdresource"},{"match":"(?<=NodePath\\\\(|parent=|name=)\\"[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"constant.character.escape.gdresource"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.basic.line.gdresource","patterns":[{"match":"\\\\\\\\([\\\\n \\"/\\\\\\\\bfnrt]|u\\\\h{4}|U\\\\h{8})","name":"constant.character.escape.gdresource"},{"match":"\\\\\\\\[^\\\\n\\"/\\\\\\\\bfnrt]","name":"invalid.illegal.escape.gdresource"}]},{"match":"'.*?'","name":"string.quoted.single.literal.line.gdresource"},{"match":"(?<!\\\\w)(true|false)(?!\\\\w)","name":"constant.language.gdresource"},{"match":"(?<!\\\\w)([-+]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[Ee][-+]?[1-9]_?[0-9]*|\\\\.[0-9_]*))(?!\\\\w)","name":"constant.numeric.float.gdresource"},{"match":"(?<!\\\\w)([-+]?(0|([1-9](([0-9]|_[0-9])+)?)))(?!\\\\w)","name":"constant.numeric.integer.gdresource"},{"match":"(?<!\\\\w)([-+]?inf)(?!\\\\w)","name":"constant.numeric.inf.gdresource"},{"match":"(?<!\\\\w)([-+]?nan)(?!\\\\w)","name":"constant.numeric.nan.gdresource"},{"match":"(?<!\\\\w)(0x((\\\\h((_??\\\\h)+)?)))(?!\\\\w)","name":"constant.numeric.hex.gdresource"},{"match":"(?<!\\\\w)(0o[0-7](_?[0-7])*)(?!\\\\w)","name":"constant.numeric.oct.gdresource"},{"match":"(?<!\\\\w)(0b[01](_?[01])*)(?!\\\\w)","name":"constant.numeric.bin.gdresource"},{"begin":"(?<!\\\\w)(Vector2i??|Vector3i??|Color|Rect2i??|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\\\()\\\\s?","beginCaptures":{"1":{"name":"support.class.library.gdresource"}},"end":"\\\\s?(\\\\))","patterns":[{"include":"#key_value"},{"include":"#data"}]},{"begin":"(?<!\\\\w)((?:Ext|Sub)Resource)(\\\\()\\\\s?","beginCaptures":{"1":{"name":"keyword.control.gdresource"}},"end":"\\\\s?(\\\\))","patterns":[{"include":"#key_value"},{"include":"#data"}]}]},"embedded_gdscript":{"begin":"(script/source) = \\"","beginCaptures":{"1":{"name":"variable.other.property.gdresource"}},"end":"\\"","patterns":[{"include":"source.gdscript"}]},"embedded_shader":{"begin":"(code) = \\"","beginCaptures":{"1":{"name":"variable.other.property.gdresource"}},"end":"\\"","name":"meta.embedded.block.gdshader","patterns":[{"include":"source.gdshader"}]},"heading":{"begin":"\\\\[([_a-z]*)\\\\s?","beginCaptures":{"1":{"name":"keyword.control.gdresource"}},"end":"]","patterns":[{"include":"#heading_properties"},{"include":"#data"}]},"heading_properties":{"patterns":[{"match":"(\\\\s*[-A-Z_a-z][-0-9A-Z_a-z]*\\\\s*=)(?=\\\\s*$)","name":"invalid.illegal.noValue.gdresource"},{"begin":"\\\\s*([-A-Z_a-z]\\\\S*|\\".+\\"|'.+'|[0-9]+)\\\\s*(=)\\\\s*","beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}},"end":"($|(?==)|,?|\\\\s*(?=}))","patterns":[{"include":"#data"}]}]},"key_value":{"patterns":[{"match":"(\\\\s*[-A-Z_a-z][-0-9A-Z_a-z]*\\\\s*=)(?=\\\\s*$)","name":"invalid.illegal.noValue.gdresource"},{"begin":"\\\\s*([-A-Z_a-z]\\\\S*|\\".+\\"|'.+'|[0-9]+)\\\\s*(=)\\\\s*","beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}},"end":"($|(?==)|,|\\\\s*(?=}))","patterns":[{"include":"#data"}]}]}},"scopeName":"source.gdresource","embeddedLangs":["gdshader","gdscript"],"aliases":["tscn","tres"]}`)),d=[...r,...a,n];export{d as default};
2
- //# sourceMappingURL=gdresource-4NUZ6YCX.js.map
1
+ import{a as r}from"./chunk-2JA3PUM5.js";import{a}from"./chunk-OJQVGZV3.js";import{d as e}from"./chunk-LPD7BHH5.js";e();var n=Object.freeze(JSON.parse(`{"displayName":"GDResource","name":"gdresource","patterns":[{"include":"#embedded_shader"},{"include":"#embedded_gdscript"},{"include":"#comment"},{"include":"#heading"},{"include":"#key_value"}],"repository":{"comment":{"captures":{"1":{"name":"punctuation.definition.comment.gdresource"}},"match":"(;).*$\\\\n?","name":"comment.line.gdresource"},"data":{"patterns":[{"include":"#comment"},{"begin":"(?<!\\\\w)(\\\\{)\\\\s*","beginCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"end":"\\\\s*(})(?!\\\\w)","endCaptures":{"1":{"name":"punctuation.definition.table.inline.gdresource"}},"patterns":[{"include":"#key_value"},{"include":"#data"}]},{"begin":"(?<!\\\\w)(\\\\[)\\\\s*","beginCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"end":"\\\\s*(])(?!\\\\w)","endCaptures":{"1":{"name":"punctuation.definition.array.gdresource"}},"patterns":[{"include":"#data"}]},{"begin":"\\"\\"\\"","end":"\\"\\"\\"","name":"string.quoted.triple.basic.block.gdresource","patterns":[{"match":"\\\\\\\\([\\\\n \\"/\\\\\\\\bfnrt]|u\\\\h{4}|U\\\\h{8})","name":"constant.character.escape.gdresource"},{"match":"\\\\\\\\[^\\\\n\\"/\\\\\\\\bfnrt]","name":"invalid.illegal.escape.gdresource"}]},{"match":"\\"res://[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"support.function.any-method.gdresource"},{"match":"(?<=type=)\\"[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"support.class.library.gdresource"},{"match":"(?<=NodePath\\\\(|parent=|name=)\\"[^\\"\\\\\\\\]*(?:\\\\\\\\.[^\\"\\\\\\\\]*)*\\"","name":"constant.character.escape.gdresource"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.basic.line.gdresource","patterns":[{"match":"\\\\\\\\([\\\\n \\"/\\\\\\\\bfnrt]|u\\\\h{4}|U\\\\h{8})","name":"constant.character.escape.gdresource"},{"match":"\\\\\\\\[^\\\\n\\"/\\\\\\\\bfnrt]","name":"invalid.illegal.escape.gdresource"}]},{"match":"'.*?'","name":"string.quoted.single.literal.line.gdresource"},{"match":"(?<!\\\\w)(true|false)(?!\\\\w)","name":"constant.language.gdresource"},{"match":"(?<!\\\\w)([-+]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[Ee][-+]?[1-9]_?[0-9]*|\\\\.[0-9_]*))(?!\\\\w)","name":"constant.numeric.float.gdresource"},{"match":"(?<!\\\\w)([-+]?(0|([1-9](([0-9]|_[0-9])+)?)))(?!\\\\w)","name":"constant.numeric.integer.gdresource"},{"match":"(?<!\\\\w)([-+]?inf)(?!\\\\w)","name":"constant.numeric.inf.gdresource"},{"match":"(?<!\\\\w)([-+]?nan)(?!\\\\w)","name":"constant.numeric.nan.gdresource"},{"match":"(?<!\\\\w)(0x((\\\\h((_??\\\\h)+)?)))(?!\\\\w)","name":"constant.numeric.hex.gdresource"},{"match":"(?<!\\\\w)(0o[0-7](_?[0-7])*)(?!\\\\w)","name":"constant.numeric.oct.gdresource"},{"match":"(?<!\\\\w)(0b[01](_?[01])*)(?!\\\\w)","name":"constant.numeric.bin.gdresource"},{"begin":"(?<!\\\\w)(Vector2i??|Vector3i??|Color|Rect2i??|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\\\()\\\\s?","beginCaptures":{"1":{"name":"support.class.library.gdresource"}},"end":"\\\\s?(\\\\))","patterns":[{"include":"#key_value"},{"include":"#data"}]},{"begin":"(?<!\\\\w)((?:Ext|Sub)Resource)(\\\\()\\\\s?","beginCaptures":{"1":{"name":"keyword.control.gdresource"}},"end":"\\\\s?(\\\\))","patterns":[{"include":"#key_value"},{"include":"#data"}]}]},"embedded_gdscript":{"begin":"(script/source) = \\"","beginCaptures":{"1":{"name":"variable.other.property.gdresource"}},"end":"\\"","patterns":[{"include":"source.gdscript"}]},"embedded_shader":{"begin":"(code) = \\"","beginCaptures":{"1":{"name":"variable.other.property.gdresource"}},"end":"\\"","name":"meta.embedded.block.gdshader","patterns":[{"include":"source.gdshader"}]},"heading":{"begin":"\\\\[([_a-z]*)\\\\s?","beginCaptures":{"1":{"name":"keyword.control.gdresource"}},"end":"]","patterns":[{"include":"#heading_properties"},{"include":"#data"}]},"heading_properties":{"patterns":[{"match":"(\\\\s*[-A-Z_a-z][-0-9A-Z_a-z]*\\\\s*=)(?=\\\\s*$)","name":"invalid.illegal.noValue.gdresource"},{"begin":"\\\\s*([-A-Z_a-z]\\\\S*|\\".+\\"|'.+'|[0-9]+)\\\\s*(=)\\\\s*","beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}},"end":"($|(?==)|,?|\\\\s*(?=}))","patterns":[{"include":"#data"}]}]},"key_value":{"patterns":[{"match":"(\\\\s*[-A-Z_a-z][-0-9A-Z_a-z]*\\\\s*=)(?=\\\\s*$)","name":"invalid.illegal.noValue.gdresource"},{"begin":"\\\\s*([-A-Z_a-z]\\\\S*|\\".+\\"|'.+'|[0-9]+)\\\\s*(=)\\\\s*","beginCaptures":{"1":{"name":"variable.other.property.gdresource"},"2":{"name":"punctuation.definition.keyValue.gdresource"}},"end":"($|(?==)|,|\\\\s*(?=}))","patterns":[{"include":"#data"}]}]}},"scopeName":"source.gdresource","embeddedLangs":["gdshader","gdscript"],"aliases":["tscn","tres"]}`)),d=[...r,...a,n];export{d as default};
2
+ //# sourceMappingURL=gdresource-A6NTYFLM.js.map