pybao-cli 1.5.51 → 1.5.52

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 (217) hide show
  1. package/dist/REPL-CDBGUX7H.js +53 -0
  2. package/dist/{acp-OGXPDTPB.js → acp-KC4VUW7Q.js} +47 -47
  3. package/dist/{agentsValidate-7USQLEWU.js → agentsValidate-YGJMW4T4.js} +9 -9
  4. package/dist/{ask-KTRDNR5F.js → ask-YHWMV475.js} +46 -46
  5. package/dist/{autoUpdater-YTVTFZKD.js → autoUpdater-76RMCNA7.js} +4 -4
  6. package/dist/{blockParser-QPLEX5NJ.js → blockParser-RZPICWAA.js} +2 -2
  7. package/dist/{chunk-D2MHLZDN.js → chunk-2EQA5NLL.js} +1 -1
  8. package/dist/{chunk-A2QSQWOQ.js → chunk-33EYH7S3.js} +5 -5
  9. package/dist/{chunk-I6GA6HKT.js → chunk-3I35GELX.js} +5 -5
  10. package/dist/{chunk-OLQLK3UC.js → chunk-4MAX5UNY.js} +1 -1
  11. package/dist/{chunk-CXWYHX64.js → chunk-4UQCXDKA.js} +4 -4
  12. package/dist/{chunk-WZDDUIIK.js → chunk-6QSG5OON.js} +5 -5
  13. package/dist/{chunk-TKU3UJXS.js → chunk-AZF3LTDE.js} +3 -3
  14. package/dist/{chunk-726GW5OD.js → chunk-CBDJJ2WQ.js} +2 -2
  15. package/dist/{chunk-56FKUXNO.js → chunk-DPE2QUR4.js} +4 -4
  16. package/dist/{chunk-UMOI4SIG.js → chunk-DYLRL3GG.js} +1 -1
  17. package/dist/{chunk-F4AXICO7.js → chunk-EXNV3ROJ.js} +1 -1
  18. package/dist/{chunk-QHRHQ4TE.js → chunk-FNMZKMUC.js} +2 -2
  19. package/dist/{chunk-RDDHG7KT.js → chunk-HSOB4XJ2.js} +1 -1
  20. package/dist/{chunk-PWHPXHNR.js → chunk-I42N2MZA.js} +3 -3
  21. package/dist/{chunk-5C3V4WBH.js → chunk-JGECWVPT.js} +1160 -65
  22. package/dist/{chunk-LG4DZXZE.js → chunk-KPZ4UMNV.js} +1 -1
  23. package/dist/{chunk-FTPQJIPL.js → chunk-KQBUAEA5.js} +4 -4
  24. package/dist/{chunk-UIKYSSZX.js → chunk-L2JZIHLB.js} +6 -6
  25. package/dist/{chunk-X6MCOKYP.js → chunk-NQJAXQZX.js} +3 -3
  26. package/dist/{chunk-PGRCNKEQ.js → chunk-O6CVVWZV.js} +1 -1
  27. package/dist/{chunk-HM2PO36Q.js → chunk-OEHXDSEI.js} +4 -4
  28. package/dist/{chunk-GZOD5652.js → chunk-PA5FTBIQ.js} +2 -2
  29. package/dist/{chunk-YEUUN3PW.js → chunk-QEPBMPEE.js} +1 -1
  30. package/dist/{chunk-5AGDLQAW.js → chunk-QQ27ECXF.js} +1 -1
  31. package/dist/{chunk-NXWVCWZU.js → chunk-QYVB7FJ4.js} +1 -1
  32. package/dist/{chunk-EEOIMMFC.js → chunk-R64GVTIZ.js} +3 -3
  33. package/dist/{chunk-276WD5RN.js → chunk-RETS7G2B.js} +6 -6
  34. package/dist/{chunk-TGGCRPZR.js → chunk-SZS6SEDB.js} +1 -1
  35. package/dist/{chunk-GUNRUYLP.js → chunk-UCNZU6OO.js} +2 -2
  36. package/dist/{chunk-TZGJRTAC.js → chunk-UG7ZFONK.js} +4 -4
  37. package/dist/{chunk-XTFXKDRC.js → chunk-VFFYWI27.js} +4 -4
  38. package/dist/{chunk-OMELVAJD.js → chunk-YQ6JLMLS.js} +1 -1
  39. package/dist/{chunk-ESKGSE6G.js → chunk-ZFLQSIXD.js} +3 -3
  40. package/dist/{chunk-CLYWO4WT.js → chunk-ZWTGVUTI.js} +3 -3
  41. package/dist/{cli-KFO36PW7.js → cli-JMJIGYNF.js} +120 -120
  42. package/dist/commands-N4RLEJU6.js +57 -0
  43. package/dist/{config-UGXKX5W7.js → config-6AW7SYEB.js} +6 -6
  44. package/dist/{context-TDXVLXJZ.js → context-VGBWHZ57.js} +9 -9
  45. package/dist/{conversationPersistence-ATHSGPCA.js → conversationPersistence-AAJPHPUT.js} +4 -4
  46. package/dist/{conversationTracker-IGKMS7I2.js → conversationTracker-MVX6VQG2.js} +5 -5
  47. package/dist/{costTracker-DJVFVAVZ.js → costTracker-KBXHS4NS.js} +2 -2
  48. package/dist/{customCommands-5MIZHJIB.js → customCommands-PJI43HDH.js} +6 -6
  49. package/dist/{env-3KNLQRPA.js → env-JEHV2OD5.js} +3 -3
  50. package/dist/{file-DFXDFI6W.js → file-G3IOPSJE.js} +5 -5
  51. package/dist/index.js +4 -4
  52. package/dist/{llm-MRDYTVAB.js → llm-CVILTZMI.js} +50 -50
  53. package/dist/{llmLazy-2O7VC463.js → llmLazy-TS22QBZC.js} +2 -2
  54. package/dist/{loader-FZWD5WHH.js → loader-DA33SOZU.js} +7 -7
  55. package/dist/{lsp-2TM75CW4.js → lsp-M5NJ7YC7.js} +9 -9
  56. package/dist/{lspAnchor-XGTUMZDM.js → lspAnchor-LUE27QI2.js} +10 -10
  57. package/dist/{mcp-FITQROXI.js → mcp-3R7KNW6M.js} +10 -10
  58. package/dist/{mentionProcessor-L5WCXBIE.js → mentionProcessor-KM7DJSIF.js} +8 -8
  59. package/dist/{messages-4S23AYLZ.js → messages-EUS4CRVP.js} +3 -3
  60. package/dist/{model-ECABFXED.js → model-3GE72U3P.js} +7 -7
  61. package/dist/{openai-AAHVW6AQ.js → openai-3TL5XAIV.js} +8 -8
  62. package/dist/{outputStyles-2QWBQSS4.js → outputStyles-7FC4BJZX.js} +7 -7
  63. package/dist/{pluginRuntime-TDH3JKLN.js → pluginRuntime-IWKORZEI.js} +8 -8
  64. package/dist/{pluginValidation-FBGQ4JDV.js → pluginValidation-DC2PWTS3.js} +8 -8
  65. package/dist/prompts-X5RHKH65.js +59 -0
  66. package/dist/{pybAgentSessionId-EPCAMQ25.js → pybAgentSessionId-3LL4RMFU.js} +2 -2
  67. package/dist/{pybAgentSessionLoad-WEEMBEOX.js → pybAgentSessionLoad-DCESKISD.js} +6 -6
  68. package/dist/{pybAgentSessionResume-FXJA5YEY.js → pybAgentSessionResume-CIJIMHTT.js} +8 -8
  69. package/dist/{pybAgentStreamJson-EQPO52B6.js → pybAgentStreamJson-K7E4VEFE.js} +2 -2
  70. package/dist/{pybAgentStreamJsonSession-I3QVTPS4.js → pybAgentStreamJsonSession-SZMCWTVW.js} +4 -4
  71. package/dist/{pybAgentStructuredStdio-ROCSOGNT.js → pybAgentStructuredStdio-T6JJLJVC.js} +3 -3
  72. package/dist/{pybHooks-QVFTX2NF.js → pybHooks-CYAJNZ6G.js} +7 -7
  73. package/dist/query-7PFFQCW2.js +57 -0
  74. package/dist/{registry-R642XWSX.js → registry-HF5Y4WZS.js} +6 -6
  75. package/dist/{replSessionBridge-EBXNFUAD.js → replSessionBridge-4XEXXNRH.js} +3 -3
  76. package/dist/{responsesStreaming-NPGJLPV3.js → responsesStreaming-RZW2QVJU.js} +3 -3
  77. package/dist/{ripgrep-ZCE3BIKN.js → ripgrep-W5ULQHU4.js} +4 -4
  78. package/dist/{skillMarketplace-O2RFNXT4.js → skillMarketplace-WKOGEWIO.js} +4 -4
  79. package/dist/{smart-edit-AWHJDSU6.js → smart-edit-EQBEMPKQ.js} +2 -2
  80. package/dist/{state-GMP5BAO3.js → state-GWKESQ7O.js} +3 -3
  81. package/dist/theme-VRKM2HNU.js +14 -0
  82. package/dist/{toolPermissionContext-BSFV23IL.js → toolPermissionContext-TAUII5GX.js} +2 -2
  83. package/dist/{toolPermissionSettings-SLI774QB.js → toolPermissionSettings-Z2I77LVO.js} +9 -9
  84. package/dist/tools-VM7IZKXZ.js +57 -0
  85. package/dist/{userInput-73ASWIUB.js → userInput-Q2HIIFPM.js} +49 -49
  86. package/dist/{uuid-CVHEFGW4.js → uuid-EJN2AIBK.js} +2 -2
  87. package/package.json +3 -3
  88. package/dist/REPL-VQEZ7GBU.js +0 -53
  89. package/dist/REPL-VQEZ7GBU.js.map +0 -7
  90. package/dist/acp-OGXPDTPB.js.map +0 -7
  91. package/dist/agentsValidate-7USQLEWU.js.map +0 -7
  92. package/dist/ask-KTRDNR5F.js.map +0 -7
  93. package/dist/autoUpdater-YTVTFZKD.js.map +0 -7
  94. package/dist/blockParser-QPLEX5NJ.js.map +0 -7
  95. package/dist/chunk-276WD5RN.js.map +0 -7
  96. package/dist/chunk-2RXKUCFS.js.map +0 -7
  97. package/dist/chunk-3DFBSQIT.js.map +0 -7
  98. package/dist/chunk-56FKUXNO.js.map +0 -7
  99. package/dist/chunk-5AGDLQAW.js.map +0 -7
  100. package/dist/chunk-5C3V4WBH.js.map +0 -7
  101. package/dist/chunk-5JHD6MUL.js.map +0 -7
  102. package/dist/chunk-5P7HBXTD.js.map +0 -7
  103. package/dist/chunk-726GW5OD.js.map +0 -7
  104. package/dist/chunk-A2QSQWOQ.js.map +0 -7
  105. package/dist/chunk-A3BVXXA3.js.map +0 -7
  106. package/dist/chunk-B6IMQJZM.js.map +0 -7
  107. package/dist/chunk-BJSWTHRM.js.map +0 -7
  108. package/dist/chunk-BKCAVW2G.js.map +0 -7
  109. package/dist/chunk-CLYWO4WT.js.map +0 -7
  110. package/dist/chunk-CXWYHX64.js.map +0 -7
  111. package/dist/chunk-CZZKRPE2.js.map +0 -7
  112. package/dist/chunk-D2MHLZDN.js.map +0 -7
  113. package/dist/chunk-EEOIMMFC.js.map +0 -7
  114. package/dist/chunk-ESKGSE6G.js.map +0 -7
  115. package/dist/chunk-F4AXICO7.js.map +0 -7
  116. package/dist/chunk-FTPQJIPL.js.map +0 -7
  117. package/dist/chunk-GUNRUYLP.js.map +0 -7
  118. package/dist/chunk-GZOD5652.js.map +0 -7
  119. package/dist/chunk-HM2PO36Q.js.map +0 -7
  120. package/dist/chunk-I3J4JYES.js.map +0 -7
  121. package/dist/chunk-I6GA6HKT.js.map +0 -7
  122. package/dist/chunk-KFEHHKZ2.js.map +0 -7
  123. package/dist/chunk-LG4DZXZE.js.map +0 -7
  124. package/dist/chunk-MWPFU2KU.js.map +0 -7
  125. package/dist/chunk-NXWVCWZU.js.map +0 -7
  126. package/dist/chunk-OLQLK3UC.js.map +0 -7
  127. package/dist/chunk-OMELVAJD.js.map +0 -7
  128. package/dist/chunk-OUXHGDLH.js.map +0 -7
  129. package/dist/chunk-PGRCNKEQ.js.map +0 -7
  130. package/dist/chunk-PWHPXHNR.js.map +0 -7
  131. package/dist/chunk-QHRHQ4TE.js.map +0 -7
  132. package/dist/chunk-QWIBSCDN.js.map +0 -7
  133. package/dist/chunk-RDDHG7KT.js.map +0 -7
  134. package/dist/chunk-RQVLBMP7.js.map +0 -7
  135. package/dist/chunk-TFHFYID3.js.map +0 -7
  136. package/dist/chunk-TGGCRPZR.js.map +0 -7
  137. package/dist/chunk-TKU3UJXS.js.map +0 -7
  138. package/dist/chunk-TZGJRTAC.js.map +0 -7
  139. package/dist/chunk-UIKYSSZX.js.map +0 -7
  140. package/dist/chunk-UMOI4SIG.js.map +0 -7
  141. package/dist/chunk-UNNVICVU.js.map +0 -7
  142. package/dist/chunk-UZ34JEUK.js.map +0 -7
  143. package/dist/chunk-WZDDUIIK.js.map +0 -7
  144. package/dist/chunk-X6MCOKYP.js.map +0 -7
  145. package/dist/chunk-XKYHFZEC.js.map +0 -7
  146. package/dist/chunk-XTFXKDRC.js.map +0 -7
  147. package/dist/chunk-YEUUN3PW.js.map +0 -7
  148. package/dist/cli-KFO36PW7.js.map +0 -7
  149. package/dist/commands-DKTG7VIQ.js +0 -57
  150. package/dist/commands-DKTG7VIQ.js.map +0 -7
  151. package/dist/config-UGXKX5W7.js.map +0 -7
  152. package/dist/context-TDXVLXJZ.js.map +0 -7
  153. package/dist/conversationPersistence-ATHSGPCA.js.map +0 -7
  154. package/dist/conversationTracker-IGKMS7I2.js.map +0 -7
  155. package/dist/costTracker-DJVFVAVZ.js.map +0 -7
  156. package/dist/customCommands-5MIZHJIB.js.map +0 -7
  157. package/dist/env-3KNLQRPA.js.map +0 -7
  158. package/dist/file-DFXDFI6W.js.map +0 -7
  159. package/dist/index.js.map +0 -7
  160. package/dist/llm-MRDYTVAB.js.map +0 -7
  161. package/dist/llmLazy-2O7VC463.js.map +0 -7
  162. package/dist/loader-FZWD5WHH.js.map +0 -7
  163. package/dist/lsp-2TM75CW4.js.map +0 -7
  164. package/dist/lspAnchor-XGTUMZDM.js.map +0 -7
  165. package/dist/mcp-FITQROXI.js.map +0 -7
  166. package/dist/mentionProcessor-L5WCXBIE.js.map +0 -7
  167. package/dist/messages-4S23AYLZ.js.map +0 -7
  168. package/dist/model-ECABFXED.js.map +0 -7
  169. package/dist/openai-AAHVW6AQ.js.map +0 -7
  170. package/dist/outputStyles-2QWBQSS4.js.map +0 -7
  171. package/dist/pluginRuntime-TDH3JKLN.js.map +0 -7
  172. package/dist/pluginValidation-FBGQ4JDV.js.map +0 -7
  173. package/dist/prompts-PLA42YDC.js +0 -59
  174. package/dist/prompts-PLA42YDC.js.map +0 -7
  175. package/dist/pybAgentSessionId-EPCAMQ25.js.map +0 -7
  176. package/dist/pybAgentSessionLoad-WEEMBEOX.js.map +0 -7
  177. package/dist/pybAgentSessionResume-FXJA5YEY.js.map +0 -7
  178. package/dist/pybAgentStreamJson-EQPO52B6.js.map +0 -7
  179. package/dist/pybAgentStreamJsonSession-I3QVTPS4.js.map +0 -7
  180. package/dist/pybAgentStructuredStdio-ROCSOGNT.js.map +0 -7
  181. package/dist/pybHooks-QVFTX2NF.js.map +0 -7
  182. package/dist/query-GEX7UFS4.js +0 -57
  183. package/dist/query-GEX7UFS4.js.map +0 -7
  184. package/dist/registry-R642XWSX.js.map +0 -7
  185. package/dist/replSessionBridge-EBXNFUAD.js.map +0 -7
  186. package/dist/responsesStreaming-NPGJLPV3.js.map +0 -7
  187. package/dist/ripgrep-ZCE3BIKN.js.map +0 -7
  188. package/dist/skillMarketplace-O2RFNXT4.js.map +0 -7
  189. package/dist/smart-edit-AWHJDSU6.js.map +0 -7
  190. package/dist/state-GMP5BAO3.js.map +0 -7
  191. package/dist/theme-BXH5IJVI.js +0 -14
  192. package/dist/theme-BXH5IJVI.js.map +0 -7
  193. package/dist/toolPermissionContext-BSFV23IL.js.map +0 -7
  194. package/dist/toolPermissionSettings-SLI774QB.js.map +0 -7
  195. package/dist/tools-GEQDCFN6.js +0 -57
  196. package/dist/tools-GEQDCFN6.js.map +0 -7
  197. package/dist/userInput-73ASWIUB.js.map +0 -7
  198. package/dist/uuid-CVHEFGW4.js.map +0 -7
  199. /package/dist/{chunk-UZ34JEUK.js → chunk-7HEKZ73X.js} +0 -0
  200. /package/dist/{chunk-5JHD6MUL.js → chunk-ADD7XJ5F.js} +0 -0
  201. /package/dist/{chunk-B6IMQJZM.js → chunk-DRSLDSBY.js} +0 -0
  202. /package/dist/{chunk-KFEHHKZ2.js → chunk-F3JSDBR6.js} +0 -0
  203. /package/dist/{chunk-QWIBSCDN.js → chunk-GEEDQS2I.js} +0 -0
  204. /package/dist/{chunk-2RXKUCFS.js → chunk-ISMRCABJ.js} +0 -0
  205. /package/dist/{chunk-MWPFU2KU.js → chunk-JVKJ7J5H.js} +0 -0
  206. /package/dist/{chunk-BJSWTHRM.js → chunk-KNUG3M6O.js} +0 -0
  207. /package/dist/{chunk-UNNVICVU.js → chunk-LG65MFKB.js} +0 -0
  208. /package/dist/{chunk-CZZKRPE2.js → chunk-MGN3VYPN.js} +0 -0
  209. /package/dist/{chunk-A3BVXXA3.js → chunk-OQEZC7X2.js} +0 -0
  210. /package/dist/{chunk-I3J4JYES.js → chunk-OYT6EI36.js} +0 -0
  211. /package/dist/{chunk-RQVLBMP7.js → chunk-PDH2QHLY.js} +0 -0
  212. /package/dist/{chunk-5P7HBXTD.js → chunk-QAMAR4LW.js} +0 -0
  213. /package/dist/{chunk-TFHFYID3.js → chunk-TNCBVAVV.js} +0 -0
  214. /package/dist/{chunk-XKYHFZEC.js → chunk-U6BMHOQT.js} +0 -0
  215. /package/dist/{chunk-OUXHGDLH.js → chunk-VEHLCRJN.js} +0 -0
  216. /package/dist/{chunk-3DFBSQIT.js → chunk-XZG5WCDK.js} +0 -0
  217. /package/dist/{chunk-BKCAVW2G.js → chunk-ZY2PESP4.js} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/services/context/mentionProcessor.ts"],
4
- "sourcesContent": ["import { emitReminderEvent } from '@services/systemReminder'\nimport { getAvailableAgentTypes } from '@utils/agent/loader'\nimport { existsSync } from 'fs'\nimport { resolve } from 'path'\nimport { getCwd } from '@utils/state'\nimport { debug as debugLogger } from '@utils/log/debugLogger'\nimport { logError } from '@utils/log'\n\nexport interface MentionContext {\n type: 'agent' | 'file'\n mention: string\n resolved: string\n exists: boolean\n metadata?: any\n}\n\nexport interface ProcessedMentions {\n agents: MentionContext[]\n files: MentionContext[]\n hasAgentMentions: boolean\n hasFileMentions: boolean\n}\n\nclass MentionProcessorService {\n private static readonly MENTION_PATTERNS = {\n runAgent: /@(run-agent-[\\w\\-]+)/g,\n agent: /@(agent-[\\w\\-]+)/g,\n askModel: /@(ask-[\\w\\-]+)/g,\n file: /@(?:\"([^\"\\n]+)\"|'([^'\\n]+)'|([a-zA-Z0-9/._~:\\\\\\\\-]+))/g,\n } as const\n\n private agentCache: Map<string, boolean> = new Map()\n private lastAgentCheck: number = 0\n private CACHE_TTL = 60_000\n\n public async processMentions(input: string): Promise<ProcessedMentions> {\n const result: ProcessedMentions = {\n agents: [],\n files: [],\n hasAgentMentions: false,\n hasFileMentions: false,\n }\n\n try {\n const agentMentions = this.extractAgentMentions(input)\n if (agentMentions.length > 0) {\n await this.refreshAgentCache()\n\n for (const { mention, agentType, isAskModel } of agentMentions) {\n if (isAskModel || this.agentCache.has(agentType)) {\n result.agents.push({\n type: 'agent',\n mention,\n resolved: agentType,\n exists: true,\n metadata: isAskModel ? { type: 'ask-model' } : undefined,\n })\n result.hasAgentMentions = true\n\n this.emitAgentMentionEvent(mention, agentType, isAskModel)\n }\n }\n }\n\n const fileMatches = [\n ...input.matchAll(MentionProcessorService.MENTION_PATTERNS.file),\n ]\n const processedAgentMentions = new Set(\n agentMentions.map(am => am.mention),\n )\n\n for (const match of fileMatches) {\n const rawMention = match[0]?.slice(1) || ''\n const mention = (match[1] ?? match[2] ?? match[3] ?? '').trim()\n\n if (\n mention.startsWith('run-agent-') ||\n mention.startsWith('agent-') ||\n mention.startsWith('ask-') ||\n processedAgentMentions.has(mention)\n ) {\n continue\n }\n\n if (!mention) continue\n const filePath = this.resolveFilePath(\n this.normalizeFileMentionPath(mention),\n )\n if (existsSync(filePath)) {\n result.files.push({\n type: 'file',\n mention: rawMention || mention,\n resolved: filePath,\n exists: true,\n })\n result.hasFileMentions = true\n\n emitReminderEvent('file:mentioned', {\n filePath: filePath,\n originalMention: rawMention || mention,\n timestamp: Date.now(),\n })\n }\n }\n\n return result\n } catch (error) {\n logError(error)\n debugLogger.warn('MENTION_PROCESSOR_PROCESS_FAILED', {\n input: input.substring(0, 100) + (input.length > 100 ? '...' : ''),\n error: error instanceof Error ? error.message : error,\n })\n\n return {\n agents: [],\n files: [],\n hasAgentMentions: false,\n hasFileMentions: false,\n }\n }\n }\n\n private resolveFilePath(mention: string): string {\n return resolve(getCwd(), mention)\n }\n\n private normalizeFileMentionPath(mention: string): string {\n return mention.replace(/\\\\ /g, ' ')\n }\n\n private async refreshAgentCache(): Promise<void> {\n const now = Date.now()\n if (now - this.lastAgentCheck < this.CACHE_TTL) {\n return\n }\n\n try {\n const agents = await getAvailableAgentTypes()\n const previousCacheSize = this.agentCache.size\n this.agentCache.clear()\n\n for (const agent of agents) {\n this.agentCache.set(agent.agentType, true)\n }\n\n this.lastAgentCheck = now\n\n if (agents.length !== previousCacheSize) {\n debugLogger.info('MENTION_PROCESSOR_CACHE_REFRESHED', {\n agentCount: agents.length,\n previousCacheSize,\n cacheAge: now - this.lastAgentCheck,\n })\n }\n } catch (error) {\n logError(error)\n debugLogger.warn('MENTION_PROCESSOR_CACHE_REFRESH_FAILED', {\n error: error instanceof Error ? error.message : error,\n cacheSize: this.agentCache.size,\n lastRefresh: new Date(this.lastAgentCheck).toISOString(),\n })\n }\n }\n\n private extractAgentMentions(\n input: string,\n ): Array<{ mention: string; agentType: string; isAskModel: boolean }> {\n const mentions: Array<{\n mention: string\n agentType: string\n isAskModel: boolean\n }> = []\n\n const runAgentMatches = [\n ...input.matchAll(MentionProcessorService.MENTION_PATTERNS.runAgent),\n ]\n for (const match of runAgentMatches) {\n const mention = match[1]\n const agentType = mention.replace(/^run-agent-/, '')\n mentions.push({ mention, agentType, isAskModel: false })\n }\n\n const agentMatches = [\n ...input.matchAll(MentionProcessorService.MENTION_PATTERNS.agent),\n ]\n for (const match of agentMatches) {\n const mention = match[1]\n const agentType = mention.replace(/^agent-/, '')\n mentions.push({ mention, agentType, isAskModel: false })\n }\n\n const askModelMatches = [\n ...input.matchAll(MentionProcessorService.MENTION_PATTERNS.askModel),\n ]\n for (const match of askModelMatches) {\n const mention = match[1]\n mentions.push({ mention, agentType: mention, isAskModel: true })\n }\n\n return mentions\n }\n\n private emitAgentMentionEvent(\n mention: string,\n agentType: string,\n isAskModel: boolean,\n ): void {\n try {\n const eventData = {\n originalMention: mention,\n timestamp: Date.now(),\n }\n\n if (isAskModel) {\n emitReminderEvent('ask-model:mentioned', {\n ...eventData,\n modelName: mention,\n })\n } else {\n emitReminderEvent('agent:mentioned', {\n ...eventData,\n agentType,\n })\n }\n\n debugLogger.info('MENTION_PROCESSOR_EVENT_EMITTED', {\n type: isAskModel ? 'ask-model' : 'agent',\n mention,\n agentType: isAskModel ? undefined : agentType,\n })\n } catch (error) {\n debugLogger.error('MENTION_PROCESSOR_EVENT_FAILED', {\n mention,\n agentType,\n isAskModel,\n error: error instanceof Error ? error.message : error,\n })\n }\n }\n\n public clearCache(): void {\n this.agentCache.clear()\n this.lastAgentCheck = 0\n }\n}\n\nexport const mentionProcessor = new MentionProcessorService()\n\nexport const processMentions = (input: string) =>\n mentionProcessor.processMentions(input)\n\nexport const clearMentionCache = () => mentionProcessor.clearCache()\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -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, '.pyb-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 .pyb-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,eAAe,aAAa;AACtE,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,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,59 +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-5C3V4WBH.js";
9
- import "./chunk-YEUUN3PW.js";
10
- import "./chunk-I6GA6HKT.js";
11
- import "./chunk-726GW5OD.js";
12
- import "./chunk-5P7HBXTD.js";
13
- import "./chunk-EEOIMMFC.js";
14
- import "./chunk-D2MHLZDN.js";
15
- import "./chunk-NXWVCWZU.js";
16
- import "./chunk-F4AXICO7.js";
17
- import "./chunk-WZDDUIIK.js";
18
- import "./chunk-TZGJRTAC.js";
19
- import "./chunk-CLYWO4WT.js";
20
- import "./chunk-XKYHFZEC.js";
21
- import "./chunk-CXWYHX64.js";
22
- import "./chunk-A2QSQWOQ.js";
23
- import "./chunk-OLQLK3UC.js";
24
- import "./chunk-HM2PO36Q.js";
25
- import "./chunk-UNNVICVU.js";
26
- import "./chunk-GZOD5652.js";
27
- import "./chunk-56FKUXNO.js";
28
- import "./chunk-A3BVXXA3.js";
29
- import "./chunk-GUNRUYLP.js";
30
- import "./chunk-3DFBSQIT.js";
31
- import "./chunk-B6IMQJZM.js";
32
- import "./chunk-OUXHGDLH.js";
33
- import "./chunk-QHRHQ4TE.js";
34
- import "./chunk-QWIBSCDN.js";
35
- import "./chunk-2RXKUCFS.js";
36
- import "./chunk-UIKYSSZX.js";
37
- import "./chunk-TFHFYID3.js";
38
- import "./chunk-XTFXKDRC.js";
39
- import "./chunk-UMOI4SIG.js";
40
- import "./chunk-UZ34JEUK.js";
41
- import "./chunk-PWHPXHNR.js";
42
- import "./chunk-BJSWTHRM.js";
43
- import "./chunk-TKU3UJXS.js";
44
- import "./chunk-276WD5RN.js";
45
- import "./chunk-KFEHHKZ2.js";
46
- import "./chunk-RDDHG7KT.js";
47
- import "./chunk-TGGCRPZR.js";
48
- import "./chunk-FTPQJIPL.js";
49
- import "./chunk-RQVLBMP7.js";
50
- import "./chunk-PGRCNKEQ.js";
51
- import "./chunk-LG4DZXZE.js";
52
- import "./chunk-X6MCOKYP.js";
53
- import "./chunk-I3J4JYES.js";
54
- export {
55
- getAgentPrompt,
56
- getCLISyspromptPrefix,
57
- getEnvInfo,
58
- getSystemPrompt
59
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utils/protocol/pybAgentStreamJsonSession.ts"],
4
- "sourcesContent": ["import type { Message } from '@query'\nimport type { CanUseToolFn } from '@pyb-types/canUseTool'\nimport type { ToolUseContext } from '@tool'\nimport {\n createUserTurnMessageFromText,\n createUserTurnMessageFromBlocks,\n} from '@utils/messages'\nimport type { ConversationTracker } from '@utils/session/conversationTracker'\nimport {\n pybMessageToSdkMessage,\n makeSdkResultMessage,\n type SdkMessage,\n} from './pybAgentStreamJson'\nimport type { PybAgentStructuredStdio } from './pybAgentStructuredStdio'\n\ntype QueryFn = (\n messages: Message[],\n systemPrompt: string[],\n context: { [k: string]: string },\n canUseTool: CanUseToolFn,\n toolUseContext: ToolUseContext & { setToolJSX: (jsx: any) => void },\n) => AsyncGenerator<Message, void>\n\nexport async function runPybAgentStreamJsonSession(args: {\n structured: PybAgentStructuredStdio\n query: QueryFn\n writeSdkLine: (obj: SdkMessage) => void\n sessionId: string\n systemPrompt: string[]\n jsonSchema?: Record<string, unknown> | null\n context: { [k: string]: string }\n canUseTool: CanUseToolFn\n toolUseContextBase: Omit<ToolUseContext, 'abortController'> & {\n abortController?: never\n setToolJSX: (jsx: any) => void\n conversationTracker?: ConversationTracker\n }\n replayUserMessages: boolean\n getTotalCostUsd: () => number\n onActiveTurnAbortControllerChanged?: (\n controller: AbortController | null,\n ) => void\n initialMessages?: Message[]\n}): Promise<void> {\n const conversation: Message[] = [...(args.initialMessages ?? [])]\n const seenUserUuids = new Set<string>()\n\n while (true) {\n let sdkUser: any\n try {\n sdkUser = await args.structured.nextUserMessage()\n } catch {\n return\n }\n\n const sdkMessage = sdkUser?.message\n const sdkContent = sdkMessage?.content\n if (typeof sdkContent !== 'string' && !Array.isArray(sdkContent)) {\n throw new Error('Error: Invalid stream-json user message content')\n }\n\n const providedUuid =\n typeof sdkUser?.uuid === 'string' && sdkUser.uuid\n ? String(sdkUser.uuid)\n : null\n\n const userMsg =\n typeof sdkContent === 'string'\n ? (createUserTurnMessageFromText(sdkContent) as any)\n : (createUserTurnMessageFromBlocks(sdkContent as any) as any)\n if (providedUuid) {\n userMsg.uuid = providedUuid\n }\n\n const isDuplicate = Boolean(providedUuid && seenUserUuids.has(providedUuid))\n\n if (args.replayUserMessages) {\n const sdkUserOut = pybMessageToSdkMessage(userMsg, args.sessionId)\n if (sdkUserOut) args.writeSdkLine(sdkUserOut)\n }\n\n if (isDuplicate) {\n continue\n }\n\n if (providedUuid) seenUserUuids.add(providedUuid)\n\n conversation.push(userMsg)\n\n const costBefore = args.getTotalCostUsd()\n const startedAt = Date.now()\n const turnAbortController = new AbortController()\n args.onActiveTurnAbortControllerChanged?.(turnAbortController)\n\n let lastAssistant: any | null = null\n let queryError: unknown = null\n const toAppend: Message[] = []\n\n try {\n const inputForTurn = [...conversation]\n for await (const m of args.query(\n inputForTurn,\n args.systemPrompt,\n args.context,\n args.canUseTool,\n {\n ...args.toolUseContextBase,\n abortController: turnAbortController,\n } as any,\n )) {\n if (m.type === 'assistant') lastAssistant = m as any\n if (m.type !== 'progress') {\n toAppend.push(m)\n }\n\n const sdk = pybMessageToSdkMessage(m as any, args.sessionId)\n if (sdk) args.writeSdkLine(sdk)\n }\n } catch (e) {\n queryError = e\n try {\n turnAbortController.abort()\n } catch {}\n } finally {\n args.onActiveTurnAbortControllerChanged?.(null)\n }\n\n conversation.push(...toAppend)\n\n const textFromAssistant = lastAssistant?.message?.content?.find(\n (c: any) => c.type === 'text',\n )?.text\n const resultText =\n typeof textFromAssistant === 'string'\n ? textFromAssistant\n : queryError instanceof Error\n ? queryError.message\n : queryError\n ? String(queryError)\n : ''\n\n let structuredOutput: Record<string, unknown> | undefined\n if (args.jsonSchema && !queryError) {\n try {\n const fenced = String(resultText).trim()\n const unfenced = (() => {\n const m = fenced.match(/^```(?:json)?\\\\s*([\\\\s\\\\S]*?)\\\\s*```$/i)\n return m ? m[1]!.trim() : fenced\n })()\n\n const parsed = JSON.parse(unfenced)\n const Ajv = (await import('ajv')).default as any\n const ajv = new Ajv({ allErrors: true, strict: false })\n const validate = ajv.compile(args.jsonSchema)\n const ok = validate(parsed)\n if (!ok) {\n const errorText =\n typeof ajv.errorsText === 'function'\n ? ajv.errorsText(validate.errors, { separator: '; ' })\n : JSON.stringify(validate.errors ?? [])\n throw new Error(\n `Structured output failed JSON schema validation: ${errorText}`,\n )\n }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new Error('Structured output must be a JSON object')\n }\n structuredOutput = parsed as Record<string, unknown>\n } catch (e) {\n queryError = e\n }\n }\n\n const usage = lastAssistant?.message?.usage\n const durationMs = Date.now() - startedAt\n const totalCostUsd = Math.max(0, args.getTotalCostUsd() - costBefore)\n const isError = Boolean(queryError) || turnAbortController.signal.aborted\n\n args.writeSdkLine(\n makeSdkResultMessage({\n sessionId: args.sessionId,\n result: String(resultText),\n structuredOutput,\n numTurns: 1,\n usage,\n totalCostUsd,\n durationMs,\n durationApiMs: 0,\n isError,\n }) as any,\n )\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,57 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- __ToolUseQueueForTests,
5
- query,
6
- runToolUse
7
- } from "./chunk-5C3V4WBH.js";
8
- import "./chunk-YEUUN3PW.js";
9
- import "./chunk-I6GA6HKT.js";
10
- import "./chunk-726GW5OD.js";
11
- import "./chunk-5P7HBXTD.js";
12
- import "./chunk-EEOIMMFC.js";
13
- import "./chunk-D2MHLZDN.js";
14
- import "./chunk-NXWVCWZU.js";
15
- import "./chunk-F4AXICO7.js";
16
- import "./chunk-WZDDUIIK.js";
17
- import "./chunk-TZGJRTAC.js";
18
- import "./chunk-CLYWO4WT.js";
19
- import "./chunk-XKYHFZEC.js";
20
- import "./chunk-CXWYHX64.js";
21
- import "./chunk-A2QSQWOQ.js";
22
- import "./chunk-OLQLK3UC.js";
23
- import "./chunk-HM2PO36Q.js";
24
- import "./chunk-UNNVICVU.js";
25
- import "./chunk-GZOD5652.js";
26
- import "./chunk-56FKUXNO.js";
27
- import "./chunk-A3BVXXA3.js";
28
- import "./chunk-GUNRUYLP.js";
29
- import "./chunk-3DFBSQIT.js";
30
- import "./chunk-B6IMQJZM.js";
31
- import "./chunk-OUXHGDLH.js";
32
- import "./chunk-QHRHQ4TE.js";
33
- import "./chunk-QWIBSCDN.js";
34
- import "./chunk-2RXKUCFS.js";
35
- import "./chunk-UIKYSSZX.js";
36
- import "./chunk-TFHFYID3.js";
37
- import "./chunk-XTFXKDRC.js";
38
- import "./chunk-UMOI4SIG.js";
39
- import "./chunk-UZ34JEUK.js";
40
- import "./chunk-PWHPXHNR.js";
41
- import "./chunk-BJSWTHRM.js";
42
- import "./chunk-TKU3UJXS.js";
43
- import "./chunk-276WD5RN.js";
44
- import "./chunk-KFEHHKZ2.js";
45
- import "./chunk-RDDHG7KT.js";
46
- import "./chunk-TGGCRPZR.js";
47
- import "./chunk-FTPQJIPL.js";
48
- import "./chunk-RQVLBMP7.js";
49
- import "./chunk-PGRCNKEQ.js";
50
- import "./chunk-LG4DZXZE.js";
51
- import "./chunk-X6MCOKYP.js";
52
- import "./chunk-I3J4JYES.js";
53
- export {
54
- __ToolUseQueueForTests,
55
- query,
56
- runToolUse
57
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utils/text/smart-edit/replacers.ts", "../src/utils/text/smart-edit/index.ts"],
4
- "sourcesContent": ["import { levenshtein } from './levenshtein'\n\nexport type Replacer = (content: string, find: string) => Generator<string, void, unknown>\n\nexport const SimpleReplacer: Replacer = function* (_content, find) {\n yield find\n}\n\nexport const LineTrimmedReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n for (let i = 0; i <= originalLines.length - searchLines.length; i++) {\n let matches = true\n\n for (let j = 0; j < searchLines.length; j++) {\n const originalTrimmed = originalLines[i + j].trim()\n const searchTrimmed = searchLines[j].trim()\n\n if (originalTrimmed !== searchTrimmed) {\n matches = false\n break\n }\n }\n\n if (matches) {\n let matchStartIndex = 0\n for (let k = 0; k < i; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n\n let matchEndIndex = matchStartIndex\n for (let k = 0; k < searchLines.length; k++) {\n matchEndIndex += originalLines[i + k].length\n if (k < searchLines.length - 1) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n }\n}\n\nconst SINGLE_CANDIDATE_SIMILARITY_THRESHOLD = 0.0\nconst MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD = 0.3\n\nexport const WhitespaceNormalizedReplacer: Replacer = function* (content, find) {\n // Split by whitespace to get tokens\n const tokens = find.split(/\\s+/).filter(t => t.length > 0)\n \n if (tokens.length === 0) return\n\n // Create a regex where tokens are separated by \\s+\n // We escape each token to treat it as literal\n const pattern = tokens\n .map(token => token.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('\\\\s+')\n \n try {\n const regex = new RegExp(pattern, 'g')\n let match\n while ((match = regex.exec(content)) !== null) {\n yield match[0]\n }\n } catch (e) {\n // Ignore invalid regex\n }\n}\n\nexport const BlockAnchorReplacer: Replacer = function* (content, find) {\n const originalLines = content.split(\"\\n\")\n const searchLines = find.split(\"\\n\")\n\n if (searchLines.length < 3) {\n return\n }\n\n if (searchLines[searchLines.length - 1] === \"\") {\n searchLines.pop()\n }\n\n const firstLineSearch = searchLines[0].trim()\n const lastLineSearch = searchLines[searchLines.length - 1].trim()\n const searchBlockSize = searchLines.length\n\n // Collect all candidate positions where both anchors match\n const candidates: Array<{ startLine: number; endLine: number }> = []\n for (let i = 0; i < originalLines.length; i++) {\n if (originalLines[i].trim() !== firstLineSearch) {\n continue\n }\n\n // Look for the matching last line after this first line\n for (let j = i + 2; j < originalLines.length; j++) {\n if (originalLines[j].trim() === lastLineSearch) {\n candidates.push({ startLine: i, endLine: j })\n break // Only match the first occurrence of the last line\n }\n }\n }\n\n // Return immediately if no candidates\n if (candidates.length === 0) {\n return\n }\n\n // Handle single candidate scenario (using relaxed threshold)\n if (candidates.length === 1) {\n const { startLine, endLine } = candidates[0]\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += (1 - distance / maxLen) / linesToCheck\n\n // Exit early when threshold is reached\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n break\n }\n }\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity >= SINGLE_CANDIDATE_SIMILARITY_THRESHOLD) {\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1 // Add newline character except for the last line\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n return\n }\n\n // Calculate similarity for multiple candidates\n let bestMatch: { startLine: number; endLine: number } | null = null\n let maxSimilarity = -1\n\n for (const candidate of candidates) {\n const { startLine, endLine } = candidate\n const actualBlockSize = endLine - startLine + 1\n\n let similarity = 0\n let linesToCheck = Math.min(searchBlockSize - 2, actualBlockSize - 2) // Middle lines only\n\n if (linesToCheck > 0) {\n for (let j = 1; j < searchBlockSize - 1 && j < actualBlockSize - 1; j++) {\n const originalLine = originalLines[startLine + j].trim()\n const searchLine = searchLines[j].trim()\n const maxLen = Math.max(originalLine.length, searchLine.length)\n if (maxLen === 0) {\n continue\n }\n const distance = levenshtein(originalLine, searchLine)\n similarity += 1 - distance / maxLen\n }\n similarity /= linesToCheck // Average similarity\n } else {\n // No middle lines to compare, just accept based on anchors\n similarity = 1.0\n }\n\n if (similarity > maxSimilarity) {\n maxSimilarity = similarity\n bestMatch = candidate\n }\n }\n\n // Threshold judgment\n if (maxSimilarity >= MULTIPLE_CANDIDATES_SIMILARITY_THRESHOLD && bestMatch) {\n const { startLine, endLine } = bestMatch\n let matchStartIndex = 0\n for (let k = 0; k < startLine; k++) {\n matchStartIndex += originalLines[k].length + 1\n }\n let matchEndIndex = matchStartIndex\n for (let k = startLine; k <= endLine; k++) {\n matchEndIndex += originalLines[k].length\n if (k < endLine) {\n matchEndIndex += 1\n }\n }\n yield content.substring(matchStartIndex, matchEndIndex)\n }\n}\n\nexport const IndentationFlexibleReplacer: Replacer = function* (content, find) {\n const removeIndentation = (text: string) => {\n const lines = text.split(\"\\n\")\n const nonEmptyLines = lines.filter((line) => line.trim().length > 0)\n if (nonEmptyLines.length === 0) return text\n\n const minIndent = Math.min(\n ...nonEmptyLines.map((line) => {\n const match = line.match(/^(\\s*)/)\n return match ? match[1].length : 0\n }),\n )\n\n return lines.map((line) => (line.trim().length === 0 ? line : line.slice(minIndent))).join(\"\\n\")\n }\n\n const normalizedFind = removeIndentation(find)\n const contentLines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= contentLines.length - findLines.length; i++) {\n const block = contentLines.slice(i, i + findLines.length).join(\"\\n\")\n if (removeIndentation(block) === normalizedFind) {\n yield block\n }\n }\n}\n\nexport const EscapeNormalizedReplacer: Replacer = function* (content, find) {\n const unescapeString = (str: string): string => {\n return str.replace(/\\\\(n|t|r|'|\"|`|\\\\|\\n|\\$)/g, (match, capturedChar) => {\n switch (capturedChar) {\n case \"n\":\n return \"\\n\"\n case \"t\":\n return \"\\t\"\n case \"r\":\n return \"\\r\"\n case \"'\":\n return \"'\"\n case '\"':\n return '\"'\n case \"`\":\n return \"`\"\n case \"\\\\\":\n return \"\\\\\"\n case \"\\n\":\n return \"\\n\"\n case \"$\":\n return \"$\"\n default:\n return match\n }\n })\n }\n\n const unescapedFind = unescapeString(find)\n\n // Try direct match with unescaped find string\n if (content.includes(unescapedFind)) {\n yield unescapedFind\n }\n\n // Also try finding escaped versions in content that match unescaped find\n const lines = content.split(\"\\n\")\n const findLines = unescapedFind.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n const unescapedBlock = unescapeString(block)\n\n if (unescapedBlock === unescapedFind) {\n yield block\n }\n }\n}\n\nexport const MultiOccurrenceReplacer: Replacer = function* (content, find) {\n // This replacer yields all exact matches, allowing the replace function\n // to handle multiple occurrences based on replaceAll parameter\n let startIndex = 0\n\n while (true) {\n const index = content.indexOf(find, startIndex)\n if (index === -1) break\n\n yield find\n startIndex = index + find.length\n }\n}\n\nexport const TrimmedBoundaryReplacer: Replacer = function* (content, find) {\n const trimmedFind = find.trim()\n\n if (trimmedFind === find) {\n // Already trimmed, no point in trying\n return\n }\n\n // Try to find the trimmed version\n if (content.includes(trimmedFind)) {\n yield trimmedFind\n }\n\n // Also try finding blocks where trimmed content matches\n const lines = content.split(\"\\n\")\n const findLines = find.split(\"\\n\")\n\n for (let i = 0; i <= lines.length - findLines.length; i++) {\n const block = lines.slice(i, i + findLines.length).join(\"\\n\")\n\n if (block.trim() === trimmedFind) {\n yield block\n }\n }\n}\n\nexport const ContextAwareReplacer: Replacer = function* (content, find) {\n const findLines = find.split(\"\\n\")\n if (findLines.length < 3) {\n // Need at least 3 lines to have meaningful context\n return\n }\n\n // Remove trailing empty line if present\n if (findLines[findLines.length - 1] === \"\") {\n findLines.pop()\n }\n\n const contentLines = content.split(\"\\n\")\n\n // Extract first and last lines as context anchors\n const firstLine = findLines[0].trim()\n const lastLine = findLines[findLines.length - 1].trim()\n\n // Find blocks that start and end with the context anchors\n for (let i = 0; i < contentLines.length; i++) {\n if (contentLines[i].trim() !== firstLine) continue\n\n // Look for the matching last line\n for (let j = i + 2; j < contentLines.length; j++) {\n if (contentLines[j].trim() === lastLine) {\n // Found a potential context block\n const blockLines = contentLines.slice(i, j + 1)\n const block = blockLines.join(\"\\n\")\n\n // Check if the middle content has reasonable similarity\n // (simple heuristic: at least 50% of non-empty lines should match when trimmed)\n if (blockLines.length === findLines.length) {\n let matchingLines = 0\n let totalNonEmptyLines = 0\n\n for (let k = 1; k < blockLines.length - 1; k++) {\n const blockLine = blockLines[k].trim()\n const findLine = findLines[k].trim()\n\n if (blockLine.length > 0 || findLine.length > 0) {\n totalNonEmptyLines++\n if (blockLine === findLine) {\n matchingLines++\n }\n }\n }\n\n if (totalNonEmptyLines === 0 || matchingLines / totalNonEmptyLines >= 0.5) {\n yield block\n break // Only match the first occurrence\n }\n }\n break\n }\n }\n }\n}\n", "import { levenshtein } from './levenshtein'\nimport { \n SimpleReplacer, \n LineTrimmedReplacer, \n BlockAnchorReplacer, \n WhitespaceNormalizedReplacer, \n IndentationFlexibleReplacer,\n EscapeNormalizedReplacer,\n TrimmedBoundaryReplacer,\n ContextAwareReplacer,\n MultiOccurrenceReplacer,\n Replacer \n} from './replacers'\n\nexport const SmartEdit = {\n levenshtein,\n replace: (content: string, oldString: string, newString: string, replaceAll = false): string => {\n if (oldString === newString) {\n throw new Error(\"oldString and newString must be different\")\n }\n\n let notFound = true\n\n for (const replacer of [\n SimpleReplacer,\n LineTrimmedReplacer,\n BlockAnchorReplacer,\n WhitespaceNormalizedReplacer,\n IndentationFlexibleReplacer,\n EscapeNormalizedReplacer,\n TrimmedBoundaryReplacer,\n ContextAwareReplacer,\n MultiOccurrenceReplacer\n ]) {\n for (const search of replacer(content, oldString)) {\n const index = content.indexOf(search)\n if (index === -1) continue\n notFound = false\n if (replaceAll) {\n return content.replaceAll(search, newString)\n }\n // Replace first occurrence only\n return content.substring(0, index) + newString + content.substring(index + search.length)\n }\n }\n\n if (notFound) {\n throw new Error(\"oldString not found in content\")\n }\n return content\n }\n}\n\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,14 +0,0 @@
1
- import { createRequire as __pybCreateRequire } from "node:module";
2
- const require = __pybCreateRequire(import.meta.url);
3
- import {
4
- getTheme
5
- } from "./chunk-TGGCRPZR.js";
6
- import "./chunk-FTPQJIPL.js";
7
- import "./chunk-RQVLBMP7.js";
8
- import "./chunk-PGRCNKEQ.js";
9
- import "./chunk-LG4DZXZE.js";
10
- import "./chunk-X6MCOKYP.js";
11
- import "./chunk-I3J4JYES.js";
12
- export {
13
- getTheme
14
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,57 +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-5C3V4WBH.js";
8
- import "./chunk-YEUUN3PW.js";
9
- import "./chunk-I6GA6HKT.js";
10
- import "./chunk-726GW5OD.js";
11
- import "./chunk-5P7HBXTD.js";
12
- import "./chunk-EEOIMMFC.js";
13
- import "./chunk-D2MHLZDN.js";
14
- import "./chunk-NXWVCWZU.js";
15
- import "./chunk-F4AXICO7.js";
16
- import "./chunk-WZDDUIIK.js";
17
- import "./chunk-TZGJRTAC.js";
18
- import "./chunk-CLYWO4WT.js";
19
- import "./chunk-XKYHFZEC.js";
20
- import "./chunk-CXWYHX64.js";
21
- import "./chunk-A2QSQWOQ.js";
22
- import "./chunk-OLQLK3UC.js";
23
- import "./chunk-HM2PO36Q.js";
24
- import "./chunk-UNNVICVU.js";
25
- import "./chunk-GZOD5652.js";
26
- import "./chunk-56FKUXNO.js";
27
- import "./chunk-A3BVXXA3.js";
28
- import "./chunk-GUNRUYLP.js";
29
- import "./chunk-3DFBSQIT.js";
30
- import "./chunk-B6IMQJZM.js";
31
- import "./chunk-OUXHGDLH.js";
32
- import "./chunk-QHRHQ4TE.js";
33
- import "./chunk-QWIBSCDN.js";
34
- import "./chunk-2RXKUCFS.js";
35
- import "./chunk-UIKYSSZX.js";
36
- import "./chunk-TFHFYID3.js";
37
- import "./chunk-XTFXKDRC.js";
38
- import "./chunk-UMOI4SIG.js";
39
- import "./chunk-UZ34JEUK.js";
40
- import "./chunk-PWHPXHNR.js";
41
- import "./chunk-BJSWTHRM.js";
42
- import "./chunk-TKU3UJXS.js";
43
- import "./chunk-276WD5RN.js";
44
- import "./chunk-KFEHHKZ2.js";
45
- import "./chunk-RDDHG7KT.js";
46
- import "./chunk-TGGCRPZR.js";
47
- import "./chunk-FTPQJIPL.js";
48
- import "./chunk-RQVLBMP7.js";
49
- import "./chunk-PGRCNKEQ.js";
50
- import "./chunk-LG4DZXZE.js";
51
- import "./chunk-X6MCOKYP.js";
52
- import "./chunk-I3J4JYES.js";
53
- export {
54
- getAllTools,
55
- getReadOnlyTools,
56
- getTools
57
- };
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -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 {\n NO_RESPONSE_REQUESTED,\n createAssistantMessage,\n createUserMessageFromText,\n createUserMessageFromBlocks,\n createUserTurnMessageFromText,\n createUserTurnMessageFromBlocks,\n} from './core'\n\nconst LOCAL_COMMAND_STDOUT_OPEN_TAG = ['<local-command-', 'stdout>'].join('')\nconst LOCAL_COMMAND_STDOUT_CLOSE_TAG = ['</local-command-', 'stdout>'].join('')\nconst LOCAL_COMMAND_STDERR_OPEN_TAG = ['<local-command-', 'stderr>'].join('')\nconst LOCAL_COMMAND_STDERR_CLOSE_TAG = ['</local-command-', 'stderr>'].join('')\n\n\nexport async function processUserInput(\n input: string,\n mode: 'bash' | 'prompt' | 'pyb',\n setToolJSX: SetToolJSXFn,\n context: ToolUseContext & {\n setForkConvoWithMessagesOnTheNextRender: (\n forkConvoWithMessages: Message[],\n ) => void\n options?: {\n isPybRequest?: boolean\n pybContext?: 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 = createUserTurnMessageFromBlocks([\n { type: 'text', text: `<bash-input>${input}</bash-input>` },\n ])\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 === 'pyb') {\n const userMessage = createUserTurnMessageFromBlocks([\n {\n type: 'text',\n text: `<pyb-input>${input}</pyb-input>`,\n },\n ])\n userMessage.options = {\n ...userMessage.options,\n isPybRequest: 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 [createUserTurnMessageFromText(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 isPybRequest = context.options?.isPybRequest === true\n const pybContextInfo = context.options?.pybContext\n\n let userMessage: UserMessage\n\n let processedInput =\n isPybRequest && pybContextInfo\n ? `${pybContextInfo}\\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 = createUserTurnMessageFromBlocks(blocks)\n } else {\n userMessage = createUserTurnMessageFromText(processedInput)\n }\n\n if (isPybRequest) {\n userMessage.options = {\n ...userMessage.options,\n isPybRequest: 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 createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`,\n },\n ]),\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 = createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${command.userFacingName()}</command-name>\n <command-message>${command.userFacingName()}</command-message>\n <command-args>${args}</command-args>`,\n },\n ])\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_OPEN_TAG}${result}${LOCAL_COMMAND_STDOUT_CLOSE_TAG}`,\n ),\n ]\n } catch (e) {\n logError(e)\n return [\n userMessage,\n createAssistantMessage(\n `${LOCAL_COMMAND_STDERR_OPEN_TAG}${String(e)}${LOCAL_COMMAND_STDERR_CLOSE_TAG}`,\n ),\n ]\n }\n }\n case 'prompt': {\n const commandName = command.userFacingName()\n const progressMessage = (command as any).progressMessage || 'running'\n const metaMessage = createUserMessageFromBlocks([\n {\n type: 'text',\n text: `<command-name>${commandName}</command-name>\n <command-message>${commandName} is ${progressMessage}\u2026</command-message>\n <command-args>${args}</command-args>`,\n },\n ])\n\n const prompt = await command.getPromptForCommand(args)\n const expandedMessages = prompt.map(msg => {\n const userMessage = createUserMessageFromText(\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
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes