跳转到内容

评估报告回填:CLI --push 推送落点——报告行插入 + 池条目 evaluation 投影同请求联动(恒显式置 evaluated = 重评完成合法置回径;机械律唯在 admin PUT evaluation 手工回填面,两写面正交);鉴权判定序 = x-tansr-admin-key 在场走 admin 链(ADMIN_OPS,任意 scope 档可回填),否则恒 Bearer+control+org 语境(x-tansr-org,owner/admin)本户/本 org 档限定(platform/他人档 404 不泄露);幂等 = 同 (profileId, reportRef) 重提 200 返回既有行恒不重写条目不重复审计(判重键不含协议);conclusion 是证据不是权力(恒不写 tier);报告行存提交方 reportRef 原文、条目 evaluation.reportRef 指向报告 id(两级引用,平台可解引用);body.protocol 可选 coding|app 缺省 coding——报告行落协议,读面 evaluation.byProtocol 每协议各取最近一次,四键仍为最近一次任一协议;app 协议报告 = bundle adjudicator[s].evidenceFingerprint 数据源(恒指应用协议证据),对 app 报告恒失效 bundle(含相对条目乱序径);写恒审计 adjudicator_pool.evaluation_report(detail.protocol)+ bundle 失效

POST
/v1/adjudicators/{id}/evaluation-report
x-tansr-org
string

Org 作用域声明(org 公开 id);服务端校验成员资格与角色,非成员恒 404、角色不够 403

Media typeapplication/json
object
binding
required

评估绑定键(stage1×stage2 id 串;single-stage 两位同值)

string
>= 1 characters <= 128 characters
mode
required
Any of:
string
Allowed value: two-stage
protocol
Any of:
string
Allowed value: coding
protocolFingerprint
required

评估时点协议指纹(联动条目 evaluation.fingerprint)

string
>= 1 characters <= 64 characters
gatesProfile
required

门矩阵版本(tier-gates-v1 …)

string
>= 1 characters <= 64 characters
conclusion
required
Any of:
string
Allowed value: low
reportRef
required

提交方报告存档引用(CLI 落盘路径/外部 URL;幂等判重键之一)

string
>= 1 characters <= 256 characters
summary

报告摘要体(宽松;harness summary+qualification 两段)

object
evaluatedAt

缺省 = 服务端 now

string format: date-time

幂等命中(同 reportRef 既有行;条目/审计恒不重写)

Media typeapplication/json
object
report
required
object
id
required
string
binding
required
string
mode
required
Any of:
string
Allowed value: two-stage
protocol
required
Any of:
string
Allowed value: coding
protocolFingerprint
required
string
gatesProfile
required
string
conclusion
required
Any of:
string
Allowed value: low
reportRef
required
string
summary
required
Any of:
object
submittedBy
required
string
evaluatedAt
required
string
createdAt
required
string
Example
{
"report": {
"mode": "two-stage",
"protocol": "coding",
"conclusion": "low"
}
}

已回填(首提)

Media typeapplication/json
object
report
required
object
id
required
string
binding
required
string
mode
required
Any of:
string
Allowed value: two-stage
protocol
required
Any of:
string
Allowed value: coding
protocolFingerprint
required
string
gatesProfile
required
string
conclusion
required
Any of:
string
Allowed value: low
reportRef
required
string
summary
required
Any of:
object
submittedBy
required
string
evaluatedAt
required
string
createdAt
required
string
Example
{
"report": {
"mode": "two-stage",
"protocol": "coding",
"conclusion": "low"
}
}

Bad_request(evaluatedAt 非 ISO 8601)

Media typeapplication/json
object
error
required
object
code
required

错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)

string
Allowed values: adjudicator_not_authorized admin_forbidden admin_key_invalid app_disabled app_ip_denied app_key_invalid approval_self_forbidden asr_not_configured asr_quota_exceeded auth_channel_undelivered bad_request conflict content_blocked context_window_exceeded currency_not_supported device_code_denied device_code_expired device_code_pending device_code_slow_down egress_blocked endpoint_disabled envelope_key_undelivered fence_denied forbidden idempotency_conflict idp_untrusted image_not_supported imagegen_not_configured imagegen_quota_exceeded insufficient_balance internal_error invalid_api_key license_required limit_exceeded liquidation_not_enabled model_not_authorized model_not_found nonce_replayed not_found order_state_invalid org_byok_not_available org_ceiling_exceeded otp_invalid otp_rate_limited pay_amount_mismatch pay_channel_undelivered pay_signature_invalid payload_too_large payment_required plan_apps_exceeded plan_concurrency_exceeded plan_end_users_exceeded plan_gate_unavailable plan_members_exceeded plan_required plan_tier_insufficient policy_locked pool_signing_undelivered preflight_required pricing_guard_tripped principal_required protocol_unsupported quota_exceeded rate_limited refund_not_eligible section_not_deliverable session_archived signature_invalid stream_backpressure token_expired tts_not_configured tts_quota_exceeded unauthorized upstream_connect_timeout upstream_disconnected upstream_error upstream_idle_timeout upstream_timeout upstream_total_timeout upstream_ttfb_timeout validation_failed videogen_not_configured videogen_quota_exceeded websearch_not_configured websearch_quota_exceeded
message
required
string
requestId
required
string
detail
object
Example
{
"error": {
"code": "adjudicator_not_authorized"
}
}

Not_found(Bearer 链:platform/他人档恒 404 不泄露;admin 链:条目不存在)

Media typeapplication/json
object
error
required
object
code
required

错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)

string
Allowed values: adjudicator_not_authorized admin_forbidden admin_key_invalid app_disabled app_ip_denied app_key_invalid approval_self_forbidden asr_not_configured asr_quota_exceeded auth_channel_undelivered bad_request conflict content_blocked context_window_exceeded currency_not_supported device_code_denied device_code_expired device_code_pending device_code_slow_down egress_blocked endpoint_disabled envelope_key_undelivered fence_denied forbidden idempotency_conflict idp_untrusted image_not_supported imagegen_not_configured imagegen_quota_exceeded insufficient_balance internal_error invalid_api_key license_required limit_exceeded liquidation_not_enabled model_not_authorized model_not_found nonce_replayed not_found order_state_invalid org_byok_not_available org_ceiling_exceeded otp_invalid otp_rate_limited pay_amount_mismatch pay_channel_undelivered pay_signature_invalid payload_too_large payment_required plan_apps_exceeded plan_concurrency_exceeded plan_end_users_exceeded plan_gate_unavailable plan_members_exceeded plan_required plan_tier_insufficient policy_locked pool_signing_undelivered preflight_required pricing_guard_tripped principal_required protocol_unsupported quota_exceeded rate_limited refund_not_eligible section_not_deliverable session_archived signature_invalid stream_backpressure token_expired tts_not_configured tts_quota_exceeded unauthorized upstream_connect_timeout upstream_disconnected upstream_error upstream_idle_timeout upstream_timeout upstream_total_timeout upstream_ttfb_timeout validation_failed videogen_not_configured videogen_quota_exceeded websearch_not_configured websearch_quota_exceeded
message
required
string
requestId
required
string
detail
object
Example
{
"error": {
"code": "adjudicator_not_authorized"
}
}