This commit is contained in:
team 1
2026-05-02 19:17:59 +02:00
parent 72241c1d00
commit 0fc34f4bc0
8 changed files with 940 additions and 23 deletions

View File

@@ -80,6 +80,131 @@ final class AgentRunnerConfig
return $this->getRequiredString('follow_up_context.reference_anchor.hardness_value_pattern');
}
public function isInputNormalizationEnabled(): bool
{
return $this->getRequiredBool('input_normalization.enabled');
}
public function getInputNormalizationMaxInputChars(): int
{
return $this->getRequiredInt('input_normalization.max_input_chars');
}
public function getInputNormalizationMaxOutputChars(): int
{
return $this->getRequiredInt('input_normalization.max_output_chars');
}
public function getInputNormalizationMaxAddedTokens(): int
{
return $this->getRequiredInt('input_normalization.max_added_tokens');
}
public function getInputNormalizationMaxLengthRatioPercent(): int
{
return $this->getRequiredInt('input_normalization.max_length_ratio_percent');
}
public function getInputNormalizationHeartbeatMessage(): string
{
return $this->getRequiredString('input_normalization.heartbeat_message');
}
public function getInputNormalizationOutputPrefixPattern(): string
{
return $this->getRequiredString('input_normalization.output_prefix_pattern');
}
/**
* @return string[]
*/
public function getInputNormalizationSkipPatterns(): array
{
return $this->getRequiredStringList('input_normalization.skip_patterns');
}
public function getInputNormalizationPrompt(string $prompt): string
{
return $this->implodePromptBlocks([
$this->getInputNormalizationIntro(),
$this->buildRulesBlock($this->getInputNormalizationRules()),
$this->getInputNormalizationOutputFormatBlock(),
$this->getInputNormalizationCurrentUserInputLabel() . ':',
trim($prompt),
]);
}
/**
* @return string[]
*/
public function getInputNormalizationRules(): array
{
return $this->getRequiredStringList('input_normalization.prompt.rules');
}
public function getInputNormalizationIntro(): string
{
return $this->getRequiredString('input_normalization.prompt.intro');
}
public function getInputNormalizationOutputFormatBlock(): string
{
return $this->getRequiredString('input_normalization.prompt.output_format_block');
}
public function getInputNormalizationCurrentUserInputLabel(): string
{
return $this->getRequiredString('input_normalization.prompt.current_user_input_label');
}
public function isInputNormalizationFuzzyRoutingEnabled(): bool
{
return $this->getRequiredBool('input_normalization.fuzzy_routing.enabled');
}
public function getInputNormalizationFuzzyRoutingMinTokenLength(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.min_token_length');
}
public function getInputNormalizationFuzzyRoutingMediumTokenLength(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.medium_token_length');
}
public function getInputNormalizationFuzzyRoutingLongTokenLength(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.long_token_length');
}
public function getInputNormalizationFuzzyRoutingMaxDistanceShort(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.max_distance_short');
}
public function getInputNormalizationFuzzyRoutingMaxDistanceMedium(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.max_distance_medium');
}
public function getInputNormalizationFuzzyRoutingMaxDistanceLong(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.max_distance_long');
}
public function getInputNormalizationFuzzyRoutingMinSimilarityPercent(): int
{
return $this->getRequiredInt('input_normalization.fuzzy_routing.min_similarity_percent');
}
/**
* @return string[]
*/
public function getInputNormalizationFuzzyRoutingTerms(): array
{
return $this->getRequiredStringList('input_normalization.fuzzy_routing.terms');
}
private function getRequiredInt(string $key): int
{
$value = $this->requiredValue($key);