@sylphx/flow 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -23
- package/dist/{chunk-zn6bhyhc.js → chunk-7d3pwe6x.js} +2 -2
- package/dist/{chunk-zn6bhyhc.js.map → chunk-7d3pwe6x.js.map} +1 -1
- package/dist/{chunk-j08f9mnk.js → chunk-84x5fbqe.js} +2 -2
- package/dist/{chunk-j08f9mnk.js.map → chunk-84x5fbqe.js.map} +1 -1
- package/dist/{chunk-y21bxgfy.js → chunk-90tmk3w7.js} +3 -3
- package/dist/{chunk-y21bxgfy.js.map → chunk-90tmk3w7.js.map} +1 -1
- package/dist/{chunk-3nkp0s1j.js → chunk-bmfd3jzw.js} +2 -2
- package/dist/{chunk-3nkp0s1j.js.map → chunk-bmfd3jzw.js.map} +1 -1
- package/dist/{chunk-y6n0153m.js → chunk-cshxyqvc.js} +2 -2
- package/dist/{chunk-y6n0153m.js.map → chunk-cshxyqvc.js.map} +1 -1
- package/dist/{chunk-7wpv8zs7.js → chunk-d6cgnb03.js} +3 -3
- package/dist/{chunk-7wpv8zs7.js.map → chunk-d6cgnb03.js.map} +1 -1
- package/dist/{chunk-qb07mbyd.js → chunk-fphp2agv.js} +3 -3
- package/dist/{chunk-qb07mbyd.js.map → chunk-fphp2agv.js.map} +1 -1
- package/dist/{chunk-h9kssnyy.js → chunk-mbhd0326.js} +2 -2
- package/dist/{chunk-h9kssnyy.js.map → chunk-mbhd0326.js.map} +1 -1
- package/dist/{chunk-2cevqakq.js → chunk-nmg7vhjj.js} +2 -2
- package/dist/{chunk-2cevqakq.js.map → chunk-nmg7vhjj.js.map} +1 -1
- package/dist/{chunk-x46tzzn9.js → chunk-pxh2vz4k.js} +2 -2
- package/dist/{chunk-x46tzzn9.js.map → chunk-pxh2vz4k.js.map} +1 -1
- package/dist/{chunk-1ph5m7yh.js → chunk-vttjr3cg.js} +3 -3
- package/dist/{chunk-1ph5m7yh.js.map → chunk-vttjr3cg.js.map} +1 -1
- package/dist/chunk-zwsaqnr2.js +3 -0
- package/dist/chunk-zwsaqnr2.js.map +10 -0
- package/dist/{chunk-jgkkyjtr.js → chunk-zx3gqx7b.js} +3 -3
- package/dist/{chunk-jgkkyjtr.js.map → chunk-zx3gqx7b.js.map} +1 -1
- package/dist/index.js +205 -204
- package/dist/index.js.map +6 -5
- package/package.json +1 -1
- package/dist/chunk-02jj9ahn.js +0 -5
- package/dist/chunk-02jj9ahn.js.map +0 -10
- package/dist/chunk-7wd1res1.js +0 -3
- package/dist/chunk-7wd1res1.js.map +0 -10
- package/dist/chunk-pcm6twpw.js +0 -3
- package/dist/chunk-pcm6twpw.js.map +0 -10
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ User: "I'm using TypeScript + React + Next.js 14 App Router,
|
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
# What you type with Sylphx Flow ✅
|
|
59
|
-
|
|
59
|
+
sylphx-flow run "implement authentication"
|
|
60
60
|
|
|
61
61
|
# You get: Production-ready code that:
|
|
62
62
|
✅ Uses YOUR tech stack (auto-detected)
|
|
@@ -70,28 +70,39 @@ npx @sylphx/flow run "implement authentication"
|
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
## 🚀
|
|
73
|
+
## 🚀 Installation
|
|
74
74
|
|
|
75
|
-
###
|
|
75
|
+
### Install globally (required)
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
|
|
78
|
+
# Using npm
|
|
79
|
+
npm install -g @sylphx/flow
|
|
80
|
+
|
|
81
|
+
# Using bun
|
|
82
|
+
bun install -g @sylphx/flow
|
|
79
83
|
```
|
|
80
84
|
|
|
81
|
-
|
|
85
|
+
### Initialize your project
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
sylphx-flow init
|
|
89
|
+
```
|
|
82
90
|
|
|
83
|
-
|
|
91
|
+
Done. Everything configured. Never think about setup again.
|
|
84
92
|
|
|
85
|
-
###
|
|
93
|
+
### Usage
|
|
86
94
|
|
|
87
95
|
```bash
|
|
88
96
|
# Direct prompt
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
sylphx-flow run "add password reset"
|
|
98
|
+
sylphx-flow run "review for security" --agent reviewer
|
|
99
|
+
sylphx-flow run "write API docs" --agent writer
|
|
100
|
+
|
|
101
|
+
# Interactive AI chat
|
|
102
|
+
sylphx-flow code
|
|
92
103
|
|
|
93
|
-
# Or interactive mode
|
|
94
|
-
|
|
104
|
+
# Or interactive build mode
|
|
105
|
+
sylphx-flow run
|
|
95
106
|
> implement OAuth
|
|
96
107
|
> add tests
|
|
97
108
|
> optimize performance
|
|
@@ -205,25 +216,27 @@ const result = await pipe(
|
|
|
205
216
|
### Install & Setup
|
|
206
217
|
|
|
207
218
|
```bash
|
|
208
|
-
# 1.
|
|
209
|
-
|
|
219
|
+
# 1. Install globally
|
|
220
|
+
npm install -g @sylphx/flow
|
|
221
|
+
# or: bun install -g @sylphx/flow
|
|
222
|
+
|
|
223
|
+
# 2. Initialize (one time)
|
|
224
|
+
sylphx-flow init
|
|
210
225
|
|
|
211
|
-
#
|
|
226
|
+
# 3. (Optional) Set OpenAI-compatible API key to use vector search
|
|
212
227
|
# Without key: Uses TF-IDF search (fast, free)
|
|
213
228
|
# With key: Auto-upgrades to vector search (higher quality)
|
|
214
229
|
export OPENAI_API_KEY="your-key-here" # Auto-switches search mode
|
|
215
230
|
```
|
|
216
231
|
|
|
217
|
-
> **💡 Want the latest unreleased features?** Use `npx github:sylphxltd/flow` instead.
|
|
218
|
-
|
|
219
232
|
### Start Building
|
|
220
233
|
|
|
221
234
|
```bash
|
|
222
235
|
# Method 1: Direct command
|
|
223
|
-
|
|
236
|
+
sylphx-flow run "implement user registration"
|
|
224
237
|
|
|
225
238
|
# Method 2: Interactive mode (recommended)
|
|
226
|
-
|
|
239
|
+
sylphx-flow run
|
|
227
240
|
# Then just chat naturally:
|
|
228
241
|
# > add authentication
|
|
229
242
|
# > review the code
|
|
@@ -500,14 +513,17 @@ flow codebase reindex # After major code changes
|
|
|
500
513
|
### Setup for Claude Code
|
|
501
514
|
|
|
502
515
|
```bash
|
|
503
|
-
# 1.
|
|
504
|
-
|
|
516
|
+
# 1. Install globally
|
|
517
|
+
npm install -g @sylphx/flow
|
|
518
|
+
|
|
519
|
+
# 2. Initialize
|
|
520
|
+
sylphx-flow init
|
|
505
521
|
|
|
506
|
-
#
|
|
522
|
+
# 3. (Optional) Add OpenAI-compatible key to .claude/mcp.json
|
|
507
523
|
# Enhances search quality with vector embeddings
|
|
508
524
|
# Works without API key using TF-IDF
|
|
509
525
|
|
|
510
|
-
#
|
|
526
|
+
# 4. Restart Claude Code
|
|
511
527
|
# Done! All tools available.
|
|
512
528
|
```
|
|
513
529
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{h as v}from"./chunk-mbhd0326.js";import{l as q}from"./chunk-84x5fbqe.js";import"./chunk-pxh2vz4k.js";import w from"node:fs/promises";import B from"node:path";var I=(...b)=>B.join(...b),J=(...b)=>B.resolve(...b),K=(b)=>B.dirname(b),L=(b,k)=>B.basename(b,k),M=(b)=>B.extname(b),N=async(b)=>{return q(async()=>{return await w.readFile(b,"utf-8")},(k)=>v(`Failed to read file: ${b}`,b,"read",{cause:k instanceof Error?k:void 0}))},O=async(b,k)=>{return q(async()=>{await w.writeFile(b,k,"utf-8")},(z)=>v(`Failed to write file: ${b}`,b,"write",{cause:z instanceof Error?z:void 0}))},Q=async(b)=>{return q(async()=>{await w.unlink(b)},(k)=>v(`Failed to delete file: ${b}`,b,"delete",{cause:k instanceof Error?k:void 0}))},R=async(b,k)=>{return q(async()=>{await w.mkdir(b,{recursive:k?.recursive??!0})},(z)=>v(`Failed to create directory: ${b}`,b,"create",{cause:z instanceof Error?z:void 0}))},T=async(b)=>{return q(async()=>{try{return await w.access(b),!0}catch{return!1}},(k)=>v(`Failed to check if path exists: ${b}`,b,"stat",{cause:k instanceof Error?k:void 0}))},U=async(b)=>{return q(async()=>{return await w.readdir(b)},(k)=>v(`Failed to read directory: ${b}`,b,"read",{cause:k instanceof Error?k:void 0}))},V=async(b)=>{return q(async()=>{let k=await w.stat(b);return{isFile:k.isFile(),isDirectory:k.isDirectory(),size:k.size}},(k)=>v(`Failed to get stats for: ${b}`,b,"stat",{cause:k instanceof Error?k:void 0}))};export{O as writeFile,J as resolvePath,N as readFile,U as readDirectory,T as pathExists,I as joinPath,V as getStats,M as extname,K as dirname,Q as deleteFile,R as createDirectory,L as basename};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=9731291E0388AEE064756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"/**\n * Functional composable for file system operations\n * Returns Result instead of throwing exceptions\n *\n * DESIGN RATIONALE:\n * - Explicit error handling\n * - Composable file operations\n * - Type-safe path handling\n * - Separation of concerns (pure path operations vs side effects)\n */\n\nimport fsPromises from 'node:fs/promises';\nimport path from 'node:path';\nimport type { FileSystemError } from '../../core/functional/error-types.js';\nimport { fileSystemError } from '../../core/functional/error-types.js';\nimport type { Result } from '../../core/functional/result.js';\nimport { tryCatchAsync } from '../../core/functional/result.js';\n\n/**\n * Pure path operations (no side effects)\n */\n\nexport const joinPath = (...segments: string[]): string => path.join(...segments);\n\nexport const resolvePath = (...segments: string[]): string => path.resolve(...segments);\n\nexport const dirname = (filePath: string): string => path.dirname(filePath);\n\nexport const basename = (filePath: string, ext?: string): string => path.basename(filePath, ext);\n\nexport const extname = (filePath: string): string => path.extname(filePath);\n\n/**\n * File system operations (side effects, return Result)\n */\n\nexport const readFile = async (filePath: string): Promise<Result<string, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n return await fsPromises.readFile(filePath, 'utf-8');\n },\n (error) =>\n fileSystemError(`Failed to read file: ${filePath}`, filePath, 'read', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const writeFile = async (\n filePath: string,\n content: string\n): Promise<Result<void, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n await fsPromises.writeFile(filePath, content, 'utf-8');\n },\n (error) =>\n fileSystemError(`Failed to write file: ${filePath}`, filePath, 'write', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const deleteFile = async (filePath: string): Promise<Result<void, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n await fsPromises.unlink(filePath);\n },\n (error) =>\n fileSystemError(`Failed to delete file: ${filePath}`, filePath, 'delete', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const createDirectory = async (\n dirPath: string,\n options?: { recursive?: boolean }\n): Promise<Result<void, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n await fsPromises.mkdir(dirPath, { recursive: options?.recursive ?? true });\n },\n (error) =>\n fileSystemError(`Failed to create directory: ${dirPath}`, dirPath, 'create', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const pathExists = async (filePath: string): Promise<Result<boolean, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n try {\n await fsPromises.access(filePath);\n return true;\n } catch {\n return false;\n }\n },\n (error) =>\n fileSystemError(`Failed to check if path exists: ${filePath}`, filePath, 'stat', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const readDirectory = async (\n dirPath: string\n): Promise<Result<string[], FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n return await fsPromises.readdir(dirPath);\n },\n (error) =>\n fileSystemError(`Failed to read directory: ${dirPath}`, dirPath, 'read', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n\nexport const getStats = async (\n filePath: string\n): Promise<Result<{ isFile: boolean; isDirectory: boolean; size: number }, FileSystemError>> => {\n return tryCatchAsync(\n async () => {\n const stats = await fsPromises.stat(filePath);\n return {\n isFile: stats.isFile(),\n isDirectory: stats.isDirectory(),\n size: stats.size,\n };\n },\n (error) =>\n fileSystemError(`Failed to get stats for: ${filePath}`, filePath, 'stat', {\n cause: error instanceof Error ? error : undefined,\n })\n );\n};\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "wHAWA,0BACA,mBAUO,IAAM,EAAW,IAAI,IAA+B,EAAK,KAAK,GAAG,CAAQ,EAEnE,EAAc,IAAI,IAA+B,EAAK,QAAQ,GAAG,CAAQ,EAEzE,EAAU,CAAC,IAA6B,EAAK,QAAQ,CAAQ,EAE7D,EAAW,CAAC,EAAkB,IAAyB,EAAK,SAAS,EAAU,CAAG,EAElF,EAAU,CAAC,IAA6B,EAAK,QAAQ,CAAQ,EAM7D,EAAW,MAAO,IAA+D,CAC5F,OAAO,EACL,SAAY,CACV,OAAO,MAAM,EAAW,SAAS,EAAU,OAAO,GAEpD,CAAC,IACC,EAAgB,wBAAwB,IAAY,EAAU,OAAQ,CACpE,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAY,MACvB,EACA,IAC2C,CAC3C,OAAO,EACL,SAAY,CACV,MAAM,EAAW,UAAU,EAAU,EAAS,OAAO,GAEvD,CAAC,IACC,EAAgB,yBAAyB,IAAY,EAAU,QAAS,CACtE,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAa,MAAO,IAA6D,CAC5F,OAAO,EACL,SAAY,CACV,MAAM,EAAW,OAAO,CAAQ,GAElC,CAAC,IACC,EAAgB,0BAA0B,IAAY,EAAU,SAAU,CACxE,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAkB,MAC7B,EACA,IAC2C,CAC3C,OAAO,EACL,SAAY,CACV,MAAM,EAAW,MAAM,EAAS,CAAE,UAAW,GAAS,WAAa,EAAK,CAAC,GAE3E,CAAC,IACC,EAAgB,+BAA+B,IAAW,EAAS,SAAU,CAC3E,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAa,MAAO,IAAgE,CAC/F,OAAO,EACL,SAAY,CACV,GAAI,CAEF,OADA,MAAM,EAAW,OAAO,CAAQ,EACzB,GACP,KAAM,CACN,MAAO,KAGX,CAAC,IACC,EAAgB,mCAAmC,IAAY,EAAU,OAAQ,CAC/E,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAgB,MAC3B,IAC+C,CAC/C,OAAO,EACL,SAAY,CACV,OAAO,MAAM,EAAW,QAAQ,CAAO,GAEzC,CAAC,IACC,EAAgB,6BAA6B,IAAW,EAAS,OAAQ,CACvE,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL,GAGW,EAAW,MACtB,IAC8F,CAC9F,OAAO,EACL,SAAY,CACV,IAAM,EAAQ,MAAM,EAAW,KAAK,CAAQ,EAC5C,MAAO,CACL,OAAQ,EAAM,OAAO,EACrB,YAAa,EAAM,YAAY,EAC/B,KAAM,EAAM,IACd,GAEF,CAAC,IACC,EAAgB,4BAA4B,IAAY,EAAU,OAAQ,CACxE,MAAO,aAAiB,MAAQ,EAAQ,MAC1C,CAAC,CACL",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "9731291E0388AEE064756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var k=(h)=>({_tag:"Success",value:h}),q=(h)=>({_tag:"Failure",error:h});var w=(h,j=(b)=>b)=>{try{return k(h())}catch(b){return q(j(b))}},x=async(h,j=(b)=>b)=>{try{let b=await h();return k(b)}catch(b){return q(j(b))}};
|
|
2
|
-
export{k as
|
|
2
|
+
export{k as i,q as j,w as k,x as l};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=E40E0A4FD93CE92C64756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"/**\n * Result type for functional error handling\n * Represents success or failure without exceptions\n *\n * DESIGN RATIONALE:\n * - Explicit error handling at type level\n * - Composable through map/flatMap\n * - Forces caller to handle errors\n * - No hidden control flow (no thrown exceptions)\n */\n\nexport type Result<T, E = Error> = Success<T> | Failure<E>;\n\nexport interface Success<T> {\n readonly _tag: 'Success';\n readonly value: T;\n}\n\nexport interface Failure<E> {\n readonly _tag: 'Failure';\n readonly error: E;\n}\n\n/**\n * Constructors\n */\n\nexport const success = <T>(value: T): Success<T> => ({\n _tag: 'Success',\n value,\n});\n\nexport const failure = <E>(error: E): Failure<E> => ({\n _tag: 'Failure',\n error,\n});\n\n/**\n * Type guards\n */\n\nexport const isSuccess = <T, E>(result: Result<T, E>): result is Success<T> =>\n result._tag === 'Success';\n\nexport const isFailure = <T, E>(result: Result<T, E>): result is Failure<E> =>\n result._tag === 'Failure';\n\n/**\n * Transformations\n */\n\n/**\n * Transform the success value\n * Failure propagates unchanged\n */\nexport const map =\n <T, U, E>(fn: (value: T) => U) =>\n (result: Result<T, E>): Result<U, E> => {\n if (isSuccess(result)) {\n return success(fn(result.value));\n }\n return result;\n };\n\n/**\n * Transform the success value with a function that returns a Result\n * Enables chaining operations that can fail\n * Failure propagates unchanged\n */\nexport const flatMap =\n <T, U, E>(fn: (value: T) => Result<U, E>) =>\n (result: Result<T, E>): Result<U, E> => {\n if (isSuccess(result)) {\n return fn(result.value);\n }\n return result;\n };\n\n/**\n * Transform the error\n * Success propagates unchanged\n */\nexport const mapError =\n <T, E, F>(fn: (error: E) => F) =>\n (result: Result<T, E>): Result<T, F> => {\n if (isFailure(result)) {\n return failure(fn(result.error));\n }\n return result;\n };\n\n/**\n * Extract value or provide default\n */\nexport const getOrElse =\n <T>(defaultValue: T) =>\n <E>(result: Result<T, E>): T => {\n if (isSuccess(result)) {\n return result.value;\n }\n return defaultValue;\n };\n\n/**\n * Extract value or compute default\n */\nexport const getOrElseLazy =\n <T>(fn: () => T) =>\n <E>(result: Result<T, E>): T => {\n if (isSuccess(result)) {\n return result.value;\n }\n return fn();\n };\n\n/**\n * Pattern matching\n */\nexport const match =\n <T, E, U>(onSuccess: (value: T) => U, onFailure: (error: E) => U) =>\n (result: Result<T, E>): U => {\n if (isSuccess(result)) {\n return onSuccess(result.value);\n }\n return onFailure(result.error);\n };\n\n/**\n * Convert thrown exception to Result\n */\nexport const tryCatch = <T, E = Error>(\n fn: () => T,\n onError: (error: unknown) => E = (error: unknown) => error as E\n): Result<T, E> => {\n try {\n return success(fn());\n } catch (error) {\n return failure(onError(error));\n }\n};\n\n/**\n * Convert Promise to Result\n */\nexport const tryCatchAsync = async <T, E = Error>(\n fn: () => Promise<T>,\n onError: (error: unknown) => E = (error: unknown) => error as E\n): Promise<Result<T, E>> => {\n try {\n const value = await fn();\n return success(value);\n } catch (error) {\n return failure(onError(error));\n }\n};\n\n/**\n * Combine multiple Results into a single Result containing an array\n * Fails if any Result is a Failure (short-circuits on first failure)\n */\nexport const all = <T, E>(results: Result<T, E>[]): Result<T[], E> => {\n const values: T[] = [];\n\n for (const result of results) {\n if (isFailure(result)) {\n return result;\n }\n values.push(result.value);\n }\n\n return success(values);\n};\n\n/**\n * Run side effect for success case\n */\nexport const tap =\n <T, E>(fn: (value: T) => void) =>\n (result: Result<T, E>): Result<T, E> => {\n if (isSuccess(result)) {\n fn(result.value);\n }\n return result;\n };\n\n/**\n * Run side effect for failure case\n */\nexport const tapError =\n <T, E>(fn: (error: E) => void) =>\n (result: Result<T, E>): Result<T, E> => {\n if (isFailure(result)) {\n fn(result.error);\n }\n return result;\n };\n\n/**\n * Functional pipe for composing Result transformations\n */\nexport const pipe =\n <T, E>(result: Result<T, E>) =>\n <U>(fn: (result: Result<T, E>) => U): U =>\n fn(result);\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": "AA2BO,IAAM,EAAU,CAAI,KAA0B,CACnD,KAAM,UACN,OACF,GAEa,EAAU,CAAI,KAA0B,CACnD,KAAM,UACN,OACF,GA+FO,IAAM,EAAW,CACtB,EACA,EAAiC,CAAC,IAAmB,IACpC,CACjB,GAAI,CACF,OAAO,EAAQ,EAAG,CAAC,EACnB,MAAO,EAAO,CACd,OAAO,EAAQ,EAAQ,CAAK,CAAC,IAOpB,EAAgB,MAC3B,EACA,EAAiC,CAAC,IAAmB,IAC3B,CAC1B,GAAI,CACF,IAAM,EAAQ,MAAM,EAAG,EACvB,OAAO,EAAQ,CAAK,EACpB,MAAO,EAAO,CACd,OAAO,EAAQ,EAAQ,CAAK,CAAC",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "E40E0A4FD93CE92C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{F as V,G as C$,H as sI}from"./chunk-pxh2vz4k.js";var R=V((W2)=>{var H_=Symbol.for("yaml.alias"),Uz=Symbol.for("yaml.document"),cI=Symbol.for("yaml.map"),_z=Symbol.for("yaml.pair"),V_=Symbol.for("yaml.scalar"),lI=Symbol.for("yaml.seq"),S$=Symbol.for("yaml.node.type"),q2=($)=>!!$&&typeof $==="object"&&$[S$]===H_,j2=($)=>!!$&&typeof $==="object"&&$[S$]===Uz,S2=($)=>!!$&&typeof $==="object"&&$[S$]===cI,J2=($)=>!!$&&typeof $==="object"&&$[S$]===_z,vz=($)=>!!$&&typeof $==="object"&&$[S$]===V_,G2=($)=>!!$&&typeof $==="object"&&$[S$]===lI;function Oz($){if($&&typeof $==="object")switch($[S$]){case cI:case lI:return!0}return!1}function X2($){if($&&typeof $==="object")switch($[S$]){case H_:case cI:case V_:case lI:return!0}return!1}var L2=($)=>(vz($)||Oz($))&&!!$.anchor;W2.ALIAS=H_;W2.DOC=Uz;W2.MAP=cI;W2.NODE_TYPE=S$;W2.PAIR=_z;W2.SCALAR=V_;W2.SEQ=lI;W2.hasAnchor=L2;W2.isAlias=q2;W2.isCollection=Oz;W2.isDocument=j2;W2.isMap=S2;W2.isNode=X2;W2.isPair=J2;W2.isScalar=vz;W2.isSeq=G2});var wu=V((m2)=>{var l=R(),d=Symbol("break visit"),zz=Symbol("skip children"),O$=Symbol("remove node");function nI($,r){let I=wz(r);if(l.isDocument($)){if(wr(null,$.contents,I,Object.freeze([$]))===O$)$.contents=null}else wr(null,$,I,Object.freeze([]))}nI.BREAK=d;nI.SKIP=zz;nI.REMOVE=O$;function wr($,r,I,b){let u=Dz($,r,I,b);if(l.isNode(u)||l.isPair(u))return Nz($,b,u),wr($,u,I,b);if(typeof u!=="symbol"){if(l.isCollection(r)){b=Object.freeze(b.concat(r));for(let g=0;g<r.items.length;++g){let U=wr(g,r.items[g],I,b);if(typeof U==="number")g=U-1;else if(U===d)return d;else if(U===O$)r.items.splice(g,1),g-=1}}else if(l.isPair(r)){b=Object.freeze(b.concat(r));let g=wr("key",r.key,I,b);if(g===d)return d;else if(g===O$)r.key=null;let U=wr("value",r.value,I,b);if(U===d)return d;else if(U===O$)r.value=null}}return u}async function iI($,r){let I=wz(r);if(l.isDocument($)){if(await Dr(null,$.contents,I,Object.freeze([$]))===O$)$.contents=null}else await Dr(null,$,I,Object.freeze([]))}iI.BREAK=d;iI.SKIP=zz;iI.REMOVE=O$;async function Dr($,r,I,b){let u=await Dz($,r,I,b);if(l.isNode(u)||l.isPair(u))return Nz($,b,u),Dr($,u,I,b);if(typeof u!=="symbol"){if(l.isCollection(r)){b=Object.freeze(b.concat(r));for(let g=0;g<r.items.length;++g){let U=await Dr(g,r.items[g],I,b);if(typeof U==="number")g=U-1;else if(U===d)return d;else if(U===O$)r.items.splice(g,1),g-=1}}else if(l.isPair(r)){b=Object.freeze(b.concat(r));let g=await Dr("key",r.key,I,b);if(g===d)return d;else if(g===O$)r.key=null;let U=await Dr("value",r.value,I,b);if(U===d)return d;else if(U===O$)r.value=null}}return u}function wz($){if(typeof $==="object"&&($.Collection||$.Node||$.Value))return Object.assign({Alias:$.Node,Map:$.Node,Scalar:$.Node,Seq:$.Node},$.Value&&{Map:$.Value,Scalar:$.Value,Seq:$.Value},$.Collection&&{Map:$.Collection,Seq:$.Collection},$);return $}function Dz($,r,I,b){if(typeof I==="function")return I($,r,b);if(l.isMap(r))return I.Map?.($,r,b);if(l.isSeq(r))return I.Seq?.($,r,b);if(l.isPair(r))return I.Pair?.($,r,b);if(l.isScalar(r))return I.Scalar?.($,r,b);if(l.isAlias(r))return I.Alias?.($,r,b);return}function Nz($,r,I){let b=r[r.length-1];if(l.isCollection(b))b.items[$]=I;else if(l.isPair(b))if($==="key")b.key=I;else b.value=I;else if(l.isDocument(b))b.contents=I;else{let u=l.isAlias(b)?"alias":"scalar";throw Error(`Cannot replace node with ${u} parent`)}}m2.visit=nI;m2.visitAsync=iI});var Q_=V((i2)=>{var Pz=R(),c2=wu(),l2={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},n2=($)=>$.replace(/[!,[\]{}]/g,(r)=>l2[r]);class s{constructor($,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,$),this.tags=Object.assign({},s.defaultTags,r)}clone(){let $=new s(this.yaml,this.tags);return $.docStart=this.docStart,$}atDocument(){let $=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return $}add($,r){if(this.atNextDocument)this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1;let I=$.trim().split(/[ \t]+/),b=I.shift();switch(b){case"%TAG":{if(I.length!==2){if(r(0,"%TAG directive should contain exactly two parts"),I.length<2)return!1}let[u,g]=I;return this.tags[u]=g,!0}case"%YAML":{if(this.yaml.explicit=!0,I.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[u]=I;if(u==="1.1"||u==="1.2")return this.yaml.version=u,!0;else{let g=/^\d+\.\d+$/.test(u);return r(6,`Unsupported YAML version ${u}`,g),!1}}default:return r(0,`Unknown directive ${b}`,!0),!1}}tagName($,r){if($==="!")return"!";if($[0]!=="!")return r(`Not a valid tag: ${$}`),null;if($[1]==="<"){let g=$.slice(2,-1);if(g==="!"||g==="!!")return r(`Verbatim tags aren't resolved, so ${$} is invalid.`),null;if($[$.length-1]!==">")r("Verbatim tags must end with a >");return g}let[,I,b]=$.match(/^(.*!)([^!]*)$/s);if(!b)r(`The ${$} tag has no suffix`);let u=this.tags[I];if(u)try{return u+decodeURIComponent(b)}catch(g){return r(String(g)),null}if(I==="!")return $;return r(`Could not resolve tag: ${$}`),null}tagString($){for(let[r,I]of Object.entries(this.tags))if($.startsWith(I))return r+n2($.substring(I.length));return $[0]==="!"?$:`!<${$}>`}toString($){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],I=Object.entries(this.tags),b;if($&&I.length>0&&Pz.isNode($.contents)){let u={};c2.visit($.contents,(g,U)=>{if(Pz.isNode(U)&&U.tag)u[U.tag]=!0}),b=Object.keys(u)}else b=[];for(let[u,g]of I){if(u==="!!"&&g==="tag:yaml.org,2002:")continue;if(!$||b.some((U)=>U.startsWith(g)))r.push(`%TAG ${u} ${g}`)}return r.join(`
|
|
2
2
|
`)}}s.defaultYaml={explicit:!1,version:"1.2"};s.defaultTags={"!!":"tag:yaml.org,2002:"};i2.Directives=s});var yI=V((t2)=>{var qz=R(),o2=wu();function d2($){if(/[\x00-\x19\s,[\]{}]/.test($)){let I=`Anchor must not contain whitespace or control characters: ${JSON.stringify($)}`;throw Error(I)}return!0}function jz($){let r=new Set;return o2.visit($,{Value(I,b){if(b.anchor)r.add(b.anchor)}}),r}function Sz($,r){for(let I=1;;++I){let b=`${$}${I}`;if(!r.has(b))return b}}function p2($,r){let I=[],b=new Map,u=null;return{onAnchor:(g)=>{I.push(g),u??(u=jz($));let U=Sz(r,u);return u.add(U),U},setAnchors:()=>{for(let g of I){let U=b.get(g);if(typeof U==="object"&&U.anchor&&(qz.isScalar(U.node)||qz.isCollection(U.node)))U.node.anchor=U.anchor;else{let _=Error("Failed to resolve repeated object (this should not happen)");throw _.source=g,_}}},sourceObjects:b}}t2.anchorIsValid=d2;t2.anchorNames=jz;t2.createNodeAnchors=p2;t2.findNewAnchor=Sz});var A_=V((rP)=>{function Du($,r,I,b){if(b&&typeof b==="object")if(Array.isArray(b))for(let u=0,g=b.length;u<g;++u){let U=b[u],_=Du($,b,String(u),U);if(_===void 0)delete b[u];else if(_!==U)b[u]=_}else if(b instanceof Map)for(let u of Array.from(b.keys())){let g=b.get(u),U=Du($,b,u,g);if(U===void 0)b.delete(u);else if(U!==g)b.set(u,U)}else if(b instanceof Set)for(let u of Array.from(b)){let g=Du($,b,u,u);if(g===void 0)b.delete(u);else if(g!==u)b.delete(u),b.add(g)}else for(let[u,g]of Object.entries(b)){let U=Du($,b,u,g);if(U===void 0)delete b[u];else if(U!==g)b[u]=U}return $.call(r,I,b)}rP.applyReviver=Du});var A$=V((bP)=>{var IP=R();function Jz($,r,I){if(Array.isArray($))return $.map((b,u)=>Jz(b,String(u),I));if($&&typeof $.toJSON==="function"){if(!I||!IP.hasAnchor($))return $.toJSON(r,I);let b={aliasCount:0,count:1,res:void 0};I.anchors.set($,b),I.onCreate=(g)=>{b.res=g,delete I.onCreate};let u=$.toJSON(r,I);if(I.onCreate)I.onCreate(u);return u}if(typeof $==="bigint"&&!I?.keep)return Number($);return $}bP.toJS=Jz});var oI=V((vP)=>{var UP=A_(),Gz=R(),_P=A$();class Xz{constructor($){Object.defineProperty(this,Gz.NODE_TYPE,{value:$})}clone(){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)$.range=this.range.slice();return $}toJS($,{mapAsMap:r,maxAliasCount:I,onAnchor:b,reviver:u}={}){if(!Gz.isDocument($))throw TypeError("A document argument is required");let g={anchors:new Map,doc:$,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof I==="number"?I:100},U=_P.toJS(this,"",g);if(typeof b==="function")for(let{count:_,res:v}of g.anchors.values())b(v,_);return typeof u==="function"?UP.applyReviver(u,{"":U},"",U):U}}vP.NodeBase=Xz});var Nu=V((PP)=>{var zP=yI(),wP=wu(),Nr=R(),DP=oI(),NP=A$();class Lz extends DP.NodeBase{constructor($){super(Nr.ALIAS);this.source=$,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve($,r){let I;if(r?.aliasResolveCache)I=r.aliasResolveCache;else if(I=[],wP.visit($,{Node:(u,g)=>{if(Nr.isAlias(g)||Nr.hasAnchor(g))I.push(g)}}),r)r.aliasResolveCache=I;let b=void 0;for(let u of I){if(u===this)break;if(u.anchor===this.source)b=u}return b}toJSON($,r){if(!r)return{source:this.source};let{anchors:I,doc:b,maxAliasCount:u}=r,g=this.resolve(b,r);if(!g){let _=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(_)}let U=I.get(g);if(!U)NP.toJS(g,null,r),U=I.get(g);if(!U||U.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(u>=0){if(U.count+=1,U.aliasCount===0)U.aliasCount=dI(b,g,I);if(U.count*U.aliasCount>u)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return U.res}toString($,r,I){let b=`*${this.source}`;if($){if(zP.anchorIsValid(this.source),$.options.verifyAliasOrder&&!$.anchors.has(this.source)){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(u)}if($.implicitKey)return`${b} `}return b}}function dI($,r,I){if(Nr.isAlias(r)){let b=r.resolve($),u=I&&b&&I.get(b);return u?u.count*u.aliasCount:0}else if(Nr.isCollection(r)){let b=0;for(let u of r.items){let g=dI($,u,I);if(g>b)b=g}return b}else if(Nr.isPair(r)){let b=dI($,r.key,I),u=dI($,r.value,I);return Math.max(b,u)}return 1}PP.Alias=Lz});var m=V((XP)=>{var jP=R(),SP=oI(),JP=A$(),GP=($)=>!$||typeof $!=="function"&&typeof $!=="object";class c$ extends SP.NodeBase{constructor($){super(jP.SCALAR);this.value=$}toJSON($,r){return r?.keep?this.value:JP.toJS(this.value,$,r)}toString(){return String(this.value)}}c$.BLOCK_FOLDED="BLOCK_FOLDED";c$.BLOCK_LITERAL="BLOCK_LITERAL";c$.PLAIN="PLAIN";c$.QUOTE_DOUBLE="QUOTE_DOUBLE";c$.QUOTE_SINGLE="QUOTE_SINGLE";XP.Scalar=c$;XP.isScalarValue=GP});var Pu=V((YP)=>{var HP=Nu(),l$=R(),Wz=m(),VP="tag:yaml.org,2002:";function QP($,r,I){if(r){let b=I.filter((g)=>g.tag===r),u=b.find((g)=>!g.format)??b[0];if(!u)throw Error(`Tag ${r} not found`);return u}return I.find((b)=>b.identify?.($)&&!b.format)}function AP($,r,I){if(l$.isDocument($))$=$.contents;if(l$.isNode($))return $;if(l$.isPair($)){let P=I.schema[l$.MAP].createNode?.(I.schema,null,I);return P.items.push($),P}if($ instanceof String||$ instanceof Number||$ instanceof Boolean||typeof BigInt<"u"&&$ instanceof BigInt)$=$.valueOf();let{aliasDuplicateObjects:b,onAnchor:u,onTagObj:g,schema:U,sourceObjects:_}=I,v=void 0;if(b&&$&&typeof $==="object")if(v=_.get($),v)return v.anchor??(v.anchor=u($)),new HP.Alias(v.anchor);else v={anchor:null,node:null},_.set($,v);if(r?.startsWith("!!"))r=VP+r.slice(2);let O=QP($,r,U.tags);if(!O){if($&&typeof $.toJSON==="function")$=$.toJSON();if(!$||typeof $!=="object"){let P=new Wz.Scalar($);if(v)v.node=P;return P}O=$ instanceof Map?U[l$.MAP]:(Symbol.iterator in Object($))?U[l$.SEQ]:U[l$.MAP]}if(g)g(O),delete I.onTagObj;let w=O?.createNode?O.createNode(I.schema,$,I):typeof O?.nodeClass?.from==="function"?O.nodeClass.from(I.schema,$,I):new Wz.Scalar($);if(r)w.tag=r;else if(!O.default)w.tag=O.tag;if(v)v.node=w;return w}YP.createNode=AP});var pI=V((MP)=>{var KP=Pu(),z$=R(),FP=oI();function Y_($,r,I){let b=I;for(let u=r.length-1;u>=0;--u){let g=r[u];if(typeof g==="number"&&Number.isInteger(g)&&g>=0){let U=[];U[g]=b,b=U}else b=new Map([[g,b]])}return KP.createNode(b,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:$,sourceObjects:new Map})}var Hz=($)=>$==null||typeof $==="object"&&!!$[Symbol.iterator]().next().done;class Vz extends FP.NodeBase{constructor($,r){super($);Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone($){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if($)r.schema=$;if(r.items=r.items.map((I)=>z$.isNode(I)||z$.isPair(I)?I.clone($):I),this.range)r.range=this.range.slice();return r}addIn($,r){if(Hz($))this.add(r);else{let[I,...b]=$,u=this.get(I,!0);if(z$.isCollection(u))u.addIn(b,r);else if(u===void 0&&this.schema)this.set(I,Y_(this.schema,b,r));else throw Error(`Expected YAML collection at ${I}. Remaining path: ${b}`)}}deleteIn($){let[r,...I]=$;if(I.length===0)return this.delete(r);let b=this.get(r,!0);if(z$.isCollection(b))return b.deleteIn(I);else throw Error(`Expected YAML collection at ${r}. Remaining path: ${I}`)}getIn($,r){let[I,...b]=$,u=this.get(I,!0);if(b.length===0)return!r&&z$.isScalar(u)?u.value:u;else return z$.isCollection(u)?u.getIn(b,r):void 0}hasAllNullValues($){return this.items.every((r)=>{if(!z$.isPair(r))return!1;let I=r.value;return I==null||$&&z$.isScalar(I)&&I.value==null&&!I.commentBefore&&!I.comment&&!I.tag})}hasIn($){let[r,...I]=$;if(I.length===0)return this.has(r);let b=this.get(r,!0);return z$.isCollection(b)?b.hasIn(I):!1}setIn($,r){let[I,...b]=$;if(b.length===0)this.set(I,r);else{let u=this.get(I,!0);if(z$.isCollection(u))u.setIn(b,r);else if(u===void 0&&this.schema)this.set(I,Y_(this.schema,b,r));else throw Error(`Expected YAML collection at ${I}. Remaining path: ${b}`)}}}MP.Collection=Vz;MP.collectionFromPath=Y_;MP.isEmptyPath=Hz});var qu=V((CP)=>{var EP=($)=>$.replace(/^(?!$)(?: $)?/gm,"#");function B_($,r){if(/^\n+$/.test($))return $.substring(1);return r?$.replace(/^(?! *$)/gm,r):$}var kP=($,r,I)=>$.endsWith(`
|
|
3
3
|
`)?B_(I,r):I.includes(`
|
|
4
4
|
`)?`
|
|
@@ -178,6 +178,6 @@ ${$}`}},async stripFrontMatter($){let{content:r}=await Wr.extractFrontMatter($);
|
|
|
178
178
|
`,r+=` Config Path: ${$.mcpConfigPath}
|
|
179
179
|
|
|
180
180
|
`,r}
|
|
181
|
-
export{YU as
|
|
181
|
+
export{YU as m,EU as n,X_ as o,_$ as p,W_ as q,v$ as r,gz as s,bz as t,aH as u,P2 as v,sH as w,$8 as x,r8 as y,u8 as z,Zv as A,Wr as B,j1 as C,FV as D};
|
|
182
182
|
|
|
183
|
-
//# debugId=
|
|
183
|
+
//# debugId=DD0C4660FA0316C564756E2164756E21
|