clanka 0.7.3 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Acp.d.ts +10 -0
- package/dist/Acp.d.ts.map +1 -1
- package/dist/Acp.js +1 -2
- package/dist/Acp.js.map +1 -1
- package/dist/AgentTools.d.ts.map +1 -1
- package/dist/AgentTools.js +1 -2
- package/dist/AgentTools.js.map +1 -1
- package/dist/GlobalWebSocket.d.ts +15 -0
- package/dist/GlobalWebSocket.d.ts.map +1 -0
- package/dist/GlobalWebSocket.js +26 -0
- package/dist/GlobalWebSocket.js.map +1 -0
- package/dist/WebToMarkdown.d.ts.map +1 -1
- package/dist/WebToMarkdown.js +8 -4
- package/dist/WebToMarkdown.js.map +1 -1
- package/dist/bin/Effect-DdkIoNCD.mjs +5058 -0
- package/dist/bin/Effect-DdkIoNCD.mjs.map +1 -0
- package/dist/bin/{McpClient-D6vFD-wP.mjs → McpClient-CJ0Vugoi.mjs} +582 -2896
- package/dist/bin/{McpClient-D6vFD-wP.mjs.map → McpClient-CJ0Vugoi.mjs.map} +1 -1
- package/dist/bin/OutputFormatter-DN8OGwuK.mjs +575 -0
- package/dist/bin/OutputFormatter-DN8OGwuK.mjs.map +1 -0
- package/dist/bin/Schema-BALIXGp7.mjs +5475 -0
- package/dist/bin/Schema-BALIXGp7.mjs.map +1 -0
- package/dist/bin/{SemanticSearch-D9iZ_Mi9.mjs → SemanticSearch-O6PZBRfd.mjs} +147 -1160
- package/dist/bin/{SemanticSearch-D9iZ_Mi9.mjs.map → SemanticSearch-O6PZBRfd.mjs.map} +1 -1
- package/dist/bin/Stream-B5ebASRi.mjs +2090 -0
- package/dist/bin/Stream-B5ebASRi.mjs.map +1 -0
- package/dist/bin/cli.mjs +9628 -41430
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/index.min-CI3qqohw.mjs +3300 -0
- package/dist/bin/index.min-CI3qqohw.mjs.map +1 -0
- package/dist/bin/turndown.cjs-usmCKZ4b.mjs +15195 -0
- package/dist/bin/turndown.cjs-usmCKZ4b.mjs.map +1 -0
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -4
- package/src/Acp.ts +1 -2
- package/src/AgentTools.ts +3 -2
- package/src/GlobalWebSocket.ts +40 -0
- package/src/WebToMarkdown.ts +17 -7
- package/src/cli.ts +14 -5
- package/src/index.ts +5 -0
- package/dist/bin/Schema-D6y3R-At.mjs +0 -28728
- package/dist/bin/Schema-D6y3R-At.mjs.map +0 -1
- package/dist/bin/Undici-ChB4UBDa.mjs +0 -28
- package/dist/bin/Undici-ChB4UBDa.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputFormatter-DN8OGwuK.mjs","names":["styles","Stream.map","Cause.pretty","Cause.fail","Stream.catchIf","Predicate.isTagged","Stream.succeed","Stream.die","Context.Service","Layer.effect","Effect.gen","scope","Effect.scope","PubSub.unbounded","Semaphore.makeUnsafe","Stream.tap","Effect.fnUntraced","Stream.runIntoPubSub","Effect.onExit","Effect.void","Effect.forkIn","Effect.asVoid","Stream.fromPubSub"],"sources":["../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/utilities.js","../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/vendor/ansi-styles/index.js","../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/vendor/supports-color/index.js","../../node_modules/.pnpm/chalk@6.0.0/node_modules/chalk/source/index.js","../../src/OutputFormatter.ts"],"sourcesContent":["// Note: Each match is kept and `postfix` is inserted after it. `String#replaceAll(substring, substring + postfix)` does the same, but it has to scan the replacement for `$` patterns and it is several times slower on the no-match path that most calls take.\nexport function stringReplaceAll(string, substring, postfix) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + postfix;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst isGotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (isGotCR ? index - 1 : index)) + prefix + (isGotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\nconst ANSI_UNDERLINE_OFFSET = 20;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u{1B}[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u{1B}[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u{1B}[${38 + offset};2;${red};${green};${blue}m`;\n\n// `SGR 58` has no basic 16-color form, so the basic color code is mapped to its palette index instead.\nconst wrapUnderlineAnsi = code => `\\u{1B}[58;5;${code < 90 ? code - 30 : code - 90 + 8}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\t// Extended underline styles (`SGR 4:x` sub-parameters). Not in upstream `ansi-styles`.\n\t\tunderlineDouble: ['4:2', 24],\n\t\tunderlineCurly: ['4:3', 24],\n\t\tunderlineDotted: ['4:4', 24],\n\t\tunderlineDashed: ['4:5', 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n\t// Underline color (`SGR 58`/`59`). Not in upstream `ansi-styles`.\n\tunderlineColor: {\n\t\tunderlineBlack: ['58;5;0', 59],\n\t\tunderlineRed: ['58;5;1', 59],\n\t\tunderlineGreen: ['58;5;2', 59],\n\t\tunderlineYellow: ['58;5;3', 59],\n\t\tunderlineBlue: ['58;5;4', 59],\n\t\tunderlineMagenta: ['58;5;5', 59],\n\t\tunderlineCyan: ['58;5;6', 59],\n\t\tunderlineWhite: ['58;5;7', 59],\n\n\t\t// Bright color\n\t\tunderlineBlackBright: ['58;5;8', 59],\n\t\tunderlineGray: ['58;5;8', 59], // Alias of `underlineBlackBright`\n\t\tunderlineGrey: ['58;5;8', 59], // Alias of `underlineBlackBright`\n\t\tunderlineRedBright: ['58;5;9', 59],\n\t\tunderlineGreenBright: ['58;5;10', 59],\n\t\tunderlineYellowBright: ['58;5;11', 59],\n\t\tunderlineBlueBright: ['58;5;12', 59],\n\t\tunderlineMagentaBright: ['58;5;13', 59],\n\t\tunderlineCyanBright: ['58;5;14', 59],\n\t\tunderlineWhiteBright: ['58;5;15', 59],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const underlineColorNames = Object.keys(styles.underlineColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u{1B}[${style[0]}m`,\n\t\t\t\tclose: `\\u{1B}[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\t// Only the leading SGR parameter identifies a style, so `4:3` and `58;5;1` are keyed as `4` and `58`.\n\t\t\tcodes.set(Number.parseInt(style[0], 10), style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u{1B}[39m';\n\tstyles.bgColor.close = '\\u{1B}[49m';\n\tstyles.underlineColor.close = '\\u{1B}[59m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\tstyles.underlineColor.ansi = wrapUnderlineAnsi;\n\tstyles.underlineColor.ansi256 = wrapAnsi256(ANSI_UNDERLINE_OFFSET);\n\tstyles.underlineColor.ansi16m = wrapAnsi16m(ANSI_UNDERLINE_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[\\da-f]{6}|[\\da-f]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise -- We need the speed */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\n// Whether `FORCE_COLOR` names a level. Shared with the exact-level check below so that the two cannot disagree on what counts as numeric.\nfunction hasNumericForceColor() {\n\treturn /^\\d+$/.test(env.FORCE_COLOR);\n}\n\nfunction envForceColor() {\n\tif (!('FORCE_COLOR' in env)) {\n\t\treturn;\n\t}\n\n\tif (env.FORCE_COLOR === 'false') {\n\t\treturn 0;\n\t}\n\n\tif (env.FORCE_COLOR === 'true' || env.FORCE_COLOR.length === 0) {\n\t\treturn 1;\n\t}\n\n\tif (!hasNumericForceColor()) {\n\t\treturn;\n\t}\n\n\treturn Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// A numeric `FORCE_COLOR` requests an exact level, while `FORCE_COLOR=true` and `FORCE_COLOR=` only enable color and let the level be detected.\n\tif (forceColor !== undefined && hasNumericForceColor()) {\n\t\treturn forceColor;\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(?:9\\.0*[1-9]\\d*\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.', 1)[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(?:color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","import {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\nimport ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\nconst LEVEL = Symbol('LEVEL');\n\nconst styles = Object.create(null);\n\nconst assertValidLevel = level => {\n\tif (!Number.isSafeInteger(level) || level < 0 || level > 3) {\n\t\tthrow new Error('The `level` should be an integer from 0 to 3');\n\t}\n};\n\n// The level is stored under a symbol so the hot path can read it as a plain property, while `level` itself is an accessor that rejects values the rest of the code could not handle.\nconst levelDescriptor = {\n\tenumerable: true,\n\tget() {\n\t\treturn this[LEVEL];\n\t},\n\tset(level) {\n\t\tassertValidLevel(level);\n\t\tthis[LEVEL] = level;\n\t},\n};\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level !== undefined) {\n\t\tassertValidLevel(options.level);\n\t}\n\n\t// Detect level if not set manually. Written under the symbol rather than through `level`, as the prototype carrying that accessor is not installed until after this runs.\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject[LEVEL] = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\n// eslint-disable-next-line unicorn/no-top-level-side-effects -- The prototype chain must be set up at module load.\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\n// Resolve a color model to one converter per `level`, so that a call only has to look up the converter for the current level instead of re-deciding the model and level every time.\nconst createModelConverters = (model, type) => {\n\tconst style = ansiStyles[type];\n\n\tif (model === 'rgb') {\n\t\tconst ansi = (red, green, blue) => style.ansi(ansiStyles.rgbToAnsi(red, green, blue));\n\t\tconst ansi256 = (red, green, blue) => style.ansi256(ansiStyles.rgbToAnsi256(red, green, blue));\n\t\treturn [ansi, ansi, ansi256, style.ansi16m];\n\t}\n\n\tif (model === 'hex') {\n\t\tconst ansi = hex => style.ansi(ansiStyles.hexToAnsi(hex));\n\t\tconst ansi256 = hex => style.ansi256(ansiStyles.hexToAnsi256(hex));\n\t\treturn [ansi, ansi, ansi256, hex => style.ansi16m(...ansiStyles.hexToRgb(hex))];\n\t}\n\n\t// `ansi256` is already the native form, so only the 16-color levels need converting.\n\tconst ansi = code => style.ansi(ansiStyles.ansi256ToAnsi(code));\n\treturn [ansi, ansi, style.ansi256, style.ansi256];\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tconst capitalizedModel = model[0].toUpperCase() + model.slice(1);\n\n\tfor (const [styleName, type] of [\n\t\t[model, 'color'],\n\t\t['bg' + capitalizedModel, 'bgColor'],\n\t\t['underline' + capitalizedModel, 'underlineColor'],\n\t]) {\n\t\tconst {close} = ansiStyles[type];\n\t\tconst converters = createModelConverters(model, type);\n\n\t\tstyles[styleName] = {\n\t\t\tget() {\n\t\t\t\t// The level is read on call rather than captured here so the function can be cached on the instance instead of being reallocated on every property access.\n\t\t\t\t// `rgb` is the widest model, so naming the three parameters avoids a rest array.\n\t\t\t\tconst styleFunction = function (first, second, third) {\n\t\t\t\t\tconst open = converters[this.level](first, second, third);\n\t\t\t\t\treturn createBuilder(this, createStyler(open, close, this[STYLER]), this[IS_EMPTY]);\n\t\t\t\t};\n\n\t\t\t\tObject.defineProperty(this, styleName, {value: styleFunction});\n\t\t\t\treturn styleFunction;\n\t\t\t},\n\t\t};\n\t}\n}\n\nconst proto = Object.defineProperties(\n\t() => {},\n\t{\n\t\t...styles,\n\t\tlevel: {\n\t\t\tenumerable: true,\n\t\t\tget() {\n\t\t\t\treturn this[GENERATOR].level;\n\t\t\t},\n\t\t\tset(level) {\n\t\t\t\tthis[GENERATOR].level = level;\n\t\t\t},\n\t\t},\n\t},\n);\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\tconst builder = (...arguments_) => {\n\t\tif (arguments_.length === 1) {\n\t\t\t// eslint-disable-next-line no-implicit-coercion\n\t\t\treturn applyStyle(builder, '' + arguments_[0]);\n\t\t}\n\n\t\tif (arguments_.length === 2) {\n\t\t\treturn applyStyle(builder, arguments_[0] + ' ' + arguments_[1]);\n\t\t}\n\n\t\treturn applyStyle(builder, arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\t// Point every builder at the root generator instead of its immediate parent, so reading the level costs one property load rather than walking a `level` getter per link of the chain.\n\tbuilder[GENERATOR] = self[GENERATOR] ?? self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\t// Read the level directly off the generator to skip the `level` getter dispatch on this hot path\n\tif (self[GENERATOR][LEVEL] <= 0 || !string) {\n\t\t// eslint-disable-next-line unicorn/no-computed-property-existence-check -- Reads the boolean value, not a property existence check.\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u{1B}')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\n// `level` lives on the prototype rather than on each instance, so it costs nothing to construct an instance and matches how builders already expose it. It is inherited rather than own, so it does not show up in `Object.keys()`, same as for a builder.\n// eslint-disable-next-line unicorn/no-top-level-side-effects -- The style getters must be installed at module load.\nObject.defineProperties(createChalk.prototype, {...styles, level: levelDescriptor});\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tunderlineColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","/**\n * @since 1.0.0\n */\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as PubSub from \"effect/PubSub\"\nimport * as Semaphore from \"effect/Semaphore\"\nimport * as Context from \"effect/Context\"\nimport * as Stream from \"effect/Stream\"\nimport type { AgentFinished, Output } from \"./AgentOutput.ts\"\nimport chalk from \"chalk\"\nimport type * as Prompt from \"effect/unstable/ai/Prompt\"\nimport * as Cause from \"effect/Cause\"\nimport { identity } from \"effect/Function\"\nimport * as Predicate from \"effect/Predicate\"\n\n/**\n * @since 1.0.0\n * @category Models\n */\nexport type OutputFormatter = <E, R>(\n stream: Stream.Stream<Output, AgentFinished | E, R>,\n) => Stream.Stream<string, Exclude<E, AgentFinished>, R>\n\n/**\n * @since 1.0.0\n * @category Pretty\n */\nexport const pretty = (options?: {\n readonly outputTruncation?: number | boolean | undefined\n}): OutputFormatter => {\n const maxLines =\n typeof options?.outputTruncation === \"number\"\n ? options.outputTruncation\n : 20\n const truncate =\n options?.outputTruncation === true ||\n typeof options?.outputTruncation === \"number\"\n ? (text: string): string => {\n const lines = text.split(\"\\n\")\n if (lines.length > maxLines) {\n return (\n lines.slice(0, maxLines).join(\"\\n\") +\n `\\n... (truncated, total ${lines.length} lines)`\n )\n }\n return text\n }\n : identity\n return (stream) =>\n stream.pipe(\n Stream.map((output) => {\n let prefix = \"\"\n if (output._tag === \"SubagentPart\") {\n prefix = chalk.magenta(`Subagent #${output.id}:`) + \" \"\n output = output.part\n }\n switch (output._tag) {\n case \"AgentStart\": {\n return `${chalkAgentHeading(`${subagentIcon} Agent #${output.id} starting (${output.modelAndProvider})`)}\\n\\n${promptToString(output.prompt)}\\n\\n`\n }\n case \"SubagentStart\": {\n return `${chalkSubagentHeading(`${subagentIcon} Subagent #${output.id} starting (${output.modelAndProvider})`)}\n\n${chalk.dim(output.prompt)}\\n\\n`\n }\n case \"SubagentComplete\": {\n return `${chalkSubagentHeading(`${subagentIcon} Subagent #${output.id} complete`)}\n\n${output.summary}\\n\\n`\n }\n case \"ReasoningStart\": {\n return (\n prefix + chalkReasoningHeading(`${thinkingIcon} Thinking:`) + \" \"\n )\n }\n case \"ReasoningDelta\": {\n return output.delta\n }\n case \"ReasoningEnd\": {\n return \"\\n\\n\"\n }\n case \"ScriptStart\": {\n return `${prefix}${chalkScriptHeading(`${scriptIcon} Executing script`)}\\n\\n`\n }\n case \"ScriptDelta\": {\n return chalk.dim(output.delta)\n }\n case \"ScriptEnd\": {\n return \"\\n\\n\"\n }\n case \"ScriptOutput\": {\n return `${prefix}${chalkScriptHeading(`${scriptIcon} Script output`)}\\n\\n${chalk.dim(truncate(output.output))}\\n\\n`\n }\n case \"ErrorRetry\": {\n return `${prefix}${chalk.red(`Error: ${output.error.reason._tag}. Retrying...`)}\\n\\n${chalk.dim(Cause.pretty(Cause.fail(output.error)))}\\n\\n`\n }\n case \"Usage\": {\n return `${prefix}${chalkInfoHeading(`${infoIcon} Usage:`)} ${numberFormat.format(output.contextTokens)} context / ${numberFormat.format(output.inputTokens)} input / ${numberFormat.format(output.outputTokens)} output\\n\\n`\n }\n case \"ExecuteOutputCapped\": {\n return `${prefix}${chalkInfoHeading(`${infoIcon} Output capped:`)} ${numberFormat.format(output.charsBefore)} chars reduced to ${numberFormat.format(output.charsAfter)}\\n\\n`\n }\n case \"CompactionStarted\": {\n return `${prefix}${chalkInfoHeading(`${infoIcon} Compacting context (${output.reason})...`)}\\n\\n`\n }\n case \"CompactionEnded\": {\n return `${prefix}${chalkInfoHeading(`${infoIcon} Context compacted (${output.reason}):`)} ~${numberFormat.format(output.tokensBefore)} tokens to ~${numberFormat.format(output.tokensAfter)}\\n\\n`\n }\n }\n }),\n Stream.catchIf(\n (e): e is AgentFinished => Predicate.isTagged(e, \"AgentFinished\"),\n (finished) =>\n Stream.succeed(\n `\\n${chalk.bold.green(`${doneIcon} Task complete:`)}\\n\\n${(finished as AgentFinished).summary}`,\n ),\n (e) => Stream.die(e),\n ),\n )\n}\n\nconst promptToString = (prompt: Prompt.Prompt): string => {\n let textParts: Array<string> = []\n for (const message of prompt.content) {\n if (message.role !== \"user\") continue\n let content = message.content\n for (const part of content) {\n if (part.type !== \"text\") continue\n textParts.push(part.text)\n }\n }\n return textParts.join(\"\\n\")\n}\n\nconst numberFormat = new Intl.NumberFormat()\n\nconst chalkAgentHeading = chalk.bold.green\nconst chalkScriptHeading = chalk.bold.blue\nconst chalkSubagentHeading = chalk.bold.magenta\nconst chalkReasoningHeading = chalk.bold.yellow\nconst chalkInfoHeading = chalk.bold.cyan\n\nconst scriptIcon = \"\\u{f0bc1}\"\nconst subagentIcon = \"\\u{ee0d} \"\nconst thinkingIcon = \"\\u{f07f6}\"\nconst doneIcon = \"\\u{eab2}\"\nconst infoIcon = \"\\u{f05a}\"\n\n/**\n * @since 1.0.0\n * @category Muxer\n */\nexport class Muxer extends Context.Service<\n Muxer,\n {\n add<E, R>(\n agent: Stream.Stream<Output, AgentFinished | E, R>,\n ): Effect.Effect<void, never, R>\n readonly output: Stream.Stream<string>\n }\n>()(\"clanka/OutputFormatter/Muxer\") {}\n\n/**\n * @since 1.0.0\n * @category Muxer\n */\nexport const layerMuxer = (formatter: OutputFormatter) =>\n Layer.effect(\n Muxer,\n Effect.gen(function* () {\n const scope = yield* Effect.scope\n const output = yield* PubSub.unbounded<string>()\n let agentCount = 0\n let currentAgentId: number | null = null\n const semaphore = Semaphore.makeUnsafe(1)\n\n return Muxer.of({\n add(stream) {\n const id = ++agentCount\n return stream.pipe(\n Stream.tap(\n Effect.fnUntraced(function* (part_) {\n if (currentAgentId === null || id !== currentAgentId) {\n yield* semaphore.take(1)\n }\n const part = part_._tag === \"SubagentPart\" ? part_.part : part_\n switch (part._tag) {\n case \"ReasoningStart\":\n case \"ScriptStart\": {\n currentAgentId = id\n break\n }\n case \"ScriptDelta\":\n case \"ReasoningDelta\": {\n break\n }\n default: {\n currentAgentId = null\n break\n }\n }\n if (id !== currentAgentId) {\n yield* semaphore.release(1)\n }\n }),\n ),\n formatter,\n Stream.runIntoPubSub(output),\n Effect.onExit(() => {\n if (currentAgentId !== id) return Effect.void\n currentAgentId = null\n return semaphore.release(1)\n }),\n Effect.forkIn(scope),\n Effect.asVoid,\n )\n },\n output: Stream.fromPubSub(output),\n })\n }),\n )\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
|