Merge pull request 'fix(cognitive): preserve admission JSON fields' (#104) from codex/wp-203-admission-runtime into main
CI / test (push) Successful in 28s
CI / test (push) Successful in 28s
This commit was merged in pull request #104.
This commit is contained in:
@@ -27,10 +27,10 @@ type AdmissionPolicy struct {
|
||||
}
|
||||
|
||||
type AdmissionRequest struct {
|
||||
Complexity AdmissionComplexity
|
||||
InputBytes int
|
||||
MaxOutputBytes int
|
||||
DeadlineMillis int64
|
||||
Complexity AdmissionComplexity `json:"complexity"`
|
||||
InputBytes int `json:"input_bytes"`
|
||||
MaxOutputBytes int `json:"max_output_bytes"`
|
||||
DeadlineMillis int64 `json:"deadline_millis"`
|
||||
}
|
||||
|
||||
type AdmissionCounters struct {
|
||||
@@ -39,14 +39,14 @@ type AdmissionCounters struct {
|
||||
}
|
||||
|
||||
type AdmissionDecision struct {
|
||||
State AdmissionDecisionState
|
||||
Reason AdmissionReason
|
||||
PolicyID string
|
||||
State AdmissionDecisionState `json:"state"`
|
||||
Reason AdmissionReason `json:"reason"`
|
||||
PolicyID string `json:"policy_id"`
|
||||
}
|
||||
|
||||
type AdmissionLease struct {
|
||||
ID string
|
||||
PolicyID string
|
||||
ID string `json:"id"`
|
||||
PolicyID string `json:"policy_id"`
|
||||
}
|
||||
|
||||
func Admit(request AdmissionRequest, policy AdmissionPolicy, counters AdmissionCounters, nowMillis int64) AdmissionDecision {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"task_file": "dev/tasks/DEV-000115-cognitive-admission-control.json",
|
||||
"task_id": "DEV-000115",
|
||||
"task_revision": 2
|
||||
"task_revision": 3
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"task_id": "DEV-000115",
|
||||
"task_revision": 2,
|
||||
"task_revision": 3,
|
||||
"architecture_revision": "ADR-0018",
|
||||
"base_repo_revision": "9b26260",
|
||||
"risk_tier": "E",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package cognitive_admission_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.cin.su/m/Assistant/contracts/capability"
|
||||
@@ -26,6 +28,13 @@ func TestAdmitReturnsExplainableDecision(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestAdmissionRequestUsesStableWireFields(t *testing.T) {
|
||||
raw, err := json.Marshal(capability.AdmissionRequest{Complexity: capability.AdmissionNormal, InputBytes: 10, MaxOutputBytes: 20, DeadlineMillis: 30})
|
||||
if err != nil || !strings.Contains(string(raw), `"input_bytes":10`) || !strings.Contains(string(raw), `"max_output_bytes":20`) || !strings.Contains(string(raw), `"deadline_millis":30`) {
|
||||
t.Fatalf("admission wire shape drifted: %s %v", raw, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAdmitRejectsBudgetAndDeadline(t *testing.T) {
|
||||
policy := capability.AdmissionPolicy{ID: "local-v1", MaxConcurrent: 1, MaxAcceptedPerHour: 1, MaxInputBytes: 10, MaxOutputBytes: 10}
|
||||
if decision := capability.Admit(capability.AdmissionRequest{InputBytes: 11, MaxOutputBytes: 1}, policy, capability.AdmissionCounters{}, 1); decision.Reason != capability.AdmissionReasonInputBudget {
|
||||
|
||||
Reference in New Issue
Block a user