@dotsetlabs/bellwether 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +291 -0
- package/LICENSE +21 -0
- package/README.md +739 -0
- package/dist/auth/credentials.d.ts +64 -0
- package/dist/auth/credentials.js +218 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/keychain.d.ts +64 -0
- package/dist/auth/keychain.js +268 -0
- package/dist/baseline/ab-testing.d.ts +80 -0
- package/dist/baseline/ab-testing.js +236 -0
- package/dist/baseline/ai-compatibility-scorer.d.ts +95 -0
- package/dist/baseline/ai-compatibility-scorer.js +606 -0
- package/dist/baseline/calibration.d.ts +77 -0
- package/dist/baseline/calibration.js +136 -0
- package/dist/baseline/category-matching.d.ts +85 -0
- package/dist/baseline/category-matching.js +289 -0
- package/dist/baseline/change-impact-analyzer.d.ts +98 -0
- package/dist/baseline/change-impact-analyzer.js +592 -0
- package/dist/baseline/comparator.d.ts +64 -0
- package/dist/baseline/comparator.js +916 -0
- package/dist/baseline/confidence.d.ts +55 -0
- package/dist/baseline/confidence.js +122 -0
- package/dist/baseline/converter.d.ts +61 -0
- package/dist/baseline/converter.js +585 -0
- package/dist/baseline/dependency-analyzer.d.ts +89 -0
- package/dist/baseline/dependency-analyzer.js +567 -0
- package/dist/baseline/deprecation-tracker.d.ts +133 -0
- package/dist/baseline/deprecation-tracker.js +322 -0
- package/dist/baseline/diff.d.ts +55 -0
- package/dist/baseline/diff.js +1584 -0
- package/dist/baseline/documentation-scorer.d.ts +205 -0
- package/dist/baseline/documentation-scorer.js +466 -0
- package/dist/baseline/embeddings.d.ts +118 -0
- package/dist/baseline/embeddings.js +251 -0
- package/dist/baseline/error-analyzer.d.ts +198 -0
- package/dist/baseline/error-analyzer.js +721 -0
- package/dist/baseline/evaluation/evaluator.d.ts +42 -0
- package/dist/baseline/evaluation/evaluator.js +323 -0
- package/dist/baseline/evaluation/expanded-dataset.d.ts +45 -0
- package/dist/baseline/evaluation/expanded-dataset.js +1164 -0
- package/dist/baseline/evaluation/golden-dataset.d.ts +58 -0
- package/dist/baseline/evaluation/golden-dataset.js +717 -0
- package/dist/baseline/evaluation/index.d.ts +15 -0
- package/dist/baseline/evaluation/index.js +15 -0
- package/dist/baseline/evaluation/types.d.ts +186 -0
- package/dist/baseline/evaluation/types.js +8 -0
- package/dist/baseline/external-dependency-detector.d.ts +181 -0
- package/dist/baseline/external-dependency-detector.js +524 -0
- package/dist/baseline/golden-output.d.ts +162 -0
- package/dist/baseline/golden-output.js +636 -0
- package/dist/baseline/health-scorer.d.ts +174 -0
- package/dist/baseline/health-scorer.js +451 -0
- package/dist/baseline/incremental-checker.d.ts +97 -0
- package/dist/baseline/incremental-checker.js +174 -0
- package/dist/baseline/index.d.ts +31 -0
- package/dist/baseline/index.js +42 -0
- package/dist/baseline/migration-generator.d.ts +137 -0
- package/dist/baseline/migration-generator.js +554 -0
- package/dist/baseline/migrations.d.ts +60 -0
- package/dist/baseline/migrations.js +197 -0
- package/dist/baseline/performance-tracker.d.ts +214 -0
- package/dist/baseline/performance-tracker.js +577 -0
- package/dist/baseline/pr-comment-generator.d.ts +117 -0
- package/dist/baseline/pr-comment-generator.js +546 -0
- package/dist/baseline/response-fingerprint.d.ts +127 -0
- package/dist/baseline/response-fingerprint.js +728 -0
- package/dist/baseline/response-schema-tracker.d.ts +129 -0
- package/dist/baseline/response-schema-tracker.js +420 -0
- package/dist/baseline/risk-scorer.d.ts +54 -0
- package/dist/baseline/risk-scorer.js +434 -0
- package/dist/baseline/saver.d.ts +89 -0
- package/dist/baseline/saver.js +554 -0
- package/dist/baseline/scenario-generator.d.ts +151 -0
- package/dist/baseline/scenario-generator.js +905 -0
- package/dist/baseline/schema-compare.d.ts +86 -0
- package/dist/baseline/schema-compare.js +557 -0
- package/dist/baseline/schema-evolution.d.ts +189 -0
- package/dist/baseline/schema-evolution.js +467 -0
- package/dist/baseline/semantic.d.ts +203 -0
- package/dist/baseline/semantic.js +908 -0
- package/dist/baseline/synonyms.d.ts +60 -0
- package/dist/baseline/synonyms.js +386 -0
- package/dist/baseline/telemetry.d.ts +165 -0
- package/dist/baseline/telemetry.js +294 -0
- package/dist/baseline/test-pruner.d.ts +120 -0
- package/dist/baseline/test-pruner.js +387 -0
- package/dist/baseline/types.d.ts +449 -0
- package/dist/baseline/types.js +5 -0
- package/dist/baseline/version.d.ts +138 -0
- package/dist/baseline/version.js +206 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/response-cache.d.ts +151 -0
- package/dist/cache/response-cache.js +287 -0
- package/dist/ci/index.d.ts +60 -0
- package/dist/ci/index.js +342 -0
- package/dist/cli/commands/auth.d.ts +12 -0
- package/dist/cli/commands/auth.js +352 -0
- package/dist/cli/commands/badge.d.ts +3 -0
- package/dist/cli/commands/badge.js +74 -0
- package/dist/cli/commands/baseline-accept.d.ts +15 -0
- package/dist/cli/commands/baseline-accept.js +178 -0
- package/dist/cli/commands/baseline-migrate.d.ts +12 -0
- package/dist/cli/commands/baseline-migrate.js +164 -0
- package/dist/cli/commands/baseline.d.ts +14 -0
- package/dist/cli/commands/baseline.js +449 -0
- package/dist/cli/commands/beta.d.ts +10 -0
- package/dist/cli/commands/beta.js +231 -0
- package/dist/cli/commands/check.d.ts +11 -0
- package/dist/cli/commands/check.js +820 -0
- package/dist/cli/commands/cloud/badge.d.ts +3 -0
- package/dist/cli/commands/cloud/badge.js +74 -0
- package/dist/cli/commands/cloud/diff.d.ts +6 -0
- package/dist/cli/commands/cloud/diff.js +79 -0
- package/dist/cli/commands/cloud/history.d.ts +6 -0
- package/dist/cli/commands/cloud/history.js +102 -0
- package/dist/cli/commands/cloud/link.d.ts +9 -0
- package/dist/cli/commands/cloud/link.js +119 -0
- package/dist/cli/commands/cloud/login.d.ts +7 -0
- package/dist/cli/commands/cloud/login.js +499 -0
- package/dist/cli/commands/cloud/projects.d.ts +6 -0
- package/dist/cli/commands/cloud/projects.js +44 -0
- package/dist/cli/commands/cloud/shared.d.ts +7 -0
- package/dist/cli/commands/cloud/shared.js +42 -0
- package/dist/cli/commands/cloud/teams.d.ts +8 -0
- package/dist/cli/commands/cloud/teams.js +169 -0
- package/dist/cli/commands/cloud/upload.d.ts +8 -0
- package/dist/cli/commands/cloud/upload.js +181 -0
- package/dist/cli/commands/contract.d.ts +11 -0
- package/dist/cli/commands/contract.js +280 -0
- package/dist/cli/commands/discover.d.ts +3 -0
- package/dist/cli/commands/discover.js +82 -0
- package/dist/cli/commands/eval.d.ts +9 -0
- package/dist/cli/commands/eval.js +187 -0
- package/dist/cli/commands/explore.d.ts +11 -0
- package/dist/cli/commands/explore.js +437 -0
- package/dist/cli/commands/feedback.d.ts +9 -0
- package/dist/cli/commands/feedback.js +174 -0
- package/dist/cli/commands/golden.d.ts +12 -0
- package/dist/cli/commands/golden.js +407 -0
- package/dist/cli/commands/history.d.ts +10 -0
- package/dist/cli/commands/history.js +202 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.js +219 -0
- package/dist/cli/commands/interview.d.ts +3 -0
- package/dist/cli/commands/interview.js +903 -0
- package/dist/cli/commands/link.d.ts +10 -0
- package/dist/cli/commands/link.js +169 -0
- package/dist/cli/commands/login.d.ts +7 -0
- package/dist/cli/commands/login.js +499 -0
- package/dist/cli/commands/preset.d.ts +33 -0
- package/dist/cli/commands/preset.js +297 -0
- package/dist/cli/commands/profile.d.ts +33 -0
- package/dist/cli/commands/profile.js +286 -0
- package/dist/cli/commands/registry.d.ts +11 -0
- package/dist/cli/commands/registry.js +146 -0
- package/dist/cli/commands/shared.d.ts +79 -0
- package/dist/cli/commands/shared.js +196 -0
- package/dist/cli/commands/teams.d.ts +8 -0
- package/dist/cli/commands/teams.js +169 -0
- package/dist/cli/commands/test.d.ts +9 -0
- package/dist/cli/commands/test.js +500 -0
- package/dist/cli/commands/upload.d.ts +8 -0
- package/dist/cli/commands/upload.js +223 -0
- package/dist/cli/commands/validate-config.d.ts +6 -0
- package/dist/cli/commands/validate-config.js +35 -0
- package/dist/cli/commands/verify.d.ts +11 -0
- package/dist/cli/commands/verify.js +283 -0
- package/dist/cli/commands/watch.d.ts +12 -0
- package/dist/cli/commands/watch.js +253 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +178 -0
- package/dist/cli/interactive.d.ts +47 -0
- package/dist/cli/interactive.js +216 -0
- package/dist/cli/output/terminal-reporter.d.ts +19 -0
- package/dist/cli/output/terminal-reporter.js +104 -0
- package/dist/cli/output.d.ts +226 -0
- package/dist/cli/output.js +438 -0
- package/dist/cli/utils/env.d.ts +5 -0
- package/dist/cli/utils/env.js +14 -0
- package/dist/cli/utils/progress.d.ts +59 -0
- package/dist/cli/utils/progress.js +206 -0
- package/dist/cli/utils/server-context.d.ts +10 -0
- package/dist/cli/utils/server-context.js +36 -0
- package/dist/cloud/auth.d.ts +144 -0
- package/dist/cloud/auth.js +374 -0
- package/dist/cloud/client.d.ts +24 -0
- package/dist/cloud/client.js +65 -0
- package/dist/cloud/http-client.d.ts +38 -0
- package/dist/cloud/http-client.js +215 -0
- package/dist/cloud/index.d.ts +23 -0
- package/dist/cloud/index.js +25 -0
- package/dist/cloud/mock-client.d.ts +107 -0
- package/dist/cloud/mock-client.js +545 -0
- package/dist/cloud/types.d.ts +515 -0
- package/dist/cloud/types.js +15 -0
- package/dist/config/defaults.d.ts +160 -0
- package/dist/config/defaults.js +169 -0
- package/dist/config/loader.d.ts +24 -0
- package/dist/config/loader.js +122 -0
- package/dist/config/template.d.ts +42 -0
- package/dist/config/template.js +647 -0
- package/dist/config/validator.d.ts +2112 -0
- package/dist/config/validator.js +658 -0
- package/dist/constants/cloud.d.ts +107 -0
- package/dist/constants/cloud.js +110 -0
- package/dist/constants/core.d.ts +521 -0
- package/dist/constants/core.js +556 -0
- package/dist/constants/testing.d.ts +1283 -0
- package/dist/constants/testing.js +1568 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.js +10 -0
- package/dist/contract/index.d.ts +6 -0
- package/dist/contract/index.js +5 -0
- package/dist/contract/validator.d.ts +177 -0
- package/dist/contract/validator.js +574 -0
- package/dist/cost/index.d.ts +6 -0
- package/dist/cost/index.js +5 -0
- package/dist/cost/tracker.d.ts +134 -0
- package/dist/cost/tracker.js +313 -0
- package/dist/discovery/discovery.d.ts +16 -0
- package/dist/discovery/discovery.js +173 -0
- package/dist/discovery/types.d.ts +51 -0
- package/dist/discovery/types.js +2 -0
- package/dist/docs/agents.d.ts +3 -0
- package/dist/docs/agents.js +995 -0
- package/dist/docs/contract.d.ts +51 -0
- package/dist/docs/contract.js +1681 -0
- package/dist/docs/generator.d.ts +4 -0
- package/dist/docs/generator.js +4 -0
- package/dist/docs/html-reporter.d.ts +9 -0
- package/dist/docs/html-reporter.js +757 -0
- package/dist/docs/index.d.ts +10 -0
- package/dist/docs/index.js +11 -0
- package/dist/docs/junit-reporter.d.ts +18 -0
- package/dist/docs/junit-reporter.js +210 -0
- package/dist/docs/report.d.ts +14 -0
- package/dist/docs/report.js +44 -0
- package/dist/docs/sarif-reporter.d.ts +19 -0
- package/dist/docs/sarif-reporter.js +335 -0
- package/dist/docs/shared.d.ts +35 -0
- package/dist/docs/shared.js +162 -0
- package/dist/docs/templates.d.ts +12 -0
- package/dist/docs/templates.js +76 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.js +6 -0
- package/dist/errors/retry.d.ts +92 -0
- package/dist/errors/retry.js +323 -0
- package/dist/errors/types.d.ts +321 -0
- package/dist/errors/types.js +584 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +32 -0
- package/dist/interview/dependency-resolver.d.ts +11 -0
- package/dist/interview/dependency-resolver.js +32 -0
- package/dist/interview/interviewer.d.ts +232 -0
- package/dist/interview/interviewer.js +1939 -0
- package/dist/interview/mock-response-generator.d.ts +7 -0
- package/dist/interview/mock-response-generator.js +102 -0
- package/dist/interview/orchestrator.d.ts +237 -0
- package/dist/interview/orchestrator.js +1296 -0
- package/dist/interview/rate-limiter.d.ts +15 -0
- package/dist/interview/rate-limiter.js +55 -0
- package/dist/interview/response-validator.d.ts +10 -0
- package/dist/interview/response-validator.js +132 -0
- package/dist/interview/schema-inferrer.d.ts +8 -0
- package/dist/interview/schema-inferrer.js +71 -0
- package/dist/interview/schema-test-generator.d.ts +71 -0
- package/dist/interview/schema-test-generator.js +834 -0
- package/dist/interview/smart-value-generator.d.ts +155 -0
- package/dist/interview/smart-value-generator.js +554 -0
- package/dist/interview/stateful-test-runner.d.ts +19 -0
- package/dist/interview/stateful-test-runner.js +106 -0
- package/dist/interview/types.d.ts +561 -0
- package/dist/interview/types.js +2 -0
- package/dist/llm/anthropic.d.ts +41 -0
- package/dist/llm/anthropic.js +355 -0
- package/dist/llm/client.d.ts +123 -0
- package/dist/llm/client.js +42 -0
- package/dist/llm/factory.d.ts +38 -0
- package/dist/llm/factory.js +145 -0
- package/dist/llm/fallback.d.ts +140 -0
- package/dist/llm/fallback.js +379 -0
- package/dist/llm/index.d.ts +18 -0
- package/dist/llm/index.js +15 -0
- package/dist/llm/ollama.d.ts +37 -0
- package/dist/llm/ollama.js +330 -0
- package/dist/llm/openai.d.ts +25 -0
- package/dist/llm/openai.js +320 -0
- package/dist/llm/token-budget.d.ts +161 -0
- package/dist/llm/token-budget.js +395 -0
- package/dist/logging/logger.d.ts +70 -0
- package/dist/logging/logger.js +130 -0
- package/dist/metrics/collector.d.ts +106 -0
- package/dist/metrics/collector.js +547 -0
- package/dist/metrics/index.d.ts +7 -0
- package/dist/metrics/index.js +7 -0
- package/dist/metrics/prometheus.d.ts +20 -0
- package/dist/metrics/prometheus.js +241 -0
- package/dist/metrics/types.d.ts +209 -0
- package/dist/metrics/types.js +5 -0
- package/dist/persona/builtins.d.ts +54 -0
- package/dist/persona/builtins.js +219 -0
- package/dist/persona/index.d.ts +8 -0
- package/dist/persona/index.js +8 -0
- package/dist/persona/loader.d.ts +30 -0
- package/dist/persona/loader.js +190 -0
- package/dist/persona/types.d.ts +144 -0
- package/dist/persona/types.js +5 -0
- package/dist/persona/validation.d.ts +94 -0
- package/dist/persona/validation.js +332 -0
- package/dist/prompts/index.d.ts +5 -0
- package/dist/prompts/index.js +5 -0
- package/dist/prompts/templates.d.ts +180 -0
- package/dist/prompts/templates.js +431 -0
- package/dist/registry/client.d.ts +49 -0
- package/dist/registry/client.js +191 -0
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.js +6 -0
- package/dist/registry/types.d.ts +140 -0
- package/dist/registry/types.js +6 -0
- package/dist/scenarios/evaluator.d.ts +43 -0
- package/dist/scenarios/evaluator.js +206 -0
- package/dist/scenarios/index.d.ts +10 -0
- package/dist/scenarios/index.js +9 -0
- package/dist/scenarios/loader.d.ts +20 -0
- package/dist/scenarios/loader.js +285 -0
- package/dist/scenarios/types.d.ts +153 -0
- package/dist/scenarios/types.js +8 -0
- package/dist/security/index.d.ts +17 -0
- package/dist/security/index.js +18 -0
- package/dist/security/payloads.d.ts +61 -0
- package/dist/security/payloads.js +268 -0
- package/dist/security/security-tester.d.ts +42 -0
- package/dist/security/security-tester.js +582 -0
- package/dist/security/types.d.ts +166 -0
- package/dist/security/types.js +8 -0
- package/dist/transport/base-transport.d.ts +59 -0
- package/dist/transport/base-transport.js +38 -0
- package/dist/transport/http-transport.d.ts +67 -0
- package/dist/transport/http-transport.js +238 -0
- package/dist/transport/mcp-client.d.ts +141 -0
- package/dist/transport/mcp-client.js +496 -0
- package/dist/transport/sse-transport.d.ts +88 -0
- package/dist/transport/sse-transport.js +316 -0
- package/dist/transport/stdio-transport.d.ts +43 -0
- package/dist/transport/stdio-transport.js +238 -0
- package/dist/transport/types.d.ts +125 -0
- package/dist/transport/types.js +16 -0
- package/dist/utils/concurrency.d.ts +123 -0
- package/dist/utils/concurrency.js +213 -0
- package/dist/utils/formatters.d.ts +16 -0
- package/dist/utils/formatters.js +37 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/jsonpath.d.ts +87 -0
- package/dist/utils/jsonpath.js +326 -0
- package/dist/utils/markdown.d.ts +113 -0
- package/dist/utils/markdown.js +265 -0
- package/dist/utils/network.d.ts +14 -0
- package/dist/utils/network.js +17 -0
- package/dist/utils/sanitize.d.ts +92 -0
- package/dist/utils/sanitize.js +191 -0
- package/dist/utils/semantic.d.ts +194 -0
- package/dist/utils/semantic.js +1051 -0
- package/dist/utils/smart-truncate.d.ts +94 -0
- package/dist/utils/smart-truncate.js +361 -0
- package/dist/utils/timeout.d.ts +153 -0
- package/dist/utils/timeout.js +205 -0
- package/dist/utils/yaml-parser.d.ts +58 -0
- package/dist/utils/yaml-parser.js +86 -0
- package/dist/validation/index.d.ts +32 -0
- package/dist/validation/index.js +32 -0
- package/dist/validation/semantic-test-generator.d.ts +50 -0
- package/dist/validation/semantic-test-generator.js +176 -0
- package/dist/validation/semantic-types.d.ts +66 -0
- package/dist/validation/semantic-types.js +94 -0
- package/dist/validation/semantic-validator.d.ts +38 -0
- package/dist/validation/semantic-validator.js +340 -0
- package/dist/verification/index.d.ts +6 -0
- package/dist/verification/index.js +5 -0
- package/dist/verification/types.d.ts +133 -0
- package/dist/verification/types.js +5 -0
- package/dist/verification/verifier.d.ts +30 -0
- package/dist/verification/verifier.js +309 -0
- package/dist/version.d.ts +19 -0
- package/dist/version.js +48 -0
- package/dist/workflow/auto-generator.d.ts +27 -0
- package/dist/workflow/auto-generator.js +513 -0
- package/dist/workflow/discovery.d.ts +40 -0
- package/dist/workflow/discovery.js +195 -0
- package/dist/workflow/executor.d.ts +82 -0
- package/dist/workflow/executor.js +611 -0
- package/dist/workflow/index.d.ts +10 -0
- package/dist/workflow/index.js +10 -0
- package/dist/workflow/loader.d.ts +24 -0
- package/dist/workflow/loader.js +194 -0
- package/dist/workflow/state-tracker.d.ts +98 -0
- package/dist/workflow/state-tracker.js +424 -0
- package/dist/workflow/types.d.ts +337 -0
- package/dist/workflow/types.js +5 -0
- package/package.json +94 -0
- package/schemas/bellwether-check.schema.json +651 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { MCPClient } from '../transport/mcp-client.js';
|
|
2
|
+
import type { DiscoveryResult } from '../discovery/types.js';
|
|
3
|
+
import type { LLMClient } from '../llm/client.js';
|
|
4
|
+
import type { InterviewConfig, InterviewResult, ServerContext } from './types.js';
|
|
5
|
+
import type { Persona } from '../persona/types.js';
|
|
6
|
+
import type { TestScenario, PromptScenario, ScenarioResult } from '../scenarios/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Default interview configuration.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_CONFIG: InterviewConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Default personas to use if none specified.
|
|
13
|
+
* Uses Technical Writer only for a fast, cost-effective default experience.
|
|
14
|
+
* Use --security or --personas to add more personas.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_PERSONAS: Persona[];
|
|
17
|
+
export interface InterviewProgress {
|
|
18
|
+
phase: 'starting' | 'interviewing' | 'prompts' | 'resources' | 'workflows' | 'synthesizing' | 'complete';
|
|
19
|
+
currentTool?: string;
|
|
20
|
+
currentPersona?: string;
|
|
21
|
+
personasCompleted: number;
|
|
22
|
+
totalPersonas: number;
|
|
23
|
+
toolsCompleted: number;
|
|
24
|
+
totalTools: number;
|
|
25
|
+
questionsAsked: number;
|
|
26
|
+
/** Summary for the last completed tool (check mode) */
|
|
27
|
+
lastCompletedTool?: ToolProgressSummary;
|
|
28
|
+
/** Current workflow being executed */
|
|
29
|
+
currentWorkflow?: string;
|
|
30
|
+
/** Number of workflows completed */
|
|
31
|
+
workflowsCompleted?: number;
|
|
32
|
+
/** Total workflows to execute */
|
|
33
|
+
totalWorkflows?: number;
|
|
34
|
+
/** Number of prompts completed */
|
|
35
|
+
promptsCompleted?: number;
|
|
36
|
+
/** Total prompts to interview */
|
|
37
|
+
totalPrompts?: number;
|
|
38
|
+
/** Number of resources completed */
|
|
39
|
+
resourcesCompleted?: number;
|
|
40
|
+
/** Total resources to interview */
|
|
41
|
+
totalResources?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface ToolProgressSummary {
|
|
44
|
+
toolName: string;
|
|
45
|
+
totalTests: number;
|
|
46
|
+
passedTests: number;
|
|
47
|
+
validationTotal: number;
|
|
48
|
+
validationPassed: number;
|
|
49
|
+
avgMs: number;
|
|
50
|
+
skipped?: boolean;
|
|
51
|
+
skipReason?: string;
|
|
52
|
+
mocked?: boolean;
|
|
53
|
+
mockService?: string;
|
|
54
|
+
}
|
|
55
|
+
export type ProgressCallback = (progress: InterviewProgress) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Interviewer conducts the interview process using the orchestrator.
|
|
58
|
+
* Supports streaming output for real-time feedback during LLM operations.
|
|
59
|
+
* Supports parallel persona execution for improved performance.
|
|
60
|
+
* Supports caching tool responses and LLM analysis for efficiency.
|
|
61
|
+
*
|
|
62
|
+
* Two modes of operation:
|
|
63
|
+
* - Check mode: No LLM required, uses fallback questions and simple analysis
|
|
64
|
+
* - Explore mode: LLM required for question generation and behavioral analysis
|
|
65
|
+
*/
|
|
66
|
+
export declare class Interviewer {
|
|
67
|
+
private llm;
|
|
68
|
+
private config;
|
|
69
|
+
private personas;
|
|
70
|
+
private logger;
|
|
71
|
+
private serverContext?;
|
|
72
|
+
private cache?;
|
|
73
|
+
private rateLimiter?;
|
|
74
|
+
private responseSchemas;
|
|
75
|
+
private rateLimitEvents;
|
|
76
|
+
private rateLimitRetries;
|
|
77
|
+
private externalServiceStatuses;
|
|
78
|
+
private skippedTools;
|
|
79
|
+
private mockedTools;
|
|
80
|
+
/**
|
|
81
|
+
* Create an Interviewer for explore mode (LLM-powered behavioral analysis).
|
|
82
|
+
*
|
|
83
|
+
* @param llm - LLM client for question generation and analysis
|
|
84
|
+
* @param config - Interview configuration
|
|
85
|
+
*/
|
|
86
|
+
constructor(llm: LLMClient, config?: Partial<InterviewConfig>);
|
|
87
|
+
/**
|
|
88
|
+
* Create an Interviewer for check mode (no LLM, deterministic).
|
|
89
|
+
*
|
|
90
|
+
* @param llm - null for check mode
|
|
91
|
+
* @param config - Interview configuration (must have checkMode: true)
|
|
92
|
+
*/
|
|
93
|
+
constructor(llm: null, config: Partial<InterviewConfig> & {
|
|
94
|
+
checkMode: true;
|
|
95
|
+
});
|
|
96
|
+
/**
|
|
97
|
+
* Create an orchestrator with streaming and caching enabled if configured.
|
|
98
|
+
* Throws an error if called in check mode since orchestrator requires LLM.
|
|
99
|
+
*/
|
|
100
|
+
private createOrchestrator;
|
|
101
|
+
/**
|
|
102
|
+
* Generate simple analysis for check/fast mode.
|
|
103
|
+
* Avoids LLM calls by providing basic success/error messages.
|
|
104
|
+
*/
|
|
105
|
+
private generateSimpleAnalysis;
|
|
106
|
+
/**
|
|
107
|
+
* Assess whether the tool interaction outcome matched expectations.
|
|
108
|
+
*/
|
|
109
|
+
private assessOutcome;
|
|
110
|
+
/**
|
|
111
|
+
* Infer expected outcome when not explicitly provided.
|
|
112
|
+
*/
|
|
113
|
+
private inferExpectedOutcome;
|
|
114
|
+
private extractErrorMessage;
|
|
115
|
+
private resolveExternalServiceDecision;
|
|
116
|
+
private recordRateLimitEvent;
|
|
117
|
+
private callToolWithPolicies;
|
|
118
|
+
/**
|
|
119
|
+
* Check if we're in fast/check mode (no LLM calls).
|
|
120
|
+
*/
|
|
121
|
+
private isCheckMode;
|
|
122
|
+
/**
|
|
123
|
+
* Extract server context by probing discovery tools.
|
|
124
|
+
* Looks for tools like list_allowed_directories to understand constraints.
|
|
125
|
+
*/
|
|
126
|
+
extractServerContext(client: MCPClient, discovery: DiscoveryResult): Promise<ServerContext>;
|
|
127
|
+
/**
|
|
128
|
+
* Parse allowed directories from tool response text.
|
|
129
|
+
*/
|
|
130
|
+
private parseAllowedDirectories;
|
|
131
|
+
/**
|
|
132
|
+
* Set server context directly (e.g., from CLI arguments).
|
|
133
|
+
*/
|
|
134
|
+
setServerContext(context: ServerContext): void;
|
|
135
|
+
/**
|
|
136
|
+
* Run a complete interview on a connected MCP server.
|
|
137
|
+
* Supports multiple personas - runs each persona's interview and aggregates findings.
|
|
138
|
+
*/
|
|
139
|
+
interview(client: MCPClient, discovery: DiscoveryResult, onProgress?: ProgressCallback): Promise<InterviewResult>;
|
|
140
|
+
/**
|
|
141
|
+
* Classify errors from interactions to separate tool correctness from environment issues.
|
|
142
|
+
*/
|
|
143
|
+
private classifyErrors;
|
|
144
|
+
/**
|
|
145
|
+
* Aggregate findings from multiple personas into a single tool profile.
|
|
146
|
+
*/
|
|
147
|
+
private aggregateFindings;
|
|
148
|
+
/**
|
|
149
|
+
* Execute a tool call with retry logic for recoverable errors.
|
|
150
|
+
* Learns from errors and can update server context based on error messages.
|
|
151
|
+
* Uses caching to avoid redundant tool calls with identical arguments.
|
|
152
|
+
*/
|
|
153
|
+
private executeWithRetry;
|
|
154
|
+
/**
|
|
155
|
+
* Learn server constraints from error messages.
|
|
156
|
+
* Updates server context with discovered restrictions.
|
|
157
|
+
*/
|
|
158
|
+
private learnFromError;
|
|
159
|
+
/**
|
|
160
|
+
* Interview all tools with a single persona.
|
|
161
|
+
* Designed for parallel execution across personas.
|
|
162
|
+
*
|
|
163
|
+
* @param client - MCP client for tool calls
|
|
164
|
+
* @param discovery - Discovery result with available tools
|
|
165
|
+
* @param persona - Persona to use for this interview
|
|
166
|
+
* @param toolCallMutex - Mutex for serializing tool calls (shared resource)
|
|
167
|
+
* @returns PersonaInterviewData with all interactions and findings
|
|
168
|
+
*/
|
|
169
|
+
private interviewPersona;
|
|
170
|
+
/**
|
|
171
|
+
* Aggregate results from parallel persona interviews.
|
|
172
|
+
*/
|
|
173
|
+
private aggregateParallelResults;
|
|
174
|
+
/**
|
|
175
|
+
* Interview a single tool in check mode (parallel-safe).
|
|
176
|
+
* Designed for parallel tool testing with minimal overhead.
|
|
177
|
+
*
|
|
178
|
+
* @param client - MCP client for tool calls
|
|
179
|
+
* @param tool - Tool to test
|
|
180
|
+
* @param toolCallMutex - Mutex for serializing tool calls (shared resource)
|
|
181
|
+
* @returns ToolCheckResult with interactions and stats
|
|
182
|
+
*/
|
|
183
|
+
private interviewToolInCheckMode;
|
|
184
|
+
/**
|
|
185
|
+
* Get fallback questions for a tool without requiring an orchestrator.
|
|
186
|
+
* Used in check mode when parallel tool testing is enabled.
|
|
187
|
+
*
|
|
188
|
+
* Uses the SchemaTestGenerator to produce comprehensive deterministic tests
|
|
189
|
+
* including boundaries, type coercion, enum validation, and error handling.
|
|
190
|
+
*/
|
|
191
|
+
private getFallbackQuestionsForTool;
|
|
192
|
+
/**
|
|
193
|
+
* Run parallel tool testing in check mode.
|
|
194
|
+
* Tests all tools concurrently with a configurable worker limit.
|
|
195
|
+
*
|
|
196
|
+
* @param client - MCP client for tool calls
|
|
197
|
+
* @param tools - Tools to test
|
|
198
|
+
* @param onProgress - Progress callback
|
|
199
|
+
* @returns Aggregated tool profiles
|
|
200
|
+
*/
|
|
201
|
+
private interviewToolsInParallel;
|
|
202
|
+
private buildToolProgressSummary;
|
|
203
|
+
/**
|
|
204
|
+
* Convert a TestScenario to an InterviewQuestion.
|
|
205
|
+
*/
|
|
206
|
+
private scenarioToQuestion;
|
|
207
|
+
/**
|
|
208
|
+
* Get custom scenarios for a specific tool.
|
|
209
|
+
*/
|
|
210
|
+
private getScenariosForTool;
|
|
211
|
+
/**
|
|
212
|
+
* Get custom scenarios for a specific prompt.
|
|
213
|
+
*/
|
|
214
|
+
private getScenariosForPrompt;
|
|
215
|
+
/**
|
|
216
|
+
* Execute custom test scenarios for a tool.
|
|
217
|
+
* Returns scenario results with assertion evaluations.
|
|
218
|
+
*/
|
|
219
|
+
executeToolScenarios(client: MCPClient, toolName: string, scenarios: TestScenario[]): Promise<ScenarioResult[]>;
|
|
220
|
+
/**
|
|
221
|
+
* Execute custom test scenarios for a prompt.
|
|
222
|
+
* Returns scenario results with assertion evaluations.
|
|
223
|
+
*/
|
|
224
|
+
executePromptScenarios(client: MCPClient, promptName: string, scenarios: PromptScenario[]): Promise<ScenarioResult[]>;
|
|
225
|
+
/**
|
|
226
|
+
* Execute workflow discovery and/or execution.
|
|
227
|
+
* Discovers workflows using LLM if enabled, loads from file if provided,
|
|
228
|
+
* and executes all workflows against the MCP server.
|
|
229
|
+
*/
|
|
230
|
+
private executeWorkflows;
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=interviewer.d.ts.map
|