feat: add ingest review flags and Jev scoring
CI / quality (push) Canceled after 0s

This commit is contained in:
vasily committed 2026-10-14 20:35:48 +08:00
1 parent 1c61c7ad04
commit 7b2c43ddaf
18 files changed
+1648 -2

No files matched your search

+505
View File
@@ -1131,6 +1131,249 @@
"title": "HTTPValidationError",
"type": "object"
},
"IngestReviewDecision": {
"additionalProperties": false,
"properties": {
"decision": {
"enum": [
"include",
"exclude",
"defer"
],
"title": "Decision",
"type": "string"
},
"decision_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Decision Id",
"type": "string"
},
"guidance_rule": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"title": "Guidance Rule"
},
"rationale": {
"maxLength": 2000,
"minLength": 1,
"title": "Rationale",
"type": "string"
},
"review_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Review Id",
"type": "string"
},
"save_as_guidance": {
"default": false,
"title": "Save As Guidance",
"type": "boolean"
},
"schema_version": {
"const": 1,
"default": 1,
"title": "Schema Version",
"type": "integer"
}
},
"required": [
"decision_id",
"review_id",
"decision",
"rationale"
],
"title": "IngestReviewDecision",
"type": "object"
},
"IngestReviewItem": {
"additionalProperties": false,
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"excerpt": {
"maxLength": 4000,
"minLength": 1,
"title": "Excerpt",
"type": "string"
},
"extraction_id": {
"pattern": "^[a-f0-9]{64}$",
"title": "Extraction Id",
"type": "string"
},
"jev_lens": {
"anyOf": [
{
"enum": [
"technical",
"conceptual",
"cultural-historical",
"financial-market"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Jev Lens"
},
"jev_lens_confidence": {
"anyOf": [
{
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"title": "Jev Lens Confidence"
},
"jev_model": {
"anyOf": [
{
"maxLength": 100,
"type": "string"
},
{
"type": "null"
}
],
"title": "Jev Model"
},
"jev_relation_probability": {
"anyOf": [
{
"maximum": 1.0,
"minimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"title": "Jev Relation Probability"
},
"lens": {
"enum": [
"technical",
"conceptual",
"cultural-historical",
"financial-market"
],
"title": "Lens",
"type": "string"
},
"locator": {
"$ref": "#/components/schemas/Locator"
},
"project_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Project Id",
"type": "string"
},
"relevance": {
"default": "borderline",
"enum": [
"borderline",
"low"
],
"title": "Relevance",
"type": "string"
},
"relevance_rationale": {
"maxLength": 2000,
"minLength": 1,
"title": "Relevance Rationale",
"type": "string"
},
"review_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Review Id",
"type": "string"
},
"run_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Run Id",
"type": "string"
},
"schema_version": {
"const": 1,
"default": 1,
"title": "Schema Version",
"type": "integer"
},
"source_revision_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Source Revision Id",
"type": "string"
},
"status": {
"default": "needs-user-review",
"enum": [
"needs-user-review",
"included",
"excluded",
"deferred"
],
"title": "Status",
"type": "string"
},
"submitted_by": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Submitted By",
"type": "string"
},
"summary": {
"maxLength": 2000,
"minLength": 1,
"title": "Summary",
"type": "string"
}
},
"required": [
"review_id",
"project_id",
"run_id",
"source_revision_id",
"extraction_id",
"locator",
"excerpt",
"lens",
"summary",
"relevance_rationale",
"submitted_by",
"created_at"
],
"title": "IngestReviewItem",
"type": "object"
},
"IssuedCredential": {
"properties": {
"credential_id": {
@@ -2308,6 +2551,25 @@
"title": "Project Id",
"type": "string"
},
"research_lenses": {
"default": [
"technical",
"conceptual",
"cultural-historical",
"financial-market"
],
"items": {
"enum": [
"technical",
"conceptual",
"cultural-historical",
"financial-market"
],
"type": "string"
},
"title": "Research Lenses",
"type": "array"
},
"schema_version": {
"const": 1,
"default": 1,
@@ -8383,6 +8645,249 @@
]
}
},
"/v1/ingest-reviews": {
"get": {
"operationId": "ingest_review_list",
"parameters": [
{
"in": "query",
"name": "project_id",
"required": true,
"schema": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Project Id",
"type": "string"
}
},
{
"in": "query",
"name": "status",
"required": false,
"schema": {
"anyOf": [
{
"maxLength": 32,
"type": "string"
},
{
"type": "null"
}
],
"default": "needs-user-review",
"title": "Status"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"required": false,
"schema": {
"default": 0,
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
{
"in": "header",
"name": "authorization",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Authorization"
}
},
{
"in": "header",
"name": "X-GEWU-CSRF",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Gewu-Csrf"
}
},
{
"in": "cookie",
"name": "gewu_session",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gewu Session"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/IngestReviewItem"
},
"title": "Response Ingest Review List",
"type": "array"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "List Reviews",
"tags": [
"ingest review"
]
}
},
"/v1/ingest-reviews/{review_id}/decision": {
"post": {
"operationId": "ingest_review_decide",
"parameters": [
{
"in": "path",
"name": "review_id",
"required": true,
"schema": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$",
"title": "Review Id",
"type": "string"
}
},
{
"in": "header",
"name": "authorization",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Authorization"
}
},
{
"in": "header",
"name": "X-GEWU-CSRF",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Gewu-Csrf"
}
},
{
"in": "cookie",
"name": "gewu_session",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gewu Session"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IngestReviewDecision"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"additionalProperties": true,
"title": "Response Ingest Review Decide",
"type": "object"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Decide Review",
"tags": [
"ingest review"
]
}
},
"/v1/me": {
"get": {
"operationId": "account_current",