@sylphx/flow 0.2.3 → 0.2.5

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.
Files changed (73) hide show
  1. package/dist/chunk-057m762a.js +4 -0
  2. package/dist/{chunk-7nht27vs.js.map → chunk-057m762a.js.map} +1 -1
  3. package/dist/chunk-2j2gmjg5.js +107 -0
  4. package/dist/{chunk-wnaa55wn.js.map → chunk-2j2gmjg5.js.map} +6 -5
  5. package/dist/{chunk-asr22mbn.js → chunk-2nfq57ym.js} +1 -1
  6. package/dist/{chunk-cs1s5c3g.js → chunk-372bgp30.js} +3 -3
  7. package/dist/{chunk-cs1s5c3g.js.map → chunk-372bgp30.js.map} +1 -1
  8. package/dist/{chunk-m9nt0bj3.js → chunk-51kpynby.js} +3 -3
  9. package/dist/{chunk-m9nt0bj3.js.map → chunk-51kpynby.js.map} +1 -1
  10. package/dist/{chunk-1rptg3yg.js → chunk-585jp0rg.js} +1 -1
  11. package/dist/{chunk-hj6r7703.js → chunk-66qzap9m.js} +2 -2
  12. package/dist/{chunk-hj6r7703.js.map → chunk-66qzap9m.js.map} +1 -1
  13. package/dist/{chunk-z2rtyk3d.js → chunk-6eb5a8kv.js} +4 -4
  14. package/dist/{chunk-z2rtyk3d.js.map → chunk-6eb5a8kv.js.map} +1 -1
  15. package/dist/chunk-7h737bp8.js +4 -0
  16. package/dist/{chunk-fs3f7acb.js.map → chunk-7h737bp8.js.map} +2 -2
  17. package/dist/chunk-8ep9gk6d.js +4 -0
  18. package/dist/{chunk-5szm4n3x.js.map → chunk-8ep9gk6d.js.map} +2 -2
  19. package/dist/{chunk-bnxtqetr.js → chunk-9qzv4trv.js} +3 -3
  20. package/dist/{chunk-bnxtqetr.js.map → chunk-9qzv4trv.js.map} +2 -2
  21. package/dist/chunk-b0047ggx.js +3 -0
  22. package/dist/{chunk-w2vbmr93.js.map → chunk-b0047ggx.js.map} +2 -2
  23. package/dist/{chunk-gyq335sw.js → chunk-ceyg2zjg.js} +3 -3
  24. package/dist/{chunk-gyq335sw.js.map → chunk-ceyg2zjg.js.map} +1 -1
  25. package/dist/chunk-cjy100rr.js +6 -0
  26. package/dist/{chunk-d4hj6d4t.js.map → chunk-cjy100rr.js.map} +2 -2
  27. package/dist/{chunk-gh83x9ya.js → chunk-d6k94684.js} +1 -1
  28. package/dist/chunk-e74zv5ct.js +19 -0
  29. package/dist/chunk-e74zv5ct.js.map +10 -0
  30. package/dist/{chunk-hxj4eapp.js → chunk-etqfkn4f.js} +3 -3
  31. package/dist/{chunk-hxj4eapp.js.map → chunk-etqfkn4f.js.map} +1 -1
  32. package/dist/{chunk-8z1sf25t.js → chunk-f676awyz.js} +3 -3
  33. package/dist/{chunk-8z1sf25t.js.map → chunk-f676awyz.js.map} +1 -1
  34. package/dist/{chunk-sxy6vp20.js → chunk-f9yb2zk3.js} +2 -2
  35. package/dist/{chunk-sxy6vp20.js.map → chunk-f9yb2zk3.js.map} +1 -1
  36. package/dist/{chunk-hft1735c.js → chunk-fyvtp08n.js} +2 -2
  37. package/dist/{chunk-hft1735c.js.map → chunk-fyvtp08n.js.map} +1 -1
  38. package/dist/chunk-gmmm7xpw.js +23 -0
  39. package/dist/{chunk-jgsq3xax.js.map → chunk-gmmm7xpw.js.map} +4 -4
  40. package/dist/{chunk-xata5rw6.js → chunk-mtrcdhzn.js} +3 -3
  41. package/dist/{chunk-xata5rw6.js.map → chunk-mtrcdhzn.js.map} +1 -1
  42. package/dist/{chunk-8krxe10w.js → chunk-ny1s8fnh.js} +2 -2
  43. package/dist/{chunk-8krxe10w.js.map → chunk-ny1s8fnh.js.map} +1 -1
  44. package/dist/{chunk-4fr8q0jy.js → chunk-rsagxdqj.js} +71 -71
  45. package/dist/{chunk-4fr8q0jy.js.map → chunk-rsagxdqj.js.map} +3 -3
  46. package/dist/{chunk-vjf57v4h.js → chunk-rvx8bgqk.js} +3 -3
  47. package/dist/{chunk-vjf57v4h.js.map → chunk-rvx8bgqk.js.map} +1 -1
  48. package/dist/{chunk-9c2nr2fz.js → chunk-sgafqzer.js} +3 -3
  49. package/dist/{chunk-9c2nr2fz.js.map → chunk-sgafqzer.js.map} +2 -2
  50. package/dist/{chunk-s6g21d1g.js → chunk-vc4xy6dm.js} +3 -3
  51. package/dist/{chunk-s6g21d1g.js.map → chunk-vc4xy6dm.js.map} +1 -1
  52. package/dist/chunk-weshapwk.js +27 -0
  53. package/dist/{chunk-wrx1n6q6.js.map → chunk-weshapwk.js.map} +11 -4
  54. package/dist/{chunk-ndah8mn9.js → chunk-z61qdct1.js} +2 -2
  55. package/dist/{chunk-ndah8mn9.js.map → chunk-z61qdct1.js.map} +1 -1
  56. package/dist/index.js +332 -331
  57. package/dist/index.js.map +15 -12
  58. package/package.json +1 -1
  59. package/dist/chunk-5szm4n3x.js +0 -4
  60. package/dist/chunk-7nht27vs.js +0 -4
  61. package/dist/chunk-d4hj6d4t.js +0 -6
  62. package/dist/chunk-f06ma45b.js +0 -15
  63. package/dist/chunk-f06ma45b.js.map +0 -16
  64. package/dist/chunk-fs3f7acb.js +0 -4
  65. package/dist/chunk-jgsq3xax.js +0 -23
  66. package/dist/chunk-w2vbmr93.js +0 -3
  67. package/dist/chunk-wd9qbbe5.js +0 -5
  68. package/dist/chunk-wd9qbbe5.js.map +0 -10
  69. package/dist/chunk-wnaa55wn.js +0 -108
  70. package/dist/chunk-wrx1n6q6.js +0 -16
  71. /package/dist/{chunk-asr22mbn.js.map → chunk-2nfq57ym.js.map} +0 -0
  72. /package/dist/{chunk-1rptg3yg.js.map → chunk-585jp0rg.js.map} +0 -0
  73. /package/dist/{chunk-gh83x9ya.js.map → chunk-d6k94684.js.map} +0 -0
@@ -1,7 +1,7 @@
1
- import{za as M}from"./chunk-ndah8mn9.js";import{Ca as E}from"./chunk-xata5rw6.js";import"./chunk-hxj4eapp.js";import"./chunk-cv1nhr27.js";import{Kb as Z}from"./chunk-gyq335sw.js";import{Lb as N,Ob as R}from"./chunk-sxy6vp20.js";import V from"node:fs/promises";import J from"node:path";import j from"node:os";var v=E(),x=Z.object({defaultProvider:Z.enum(["anthropic","openai","google","openrouter","claude-code","zai"]).optional(),defaultModel:Z.string().optional(),providers:Z.record(Z.string(),Z.object({defaultModel:Z.string().optional()}).passthrough()).optional()}),z=J.join(j.homedir(),".sylphx-flow","settings.json"),S=".sylphx-flow/settings.json",_=".sylphx-flow/settings.local.json",G=".sylphx-flow/ai-config.json",Y=(q=process.cwd())=>({global:z,project:J.join(q,S),local:J.join(q,_),legacy:J.join(q,G)}),B=async(q)=>{try{let k=await V.readFile(q,"utf8"),D=JSON.parse(k);return x.parse(D)}catch(k){if(k.code==="ENOENT")return null;throw k}},$=(q,k)=>{let D=new Set([...Object.keys(q.providers||{}),...Object.keys(k.providers||{})]),K={};for(let H of D)K[H]={...q.providers?.[H],...k.providers?.[H]};return{defaultProvider:k.defaultProvider??q.defaultProvider,defaultModel:k.defaultModel??q.defaultModel,providers:K}},h=async(q=process.cwd())=>{let k=Y(q);try{return await V.access(k.global).catch(()=>{}),!0}catch{}try{return await V.access(k.project),!0}catch{}try{return await V.access(k.local),!0}catch{}try{return await V.access(k.legacy),!0}catch{}return!1},T=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),[D,K,H,U]=await Promise.all([B(k.global),B(k.project),B(k.local),B(k.legacy)]);if(U&&!D){await y(q);let X=await B(k.global);if(X){let W={};if(W=$(W,X),K)W=$(W,K);if(H)W=$(W,H);return W}}let Q={};if(D)Q=$(Q,D);if(K)Q=$(Q,K);if(H)Q=$(Q,H);if(U)Q=$(Q,U);return Q},(k)=>Error(`Failed to load AI config: ${k.message}`))},L=async(q,k=process.cwd())=>{let K=Y(k).global;return M(async()=>{await V.mkdir(J.dirname(K),{recursive:!0});let H={...q};if(!H.defaultProvider&&H.providers){let{getProvider:Q}=await import("./chunk-xata5rw6.js"),X=[];for(let[W,O]of Object.entries(H.providers))try{if(Q(W).isConfigured(O))X.push(W)}catch{}if(X.length>0)H.defaultProvider=X[X.length-1]}let U=x.parse(H);await V.writeFile(K,JSON.stringify(U,null,2)+`
1
+ import{Fa as M}from"./chunk-z61qdct1.js";import{Ia as E}from"./chunk-mtrcdhzn.js";import"./chunk-etqfkn4f.js";import"./chunk-cv1nhr27.js";import{Qb as Z}from"./chunk-ceyg2zjg.js";import{Rb as N,Ub as R}from"./chunk-f9yb2zk3.js";import V from"node:fs/promises";import J from"node:path";import j from"node:os";var v=E(),x=Z.object({defaultProvider:Z.enum(["anthropic","openai","google","openrouter","claude-code","zai"]).optional(),defaultModel:Z.string().optional(),providers:Z.record(Z.string(),Z.object({defaultModel:Z.string().optional()}).passthrough()).optional()}),z=J.join(j.homedir(),".sylphx-flow","settings.json"),S=".sylphx-flow/settings.json",_=".sylphx-flow/settings.local.json",G=".sylphx-flow/ai-config.json",Y=(q=process.cwd())=>({global:z,project:J.join(q,S),local:J.join(q,_),legacy:J.join(q,G)}),B=async(q)=>{try{let k=await V.readFile(q,"utf8"),D=JSON.parse(k);return x.parse(D)}catch(k){if(k.code==="ENOENT")return null;throw k}},$=(q,k)=>{let D=new Set([...Object.keys(q.providers||{}),...Object.keys(k.providers||{})]),K={};for(let H of D)K[H]={...q.providers?.[H],...k.providers?.[H]};return{defaultProvider:k.defaultProvider??q.defaultProvider,defaultModel:k.defaultModel??q.defaultModel,providers:K}},h=async(q=process.cwd())=>{let k=Y(q);try{return await V.access(k.global).catch(()=>{}),!0}catch{}try{return await V.access(k.project),!0}catch{}try{return await V.access(k.local),!0}catch{}try{return await V.access(k.legacy),!0}catch{}return!1},T=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),[D,K,H,U]=await Promise.all([B(k.global),B(k.project),B(k.local),B(k.legacy)]);if(U&&!D){await y(q);let X=await B(k.global);if(X){let W={};if(W=$(W,X),K)W=$(W,K);if(H)W=$(W,H);return W}}let Q={};if(D)Q=$(Q,D);if(K)Q=$(Q,K);if(H)Q=$(Q,H);if(U)Q=$(Q,U);return Q},(k)=>Error(`Failed to load AI config: ${k.message}`))},L=async(q,k=process.cwd())=>{let K=Y(k).global;return M(async()=>{await V.mkdir(J.dirname(K),{recursive:!0});let H={...q};if(!H.defaultProvider&&H.providers){let{getProvider:Q}=await import("./chunk-mtrcdhzn.js"),X=[];for(let[W,O]of Object.entries(H.providers))try{if(Q(W).isConfigured(O))X.push(W)}catch{}if(X.length>0)H.defaultProvider=X[X.length-1]}let U=x.parse(H);await V.writeFile(K,JSON.stringify(U,null,2)+`
2
2
  `,"utf8")},(H)=>Error(`Failed to save AI config: ${H.message}`))},p=async(q,k,D=process.cwd())=>{let H=Y(D)[k];return M(async()=>{await V.mkdir(J.dirname(H),{recursive:!0});let U=x.parse(q);await V.writeFile(H,JSON.stringify(U,null,2)+`
3
- `,"utf8")},(U)=>Error(`Failed to save AI config to ${k}: ${U.message}`))},C=async(q,k=process.cwd())=>{let D=await T(k);if(D._tag==="Failure")return D;let K={...D.value,...q,providers:{...D.value.providers,...q.providers}};return L(K,k)},l=async(q=process.cwd())=>{let k=await T(q);if(k._tag==="Failure")return[];let D=[],K=k.value;if(!K.providers)return[];let{getProvider:H}=await import("./chunk-xata5rw6.js");for(let[U,Q]of Object.entries(K.providers))try{if(H(U).isConfigured(Q))D.push(U)}catch{}return D},y=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),D=await B(k.legacy);if(!D)return;if(await B(k.global)){console.log("Legacy config found but global config already exists. Skipping migration."),console.log(`You can manually delete ${k.legacy} if migration is complete.`);return}await V.mkdir(J.dirname(k.global),{recursive:!0}),await V.writeFile(k.global,JSON.stringify(D,null,2)+`
3
+ `,"utf8")},(U)=>Error(`Failed to save AI config to ${k}: ${U.message}`))},C=async(q,k=process.cwd())=>{let D=await T(k);if(D._tag==="Failure")return D;let K={...D.value,...q,providers:{...D.value.providers,...q.providers}};return L(K,k)},l=async(q=process.cwd())=>{let k=await T(q);if(k._tag==="Failure")return[];let D=[],K=k.value;if(!K.providers)return[];let{getProvider:H}=await import("./chunk-mtrcdhzn.js");for(let[U,Q]of Object.entries(K.providers))try{if(H(U).isConfigured(Q))D.push(U)}catch{}return D},y=async(q=process.cwd())=>{return M(async()=>{let k=Y(q),D=await B(k.legacy);if(!D)return;if(await B(k.global)){console.log("Legacy config found but global config already exists. Skipping migration."),console.log(`You can manually delete ${k.legacy} if migration is complete.`);return}await V.mkdir(J.dirname(k.global),{recursive:!0}),await V.writeFile(k.global,JSON.stringify(D,null,2)+`
4
4
  `,"utf8"),console.log(`✓ Migrated configuration from ${k.legacy} to ${k.global}`),console.log(` You can now safely delete the legacy file: ${k.legacy}`)},(k)=>Error(`Failed to migrate legacy config: ${k.message}`))};export{C as updateAIConfig,p as saveAIConfigTo,L as saveAIConfig,y as migrateLegacyConfig,T as loadAIConfig,l as getConfiguredProviders,Y as getAIConfigPaths,h as aiConfigExists,v as AI_PROVIDERS};
5
- export{v as sa,T as ta,L as ua,l as va};
5
+ export{v as ya,T as za,L as Aa,l as Ba};
6
6
 
7
- //# debugId=8D8E0EE97753E6F564756E2164756E21
7
+ //# debugId=CC92FC8B2C680A5264756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "/**\n * AI Configuration Management\n *\n * Three-tier configuration system:\n * 1. Global: ~/.sylphx-flow/settings.json (user defaults, contains API keys)\n * 2. Project: ./.sylphx-flow/settings.json (project preferences, no secrets)\n * 3. Local: ./.sylphx-flow/settings.local.json (local overrides, gitignored)\n *\n * Priority: local > project > global\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport os from 'node:os';\nimport { z } from 'zod';\nimport { type Result, success, tryCatchAsync } from '../core/functional/result.js';\nimport { getAllProviders } from '../providers/index.js';\n\n/**\n * Provider IDs\n * Provider metadata (name, config schema, etc) comes from provider registry\n */\nexport type ProviderId = 'anthropic' | 'openai' | 'google' | 'openrouter' | 'claude-code' | 'zai';\n\n/**\n * AI_PROVIDERS - Provider metadata from registry\n * Contains basic info (id, name) for UI components\n * Config schemas are defined in each provider's getConfigSchema()\n */\nexport const AI_PROVIDERS = getAllProviders();\n\n/**\n * Provider configuration\n * Each provider can have different config fields (defined by provider.getConfigSchema())\n * Common fields: apiKey, defaultModel, etc\n */\nexport interface ProviderConfigValue {\n defaultModel?: string;\n [key: string]: string | number | boolean | undefined;\n}\n\n/**\n * AI configuration schema\n * Uses generic Record for provider configs - validation happens at provider level\n */\nconst aiConfigSchema = z.object({\n defaultProvider: z.enum(['anthropic', 'openai', 'google', 'openrouter', 'claude-code', 'zai']).optional(),\n defaultModel: z.string().optional(),\n providers: z.record(\n z.string(),\n z.object({\n defaultModel: z.string().optional(),\n }).passthrough() // Allow additional fields defined by provider\n ).optional(),\n});\n\nexport type AIConfig = z.infer<typeof aiConfigSchema>;\n\n/**\n * Configuration file paths\n */\nconst GLOBAL_CONFIG_FILE = path.join(os.homedir(), '.sylphx-flow', 'settings.json');\nconst PROJECT_CONFIG_FILE = '.sylphx-flow/settings.json';\nconst LOCAL_CONFIG_FILE = '.sylphx-flow/settings.local.json';\n\n/**\n * Deprecated config file (for migration)\n */\nconst LEGACY_CONFIG_FILE = '.sylphx-flow/ai-config.json';\n\n/**\n * Get AI config file paths in priority order\n */\nexport const getAIConfigPaths = (cwd: string = process.cwd()): {\n global: string;\n project: string;\n local: string;\n legacy: string;\n} => ({\n global: GLOBAL_CONFIG_FILE,\n project: path.join(cwd, PROJECT_CONFIG_FILE),\n local: path.join(cwd, LOCAL_CONFIG_FILE),\n legacy: path.join(cwd, LEGACY_CONFIG_FILE),\n});\n\n/**\n * Load config from a single file\n */\nconst loadConfigFile = async (filePath: string): Promise<AIConfig | null> => {\n try {\n const content = await fs.readFile(filePath, 'utf8');\n const parsed = JSON.parse(content);\n return aiConfigSchema.parse(parsed);\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return null; // File doesn't exist\n }\n throw error; // Re-throw other errors\n }\n};\n\n/**\n * Deep merge two configs (b overwrites a)\n */\nconst mergeConfigs = (a: AIConfig, b: AIConfig): AIConfig => {\n // Merge provider configs dynamically\n const allProviderIds = new Set([\n ...Object.keys(a.providers || {}),\n ...Object.keys(b.providers || {}),\n ]);\n\n const mergedProviders: Record<string, any> = {};\n for (const providerId of allProviderIds) {\n mergedProviders[providerId] = {\n ...a.providers?.[providerId],\n ...b.providers?.[providerId],\n };\n }\n\n return {\n defaultProvider: b.defaultProvider ?? a.defaultProvider,\n defaultModel: b.defaultModel ?? a.defaultModel,\n providers: mergedProviders,\n };\n};\n\n/**\n * Check if any AI config exists\n */\nexport const aiConfigExists = async (cwd: string = process.cwd()): Promise<boolean> => {\n const paths = getAIConfigPaths(cwd);\n try {\n // Check any of the config files\n await fs.access(paths.global).catch(() => {});\n return true;\n } catch {}\n\n try {\n await fs.access(paths.project);\n return true;\n } catch {}\n\n try {\n await fs.access(paths.local);\n return true;\n } catch {}\n\n try {\n await fs.access(paths.legacy);\n return true;\n } catch {}\n\n return false;\n};\n\n/**\n * Load AI configuration\n * Merges global, project, and local configs with priority: local > project > global\n * Automatically migrates legacy config on first load\n */\nexport const loadAIConfig = async (cwd: string = process.cwd()): Promise<Result<AIConfig, Error>> => {\n return tryCatchAsync(\n async () => {\n const paths = getAIConfigPaths(cwd);\n\n // Load all config files\n const [globalConfig, projectConfig, localConfig, legacyConfig] = await Promise.all([\n loadConfigFile(paths.global),\n loadConfigFile(paths.project),\n loadConfigFile(paths.local),\n loadConfigFile(paths.legacy),\n ]);\n\n // Auto-migrate legacy config if it exists and global doesn't\n if (legacyConfig && !globalConfig) {\n await migrateLegacyConfig(cwd);\n // Reload global config after migration\n const migratedGlobal = await loadConfigFile(paths.global);\n if (migratedGlobal) {\n // Start with empty config\n let merged: AIConfig = {};\n\n // Merge in priority order: global < project < local\n merged = mergeConfigs(merged, migratedGlobal);\n if (projectConfig) merged = mergeConfigs(merged, projectConfig);\n if (localConfig) merged = mergeConfigs(merged, localConfig);\n\n return merged;\n }\n }\n\n // Start with empty config\n let merged: AIConfig = {};\n\n // Merge in priority order: global < project < local < legacy (for backwards compat)\n if (globalConfig) merged = mergeConfigs(merged, globalConfig);\n if (projectConfig) merged = mergeConfigs(merged, projectConfig);\n if (localConfig) merged = mergeConfigs(merged, localConfig);\n if (legacyConfig) merged = mergeConfigs(merged, legacyConfig);\n\n return merged;\n },\n (error: any) => new Error(`Failed to load AI config: ${error.message}`)\n );\n};\n\n/**\n * Save AI configuration to global settings\n * By default, all configuration (including API keys) goes to ~/.sylphx-flow/settings.json\n * Automatically sets default provider if not set\n */\nexport const saveAIConfig = async (\n config: AIConfig,\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const paths = getAIConfigPaths(cwd);\n const configPath = paths.global; // Save to global by default\n\n return tryCatchAsync(\n async () => {\n // Ensure directory exists\n await fs.mkdir(path.dirname(configPath), { recursive: true });\n\n // Auto-set default provider if not set\n const configToSave = { ...config };\n if (!configToSave.defaultProvider && configToSave.providers) {\n // Get configured providers (those that pass isConfigured check)\n const { getProvider } = await import('../providers/index.js');\n const configuredProviders: ProviderId[] = [];\n\n for (const [providerId, providerConfig] of Object.entries(configToSave.providers)) {\n try {\n const provider = getProvider(providerId as ProviderId);\n if (provider.isConfigured(providerConfig)) {\n configuredProviders.push(providerId as ProviderId);\n }\n } catch {\n // Skip unknown providers\n }\n }\n\n // Use last configured provider as default\n if (configuredProviders.length > 0) {\n configToSave.defaultProvider = configuredProviders[configuredProviders.length - 1];\n }\n }\n\n // Validate config\n const validated = aiConfigSchema.parse(configToSave);\n\n // Write config\n await fs.writeFile(configPath, JSON.stringify(validated, null, 2) + '\\n', 'utf8');\n },\n (error: any) => new Error(`Failed to save AI config: ${error.message}`)\n );\n};\n\n/**\n * Save AI configuration to a specific location\n */\nexport const saveAIConfigTo = async (\n config: AIConfig,\n location: 'global' | 'project' | 'local',\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const paths = getAIConfigPaths(cwd);\n const configPath = paths[location];\n\n return tryCatchAsync(\n async () => {\n // Ensure directory exists\n await fs.mkdir(path.dirname(configPath), { recursive: true });\n\n // Validate config\n const validated = aiConfigSchema.parse(config);\n\n // Write config\n await fs.writeFile(configPath, JSON.stringify(validated, null, 2) + '\\n', 'utf8');\n },\n (error: any) => new Error(`Failed to save AI config to ${location}: ${error.message}`)\n );\n};\n\n/**\n * Update AI configuration (merge with existing)\n * Default provider is auto-set by saveAIConfig to last configured provider\n */\nexport const updateAIConfig = async (\n updates: Partial<AIConfig>,\n cwd: string = process.cwd()\n): Promise<Result<void, Error>> => {\n const currentResult = await loadAIConfig(cwd);\n\n if (currentResult._tag === 'Failure') {\n return currentResult;\n }\n\n const merged: AIConfig = {\n ...currentResult.value,\n ...updates,\n providers: {\n ...currentResult.value.providers,\n ...updates.providers,\n },\n };\n\n // saveAIConfig will auto-set default provider if not set\n return saveAIConfig(merged, cwd);\n};\n\n/**\n * Get configured providers\n * Uses provider's isConfigured() method to check\n */\nexport const getConfiguredProviders = async (\n cwd: string = process.cwd()\n): Promise<ProviderId[]> => {\n const result = await loadAIConfig(cwd);\n\n if (result._tag === 'Failure') {\n return [];\n }\n\n const providers: ProviderId[] = [];\n const config = result.value;\n\n if (!config.providers) {\n return [];\n }\n\n // Dynamically import provider registry to avoid circular dependency\n const { getProvider } = await import('../providers/index.js');\n\n for (const [providerId, providerConfig] of Object.entries(config.providers)) {\n try {\n const provider = getProvider(providerId as ProviderId);\n if (provider.isConfigured(providerConfig)) {\n providers.push(providerId as ProviderId);\n }\n } catch {\n // Skip unknown providers\n }\n }\n\n return providers;\n};\n\n/**\n * Migrate legacy ai-config.json to new settings system\n * Automatically called on first load if legacy config exists\n */\nexport const migrateLegacyConfig = async (cwd: string = process.cwd()): Promise<Result<void, Error>> => {\n return tryCatchAsync(\n async () => {\n const paths = getAIConfigPaths(cwd);\n\n // Check if legacy config exists\n const legacyConfig = await loadConfigFile(paths.legacy);\n if (!legacyConfig) {\n return; // No legacy config to migrate\n }\n\n // Check if global config already exists\n const globalConfig = await loadConfigFile(paths.global);\n if (globalConfig) {\n // Global config exists, don't overwrite it\n console.log('Legacy config found but global config already exists. Skipping migration.');\n console.log(`You can manually delete ${paths.legacy} if migration is complete.`);\n return;\n }\n\n // Migrate to global config\n await fs.mkdir(path.dirname(paths.global), { recursive: true });\n await fs.writeFile(paths.global, JSON.stringify(legacyConfig, null, 2) + '\\n', 'utf8');\n\n console.log(`✓ Migrated configuration from ${paths.legacy} to ${paths.global}`);\n console.log(` You can now safely delete the legacy file: ${paths.legacy}`);\n },\n (error: any) => new Error(`Failed to migrate legacy config: ${error.message}`)\n );\n};\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "8D8E0EE97753E6F564756E2164756E21",
8
+ "debugId": "CC92FC8B2C680A5264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -0,0 +1,4 @@
1
+ import{_ as U}from"./chunk-372bgp30.js";import{Rb as C}from"./chunk-f9yb2zk3.js";var b=C(U(),1);import{readFile as B,readdir as M,access as w}from"node:fs/promises";import{join as Z,parse as y,relative as N}from"node:path";import{homedir as j}from"node:os";async function G(k,q=!1,x){try{let H=await B(k,"utf-8"),{data:Q,content:J}=b.default(H);if(!Q.name||typeof Q.name!=="string")return console.error(`Agent file ${k} missing required 'name' field`),null;let V={name:Q.name,description:Q.description||""};return{id:x||y(k).name,metadata:V,systemPrompt:J.trim(),isBuiltin:q,filePath:k}}catch(H){return console.error(`Failed to load agent from ${k}:`,H),null}}async function z(k,q=!1){try{let H=(await M(k,{recursive:!0,withFileTypes:!0})).filter((J)=>J.isFile()&&J.name.endsWith(".md")).map((J)=>{let V=Z(J.parentPath||J.path,J.name),Y=N(k,V).replace(/\.md$/,"");return{fullPath:V,agentId:Y}});return(await Promise.all(H.map(({fullPath:J,agentId:V})=>G(J,q,V)))).filter((J)=>J!==null)}catch(x){return[]}}async function S(){let k=new URL(".",import.meta.url).pathname,q=Z(k,"..","assets","agents"),x=Z(k,"..","..","assets","agents");try{return await w(q),q}catch{return x}}function D(k){let q=Z(j(),".sylphx-flow","agents"),x=Z(k,".sylphx-flow","agents");return[q,x]}async function v(k){let q=await S(),[x,H]=D(k),[Q,J,V]=await Promise.all([z(q,!0),z(x,!1),z(H,!1)]),Y=new Map;for(let W of Q)Y.set(W.id,W);for(let W of J)Y.set(W.id,W);for(let W of V)Y.set(W.id,W);return Array.from(Y.values())}var X="coder";var O=null,R=null,$={id:X,metadata:{name:"Coder",description:"Fallback agent (agent manager not initialized)"},systemPrompt:"You are a helpful coding assistant.",isBuiltin:!0};function f(k){R=k}async function u(k){let q=await v(k),x=new Map;for(let H of q)x.set(H.id,H);if(O={agents:x,cwd:k},R){let H=R();if(H.getState){let Q=H.getState().currentAgentId||X;if(!x.has(Q))H.getState().setCurrentAgentId(X)}}}function P(){if(!O)return[$];return Array.from(O.agents.values())}function h(k){if(!O)return k===X?$:null;return O.agents.get(k)||null}function L(){let k=K();if(!O)return $;return O.agents.get(k)||$}function K(){if(R){let k=R();if(k.getState)return k.getState().currentAgentId||X}return X}function p(k){if(!O)return!1;if(!O.agents.get(k))return!1;if(R){let x=R();if(x.getState)x.getState().setCurrentAgentId(k)}return!0}async function l(){if(!O)return;let k=O.cwd,q=K();if(await u(k),O&&!O.agents.has(q)){if(R){let x=R();if(x.getState)x.getState().setCurrentAgentId(X)}}}function o(){return L().systemPrompt}export{p as switchAgent,f as setAppStoreGetter,l as reloadAgents,u as initializeAgentManager,o as getCurrentSystemPrompt,K as getCurrentAgentId,L as getCurrentAgent,P as getAllAgents,h as getAgentById};
2
+ export{f as U,u as V,P as W,h as X,p as Y,o as Z};
3
+
4
+ //# debugId=F688D1C80F5BC5DB64756E2164756E21
@@ -6,7 +6,7 @@
6
6
  "/**\n * Agent Constants\n * Default agent ID for fallback purposes\n */\n\n/**\n * Default agent ID (must match an agent in assets/agents/)\n */\nexport const DEFAULT_AGENT_ID = 'coder';\n",
7
7
  "/**\n * Agent Manager\n * Manages agent state and operations\n */\n\nimport type { Agent } from '../types/agent.types.js';\nimport { loadAllAgents } from './agent-loader.js';\nimport { DEFAULT_AGENT_ID } from './builtin-agents.js';\n\n/**\n * Agent manager state\n */\ninterface AgentManagerState {\n agents: Map<string, Agent>;\n cwd: string;\n}\n\nlet state: AgentManagerState | null = null;\n\n/**\n * Get the app store (lazy import to avoid circular dependencies)\n */\nlet getAppStore: (() => any) | null = null;\n\n/**\n * Fallback agent when state is not initialized\n */\nconst FALLBACK_AGENT: Agent = {\n id: DEFAULT_AGENT_ID,\n metadata: {\n name: 'Coder',\n description: 'Fallback agent (agent manager not initialized)',\n },\n systemPrompt: 'You are a helpful coding assistant.',\n isBuiltin: true,\n};\n\n/**\n * Set the app store getter (called during initialization)\n */\nexport function setAppStoreGetter(getter: () => any): void {\n getAppStore = getter;\n}\n\n/**\n * Initialize agent manager\n */\nexport async function initializeAgentManager(cwd: string): Promise<void> {\n const allAgents = await loadAllAgents(cwd);\n\n const agentMap = new Map<string, Agent>();\n for (const agent of allAgents) {\n agentMap.set(agent.id, agent);\n }\n\n state = {\n agents: agentMap,\n cwd,\n };\n\n // Initialize store with default agent if store is available\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n const currentAgentId = store.getState().currentAgentId || DEFAULT_AGENT_ID;\n // Ensure the current agent exists, fallback to default if not\n if (!agentMap.has(currentAgentId)) {\n store.getState().setCurrentAgentId(DEFAULT_AGENT_ID);\n }\n }\n }\n}\n\n/**\n * Get all available agents\n */\nexport function getAllAgents(): Agent[] {\n if (!state) {\n return [FALLBACK_AGENT];\n }\n return Array.from(state.agents.values());\n}\n\n/**\n * Get agent by ID\n */\nexport function getAgentById(id: string): Agent | null {\n if (!state) {\n return id === DEFAULT_AGENT_ID ? FALLBACK_AGENT : null;\n }\n return state.agents.get(id) || null;\n}\n\n/**\n * Get current agent\n */\nexport function getCurrentAgent(): Agent {\n const currentAgentId = getCurrentAgentId();\n\n if (!state) {\n return FALLBACK_AGENT;\n }\n return state.agents.get(currentAgentId) || FALLBACK_AGENT;\n}\n\n/**\n * Get current agent ID\n */\nexport function getCurrentAgentId(): string {\n // Try to get from store first\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n return store.getState().currentAgentId || DEFAULT_AGENT_ID;\n }\n }\n // Fallback to default\n return DEFAULT_AGENT_ID;\n}\n\n/**\n * Switch to a different agent\n */\nexport function switchAgent(agentId: string): boolean {\n if (!state) {\n return false;\n }\n\n const agent = state.agents.get(agentId);\n if (!agent) {\n return false;\n }\n\n // Update store if available (this triggers reactive updates)\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n store.getState().setCurrentAgentId(agentId);\n }\n }\n\n return true;\n}\n\n/**\n * Reload agents from disk\n */\nexport async function reloadAgents(): Promise<void> {\n if (!state) {\n return;\n }\n\n const cwd = state.cwd;\n const currentAgentId = getCurrentAgentId();\n\n await initializeAgentManager(cwd);\n\n // Restore current agent if it still exists, otherwise reset to default\n if (state && !state.agents.has(currentAgentId)) {\n if (getAppStore) {\n const store = getAppStore();\n if (store.getState) {\n store.getState().setCurrentAgentId(DEFAULT_AGENT_ID);\n }\n }\n }\n}\n\n/**\n * Get system prompt for current agent\n */\nexport function getCurrentSystemPrompt(): string {\n return getCurrentAgent().systemPrompt;\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "932F635DE10488EC64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "F688D1C80F5BC5DB64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -0,0 +1,4 @@
1
+ import{ba as J}from"./chunk-f676awyz.js";import{Sb as C,Ub as W}from"./chunk-f9yb2zk3.js";var V=C((zq,u)=>{var{create:x,defineProperty:X,getOwnPropertyDescriptor:D,getOwnPropertyNames:S,getPrototypeOf:I}=Object,M=Object.prototype.hasOwnProperty,y=(q,z)=>{for(var B in z)X(q,B,{get:z[B],enumerable:!0})},w=(q,z,B,F)=>{if(z&&typeof z==="object"||typeof z==="function"){for(let G of S(z))if(!M.call(q,G)&&G!==B)X(q,G,{get:()=>z[G],enumerable:!(F=D(z,G))||F.enumerable})}return q},v=(q,z,B)=>(B=q!=null?x(I(q)):{},w(z||!q||!q.__esModule?X(B,"default",{value:q,enumerable:!0}):B,q)),g=(q)=>w(X({},"__esModule",{value:!0}),q),R={};y(R,{findRootDir:()=>l,getUserDataDir:()=>P});u.exports=g(R);var Q=v(W("path")),h=v(W("fs")),$=v(W("os")),b=J();function l(){try{let q=process.cwd();while(q!==Q.default.dirname(q)){let z=Q.default.join(q,".vercel");if(h.default.existsSync(z))return q;q=Q.default.dirname(q)}}catch(q){throw new b.VercelOidcTokenError("Token refresh only supported in node server environments")}throw new b.VercelOidcTokenError("Unable to find root directory")}function P(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch($.default.platform()){case"darwin":return Q.default.join($.default.homedir(),"Library/Application Support");case"linux":return Q.default.join($.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var qq=C((Bq,j)=>{var{create:c,defineProperty:Y,getOwnPropertyDescriptor:f,getOwnPropertyNames:k,getPrototypeOf:i}=Object,s=Object.prototype.hasOwnProperty,n=(q,z)=>{for(var B in z)Y(q,B,{get:z[B],enumerable:!0})},N=(q,z,B,F)=>{if(z&&typeof z==="object"||typeof z==="function"){for(let G of k(z))if(!s.call(q,G)&&G!==B)Y(q,G,{get:()=>z[G],enumerable:!(F=f(z,G))||F.enumerable})}return q},E=(q,z,B)=>(B=q!=null?c(i(q)):{},N(z||!q||!q.__esModule?Y(B,"default",{value:q,enumerable:!0}):B,q)),p=(q)=>N(Y({},"__esModule",{value:!0}),q),O={};n(O,{assertVercelOidcTokenResponse:()=>A,findProjectInfo:()=>m,getTokenPayload:()=>t,getVercelCliToken:()=>d,getVercelDataDir:()=>T,getVercelOidcToken:()=>a,isExpired:()=>o,loadToken:()=>r,saveToken:()=>_});j.exports=p(O);var L=E(W("path")),H=E(W("fs")),K=J(),Z=V();function T(){let z=(0,Z.getUserDataDir)();if(!z)return null;return L.join(z,"com.vercel.cli")}function d(){let q=T();if(!q)return null;let z=L.join(q,"auth.json");if(!H.existsSync(z))return null;let B=H.readFileSync(z,"utf8");if(!B)return null;return JSON.parse(B).token}async function a(q,z,B){try{let F=`https://api.vercel.com/v1/projects/${z}/token?source=vercel-oidc-refresh${B?`&teamId=${B}`:""}`,G=await fetch(F,{method:"POST",headers:{Authorization:`Bearer ${q}`}});if(!G.ok)throw new K.VercelOidcTokenError(`Failed to refresh OIDC token: ${G.statusText}`);let U=await G.json();return A(U),U}catch(F){throw new K.VercelOidcTokenError("Failed to refresh OIDC token",F)}}function A(q){if(!q||typeof q!=="object")throw TypeError("Expected an object");if(!("token"in q)||typeof q.token!=="string")throw TypeError("Expected a string-valued token property")}function m(){let q=(0,Z.findRootDir)();if(!q)throw new K.VercelOidcTokenError("Unable to find root directory");try{let z=L.join(q,".vercel","project.json");if(!H.existsSync(z))throw new K.VercelOidcTokenError("project.json not found");let B=JSON.parse(H.readFileSync(z,"utf8"));if(typeof B.projectId!=="string"&&typeof B.orgId!=="string")throw TypeError("Expected a string-valued projectId property");return{projectId:B.projectId,teamId:B.orgId}}catch(z){throw new K.VercelOidcTokenError("Unable to find project ID",z)}}function _(q,z){try{let B=(0,Z.getUserDataDir)();if(!B)throw new K.VercelOidcTokenError("Unable to find user data directory");let F=L.join(B,"com.vercel.token",`${z}.json`),G=JSON.stringify(q);H.mkdirSync(L.dirname(F),{mode:432,recursive:!0}),H.writeFileSync(F,G),H.chmodSync(F,432);return}catch(B){throw new K.VercelOidcTokenError("Failed to save token",B)}}function r(q){try{let z=(0,Z.getUserDataDir)();if(!z)return null;let B=L.join(z,"com.vercel.token",`${q}.json`);if(!H.existsSync(B))return null;let F=JSON.parse(H.readFileSync(B,"utf8"));return A(F),F}catch(z){throw new K.VercelOidcTokenError("Failed to load token",z)}}function t(q){let z=q.split(".");if(z.length!==3)throw new K.VercelOidcTokenError("Invalid token");let B=z[1].replace(/-/g,"+").replace(/_/g,"/"),F=B.padEnd(B.length+(4-B.length%4)%4,"=");return JSON.parse(Buffer.from(F,"base64").toString("utf8"))}var e=900000;function o(q){return q.exp*1000<Date.now()+e}});export default qq();
2
+ export{qq as aa};
3
+
4
+ //# debugId=AB3F4FE84D0EEB4564756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_io_exports = {};\n__export(token_io_exports, {\n findRootDir: () => findRootDir,\n getUserDataDir: () => getUserDataDir\n});\nmodule.exports = __toCommonJS(token_io_exports);\nvar import_path = __toESM(require(\"path\"));\nvar import_fs = __toESM(require(\"fs\"));\nvar import_os = __toESM(require(\"os\"));\nvar import_token_error = require(\"./token-error\");\nfunction findRootDir() {\n try {\n let dir = process.cwd();\n while (dir !== import_path.default.dirname(dir)) {\n const pkgPath = import_path.default.join(dir, \".vercel\");\n if (import_fs.default.existsSync(pkgPath)) {\n return dir;\n }\n dir = import_path.default.dirname(dir);\n }\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(\n \"Token refresh only supported in node server environments\"\n );\n }\n throw new import_token_error.VercelOidcTokenError(\"Unable to find root directory\");\n}\nfunction getUserDataDir() {\n if (process.env.XDG_DATA_HOME) {\n return process.env.XDG_DATA_HOME;\n }\n switch (import_os.default.platform()) {\n case \"darwin\":\n return import_path.default.join(import_os.default.homedir(), \"Library/Application Support\");\n case \"linux\":\n return import_path.default.join(import_os.default.homedir(), \".local/share\");\n case \"win32\":\n if (process.env.LOCALAPPDATA) {\n return process.env.LOCALAPPDATA;\n }\n return null;\n default:\n return null;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n findRootDir,\n getUserDataDir\n});\n",
6
6
  "\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_util_exports = {};\n__export(token_util_exports, {\n assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,\n findProjectInfo: () => findProjectInfo,\n getTokenPayload: () => getTokenPayload,\n getVercelCliToken: () => getVercelCliToken,\n getVercelDataDir: () => getVercelDataDir,\n getVercelOidcToken: () => getVercelOidcToken,\n isExpired: () => isExpired,\n loadToken: () => loadToken,\n saveToken: () => saveToken\n});\nmodule.exports = __toCommonJS(token_util_exports);\nvar path = __toESM(require(\"path\"));\nvar fs = __toESM(require(\"fs\"));\nvar import_token_error = require(\"./token-error\");\nvar import_token_io = require(\"./token-io\");\nfunction getVercelDataDir() {\n const vercelFolder = \"com.vercel.cli\";\n const dataDir = (0, import_token_io.getUserDataDir)();\n if (!dataDir) {\n return null;\n }\n return path.join(dataDir, vercelFolder);\n}\nfunction getVercelCliToken() {\n const dataDir = getVercelDataDir();\n if (!dataDir) {\n return null;\n }\n const tokenPath = path.join(dataDir, \"auth.json\");\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = fs.readFileSync(tokenPath, \"utf8\");\n if (!token) {\n return null;\n }\n return JSON.parse(token).token;\n}\nasync function getVercelOidcToken(authToken, projectId, teamId) {\n try {\n const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : \"\"}`;\n const res = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${authToken}`\n }\n });\n if (!res.ok) {\n throw new import_token_error.VercelOidcTokenError(\n `Failed to refresh OIDC token: ${res.statusText}`\n );\n }\n const tokenRes = await res.json();\n assertVercelOidcTokenResponse(tokenRes);\n return tokenRes;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, e);\n }\n}\nfunction assertVercelOidcTokenResponse(res) {\n if (!res || typeof res !== \"object\") {\n throw new TypeError(\"Expected an object\");\n }\n if (!(\"token\" in res) || typeof res.token !== \"string\") {\n throw new TypeError(\"Expected a string-valued token property\");\n }\n}\nfunction findProjectInfo() {\n const dir = (0, import_token_io.findRootDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\"Unable to find root directory\");\n }\n try {\n const prjPath = path.join(dir, \".vercel\", \"project.json\");\n if (!fs.existsSync(prjPath)) {\n throw new import_token_error.VercelOidcTokenError(\"project.json not found\");\n }\n const prj = JSON.parse(fs.readFileSync(prjPath, \"utf8\"));\n if (typeof prj.projectId !== \"string\" && typeof prj.orgId !== \"string\") {\n throw new TypeError(\"Expected a string-valued projectId property\");\n }\n return { projectId: prj.projectId, teamId: prj.orgId };\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Unable to find project ID`, e);\n }\n}\nfunction saveToken(token, projectId) {\n try {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n throw new import_token_error.VercelOidcTokenError(\"Unable to find user data directory\");\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n const tokenJson = JSON.stringify(token);\n fs.mkdirSync(path.dirname(tokenPath), { mode: 432, recursive: true });\n fs.writeFileSync(tokenPath, tokenJson);\n fs.chmodSync(tokenPath, 432);\n return;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to save token`, e);\n }\n}\nfunction loadToken(projectId) {\n try {\n const dir = (0, import_token_io.getUserDataDir)();\n if (!dir) {\n return null;\n }\n const tokenPath = path.join(dir, \"com.vercel.token\", `${projectId}.json`);\n if (!fs.existsSync(tokenPath)) {\n return null;\n }\n const token = JSON.parse(fs.readFileSync(tokenPath, \"utf8\"));\n assertVercelOidcTokenResponse(token);\n return token;\n } catch (e) {\n throw new import_token_error.VercelOidcTokenError(`Failed to load token`, e);\n }\n}\nfunction getTokenPayload(token) {\n const tokenParts = token.split(\".\");\n if (tokenParts.length !== 3) {\n throw new import_token_error.VercelOidcTokenError(\"Invalid token\");\n }\n const base64 = tokenParts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(\n base64.length + (4 - base64.length % 4) % 4,\n \"=\"\n );\n return JSON.parse(Buffer.from(padded, \"base64\").toString(\"utf8\"));\n}\nconst TIME_15_MINUTES_IN_MS = 15 * 60 * 1e3;\nfunction isExpired(token) {\n return token.exp * 1e3 < Date.now() + TIME_15_MINUTES_IN_MS;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n assertVercelOidcTokenResponse,\n findProjectInfo,\n getTokenPayload,\n getVercelCliToken,\n getVercelDataDir,\n getVercelOidcToken,\n isExpired,\n loadToken,\n saveToken\n});\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "1E88FA67CD4A1EDF64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "AB3F4FE84D0EEB4564756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,4 +1,4 @@
1
- import{J as N}from"./chunk-f06ma45b.js";import{K as I}from"./chunk-9c2nr2fz.js";import"./chunk-wrx1n6q6.js";import{P as j}from"./chunk-d4hj6d4t.js";import{T as Y}from"./chunk-fs3f7acb.js";import"./chunk-cs1s5c3g.js";import"./chunk-vjf57v4h.js";import"./chunk-8z1sf25t.js";import"./chunk-jgsq3xax.js";import"./chunk-m9nt0bj3.js";import"./chunk-hxj4eapp.js";import"./chunk-cv1nhr27.js";import"./chunk-gyq335sw.js";import"./chunk-sxy6vp20.js";import*as D from"node:os";function E(w){let Q=w.filter((J)=>J.status!=="completed"&&J.status!=="removed");if(Q.length===0)return"<todo_reminder>For multi-step tasks, use updateTodos tool</todo_reminder>";let V=[...Q].sort((J,Z)=>{if(J.ordering!==Z.ordering)return J.ordering-Z.ordering;return J.id-Z.id}),X=V.filter((J)=>J.status==="pending"),z=V.filter((J)=>J.status==="in_progress"),W=["<pending_tasks>"];if(z.length>0)W.push("In Progress:"),z.forEach((J)=>W.push(` - [${J.id}] ${J.activeForm}`));if(X.length>0)W.push("Pending:"),X.forEach((J)=>W.push(` - [${J.id}] ${J.content}`));return W.push("</pending_tasks>"),W.join(`
1
+ import{N}from"./chunk-weshapwk.js";import{O as I}from"./chunk-sgafqzer.js";import{T as j}from"./chunk-cjy100rr.js";import{Z as Y}from"./chunk-7h737bp8.js";import"./chunk-372bgp30.js";import"./chunk-rvx8bgqk.js";import"./chunk-f676awyz.js";import"./chunk-gmmm7xpw.js";import"./chunk-51kpynby.js";import"./chunk-etqfkn4f.js";import"./chunk-cv1nhr27.js";import"./chunk-ceyg2zjg.js";import"./chunk-f9yb2zk3.js";import*as D from"node:os";function E(w){let Q=w.filter((J)=>J.status!=="completed"&&J.status!=="removed");if(Q.length===0)return"<todo_reminder>For multi-step tasks, use updateTodos tool</todo_reminder>";let V=[...Q].sort((J,Z)=>{if(J.ordering!==Z.ordering)return J.ordering-Z.ordering;return J.id-Z.id}),X=V.filter((J)=>J.status==="pending"),z=V.filter((J)=>J.status==="in_progress"),W=["<pending_tasks>"];if(z.length>0)W.push("In Progress:"),z.forEach((J)=>W.push(` - [${J.id}] ${J.activeForm}`));if(X.length>0)W.push("Pending:"),X.forEach((J)=>W.push(` - [${J.id}] ${J.content}`));return W.push("</pending_tasks>"),W.join(`
2
2
  `)}var F=`You are a helpful coding assistant.
3
3
 
4
4
  You help users with:
@@ -18,6 +18,6 @@ Guidelines:
18
18
  Time: ${w.timestamp}
19
19
  CPU: ${w.cpu}
20
20
  Memory: ${w.memory}
21
- </system_status>`}function d(w,Q){if(!w||typeof w!=="object")return w;let V={type:"content",value:[]};if(w.type==="content")V.value=w.value;else if(w.type==="text"||w.type==="error-text")V.value.push({type:"text",text:w.value});else if(w.type==="json"||w.type==="error-json")V.value.push({type:"text",text:JSON.stringify(w.value,null,2)});let X=R(Q);return V.value.unshift({type:"text",text:X}),V}function P(w){let Q=w.content;if(typeof Q==="string")w.content=[{type:"text",text:Q}];return w}async function*c(w){let{systemPrompt:Q=C(),model:V,messages:X,abortSignal:z,onStepFinish:W,onPrepareMessages:J,onTransformToolResult:Z}=w,v=X.map(P),$=0,U=1000;while($<U){yield{type:"step-start",stepNumber:$};let K=J?J(v,$):v,{fullStream:B,response:_,finishReason:O,usage:G,content:A}=I({model:V,messages:K,system:Q,tools:N(),abortSignal:z});for await(let q of B)switch(q.type){case"text-start":yield{type:"text-start"};break;case"text-delta":yield{type:"text-delta",textDelta:q.text};break;case"text-end":yield{type:"text-end"};break;case"reasoning-start":yield{type:"reasoning-start"};break;case"reasoning-delta":yield{type:"reasoning-delta",textDelta:q.text};break;case"reasoning-end":yield{type:"reasoning-end"};break;case"tool-call":yield{type:"tool-call",toolCallId:q.toolCallId,toolName:q.toolName,args:q.input};break;case"tool-input-start":yield{type:"tool-input-start",toolCallId:q.id,toolName:q.toolName};break;case"tool-input-delta":yield{type:"tool-input-delta",toolCallId:q.id,argsTextDelta:q.delta};break;case"tool-input-end":yield{type:"tool-input-end",toolCallId:q.id};break;case"tool-result":yield{type:"tool-result",toolCallId:q.toolCallId,toolName:q.toolName,result:q.output};break;case"finish":yield{type:"finish",finishReason:q.finishReason,usage:{promptTokens:q.totalUsage.inputTokens??0,completionTokens:q.totalUsage.outputTokens??0,totalTokens:q.totalUsage.totalTokens??0}};break;case"error":yield{type:"error",error:q.error instanceof Error?q.error.message:String(q.error)};break;case"tool-error":yield{type:"tool-error",toolCallId:q.toolCallId,toolName:q.toolName,error:q.error instanceof Error?q.error.message:String(q.error)};break;case"abort":yield{type:"error",error:"Stream aborted"};break;default:break}if(W){let q={finishReason:await O,usage:{promptTokens:(await G).inputTokens??0,completionTokens:(await G).outputTokens??0,totalTokens:(await G).totalTokens??0},content:await A};W(q)}let L=(await _).messages;for(let q of L)if(q.role==="tool"&&Z)v.push({...q,content:q.content.map((H)=>({...H,output:Z(H.output,H.toolName)}))});else v.push(q);let x=await O;if(yield{type:"step-end",stepNumber:$,finishReason:x},x!=="tool-calls")break;$++}}export{P as normalizeMessage,d as injectSystemStatusToOutput,g as getSystemStatus,C as getSystemPrompt,N as getAISDKTools,c as createAIStream,E as buildTodoContext,R as buildSystemStatusFromMetadata,l as SYSTEM_PROMPT};export{E as v,g as w,R as x,d as y,c as z};
21
+ </system_status>`}function d(w,Q){if(!w||typeof w!=="object")return w;let V={type:"content",value:[]};if(w.type==="content")V.value=w.value;else if(w.type==="text"||w.type==="error-text")V.value.push({type:"text",text:w.value});else if(w.type==="json"||w.type==="error-json")V.value.push({type:"text",text:JSON.stringify(w.value,null,2)});let X=R(Q);return V.value.unshift({type:"text",text:X}),V}function P(w){let Q=w.content;if(typeof Q==="string")w.content=[{type:"text",text:Q}];return w}async function*c(w){let{systemPrompt:Q=C(),model:V,messages:X,abortSignal:z,onStepFinish:W,onPrepareMessages:J,onTransformToolResult:Z}=w,v=X.map(P),$=0,U=1000;while($<U){yield{type:"step-start",stepNumber:$};let K=J?J(v,$):v,{fullStream:B,response:_,finishReason:O,usage:G,content:A}=I({model:V,messages:K,system:Q,tools:N(),abortSignal:z});for await(let q of B)switch(q.type){case"text-start":yield{type:"text-start"};break;case"text-delta":yield{type:"text-delta",textDelta:q.text};break;case"text-end":yield{type:"text-end"};break;case"reasoning-start":yield{type:"reasoning-start"};break;case"reasoning-delta":yield{type:"reasoning-delta",textDelta:q.text};break;case"reasoning-end":yield{type:"reasoning-end"};break;case"tool-call":yield{type:"tool-call",toolCallId:q.toolCallId,toolName:q.toolName,args:q.input};break;case"tool-input-start":yield{type:"tool-input-start",toolCallId:q.id,toolName:q.toolName};break;case"tool-input-delta":yield{type:"tool-input-delta",toolCallId:q.id,argsTextDelta:q.delta};break;case"tool-input-end":yield{type:"tool-input-end",toolCallId:q.id};break;case"tool-result":yield{type:"tool-result",toolCallId:q.toolCallId,toolName:q.toolName,result:q.output};break;case"finish":yield{type:"finish",finishReason:q.finishReason,usage:{promptTokens:q.totalUsage.inputTokens??0,completionTokens:q.totalUsage.outputTokens??0,totalTokens:q.totalUsage.totalTokens??0}};break;case"error":yield{type:"error",error:q.error instanceof Error?q.error.message:String(q.error)};break;case"tool-error":yield{type:"tool-error",toolCallId:q.toolCallId,toolName:q.toolName,error:q.error instanceof Error?q.error.message:String(q.error)};break;case"abort":yield{type:"error",error:"Stream aborted"};break;default:break}if(W){let q={finishReason:await O,usage:{promptTokens:(await G).inputTokens??0,completionTokens:(await G).outputTokens??0,totalTokens:(await G).totalTokens??0},content:await A};W(q)}let L=(await _).messages;for(let q of L)if(q.role==="tool"&&Z)v.push({...q,content:q.content.map((H)=>({...H,output:Z(H.output,H.toolName)}))});else v.push(q);let x=await O;if(yield{type:"step-end",stepNumber:$,finishReason:x},x!=="tool-calls")break;$++}}export{P as normalizeMessage,d as injectSystemStatusToOutput,g as getSystemStatus,C as getSystemPrompt,N as getAISDKTools,c as createAIStream,E as buildTodoContext,R as buildSystemStatusFromMetadata,l as SYSTEM_PROMPT};export{E as x,g as y,R as z,d as A,c as B};
22
22
 
23
- //# debugId=BE3FD3A142B94A3564756E2164756E21
23
+ //# debugId=9A0CBF72C3074EE364756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "/**\n * Sylphx Flow AI SDK\n * Unified AI streaming interface with tool support\n * Content parts based design - own type system with proper conversion\n */\n\nimport { streamText, stepCountIs, type UserContent, type AssistantContent, type DataContent, type ModelMessage } from 'ai';\nimport type { LanguageModelV2, LanguageModelV2ToolResultOutput } from '@ai-sdk/provider';\nimport * as os from 'node:os';\nimport { getAISDKTools } from '../tools/index.js';\nimport { getCurrentSystemPrompt } from './agent-manager.js';\nimport { getEnabledRulesContent } from './rule-manager.js';\nimport { useAppStore } from '../ui/stores/app-store.js';\nimport { buildTodoContext } from '../utils/todo-context.js';\n\n// Legacy system prompt - kept for backwards compatibility and fallback\nconst LEGACY_SYSTEM_PROMPT = `You are a helpful coding assistant.\n\nYou help users with:\n- Programming tasks and code review\n- Debugging and troubleshooting\n- File operations and system tasks\n- Software development best practices\n\nGuidelines:\n- Write clean, functional, well-documented code\n- Use tools proactively when needed to complete tasks\n- Explain complex concepts clearly\n- Follow language-specific best practices\n- Test and verify your work when possible`;\n\n/**\n * Base system prompt - introduces Sylphx\n */\nconst BASE_SYSTEM_PROMPT = `You are Sylphx, an AI development assistant.`;\n\n/**\n * Get the system prompt to use (combines base + rules + agent)\n */\nexport function getSystemPrompt(): string {\n const parts: string[] = [];\n\n // 1. Base prompt (introduces Sylphx)\n parts.push(BASE_SYSTEM_PROMPT);\n\n // 2. Enabled rules (shared across all agents)\n try {\n const rulesContent = getEnabledRulesContent();\n if (rulesContent) {\n parts.push(rulesContent);\n }\n } catch {\n // Rule manager not initialized or no rules enabled\n }\n\n // 3. Agent-specific prompt\n try {\n const agentPrompt = getCurrentSystemPrompt();\n parts.push(agentPrompt);\n } catch {\n // Fallback to legacy if agent manager not initialized\n parts.push(LEGACY_SYSTEM_PROMPT);\n }\n\n return parts.join('\\n\\n');\n}\n\n// Export for backwards compatibility\nexport const SYSTEM_PROMPT = LEGACY_SYSTEM_PROMPT;\n\n/**\n * Stream chunk types (our own)\n */\nexport type TextStartChunk = {\n type: 'text-start';\n};\n\nexport type TextDeltaChunk = {\n type: 'text-delta';\n textDelta: string;\n};\n\nexport type TextEndChunk = {\n type: 'text-end';\n};\n\nexport type ReasoningStartChunk = {\n type: 'reasoning-start';\n};\n\nexport type ReasoningDeltaChunk = {\n type: 'reasoning-delta';\n textDelta: string;\n};\n\nexport type ReasoningEndChunk = {\n type: 'reasoning-end';\n};\n\nexport type ToolCallChunk = {\n type: 'tool-call';\n toolCallId: string;\n toolName: string;\n args: unknown;\n};\n\nexport type ToolInputStartChunk = {\n type: 'tool-input-start';\n toolCallId: string;\n toolName: string;\n};\n\nexport type ToolInputDeltaChunk = {\n type: 'tool-input-delta';\n toolCallId: string;\n argsTextDelta: string;\n};\n\nexport type ToolInputEndChunk = {\n type: 'tool-input-end';\n toolCallId: string;\n};\n\nexport type ToolResultChunk = {\n type: 'tool-result';\n toolCallId: string;\n toolName: string;\n result: unknown;\n};\n\nexport type ToolErrorChunk = {\n type: 'tool-error';\n toolCallId: string;\n toolName: string;\n error: string;\n};\n\nexport type StreamErrorChunk = {\n type: 'error';\n error: string;\n};\n\nexport type FinishChunk = {\n type: 'finish';\n finishReason: string;\n usage: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n };\n};\n\nexport type StreamChunk =\n | TextStartChunk\n | TextDeltaChunk\n | TextEndChunk\n | ReasoningStartChunk\n | ReasoningDeltaChunk\n | ReasoningEndChunk\n | ToolCallChunk\n | ToolInputStartChunk\n | ToolInputDeltaChunk\n | ToolInputEndChunk\n | ToolResultChunk\n | ToolErrorChunk\n | StreamErrorChunk\n | FinishChunk;\n\n/**\n * Step info (our own)\n */\nexport interface StepInfo {\n finishReason: string;\n usage: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n };\n content: AssistantContent[];\n}\n\n/**\n * Create AI stream options\n */\nexport interface CreateAIStreamOptions {\n model: LanguageModelV2;\n messages: ModelMessage[];\n systemPrompt?: string;\n /**\n * Optional abort signal to cancel the stream\n */\n abortSignal?: AbortSignal;\n onStepFinish?: (step: StepInfo) => void;\n /**\n * Called before each step to prepare messages\n * Can be used to inject context (e.g., todo list, system status)\n * @param messages - Current message history\n * @param stepNumber - Current step number\n * @returns Modified messages array\n */\n onPrepareMessages?: (messages: ModelMessage[], stepNumber: number) => ModelMessage[];\n /**\n * Called to transform tool result output before saving to history\n * Can be used to inject metadata (e.g., system status, timestamp)\n * @param output - Tool result output\n * @param toolName - Name of the tool\n * @returns Modified output\n */\n onTransformToolResult?: (\n output: LanguageModelV2ToolResultOutput,\n toolName: string\n ) => LanguageModelV2ToolResultOutput;\n}\n\n/**\n * System status object (captured at message creation time)\n *\n * Design: Separation of capture vs construction\n * ==============================================\n *\n * Why we have TWO functions (getSystemStatus + buildSystemStatusFromMetadata):\n *\n * 1. getSystemStatus() - Captures CURRENT system state\n * - Called when creating a NEW message\n * - Returns object { timestamp, cpu, memory }\n * - Stored in SessionMessage.metadata\n * - NEVER called again for historical messages\n *\n * 2. buildSystemStatusFromMetadata() - Constructs string from STORED values\n * - Called when building ModelMessage from SessionMessage\n * - Uses HISTORICAL values from metadata (never current values)\n * - Ensures prompt cache works (historical messages never change)\n *\n * ⚠️ CRITICAL for prompt cache:\n * - Historical messages must be IMMUTABLE\n * - If we use current values, messages change every request → cache miss\n * - Using stored metadata values → messages stay same → cache hit ✅\n *\n * Example timeline:\n * T1: User sends \"hi\"\n * → getSystemStatus() returns { cpu: \"45%\", memory: \"4.2GB\" }\n * → Store in message.metadata\n * T2: User sends \"bye\" (10 minutes later)\n * → getSystemStatus() returns { cpu: \"67%\", memory: \"5.1GB\" } for NEW message\n * → buildSystemStatusFromMetadata(T1.metadata) still returns \"45%, 4.2GB\" for T1 ✅\n * → Prompt cache recognizes T1 message as unchanged → cache hit!\n */\nexport interface SystemStatus {\n timestamp: string; // ISO format\n cpu: string; // e.g., \"45.3% (8 cores)\"\n memory: string; // e.g., \"4.2GB/16.0GB\"\n}\n\n/**\n * Get CURRENT system status (called only when creating NEW messages)\n *\n * ⚠️ IMPORTANT: Never call this for historical messages!\n * Use buildSystemStatusFromMetadata() instead to preserve prompt cache.\n */\nfunction getSystemStatus(): SystemStatus {\n const timestamp = new Date().toISOString();\n\n // Get memory usage\n const totalMem = os.totalmem();\n const freeMem = os.freemem();\n const usedMem = totalMem - freeMem;\n const memUsageGB = (usedMem / 1024 / 1024 / 1024).toFixed(1);\n const totalMemGB = (totalMem / 1024 / 1024 / 1024).toFixed(1);\n\n // Get CPU usage (average load)\n const cpus = os.cpus();\n const cpuCount = cpus.length;\n\n // Calculate average CPU usage from all cores\n let totalIdle = 0;\n let totalTick = 0;\n\n cpus.forEach((cpu) => {\n for (const type in cpu.times) {\n totalTick += cpu.times[type as keyof typeof cpu.times];\n }\n totalIdle += cpu.times.idle;\n });\n\n const cpuUsage = (100 - (100 * totalIdle) / totalTick).toFixed(1);\n\n return {\n timestamp,\n cpu: `${cpuUsage}% (${cpuCount} cores)`,\n memory: `${memUsageGB}GB/${totalMemGB}GB`,\n };\n}\n\n/**\n * Build system status string from STORED metadata (not current values)\n *\n * ⚠️ CRITICAL: This function MUST use the metadata parameter values,\n * NEVER call getSystemStatus() or use current system values!\n *\n * Why: Prompt cache requires historical messages to be immutable.\n * Using stored metadata ensures the same message always produces the same output.\n *\n * Called by:\n * - useChat when building ModelMessage from SessionMessage (historical messages)\n * - Tool result injection (for current step's system status)\n *\n * @param metadata - Stored SystemStatus from SessionMessage.metadata\n * @returns Formatted system status string for LLM\n */\nfunction buildSystemStatusFromMetadata(metadata: SystemStatus): string {\n return `<system_status>\nTime: ${metadata.timestamp}\nCPU: ${metadata.cpu}\nMemory: ${metadata.memory}\n</system_status>`;\n}\n\n/**\n * Inject system status into tool result output\n * Convert all types to content type and prepend system status as text part\n */\nfunction injectSystemStatusToOutput(output: LanguageModelV2ToolResultOutput, systemStatus: SystemStatus): Extract<\n LanguageModelV2ToolResultOutput,\n { type: 'content' }\n> {\n if (!output || typeof output !== 'object') {\n return output;\n }\n\n // Convert to content type if not already\n const content: Extract<\n LanguageModelV2ToolResultOutput,\n { type: 'content' }\n > = {\n type: 'content',\n value: [],\n }\n\n if (output.type === 'content') {\n // Already content type\n content.value = output.value;\n } else if (output.type === 'text' || output.type === 'error-text') {\n content.value.push({\n type: 'text',\n text: output.value,\n });\n } else if (output.type === 'json' || output.type === 'error-json') {\n // Convert JSON to content (stringify)\n content.value.push({\n type: 'text',\n text: JSON.stringify(output.value, null, 2),\n });\n }\n\n // Prepend system status as text part\n const systemStatusString = buildSystemStatusFromMetadata(systemStatus);\n\n content.value.unshift({\n type: 'text',\n text: systemStatusString,\n })\n return content;\n}\n\n/**\n * Normalize content to modern array format\n * Converts legacy string content to Array<TextPart | ImagePart | FilePart | ... >\n */\nfunction normalizeMessage(message: ModelMessage): ModelMessage {\n const content = message.content;\n if (typeof content === 'string') {\n // Legacy string format → convert to TextPart array\n message.content = [\n {\n type: 'text',\n text: content,\n },\n ];\n }\n\n // Already array format (or other object)\n return message;\n}\n\n/**\n * Create AI stream with Sylphx tools pre-configured\n * Uses manual loop to control message history with timestamps\n */\nexport async function* createAIStream(\n options: CreateAIStreamOptions\n): AsyncIterable<StreamChunk> {\n const {\n systemPrompt = getSystemPrompt(),\n model,\n messages: initialMessages,\n abortSignal,\n onStepFinish,\n onPrepareMessages,\n onTransformToolResult,\n } = options;\n\n // Normalize all messages to array format\n let messageHistory = initialMessages.map(normalizeMessage);\n\n let stepNumber = 0;\n const MAX_STEPS = 1000;\n\n while (stepNumber < MAX_STEPS) {\n // Emit step-start event\n yield {\n type: 'step-start' as any,\n stepNumber,\n };\n\n // Prepare messages for this step (caller can inject context)\n const preparedMessages = onPrepareMessages\n ? onPrepareMessages(messageHistory, stepNumber)\n : messageHistory;\n\n // Call AI SDK with single step\n const { fullStream, response, finishReason, usage, content } = streamText({\n model,\n messages: preparedMessages,\n system: systemPrompt,\n tools: getAISDKTools(),\n abortSignal, // Pass abort signal to allow cancellation\n // Don't handle errors here - let them propagate to the caller\n // onError callback is for non-fatal errors, fatal ones should throw\n });\n\n // Stream all chunks to user\n for await (const chunk of fullStream) {\n switch (chunk.type) {\n case 'text-start':\n yield { type: 'text-start' };\n break;\n\n case 'text-delta':\n yield { type: 'text-delta', textDelta: chunk.text };\n break;\n\n case 'text-end':\n yield { type: 'text-end' };\n break;\n\n case 'reasoning-start':\n yield { type: 'reasoning-start' };\n break;\n\n case 'reasoning-delta':\n yield { type: 'reasoning-delta', textDelta: chunk.text };\n break;\n\n case 'reasoning-end':\n yield { type: 'reasoning-end' };\n break;\n\n case 'tool-call':\n yield {\n type: 'tool-call',\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n args: chunk.input,\n };\n break;\n\n case 'tool-input-start':\n yield {\n type: 'tool-input-start',\n toolCallId: chunk.id,\n toolName: chunk.toolName,\n };\n break;\n\n case 'tool-input-delta':\n yield {\n type: 'tool-input-delta',\n toolCallId: chunk.id,\n argsTextDelta: chunk.delta,\n };\n break;\n\n case 'tool-input-end':\n yield {\n type: 'tool-input-end',\n toolCallId: chunk.id,\n };\n break;\n\n case 'tool-result':\n yield {\n type: 'tool-result',\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n result: chunk.output,\n };\n break;\n\n case 'finish':\n yield {\n type: 'finish',\n finishReason: chunk.finishReason,\n usage: {\n promptTokens: chunk.totalUsage.inputTokens ?? 0,\n completionTokens: chunk.totalUsage.outputTokens ?? 0,\n totalTokens: chunk.totalUsage.totalTokens ?? 0,\n },\n };\n break;\n\n case 'error':\n yield {\n type: 'error',\n error: chunk.error instanceof Error ? chunk.error.message : String(chunk.error),\n };\n break;\n\n case 'tool-error':\n yield {\n type: 'tool-error',\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n error: chunk.error instanceof Error ? chunk.error.message : String(chunk.error),\n };\n break;\n\n case 'abort':\n yield {\n type: 'error',\n error: 'Stream aborted',\n };\n break;\n\n default:\n break;\n }\n }\n\n // Call onStepFinish callback if provided\n if (onStepFinish) {\n const stepInfo: StepInfo = {\n finishReason: await finishReason,\n usage: {\n promptTokens: (await usage).inputTokens ?? 0,\n completionTokens: (await usage).outputTokens ?? 0,\n totalTokens: (await usage).totalTokens ?? 0,\n },\n content: await content,\n };\n onStepFinish(stepInfo);\n }\n\n // Save LLM response messages to history\n const responseMessages = (await response).messages;\n\n for (const msg of responseMessages) {\n // Transform tool result output if callback provided\n if (msg.role === 'tool' && onTransformToolResult) {\n messageHistory.push({\n ...msg,\n content: msg.content.map((part) => ({\n ...part,\n output: onTransformToolResult(part.output, part.toolName),\n })),\n });\n } else {\n messageHistory.push(msg);\n }\n }\n\n const currentFinishReason = await finishReason;\n\n // Emit step-end event\n yield {\n type: 'step-end' as any,\n stepNumber,\n finishReason: currentFinishReason,\n };\n\n // Check if we should continue the loop\n if (currentFinishReason !== 'tool-calls') {\n // No more tool calls, exit loop\n break;\n }\n\n stepNumber++;\n }\n}\n\n/**\n * Export helper functions\n */\nexport { getAISDKTools, getSystemStatus, buildSystemStatusFromMetadata, injectSystemStatusToOutput, buildTodoContext, normalizeMessage };\n",
6
6
  "/**\n * Todo Context Builder\n * Builds todo reminder context for LLM messages\n */\n\nimport type { Todo } from '../types/todo.types.js';\n\n/**\n * Build todo context string from todos\n */\nexport function buildTodoContext(todos: Todo[]): string {\n // Filter active todos (exclude completed and removed)\n const activeTodos = todos.filter((t) => t.status !== 'completed' && t.status !== 'removed');\n\n // If no active todos, return minimal reminder\n if (activeTodos.length === 0) {\n return '<todo_reminder>For multi-step tasks, use updateTodos tool</todo_reminder>';\n }\n\n // Sort by ordering ASC, id ASC (first added = first to do)\n const sortedTodos = [...activeTodos].sort((a, b) => {\n if (a.ordering !== b.ordering) {\n return a.ordering - b.ordering;\n }\n return a.id - b.id;\n });\n\n const pendingTodos = sortedTodos.filter((t) => t.status === 'pending');\n const inProgressTodos = sortedTodos.filter((t) => t.status === 'in_progress');\n\n const todoLines: string[] = ['<pending_tasks>'];\n\n if (inProgressTodos.length > 0) {\n todoLines.push('In Progress:');\n inProgressTodos.forEach((t) => todoLines.push(` - [${t.id}] ${t.activeForm}`));\n }\n\n if (pendingTodos.length > 0) {\n todoLines.push('Pending:');\n pendingTodos.forEach((t) => todoLines.push(` - [${t.id}] ${t.content}`));\n }\n\n todoLines.push('</pending_tasks>');\n\n return todoLines.join('\\n');\n}\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "BE3FD3A142B94A3564756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "9A0CBF72C3074EE364756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -0,0 +1,3 @@
1
+ import{aa as V}from"./chunk-8ep9gk6d.js";import{ba as U}from"./chunk-f676awyz.js";import{Sb as R}from"./chunk-f9yb2zk3.js";var E=R((M,Q)=>{var{defineProperty:K,getOwnPropertyDescriptor:W,getOwnPropertyNames:X}=Object,Y=Object.prototype.hasOwnProperty,Z=(q,v)=>{for(var z in v)K(q,z,{get:v[z],enumerable:!0})},$=(q,v,z,F)=>{if(v&&typeof v==="object"||typeof v==="function"){for(let G of X(v))if(!Y.call(q,G)&&G!==z)K(q,G,{get:()=>v[G],enumerable:!(F=W(v,G))||F.enumerable})}return q},A=(q)=>$(K({},"__esModule",{value:!0}),q),L={};Z(L,{refreshToken:()=>D});Q.exports=A(L);var H=U(),B=V();async function D(){let{projectId:q,teamId:v}=(0,B.findProjectInfo)(),z=(0,B.loadToken)(q);if(!z||(0,B.isExpired)((0,B.getTokenPayload)(z.token))){let F=(0,B.getVercelCliToken)();if(!F)throw new H.VercelOidcTokenError("Failed to refresh OIDC token: login to vercel cli");if(!q)throw new H.VercelOidcTokenError("Failed to refresh OIDC token: project id not found");if(z=await(0,B.getVercelOidcToken)(F,q,v),!z)throw new H.VercelOidcTokenError("Failed to refresh OIDC token");(0,B.saveToken)(z,q)}process.env.VERCEL_OIDC_TOKEN=z.token;return}});export default E();
2
+
3
+ //# debugId=BEA32655A2D5EDDC64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_exports = {};\n__export(token_exports, {\n refreshToken: () => refreshToken\n});\nmodule.exports = __toCommonJS(token_exports);\nvar import_token_error = require(\"./token-error\");\nvar import_token_util = require(\"./token-util\");\nasync function refreshToken() {\n const { projectId, teamId } = (0, import_token_util.findProjectInfo)();\n let maybeToken = (0, import_token_util.loadToken)(projectId);\n if (!maybeToken || (0, import_token_util.isExpired)((0, import_token_util.getTokenPayload)(maybeToken.token))) {\n const authToken = (0, import_token_util.getVercelCliToken)();\n if (!authToken) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: login to vercel cli\"\n );\n }\n if (!projectId) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: project id not found\"\n );\n }\n maybeToken = await (0, import_token_util.getVercelOidcToken)(authToken, projectId, teamId);\n if (!maybeToken) {\n throw new import_token_error.VercelOidcTokenError(\"Failed to refresh OIDC token\");\n }\n (0, import_token_util.saveToken)(maybeToken, projectId);\n }\n process.env.VERCEL_OIDC_TOKEN = maybeToken.token;\n return;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n refreshToken\n});\n"
6
6
  ],
7
- "mappings": "qJACA,FAAuB,SAAnB,EAC0B,yBAA1B,EAC2B,oBAA3B,GADmB,OAEnB,EAAe,OAAO,UAAU,eAChC,EAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,EAAkB,CAAI,EACpC,GAAI,CAAC,EAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,EAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAgB,CAAC,EACrB,EAAS,EAAe,CACtB,aAAc,IAAM,CACtB,CAAC,EACD,EAAO,QAAU,EAAa,CAAa,EAC3C,IAAI,MACA,MACJ,eAAe,CAAY,EAAG,CAC5B,IAAQ,YAAW,WAAY,EAAG,EAAkB,iBAAiB,EACjE,GAAc,EAAG,EAAkB,WAAW,CAAS,EAC3D,GAAI,CAAC,IAAe,EAAG,EAAkB,YAAY,EAAG,EAAkB,iBAAiB,EAAW,KAAK,CAAC,EAAG,CAC7G,IAAM,GAAa,EAAG,EAAkB,mBAAmB,EAC3D,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,mDACF,EAEF,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,oDACF,EAGF,GADA,EAAa,MAAO,EAAG,EAAkB,oBAAoB,EAAW,EAAW,CAAM,EACrF,CAAC,EACH,MAAM,IAAI,EAAmB,qBAAqB,8BAA8B,GAEjF,EAAG,EAAkB,WAAW,EAAY,CAAS,EAExD,QAAQ,IAAI,kBAAoB,EAAW,MAC3C",
8
- "debugId": "C2AB45DE24B1888864756E2164756E21",
7
+ "mappings": "uJACA,FAAuB,SAAnB,EAC0B,yBAA1B,EAC2B,oBAA3B,GADmB,OAEnB,EAAe,OAAO,UAAU,eAChC,EAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,EAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,EAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,EAAkB,CAAI,EACpC,GAAI,CAAC,EAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,EAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,EAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,EAAe,CAAC,IAAQ,EAAY,EAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,EAAgB,CAAC,EACrB,EAAS,EAAe,CACtB,aAAc,IAAM,CACtB,CAAC,EACD,EAAO,QAAU,EAAa,CAAa,EAC3C,IAAI,MACA,MACJ,eAAe,CAAY,EAAG,CAC5B,IAAQ,YAAW,WAAY,EAAG,EAAkB,iBAAiB,EACjE,GAAc,EAAG,EAAkB,WAAW,CAAS,EAC3D,GAAI,CAAC,IAAe,EAAG,EAAkB,YAAY,EAAG,EAAkB,iBAAiB,EAAW,KAAK,CAAC,EAAG,CAC7G,IAAM,GAAa,EAAG,EAAkB,mBAAmB,EAC3D,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,mDACF,EAEF,GAAI,CAAC,EACH,MAAM,IAAI,EAAmB,qBAC3B,oDACF,EAGF,GADA,EAAa,MAAO,EAAG,EAAkB,oBAAoB,EAAW,EAAW,CAAM,EACrF,CAAC,EACH,MAAM,IAAI,EAAmB,qBAAqB,8BAA8B,GAEjF,EAAG,EAAkB,WAAW,EAAY,CAAS,EAExD,QAAQ,IAAI,kBAAoB,EAAW,MAC3C",
8
+ "debugId": "BEA32655A2D5EDDC64756E2164756E21",
9
9
  "names": []
10
10
  }