pybao-cli 1.3.3 → 1.3.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 (192) hide show
  1. package/README.md +1 -440
  2. package/README.zh-CN.md +35 -35
  3. package/cli-acp.js +3 -3
  4. package/cli.js +4 -4
  5. package/dist/REPL-4YZC3LJO.js +42 -0
  6. package/dist/{acp-75HO2LBV.js → acp-SE4B3WSL.js} +43 -43
  7. package/dist/acp-SE4B3WSL.js.map +7 -0
  8. package/dist/{agentsValidate-6Z57ARKC.js → agentsValidate-LZISHE5F.js} +15 -15
  9. package/dist/agentsValidate-LZISHE5F.js.map +7 -0
  10. package/dist/{ask-NXXXCGY4.js → ask-5IDOHI4E.js} +26 -26
  11. package/dist/ask-5IDOHI4E.js.map +7 -0
  12. package/dist/{autoUpdater-PJMGNPUG.js → autoUpdater-ECGS62JN.js} +3 -3
  13. package/dist/{chunk-6RZIUY5K.js → chunk-3X2KNIS3.js} +5 -5
  14. package/dist/chunk-3X2KNIS3.js.map +7 -0
  15. package/dist/{chunk-VTVTEE5N.js → chunk-4U4MLA4R.js} +18 -18
  16. package/dist/chunk-4U4MLA4R.js.map +7 -0
  17. package/dist/{chunk-PCXUZ6AT.js → chunk-5AGDLQAW.js} +3 -3
  18. package/dist/chunk-5AGDLQAW.js.map +7 -0
  19. package/dist/{chunk-27GYWUY2.js → chunk-5JHD6MUL.js} +3 -3
  20. package/dist/chunk-5JHD6MUL.js.map +7 -0
  21. package/dist/{chunk-Z3HMXDXP.js → chunk-5JTKXNG4.js} +6 -6
  22. package/dist/chunk-5JTKXNG4.js.map +7 -0
  23. package/dist/{chunk-HIRIJ2LQ.js → chunk-5UJ7KHM7.js} +34 -33
  24. package/dist/chunk-5UJ7KHM7.js.map +7 -0
  25. package/dist/{chunk-JKGOGSFT.js → chunk-6BSVSUGW.js} +3 -3
  26. package/dist/{chunk-4XPNRLJG.js → chunk-AT7FEIUK.js} +7 -7
  27. package/dist/chunk-AT7FEIUK.js.map +7 -0
  28. package/dist/{chunk-T6GVXTNQ.js → chunk-B6IMQJZM.js} +7 -7
  29. package/dist/chunk-B6IMQJZM.js.map +7 -0
  30. package/dist/{chunk-ZJGXEWKF.js → chunk-BO63S4OP.js} +9 -9
  31. package/dist/chunk-BO63S4OP.js.map +7 -0
  32. package/dist/{chunk-6WELHKDA.js → chunk-C66U55GA.js} +11 -11
  33. package/dist/chunk-C66U55GA.js.map +7 -0
  34. package/dist/{chunk-3KNGJX7Q.js → chunk-CTKC574I.js} +11 -11
  35. package/dist/chunk-CTKC574I.js.map +7 -0
  36. package/dist/{chunk-QBHEERCF.js → chunk-E2R24MD6.js} +139 -129
  37. package/dist/chunk-E2R24MD6.js.map +7 -0
  38. package/dist/{chunk-3PDD7M4T.js → chunk-EGHIB45T.js} +5 -5
  39. package/dist/chunk-EGHIB45T.js.map +7 -0
  40. package/dist/{chunk-TXFCNQDE.js → chunk-G2W2B3A3.js} +25 -25
  41. package/dist/chunk-G2W2B3A3.js.map +7 -0
  42. package/dist/{chunk-XXFY63TM.js → chunk-HBWCMS4E.js} +7 -7
  43. package/dist/chunk-HBWCMS4E.js.map +7 -0
  44. package/dist/{chunk-3ZNSAB7B.js → chunk-KVP2VINI.js} +4 -4
  45. package/dist/chunk-KVP2VINI.js.map +7 -0
  46. package/dist/{chunk-JZDE77EH.js → chunk-MLU76W2R.js} +3 -3
  47. package/dist/{chunk-SWYJOV5E.js → chunk-MRHGVQ5T.js} +1 -1
  48. package/dist/{chunk-SWYJOV5E.js.map → chunk-MRHGVQ5T.js.map} +1 -1
  49. package/dist/{chunk-VRGR4ZTQ.js → chunk-MWPFU2KU.js} +2 -2
  50. package/dist/chunk-MWPFU2KU.js.map +7 -0
  51. package/dist/{chunk-7AAE6EO2.js → chunk-NAXCFXKW.js} +7 -7
  52. package/dist/chunk-NAXCFXKW.js.map +7 -0
  53. package/dist/{chunk-ICTEVBLN.js → chunk-NRKOXQT5.js} +11 -11
  54. package/dist/chunk-NRKOXQT5.js.map +7 -0
  55. package/dist/{chunk-BQA2EOUU.js → chunk-OTNHBUGC.js} +5 -5
  56. package/dist/chunk-OTNHBUGC.js.map +7 -0
  57. package/dist/{chunk-WPTPPOYN.js → chunk-PGLKCZAE.js} +2 -2
  58. package/dist/{chunk-UUNVJZWA.js → chunk-PMKSJ3AZ.js} +3 -3
  59. package/dist/chunk-PMKSJ3AZ.js.map +7 -0
  60. package/dist/{chunk-QIHB5PYM.js → chunk-R6WNNB47.js} +6 -6
  61. package/dist/{chunk-QIHB5PYM.js.map → chunk-R6WNNB47.js.map} +2 -2
  62. package/dist/{chunk-Q24ZGKIE.js → chunk-V3AKMLFM.js} +14 -14
  63. package/dist/chunk-V3AKMLFM.js.map +7 -0
  64. package/dist/{chunk-T7GPUZVK.js → chunk-VF3J4G4Z.js} +27 -27
  65. package/dist/chunk-VF3J4G4Z.js.map +7 -0
  66. package/dist/{chunk-4SNFQYCY.js → chunk-VKMVP2QQ.js} +12 -12
  67. package/dist/chunk-VKMVP2QQ.js.map +7 -0
  68. package/dist/chunk-XI4LTVYT.js.map +7 -0
  69. package/dist/{chunk-A6PUMROK.js → chunk-YDXW3IJK.js} +4 -4
  70. package/dist/{chunk-A6PUMROK.js.map → chunk-YDXW3IJK.js.map} +1 -1
  71. package/dist/{chunk-HB2P6645.js → chunk-ZZQ6WGYG.js} +4 -4
  72. package/dist/{cli-RFYBXM7F.js → cli-MBYLENJH.js} +119 -119
  73. package/dist/cli-MBYLENJH.js.map +7 -0
  74. package/dist/commands-ECIN5O3E.js +46 -0
  75. package/dist/{config-5OPX3H2K.js → config-45ETSXTS.js} +4 -4
  76. package/dist/{context-THRRBPFP.js → context-34YXWOMP.js} +5 -5
  77. package/dist/{customCommands-4XOZH44N.js → customCommands-J52KDUBX.js} +4 -4
  78. package/dist/{env-EL4KBHMB.js → env-ODQXSPMW.js} +8 -8
  79. package/dist/index.js +4 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/{llm-A3BCM4Q2.js → llm-BBYIGM3X.js} +34 -34
  82. package/dist/llm-BBYIGM3X.js.map +7 -0
  83. package/dist/{llmLazy-ZJSRLZVD.js → llmLazy-VHWTJ7FY.js} +1 -1
  84. package/dist/{loader-HZQBWO74.js → loader-TXZ3EJZO.js} +4 -4
  85. package/dist/{mcp-XKOJ55B2.js → mcp-SHR6KH2Y.js} +7 -7
  86. package/dist/{mentionProcessor-ANYU5MLF.js → mentionProcessor-CDELTWDV.js} +5 -5
  87. package/dist/{messages-75DL5XBP.js → messages-R4ICGYOI.js} +1 -1
  88. package/dist/{model-OPJGJZRC.js → model-AO4OE46E.js} +5 -5
  89. package/dist/{openai-DT54BAFP.js → openai-F7WL45GM.js} +5 -5
  90. package/dist/{outputStyles-TPFVI52O.js → outputStyles-BWAE3CTZ.js} +4 -4
  91. package/dist/{pluginRuntime-W74PYSZ4.js → pluginRuntime-AHKVCUSE.js} +8 -8
  92. package/dist/pluginRuntime-AHKVCUSE.js.map +7 -0
  93. package/dist/{pluginValidation-FALYRVI2.js → pluginValidation-YSUVH4GM.js} +6 -6
  94. package/dist/prompts-4AUAETB4.js +48 -0
  95. package/dist/pybAgentSessionId-3HDHCCI5.js +13 -0
  96. package/dist/pybAgentSessionLoad-5FMAFO4P.js +18 -0
  97. package/dist/pybAgentSessionResume-GCVJHXVV.js +16 -0
  98. package/dist/{kodeAgentStreamJson-3T26CHCP.js → pybAgentStreamJson-UG22YE4Z.js} +5 -5
  99. package/dist/{kodeAgentStreamJsonSession-BZS2VDCY.js → pybAgentStreamJsonSession-BRWXPZ5Z.js} +9 -9
  100. package/dist/pybAgentStreamJsonSession-BRWXPZ5Z.js.map +7 -0
  101. package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js → pybAgentStructuredStdio-QDF6UGAJ.js} +3 -3
  102. package/dist/{kodeHooks-VUAWIY2D.js → pybHooks-WXEUSK2Y.js} +7 -7
  103. package/dist/query-JNWSOFYQ.js +50 -0
  104. package/dist/{ripgrep-XJGSUBG7.js → ripgrep-ON745BFW.js} +3 -3
  105. package/dist/{skillMarketplace-AUGKNCPW.js → skillMarketplace-ZLW4PQFC.js} +3 -3
  106. package/dist/{state-DQYRXKTG.js → state-E57SH5ZM.js} +2 -2
  107. package/dist/{theme-MS5HDUBJ.js → theme-XJG6O2YU.js} +5 -5
  108. package/dist/{toolPermissionSettings-4MPZVYDR.js → toolPermissionSettings-BXLCU7BK.js} +6 -6
  109. package/dist/tools-UJZBVLIU.js +47 -0
  110. package/dist/{userInput-F2PGBRFU.js → userInput-IVM4BDPE.js} +34 -34
  111. package/dist/userInput-IVM4BDPE.js.map +7 -0
  112. package/package.json +1 -1
  113. package/scripts/binary-utils.cjs +8 -8
  114. package/scripts/cli-acp-wrapper.cjs +3 -3
  115. package/scripts/cli-wrapper.cjs +4 -4
  116. package/scripts/postinstall.js +7 -7
  117. package/dist/REPL-WPV32MTF.js +0 -42
  118. package/dist/acp-75HO2LBV.js.map +0 -7
  119. package/dist/agentsValidate-6Z57ARKC.js.map +0 -7
  120. package/dist/ask-NXXXCGY4.js.map +0 -7
  121. package/dist/chunk-27GYWUY2.js.map +0 -7
  122. package/dist/chunk-3KNGJX7Q.js.map +0 -7
  123. package/dist/chunk-3PDD7M4T.js.map +0 -7
  124. package/dist/chunk-3ZNSAB7B.js.map +0 -7
  125. package/dist/chunk-4SNFQYCY.js.map +0 -7
  126. package/dist/chunk-4XPNRLJG.js.map +0 -7
  127. package/dist/chunk-6RZIUY5K.js.map +0 -7
  128. package/dist/chunk-6WELHKDA.js.map +0 -7
  129. package/dist/chunk-7AAE6EO2.js.map +0 -7
  130. package/dist/chunk-BQA2EOUU.js.map +0 -7
  131. package/dist/chunk-HIRIJ2LQ.js.map +0 -7
  132. package/dist/chunk-ICTEVBLN.js.map +0 -7
  133. package/dist/chunk-M624LT6O.js.map +0 -7
  134. package/dist/chunk-PCXUZ6AT.js.map +0 -7
  135. package/dist/chunk-Q24ZGKIE.js.map +0 -7
  136. package/dist/chunk-QBHEERCF.js.map +0 -7
  137. package/dist/chunk-T6GVXTNQ.js.map +0 -7
  138. package/dist/chunk-T7GPUZVK.js.map +0 -7
  139. package/dist/chunk-TXFCNQDE.js.map +0 -7
  140. package/dist/chunk-UUNVJZWA.js.map +0 -7
  141. package/dist/chunk-VRGR4ZTQ.js.map +0 -7
  142. package/dist/chunk-VTVTEE5N.js.map +0 -7
  143. package/dist/chunk-XXFY63TM.js.map +0 -7
  144. package/dist/chunk-Z3HMXDXP.js.map +0 -7
  145. package/dist/chunk-ZJGXEWKF.js.map +0 -7
  146. package/dist/cli-RFYBXM7F.js.map +0 -7
  147. package/dist/commands-YOXMODDO.js +0 -46
  148. package/dist/kodeAgentSessionId-PROTVRBR.js +0 -13
  149. package/dist/kodeAgentSessionLoad-UMPV7MC3.js +0 -18
  150. package/dist/kodeAgentSessionResume-YJS4FVQM.js +0 -16
  151. package/dist/kodeAgentStreamJsonSession-BZS2VDCY.js.map +0 -7
  152. package/dist/llm-A3BCM4Q2.js.map +0 -7
  153. package/dist/pluginRuntime-W74PYSZ4.js.map +0 -7
  154. package/dist/prompts-J4TPRMJ3.js +0 -48
  155. package/dist/query-K3QKBVDN.js +0 -50
  156. package/dist/tools-QW6SIJLJ.js +0 -47
  157. package/dist/userInput-F2PGBRFU.js.map +0 -7
  158. /package/dist/{REPL-WPV32MTF.js.map → REPL-4YZC3LJO.js.map} +0 -0
  159. /package/dist/{autoUpdater-PJMGNPUG.js.map → autoUpdater-ECGS62JN.js.map} +0 -0
  160. /package/dist/{chunk-JKGOGSFT.js.map → chunk-6BSVSUGW.js.map} +0 -0
  161. /package/dist/{chunk-JZDE77EH.js.map → chunk-MLU76W2R.js.map} +0 -0
  162. /package/dist/{chunk-WPTPPOYN.js.map → chunk-PGLKCZAE.js.map} +0 -0
  163. /package/dist/{chunk-M624LT6O.js → chunk-XI4LTVYT.js} +0 -0
  164. /package/dist/{chunk-HB2P6645.js.map → chunk-ZZQ6WGYG.js.map} +0 -0
  165. /package/dist/{commands-YOXMODDO.js.map → commands-ECIN5O3E.js.map} +0 -0
  166. /package/dist/{config-5OPX3H2K.js.map → config-45ETSXTS.js.map} +0 -0
  167. /package/dist/{context-THRRBPFP.js.map → context-34YXWOMP.js.map} +0 -0
  168. /package/dist/{customCommands-4XOZH44N.js.map → customCommands-J52KDUBX.js.map} +0 -0
  169. /package/dist/{env-EL4KBHMB.js.map → env-ODQXSPMW.js.map} +0 -0
  170. /package/dist/{kodeAgentSessionId-PROTVRBR.js.map → llmLazy-VHWTJ7FY.js.map} +0 -0
  171. /package/dist/{kodeAgentSessionLoad-UMPV7MC3.js.map → loader-TXZ3EJZO.js.map} +0 -0
  172. /package/dist/{kodeAgentSessionResume-YJS4FVQM.js.map → mcp-SHR6KH2Y.js.map} +0 -0
  173. /package/dist/{mentionProcessor-ANYU5MLF.js.map → mentionProcessor-CDELTWDV.js.map} +0 -0
  174. /package/dist/{kodeAgentStreamJson-3T26CHCP.js.map → messages-R4ICGYOI.js.map} +0 -0
  175. /package/dist/{kodeAgentStructuredStdio-TNB6U6SP.js.map → model-AO4OE46E.js.map} +0 -0
  176. /package/dist/{kodeHooks-VUAWIY2D.js.map → openai-F7WL45GM.js.map} +0 -0
  177. /package/dist/{llmLazy-ZJSRLZVD.js.map → outputStyles-BWAE3CTZ.js.map} +0 -0
  178. /package/dist/{loader-HZQBWO74.js.map → pluginValidation-YSUVH4GM.js.map} +0 -0
  179. /package/dist/{mcp-XKOJ55B2.js.map → prompts-4AUAETB4.js.map} +0 -0
  180. /package/dist/{messages-75DL5XBP.js.map → pybAgentSessionId-3HDHCCI5.js.map} +0 -0
  181. /package/dist/{model-OPJGJZRC.js.map → pybAgentSessionLoad-5FMAFO4P.js.map} +0 -0
  182. /package/dist/{openai-DT54BAFP.js.map → pybAgentSessionResume-GCVJHXVV.js.map} +0 -0
  183. /package/dist/{outputStyles-TPFVI52O.js.map → pybAgentStreamJson-UG22YE4Z.js.map} +0 -0
  184. /package/dist/{pluginValidation-FALYRVI2.js.map → pybAgentStructuredStdio-QDF6UGAJ.js.map} +0 -0
  185. /package/dist/{prompts-J4TPRMJ3.js.map → pybHooks-WXEUSK2Y.js.map} +0 -0
  186. /package/dist/{query-K3QKBVDN.js.map → query-JNWSOFYQ.js.map} +0 -0
  187. /package/dist/{ripgrep-XJGSUBG7.js.map → ripgrep-ON745BFW.js.map} +0 -0
  188. /package/dist/{skillMarketplace-AUGKNCPW.js.map → skillMarketplace-ZLW4PQFC.js.map} +0 -0
  189. /package/dist/{state-DQYRXKTG.js.map → state-E57SH5ZM.js.map} +0 -0
  190. /package/dist/{theme-MS5HDUBJ.js.map → theme-XJG6O2YU.js.map} +0 -0
  191. /package/dist/{toolPermissionSettings-4MPZVYDR.js.map → toolPermissionSettings-BXLCU7BK.js.map} +0 -0
  192. /package/dist/{tools-QW6SIJLJ.js.map → tools-UJZBVLIU.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/services/plugins/pluginRuntime.ts"],
4
- "sourcesContent": ["import { existsSync, readFileSync, statSync } from 'fs'\nimport { homedir } from 'os'\nimport { join, resolve } from 'path'\nimport { z } from 'zod'\nimport { glob as globLib } from 'glob'\nimport { getCwd } from '@utils/state'\nimport { setSessionPlugins, type SessionPlugin } from '@utils/session/sessionPlugins'\n\nconst PluginManifestSchema = z\n .object({\n name: z.string().min(1),\n })\n .passthrough()\n\nfunction expandHome(input: string): string {\n const trimmed = input.trim()\n if (trimmed === '~') return homedir()\n if (trimmed.startsWith('~/') || trimmed.startsWith('~\\\\')) {\n return join(homedir(), trimmed.slice(2))\n }\n return trimmed\n}\n\nfunction isLikelyGlob(value: string): boolean {\n return /[*?[\\]]/.test(value)\n}\n\nasync function expandPluginDirInputs(\n pluginDirs: string[],\n baseDir: string,\n): Promise<string[]> {\n const out: string[] = []\n for (const raw of pluginDirs) {\n const trimmed = String(raw ?? '').trim()\n if (!trimmed) continue\n const expanded = expandHome(trimmed)\n const abs = resolve(baseDir, expanded)\n\n if (isLikelyGlob(trimmed) || isLikelyGlob(expanded)) {\n const patternsToTry = expanded !== trimmed ? [expanded, trimmed] : [trimmed]\n let matched = false\n for (const pattern of patternsToTry) {\n try {\n const matches = await globLib(pattern, {\n cwd: baseDir,\n absolute: true,\n nodir: false,\n nocase: process.platform === 'win32',\n })\n const dirs = matches.filter(match => {\n try {\n return existsSync(match) && statSync(match).isDirectory()\n } catch {\n return false\n }\n })\n if (dirs.length > 0) {\n out.push(...dirs)\n matched = true\n break\n }\n } catch {\n }\n }\n if (matched) continue\n }\n\n out.push(abs)\n }\n\n const seen = new Set<string>()\n const unique: string[] = []\n for (const item of out) {\n const key = item\n if (seen.has(key)) continue\n seen.add(key)\n unique.push(item)\n }\n return unique\n}\n\nfunction listIfDir(path: string): string[] {\n try {\n if (!existsSync(path)) return []\n if (!statSync(path).isDirectory()) return []\n return [path]\n } catch {\n return []\n }\n}\n\nfunction fileIfExists(path: string): string[] {\n try {\n if (!existsSync(path)) return []\n if (!statSync(path).isFile()) return []\n return [path]\n } catch {\n return []\n }\n}\n\nfunction resolveManifestPaths(\n rootDir: string,\n value: unknown,\n): { dirs: string[]; files: string[] } {\n const dirs: string[] = []\n const files: string[] = []\n const list = Array.isArray(value) ? value : value ? [value] : []\n for (const item of list) {\n if (typeof item !== 'string') continue\n const abs = resolve(rootDir, item)\n dirs.push(...listIfDir(abs))\n files.push(...fileIfExists(abs))\n }\n return { dirs, files }\n}\n\nfunction loadPluginFromDir(rootDir: string): SessionPlugin {\n const primaryManifestPath = join(rootDir, '.kode-plugin', 'plugin.json')\n const legacyManifestPath = join(rootDir, '.claude-plugin', 'plugin.json')\n const manifestPath = existsSync(primaryManifestPath)\n ? primaryManifestPath\n : legacyManifestPath\n if (!existsSync(manifestPath)) {\n throw new Error(\n `Plugin manifest not found (expected .kode-plugin/plugin.json or .claude-plugin/plugin.json)`,\n )\n }\n\n let manifestRaw: string\n try {\n manifestRaw = readFileSync(manifestPath, 'utf8')\n } catch (err) {\n throw new Error(`Failed to read ${manifestPath}: ${String(err)}`)\n }\n\n let manifestJson: unknown\n try {\n manifestJson = JSON.parse(manifestRaw)\n } catch (err) {\n throw new Error(`Invalid JSON in ${manifestPath}: ${String(err)}`)\n }\n\n const parsed = PluginManifestSchema.safeParse(manifestJson)\n if (!parsed.success) {\n throw new Error(\n `Invalid plugin manifest schema in ${manifestPath}: ${parsed.error.message}`,\n )\n }\n\n const name = parsed.data.name\n const manifestCommands = resolveManifestPaths(\n rootDir,\n (parsed.data as any).commands,\n )\n const manifestAgents = resolveManifestPaths(\n rootDir,\n (parsed.data as any).agents,\n )\n const commandsDirs = [\n ...listIfDir(join(rootDir, 'commands')),\n ...manifestCommands.dirs,\n ...manifestCommands.files,\n ]\n const skillsDirs = [\n ...listIfDir(join(rootDir, 'skills')),\n ...resolveManifestPaths(rootDir, (parsed.data as any).skills).dirs,\n ]\n const agentsDirs = [\n ...listIfDir(join(rootDir, 'agents')),\n ...manifestAgents.dirs,\n ...manifestAgents.files,\n ]\n const manifestOutputStyles = resolveManifestPaths(\n rootDir,\n (parsed.data as any).outputStyles,\n )\n const outputStylesDirs = [\n ...listIfDir(join(rootDir, 'output-styles')),\n ...manifestOutputStyles.dirs,\n ...manifestOutputStyles.files,\n ]\n\n const standardHook = fileIfExists(join(rootDir, 'hooks', 'hooks.json'))\n const hookFromManifest = resolveManifestPaths(\n rootDir,\n (parsed.data as any).hooks,\n ).files\n const hooksFiles = [...standardHook, ...hookFromManifest]\n\n const mcpConfigFiles = [\n ...fileIfExists(join(rootDir, '.mcp.json')),\n ...fileIfExists(join(rootDir, '.mcp.jsonc')),\n ...resolveManifestPaths(rootDir, (parsed.data as any).mcpServers).files,\n ]\n\n return {\n name,\n rootDir,\n manifestPath,\n manifest: parsed.data,\n commandsDirs,\n skillsDirs,\n agentsDirs,\n hooksFiles,\n outputStylesDirs,\n mcpConfigFiles,\n }\n}\n\nexport async function configureSessionPlugins(args: {\n pluginDirs: string[]\n baseDir?: string\n}): Promise<{ plugins: SessionPlugin[]; errors: string[] }> {\n const baseDir = args.baseDir ?? getCwd()\n const dirs = await expandPluginDirInputs(args.pluginDirs ?? [], baseDir)\n\n const plugins: SessionPlugin[] = []\n const errors: string[] = []\n\n for (const dir of dirs) {\n try {\n plugins.push(loadPluginFromDir(dir))\n } catch (err) {\n errors.push(err instanceof Error ? err.message : String(err))\n }\n }\n\n setSessionPlugins(plugins)\n\n const { reloadCustomCommands } = await import('@services/customCommands')\n reloadCustomCommands()\n const { getCommands } = await import('@commands')\n getCommands.cache.clear?.()\n\n const { getClients, getMCPTools } = await import('@services/mcpClient')\n ;(getClients as any).cache?.clear?.()\n ;(getMCPTools as any).cache?.clear?.()\n\n const { clearOutputStyleCache } = await import('@services/outputStyles')\n clearOutputStyleCache()\n\n return { plugins, errors }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAAA,SAAS,YAAY,cAAc,gBAAgB;AACnD,SAAS,eAAe;AACxB,SAAS,MAAM,eAAe;AAC9B,SAAS,SAAS;AAClB,SAAS,QAAQ,eAAe;AAIhC,IAAM,uBAAuB,EAC1B,OAAO;AAAA,EACN,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AACxB,CAAC,EACA,YAAY;AAEf,SAAS,WAAW,OAAuB;AACzC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,YAAY,IAAK,QAAO,QAAQ;AACpC,MAAI,QAAQ,WAAW,IAAI,KAAK,QAAQ,WAAW,KAAK,GAAG;AACzD,WAAO,KAAK,QAAQ,GAAG,QAAQ,MAAM,CAAC,CAAC;AAAA,EACzC;AACA,SAAO;AACT;AAEA,SAAS,aAAa,OAAwB;AAC5C,SAAO,UAAU,KAAK,KAAK;AAC7B;AAEA,eAAe,sBACb,YACA,SACmB;AACnB,QAAM,MAAgB,CAAC;AACvB,aAAW,OAAO,YAAY;AAC5B,UAAM,UAAU,OAAO,OAAO,EAAE,EAAE,KAAK;AACvC,QAAI,CAAC,QAAS;AACd,UAAM,WAAW,WAAW,OAAO;AACnC,UAAM,MAAM,QAAQ,SAAS,QAAQ;AAErC,QAAI,aAAa,OAAO,KAAK,aAAa,QAAQ,GAAG;AACnD,YAAM,gBAAgB,aAAa,UAAU,CAAC,UAAU,OAAO,IAAI,CAAC,OAAO;AAC3E,UAAI,UAAU;AACd,iBAAW,WAAW,eAAe;AACnC,YAAI;AACF,gBAAM,UAAU,MAAM,QAAQ,SAAS;AAAA,YACrC,KAAK;AAAA,YACL,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ,QAAQ,aAAa;AAAA,UAC/B,CAAC;AACD,gBAAM,OAAO,QAAQ,OAAO,WAAS;AACnC,gBAAI;AACF,qBAAO,WAAW,KAAK,KAAK,SAAS,KAAK,EAAE,YAAY;AAAA,YAC1D,QAAQ;AACN,qBAAO;AAAA,YACT;AAAA,UACF,CAAC;AACD,cAAI,KAAK,SAAS,GAAG;AACnB,gBAAI,KAAK,GAAG,IAAI;AAChB,sBAAU;AACV;AAAA,UACF;AAAA,QACF,QAAQ;AAAA,QACR;AAAA,MACF;AACA,UAAI,QAAS;AAAA,IACf;AAEA,QAAI,KAAK,GAAG;AAAA,EACd;AAEA,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,SAAmB,CAAC;AAC1B,aAAW,QAAQ,KAAK;AACtB,UAAM,MAAM;AACZ,QAAI,KAAK,IAAI,GAAG,EAAG;AACnB,SAAK,IAAI,GAAG;AACZ,WAAO,KAAK,IAAI;AAAA,EAClB;AACA,SAAO;AACT;AAEA,SAAS,UAAU,MAAwB;AACzC,MAAI;AACF,QAAI,CAAC,WAAW,IAAI,EAAG,QAAO,CAAC;AAC/B,QAAI,CAAC,SAAS,IAAI,EAAE,YAAY,EAAG,QAAO,CAAC;AAC3C,WAAO,CAAC,IAAI;AAAA,EACd,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,SAAS,aAAa,MAAwB;AAC5C,MAAI;AACF,QAAI,CAAC,WAAW,IAAI,EAAG,QAAO,CAAC;AAC/B,QAAI,CAAC,SAAS,IAAI,EAAE,OAAO,EAAG,QAAO,CAAC;AACtC,WAAO,CAAC,IAAI;AAAA,EACd,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,SAAS,qBACP,SACA,OACqC;AACrC,QAAM,OAAiB,CAAC;AACxB,QAAM,QAAkB,CAAC;AACzB,QAAM,OAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,CAAC,KAAK,IAAI,CAAC;AAC/D,aAAW,QAAQ,MAAM;AACvB,QAAI,OAAO,SAAS,SAAU;AAC9B,UAAM,MAAM,QAAQ,SAAS,IAAI;AACjC,SAAK,KAAK,GAAG,UAAU,GAAG,CAAC;AAC3B,UAAM,KAAK,GAAG,aAAa,GAAG,CAAC;AAAA,EACjC;AACA,SAAO,EAAE,MAAM,MAAM;AACvB;AAEA,SAAS,kBAAkB,SAAgC;AACzD,QAAM,sBAAsB,KAAK,SAAS,gBAAgB,aAAa;AACvE,QAAM,qBAAqB,KAAK,SAAS,kBAAkB,aAAa;AACxE,QAAM,eAAe,WAAW,mBAAmB,IAC/C,sBACA;AACJ,MAAI,CAAC,WAAW,YAAY,GAAG;AAC7B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,kBAAc,aAAa,cAAc,MAAM;AAAA,EACjD,SAAS,KAAK;AACZ,UAAM,IAAI,MAAM,kBAAkB,YAAY,KAAK,OAAO,GAAG,CAAC,EAAE;AAAA,EAClE;AAEA,MAAI;AACJ,MAAI;AACF,mBAAe,KAAK,MAAM,WAAW;AAAA,EACvC,SAAS,KAAK;AACZ,UAAM,IAAI,MAAM,mBAAmB,YAAY,KAAK,OAAO,GAAG,CAAC,EAAE;AAAA,EACnE;AAEA,QAAM,SAAS,qBAAqB,UAAU,YAAY;AAC1D,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI;AAAA,MACR,qCAAqC,YAAY,KAAK,OAAO,MAAM,OAAO;AAAA,IAC5E;AAAA,EACF;AAEA,QAAM,OAAO,OAAO,KAAK;AACzB,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACC,OAAO,KAAa;AAAA,EACvB;AACA,QAAM,iBAAiB;AAAA,IACrB;AAAA,IACC,OAAO,KAAa;AAAA,EACvB;AACA,QAAM,eAAe;AAAA,IACnB,GAAG,UAAU,KAAK,SAAS,UAAU,CAAC;AAAA,IACtC,GAAG,iBAAiB;AAAA,IACpB,GAAG,iBAAiB;AAAA,EACtB;AACA,QAAM,aAAa;AAAA,IACjB,GAAG,UAAU,KAAK,SAAS,QAAQ,CAAC;AAAA,IACpC,GAAG,qBAAqB,SAAU,OAAO,KAAa,MAAM,EAAE;AAAA,EAChE;AACA,QAAM,aAAa;AAAA,IACjB,GAAG,UAAU,KAAK,SAAS,QAAQ,CAAC;AAAA,IACpC,GAAG,eAAe;AAAA,IAClB,GAAG,eAAe;AAAA,EACpB;AACA,QAAM,uBAAuB;AAAA,IAC3B;AAAA,IACC,OAAO,KAAa;AAAA,EACvB;AACA,QAAM,mBAAmB;AAAA,IACvB,GAAG,UAAU,KAAK,SAAS,eAAe,CAAC;AAAA,IAC3C,GAAG,qBAAqB;AAAA,IACxB,GAAG,qBAAqB;AAAA,EAC1B;AAEA,QAAM,eAAe,aAAa,KAAK,SAAS,SAAS,YAAY,CAAC;AACtE,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACC,OAAO,KAAa;AAAA,EACvB,EAAE;AACF,QAAM,aAAa,CAAC,GAAG,cAAc,GAAG,gBAAgB;AAExD,QAAM,iBAAiB;AAAA,IACrB,GAAG,aAAa,KAAK,SAAS,WAAW,CAAC;AAAA,IAC1C,GAAG,aAAa,KAAK,SAAS,YAAY,CAAC;AAAA,IAC3C,GAAG,qBAAqB,SAAU,OAAO,KAAa,UAAU,EAAE;AAAA,EACpE;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAsB,wBAAwB,MAGc;AAC1D,QAAM,UAAU,KAAK,WAAW,OAAO;AACvC,QAAM,OAAO,MAAM,sBAAsB,KAAK,cAAc,CAAC,GAAG,OAAO;AAEvE,QAAM,UAA2B,CAAC;AAClC,QAAM,SAAmB,CAAC;AAE1B,aAAW,OAAO,MAAM;AACtB,QAAI;AACF,cAAQ,KAAK,kBAAkB,GAAG,CAAC;AAAA,IACrC,SAAS,KAAK;AACZ,aAAO,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,IAC9D;AAAA,EACF;AAEA,oBAAkB,OAAO;AAEzB,QAAM,EAAE,qBAAqB,IAAI,MAAM,OAAO,8BAA0B;AACxE,uBAAqB;AACrB,QAAM,EAAE,YAAY,IAAI,MAAM,OAAO,wBAAW;AAChD,cAAY,MAAM,QAAQ;AAE1B,QAAM,EAAE,YAAY,YAAY,IAAI,MAAM,OAAO,mBAAqB;AACrE,EAAC,WAAmB,OAAO,QAAQ;AACnC,EAAC,YAAoB,OAAO,QAAQ;AAErC,QAAM,EAAE,sBAAsB,IAAI,MAAM,OAAO,4BAAwB;AACvE,wBAAsB;AAEtB,SAAO,EAAE,SAAS,OAAO;AAC3B;",
6
- "names": []
7
- }
@@ -1,48 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- getAgentPrompt,
5
- getCLISyspromptPrefix,
6
- getEnvInfo,
7
- getSystemPrompt
8
- } from "./chunk-QBHEERCF.js";
9
- import "./chunk-XXFY63TM.js";
10
- import "./chunk-4XPNRLJG.js";
11
- import "./chunk-QIHB5PYM.js";
12
- import "./chunk-Q24ZGKIE.js";
13
- import "./chunk-ZJGXEWKF.js";
14
- import "./chunk-6WELHKDA.js";
15
- import "./chunk-5P7HBXTD.js";
16
- import "./chunk-3DFBSQIT.js";
17
- import "./chunk-HIRIJ2LQ.js";
18
- import "./chunk-T6GVXTNQ.js";
19
- import "./chunk-4SNFQYCY.js";
20
- import "./chunk-WPTPPOYN.js";
21
- import "./chunk-HB2P6645.js";
22
- import "./chunk-3PDD7M4T.js";
23
- import "./chunk-T7GPUZVK.js";
24
- import "./chunk-6RZIUY5K.js";
25
- import "./chunk-7AAE6EO2.js";
26
- import "./chunk-UNNVICVU.js";
27
- import "./chunk-UUNVJZWA.js";
28
- import "./chunk-ERMQRV55.js";
29
- import "./chunk-ICTEVBLN.js";
30
- import "./chunk-A3BVXXA3.js";
31
- import "./chunk-BJSWTHRM.js";
32
- import "./chunk-SWYJOV5E.js";
33
- import "./chunk-Z3HMXDXP.js";
34
- import "./chunk-3ZNSAB7B.js";
35
- import "./chunk-BQA2EOUU.js";
36
- import "./chunk-JZDE77EH.js";
37
- import "./chunk-RQVLBMP7.js";
38
- import "./chunk-3KNGJX7Q.js";
39
- import "./chunk-TXFCNQDE.js";
40
- import "./chunk-A6PUMROK.js";
41
- import "./chunk-OUXHGDLH.js";
42
- import "./chunk-BH3Y62E3.js";
43
- export {
44
- getAgentPrompt,
45
- getCLISyspromptPrefix,
46
- getEnvInfo,
47
- getSystemPrompt
48
- };
@@ -1,50 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- __ToolUseQueueForTests,
5
- __isToolUseLikeBlockForTests,
6
- normalizeToolInput,
7
- query,
8
- runToolUse
9
- } from "./chunk-QBHEERCF.js";
10
- import "./chunk-XXFY63TM.js";
11
- import "./chunk-4XPNRLJG.js";
12
- import "./chunk-QIHB5PYM.js";
13
- import "./chunk-Q24ZGKIE.js";
14
- import "./chunk-ZJGXEWKF.js";
15
- import "./chunk-6WELHKDA.js";
16
- import "./chunk-5P7HBXTD.js";
17
- import "./chunk-3DFBSQIT.js";
18
- import "./chunk-HIRIJ2LQ.js";
19
- import "./chunk-T6GVXTNQ.js";
20
- import "./chunk-4SNFQYCY.js";
21
- import "./chunk-WPTPPOYN.js";
22
- import "./chunk-HB2P6645.js";
23
- import "./chunk-3PDD7M4T.js";
24
- import "./chunk-T7GPUZVK.js";
25
- import "./chunk-6RZIUY5K.js";
26
- import "./chunk-7AAE6EO2.js";
27
- import "./chunk-UNNVICVU.js";
28
- import "./chunk-UUNVJZWA.js";
29
- import "./chunk-ERMQRV55.js";
30
- import "./chunk-ICTEVBLN.js";
31
- import "./chunk-A3BVXXA3.js";
32
- import "./chunk-BJSWTHRM.js";
33
- import "./chunk-SWYJOV5E.js";
34
- import "./chunk-Z3HMXDXP.js";
35
- import "./chunk-3ZNSAB7B.js";
36
- import "./chunk-BQA2EOUU.js";
37
- import "./chunk-JZDE77EH.js";
38
- import "./chunk-RQVLBMP7.js";
39
- import "./chunk-3KNGJX7Q.js";
40
- import "./chunk-TXFCNQDE.js";
41
- import "./chunk-A6PUMROK.js";
42
- import "./chunk-OUXHGDLH.js";
43
- import "./chunk-BH3Y62E3.js";
44
- export {
45
- __ToolUseQueueForTests,
46
- __isToolUseLikeBlockForTests,
47
- normalizeToolInput,
48
- query,
49
- runToolUse
50
- };
@@ -1,47 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- getAllTools,
5
- getReadOnlyTools,
6
- getTools
7
- } from "./chunk-VTVTEE5N.js";
8
- import "./chunk-QBHEERCF.js";
9
- import "./chunk-XXFY63TM.js";
10
- import "./chunk-4XPNRLJG.js";
11
- import "./chunk-QIHB5PYM.js";
12
- import "./chunk-Q24ZGKIE.js";
13
- import "./chunk-ZJGXEWKF.js";
14
- import "./chunk-6WELHKDA.js";
15
- import "./chunk-5P7HBXTD.js";
16
- import "./chunk-3DFBSQIT.js";
17
- import "./chunk-HIRIJ2LQ.js";
18
- import "./chunk-T6GVXTNQ.js";
19
- import "./chunk-4SNFQYCY.js";
20
- import "./chunk-WPTPPOYN.js";
21
- import "./chunk-HB2P6645.js";
22
- import "./chunk-3PDD7M4T.js";
23
- import "./chunk-T7GPUZVK.js";
24
- import "./chunk-6RZIUY5K.js";
25
- import "./chunk-7AAE6EO2.js";
26
- import "./chunk-UNNVICVU.js";
27
- import "./chunk-UUNVJZWA.js";
28
- import "./chunk-ERMQRV55.js";
29
- import "./chunk-ICTEVBLN.js";
30
- import "./chunk-A3BVXXA3.js";
31
- import "./chunk-BJSWTHRM.js";
32
- import "./chunk-SWYJOV5E.js";
33
- import "./chunk-Z3HMXDXP.js";
34
- import "./chunk-3ZNSAB7B.js";
35
- import "./chunk-BQA2EOUU.js";
36
- import "./chunk-JZDE77EH.js";
37
- import "./chunk-RQVLBMP7.js";
38
- import "./chunk-3KNGJX7Q.js";
39
- import "./chunk-TXFCNQDE.js";
40
- import "./chunk-A6PUMROK.js";
41
- import "./chunk-OUXHGDLH.js";
42
- import "./chunk-BH3Y62E3.js";
43
- export {
44
- getAllTools,
45
- getReadOnlyTools,
46
- getTools
47
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utils/messages/userInput.tsx"],
4
- "sourcesContent": ["import { Box } from 'ink'\nimport { getCommand, hasCommand } from '@commands'\nimport { MalformedCommandError } from '@utils/text/errors'\nimport { logError } from '@utils/log'\nimport { resolve } from 'path'\nimport { lastX } from '@utils/text/generators'\nimport type { SetToolJSXFn, ToolUseContext } from '@tool'\nimport type { ContentBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'\nimport { setCwd } from '@utils/state'\nimport { getCwd } from '@utils/state'\nimport chalk from 'chalk'\nimport * as React from 'react'\nimport { UserBashInputMessage } from '@components/messages/UserBashInputMessage'\nimport { Spinner } from '@components/Spinner'\nimport { BashTool } from '@tools/BashTool/BashTool'\nimport type { Message, UserMessage } from '@query'\nimport { NO_RESPONSE_REQUESTED, createAssistantMessage, createUserMessage } from './core'\n\n\nexport async function processUserInput(\n input: string,\n mode: 'bash' | 'prompt' | 'koding',\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n options?: {\n isKodingRequest?: boolean\n kodingContext?: string\n }\n },\n pastedImages: Array<{\n placeholder: string\n data: string\n mediaType: string\n }> | null,\n): Promise<Message[]> {\n if (mode === 'bash') {\n const userMessage = createUserMessage(`<bash-input>${input}</bash-input>`)\n\n if (input.startsWith('cd ')) {\n const oldCwd = getCwd()\n const newCwd = resolve(getCwd(), input.slice(3).trim())\n try {\n await setCwd(newCwd)\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stdout>Changed directory to ${chalk.bold(`${newCwd}/`)}</bash-stdout>`,\n ),\n ]\n } catch (e) {\n logError(e)\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stderr>cwd error: ${e instanceof Error ? e.message : String(e)}</bash-stderr>`,\n ),\n ]\n }\n }\n\n setToolJSX({\n jsx: (\n <Box flexDirection=\"column\" marginTop={1}>\n <UserBashInputMessage\n addMargin={false}\n param={{ text: `<bash-input>${input}</bash-input>`, type: 'text' }}\n />\n <Spinner />\n </Box>\n ),\n shouldHidePromptInput: false,\n })\n try {\n const validationResult = await BashTool.validateInput(\n { command: input },\n { commandSource: 'user_bash_mode' } as any,\n )\n if (!validationResult.result) {\n return [userMessage, createAssistantMessage(validationResult.message)]\n }\n const { data } = await lastX(\n BashTool.call({ command: input }, {\n ...(context as any),\n commandSource: 'user_bash_mode',\n } as any),\n )\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stdout>${data.stdout}</bash-stdout><bash-stderr>${data.stderr}</bash-stderr>`,\n ),\n ]\n } catch (e) {\n return [\n userMessage,\n createAssistantMessage(\n `<bash-stderr>Command failed: ${e instanceof Error ? e.message : String(e)}</bash-stderr>`,\n ),\n ]\n } finally {\n setToolJSX(null)\n }\n }\n else if (mode === 'koding') {\n const userMessage = createUserMessage(\n `<koding-input>${input}</koding-input>`,\n )\n userMessage.options = {\n ...userMessage.options,\n isKodingRequest: true,\n }\n\n return [userMessage]\n }\n\n if (context.options?.disableSlashCommands !== true && input.startsWith('/')) {\n const words = input.slice(1).split(' ')\n let commandName = words[0]\n if (words.length > 1 && words[1] === '(MCP)') {\n commandName = commandName + ' (MCP)'\n }\n if (!commandName) {\n return [\n createAssistantMessage('Commands are in the form `/command [args]`'),\n ]\n }\n\n if (!hasCommand(commandName, context.options.commands)) {\n\n return [createUserMessage(input)]\n }\n\n const args = input.slice(commandName.length + 2)\n const newMessages = await getMessagesForSlashCommand(\n commandName,\n args,\n setToolJSX,\n context,\n )\n\n if (newMessages.length === 0) {\n return []\n }\n\n if (\n newMessages.length === 2 &&\n newMessages[0]!.type === 'user' &&\n newMessages[1]!.type === 'assistant' &&\n typeof newMessages[1]!.message.content === 'string' &&\n newMessages[1]!.message.content.startsWith('Unknown command:')\n ) {\n return newMessages\n }\n\n if (newMessages.length === 2) {\n return newMessages\n }\n\n\n return newMessages\n }\n\n\n const isKodingRequest = context.options?.isKodingRequest === true\n const kodingContextInfo = context.options?.kodingContext\n\n let userMessage: UserMessage\n\n let processedInput =\n isKodingRequest && kodingContextInfo\n ? `${kodingContextInfo}\\n\\n${input}`\n : input\n\n if (processedInput.includes('!`') || processedInput.includes('@')) {\n try {\n const { executeBashCommands } = await import('@services/customCommands')\n\n if (processedInput.includes('!`')) {\n processedInput = await executeBashCommands(processedInput)\n }\n\n if (processedInput.includes('@')) {\n const { processMentions } = await import('@services/mentionProcessor')\n await processMentions(processedInput)\n }\n } catch (error) {\n logError(error)\n }\n }\n\n if (pastedImages && pastedImages.length > 0) {\n const occurrences = pastedImages\n .map(img => ({ img, index: processedInput.indexOf(img.placeholder) }))\n .filter(o => o.index >= 0)\n .sort((a, b) => a.index - b.index)\n\n const blocks: ContentBlockParam[] = []\n let cursor = 0\n\n for (const { img, index } of occurrences) {\n const before = processedInput.slice(cursor, index)\n if (before) {\n blocks.push({ type: 'text', text: before })\n }\n blocks.push({\n type: 'image',\n source: {\n type: 'base64',\n media_type: img.mediaType,\n data: img.data,\n },\n } as any)\n cursor = index + img.placeholder.length\n }\n\n const after = processedInput.slice(cursor)\n if (after) {\n blocks.push({ type: 'text', text: after })\n }\n\n if (!blocks.some(b => b.type === 'text')) {\n blocks.push({ type: 'text', text: '' })\n }\n\n userMessage = createUserMessage(blocks)\n } else {\n userMessage = createUserMessage(processedInput)\n }\n\n if (isKodingRequest) {\n userMessage.options = {\n ...userMessage.options,\n isKodingRequest: true,\n }\n }\n\n return [userMessage]\n}\n\nasync function getMessagesForSlashCommand(\n commandName: string,\n args: string,\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n },\n): Promise<Message[]> {\n try {\n const command = getCommand(commandName, context.options.commands)\n switch (command.type) {\n case 'local-jsx': {\n return new Promise(resolve => {\n command\n .call(\n r => {\n setToolJSX(null)\n resolve([\n createUserMessage(`<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`),\n r\n ? createAssistantMessage(r)\n : createAssistantMessage(NO_RESPONSE_REQUESTED),\n ])\n },\n context,\n args,\n )\n .then(jsx => {\n if (!jsx) return\n setToolJSX({ jsx, shouldHidePromptInput: true })\n })\n })\n }\n case 'local': {\n const userMessage =\n createUserMessage(`<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`)\n\n try {\n const result = await command.call(args, {\n ...context,\n options: {\n commands: context.options.commands || [],\n tools: context.options.tools || [],\n slowAndCapableModel:\n context.options.slowAndCapableModel || 'main',\n },\n })\n\n return [\n userMessage,\n createAssistantMessage(\n `<local-command-stdout>${result}</local-command-stdout>`,\n ),\n ]\n } catch (e) {\n logError(e)\n return [\n userMessage,\n createAssistantMessage(\n `<local-command-stderr>${String(e)}</local-command-stderr>`,\n ),\n ]\n }\n }\n case 'prompt': {\n const commandName = command.userFacingName()\n const progressMessage = (command as any).progressMessage || 'running'\n const metaMessage =\n createUserMessage(`<command-name>${commandName}</command-name>\n <command-message>${commandName} is ${progressMessage}\u2026</command-message>\n <command-args>${args}</command-args>`)\n\n const prompt = await command.getPromptForCommand(args)\n const expandedMessages = prompt.map(msg => {\n const userMessage = createUserMessage(\n typeof msg.content === 'string'\n ? msg.content\n : msg.content\n .map(block => (block.type === 'text' ? block.text : ''))\n .join('\\n'),\n )\n\n userMessage.options = {\n ...userMessage.options,\n isCustomCommand: true,\n commandName: command.userFacingName(),\n commandArgs: args,\n }\n\n return userMessage\n })\n\n return [metaMessage, ...expandedMessages]\n }\n }\n } catch (e) {\n if (e instanceof MalformedCommandError) {\n return [createAssistantMessage(e.message)]\n }\n throw e\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["userMessage", "resolve", "commandName"]
7
- }
File without changes