@sylphx/flow 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import{F as B,I as D}from"./chunk-x46tzzn9.js";var A=()=>{let q=process.argv,b=q[0],w=q[1];if(w.includes("/_npx/")&&w.includes("github"))return{type:"github",repo:"github:sylphxltd/flow"};if(w.includes("/_npx/")){let z=w.match(/@sylphx\/flow|@sylphxltd\/flow/);return{type:"npm",package:z?z[0]:"@sylphx/flow"}}if(w.includes("/.bun/install/cache/")||w.includes("/bun/install/cache/"))return{type:"bunx",package:"@sylphx/flow"};if(b.includes("bun")&&!w.includes(process.cwd()))return{type:"bunx",package:"@sylphx/flow"};if(w.includes(process.cwd())){if(b.includes("bun"))return{type:"local-dev",script:"bun run dev"};return{type:"local-dev",script:"npm run dev"}}if(w.includes("node_modules/.bin")||w.includes("/bin/sylphx-flow"))return{type:"global",command:"sylphx-flow"};return{type:"unknown"}},E=(q)=>{let b=q||A();switch(b.type){case"npm":return`npx -y ${b.package}`;case"github":return`npx -y ${b.repo}`;case"bunx":return`bunx ${b.package}`;case"local-dev":return b.script;case"global":return b.command;case"unknown":return"npx -y @sylphx/flow"}},F=(q)=>{let b=q||A();switch(b.type){case"npm":return["-y",b.package,"mcp","start"];case"github":return["-y",b.repo,"mcp","start"];case"bunx":return[b.package,"mcp","start"];case"local-dev":return["./dist/index.js","mcp","start"];case"global":return[b.command,"mcp","start"];case"unknown":return["-y","@sylphx/flow","mcp","start"]}},G=(q)=>{switch((q||A()).type){case"npm":case"github":return"npx";case"bunx":return"bunx";case"local-dev":return process.execPath.includes("bun")?"bun":"node";case"global":case"unknown":return"npx"}},H=(q,b,w)=>{return`${E(w)} hook --type ${q} --target ${b}`},J=async(q)=>{let{updateSettings:b}=await import("./chunk-02jj9ahn.js");await b({invocationMethod:q})},K=async()=>{let{loadSettings:q}=await import("./chunk-02jj9ahn.js"),b=await q();if(b._tag==="Success")return b.value.invocationMethod;return};export{J as saveInvocationMethod,K as loadInvocationMethod,G as getMCPServerCommand,F as getMCPServerArgs,E as getCommandPrefix,H as generateHookCommand,A as detectInvocation};
2
+
3
+ //# debugId=AE5BA2434A51019C64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utils/cli-invocation.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * CLI Invocation Detection\n * Detects how the CLI was invoked and generates appropriate commands\n *\n * Supports common invocation methods:\n * - npm/npx (most common)\n * - GitHub direct (for bleeding edge)\n * - Bun/bunx (emerging)\n * - Local development (bun/npm run dev)\n * - Global installation\n * - Unknown methods fallback to npm (safe default)\n */\n\n/**\n * Invocation method types\n */\nexport type InvocationMethod =\n | { type: 'npm'; package: string }\n | { type: 'github'; repo: string }\n | { type: 'bunx'; package: string }\n | { type: 'local-dev'; script: string }\n | { type: 'global'; command: string }\n | { type: 'unknown' };\n\n/**\n * Detect how the CLI was invoked\n * Examines process.argv to determine invocation method\n */\nexport const detectInvocation = (): InvocationMethod => {\n const argv = process.argv;\n const execPath = argv[0]; // node/bun executable path\n const scriptPath = argv[1]; // script being executed\n\n // Check if running via npx with github\n if (scriptPath.includes('/_npx/') && scriptPath.includes('github')) {\n return { type: 'github', repo: 'github:sylphxltd/flow' };\n }\n\n // Check if running via npx with npm package\n if (scriptPath.includes('/_npx/')) {\n // Extract package name from path\n const match = scriptPath.match(/@sylphx\\/flow|@sylphxltd\\/flow/);\n return { type: 'npm', package: match ? match[0] : '@sylphx/flow' };\n }\n\n // Check if running via bunx (bun's cache directory)\n // Note: bunx uses #!/usr/bin/env node shebang, so execPath won't be bun\n // Instead, check for bun's install cache directory structure\n if (\n scriptPath.includes('/.bun/install/cache/') ||\n scriptPath.includes('/bun/install/cache/')\n ) {\n return { type: 'bunx', package: '@sylphx/flow' };\n }\n\n // Check if running via bunx (old detection using execPath)\n if (execPath.includes('bun') && !scriptPath.includes(process.cwd())) {\n return { type: 'bunx', package: '@sylphx/flow' };\n }\n\n // Check if running locally in development\n if (scriptPath.includes(process.cwd())) {\n // Check if using bun run dev or npm run dev\n if (execPath.includes('bun')) {\n return { type: 'local-dev', script: 'bun run dev' };\n }\n return { type: 'local-dev', script: 'npm run dev' };\n }\n\n // Check if globally installed\n if (scriptPath.includes('node_modules/.bin') || scriptPath.includes('/bin/sylphx-flow')) {\n return { type: 'global', command: 'sylphx-flow' };\n }\n\n return { type: 'unknown' };\n};\n\n/**\n * Generate command prefix based on invocation method\n * Used for generating hook commands, MCP configs, etc.\n */\nexport const getCommandPrefix = (method?: InvocationMethod): string => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n return `npx -y ${invocation.package}`;\n\n case 'github':\n return `npx -y ${invocation.repo}`;\n\n case 'bunx':\n return `bunx ${invocation.package}`;\n\n case 'local-dev':\n return invocation.script;\n\n case 'global':\n return invocation.command;\n\n case 'unknown':\n // Fallback to npm package (safe default)\n return 'npx -y @sylphx/flow';\n }\n};\n\n/**\n * Generate MCP server args array based on invocation\n */\nexport const getMCPServerArgs = (method?: InvocationMethod): string[] => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n return ['-y', invocation.package, 'mcp', 'start'];\n\n case 'github':\n return ['-y', invocation.repo, 'mcp', 'start'];\n\n case 'bunx':\n return [invocation.package, 'mcp', 'start'];\n\n case 'local-dev':\n // For local dev, use the built dist\n return ['./dist/index.js', 'mcp', 'start'];\n\n case 'global':\n return [invocation.command, 'mcp', 'start'];\n\n case 'unknown':\n // Fallback to npm\n return ['-y', '@sylphx/flow', 'mcp', 'start'];\n }\n};\n\n/**\n * Get MCP server command based on invocation\n */\nexport const getMCPServerCommand = (method?: InvocationMethod): string => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n case 'github':\n return 'npx';\n\n case 'bunx':\n return 'bunx';\n\n case 'local-dev':\n // Use node or bun depending on what's running\n return process.execPath.includes('bun') ? 'bun' : 'node';\n\n case 'global':\n case 'unknown':\n return 'npx';\n }\n};\n\n/**\n * Generate hook command for specific hook type\n */\nexport const generateHookCommand = (\n hookType: 'session' | 'message' | 'notification',\n targetId: string,\n method?: InvocationMethod\n): string => {\n const prefix = getCommandPrefix(method);\n return `${prefix} hook --type ${hookType} --target ${targetId}`;\n};\n\n/**\n * Save invocation method to settings for future use\n */\nexport const saveInvocationMethod = async (method: InvocationMethod): Promise<void> => {\n const { updateSettings } = await import('./settings.js');\n await updateSettings({\n invocationMethod: method as any,\n });\n};\n\n/**\n * Load saved invocation method from settings\n */\nexport const loadInvocationMethod = async (): Promise<InvocationMethod | undefined> => {\n const { loadSettings } = await import('./settings.js');\n const result = await loadSettings();\n if (result._tag === 'Success') {\n return (result.value as any).invocationMethod;\n }\n return undefined;\n};\n"
6
+ ],
7
+ "mappings": "+CA4BO,IAAM,EAAmB,IAAwB,CACtD,IAAM,EAAO,QAAQ,KACf,EAAW,EAAK,GAChB,EAAa,EAAK,GAGxB,GAAI,EAAW,SAAS,QAAQ,GAAK,EAAW,SAAS,QAAQ,EAC/D,MAAO,CAAE,KAAM,SAAU,KAAM,uBAAwB,EAIzD,GAAI,EAAW,SAAS,QAAQ,EAAG,CAEjC,IAAM,EAAQ,EAAW,MAAM,gCAAgC,EAC/D,MAAO,CAAE,KAAM,MAAO,QAAS,EAAQ,EAAM,GAAK,cAAe,EAMnE,GACE,EAAW,SAAS,sBAAsB,GAC1C,EAAW,SAAS,qBAAqB,EAEzC,MAAO,CAAE,KAAM,OAAQ,QAAS,cAAe,EAIjD,GAAI,EAAS,SAAS,KAAK,GAAK,CAAC,EAAW,SAAS,QAAQ,IAAI,CAAC,EAChE,MAAO,CAAE,KAAM,OAAQ,QAAS,cAAe,EAIjD,GAAI,EAAW,SAAS,QAAQ,IAAI,CAAC,EAAG,CAEtC,GAAI,EAAS,SAAS,KAAK,EACzB,MAAO,CAAE,KAAM,YAAa,OAAQ,aAAc,EAEpD,MAAO,CAAE,KAAM,YAAa,OAAQ,aAAc,EAIpD,GAAI,EAAW,SAAS,mBAAmB,GAAK,EAAW,SAAS,kBAAkB,EACpF,MAAO,CAAE,KAAM,SAAU,QAAS,aAAc,EAGlD,MAAO,CAAE,KAAM,SAAU,GAOd,EAAmB,CAAC,IAAsC,CACrE,IAAM,EAAa,GAAU,EAAiB,EAE9C,OAAQ,EAAW,UACZ,MACH,MAAO,UAAU,EAAW,cAEzB,SACH,MAAO,UAAU,EAAW,WAEzB,OACH,MAAO,QAAQ,EAAW,cAEvB,YACH,OAAO,EAAW,WAEf,SACH,OAAO,EAAW,YAEf,UAEH,MAAO,wBAOA,EAAmB,CAAC,IAAwC,CACvE,IAAM,EAAa,GAAU,EAAiB,EAE9C,OAAQ,EAAW,UACZ,MACH,MAAO,CAAC,KAAM,EAAW,QAAS,MAAO,OAAO,MAE7C,SACH,MAAO,CAAC,KAAM,EAAW,KAAM,MAAO,OAAO,MAE1C,OACH,MAAO,CAAC,EAAW,QAAS,MAAO,OAAO,MAEvC,YAEH,MAAO,CAAC,kBAAmB,MAAO,OAAO,MAEtC,SACH,MAAO,CAAC,EAAW,QAAS,MAAO,OAAO,MAEvC,UAEH,MAAO,CAAC,KAAM,eAAgB,MAAO,OAAO,IAOrC,EAAsB,CAAC,IAAsC,CAGxE,QAFmB,GAAU,EAAiB,GAE3B,UACZ,UACA,SACH,MAAO,UAEJ,OACH,MAAO,WAEJ,YAEH,OAAO,QAAQ,SAAS,SAAS,KAAK,EAAI,MAAQ,WAE/C,aACA,UACH,MAAO,QAOA,EAAsB,CACjC,EACA,EACA,IACW,CAEX,MAAO,GADQ,EAAiB,CAAM,iBACN,cAAqB,KAM1C,EAAuB,MAAO,IAA4C,CACrF,IAAQ,kBAAmB,KAAa,+BACxC,MAAM,EAAe,CACnB,iBAAkB,CACpB,CAAC,GAMU,EAAuB,SAAmD,CACrF,IAAQ,gBAAiB,KAAa,+BAChC,EAAS,MAAM,EAAa,EAClC,GAAI,EAAO,OAAS,UAClB,OAAQ,EAAO,MAAc,iBAE/B",
8
+ "debugId": "AE5BA2434A51019C64756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,3 +1,3 @@
1
- import{z as V}from"./chunk-h9kssnyy.js";import{B as P,C as Y,D as $}from"./chunk-j08f9mnk.js";import{F as M,I as b}from"./chunk-x46tzzn9.js";var z=async(q)=>{let{detectInvocation:B,generateHookCommand:G,loadInvocationMethod:N}=await import("./chunk-7wd1res1.js"),W=await N()||B();return{sessionCommand:G("session",q,W),messageCommand:G("message",q,W),notificationCommand:G("notification",q,W)}},J={sessionCommand:"npx -y @sylphx/flow hook --type session --target claude-code",messageCommand:"npx -y @sylphx/flow hook --type message --target claude-code",notificationCommand:"npx -y @sylphx/flow hook --type notification --target claude-code"},y=(q)=>{return $(()=>JSON.parse(q),(B)=>V("Failed to parse Claude Code settings",{cause:B instanceof Error?B:void 0}))},w=(q=J)=>{let B=q.sessionCommand||J.sessionCommand,G=q.messageCommand||J.messageCommand,N=q.notificationCommand||J.notificationCommand;return{SessionStart:[{hooks:[{type:"command",command:B}]}],UserPromptSubmit:[{hooks:[{type:"command",command:G}]}],Notification:[{matcher:"",hooks:[{type:"command",command:N}]}]}},R=(q,B=J)=>{let G=w(B);return{...q,hooks:{...q.hooks||{},...G}}},Z=(q=J)=>{return{hooks:w(q)}},X=(q)=>{return JSON.stringify(q,null,2)},p=()=>{return"Claude Code hooks configured: SessionStart (static info) + UserPromptSubmit (dynamic info)"},A=(q,B=J)=>{if(q===null||q.trim()===""){let Q=Z(B);return P(X(Q))}let G=y(q);if(G._tag==="Failure"){let Q=Z(B);return P(X(Q))}let N=R(G.value,B);return P(X(N))},D=(q)=>{if(q.sessionCommand!==void 0&&q.sessionCommand.trim()==="")return Y(V("Session command cannot be empty"));if(q.messageCommand!==void 0&&q.messageCommand.trim()==="")return Y(V("Message command cannot be empty"));return P(q)};export{D as validateHookConfig,X as serializeSettings,A as processSettings,y as parseSettings,R as mergeSettings,p as getSuccessMessage,z as generateHookCommands,Z as createSettings,w as buildHookConfiguration,J as DEFAULT_HOOKS};
1
+ import{z as V}from"./chunk-h9kssnyy.js";import{B as P,C as Y,D as $}from"./chunk-j08f9mnk.js";import{F as M,I as b}from"./chunk-x46tzzn9.js";var z=async(q)=>{let{detectInvocation:B,generateHookCommand:G,loadInvocationMethod:N}=await import("./chunk-b2zeg2wa.js"),W=await N()||B();return{sessionCommand:G("session",q,W),messageCommand:G("message",q,W),notificationCommand:G("notification",q,W)}},J={sessionCommand:"npx -y @sylphx/flow hook --type session --target claude-code",messageCommand:"npx -y @sylphx/flow hook --type message --target claude-code",notificationCommand:"npx -y @sylphx/flow hook --type notification --target claude-code"},y=(q)=>{return $(()=>JSON.parse(q),(B)=>V("Failed to parse Claude Code settings",{cause:B instanceof Error?B:void 0}))},w=(q=J)=>{let B=q.sessionCommand||J.sessionCommand,G=q.messageCommand||J.messageCommand,N=q.notificationCommand||J.notificationCommand;return{SessionStart:[{hooks:[{type:"command",command:B}]}],UserPromptSubmit:[{hooks:[{type:"command",command:G}]}],Notification:[{matcher:"",hooks:[{type:"command",command:N}]}]}},R=(q,B=J)=>{let G=w(B);return{...q,hooks:{...q.hooks||{},...G}}},Z=(q=J)=>{return{hooks:w(q)}},X=(q)=>{return JSON.stringify(q,null,2)},p=()=>{return"Claude Code hooks configured: SessionStart (static info) + UserPromptSubmit (dynamic info)"},A=(q,B=J)=>{if(q===null||q.trim()===""){let Q=Z(B);return P(X(Q))}let G=y(q);if(G._tag==="Failure"){let Q=Z(B);return P(X(Q))}let N=R(G.value,B);return P(X(N))},D=(q)=>{if(q.sessionCommand!==void 0&&q.sessionCommand.trim()==="")return Y(V("Session command cannot be empty"));if(q.messageCommand!==void 0&&q.messageCommand.trim()==="")return Y(V("Message command cannot be empty"));return P(q)};export{D as validateHookConfig,X as serializeSettings,A as processSettings,y as parseSettings,R as mergeSettings,p as getSuccessMessage,z as generateHookCommands,Z as createSettings,w as buildHookConfiguration,J as DEFAULT_HOOKS};
2
2
 
3
3
  //# debugId=FAAB79DEE5BF095C64756E2164756E21
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=nEA(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 LV(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 aEA=KE,zdA=ZI(wI.atlas),MdA=ZI(wI.cristal),wdA=ZI(wI.teen),ZdA=ZI(wI.mind),qdA=ZI(wI.morning),LdA=ZI(wI.vice),RdA=ZI(wI.passion),VdA=ZI(wI.fruit),OdA=ZI(wI.instagram),jdA=ZI(wI.retro),PdA=ZI(wI.summer),TdA=ZI(wI.rainbow),kdA=ZI(wI.pastel);KE.atlas=zdA;KE.cristal=MdA;KE.teen=wdA;KE.mind=ZdA;KE.morning=qdA;KE.vice=LdA;KE.passion=RdA;KE.fruit=VdA;KE.instagram=OdA;KE.retro=jdA;KE.summer=PdA;KE.rainbow=TdA;KE.pastel=kdA;var sEA=(A)=>({_tag:"Some",value:A}),oEA={_tag:"None"};var t7=(A)=>A._tag==="Some";var rEA=(A)=>(D)=>{if(t7(D))return D.value;return A};import{spawn as ydA}from"node:child_process";import xdA from"node:fs";import TV from"node:fs/promises";import VC from"node:path";import CE from"node:fs";import p4 from"node:path";import DIA from"node:path";import RC from"node:fs/promises";import tEA from"node:path";async function VV(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 eEA(A){try{return await RC.access(A),!0}catch{return!1}}async function aW(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 AIA(A){if(RV.validatePath(A),!await eEA(A))return;if((await aW(A)).isDirectory)await RC.rm(A,{recursive:!0,force:!0});else await RC.unlink(A)}async function sW(A,D={}){let{recursive:B=!1,includeFiles:Q=!0,includeDirectories:E=!0}=D;if(RV.validatePath(A),!await eEA(A))throw Error(`Directory does not exist: ${A}`);if(!(await aW(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=tEA.join(A,W.name);if(W.isDirectory()&&E){J.push(U);let z=await sW(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)=>tEA.join(A,J.name))}async function OV(A,D){try{return(await sW(A,{recursive:!0,includeFiles:!0,includeDirectories:!1})).filter((Q)=>D.some((E)=>Q.endsWith(E))).map((Q)=>DIA.relative(A,Q)).sort()}catch{return[]}}async function e7(A){let D=await aW(A);if(!D.exists||!D.isFile)return null;let B=await VV(A);if(B===null)return null;return{content:B,mtime:D.mtime}}async function jV(A,D,B,Q){try{let E=await sW(A,{recursive:!1,includeFiles:!0,includeDirectories:!1});for(let I of E){let G=DIA.basename(I);if(B.some((X)=>G.endsWith(X))&&!D.has(G))await AIA(I),Q.push({file:G,status:"skipped",action:"Removed obsolete file"})}}catch{}}async function BIA(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 OV(G,[D]);B.push(...J.map((X)=>p4.join(I,X)))}return B}async function vdA(A,D,B,Q={}){let E=[],I=await BIA(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}));jV(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 e7(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 gdA(A,D,B,Q={}){let E=await BIA(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 _dA(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 e7(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 vdA(A,D,B,Q)}async appendToFile(A,D,B,Q={}){return gdA(A,D,B,Q)}async installFile(A,D,B,Q={}){return _dA(A,D,B,Q)}}async function QIA(){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:async()=>{let{getMCPServerCommand:A,loadInvocationMethod:D,detectInvocation:B}=await import("./chunk-7wd1res1.js"),Q=await D()||B();return A(Q)},args:async()=>{let{getMCPServerArgs:A,loadInvocationMethod:D,detectInvocation:B}=await import("./chunk-7wd1res1.js"),Q=await D()||B(),E=A(Q),I=await QIA();if(I?.disableMemory)E.push("--disable-memory");if(I?.disableTime)E.push("--disable-time");if(I?.disableProjectStartup)E.push("--disable-project-startup");if(I?.disableKnowledge)E.push("--disable-knowledge");if(I?.disableCodebase)E.push("--disable-codebase");return E},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{n7.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 EIA=(A)=>A.type==="stdio";var oW=(A)=>EIA(A);function PV(A){if(typeof A==="function"){let D=A();return Promise.resolve(D)}return Promise.resolve(A)}var L2=(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(oW(V.config))u=V.config.command?await PV(V.config.command):void 0,y=V.config.args?await PV(V.config.args):[];if(oW(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 fdA(A){let D=fB.getTarget(A);if(D._tag==="None")throw Error(`Target not found: ${A}`);let B=D.value,Q=L2({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 _dA(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 e7(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 vdA(A,D,B,Q)}async appendToFile(A,D,B,Q={}){return gdA(A,D,B,Q)}async installFile(A,D,B,Q={}){return _dA(A,D,B,Q)}}async function QIA(){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:async()=>{let{getMCPServerCommand:A,loadInvocationMethod:D,detectInvocation:B}=await import("./chunk-b2zeg2wa.js"),Q=await D()||B();return A(Q)},args:async()=>{let{getMCPServerArgs:A,loadInvocationMethod:D,detectInvocation:B}=await import("./chunk-b2zeg2wa.js"),Q=await D()||B(),E=A(Q),I=await QIA();if(I?.disableMemory)E.push("--disable-memory");if(I?.disableTime)E.push("--disable-time");if(I?.disableProjectStartup)E.push("--disable-project-startup");if(I?.disableKnowledge)E.push("--disable-knowledge");if(I?.disableCodebase)E.push("--disable-codebase");return E},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{n7.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 EIA=(A)=>A.type==="stdio";var oW=(A)=>EIA(A);function PV(A){if(typeof A==="function"){let D=A();return Promise.resolve(D)}return Promise.resolve(A)}var L2=(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(oW(V.config))u=V.config.command?await PV(V.config.command):void 0,y=V.config.args?await PV(V.config.args):[];if(oW(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 fdA(A){let D=fB.getTarget(A);if(D._tag==="None")throw Error(`Target not found: ${A}`);let B=D.value,Q=L2({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 AJ{installer;constructor(A){this.installer=fdA(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=hdA(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=tW(OC.config);return A+=`Claude Code-Specific Information:
@@ -659,7 +659,7 @@ $toast = New-Object Windows.UI.Notifications.ToastNotification $xml
659
659
  `,A},async executeCommand(A,D,B={}){let Q=IIA.yamlContent(A),E=D.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,""),I=`${Q}
660
660
 
661
661
  Please begin your response with a comprehensive summary of all the instructions and context provided above.`;if(B.dryRun){console.log("Dry run: Would execute Claude Code with --system-prompt"),console.log("System prompt to append length:",I.length,"characters"),console.log("User prompt length:",E.length,"characters"),console.log("✓ Dry run completed successfully");return}try{let G=["--dangerously-skip-permissions"];if(G.push("--system-prompt",I),B.verbose)console.log("\uD83D\uDE80 Executing Claude Code"),console.log(`\uD83D\uDCDD System prompt length: ${I.length} characters`);if(E.trim()!=="")G.push(E);if(B.verbose)console.log(`\uD83D\uDCDD User prompt length: ${E.length} characters`);await new Promise((J,X)=>{let W=ydA("claude",G,{stdio:"inherit",shell:!1});W.on("close",(U)=>{if(U===0)J();else{let z=Error(`Claude Code exited with code ${U}`);z.code=U,X(z)}}),W.on("error",(U)=>{X(U)})})}catch(G){if(G.code==="ENOENT")throw new TB("Claude Code not found. Please install it first.","CLAUDE_NOT_FOUND");if(G.code)throw new TB(`Claude Code exited with code ${G.code}`,"CLAUDE_ERROR");throw new TB(`Failed to execute Claude Code: ${G.message}`,"CLAUDE_ERROR")}},detectFromEnvironment(){try{let A=process.cwd();return xdA.existsSync(VC.join(A,".mcp.json"))}catch{return!1}},async approveMCPServers(A,D){let B=VC.join(A,".claude","settings.local.json");try{let Q={};try{let G=await TV.readFile(B,"utf8");Q=JSON.parse(G)}catch(G){if(G.code!=="ENOENT")throw G}let E=Array.isArray(Q.enabledMcpjsonServers)?Q.enabledMcpjsonServers:[],I=[...new Set([...E,...D])];Q.enabledMcpjsonServers=I,await TV.mkdir(VC.dirname(B),{recursive:!0}),await TV.writeFile(B,`${JSON.stringify(Q,null,2)}
662
- `,"utf8")}catch(Q){throw Error(`Failed to approve MCP servers: ${Q instanceof Error?Q.message:String(Q)}`)}},async transformRulesContent(A){return MF.stripFrontMatter(A)},async setupHooks(A,D){let{processSettings:B,generateHookCommands:Q}=await import("./chunk-pcm6twpw.js"),{pathExists:E,createDirectory:I,readFile:G,writeFile:J}=await import("./chunk-zn6bhyhc.js"),X=VC.join(A,".claude"),W=VC.join(X,"settings.json"),U=await E(X);if(U._tag==="Success"&&!U.value){let Z=await I(X,{recursive:!0});if(Z._tag==="Failure")throw Error(`Failed to create .claude directory: ${Z.error.message}`)}let z=null,w=await E(W);if(w._tag==="Success"&&w.value){let Z=await G(W);if(Z._tag==="Success")z=Z.value}let $=await Q("claude-code"),q=B(z,$);if(q._tag==="Failure")throw Error(`Failed to process settings: ${q.error.message}`);let L=await J(W,q.value);if(L._tag==="Failure")throw Error(`Failed to write settings: ${L.error.message}`);return{count:3,message:"Configured session, message, and notification hooks"}},async setupAgents(A,D){let{enhanceAgentContent:B}=await import("./chunk-3nkp0s1j.js"),Q=new c4,E=VC.join(A,this.config.agentDir);return{count:(await Q.installToDirectory(R2(),E,async(G,J)=>{let X=await this.transformAgentContent(G,void 0,J);return await B(X)},{...D,showProgress:!1})).length}},async setupOutputStyles(A,D){return{count:0,message:"Output styles included in agent files"}},async setupRules(A,D){return{count:0,message:"Rules included in agent files"}},async setupMCP(A,D){let Q=await new AJ(this.id).setupMCP({...D,quiet:!0});if(Q.selectedServers.length>0&&!D.dryRun){if(this.approveMCPServers)await this.approveMCPServers(A,Q.selectedServers)}return{count:Q.selectedServers.length}},async setupSlashCommands(A,D){if(!this.config.slashCommandsDir)return{count:0};let B=new c4,Q=VC.join(A,this.config.slashCommandsDir);return{count:(await B.installToDirectory(rW(),Q,async(I)=>{return I},{...D,showProgress:!1})).length}}};function hdA(A,D,B){let Q=A.name||kV.extractAgentName(D,A,B),E=A.description||kV.extractDescription(D),I={name:Q,description:E};if(A.model&&A.model!=="inherit")I.model=A.model;return I}import jC from"node:fs";import V2 from"node:path";var bdA={core:"core.md"};function SV(A="core"){return FIA(bdA[A])}function CIA(A){try{return SV(A),!0}catch{return!1}}var l4={id:"opencode",name:"OpenCode",description:"OpenCode IDE with YAML front matter agents (.opencode/agent/*.md)",category:"ide",isImplemented:!0,isDefault:!0,mcpServerConfig:{disableMemory:!0,disableTime:!1,disableProjectStartup:!1,disableKnowledge:!1,disableCodebase:!1},config:{agentDir:".opencode/agent",agentExtension:".md",agentFormat:"yaml-frontmatter",stripYaml:!1,flatten:!1,configFile:"opencode.jsonc",configSchema:"https://opencode.ai/config.json",mcpConfigPath:"mcp",rulesFile:"AGENTS.md",outputStylesDir:void 0,slashCommandsDir:".opencode/commands",installation:{createAgentDir:!0,createConfigFile:!0,useSecretFiles:!0}},async transformAgentContent(A,D,B){let{metadata:Q,content:E}=await MF.extractFrontMatter(A),{name:I,...G}=Q;if(D){let{name:J,...X}=D,W={...G,...X};return MF.addFrontMatter(E,W)}return MF.addFrontMatter(E,G)},transformMCPConfig(A,D){if(A.type==="stdio"){let B={type:"local",command:[A.command]};if(A.args&&A.args.length>0)B.command.push(...A.args);if(A.env)B.environment=A.env;return B}if(A.type==="http")return{type:"remote",url:A.url,...A.headers&&{headers:A.headers}};if(A.type==="local"||A.type==="remote")return A;return A},getConfigPath:(A)=>Promise.resolve(N1.getConfigPath(l4.config,A)),async readConfig(A){let D=await N1.readConfig(l4.config,A),B=await pQ.resolveFileReferences(A,D);if(!B.mcp)B.mcp={};return B},async writeConfig(A,D){if(!D.mcp)D.mcp={};if(l4.config.installation?.useSecretFiles){for(let[B,Q]of Object.entries(D.mcp||{}))if(Q&&typeof Q==="object"&&"environment"in Q){let E=Q.environment;if(E&&typeof E==="object"){let I=Object.values(x0).find((G)=>G.name===B);if(I?.envVars){let G={},J={};for(let[W,U]of Object.entries(E))if(I.envVars[W]?.secret&&U&&!pQ.isFileReference(U))G[W]=U;else J[W]=U;let X=await pQ.convertSecretsToFileReferences(A,G);Q.environment={...J,...X}}}}}await N1.writeConfig(l4.config,A,D)},validateRequirements:(A)=>N1.validateRequirements(l4.config,A),getHelpText(){let A=tW(l4.config);return A+=`OpenCode-Specific Information:
662
+ `,"utf8")}catch(Q){throw Error(`Failed to approve MCP servers: ${Q instanceof Error?Q.message:String(Q)}`)}},async transformRulesContent(A){return MF.stripFrontMatter(A)},async setupHooks(A,D){let{processSettings:B,generateHookCommands:Q}=await import("./chunk-qctnd9ga.js"),{pathExists:E,createDirectory:I,readFile:G,writeFile:J}=await import("./chunk-zn6bhyhc.js"),X=VC.join(A,".claude"),W=VC.join(X,"settings.json"),U=await E(X);if(U._tag==="Success"&&!U.value){let Z=await I(X,{recursive:!0});if(Z._tag==="Failure")throw Error(`Failed to create .claude directory: ${Z.error.message}`)}let z=null,w=await E(W);if(w._tag==="Success"&&w.value){let Z=await G(W);if(Z._tag==="Success")z=Z.value}let $=await Q("claude-code"),q=B(z,$);if(q._tag==="Failure")throw Error(`Failed to process settings: ${q.error.message}`);let L=await J(W,q.value);if(L._tag==="Failure")throw Error(`Failed to write settings: ${L.error.message}`);return{count:3,message:"Configured session, message, and notification hooks"}},async setupAgents(A,D){let{enhanceAgentContent:B}=await import("./chunk-3nkp0s1j.js"),Q=new c4,E=VC.join(A,this.config.agentDir);return{count:(await Q.installToDirectory(R2(),E,async(G,J)=>{let X=await this.transformAgentContent(G,void 0,J);return await B(X)},{...D,showProgress:!1})).length}},async setupOutputStyles(A,D){return{count:0,message:"Output styles included in agent files"}},async setupRules(A,D){return{count:0,message:"Rules included in agent files"}},async setupMCP(A,D){let Q=await new AJ(this.id).setupMCP({...D,quiet:!0});if(Q.selectedServers.length>0&&!D.dryRun){if(this.approveMCPServers)await this.approveMCPServers(A,Q.selectedServers)}return{count:Q.selectedServers.length}},async setupSlashCommands(A,D){if(!this.config.slashCommandsDir)return{count:0};let B=new c4,Q=VC.join(A,this.config.slashCommandsDir);return{count:(await B.installToDirectory(rW(),Q,async(I)=>{return I},{...D,showProgress:!1})).length}}};function hdA(A,D,B){let Q=A.name||kV.extractAgentName(D,A,B),E=A.description||kV.extractDescription(D),I={name:Q,description:E};if(A.model&&A.model!=="inherit")I.model=A.model;return I}import jC from"node:fs";import V2 from"node:path";var bdA={core:"core.md"};function SV(A="core"){return FIA(bdA[A])}function CIA(A){try{return SV(A),!0}catch{return!1}}var l4={id:"opencode",name:"OpenCode",description:"OpenCode IDE with YAML front matter agents (.opencode/agent/*.md)",category:"ide",isImplemented:!0,isDefault:!0,mcpServerConfig:{disableMemory:!0,disableTime:!1,disableProjectStartup:!1,disableKnowledge:!1,disableCodebase:!1},config:{agentDir:".opencode/agent",agentExtension:".md",agentFormat:"yaml-frontmatter",stripYaml:!1,flatten:!1,configFile:"opencode.jsonc",configSchema:"https://opencode.ai/config.json",mcpConfigPath:"mcp",rulesFile:"AGENTS.md",outputStylesDir:void 0,slashCommandsDir:".opencode/commands",installation:{createAgentDir:!0,createConfigFile:!0,useSecretFiles:!0}},async transformAgentContent(A,D,B){let{metadata:Q,content:E}=await MF.extractFrontMatter(A),{name:I,...G}=Q;if(D){let{name:J,...X}=D,W={...G,...X};return MF.addFrontMatter(E,W)}return MF.addFrontMatter(E,G)},transformMCPConfig(A,D){if(A.type==="stdio"){let B={type:"local",command:[A.command]};if(A.args&&A.args.length>0)B.command.push(...A.args);if(A.env)B.environment=A.env;return B}if(A.type==="http")return{type:"remote",url:A.url,...A.headers&&{headers:A.headers}};if(A.type==="local"||A.type==="remote")return A;return A},getConfigPath:(A)=>Promise.resolve(N1.getConfigPath(l4.config,A)),async readConfig(A){let D=await N1.readConfig(l4.config,A),B=await pQ.resolveFileReferences(A,D);if(!B.mcp)B.mcp={};return B},async writeConfig(A,D){if(!D.mcp)D.mcp={};if(l4.config.installation?.useSecretFiles){for(let[B,Q]of Object.entries(D.mcp||{}))if(Q&&typeof Q==="object"&&"environment"in Q){let E=Q.environment;if(E&&typeof E==="object"){let I=Object.values(x0).find((G)=>G.name===B);if(I?.envVars){let G={},J={};for(let[W,U]of Object.entries(E))if(I.envVars[W]?.secret&&U&&!pQ.isFileReference(U))G[W]=U;else J[W]=U;let X=await pQ.convertSecretsToFileReferences(A,G);Q.environment={...J,...X}}}}}await N1.writeConfig(l4.config,A,D)},validateRequirements:(A)=>N1.validateRequirements(l4.config,A),getHelpText(){let A=tW(l4.config);return A+=`OpenCode-Specific Information:
663
663
  `,A+=` Configuration File: opencode.jsonc
664
664
  `,A+=` Schema: https://opencode.ai/config.json
665
665
  `,A+=` Agent Format: Markdown with YAML front matter
@@ -691,7 +691,7 @@ Please begin your response with a comprehensive summary of all the instructions
691
691
  ███████║ ██║ ███████╗██║ ██║ ██║██╔╝ ██╗ ██║ ███████╗╚██████╔╝╚███╔███╔╝
692
692
  ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚══╝╚══╝
693
693
  `;if(console.log(aEA(["cyan","blue"])(B)),console.log(FA.dim.cyan(` Project Initialization
694
- `)),!D)D=await fB.promptForTargetSelection(),A.target=D;if(D){try{WIA(D)}catch(W){if(W instanceof Error)throw new TB(W.message,"UNSUPPORTED_TARGET");throw W}if(A.merge)throw new TB("The --merge option is not supported with init command.","INVALID_OPTION")}if(!D)throw Error("Target ID not set");let{detectInvocation:Q,saveInvocationMethod:E}=await import("./chunk-7wd1res1.js"),I=Q();if(await E(I),A.dryRun){console.log(o7(FA.yellow("⚠ Dry Run Mode")+FA.dim(`
694
+ `)),!D)D=await fB.promptForTargetSelection(),A.target=D;if(D){try{WIA(D)}catch(W){if(W instanceof Error)throw new TB(W.message,"UNSUPPORTED_TARGET");throw W}if(A.merge)throw new TB("The --merge option is not supported with init command.","INVALID_OPTION")}if(!D)throw Error("Target ID not set");let{detectInvocation:Q,saveInvocationMethod:E}=await import("./chunk-b2zeg2wa.js"),I=Q();if(await E(I),A.dryRun){console.log(o7(FA.yellow("⚠ Dry Run Mode")+FA.dim(`
695
695
  No changes will be made to your project`),{padding:1,margin:{top:0,bottom:1,left:0,right:0},borderStyle:"round",borderColor:"yellow"}));let W=fB.getTarget(D);if(W._tag==="None")throw Error(`Target not found: ${D}`);let U=W.value;if(A.mcp!==!1&&U.setupMCP)console.log(FA.cyan.bold("MCP Tools:")),console.log(FA.dim(" ✓ MCP servers will be configured"));if(A.agents!==!1&&U.setupAgents)console.log(FA.cyan.bold(`
696
696
  Agents:`)),console.log(FA.dim(" ✓ Development agents will be installed"));if(A.outputStyles!==!1&&U.setupOutputStyles)console.log(FA.cyan.bold(`
697
697
  Output Styles:`)),console.log(FA.dim(" ✓ Output styles will be installed"));if(A.rules!==!1&&U.setupRules)console.log(FA.cyan.bold(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylphx/flow",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Sylphx Flow - Type-safe development flow for modern web development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- import{F as B,I as D}from"./chunk-x46tzzn9.js";var A=()=>{let q=process.argv,b=q[0],w=q[1];if(w.includes("/_npx/")&&w.includes("github"))return{type:"github",repo:"github:sylphxltd/flow"};if(w.includes("/_npx/")){let z=w.match(/@sylphx\/flow|@sylphxltd\/flow/);return{type:"npm",package:z?z[0]:"@sylphx/flow"}}if(b.includes("bun")&&!w.includes(process.cwd()))return{type:"bunx",package:"@sylphx/flow"};if(w.includes(process.cwd())){if(b.includes("bun"))return{type:"local-dev",script:"bun run dev"};return{type:"local-dev",script:"npm run dev"}}if(w.includes("node_modules/.bin")||w.includes("/bin/sylphx-flow"))return{type:"global",command:"sylphx-flow"};return{type:"unknown"}},E=(q)=>{let b=q||A();switch(b.type){case"npm":return`npx -y ${b.package}`;case"github":return`npx -y ${b.repo}`;case"bunx":return`bunx ${b.package}`;case"local-dev":return b.script;case"global":return b.command;case"unknown":return"npx -y @sylphx/flow"}},F=(q)=>{let b=q||A();switch(b.type){case"npm":return["-y",b.package,"mcp","start"];case"github":return["-y",b.repo,"mcp","start"];case"bunx":return[b.package,"mcp","start"];case"local-dev":return["./dist/index.js","mcp","start"];case"global":return[b.command,"mcp","start"];case"unknown":return["-y","@sylphx/flow","mcp","start"]}},G=(q)=>{switch((q||A()).type){case"npm":case"github":return"npx";case"bunx":return"bunx";case"local-dev":return process.execPath.includes("bun")?"bun":"node";case"global":case"unknown":return"npx"}},H=(q,b,w)=>{return`${E(w)} hook --type ${q} --target ${b}`},J=async(q)=>{let{updateSettings:b}=await import("./chunk-02jj9ahn.js");await b({invocationMethod:q})},K=async()=>{let{loadSettings:q}=await import("./chunk-02jj9ahn.js"),b=await q();if(b._tag==="Success")return b.value.invocationMethod;return};export{J as saveInvocationMethod,K as loadInvocationMethod,G as getMCPServerCommand,F as getMCPServerArgs,E as getCommandPrefix,H as generateHookCommand,A as detectInvocation};
2
-
3
- //# debugId=572E9DC3588E6C4B64756E2164756E21
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utils/cli-invocation.ts"],
4
- "sourcesContent": [
5
- "/**\n * CLI Invocation Detection\n * Detects how the CLI was invoked and generates appropriate commands\n *\n * Supports common invocation methods:\n * - npm/npx (most common)\n * - GitHub direct (for bleeding edge)\n * - Bun/bunx (emerging)\n * - Local development (bun/npm run dev)\n * - Global installation\n * - Unknown methods fallback to npm (safe default)\n */\n\n/**\n * Invocation method types\n */\nexport type InvocationMethod =\n | { type: 'npm'; package: string }\n | { type: 'github'; repo: string }\n | { type: 'bunx'; package: string }\n | { type: 'local-dev'; script: string }\n | { type: 'global'; command: string }\n | { type: 'unknown' };\n\n/**\n * Detect how the CLI was invoked\n * Examines process.argv to determine invocation method\n */\nexport const detectInvocation = (): InvocationMethod => {\n const argv = process.argv;\n const execPath = argv[0]; // node/bun executable path\n const scriptPath = argv[1]; // script being executed\n\n // Check if running via npx with github\n if (scriptPath.includes('/_npx/') && scriptPath.includes('github')) {\n return { type: 'github', repo: 'github:sylphxltd/flow' };\n }\n\n // Check if running via npx with npm package\n if (scriptPath.includes('/_npx/')) {\n // Extract package name from path\n const match = scriptPath.match(/@sylphx\\/flow|@sylphxltd\\/flow/);\n return { type: 'npm', package: match ? match[0] : '@sylphx/flow' };\n }\n\n // Check if running via bunx\n if (execPath.includes('bun') && !scriptPath.includes(process.cwd())) {\n return { type: 'bunx', package: '@sylphx/flow' };\n }\n\n // Check if running locally in development\n if (scriptPath.includes(process.cwd())) {\n // Check if using bun run dev or npm run dev\n if (execPath.includes('bun')) {\n return { type: 'local-dev', script: 'bun run dev' };\n }\n return { type: 'local-dev', script: 'npm run dev' };\n }\n\n // Check if globally installed\n if (scriptPath.includes('node_modules/.bin') || scriptPath.includes('/bin/sylphx-flow')) {\n return { type: 'global', command: 'sylphx-flow' };\n }\n\n return { type: 'unknown' };\n};\n\n/**\n * Generate command prefix based on invocation method\n * Used for generating hook commands, MCP configs, etc.\n */\nexport const getCommandPrefix = (method?: InvocationMethod): string => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n return `npx -y ${invocation.package}`;\n\n case 'github':\n return `npx -y ${invocation.repo}`;\n\n case 'bunx':\n return `bunx ${invocation.package}`;\n\n case 'local-dev':\n return invocation.script;\n\n case 'global':\n return invocation.command;\n\n case 'unknown':\n // Fallback to npm package (safe default)\n return 'npx -y @sylphx/flow';\n }\n};\n\n/**\n * Generate MCP server args array based on invocation\n */\nexport const getMCPServerArgs = (method?: InvocationMethod): string[] => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n return ['-y', invocation.package, 'mcp', 'start'];\n\n case 'github':\n return ['-y', invocation.repo, 'mcp', 'start'];\n\n case 'bunx':\n return [invocation.package, 'mcp', 'start'];\n\n case 'local-dev':\n // For local dev, use the built dist\n return ['./dist/index.js', 'mcp', 'start'];\n\n case 'global':\n return [invocation.command, 'mcp', 'start'];\n\n case 'unknown':\n // Fallback to npm\n return ['-y', '@sylphx/flow', 'mcp', 'start'];\n }\n};\n\n/**\n * Get MCP server command based on invocation\n */\nexport const getMCPServerCommand = (method?: InvocationMethod): string => {\n const invocation = method || detectInvocation();\n\n switch (invocation.type) {\n case 'npm':\n case 'github':\n return 'npx';\n\n case 'bunx':\n return 'bunx';\n\n case 'local-dev':\n // Use node or bun depending on what's running\n return process.execPath.includes('bun') ? 'bun' : 'node';\n\n case 'global':\n case 'unknown':\n return 'npx';\n }\n};\n\n/**\n * Generate hook command for specific hook type\n */\nexport const generateHookCommand = (\n hookType: 'session' | 'message' | 'notification',\n targetId: string,\n method?: InvocationMethod\n): string => {\n const prefix = getCommandPrefix(method);\n return `${prefix} hook --type ${hookType} --target ${targetId}`;\n};\n\n/**\n * Save invocation method to settings for future use\n */\nexport const saveInvocationMethod = async (method: InvocationMethod): Promise<void> => {\n const { updateSettings } = await import('./settings.js');\n await updateSettings({\n invocationMethod: method as any,\n });\n};\n\n/**\n * Load saved invocation method from settings\n */\nexport const loadInvocationMethod = async (): Promise<InvocationMethod | undefined> => {\n const { loadSettings } = await import('./settings.js');\n const result = await loadSettings();\n if (result._tag === 'Success') {\n return (result.value as any).invocationMethod;\n }\n return undefined;\n};\n"
6
- ],
7
- "mappings": "+CA4BO,IAAM,EAAmB,IAAwB,CACtD,IAAM,EAAO,QAAQ,KACf,EAAW,EAAK,GAChB,EAAa,EAAK,GAGxB,GAAI,EAAW,SAAS,QAAQ,GAAK,EAAW,SAAS,QAAQ,EAC/D,MAAO,CAAE,KAAM,SAAU,KAAM,uBAAwB,EAIzD,GAAI,EAAW,SAAS,QAAQ,EAAG,CAEjC,IAAM,EAAQ,EAAW,MAAM,gCAAgC,EAC/D,MAAO,CAAE,KAAM,MAAO,QAAS,EAAQ,EAAM,GAAK,cAAe,EAInE,GAAI,EAAS,SAAS,KAAK,GAAK,CAAC,EAAW,SAAS,QAAQ,IAAI,CAAC,EAChE,MAAO,CAAE,KAAM,OAAQ,QAAS,cAAe,EAIjD,GAAI,EAAW,SAAS,QAAQ,IAAI,CAAC,EAAG,CAEtC,GAAI,EAAS,SAAS,KAAK,EACzB,MAAO,CAAE,KAAM,YAAa,OAAQ,aAAc,EAEpD,MAAO,CAAE,KAAM,YAAa,OAAQ,aAAc,EAIpD,GAAI,EAAW,SAAS,mBAAmB,GAAK,EAAW,SAAS,kBAAkB,EACpF,MAAO,CAAE,KAAM,SAAU,QAAS,aAAc,EAGlD,MAAO,CAAE,KAAM,SAAU,GAOd,EAAmB,CAAC,IAAsC,CACrE,IAAM,EAAa,GAAU,EAAiB,EAE9C,OAAQ,EAAW,UACZ,MACH,MAAO,UAAU,EAAW,cAEzB,SACH,MAAO,UAAU,EAAW,WAEzB,OACH,MAAO,QAAQ,EAAW,cAEvB,YACH,OAAO,EAAW,WAEf,SACH,OAAO,EAAW,YAEf,UAEH,MAAO,wBAOA,EAAmB,CAAC,IAAwC,CACvE,IAAM,EAAa,GAAU,EAAiB,EAE9C,OAAQ,EAAW,UACZ,MACH,MAAO,CAAC,KAAM,EAAW,QAAS,MAAO,OAAO,MAE7C,SACH,MAAO,CAAC,KAAM,EAAW,KAAM,MAAO,OAAO,MAE1C,OACH,MAAO,CAAC,EAAW,QAAS,MAAO,OAAO,MAEvC,YAEH,MAAO,CAAC,kBAAmB,MAAO,OAAO,MAEtC,SACH,MAAO,CAAC,EAAW,QAAS,MAAO,OAAO,MAEvC,UAEH,MAAO,CAAC,KAAM,eAAgB,MAAO,OAAO,IAOrC,EAAsB,CAAC,IAAsC,CAGxE,QAFmB,GAAU,EAAiB,GAE3B,UACZ,UACA,SACH,MAAO,UAEJ,OACH,MAAO,WAEJ,YAEH,OAAO,QAAQ,SAAS,SAAS,KAAK,EAAI,MAAQ,WAE/C,aACA,UACH,MAAO,QAOA,EAAsB,CACjC,EACA,EACA,IACW,CAEX,MAAO,GADQ,EAAiB,CAAM,iBACN,cAAqB,KAM1C,EAAuB,MAAO,IAA4C,CACrF,IAAQ,kBAAmB,KAAa,+BACxC,MAAM,EAAe,CACnB,iBAAkB,CACpB,CAAC,GAMU,EAAuB,SAAmD,CACrF,IAAQ,gBAAiB,KAAa,+BAChC,EAAS,MAAM,EAAa,EAClC,GAAI,EAAO,OAAS,UAClB,OAAQ,EAAO,MAAc,iBAE/B",
8
- "debugId": "572E9DC3588E6C4B64756E2164756E21",
9
- "names": []
10
- }