@tangle-network/agent-eval 0.84.0 → 0.85.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/dist/belief-state/index.d.ts +1 -0
- package/dist/belief-state/index.js +135 -2
- package/dist/belief-state/index.js.map +1 -1
- package/dist/index.d.ts +73 -1
- package/dist/index.js +106 -2
- package/dist/index.js.map +1 -1
- package/dist/openapi.json +1 -1
- package/docs/building-doctrine.md +42 -0
- package/package.json +13 -26
package/dist/index.d.ts
CHANGED
|
@@ -356,6 +356,78 @@ interface ExecutorConfig {
|
|
|
356
356
|
*/
|
|
357
357
|
declare function executeScenario(tc: TCloud, scenario: Scenario, config: ExecutorConfig): Promise<ScenarioResult>;
|
|
358
358
|
|
|
359
|
+
/**
|
|
360
|
+
* Backend preflight: verify the models a campaign is about to spend tokens
|
|
361
|
+
* against are actually served by the router BEFORE the run starts. The PRE-hoc
|
|
362
|
+
* complement to `assertRealBackend` (which inspects RunRecords AFTER the run to
|
|
363
|
+
* catch a stub/unconfigured backend).
|
|
364
|
+
*
|
|
365
|
+
* Two checks, increasing in cost:
|
|
366
|
+
* - membership (free): GET `{baseUrl}/models` once; a model is `listed` when
|
|
367
|
+
* its id is in the served set.
|
|
368
|
+
* - probe (spends a tiny number of tokens): POST `{baseUrl}/chat/completions`
|
|
369
|
+
* per model with a 1-message, 5-token request; `served` is whether the
|
|
370
|
+
* router returns 2xx, with the HTTP `status` and the body's `error.message`
|
|
371
|
+
* captured in `detail`.
|
|
372
|
+
*
|
|
373
|
+
* A default model the router cannot serve is a config bug. Gate a campaign on
|
|
374
|
+
* `assertModelsServed` and it surfaces every dead id with its status + detail
|
|
375
|
+
* instead of silently producing a stub run.
|
|
376
|
+
*/
|
|
377
|
+
|
|
378
|
+
interface ModelPreflight {
|
|
379
|
+
/** The model id as supplied by the caller. */
|
|
380
|
+
model: string;
|
|
381
|
+
/** Membership in the `{baseUrl}/models` served set. */
|
|
382
|
+
listed: boolean;
|
|
383
|
+
/** 2xx on a 1-token chat probe. `null` when `probe` was not requested. */
|
|
384
|
+
served: boolean | null;
|
|
385
|
+
/** HTTP status of the probe. `null` when not probed. */
|
|
386
|
+
status: number | null;
|
|
387
|
+
/** Probe body's `error.message` when present, else `null`. */
|
|
388
|
+
detail: string | null;
|
|
389
|
+
}
|
|
390
|
+
interface PreflightModelsOptions {
|
|
391
|
+
/** Router base URL, e.g. `https://router.tangle.tools/v1`. Trailing slash tolerated. */
|
|
392
|
+
baseUrl: string;
|
|
393
|
+
/** Bearer token sent as `Authorization: Bearer <apiKey>`. */
|
|
394
|
+
apiKey: string;
|
|
395
|
+
/** Model ids to check. */
|
|
396
|
+
models: string[];
|
|
397
|
+
/** When true, additionally spend a 1-token chat probe per model. Default false. */
|
|
398
|
+
probe?: boolean;
|
|
399
|
+
/** Injectable fetch for tests; defaults to the global. */
|
|
400
|
+
fetchImpl?: typeof fetch;
|
|
401
|
+
}
|
|
402
|
+
interface PreflightOutcome {
|
|
403
|
+
succeeded: boolean;
|
|
404
|
+
value: ModelPreflight[] | null;
|
|
405
|
+
error: string | null;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Check that `models` are reachable on the router. Returns a typed outcome —
|
|
409
|
+
* a network failure yields `{ succeeded: false, error }`, never a throw and
|
|
410
|
+
* never a partial result silently reported as success. No retries, no
|
|
411
|
+
* fallbacks.
|
|
412
|
+
*
|
|
413
|
+
* The membership check (one GET) always runs. When `probe` is true, each model
|
|
414
|
+
* additionally gets a 1-token chat probe so a model that is listed but
|
|
415
|
+
* unconfigured (a 401 `model_not_found` from the router) is caught.
|
|
416
|
+
*/
|
|
417
|
+
declare function preflightModels(opts: PreflightModelsOptions): Promise<PreflightOutcome>;
|
|
418
|
+
declare class ModelsUnreachableError extends AgentEvalError {
|
|
419
|
+
readonly results: ReadonlyArray<ModelPreflight>;
|
|
420
|
+
constructor(message: string, results: ReadonlyArray<ModelPreflight>);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Throw `ModelsUnreachableError` naming EVERY model that is unlisted or (when
|
|
424
|
+
* probed) failed its probe — with status + detail per model. A model is dead
|
|
425
|
+
* if it is unlisted, or if `served === false`. Callers gate a campaign on this
|
|
426
|
+
* before spending tokens. When the network call itself fails the underlying
|
|
427
|
+
* outcome error is rethrown — there is no partial silent pass.
|
|
428
|
+
*/
|
|
429
|
+
declare function assertModelsServed(opts: PreflightModelsOptions): Promise<ModelPreflight[]>;
|
|
430
|
+
|
|
359
431
|
/**
|
|
360
432
|
* Single-backend guard: assert the agent and the rubric judge run through the
|
|
361
433
|
* SAME backend config, so the judge can't silently re-route through a
|
|
@@ -4729,4 +4801,4 @@ declare namespace index {
|
|
|
4729
4801
|
export { type index_AgentProfile as AgentProfile, type index_AgentProfileSection as AgentProfileSection, index_BASELINE_ROLES as BASELINE_ROLES, type index_BaselineRoleKey as BaselineRoleKey, type index_ProfileSkill as ProfileSkill, index_applyDomainPatch as applyDomainPatch, index_baselineProfile as baselineProfile, index_baselineProfileFromRole as baselineProfileFromRole, index_engineerRole as engineerRole, index_generalistRole as generalistRole, index_prodProfile as prodProfile, index_profileToSurface as profileToSurface, index_renderProfile as renderProfile, index_researcherRole as researcherRole, index_sectionHash as sectionHash };
|
|
4730
4802
|
}
|
|
4731
4803
|
|
|
4732
|
-
export { type ActiveLearningOptions, type AdapterRun, AgentDriver, type AgentDriverConfig, AgentEvalError, AgentProfile$1 as AgentProfile, type AgreementResult, type AlignmentOp, AnalyzeTracesInput, AnalyzeTracesOptions, AnalyzeTracesResult, type AntiSlopConfig, type AntiSlopIssue, type AntiSlopReport, type AssertCrossFamilyOptions, type AssertSingleBackendOptions, type AutoPrClient, AxGepaSteeringOptimizer, type AxSteeringOptimizerConfig, type BackendDescriptor, BaselineReport, BehaviorAssertion, BenchmarkReport, BenchmarkRunner, BenchmarkRunnerConfig, type BisectOptions, type BisectResult, type BisectStep, BudgetBreachError, BudgetGuard, BudgetLedgerEntry, BudgetSpec, type BuildAgreementJudgeOptions, CallExpectation, type CanaryAlert, type CanaryKind, type CanaryLeak, type CanaryOptions, type CanaryReport, type CanarySeverity, type CandidateScenario, type CausalAttributionReport, type CellVerdict, ChatRequest, CheckResult, CollectedArtifacts, type CommandRunner, type CompareLabels, CompletionCriterion, type ContinuityCheck, type ContinuityCheckResult, type ContinuityReport, type ContinuitySnapshotPair, type ContractMetric, type ContractReport, ConvergenceTracker, type CostEntry, type CostSummary, CostTracker, type CounterfactualContext, type CounterfactualMutation, type CounterfactualResult, type CounterfactualRunner, CreateChatClientOpts, type CreateDefaultReviewerOptions, type CreateSandboxPoolOpts, CrossFamilyError, type CrossTraceDiff, type CrossTraceDiffOptions, DEFAULT_AGENT_SLOS, DEFAULT_FINDERS, DEFAULT_MUTATION_PRIMITIVES, DEFAULT_MUTATORS, DEFAULT_PR_REVIEW_SCORE_WEIGHTS, DEFAULT_SEVERITY_WEIGHTS, Dataset, DatasetScenario, type DecideNextUserTurnOpts, type DeployFamily, type DeployGateLayerInput, type DeployRunResult, type DeployRunner, type DescriptionLengthCandidate, type DescriptionLengthConfig, type DescriptionLengthDecision, type DescriptionLengthEvidence, DescriptionLengthGate, type DescriptionLengthRejectionCode, type DiffScorecardOptions, type DirEntry, type DiscoverPersonasOptions, type DiscoveredPersona, DriverResult, DriverState, DualAgentBench, type DualAgentBenchConfig, type DualAgentReport, type DualAgentRound, type DualAgentScenario, type DualAgentScenarioResult, ERROR_COUNT_PATTERNS, type EnsembleAggregate, type ErrorCountPattern, type EvolutionRound, type ExecutorConfig, type Expectation, type ExportedRewardModel, type ExtractOptions, type ExtractResult, type FactorContribution, type FactorialCell, FeedbackLabel, FeedbackTrajectory, FeedbackTrajectoryStore, type FieldAgreementSpec, type FileChange, type FlowAction, type FlowLayerEnv, type FlowLayerFactoryInput, type FlowRunner, type FlowRunnerStepResult, type FlowSpec, type FlowStep, type GhCliClientOptions, type GoldScenario, type GoldSplit, type GoldenSeverity, type GoldenSpec, HarnessConfig, HoldoutAuditor, type HttpGithubClientOptions, type HypothesisManifest, type HypothesisResult, INTENT_MATCH_JUDGE_VERSION, type ImageData, InMemoryWorkspaceInspector, type InferenceScorer, type InspectorContext, type IntentMatchInput, type IntentMatchOptions, type IntentMatchResult, type InteractionContribution, type JudgeFamily, type JudgeFleetOptions, JudgeFn, type JudgeReplayResult, type JudgeRetryOutcome, type JudgeRetryPolicy, JudgeRunner, type JudgeVerdict, type KeywordConceptSpec, type KeywordCoverageFinding, type KeywordCoverageOptions, type KeywordCoverageResult, type LangfuseEnvelope, type LangfuseGeneration, type LangfuseScore, Layer, LayerResult, type LiveProofArtifact, type LiveProofConfig, type LiveProofContext, type LiveProofResult, LlmClientOptions, LlmSpan, LockedJsonlAppender, MODEL_PRICING, type MatchResult, type MatcherResult, type MergeOptions, MetricsCollector, type MuffledFinder, type MuffledFinding, type MultiToolchainLayerConfig, type Mutator, Mutex, type Oracle, type OracleObservation, type OracleReport, type OracleResult, type OrthogonalityInput, type OrthogonalityResult, OtelExportConfig, OtelExporter, type OtelPipelineHandle, type OtelPipelineOptions, PairwiseSteeringOptimizer, type ParaphraseRobustnessScenarioInput, type ParaphraseRobustnessScenarioResult, type ParseStudentLabel, PersonaConfig, type Playbook, type PlaybookEntry, type PoolSlot, type PrReviewAuditCase, type PrReviewBenchmarkSummary, type PrReviewComment, type PrReviewMatchedFinding, type PrReviewOutcome, type PrReviewReferenceFinding, type PrReviewScore, type PrReviewScoreWeights, type PrReviewSeverity, type PrReviewSource, ProductClient, ProductClientConfig, type PromptHandle, PromptRegistry, type ProposeAutomatedPullRequestInput, type ProposeAutomatedPullRequestResult, type RecordRunsOptions, type ReferenceMatchResult, type ReferenceReplayAdapter, type ReferenceReplayAdapterFn, type ReferenceReplayAdapterLike, type ReferenceReplayAggregate, type ReferenceReplayCandidate, type ReferenceReplayCase, type ReferenceReplayCaseRun, type ReferenceReplayExecutionScenario, type ReferenceReplayItem, type ReferenceReplayMatch, type ReferenceReplayMatchStrategy, type ReferenceReplayMatcher, type ReferenceReplayPromotionDecision, type ReferenceReplayPromotionPolicy, type ReferenceReplayRun, type ReferenceReplayRunContext, type ReferenceReplayRunOptions, type ReferenceReplayRunStore, type ReferenceReplayScenario, type ReferenceReplayScenarioScore, type ReferenceReplayScore, type ReferenceReplayScoreOptions, type ReferenceReplaySplit, type ReferenceReplaySplitComparison, type ReferenceReplaySteeringRowsOptions, type ReflectionContext, type ReflectionProposal, ReleaseConfidenceScorecard, ReleaseConfidenceThresholds, type RenderStudentPrompt, type RepoRef, type ReviewerMemoryEntry, type ReviewerOutput, type ReviewerPromptInput, type ReviewerSoftFailDefaults, type ReviewerVerificationSummary, type RobustnessResult, Run, type RunCommandInput, type RunCommandResult, type RunDistillationOptions, type RunDistillationResult, RunFilter, RunRecord, RunScore, RunScoreWeights, SandboxDriver, SandboxHarnessResult, type SandboxJudgeKind, type SandboxJudgeResult, type SandboxJudgeSpec, type SandboxPool, type ScanOptions, Scenario, type ScenarioCost, ScenarioFile, ScenarioRegistry, ScenarioResult, type Scorecard, type ScorecardCell, type ScorecardCellDiff, type ScorecardDiff, type ScorecardEntry, type ScorecardLogLine, type ScoredTarget, type SelfPlayOptions, type SelfPlayProposer, type SelfPlayScorer, type SeriesConvergenceOptions, type SeriesConvergenceResult, Severity, type SignedManifest, type SignedManifestAlgo, type SingleBackendDivergence, SingleBackendError, type SingleBackendField, type SingleBackendReport, type Slo, type SloCheckResult, type SloComparator, type SloReport, type SloSeverity, type SlopCategory, type SlotFactory, type SplitGoldOptions, SteeringBundle, type SteeringOptimizationResult, type SteeringOptimizationRow, type SteeringOptimizationSelector, type SteeringOptimizerBackend, type SteeringOptimizerConfig, type StepAttribution, type SynthesisReason, type SynthesisTarget, TestResult, type ThresholdContract, TokenCounter, type TokenSpec, TraceEmitter, TraceStore, type TracedAnalystOptions, type TracedJudgeOptions, Trajectory, TrajectoryStep, type TrialTrace, TurnMetrics, UI_FINDING_SEVERITIES, UI_LENSES, UNIVERSAL_FINDERS, type UiFinding, type UiFindingScreenshot, type UiFindingSeverity, type UiLens, VerifyContext, type VisualDiffOptions, type VisualDiffResult, type ViteDeployRunnerInput, type WorkspaceAssertion, type WorkspaceAssertionResult, type WorkspaceInspector, type WorkspaceSnapshot, type WranglerDeployRunnerInput, adversarialJudge, aggregateJudgeVerdicts, aggregatePrReviewScore, analyzeAntiSlop, analyzeSeries, appendScorecard, assertCrossFamily, assertSingleBackend, attributeCounterfactuals, bisect, buildAgreementJudge, buildDriverSystemPrompt, buildReflectionPrompt, buildReviewerPrompt, canaryLeakView, canonicalize, causalAttribution, checkBehavioralCanary, checkCanaries, checkSlos, codeExecutionJudge, coherenceJudge, collectionPreserved, commentsForSource, commitBisect, compareReferenceReplay, compilerJudge, createAntiSlopJudge, createCustomJudge, createDefaultReviewer, createDomainExpertJudge, createIntentMatchJudge, createSandboxPool, crossTraceDiff, dataDescriptionBits, decideNextUserTurn, decideReferenceReplayPromotion, decideReferenceReplayRunPromotion, defaultJudges, defaultParseStudentLabel, defaultReferenceReplayMatcher, defaultRenderStudentPrompt, deployGateLayer, diffScorecard, discoverPersonas, distillPlaybook, estimateCost, estimateTokens, evaluateContract, evaluateHypothesis, evaluateOracles, executeScenario, expectAgent, exportRewardModel, extractAssetUrls, extractErrorCount, fieldAgreement, fileContains, fileExists, findAutoMatchNoExpectation, findConstructorCwdDropped, findFallbackToPass, findLiteralTruePass, findSkipCountsAsPass, flowLayer, formatBenchmarkReport, formatDriverReport, formatFindings, formatScorecardDiff, ghCliClient, precision as goldenPrecision, hashContent, hashJson, htmlContainsElement, httpGithubClient, inMemoryReferenceReplayStore, isModelPriced, isOtelConfigured, jsonShape, jsonlReferenceReplayStore, judgeFamily, keyPreserved, linterJudge, loadGoldScenarios, loadScorecard, loadScorerFromGrader, localCommandRunner, lowercaseMutator, matchGoldens, mergeLayerResults, modelDescriptionBits, multiToolchainLayer, notBlocked, paraphraseRobustness, paraphraseRobustnessScenarios, parseGoldJsonl, parseReflectionResponse, passOrthogonality, pixelDeltaRatio, politenessPrefixMutator, printDriverSummary, index as profile, promptBisect, proposeAutomatedPullRequest, proposeSynthesisTargets, recordRuns, recordRunsToScorecard, referenceReplayRunsToSteeringRows, referenceReplayScenarioToRunScore, regexMatches, renderMarkdownReport, renderPlaybookMarkdown, replayScorerOverCorpus, replayTraceThroughJudge, resetLockedAppendersForTesting, resolveModelPricing, rowCount, rowWhere, runAssertions, runBehavioralCanaries, runCanaries, runCounterfactual, runDistillation, runE2EWorkflow, runExpectations, runIntentMatchJudge, runJudgeFleet, runKeywordCoverageJudge, runKeywordCoverageJudgeUrl, runLiveProof, runReferenceReplay, runSelfPlay, scanForMuffledGates, scoreContinuity, scorePrReviewComments, scorePrReviewSource, scoreReferenceReplay, securityJudge, sentenceReorderMutator, signManifest, splitGold, statusAdvanced, summarizePrReviewBenchmark, testJudge, textInSnapshot, toLangfuseEnvelope, toPrometheusText, traceJudge, traceJudgeEnsemble, tracedAnalyzeTraces, typoMutator, urlContains, verifyManifest, visualDiff, viteDeployRunner, weightedRecall, whitespaceCollapseMutator, withJudgeRetry, withOtelPipeline, wranglerDeployRunner };
|
|
4804
|
+
export { type ActiveLearningOptions, type AdapterRun, AgentDriver, type AgentDriverConfig, AgentEvalError, AgentProfile$1 as AgentProfile, type AgreementResult, type AlignmentOp, AnalyzeTracesInput, AnalyzeTracesOptions, AnalyzeTracesResult, type AntiSlopConfig, type AntiSlopIssue, type AntiSlopReport, type AssertCrossFamilyOptions, type AssertSingleBackendOptions, type AutoPrClient, AxGepaSteeringOptimizer, type AxSteeringOptimizerConfig, type BackendDescriptor, BaselineReport, BehaviorAssertion, BenchmarkReport, BenchmarkRunner, BenchmarkRunnerConfig, type BisectOptions, type BisectResult, type BisectStep, BudgetBreachError, BudgetGuard, BudgetLedgerEntry, BudgetSpec, type BuildAgreementJudgeOptions, CallExpectation, type CanaryAlert, type CanaryKind, type CanaryLeak, type CanaryOptions, type CanaryReport, type CanarySeverity, type CandidateScenario, type CausalAttributionReport, type CellVerdict, ChatRequest, CheckResult, CollectedArtifacts, type CommandRunner, type CompareLabels, CompletionCriterion, type ContinuityCheck, type ContinuityCheckResult, type ContinuityReport, type ContinuitySnapshotPair, type ContractMetric, type ContractReport, ConvergenceTracker, type CostEntry, type CostSummary, CostTracker, type CounterfactualContext, type CounterfactualMutation, type CounterfactualResult, type CounterfactualRunner, CreateChatClientOpts, type CreateDefaultReviewerOptions, type CreateSandboxPoolOpts, CrossFamilyError, type CrossTraceDiff, type CrossTraceDiffOptions, DEFAULT_AGENT_SLOS, DEFAULT_FINDERS, DEFAULT_MUTATION_PRIMITIVES, DEFAULT_MUTATORS, DEFAULT_PR_REVIEW_SCORE_WEIGHTS, DEFAULT_SEVERITY_WEIGHTS, Dataset, DatasetScenario, type DecideNextUserTurnOpts, type DeployFamily, type DeployGateLayerInput, type DeployRunResult, type DeployRunner, type DescriptionLengthCandidate, type DescriptionLengthConfig, type DescriptionLengthDecision, type DescriptionLengthEvidence, DescriptionLengthGate, type DescriptionLengthRejectionCode, type DiffScorecardOptions, type DirEntry, type DiscoverPersonasOptions, type DiscoveredPersona, DriverResult, DriverState, DualAgentBench, type DualAgentBenchConfig, type DualAgentReport, type DualAgentRound, type DualAgentScenario, type DualAgentScenarioResult, ERROR_COUNT_PATTERNS, type EnsembleAggregate, type ErrorCountPattern, type EvolutionRound, type ExecutorConfig, type Expectation, type ExportedRewardModel, type ExtractOptions, type ExtractResult, type FactorContribution, type FactorialCell, FeedbackLabel, FeedbackTrajectory, FeedbackTrajectoryStore, type FieldAgreementSpec, type FileChange, type FlowAction, type FlowLayerEnv, type FlowLayerFactoryInput, type FlowRunner, type FlowRunnerStepResult, type FlowSpec, type FlowStep, type GhCliClientOptions, type GoldScenario, type GoldSplit, type GoldenSeverity, type GoldenSpec, HarnessConfig, HoldoutAuditor, type HttpGithubClientOptions, type HypothesisManifest, type HypothesisResult, INTENT_MATCH_JUDGE_VERSION, type ImageData, InMemoryWorkspaceInspector, type InferenceScorer, type InspectorContext, type IntentMatchInput, type IntentMatchOptions, type IntentMatchResult, type InteractionContribution, type JudgeFamily, type JudgeFleetOptions, JudgeFn, type JudgeReplayResult, type JudgeRetryOutcome, type JudgeRetryPolicy, JudgeRunner, type JudgeVerdict, type KeywordConceptSpec, type KeywordCoverageFinding, type KeywordCoverageOptions, type KeywordCoverageResult, type LangfuseEnvelope, type LangfuseGeneration, type LangfuseScore, Layer, LayerResult, type LiveProofArtifact, type LiveProofConfig, type LiveProofContext, type LiveProofResult, LlmClientOptions, LlmSpan, LockedJsonlAppender, MODEL_PRICING, type MatchResult, type MatcherResult, type MergeOptions, MetricsCollector, type ModelPreflight, ModelsUnreachableError, type MuffledFinder, type MuffledFinding, type MultiToolchainLayerConfig, type Mutator, Mutex, type Oracle, type OracleObservation, type OracleReport, type OracleResult, type OrthogonalityInput, type OrthogonalityResult, OtelExportConfig, OtelExporter, type OtelPipelineHandle, type OtelPipelineOptions, PairwiseSteeringOptimizer, type ParaphraseRobustnessScenarioInput, type ParaphraseRobustnessScenarioResult, type ParseStudentLabel, PersonaConfig, type Playbook, type PlaybookEntry, type PoolSlot, type PrReviewAuditCase, type PrReviewBenchmarkSummary, type PrReviewComment, type PrReviewMatchedFinding, type PrReviewOutcome, type PrReviewReferenceFinding, type PrReviewScore, type PrReviewScoreWeights, type PrReviewSeverity, type PrReviewSource, type PreflightModelsOptions, type PreflightOutcome, ProductClient, ProductClientConfig, type PromptHandle, PromptRegistry, type ProposeAutomatedPullRequestInput, type ProposeAutomatedPullRequestResult, type RecordRunsOptions, type ReferenceMatchResult, type ReferenceReplayAdapter, type ReferenceReplayAdapterFn, type ReferenceReplayAdapterLike, type ReferenceReplayAggregate, type ReferenceReplayCandidate, type ReferenceReplayCase, type ReferenceReplayCaseRun, type ReferenceReplayExecutionScenario, type ReferenceReplayItem, type ReferenceReplayMatch, type ReferenceReplayMatchStrategy, type ReferenceReplayMatcher, type ReferenceReplayPromotionDecision, type ReferenceReplayPromotionPolicy, type ReferenceReplayRun, type ReferenceReplayRunContext, type ReferenceReplayRunOptions, type ReferenceReplayRunStore, type ReferenceReplayScenario, type ReferenceReplayScenarioScore, type ReferenceReplayScore, type ReferenceReplayScoreOptions, type ReferenceReplaySplit, type ReferenceReplaySplitComparison, type ReferenceReplaySteeringRowsOptions, type ReflectionContext, type ReflectionProposal, ReleaseConfidenceScorecard, ReleaseConfidenceThresholds, type RenderStudentPrompt, type RepoRef, type ReviewerMemoryEntry, type ReviewerOutput, type ReviewerPromptInput, type ReviewerSoftFailDefaults, type ReviewerVerificationSummary, type RobustnessResult, Run, type RunCommandInput, type RunCommandResult, type RunDistillationOptions, type RunDistillationResult, RunFilter, RunRecord, RunScore, RunScoreWeights, SandboxDriver, SandboxHarnessResult, type SandboxJudgeKind, type SandboxJudgeResult, type SandboxJudgeSpec, type SandboxPool, type ScanOptions, Scenario, type ScenarioCost, ScenarioFile, ScenarioRegistry, ScenarioResult, type Scorecard, type ScorecardCell, type ScorecardCellDiff, type ScorecardDiff, type ScorecardEntry, type ScorecardLogLine, type ScoredTarget, type SelfPlayOptions, type SelfPlayProposer, type SelfPlayScorer, type SeriesConvergenceOptions, type SeriesConvergenceResult, Severity, type SignedManifest, type SignedManifestAlgo, type SingleBackendDivergence, SingleBackendError, type SingleBackendField, type SingleBackendReport, type Slo, type SloCheckResult, type SloComparator, type SloReport, type SloSeverity, type SlopCategory, type SlotFactory, type SplitGoldOptions, SteeringBundle, type SteeringOptimizationResult, type SteeringOptimizationRow, type SteeringOptimizationSelector, type SteeringOptimizerBackend, type SteeringOptimizerConfig, type StepAttribution, type SynthesisReason, type SynthesisTarget, TestResult, type ThresholdContract, TokenCounter, type TokenSpec, TraceEmitter, TraceStore, type TracedAnalystOptions, type TracedJudgeOptions, Trajectory, TrajectoryStep, type TrialTrace, TurnMetrics, UI_FINDING_SEVERITIES, UI_LENSES, UNIVERSAL_FINDERS, type UiFinding, type UiFindingScreenshot, type UiFindingSeverity, type UiLens, VerifyContext, type VisualDiffOptions, type VisualDiffResult, type ViteDeployRunnerInput, type WorkspaceAssertion, type WorkspaceAssertionResult, type WorkspaceInspector, type WorkspaceSnapshot, type WranglerDeployRunnerInput, adversarialJudge, aggregateJudgeVerdicts, aggregatePrReviewScore, analyzeAntiSlop, analyzeSeries, appendScorecard, assertCrossFamily, assertModelsServed, assertSingleBackend, attributeCounterfactuals, bisect, buildAgreementJudge, buildDriverSystemPrompt, buildReflectionPrompt, buildReviewerPrompt, canaryLeakView, canonicalize, causalAttribution, checkBehavioralCanary, checkCanaries, checkSlos, codeExecutionJudge, coherenceJudge, collectionPreserved, commentsForSource, commitBisect, compareReferenceReplay, compilerJudge, createAntiSlopJudge, createCustomJudge, createDefaultReviewer, createDomainExpertJudge, createIntentMatchJudge, createSandboxPool, crossTraceDiff, dataDescriptionBits, decideNextUserTurn, decideReferenceReplayPromotion, decideReferenceReplayRunPromotion, defaultJudges, defaultParseStudentLabel, defaultReferenceReplayMatcher, defaultRenderStudentPrompt, deployGateLayer, diffScorecard, discoverPersonas, distillPlaybook, estimateCost, estimateTokens, evaluateContract, evaluateHypothesis, evaluateOracles, executeScenario, expectAgent, exportRewardModel, extractAssetUrls, extractErrorCount, fieldAgreement, fileContains, fileExists, findAutoMatchNoExpectation, findConstructorCwdDropped, findFallbackToPass, findLiteralTruePass, findSkipCountsAsPass, flowLayer, formatBenchmarkReport, formatDriverReport, formatFindings, formatScorecardDiff, ghCliClient, precision as goldenPrecision, hashContent, hashJson, htmlContainsElement, httpGithubClient, inMemoryReferenceReplayStore, isModelPriced, isOtelConfigured, jsonShape, jsonlReferenceReplayStore, judgeFamily, keyPreserved, linterJudge, loadGoldScenarios, loadScorecard, loadScorerFromGrader, localCommandRunner, lowercaseMutator, matchGoldens, mergeLayerResults, modelDescriptionBits, multiToolchainLayer, notBlocked, paraphraseRobustness, paraphraseRobustnessScenarios, parseGoldJsonl, parseReflectionResponse, passOrthogonality, pixelDeltaRatio, politenessPrefixMutator, preflightModels, printDriverSummary, index as profile, promptBisect, proposeAutomatedPullRequest, proposeSynthesisTargets, recordRuns, recordRunsToScorecard, referenceReplayRunsToSteeringRows, referenceReplayScenarioToRunScore, regexMatches, renderMarkdownReport, renderPlaybookMarkdown, replayScorerOverCorpus, replayTraceThroughJudge, resetLockedAppendersForTesting, resolveModelPricing, rowCount, rowWhere, runAssertions, runBehavioralCanaries, runCanaries, runCounterfactual, runDistillation, runE2EWorkflow, runExpectations, runIntentMatchJudge, runJudgeFleet, runKeywordCoverageJudge, runKeywordCoverageJudgeUrl, runLiveProof, runReferenceReplay, runSelfPlay, scanForMuffledGates, scoreContinuity, scorePrReviewComments, scorePrReviewSource, scoreReferenceReplay, securityJudge, sentenceReorderMutator, signManifest, splitGold, statusAdvanced, summarizePrReviewBenchmark, testJudge, textInSnapshot, toLangfuseEnvelope, toPrometheusText, traceJudge, traceJudgeEnsemble, tracedAnalyzeTraces, typoMutator, urlContains, verifyManifest, visualDiff, viteDeployRunner, weightedRecall, whitespaceCollapseMutator, withJudgeRetry, withOtelPipeline, wranglerDeployRunner };
|
package/dist/index.js
CHANGED
|
@@ -1751,6 +1751,107 @@ function canonicalize2(value) {
|
|
|
1751
1751
|
return out;
|
|
1752
1752
|
}
|
|
1753
1753
|
|
|
1754
|
+
// src/integrity/preflight.ts
|
|
1755
|
+
function stripSlash(url) {
|
|
1756
|
+
return url.replace(/\/+$/, "");
|
|
1757
|
+
}
|
|
1758
|
+
function errorMessage(body) {
|
|
1759
|
+
if (body == null || typeof body !== "object") return null;
|
|
1760
|
+
const b = body;
|
|
1761
|
+
if (b.error && typeof b.error.message === "string") return b.error.message;
|
|
1762
|
+
if (typeof b.message === "string") return b.message;
|
|
1763
|
+
return null;
|
|
1764
|
+
}
|
|
1765
|
+
async function preflightModels(opts) {
|
|
1766
|
+
const fetchImpl = opts.fetchImpl ?? fetch;
|
|
1767
|
+
const baseUrl = stripSlash(opts.baseUrl);
|
|
1768
|
+
const authHeaders = { authorization: `Bearer ${opts.apiKey}` };
|
|
1769
|
+
let served;
|
|
1770
|
+
try {
|
|
1771
|
+
const res = await fetchImpl(`${baseUrl}/models`, { method: "GET", headers: authHeaders });
|
|
1772
|
+
if (!res.ok) {
|
|
1773
|
+
const text = await res.text().catch(() => "");
|
|
1774
|
+
return {
|
|
1775
|
+
succeeded: false,
|
|
1776
|
+
value: null,
|
|
1777
|
+
error: `preflightModels: GET ${baseUrl}/models \u2192 ${res.status} ${text.slice(0, 400)}`
|
|
1778
|
+
};
|
|
1779
|
+
}
|
|
1780
|
+
const body = await res.json();
|
|
1781
|
+
const ids = Array.isArray(body.data) ? body.data : [];
|
|
1782
|
+
served = new Set(ids.map((m) => m.id).filter((id) => typeof id === "string"));
|
|
1783
|
+
} catch (err) {
|
|
1784
|
+
return {
|
|
1785
|
+
succeeded: false,
|
|
1786
|
+
value: null,
|
|
1787
|
+
error: `preflightModels: GET ${baseUrl}/models failed \u2014 ${err instanceof Error ? err.message : String(err)}`
|
|
1788
|
+
};
|
|
1789
|
+
}
|
|
1790
|
+
const results = [];
|
|
1791
|
+
for (const model of opts.models) {
|
|
1792
|
+
const listed = served.has(model);
|
|
1793
|
+
if (!opts.probe) {
|
|
1794
|
+
results.push({ model, listed, served: null, status: null, detail: null });
|
|
1795
|
+
continue;
|
|
1796
|
+
}
|
|
1797
|
+
try {
|
|
1798
|
+
const res = await fetchImpl(`${baseUrl}/chat/completions`, {
|
|
1799
|
+
method: "POST",
|
|
1800
|
+
headers: { ...authHeaders, "content-type": "application/json" },
|
|
1801
|
+
body: JSON.stringify({
|
|
1802
|
+
model,
|
|
1803
|
+
messages: [{ role: "user", content: "ping" }],
|
|
1804
|
+
max_tokens: 5
|
|
1805
|
+
})
|
|
1806
|
+
});
|
|
1807
|
+
let detail = null;
|
|
1808
|
+
if (!res.ok) {
|
|
1809
|
+
const body = await res.json().catch(() => null);
|
|
1810
|
+
detail = errorMessage(body);
|
|
1811
|
+
}
|
|
1812
|
+
results.push({ model, listed, served: res.ok, status: res.status, detail });
|
|
1813
|
+
} catch (err) {
|
|
1814
|
+
return {
|
|
1815
|
+
succeeded: false,
|
|
1816
|
+
value: null,
|
|
1817
|
+
error: `preflightModels: probe POST ${baseUrl}/chat/completions (model ${model}) failed \u2014 ${err instanceof Error ? err.message : String(err)}`
|
|
1818
|
+
};
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1821
|
+
return { succeeded: true, value: results, error: null };
|
|
1822
|
+
}
|
|
1823
|
+
var ModelsUnreachableError = class extends AgentEvalError {
|
|
1824
|
+
constructor(message, results) {
|
|
1825
|
+
super("config", message);
|
|
1826
|
+
this.results = results;
|
|
1827
|
+
this.name = "ModelsUnreachableError";
|
|
1828
|
+
}
|
|
1829
|
+
results;
|
|
1830
|
+
};
|
|
1831
|
+
function describeFailure(r) {
|
|
1832
|
+
if (!r.listed) {
|
|
1833
|
+
const probeNote = r.served === false ? ` (probe ${r.status}${r.detail ? `: ${r.detail}` : ""})` : "";
|
|
1834
|
+
return `${r.model}: not in /models${probeNote}`;
|
|
1835
|
+
}
|
|
1836
|
+
return `${r.model}: listed but probe ${r.status}${r.detail ? ` \u2014 ${r.detail}` : ""}`;
|
|
1837
|
+
}
|
|
1838
|
+
async function assertModelsServed(opts) {
|
|
1839
|
+
const outcome = await preflightModels(opts);
|
|
1840
|
+
if (!outcome.succeeded || outcome.value === null) {
|
|
1841
|
+
throw new ConfigError(
|
|
1842
|
+
outcome.error ?? "assertModelsServed: preflight failed without an error message"
|
|
1843
|
+
);
|
|
1844
|
+
}
|
|
1845
|
+
const dead = outcome.value.filter((r) => !r.listed || r.served === false);
|
|
1846
|
+
if (dead.length > 0) {
|
|
1847
|
+
throw new ModelsUnreachableError(
|
|
1848
|
+
`assertModelsServed: ${dead.length}/${outcome.value.length} model(s) unreachable on the router \u2014 ${dead.map(describeFailure).join("; ")}`,
|
|
1849
|
+
outcome.value
|
|
1850
|
+
);
|
|
1851
|
+
}
|
|
1852
|
+
return outcome.value;
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1754
1855
|
// src/integrity/single-backend.ts
|
|
1755
1856
|
var SingleBackendError = class extends AgentEvalError {
|
|
1756
1857
|
constructor(message, report) {
|
|
@@ -1760,7 +1861,7 @@ var SingleBackendError = class extends AgentEvalError {
|
|
|
1760
1861
|
}
|
|
1761
1862
|
report;
|
|
1762
1863
|
};
|
|
1763
|
-
function
|
|
1864
|
+
function stripSlash2(url) {
|
|
1764
1865
|
return url.replace(/\/+$/, "");
|
|
1765
1866
|
}
|
|
1766
1867
|
function assertSingleBackend(agent, judge, opts = {}) {
|
|
@@ -1768,7 +1869,7 @@ function assertSingleBackend(agent, judge, opts = {}) {
|
|
|
1768
1869
|
if (agent.kind !== judge.kind) {
|
|
1769
1870
|
divergences.push({ field: "kind", agent: agent.kind, judge: judge.kind });
|
|
1770
1871
|
}
|
|
1771
|
-
if (
|
|
1872
|
+
if (stripSlash2(agent.baseUrl) !== stripSlash2(judge.baseUrl)) {
|
|
1772
1873
|
divergences.push({ field: "baseUrl", agent: agent.baseUrl, judge: judge.baseUrl });
|
|
1773
1874
|
}
|
|
1774
1875
|
if (agent.model !== judge.model) {
|
|
@@ -8462,6 +8563,7 @@ export {
|
|
|
8462
8563
|
LockedJsonlAppender,
|
|
8463
8564
|
MODEL_PRICING,
|
|
8464
8565
|
MetricsCollector,
|
|
8566
|
+
ModelsUnreachableError,
|
|
8465
8567
|
MultiLayerVerifier,
|
|
8466
8568
|
Mutex,
|
|
8467
8569
|
NoopRawProviderSink,
|
|
@@ -8521,6 +8623,7 @@ export {
|
|
|
8521
8623
|
asString,
|
|
8522
8624
|
assertCrossFamily,
|
|
8523
8625
|
assertLlmRoute,
|
|
8626
|
+
assertModelsServed,
|
|
8524
8627
|
assertRealBackend,
|
|
8525
8628
|
assertReleaseConfidence,
|
|
8526
8629
|
assertRunAgentProfileCell,
|
|
@@ -8742,6 +8845,7 @@ export {
|
|
|
8742
8845
|
planTraceInsightQuestions,
|
|
8743
8846
|
politenessPrefixMutator,
|
|
8744
8847
|
positionalBias,
|
|
8848
|
+
preflightModels,
|
|
8745
8849
|
printDriverSummary,
|
|
8746
8850
|
probeLlm,
|
|
8747
8851
|
profile_exports as profile,
|