@burtson-labs/stealth-core-runtime 1.4.7

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 (415) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +46 -0
  3. package/dist/banditEngineProvider.d.ts +48 -0
  4. package/dist/banditEngineProvider.d.ts.map +1 -0
  5. package/dist/banditEngineProvider.js +1021 -0
  6. package/dist/banditEngineProvider.js.map +1 -0
  7. package/dist/embeddingCache.d.ts +23 -0
  8. package/dist/embeddingCache.d.ts.map +1 -0
  9. package/dist/embeddingCache.js +196 -0
  10. package/dist/embeddingCache.js.map +1 -0
  11. package/dist/embeddingClient.d.ts +35 -0
  12. package/dist/embeddingClient.d.ts.map +1 -0
  13. package/dist/embeddingClient.js +162 -0
  14. package/dist/embeddingClient.js.map +1 -0
  15. package/dist/executorAgent.d.ts +7 -0
  16. package/dist/executorAgent.d.ts.map +1 -0
  17. package/dist/executorAgent.js +95 -0
  18. package/dist/executorAgent.js.map +1 -0
  19. package/dist/extensionSystemPrompt.d.ts +80 -0
  20. package/dist/extensionSystemPrompt.d.ts.map +1 -0
  21. package/dist/extensionSystemPrompt.js +208 -0
  22. package/dist/extensionSystemPrompt.js.map +1 -0
  23. package/dist/gatewaySearchAdapter.d.ts +69 -0
  24. package/dist/gatewaySearchAdapter.d.ts.map +1 -0
  25. package/dist/gatewaySearchAdapter.js +131 -0
  26. package/dist/gatewaySearchAdapter.js.map +1 -0
  27. package/dist/goalInference.d.ts +26 -0
  28. package/dist/goalInference.d.ts.map +1 -0
  29. package/dist/goalInference.js +605 -0
  30. package/dist/goalInference.js.map +1 -0
  31. package/dist/hostTypes.d.ts +86 -0
  32. package/dist/hostTypes.d.ts.map +1 -0
  33. package/dist/hostTypes.js +3 -0
  34. package/dist/hostTypes.js.map +1 -0
  35. package/dist/index.d.ts +37 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +83 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/internalTypes.d.ts +16 -0
  40. package/dist/internalTypes.d.ts.map +1 -0
  41. package/dist/internalTypes.js +20 -0
  42. package/dist/internalTypes.js.map +1 -0
  43. package/dist/ollamaEmbeddingClient.d.ts +45 -0
  44. package/dist/ollamaEmbeddingClient.d.ts.map +1 -0
  45. package/dist/ollamaEmbeddingClient.js +143 -0
  46. package/dist/ollamaEmbeddingClient.js.map +1 -0
  47. package/dist/pdfjsShim.d.ts +2 -0
  48. package/dist/pdfjsShim.d.ts.map +1 -0
  49. package/dist/pdfjsShim.js +80 -0
  50. package/dist/pdfjsShim.js.map +1 -0
  51. package/dist/runtime/actionRuntime.d.ts +13 -0
  52. package/dist/runtime/actionRuntime.d.ts.map +1 -0
  53. package/dist/runtime/actionRuntime.js +15 -0
  54. package/dist/runtime/actionRuntime.js.map +1 -0
  55. package/dist/runtime/actionServices.d.ts +72 -0
  56. package/dist/runtime/actionServices.d.ts.map +1 -0
  57. package/dist/runtime/actionServices.js +53 -0
  58. package/dist/runtime/actionServices.js.map +1 -0
  59. package/dist/runtime/adapters/connectorBus.d.ts +9 -0
  60. package/dist/runtime/adapters/connectorBus.d.ts.map +1 -0
  61. package/dist/runtime/adapters/connectorBus.js +20 -0
  62. package/dist/runtime/adapters/connectorBus.js.map +1 -0
  63. package/dist/runtime/adapters/fsAdapter.d.ts +6 -0
  64. package/dist/runtime/adapters/fsAdapter.d.ts.map +1 -0
  65. package/dist/runtime/adapters/fsAdapter.js +144 -0
  66. package/dist/runtime/adapters/fsAdapter.js.map +1 -0
  67. package/dist/runtime/adapters/llmAdapter.d.ts +4 -0
  68. package/dist/runtime/adapters/llmAdapter.d.ts.map +1 -0
  69. package/dist/runtime/adapters/llmAdapter.js +12 -0
  70. package/dist/runtime/adapters/llmAdapter.js.map +1 -0
  71. package/dist/runtime/adapters/shellAdapter.d.ts +6 -0
  72. package/dist/runtime/adapters/shellAdapter.d.ts.map +1 -0
  73. package/dist/runtime/adapters/shellAdapter.js +118 -0
  74. package/dist/runtime/adapters/shellAdapter.js.map +1 -0
  75. package/dist/runtime/additionalWrites.d.ts +22 -0
  76. package/dist/runtime/additionalWrites.d.ts.map +1 -0
  77. package/dist/runtime/additionalWrites.js +148 -0
  78. package/dist/runtime/additionalWrites.js.map +1 -0
  79. package/dist/runtime/artifactManager.d.ts +32 -0
  80. package/dist/runtime/artifactManager.d.ts.map +1 -0
  81. package/dist/runtime/artifactManager.js +154 -0
  82. package/dist/runtime/artifactManager.js.map +1 -0
  83. package/dist/runtime/autoHealer.d.ts +27 -0
  84. package/dist/runtime/autoHealer.d.ts.map +1 -0
  85. package/dist/runtime/autoHealer.js +583 -0
  86. package/dist/runtime/autoHealer.js.map +1 -0
  87. package/dist/runtime/changeTracker.d.ts +20 -0
  88. package/dist/runtime/changeTracker.d.ts.map +1 -0
  89. package/dist/runtime/changeTracker.js +147 -0
  90. package/dist/runtime/changeTracker.js.map +1 -0
  91. package/dist/runtime/contextBuilder.d.ts +85 -0
  92. package/dist/runtime/contextBuilder.d.ts.map +1 -0
  93. package/dist/runtime/contextBuilder.js +159 -0
  94. package/dist/runtime/contextBuilder.js.map +1 -0
  95. package/dist/runtime/coreRuntime.d.ts +7 -0
  96. package/dist/runtime/coreRuntime.d.ts.map +1 -0
  97. package/dist/runtime/coreRuntime.js +173 -0
  98. package/dist/runtime/coreRuntime.js.map +1 -0
  99. package/dist/runtime/createStealthRuntime.d.ts +4 -0
  100. package/dist/runtime/createStealthRuntime.d.ts.map +1 -0
  101. package/dist/runtime/createStealthRuntime.js +514 -0
  102. package/dist/runtime/createStealthRuntime.js.map +1 -0
  103. package/dist/runtime/diagnostics.d.ts +53 -0
  104. package/dist/runtime/diagnostics.d.ts.map +1 -0
  105. package/dist/runtime/diagnostics.js +396 -0
  106. package/dist/runtime/diagnostics.js.map +1 -0
  107. package/dist/runtime/diagnosticsServices.d.ts +51 -0
  108. package/dist/runtime/diagnosticsServices.d.ts.map +1 -0
  109. package/dist/runtime/diagnosticsServices.js +46 -0
  110. package/dist/runtime/diagnosticsServices.js.map +1 -0
  111. package/dist/runtime/diffManager.d.ts +20 -0
  112. package/dist/runtime/diffManager.d.ts.map +1 -0
  113. package/dist/runtime/diffManager.js +172 -0
  114. package/dist/runtime/diffManager.js.map +1 -0
  115. package/dist/runtime/diffPresenter.d.ts +8 -0
  116. package/dist/runtime/diffPresenter.d.ts.map +1 -0
  117. package/dist/runtime/diffPresenter.js +57 -0
  118. package/dist/runtime/diffPresenter.js.map +1 -0
  119. package/dist/runtime/embeddingClientResolver.d.ts +14 -0
  120. package/dist/runtime/embeddingClientResolver.d.ts.map +1 -0
  121. package/dist/runtime/embeddingClientResolver.js +54 -0
  122. package/dist/runtime/embeddingClientResolver.js.map +1 -0
  123. package/dist/runtime/embeddingManager.d.ts +22 -0
  124. package/dist/runtime/embeddingManager.d.ts.map +1 -0
  125. package/dist/runtime/embeddingManager.js +224 -0
  126. package/dist/runtime/embeddingManager.js.map +1 -0
  127. package/dist/runtime/eventBus.d.ts +7 -0
  128. package/dist/runtime/eventBus.d.ts.map +1 -0
  129. package/dist/runtime/eventBus.js +28 -0
  130. package/dist/runtime/eventBus.js.map +1 -0
  131. package/dist/runtime/executorServices.d.ts +46 -0
  132. package/dist/runtime/executorServices.d.ts.map +1 -0
  133. package/dist/runtime/executorServices.js +47 -0
  134. package/dist/runtime/executorServices.js.map +1 -0
  135. package/dist/runtime/extractionService.d.ts +11 -0
  136. package/dist/runtime/extractionService.d.ts.map +1 -0
  137. package/dist/runtime/extractionService.js +282 -0
  138. package/dist/runtime/extractionService.js.map +1 -0
  139. package/dist/runtime/feedbackService.d.ts +12 -0
  140. package/dist/runtime/feedbackService.d.ts.map +1 -0
  141. package/dist/runtime/feedbackService.js +111 -0
  142. package/dist/runtime/feedbackService.js.map +1 -0
  143. package/dist/runtime/goalEngine.d.ts +10 -0
  144. package/dist/runtime/goalEngine.d.ts.map +1 -0
  145. package/dist/runtime/goalEngine.js +429 -0
  146. package/dist/runtime/goalEngine.js.map +1 -0
  147. package/dist/runtime/goalFlowServices.d.ts +49 -0
  148. package/dist/runtime/goalFlowServices.d.ts.map +1 -0
  149. package/dist/runtime/goalFlowServices.js +45 -0
  150. package/dist/runtime/goalFlowServices.js.map +1 -0
  151. package/dist/runtime/goalReplay.d.ts +33 -0
  152. package/dist/runtime/goalReplay.d.ts.map +1 -0
  153. package/dist/runtime/goalReplay.js +58 -0
  154. package/dist/runtime/goalReplay.js.map +1 -0
  155. package/dist/runtime/goalRunner.d.ts +35 -0
  156. package/dist/runtime/goalRunner.d.ts.map +1 -0
  157. package/dist/runtime/goalRunner.js +42 -0
  158. package/dist/runtime/goalRunner.js.map +1 -0
  159. package/dist/runtime/healingEngine.d.ts +72 -0
  160. package/dist/runtime/healingEngine.d.ts.map +1 -0
  161. package/dist/runtime/healingEngine.js +969 -0
  162. package/dist/runtime/healingEngine.js.map +1 -0
  163. package/dist/runtime/healingServices.d.ts +62 -0
  164. package/dist/runtime/healingServices.d.ts.map +1 -0
  165. package/dist/runtime/healingServices.js +45 -0
  166. package/dist/runtime/healingServices.js.map +1 -0
  167. package/dist/runtime/helpers.d.ts +22 -0
  168. package/dist/runtime/helpers.d.ts.map +1 -0
  169. package/dist/runtime/helpers.js +694 -0
  170. package/dist/runtime/helpers.js.map +1 -0
  171. package/dist/runtime/hosts/actionHost.d.ts +82 -0
  172. package/dist/runtime/hosts/actionHost.d.ts.map +1 -0
  173. package/dist/runtime/hosts/actionHost.js +61 -0
  174. package/dist/runtime/hosts/actionHost.js.map +1 -0
  175. package/dist/runtime/hosts/baseServices.d.ts +51 -0
  176. package/dist/runtime/hosts/baseServices.d.ts.map +1 -0
  177. package/dist/runtime/hosts/baseServices.js +73 -0
  178. package/dist/runtime/hosts/baseServices.js.map +1 -0
  179. package/dist/runtime/hosts/embeddingServices.d.ts +25 -0
  180. package/dist/runtime/hosts/embeddingServices.d.ts.map +1 -0
  181. package/dist/runtime/hosts/embeddingServices.js +34 -0
  182. package/dist/runtime/hosts/embeddingServices.js.map +1 -0
  183. package/dist/runtime/hosts/goalFlowHost.d.ts +34 -0
  184. package/dist/runtime/hosts/goalFlowHost.d.ts.map +1 -0
  185. package/dist/runtime/hosts/goalFlowHost.js +35 -0
  186. package/dist/runtime/hosts/goalFlowHost.js.map +1 -0
  187. package/dist/runtime/hosts/goalFlowRuntime.d.ts +41 -0
  188. package/dist/runtime/hosts/goalFlowRuntime.d.ts.map +1 -0
  189. package/dist/runtime/hosts/goalFlowRuntime.js +31 -0
  190. package/dist/runtime/hosts/goalFlowRuntime.js.map +1 -0
  191. package/dist/runtime/hosts/providerHost.d.ts +19 -0
  192. package/dist/runtime/hosts/providerHost.d.ts.map +1 -0
  193. package/dist/runtime/hosts/providerHost.js +18 -0
  194. package/dist/runtime/hosts/providerHost.js.map +1 -0
  195. package/dist/runtime/hosts/rewriteHost.d.ts +84 -0
  196. package/dist/runtime/hosts/rewriteHost.d.ts.map +1 -0
  197. package/dist/runtime/hosts/rewriteHost.js +64 -0
  198. package/dist/runtime/hosts/rewriteHost.js.map +1 -0
  199. package/dist/runtime/hosts/workspaceHost.d.ts +113 -0
  200. package/dist/runtime/hosts/workspaceHost.d.ts.map +1 -0
  201. package/dist/runtime/hosts/workspaceHost.js +76 -0
  202. package/dist/runtime/hosts/workspaceHost.js.map +1 -0
  203. package/dist/runtime/index.d.ts +78 -0
  204. package/dist/runtime/index.d.ts.map +1 -0
  205. package/dist/runtime/index.js +95 -0
  206. package/dist/runtime/index.js.map +1 -0
  207. package/dist/runtime/insight.d.ts +16 -0
  208. package/dist/runtime/insight.d.ts.map +1 -0
  209. package/dist/runtime/insight.js +11 -0
  210. package/dist/runtime/insight.js.map +1 -0
  211. package/dist/runtime/internalActions.d.ts +16 -0
  212. package/dist/runtime/internalActions.d.ts.map +1 -0
  213. package/dist/runtime/internalActions.js +302 -0
  214. package/dist/runtime/internalActions.js.map +1 -0
  215. package/dist/runtime/modelBehavior.d.ts +69 -0
  216. package/dist/runtime/modelBehavior.d.ts.map +1 -0
  217. package/dist/runtime/modelBehavior.js +514 -0
  218. package/dist/runtime/modelBehavior.js.map +1 -0
  219. package/dist/runtime/modelCapabilities.d.ts +139 -0
  220. package/dist/runtime/modelCapabilities.d.ts.map +1 -0
  221. package/dist/runtime/modelCapabilities.js +458 -0
  222. package/dist/runtime/modelCapabilities.js.map +1 -0
  223. package/dist/runtime/modelsDevCatalog.d.ts +34 -0
  224. package/dist/runtime/modelsDevCatalog.d.ts.map +1 -0
  225. package/dist/runtime/modelsDevCatalog.js +263 -0
  226. package/dist/runtime/modelsDevCatalog.js.map +1 -0
  227. package/dist/runtime/pendingInference.d.ts +18 -0
  228. package/dist/runtime/pendingInference.d.ts.map +1 -0
  229. package/dist/runtime/pendingInference.js +121 -0
  230. package/dist/runtime/pendingInference.js.map +1 -0
  231. package/dist/runtime/persistence.d.ts +21 -0
  232. package/dist/runtime/persistence.d.ts.map +1 -0
  233. package/dist/runtime/persistence.js +73 -0
  234. package/dist/runtime/persistence.js.map +1 -0
  235. package/dist/runtime/planContext.d.ts +42 -0
  236. package/dist/runtime/planContext.d.ts.map +1 -0
  237. package/dist/runtime/planContext.js +246 -0
  238. package/dist/runtime/planContext.js.map +1 -0
  239. package/dist/runtime/planGenerator.d.ts +21 -0
  240. package/dist/runtime/planGenerator.d.ts.map +1 -0
  241. package/dist/runtime/planGenerator.js +89 -0
  242. package/dist/runtime/planGenerator.js.map +1 -0
  243. package/dist/runtime/planPreparation.d.ts +64 -0
  244. package/dist/runtime/planPreparation.d.ts.map +1 -0
  245. package/dist/runtime/planPreparation.js +173 -0
  246. package/dist/runtime/planPreparation.js.map +1 -0
  247. package/dist/runtime/projectSummary.d.ts +3 -0
  248. package/dist/runtime/projectSummary.d.ts.map +1 -0
  249. package/dist/runtime/projectSummary.js +42 -0
  250. package/dist/runtime/projectSummary.js.map +1 -0
  251. package/dist/runtime/providerSettings.d.ts +28 -0
  252. package/dist/runtime/providerSettings.d.ts.map +1 -0
  253. package/dist/runtime/providerSettings.js +93 -0
  254. package/dist/runtime/providerSettings.js.map +1 -0
  255. package/dist/runtime/pythonActions.d.ts +78 -0
  256. package/dist/runtime/pythonActions.d.ts.map +1 -0
  257. package/dist/runtime/pythonActions.js +392 -0
  258. package/dist/runtime/pythonActions.js.map +1 -0
  259. package/dist/runtime/pythonBridge.d.ts +13 -0
  260. package/dist/runtime/pythonBridge.d.ts.map +1 -0
  261. package/dist/runtime/pythonBridge.js +117 -0
  262. package/dist/runtime/pythonBridge.js.map +1 -0
  263. package/dist/runtime/rewriteEngine.d.ts +46 -0
  264. package/dist/runtime/rewriteEngine.d.ts.map +1 -0
  265. package/dist/runtime/rewriteEngine.js +259 -0
  266. package/dist/runtime/rewriteEngine.js.map +1 -0
  267. package/dist/runtime/rewriteGenerator.d.ts +29 -0
  268. package/dist/runtime/rewriteGenerator.d.ts.map +1 -0
  269. package/dist/runtime/rewriteGenerator.js +1527 -0
  270. package/dist/runtime/rewriteGenerator.js.map +1 -0
  271. package/dist/runtime/rewriteHydration.d.ts +22 -0
  272. package/dist/runtime/rewriteHydration.d.ts.map +1 -0
  273. package/dist/runtime/rewriteHydration.js +265 -0
  274. package/dist/runtime/rewriteHydration.js.map +1 -0
  275. package/dist/runtime/rewriteOrchestration.d.ts +105 -0
  276. package/dist/runtime/rewriteOrchestration.d.ts.map +1 -0
  277. package/dist/runtime/rewriteOrchestration.js +130 -0
  278. package/dist/runtime/rewriteOrchestration.js.map +1 -0
  279. package/dist/runtime/rewritePayload.d.ts +18 -0
  280. package/dist/runtime/rewritePayload.d.ts.map +1 -0
  281. package/dist/runtime/rewritePayload.js +166 -0
  282. package/dist/runtime/rewritePayload.js.map +1 -0
  283. package/dist/runtime/rewriteRuntime.d.ts +13 -0
  284. package/dist/runtime/rewriteRuntime.d.ts.map +1 -0
  285. package/dist/runtime/rewriteRuntime.js +21 -0
  286. package/dist/runtime/rewriteRuntime.js.map +1 -0
  287. package/dist/runtime/rewriteServices.d.ts +70 -0
  288. package/dist/runtime/rewriteServices.d.ts.map +1 -0
  289. package/dist/runtime/rewriteServices.js +50 -0
  290. package/dist/runtime/rewriteServices.js.map +1 -0
  291. package/dist/runtime/runtimeHelpers.d.ts +9 -0
  292. package/dist/runtime/runtimeHelpers.d.ts.map +1 -0
  293. package/dist/runtime/runtimeHelpers.js +86 -0
  294. package/dist/runtime/runtimeHelpers.js.map +1 -0
  295. package/dist/runtime/sessionData.d.ts +4 -0
  296. package/dist/runtime/sessionData.d.ts.map +1 -0
  297. package/dist/runtime/sessionData.js +45 -0
  298. package/dist/runtime/sessionData.js.map +1 -0
  299. package/dist/runtime/sessionRuntime.d.ts +47 -0
  300. package/dist/runtime/sessionRuntime.d.ts.map +1 -0
  301. package/dist/runtime/sessionRuntime.js +128 -0
  302. package/dist/runtime/sessionRuntime.js.map +1 -0
  303. package/dist/runtime/stealthRuntimeTypes.d.ts +12 -0
  304. package/dist/runtime/stealthRuntimeTypes.d.ts.map +1 -0
  305. package/dist/runtime/stealthRuntimeTypes.js +3 -0
  306. package/dist/runtime/stealthRuntimeTypes.js.map +1 -0
  307. package/dist/runtime/stepExecutor.d.ts +22 -0
  308. package/dist/runtime/stepExecutor.d.ts.map +1 -0
  309. package/dist/runtime/stepExecutor.js +83 -0
  310. package/dist/runtime/stepExecutor.js.map +1 -0
  311. package/dist/runtime/stepLifecycle.d.ts +29 -0
  312. package/dist/runtime/stepLifecycle.d.ts.map +1 -0
  313. package/dist/runtime/stepLifecycle.js +122 -0
  314. package/dist/runtime/stepLifecycle.js.map +1 -0
  315. package/dist/runtime/stepMetadata.d.ts +6 -0
  316. package/dist/runtime/stepMetadata.d.ts.map +1 -0
  317. package/dist/runtime/stepMetadata.js +87 -0
  318. package/dist/runtime/stepMetadata.js.map +1 -0
  319. package/dist/runtime/taskQueue.d.ts +16 -0
  320. package/dist/runtime/taskQueue.d.ts.map +1 -0
  321. package/dist/runtime/taskQueue.js +103 -0
  322. package/dist/runtime/taskQueue.js.map +1 -0
  323. package/dist/runtime/telemetry.d.ts +6 -0
  324. package/dist/runtime/telemetry.d.ts.map +1 -0
  325. package/dist/runtime/telemetry.js +42 -0
  326. package/dist/runtime/telemetry.js.map +1 -0
  327. package/dist/runtime/telemetryHub.d.ts +61 -0
  328. package/dist/runtime/telemetryHub.d.ts.map +1 -0
  329. package/dist/runtime/telemetryHub.js +190 -0
  330. package/dist/runtime/telemetryHub.js.map +1 -0
  331. package/dist/runtime/textSanitizer.d.ts +4 -0
  332. package/dist/runtime/textSanitizer.d.ts.map +1 -0
  333. package/dist/runtime/textSanitizer.js +86 -0
  334. package/dist/runtime/textSanitizer.js.map +1 -0
  335. package/dist/runtime/typeCheckRunner.d.ts +33 -0
  336. package/dist/runtime/typeCheckRunner.d.ts.map +1 -0
  337. package/dist/runtime/typeCheckRunner.js +357 -0
  338. package/dist/runtime/typeCheckRunner.js.map +1 -0
  339. package/dist/runtime/types.d.ts +334 -0
  340. package/dist/runtime/types.d.ts.map +1 -0
  341. package/dist/runtime/types.js +3 -0
  342. package/dist/runtime/types.js.map +1 -0
  343. package/dist/runtime/typescriptValidator.d.ts +18 -0
  344. package/dist/runtime/typescriptValidator.d.ts.map +1 -0
  345. package/dist/runtime/typescriptValidator.js +363 -0
  346. package/dist/runtime/typescriptValidator.js.map +1 -0
  347. package/dist/runtime/undoManager.d.ts +7 -0
  348. package/dist/runtime/undoManager.d.ts.map +1 -0
  349. package/dist/runtime/undoManager.js +56 -0
  350. package/dist/runtime/undoManager.js.map +1 -0
  351. package/dist/runtime/validationController.d.ts +11 -0
  352. package/dist/runtime/validationController.d.ts.map +1 -0
  353. package/dist/runtime/validationController.js +29 -0
  354. package/dist/runtime/validationController.js.map +1 -0
  355. package/dist/runtime/validationUtils.d.ts +17 -0
  356. package/dist/runtime/validationUtils.d.ts.map +1 -0
  357. package/dist/runtime/validationUtils.js +121 -0
  358. package/dist/runtime/validationUtils.js.map +1 -0
  359. package/dist/runtime/workspaceAssertions.d.ts +21 -0
  360. package/dist/runtime/workspaceAssertions.d.ts.map +1 -0
  361. package/dist/runtime/workspaceAssertions.js +183 -0
  362. package/dist/runtime/workspaceAssertions.js.map +1 -0
  363. package/dist/runtime/workspaceIndexService.d.ts +24 -0
  364. package/dist/runtime/workspaceIndexService.d.ts.map +1 -0
  365. package/dist/runtime/workspaceIndexService.js +133 -0
  366. package/dist/runtime/workspaceIndexService.js.map +1 -0
  367. package/dist/runtime/workspaceIndexer.d.ts +21 -0
  368. package/dist/runtime/workspaceIndexer.d.ts.map +1 -0
  369. package/dist/runtime/workspaceIndexer.js +95 -0
  370. package/dist/runtime/workspaceIndexer.js.map +1 -0
  371. package/dist/runtime/workspacePackages.d.ts +22 -0
  372. package/dist/runtime/workspacePackages.d.ts.map +1 -0
  373. package/dist/runtime/workspacePackages.js +198 -0
  374. package/dist/runtime/workspacePackages.js.map +1 -0
  375. package/dist/runtime/workspaceRuntime.d.ts +58 -0
  376. package/dist/runtime/workspaceRuntime.d.ts.map +1 -0
  377. package/dist/runtime/workspaceRuntime.js +86 -0
  378. package/dist/runtime/workspaceRuntime.js.map +1 -0
  379. package/dist/runtime/workspaceService.d.ts +14 -0
  380. package/dist/runtime/workspaceService.d.ts.map +1 -0
  381. package/dist/runtime/workspaceService.js +88 -0
  382. package/dist/runtime/workspaceService.js.map +1 -0
  383. package/dist/runtime/workspaceServices.d.ts +114 -0
  384. package/dist/runtime/workspaceServices.d.ts.map +1 -0
  385. package/dist/runtime/workspaceServices.js +114 -0
  386. package/dist/runtime/workspaceServices.js.map +1 -0
  387. package/dist/runtime/writeServices.d.ts +34 -0
  388. package/dist/runtime/writeServices.d.ts.map +1 -0
  389. package/dist/runtime/writeServices.js +32 -0
  390. package/dist/runtime/writeServices.js.map +1 -0
  391. package/dist/sharedPromptSections.d.ts +58 -0
  392. package/dist/sharedPromptSections.d.ts.map +1 -0
  393. package/dist/sharedPromptSections.js +94 -0
  394. package/dist/sharedPromptSections.js.map +1 -0
  395. package/dist/statusTypes.d.ts +13 -0
  396. package/dist/statusTypes.d.ts.map +1 -0
  397. package/dist/statusTypes.js +3 -0
  398. package/dist/statusTypes.js.map +1 -0
  399. package/dist/streamIdleTimeout.d.ts +38 -0
  400. package/dist/streamIdleTimeout.d.ts.map +1 -0
  401. package/dist/streamIdleTimeout.js +44 -0
  402. package/dist/streamIdleTimeout.js.map +1 -0
  403. package/dist/types/bandit.d.ts +113 -0
  404. package/dist/types/bandit.d.ts.map +1 -0
  405. package/dist/types/bandit.js +3 -0
  406. package/dist/types/bandit.js.map +1 -0
  407. package/dist/types.d.ts +152 -0
  408. package/dist/types.d.ts.map +1 -0
  409. package/dist/types.js +3 -0
  410. package/dist/types.js.map +1 -0
  411. package/dist/workspaceIndex.d.ts +44 -0
  412. package/dist/workspaceIndex.d.ts.map +1 -0
  413. package/dist/workspaceIndex.js +258 -0
  414. package/dist/workspaceIndex.js.map +1 -0
  415. package/package.json +36 -0
@@ -0,0 +1,514 @@
1
+ "use strict";
2
+ /**
3
+ * Model behavior profiles describe how Bandit's harness should treat a
4
+ * model, not just what the model can theoretically do.
5
+ *
6
+ * Capability profiles answer "does this model support tools / vision /
7
+ * JSON?". Behavior profiles answer "which protocol should we try first,
8
+ * how aggressively should we compact, how much parallelism is safe, and
9
+ * what known failures should the UI or trace viewer explain?".
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MODEL_BEHAVIOR_CONFIG_SCHEMA_VERSION = void 0;
13
+ exports.registerModelBehaviorOverride = registerModelBehaviorOverride;
14
+ exports.registerModelBehaviorConfig = registerModelBehaviorConfig;
15
+ exports.clearModelBehaviorOverrides = clearModelBehaviorOverrides;
16
+ exports.getBuiltInModelBehaviorProfiles = getBuiltInModelBehaviorProfiles;
17
+ exports.getModelBehaviorProfile = getModelBehaviorProfile;
18
+ exports.parseModelBehaviorConfig = parseModelBehaviorConfig;
19
+ exports.MODEL_BEHAVIOR_CONFIG_SCHEMA_VERSION = 1;
20
+ const COMMON_RETRYABLE_ERRORS = [
21
+ '5xx gateway/model errors',
22
+ 'ECONNRESET / ECONNREFUSED / ETIMEDOUT',
23
+ 'fetch failed / socket hang up'
24
+ ];
25
+ const BUILT_IN_BEHAVIOR_PROFILES = [
26
+ {
27
+ id: 'bandit-logic',
28
+ match: ['bandit-logic'],
29
+ label: 'Bandit Logic / Qwen 3.6 agent profile',
30
+ protocol: {
31
+ preferred: 'native-tools',
32
+ fallback: 'text-tools',
33
+ envelope: 'ollama-tools',
34
+ nativeToolFailureFallback: true
35
+ },
36
+ context: {
37
+ safeInputTokens: 64000,
38
+ outputBudgetTokens: 8192,
39
+ compaction: 'normal'
40
+ },
41
+ prompting: {
42
+ template: 'qwen-agent',
43
+ examples: 'minimal',
44
+ thinking: 'on'
45
+ },
46
+ reliability: {
47
+ maxParallelTools: 6,
48
+ retryableErrors: [...COMMON_RETRYABLE_ERRORS, 'Qwen tool-call parser EOF'],
49
+ knownFailureModes: [
50
+ 'Native tool parser can return upstream 500 on malformed/incomplete tool calls.',
51
+ 'Reasoning-only stalls are possible when thinking is disabled.'
52
+ ]
53
+ }
54
+ },
55
+ {
56
+ id: 'qwen3.6',
57
+ match: ['qwen3.6'],
58
+ label: 'Qwen 3.6 agent profile',
59
+ protocol: {
60
+ preferred: 'native-tools',
61
+ fallback: 'text-tools',
62
+ envelope: 'ollama-tools',
63
+ nativeToolFailureFallback: true
64
+ },
65
+ context: {
66
+ safeInputTokens: 64000,
67
+ outputBudgetTokens: 8192,
68
+ compaction: 'normal'
69
+ },
70
+ prompting: {
71
+ template: 'qwen-agent',
72
+ examples: 'minimal',
73
+ thinking: 'on'
74
+ },
75
+ reliability: {
76
+ maxParallelTools: 6,
77
+ retryableErrors: [...COMMON_RETRYABLE_ERRORS, 'Qwen tool-call parser EOF'],
78
+ knownFailureModes: [
79
+ 'Can spend a long prefill/thinking phase before first token.',
80
+ 'Native tool parsing is valuable but should degrade to text tools on upstream parser failures.'
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ id: 'gemma4',
86
+ match: ['gemma4', 'gemma3', 'bandit-core:12b', 'bandit-core:27b', 'bandit-core:31b'],
87
+ label: 'Gemma-family / bandit-core agent profile',
88
+ protocol: {
89
+ // gemma3-derived models (gemma4, bandit-core ≥12B) expose native tool
90
+ // calling in Ollama (`Capabilities: tools`). Prefer it — the chat
91
+ // template enforces a structured tool call, which eliminates most of
92
+ // the "narrate intent instead of acting" / malformed-XML failures the
93
+ // text-tools path produced. Fall back to text-tools on upstream parser
94
+ // failures (same safety net as bandit-logic/qwen).
95
+ preferred: 'native-tools',
96
+ fallback: 'text-tools',
97
+ envelope: 'ollama-tools',
98
+ nativeToolFailureFallback: true
99
+ },
100
+ context: {
101
+ safeInputTokens: 24000,
102
+ outputBudgetTokens: 2048,
103
+ compaction: 'early'
104
+ },
105
+ prompting: {
106
+ template: 'gemma-compact',
107
+ examples: 'strict',
108
+ thinking: 'auto'
109
+ },
110
+ reliability: {
111
+ maxParallelTools: 2,
112
+ retryableErrors: COMMON_RETRYABLE_ERRORS,
113
+ knownFailureModes: [
114
+ 'More likely to narrate intent than emit a tool call without compact, explicit examples.',
115
+ 'Large multi-edit batches should be serialized.'
116
+ ]
117
+ }
118
+ },
119
+ {
120
+ id: 'qwen2.5-coder',
121
+ match: ['qwen2.5-coder'],
122
+ label: 'Qwen 2.5 Coder profile',
123
+ protocol: {
124
+ preferred: 'native-tools',
125
+ fallback: 'text-tools',
126
+ envelope: 'ollama-tools',
127
+ nativeToolFailureFallback: true
128
+ },
129
+ context: {
130
+ safeInputTokens: 32000,
131
+ outputBudgetTokens: 4096,
132
+ compaction: 'normal'
133
+ },
134
+ prompting: {
135
+ template: 'qwen-agent',
136
+ examples: 'minimal',
137
+ thinking: 'auto'
138
+ },
139
+ reliability: {
140
+ maxParallelTools: 4,
141
+ retryableErrors: COMMON_RETRYABLE_ERRORS,
142
+ knownFailureModes: [
143
+ 'Completion-tuned variants may ask for paths instead of searching unless prompted to inspect first.'
144
+ ]
145
+ }
146
+ },
147
+ {
148
+ id: 'llama3',
149
+ match: ['llama3.2', 'llama3.1', 'llama3'],
150
+ label: 'Llama lightweight tool profile',
151
+ protocol: {
152
+ preferred: 'text-tools',
153
+ fallback: undefined,
154
+ envelope: 'xml-json',
155
+ nativeToolFailureFallback: false
156
+ },
157
+ context: {
158
+ safeInputTokens: 12000,
159
+ outputBudgetTokens: 1024,
160
+ compaction: 'aggressive'
161
+ },
162
+ prompting: {
163
+ template: 'llama-tool-lite',
164
+ examples: 'strict',
165
+ thinking: 'auto'
166
+ },
167
+ reliability: {
168
+ maxParallelTools: 1,
169
+ retryableErrors: COMMON_RETRYABLE_ERRORS,
170
+ knownFailureModes: [
171
+ 'Small variants need narrow context and one tool at a time.'
172
+ ]
173
+ }
174
+ },
175
+ {
176
+ id: 'deepseek-r1',
177
+ match: ['deepseek-r1'],
178
+ label: 'DeepSeek R1 reasoning profile',
179
+ protocol: {
180
+ preferred: 'text-tools',
181
+ fallback: undefined,
182
+ envelope: 'xml-json',
183
+ nativeToolFailureFallback: false
184
+ },
185
+ context: {
186
+ safeInputTokens: 24000,
187
+ outputBudgetTokens: 2048,
188
+ compaction: 'early'
189
+ },
190
+ prompting: {
191
+ template: 'default-agent',
192
+ examples: 'strict',
193
+ thinking: 'on'
194
+ },
195
+ reliability: {
196
+ maxParallelTools: 1,
197
+ retryableErrors: COMMON_RETRYABLE_ERRORS,
198
+ knownFailureModes: [
199
+ 'Reasoning models can narrate for a long time before acting; keep context narrow and tool calls serialized.'
200
+ ]
201
+ }
202
+ },
203
+ {
204
+ id: 'default',
205
+ match: [''],
206
+ label: 'Default conservative profile',
207
+ protocol: {
208
+ preferred: 'text-tools',
209
+ fallback: undefined,
210
+ envelope: 'xml-json',
211
+ nativeToolFailureFallback: false
212
+ },
213
+ context: {
214
+ safeInputTokens: 8000,
215
+ outputBudgetTokens: 1024,
216
+ compaction: 'aggressive'
217
+ },
218
+ prompting: {
219
+ template: 'default-agent',
220
+ examples: 'strict',
221
+ thinking: 'auto'
222
+ },
223
+ reliability: {
224
+ maxParallelTools: 1,
225
+ retryableErrors: COMMON_RETRYABLE_ERRORS,
226
+ knownFailureModes: [
227
+ 'Unknown model: assume limited context, text tool protocol, and serialized tool use.'
228
+ ]
229
+ }
230
+ }
231
+ ];
232
+ const runtimeBehaviorOverrides = new Map();
233
+ function registerModelBehaviorOverride(modelIdOrPrefix, override) {
234
+ const key = modelIdOrPrefix.trim().toLowerCase();
235
+ if (!key)
236
+ return;
237
+ runtimeBehaviorOverrides.set(key, override);
238
+ }
239
+ function registerModelBehaviorConfig(input) {
240
+ const result = parseModelBehaviorConfig(input);
241
+ for (const entry of result.entries) {
242
+ for (const prefix of entry.match) {
243
+ registerModelBehaviorOverride(prefix, entry.override);
244
+ }
245
+ }
246
+ return result;
247
+ }
248
+ function clearModelBehaviorOverrides() {
249
+ runtimeBehaviorOverrides.clear();
250
+ }
251
+ function getBuiltInModelBehaviorProfiles() {
252
+ return BUILT_IN_BEHAVIOR_PROFILES.map(cloneProfile);
253
+ }
254
+ function getModelBehaviorProfile(modelId) {
255
+ const lower = modelId.toLowerCase();
256
+ const base = cloneProfile(findBestProfile(lower));
257
+ const override = findBestOverride(lower);
258
+ return override ? mergeProfile(base, override) : base;
259
+ }
260
+ function findBestProfile(lowerModelId) {
261
+ let best = BUILT_IN_BEHAVIOR_PROFILES[BUILT_IN_BEHAVIOR_PROFILES.length - 1];
262
+ let bestLength = -1;
263
+ for (const profile of BUILT_IN_BEHAVIOR_PROFILES) {
264
+ for (const prefix of profile.match) {
265
+ const normalized = prefix.toLowerCase();
266
+ if (lowerModelId.startsWith(normalized) && normalized.length > bestLength) {
267
+ best = profile;
268
+ bestLength = normalized.length;
269
+ }
270
+ }
271
+ }
272
+ return best;
273
+ }
274
+ function findBestOverride(lowerModelId) {
275
+ let best;
276
+ let bestLength = -1;
277
+ for (const [prefix, override] of runtimeBehaviorOverrides) {
278
+ if (lowerModelId.startsWith(prefix) && prefix.length > bestLength) {
279
+ best = override;
280
+ bestLength = prefix.length;
281
+ }
282
+ }
283
+ return best;
284
+ }
285
+ function cloneProfile(profile) {
286
+ return {
287
+ ...profile,
288
+ match: [...profile.match],
289
+ protocol: { ...profile.protocol },
290
+ context: { ...profile.context },
291
+ prompting: { ...profile.prompting },
292
+ reliability: {
293
+ ...profile.reliability,
294
+ retryableErrors: [...profile.reliability.retryableErrors],
295
+ knownFailureModes: [...profile.reliability.knownFailureModes]
296
+ }
297
+ };
298
+ }
299
+ function mergeProfile(base, override) {
300
+ return {
301
+ ...base,
302
+ ...override,
303
+ match: override.match ? [...override.match] : base.match,
304
+ protocol: { ...base.protocol, ...override.protocol },
305
+ context: { ...base.context, ...override.context },
306
+ prompting: { ...base.prompting, ...override.prompting },
307
+ reliability: {
308
+ ...base.reliability,
309
+ ...override.reliability,
310
+ retryableErrors: override.reliability?.retryableErrors
311
+ ? [...override.reliability.retryableErrors]
312
+ : base.reliability.retryableErrors,
313
+ knownFailureModes: override.reliability?.knownFailureModes
314
+ ? [...override.reliability.knownFailureModes]
315
+ : base.reliability.knownFailureModes
316
+ }
317
+ };
318
+ }
319
+ function parseModelBehaviorConfig(input) {
320
+ const errors = [];
321
+ const warnings = [];
322
+ const root = asRecord(input);
323
+ if (!root) {
324
+ return { entries: [], errors: ['model behavior config must be a JSON object'], warnings };
325
+ }
326
+ const version = root.version ?? root.schemaVersion;
327
+ if (version !== undefined && version !== exports.MODEL_BEHAVIOR_CONFIG_SCHEMA_VERSION) {
328
+ warnings.push(`schema version ${String(version)} is not recognized; parsing compatible fields only`);
329
+ }
330
+ const rawProfiles = root.profiles ?? root.models;
331
+ if (!rawProfiles) {
332
+ return { entries: [], errors: ['model behavior config must define a profiles object'], warnings };
333
+ }
334
+ const rawEntries = [];
335
+ if (Array.isArray(rawProfiles)) {
336
+ rawProfiles.forEach((value, index) => {
337
+ const record = asRecord(value);
338
+ const id = typeof record?.id === 'string' && record.id.trim() ? record.id.trim() : `profiles[${index}]`;
339
+ rawEntries.push({ key: id, value });
340
+ });
341
+ }
342
+ else {
343
+ const record = asRecord(rawProfiles);
344
+ if (!record) {
345
+ return { entries: [], errors: ['profiles must be an object or array'], warnings };
346
+ }
347
+ for (const [key, value] of Object.entries(record)) {
348
+ rawEntries.push({ key, value });
349
+ }
350
+ }
351
+ const entries = [];
352
+ for (const { key, value } of rawEntries) {
353
+ const record = asRecord(value);
354
+ if (!record) {
355
+ warnings.push(`${key}: profile must be an object`);
356
+ continue;
357
+ }
358
+ const match = stringList(record.match, `${key}.match`, warnings);
359
+ const prefixes = match.length ? match : [key];
360
+ const cleanPrefixes = prefixes.map((prefix) => prefix.trim()).filter(Boolean);
361
+ if (cleanPrefixes.length === 0) {
362
+ warnings.push(`${key}: profile has no usable match prefixes`);
363
+ continue;
364
+ }
365
+ const override = parseModelBehaviorOverride(key, record, warnings);
366
+ entries.push({ key, match: cleanPrefixes, override: { ...override, match: cleanPrefixes } });
367
+ }
368
+ return { entries, errors, warnings };
369
+ }
370
+ function parseModelBehaviorOverride(key, record, warnings) {
371
+ const override = {};
372
+ const id = stringValue(record.id, `${key}.id`, warnings);
373
+ const label = stringValue(record.label, `${key}.label`, warnings);
374
+ if (id)
375
+ override.id = id;
376
+ if (label)
377
+ override.label = label;
378
+ const protocol = asRecord(record.protocol);
379
+ if (protocol) {
380
+ const parsedProtocol = {};
381
+ const preferred = enumValue(protocol.preferred, ['native-tools', 'text-tools'], `${key}.protocol.preferred`, warnings);
382
+ const fallback = enumValue(protocol.fallback, ['native-tools', 'text-tools'], `${key}.protocol.fallback`, warnings, true);
383
+ const envelope = enumValue(protocol.envelope, ['ollama-tools', 'xml-json'], `${key}.protocol.envelope`, warnings);
384
+ const nativeFallback = booleanValue(protocol.nativeToolFailureFallback, `${key}.protocol.nativeToolFailureFallback`, warnings);
385
+ if (preferred)
386
+ parsedProtocol.preferred = preferred;
387
+ if ('fallback' in protocol)
388
+ parsedProtocol.fallback = fallback;
389
+ if (envelope)
390
+ parsedProtocol.envelope = envelope;
391
+ if (nativeFallback !== undefined)
392
+ parsedProtocol.nativeToolFailureFallback = nativeFallback;
393
+ override.protocol = parsedProtocol;
394
+ }
395
+ else if (record.protocol !== undefined) {
396
+ warnings.push(`${key}.protocol must be an object`);
397
+ }
398
+ const context = asRecord(record.context);
399
+ if (context) {
400
+ const parsedContext = {};
401
+ const safeInputTokens = positiveInteger(context.safeInputTokens, `${key}.context.safeInputTokens`, warnings);
402
+ const outputBudgetTokens = positiveInteger(context.outputBudgetTokens, `${key}.context.outputBudgetTokens`, warnings);
403
+ const compaction = enumValue(context.compaction, ['early', 'normal', 'aggressive'], `${key}.context.compaction`, warnings);
404
+ if (safeInputTokens !== undefined)
405
+ parsedContext.safeInputTokens = safeInputTokens;
406
+ if (outputBudgetTokens !== undefined)
407
+ parsedContext.outputBudgetTokens = outputBudgetTokens;
408
+ if (compaction)
409
+ parsedContext.compaction = compaction;
410
+ override.context = parsedContext;
411
+ }
412
+ else if (record.context !== undefined) {
413
+ warnings.push(`${key}.context must be an object`);
414
+ }
415
+ const prompting = asRecord(record.prompting);
416
+ if (prompting) {
417
+ const parsedPrompting = {};
418
+ const template = enumValue(prompting.template, ['qwen-agent', 'gemma-compact', 'llama-tool-lite', 'default-agent'], `${key}.prompting.template`, warnings);
419
+ const examples = enumValue(prompting.examples, ['none', 'minimal', 'strict'], `${key}.prompting.examples`, warnings);
420
+ const thinking = enumValue(prompting.thinking, ['on', 'off', 'auto'], `${key}.prompting.thinking`, warnings);
421
+ if (template)
422
+ parsedPrompting.template = template;
423
+ if (examples)
424
+ parsedPrompting.examples = examples;
425
+ if (thinking)
426
+ parsedPrompting.thinking = thinking;
427
+ override.prompting = parsedPrompting;
428
+ }
429
+ else if (record.prompting !== undefined) {
430
+ warnings.push(`${key}.prompting must be an object`);
431
+ }
432
+ const reliability = asRecord(record.reliability);
433
+ if (reliability) {
434
+ const parsedReliability = {};
435
+ const maxParallelTools = positiveInteger(reliability.maxParallelTools, `${key}.reliability.maxParallelTools`, warnings);
436
+ const retryableErrors = stringList(reliability.retryableErrors, `${key}.reliability.retryableErrors`, warnings);
437
+ const knownFailureModes = stringList(reliability.knownFailureModes, `${key}.reliability.knownFailureModes`, warnings);
438
+ if (maxParallelTools !== undefined)
439
+ parsedReliability.maxParallelTools = maxParallelTools;
440
+ if (Array.isArray(reliability.retryableErrors))
441
+ parsedReliability.retryableErrors = retryableErrors;
442
+ if (Array.isArray(reliability.knownFailureModes))
443
+ parsedReliability.knownFailureModes = knownFailureModes;
444
+ override.reliability = parsedReliability;
445
+ }
446
+ else if (record.reliability !== undefined) {
447
+ warnings.push(`${key}.reliability must be an object`);
448
+ }
449
+ return override;
450
+ }
451
+ function asRecord(value) {
452
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
453
+ ? value
454
+ : undefined;
455
+ }
456
+ function stringValue(value, field, warnings) {
457
+ if (value === undefined)
458
+ return undefined;
459
+ if (typeof value !== 'string') {
460
+ warnings.push(`${field} must be a string`);
461
+ return undefined;
462
+ }
463
+ const trimmed = value.trim();
464
+ return trimmed.length ? trimmed : undefined;
465
+ }
466
+ function stringList(value, field, warnings) {
467
+ if (value === undefined)
468
+ return [];
469
+ if (typeof value === 'string') {
470
+ const trimmed = value.trim();
471
+ return trimmed ? [trimmed] : [];
472
+ }
473
+ if (!Array.isArray(value)) {
474
+ warnings.push(`${field} must be a string or string array`);
475
+ return [];
476
+ }
477
+ const out = [];
478
+ for (const item of value) {
479
+ if (typeof item === 'string' && item.trim()) {
480
+ out.push(item.trim());
481
+ }
482
+ else {
483
+ warnings.push(`${field} contains a non-string entry`);
484
+ }
485
+ }
486
+ return out;
487
+ }
488
+ function booleanValue(value, field, warnings) {
489
+ if (value === undefined)
490
+ return undefined;
491
+ if (typeof value === 'boolean')
492
+ return value;
493
+ warnings.push(`${field} must be a boolean`);
494
+ return undefined;
495
+ }
496
+ function positiveInteger(value, field, warnings) {
497
+ if (value === undefined)
498
+ return undefined;
499
+ if (typeof value === 'number' && Number.isInteger(value) && value > 0)
500
+ return value;
501
+ warnings.push(`${field} must be a positive integer`);
502
+ return undefined;
503
+ }
504
+ function enumValue(value, allowed, field, warnings, allowNull = false) {
505
+ if (value === undefined)
506
+ return undefined;
507
+ if (value === null && allowNull)
508
+ return undefined;
509
+ if (typeof value === 'string' && allowed.includes(value))
510
+ return value;
511
+ warnings.push(`${field} must be one of: ${allowed.join(', ')}`);
512
+ return undefined;
513
+ }
514
+ //# sourceMappingURL=modelBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelBehavior.js","sourceRoot":"","sources":["../../src/runtime/modelBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Model capability profiles.
3
+ * Used to tune prompt complexity, context window budgets, and feature availability
4
+ * per model. Profiles are looked up by model ID prefix so that tagged variants
5
+ * (e.g. bandit-core:12b-it-qat) match their base entry.
6
+ */
7
+ export type ModelTier = 'small' | 'medium' | 'large';
8
+ export interface ModelCapabilities {
9
+ /** Approximate usable context window in tokens. */
10
+ contextWindow: number;
11
+ /** Whether the model/endpoint supports Ollama format:"json" structured output. */
12
+ supportsJsonMode: boolean;
13
+ /** Whether the model supports native function/tool calling. */
14
+ supportsToolCalling: boolean;
15
+ /**
16
+ * Whether the model accepts image input (vision).
17
+ * When true, Ollama /api/chat accepts an `images: string[]` field (base64).
18
+ * Used to auto-route image attachments in the VS Code chat panel.
19
+ */
20
+ supportsVision: boolean;
21
+ /** Tier used to scale prompt complexity and context budget. */
22
+ tier: ModelTier;
23
+ /** Human-readable label for UI display. */
24
+ label?: string;
25
+ }
26
+ /**
27
+ * Register runtime-discovered capabilities for a model ID. Only takes effect
28
+ * when getModelCapabilities() finds no built-in match — explicit profiles win.
29
+ */
30
+ export declare function registerModelCapabilities(modelId: string, caps: ModelCapabilities): void;
31
+ /**
32
+ * Returns capability profile for a given model ID.
33
+ * Check order: (1) built-in prefix profiles, (2) runtime cache, (3) default.
34
+ */
35
+ export declare function getModelCapabilities(modelId: string): ModelCapabilities;
36
+ /**
37
+ * Queries Ollama /api/show to auto-detect capabilities for a model not in BUILT_IN_PROFILES.
38
+ * Returns a partial ModelCapabilities object (tier + contextWindow) on success, null on failure.
39
+ * Silently returns null when Ollama is unreachable or the model is not installed.
40
+ *
41
+ * Call this once per model switch and persist via registerModelCapabilities().
42
+ */
43
+ export declare function queryOllamaModelCapabilities(modelId: string, baseUrl: string): Promise<ModelCapabilities | null>;
44
+ /**
45
+ * Result of an Ollama context-length health check. Hosts (CLI banner,
46
+ * IDE notification) use this to decide whether to surface a one-time
47
+ * tip about `OLLAMA_CONTEXT_LENGTH`.
48
+ */
49
+ export interface OllamaContextCheck {
50
+ /** Loaded num_ctx for the running model, in tokens. Null when the
51
+ * model hasn't been loaded yet (no chat fired since `ollama serve`
52
+ * started) — in that case the host should defer the check to after
53
+ * the first successful chat. */
54
+ loadedContext: number | null;
55
+ /** What our framework asked for via per-request `options.num_ctx`. */
56
+ requestedContext: number;
57
+ /** True when the loaded context is materially smaller than what we
58
+ * asked for AND below an absolute 8K floor. New users on a fresh
59
+ * Ollama install with `OLLAMA_CONTEXT_LENGTH` unset land at 4K
60
+ * (Ollama's default) and feel "super slow" because every prompt
61
+ * thrashes the KV cache. We only flag when the gap is real — a 24K
62
+ * model loaded at 16K is fine, a 24K request loaded at 4K isn't. */
63
+ underweight: boolean;
64
+ /** Shell command the user can run to fix it. Tailored to the gap so
65
+ * a 4K → 16K user gets a different number than a 8K → 24K user. */
66
+ suggestionCommand: string;
67
+ }
68
+ /**
69
+ * Query Ollama's `/api/ps` for the currently-loaded context length of
70
+ * `modelId` and compare against our requested num_ctx. Returns a check
71
+ * the host can render as a one-time tip. Silently returns underweight=
72
+ * false on any network/parse failure (this is a UX hint, never an error).
73
+ *
74
+ * Why /api/ps and not /api/show: /api/show returns the model's NATIVE
75
+ * context window from the GGUF metadata — that's the maximum the model
76
+ * could be loaded with, not what's actually loaded right now. /api/ps
77
+ * lists currently-resident models and reports the loaded context_length
78
+ * directly. That's the value that determines whether prompts overflow.
79
+ */
80
+ export declare function checkOllamaLoadedContext(baseUrl: string, modelId: string, requestedContext: number): Promise<OllamaContextCheck>;
81
+ /**
82
+ * Returns the maximum number of context file chunks to include based on tier.
83
+ */
84
+ export declare function getContextFileLimit(tier: ModelTier): number;
85
+ /**
86
+ * Returns the approximate token budget reserved for context (not prompt/response).
87
+ */
88
+ export declare function getContextTokenBudget(caps: ModelCapabilities): number;
89
+ /**
90
+ * Approximate per-turn output token budget.
91
+ *
92
+ * The tool-use loop uses this to decide whether a model's planned batch of
93
+ * write/edit calls will exceed the assistant turn's safe output capacity.
94
+ * When the planned content would push past this number, the loop serialises
95
+ * execution so each call gets its own iteration — protecting smaller models
96
+ * from generating malformed JSON in the tail of a multi-file emission, and
97
+ * giving the user a chance to react between approvals.
98
+ *
99
+ * Tier defaults are conservative — they are NOT the model's hard ceiling,
100
+ * they are the point past which output coherence starts to slip on local
101
+ * models. A capable hosted model effectively has no binding budget here.
102
+ *
103
+ * Tier mapping:
104
+ * small → 1024 tokens (4B params, ~4 KB of generated content)
105
+ * medium → 2048 tokens (12B–27B params, ~8 KB)
106
+ * large → 8192 tokens (31B+ params, hosted strong models)
107
+ *
108
+ * Override at runtime by passing `outputBudgetTokens` to the loop directly,
109
+ * or by registering a tuned profile via `registerModelCapabilities`.
110
+ */
111
+ export declare function getOutputTokenBudget(caps: ModelCapabilities): number;
112
+ /**
113
+ * Ollama `/api/chat` runtime options per model tier. Ollama's server
114
+ * default `num_ctx` is only 2048 — small enough that our system prompt
115
+ * + tool definitions alone (~4k tokens) overflow and get truncated
116
+ * from the front, which strips the "you are an agent with tools"
117
+ * framing and leaves the model answering from its raw conversational
118
+ * persona ("I can't edit your code"). Passing `num_ctx` per tier
119
+ * fixes this; `keep_alive: -1` prevents the 5-minute idle unload that
120
+ * otherwise forces a cold reload on every follow-up turn.
121
+ *
122
+ * Budgets are conservative — sized to fit common laptop VRAM (16 GB)
123
+ * for small/medium and an RTX 5090 (32 GB) for large. Users can still
124
+ * override via the `banditStealth.ollamaOptions` setting.
125
+ */
126
+ export interface OllamaRuntimeOptions {
127
+ num_ctx: number;
128
+ keep_alive: number;
129
+ /**
130
+ * Disables chain-of-thought "thinking mode" for reasoning-capable models
131
+ * (Qwen 3.x, DeepSeek R1, etc.) by passing top-level `think: false` to
132
+ * Ollama's /api/chat. Not nested under `options` — Ollama treats `think`
133
+ * as a first-class request field, not a model parameter. Undefined means
134
+ * "don't send the field" so non-reasoning models aren't affected.
135
+ */
136
+ think?: boolean;
137
+ }
138
+ export declare function resolveOllamaRuntimeOptions(modelId: string): OllamaRuntimeOptions;
139
+ //# sourceMappingURL=modelCapabilities.d.ts.map