@within-7/minto 0.3.9 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/dist/Tool.js.map +2 -2
  2. package/dist/commands/agents/AgentsCommand.js +461 -657
  3. package/dist/commands/agents/AgentsCommand.js.map +2 -2
  4. package/dist/commands/agents/types.js +1 -0
  5. package/dist/commands/agents/types.js.map +2 -2
  6. package/dist/commands/agents/utils/fileOperations.js +96 -36
  7. package/dist/commands/agents/utils/fileOperations.js.map +3 -3
  8. package/dist/commands/agents/utils/index.js +3 -1
  9. package/dist/commands/agents/utils/index.js.map +2 -2
  10. package/dist/commands/context.js +54 -23
  11. package/dist/commands/context.js.map +2 -2
  12. package/dist/commands/ctx_viz.js +1 -1
  13. package/dist/commands/effort.js +87 -0
  14. package/dist/commands/effort.js.map +7 -0
  15. package/dist/commands/export.js +684 -94
  16. package/dist/commands/export.js.map +2 -2
  17. package/dist/commands/ide.js +18 -0
  18. package/dist/commands/ide.js.map +7 -0
  19. package/dist/commands/language.js +19 -46
  20. package/dist/commands/language.js.map +2 -2
  21. package/dist/commands/mcp-interactive.js +425 -217
  22. package/dist/commands/mcp-interactive.js.map +2 -2
  23. package/dist/commands/memory.js +168 -0
  24. package/dist/commands/memory.js.map +7 -0
  25. package/dist/commands/model.js +457 -65
  26. package/dist/commands/model.js.map +2 -2
  27. package/dist/commands/outputStyle.js +64 -0
  28. package/dist/commands/outputStyle.js.map +7 -0
  29. package/dist/commands/permissions.js +75 -49
  30. package/dist/commands/permissions.js.map +2 -2
  31. package/dist/commands/plugin/utils.js +33 -1
  32. package/dist/commands/plugin/utils.js.map +2 -2
  33. package/dist/commands/plugin.js +891 -185
  34. package/dist/commands/plugin.js.map +3 -3
  35. package/dist/commands/refreshCommands.js +2 -0
  36. package/dist/commands/refreshCommands.js.map +2 -2
  37. package/dist/commands/resume.js +1 -1
  38. package/dist/commands/resume.js.map +1 -1
  39. package/dist/commands/review.js +51 -0
  40. package/dist/commands/review.js.map +7 -0
  41. package/dist/commands/sandbox.js +168 -70
  42. package/dist/commands/sandbox.js.map +2 -2
  43. package/dist/commands/setup.js +593 -107
  44. package/dist/commands/setup.js.map +2 -2
  45. package/dist/commands/stats.js +188 -131
  46. package/dist/commands/stats.js.map +2 -2
  47. package/dist/commands/status.js +75 -13
  48. package/dist/commands/status.js.map +2 -2
  49. package/dist/commands/terminalSetup.js +6 -0
  50. package/dist/commands/terminalSetup.js.map +2 -2
  51. package/dist/commands/undo.js +146 -174
  52. package/dist/commands/undo.js.map +2 -2
  53. package/dist/commands/vim.js +22 -0
  54. package/dist/commands/vim.js.map +7 -0
  55. package/dist/commands.js +12 -0
  56. package/dist/commands.js.map +2 -2
  57. package/dist/components/Help.js +165 -32
  58. package/dist/components/Help.js.map +2 -2
  59. package/dist/components/HighlightedCode.js +1 -0
  60. package/dist/components/HighlightedCode.js.map +2 -2
  61. package/dist/components/InfoPanel/InfoPanel.js +123 -0
  62. package/dist/components/InfoPanel/InfoPanel.js.map +7 -0
  63. package/dist/components/InfoPanel/index.js +5 -0
  64. package/dist/components/InfoPanel/index.js.map +7 -0
  65. package/dist/components/InfoPanel/types.js +1 -0
  66. package/dist/components/InfoPanel/types.js.map +7 -0
  67. package/dist/components/ModelSelector/BrandTextInput.js +43 -0
  68. package/dist/components/ModelSelector/BrandTextInput.js.map +7 -0
  69. package/dist/components/ModelSelector/ModelSelector.js +590 -565
  70. package/dist/components/ModelSelector/ModelSelector.js.map +2 -2
  71. package/dist/components/ModelSelector/WizardContainer.js +45 -0
  72. package/dist/components/ModelSelector/WizardContainer.js.map +7 -0
  73. package/dist/components/ModelSelector/index.js +1 -3
  74. package/dist/components/ModelSelector/index.js.map +2 -2
  75. package/dist/components/PromptInput.js +26 -11
  76. package/dist/components/PromptInput.js.map +2 -2
  77. package/dist/components/PulseLabel.js +44 -0
  78. package/dist/components/PulseLabel.js.map +7 -0
  79. package/dist/components/RequestStatusIndicator.js +1 -1
  80. package/dist/components/RequestStatusIndicator.js.map +1 -1
  81. package/dist/components/SimpleSelector/SimpleSelector.js +154 -0
  82. package/dist/components/SimpleSelector/SimpleSelector.js.map +7 -0
  83. package/dist/components/SimpleSelector/index.js +5 -0
  84. package/dist/components/SimpleSelector/index.js.map +7 -0
  85. package/dist/components/SimpleSelector/types.js +1 -0
  86. package/dist/components/SimpleSelector/types.js.map +7 -0
  87. package/dist/components/Spinner.js +12 -42
  88. package/dist/components/Spinner.js.map +3 -3
  89. package/dist/components/StartupStatus.js +57 -0
  90. package/dist/components/StartupStatus.js.map +7 -0
  91. package/dist/components/StatusOverlayContent.js +21 -0
  92. package/dist/components/StatusOverlayContent.js.map +7 -0
  93. package/dist/components/SubagentBlock.js +43 -6
  94. package/dist/components/SubagentBlock.js.map +2 -2
  95. package/dist/components/TabbedListView/ScrollableList.js +31 -5
  96. package/dist/components/TabbedListView/ScrollableList.js.map +2 -2
  97. package/dist/components/TabbedListView/TabBar.js +13 -8
  98. package/dist/components/TabbedListView/TabBar.js.map +2 -2
  99. package/dist/components/TabbedListView/TabbedListView.js +123 -48
  100. package/dist/components/TabbedListView/TabbedListView.js.map +2 -2
  101. package/dist/components/TodoPanel.js +1 -1
  102. package/dist/components/TodoPanel.js.map +1 -1
  103. package/dist/components/ToolUseLoader.js +5 -0
  104. package/dist/components/ToolUseLoader.js.map +2 -2
  105. package/dist/components/TrustDialog.js +0 -2
  106. package/dist/components/TrustDialog.js.map +2 -2
  107. package/dist/components/messages/TaskInModuleView.js +1 -1
  108. package/dist/components/messages/TaskInModuleView.js.map +2 -2
  109. package/dist/components/messages/TaskToolMessage.js +1 -1
  110. package/dist/components/messages/TaskToolMessage.js.map +2 -2
  111. package/dist/components/messages/UserPromptMessage.js +6 -1
  112. package/dist/components/messages/UserPromptMessage.js.map +2 -2
  113. package/dist/constants/modelCapabilities.js +103 -18
  114. package/dist/constants/modelCapabilities.js.map +2 -2
  115. package/dist/constants/product.js +2 -0
  116. package/dist/constants/product.js.map +2 -2
  117. package/dist/constants/prompts/agentPrompt.js +30 -0
  118. package/dist/constants/prompts/agentPrompt.js.map +7 -0
  119. package/dist/constants/prompts/codeConventions.js +27 -0
  120. package/dist/constants/prompts/codeConventions.js.map +7 -0
  121. package/dist/constants/prompts/doingTasks.js +15 -0
  122. package/dist/constants/prompts/doingTasks.js.map +7 -0
  123. package/dist/constants/prompts/envInfo.js +17 -0
  124. package/dist/constants/prompts/envInfo.js.map +7 -0
  125. package/dist/constants/prompts/executingWithCare.js +17 -0
  126. package/dist/constants/prompts/executingWithCare.js.map +7 -0
  127. package/dist/constants/prompts/identity.js +10 -0
  128. package/dist/constants/prompts/identity.js.map +7 -0
  129. package/dist/constants/prompts/index.js +78 -0
  130. package/dist/constants/prompts/index.js.map +7 -0
  131. package/dist/constants/prompts/taskManagement.js +60 -0
  132. package/dist/constants/prompts/taskManagement.js.map +7 -0
  133. package/dist/constants/prompts/toneAndStyle.js +62 -0
  134. package/dist/constants/prompts/toneAndStyle.js.map +7 -0
  135. package/dist/constants/prompts/toolUsagePolicy.js +38 -0
  136. package/dist/constants/prompts/toolUsagePolicy.js.map +7 -0
  137. package/dist/constants/prompts.js +5 -176
  138. package/dist/constants/prompts.js.map +2 -2
  139. package/dist/constants/providerRegistry.js +235 -0
  140. package/dist/constants/providerRegistry.js.map +7 -0
  141. package/dist/constants/providers.js +35 -0
  142. package/dist/constants/providers.js.map +7 -0
  143. package/dist/context/PermissionContext.js +0 -1
  144. package/dist/context/PermissionContext.js.map +2 -2
  145. package/dist/context.js +87 -31
  146. package/dist/context.js.map +2 -2
  147. package/dist/core/backupHook.js +29 -0
  148. package/dist/core/backupHook.js.map +7 -0
  149. package/dist/core/config/defaults.js +11 -2
  150. package/dist/core/config/defaults.js.map +2 -2
  151. package/dist/core/config/schema.js +21 -3
  152. package/dist/core/config/schema.js.map +2 -2
  153. package/dist/core/costTracker.js +18 -16
  154. package/dist/core/costTracker.js.map +2 -2
  155. package/dist/core/index.js +0 -1
  156. package/dist/core/index.js.map +2 -2
  157. package/dist/core/tokenStatsManager.js +22 -4
  158. package/dist/core/tokenStatsManager.js.map +2 -2
  159. package/dist/cost-tracker.js +0 -16
  160. package/dist/cost-tracker.js.map +2 -2
  161. package/dist/entrypoints/bootstrap.js +3 -1
  162. package/dist/entrypoints/bootstrap.js.map +2 -2
  163. package/dist/entrypoints/cli.js +81 -68
  164. package/dist/entrypoints/cli.js.map +2 -2
  165. package/dist/hooks/useAgentTokenStats.js +1 -1
  166. package/dist/hooks/useAgentTokenStats.js.map +2 -2
  167. package/dist/hooks/useAgentTranscripts.js +2 -1
  168. package/dist/hooks/useAgentTranscripts.js.map +2 -2
  169. package/dist/hooks/useBackgroundShells.js +29 -0
  170. package/dist/hooks/useBackgroundShells.js.map +7 -0
  171. package/dist/hooks/useCanUseTool.js +1 -1
  172. package/dist/hooks/useCanUseTool.js.map +2 -2
  173. package/dist/hooks/useDeferredLoading.js +64 -0
  174. package/dist/hooks/useDeferredLoading.js.map +7 -0
  175. package/dist/hooks/useHookStatus.js +1 -1
  176. package/dist/hooks/useHookStatus.js.map +2 -2
  177. package/dist/hooks/useSessionTracking.js +55 -0
  178. package/dist/hooks/useSessionTracking.js.map +7 -0
  179. package/dist/hooks/useTerminalSize.js +21 -0
  180. package/dist/hooks/useTerminalSize.js.map +2 -2
  181. package/dist/hooks/useTextInput.js +1 -0
  182. package/dist/hooks/useTextInput.js.map +2 -2
  183. package/dist/hooks/useUnifiedCompletion.js +3 -2
  184. package/dist/hooks/useUnifiedCompletion.js.map +2 -2
  185. package/dist/i18n/locales/en.js +299 -1
  186. package/dist/i18n/locales/en.js.map +2 -2
  187. package/dist/i18n/locales/zh-CN.js +300 -2
  188. package/dist/i18n/locales/zh-CN.js.map +2 -2
  189. package/dist/i18n/types.js.map +1 -1
  190. package/dist/messages.js +41 -17
  191. package/dist/messages.js.map +2 -2
  192. package/dist/permissions.js +94 -1
  193. package/dist/permissions.js.map +2 -2
  194. package/dist/query.js +27 -19
  195. package/dist/query.js.map +2 -2
  196. package/dist/screens/REPL.js +83 -74
  197. package/dist/screens/REPL.js.map +2 -2
  198. package/dist/services/adapters/responsesAPI.js +6 -0
  199. package/dist/services/adapters/responsesAPI.js.map +2 -2
  200. package/dist/services/agentTeams/index.js +35 -0
  201. package/dist/services/agentTeams/index.js.map +7 -0
  202. package/dist/services/agentTeams/mailbox.js +114 -0
  203. package/dist/services/agentTeams/mailbox.js.map +7 -0
  204. package/dist/services/agentTeams/teamManager.js +149 -0
  205. package/dist/services/agentTeams/teamManager.js.map +7 -0
  206. package/dist/services/agentTeams/teamTaskStore.js +114 -0
  207. package/dist/services/agentTeams/teamTaskStore.js.map +7 -0
  208. package/dist/services/agentTeams/teammateSpawner.js +80 -0
  209. package/dist/services/agentTeams/teammateSpawner.js.map +7 -0
  210. package/dist/services/checkpointManager.js +16 -3
  211. package/dist/services/checkpointManager.js.map +2 -2
  212. package/dist/services/claude.js +19 -1728
  213. package/dist/services/claude.js.map +3 -3
  214. package/dist/services/customCommands.js +30 -8
  215. package/dist/services/customCommands.js.map +2 -2
  216. package/dist/services/gpt5ConnectionTest.js +4 -2
  217. package/dist/services/gpt5ConnectionTest.js.map +2 -2
  218. package/dist/services/hookExecutor.js +411 -127
  219. package/dist/services/hookExecutor.js.map +2 -2
  220. package/dist/services/llm/anthropicProvider.js +807 -0
  221. package/dist/services/llm/anthropicProvider.js.map +7 -0
  222. package/dist/services/llm/dispatch.js +218 -0
  223. package/dist/services/llm/dispatch.js.map +7 -0
  224. package/dist/services/llm/index.js +44 -0
  225. package/dist/services/llm/index.js.map +7 -0
  226. package/dist/services/llm/mintoContext.js +69 -0
  227. package/dist/services/llm/mintoContext.js.map +7 -0
  228. package/dist/services/llm/openaiProvider.js +622 -0
  229. package/dist/services/llm/openaiProvider.js.map +7 -0
  230. package/dist/services/llm/types.js +157 -0
  231. package/dist/services/llm/types.js.map +7 -0
  232. package/dist/services/mcpClient.js +183 -33
  233. package/dist/services/mcpClient.js.map +2 -2
  234. package/dist/services/notifier.js +14 -0
  235. package/dist/services/notifier.js.map +2 -2
  236. package/dist/services/oauth.js +4 -2
  237. package/dist/services/oauth.js.map +2 -2
  238. package/dist/services/openai.js +66 -56
  239. package/dist/services/openai.js.map +3 -3
  240. package/dist/services/outputStyles.js +102 -21
  241. package/dist/services/outputStyles.js.map +2 -2
  242. package/dist/services/plugins/lspServers.js +1 -1
  243. package/dist/services/plugins/lspServers.js.map +2 -2
  244. package/dist/services/plugins/pluginRuntime.js +2 -1
  245. package/dist/services/plugins/pluginRuntime.js.map +2 -2
  246. package/dist/services/plugins/pluginValidation.js +10 -3
  247. package/dist/services/plugins/pluginValidation.js.map +2 -2
  248. package/dist/services/plugins/skillMarketplace.js +20 -9
  249. package/dist/services/plugins/skillMarketplace.js.map +2 -2
  250. package/dist/services/sentry.js +1 -1
  251. package/dist/services/sentry.js.map +2 -2
  252. package/dist/services/sessionMemory.js +16 -3
  253. package/dist/services/sessionMemory.js.map +2 -2
  254. package/dist/services/systemReminder.js +367 -9
  255. package/dist/services/systemReminder.js.map +2 -2
  256. package/dist/services/taskStore.js +19 -0
  257. package/dist/services/taskStore.js.map +2 -2
  258. package/dist/tools/ArchitectTool/ArchitectTool.js.map +1 -1
  259. package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +1 -1
  260. package/dist/tools/BashOutputTool/BashOutputTool.js.map +1 -1
  261. package/dist/tools/BashTool/BashTool.js +28 -0
  262. package/dist/tools/BashTool/BashTool.js.map +2 -2
  263. package/dist/tools/FileEditTool/FileEditTool.js +8 -1
  264. package/dist/tools/FileEditTool/FileEditTool.js.map +2 -2
  265. package/dist/tools/FileReadTool/FileReadTool.js +14 -0
  266. package/dist/tools/FileReadTool/FileReadTool.js.map +2 -2
  267. package/dist/tools/FileWriteTool/FileWriteTool.js +10 -1
  268. package/dist/tools/FileWriteTool/FileWriteTool.js.map +2 -2
  269. package/dist/tools/GlobTool/GlobTool.js.map +1 -1
  270. package/dist/tools/GrepTool/GrepTool.js.map +1 -1
  271. package/dist/tools/KillShellTool/KillShellTool.js.map +1 -1
  272. package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +2 -2
  273. package/dist/tools/LspTool/LspTool.js +11 -2
  274. package/dist/tools/LspTool/LspTool.js.map +2 -2
  275. package/dist/tools/MCPTool/MCPTool.js.map +1 -1
  276. package/dist/tools/MemoryReadTool/MemoryReadTool.js +2 -1
  277. package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +2 -2
  278. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +2 -1
  279. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +2 -2
  280. package/dist/tools/MultiEditTool/MultiEditTool.js +7 -0
  281. package/dist/tools/MultiEditTool/MultiEditTool.js.map +2 -2
  282. package/dist/tools/NotebookEditTool/NotebookEditTool.js +2 -0
  283. package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +2 -2
  284. package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +1 -1
  285. package/dist/tools/PlanModeTool/EnterPlanModeTool.js +8 -2
  286. package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +2 -2
  287. package/dist/tools/PlanModeTool/ExitPlanModeTool.js +2 -0
  288. package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +2 -2
  289. package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +1 -1
  290. package/dist/tools/SlashCommandTool/SlashCommandTool.js +174 -18
  291. package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +3 -3
  292. package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +1 -1
  293. package/dist/tools/TaskGetTool/TaskGetTool.js.map +1 -1
  294. package/dist/tools/TaskListTool/TaskListTool.js.map +1 -1
  295. package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +1 -1
  296. package/dist/tools/TaskStopTool/TaskStopTool.js.map +1 -1
  297. package/dist/tools/TaskTool/TaskTool.js +84 -11
  298. package/dist/tools/TaskTool/TaskTool.js.map +2 -2
  299. package/dist/tools/TaskTool/prompt.js +12 -6
  300. package/dist/tools/TaskTool/prompt.js.map +2 -2
  301. package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +1 -1
  302. package/dist/tools/ThinkTool/ThinkTool.js.map +1 -1
  303. package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +1 -1
  304. package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +1 -1
  305. package/dist/tools/WebSearchTool/WebSearchTool.js.map +1 -1
  306. package/dist/tools/WebSearchTool/searchProviders.js +2 -1
  307. package/dist/tools/WebSearchTool/searchProviders.js.map +2 -2
  308. package/dist/tools/lsTool/lsTool.js.map +2 -2
  309. package/dist/tools/lsTool/prompt.js.map +1 -1
  310. package/dist/tools.js +14 -3
  311. package/dist/tools.js.map +2 -2
  312. package/dist/types/PermissionMode.js +21 -1
  313. package/dist/types/PermissionMode.js.map +2 -2
  314. package/dist/types/agentTeams.js +1 -0
  315. package/dist/types/agentTeams.js.map +7 -0
  316. package/dist/types/hooks.js +8 -2
  317. package/dist/types/hooks.js.map +2 -2
  318. package/dist/types/plugin.js +3 -5
  319. package/dist/types/plugin.js.map +2 -2
  320. package/dist/utils/agentHookExecutor.js +1 -4
  321. package/dist/utils/agentHookExecutor.js.map +2 -2
  322. package/dist/utils/agentLoader.js +91 -15
  323. package/dist/utils/agentLoader.js.map +2 -2
  324. package/dist/utils/agentMemory.js.map +2 -2
  325. package/dist/utils/animationManager.js +1 -1
  326. package/dist/utils/animationManager.js.map +2 -2
  327. package/dist/utils/ask.js +1 -1
  328. package/dist/utils/async.js +5 -1
  329. package/dist/utils/async.js.map +2 -2
  330. package/dist/utils/autoCompactCore.js +60 -0
  331. package/dist/utils/autoCompactCore.js.map +2 -2
  332. package/dist/utils/claudeCodeSync.js +439 -0
  333. package/dist/utils/claudeCodeSync.js.map +7 -0
  334. package/dist/utils/config.js +27 -151
  335. package/dist/utils/config.js.map +2 -2
  336. package/dist/utils/configSchema.js +227 -0
  337. package/dist/utils/configSchema.js.map +7 -0
  338. package/dist/utils/debugLogger.js.map +2 -2
  339. package/dist/utils/env.js +4 -3
  340. package/dist/utils/env.js.map +2 -2
  341. package/dist/utils/envConfig.js +34 -0
  342. package/dist/utils/envConfig.js.map +3 -3
  343. package/dist/utils/execFileNoThrow.js +2 -1
  344. package/dist/utils/execFileNoThrow.js.map +2 -2
  345. package/dist/utils/gpt5.js +146 -0
  346. package/dist/utils/gpt5.js.map +7 -0
  347. package/dist/utils/hookManager.js +374 -140
  348. package/dist/utils/hookManager.js.map +2 -2
  349. package/dist/utils/markdown.js +47 -0
  350. package/dist/utils/markdown.js.map +2 -2
  351. package/dist/utils/marketplaceManager.js +80 -43
  352. package/dist/utils/marketplaceManager.js.map +2 -2
  353. package/dist/utils/memoizeWithTTL.js +25 -0
  354. package/dist/utils/memoizeWithTTL.js.map +7 -0
  355. package/dist/utils/messages.js +2 -2
  356. package/dist/utils/messages.js.map +2 -2
  357. package/dist/utils/model.js +34 -9
  358. package/dist/utils/model.js.map +2 -2
  359. package/dist/utils/pluginInstaller.js +68 -29
  360. package/dist/utils/pluginInstaller.js.map +2 -2
  361. package/dist/utils/pluginLoader.js +249 -57
  362. package/dist/utils/pluginLoader.js.map +2 -2
  363. package/dist/utils/repoFetcher.js +110 -0
  364. package/dist/utils/repoFetcher.js.map +7 -0
  365. package/dist/utils/safeFetch.js +45 -0
  366. package/dist/utils/safeFetch.js.map +7 -0
  367. package/dist/utils/skillLoader.js +77 -12
  368. package/dist/utils/skillLoader.js.map +2 -2
  369. package/dist/utils/streamingState.js +52 -0
  370. package/dist/utils/streamingState.js.map +7 -0
  371. package/dist/utils/stringSubstitution.js +4 -5
  372. package/dist/utils/stringSubstitution.js.map +2 -2
  373. package/dist/utils/style.js +6 -3
  374. package/dist/utils/style.js.map +2 -2
  375. package/dist/utils/teamConfig.js +162 -16
  376. package/dist/utils/teamConfig.js.map +2 -2
  377. package/dist/utils/terminal.js +1 -1
  378. package/dist/utils/terminal.js.map +2 -2
  379. package/dist/utils/toolRiskClassification.js +0 -6
  380. package/dist/utils/toolRiskClassification.js.map +2 -2
  381. package/dist/version.js +2 -2
  382. package/dist/version.js.map +1 -1
  383. package/package.json +7 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/env.ts"],
4
- "sourcesContent": ["import { execFileNoThrow } from './execFileNoThrow'\nimport { memoize } from 'lodash-es'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport { CONFIG_BASE_DIR, CONFIG_FILE } from '@constants/product'\n\n// Base directory for all Minto data files\n// Support MINTO_CONFIG_DIR and CLAUDE_CONFIG_DIR for compatibility\n// Priority: MINTO_CONFIG_DIR > CLAUDE_CONFIG_DIR > ~/.minto\nexport const MINTO_BASE_DIR =\n process.env.MINTO_CONFIG_DIR ??\n process.env.CLAUDE_CONFIG_DIR ??\n join(homedir(), CONFIG_BASE_DIR)\n\n// Config and data paths\n// When using custom config directory, use config.json inside it\n// Otherwise use .minto.json in home directory\nexport const GLOBAL_CONFIG_FILE =\n process.env.MINTO_CONFIG_DIR || process.env.CLAUDE_CONFIG_DIR\n ? join(MINTO_BASE_DIR, 'config.json')\n : join(homedir(), CONFIG_FILE)\n\n// Memory storage directory\nexport const MEMORY_DIR = join(MINTO_BASE_DIR, 'memory')\n\nconst getIsDocker = memoize(async (): Promise<boolean> => {\n // Check for .dockerenv file\n const { code } = await execFileNoThrow('test', ['-f', '/.dockerenv'])\n if (code !== 0) {\n return false\n }\n return process.platform === 'linux'\n})\n\nconst hasInternetAccess = memoize(async (): Promise<boolean> => {\n try {\n const controller = new AbortController()\n const timeout = setTimeout(() => controller.abort(), 1000)\n\n await fetch('http://1.1.1.1', {\n method: 'HEAD',\n signal: controller.signal,\n })\n\n clearTimeout(timeout)\n return true\n } catch {\n return false\n }\n})\n\n// all of these should be immutable\nexport const env = {\n getIsDocker,\n hasInternetAccess,\n isCI: Boolean(process.env.CI),\n platform:\n process.platform === 'win32'\n ? 'windows'\n : process.platform === 'darwin'\n ? 'macos'\n : 'linux',\n nodeVersion: process.version,\n terminal: process.env.TERM_PROGRAM,\n}\n"],
5
- "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,iBAAiB,mBAAmB;AAKtC,MAAM,iBACX,QAAQ,IAAI,oBACZ,QAAQ,IAAI,qBACZ,KAAK,QAAQ,GAAG,eAAe;AAK1B,MAAM,qBACX,QAAQ,IAAI,oBAAoB,QAAQ,IAAI,oBACxC,KAAK,gBAAgB,aAAa,IAClC,KAAK,QAAQ,GAAG,WAAW;AAG1B,MAAM,aAAa,KAAK,gBAAgB,QAAQ;AAEvD,MAAM,cAAc,QAAQ,YAA8B;AAExD,QAAM,EAAE,KAAK,IAAI,MAAM,gBAAgB,QAAQ,CAAC,MAAM,aAAa,CAAC;AACpE,MAAI,SAAS,GAAG;AACd,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,aAAa;AAC9B,CAAC;AAED,MAAM,oBAAoB,QAAQ,YAA8B;AAC9D,MAAI;AACF,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,UAAU,WAAW,MAAM,WAAW,MAAM,GAAG,GAAI;AAEzD,UAAM,MAAM,kBAAkB;AAAA,MAC5B,QAAQ;AAAA,MACR,QAAQ,WAAW;AAAA,IACrB,CAAC;AAED,iBAAa,OAAO;AACpB,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF,CAAC;AAGM,MAAM,MAAM;AAAA,EACjB;AAAA,EACA;AAAA,EACA,MAAM,QAAQ,QAAQ,IAAI,EAAE;AAAA,EAC5B,UACE,QAAQ,aAAa,UACjB,YACA,QAAQ,aAAa,WACnB,UACA;AAAA,EACR,aAAa,QAAQ;AAAA,EACrB,UAAU,QAAQ,IAAI;AACxB;",
4
+ "sourcesContent": ["import { execFileNoThrow } from './execFileNoThrow'\nimport { memoize } from 'lodash-es'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport { CONFIG_BASE_DIR, CONFIG_FILE } from '@constants/product'\nimport { memoizeWithTTL } from './memoizeWithTTL'\n\n// Base directory for all Minto data files\n// Support MINTO_CONFIG_DIR and CLAUDE_CONFIG_DIR for compatibility\n// Priority: MINTO_CONFIG_DIR > CLAUDE_CONFIG_DIR > ~/.minto\nexport const MINTO_BASE_DIR =\n process.env.MINTO_CONFIG_DIR ??\n process.env.CLAUDE_CONFIG_DIR ??\n join(homedir(), CONFIG_BASE_DIR)\n\n// Config and data paths\n// When using custom config directory, use config.json inside it\n// Otherwise use .minto.json in home directory\nexport const GLOBAL_CONFIG_FILE =\n process.env.MINTO_CONFIG_DIR || process.env.CLAUDE_CONFIG_DIR\n ? join(MINTO_BASE_DIR, 'config.json')\n : join(homedir(), CONFIG_FILE)\n\n// Memory storage directory\nexport const MEMORY_DIR = join(MINTO_BASE_DIR, 'memory')\n\nconst getIsDocker = memoize(async (): Promise<boolean> => {\n // Check for .dockerenv file\n const { code } = await execFileNoThrow('test', ['-f', '/.dockerenv'])\n if (code !== 0) {\n return false\n }\n return process.platform === 'linux'\n})\n\nconst hasInternetAccess = memoizeWithTTL(async (): Promise<boolean> => {\n try {\n const controller = new AbortController()\n const timeout = setTimeout(() => controller.abort(), 5000)\n\n await fetch('http://1.1.1.1', {\n method: 'HEAD',\n signal: controller.signal,\n })\n\n clearTimeout(timeout)\n return true\n } catch {\n return false\n }\n}, 60_000)\n\n// all of these should be immutable\nexport const env = {\n getIsDocker,\n hasInternetAccess,\n isCI: Boolean(process.env.CI),\n platform:\n process.platform === 'win32'\n ? 'windows'\n : process.platform === 'darwin'\n ? 'macos'\n : 'linux',\n nodeVersion: process.version,\n terminal: process.env.TERM_PROGRAM,\n}\n"],
5
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,iBAAiB,mBAAmB;AAC7C,SAAS,sBAAsB;AAKxB,MAAM,iBACX,QAAQ,IAAI,oBACZ,QAAQ,IAAI,qBACZ,KAAK,QAAQ,GAAG,eAAe;AAK1B,MAAM,qBACX,QAAQ,IAAI,oBAAoB,QAAQ,IAAI,oBACxC,KAAK,gBAAgB,aAAa,IAClC,KAAK,QAAQ,GAAG,WAAW;AAG1B,MAAM,aAAa,KAAK,gBAAgB,QAAQ;AAEvD,MAAM,cAAc,QAAQ,YAA8B;AAExD,QAAM,EAAE,KAAK,IAAI,MAAM,gBAAgB,QAAQ,CAAC,MAAM,aAAa,CAAC;AACpE,MAAI,SAAS,GAAG;AACd,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,aAAa;AAC9B,CAAC;AAED,MAAM,oBAAoB,eAAe,YAA8B;AACrE,MAAI;AACF,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,UAAU,WAAW,MAAM,WAAW,MAAM,GAAG,GAAI;AAEzD,UAAM,MAAM,kBAAkB;AAAA,MAC5B,QAAQ;AAAA,MACR,QAAQ,WAAW;AAAA,IACrB,CAAC;AAED,iBAAa,OAAO;AACpB,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAAG,GAAM;AAGF,MAAM,MAAM;AAAA,EACjB;AAAA,EACA;AAAA,EACA,MAAM,QAAQ,QAAQ,IAAI,EAAE;AAAA,EAC5B,UACE,QAAQ,aAAa,UACjB,YACA,QAAQ,aAAa,WACnB,UACA;AAAA,EACR,aAAa,QAAQ;AAAA,EACrB,UAAU,QAAQ,IAAI;AACxB;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { execSync } from "child_process";
2
3
  const EnvSchema = z.object({
3
4
  // Minto configuration directories
4
5
  MINTO_CONFIG_DIR: z.string().optional(),
@@ -69,11 +70,44 @@ function getMaxThinkingTokens() {
69
70
  function getProxyUrl() {
70
71
  return env.HTTPS_PROXY ?? env.https_proxy ?? env.HTTP_PROXY ?? env.http_proxy;
71
72
  }
73
+ function hasSystemProxy() {
74
+ if (getProxyUrl()) {
75
+ return true;
76
+ }
77
+ if (process.platform === "darwin") {
78
+ try {
79
+ const output = execSync("scutil --proxy", {
80
+ timeout: 3e3,
81
+ encoding: "utf-8"
82
+ });
83
+ const httpEnabled = /HTTPEnable\s*:\s*1/.test(output);
84
+ const httpsEnabled = /HTTPSEnable\s*:\s*1/.test(output);
85
+ return httpEnabled || httpsEnabled;
86
+ } catch {
87
+ }
88
+ }
89
+ return false;
90
+ }
91
+ function ensureProxyBypass(env2) {
92
+ if (!hasSystemProxy()) {
93
+ return env2;
94
+ }
95
+ if (env2.no_proxy || env2.NO_PROXY) {
96
+ return env2;
97
+ }
98
+ return {
99
+ ...env2,
100
+ no_proxy: "*",
101
+ NO_PROXY: "*"
102
+ };
103
+ }
72
104
  export {
105
+ ensureProxyBypass,
73
106
  env,
74
107
  getCustomBashPath,
75
108
  getMaxThinkingTokens,
76
109
  getProxyUrl,
110
+ hasSystemProxy,
77
111
  isAgentDebugEnabled,
78
112
  isCI,
79
113
  isInternalUser,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/envConfig.ts"],
4
- "sourcesContent": ["/**\n * Centralized environment variable management with type-safe access.\n * Validates and provides typed access to all environment variables used by Minto.\n */\n\nimport { z } from 'zod'\n\n/**\n * Schema for environment variables.\n * Using optional() since env vars may not be set.\n */\nconst EnvSchema = z.object({\n // Minto configuration directories\n MINTO_CONFIG_DIR: z.string().optional(),\n CLAUDE_CONFIG_DIR: z.string().optional(),\n MINTO_SESSION_ID: z.string().optional(),\n\n // Shell configuration\n MINTO_BASH: z.string().optional(),\n KODE_BASH: z.string().optional(), // Legacy compatibility\n\n // Debug and development\n MINTO_DEBUG_AGENTS: z.string().optional(),\n DEBUG: z.string().optional(),\n\n // Feature flags and user type\n USER_TYPE: z.enum(['internal', 'external', 'ant', 'SWE_BENCH']).optional(),\n THINK_TOOL: z.string().optional(),\n MAX_THINKING_TOKENS: z\n .string()\n .optional()\n .transform(val => (val ? parseInt(val, 10) : undefined)),\n\n // API keys (existence only, not validated for content)\n ANTHROPIC_API_KEY: z.string().optional(),\n OPENAI_API_KEY: z.string().optional(),\n AWS_ACCESS_KEY_ID: z.string().optional(),\n AWS_SECRET_ACCESS_KEY: z.string().optional(),\n AWS_SESSION_TOKEN: z.string().optional(),\n AWS_REGION: z.string().optional(),\n\n // Cloud platform flags\n CLAUDE_CODE_USE_BEDROCK: z.string().optional(),\n CLAUDE_CODE_USE_VERTEX: z.string().optional(),\n\n // Proxy configuration\n HTTP_PROXY: z.string().optional(),\n HTTPS_PROXY: z.string().optional(),\n NO_PROXY: z.string().optional(),\n http_proxy: z.string().optional(),\n https_proxy: z.string().optional(),\n no_proxy: z.string().optional(),\n\n // System\n HOME: z.string().optional(),\n SHELL: z.string().optional(),\n TERM: z.string().optional(),\n PATH: z.string().optional(),\n CI: z.string().optional(),\n})\n\nexport type EnvConfig = z.infer<typeof EnvSchema>\n\n/**\n * Parsed and validated environment configuration.\n * Safe to access - all values are typed and validated.\n */\nfunction parseEnv(): EnvConfig {\n const result = EnvSchema.safeParse(process.env)\n if (!result.success) {\n // Log validation errors but don't throw - use defaults\n console.error('Environment validation warnings:', result.error.flatten())\n return {} as EnvConfig\n }\n return result.data\n}\n\nexport const env = parseEnv()\n\n/**\n * Check if running in CI environment\n */\nexport function isCI(): boolean {\n return !!env.CI\n}\n\n/**\n * Check if user is internal (Anthropic employee)\n */\nexport function isInternalUser(): boolean {\n return env.USER_TYPE === 'ant' || env.USER_TYPE === 'internal'\n}\n\n/**\n * Check if running in SWE_BENCH mode\n */\nexport function isSweBenchMode(): boolean {\n return env.USER_TYPE === 'SWE_BENCH'\n}\n\n/**\n * Check if agent debugging is enabled\n */\nexport function isAgentDebugEnabled(): boolean {\n return !!env.MINTO_DEBUG_AGENTS\n}\n\n/**\n * Get the custom bash path if configured\n */\nexport function getCustomBashPath(): string | undefined {\n return env.MINTO_BASH ?? env.KODE_BASH\n}\n\n/**\n * Get maximum thinking tokens if configured\n */\nexport function getMaxThinkingTokens(): number | undefined {\n return env.MAX_THINKING_TOKENS\n}\n\n/**\n * Get proxy URL for HTTP requests\n */\nexport function getProxyUrl(): string | undefined {\n return env.HTTPS_PROXY ?? env.https_proxy ?? env.HTTP_PROXY ?? env.http_proxy\n}\n"],
5
- "mappings": "AAKA,SAAS,SAAS;AAMlB,MAAM,YAAY,EAAE,OAAO;AAAA;AAAA,EAEzB,kBAAkB,EAAE,OAAO,EAAE,SAAS;AAAA,EACtC,mBAAmB,EAAE,OAAO,EAAE,SAAS;AAAA,EACvC,kBAAkB,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAGtC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA,EAG/B,oBAAoB,EAAE,OAAO,EAAE,SAAS;AAAA,EACxC,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAG3B,WAAW,EAAE,KAAK,CAAC,YAAY,YAAY,OAAO,WAAW,CAAC,EAAE,SAAS;AAAA,EACzE,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,qBAAqB,EAClB,OAAO,EACP,SAAS,EACT,UAAU,SAAQ,MAAM,SAAS,KAAK,EAAE,IAAI,MAAU;AAAA;AAAA,EAGzD,mBAAmB,EAAE,OAAO,EAAE,SAAS;AAAA,EACvC,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,mBAAmB,EAAE,OAAO,EAAE,SAAS;AAAA,EACvC,uBAAuB,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3C,mBAAmB,EAAE,OAAO,EAAE,SAAS;AAAA,EACvC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAGhC,yBAAyB,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7C,wBAAwB,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAG5C,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAG9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,IAAI,EAAE,OAAO,EAAE,SAAS;AAC1B,CAAC;AAQD,SAAS,WAAsB;AAC7B,QAAM,SAAS,UAAU,UAAU,QAAQ,GAAG;AAC9C,MAAI,CAAC,OAAO,SAAS;AAEnB,YAAQ,MAAM,oCAAoC,OAAO,MAAM,QAAQ,CAAC;AACxE,WAAO,CAAC;AAAA,EACV;AACA,SAAO,OAAO;AAChB;AAEO,MAAM,MAAM,SAAS;AAKrB,SAAS,OAAgB;AAC9B,SAAO,CAAC,CAAC,IAAI;AACf;AAKO,SAAS,iBAA0B;AACxC,SAAO,IAAI,cAAc,SAAS,IAAI,cAAc;AACtD;AAKO,SAAS,iBAA0B;AACxC,SAAO,IAAI,cAAc;AAC3B;AAKO,SAAS,sBAA+B;AAC7C,SAAO,CAAC,CAAC,IAAI;AACf;AAKO,SAAS,oBAAwC;AACtD,SAAO,IAAI,cAAc,IAAI;AAC/B;AAKO,SAAS,uBAA2C;AACzD,SAAO,IAAI;AACb;AAKO,SAAS,cAAkC;AAChD,SAAO,IAAI,eAAe,IAAI,eAAe,IAAI,cAAc,IAAI;AACrE;",
6
- "names": []
4
+ "sourcesContent": ["/**\n * Centralized environment variable management with type-safe access.\n * Validates and provides typed access to all environment variables used by Minto.\n */\n\nimport { z } from 'zod'\nimport { execSync } from 'child_process'\n\n/**\n * Schema for environment variables.\n * Using optional() since env vars may not be set.\n */\nconst EnvSchema = z.object({\n // Minto configuration directories\n MINTO_CONFIG_DIR: z.string().optional(),\n CLAUDE_CONFIG_DIR: z.string().optional(),\n MINTO_SESSION_ID: z.string().optional(),\n\n // Shell configuration\n MINTO_BASH: z.string().optional(),\n KODE_BASH: z.string().optional(), // Legacy compatibility\n\n // Debug and development\n MINTO_DEBUG_AGENTS: z.string().optional(),\n DEBUG: z.string().optional(),\n\n // Feature flags and user type\n USER_TYPE: z.enum(['internal', 'external', 'ant', 'SWE_BENCH']).optional(),\n THINK_TOOL: z.string().optional(),\n MAX_THINKING_TOKENS: z\n .string()\n .optional()\n .transform(val => (val ? parseInt(val, 10) : undefined)),\n\n // API keys (existence only, not validated for content)\n ANTHROPIC_API_KEY: z.string().optional(),\n OPENAI_API_KEY: z.string().optional(),\n AWS_ACCESS_KEY_ID: z.string().optional(),\n AWS_SECRET_ACCESS_KEY: z.string().optional(),\n AWS_SESSION_TOKEN: z.string().optional(),\n AWS_REGION: z.string().optional(),\n\n // Cloud platform flags\n CLAUDE_CODE_USE_BEDROCK: z.string().optional(),\n CLAUDE_CODE_USE_VERTEX: z.string().optional(),\n\n // Proxy configuration\n HTTP_PROXY: z.string().optional(),\n HTTPS_PROXY: z.string().optional(),\n NO_PROXY: z.string().optional(),\n http_proxy: z.string().optional(),\n https_proxy: z.string().optional(),\n no_proxy: z.string().optional(),\n\n // System\n HOME: z.string().optional(),\n SHELL: z.string().optional(),\n TERM: z.string().optional(),\n PATH: z.string().optional(),\n CI: z.string().optional(),\n})\n\nexport type EnvConfig = z.infer<typeof EnvSchema>\n\n/**\n * Parsed and validated environment configuration.\n * Safe to access - all values are typed and validated.\n */\nfunction parseEnv(): EnvConfig {\n const result = EnvSchema.safeParse(process.env)\n if (!result.success) {\n // Log validation errors but don't throw - use defaults\n console.error('Environment validation warnings:', result.error.flatten())\n return {} as EnvConfig\n }\n return result.data\n}\n\nexport const env = parseEnv()\n\n/**\n * Check if running in CI environment\n */\nexport function isCI(): boolean {\n return !!env.CI\n}\n\n/**\n * Check if user is internal (Anthropic employee)\n */\nexport function isInternalUser(): boolean {\n return env.USER_TYPE === 'ant' || env.USER_TYPE === 'internal'\n}\n\n/**\n * Check if running in SWE_BENCH mode\n */\nexport function isSweBenchMode(): boolean {\n return env.USER_TYPE === 'SWE_BENCH'\n}\n\n/**\n * Check if agent debugging is enabled\n */\nexport function isAgentDebugEnabled(): boolean {\n return !!env.MINTO_DEBUG_AGENTS\n}\n\n/**\n * Get the custom bash path if configured\n */\nexport function getCustomBashPath(): string | undefined {\n return env.MINTO_BASH ?? env.KODE_BASH\n}\n\n/**\n * Get maximum thinking tokens if configured\n */\nexport function getMaxThinkingTokens(): number | undefined {\n return env.MAX_THINKING_TOKENS\n}\n\n/**\n * Get proxy URL for HTTP requests\n */\nexport function getProxyUrl(): string | undefined {\n return env.HTTPS_PROXY ?? env.https_proxy ?? env.HTTP_PROXY ?? env.http_proxy\n}\n\n/**\n * Detect if system has proxy configured (env vars or macOS system proxy)\n */\nexport function hasSystemProxy(): boolean {\n // Check env vars first\n if (getProxyUrl()) {\n return true\n }\n\n // On macOS, check system proxy via scutil\n if (process.platform === 'darwin') {\n try {\n const output = execSync('scutil --proxy', {\n timeout: 3000,\n encoding: 'utf-8',\n })\n // Check for HTTPEnable or HTTPSEnable = 1\n const httpEnabled = /HTTPEnable\\s*:\\s*1/.test(output)\n const httpsEnabled = /HTTPSEnable\\s*:\\s*1/.test(output)\n return httpEnabled || httpsEnabled\n } catch {\n // scutil failed, assume no proxy\n }\n }\n\n return false\n}\n\n/**\n * Inject no_proxy bypass into MCP server env if proxy detected and bypass not set.\n * Returns new env object (does not mutate input).\n */\nexport function ensureProxyBypass(\n env: Record<string, string>,\n): Record<string, string> {\n if (!hasSystemProxy()) {\n return env\n }\n\n // If bypass already set, return unchanged\n if (env.no_proxy || env.NO_PROXY) {\n return env\n }\n\n return {\n ...env,\n no_proxy: '*',\n NO_PROXY: '*',\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["env"]
7
7
  }
@@ -13,7 +13,8 @@ function execFileNoThrow(file, args, abortSignal, timeout = 10 * SECONDS_IN_MINU
13
13
  maxBuffer: 1e6,
14
14
  signal: abortSignal,
15
15
  timeout,
16
- cwd: getCwd()
16
+ cwd: getCwd(),
17
+ env: process.env
17
18
  },
18
19
  (error, stdout, stderr) => {
19
20
  if (error) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/execFileNoThrow.ts"],
4
- "sourcesContent": ["import { execFile } from 'child_process'\nimport { getCwd } from './state'\nimport { logError } from './log'\n\nconst MS_IN_SECOND = 1000\nconst SECONDS_IN_MINUTE = 60\n\n/**\n * execFile, but always resolves (never throws)\n */\nexport function execFileNoThrow(\n file: string,\n args: string[],\n abortSignal?: AbortSignal,\n timeout = 10 * SECONDS_IN_MINUTE * MS_IN_SECOND,\n preserveOutputOnError = true,\n): Promise<{ stdout: string; stderr: string; code: number }> {\n return new Promise(resolve => {\n try {\n execFile(\n file,\n args,\n {\n maxBuffer: 1_000_000,\n signal: abortSignal,\n timeout,\n cwd: getCwd(),\n },\n (error, stdout, stderr) => {\n if (error) {\n if (preserveOutputOnError) {\n const errorCode = typeof error.code === 'number' ? error.code : 1\n resolve({\n stdout: stdout || '',\n stderr: stderr || '',\n code: errorCode,\n })\n } else {\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n } else {\n resolve({ stdout, stderr, code: 0 })\n }\n },\n )\n } catch (error) {\n logError(error)\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n })\n}\n"],
5
- "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAKnB,SAAS,gBACd,MACA,MACA,aACA,UAAU,KAAK,oBAAoB,cACnC,wBAAwB,MACmC;AAC3D,SAAO,IAAI,QAAQ,aAAW;AAC5B,QAAI;AACF;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,QAAQ;AAAA,UACR;AAAA,UACA,KAAK,OAAO;AAAA,QACd;AAAA,QACA,CAAC,OAAO,QAAQ,WAAW;AACzB,cAAI,OAAO;AACT,gBAAI,uBAAuB;AACzB,oBAAM,YAAY,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;AAChE,sBAAQ;AAAA,gBACN,QAAQ,UAAU;AAAA,gBAClB,QAAQ,UAAU;AAAA,gBAClB,MAAM;AAAA,cACR,CAAC;AAAA,YACH,OAAO;AACL,sBAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,YAC7C;AAAA,UACF,OAAO;AACL,oBAAQ,EAAE,QAAQ,QAAQ,MAAM,EAAE,CAAC;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,eAAS,KAAK;AACd,cAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,IAC7C;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { execFile } from 'child_process'\nimport { getCwd } from './state'\nimport { logError } from './log'\n\nconst MS_IN_SECOND = 1000\nconst SECONDS_IN_MINUTE = 60\n\n/**\n * execFile, but always resolves (never throws)\n */\nexport function execFileNoThrow(\n file: string,\n args: string[],\n abortSignal?: AbortSignal,\n timeout = 10 * SECONDS_IN_MINUTE * MS_IN_SECOND,\n preserveOutputOnError = true,\n): Promise<{ stdout: string; stderr: string; code: number }> {\n return new Promise(resolve => {\n try {\n execFile(\n file,\n args,\n {\n maxBuffer: 1_000_000,\n signal: abortSignal,\n timeout,\n cwd: getCwd(),\n env: process.env,\n },\n (error, stdout, stderr) => {\n if (error) {\n if (preserveOutputOnError) {\n const errorCode = typeof error.code === 'number' ? error.code : 1\n resolve({\n stdout: stdout || '',\n stderr: stderr || '',\n code: errorCode,\n })\n } else {\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n } else {\n resolve({ stdout, stderr, code: 0 })\n }\n },\n )\n } catch (error) {\n logError(error)\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n })\n}\n"],
5
+ "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAKnB,SAAS,gBACd,MACA,MACA,aACA,UAAU,KAAK,oBAAoB,cACnC,wBAAwB,MACmC;AAC3D,SAAO,IAAI,QAAQ,aAAW;AAC5B,QAAI;AACF;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,QAAQ;AAAA,UACR;AAAA,UACA,KAAK,OAAO;AAAA,UACZ,KAAK,QAAQ;AAAA,QACf;AAAA,QACA,CAAC,OAAO,QAAQ,WAAW;AACzB,cAAI,OAAO;AACT,gBAAI,uBAAuB;AACzB,oBAAM,YAAY,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;AAChE,sBAAQ;AAAA,gBACN,QAAQ,UAAU;AAAA,gBAClB,QAAQ,UAAU;AAAA,gBAClB,MAAM;AAAA,cACR,CAAC;AAAA,YACH,OAAO;AACL,sBAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,YAC7C;AAAA,UACF,OAAO;AACL,oBAAQ,EAAE,QAAQ,QAAQ,MAAM,EAAE,CAAC;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,eAAS,KAAK;AACd,cAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,IAC7C;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,146 @@
1
+ import { debug as debugLogger } from "./debugLogger.js";
2
+ import { getGlobalConfig, saveGlobalConfig } from "./config.js";
3
+ function isGPT5ModelName(modelName) {
4
+ if (!modelName || typeof modelName !== "string") return false;
5
+ const lowerName = modelName.toLowerCase();
6
+ return lowerName.startsWith("gpt-5") || lowerName.includes("gpt-5");
7
+ }
8
+ function validateAndRepairGPT5Profile(profile) {
9
+ const isGPT5 = isGPT5ModelName(profile.modelName);
10
+ const now = Date.now();
11
+ const repairedProfile = { ...profile };
12
+ let wasRepaired = false;
13
+ if (isGPT5 !== profile.isGPT5) {
14
+ repairedProfile.isGPT5 = isGPT5;
15
+ wasRepaired = true;
16
+ }
17
+ if (isGPT5) {
18
+ const validReasoningEfforts = ["minimal", "low", "medium", "high"];
19
+ if (!profile.reasoningEffort || !validReasoningEfforts.includes(profile.reasoningEffort)) {
20
+ repairedProfile.reasoningEffort = "medium";
21
+ wasRepaired = true;
22
+ debugLogger.info(
23
+ "GPT5_CONFIG",
24
+ `Set reasoning effort to 'medium' for ${profile.modelName}`
25
+ );
26
+ }
27
+ if (profile.contextLength < 128e3) {
28
+ repairedProfile.contextLength = 128e3;
29
+ wasRepaired = true;
30
+ debugLogger.info(
31
+ "GPT5_CONFIG",
32
+ `Updated context length to 128k for ${profile.modelName}`
33
+ );
34
+ }
35
+ if (profile.maxTokens < 4e3) {
36
+ repairedProfile.maxTokens = 8192;
37
+ wasRepaired = true;
38
+ debugLogger.info(
39
+ "GPT5_CONFIG",
40
+ `Updated max tokens to 8192 for ${profile.modelName}`
41
+ );
42
+ }
43
+ if (profile.provider !== "openai" && profile.provider !== "custom-openai" && profile.provider !== "azure") {
44
+ debugLogger.warn(
45
+ "GPT5_CONFIG",
46
+ `Unexpected provider '${profile.provider}' for GPT-5 model ${profile.modelName}. Consider using 'openai' or 'custom-openai'.`
47
+ );
48
+ }
49
+ if (profile.modelName.includes("gpt-5") && !profile.baseURL) {
50
+ repairedProfile.baseURL = "https://api.openai.com/v1";
51
+ wasRepaired = true;
52
+ debugLogger.info(
53
+ "GPT5_CONFIG",
54
+ `Set default base URL for ${profile.modelName}`
55
+ );
56
+ }
57
+ }
58
+ repairedProfile.validationStatus = wasRepaired ? "auto_repaired" : "valid";
59
+ repairedProfile.lastValidation = now;
60
+ if (wasRepaired) {
61
+ debugLogger.info(
62
+ "GPT5_CONFIG",
63
+ `Auto-repaired configuration for ${profile.modelName}`
64
+ );
65
+ }
66
+ return repairedProfile;
67
+ }
68
+ function validateAndRepairAllGPT5Profiles() {
69
+ const config = getGlobalConfig();
70
+ if (!config.modelProfiles) {
71
+ return { repaired: 0, total: 0 };
72
+ }
73
+ let repairCount = 0;
74
+ const repairedProfiles = config.modelProfiles.map((profile) => {
75
+ const repairedProfile = validateAndRepairGPT5Profile(profile);
76
+ if (repairedProfile.validationStatus === "auto_repaired") {
77
+ repairCount++;
78
+ }
79
+ return repairedProfile;
80
+ });
81
+ if (repairCount > 0) {
82
+ const updatedConfig = {
83
+ ...config,
84
+ modelProfiles: repairedProfiles
85
+ };
86
+ saveGlobalConfig(updatedConfig);
87
+ debugLogger.info(
88
+ "GPT5_CONFIG",
89
+ `Auto-repaired ${repairCount} model profiles`
90
+ );
91
+ }
92
+ return { repaired: repairCount, total: config.modelProfiles.length };
93
+ }
94
+ function getGPT5ConfigRecommendations(modelName) {
95
+ if (!isGPT5ModelName(modelName)) {
96
+ return {};
97
+ }
98
+ const recommendations = {
99
+ contextLength: 128e3,
100
+ // GPT-5 standard context length
101
+ maxTokens: 8192,
102
+ // Good default for coding tasks
103
+ reasoningEffort: "medium",
104
+ // Balanced for most coding tasks
105
+ isGPT5: true
106
+ };
107
+ if (modelName.includes("gpt-5-mini")) {
108
+ recommendations.maxTokens = 4096;
109
+ recommendations.reasoningEffort = "low";
110
+ } else if (modelName.includes("gpt-5-nano")) {
111
+ recommendations.maxTokens = 2048;
112
+ recommendations.reasoningEffort = "minimal";
113
+ }
114
+ return recommendations;
115
+ }
116
+ function createGPT5ModelProfile(name, modelName, apiKey, baseURL, provider = "openai") {
117
+ const recommendations = getGPT5ConfigRecommendations(modelName);
118
+ const profile = {
119
+ name,
120
+ provider,
121
+ modelName,
122
+ baseURL: baseURL || "https://api.openai.com/v1",
123
+ apiKey,
124
+ maxTokens: recommendations.maxTokens || 8192,
125
+ contextLength: recommendations.contextLength || 128e3,
126
+ reasoningEffort: recommendations.reasoningEffort || "medium",
127
+ isActive: true,
128
+ createdAt: Date.now(),
129
+ isGPT5: true,
130
+ validationStatus: "valid",
131
+ lastValidation: Date.now()
132
+ };
133
+ debugLogger.info(
134
+ "GPT5_CONFIG",
135
+ `Created GPT-5 model profile: ${name} (${modelName})`
136
+ );
137
+ return profile;
138
+ }
139
+ export {
140
+ createGPT5ModelProfile,
141
+ getGPT5ConfigRecommendations,
142
+ isGPT5ModelName,
143
+ validateAndRepairAllGPT5Profiles,
144
+ validateAndRepairGPT5Profile
145
+ };
146
+ //# sourceMappingURL=gpt5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/gpt5.ts"],
4
+ "sourcesContent": ["/**\n * GPT-5 Configuration Validation and Auto-Repair Functions\n *\n * Extracted from config.ts to reduce God file size.\n * Provides GPT-5 model detection, configuration validation,\n * auto-repair, and profile creation utilities.\n */\n\nimport { debug as debugLogger } from './debugLogger'\nimport type { ModelProfile, ProviderType } from './configSchema'\nimport { getGlobalConfig, saveGlobalConfig } from './config'\n\n/**\n * Check if a model name represents a GPT-5 model\n */\nexport function isGPT5ModelName(modelName: string): boolean {\n if (!modelName || typeof modelName !== 'string') return false\n const lowerName = modelName.toLowerCase()\n return lowerName.startsWith('gpt-5') || lowerName.includes('gpt-5')\n}\n\n/**\n * Validate and auto-repair GPT-5 model configuration\n */\nexport function validateAndRepairGPT5Profile(\n profile: ModelProfile,\n): ModelProfile {\n const isGPT5 = isGPT5ModelName(profile.modelName)\n const now = Date.now()\n\n // Create a working copy\n const repairedProfile: ModelProfile = { ...profile }\n let wasRepaired = false\n\n // Set GPT-5 detection flag\n if (isGPT5 !== profile.isGPT5) {\n repairedProfile.isGPT5 = isGPT5\n wasRepaired = true\n }\n\n if (isGPT5) {\n // GPT-5 Parameter Validation and Repair\n\n // 1. Reasoning effort validation\n const validReasoningEfforts = ['minimal', 'low', 'medium', 'high']\n if (\n !profile.reasoningEffort ||\n !validReasoningEfforts.includes(profile.reasoningEffort)\n ) {\n repairedProfile.reasoningEffort = 'medium' // Default for coding tasks\n wasRepaired = true\n debugLogger.info(\n 'GPT5_CONFIG',\n `Set reasoning effort to 'medium' for ${profile.modelName}`,\n )\n }\n\n // 2. Context length validation (GPT-5 models typically have 128k context)\n if (profile.contextLength < 128000) {\n repairedProfile.contextLength = 128000\n wasRepaired = true\n debugLogger.info(\n 'GPT5_CONFIG',\n `Updated context length to 128k for ${profile.modelName}`,\n )\n }\n\n // 3. Output tokens validation (reasonable defaults for GPT-5)\n if (profile.maxTokens < 4000) {\n repairedProfile.maxTokens = 8192 // Good default for coding tasks\n wasRepaired = true\n debugLogger.info(\n 'GPT5_CONFIG',\n `Updated max tokens to 8192 for ${profile.modelName}`,\n )\n }\n\n // 4. Provider validation\n if (\n profile.provider !== 'openai' &&\n profile.provider !== 'custom-openai' &&\n profile.provider !== 'azure'\n ) {\n debugLogger.warn(\n 'GPT5_CONFIG',\n `Unexpected provider '${profile.provider}' for GPT-5 model ${profile.modelName}. Consider using 'openai' or 'custom-openai'.`,\n )\n }\n\n // 5. Base URL validation for official models\n if (profile.modelName.includes('gpt-5') && !profile.baseURL) {\n repairedProfile.baseURL = 'https://api.openai.com/v1'\n wasRepaired = true\n debugLogger.info(\n 'GPT5_CONFIG',\n `Set default base URL for ${profile.modelName}`,\n )\n }\n }\n\n // Update validation metadata\n repairedProfile.validationStatus = wasRepaired ? 'auto_repaired' : 'valid'\n repairedProfile.lastValidation = now\n\n if (wasRepaired) {\n debugLogger.info(\n 'GPT5_CONFIG',\n `Auto-repaired configuration for ${profile.modelName}`,\n )\n }\n\n return repairedProfile\n}\n\n/**\n * Validate and repair all GPT-5 profiles in the global configuration\n */\nexport function validateAndRepairAllGPT5Profiles(): {\n repaired: number\n total: number\n} {\n const config = getGlobalConfig()\n if (!config.modelProfiles) {\n return { repaired: 0, total: 0 }\n }\n\n let repairCount = 0\n const repairedProfiles = config.modelProfiles.map(profile => {\n const repairedProfile = validateAndRepairGPT5Profile(profile)\n if (repairedProfile.validationStatus === 'auto_repaired') {\n repairCount++\n }\n return repairedProfile\n })\n\n // Save the repaired configuration\n if (repairCount > 0) {\n const updatedConfig = {\n ...config,\n modelProfiles: repairedProfiles,\n }\n saveGlobalConfig(updatedConfig)\n debugLogger.info(\n 'GPT5_CONFIG',\n `Auto-repaired ${repairCount} model profiles`,\n )\n }\n\n return { repaired: repairCount, total: config.modelProfiles.length }\n}\n\n/**\n * Get GPT-5 configuration recommendations for a specific model\n */\nexport function getGPT5ConfigRecommendations(\n modelName: string,\n): Partial<ModelProfile> {\n if (!isGPT5ModelName(modelName)) {\n return {}\n }\n\n const recommendations: Partial<ModelProfile> = {\n contextLength: 128000, // GPT-5 standard context length\n maxTokens: 8192, // Good default for coding tasks\n reasoningEffort: 'medium', // Balanced for most coding tasks\n isGPT5: true,\n }\n\n // Model-specific optimizations\n if (modelName.includes('gpt-5-mini')) {\n recommendations.maxTokens = 4096 // Smaller default for mini\n recommendations.reasoningEffort = 'low' // Faster for simple tasks\n } else if (modelName.includes('gpt-5-nano')) {\n recommendations.maxTokens = 2048 // Even smaller for nano\n recommendations.reasoningEffort = 'minimal' // Fastest option\n }\n\n return recommendations\n}\n\n/**\n * Create a properly configured GPT-5 model profile\n */\nexport function createGPT5ModelProfile(\n name: string,\n modelName: string,\n apiKey: string,\n baseURL?: string,\n provider: ProviderType = 'openai',\n): ModelProfile {\n const recommendations = getGPT5ConfigRecommendations(modelName)\n\n const profile: ModelProfile = {\n name,\n provider,\n modelName,\n baseURL: baseURL || 'https://api.openai.com/v1',\n apiKey,\n maxTokens: recommendations.maxTokens || 8192,\n contextLength: recommendations.contextLength || 128000,\n reasoningEffort: recommendations.reasoningEffort || 'medium',\n isActive: true,\n createdAt: Date.now(),\n isGPT5: true,\n validationStatus: 'valid',\n lastValidation: Date.now(),\n }\n\n debugLogger.info(\n 'GPT5_CONFIG',\n `Created GPT-5 model profile: ${name} (${modelName})`,\n )\n return profile\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }