@harborclient/core 0.1.1

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 (736) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +36 -0
  4. package/dist/ai/chatComposer.d.ts +12 -0
  5. package/dist/ai/chatComposer.d.ts.map +1 -0
  6. package/dist/ai/chatComposer.js +20 -0
  7. package/dist/ai/chatComposer.js.map +1 -0
  8. package/dist/ai/chatContext.d.ts +181 -0
  9. package/dist/ai/chatContext.d.ts.map +1 -0
  10. package/dist/ai/chatContext.js +168 -0
  11. package/dist/ai/chatContext.js.map +1 -0
  12. package/dist/ai/chatStepMode.d.ts +43 -0
  13. package/dist/ai/chatStepMode.d.ts.map +1 -0
  14. package/dist/ai/chatStepMode.js +64 -0
  15. package/dist/ai/chatStepMode.js.map +1 -0
  16. package/dist/ai/chatTitle.d.ts +35 -0
  17. package/dist/ai/chatTitle.d.ts.map +1 -0
  18. package/dist/ai/chatTitle.js +109 -0
  19. package/dist/ai/chatTitle.js.map +1 -0
  20. package/dist/ai/gitCommitMessage.d.ts +47 -0
  21. package/dist/ai/gitCommitMessage.d.ts.map +1 -0
  22. package/dist/ai/gitCommitMessage.js +139 -0
  23. package/dist/ai/gitCommitMessage.js.map +1 -0
  24. package/dist/ai/models.d.ts +115 -0
  25. package/dist/ai/models.d.ts.map +1 -0
  26. package/dist/ai/models.js +209 -0
  27. package/dist/ai/models.js.map +1 -0
  28. package/dist/ai/requestUpdate.d.ts +273 -0
  29. package/dist/ai/requestUpdate.d.ts.map +1 -0
  30. package/dist/ai/requestUpdate.js +274 -0
  31. package/dist/ai/requestUpdate.js.map +1 -0
  32. package/dist/ai/scriptAsk.d.ts +115 -0
  33. package/dist/ai/scriptAsk.d.ts.map +1 -0
  34. package/dist/ai/scriptAsk.js +243 -0
  35. package/dist/ai/scriptAsk.js.map +1 -0
  36. package/dist/ai/scriptReferences.d.ts +377 -0
  37. package/dist/ai/scriptReferences.d.ts.map +1 -0
  38. package/dist/ai/scriptReferences.js +787 -0
  39. package/dist/ai/scriptReferences.js.map +1 -0
  40. package/dist/ai/settings.d.ts +8 -0
  41. package/dist/ai/settings.d.ts.map +1 -0
  42. package/dist/ai/settings.js +11 -0
  43. package/dist/ai/settings.js.map +1 -0
  44. package/dist/ai/tools/ITool.d.ts +26 -0
  45. package/dist/ai/tools/ITool.d.ts.map +1 -0
  46. package/dist/ai/tools/ITool.js +2 -0
  47. package/dist/ai/tools/ITool.js.map +1 -0
  48. package/dist/ai/tools/createCollection.d.ts +164 -0
  49. package/dist/ai/tools/createCollection.d.ts.map +1 -0
  50. package/dist/ai/tools/createCollection.js +36 -0
  51. package/dist/ai/tools/createCollection.js.map +1 -0
  52. package/dist/ai/tools/createFolder.d.ts +50 -0
  53. package/dist/ai/tools/createFolder.d.ts.map +1 -0
  54. package/dist/ai/tools/createFolder.js +34 -0
  55. package/dist/ai/tools/createFolder.js.map +1 -0
  56. package/dist/ai/tools/createRequest.d.ts +210 -0
  57. package/dist/ai/tools/createRequest.d.ts.map +1 -0
  58. package/dist/ai/tools/createRequest.js +88 -0
  59. package/dist/ai/tools/createRequest.js.map +1 -0
  60. package/dist/ai/tools/getActiveRequest.d.ts +20 -0
  61. package/dist/ai/tools/getActiveRequest.d.ts.map +1 -0
  62. package/dist/ai/tools/getActiveRequest.js +16 -0
  63. package/dist/ai/tools/getActiveRequest.js.map +1 -0
  64. package/dist/ai/tools/getActiveRequestDetails.d.ts +20 -0
  65. package/dist/ai/tools/getActiveRequestDetails.d.ts.map +1 -0
  66. package/dist/ai/tools/getActiveRequestDetails.js +16 -0
  67. package/dist/ai/tools/getActiveRequestDetails.js.map +1 -0
  68. package/dist/ai/tools/getActiveResponse.d.ts +39 -0
  69. package/dist/ai/tools/getActiveResponse.d.ts.map +1 -0
  70. package/dist/ai/tools/getActiveResponse.js +30 -0
  71. package/dist/ai/tools/getActiveResponse.js.map +1 -0
  72. package/dist/ai/tools/getActiveResponseSummary.d.ts +20 -0
  73. package/dist/ai/tools/getActiveResponseSummary.d.ts.map +1 -0
  74. package/dist/ai/tools/getActiveResponseSummary.js +16 -0
  75. package/dist/ai/tools/getActiveResponseSummary.js.map +1 -0
  76. package/dist/ai/tools/getActiveTerminal.d.ts +20 -0
  77. package/dist/ai/tools/getActiveTerminal.d.ts.map +1 -0
  78. package/dist/ai/tools/getActiveTerminal.js +16 -0
  79. package/dist/ai/tools/getActiveTerminal.js.map +1 -0
  80. package/dist/ai/tools/getActiveTerminalLines.d.ts +50 -0
  81. package/dist/ai/tools/getActiveTerminalLines.d.ts.map +1 -0
  82. package/dist/ai/tools/getActiveTerminalLines.js +37 -0
  83. package/dist/ai/tools/getActiveTerminalLines.js.map +1 -0
  84. package/dist/ai/tools/getCollection.d.ts +31 -0
  85. package/dist/ai/tools/getCollection.d.ts.map +1 -0
  86. package/dist/ai/tools/getCollection.js +28 -0
  87. package/dist/ai/tools/getCollection.js.map +1 -0
  88. package/dist/ai/tools/getFolder.d.ts +31 -0
  89. package/dist/ai/tools/getFolder.d.ts.map +1 -0
  90. package/dist/ai/tools/getFolder.js +28 -0
  91. package/dist/ai/tools/getFolder.js.map +1 -0
  92. package/dist/ai/tools/getMarkdownDocument.d.ts +40 -0
  93. package/dist/ai/tools/getMarkdownDocument.d.ts.map +1 -0
  94. package/dist/ai/tools/getMarkdownDocument.js +31 -0
  95. package/dist/ai/tools/getMarkdownDocument.js.map +1 -0
  96. package/dist/ai/tools/getRequest.d.ts +31 -0
  97. package/dist/ai/tools/getRequest.d.ts.map +1 -0
  98. package/dist/ai/tools/getRequest.js +28 -0
  99. package/dist/ai/tools/getRequest.js.map +1 -0
  100. package/dist/ai/tools/getSelectedCollection.d.ts +20 -0
  101. package/dist/ai/tools/getSelectedCollection.d.ts.map +1 -0
  102. package/dist/ai/tools/getSelectedCollection.js +16 -0
  103. package/dist/ai/tools/getSelectedCollection.js.map +1 -0
  104. package/dist/ai/tools/getSidebarRequest.d.ts +20 -0
  105. package/dist/ai/tools/getSidebarRequest.d.ts.map +1 -0
  106. package/dist/ai/tools/getSidebarRequest.js +16 -0
  107. package/dist/ai/tools/getSidebarRequest.js.map +1 -0
  108. package/dist/ai/tools/gitCommits.d.ts +50 -0
  109. package/dist/ai/tools/gitCommits.d.ts.map +1 -0
  110. package/dist/ai/tools/gitCommits.js +37 -0
  111. package/dist/ai/tools/gitCommits.js.map +1 -0
  112. package/dist/ai/tools/gitDiff.d.ts +70 -0
  113. package/dist/ai/tools/gitDiff.d.ts.map +1 -0
  114. package/dist/ai/tools/gitDiff.js +49 -0
  115. package/dist/ai/tools/gitDiff.js.map +1 -0
  116. package/dist/ai/tools/gitFileDiff.d.ts +80 -0
  117. package/dist/ai/tools/gitFileDiff.d.ts.map +1 -0
  118. package/dist/ai/tools/gitFileDiff.js +55 -0
  119. package/dist/ai/tools/gitFileDiff.js.map +1 -0
  120. package/dist/ai/tools/gitFileInfo.d.ts +60 -0
  121. package/dist/ai/tools/gitFileInfo.d.ts.map +1 -0
  122. package/dist/ai/tools/gitFileInfo.js +43 -0
  123. package/dist/ai/tools/gitFileInfo.js.map +1 -0
  124. package/dist/ai/tools/gitRepoInfo.d.ts +40 -0
  125. package/dist/ai/tools/gitRepoInfo.d.ts.map +1 -0
  126. package/dist/ai/tools/gitRepoInfo.js +31 -0
  127. package/dist/ai/tools/gitRepoInfo.js.map +1 -0
  128. package/dist/ai/tools/index.d.ts +1260 -0
  129. package/dist/ai/tools/index.d.ts.map +1 -0
  130. package/dist/ai/tools/index.js +100 -0
  131. package/dist/ai/tools/index.js.map +1 -0
  132. package/dist/ai/tools/listCollections.d.ts +20 -0
  133. package/dist/ai/tools/listCollections.d.ts.map +1 -0
  134. package/dist/ai/tools/listCollections.js +16 -0
  135. package/dist/ai/tools/listCollections.js.map +1 -0
  136. package/dist/ai/tools/listEnvironments.d.ts +20 -0
  137. package/dist/ai/tools/listEnvironments.d.ts.map +1 -0
  138. package/dist/ai/tools/listEnvironments.js +16 -0
  139. package/dist/ai/tools/listEnvironments.js.map +1 -0
  140. package/dist/ai/tools/listRequests.d.ts +40 -0
  141. package/dist/ai/tools/listRequests.d.ts.map +1 -0
  142. package/dist/ai/tools/listRequests.js +28 -0
  143. package/dist/ai/tools/listRequests.js.map +1 -0
  144. package/dist/ai/tools/queryResponseBody.d.ts +50 -0
  145. package/dist/ai/tools/queryResponseBody.d.ts.map +1 -0
  146. package/dist/ai/tools/queryResponseBody.js +37 -0
  147. package/dist/ai/tools/queryResponseBody.js.map +1 -0
  148. package/dist/ai/tools/schemas.d.ts +152 -0
  149. package/dist/ai/tools/schemas.d.ts.map +1 -0
  150. package/dist/ai/tools/schemas.js +81 -0
  151. package/dist/ai/tools/schemas.js.map +1 -0
  152. package/dist/ai/tools/searchDocs.d.ts +64 -0
  153. package/dist/ai/tools/searchDocs.d.ts.map +1 -0
  154. package/dist/ai/tools/searchDocs.js +44 -0
  155. package/dist/ai/tools/searchDocs.js.map +1 -0
  156. package/dist/ai/tools/sendActiveRequest.d.ts +39 -0
  157. package/dist/ai/tools/sendActiveRequest.d.ts.map +1 -0
  158. package/dist/ai/tools/sendActiveRequest.js +30 -0
  159. package/dist/ai/tools/sendActiveRequest.js.map +1 -0
  160. package/dist/ai/tools/setActiveEnvironment.d.ts +49 -0
  161. package/dist/ai/tools/setActiveEnvironment.d.ts.map +1 -0
  162. package/dist/ai/tools/setActiveEnvironment.js +36 -0
  163. package/dist/ai/tools/setActiveEnvironment.js.map +1 -0
  164. package/dist/ai/tools/systemPrompt.d.ts +5 -0
  165. package/dist/ai/tools/systemPrompt.d.ts.map +1 -0
  166. package/dist/ai/tools/systemPrompt.js +34 -0
  167. package/dist/ai/tools/systemPrompt.js.map +1 -0
  168. package/dist/ai/tools/terminalExec.d.ts +40 -0
  169. package/dist/ai/tools/terminalExec.d.ts.map +1 -0
  170. package/dist/ai/tools/terminalExec.js +31 -0
  171. package/dist/ai/tools/terminalExec.js.map +1 -0
  172. package/dist/ai/tools/types.d.ts +68 -0
  173. package/dist/ai/tools/types.d.ts.map +1 -0
  174. package/dist/ai/tools/types.js +2 -0
  175. package/dist/ai/tools/types.js.map +1 -0
  176. package/dist/ai/tools/updateActiveRequest.d.ts +279 -0
  177. package/dist/ai/tools/updateActiveRequest.d.ts.map +1 -0
  178. package/dist/ai/tools/updateActiveRequest.js +175 -0
  179. package/dist/ai/tools/updateActiveRequest.js.map +1 -0
  180. package/dist/ai/tools/updateRequestScript.d.ts +93 -0
  181. package/dist/ai/tools/updateRequestScript.d.ts.map +1 -0
  182. package/dist/ai/tools/updateRequestScript.js +57 -0
  183. package/dist/ai/tools/updateRequestScript.js.map +1 -0
  184. package/dist/auth.d.ts +192 -0
  185. package/dist/auth.d.ts.map +1 -0
  186. package/dist/auth.js +294 -0
  187. package/dist/auth.js.map +1 -0
  188. package/dist/bodyRawSend.d.ts +25 -0
  189. package/dist/bodyRawSend.d.ts.map +1 -0
  190. package/dist/bodyRawSend.js +61 -0
  191. package/dist/bodyRawSend.js.map +1 -0
  192. package/dist/builtinThemes.d.ts +33 -0
  193. package/dist/builtinThemes.d.ts.map +1 -0
  194. package/dist/builtinThemes.js +40 -0
  195. package/dist/builtinThemes.js.map +1 -0
  196. package/dist/codeEditorSettings.d.ts +2 -0
  197. package/dist/codeEditorSettings.d.ts.map +1 -0
  198. package/dist/codeEditorSettings.js +2 -0
  199. package/dist/codeEditorSettings.js.map +1 -0
  200. package/dist/collectionContainerOrder.d.ts +42 -0
  201. package/dist/collectionContainerOrder.d.ts.map +1 -0
  202. package/dist/collectionContainerOrder.js +62 -0
  203. package/dist/collectionContainerOrder.js.map +1 -0
  204. package/dist/collectionRunner.d.ts +510 -0
  205. package/dist/collectionRunner.d.ts.map +1 -0
  206. package/dist/collectionRunner.js +296 -0
  207. package/dist/collectionRunner.js.map +1 -0
  208. package/dist/contrast.d.ts +16 -0
  209. package/dist/contrast.d.ts.map +1 -0
  210. package/dist/contrast.js +51 -0
  211. package/dist/contrast.js.map +1 -0
  212. package/dist/cookies/CookieJar.d.ts +151 -0
  213. package/dist/cookies/CookieJar.d.ts.map +1 -0
  214. package/dist/cookies/CookieJar.js +318 -0
  215. package/dist/cookies/CookieJar.js.map +1 -0
  216. package/dist/deepLink.d.ts +98 -0
  217. package/dist/deepLink.d.ts.map +1 -0
  218. package/dist/deepLink.js +211 -0
  219. package/dist/deepLink.js.map +1 -0
  220. package/dist/environmentVariables.d.ts +34 -0
  221. package/dist/environmentVariables.d.ts.map +1 -0
  222. package/dist/environmentVariables.js +56 -0
  223. package/dist/environmentVariables.js.map +1 -0
  224. package/dist/filestore/index.d.ts +16 -0
  225. package/dist/filestore/index.d.ts.map +1 -0
  226. package/dist/filestore/index.js +16 -0
  227. package/dist/filestore/index.js.map +1 -0
  228. package/dist/filestore/parse.d.ts +44 -0
  229. package/dist/filestore/parse.d.ts.map +1 -0
  230. package/dist/filestore/parse.js +80 -0
  231. package/dist/filestore/parse.js.map +1 -0
  232. package/dist/filestore/schemas.d.ts +1612 -0
  233. package/dist/filestore/schemas.d.ts.map +1 -0
  234. package/dist/filestore/schemas.js +586 -0
  235. package/dist/filestore/schemas.js.map +1 -0
  236. package/dist/filestore/snippet.d.ts +10 -0
  237. package/dist/filestore/snippet.d.ts.map +1 -0
  238. package/dist/filestore/snippet.js +43 -0
  239. package/dist/filestore/snippet.js.map +1 -0
  240. package/dist/filestore/storageSchemas.d.ts +123 -0
  241. package/dist/filestore/storageSchemas.d.ts.map +1 -0
  242. package/dist/filestore/storageSchemas.js +94 -0
  243. package/dist/filestore/storageSchemas.js.map +1 -0
  244. package/dist/filestore/stringify.d.ts +59 -0
  245. package/dist/filestore/stringify.d.ts.map +1 -0
  246. package/dist/filestore/stringify.js +103 -0
  247. package/dist/filestore/stringify.js.map +1 -0
  248. package/dist/filestore/validate.d.ts +60 -0
  249. package/dist/filestore/validate.d.ts.map +1 -0
  250. package/dist/filestore/validate.js +118 -0
  251. package/dist/filestore/validate.js.map +1 -0
  252. package/dist/filestore/variables.d.ts +9 -0
  253. package/dist/filestore/variables.d.ts.map +1 -0
  254. package/dist/filestore/variables.js +15 -0
  255. package/dist/filestore/variables.js.map +1 -0
  256. package/dist/formData.d.ts +2 -0
  257. package/dist/formData.d.ts.map +1 -0
  258. package/dist/formData.js +2 -0
  259. package/dist/formData.js.map +1 -0
  260. package/dist/generalSettings.d.ts +22 -0
  261. package/dist/generalSettings.d.ts.map +1 -0
  262. package/dist/generalSettings.js +188 -0
  263. package/dist/generalSettings.js.map +1 -0
  264. package/dist/gitHttpErrors.d.ts +125 -0
  265. package/dist/gitHttpErrors.d.ts.map +1 -0
  266. package/dist/gitHttpErrors.js +271 -0
  267. package/dist/gitHttpErrors.js.map +1 -0
  268. package/dist/gitSidebarExpansion.d.ts +22 -0
  269. package/dist/gitSidebarExpansion.d.ts.map +1 -0
  270. package/dist/gitSidebarExpansion.js +16 -0
  271. package/dist/gitSidebarExpansion.js.map +1 -0
  272. package/dist/gitUrl.d.ts +39 -0
  273. package/dist/gitUrl.d.ts.map +1 -0
  274. package/dist/gitUrl.js +105 -0
  275. package/dist/gitUrl.js.map +1 -0
  276. package/dist/harborclientExport.d.ts +23 -0
  277. package/dist/harborclientExport.d.ts.map +1 -0
  278. package/dist/harborclientExport.js +39 -0
  279. package/dist/harborclientExport.js.map +1 -0
  280. package/dist/highContrastPalette.d.ts +91 -0
  281. package/dist/highContrastPalette.d.ts.map +1 -0
  282. package/dist/highContrastPalette.js +118 -0
  283. package/dist/highContrastPalette.js.map +1 -0
  284. package/dist/httpHeaders.d.ts +2 -0
  285. package/dist/httpHeaders.d.ts.map +1 -0
  286. package/dist/httpHeaders.js +2 -0
  287. package/dist/httpHeaders.js.map +1 -0
  288. package/dist/httpMethod.d.ts +9 -0
  289. package/dist/httpMethod.d.ts.map +1 -0
  290. package/dist/httpMethod.js +23 -0
  291. package/dist/httpMethod.js.map +1 -0
  292. package/dist/index.d.ts +18 -0
  293. package/dist/index.d.ts.map +1 -0
  294. package/dist/index.js +16 -0
  295. package/dist/index.js.map +1 -0
  296. package/dist/interfaces/ICookieJar.d.ts +41 -0
  297. package/dist/interfaces/ICookieJar.d.ts.map +1 -0
  298. package/dist/interfaces/ICookieJar.js +2 -0
  299. package/dist/interfaces/ICookieJar.js.map +1 -0
  300. package/dist/interfaces/IScriptRunner.d.ts +20 -0
  301. package/dist/interfaces/IScriptRunner.d.ts.map +1 -0
  302. package/dist/interfaces/IScriptRunner.js +2 -0
  303. package/dist/interfaces/IScriptRunner.js.map +1 -0
  304. package/dist/interfaces/PluginHooks.d.ts +24 -0
  305. package/dist/interfaces/PluginHooks.d.ts.map +1 -0
  306. package/dist/interfaces/PluginHooks.js +2 -0
  307. package/dist/interfaces/PluginHooks.js.map +1 -0
  308. package/dist/interfaces/SettingsProvider.d.ts +20 -0
  309. package/dist/interfaces/SettingsProvider.d.ts.map +1 -0
  310. package/dist/interfaces/SettingsProvider.js +2 -0
  311. package/dist/interfaces/SettingsProvider.js.map +1 -0
  312. package/dist/interfaces/index.d.ts +5 -0
  313. package/dist/interfaces/index.d.ts.map +1 -0
  314. package/dist/interfaces/index.js +2 -0
  315. package/dist/interfaces/index.js.map +1 -0
  316. package/dist/mcpToolNames.d.ts +27 -0
  317. package/dist/mcpToolNames.d.ts.map +1 -0
  318. package/dist/mcpToolNames.js +41 -0
  319. package/dist/mcpToolNames.js.map +1 -0
  320. package/dist/multipartRaw.d.ts +85 -0
  321. package/dist/multipartRaw.d.ts.map +1 -0
  322. package/dist/multipartRaw.js +244 -0
  323. package/dist/multipartRaw.js.map +1 -0
  324. package/dist/network/executeHttpSend.d.ts +39 -0
  325. package/dist/network/executeHttpSend.d.ts.map +1 -0
  326. package/dist/network/executeHttpSend.js +60 -0
  327. package/dist/network/executeHttpSend.js.map +1 -0
  328. package/dist/pageSidebarSection.d.ts +35 -0
  329. package/dist/pageSidebarSection.d.ts.map +1 -0
  330. package/dist/pageSidebarSection.js +76 -0
  331. package/dist/pageSidebarSection.js.map +1 -0
  332. package/dist/parseJson.d.ts +8 -0
  333. package/dist/parseJson.d.ts.map +1 -0
  334. package/dist/parseJson.js +17 -0
  335. package/dist/parseJson.js.map +1 -0
  336. package/dist/plugin/catalog.d.ts +229 -0
  337. package/dist/plugin/catalog.d.ts.map +1 -0
  338. package/dist/plugin/catalog.js +248 -0
  339. package/dist/plugin/catalog.js.map +1 -0
  340. package/dist/plugin/catalogCategories.d.ts +30 -0
  341. package/dist/plugin/catalogCategories.d.ts.map +1 -0
  342. package/dist/plugin/catalogCategories.js +88 -0
  343. package/dist/plugin/catalogCategories.js.map +1 -0
  344. package/dist/plugin/customThemeExport.d.ts +95 -0
  345. package/dist/plugin/customThemeExport.d.ts.map +1 -0
  346. package/dist/plugin/customThemeExport.js +264 -0
  347. package/dist/plugin/customThemeExport.js.map +1 -0
  348. package/dist/plugin/databaseTypes.d.ts +90 -0
  349. package/dist/plugin/databaseTypes.d.ts.map +1 -0
  350. package/dist/plugin/databaseTypes.js +2 -0
  351. package/dist/plugin/databaseTypes.js.map +1 -0
  352. package/dist/plugin/githubRaw.d.ts +54 -0
  353. package/dist/plugin/githubRaw.d.ts.map +1 -0
  354. package/dist/plugin/githubRaw.js +138 -0
  355. package/dist/plugin/githubRaw.js.map +1 -0
  356. package/dist/plugin/httpRequest.d.ts +17 -0
  357. package/dist/plugin/httpRequest.d.ts.map +1 -0
  358. package/dist/plugin/httpRequest.js +45 -0
  359. package/dist/plugin/httpRequest.js.map +1 -0
  360. package/dist/plugin/importHandlers.d.ts +65 -0
  361. package/dist/plugin/importHandlers.d.ts.map +1 -0
  362. package/dist/plugin/importHandlers.js +2 -0
  363. package/dist/plugin/importHandlers.js.map +1 -0
  364. package/dist/plugin/pluginDatabaseApi.d.ts +39 -0
  365. package/dist/plugin/pluginDatabaseApi.d.ts.map +1 -0
  366. package/dist/plugin/pluginDatabaseApi.js +45 -0
  367. package/dist/plugin/pluginDatabaseApi.js.map +1 -0
  368. package/dist/plugin/pluginSurface.d.ts +20 -0
  369. package/dist/plugin/pluginSurface.d.ts.map +1 -0
  370. package/dist/plugin/pluginSurface.js +31 -0
  371. package/dist/plugin/pluginSurface.js.map +1 -0
  372. package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.d.ts +9 -0
  373. package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.d.ts.map +1 -0
  374. package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.js +132 -0
  375. package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.js.map +1 -0
  376. package/dist/plugin/themeCategory.d.ts +62 -0
  377. package/dist/plugin/themeCategory.d.ts.map +1 -0
  378. package/dist/plugin/themeCategory.js +84 -0
  379. package/dist/plugin/themeCategory.js.map +1 -0
  380. package/dist/plugin/types.d.ts +415 -0
  381. package/dist/plugin/types.d.ts.map +1 -0
  382. package/dist/plugin/types.js +81 -0
  383. package/dist/plugin/types.js.map +1 -0
  384. package/dist/queryParams.d.ts +63 -0
  385. package/dist/queryParams.d.ts.map +1 -0
  386. package/dist/queryParams.js +170 -0
  387. package/dist/queryParams.js.map +1 -0
  388. package/dist/requestEditorTab.d.ts +24 -0
  389. package/dist/requestEditorTab.d.ts.map +1 -0
  390. package/dist/requestEditorTab.js +44 -0
  391. package/dist/requestEditorTab.js.map +1 -0
  392. package/dist/requestRunner/RequestRunner.d.ts +39 -0
  393. package/dist/requestRunner/RequestRunner.d.ts.map +1 -0
  394. package/dist/requestRunner/RequestRunner.js +298 -0
  395. package/dist/requestRunner/RequestRunner.js.map +1 -0
  396. package/dist/requestRunner/helpers.d.ts +52 -0
  397. package/dist/requestRunner/helpers.d.ts.map +1 -0
  398. package/dist/requestRunner/helpers.js +195 -0
  399. package/dist/requestRunner/helpers.js.map +1 -0
  400. package/dist/requestRunner/index.d.ts +7 -0
  401. package/dist/requestRunner/index.d.ts.map +1 -0
  402. package/dist/requestRunner/index.js +6 -0
  403. package/dist/requestRunner/index.js.map +1 -0
  404. package/dist/requestRunner/types.d.ts +148 -0
  405. package/dist/requestRunner/types.d.ts.map +1 -0
  406. package/dist/requestRunner/types.js +2 -0
  407. package/dist/requestRunner/types.js.map +1 -0
  408. package/dist/requestTags.d.ts +22 -0
  409. package/dist/requestTags.d.ts.map +1 -0
  410. package/dist/requestTags.js +34 -0
  411. package/dist/requestTags.js.map +1 -0
  412. package/dist/scriptRefs.d.ts +190 -0
  413. package/dist/scriptRefs.d.ts.map +1 -0
  414. package/dist/scriptRefs.js +387 -0
  415. package/dist/scriptRefs.js.map +1 -0
  416. package/dist/scriptStage.d.ts +118 -0
  417. package/dist/scriptStage.d.ts.map +1 -0
  418. package/dist/scriptStage.js +204 -0
  419. package/dist/scriptStage.js.map +1 -0
  420. package/dist/scripting/scriptApi.d.ts +59 -0
  421. package/dist/scripting/scriptApi.d.ts.map +1 -0
  422. package/dist/scripting/scriptApi.js +692 -0
  423. package/dist/scripting/scriptApi.js.map +1 -0
  424. package/dist/scripting/scriptAssertionCompat.d.ts +21 -0
  425. package/dist/scripting/scriptAssertionCompat.d.ts.map +1 -0
  426. package/dist/scripting/scriptAssertionCompat.js +58 -0
  427. package/dist/scripting/scriptAssertionCompat.js.map +1 -0
  428. package/dist/scripting/scriptEvaluator.d.ts +42 -0
  429. package/dist/scripting/scriptEvaluator.d.ts.map +1 -0
  430. package/dist/scripting/scriptEvaluator.js +179 -0
  431. package/dist/scripting/scriptEvaluator.js.map +1 -0
  432. package/dist/scripting/scriptExpect.d.ts +3 -0
  433. package/dist/scripting/scriptExpect.d.ts.map +1 -0
  434. package/dist/scripting/scriptExpect.js +14 -0
  435. package/dist/scripting/scriptExpect.js.map +1 -0
  436. package/dist/scripting/scriptFileOperations.d.ts +172 -0
  437. package/dist/scripting/scriptFileOperations.d.ts.map +1 -0
  438. package/dist/scripting/scriptFileOperations.js +271 -0
  439. package/dist/scripting/scriptFileOperations.js.map +1 -0
  440. package/dist/scripting/scriptResponseAssertions.d.ts +40 -0
  441. package/dist/scripting/scriptResponseAssertions.d.ts.map +1 -0
  442. package/dist/scripting/scriptResponseAssertions.js +249 -0
  443. package/dist/scripting/scriptResponseAssertions.js.map +1 -0
  444. package/dist/scripting/scriptResponseDocument.d.ts +47 -0
  445. package/dist/scripting/scriptResponseDocument.d.ts.map +1 -0
  446. package/dist/scripting/scriptResponseDocument.js +49 -0
  447. package/dist/scripting/scriptResponseDocument.js.map +1 -0
  448. package/dist/scripting/scriptRunner.d.ts +2 -0
  449. package/dist/scripting/scriptRunner.d.ts.map +1 -0
  450. package/dist/scripting/scriptRunner.js +132 -0
  451. package/dist/scripting/scriptRunner.js.map +1 -0
  452. package/dist/scripting/scriptSnippetBundler.d.ts +46 -0
  453. package/dist/scripting/scriptSnippetBundler.d.ts.map +1 -0
  454. package/dist/scripting/scriptSnippetBundler.js +136 -0
  455. package/dist/scripting/scriptSnippetBundler.js.map +1 -0
  456. package/dist/search/actions.d.ts +44 -0
  457. package/dist/search/actions.d.ts.map +1 -0
  458. package/dist/search/actions.js +120 -0
  459. package/dist/search/actions.js.map +1 -0
  460. package/dist/search/index.d.ts +13 -0
  461. package/dist/search/index.d.ts.map +1 -0
  462. package/dist/search/index.js +13 -0
  463. package/dist/search/index.js.map +1 -0
  464. package/dist/search/installedPlugins.d.ts +31 -0
  465. package/dist/search/installedPlugins.d.ts.map +1 -0
  466. package/dist/search/installedPlugins.js +73 -0
  467. package/dist/search/installedPlugins.js.map +1 -0
  468. package/dist/search/oramaIndex.d.ts +47 -0
  469. package/dist/search/oramaIndex.d.ts.map +1 -0
  470. package/dist/search/oramaIndex.js +56 -0
  471. package/dist/search/oramaIndex.js.map +1 -0
  472. package/dist/search/pagesCatalog.d.ts +34 -0
  473. package/dist/search/pagesCatalog.d.ts.map +1 -0
  474. package/dist/search/pagesCatalog.js +37 -0
  475. package/dist/search/pagesCatalog.js.map +1 -0
  476. package/dist/search/plugins.d.ts +40 -0
  477. package/dist/search/plugins.d.ts.map +1 -0
  478. package/dist/search/plugins.js +79 -0
  479. package/dist/search/plugins.js.map +1 -0
  480. package/dist/search/settings.d.ts +29 -0
  481. package/dist/search/settings.d.ts.map +1 -0
  482. package/dist/search/settings.js +63 -0
  483. package/dist/search/settings.js.map +1 -0
  484. package/dist/search/settingsCatalog.d.ts +112 -0
  485. package/dist/search/settingsCatalog.d.ts.map +1 -0
  486. package/dist/search/settingsCatalog.js +426 -0
  487. package/dist/search/settingsCatalog.js.map +1 -0
  488. package/dist/search/sidebar.d.ts +139 -0
  489. package/dist/search/sidebar.d.ts.map +1 -0
  490. package/dist/search/sidebar.js +342 -0
  491. package/dist/search/sidebar.js.map +1 -0
  492. package/dist/search/slashCommands.d.ts +45 -0
  493. package/dist/search/slashCommands.d.ts.map +1 -0
  494. package/dist/search/slashCommands.js +71 -0
  495. package/dist/search/slashCommands.js.map +1 -0
  496. package/dist/search/snippets.d.ts +48 -0
  497. package/dist/search/snippets.d.ts.map +1 -0
  498. package/dist/search/snippets.js +114 -0
  499. package/dist/search/snippets.js.map +1 -0
  500. package/dist/search/types.d.ts +60 -0
  501. package/dist/search/types.d.ts.map +1 -0
  502. package/dist/search/types.js +49 -0
  503. package/dist/search/types.js.map +1 -0
  504. package/dist/search/unified.d.ts +57 -0
  505. package/dist/search/unified.d.ts.map +1 -0
  506. package/dist/search/unified.js +153 -0
  507. package/dist/search/unified.js.map +1 -0
  508. package/dist/shortcuts.d.ts +174 -0
  509. package/dist/shortcuts.d.ts.map +1 -0
  510. package/dist/shortcuts.js +1040 -0
  511. package/dist/shortcuts.js.map +1 -0
  512. package/dist/sidebarColor.d.ts +16 -0
  513. package/dist/sidebarColor.d.ts.map +1 -0
  514. package/dist/sidebarColor.js +21 -0
  515. package/dist/sidebarColor.js.map +1 -0
  516. package/dist/sidebarExpansion.d.ts +12 -0
  517. package/dist/sidebarExpansion.d.ts.map +1 -0
  518. package/dist/sidebarExpansion.js +116 -0
  519. package/dist/sidebarExpansion.js.map +1 -0
  520. package/dist/snippet/catalog.d.ts +120 -0
  521. package/dist/snippet/catalog.d.ts.map +1 -0
  522. package/dist/snippet/catalog.js +105 -0
  523. package/dist/snippet/catalog.js.map +1 -0
  524. package/dist/snippet/types.d.ts +90 -0
  525. package/dist/snippet/types.d.ts.map +1 -0
  526. package/dist/snippet/types.js +2 -0
  527. package/dist/snippet/types.js.map +1 -0
  528. package/dist/snippetBundle.d.ts +21 -0
  529. package/dist/snippetBundle.d.ts.map +1 -0
  530. package/dist/snippetBundle.js +107 -0
  531. package/dist/snippetBundle.js.map +1 -0
  532. package/dist/snippetImport.d.ts +19 -0
  533. package/dist/snippetImport.d.ts.map +1 -0
  534. package/dist/snippetImport.js +34 -0
  535. package/dist/snippetImport.js.map +1 -0
  536. package/dist/snippetScope.d.ts +42 -0
  537. package/dist/snippetScope.d.ts.map +1 -0
  538. package/dist/snippetScope.js +50 -0
  539. package/dist/snippetScope.js.map +1 -0
  540. package/dist/storage/IStorage.d.ts +375 -0
  541. package/dist/storage/IStorage.d.ts.map +1 -0
  542. package/dist/storage/IStorage.js +2 -0
  543. package/dist/storage/IStorage.js.map +1 -0
  544. package/dist/themes.d.ts +24 -0
  545. package/dist/themes.d.ts.map +1 -0
  546. package/dist/themes.js +10 -0
  547. package/dist/themes.js.map +1 -0
  548. package/dist/types/ai.d.ts +304 -0
  549. package/dist/types/ai.d.ts.map +1 -0
  550. package/dist/types/ai.js +2 -0
  551. package/dist/types/ai.js.map +1 -0
  552. package/dist/types/api/backup.d.ts +27 -0
  553. package/dist/types/api/backup.d.ts.map +1 -0
  554. package/dist/types/api/backup.js +2 -0
  555. package/dist/types/api/backup.js.map +1 -0
  556. package/dist/types/api/chats.d.ts +88 -0
  557. package/dist/types/api/chats.d.ts.map +1 -0
  558. package/dist/types/api/chats.js +2 -0
  559. package/dist/types/api/chats.js.map +1 -0
  560. package/dist/types/api/collections.d.ts +251 -0
  561. package/dist/types/api/collections.d.ts.map +1 -0
  562. package/dist/types/api/collections.js +2 -0
  563. package/dist/types/api/collections.js.map +1 -0
  564. package/dist/types/api/customThemes.d.ts +68 -0
  565. package/dist/types/api/customThemes.d.ts.map +1 -0
  566. package/dist/types/api/customThemes.js +2 -0
  567. package/dist/types/api/customThemes.js.map +1 -0
  568. package/dist/types/api/docs.d.ts +14 -0
  569. package/dist/types/api/docs.d.ts.map +1 -0
  570. package/dist/types/api/docs.js +2 -0
  571. package/dist/types/api/docs.js.map +1 -0
  572. package/dist/types/api/documents.d.ts +51 -0
  573. package/dist/types/api/documents.d.ts.map +1 -0
  574. package/dist/types/api/documents.js +2 -0
  575. package/dist/types/api/documents.js.map +1 -0
  576. package/dist/types/api/environments.d.ts +57 -0
  577. package/dist/types/api/environments.d.ts.map +1 -0
  578. package/dist/types/api/environments.js +2 -0
  579. package/dist/types/api/environments.js.map +1 -0
  580. package/dist/types/api/git.d.ts +392 -0
  581. package/dist/types/api/git.d.ts.map +1 -0
  582. package/dist/types/api/git.js +2 -0
  583. package/dist/types/api/git.js.map +1 -0
  584. package/dist/types/api/http.d.ts +47 -0
  585. package/dist/types/api/http.d.ts.map +1 -0
  586. package/dist/types/api/http.js +2 -0
  587. package/dist/types/api/http.js.map +1 -0
  588. package/dist/types/api/index.d.ts +28 -0
  589. package/dist/types/api/index.d.ts.map +1 -0
  590. package/dist/types/api/index.js +2 -0
  591. package/dist/types/api/index.js.map +1 -0
  592. package/dist/types/api/mcp.d.ts +77 -0
  593. package/dist/types/api/mcp.d.ts.map +1 -0
  594. package/dist/types/api/mcp.js +2 -0
  595. package/dist/types/api/mcp.js.map +1 -0
  596. package/dist/types/api/plugins.d.ts +338 -0
  597. package/dist/types/api/plugins.d.ts.map +1 -0
  598. package/dist/types/api/plugins.js +2 -0
  599. package/dist/types/api/plugins.js.map +1 -0
  600. package/dist/types/api/requestHistory.d.ts +27 -0
  601. package/dist/types/api/requestHistory.d.ts.map +1 -0
  602. package/dist/types/api/requestHistory.js +2 -0
  603. package/dist/types/api/requestHistory.js.map +1 -0
  604. package/dist/types/api/requests.d.ts +35 -0
  605. package/dist/types/api/requests.d.ts.map +1 -0
  606. package/dist/types/api/requests.js +2 -0
  607. package/dist/types/api/requests.js.map +1 -0
  608. package/dist/types/api/settings.d.ts +163 -0
  609. package/dist/types/api/settings.d.ts.map +1 -0
  610. package/dist/types/api/settings.js +2 -0
  611. package/dist/types/api/settings.js.map +1 -0
  612. package/dist/types/api/sharing.d.ts +68 -0
  613. package/dist/types/api/sharing.d.ts.map +1 -0
  614. package/dist/types/api/sharing.js +2 -0
  615. package/dist/types/api/sharing.js.map +1 -0
  616. package/dist/types/api/snippets.d.ts +159 -0
  617. package/dist/types/api/snippets.d.ts.map +1 -0
  618. package/dist/types/api/snippets.js +2 -0
  619. package/dist/types/api/snippets.js.map +1 -0
  620. package/dist/types/api/storage.d.ts +57 -0
  621. package/dist/types/api/storage.d.ts.map +1 -0
  622. package/dist/types/api/storage.js +2 -0
  623. package/dist/types/api/storage.js.map +1 -0
  624. package/dist/types/api/tabGroup.d.ts +43 -0
  625. package/dist/types/api/tabGroup.d.ts.map +1 -0
  626. package/dist/types/api/tabGroup.js +2 -0
  627. package/dist/types/api/tabGroup.js.map +1 -0
  628. package/dist/types/api/teamHub.d.ts +225 -0
  629. package/dist/types/api/teamHub.d.ts.map +1 -0
  630. package/dist/types/api/teamHub.js +2 -0
  631. package/dist/types/api/teamHub.js.map +1 -0
  632. package/dist/types/api/terminal.d.ts +101 -0
  633. package/dist/types/api/terminal.d.ts.map +1 -0
  634. package/dist/types/api/terminal.js +2 -0
  635. package/dist/types/api/terminal.js.map +1 -0
  636. package/dist/types/api/trash.d.ts +27 -0
  637. package/dist/types/api/trash.d.ts.map +1 -0
  638. package/dist/types/api/trash.js +2 -0
  639. package/dist/types/api/trash.js.map +1 -0
  640. package/dist/types/api/window.d.ts +251 -0
  641. package/dist/types/api/window.d.ts.map +1 -0
  642. package/dist/types/api/window.js +2 -0
  643. package/dist/types/api/window.js.map +1 -0
  644. package/dist/types/app.d.ts +83 -0
  645. package/dist/types/app.d.ts.map +1 -0
  646. package/dist/types/app.js +2 -0
  647. package/dist/types/app.js.map +1 -0
  648. package/dist/types/collection.d.ts +559 -0
  649. package/dist/types/collection.d.ts.map +1 -0
  650. package/dist/types/collection.js +2 -0
  651. package/dist/types/collection.js.map +1 -0
  652. package/dist/types/common.d.ts +23 -0
  653. package/dist/types/common.d.ts.map +1 -0
  654. package/dist/types/common.js +2 -0
  655. package/dist/types/common.js.map +1 -0
  656. package/dist/types/customTheme.d.ts +163 -0
  657. package/dist/types/customTheme.d.ts.map +1 -0
  658. package/dist/types/customTheme.js +311 -0
  659. package/dist/types/customTheme.js.map +1 -0
  660. package/dist/types/environment.d.ts +64 -0
  661. package/dist/types/environment.d.ts.map +1 -0
  662. package/dist/types/environment.js +2 -0
  663. package/dist/types/environment.js.map +1 -0
  664. package/dist/types/index.d.ts +21 -0
  665. package/dist/types/index.d.ts.map +1 -0
  666. package/dist/types/index.js +20 -0
  667. package/dist/types/index.js.map +1 -0
  668. package/dist/types/mcp.d.ts +153 -0
  669. package/dist/types/mcp.d.ts.map +1 -0
  670. package/dist/types/mcp.js +2 -0
  671. package/dist/types/mcp.js.map +1 -0
  672. package/dist/types/request.d.ts +294 -0
  673. package/dist/types/request.d.ts.map +1 -0
  674. package/dist/types/request.js +2 -0
  675. package/dist/types/request.js.map +1 -0
  676. package/dist/types/requestHistory.d.ts +88 -0
  677. package/dist/types/requestHistory.d.ts.map +1 -0
  678. package/dist/types/requestHistory.js +5 -0
  679. package/dist/types/requestHistory.js.map +1 -0
  680. package/dist/types/script.d.ts +366 -0
  681. package/dist/types/script.d.ts.map +1 -0
  682. package/dist/types/script.js +34 -0
  683. package/dist/types/script.js.map +1 -0
  684. package/dist/types/settings.d.ts +340 -0
  685. package/dist/types/settings.d.ts.map +1 -0
  686. package/dist/types/settings.js +3 -0
  687. package/dist/types/settings.js.map +1 -0
  688. package/dist/types/sharing.d.ts +87 -0
  689. package/dist/types/sharing.d.ts.map +1 -0
  690. package/dist/types/sharing.js +2 -0
  691. package/dist/types/sharing.js.map +1 -0
  692. package/dist/types/snippet.d.ts +150 -0
  693. package/dist/types/snippet.d.ts.map +1 -0
  694. package/dist/types/snippet.js +2 -0
  695. package/dist/types/snippet.js.map +1 -0
  696. package/dist/types/storage.d.ts +846 -0
  697. package/dist/types/storage.d.ts.map +1 -0
  698. package/dist/types/storage.js +2 -0
  699. package/dist/types/storage.js.map +1 -0
  700. package/dist/types/tabGroup.d.ts +108 -0
  701. package/dist/types/tabGroup.d.ts.map +1 -0
  702. package/dist/types/tabGroup.js +26 -0
  703. package/dist/types/tabGroup.js.map +1 -0
  704. package/dist/types/teamHub.d.ts +690 -0
  705. package/dist/types/teamHub.d.ts.map +1 -0
  706. package/dist/types/teamHub.js +2 -0
  707. package/dist/types/teamHub.js.map +1 -0
  708. package/dist/types/trash.d.ts +63 -0
  709. package/dist/types/trash.d.ts.map +1 -0
  710. package/dist/types/trash.js +2 -0
  711. package/dist/types/trash.js.map +1 -0
  712. package/dist/types/window.d.ts +14 -0
  713. package/dist/types/window.d.ts.map +1 -0
  714. package/dist/types/window.js +2 -0
  715. package/dist/types/window.js.map +1 -0
  716. package/dist/types.d.ts +7 -0
  717. package/dist/types.d.ts.map +1 -0
  718. package/dist/types.js +2 -0
  719. package/dist/types.js.map +1 -0
  720. package/dist/urlencoded.d.ts +2 -0
  721. package/dist/urlencoded.d.ts.map +1 -0
  722. package/dist/urlencoded.js +2 -0
  723. package/dist/urlencoded.js.map +1 -0
  724. package/dist/urlencodedRaw.d.ts +23 -0
  725. package/dist/urlencodedRaw.d.ts.map +1 -0
  726. package/dist/urlencodedRaw.js +60 -0
  727. package/dist/urlencodedRaw.js.map +1 -0
  728. package/dist/userAgent.d.ts +132 -0
  729. package/dist/userAgent.d.ts.map +1 -0
  730. package/dist/userAgent.js +178 -0
  731. package/dist/userAgent.js.map +1 -0
  732. package/dist/zoomPresets.d.ts +38 -0
  733. package/dist/zoomPresets.d.ts.map +1 -0
  734. package/dist/zoomPresets.js +67 -0
  735. package/dist/zoomPresets.js.map +1 -0
  736. package/package.json +92 -0
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Default title for chats that have not received an AI-generated summary yet.
3
+ */
4
+ export const DEFAULT_CHAT_TITLE = 'New Chat';
5
+ /**
6
+ * Maximum length for persisted chat tab titles.
7
+ */
8
+ export const CHAT_TITLE_MAX_LENGTH = 40;
9
+ /**
10
+ * OpenAI tool definition for summarizing a user's first message into a chat title.
11
+ */
12
+ export const CHAT_TITLE_TOOL = {
13
+ type: 'function',
14
+ function: {
15
+ name: 'set_chat_title',
16
+ description: 'Sets a short 3-5 word title that summarizes the user question.',
17
+ parameters: {
18
+ type: 'object',
19
+ properties: {
20
+ title: {
21
+ type: 'string',
22
+ description: 'A 3-5 word summary of the user question. No quotes or trailing punctuation.'
23
+ }
24
+ },
25
+ required: ['title'],
26
+ additionalProperties: false
27
+ }
28
+ }
29
+ };
30
+ /**
31
+ * Builds the system prompt for AI chat title generation.
32
+ *
33
+ * @returns System prompt instructing the model to call set_chat_title.
34
+ */
35
+ export function buildChatTitleSystemPrompt() {
36
+ return `You summarize user questions into very short chat titles.
37
+
38
+ Rules:
39
+ 1. Always respond by calling the set_chat_title tool exactly once.
40
+ 2. The title must be 3-5 words that capture the topic of the user's first message.
41
+ 3. Do not use quotation marks or trailing punctuation.
42
+ 4. Use title case only when it reads naturally; otherwise use sentence-style wording.
43
+ 5. Do not include explanations or extra text outside the tool call.`;
44
+ }
45
+ /**
46
+ * Normalizes raw title text for persistence and display.
47
+ *
48
+ * @param raw - Title string from the model or user input.
49
+ * @returns Sanitized title, or {@link DEFAULT_CHAT_TITLE} when empty after normalization.
50
+ */
51
+ export function normalizeChatTitle(raw) {
52
+ let normalized = raw.trim().replace(/\s+/g, ' ');
53
+ if ((normalized.startsWith('"') && normalized.endsWith('"')) ||
54
+ (normalized.startsWith("'") && normalized.endsWith("'"))) {
55
+ normalized = normalized.slice(1, -1).trim();
56
+ }
57
+ normalized = normalized.replace(/[.!?;:]+$/, '').trim();
58
+ if (!normalized) {
59
+ return DEFAULT_CHAT_TITLE;
60
+ }
61
+ if (normalized.length <= CHAT_TITLE_MAX_LENGTH) {
62
+ return normalized;
63
+ }
64
+ return `${normalized.slice(0, CHAT_TITLE_MAX_LENGTH - 1)}…`;
65
+ }
66
+ /**
67
+ * Parses tool arguments JSON from a set_chat_title call.
68
+ *
69
+ * @param raw - Raw JSON arguments string from the model.
70
+ * @returns Normalized title, or null when parsing fails or title is empty.
71
+ */
72
+ function parseSetChatTitleArgs(raw) {
73
+ if (!raw.trim()) {
74
+ return null;
75
+ }
76
+ const parsed = JSON.parse(raw);
77
+ if (typeof parsed.title !== 'string' || !parsed.title.trim()) {
78
+ return null;
79
+ }
80
+ const normalized = normalizeChatTitle(parsed.title);
81
+ if (normalized === DEFAULT_CHAT_TITLE) {
82
+ return null;
83
+ }
84
+ return normalized;
85
+ }
86
+ /**
87
+ * Reads a set_chat_title tool call from a chat step result.
88
+ *
89
+ * @param result - One LLM completion step result.
90
+ * @returns Normalized title, or null when no usable response is present.
91
+ */
92
+ export function parseChatTitleResult(result) {
93
+ const toolCall = result.toolCalls?.find((call) => call.name === 'set_chat_title');
94
+ if (toolCall) {
95
+ try {
96
+ return parseSetChatTitleArgs(toolCall.arguments);
97
+ }
98
+ catch {
99
+ return null;
100
+ }
101
+ }
102
+ const content = result.content?.trim();
103
+ if (content) {
104
+ const normalized = normalizeChatTitle(content);
105
+ return normalized === DEFAULT_CHAT_TITLE ? null : normalized;
106
+ }
107
+ return null;
108
+ }
109
+ //# sourceMappingURL=chatTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatTitle.js","sourceRoot":"","sources":["../../src/ai/chatTitle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { ChatStepMessage } from '../types';
2
+ /**
3
+ * Default commit message shown before the user edits or generates one.
4
+ */
5
+ export declare const DEFAULT_GIT_COMMIT_MESSAGE = "Update HarborClient collections";
6
+ /**
7
+ * Maximum length for AI-generated commit subject lines.
8
+ */
9
+ export declare const GIT_COMMIT_MESSAGE_MAX_LENGTH = 72;
10
+ /**
11
+ * Maximum number of changed-request bullet lines in an AI-generated commit body.
12
+ */
13
+ export declare const GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS = 5;
14
+ /**
15
+ * Returns whether a commit message draft can be replaced by AI output.
16
+ *
17
+ * @param value - Current textarea value.
18
+ */
19
+ export declare function canReplaceGitCommitMessage(value: string): boolean;
20
+ /**
21
+ * Normalizes raw commit message text from the model.
22
+ *
23
+ * @param raw - Assistant text or tool output.
24
+ * @returns Commit subject, optionally followed by a blank line and up to five request bullets.
25
+ */
26
+ export declare function normalizeGitCommitMessage(raw: string): string;
27
+ /**
28
+ * Builds the system prompt for AI git commit message generation.
29
+ *
30
+ * @returns System prompt instructing the model to inspect git_diff and return a subject with request bullets.
31
+ */
32
+ export declare function buildGitCommitMessageSystemPrompt(): string;
33
+ /**
34
+ * Builds the initial user message for commit message generation.
35
+ *
36
+ * @param connectionName - Display name of the git connection.
37
+ * @param collectionUuid - Collection uuid used to resolve the git repository.
38
+ */
39
+ export declare function buildGitCommitMessageUserPrompt(connectionName: string, collectionUuid: string): string;
40
+ /**
41
+ * Builds the conversation messages for the commit-message agent loop.
42
+ *
43
+ * @param connectionName - Display name of the git connection.
44
+ * @param collectionUuid - Collection uuid passed to git_diff.
45
+ */
46
+ export declare function buildGitCommitMessageMessages(connectionName: string, collectionUuid: string): ChatStepMessage[];
47
+ //# sourceMappingURL=gitCommitMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitCommitMessage.d.ts","sourceRoot":"","sources":["../../src/ai/gitCommitMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,0BAA0B,oCAAoC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjE;AAiDD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmC7D;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAc1D;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,eAAe,EAAE,CAOnB"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Default commit message shown before the user edits or generates one.
3
+ */
4
+ export const DEFAULT_GIT_COMMIT_MESSAGE = 'Update HarborClient collections';
5
+ /**
6
+ * Maximum length for AI-generated commit subject lines.
7
+ */
8
+ export const GIT_COMMIT_MESSAGE_MAX_LENGTH = 72;
9
+ /**
10
+ * Maximum number of changed-request bullet lines in an AI-generated commit body.
11
+ */
12
+ export const GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS = 5;
13
+ /**
14
+ * Returns whether a commit message draft can be replaced by AI output.
15
+ *
16
+ * @param value - Current textarea value.
17
+ */
18
+ export function canReplaceGitCommitMessage(value) {
19
+ const trimmed = value.trim();
20
+ return trimmed.length === 0 || trimmed === DEFAULT_GIT_COMMIT_MESSAGE;
21
+ }
22
+ /**
23
+ * Normalizes a single commit subject line from the model.
24
+ *
25
+ * @param line - First non-empty line of the raw commit message.
26
+ * @returns Imperative subject without quotes or trailing punctuation, capped at 72 characters.
27
+ */
28
+ function normalizeGitCommitSubjectLine(line) {
29
+ let normalized = line.replace(/\s+/g, ' ');
30
+ if ((normalized.startsWith('"') && normalized.endsWith('"')) ||
31
+ (normalized.startsWith("'") && normalized.endsWith("'"))) {
32
+ normalized = normalized.slice(1, -1).trim();
33
+ }
34
+ normalized = normalized.replace(/[.!?;:]+$/, '').trim();
35
+ if (!normalized) {
36
+ return '';
37
+ }
38
+ if (normalized.length <= GIT_COMMIT_MESSAGE_MAX_LENGTH) {
39
+ return normalized;
40
+ }
41
+ return `${normalized.slice(0, GIT_COMMIT_MESSAGE_MAX_LENGTH - 1)}…`;
42
+ }
43
+ /**
44
+ * Normalizes a bullet line from the commit body to a leading "- " prefix.
45
+ *
46
+ * @param line - Trimmed line that may start with "-" or "*".
47
+ * @returns Normalized bullet text, or null when the line is not a bullet.
48
+ */
49
+ function normalizeGitCommitBulletLine(line) {
50
+ const match = line.match(/^([-*])\s*(.+)$/);
51
+ if (!match) {
52
+ return null;
53
+ }
54
+ const content = match[2].replace(/\s+/g, ' ').trim();
55
+ if (!content) {
56
+ return null;
57
+ }
58
+ return `- ${content}`;
59
+ }
60
+ /**
61
+ * Normalizes raw commit message text from the model.
62
+ *
63
+ * @param raw - Assistant text or tool output.
64
+ * @returns Commit subject, optionally followed by a blank line and up to five request bullets.
65
+ */
66
+ export function normalizeGitCommitMessage(raw) {
67
+ const lines = raw
68
+ .trim()
69
+ .split('\n')
70
+ .map((line) => line.trim());
71
+ const subjectLineIndex = lines.findIndex((line) => line.length > 0);
72
+ if (subjectLineIndex === -1) {
73
+ return '';
74
+ }
75
+ const subject = normalizeGitCommitSubjectLine(lines[subjectLineIndex] ?? '');
76
+ if (!subject) {
77
+ return '';
78
+ }
79
+ const bullets = [];
80
+ for (let index = subjectLineIndex + 1; index < lines.length; index += 1) {
81
+ const line = lines[index] ?? '';
82
+ if (!line) {
83
+ continue;
84
+ }
85
+ const bullet = normalizeGitCommitBulletLine(line);
86
+ if (bullet) {
87
+ bullets.push(bullet);
88
+ }
89
+ }
90
+ const cappedBullets = bullets.slice(0, GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS);
91
+ if (cappedBullets.length === 0) {
92
+ return subject;
93
+ }
94
+ return `${subject}\n\n${cappedBullets.join('\n')}`;
95
+ }
96
+ /**
97
+ * Builds the system prompt for AI git commit message generation.
98
+ *
99
+ * @returns System prompt instructing the model to inspect git_diff and return a subject with request bullets.
100
+ */
101
+ export function buildGitCommitMessageSystemPrompt() {
102
+ return `You write concise git commit messages for HarborClient repository changes.
103
+
104
+ Rules:
105
+ 1. Call git_diff with the provided collectionUuid before writing the commit message.
106
+ 2. Summarize all uncommitted changes in the repository, not just one collection folder.
107
+ 3. Return exactly one commit subject line in imperative mood (for example "Add OAuth refresh handling").
108
+ 4. Keep the subject to 72 characters or fewer. Do not wrap it in quotes or end it with trailing punctuation.
109
+ 5. After the subject, add one blank line, then a bullet list of changed saved requests when any request files under a requests/ directory were added, modified, or deleted.
110
+ 6. Each bullet must use the format "- <Request Name>: <short description>" where Request Name comes from the request JSON name field in the diff (fall back to the file slug when the name is not visible).
111
+ 7. Keep each bullet description very short (a few words).
112
+ 8. Include at most ${GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS} request bullets. When more than ${GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS} request files changed, list only the ${GIT_COMMIT_MESSAGE_MAX_REQUEST_BULLETS} most significant and omit the rest without noting that anything was left out.
113
+ 9. When no request files changed, return only the subject line with no blank line or bullet list.
114
+ 10. Do not call any tools other than git_diff.`;
115
+ }
116
+ /**
117
+ * Builds the initial user message for commit message generation.
118
+ *
119
+ * @param connectionName - Display name of the git connection.
120
+ * @param collectionUuid - Collection uuid used to resolve the git repository.
121
+ */
122
+ export function buildGitCommitMessageUserPrompt(connectionName, collectionUuid) {
123
+ return `Generate a git commit message for repository "${connectionName}". Use collectionUuid "${collectionUuid}" when calling git_diff.`;
124
+ }
125
+ /**
126
+ * Builds the conversation messages for the commit-message agent loop.
127
+ *
128
+ * @param connectionName - Display name of the git connection.
129
+ * @param collectionUuid - Collection uuid passed to git_diff.
130
+ */
131
+ export function buildGitCommitMessageMessages(connectionName, collectionUuid) {
132
+ return [
133
+ {
134
+ role: 'user',
135
+ content: buildGitCommitMessageUserPrompt(connectionName, collectionUuid)
136
+ }
137
+ ];
138
+ }
139
+ //# sourceMappingURL=gitCommitMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitCommitMessage.js","sourceRoot":"","sources":["../../src/ai/gitCommitMessage.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,0BAA0B,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,IAAY;IACjD,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAExD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,IAAI,6BAA6B,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,GAAG,CAAC,CAAC,GAAG,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,IAAY;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACnD,MAAM,KAAK,GAAG,GAAG;SACd,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEpE,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,gBAAgB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAC/E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,OAAO,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO;;;;;;;;;;qBAUY,sCAAsC,oCAAoC,sCAAsC,yCAAyC,sCAAsC;;+CAErK,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,cAAsB,EACtB,cAAsB;IAEtB,OAAO,iDAAiD,cAAc,0BAA0B,cAAc,0BAA0B,CAAC;AAC3I,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,cAAsB,EACtB,cAAsB;IAEtB,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,+BAA+B,CAAC,cAAc,EAAE,cAAc,CAAC;SACzE;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,115 @@
1
+ import type { HubLlmModelGroup, LlmProvider } from '../types/ai';
2
+ import type { AiSettings } from '../types/settings';
3
+ /**
4
+ * Whether a chat model is sourced from a personal API key or a Team Hub.
5
+ */
6
+ export type AiModelSource = 'personal' | 'hub';
7
+ /**
8
+ * Selectable AI model exposed in the chat composer.
9
+ */
10
+ export interface AiModelOption {
11
+ /**
12
+ * Provider-specific model id sent to the API.
13
+ */
14
+ id: string;
15
+ /**
16
+ * Stable selection key for the dropdown, unique across sources.
17
+ *
18
+ * Defaults to {@link id}. When a Team Hub and a personal key both offer the
19
+ * same model id, the personal entry uses `personal:<id>` so the two remain
20
+ * independently selectable even though they send the same provider {@link id}.
21
+ */
22
+ value: string;
23
+ /**
24
+ * Human-readable label for the model dropdown.
25
+ */
26
+ label: string;
27
+ /**
28
+ * LLM provider that owns this model.
29
+ */
30
+ provider: LlmProvider;
31
+ /**
32
+ * Whether the model uses a personal API key or a Team Hub proxy.
33
+ */
34
+ source: AiModelSource;
35
+ /**
36
+ * Team Hub id when {@link source} is `hub`.
37
+ */
38
+ hubId?: string;
39
+ /**
40
+ * Team Hub display name when {@link source} is `hub`.
41
+ */
42
+ hubName?: string;
43
+ }
44
+ /**
45
+ * Section header and models for a grouped model dropdown.
46
+ */
47
+ export interface AiModelOptionGroup {
48
+ /**
49
+ * Stable React key for the optgroup.
50
+ */
51
+ key: string;
52
+ /**
53
+ * Visible optgroup label in the dropdown.
54
+ */
55
+ label: string;
56
+ /**
57
+ * Selectable models within this section.
58
+ */
59
+ models: AiModelOption[];
60
+ }
61
+ /**
62
+ * Catalog of supported AI models grouped by provider.
63
+ */
64
+ export declare const AI_MODELS: Omit<AiModelOption, 'source' | 'value'>[];
65
+ /**
66
+ * Catalog of GitHub Models offered when the user is signed in with GitHub.
67
+ */
68
+ export declare const GITHUB_MODELS: Omit<AiModelOption, 'source' | 'value'>[];
69
+ /**
70
+ * Returns chat models available from Team Hubs and personal API keys.
71
+ *
72
+ * Hub models are preferred when both a hub and a personal key offer the same id.
73
+ *
74
+ * @param settings - Stored AI provider API keys.
75
+ * @param hubGroups - Models exposed by configured Team Hubs.
76
+ * @param githubConnected - Whether GitHub Models sign-in is active.
77
+ */
78
+ export declare function getAvailableModels(settings: AiSettings, hubGroups?: HubLlmModelGroup[], githubConnected?: boolean): AiModelOption[];
79
+ /**
80
+ * Returns the dropdown section label for one selectable model option.
81
+ *
82
+ * @param model - Model option from {@link getAvailableModels}.
83
+ */
84
+ export declare function getAiModelOptionGroupLabel(model: AiModelOption): string;
85
+ /**
86
+ * Groups flat model options into optgroup sections while preserving list order.
87
+ *
88
+ * @param models - Models from {@link getAvailableModels}.
89
+ */
90
+ export declare function groupAvailableModels(models: AiModelOption[]): AiModelOptionGroup[];
91
+ /**
92
+ * Returns true when at least one chat model is available from hubs or personal keys.
93
+ *
94
+ * @param settings - Stored AI provider API keys.
95
+ * @param hubGroups - Models exposed by configured Team Hubs.
96
+ * @param githubConnected - Whether GitHub Models sign-in is active.
97
+ */
98
+ export declare function hasAvailableAiModels(settings: AiSettings, hubGroups?: HubLlmModelGroup[], githubConnected?: boolean): boolean;
99
+ /**
100
+ * Looks up a catalog model by its provider-specific id.
101
+ *
102
+ * @param modelId - Model id from the chat composer or persisted chat record.
103
+ * @returns The matching catalog entry, or undefined when unknown.
104
+ */
105
+ export declare function getAiModelById(modelId: string): Omit<AiModelOption, 'source' | 'value'> | undefined;
106
+ /**
107
+ * Resolves a selectable model option including hub routing metadata.
108
+ *
109
+ * @param modelId - Model id selected in the composer.
110
+ * @param settings - Stored AI provider API keys.
111
+ * @param hubGroups - Models exposed by configured Team Hubs.
112
+ * @param githubConnected - Whether GitHub Models sign-in is active.
113
+ */
114
+ export declare function resolveAiModelOption(modelId: string, settings: AiSettings, hubGroups?: HubLlmModelGroup[], githubConnected?: boolean): AiModelOption | undefined;
115
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/ai/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,KAAK,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,EAO9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,EAMlE,CAAC;AA8CF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,UAAU,EACpB,SAAS,GAAE,gBAAgB,EAAO,EAClC,eAAe,UAAQ,GACtB,aAAa,EAAE,CA6EjB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAUvE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAoBlF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,EACpB,SAAS,GAAE,gBAAgB,EAAO,EAClC,eAAe,UAAQ,GACtB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GACd,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,SAAS,CAKrD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,SAAS,GAAE,gBAAgB,EAAO,EAClC,eAAe,UAAQ,GACtB,aAAa,GAAG,SAAS,CAO3B"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Catalog of supported AI models grouped by provider.
3
+ */
4
+ export const AI_MODELS = [
5
+ { id: 'gpt-4o', label: 'GPT-4o', provider: 'openai' },
6
+ { id: 'gpt-4o-mini', label: 'GPT-4o Mini', provider: 'openai' },
7
+ { id: 'claude-3-5-sonnet-20241022', label: 'Claude 3.5 Sonnet', provider: 'claude' },
8
+ { id: 'claude-3-5-haiku-20241022', label: 'Claude 3.5 Haiku', provider: 'claude' },
9
+ { id: 'gemini-1.5-pro', label: 'Gemini 1.5 Pro', provider: 'gemini' },
10
+ { id: 'gemini-1.5-flash', label: 'Gemini 1.5 Flash', provider: 'gemini' }
11
+ ];
12
+ /**
13
+ * Catalog of GitHub Models offered when the user is signed in with GitHub.
14
+ */
15
+ export const GITHUB_MODELS = [
16
+ { id: 'openai/gpt-4o', label: 'GPT-4o', provider: 'github' },
17
+ { id: 'openai/gpt-4o-mini', label: 'GPT-4o Mini', provider: 'github' },
18
+ { id: 'openai/gpt-4.1-mini', label: 'GPT-4.1 Mini', provider: 'github' },
19
+ { id: 'meta/Llama-3.3-70B-Instruct', label: 'Llama 3.3 70B', provider: 'github' },
20
+ { id: 'deepseek/DeepSeek-R1', label: 'DeepSeek R1', provider: 'github' }
21
+ ];
22
+ /**
23
+ * Returns whether a provider has a configured API key.
24
+ *
25
+ * @param settings - Stored AI provider API keys.
26
+ * @param provider - Provider to check.
27
+ */
28
+ function hasProviderKey(settings, provider) {
29
+ switch (provider) {
30
+ case 'openai':
31
+ return settings.openaiApiKey.trim().length > 0;
32
+ case 'claude':
33
+ return settings.claudeApiKey.trim().length > 0;
34
+ case 'gemini':
35
+ return settings.geminiApiKey.trim().length > 0;
36
+ case 'github':
37
+ return false;
38
+ default: {
39
+ const exhaustive = provider;
40
+ return exhaustive;
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Indexes hub-offered models by id, preferring the first configured hub per model.
46
+ *
47
+ * @param hubGroups - Models returned from connected Team Hubs.
48
+ */
49
+ function indexHubModels(hubGroups) {
50
+ const indexed = new Map();
51
+ for (const group of hubGroups) {
52
+ for (const model of group.models) {
53
+ if (!indexed.has(model.id)) {
54
+ indexed.set(model.id, { hubId: group.hubId, hubName: group.hubName });
55
+ }
56
+ }
57
+ }
58
+ return indexed;
59
+ }
60
+ /**
61
+ * Returns chat models available from Team Hubs and personal API keys.
62
+ *
63
+ * Hub models are preferred when both a hub and a personal key offer the same id.
64
+ *
65
+ * @param settings - Stored AI provider API keys.
66
+ * @param hubGroups - Models exposed by configured Team Hubs.
67
+ * @param githubConnected - Whether GitHub Models sign-in is active.
68
+ */
69
+ export function getAvailableModels(settings, hubGroups = [], githubConnected = false) {
70
+ const hubModels = indexHubModels(hubGroups);
71
+ const options = [];
72
+ const includedIds = new Set();
73
+ for (const model of AI_MODELS) {
74
+ const hub = hubModels.get(model.id);
75
+ if (hub) {
76
+ options.push({
77
+ ...model,
78
+ value: model.id,
79
+ label: model.label,
80
+ source: 'hub',
81
+ hubId: hub.hubId,
82
+ hubName: hub.hubName
83
+ });
84
+ includedIds.add(model.id);
85
+ // Surface the personal-key route too, so a Team Hub offering the same
86
+ // model id does not hide the direct provider option from the user.
87
+ if (hasProviderKey(settings, model.provider)) {
88
+ options.push({
89
+ ...model,
90
+ value: `personal:${model.id}`,
91
+ label: model.label,
92
+ source: 'personal'
93
+ });
94
+ }
95
+ continue;
96
+ }
97
+ if (hasProviderKey(settings, model.provider)) {
98
+ options.push({
99
+ ...model,
100
+ value: model.id,
101
+ label: model.label,
102
+ source: 'personal'
103
+ });
104
+ includedIds.add(model.id);
105
+ }
106
+ }
107
+ for (const group of hubGroups) {
108
+ for (const model of group.models) {
109
+ if (includedIds.has(model.id)) {
110
+ continue;
111
+ }
112
+ options.push({
113
+ id: model.id,
114
+ value: model.id,
115
+ label: model.label,
116
+ provider: model.provider,
117
+ source: 'hub',
118
+ hubId: group.hubId,
119
+ hubName: group.hubName
120
+ });
121
+ includedIds.add(model.id);
122
+ }
123
+ }
124
+ if (githubConnected) {
125
+ for (const model of GITHUB_MODELS) {
126
+ if (includedIds.has(model.id)) {
127
+ continue;
128
+ }
129
+ options.push({
130
+ ...model,
131
+ value: model.id,
132
+ label: model.label,
133
+ source: 'personal'
134
+ });
135
+ includedIds.add(model.id);
136
+ }
137
+ }
138
+ return options;
139
+ }
140
+ /**
141
+ * Returns the dropdown section label for one selectable model option.
142
+ *
143
+ * @param model - Model option from {@link getAvailableModels}.
144
+ */
145
+ export function getAiModelOptionGroupLabel(model) {
146
+ if (model.source === 'hub') {
147
+ return model.hubName ?? 'Team Hub';
148
+ }
149
+ if (model.provider === 'github') {
150
+ return 'GitHub Models';
151
+ }
152
+ return 'Personal';
153
+ }
154
+ /**
155
+ * Groups flat model options into optgroup sections while preserving list order.
156
+ *
157
+ * @param models - Models from {@link getAvailableModels}.
158
+ */
159
+ export function groupAvailableModels(models) {
160
+ const groups = [];
161
+ const groupIndex = new Map();
162
+ for (const model of models) {
163
+ const label = getAiModelOptionGroupLabel(model);
164
+ const key = model.source === 'hub' && model.hubId != null ? `hub:${model.hubId}` : label.toLowerCase();
165
+ const existingIndex = groupIndex.get(key);
166
+ if (existingIndex !== undefined) {
167
+ groups[existingIndex]?.models.push(model);
168
+ continue;
169
+ }
170
+ groupIndex.set(key, groups.length);
171
+ groups.push({ key, label, models: [model] });
172
+ }
173
+ return groups;
174
+ }
175
+ /**
176
+ * Returns true when at least one chat model is available from hubs or personal keys.
177
+ *
178
+ * @param settings - Stored AI provider API keys.
179
+ * @param hubGroups - Models exposed by configured Team Hubs.
180
+ * @param githubConnected - Whether GitHub Models sign-in is active.
181
+ */
182
+ export function hasAvailableAiModels(settings, hubGroups = [], githubConnected = false) {
183
+ return getAvailableModels(settings, hubGroups, githubConnected).length > 0;
184
+ }
185
+ /**
186
+ * Looks up a catalog model by its provider-specific id.
187
+ *
188
+ * @param modelId - Model id from the chat composer or persisted chat record.
189
+ * @returns The matching catalog entry, or undefined when unknown.
190
+ */
191
+ export function getAiModelById(modelId) {
192
+ return (AI_MODELS.find((model) => model.id === modelId) ??
193
+ GITHUB_MODELS.find((model) => model.id === modelId));
194
+ }
195
+ /**
196
+ * Resolves a selectable model option including hub routing metadata.
197
+ *
198
+ * @param modelId - Model id selected in the composer.
199
+ * @param settings - Stored AI provider API keys.
200
+ * @param hubGroups - Models exposed by configured Team Hubs.
201
+ * @param githubConnected - Whether GitHub Models sign-in is active.
202
+ */
203
+ export function resolveAiModelOption(modelId, settings, hubGroups = [], githubConnected = false) {
204
+ const models = getAvailableModels(settings, hubGroups, githubConnected);
205
+ // Prefer an exact selection-key match; fall back to raw id for chats persisted
206
+ // before disambiguation keys existed.
207
+ return (models.find((model) => model.value === modelId) ?? models.find((model) => model.id === modelId));
208
+ }
209
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/ai/models.ts"],"names":[],"mappings":"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"}