Approve OpenAI Codex provider decision
This commit is contained in:
+45
-20
@@ -403,7 +403,7 @@ REQUIRED_MODEL_PROVIDER_ADMISSION_PRD_PHRASES = [
|
||||
"`CTO-WORK-020` remains blocked because no real provider/model has been approved and no real Case Stage 2 pass report exists.",
|
||||
"Decision Record Template For CTO-WORK-020",
|
||||
"`decision_status`: `not_decided`, `external_provider_approved`, or `local_provider_required`.",
|
||||
"`provider_class`: `external_anthropic` or `local_case_compatible`.",
|
||||
"`provider_class`: `external_anthropic`, `external_openai_codex`, or `local_case_compatible`.",
|
||||
"`provider`: exact provider string, or empty while blocked.",
|
||||
"`model`: exact model string, or empty while blocked.",
|
||||
"`approval_source`: JP approval reference or governed Core route reference.",
|
||||
@@ -445,7 +445,7 @@ REQUIRED_MODEL_PROVIDER_ADMISSION_ISSUE_PHRASES = [
|
||||
"CTO-WORK-020 Decision Record Template",
|
||||
"This template belongs to `CTO-WORK-020`; it is not a new provider approval.",
|
||||
"`decision_status`: `not_decided`, `external_provider_approved`, or `local_provider_required`.",
|
||||
"`provider_class`: `external_anthropic` or `local_case_compatible`.",
|
||||
"`provider_class`: `external_anthropic`, `external_openai_codex`, or `local_case_compatible`.",
|
||||
"`provider`: exact provider string, or empty while blocked.",
|
||||
"`model`: exact model string, or empty while blocked.",
|
||||
"`approval_source`: JP approval reference or governed Core route reference.",
|
||||
@@ -491,7 +491,6 @@ REQUIRED_LOCAL_PROVIDER_ROUTE_ISSUE_IDS = [
|
||||
|
||||
REQUIRED_LOCAL_PROVIDER_ROUTE_ISSUE_PHRASES = [
|
||||
"Status: validated.",
|
||||
"Status: blocked.",
|
||||
"`decision_status=local_provider_required`",
|
||||
"local_case_compatible",
|
||||
"Uses `CTO-WORK-020` admission JSON gate as authority instead of redefining admission.",
|
||||
@@ -528,6 +527,10 @@ REQUIRED_PROVIDER_DECISION_PACKET_PRD_PHRASES = [
|
||||
"real Case Stage 2 blocked unless a provider/model is admitted and a pass report exists through the Harness Evidence Interface",
|
||||
"no Target Repository path may be inspected or copied",
|
||||
"`provider_class`: `external_anthropic`",
|
||||
"`provider_class`: `external_anthropic` or `external_openai_codex`.",
|
||||
"`openai-codex` with model `gpt-5.5` may be recorded as the primary approved external provider only when the approval source, credential source class, allowed network class, review trigger, and admission JSON are recorded.",
|
||||
"`vllm` with model `qwen3.6-35b-a3b` may be recorded as an explicit fallback only when fallback use is represented in admission evidence and does not hide provider/model switching.",
|
||||
"Packet permits provider class `external_openai_codex` only as a decision branch, not as admission or Stage 2 proof.",
|
||||
"`provider_class`: `local_case_compatible`",
|
||||
"No external fallback to `anthropic` or `claude-sonnet-4-6` is allowed.",
|
||||
"Missing local adapter config blocks before `case_process_started`.",
|
||||
@@ -538,11 +541,11 @@ REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_IDS = [
|
||||
"CTO-WORK-023",
|
||||
"CTO-WORK-024",
|
||||
"CTO-WORK-025",
|
||||
"CTO-WORK-026",
|
||||
]
|
||||
|
||||
REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_PHRASES = [
|
||||
"Status: validated.",
|
||||
"Status: blocked.",
|
||||
"`not_decided` is current safe state",
|
||||
"`external_provider_approved`",
|
||||
"`local_provider_required`",
|
||||
@@ -575,32 +578,53 @@ REQUIRED_PROVIDER_DECISION_PACKET_ISSUE_PHRASES = [
|
||||
"Record keeps `CTO-WORK-024` blocked while `decision_status=not_decided`.",
|
||||
"Record keeps `CTO-WORK-022` blocked unless `decision_status=local_provider_required`.",
|
||||
"Record keeps real Case Stage 2 blocked until admitted provider/model and Harness Evidence Interface pass report exist.",
|
||||
"Status: validated.",
|
||||
"Record JP approval of the external provider decision branch for the current Hermes model stack.",
|
||||
"Decision record has `decision_status`: `external_provider_approved`.",
|
||||
"Decision record has `provider_class`: `external_openai_codex`.",
|
||||
"Decision record has `provider`: `openai-codex`.",
|
||||
"Decision record has `model`: `gpt-5.5`.",
|
||||
"Decision record has `fallback_provider`: `vllm`.",
|
||||
"Decision record has `fallback_model`: `qwen3.6-35b-a3b`.",
|
||||
"Decision record has `credential_source_class`: `hermes-openai-codex-oauth-and-local-vllm-config`; no secret value.",
|
||||
"Decision record has `allowed_network_class`: `codex-oauth-hosted-model-plus-local-vllm-fallback`.",
|
||||
"Decision record references Hermes model policy and local Hermes config as evidence sources without copying secrets.",
|
||||
"Record says `CTO-WORK-024` is resolved by selecting `external_provider_approved`.",
|
||||
"Record keeps `CTO-WORK-020` blocked until admission JSON and real Stage 2 pass evidence exist.",
|
||||
"Record keeps `CTO-WORK-022` blocked because `decision_status=external_provider_approved`, not `local_provider_required`.",
|
||||
"Record requires fallback to `vllm` with `qwen3.6-35b-a3b` to be explicit in admission evidence before it may count as a Case provider/model path.",
|
||||
]
|
||||
|
||||
REQUIRED_PROVIDER_DECISION_RECORD_PHRASES = [
|
||||
"Local planning SOT only. Not a Core Protocol. Not active Core authority.",
|
||||
"`decision_status`: `not_decided`.",
|
||||
"`provider_class`: empty while blocked.",
|
||||
"`provider`: empty while blocked.",
|
||||
"`model`: empty while blocked.",
|
||||
"`approval_source`: empty while blocked.",
|
||||
"`credential_source_class`: empty while blocked; no secret value.",
|
||||
"`allowed_network_class`: empty while blocked.",
|
||||
"`review_trigger`: empty while blocked.",
|
||||
"`decision_status`: `external_provider_approved`.",
|
||||
"`provider_class`: `external_openai_codex`.",
|
||||
"`provider`: `openai-codex`.",
|
||||
"`model`: `gpt-5.5`.",
|
||||
"`fallback_provider`: `vllm`.",
|
||||
"`fallback_model`: `qwen3.6-35b-a3b`.",
|
||||
"`approval_source`: JP chat approval on 2026-05-31.",
|
||||
"`credential_source_class`: `hermes-openai-codex-oauth-and-local-vllm-config`; no secret value.",
|
||||
"`allowed_network_class`: `codex-oauth-hosted-model-plus-local-vllm-fallback`.",
|
||||
"`review_trigger`: before real Case Stage 2 admission JSON is written, before any credential source change, and before any default/fallback model change.",
|
||||
"/home/svrnty/workspaces/hermes/scripts/apply-hermes-model-policy.py",
|
||||
"/home/svrnty/.hermes/config.yaml",
|
||||
"`effect`: `CTO-WORK-020 remains blocked until admitted provider/model and real Stage 2 pass report exist`.",
|
||||
"`external_provider_approved` means JP approved the provider decision branch for the existing Hermes model stack: `openai-codex` with model `gpt-5.5` as primary, and `vllm` with model `qwen3.6-35b-a3b` as fallback.",
|
||||
"This record is not provider/model admission and is not Stage 2 pass evidence.",
|
||||
"`CTO-WORK-024` is resolved by this record selecting `external_provider_approved`.",
|
||||
"Previous state:",
|
||||
"`decision_status`: `not_decided`.",
|
||||
"`not_decided` means no provider/model may run.",
|
||||
"not provider/model admission, not Stage 2 pass evidence, and not approval for external or local provider use",
|
||||
"`CTO-WORK-024` remains blocked because this record does not select `external_provider_approved` or `local_provider_required`.",
|
||||
"Only JP or a governed Core route may change this record away from `not_decided`.",
|
||||
"`external_provider_approved`.",
|
||||
"`local_provider_required`.",
|
||||
"Only JP or a governed Core route may change this record away from `external_provider_approved`.",
|
||||
"Allowed future values remain `external_provider_approved` or `local_provider_required`.",
|
||||
"No secret value may appear in SOT, task file, argv, report, trace, backend logs, generated config, or commit.",
|
||||
"No Target Repository path may be inspected or copied.",
|
||||
"`CTO-WORK-020` remains provider/model admission authority.",
|
||||
"`CTO_HARNESS_CASE_MODEL_ADMISSION_FILE` remains execution admission gate.",
|
||||
"`CTO-WORK-024` remains blocked while `decision_status=not_decided`.",
|
||||
"`CTO-WORK-022` remains blocked unless `decision_status=local_provider_required`.",
|
||||
"`CTO-WORK-022` remains blocked because `decision_status=external_provider_approved`, not `local_provider_required`.",
|
||||
"Real Case Stage 2 remains blocked until admitted provider/model and Harness Evidence Interface pass report exist.",
|
||||
"Fallback to `vllm` with `qwen3.6-35b-a3b` must be explicit in admission evidence before it may count as a Case provider/model path.",
|
||||
"Existing evidence paths and commits are referenced only; runtime evidence is not copied into this record.",
|
||||
]
|
||||
|
||||
@@ -941,8 +965,9 @@ def main() -> int:
|
||||
"CTO-WORK-021": "validated",
|
||||
"CTO-WORK-022": "blocked",
|
||||
"CTO-WORK-023": "validated",
|
||||
"CTO-WORK-024": "blocked",
|
||||
"CTO-WORK-024": "validated",
|
||||
"CTO-WORK-025": "validated",
|
||||
"CTO-WORK-026": "validated",
|
||||
}
|
||||
for issue_id, expected in expected_statuses.items():
|
||||
checked.append(f"workboard_status:{issue_id}:{expected}")
|
||||
|
||||
Reference in New Issue
Block a user