Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
## ADDED Requirements
### Requirement: Resolve Standard Kling Video Capability Separately From Executable Versions
The system SHALL treat standard Kling video capability identifiers separately from the executable version strings required by submit requests.
#### Scenario: Discovered Kling capability is not submitted as executable version directly
- **GIVEN** a provider profile exposes the discovered standard Kling video capability `kling_video`
- **WHEN** the user submits a standard Kling video generation request
- **THEN** the system SHALL route the request through the standard Kling video binding
- **AND** SHALL send the executable version through the request field `model_name`
- **AND** SHALL not assume that `kling_video` itself is a valid executable version string
#### Scenario: Legacy Kling version-style model IDs remain executable
- **GIVEN** an existing task or setting still references a legacy standard Kling model ID such as `kling-v1-6`
- **WHEN** the request is executed through the current runtime
- **THEN** the system SHALL continue to accept that input
- **AND** SHALL interpret it as an explicit `model_name` for the standard Kling binding
- **AND** SHALL keep the request on the standard Kling submit and poll endpoints
### Requirement: Validate Standard Kling Version Choices Against The Selected Action
The system SHALL validate standard Kling executable versions against the selected submit action.
#### Scenario: Text-to-video allows the current standard Kling version set
- **GIVEN** the standard Kling request resolves to `text2video`
- **WHEN** the runtime selects or receives an executable version
- **THEN** the system SHALL allow only the versions supported by the text-to-video endpoint
- **AND** SHALL include `kling-v2-6` in that allowed set when provided by binding metadata
#### Scenario: Image-to-video allows the extended Kling version set
- **GIVEN** the standard Kling request resolves to `image2video`
- **WHEN** the runtime selects or receives an executable version
- **THEN** the system SHALL allow the versions supported by the image-to-video endpoint
- **AND** SHALL include `kling-v2-6` in that allowed set when provided by binding metadata
#### Scenario: Image-to-video still requires a reference image
- **GIVEN** the standard Kling request resolves to `image2video`
- **WHEN** the user submits the request without a reference image
- **THEN** the system SHALL fail validation before submit
- **AND** SHALL not send an invalid image-to-video request to the provider
### Requirement: Exclude Non-Standard Kling O1 Models From Standard Kling Capability Routing
The system SHALL keep `kling-video-o1` style models outside the standard Kling capability routing path.
#### Scenario: O1 model does not reuse standard Kling submit action routing
- **GIVEN** the selected video model is `kling-video-o1` or `kling-video-o1-edit`
- **WHEN** the runtime resolves provider protocol bindings
- **THEN** the system SHALL not treat that model as the standard `kling_video` capability
- **AND** SHALL not force it through the standard `/kling/v1/videos/{action}` routing and version validation rules
### Requirement: Enforce Standard Kling Numeric Parameter Constraints Before Submit
The system SHALL enforce the documented numeric constraints for standard Kling video requests before submit.
#### Scenario: cfg_scale stays within the documented range
- **GIVEN** a standard Kling request includes `cfg_scale`
- **WHEN** the request is prepared for submit
- **THEN** the system SHALL accept only values in the inclusive range `[0, 1]`
- **AND** SHALL fail validation before submit when the value falls outside that range
#### Scenario: camera_control uses bounded integer values
- **GIVEN** a standard Kling text-to-video request includes `camera_control` values through flat params or a nested `camera_control` object
- **WHEN** the request is prepared for submit
- **THEN** the system SHALL accept only integer values in the inclusive range `[-10, 10]` for `horizontal`, `vertical`, `pan`, `tilt`, `roll`, and `zoom`
- **AND** SHALL fail validation before submit when any of those values is non-integer or out of range