@sylphx/flow 0.2.11 → 0.2.12
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/README.md +36 -0
- package/dist/chunk-01gv4qey.js +4 -0
- package/dist/chunk-01gv4qey.js.map +11 -0
- package/dist/{chunk-f9yb2zk3.js → chunk-3m9whg4q.js} +2 -2
- package/dist/{chunk-f9yb2zk3.js.map → chunk-3m9whg4q.js.map} +1 -1
- package/dist/{chunk-sgafqzer.js → chunk-3w6pd43t.js} +3 -3
- package/dist/{chunk-sgafqzer.js.map → chunk-3w6pd43t.js.map} +2 -2
- package/dist/{chunk-d6k94684.js → chunk-4nm4ere4.js} +3 -3
- package/dist/{chunk-d6k94684.js.map → chunk-4nm4ere4.js.map} +1 -1
- package/dist/{chunk-ceyg2zjg.js → chunk-4vrj3f8r.js} +3 -3
- package/dist/{chunk-ceyg2zjg.js.map → chunk-4vrj3f8r.js.map} +1 -1
- package/dist/chunk-5njgv5k5.js +161 -0
- package/dist/{chunk-rsagxdqj.js.map → chunk-5njgv5k5.js.map} +4 -6
- package/dist/{chunk-6eb5a8kv.js → chunk-67n29s4q.js} +4 -4
- package/dist/chunk-67n29s4q.js.map +10 -0
- package/dist/{chunk-66qzap9m.js → chunk-86ce45n6.js} +2 -2
- package/dist/{chunk-66qzap9m.js.map → chunk-86ce45n6.js.map} +1 -1
- package/dist/{chunk-fyvtp08n.js → chunk-99pz5wm0.js} +2 -2
- package/dist/{chunk-fyvtp08n.js.map → chunk-99pz5wm0.js.map} +1 -1
- package/dist/chunk-d409xn8f.js +6 -0
- package/dist/{chunk-cjy100rr.js.map → chunk-d409xn8f.js.map} +2 -2
- package/dist/chunk-g0qpndpd.js +23 -0
- package/dist/{chunk-1ej6vegq.js.map → chunk-g0qpndpd.js.map} +5 -5
- package/dist/{chunk-51kpynby.js → chunk-g4baca7p.js} +3 -3
- package/dist/{chunk-51kpynby.js.map → chunk-g4baca7p.js.map} +1 -1
- package/dist/chunk-gc66xe7z.js +4 -0
- package/dist/{chunk-8ep9gk6d.js.map → chunk-gc66xe7z.js.map} +2 -2
- package/dist/{chunk-2nfq57ym.js → chunk-hj6qtsqp.js} +2 -2
- package/dist/{chunk-2nfq57ym.js.map → chunk-hj6qtsqp.js.map} +2 -2
- package/dist/{chunk-etqfkn4f.js → chunk-jbd95k1f.js} +3 -3
- package/dist/{chunk-etqfkn4f.js.map → chunk-jbd95k1f.js.map} +1 -1
- package/dist/{chunk-z61qdct1.js → chunk-kn908zkk.js} +2 -2
- package/dist/{chunk-z61qdct1.js.map → chunk-kn908zkk.js.map} +1 -1
- package/dist/{chunk-rvx8bgqk.js → chunk-mw13a082.js} +3 -3
- package/dist/{chunk-rvx8bgqk.js.map → chunk-mw13a082.js.map} +1 -1
- package/dist/chunk-nke51f3c.js +4 -0
- package/dist/chunk-nke51f3c.js.map +10 -0
- package/dist/{chunk-ny1s8fnh.js → chunk-ns5atzyz.js} +2 -2
- package/dist/{chunk-ny1s8fnh.js.map → chunk-ns5atzyz.js.map} +1 -1
- package/dist/chunk-pp4r3hp4.js +105 -0
- package/dist/chunk-pp4r3hp4.js.map +27 -0
- package/dist/{chunk-372bgp30.js → chunk-q4nh3vst.js} +3 -3
- package/dist/{chunk-372bgp30.js.map → chunk-q4nh3vst.js.map} +1 -1
- package/dist/{chunk-585jp0rg.js → chunk-q5gqgs0p.js} +3 -3
- package/dist/chunk-q5gqgs0p.js.map +10 -0
- package/dist/{chunk-f676awyz.js → chunk-s9bsh0gp.js} +3 -3
- package/dist/{chunk-f676awyz.js.map → chunk-s9bsh0gp.js.map} +1 -1
- package/dist/chunk-ss51dw5h.js +27 -0
- package/dist/{chunk-s323r5xg.js.map → chunk-ss51dw5h.js.map} +5 -5
- package/dist/{chunk-mtrcdhzn.js → chunk-xs370t8p.js} +3 -3
- package/dist/{chunk-mtrcdhzn.js.map → chunk-xs370t8p.js.map} +8 -8
- package/dist/chunk-xtrn4wn0.js +3 -0
- package/dist/{chunk-b0047ggx.js.map → chunk-xtrn4wn0.js.map} +2 -2
- package/dist/{chunk-7h737bp8.js → chunk-xvfz960r.js} +3 -3
- package/dist/{chunk-7h737bp8.js.map → chunk-xvfz960r.js.map} +1 -1
- package/dist/chunk-xytc0fks.js +27 -0
- package/dist/{chunk-pzp2kw7j.js.map → chunk-xytc0fks.js.map} +2 -2
- package/dist/chunk-yxv7hqse.js +23 -0
- package/dist/chunk-yxv7hqse.js.map +11 -0
- package/dist/chunk-zv5y8yfq.js +19 -0
- package/dist/chunk-zv5y8yfq.js.map +11 -0
- package/dist/index.js +278 -285
- package/dist/index.js.map +34 -30
- package/drizzle/0002_lyrical_random.sql +2 -0
- package/drizzle/0003_romantic_lockjaw.sql +4 -0
- package/drizzle/0004_blushing_meteorite.sql +6 -0
- package/drizzle/meta/0002_snapshot.json +920 -0
- package/drizzle/meta/0003_snapshot.json +920 -0
- package/drizzle/meta/0004_snapshot.json +921 -0
- package/drizzle/meta/_journal.json +21 -0
- package/package.json +4 -1
- package/dist/chunk-057m762a.js +0 -4
- package/dist/chunk-057m762a.js.map +0 -10
- package/dist/chunk-1ej6vegq.js +0 -23
- package/dist/chunk-585jp0rg.js.map +0 -10
- package/dist/chunk-5hcagq8j.js +0 -107
- package/dist/chunk-5hcagq8j.js.map +0 -25
- package/dist/chunk-6eb5a8kv.js.map +0 -10
- package/dist/chunk-8ep9gk6d.js +0 -4
- package/dist/chunk-b0047ggx.js +0 -3
- package/dist/chunk-cjy100rr.js +0 -6
- package/dist/chunk-dpba9y5x.js +0 -23
- package/dist/chunk-dpba9y5x.js.map +0 -11
- package/dist/chunk-pzp2kw7j.js +0 -27
- package/dist/chunk-r19ma0z2.js +0 -19
- package/dist/chunk-r19ma0z2.js.map +0 -10
- package/dist/chunk-rsagxdqj.js +0 -161
- package/dist/chunk-s323r5xg.js +0 -27
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import{Tb as U,Wb as X}from"./chunk-3m9whg4q.js";async function Y$($,b,q){let{AI_PROVIDERS:G}=await import("./chunk-67n29s4q.js"),W=q.map((z)=>({label:z.label,value:z.key}));$.sendMessage(`Configure ${G[b].name} - Select setting:`);let H=await $.waitForInput({type:"selection",questions:[{id:"key",question:"Which setting do you want to configure?",options:W}]});return(typeof H==="object"&&!Array.isArray(H)?H.key:"")||null}async function Z$($,b,q){let G;if(q?.type==="boolean"){$.sendMessage(`Select value for ${b}:`);let W=await $.waitForInput({type:"selection",questions:[{id:"value",question:`${q.label}:`,options:[{label:"true",value:"true"},{label:"false",value:"false"}]}]});G=typeof W==="object"&&!Array.isArray(W)?W.value:""}else{$.sendMessage(`Enter value for ${b}:`);let W=await $.waitForInput({type:"text",placeholder:`Enter ${b}...`});G=typeof W==="string"?W:""}return G||null}async function u($,b,q,G,W){let{AI_PROVIDERS:H}=await import("./chunk-67n29s4q.js"),J=$.getConfig(),z={...J,providers:{...J.providers,[b]:{...J.providers?.[b],[q]:G}}};if(!J?.defaultProvider)z.defaultProvider=b;$.setAIConfig(z),await $.saveConfig(z);let h=W.find((Q)=>Q.key===q)?.secret?"***":G;return`Set ${H[b].name} ${q} to: ${h}`}async function w($,b){let{getProvider:q}=await import("./chunk-xs370t8p.js"),W=q(b).getConfigSchema(),H=await Y$($,b,W);if(!H)return"Configuration cancelled.";let J=W.find((F)=>F.key===H),z=await Z$($,H,J);if(!z)return"Value is required.";return await u($,b,H,z,W)}async function S($,b){return await w($,b)}async function h$($){let{AI_PROVIDERS:b}=await import("./chunk-67n29s4q.js"),{getProvider:q}=await import("./chunk-xs370t8p.js"),G=$.getConfig();return Object.values(b).map((W)=>{let H=!1;try{let J=q(W.id),z=G?.providers?.[W.id];H=z?J.isConfigured(z):!1}catch{}return{label:`${W.name} ${H?"✓":""}`,value:W.id}})}async function p($,b,q){let G=await h$($);$.sendMessage(b);let W=await $.waitForInput({type:"selection",questions:[{id:"provider",question:q,options:G}]});return(typeof W==="object"&&!Array.isArray(W)?W.provider:"")||null}async function K$($,b,q=!0){let{AI_PROVIDERS:G}=await import("./chunk-67n29s4q.js"),{getProvider:W}=await import("./chunk-xs370t8p.js"),H=$.getConfig(),J=W(b),z=H?.providers?.[b];if(z&&J.isConfigured(z))return{success:!0,config:z};if(!q)return{success:!1,message:`${G[b].name} is not configured. Use: /provider set ${b}`};$.sendMessage(`${G[b].name} is not configured yet.`);let F=await $.waitForInput({type:"selection",questions:[{id:"configure",question:"Do you want to configure it now?",options:[{label:"Yes, configure now",value:"yes"},{label:"No, cancel",value:"no"}]}]});if(!(typeof F==="object"&&!Array.isArray(F)?F.configure==="yes":!1))return{success:!1,message:"Cancelled. You can configure later using: /provider set"};let Q=await S($,b),Z=$.getConfig()?.providers?.[b];if(!Z||!J.isConfigured(Z))return{success:!1,message:`${Q}
|
|
2
|
+
|
|
3
|
+
Provider still not fully configured. Please continue configuration with: /provider set ${b}`};return $.sendMessage(Q),{success:!0,config:Z}}async function M$($,b,q){let{AI_PROVIDERS:G}=await import("./chunk-67n29s4q.js"),H={...$.getConfig(),defaultProvider:b},{getDefaultModel:J}=await import("./chunk-xytc0fks.js"),z=await J(b,q);if(!z)return`Failed to get default model for ${G[b].name}`;H.providers={...H.providers,[b]:{...q,"default-model":z}},$.setAIConfig(H),await $.saveConfig(H),$.setUISelectedProvider(b),$.setUISelectedModel(z);let F=$.getCurrentSessionId();if(F)$.updateSessionProvider(F,b,z);else $.createSession(b,z);return`Now using ${G[b].name} with model: ${z}`}async function P($,b,q=!0){let G=await K$($,b,q);if(!G.success)return G.message;return await M$($,b,G.config)}var N$={id:"provider",label:"/provider",description:"Manage AI providers",args:[{name:"action",description:'Action: "use" or "set"',required:!1,loadOptions:async($)=>{return[{id:"use",label:"use",value:"use"},{id:"set",label:"set",value:"set"}]}},{name:"provider-name",description:"Provider name (anthropic, openai, google, openrouter)",required:!1,loadOptions:async($)=>{let{AI_PROVIDERS:b}=await import("./chunk-67n29s4q.js");return Object.values(b).map((q)=>({id:q.id,label:q.name,value:q.id}))}},{name:"key",description:"Setting key (for set action)",required:!1,loadOptions:async($)=>{let b=$[1];if(!b)return[];try{let{getProvider:q}=await import("./chunk-xs370t8p.js");return q(b).getConfigSchema().map((H)=>({id:H.key,label:H.label,value:H.key}))}catch(q){return[]}}},{name:"value",description:"Setting value (for set action)",required:!1,loadOptions:async($)=>{let b=$[1],q=$[2];if(!b||!q)return[];try{let{getProvider:G}=await import("./chunk-xs370t8p.js");if(G(b).getConfigSchema().find((z)=>z.key===q)?.type==="boolean")return[{id:"true",label:"true",value:"true"},{id:"false",label:"false",value:"false"}];return[]}catch(G){return[]}}}],execute:async($)=>{let{AI_PROVIDERS:b}=await import("./chunk-67n29s4q.js");if($.args.length===0){$.sendMessage("What do you want to do?");let q=await $.waitForInput({type:"selection",questions:[{id:"action",question:"Select action:",options:[{label:"Use a provider",value:"use"},{label:"Configure a provider",value:"set"}]}]}),G=typeof q==="object"&&!Array.isArray(q)?q.action:"";if(!G)return"Action cancelled.";let W=await p($,G==="use"?"Which provider do you want to use?":"Which provider do you want to configure?",G==="use"?"Select provider to use:":"Select provider to configure:");if(!W)return"Provider selection cancelled.";if(G==="use")return await P($,W,!0);else return await S($,W)}if($.args.length===1&&$.args[0]==="use"){let q=await p($,"Which provider do you want to use?","Select provider:");if(!q)return"Provider selection cancelled.";return await P($,q,!0)}if($.args.length===2&&$.args[0]==="use"){let q=$.args[1];if(!(q in b))return`Invalid provider: ${q}. Available: ${Object.keys(b).join(", ")}`;return await P($,q,!1)}if($.args.length===1&&$.args[0]==="set"){let{AI_PROVIDERS:q}=await import("./chunk-67n29s4q.js"),G=Object.values(q).map((J)=>({label:J.name,value:J.id}));$.sendMessage("Which provider do you want to configure?");let W=await $.waitForInput({type:"selection",questions:[{id:"provider",question:"Select provider:",options:G}]}),H=typeof W==="object"&&!Array.isArray(W)?W.provider:"";if(!H)return"Provider selection cancelled.";return await w($,H)}if($.args.length===2&&$.args[0]==="set"){let q=$.args[1];if(!(q in b))return`Invalid provider: ${q}. Available: ${Object.keys(b).join(", ")}`;return await w($,q)}if($.args.length>=4&&$.args[0]==="set"){let q=$.args[1],G=$.args[2],W=$.args.slice(3).join(" ");if(!(q in b))return`Invalid provider: ${q}. Available: ${Object.keys(b).join(", ")}`;let{getProvider:H}=await import("./chunk-xs370t8p.js"),z=H(q).getConfigSchema(),F=z.map((h)=>h.key);if(!F.includes(G))return`Invalid key: ${G}. Valid keys for ${q}: ${F.join(", ")}`;return await u($,q,G,W,z)}return`Usage:
|
|
4
|
+
/provider - Select action and provider
|
|
5
|
+
/provider use - Select provider to use
|
|
6
|
+
/provider use [name] - Switch to provider
|
|
7
|
+
/provider set - Configure a provider
|
|
8
|
+
/provider set [name] - Configure specific provider
|
|
9
|
+
/provider set [name] [key] [value] - Set provider config directly`}},l=N$;var L$={id:"model",label:"/model",description:"Switch AI model",args:[{name:"model-name",description:"Model to switch to",required:!1,loadOptions:async($,b)=>{try{let q=b?.getConfig();if(!q?.providers)return[];let W=b?.getCurrentSession()?.provider||q.defaultProvider;if(!W)return[];let H=q.providers[W];if(!H)return[];try{let{fetchModels:J}=await import("./chunk-nke51f3c.js");return(await J(W,H)).map((F)=>({id:F.id,label:F.name,value:F.id}))}catch(J){if(b)b.addLog(`Failed to fetch models for ${W}: ${J instanceof Error?J.message:String(J)}`);return[]}}catch(q){if(b)b.addLog(`Error loading models: ${q instanceof Error?q.message:String(q)}`);return[]}}}],execute:async($)=>{let b;if($.args.length===0)try{let z=$.getConfig();if(!z?.providers)return"No providers configured. Please configure a provider first.";let h=$.getCurrentSession()?.provider||z.defaultProvider;if(!h)return"No provider selected. Use /provider to select a provider first.";let Q=z.providers[h];if(!Q)return`Provider ${h} is not configured.`;let K=[];try{let{fetchModels:L}=await import("./chunk-nke51f3c.js"),M=await L(h,Q);K=M.map((D)=>({label:D.name,value:D.id})),$.addLog(`Loaded ${M.length} models from ${h}`)}catch(L){let M=L instanceof Error?L.message:String(L);return $.addLog(`Failed to fetch models for ${h}: ${M}`),`Failed to load models from ${h}: ${M}`}if(K.length===0)return`No models available for ${h}`;$.sendMessage("Which model do you want to use?");let Z=await $.waitForInput({type:"selection",questions:[{id:"model",question:"Which model do you want to use?",options:K}]});b=typeof Z==="object"&&!Array.isArray(Z)?Z.model:""}catch(z){return`Failed to load models: ${z instanceof Error?z.message:String(z)}`}else b=$.args[0];let q=$.getCurrentSession(),G=$.getConfig(),W=q?.provider||G?.defaultProvider;if(!W)return"No provider configured. Please configure a provider first.";let H={...G,defaultModel:b,providers:{...G.providers,[W]:{...G.providers?.[W],"default-model":b}}};$.setAIConfig(H),await $.saveConfig(H);let J=$.getCurrentSessionId();if(J)$.updateSessionModel(J,b);else $.createSession(W,b);return`Switched to model: ${b}`}},I=L$;var V$={id:"logs",label:"/logs",description:"View debug logs",execute:async($)=>{return $.navigateTo("logs"),"Opening debug logs..."}},v=V$;var j$={id:"help",label:"/help",description:"Show available commands",execute:async($)=>{return`Available commands:
|
|
10
|
+
${$.getCommands().map((G)=>{let W=G.args?` ${G.args.map((H)=>`[${H.name}]`).join(" ")}`:"";return`${G.label}${W} - ${G.description}`}).join(`
|
|
11
|
+
`)}`}},m=j$;var O$={id:"survey",label:"/survey",description:"Test multi-question selection (demo)",execute:async($)=>{$.sendMessage("Let me ask you a few questions...");let b=await $.waitForInput({type:"selection",questions:[{id:"language",question:"What is your favorite programming language?",options:[{label:"TypeScript"},{label:"JavaScript"},{label:"Python"},{label:"Rust"},{label:"Go"}]},{id:"framework",question:"Which framework do you prefer?",options:[{label:"React"},{label:"Vue"},{label:"Angular"},{label:"Svelte"},{label:"Solid"}]},{id:"editor",question:"What is your favorite code editor?",options:[{label:"Visual Studio Code"},{label:"Vim/Neovim"},{label:"Emacs"},{label:"Sublime Text"},{label:"Atom"}]}]});if(typeof b==="object"&&!Array.isArray(b))return`Survey completed! Your answers: ${Object.entries(b).map(([G,W])=>`${G}: ${W}`).join(", ")}`;return"Survey cancelled."}},g=O$;var _$={id:"context",label:"/context",description:"Display context window usage and token breakdown",execute:async($)=>{let{countTokens:b,formatTokenCount:q}=await import("./chunk-q5gqgs0p.js"),{getSystemPrompt:G}=await import("./chunk-yxv7hqse.js"),{getAISDKTools:W}=await import("./chunk-ss51dw5h.js"),H=$.getCurrentSession();if(!H)return"No active session. Start chatting first to see context usage.";let J=H.model,F=((Y)=>{if(Y.includes("gpt-4")){if(Y.includes("32k")||Y.includes("turbo"))return 128000;if(Y.includes("vision"))return 128000;return 8192}if(Y.includes("gpt-3.5")){if(Y.includes("16k"))return 16385;return 4096}if(Y.includes("claude-3")){if(Y.includes("opus"))return 200000;if(Y.includes("sonnet"))return 200000;if(Y.includes("haiku"))return 200000}return 200000})(J);$.addLog(`[Context] Calculating token counts for ${J} (limit: ${q(F)})...`);let h=G(),Q=await b(h,J),{getEnabledRulesContent:K}=await import("./chunk-d409xn8f.js"),{getCurrentSystemPrompt:Z}=await import("./chunk-xvfz960r.js"),L="You are Sylphx, an AI development assistant.",M={};try{M["Base prompt"]=await b(L,J);let Y=K();if(Y)M.Rules=await b(Y,J);let N=Z();M["Agent prompt"]=await b(N,J)}catch(Y){$.addLog(`[Context] Failed to calculate system prompt breakdown: ${Y}`)}let D=W(),A={},V=0;for(let[Y,N]of Object.entries(D)){let j={name:Y,description:N.description||"",parameters:N.parameters||{}},O=JSON.stringify(j,null,0),T=await b(O,J);A[Y]=T,V+=T}let y=0;for(let Y of H.messages){let N=Y.content;if(Y.attachments&&Y.attachments.length>0)try{let{readFile:O}=await import("node:fs/promises"),C=(await Promise.all(Y.attachments.map(async(_)=>{try{let k=await O(_.path,"utf8");return{path:_.relativePath,content:k}}catch{return{path:_.relativePath,content:"[Error reading file]"}}}))).map((_)=>`
|
|
12
|
+
|
|
13
|
+
<file path="${_.path}">
|
|
14
|
+
${_.content}
|
|
15
|
+
</file>`).join("");N+=C}catch(O){console.warn("[Context] Failed to read attachments for token count:",O)}let j=await b(N,J);y+=j}let E=Q+V+y,B=F-E,R=Math.floor(F*0.225),f=B-R,e=(E/F*100).toFixed(1),$$=(Q/F*100).toFixed(1),b$=(V/F*100).toFixed(1),q$=(y/F*100).toFixed(1),W$=(f/F*100).toFixed(1),G$=(R/F*100).toFixed(1),H$=()=>{let N=Math.floor(Q/F*30),j=Math.floor(V/F*30),O=Math.floor(y/F*30),C=30-(N+j+O),_="█".repeat(N)+"░".repeat(30-N),k="░".repeat(N)+"█".repeat(j)+"░".repeat(30-N-j),X$="░".repeat(N+j)+"█".repeat(O)+"░".repeat(C);return[_,k,X$]},[z$,F$,J$]=H$(),Q$=Object.entries(A).sort((Y,N)=>N[1]-Y[1]).map(([Y,N])=>` ${Y}: ${q(N)} tokens`).join(`
|
|
16
|
+
`),U$=Object.entries(M).map(([Y,N])=>` ${Y}: ${q(N)} tokens`).join(`
|
|
17
|
+
`);return`
|
|
18
|
+
Context Usage: ${q(E)}/${q(F)} tokens (${e}%)
|
|
19
|
+
Model: ${J}
|
|
20
|
+
|
|
21
|
+
Visual Breakdown:
|
|
22
|
+
${z$} System prompt: ${q(Q)} (${$$}%)
|
|
23
|
+
${F$} Tools: ${q(V)} (${b$}%)
|
|
24
|
+
${J$} Messages: ${q(y)} (${q$}%)
|
|
25
|
+
|
|
26
|
+
Available Space:
|
|
27
|
+
• Free: ${q(f)} tokens (${W$}%)
|
|
28
|
+
• Buffer: ${q(R)} tokens (${G$}%)
|
|
29
|
+
|
|
30
|
+
System Prompt Breakdown:
|
|
31
|
+
${U$}
|
|
32
|
+
|
|
33
|
+
System Tools (${Object.keys(D).length} total):
|
|
34
|
+
${Q$}
|
|
35
|
+
`.trim()}},a=_$;var D$={id:"sessions",label:"/sessions",description:"View and switch between chat sessions",execute:async($)=>{let{formatSessionDisplay:b}=await import("./chunk-zv5y8yfq.js"),q=$.getSessions();if(q.length===0)return"No sessions available. Start chatting to create a session.";let G=$.getCurrentSessionId(),W=[...q].sort((Q,K)=>{let Z=K.updated-Q.updated;if(Z!==0)return Z;return K.created-Q.created}),H=W.map((Q)=>{let K=Q.id===G,Z=b(Q.title,Q.created);return{label:K?`${Z} (current)`:Z,value:Q.id}});$.sendMessage("Select a session to switch to:");let J=await $.waitForInput({type:"selection",questions:[{id:"session",question:"Which session do you want to switch to?",options:H}]}),z=typeof J==="object"&&!Array.isArray(J)?J.session:"";if(!z)return"Session selection cancelled.";$.setCurrentSession(z);let F=W.find((Q)=>Q.id===z);return`Switched to session: ${F?b(F.title,F.created):"Unknown session"}`}},x=D$;var B$={id:"new",label:"/new",description:"Create a new chat session",execute:async($)=>{let b=$.getConfig();if(!b?.defaultProvider||!b?.defaultModel)return"No AI provider configured. Use /provider to configure a provider first.";let q=$.createSession(b.defaultProvider,b.defaultModel);return $.setCurrentSession(q),`Created new chat session with ${b.defaultProvider} (${b.defaultModel})`}},c=B$;var y$={id:"bashes",label:"/bashes",description:"Manage background bash processes",execute:async($)=>{let{bashManager:b}=await import("./chunk-mw13a082.js"),q=b.list();if(q.length===0)return"No background bash processes found.";let G=q.map((F)=>{let h=F.isRunning?"[*] Running":"[x] Completed",Q=Math.floor(F.duration/1000),K=Q>60?`${Math.floor(Q/60)}m ${Q%60}s`:`${Q}s`;return{label:`${h} [${K}] ${F.command}`,value:F.id}});$.sendMessage(`Found ${q.length} background bash process${q.length!==1?"es":""}:`);let W=await $.waitForInput({type:"selection",questions:[{id:"action",question:"What do you want to do?",options:[{label:"View details",value:"view"},{label:"Kill a process",value:"kill"},{label:"Cancel",value:"cancel"}]}]}),H=typeof W==="object"&&!Array.isArray(W)?W.action:"";if(!H||H==="cancel")return"Cancelled.";$.sendMessage("Select a process:");let J=await $.waitForInput({type:"selection",questions:[{id:"process",question:"Which process?",options:G}]}),z=typeof J==="object"&&!Array.isArray(J)?J.process:"";if(!z)return"No process selected.";if(H==="view"){let F=b.getOutput(z);if(!F)return"Process not found.";let h=F.isRunning?"Running":`Completed (exit code: ${F.exitCode})`,Q=Math.floor(F.duration/1000),K=`
|
|
36
|
+
Process: ${z}
|
|
37
|
+
Command: ${F.command}
|
|
38
|
+
Status: ${h}
|
|
39
|
+
Duration: ${Q}s
|
|
40
|
+
|
|
41
|
+
=== stdout ===
|
|
42
|
+
${F.stdout||"(empty)"}
|
|
43
|
+
`;if(F.stderr)K+=`
|
|
44
|
+
=== stderr ===
|
|
45
|
+
${F.stderr}`;return K.trim()}if(H==="kill"){if(!b.kill(z))return"Failed to kill process (not found).";return`Sent termination signal to process ${z}`}return"Unknown action."}},i=y$;var E$={id:"agent",label:"/agent",description:"Switch between AI agents with different system prompts",args:[{name:"agent-name",description:"Agent to switch to (coder, planner, etc.)",required:!1,loadOptions:async($)=>{let{getAllAgents:b}=await import("./chunk-xvfz960r.js");return b().map((G)=>({id:G.id,label:`${G.metadata.name} - ${G.metadata.description}`,value:G.id}))}}],execute:async($)=>{let{getAllAgents:b,getCurrentAgent:q,switchAgent:G}=await import("./chunk-xvfz960r.js"),W;if($.args.length===0){let F=b(),h=q();if(F.length===0)return"No agents available.";let Q=F.map((Z)=>{return{label:Z.id===h.id?`${Z.metadata.name} (current) - ${Z.metadata.description}`:`${Z.metadata.name} - ${Z.metadata.description}`,value:Z.id}});$.sendMessage("Which agent do you want to use?");let K=await $.waitForInput({type:"selection",questions:[{id:"agent",question:"Select agent:",options:Q}]});if(W=typeof K==="object"&&!Array.isArray(K)?K.agent:"",!W)return"Agent selection cancelled."}else W=$.args[0];if(!G(W))return`Agent not found: ${W}. Use /agent to see available agents.`;let{getAgentById:J}=await import("./chunk-xvfz960r.js"),z=J(W);if(!z)return"Failed to get agent details.";return`Switched to agent: ${z.metadata.name}
|
|
46
|
+
${z.metadata.description}`}},s=E$;var R$={id:"rules",label:"/rules",description:"Select enabled shared system prompt rules",execute:async($)=>{let{getAllRules:b,getEnabledRuleIds:q,setEnabledRules:G}=await import("./chunk-d409xn8f.js"),W=b(),H=q();if(W.length===0)return"No rules available.";let J=W.map((M)=>({label:`${M.metadata.name} - ${M.metadata.description}`,value:M.id}));$.sendMessage(`Select rules to enable (currently ${H.length} enabled):`);let z=await $.waitForInput({type:"selection",questions:[{id:"rules",question:"Select all rules you want to enable:",options:J,multiSelect:!0,preSelected:H}]}),F=typeof z==="object"&&!Array.isArray(z)?Array.isArray(z.rules)?z.rules:[]:[];if(!Array.isArray(F))return"Rule selection cancelled.";if(!G(F))return"Failed to update rules.";let Q=F.length,K=W.length-Q,L=W.filter((M)=>F.includes(M.id)).map((M)=>` • ${M.metadata.name}`).join(`
|
|
47
|
+
`);return`Updated rules configuration:
|
|
48
|
+
${Q} enabled, ${K} disabled
|
|
49
|
+
|
|
50
|
+
Enabled rules:
|
|
51
|
+
${L||" (none)"}`}},d=R$;var w$={id:"compact",label:"/compact",description:"Summarize current session and create a new session with the summary",execute:async($)=>{let b=$.getCurrentSession();if(!b)return"No active session to compact.";if(b.messages.length===0)return"Current session has no messages to compact.";let q=$.getConfig();if(!q?.defaultProvider||!q?.defaultModel)return"No AI provider configured. Use /provider to configure a provider first.";$.sendMessage("Analyzing conversation and creating detailed summary...");try{let{getProvider:G}=await import("./chunk-xs370t8p.js"),{streamText:W}=await import("./chunk-3w6pd43t.js"),{getSystemPrompt:H}=await import("./chunk-yxv7hqse.js"),J=G(b.provider),z=q.providers?.[b.provider];if(!z||!J.isConfigured(z))return`Provider ${b.provider} is not properly configured.`;let F=J.createClient(z,b.model),Q=`You are a conversation summarizer. Your task is to create a comprehensive, detailed summary of the following conversation that preserves ALL important information.
|
|
52
|
+
|
|
53
|
+
CRITICAL REQUIREMENTS:
|
|
54
|
+
1. DO NOT omit any important details, decisions, code snippets, file paths, commands, or configurations
|
|
55
|
+
2. Preserve technical accuracy - include exact function names, variable names, file paths, and command syntax
|
|
56
|
+
3. Maintain chronological flow of the conversation
|
|
57
|
+
4. Highlight key decisions, problems solved, and solutions implemented
|
|
58
|
+
5. Include all context that would be needed to continue this conversation naturally
|
|
59
|
+
6. Use clear markdown formatting with sections and bullet points
|
|
60
|
+
7. If code was discussed or written, include the essential parts or describe what was implemented
|
|
61
|
+
8. **CRITICAL**: If there is ongoing work or tasks in progress, create a section called "## Current Work" that describes:
|
|
62
|
+
- What was being worked on when the conversation was compacted
|
|
63
|
+
- What the next steps should be
|
|
64
|
+
- Any pending tasks or unfinished work
|
|
65
|
+
- The current state of the implementation
|
|
66
|
+
|
|
67
|
+
The summary will be used to start a fresh conversation while maintaining full context.
|
|
68
|
+
|
|
69
|
+
CONVERSATION TO SUMMARIZE:
|
|
70
|
+
${b.messages.map((V)=>{let E=V.content.filter((B)=>B.type==="text").map((B)=>B.content).join(`
|
|
71
|
+
`);if(V.attachments&&V.attachments.length>0){let B=V.attachments.map((R)=>`[Attached: ${R.relativePath}]`).join(`
|
|
72
|
+
`);E+=`
|
|
73
|
+
${B}`}return`${V.role==="user"?"User":"Assistant"}: ${E}`}).join(`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
`)}
|
|
78
|
+
|
|
79
|
+
Please provide a detailed, structured summary now:`,K=await W({model:F,messages:[{role:"user",content:Q}],maxTokens:4096}),Z="";for await(let V of K.textStream)Z+=V;if(!Z||Z.trim().length===0)return"Failed to generate summary. Please try again.";let L=$.createSession(b.provider,b.model);$.setCurrentSession(L);let M=b.messages.length,D=b.title||"Untitled session",A=`This session is being continued from a previous conversation that ran out of context. The conversation is summarized below:
|
|
80
|
+
${Z}`;return await $.triggerAIResponse(A),`✓ Compacted session "${D}" (${M} messages)
|
|
81
|
+
✓ Created new session with detailed summary
|
|
82
|
+
✓ Switched to new session
|
|
83
|
+
✓ AI is processing the summary and will continue working...`}catch(G){let W=G instanceof Error?G.message:String(G);return $.addLog(`[Compact] Error: ${W}`),`Failed to compact session: ${W}`}}},r=w$;var n={id:"notifications",label:"/notifications",description:"Manage notification settings for AI responses",args:[{name:"action",description:"Action to perform (show, enable, disable)",required:!0,suggestions:["show","enable","disable"]},{name:"type",description:"Notification type to configure (os, terminal, sound, all)",required:!1,suggestions:["os","terminal","sound","all"]}],async execute($,b){let{updateNotificationSettings:q,notificationSettings:G}=b;if($.length===0){b.updateOutput(`
|
|
84
|
+
❌ Please specify an action: show, enable, or disable
|
|
85
|
+
`);return}let W=$[0].toLowerCase();switch(W){case"show":b.updateOutput(`
|
|
86
|
+
\uD83D\uDD14 Notification Settings:
|
|
87
|
+
`),b.updateOutput(` OS Notifications: ${G.osNotifications?"✅ Enabled":"❌ Disabled"}
|
|
88
|
+
`),b.updateOutput(` Terminal Notifications: ${G.terminalNotifications?"✅ Enabled":"❌ Disabled"}
|
|
89
|
+
`),b.updateOutput(` Sound Effects: ${G.sound?"✅ Enabled":"❌ Disabled"}
|
|
90
|
+
`),b.updateOutput(`
|
|
91
|
+
Use /notifications enable/disable [type] to change settings.
|
|
92
|
+
`);break;case"enable":case"disable":{let H=W==="enable";if($.length===1||$[1]==="all")q({osNotifications:H,terminalNotifications:H,sound:H}),b.updateOutput(`
|
|
93
|
+
${H?"✅":"❌"} All notifications ${H?"enabled":"disabled"}
|
|
94
|
+
`);else{let J=$[1].toLowerCase(),z={};switch(J){case"os":z.osNotifications=H;break;case"terminal":z.terminalNotifications=H;break;case"sound":z.sound=H;break;default:b.updateOutput(`
|
|
95
|
+
❌ Unknown notification type: ${J}
|
|
96
|
+
`),b.updateOutput(`Valid types: os, terminal, sound, all
|
|
97
|
+
`);return}q(z),b.updateOutput(`
|
|
98
|
+
${H?"✅":"❌"} ${J} notifications ${H?"enabled":"disabled"}
|
|
99
|
+
`)}break}default:b.updateOutput(`
|
|
100
|
+
❌ Unknown action: ${W}
|
|
101
|
+
`),b.updateOutput(`Valid actions: show, enable, disable
|
|
102
|
+
`)}}};var o={id:"dashboard",label:"/dashboard",description:"Open control panel - central hub for all features",execute:async($)=>{return $.navigateTo("dashboard"),"Opening control panel..."}};var t=[o,l,I,s,d,r,n,v,m,g,a,x,c,i];function hb($){return t.find((b)=>b.id===$)}function Kb($){return t.find((b)=>b.label===$)}export{Kb as getCommandByLabel,hb as getCommand,t as commands};
|
|
103
|
+
export{t as c};
|
|
104
|
+
|
|
105
|
+
//# debugId=905D113790986B1164756E2164756E21
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/ui/commands/helpers/provider-set-value.ts", "../src/ui/commands/helpers/provider-config.ts", "../src/ui/commands/helpers/provider-selection.ts", "../src/ui/commands/definitions/provider.command.ts", "../src/ui/commands/definitions/model.command.ts", "../src/ui/commands/definitions/logs.command.ts", "../src/ui/commands/definitions/help.command.ts", "../src/ui/commands/definitions/survey.command.ts", "../src/ui/commands/definitions/context.command.ts", "../src/ui/commands/definitions/sessions.command.ts", "../src/ui/commands/definitions/new.command.ts", "../src/ui/commands/definitions/bashes.command.ts", "../src/ui/commands/definitions/agent.command.ts", "../src/ui/commands/definitions/rules.command.ts", "../src/ui/commands/definitions/compact.command.ts", "../src/ui/commands/definitions/notifications.command.ts", "../src/ui/commands/definitions/dashboard.command.ts", "../src/ui/commands/registry.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Provider Set Value Helper\n * Extract duplicated provider configuration setting logic\n */\n\nimport type { CommandContext } from '../types.js';\n\n/**\n * Ask user to select a key from provider schema\n */\nexport async function askSelectProviderKey(\n context: CommandContext,\n providerId: string,\n schema: Array<{ key: string; label: string }>\n): Promise<string | null> {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n\n const availableKeys = schema.map((field) => ({\n label: field.label,\n value: field.key,\n }));\n\n context.sendMessage(`Configure ${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name} - Select setting:`);\n const keyAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'key',\n question: 'Which setting do you want to configure?',\n options: availableKeys,\n },\n ],\n });\n\n const key = typeof keyAnswers === 'object' && !Array.isArray(keyAnswers) ? keyAnswers['key'] : '';\n return key || null;\n}\n\n/**\n * Ask user for value (handles boolean vs text input)\n */\nexport async function askForValueByType(\n context: CommandContext,\n key: string,\n field: { key: string; label: string; type?: string } | undefined\n): Promise<string | null> {\n let value: string;\n\n if (field?.type === 'boolean') {\n context.sendMessage(`Select value for ${key}:`);\n const boolAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'value',\n question: `${field.label}:`,\n options: [\n { label: 'true', value: 'true' },\n { label: 'false', value: 'false' },\n ],\n },\n ],\n });\n value = typeof boolAnswers === 'object' && !Array.isArray(boolAnswers) ? boolAnswers['value'] : '';\n } else {\n context.sendMessage(`Enter value for ${key}:`);\n const valueAnswers = await context.waitForInput({\n type: 'text',\n placeholder: `Enter ${key}...`,\n });\n value = typeof valueAnswers === 'string' ? valueAnswers : '';\n }\n\n return value || null;\n}\n\n/**\n * Set a provider config value and save\n */\nexport async function setProviderConfigValue(\n context: CommandContext,\n providerId: string,\n key: string,\n value: string,\n schema: Array<{ key: string; label: string; secret?: boolean }>\n): Promise<string> {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n const aiConfig = context.getConfig();\n\n const newConfig = {\n ...aiConfig!,\n providers: {\n ...aiConfig!.providers,\n [providerId]: {\n ...aiConfig!.providers?.[providerId as keyof typeof aiConfig.providers],\n [key]: value,\n },\n },\n };\n\n if (!aiConfig?.defaultProvider) {\n newConfig.defaultProvider = providerId;\n }\n\n context.setAIConfig(newConfig);\n await context.saveConfig(newConfig);\n\n // Mask secret values in response\n const displayField = schema.find((f) => f.key === key);\n const displayValue = displayField?.secret ? '***' : value;\n\n return `Set ${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name} ${key} to: ${displayValue}`;\n}\n\n/**\n * Combined flow: ask for key, ask for value, save config\n */\nexport async function interactiveSetProviderConfig(\n context: CommandContext,\n providerId: string\n): Promise<string> {\n const { getProvider } = await import('../../../providers/index.js');\n const provider = getProvider(providerId as any);\n const schema = provider.getConfigSchema();\n\n // Ask for key\n const key = await askSelectProviderKey(context, providerId, schema);\n if (!key) {\n return 'Configuration cancelled.';\n }\n\n // Ask for value\n const field = schema.find((f) => f.key === key);\n const value = await askForValueByType(context, key, field);\n if (!value) {\n return 'Value is required.';\n }\n\n // Save config\n return await setProviderConfigValue(context, providerId, key, value, schema);\n}\n",
|
|
6
|
+
"/**\n * Provider Configuration Helper\n * Shared helper function for provider configuration\n *\n * REFACTORED: Now uses interactiveSetProviderConfig from provider-set-value helper\n */\n\nimport type { CommandContext } from '../types.js';\nimport { interactiveSetProviderConfig } from './provider-set-value.js';\n\n/**\n * Configure a provider interactively\n * @deprecated This is now a thin wrapper around interactiveSetProviderConfig\n */\nexport async function configureProvider(\n context: CommandContext,\n providerId: string\n): Promise<string> {\n // Delegate to the extracted helper\n return await interactiveSetProviderConfig(context, providerId);\n}\n\n/**\n * Options cache for dynamic option loading\n */\nexport const optionsCache = new Map<\n string,\n Array<{ id: string; name: string }>\n>();\n",
|
|
7
|
+
"/**\n * Provider Selection Helpers\n * Extract duplicated provider selection and switching logic\n */\n\nimport type { CommandContext } from '../types.js';\nimport type { ProviderId } from '../../../types/provider.types.js';\nimport { configureProvider } from './provider-config.js';\n\n/**\n * Get provider options with configured status\n */\nexport async function getProviderOptions(context: CommandContext): Promise<Array<{ label: string; value: string }>> {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n const { getProvider } = await import('../../../providers/index.js');\n const aiConfig = context.getConfig();\n\n return Object.values(AI_PROVIDERS).map((p) => {\n let isConfigured = false;\n try {\n const provider = getProvider(p.id as any);\n const providerConfig = aiConfig?.providers?.[p.id as keyof typeof aiConfig.providers];\n isConfigured = providerConfig ? provider.isConfigured(providerConfig) : false;\n } catch {\n // Provider not found or error checking config\n }\n return {\n label: `${p.name} ${isConfigured ? '✓' : ''}`,\n value: p.id,\n };\n });\n}\n\n/**\n * Ask user to select a provider\n */\nexport async function askSelectProvider(\n context: CommandContext,\n message: string,\n question: string\n): Promise<string | null> {\n const providerOptions = await getProviderOptions(context);\n\n context.sendMessage(message);\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'provider',\n question,\n options: providerOptions,\n },\n ],\n });\n\n const providerId = typeof answers === 'object' && !Array.isArray(answers) ? answers['provider'] : '';\n return providerId || null;\n}\n\n/**\n * Ensure provider is configured, optionally configure if not\n * Returns the provider config if successful, or error message\n */\nexport async function ensureProviderConfigured(\n context: CommandContext,\n providerId: string,\n autoPromptConfigure: boolean = true\n): Promise<{ success: true; config: any } | { success: false; message: string }> {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n const { getProvider } = await import('../../../providers/index.js');\n const aiConfig = context.getConfig();\n\n const provider = getProvider(providerId as any);\n const providerConfig = aiConfig?.providers?.[providerId as keyof typeof aiConfig.providers];\n\n // Already configured\n if (providerConfig && provider.isConfigured(providerConfig)) {\n return { success: true, config: providerConfig };\n }\n\n // Not configured\n if (!autoPromptConfigure) {\n return {\n success: false,\n message: `${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name} is not configured. Use: /provider set ${providerId}`,\n };\n }\n\n // Ask if user wants to configure now\n context.sendMessage(`${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name} is not configured yet.`);\n const configureAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'configure',\n question: 'Do you want to configure it now?',\n options: [\n { label: 'Yes, configure now', value: 'yes' },\n { label: 'No, cancel', value: 'no' },\n ],\n },\n ],\n });\n\n const shouldConfigure =\n typeof configureAnswers === 'object' && !Array.isArray(configureAnswers)\n ? configureAnswers['configure'] === 'yes'\n : false;\n\n if (!shouldConfigure) {\n return {\n success: false,\n message: 'Cancelled. You can configure later using: /provider set',\n };\n }\n\n // Configure the provider\n const configResult = await configureProvider(context, providerId);\n\n // Check if now configured\n const updatedConfig = context.getConfig();\n const updatedProviderConfig = updatedConfig?.providers?.[providerId as keyof typeof updatedConfig.providers];\n\n if (!updatedProviderConfig || !provider.isConfigured(updatedProviderConfig)) {\n return {\n success: false,\n message: `${configResult}\\n\\nProvider still not fully configured. Please continue configuration with: /provider set ${providerId}`,\n };\n }\n\n context.sendMessage(configResult);\n return { success: true, config: updatedProviderConfig };\n}\n\n/**\n * Switch to a provider (set as default, update model, save config, update session)\n */\nexport async function switchToProvider(\n context: CommandContext,\n providerId: string,\n providerConfig: any\n): Promise<string> {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n const aiConfig = context.getConfig();\n\n const newConfig = {\n ...aiConfig!,\n defaultProvider: providerId,\n };\n\n // Get default model and update config\n const { getDefaultModel } = await import('../../../core/session-service.js');\n const defaultModel = await getDefaultModel(providerId as any, providerConfig);\n if (!defaultModel) {\n return `Failed to get default model for ${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name}`;\n }\n\n // Save default model to config\n newConfig.providers = {\n ...newConfig.providers,\n [providerId]: {\n ...providerConfig,\n 'default-model': defaultModel,\n },\n };\n\n context.setAIConfig(newConfig);\n await context.saveConfig(newConfig);\n\n // Update UI state\n context.setUISelectedProvider(providerId as ProviderId);\n context.setUISelectedModel(defaultModel);\n\n // Update current session's provider (preserve history)\n const currentSessionId = context.getCurrentSessionId();\n if (currentSessionId) {\n context.updateSessionProvider(currentSessionId, providerId, defaultModel);\n } else {\n // Fallback: create new session if no active session\n context.createSession(providerId, defaultModel);\n }\n\n return `Now using ${AI_PROVIDERS[providerId as keyof typeof AI_PROVIDERS].name} with model: ${defaultModel}`;\n}\n\n/**\n * Combined flow: ensure configured and switch to provider\n */\nexport async function ensureConfiguredAndSwitch(\n context: CommandContext,\n providerId: string,\n autoPromptConfigure: boolean = true\n): Promise<string> {\n const result = await ensureProviderConfigured(context, providerId, autoPromptConfigure);\n\n if (!result.success) {\n return result.message;\n }\n\n return await switchToProvider(context, providerId, result.config);\n}\n",
|
|
8
|
+
"/**\n * Provider Command (Refactored)\n * Configure and switch AI providers\n *\n * REFACTORED: Reduced from 759 lines to ~200 lines by extracting helpers\n */\n\nimport type { Command } from '../types.js';\nimport { configureProvider } from '../helpers/provider-config.js';\nimport {\n askSelectProvider,\n ensureConfiguredAndSwitch,\n switchToProvider,\n ensureProviderConfigured,\n} from '../helpers/provider-selection.js';\nimport {\n interactiveSetProviderConfig,\n setProviderConfigValue,\n} from '../helpers/provider-set-value.js';\n\nexport const providerCommand: Command = {\n id: 'provider',\n label: '/provider',\n description: 'Manage AI providers',\n args: [\n {\n name: 'action',\n description: 'Action: \"use\" or \"set\"',\n required: false,\n loadOptions: async (previousArgs) => {\n return [\n { id: 'use', label: 'use', value: 'use' },\n { id: 'set', label: 'set', value: 'set' },\n ];\n },\n },\n {\n name: 'provider-name',\n description: 'Provider name (anthropic, openai, google, openrouter)',\n required: false,\n loadOptions: async (previousArgs) => {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n return Object.values(AI_PROVIDERS).map((p) => ({\n id: p.id,\n label: p.name,\n value: p.id,\n }));\n },\n },\n {\n name: 'key',\n description: 'Setting key (for set action)',\n required: false,\n loadOptions: async (previousArgs) => {\n const providerId = previousArgs[1];\n if (!providerId) return [];\n\n try {\n const { getProvider } = await import('../../../providers/index.js');\n const provider = getProvider(providerId as any);\n const schema = provider.getConfigSchema();\n return schema.map((field) => ({\n id: field.key,\n label: field.label,\n value: field.key,\n }));\n } catch (error) {\n return [];\n }\n },\n },\n {\n name: 'value',\n description: 'Setting value (for set action)',\n required: false,\n loadOptions: async (previousArgs) => {\n const providerId = previousArgs[1];\n const key = previousArgs[2];\n if (!providerId || !key) return [];\n\n try {\n const { getProvider } = await import('../../../providers/index.js');\n const provider = getProvider(providerId as any);\n const schema = provider.getConfigSchema();\n const field = schema.find((f) => f.key === key);\n\n // If boolean type, provide true/false options\n if (field?.type === 'boolean') {\n return [\n { id: 'true', label: 'true', value: 'true' },\n { id: 'false', label: 'false', value: 'false' },\n ];\n }\n\n return [];\n } catch (error) {\n return [];\n }\n },\n },\n ],\n execute: async (context) => {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n\n // Case 1: /provider - ask use or set\n if (context.args.length === 0) {\n context.sendMessage('What do you want to do?');\n const actionAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'action',\n question: 'Select action:',\n options: [\n { label: 'Use a provider', value: 'use' },\n { label: 'Configure a provider', value: 'set' },\n ],\n },\n ],\n });\n\n const action = typeof actionAnswers === 'object' && !Array.isArray(actionAnswers) ? actionAnswers['action'] : '';\n if (!action) {\n return 'Action cancelled.';\n }\n\n // Ask which provider\n const providerId = await askSelectProvider(\n context,\n action === 'use' ? 'Which provider do you want to use?' : 'Which provider do you want to configure?',\n action === 'use' ? 'Select provider to use:' : 'Select provider to configure:'\n );\n\n if (!providerId) {\n return 'Provider selection cancelled.';\n }\n\n if (action === 'use') {\n // Use provider (with optional configuration)\n return await ensureConfiguredAndSwitch(context, providerId, true);\n } else {\n // Set provider - use helper function\n return await configureProvider(context, providerId);\n }\n }\n\n // Case 2: /provider use - ask which provider to use\n if (context.args.length === 1 && context.args[0] === 'use') {\n const providerId = await askSelectProvider(context, 'Which provider do you want to use?', 'Select provider:');\n\n if (!providerId) {\n return 'Provider selection cancelled.';\n }\n\n // Ensure configured and switch\n return await ensureConfiguredAndSwitch(context, providerId, true);\n }\n\n // Case 3: /provider use [name] - switch to specific provider\n if (context.args.length === 2 && context.args[0] === 'use') {\n const providerId = context.args[1];\n\n if (!(providerId in AI_PROVIDERS)) {\n return `Invalid provider: ${providerId}. Available: ${Object.keys(AI_PROVIDERS).join(', ')}`;\n }\n\n // Ensure configured and switch (without auto-prompt)\n return await ensureConfiguredAndSwitch(context, providerId, false);\n }\n\n // Case 4: /provider set - ask which provider to configure\n if (context.args.length === 1 && context.args[0] === 'set') {\n const { AI_PROVIDERS } = await import('../../../config/ai-config.js');\n const providerOptions = Object.values(AI_PROVIDERS).map((p) => ({\n label: p.name,\n value: p.id,\n }));\n\n context.sendMessage('Which provider do you want to configure?');\n const providerAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'provider',\n question: 'Select provider:',\n options: providerOptions,\n },\n ],\n });\n\n const providerId = typeof providerAnswers === 'object' && !Array.isArray(providerAnswers) ? providerAnswers['provider'] : '';\n if (!providerId) {\n return 'Provider selection cancelled.';\n }\n\n // Interactive set provider config\n return await interactiveSetProviderConfig(context, providerId);\n }\n\n // Case 5: /provider set [name] - ask which key to set\n if (context.args.length === 2 && context.args[0] === 'set') {\n const providerId = context.args[1];\n\n if (!(providerId in AI_PROVIDERS)) {\n return `Invalid provider: ${providerId}. Available: ${Object.keys(AI_PROVIDERS).join(', ')}`;\n }\n\n // Interactive set provider config\n return await interactiveSetProviderConfig(context, providerId);\n }\n\n // Case 6: /provider set [name] [key] [value] - direct configuration\n if (context.args.length >= 4 && context.args[0] === 'set') {\n const providerId = context.args[1];\n const key = context.args[2];\n const value = context.args.slice(3).join(' ');\n\n if (!(providerId in AI_PROVIDERS)) {\n return `Invalid provider: ${providerId}. Available: ${Object.keys(AI_PROVIDERS).join(', ')}`;\n }\n\n // Get valid keys from provider schema\n const { getProvider } = await import('../../../providers/index.js');\n const provider = getProvider(providerId as any);\n const schema = provider.getConfigSchema();\n\n const validKeys = schema.map((f) => f.key);\n if (!validKeys.includes(key)) {\n return `Invalid key: ${key}. Valid keys for ${providerId}: ${validKeys.join(', ')}`;\n }\n\n // Set config value directly\n return await setProviderConfigValue(context, providerId, key, value, schema);\n }\n\n return (\n 'Usage:\\n' +\n ' /provider - Select action and provider\\n' +\n ' /provider use - Select provider to use\\n' +\n ' /provider use [name] - Switch to provider\\n' +\n ' /provider set - Configure a provider\\n' +\n ' /provider set [name] - Configure specific provider\\n' +\n ' /provider set [name] [key] [value] - Set provider config directly'\n );\n },\n};\n\nexport default providerCommand;\n",
|
|
9
|
+
"/**\n * Model Command\n * Switch AI model\n */\n\nimport type { Command } from '../types.js';\n\nexport const modelCommand: Command = {\n id: 'model',\n label: '/model',\n description: 'Switch AI model',\n args: [\n {\n name: 'model-name',\n description: 'Model to switch to',\n required: false,\n loadOptions: async (previousArgs, context) => {\n try {\n // Get AI config from context\n const aiConfig = context?.getConfig();\n if (!aiConfig?.providers) {\n return [];\n }\n\n // Get current session's provider\n const currentSession = context?.getCurrentSession();\n const currentProviderId = currentSession?.provider || aiConfig.defaultProvider;\n\n if (!currentProviderId) {\n return [];\n }\n\n // Fetch models from current provider only\n const config = aiConfig.providers[currentProviderId];\n if (!config) {\n return [];\n }\n\n try {\n const { fetchModels } = await import('../../../utils/ai-model-fetcher.js');\n const models = await fetchModels(currentProviderId as any, config);\n return models.map(m => ({\n id: m.id,\n label: m.name,\n value: m.id,\n }));\n } catch (error) {\n if (context) {\n context.addLog(`Failed to fetch models for ${currentProviderId}: ${error instanceof Error ? error.message : String(error)}`);\n }\n return [];\n }\n } catch (error) {\n if (context) {\n context.addLog(`Error loading models: ${error instanceof Error ? error.message : String(error)}`);\n }\n return [];\n }\n },\n },\n ],\n execute: async (context) => {\n let modelId: string;\n\n // If no args provided, ask user to select\n if (context.args.length === 0) {\n try {\n // Load models from current provider only\n const aiConfig = context.getConfig();\n if (!aiConfig?.providers) {\n return 'No providers configured. Please configure a provider first.';\n }\n\n // Get current session's provider\n const currentSession = context.getCurrentSession();\n const currentProviderId = currentSession?.provider || aiConfig.defaultProvider;\n\n if (!currentProviderId) {\n return 'No provider selected. Use /provider to select a provider first.';\n }\n\n const config = aiConfig.providers[currentProviderId];\n if (!config) {\n return `Provider ${currentProviderId} is not configured.`;\n }\n\n // Fetch models from current provider\n let allModels: Array<{ label: string; value: string }> = [];\n try {\n const { fetchModels } = await import('../../../utils/ai-model-fetcher.js');\n const models = await fetchModels(currentProviderId as any, config);\n allModels = models.map(m => ({ label: m.name, value: m.id }));\n context.addLog(`Loaded ${models.length} models from ${currentProviderId}`);\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n context.addLog(`Failed to fetch models for ${currentProviderId}: ${errorMsg}`);\n return `Failed to load models from ${currentProviderId}: ${errorMsg}`;\n }\n\n if (allModels.length === 0) {\n return `No models available for ${currentProviderId}`;\n }\n\n // Ask user to select\n context.sendMessage('Which model do you want to use?');\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'model',\n question: 'Which model do you want to use?',\n options: allModels,\n },\n ],\n });\n\n // Extract answer from Record\n modelId = typeof answers === 'object' && !Array.isArray(answers) ? answers['model'] : '';\n } catch (error) {\n return `Failed to load models: ${error instanceof Error ? error.message : String(error)}`;\n }\n } else {\n modelId = context.args[0];\n }\n\n const currentSession = context.getCurrentSession();\n const aiConfig = context.getConfig();\n const provider = currentSession?.provider || aiConfig?.defaultProvider;\n\n if (!provider) {\n return 'No provider configured. Please configure a provider first.';\n }\n\n // Update model and save to provider config\n const newConfig = {\n ...aiConfig!,\n defaultModel: modelId,\n providers: {\n ...aiConfig!.providers,\n [provider]: {\n ...aiConfig!.providers?.[provider],\n 'default-model': modelId,\n },\n },\n };\n context.setAIConfig(newConfig);\n\n // Save config to file\n await context.saveConfig(newConfig);\n\n // Update current session's model (preserve history)\n const currentSessionId = context.getCurrentSessionId();\n if (currentSessionId) {\n context.updateSessionModel(currentSessionId, modelId);\n } else {\n // Fallback: create new session if no active session\n context.createSession(provider, modelId);\n }\n\n return `Switched to model: ${modelId}`;\n },\n};\n\nexport default modelCommand;\n",
|
|
10
|
+
"/**\n * Logs Command\n * View debug logs\n */\n\nimport type { Command } from '../types.js';\n\nexport const logsCommand: Command = {\n id: 'logs',\n label: '/logs',\n description: 'View debug logs',\n execute: async (context) => {\n context.navigateTo('logs');\n return 'Opening debug logs...';\n },\n};\n\nexport default logsCommand;\n",
|
|
11
|
+
"/**\n * Help Command\n * Show available commands\n */\n\nimport type { Command } from '../types.js';\n\nexport const helpCommand: Command = {\n id: 'help',\n label: '/help',\n description: 'Show available commands',\n execute: async (context) => {\n const commands = context.getCommands();\n const commandList = commands\n .map((cmd) => {\n const argsText = cmd.args\n ? ` ${cmd.args.map((a) => `[${a.name}]`).join(' ')}`\n : '';\n return `${cmd.label}${argsText} - ${cmd.description}`;\n })\n .join('\\n');\n return `Available commands:\\n${commandList}`;\n },\n};\n\nexport default helpCommand;\n",
|
|
12
|
+
"/**\n * Survey Command\n * Test multi-selection feature\n */\n\nimport type { Command } from '../types.js';\n\nexport const surveyCommand: Command = {\n id: 'survey',\n label: '/survey',\n description: 'Test multi-question selection (demo)',\n execute: async (context) => {\n context.sendMessage('Let me ask you a few questions...');\n\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'language',\n question: 'What is your favorite programming language?',\n options: [\n { label: 'TypeScript' },\n { label: 'JavaScript' },\n { label: 'Python' },\n { label: 'Rust' },\n { label: 'Go' },\n ],\n },\n {\n id: 'framework',\n question: 'Which framework do you prefer?',\n options: [\n { label: 'React' },\n { label: 'Vue' },\n { label: 'Angular' },\n { label: 'Svelte' },\n { label: 'Solid' },\n ],\n },\n {\n id: 'editor',\n question: 'What is your favorite code editor?',\n options: [\n { label: 'Visual Studio Code' },\n { label: 'Vim/Neovim' },\n { label: 'Emacs' },\n { label: 'Sublime Text' },\n { label: 'Atom' },\n ],\n },\n ],\n });\n\n if (typeof answers === 'object' && !Array.isArray(answers)) {\n const summary = Object.entries(answers)\n .map(([key, value]) => `${key}: ${value}`)\n .join(', ');\n return `Survey completed! Your answers: ${summary}`;\n }\n\n return 'Survey cancelled.';\n },\n};\n\nexport default surveyCommand;\n",
|
|
13
|
+
"/**\n * Context Command\n * Display context window usage\n */\n\nimport type { Command } from '../types.js';\n\nexport const contextCommand: Command = {\n id: 'context',\n label: '/context',\n description: 'Display context window usage and token breakdown',\n execute: async (context) => {\n const { countTokens, formatTokenCount } = await import('../../../utils/token-counter.js');\n const { getSystemPrompt } = await import('../../../core/ai-sdk.js');\n const { getAISDKTools } = await import('../../../tools/index.js');\n\n const currentSession = context.getCurrentSession();\n if (!currentSession) {\n return 'No active session. Start chatting first to see context usage.';\n }\n\n const modelName = currentSession.model;\n\n // Get model-specific context limit\n const getContextLimit = (model: string): number => {\n // Default limits for common models\n if (model.includes('gpt-4')) {\n if (model.includes('32k') || model.includes('turbo')) return 128000;\n if (model.includes('vision')) return 128000;\n return 8192; // Original GPT-4\n }\n if (model.includes('gpt-3.5')) {\n if (model.includes('16k')) return 16385;\n return 4096; // Original GPT-3.5\n }\n // Claude models\n if (model.includes('claude-3')) {\n if (model.includes('opus')) return 200000;\n if (model.includes('sonnet')) return 200000;\n if (model.includes('haiku')) return 200000;\n }\n // Default fallback\n return 200000;\n };\n\n const contextLimit = getContextLimit(modelName);\n\n // Calculate token counts\n context.addLog(`[Context] Calculating token counts for ${modelName} (limit: ${formatTokenCount(contextLimit)})...`);\n\n // System prompt tokens - use the actual system prompt that gets sent\n const systemPrompt = getSystemPrompt();\n const systemPromptTokens = await countTokens(systemPrompt, modelName);\n\n // Also calculate breakdown of system prompt components for debugging\n const { getEnabledRulesContent } = await import('../../../core/rule-manager.js');\n const { getCurrentSystemPrompt } = await import('../../../core/agent-manager.js');\n const BASE_SYSTEM_PROMPT = `You are Sylphx, an AI development assistant.`;\n\n let systemPromptBreakdown: Record<string, number> = {};\n try {\n systemPromptBreakdown['Base prompt'] = await countTokens(BASE_SYSTEM_PROMPT, modelName);\n\n const rulesContent = getEnabledRulesContent();\n if (rulesContent) {\n systemPromptBreakdown['Rules'] = await countTokens(rulesContent, modelName);\n }\n\n const agentPrompt = getCurrentSystemPrompt();\n systemPromptBreakdown['Agent prompt'] = await countTokens(agentPrompt, modelName);\n } catch (error) {\n context.addLog(`[Context] Failed to calculate system prompt breakdown: ${error}`);\n }\n\n // System tools tokens (calculate individual tool tokens)\n const tools = getAISDKTools();\n const toolTokens: Record<string, number> = {};\n let toolsTokensTotal = 0;\n\n for (const [toolName, toolDef] of Object.entries(tools)) {\n // Create a more accurate representation of how tools are sent to the AI\n // Tools are typically sent as function definitions with name, description, and parameters\n const toolRepresentation = {\n name: toolName,\n description: toolDef.description || '',\n parameters: toolDef.parameters || {}\n };\n const toolJson = JSON.stringify(toolRepresentation, null, 0); // No spaces for compact representation\n const tokens = await countTokens(toolJson, modelName);\n toolTokens[toolName] = tokens;\n toolsTokensTotal += tokens;\n }\n\n // Messages tokens - include attachments and parts for accurate calculation\n let messagesTokens = 0;\n for (const msg of currentSession.messages) {\n let msgText = msg.content;\n\n // Add attachment content if present (as it would be sent to AI)\n if (msg.attachments && msg.attachments.length > 0) {\n try {\n const { readFile } = await import('node:fs/promises');\n const fileContents = await Promise.all(\n msg.attachments.map(async (att) => {\n try {\n const content = await readFile(att.path, 'utf8');\n return { path: att.relativePath, content };\n } catch {\n return { path: att.relativePath, content: '[Error reading file]' };\n }\n })\n );\n\n const fileContentsText = fileContents\n .map((f) => `\\n\\n<file path=\"${f.path}\">\\n${f.content}\\n</file>`)\n .join('');\n\n msgText += fileContentsText;\n } catch (error) {\n // If we can't read attachments, just count the content we have\n console.warn('[Context] Failed to read attachments for token count:', error);\n }\n }\n\n const msgTokens = await countTokens(msgText, modelName);\n messagesTokens += msgTokens;\n }\n\n // Calculate totals and percentages\n const usedTokens = systemPromptTokens + toolsTokensTotal + messagesTokens;\n const freeTokens = contextLimit - usedTokens;\n const autocompactBuffer = Math.floor(contextLimit * 0.225); // 22.5%\n const realFreeTokens = freeTokens - autocompactBuffer;\n\n const usedPercent = ((usedTokens / contextLimit) * 100).toFixed(1);\n const systemPromptPercent = ((systemPromptTokens / contextLimit) * 100).toFixed(1);\n const toolsPercent = ((toolsTokensTotal / contextLimit) * 100).toFixed(1);\n const messagesPercent = ((messagesTokens / contextLimit) * 100).toFixed(1);\n const freePercent = ((realFreeTokens / contextLimit) * 100).toFixed(1);\n const bufferPercent = ((autocompactBuffer / contextLimit) * 100).toFixed(1);\n\n // Create visual bar chart (30 blocks for better resolution)\n const createBarChart = (): string[] => {\n const totalBlocks = 30;\n const systemPromptBlocks = Math.floor((systemPromptTokens / contextLimit) * totalBlocks);\n const toolsBlocks = Math.floor((toolsTokensTotal / contextLimit) * totalBlocks);\n const messagesBlocks = Math.floor((messagesTokens / contextLimit) * totalBlocks);\n const usedBlocks = systemPromptBlocks + toolsBlocks + messagesBlocks;\n const freeBlocks = totalBlocks - usedBlocks;\n\n // Line 1: System prompt (blue)\n const line1 = '█'.repeat(systemPromptBlocks) + '░'.repeat(totalBlocks - systemPromptBlocks);\n\n // Line 2: Tools (green)\n const line2 = '░'.repeat(systemPromptBlocks) + '█'.repeat(toolsBlocks) + '░'.repeat(totalBlocks - systemPromptBlocks - toolsBlocks);\n\n // Line 3: Messages (yellow)\n const line3 = '░'.repeat(systemPromptBlocks + toolsBlocks) + '█'.repeat(messagesBlocks) + '░'.repeat(freeBlocks);\n\n return [line1, line2, line3];\n };\n\n const [bar1, bar2, bar3] = createBarChart();\n\n // Format tool list with tokens (sorted by size)\n const toolList = Object.entries(toolTokens)\n .sort((a, b) => b[1] - a[1])\n .map(([name, tokens]) => ` ${name}: ${formatTokenCount(tokens)} tokens`)\n .join('\\n');\n\n // Format system prompt breakdown\n const systemPromptBreakdownText = Object.entries(systemPromptBreakdown)\n .map(([name, tokens]) => ` ${name}: ${formatTokenCount(tokens)} tokens`)\n .join('\\n');\n\n // Format output with clean visual hierarchy\n const output = `\nContext Usage: ${formatTokenCount(usedTokens)}/${formatTokenCount(contextLimit)} tokens (${usedPercent}%)\nModel: ${modelName}\n\nVisual Breakdown:\n ${bar1} System prompt: ${formatTokenCount(systemPromptTokens)} (${systemPromptPercent}%)\n ${bar2} Tools: ${formatTokenCount(toolsTokensTotal)} (${toolsPercent}%)\n ${bar3} Messages: ${formatTokenCount(messagesTokens)} (${messagesPercent}%)\n\nAvailable Space:\n • Free: ${formatTokenCount(realFreeTokens)} tokens (${freePercent}%)\n • Buffer: ${formatTokenCount(autocompactBuffer)} tokens (${bufferPercent}%)\n\nSystem Prompt Breakdown:\n${systemPromptBreakdownText}\n\nSystem Tools (${Object.keys(tools).length} total):\n${toolList}\n`.trim();\n\n return output;\n },\n};\n\nexport default contextCommand;\n",
|
|
14
|
+
"/**\n * Sessions Command\n * Switch between chat sessions\n */\n\nimport type { Command } from '../types.js';\n\nexport const sessionsCommand: Command = {\n id: 'sessions',\n label: '/sessions',\n description: 'View and switch between chat sessions',\n execute: async (context) => {\n const { formatSessionDisplay } = await import('../../../utils/session-title.js');\n const sessions = context.getSessions();\n\n if (sessions.length === 0) {\n return 'No sessions available. Start chatting to create a session.';\n }\n\n const currentSessionId = context.getCurrentSessionId();\n\n // Sort sessions by updated time (most recent first), then by created time\n const sortedSessions = [...sessions].sort((a, b) => {\n // First compare by updated time (descending)\n const updateDiff = b.updated - a.updated;\n if (updateDiff !== 0) return updateDiff;\n \n // If updated is same, compare by created time (descending)\n return b.created - a.created;\n });\n\n // Ask user to select a session\n const sessionOptions = sortedSessions.map((session) => {\n const isCurrent = session.id === currentSessionId;\n const displayText = formatSessionDisplay(session.title, session.created);\n const label = isCurrent ? `${displayText} (current)` : displayText;\n\n return {\n label,\n value: session.id,\n };\n });\n\n context.sendMessage('Select a session to switch to:');\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'session',\n question: 'Which session do you want to switch to?',\n options: sessionOptions,\n },\n ],\n });\n\n const selectedSessionId = typeof answers === 'object' && !Array.isArray(answers) ? answers['session'] : '';\n\n if (!selectedSessionId) {\n return 'Session selection cancelled.';\n }\n\n // Switch to selected session\n context.setCurrentSession(selectedSessionId);\n\n const selectedSession = sortedSessions.find((s) => s.id === selectedSessionId);\n const displayName = selectedSession\n ? formatSessionDisplay(selectedSession.title, selectedSession.created)\n : 'Unknown session';\n\n return `Switched to session: ${displayName}`;\n },\n};\n\nexport default sessionsCommand;\n",
|
|
15
|
+
"/**\n * New Command\n * Create a new chat session\n */\n\nimport type { Command } from '../types.js';\n\nexport const newCommand: Command = {\n id: 'new',\n label: '/new',\n description: 'Create a new chat session',\n execute: async (context) => {\n const aiConfig = context.getConfig();\n\n if (!aiConfig?.defaultProvider || !aiConfig?.defaultModel) {\n return 'No AI provider configured. Use /provider to configure a provider first.';\n }\n\n // Create new session with current provider and model\n const newSessionId = context.createSession(aiConfig.defaultProvider, aiConfig.defaultModel);\n context.setCurrentSession(newSessionId);\n\n return `Created new chat session with ${aiConfig.defaultProvider} (${aiConfig.defaultModel})`;\n },\n};\n\nexport default newCommand;\n",
|
|
16
|
+
"/**\n * Bashes Command\n * Manage background bash processes\n */\n\nimport type { Command } from '../types.js';\n\nexport const bashesCommand: Command = {\n id: 'bashes',\n label: '/bashes',\n description: 'Manage background bash processes',\n execute: async (context) => {\n const { bashManager } = await import('../../../tools/bash-manager.js');\n const processes = bashManager.list();\n\n if (processes.length === 0) {\n return 'No background bash processes found.';\n }\n\n // Format process list\n const processOptions = processes.map((proc) => {\n const status = proc.isRunning ? '[*] Running' : '[x] Completed';\n const duration = Math.floor(proc.duration / 1000);\n const durationStr = duration > 60\n ? `${Math.floor(duration / 60)}m ${duration % 60}s`\n : `${duration}s`;\n\n return {\n label: `${status} [${durationStr}] ${proc.command}`,\n value: proc.id,\n };\n });\n\n context.sendMessage(`Found ${processes.length} background bash process${processes.length !== 1 ? 'es' : ''}:`);\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'action',\n question: 'What do you want to do?',\n options: [\n { label: 'View details', value: 'view' },\n { label: 'Kill a process', value: 'kill' },\n { label: 'Cancel', value: 'cancel' },\n ],\n },\n ],\n });\n\n const action = typeof answers === 'object' && !Array.isArray(answers) ? answers['action'] : '';\n\n if (!action || action === 'cancel') {\n return 'Cancelled.';\n }\n\n // Select process\n context.sendMessage('Select a process:');\n const processAnswers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'process',\n question: 'Which process?',\n options: processOptions,\n },\n ],\n });\n\n const selectedId = typeof processAnswers === 'object' && !Array.isArray(processAnswers)\n ? processAnswers['process']\n : '';\n\n if (!selectedId) {\n return 'No process selected.';\n }\n\n if (action === 'view') {\n const output = bashManager.getOutput(selectedId);\n if (!output) {\n return 'Process not found.';\n }\n\n const status = output.isRunning ? 'Running' : `Completed (exit code: ${output.exitCode})`;\n const duration = Math.floor(output.duration / 1000);\n\n let result = `\nProcess: ${selectedId}\nCommand: ${output.command}\nStatus: ${status}\nDuration: ${duration}s\n\n=== stdout ===\n${output.stdout || '(empty)'}\n`;\n\n if (output.stderr) {\n result += `\n=== stderr ===\n${output.stderr}`;\n }\n\n return result.trim();\n }\n\n if (action === 'kill') {\n const success = bashManager.kill(selectedId);\n if (!success) {\n return 'Failed to kill process (not found).';\n }\n\n return `Sent termination signal to process ${selectedId}`;\n }\n\n return 'Unknown action.';\n },\n};\n\nexport default bashesCommand;\n",
|
|
17
|
+
"/**\n * Agent Command\n * Switch between agents\n */\n\nimport type { Command } from '../types.js';\n\nexport const agentCommand: Command = {\n id: 'agent',\n label: '/agent',\n description: 'Switch between AI agents with different system prompts',\n args: [\n {\n name: 'agent-name',\n description: 'Agent to switch to (coder, planner, etc.)',\n required: false,\n loadOptions: async (previousArgs) => {\n const { getAllAgents } = await import('../../../core/agent-manager.js');\n const agents = getAllAgents();\n return agents.map((agent) => ({\n id: agent.id,\n label: `${agent.metadata.name} - ${agent.metadata.description}`,\n value: agent.id,\n }));\n },\n },\n ],\n execute: async (context) => {\n const { getAllAgents, getCurrentAgent, switchAgent } = await import('../../../core/agent-manager.js');\n\n let agentId: string;\n\n // If no args provided, ask user to select\n if (context.args.length === 0) {\n const agents = getAllAgents();\n const currentAgent = getCurrentAgent();\n\n if (agents.length === 0) {\n return 'No agents available.';\n }\n\n // Create options with current agent indicator\n const agentOptions = agents.map((agent) => {\n const isCurrent = agent.id === currentAgent.id;\n const label = isCurrent\n ? `${agent.metadata.name} (current) - ${agent.metadata.description}`\n : `${agent.metadata.name} - ${agent.metadata.description}`;\n\n return {\n label,\n value: agent.id,\n };\n });\n\n context.sendMessage('Which agent do you want to use?');\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'agent',\n question: 'Select agent:',\n options: agentOptions,\n },\n ],\n });\n\n agentId = typeof answers === 'object' && !Array.isArray(answers) ? answers['agent'] : '';\n\n if (!agentId) {\n return 'Agent selection cancelled.';\n }\n } else {\n agentId = context.args[0];\n }\n\n // Switch to selected agent\n const success = switchAgent(agentId);\n\n if (!success) {\n return `Agent not found: ${agentId}. Use /agent to see available agents.`;\n }\n\n const { getAgentById } = await import('../../../core/agent-manager.js');\n const selectedAgent = getAgentById(agentId);\n\n if (!selectedAgent) {\n return 'Failed to get agent details.';\n }\n\n return `Switched to agent: ${selectedAgent.metadata.name}\\n${selectedAgent.metadata.description}`;\n },\n};\n\nexport default agentCommand;\n",
|
|
18
|
+
"/**\n * Rules Command\n * Select enabled shared system prompt rules\n */\n\nimport type { Command } from '../types.js';\n\nexport const rulesCommand: Command = {\n id: 'rules',\n label: '/rules',\n description: 'Select enabled shared system prompt rules',\n execute: async (context) => {\n const { getAllRules, getEnabledRuleIds, setEnabledRules } = await import('../../../core/rule-manager.js');\n\n const allRules = getAllRules();\n const enabledIds = getEnabledRuleIds();\n\n if (allRules.length === 0) {\n return 'No rules available.';\n }\n\n // Create options without status indicators (checkboxes will show selection)\n const ruleOptions = allRules.map((rule) => ({\n label: `${rule.metadata.name} - ${rule.metadata.description}`,\n value: rule.id,\n }));\n\n context.sendMessage(`Select rules to enable (currently ${enabledIds.length} enabled):`);\n const answers = await context.waitForInput({\n type: 'selection',\n questions: [\n {\n id: 'rules',\n question: 'Select all rules you want to enable:',\n options: ruleOptions,\n multiSelect: true,\n preSelected: enabledIds, // Pre-select currently enabled rules\n },\n ],\n });\n\n // Extract selected rule IDs\n const selectedRuleIds = typeof answers === 'object' && !Array.isArray(answers)\n ? (Array.isArray(answers['rules']) ? answers['rules'] : [])\n : [];\n\n if (!Array.isArray(selectedRuleIds)) {\n return 'Rule selection cancelled.';\n }\n\n // Update enabled rules\n const success = setEnabledRules(selectedRuleIds);\n\n if (!success) {\n return 'Failed to update rules.';\n }\n\n // Build summary message\n const enabledCount = selectedRuleIds.length;\n const disabledCount = allRules.length - enabledCount;\n\n const enabledRules = allRules.filter((r) => selectedRuleIds.includes(r.id));\n const enabledNames = enabledRules.map((r) => ` • ${r.metadata.name}`).join('\\n');\n\n return `Updated rules configuration:\n${enabledCount} enabled, ${disabledCount} disabled\n\nEnabled rules:\n${enabledNames || ' (none)'}`;\n },\n};\n\nexport default rulesCommand;\n",
|
|
19
|
+
"/**\n * Compact Command\n * Summarize current session and start fresh\n */\n\nimport type { Command } from '../types.js';\n\nexport const compactCommand: Command = {\n id: 'compact',\n label: '/compact',\n description: 'Summarize current session and create a new session with the summary',\n execute: async (context) => {\n const currentSession = context.getCurrentSession();\n\n if (!currentSession) {\n return 'No active session to compact.';\n }\n\n if (currentSession.messages.length === 0) {\n return 'Current session has no messages to compact.';\n }\n\n const aiConfig = context.getConfig();\n if (!aiConfig?.defaultProvider || !aiConfig?.defaultModel) {\n return 'No AI provider configured. Use /provider to configure a provider first.';\n }\n\n context.sendMessage('Analyzing conversation and creating detailed summary...');\n\n try {\n // Import necessary modules\n const { getProvider } = await import('../../../providers/index.js');\n const { streamText } = await import('ai');\n const { getSystemPrompt } = await import('../../../core/ai-sdk.js');\n\n // Get provider and model\n const provider = getProvider(currentSession.provider);\n const providerConfig = aiConfig.providers?.[currentSession.provider];\n\n if (!providerConfig || !provider.isConfigured(providerConfig)) {\n return `Provider ${currentSession.provider} is not properly configured.`;\n }\n\n const model = provider.createClient(providerConfig, currentSession.model);\n\n // Build conversation history for summarization\n const conversationHistory = currentSession.messages.map((msg) => {\n // Extract text content from MessagePart array\n const textParts = msg.content\n .filter((part) => part.type === 'text')\n .map((part: any) => part.content);\n let content = textParts.join('\\n');\n\n // Include attachments info\n if (msg.attachments && msg.attachments.length > 0) {\n const attachmentsList = msg.attachments\n .map((att) => `[Attached: ${att.relativePath}]`)\n .join('\\n');\n content += `\\n${attachmentsList}`;\n }\n\n return `${msg.role === 'user' ? 'User' : 'Assistant'}: ${content}`;\n }).join('\\n\\n---\\n\\n');\n\n // Create summarization prompt\n const summaryPrompt = `You are a conversation summarizer. Your task is to create a comprehensive, detailed summary of the following conversation that preserves ALL important information.\n\nCRITICAL REQUIREMENTS:\n1. DO NOT omit any important details, decisions, code snippets, file paths, commands, or configurations\n2. Preserve technical accuracy - include exact function names, variable names, file paths, and command syntax\n3. Maintain chronological flow of the conversation\n4. Highlight key decisions, problems solved, and solutions implemented\n5. Include all context that would be needed to continue this conversation naturally\n6. Use clear markdown formatting with sections and bullet points\n7. If code was discussed or written, include the essential parts or describe what was implemented\n8. **CRITICAL**: If there is ongoing work or tasks in progress, create a section called \"## Current Work\" that describes:\n - What was being worked on when the conversation was compacted\n - What the next steps should be\n - Any pending tasks or unfinished work\n - The current state of the implementation\n\nThe summary will be used to start a fresh conversation while maintaining full context.\n\nCONVERSATION TO SUMMARIZE:\n${conversationHistory}\n\nPlease provide a detailed, structured summary now:`;\n\n // Call AI to generate summary\n const result = await streamText({\n model,\n messages: [\n {\n role: 'user',\n content: summaryPrompt,\n },\n ],\n maxTokens: 4096, // Allow longer summary\n });\n\n // Collect the full summary\n let summary = '';\n for await (const chunk of result.textStream) {\n summary += chunk;\n }\n\n if (!summary || summary.trim().length === 0) {\n return 'Failed to generate summary. Please try again.';\n }\n\n // Create new session with same provider/model\n const newSessionId = context.createSession(\n currentSession.provider,\n currentSession.model\n );\n\n // Switch to new session\n context.setCurrentSession(newSessionId);\n\n const messageCount = currentSession.messages.length;\n const sessionTitle = currentSession.title || 'Untitled session';\n\n // Format summary as a user message and trigger AI response\n const summaryMessage = `This session is being continued from a previous conversation that ran out of context. The conversation is summarized below:\n${summary}`;\n\n // Send summary and automatically trigger AI response\n // This allows the LLM to acknowledge the summary and continue working\n await context.triggerAIResponse(summaryMessage);\n\n return `✓ Compacted session \"${sessionTitle}\" (${messageCount} messages)\\n✓ Created new session with detailed summary\\n✓ Switched to new session\\n✓ AI is processing the summary and will continue working...`;\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n context.addLog(`[Compact] Error: ${errorMsg}`);\n return `Failed to compact session: ${errorMsg}`;\n }\n },\n};\n\nexport default compactCommand;\n",
|
|
20
|
+
"/**\n * Notifications Command\n * Manage notification settings\n */\n\nimport type { Command, CommandContext } from '../types.js';\n\nexport default {\n id: 'notifications',\n label: '/notifications',\n description: 'Manage notification settings for AI responses',\n args: [\n {\n name: 'action',\n description: 'Action to perform (show, enable, disable)',\n required: true,\n suggestions: ['show', 'enable', 'disable']\n },\n {\n name: 'type',\n description: 'Notification type to configure (os, terminal, sound, all)',\n required: false,\n suggestions: ['os', 'terminal', 'sound', 'all']\n }\n ],\n \n async execute(args: string[], context: CommandContext): Promise<void> {\n const { updateNotificationSettings, notificationSettings } = context;\n \n if (args.length === 0) {\n context.updateOutput('\\n❌ Please specify an action: show, enable, or disable\\n');\n return;\n }\n\n const action = args[0].toLowerCase();\n \n switch (action) {\n case 'show':\n context.updateOutput('\\n🔔 Notification Settings:\\n');\n context.updateOutput(` OS Notifications: ${notificationSettings.osNotifications ? '✅ Enabled' : '❌ Disabled'}\\n`);\n context.updateOutput(` Terminal Notifications: ${notificationSettings.terminalNotifications ? '✅ Enabled' : '❌ Disabled'}\\n`);\n context.updateOutput(` Sound Effects: ${notificationSettings.sound ? '✅ Enabled' : '❌ Disabled'}\\n`);\n context.updateOutput('\\nUse /notifications enable/disable [type] to change settings.\\n');\n break;\n \n case 'enable':\n case 'disable': {\n const isEnabled = action === 'enable';\n \n if (args.length === 1 || args[1] === 'all') {\n // Enable/disable all notifications\n updateNotificationSettings({\n osNotifications: isEnabled,\n terminalNotifications: isEnabled,\n sound: isEnabled\n });\n context.updateOutput(`\\n${isEnabled ? '✅' : '❌'} All notifications ${isEnabled ? 'enabled' : 'disabled'}\\n`);\n } else {\n const type = args[1].toLowerCase();\n const updates: any = {};\n \n switch (type) {\n case 'os':\n updates.osNotifications = isEnabled;\n break;\n case 'terminal':\n updates.terminalNotifications = isEnabled;\n break;\n case 'sound':\n updates.sound = isEnabled;\n break;\n default:\n context.updateOutput(`\\n❌ Unknown notification type: ${type}\\n`);\n context.updateOutput('Valid types: os, terminal, sound, all\\n');\n return;\n }\n \n updateNotificationSettings(updates);\n context.updateOutput(`\\n${isEnabled ? '✅' : '❌'} ${type} notifications ${isEnabled ? 'enabled' : 'disabled'}\\n`);\n }\n break;\n }\n \n default:\n context.updateOutput(`\\n❌ Unknown action: ${action}\\n`);\n context.updateOutput('Valid actions: show, enable, disable\\n');\n }\n }\n} as Command;",
|
|
21
|
+
"/**\n * Dashboard Command\n * Open the full-screen control panel\n */\n\nimport type { Command } from '../types.js';\n\nexport const dashboardCommand: Command = {\n id: 'dashboard',\n label: '/dashboard',\n description: 'Open control panel - central hub for all features',\n execute: async (context) => {\n context.navigateTo('dashboard');\n return 'Opening control panel...';\n },\n};\n",
|
|
22
|
+
"/**\n * Command Registry\n * All available commands with their definitions and implementations\n */\n\nimport type { Command } from './types.js';\n\n// Import all command definitions\nimport providerCommand from './definitions/provider.command.js';\nimport modelCommand from './definitions/model.command.js';\nimport logsCommand from './definitions/logs.command.js';\nimport helpCommand from './definitions/help.command.js';\nimport surveyCommand from './definitions/survey.command.js';\nimport contextCommand from './definitions/context.command.js';\nimport sessionsCommand from './definitions/sessions.command.js';\nimport newCommand from './definitions/new.command.js';\nimport bashesCommand from './definitions/bashes.command.js';\nimport agentCommand from './definitions/agent.command.js';\nimport rulesCommand from './definitions/rules.command.js';\nimport compactCommand from './definitions/compact.command.js';\nimport notificationsCommand from './definitions/notifications.command.js';\nimport { dashboardCommand } from './definitions/dashboard.command.js';\n\n/**\n * All registered commands\n */\nexport const commands: Command[] = [\n dashboardCommand,\n providerCommand,\n modelCommand,\n agentCommand,\n rulesCommand,\n compactCommand,\n notificationsCommand,\n logsCommand,\n helpCommand,\n surveyCommand,\n contextCommand,\n sessionsCommand,\n newCommand,\n bashesCommand,\n];\n\n/**\n * Get command by ID\n */\nexport function getCommand(id: string): Command | undefined {\n return commands.find(cmd => cmd.id === id);\n}\n\n/**\n * Get command by label (e.g., '/model')\n */\nexport function getCommandByLabel(label: string): Command | undefined {\n return commands.find(cmd => cmd.label === label);\n}\n"
|
|
23
|
+
],
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "905D113790986B1164756E2164756E21",
|
|
26
|
+
"names": []
|
|
27
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ub as K,Wb as n}from"./chunk-3m9whg4q.js";var d=K((e4,u0)=>{var s1=Object.prototype.toString;u0.exports=function(J){if(J===void 0)return"undefined";if(J===null)return"null";var Z=typeof J;if(Z==="boolean")return"boolean";if(Z==="string")return"string";if(Z==="number")return"number";if(Z==="symbol")return"symbol";if(Z==="function")return Jq(J)?"generatorfunction":"function";if(a1(J))return"array";if(Vq(J))return"buffer";if($q(J))return"arguments";if(t1(J))return"date";if(e1(J))return"error";if(qq(J))return"regexp";switch(v0(J)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(Zq(J))return"generator";switch(Z=s1.call(J),Z){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return Z.slice(8,-1).toLowerCase().replace(/\s/g,"")};function v0(q){return typeof q.constructor==="function"?q.constructor.name:null}function a1(q){if(Array.isArray)return Array.isArray(q);return q instanceof Array}function e1(q){return q instanceof Error||typeof q.message==="string"&&q.constructor&&typeof q.constructor.stackTraceLimit==="number"}function t1(q){if(q instanceof Date)return!0;return typeof q.toDateString==="function"&&typeof q.getDate==="function"&&typeof q.setDate==="function"}function qq(q){if(q instanceof RegExp)return!0;return typeof q.flags==="string"&&typeof q.ignoreCase==="boolean"&&typeof q.multiline==="boolean"&&typeof q.global==="boolean"}function Jq(q,J){return v0(q)==="GeneratorFunction"}function Zq(q){return typeof q.throw==="function"&&typeof q.return==="function"&&typeof q.next==="function"}function $q(q){try{if(typeof q.length==="number"&&typeof q.callee==="function")return!0}catch(J){if(J.message.indexOf("callee")!==-1)return!0}return!1}function Vq(q){if(q.constructor&&typeof q.constructor.isBuffer==="function")return q.constructor.isBuffer(q);return!1}});var g0=K((t4,b0)=>{/*!
|
|
2
2
|
* is-extendable <https://github.com/jonschlinkert/is-extendable>
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) 2015, Jon Schlinkert.
|
|
@@ -49,6 +49,6 @@ return `+str.trim()+`;
|
|
|
49
49
|
`:q}});var _1=K((u5,h1)=>{var h4=t();h1.exports=function(q,J){let Z=h4(J);if(q.data==null)q.data={};if(typeof Z.excerpt==="function")return Z.excerpt(q,Z);let V=q.data.excerpt_separator||Z.excerpt_separator;if(V==null&&(Z.excerpt===!1||Z.excerpt==null))return q;let $=typeof Z.excerpt==="string"?Z.excerpt:V||Z.delimiters[0],Y=q.content.indexOf($);if(Y!==-1)q.excerpt=q.content.slice(0,Y);return q}});var c1=K((b5,p1)=>{var r1=d(),_4=y0(),c=M0();p1.exports=function(q){if(r1(q)!=="object")q={content:q};if(r1(q.data)!=="object")q.data={};if(q.contents&&q.content==null)q.content=q.contents;return c.define(q,"orig",c.toBuffer(q.content)),c.define(q,"language",q.language||""),c.define(q,"matter",q.matter||""),c.define(q,"stringify",function(J,Z){if(Z&&Z.language)q.language=Z.language;return _4(q,J,Z)}),q.content=c.toString(q.content),q.isEmpty=!1,q.excerpt="",q}});var l1=K((g5,d1)=>{var r4=C0(),p4=t();d1.exports=function(q,J,Z){let V=p4(Z),$=r4(q,V);if(typeof $.parse!=="function")throw TypeError('expected "'+q+'.parse" to be a function');return $.parse(J,V)}});var a4=K((m5,i1)=>{var c4=n("fs"),d4=p0(),I0=t(),l4=y0(),n1=_1(),n4=x0(),o4=c1(),i4=l1(),o1=M0();function R(q,J){if(q==="")return{data:{},content:q,excerpt:"",orig:q};let Z=o4(q),V=R.cache[Z.content];if(!J){if(V)return Z=Object.assign({},V),Z.orig=V.orig,Z;R.cache[Z.content]=Z}return s4(Z,J)}function s4(q,J){let Z=I0(J),V=Z.delimiters[0],$=`
|
|
50
50
|
`+Z.delimiters[1],Y=q.content;if(Z.language)q.language=Z.language;let z=V.length;if(!o1.startsWith(Y,V,z))return n1(q,Z),q;if(Y.charAt(z)===V.slice(-1))return q;Y=Y.slice(z);let X=Y.length,G=R.language(Y,Z);if(G.name)q.language=G.name,Y=Y.slice(G.raw.length);let Q=Y.indexOf($);if(Q===-1)Q=X;if(q.matter=Y.slice(0,Q),q.matter.replace(/^\s*#[^\n]+/gm,"").trim()==="")q.isEmpty=!0,q.empty=q.content,q.data={};else q.data=i4(q.language,q.matter,Z);if(Q===X)q.content="";else{if(q.content=Y.slice(Q+$.length),q.content[0]==="\r")q.content=q.content.slice(1);if(q.content[0]===`
|
|
51
51
|
`)q.content=q.content.slice(1)}if(n1(q,Z),Z.sections===!0||typeof Z.section==="function")d4(q,Z.section);return q}R.engines=n4;R.stringify=function(q,J,Z){if(typeof q==="string")q=R(q,Z);return l4(q,J,Z)};R.read=function(q,J){let Z=c4.readFileSync(q,"utf8"),V=R(Z,J);return V.path=q,V};R.test=function(q,J){return o1.startsWith(q,I0(J).delimiters[0])};R.language=function(q,J){let V=I0(J).delimiters[0];if(R.test(q))q=q.slice(V.length);let $=q.slice(0,q.search(/\r?\n/));return{raw:$,name:$?$.trim():""}};R.cache={};R.clearCache=function(){R.cache={}};i1.exports=R});
|
|
52
|
-
export{a4 as
|
|
52
|
+
export{a4 as Q};
|
|
53
53
|
|
|
54
|
-
//# debugId=
|
|
54
|
+
//# debugId=8359AA9ACA39D5E164756E2164756E21
|
|
@@ -48,6 +48,6 @@
|
|
|
48
48
|
"'use strict';\n\nconst fs = require('fs');\nconst sections = require('section-matter');\nconst defaults = require('./lib/defaults');\nconst stringify = require('./lib/stringify');\nconst excerpt = require('./lib/excerpt');\nconst engines = require('./lib/engines');\nconst toFile = require('./lib/to-file');\nconst parse = require('./lib/parse');\nconst utils = require('./lib/utils');\n\n/**\n * Takes a string or object with `content` property, extracts\n * and parses front-matter from the string, then returns an object\n * with `data`, `content` and other [useful properties](#returned-object).\n *\n * ```js\n * const matter = require('gray-matter');\n * console.log(matter('---\\ntitle: Home\\n---\\nOther stuff'));\n * //=> { data: { title: 'Home'}, content: 'Other stuff' }\n * ```\n * @param {Object|String} `input` String, or object with `content` string\n * @param {Object} `options`\n * @return {Object}\n * @api public\n */\n\nfunction matter(input, options) {\n if (input === '') {\n return { data: {}, content: input, excerpt: '', orig: input };\n }\n\n let file = toFile(input);\n const cached = matter.cache[file.content];\n\n if (!options) {\n if (cached) {\n file = Object.assign({}, cached);\n file.orig = cached.orig;\n return file;\n }\n\n // only cache if there are no options passed. if we cache when options\n // are passed, we would need to also cache options values, which would\n // negate any performance benefits of caching\n matter.cache[file.content] = file;\n }\n\n return parseMatter(file, options);\n}\n\n/**\n * Parse front matter\n */\n\nfunction parseMatter(file, options) {\n const opts = defaults(options);\n const open = opts.delimiters[0];\n const close = '\\n' + opts.delimiters[1];\n let str = file.content;\n\n if (opts.language) {\n file.language = opts.language;\n }\n\n // get the length of the opening delimiter\n const openLen = open.length;\n if (!utils.startsWith(str, open, openLen)) {\n excerpt(file, opts);\n return file;\n }\n\n // if the next character after the opening delimiter is\n // a character from the delimiter, then it's not a front-\n // matter delimiter\n if (str.charAt(openLen) === open.slice(-1)) {\n return file;\n }\n\n // strip the opening delimiter\n str = str.slice(openLen);\n const len = str.length;\n\n // use the language defined after first delimiter, if it exists\n const language = matter.language(str, opts);\n if (language.name) {\n file.language = language.name;\n str = str.slice(language.raw.length);\n }\n\n // get the index of the closing delimiter\n let closeIndex = str.indexOf(close);\n if (closeIndex === -1) {\n closeIndex = len;\n }\n\n // get the raw front-matter block\n file.matter = str.slice(0, closeIndex);\n\n const block = file.matter.replace(/^\\s*#[^\\n]+/gm, '').trim();\n if (block === '') {\n file.isEmpty = true;\n file.empty = file.content;\n file.data = {};\n } else {\n\n // create file.data by parsing the raw file.matter block\n file.data = parse(file.language, file.matter, opts);\n }\n\n // update file.content\n if (closeIndex === len) {\n file.content = '';\n } else {\n file.content = str.slice(closeIndex + close.length);\n if (file.content[0] === '\\r') {\n file.content = file.content.slice(1);\n }\n if (file.content[0] === '\\n') {\n file.content = file.content.slice(1);\n }\n }\n\n excerpt(file, opts);\n\n if (opts.sections === true || typeof opts.section === 'function') {\n sections(file, opts.section);\n }\n return file;\n}\n\n/**\n * Expose engines\n */\n\nmatter.engines = engines;\n\n/**\n * Stringify an object to YAML or the specified language, and\n * append it to the given string. By default, only YAML and JSON\n * can be stringified. See the [engines](#engines) section to learn\n * how to stringify other languages.\n *\n * ```js\n * console.log(matter.stringify('foo bar baz', {title: 'Home'}));\n * // results in:\n * // ---\n * // title: Home\n * // ---\n * // foo bar baz\n * ```\n * @param {String|Object} `file` The content string to append to stringified front-matter, or a file object with `file.content` string.\n * @param {Object} `data` Front matter to stringify.\n * @param {Object} `options` [Options](#options) to pass to gray-matter and [js-yaml].\n * @return {String} Returns a string created by wrapping stringified yaml with delimiters, and appending that to the given string.\n * @api public\n */\n\nmatter.stringify = function(file, data, options) {\n if (typeof file === 'string') file = matter(file, options);\n return stringify(file, data, options);\n};\n\n/**\n * Synchronously read a file from the file system and parse\n * front matter. Returns the same object as the [main function](#matter).\n *\n * ```js\n * const file = matter.read('./content/blog-post.md');\n * ```\n * @param {String} `filepath` file path of the file to read.\n * @param {Object} `options` [Options](#options) to pass to gray-matter.\n * @return {Object} Returns [an object](#returned-object) with `data` and `content`\n * @api public\n */\n\nmatter.read = function(filepath, options) {\n const str = fs.readFileSync(filepath, 'utf8');\n const file = matter(str, options);\n file.path = filepath;\n return file;\n};\n\n/**\n * Returns true if the given `string` has front matter.\n * @param {String} `string`\n * @param {Object} `options`\n * @return {Boolean} True if front matter exists.\n * @api public\n */\n\nmatter.test = function(str, options) {\n return utils.startsWith(str, defaults(options).delimiters[0]);\n};\n\n/**\n * Detect the language to use, if one is defined after the\n * first front-matter delimiter.\n * @param {String} `string`\n * @param {Object} `options`\n * @return {Object} Object with `raw` (actual language string), and `name`, the language with whitespace trimmed\n */\n\nmatter.language = function(str, options) {\n const opts = defaults(options);\n const open = opts.delimiters[0];\n\n if (matter.test(str)) {\n str = str.slice(open.length);\n }\n\n const language = str.slice(0, str.search(/\\r?\\n/));\n return {\n raw: language,\n name: language ? language.trim() : ''\n };\n};\n\n/**\n * Expose `matter`\n */\n\nmatter.cache = {};\nmatter.clearCache = function() {\n matter.cache = {};\n};\nmodule.exports = matter;\n"
|
|
49
49
|
],
|
|
50
50
|
"mappings": "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",
|
|
51
|
-
"debugId": "
|
|
51
|
+
"debugId": "8359AA9ACA39D5E164756E2164756E21",
|
|
52
52
|
"names": []
|
|
53
53
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./chunk-
|
|
2
|
-
export{p as
|
|
1
|
+
import"./chunk-3m9whg4q.js";import{AutoTokenizer as B}from"@huggingface/transformers";var Q=new Map,V=new Set,W=new Set,G=3,U={"gpt-4":"Xenova/gpt-4","gpt-4-turbo":"Xenova/gpt-4","gpt-4o":"Xenova/gpt-4","gpt-3.5-turbo":"Xenova/gpt-3.5-turbo","gpt-3.5":"Xenova/gpt-3.5-turbo","claude-3-opus":"Xenova/claude-tokenizer","claude-3-sonnet":"Xenova/claude-tokenizer","claude-3-haiku":"Xenova/claude-tokenizer","claude-3.5-sonnet":"Xenova/claude-tokenizer","claude-3.5-haiku":"Xenova/claude-tokenizer",starcoder:"bigcode/starcoder",starcoder2:"bigcode/starcoder2-3b",codellama:"codellama/CodeLlama-7b-hf",gemini:"Xenova/gpt-4",default:"Xenova/gpt-4"};function H(j){if(!j)return U.default;if(U[j])return U[j];let q=j.toLowerCase();for(let[J,P]of Object.entries(U))if(q.includes(J))return P;return U.default}function Y(j){if(!j)return 0;let q=j.split(/\s+/).filter(Boolean).length,J=j.length,P=Math.ceil(J/3.5),v=Math.ceil(q*1.3);return Math.round((P+v)/2)}async function S(j){let q=H(j);if(Q.has(q))return Q.get(q);if(W.has(q))return null;while(V.has(q))await new Promise((J)=>setTimeout(J,100));if(Q.has(q))return Q.get(q);if(W.has(q))return null;try{V.add(q);let J=await B.from_pretrained(q,{cache_dir:"./models/.cache",local_files_only:!1});if(Q.size>=G){let P=Q.keys().next().value;if(P)Q.delete(P)}return Q.set(q,J),V.delete(q),J}catch(J){return console.warn("[TokenCounter] BPE tokenizer initialization failed, using fallback estimation:",J),W.add(q),V.delete(q),null}}async function $(j,q){if(!j)return 0;let J=await S(q);if(!J)return Y(j);try{let P=await J(j);if(P.input_ids&&P.input_ids.size)return P.input_ids.size;if(Array.isArray(P.input_ids))return P.input_ids.length;if(P.input_ids.data)return P.input_ids.data.length;return Y(j)}catch(P){return console.warn("[TokenCounter] Token counting failed, using fallback:",P),Y(j)}}function X(j){return Y(j)}function p(j){if(j<1000)return j.toString();if(j<1e6)return`${(j/1000).toFixed(1)}K`;return`${(j/1e6).toFixed(1)}M`}async function y(j,q){return $(j,q)}async function A(j,q){let J=await $(j,q);return`${p(J)} Tokens`}function b(j){let q=X(j);return`${p(q)} Tokens`}async function f(j,q){return Promise.all(j.map((J)=>$(J,q)))}function D(j){return j.map(X)}async function L(j){let q=H(j),J=await S(j);return{modelName:j||"default",tokenizerName:q,loaded:J!==null,failed:W.has(q)}}function R(){return Object.keys(U).filter((j)=>j!=="default")}export{L as getTokenizerInfo,R as getSupportedModels,p as formatTokenCount,D as estimateTokensBatch,X as estimateTokens,y as countTokensForModel,f as countTokensBatch,$ as countTokens,b as countAndFormatSync,A as countAndFormat};
|
|
2
|
+
export{p as j,L as k};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=EA8532F97BD1FE4A64756E2164756E21
|