Admit Qwen local Case model
This commit is contained in:
@@ -40,6 +40,7 @@ REQUIRED_FILES = [
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-PACKET-ISSUES.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-PROVIDER-DECISION-RECORD.md",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.openai-codex-gpt-5.5.json",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json",
|
||||
".sot/03-PROTOCOLS/CTO-CASE-AGENT-PROTOCOL-BLOCKER.md",
|
||||
]
|
||||
|
||||
@@ -423,6 +424,7 @@ REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_IDS = [
|
||||
"CTO-WORK-019",
|
||||
"CTO-WORK-020",
|
||||
"CTO-WORK-027",
|
||||
"CTO-WORK-029",
|
||||
]
|
||||
|
||||
REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_PHRASES = [
|
||||
@@ -480,6 +482,15 @@ REQUIRED_OPENAI_CODEX_ADMISSION_JSON = {
|
||||
"approval_source": "JP chat approval on 2026-05-31",
|
||||
}
|
||||
|
||||
REQUIRED_QWEN_LOCAL_ADMISSION_JSON = {
|
||||
"status": "admitted",
|
||||
"provider": "qwen-local",
|
||||
"model": "qwen3.6-35b-a3b",
|
||||
"credential_source_class": "pi-models-json-local-provider-no-secret",
|
||||
"allowed_network_class": "local-tailscale-vllm-spark1",
|
||||
"approval_source": "JP chat approval on 2026-05-31",
|
||||
}
|
||||
|
||||
REQUIRED_LOCAL_PROVIDER_ROUTE_PRD_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"`CTO-WORK-020` remains blocked until a provider policy decision exists.",
|
||||
@@ -893,6 +904,30 @@ def main() -> int:
|
||||
if key.lower() in {"api_key", "apikey", "access_token", "token", "secret", "password", "credential_value"}:
|
||||
errors.append(f"openai_codex_admission_forbidden_secret_key:{key}")
|
||||
|
||||
qwen_local_admission = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json"
|
||||
if qwen_local_admission.is_file():
|
||||
checked.append("qwen_local_admission_json:parse")
|
||||
try:
|
||||
payload = json.loads(qwen_local_admission.read_text(encoding="utf-8"))
|
||||
except json.JSONDecodeError as exc:
|
||||
errors.append(f"qwen_local_admission_invalid_json:{exc}")
|
||||
payload = {}
|
||||
if not isinstance(payload, dict):
|
||||
errors.append("qwen_local_admission_must_be_object")
|
||||
payload = {}
|
||||
for key, expected in REQUIRED_QWEN_LOCAL_ADMISSION_JSON.items():
|
||||
checked.append(f"qwen_local_admission_json:{key}")
|
||||
if payload.get(key) != expected:
|
||||
errors.append(f"qwen_local_admission_mismatch:{key}:expected_{expected}:actual_{payload.get(key)}")
|
||||
for key in ["admission_timestamp", "review_trigger"]:
|
||||
checked.append(f"qwen_local_admission_json:{key}")
|
||||
if not isinstance(payload.get(key), str) or not payload.get(key):
|
||||
errors.append(f"qwen_local_admission_missing:{key}")
|
||||
for key in payload:
|
||||
checked.append(f"qwen_local_admission_json_secret_key:{key}")
|
||||
if key.lower() in {"api_key", "apikey", "access_token", "token", "secret", "password", "credential_value"}:
|
||||
errors.append(f"qwen_local_admission_forbidden_secret_key:{key}")
|
||||
|
||||
local_provider_route_prd = ROOT / ".sot/03-PROTOCOLS/CTO-CASE-LOCAL-PROVIDER-ROUTE-PRD.md"
|
||||
if local_provider_route_prd.is_file():
|
||||
text = local_provider_route_prd.read_text(encoding="utf-8")
|
||||
@@ -1017,6 +1052,7 @@ def main() -> int:
|
||||
"CTO-WORK-025": "validated",
|
||||
"CTO-WORK-026": "validated",
|
||||
"CTO-WORK-027": "validated",
|
||||
"CTO-WORK-029": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
@@ -1067,6 +1103,8 @@ def main() -> int:
|
||||
errors.append("workboard_missing_provider_decision_record_source")
|
||||
if "CTO-CASE-MODEL-PROVIDER-ADMISSION.openai-codex-gpt-5.5.json" not in text:
|
||||
errors.append("workboard_missing_openai_codex_admission_json_source")
|
||||
if "CTO-CASE-MODEL-PROVIDER-ADMISSION.qwen-local-qwen3.6-35b-a3b.json" not in text:
|
||||
errors.append("workboard_missing_qwen_local_admission_json_source")
|
||||
|
||||
payload = {
|
||||
"ok": not errors,
|
||||
|
||||
Reference in New Issue
Block a user