@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,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createChangeTracker = createChangeTracker;
37
+ const path = __importStar(require("path"));
38
+ function createChangeTracker(deps) {
39
+ function recordSnapshot(snapshot) {
40
+ deps.diffManager.recordSnapshot(snapshot);
41
+ deps.notifySnapshotCount(deps.diffManager.getSnapshotCount());
42
+ }
43
+ function hasSnapshots() {
44
+ return deps.diffManager.hasSnapshots();
45
+ }
46
+ function getSnapshotCount() {
47
+ return deps.diffManager.getSnapshotCount();
48
+ }
49
+ async function undoLastChange() {
50
+ const snapshot = deps.diffManager.popSnapshot();
51
+ if (!snapshot) {
52
+ return null;
53
+ }
54
+ try {
55
+ if (snapshot.existedBefore) {
56
+ await deps.fs.writeText(snapshot.absolutePath, snapshot.before, snapshot.encoding);
57
+ }
58
+ else {
59
+ try {
60
+ await deps.fs.remove(snapshot.absolutePath, { force: true });
61
+ }
62
+ catch (error) {
63
+ const code = error?.code;
64
+ if (code !== 'ENOENT') {
65
+ throw error;
66
+ }
67
+ }
68
+ }
69
+ deps.notifySnapshotCount(deps.diffManager.getSnapshotCount());
70
+ return snapshot;
71
+ }
72
+ catch (error) {
73
+ deps.diffManager.recordSnapshot(snapshot);
74
+ deps.notifySnapshotCount(deps.diffManager.getSnapshotCount());
75
+ throw error;
76
+ }
77
+ }
78
+ async function capturePreWriteState(workspaceRoot, relativePath, encoding, fallback) {
79
+ const absolutePath = path.resolve(workspaceRoot, relativePath);
80
+ try {
81
+ const before = await deps.fs.readText(absolutePath, encoding);
82
+ return { absolutePath, before, existedBefore: true };
83
+ }
84
+ catch (error) {
85
+ const code = error?.code;
86
+ if (code === 'ENOENT') {
87
+ return {
88
+ absolutePath,
89
+ before: typeof fallback === 'string' ? fallback : '',
90
+ existedBefore: false
91
+ };
92
+ }
93
+ console.warn(`Unable to capture snapshot for ${relativePath}`, error);
94
+ return {
95
+ absolutePath,
96
+ before: typeof fallback === 'string' ? fallback : '',
97
+ existedBefore: true
98
+ };
99
+ }
100
+ }
101
+ async function createBackup(workspaceRoot, relativePath, content) {
102
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
103
+ const workspaceBackupsRoot = path.join(workspaceRoot, '.bandit', 'backups');
104
+ const sanitizedPath = relativePath.replace(/\\/g, '/').replace(/^((\.\.)?\/)+/, '').replace(/^\/+/, '');
105
+ const backupPath = path.join(workspaceBackupsRoot, timestamp, `${sanitizedPath}.bak`);
106
+ await deps.fs.writeText(backupPath, content);
107
+ await ensureGitIgnoreEntry(workspaceRoot, '.bandit/');
108
+ return path.relative(workspaceRoot, backupPath).replace(/\\/g, '/');
109
+ }
110
+ async function ensureGitIgnoreEntry(workspaceRoot, entry) {
111
+ const gitIgnorePath = path.join(workspaceRoot, '.gitignore');
112
+ let contents = '';
113
+ try {
114
+ contents = await deps.fs.readText(gitIgnorePath);
115
+ }
116
+ catch (error) {
117
+ const code = error?.code;
118
+ if (code && code !== 'ENOENT') {
119
+ return;
120
+ }
121
+ }
122
+ const normalized = entry.endsWith('/') ? entry : `${entry}/`;
123
+ const normalizedTrimmed = normalized.replace(/\/$/, '');
124
+ const lines = contents.split(/\r?\n/).map((line) => line.trim());
125
+ if (lines.some((line) => line === normalizedTrimmed || line === normalized || line === `${normalizedTrimmed}/`)) {
126
+ return;
127
+ }
128
+ const prefix = contents.length === 0 || contents.endsWith('\n') ? '' : '\n';
129
+ const snippet = `# Bandit Stealth\n${normalized}\n`;
130
+ try {
131
+ await deps.fs.writeText(gitIgnorePath, `${contents}${prefix}${snippet}`);
132
+ }
133
+ catch {
134
+ // ignore failures for read-only workspaces
135
+ }
136
+ }
137
+ return {
138
+ recordSnapshot,
139
+ hasSnapshots,
140
+ getSnapshotCount,
141
+ undoLastChange,
142
+ capturePreWriteState,
143
+ createBackup,
144
+ ensureGitIgnoreEntry
145
+ };
146
+ }
147
+ //# sourceMappingURL=changeTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeTracker.js","sourceRoot":"","sources":["../../src/runtime/changeTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * ContextBuilder — two-tier context assembly for the Bandit agent.
3
+ *
4
+ * Priority order:
5
+ * 1. Gateway Qdrant search (Tier 1) — full-repo awareness via indexed embeddings
6
+ * 2. Local nomic-embed-text (Tier 2) — in-memory fallback for offline/unindexed files
7
+ * 3. Pinned files — current open file, git-modified files, always included
8
+ *
9
+ * Results are deduplicated by file path and capped to the model's context budget.
10
+ */
11
+ import type { GatewaySearchAdapter } from '../gatewaySearchAdapter';
12
+ import type { OllamaEmbeddingClient } from '../ollamaEmbeddingClient';
13
+ export interface ContextFile {
14
+ path: string;
15
+ content: string;
16
+ /** Where the context came from, for status bar display and debugging. */
17
+ source: 'pinned' | 'gateway' | 'local';
18
+ score?: number;
19
+ }
20
+ export interface BuildContextOptions {
21
+ /** Active model ID — used to look up tier and context budget. */
22
+ modelId?: string;
23
+ /** Currently open file in the editor. Always included if provided. */
24
+ currentFilePath?: string;
25
+ currentFileContent?: string;
26
+ /** Additional always-included files (git-modified, package.json, etc.). */
27
+ pinnedFiles?: Array<{
28
+ path: string;
29
+ content: string;
30
+ }>;
31
+ /** Gateway workspace ID. Required for Tier 1 search. */
32
+ workspaceId?: string;
33
+ }
34
+ export interface BuiltContext {
35
+ files: ContextFile[];
36
+ /** Markdown-formatted context block ready to inject into a system prompt. */
37
+ formatted: string;
38
+ /** Highest-priority source that contributed results. */
39
+ source: 'gateway' | 'local' | 'pinned-only' | 'none';
40
+ /** Rough token estimate (chars / 4). */
41
+ tokenEstimate: number;
42
+ }
43
+ export declare class ContextBuilder {
44
+ private readonly gateway;
45
+ private readonly localEmbeddings;
46
+ constructor(gateway: GatewaySearchAdapter | undefined, localEmbeddings: OllamaEmbeddingClient | undefined);
47
+ build(query: string, options?: BuildContextOptions): Promise<BuiltContext>;
48
+ private formatForPrompt;
49
+ }
50
+ /**
51
+ * Slim context — replacement for the heavy ContextBuilder pipeline. The
52
+ * heavy version (above) ran embeddings (Qdrant tier 1, nomic-embed-text
53
+ * tier 2) on every turn, dumped full file *contents* into the system
54
+ * prompt, and added 500 ms–2 s of latency per turn. Auto-context shipped
55
+ * default-off because of that cost (earlier made the gate actually
56
+ * fire).
57
+ *
58
+ * The slim version keeps what auto-context actually delivers — open-
59
+ * editor awareness + recently-edited file signal — and drops the rest.
60
+ * It injects ~5–15 lines of paths and statuses (no file contents, no
61
+ * embeddings, no network), so even with the setting ON the cost is
62
+ * essentially free: a `git status` on the workspace plus a token bump
63
+ * in the noise (~50–150 tokens).
64
+ *
65
+ * The agent now uses its own tools (`read_file`, `grep`, `list_dir`) to
66
+ * actually look at the files it cares about, instead of being handed a
67
+ * pre-cooked excerpt that may or may not be the right one.
68
+ *
69
+ * Returns the same `BuiltContext` shape as the heavy builder so callers
70
+ * (status bar, system prompt assembler) don't need conditional code.
71
+ */
72
+ export interface SlimContextOptions {
73
+ /** Absolute path of the file currently open in the editor, if any. */
74
+ currentFilePath?: string;
75
+ /** Recently modified files (git status), with optional status code (M/A/D/?). */
76
+ gitModifiedFiles?: Array<{
77
+ path: string;
78
+ status?: string;
79
+ }>;
80
+ /** Cap on git-modified entries. Default: 10 — beyond that the list
81
+ * becomes noise and the agent should grep / list_dir instead. */
82
+ maxGitFiles?: number;
83
+ }
84
+ export declare function buildSlimContext(options: SlimContextOptions): BuiltContext;
85
+ //# sourceMappingURL=contextBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextBuilder.d.ts","sourceRoot":"","sources":["../../src/runtime/contextBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACrD,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,eAAe,EAAE,qBAAqB,GAAG,SAAS;IAG/D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAgFpF,OAAO,CAAC,eAAe;CA2BxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D;qEACiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAqC1E"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * ContextBuilder — two-tier context assembly for the Bandit agent.
4
+ *
5
+ * Priority order:
6
+ * 1. Gateway Qdrant search (Tier 1) — full-repo awareness via indexed embeddings
7
+ * 2. Local nomic-embed-text (Tier 2) — in-memory fallback for offline/unindexed files
8
+ * 3. Pinned files — current open file, git-modified files, always included
9
+ *
10
+ * Results are deduplicated by file path and capped to the model's context budget.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ContextBuilder = void 0;
14
+ exports.buildSlimContext = buildSlimContext;
15
+ const modelCapabilities_1 = require("./modelCapabilities");
16
+ class ContextBuilder {
17
+ constructor(gateway, localEmbeddings) {
18
+ this.gateway = gateway;
19
+ this.localEmbeddings = localEmbeddings;
20
+ }
21
+ async build(query, options = {}) {
22
+ const caps = (0, modelCapabilities_1.getModelCapabilities)(options.modelId ?? '');
23
+ const fileLimit = (0, modelCapabilities_1.getContextFileLimit)(caps.tier);
24
+ const tokenBudget = (0, modelCapabilities_1.getContextTokenBudget)(caps);
25
+ const seen = new Set();
26
+ const files = [];
27
+ // ── Tier 1: Gateway Qdrant (semantic search over indexed repo) ────────────
28
+ if (this.gateway && options.workspaceId) {
29
+ try {
30
+ const result = await this.gateway.search(query, fileLimit);
31
+ for (const chunk of result.chunks) {
32
+ if (seen.has(chunk.path))
33
+ continue;
34
+ seen.add(chunk.path);
35
+ files.push({
36
+ path: chunk.path,
37
+ content: chunk.content,
38
+ source: 'gateway',
39
+ score: chunk.score
40
+ });
41
+ }
42
+ }
43
+ catch {
44
+ // Gateway unavailable — fall through to local embeddings.
45
+ }
46
+ }
47
+ // ── Tier 2: Local in-memory embeddings (unindexed / offline files) ────────
48
+ if (this.localEmbeddings && files.length < fileLimit) {
49
+ try {
50
+ const remaining = fileLimit - files.length;
51
+ const hits = await this.localEmbeddings.search(query, remaining);
52
+ for (const hit of hits) {
53
+ if (seen.has(hit.path))
54
+ continue;
55
+ seen.add(hit.path);
56
+ files.push({
57
+ path: hit.path,
58
+ content: hit.content ?? '',
59
+ source: 'local',
60
+ score: hit.score
61
+ });
62
+ }
63
+ }
64
+ catch {
65
+ // Local embeddings unavailable.
66
+ }
67
+ }
68
+ // ── Tier 3: Pinned files (always included, prepended) ─────────────────────
69
+ // Current open file goes first so the model always has immediate context.
70
+ if (options.currentFilePath && options.currentFileContent) {
71
+ if (!seen.has(options.currentFilePath)) {
72
+ seen.add(options.currentFilePath);
73
+ files.unshift({
74
+ path: options.currentFilePath,
75
+ content: options.currentFileContent,
76
+ source: 'pinned'
77
+ });
78
+ }
79
+ }
80
+ for (const pinned of options.pinnedFiles ?? []) {
81
+ if (!pinned.content.trim() || seen.has(pinned.path))
82
+ continue;
83
+ seen.add(pinned.path);
84
+ files.push({ path: pinned.path, content: pinned.content, source: 'pinned' });
85
+ }
86
+ const source = files.some(f => f.source === 'gateway')
87
+ ? 'gateway'
88
+ : files.some(f => f.source === 'local')
89
+ ? 'local'
90
+ : files.length > 0
91
+ ? 'pinned-only'
92
+ : 'none';
93
+ const formatted = this.formatForPrompt(files, tokenBudget);
94
+ const tokenEstimate = Math.ceil(formatted.length / 4);
95
+ return { files, formatted, source, tokenEstimate };
96
+ }
97
+ formatForPrompt(files, tokenBudget) {
98
+ if (!files.length)
99
+ return '';
100
+ const parts = ['### Relevant codebase context:'];
101
+ let totalChars = parts[0].length;
102
+ const charBudget = tokenBudget * 4;
103
+ // Per-file character cap: distribute budget evenly so a single large file
104
+ // cannot crowd out all others. Floor at 800 chars to keep tiny files useful.
105
+ const nonEmptyCount = files.filter(f => f.content.trim()).length || 1;
106
+ const perFileCapChars = Math.max(Math.floor(charBudget / nonEmptyCount), 800);
107
+ for (const file of files) {
108
+ const trimmed = file.content.trim();
109
+ if (!trimmed)
110
+ continue;
111
+ const capped = trimmed.length > perFileCapChars
112
+ ? trimmed.slice(0, perFileCapChars) + '\n… (truncated)'
113
+ : trimmed;
114
+ const block = `\n\n**${file.path}**\n\`\`\`\n${capped}\n\`\`\``;
115
+ if (totalChars + block.length > charBudget)
116
+ break;
117
+ parts.push(block);
118
+ totalChars += block.length;
119
+ }
120
+ return parts.length > 1 ? parts.join('') : '';
121
+ }
122
+ }
123
+ exports.ContextBuilder = ContextBuilder;
124
+ function buildSlimContext(options) {
125
+ const maxGit = options.maxGitFiles ?? 10;
126
+ const gitFiles = (options.gitModifiedFiles ?? []).slice(0, maxGit);
127
+ const files = [];
128
+ if (options.currentFilePath) {
129
+ files.push({ path: options.currentFilePath, content: '', source: 'pinned' });
130
+ }
131
+ for (const f of gitFiles) {
132
+ if (f.path === options.currentFilePath)
133
+ continue;
134
+ files.push({ path: f.path, content: '', source: 'pinned' });
135
+ }
136
+ if (files.length === 0) {
137
+ return { files: [], formatted: '', source: 'none', tokenEstimate: 0 };
138
+ }
139
+ const lines = ['### Workspace context:'];
140
+ if (options.currentFilePath) {
141
+ lines.push(`- Open in editor: ${options.currentFilePath}`);
142
+ }
143
+ if (gitFiles.length > 0) {
144
+ const list = gitFiles
145
+ .map((f) => (f.status ? `${f.path} (${f.status})` : f.path))
146
+ .join(', ');
147
+ lines.push(`- Recently edited (git): ${list}`);
148
+ }
149
+ lines.push('');
150
+ lines.push('Use `read_file` / `grep` / `list_dir` on these paths if relevant. The list is metadata only — file contents are NOT included.');
151
+ const formatted = lines.join('\n');
152
+ return {
153
+ files,
154
+ formatted,
155
+ source: 'pinned-only',
156
+ tokenEstimate: Math.ceil(formatted.length / 4)
157
+ };
158
+ }
159
+ //# sourceMappingURL=contextBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextBuilder.js","sourceRoot":"","sources":["../../src/runtime/contextBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ExecutorHooks } from '../internalTypes';
2
+ import type { CoreRuntime, CoreRuntimeDeps } from '../internalTypes';
3
+ export interface CreateCoreRuntimeOptions extends CoreRuntimeDeps {
4
+ executorHooks: ExecutorHooks;
5
+ }
6
+ export declare function createCoreRuntime(deps: CreateCoreRuntimeOptions): CoreRuntime;
7
+ //# sourceMappingURL=coreRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/coreRuntime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,WAAW,EAAwC,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AAE5H,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,aAAa,EAAE,aAAa,CAAC;CAC9B;AASD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,WAAW,CAwE7E"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCoreRuntime = createCoreRuntime;
4
+ const executorAgent_1 = require("../executorAgent");
5
+ function ensureExecutorConfig(options) {
6
+ if (!options?.executor) {
7
+ throw new Error('Core runtime requires an executor configuration.');
8
+ }
9
+ return options.executor;
10
+ }
11
+ function createCoreRuntime(deps) {
12
+ const executorAgent = new executorAgent_1.StealthExecutorAgent(deps.executorHooks);
13
+ let disposed = false;
14
+ async function run(plan, goal, options) {
15
+ if (disposed) {
16
+ throw new Error('Core runtime has been disposed.');
17
+ }
18
+ let workingPlan = plan;
19
+ await postStartStatus(options.previewOnly === true, deps.telemetry);
20
+ if (!options.skipEnrich) {
21
+ workingPlan = await deps.goal.enrich(plan, plan.goal ?? goal, { insight: options.insight });
22
+ }
23
+ let transaction;
24
+ if (shouldUseDiffTransaction(workingPlan, options)) {
25
+ transaction = deps.diff.beginTransaction();
26
+ }
27
+ const config = ensureExecutorConfig(options);
28
+ let executorResult;
29
+ try {
30
+ executorResult = await executorAgent.run(workingPlan, goal, config);
31
+ if (transaction) {
32
+ const failed = executorResult.results.some((result) => !result.ok);
33
+ if (failed) {
34
+ deps.diff.rollbackTransaction(transaction);
35
+ }
36
+ else {
37
+ await deps.diff.commitTransaction(transaction);
38
+ }
39
+ }
40
+ }
41
+ catch (error) {
42
+ if (transaction) {
43
+ deps.diff.rollbackTransaction(transaction);
44
+ }
45
+ throw error;
46
+ }
47
+ const evaluation = await computeEvaluation({
48
+ previewOnly: options.previewOnly === true,
49
+ plan: workingPlan,
50
+ results: executorResult.results,
51
+ goal,
52
+ config,
53
+ autoIterations: executorResult.autoIterations
54
+ }, deps);
55
+ await postFinalStatus({
56
+ previewOnly: options.previewOnly === true,
57
+ evaluation,
58
+ awaitingGuidancePrefix: deps.awaitingGuidancePrefix,
59
+ telemetry: deps.telemetry
60
+ });
61
+ return {
62
+ plan: workingPlan,
63
+ results: executorResult.results,
64
+ autoIterations: executorResult.autoIterations,
65
+ evaluation
66
+ };
67
+ }
68
+ async function dispose() {
69
+ disposed = true;
70
+ }
71
+ return {
72
+ run,
73
+ dispose
74
+ };
75
+ }
76
+ async function computeEvaluation(input, deps) {
77
+ if (input.previewOnly) {
78
+ return {
79
+ success: false,
80
+ confidence: 0,
81
+ feedback: 'Preview only — run the agent to apply changes.'
82
+ };
83
+ }
84
+ let evaluation = await deps.evaluate({
85
+ plan: input.plan,
86
+ results: input.results,
87
+ goal: input.goal,
88
+ config: input.config
89
+ });
90
+ if (evaluation.success && evaluation.confidence < input.config.confidenceTarget) {
91
+ const confidencePercent = (evaluation.confidence * 100).toFixed(1);
92
+ const targetPercent = (input.config.confidenceTarget * 100).toFixed(1);
93
+ evaluation = {
94
+ ...evaluation,
95
+ success: false,
96
+ feedback: `${evaluation.feedback} Confidence ${confidencePercent}% below target ${targetPercent}%.`
97
+ };
98
+ }
99
+ if (input.autoIterations > 0) {
100
+ evaluation = {
101
+ ...evaluation,
102
+ feedback: `${evaluation.feedback} (auto-revision iterations: ${input.autoIterations})`
103
+ };
104
+ }
105
+ return evaluation;
106
+ }
107
+ async function postStartStatus(previewOnly, telemetry) {
108
+ if (previewOnly) {
109
+ await telemetry.status({
110
+ text: 'Plan ready for review',
111
+ phase: 'complete',
112
+ detail: 'Preview only — no changes applied.',
113
+ icon: 'review'
114
+ });
115
+ return;
116
+ }
117
+ await telemetry.status({ text: 'Executing plan…', phase: 'progress', icon: 'plan' });
118
+ }
119
+ async function postFinalStatus(args) {
120
+ if (args.previewOnly) {
121
+ await args.telemetry.status({
122
+ text: 'Plan preview complete',
123
+ phase: 'complete',
124
+ detail: args.evaluation.feedback,
125
+ icon: 'info'
126
+ });
127
+ return;
128
+ }
129
+ const awaitingGuidance = !args.evaluation.success && args.evaluation.feedback.startsWith(args.awaitingGuidancePrefix);
130
+ await args.telemetry.status({
131
+ text: args.evaluation.success
132
+ ? 'Goal achieved ✅'
133
+ : awaitingGuidance
134
+ ? 'Awaiting guidance'
135
+ : 'Evaluation complete',
136
+ phase: args.evaluation.success || awaitingGuidance ? 'complete' : 'error',
137
+ detail: args.evaluation.feedback,
138
+ icon: args.evaluation.success ? 'success' : awaitingGuidance ? 'info' : 'warn'
139
+ });
140
+ }
141
+ function shouldUseDiffTransaction(plan, options) {
142
+ if (options.previewOnly || !plan?.steps?.length) {
143
+ return false;
144
+ }
145
+ return isMultiFilePlan(plan);
146
+ }
147
+ function isMultiFilePlan(plan) {
148
+ const metadata = plan.metadata;
149
+ if (metadata?.multiFile === true) {
150
+ return true;
151
+ }
152
+ if (metadata?.mode && typeof metadata.mode === 'string' && metadata.mode.toLowerCase() === 'multi-file') {
153
+ return true;
154
+ }
155
+ let writeSteps = 0;
156
+ const referencedFiles = new Set();
157
+ for (const step of plan.steps ?? []) {
158
+ if (Array.isArray(step.filesToEdit) && step.filesToEdit.length > 1) {
159
+ return true;
160
+ }
161
+ if (typeof step.targetFile === 'string') {
162
+ referencedFiles.add(step.targetFile);
163
+ }
164
+ if (step.action && step.action.type === 'python' && step.action.name === 'writeFile') {
165
+ writeSteps += 1;
166
+ }
167
+ }
168
+ if (referencedFiles.size > 1) {
169
+ return true;
170
+ }
171
+ return writeSteps > 1;
172
+ }
173
+ //# sourceMappingURL=coreRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRuntime.js","sourceRoot":"","sources":["../../src/runtime/coreRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { StealthHostBindings } from '../hostTypes';
2
+ import type { StealthRuntime } from './stealthRuntimeTypes';
3
+ export declare function createStealthRuntime(host: StealthHostBindings): StealthRuntime;
4
+ //# sourceMappingURL=createStealthRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createStealthRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/createStealthRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAc,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsD5D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CA+c9E"}