@sylphx/flow 0.1.0 → 0.1.1

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/dist/index.js CHANGED
@@ -608,7 +608,7 @@ $toast = New-Object Windows.UI.Notifications.ToastNotification $xml
608
608
  `),I=Math.max(...E.map((X)=>X.length),D.stops.length),G=oEA(D,Q,I),J=[];for(let X of E){let W=G.slice(0),U="";for(let z of X)U+=FA.hex(W.shift()?.toHex()||"#000")(z);J.push(U)}return J.join(`
609
609
  `)}function OV(A){let D={interpolation:"rgb",hsvSpin:"short",...A};if(A!==void 0&&typeof A!=="object")throw TypeError(`Expected \`options\` to be an \`object\`, got \`${typeof A}\``);if(typeof D.interpolation!=="string")throw TypeError(`Expected \`options.interpolation\` to be \`rgb\` or \`hsv\`, got \`${typeof D.interpolation}\``);if(D.interpolation.toLowerCase()==="hsv"&&typeof D.hsvSpin!=="string")throw TypeError(`Expected \`options.hsvSpin\` to be a \`short\` or \`long\`, got \`${typeof D.hsvSpin}\``);return D}var wI={atlas:{colors:["#feac5e","#c779d0","#4bc0c8"],options:{}},cristal:{colors:["#bdfff3","#4ac29a"],options:{}},teen:{colors:["#77a1d3","#79cbca","#e684ae"],options:{}},mind:{colors:["#473b7b","#3584a7","#30d2be"],options:{}},morning:{colors:["#ff5f6d","#ffc371"],options:{interpolation:"hsv"}},vice:{colors:["#5ee7df","#b490ca"],options:{interpolation:"hsv"}},passion:{colors:["#f43b47","#453a94"],options:{}},fruit:{colors:["#ff4e50","#f9d423"],options:{}},instagram:{colors:["#833ab4","#fd1d1d","#fcb045"],options:{}},retro:{colors:["#3f51b1","#5a55ae","#7b5fac","#8f6aae","#a86aa4","#cc6b8e","#f18271","#f3a469","#f7c978"],options:{}},summer:{colors:["#fdbb2d","#22c1c3"],options:{}},rainbow:{colors:["#ff0000","#ff0100"],options:{interpolation:"hsv",hsvSpin:"long"}},pastel:{colors:["#74ebd5","#74ecd5"],options:{interpolation:"hsv",hsvSpin:"long"}}};function ZI(A){let D=(B)=>KE(...A.colors)(B,A.options);return D.multiline=(B="")=>KE(...A.colors).multiline(B,A.options),D}var rEA=KE,VdA=ZI(wI.atlas),OdA=ZI(wI.cristal),jdA=ZI(wI.teen),PdA=ZI(wI.mind),TdA=ZI(wI.morning),kdA=ZI(wI.vice),SdA=ZI(wI.passion),vdA=ZI(wI.fruit),gdA=ZI(wI.instagram),_dA=ZI(wI.retro),fdA=ZI(wI.summer),ydA=ZI(wI.rainbow),xdA=ZI(wI.pastel);KE.atlas=VdA;KE.cristal=OdA;KE.teen=jdA;KE.mind=PdA;KE.morning=TdA;KE.vice=kdA;KE.passion=SdA;KE.fruit=vdA;KE.instagram=gdA;KE.retro=_dA;KE.summer=fdA;KE.rainbow=ydA;KE.pastel=xdA;var tEA=(A)=>({_tag:"Some",value:A}),eEA={_tag:"None"};var e7=(A)=>A._tag==="Some";var AIA=(A)=>(D)=>{if(e7(D))return D.value;return A};import{spawn as pdA}from"node:child_process";import cdA from"node:fs";import vV from"node:fs/promises";import VC from"node:path";import CE from"node:fs";import p4 from"node:path";import EIA from"node:path";import RC from"node:fs/promises";import DIA from"node:path";async function PV(A,D={}){let{encoding:B="utf8",fallback:Q}=D;try{return await RC.readFile(A,B)}catch(E){if(E.code==="ENOENT"&&Q!==void 0)return Q;throw E}}async function BIA(A){try{return await RC.access(A),!0}catch{return!1}}async function oW(A){try{let D=await RC.stat(A);return{exists:!0,isFile:D.isFile(),isDirectory:D.isDirectory(),size:D.size,mtime:D.mtime,atime:D.atime,ctime:D.ctime}}catch{return{exists:!1,isFile:!1,isDirectory:!1}}}async function QIA(A){if(jV.validatePath(A),!await BIA(A))return;if((await oW(A)).isDirectory)await RC.rm(A,{recursive:!0,force:!0});else await RC.unlink(A)}async function rW(A,D={}){let{recursive:B=!1,includeFiles:Q=!0,includeDirectories:E=!0}=D;if(jV.validatePath(A),!await BIA(A))throw Error(`Directory does not exist: ${A}`);if(!(await oW(A)).isDirectory)throw Error(`Path is not a directory: ${A}`);if(B){let J=[],X=await RC.readdir(A,{withFileTypes:!0});for(let W of X){let U=DIA.join(A,W.name);if(W.isDirectory()&&E){J.push(U);let z=await rW(U,D);J.push(...z)}else if(W.isFile()&&Q)J.push(U)}return J}return(await RC.readdir(A,{withFileTypes:!0})).filter((J)=>{if(J.isFile()&&Q)return!0;if(J.isDirectory()&&E)return!0;return!1}).map((J)=>DIA.join(A,J.name))}async function TV(A,D){try{return(await rW(A,{recursive:!0,includeFiles:!0,includeDirectories:!1})).filter((Q)=>D.some((E)=>Q.endsWith(E))).map((Q)=>EIA.relative(A,Q)).sort()}catch{return[]}}async function AJ(A){let D=await oW(A);if(!D.exists||!D.isFile)return null;let B=await PV(A);if(B===null)return null;return{content:B,mtime:D.mtime}}async function kV(A,D,B,Q){try{let E=await rW(A,{recursive:!1,includeFiles:!0,includeDirectories:!1});for(let I of E){let G=EIA.basename(I);if(B.some((X)=>G.endsWith(X))&&!D.has(G))await QIA(I),Q.push({file:G,status:"skipped",action:"Removed obsolete file"})}}catch{}}async function IIA(A,D){if(!CE.existsSync(A))return[];let B=[],Q=CE.readdirSync(A,{withFileTypes:!0}).filter((I)=>I.isFile()&&I.name.endsWith(D)).map((I)=>I.name);B.push(...Q);let E=CE.readdirSync(A,{withFileTypes:!0}).filter((I)=>I.isDirectory()&&I.name!=="archived").map((I)=>I.name);for(let I of E){let G=p4.join(A,I),J=await TV(G,[D]);B.push(...J.map((X)=>p4.join(I,X)))}return B}async function bdA(A,D,B,Q={}){let E=[],I=await IIA(A,Q.extension||".md");if(I.length===0)return E;if(Q.clear&&CE.existsSync(D)){let J=new Set(I.map((X)=>{if(Q.flatten){let W=p4.parse(X),U=W.name,z=W.dir;return`${z?`${z.replace(/[/\\]/g,"-")}-${U}`:U}${Q.extension||".md"}`}return X}));kV(D,J,[Q.extension||".md"],E)}if(CE.mkdirSync(D,{recursive:!0}),Q.showProgress&&!Q.quiet)console.log(`Installing ${I.length} file${I.length>1?"s":""} to ${D.replace(`${process.cwd()}/`,"")}`),console.log("");if(Q.dryRun){if(!Q.quiet)console.log("✓ Dry run completed - no files were modified");return E}let G=I.map(async(J)=>{let X=p4.join(A,J),W=p4.join(D,J),U=p4.dirname(W);if(!CE.existsSync(U))CE.mkdirSync(U,{recursive:!0});let z=await AJ(W),w=CE.readFileSync(X,"utf8");w=await B(w,J);let $=z?await B(z.content,J):"";if(!z||$!==w)CE.writeFileSync(W,w,"utf8"),E.push({file:J,status:z?"updated":"added",action:z?"Updated":"Created"});else E.push({file:J,status:"current",action:"Already current"})});return await Promise.all(G),E}async function udA(A,D,B,Q={}){let E=await IIA(A,Q.extension||".md");if(E.length===0)return;if(Q.dryRun){if(!Q.quiet)console.log(`Dry run: Would append ${E.length} file${E.length>1?"s":""} to ${D.replace(`${process.cwd()}/`,"")}`);return}let I="";if(CE.existsSync(D))I=CE.readFileSync(D,"utf8");let G="";for(let J of E){let X=p4.join(A,J),W=CE.readFileSync(X,"utf8");W=await B(W,J),G+=`${W}
610
610
 
611
- `}if(CE.writeFileSync(D,I+G,"utf8"),Q.showProgress&&!Q.quiet)console.log(`Appended ${E.length} file${E.length>1?"s":""} to ${D.replace(`${process.cwd()}/`,"")}`)}async function mdA(A,D,B,Q={}){if(Q.dryRun){if(!Q.quiet)console.log(`Dry run: Would install file to ${D.replace(`${process.cwd()}/`,"")}`);return}if(!CE.existsSync(A)){if(!Q.quiet)console.warn(`Source file not found: ${A}`);return}let E=p4.dirname(D);CE.mkdirSync(E,{recursive:!0});let I=await AJ(D),G=CE.readFileSync(A,"utf8");if(G=await B(G),I&&I.content===G){if(!Q.quiet)console.log(`File already current: ${D.replace(`${process.cwd()}/`,"")}`);return}if(CE.writeFileSync(D,G,"utf8"),Q.showProgress&&!Q.quiet)console.log(`${I?"Updated":"Created"} file: ${D.replace(`${process.cwd()}/`,"")}`)}class c4{async installToDirectory(A,D,B,Q={}){return bdA(A,D,B,Q)}async appendToFile(A,D,B,Q={}){return udA(A,D,B,Q)}async installFile(A,D,B,Q={}){return mdA(A,D,B,Q)}}async function FIA(){let A=await fB.resolveTarget({allowSelection:!1});try{let D=fB.getTarget(A);if(D._tag==="None")return;return D.value.mcpServerConfig}catch{return}}var x0={"sylphx-flow":{id:"sylphx-flow",name:"sylphx-flow",description:"Sylphx Flow MCP server for agent coordination and memory management",config:{type:"stdio",command:"sylphx-flow",args:async()=>{let A=["mcp-server"],D=await FIA();if(D?.disableMemory)A.push("--disable-memory");if(D?.disableTime)A.push("--disable-time");if(D?.disableProjectStartup)A.push("--disable-project-startup");if(D?.disableKnowledge)A.push("--disable-knowledge");if(D?.disableCodebase)A.push("--disable-codebase");return A},env:{OPENAI_API_KEY:"",OPENAI_BASE_URL:"https://api.openai.com/v1",EMBEDDING_MODEL:"text-embedding-3-small"}},envVars:{OPENAI_API_KEY:{description:"OpenAI API key for vector search embeddings",required:!1,secret:!0},OPENAI_BASE_URL:{description:"Base URL for OpenAI-compatible embedding API",required:!1,default:"https://api.openai.com/v1"},EMBEDDING_MODEL:{description:"Embedding model to use for vector search",required:!1,default:"text-embedding-3-small",dependsOn:["OPENAI_API_KEY","OPENAI_BASE_URL"],fetchChoices:async()=>{let A=zF.getEnvVar("OPENAI_BASE_URL","https://api.openai.com/v1"),D=zF.getEnvVar("OPENAI_API_KEY");if(!D)throw Error("OPENAI_API_KEY is required to fetch embedding models");try{a7.apiKey.parse(D)}catch(I){throw Error("Invalid OPENAI_API_KEY format")}let B=await fetch(`${A}/models`,{headers:{Authorization:`Bearer ${D}`},timeout:1e4});if(!B.ok)throw Error(`Failed to fetch models: ${B.statusText}`);let E=(await B.json()).data.filter((I)=>I.id.includes("embedding")).map((I)=>I.id).sort();if(E.length===0)throw Error("No embedding models found");return E}}},category:"core",defaultInInit:!0,required:!0},"gpt-image":{id:"gpt-image",name:"gpt-image-1-mcp",description:"GPT Image generation MCP server",config:{type:"stdio",command:"npx",args:["@napolab/gpt-image-1-mcp"],env:{OPENAI_API_KEY:""}},envVars:{OPENAI_API_KEY:{description:"OpenAI API key for image generation",required:!0,secret:!0}},category:"ai",defaultInInit:!1},perplexity:{id:"perplexity",name:"perplexity-ask",description:"Perplexity Ask MCP server for search and queries",config:{type:"stdio",command:"npx",args:["-y","server-perplexity-ask"],env:{PERPLEXITY_API_KEY:""}},envVars:{PERPLEXITY_API_KEY:{description:"Perplexity API key for search and queries",required:!0,secret:!0}},category:"ai",defaultInInit:!1},context7:{id:"context7",name:"context7",description:"Context7 HTTP MCP server for documentation retrieval",config:{type:"http",url:"https://mcp.context7.com/mcp"},envVars:{CONTEXT7_API_KEY:{description:"Context7 API key for enhanced documentation access",required:!1,secret:!0}},category:"external",defaultInInit:!0},"gemini-search":{id:"gemini-search",name:"gemini-google-search",description:"Gemini Google Search MCP server",config:{type:"stdio",command:"npx",args:["-y","mcp-gemini-google-search"],env:{GEMINI_API_KEY:"",GEMINI_MODEL:"gemini-2.5-flash"}},envVars:{GEMINI_API_KEY:{description:"Google Gemini API key for search functionality",required:!0,secret:!0},GEMINI_MODEL:{description:"Gemini model to use for search",required:!1,default:"gemini-2.5-flash"}},category:"ai",defaultInInit:!1},grep:{id:"grep",name:"grep",description:"GitHub grep MCP server for searching GitHub repositories",config:{type:"http",url:"https://mcp.grep.app"},category:"external",defaultInInit:!0}};var CIA=(A)=>A.type==="stdio";var tW=(A)=>CIA(A);function SV(A){if(typeof A==="function"){let D=A();return Promise.resolve(D)}return Promise.resolve(A)}var R2=(A)=>{let D=()=>{return Object.keys(x0)},B=async()=>{let w=await Q();return D().filter(($)=>!w.includes($))},Q=async()=>{try{let w=await A.target.readConfig(process.cwd()),$=A.target.config.mcpConfigPath,q=U(w,$)||{},L=Object.keys(q);return Object.values(x0).filter((Z)=>L.includes(Z.name)).map((Z)=>Z.id)}catch(w){return[]}},E=(w)=>{return w.filter(($)=>{return!!x0[$].envVars})},I=(w,$)=>{let q=x0[w];if(!q?.envVars)return{isValid:!0,missingRequired:[],invalidValues:[]};let L=[],Z=[];for(let[R,O]of Object.entries(q.envVars)){let V=$[R]||process.env[R]||"";if(O.required&&(!V||V===""))L.push(R)}return{isValid:L.length===0&&Z.length===0,missingRequired:L,invalidValues:Z}},G=async(w,$={})=>{let q=x0[w],L={};if(!q.envVars)return L;console.log(""),console.log(FA.cyan(`▸ ${q.name}`)),console.log(FA.gray(` ${q.description}`)),console.log("");for(let[Z,R]of Object.entries(q.envVars)){if(R.dependsOn){if(R.dependsOn.filter((h)=>!($[h]||process.env[h])).length>0)continue}let O=$[Z]||process.env[Z],V;if(O&&O.trim()!=="")V=O;else if(R.fetchChoices){let P=kE("Fetching options...").start();for(let[h,u]of Object.entries($))if(u)process.env[h]=u;try{let h=await R.fetchChoices();P.stop(),V=(await FQ.prompt({type:"list",name:"value",message:`${Z}${R.required?" *":""}`,choices:h,default:R.default||h[0]})).value}catch(h){let u=h instanceof Error?h.message:String(h);P.fail(FA.red(`Failed to fetch options: ${u}`)),V=(await FQ.prompt({type:"input",name:"value",message:`${Z}${R.required?" *":""}`,default:R.default})).value}}else if(Z==="GEMINI_MODEL")V=(await FQ.prompt({type:"list",name:"model",message:`${Z}${R.required?" *":""}`,choices:["gemini-2.5-flash","gemini-2.5-pro","gemini-1.5-flash","gemini-1.5-pro"],default:R.default||"gemini-2.5-flash"})).model;else V=(await FQ.prompt({type:R.secret?"password":"input",name:"value",message:`${Z}${R.required?" *":""}`,default:R.default,mask:R.secret?"•":void 0})).value;if(V)L[Z]=V,$[Z]=V}return console.log(FA.green("✓ Configured")),console.log(""),L},J=async(w,$={})=>{if(w.length===0)return;try{let q=await A.target.readConfig(process.cwd()),L=A.target.config.mcpConfigPath,R={...U(q,L)||{}};for(let O of w){let V=x0[O],P=$[O]||{},h={...V.config},u,y;if(tW(V.config))u=V.config.command?await SV(V.config.command):void 0,y=V.config.args?await SV(V.config.args):[];if(tW(V.config))h={...V.config,command:u,args:y};if(Object.keys(P).length>0){let d={...V.config.type==="local"?V.config.environment:V.config.type==="stdio"?V.config.env:{}};for(let[o,r]of Object.entries(P))if(r&&r.trim()!=="")d[o]=r;if(h.type==="local")h.environment=d;else if(h.type==="stdio")h.env=d}let a=A.target.transformMCPConfig(h,O);R[V.name]=a}if(z(q,L,R),await A.target.writeConfig(process.cwd(),q),A.target.approveMCPServers){let O=w.map((V)=>x0[V].name);await A.target.approveMCPServers(process.cwd(),O)}}catch(q){throw Error(`Failed to install MCP servers: ${q instanceof Error?q.message:String(q)}`)}},X=async()=>{try{return await A.target.readConfig(process.cwd())}catch(w){return{settings:{}}}},W=async(w)=>{await A.target.writeConfig(process.cwd(),w)},U=(w,$)=>{return $.split(".").reduce((q,L)=>{if(typeof q==="object"&&q!==null)return q[L];return},w)},z=(w,$,q)=>{let L=$.split("."),Z=L.pop();if(!Z)return;let R=L.reduce((O,V)=>{if(!O[V])O[V]={};return O[V]},w);R[Z]=q};return{getAllServerIds:D,getAvailableServers:B,getInstalledServerIds:Q,getRequiringConfiguration:E,validateServer:I,configureServer:G,installServers:J,readConfig:X,writeConfig:W}};function ddA(A){let D=fB.getTarget(A);if(D._tag==="None")throw Error(`Target not found: ${A}`);let B=D.value,Q=R2({target:B}),E=async(X={})=>{let W=Q.getAllServerIds(),U=await Q.getInstalledServerIds();if(!X.quiet)console.log(FA.cyan.bold(`━━━ Configure MCP Tools ━━━
611
+ `}if(CE.writeFileSync(D,I+G,"utf8"),Q.showProgress&&!Q.quiet)console.log(`Appended ${E.length} file${E.length>1?"s":""} to ${D.replace(`${process.cwd()}/`,"")}`)}async function mdA(A,D,B,Q={}){if(Q.dryRun){if(!Q.quiet)console.log(`Dry run: Would install file to ${D.replace(`${process.cwd()}/`,"")}`);return}if(!CE.existsSync(A)){if(!Q.quiet)console.warn(`Source file not found: ${A}`);return}let E=p4.dirname(D);CE.mkdirSync(E,{recursive:!0});let I=await AJ(D),G=CE.readFileSync(A,"utf8");if(G=await B(G),I&&I.content===G){if(!Q.quiet)console.log(`File already current: ${D.replace(`${process.cwd()}/`,"")}`);return}if(CE.writeFileSync(D,G,"utf8"),Q.showProgress&&!Q.quiet)console.log(`${I?"Updated":"Created"} file: ${D.replace(`${process.cwd()}/`,"")}`)}class c4{async installToDirectory(A,D,B,Q={}){return bdA(A,D,B,Q)}async appendToFile(A,D,B,Q={}){return udA(A,D,B,Q)}async installFile(A,D,B,Q={}){return mdA(A,D,B,Q)}}async function FIA(){let A=await fB.resolveTarget({allowSelection:!1});try{let D=fB.getTarget(A);if(D._tag==="None")return;return D.value.mcpServerConfig}catch{return}}var x0={"sylphx-flow":{id:"sylphx-flow",name:"sylphx-flow",description:"Sylphx Flow MCP server for agent coordination and memory management",config:{type:"stdio",command:"sylphx-flow",args:async()=>{let A=["mcp","start"],D=await FIA();if(D?.disableMemory)A.push("--disable-memory");if(D?.disableTime)A.push("--disable-time");if(D?.disableProjectStartup)A.push("--disable-project-startup");if(D?.disableKnowledge)A.push("--disable-knowledge");if(D?.disableCodebase)A.push("--disable-codebase");return A},env:{OPENAI_API_KEY:"",OPENAI_BASE_URL:"https://api.openai.com/v1",EMBEDDING_MODEL:"text-embedding-3-small"}},envVars:{OPENAI_API_KEY:{description:"OpenAI API key for vector search embeddings",required:!1,secret:!0},OPENAI_BASE_URL:{description:"Base URL for OpenAI-compatible embedding API",required:!1,default:"https://api.openai.com/v1"},EMBEDDING_MODEL:{description:"Embedding model to use for vector search",required:!1,default:"text-embedding-3-small",dependsOn:["OPENAI_API_KEY","OPENAI_BASE_URL"],fetchChoices:async()=>{let A=zF.getEnvVar("OPENAI_BASE_URL","https://api.openai.com/v1"),D=zF.getEnvVar("OPENAI_API_KEY");if(!D)throw Error("OPENAI_API_KEY is required to fetch embedding models");try{a7.apiKey.parse(D)}catch(I){throw Error("Invalid OPENAI_API_KEY format")}let B=await fetch(`${A}/models`,{headers:{Authorization:`Bearer ${D}`},timeout:1e4});if(!B.ok)throw Error(`Failed to fetch models: ${B.statusText}`);let E=(await B.json()).data.filter((I)=>I.id.includes("embedding")).map((I)=>I.id).sort();if(E.length===0)throw Error("No embedding models found");return E}}},category:"core",defaultInInit:!0,required:!0},"gpt-image":{id:"gpt-image",name:"gpt-image-1-mcp",description:"GPT Image generation MCP server",config:{type:"stdio",command:"npx",args:["@napolab/gpt-image-1-mcp"],env:{OPENAI_API_KEY:""}},envVars:{OPENAI_API_KEY:{description:"OpenAI API key for image generation",required:!0,secret:!0}},category:"ai",defaultInInit:!1},perplexity:{id:"perplexity",name:"perplexity-ask",description:"Perplexity Ask MCP server for search and queries",config:{type:"stdio",command:"npx",args:["-y","server-perplexity-ask"],env:{PERPLEXITY_API_KEY:""}},envVars:{PERPLEXITY_API_KEY:{description:"Perplexity API key for search and queries",required:!0,secret:!0}},category:"ai",defaultInInit:!1},context7:{id:"context7",name:"context7",description:"Context7 HTTP MCP server for documentation retrieval",config:{type:"http",url:"https://mcp.context7.com/mcp"},envVars:{CONTEXT7_API_KEY:{description:"Context7 API key for enhanced documentation access",required:!1,secret:!0}},category:"external",defaultInInit:!0},"gemini-search":{id:"gemini-search",name:"gemini-google-search",description:"Gemini Google Search MCP server",config:{type:"stdio",command:"npx",args:["-y","mcp-gemini-google-search"],env:{GEMINI_API_KEY:"",GEMINI_MODEL:"gemini-2.5-flash"}},envVars:{GEMINI_API_KEY:{description:"Google Gemini API key for search functionality",required:!0,secret:!0},GEMINI_MODEL:{description:"Gemini model to use for search",required:!1,default:"gemini-2.5-flash"}},category:"ai",defaultInInit:!1},grep:{id:"grep",name:"grep",description:"GitHub grep MCP server for searching GitHub repositories",config:{type:"http",url:"https://mcp.grep.app"},category:"external",defaultInInit:!0}};var CIA=(A)=>A.type==="stdio";var tW=(A)=>CIA(A);function SV(A){if(typeof A==="function"){let D=A();return Promise.resolve(D)}return Promise.resolve(A)}var R2=(A)=>{let D=()=>{return Object.keys(x0)},B=async()=>{let w=await Q();return D().filter(($)=>!w.includes($))},Q=async()=>{try{let w=await A.target.readConfig(process.cwd()),$=A.target.config.mcpConfigPath,q=U(w,$)||{},L=Object.keys(q);return Object.values(x0).filter((Z)=>L.includes(Z.name)).map((Z)=>Z.id)}catch(w){return[]}},E=(w)=>{return w.filter(($)=>{return!!x0[$].envVars})},I=(w,$)=>{let q=x0[w];if(!q?.envVars)return{isValid:!0,missingRequired:[],invalidValues:[]};let L=[],Z=[];for(let[R,O]of Object.entries(q.envVars)){let V=$[R]||process.env[R]||"";if(O.required&&(!V||V===""))L.push(R)}return{isValid:L.length===0&&Z.length===0,missingRequired:L,invalidValues:Z}},G=async(w,$={})=>{let q=x0[w],L={};if(!q.envVars)return L;console.log(""),console.log(FA.cyan(`▸ ${q.name}`)),console.log(FA.gray(` ${q.description}`)),console.log("");for(let[Z,R]of Object.entries(q.envVars)){if(R.dependsOn){if(R.dependsOn.filter((h)=>!($[h]||process.env[h])).length>0)continue}let O=$[Z]||process.env[Z],V;if(O&&O.trim()!=="")V=O;else if(R.fetchChoices){let P=kE("Fetching options...").start();for(let[h,u]of Object.entries($))if(u)process.env[h]=u;try{let h=await R.fetchChoices();P.stop(),V=(await FQ.prompt({type:"list",name:"value",message:`${Z}${R.required?" *":""}`,choices:h,default:R.default||h[0]})).value}catch(h){let u=h instanceof Error?h.message:String(h);P.fail(FA.red(`Failed to fetch options: ${u}`)),V=(await FQ.prompt({type:"input",name:"value",message:`${Z}${R.required?" *":""}`,default:R.default})).value}}else if(Z==="GEMINI_MODEL")V=(await FQ.prompt({type:"list",name:"model",message:`${Z}${R.required?" *":""}`,choices:["gemini-2.5-flash","gemini-2.5-pro","gemini-1.5-flash","gemini-1.5-pro"],default:R.default||"gemini-2.5-flash"})).model;else V=(await FQ.prompt({type:R.secret?"password":"input",name:"value",message:`${Z}${R.required?" *":""}`,default:R.default,mask:R.secret?"•":void 0})).value;if(V)L[Z]=V,$[Z]=V}return console.log(FA.green("✓ Configured")),console.log(""),L},J=async(w,$={})=>{if(w.length===0)return;try{let q=await A.target.readConfig(process.cwd()),L=A.target.config.mcpConfigPath,R={...U(q,L)||{}};for(let O of w){let V=x0[O],P=$[O]||{},h={...V.config},u,y;if(tW(V.config))u=V.config.command?await SV(V.config.command):void 0,y=V.config.args?await SV(V.config.args):[];if(tW(V.config))h={...V.config,command:u,args:y};if(Object.keys(P).length>0){let d={...V.config.type==="local"?V.config.environment:V.config.type==="stdio"?V.config.env:{}};for(let[o,r]of Object.entries(P))if(r&&r.trim()!=="")d[o]=r;if(h.type==="local")h.environment=d;else if(h.type==="stdio")h.env=d}let a=A.target.transformMCPConfig(h,O);R[V.name]=a}if(z(q,L,R),await A.target.writeConfig(process.cwd(),q),A.target.approveMCPServers){let O=w.map((V)=>x0[V].name);await A.target.approveMCPServers(process.cwd(),O)}}catch(q){throw Error(`Failed to install MCP servers: ${q instanceof Error?q.message:String(q)}`)}},X=async()=>{try{return await A.target.readConfig(process.cwd())}catch(w){return{settings:{}}}},W=async(w)=>{await A.target.writeConfig(process.cwd(),w)},U=(w,$)=>{return $.split(".").reduce((q,L)=>{if(typeof q==="object"&&q!==null)return q[L];return},w)},z=(w,$,q)=>{let L=$.split("."),Z=L.pop();if(!Z)return;let R=L.reduce((O,V)=>{if(!O[V])O[V]={};return O[V]},w);R[Z]=q};return{getAllServerIds:D,getAvailableServers:B,getInstalledServerIds:Q,getRequiringConfiguration:E,validateServer:I,configureServer:G,installServers:J,readConfig:X,writeConfig:W}};function ddA(A){let D=fB.getTarget(A);if(D._tag==="None")throw Error(`Target not found: ${A}`);let B=D.value,Q=R2({target:B}),E=async(X={})=>{let W=Q.getAllServerIds(),U=await Q.getInstalledServerIds();if(!X.quiet)console.log(FA.cyan.bold(`━━━ Configure MCP Tools ━━━
612
612
  `));let w=(await FQ.prompt([{type:"checkbox",name:"selectedServers",message:"Select MCP tools to install:",choices:W.map((q)=>{let L=x0[q],Z=U.includes(q);return{name:`${L.name} - ${L.description}`,value:q,checked:L.required||Z||L.defaultInInit||!1,disabled:L.required?"(required)":!1}})}])).selectedServers,$=W.filter((q)=>x0[q].required);return w=[...new Set([...$,...w])],w},I=async(X,W={})=>{let U=X.filter((w)=>{let $=x0[w];return $.envVars&&Object.keys($.envVars).length>0}),z={};if(U.length>0){if(!W.quiet)console.log(FA.cyan.bold(`
613
613
  ━━━ Server Configuration ━━━
614
614
  `));let w={};for(let $ of U){let q=await Q.configureServer($,w);z[$]=q}}return z},G=async(X,W,U={})=>{if(X.length===0)return;let z=U.quiet?null:kE({text:`Installing ${X.length} MCP server${X.length>1?"s":""}`,color:"cyan"}).start();try{if(await Q.installServers(X,W),z)z.succeed(FA.green(`Installed ${FA.cyan(X.length)} MCP server${X.length>1?"s":""}`))}catch(w){if(z)z.fail(FA.red("Failed to install MCP servers"));throw w}};return{selectServers:E,configureServers:I,installServers:G,setupMCP:async(X={})=>{let W=await E(X);if(W.length===0)return{selectedServers:[],serverConfigsMap:{}};let U=await I(W,X);if(!X.dryRun)await G(W,U,X);return{selectedServers:W,serverConfigsMap:U}}}}class DJ{installer;constructor(A){this.installer=ddA(A)}async selectServers(A={}){return this.installer.selectServers(A)}async configureServers(A,D={}){return this.installer.configureServers(A,D)}async installServers(A,D,B={}){return this.installer.installServers(A,D,B)}async setupMCP(A={}){return this.installer.setupMCP(A)}}var OC={id:"claude-code",name:"Claude Code",description:"Claude Code CLI with YAML front matter agents (.claude/agents/*.md)",category:"cli",isImplemented:!0,isDefault:!1,mcpServerConfig:{disableMemory:!0,disableTime:!0,disableProjectStartup:!1,disableKnowledge:!1,disableCodebase:!0},config:{agentDir:".claude/agents",agentExtension:".md",agentFormat:"yaml-frontmatter",stripYaml:!1,flatten:!1,configFile:".mcp.json",configSchema:null,mcpConfigPath:"mcpServers",rulesFile:void 0,outputStylesDir:void 0,slashCommandsDir:".claude/commands",installation:{createAgentDir:!0,createConfigFile:!0,useSecretFiles:!1}},async transformAgentContent(A,D,B){let{metadata:Q,content:E}=await MF.extractFrontMatter(A),I=ldA(Q,E,B);if(D)Object.assign(I,D);return MF.addFrontMatter(E,I)},transformMCPConfig(A,D){if(A.type==="local"){let[B,...Q]=A.command;return{type:"stdio",command:B,...Q&&Q.length>0&&{args:Q},...A.environment&&{env:A.environment}}}if(A.type==="stdio")return{type:"stdio",command:A.command,...A.args&&A.args.length>0&&{args:A.args},...A.env&&{env:A.env}};if(A.type==="remote")return{type:"http",url:A.url,...A.headers&&{headers:A.headers}};if(A.type==="http")return{type:"http",url:A.url,...A.headers&&{headers:A.headers}};return A},getConfigPath:(A)=>Promise.resolve(N1.getConfigPath(OC.config,A)),async readConfig(A){let D=await N1.readConfig(OC.config,A);if(!D.mcpServers)D.mcpServers={};return D},async writeConfig(A,D){if(!D.mcpServers)D.mcpServers={};await N1.writeConfig(OC.config,A,D)},validateRequirements:(A)=>N1.validateRequirements(OC.config,A),getHelpText(){let A=AK(OC.config);return A+=`Claude Code-Specific Information:
@@ -851,4 +851,4 @@ ${InA(Q)}`;if(B){let J=D.agentFile?`file: ${D.agentFile}`:`agent: ${D.agent}`;co
851
851
  \uD83D\uDC4B Sylphx Flow CLI terminated`),process.exit(0)})}function znA(A){if(A instanceof Error){if(A.name==="CommanderError"){let D=A;if(D.code==="commander.help"||D.code==="commander.version")return;console.error(`✗ ${D.message}`),process.exit(D.exitCode||1)}if(console.error(`✗ Error: ${A.message}`),A.stack)console.error(`
852
852
  Stack trace:`),console.error(A.stack)}else console.error(`✗ Unknown error: ${String(A)}`);process.exit(1)}lFA();
853
853
 
854
- //# debugId=3D5F6F9F440D61B364756E2164756E21
854
+ //# debugId=D171BD2B5B0C3DC364756E2164756E21