@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.
- package/LICENSE +201 -0
- package/README.md +46 -0
- package/dist/banditEngineProvider.d.ts +48 -0
- package/dist/banditEngineProvider.d.ts.map +1 -0
- package/dist/banditEngineProvider.js +1021 -0
- package/dist/banditEngineProvider.js.map +1 -0
- package/dist/embeddingCache.d.ts +23 -0
- package/dist/embeddingCache.d.ts.map +1 -0
- package/dist/embeddingCache.js +196 -0
- package/dist/embeddingCache.js.map +1 -0
- package/dist/embeddingClient.d.ts +35 -0
- package/dist/embeddingClient.d.ts.map +1 -0
- package/dist/embeddingClient.js +162 -0
- package/dist/embeddingClient.js.map +1 -0
- package/dist/executorAgent.d.ts +7 -0
- package/dist/executorAgent.d.ts.map +1 -0
- package/dist/executorAgent.js +95 -0
- package/dist/executorAgent.js.map +1 -0
- package/dist/extensionSystemPrompt.d.ts +80 -0
- package/dist/extensionSystemPrompt.d.ts.map +1 -0
- package/dist/extensionSystemPrompt.js +208 -0
- package/dist/extensionSystemPrompt.js.map +1 -0
- package/dist/gatewaySearchAdapter.d.ts +69 -0
- package/dist/gatewaySearchAdapter.d.ts.map +1 -0
- package/dist/gatewaySearchAdapter.js +131 -0
- package/dist/gatewaySearchAdapter.js.map +1 -0
- package/dist/goalInference.d.ts +26 -0
- package/dist/goalInference.d.ts.map +1 -0
- package/dist/goalInference.js +605 -0
- package/dist/goalInference.js.map +1 -0
- package/dist/hostTypes.d.ts +86 -0
- package/dist/hostTypes.d.ts.map +1 -0
- package/dist/hostTypes.js +3 -0
- package/dist/hostTypes.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/internalTypes.d.ts +16 -0
- package/dist/internalTypes.d.ts.map +1 -0
- package/dist/internalTypes.js +20 -0
- package/dist/internalTypes.js.map +1 -0
- package/dist/ollamaEmbeddingClient.d.ts +45 -0
- package/dist/ollamaEmbeddingClient.d.ts.map +1 -0
- package/dist/ollamaEmbeddingClient.js +143 -0
- package/dist/ollamaEmbeddingClient.js.map +1 -0
- package/dist/pdfjsShim.d.ts +2 -0
- package/dist/pdfjsShim.d.ts.map +1 -0
- package/dist/pdfjsShim.js +80 -0
- package/dist/pdfjsShim.js.map +1 -0
- package/dist/runtime/actionRuntime.d.ts +13 -0
- package/dist/runtime/actionRuntime.d.ts.map +1 -0
- package/dist/runtime/actionRuntime.js +15 -0
- package/dist/runtime/actionRuntime.js.map +1 -0
- package/dist/runtime/actionServices.d.ts +72 -0
- package/dist/runtime/actionServices.d.ts.map +1 -0
- package/dist/runtime/actionServices.js +53 -0
- package/dist/runtime/actionServices.js.map +1 -0
- package/dist/runtime/adapters/connectorBus.d.ts +9 -0
- package/dist/runtime/adapters/connectorBus.d.ts.map +1 -0
- package/dist/runtime/adapters/connectorBus.js +20 -0
- package/dist/runtime/adapters/connectorBus.js.map +1 -0
- package/dist/runtime/adapters/fsAdapter.d.ts +6 -0
- package/dist/runtime/adapters/fsAdapter.d.ts.map +1 -0
- package/dist/runtime/adapters/fsAdapter.js +144 -0
- package/dist/runtime/adapters/fsAdapter.js.map +1 -0
- package/dist/runtime/adapters/llmAdapter.d.ts +4 -0
- package/dist/runtime/adapters/llmAdapter.d.ts.map +1 -0
- package/dist/runtime/adapters/llmAdapter.js +12 -0
- package/dist/runtime/adapters/llmAdapter.js.map +1 -0
- package/dist/runtime/adapters/shellAdapter.d.ts +6 -0
- package/dist/runtime/adapters/shellAdapter.d.ts.map +1 -0
- package/dist/runtime/adapters/shellAdapter.js +118 -0
- package/dist/runtime/adapters/shellAdapter.js.map +1 -0
- package/dist/runtime/additionalWrites.d.ts +22 -0
- package/dist/runtime/additionalWrites.d.ts.map +1 -0
- package/dist/runtime/additionalWrites.js +148 -0
- package/dist/runtime/additionalWrites.js.map +1 -0
- package/dist/runtime/artifactManager.d.ts +32 -0
- package/dist/runtime/artifactManager.d.ts.map +1 -0
- package/dist/runtime/artifactManager.js +154 -0
- package/dist/runtime/artifactManager.js.map +1 -0
- package/dist/runtime/autoHealer.d.ts +27 -0
- package/dist/runtime/autoHealer.d.ts.map +1 -0
- package/dist/runtime/autoHealer.js +583 -0
- package/dist/runtime/autoHealer.js.map +1 -0
- package/dist/runtime/changeTracker.d.ts +20 -0
- package/dist/runtime/changeTracker.d.ts.map +1 -0
- package/dist/runtime/changeTracker.js +147 -0
- package/dist/runtime/changeTracker.js.map +1 -0
- package/dist/runtime/contextBuilder.d.ts +85 -0
- package/dist/runtime/contextBuilder.d.ts.map +1 -0
- package/dist/runtime/contextBuilder.js +159 -0
- package/dist/runtime/contextBuilder.js.map +1 -0
- package/dist/runtime/coreRuntime.d.ts +7 -0
- package/dist/runtime/coreRuntime.d.ts.map +1 -0
- package/dist/runtime/coreRuntime.js +173 -0
- package/dist/runtime/coreRuntime.js.map +1 -0
- package/dist/runtime/createStealthRuntime.d.ts +4 -0
- package/dist/runtime/createStealthRuntime.d.ts.map +1 -0
- package/dist/runtime/createStealthRuntime.js +514 -0
- package/dist/runtime/createStealthRuntime.js.map +1 -0
- package/dist/runtime/diagnostics.d.ts +53 -0
- package/dist/runtime/diagnostics.d.ts.map +1 -0
- package/dist/runtime/diagnostics.js +396 -0
- package/dist/runtime/diagnostics.js.map +1 -0
- package/dist/runtime/diagnosticsServices.d.ts +51 -0
- package/dist/runtime/diagnosticsServices.d.ts.map +1 -0
- package/dist/runtime/diagnosticsServices.js +46 -0
- package/dist/runtime/diagnosticsServices.js.map +1 -0
- package/dist/runtime/diffManager.d.ts +20 -0
- package/dist/runtime/diffManager.d.ts.map +1 -0
- package/dist/runtime/diffManager.js +172 -0
- package/dist/runtime/diffManager.js.map +1 -0
- package/dist/runtime/diffPresenter.d.ts +8 -0
- package/dist/runtime/diffPresenter.d.ts.map +1 -0
- package/dist/runtime/diffPresenter.js +57 -0
- package/dist/runtime/diffPresenter.js.map +1 -0
- package/dist/runtime/embeddingClientResolver.d.ts +14 -0
- package/dist/runtime/embeddingClientResolver.d.ts.map +1 -0
- package/dist/runtime/embeddingClientResolver.js +54 -0
- package/dist/runtime/embeddingClientResolver.js.map +1 -0
- package/dist/runtime/embeddingManager.d.ts +22 -0
- package/dist/runtime/embeddingManager.d.ts.map +1 -0
- package/dist/runtime/embeddingManager.js +224 -0
- package/dist/runtime/embeddingManager.js.map +1 -0
- package/dist/runtime/eventBus.d.ts +7 -0
- package/dist/runtime/eventBus.d.ts.map +1 -0
- package/dist/runtime/eventBus.js +28 -0
- package/dist/runtime/eventBus.js.map +1 -0
- package/dist/runtime/executorServices.d.ts +46 -0
- package/dist/runtime/executorServices.d.ts.map +1 -0
- package/dist/runtime/executorServices.js +47 -0
- package/dist/runtime/executorServices.js.map +1 -0
- package/dist/runtime/extractionService.d.ts +11 -0
- package/dist/runtime/extractionService.d.ts.map +1 -0
- package/dist/runtime/extractionService.js +282 -0
- package/dist/runtime/extractionService.js.map +1 -0
- package/dist/runtime/feedbackService.d.ts +12 -0
- package/dist/runtime/feedbackService.d.ts.map +1 -0
- package/dist/runtime/feedbackService.js +111 -0
- package/dist/runtime/feedbackService.js.map +1 -0
- package/dist/runtime/goalEngine.d.ts +10 -0
- package/dist/runtime/goalEngine.d.ts.map +1 -0
- package/dist/runtime/goalEngine.js +429 -0
- package/dist/runtime/goalEngine.js.map +1 -0
- package/dist/runtime/goalFlowServices.d.ts +49 -0
- package/dist/runtime/goalFlowServices.d.ts.map +1 -0
- package/dist/runtime/goalFlowServices.js +45 -0
- package/dist/runtime/goalFlowServices.js.map +1 -0
- package/dist/runtime/goalReplay.d.ts +33 -0
- package/dist/runtime/goalReplay.d.ts.map +1 -0
- package/dist/runtime/goalReplay.js +58 -0
- package/dist/runtime/goalReplay.js.map +1 -0
- package/dist/runtime/goalRunner.d.ts +35 -0
- package/dist/runtime/goalRunner.d.ts.map +1 -0
- package/dist/runtime/goalRunner.js +42 -0
- package/dist/runtime/goalRunner.js.map +1 -0
- package/dist/runtime/healingEngine.d.ts +72 -0
- package/dist/runtime/healingEngine.d.ts.map +1 -0
- package/dist/runtime/healingEngine.js +969 -0
- package/dist/runtime/healingEngine.js.map +1 -0
- package/dist/runtime/healingServices.d.ts +62 -0
- package/dist/runtime/healingServices.d.ts.map +1 -0
- package/dist/runtime/healingServices.js +45 -0
- package/dist/runtime/healingServices.js.map +1 -0
- package/dist/runtime/helpers.d.ts +22 -0
- package/dist/runtime/helpers.d.ts.map +1 -0
- package/dist/runtime/helpers.js +694 -0
- package/dist/runtime/helpers.js.map +1 -0
- package/dist/runtime/hosts/actionHost.d.ts +82 -0
- package/dist/runtime/hosts/actionHost.d.ts.map +1 -0
- package/dist/runtime/hosts/actionHost.js +61 -0
- package/dist/runtime/hosts/actionHost.js.map +1 -0
- package/dist/runtime/hosts/baseServices.d.ts +51 -0
- package/dist/runtime/hosts/baseServices.d.ts.map +1 -0
- package/dist/runtime/hosts/baseServices.js +73 -0
- package/dist/runtime/hosts/baseServices.js.map +1 -0
- package/dist/runtime/hosts/embeddingServices.d.ts +25 -0
- package/dist/runtime/hosts/embeddingServices.d.ts.map +1 -0
- package/dist/runtime/hosts/embeddingServices.js +34 -0
- package/dist/runtime/hosts/embeddingServices.js.map +1 -0
- package/dist/runtime/hosts/goalFlowHost.d.ts +34 -0
- package/dist/runtime/hosts/goalFlowHost.d.ts.map +1 -0
- package/dist/runtime/hosts/goalFlowHost.js +35 -0
- package/dist/runtime/hosts/goalFlowHost.js.map +1 -0
- package/dist/runtime/hosts/goalFlowRuntime.d.ts +41 -0
- package/dist/runtime/hosts/goalFlowRuntime.d.ts.map +1 -0
- package/dist/runtime/hosts/goalFlowRuntime.js +31 -0
- package/dist/runtime/hosts/goalFlowRuntime.js.map +1 -0
- package/dist/runtime/hosts/providerHost.d.ts +19 -0
- package/dist/runtime/hosts/providerHost.d.ts.map +1 -0
- package/dist/runtime/hosts/providerHost.js +18 -0
- package/dist/runtime/hosts/providerHost.js.map +1 -0
- package/dist/runtime/hosts/rewriteHost.d.ts +84 -0
- package/dist/runtime/hosts/rewriteHost.d.ts.map +1 -0
- package/dist/runtime/hosts/rewriteHost.js +64 -0
- package/dist/runtime/hosts/rewriteHost.js.map +1 -0
- package/dist/runtime/hosts/workspaceHost.d.ts +113 -0
- package/dist/runtime/hosts/workspaceHost.d.ts.map +1 -0
- package/dist/runtime/hosts/workspaceHost.js +76 -0
- package/dist/runtime/hosts/workspaceHost.js.map +1 -0
- package/dist/runtime/index.d.ts +78 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +95 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/insight.d.ts +16 -0
- package/dist/runtime/insight.d.ts.map +1 -0
- package/dist/runtime/insight.js +11 -0
- package/dist/runtime/insight.js.map +1 -0
- package/dist/runtime/internalActions.d.ts +16 -0
- package/dist/runtime/internalActions.d.ts.map +1 -0
- package/dist/runtime/internalActions.js +302 -0
- package/dist/runtime/internalActions.js.map +1 -0
- package/dist/runtime/modelBehavior.d.ts +69 -0
- package/dist/runtime/modelBehavior.d.ts.map +1 -0
- package/dist/runtime/modelBehavior.js +514 -0
- package/dist/runtime/modelBehavior.js.map +1 -0
- package/dist/runtime/modelCapabilities.d.ts +139 -0
- package/dist/runtime/modelCapabilities.d.ts.map +1 -0
- package/dist/runtime/modelCapabilities.js +458 -0
- package/dist/runtime/modelCapabilities.js.map +1 -0
- package/dist/runtime/modelsDevCatalog.d.ts +34 -0
- package/dist/runtime/modelsDevCatalog.d.ts.map +1 -0
- package/dist/runtime/modelsDevCatalog.js +263 -0
- package/dist/runtime/modelsDevCatalog.js.map +1 -0
- package/dist/runtime/pendingInference.d.ts +18 -0
- package/dist/runtime/pendingInference.d.ts.map +1 -0
- package/dist/runtime/pendingInference.js +121 -0
- package/dist/runtime/pendingInference.js.map +1 -0
- package/dist/runtime/persistence.d.ts +21 -0
- package/dist/runtime/persistence.d.ts.map +1 -0
- package/dist/runtime/persistence.js +73 -0
- package/dist/runtime/persistence.js.map +1 -0
- package/dist/runtime/planContext.d.ts +42 -0
- package/dist/runtime/planContext.d.ts.map +1 -0
- package/dist/runtime/planContext.js +246 -0
- package/dist/runtime/planContext.js.map +1 -0
- package/dist/runtime/planGenerator.d.ts +21 -0
- package/dist/runtime/planGenerator.d.ts.map +1 -0
- package/dist/runtime/planGenerator.js +89 -0
- package/dist/runtime/planGenerator.js.map +1 -0
- package/dist/runtime/planPreparation.d.ts +64 -0
- package/dist/runtime/planPreparation.d.ts.map +1 -0
- package/dist/runtime/planPreparation.js +173 -0
- package/dist/runtime/planPreparation.js.map +1 -0
- package/dist/runtime/projectSummary.d.ts +3 -0
- package/dist/runtime/projectSummary.d.ts.map +1 -0
- package/dist/runtime/projectSummary.js +42 -0
- package/dist/runtime/projectSummary.js.map +1 -0
- package/dist/runtime/providerSettings.d.ts +28 -0
- package/dist/runtime/providerSettings.d.ts.map +1 -0
- package/dist/runtime/providerSettings.js +93 -0
- package/dist/runtime/providerSettings.js.map +1 -0
- package/dist/runtime/pythonActions.d.ts +78 -0
- package/dist/runtime/pythonActions.d.ts.map +1 -0
- package/dist/runtime/pythonActions.js +392 -0
- package/dist/runtime/pythonActions.js.map +1 -0
- package/dist/runtime/pythonBridge.d.ts +13 -0
- package/dist/runtime/pythonBridge.d.ts.map +1 -0
- package/dist/runtime/pythonBridge.js +117 -0
- package/dist/runtime/pythonBridge.js.map +1 -0
- package/dist/runtime/rewriteEngine.d.ts +46 -0
- package/dist/runtime/rewriteEngine.d.ts.map +1 -0
- package/dist/runtime/rewriteEngine.js +259 -0
- package/dist/runtime/rewriteEngine.js.map +1 -0
- package/dist/runtime/rewriteGenerator.d.ts +29 -0
- package/dist/runtime/rewriteGenerator.d.ts.map +1 -0
- package/dist/runtime/rewriteGenerator.js +1527 -0
- package/dist/runtime/rewriteGenerator.js.map +1 -0
- package/dist/runtime/rewriteHydration.d.ts +22 -0
- package/dist/runtime/rewriteHydration.d.ts.map +1 -0
- package/dist/runtime/rewriteHydration.js +265 -0
- package/dist/runtime/rewriteHydration.js.map +1 -0
- package/dist/runtime/rewriteOrchestration.d.ts +105 -0
- package/dist/runtime/rewriteOrchestration.d.ts.map +1 -0
- package/dist/runtime/rewriteOrchestration.js +130 -0
- package/dist/runtime/rewriteOrchestration.js.map +1 -0
- package/dist/runtime/rewritePayload.d.ts +18 -0
- package/dist/runtime/rewritePayload.d.ts.map +1 -0
- package/dist/runtime/rewritePayload.js +166 -0
- package/dist/runtime/rewritePayload.js.map +1 -0
- package/dist/runtime/rewriteRuntime.d.ts +13 -0
- package/dist/runtime/rewriteRuntime.d.ts.map +1 -0
- package/dist/runtime/rewriteRuntime.js +21 -0
- package/dist/runtime/rewriteRuntime.js.map +1 -0
- package/dist/runtime/rewriteServices.d.ts +70 -0
- package/dist/runtime/rewriteServices.d.ts.map +1 -0
- package/dist/runtime/rewriteServices.js +50 -0
- package/dist/runtime/rewriteServices.js.map +1 -0
- package/dist/runtime/runtimeHelpers.d.ts +9 -0
- package/dist/runtime/runtimeHelpers.d.ts.map +1 -0
- package/dist/runtime/runtimeHelpers.js +86 -0
- package/dist/runtime/runtimeHelpers.js.map +1 -0
- package/dist/runtime/sessionData.d.ts +4 -0
- package/dist/runtime/sessionData.d.ts.map +1 -0
- package/dist/runtime/sessionData.js +45 -0
- package/dist/runtime/sessionData.js.map +1 -0
- package/dist/runtime/sessionRuntime.d.ts +47 -0
- package/dist/runtime/sessionRuntime.d.ts.map +1 -0
- package/dist/runtime/sessionRuntime.js +128 -0
- package/dist/runtime/sessionRuntime.js.map +1 -0
- package/dist/runtime/stealthRuntimeTypes.d.ts +12 -0
- package/dist/runtime/stealthRuntimeTypes.d.ts.map +1 -0
- package/dist/runtime/stealthRuntimeTypes.js +3 -0
- package/dist/runtime/stealthRuntimeTypes.js.map +1 -0
- package/dist/runtime/stepExecutor.d.ts +22 -0
- package/dist/runtime/stepExecutor.d.ts.map +1 -0
- package/dist/runtime/stepExecutor.js +83 -0
- package/dist/runtime/stepExecutor.js.map +1 -0
- package/dist/runtime/stepLifecycle.d.ts +29 -0
- package/dist/runtime/stepLifecycle.d.ts.map +1 -0
- package/dist/runtime/stepLifecycle.js +122 -0
- package/dist/runtime/stepLifecycle.js.map +1 -0
- package/dist/runtime/stepMetadata.d.ts +6 -0
- package/dist/runtime/stepMetadata.d.ts.map +1 -0
- package/dist/runtime/stepMetadata.js +87 -0
- package/dist/runtime/stepMetadata.js.map +1 -0
- package/dist/runtime/taskQueue.d.ts +16 -0
- package/dist/runtime/taskQueue.d.ts.map +1 -0
- package/dist/runtime/taskQueue.js +103 -0
- package/dist/runtime/taskQueue.js.map +1 -0
- package/dist/runtime/telemetry.d.ts +6 -0
- package/dist/runtime/telemetry.d.ts.map +1 -0
- package/dist/runtime/telemetry.js +42 -0
- package/dist/runtime/telemetry.js.map +1 -0
- package/dist/runtime/telemetryHub.d.ts +61 -0
- package/dist/runtime/telemetryHub.d.ts.map +1 -0
- package/dist/runtime/telemetryHub.js +190 -0
- package/dist/runtime/telemetryHub.js.map +1 -0
- package/dist/runtime/textSanitizer.d.ts +4 -0
- package/dist/runtime/textSanitizer.d.ts.map +1 -0
- package/dist/runtime/textSanitizer.js +86 -0
- package/dist/runtime/textSanitizer.js.map +1 -0
- package/dist/runtime/typeCheckRunner.d.ts +33 -0
- package/dist/runtime/typeCheckRunner.d.ts.map +1 -0
- package/dist/runtime/typeCheckRunner.js +357 -0
- package/dist/runtime/typeCheckRunner.js.map +1 -0
- package/dist/runtime/types.d.ts +334 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +3 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/typescriptValidator.d.ts +18 -0
- package/dist/runtime/typescriptValidator.d.ts.map +1 -0
- package/dist/runtime/typescriptValidator.js +363 -0
- package/dist/runtime/typescriptValidator.js.map +1 -0
- package/dist/runtime/undoManager.d.ts +7 -0
- package/dist/runtime/undoManager.d.ts.map +1 -0
- package/dist/runtime/undoManager.js +56 -0
- package/dist/runtime/undoManager.js.map +1 -0
- package/dist/runtime/validationController.d.ts +11 -0
- package/dist/runtime/validationController.d.ts.map +1 -0
- package/dist/runtime/validationController.js +29 -0
- package/dist/runtime/validationController.js.map +1 -0
- package/dist/runtime/validationUtils.d.ts +17 -0
- package/dist/runtime/validationUtils.d.ts.map +1 -0
- package/dist/runtime/validationUtils.js +121 -0
- package/dist/runtime/validationUtils.js.map +1 -0
- package/dist/runtime/workspaceAssertions.d.ts +21 -0
- package/dist/runtime/workspaceAssertions.d.ts.map +1 -0
- package/dist/runtime/workspaceAssertions.js +183 -0
- package/dist/runtime/workspaceAssertions.js.map +1 -0
- package/dist/runtime/workspaceIndexService.d.ts +24 -0
- package/dist/runtime/workspaceIndexService.d.ts.map +1 -0
- package/dist/runtime/workspaceIndexService.js +133 -0
- package/dist/runtime/workspaceIndexService.js.map +1 -0
- package/dist/runtime/workspaceIndexer.d.ts +21 -0
- package/dist/runtime/workspaceIndexer.d.ts.map +1 -0
- package/dist/runtime/workspaceIndexer.js +95 -0
- package/dist/runtime/workspaceIndexer.js.map +1 -0
- package/dist/runtime/workspacePackages.d.ts +22 -0
- package/dist/runtime/workspacePackages.d.ts.map +1 -0
- package/dist/runtime/workspacePackages.js +198 -0
- package/dist/runtime/workspacePackages.js.map +1 -0
- package/dist/runtime/workspaceRuntime.d.ts +58 -0
- package/dist/runtime/workspaceRuntime.d.ts.map +1 -0
- package/dist/runtime/workspaceRuntime.js +86 -0
- package/dist/runtime/workspaceRuntime.js.map +1 -0
- package/dist/runtime/workspaceService.d.ts +14 -0
- package/dist/runtime/workspaceService.d.ts.map +1 -0
- package/dist/runtime/workspaceService.js +88 -0
- package/dist/runtime/workspaceService.js.map +1 -0
- package/dist/runtime/workspaceServices.d.ts +114 -0
- package/dist/runtime/workspaceServices.d.ts.map +1 -0
- package/dist/runtime/workspaceServices.js +114 -0
- package/dist/runtime/workspaceServices.js.map +1 -0
- package/dist/runtime/writeServices.d.ts +34 -0
- package/dist/runtime/writeServices.d.ts.map +1 -0
- package/dist/runtime/writeServices.js +32 -0
- package/dist/runtime/writeServices.js.map +1 -0
- package/dist/sharedPromptSections.d.ts +58 -0
- package/dist/sharedPromptSections.d.ts.map +1 -0
- package/dist/sharedPromptSections.js +94 -0
- package/dist/sharedPromptSections.js.map +1 -0
- package/dist/statusTypes.d.ts +13 -0
- package/dist/statusTypes.d.ts.map +1 -0
- package/dist/statusTypes.js +3 -0
- package/dist/statusTypes.js.map +1 -0
- package/dist/streamIdleTimeout.d.ts +38 -0
- package/dist/streamIdleTimeout.d.ts.map +1 -0
- package/dist/streamIdleTimeout.js +44 -0
- package/dist/streamIdleTimeout.js.map +1 -0
- package/dist/types/bandit.d.ts +113 -0
- package/dist/types/bandit.d.ts.map +1 -0
- package/dist/types/bandit.js +3 -0
- package/dist/types/bandit.js.map +1 -0
- package/dist/types.d.ts +152 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/workspaceIndex.d.ts +44 -0
- package/dist/workspaceIndex.d.ts.map +1 -0
- package/dist/workspaceIndex.js +258 -0
- package/dist/workspaceIndex.js.map +1 -0
- 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
|