Task 008 implement boundary questions loop

This commit is contained in:
2026-05-21 19:46:26 +03:00
parent 8aa92ea728
commit b7e2fa34b2
27 changed files with 1883 additions and 24 deletions
+450
View File
@@ -425,6 +425,13 @@
"title": "Assets",
"type": "array"
},
"boundary_questions": {
"items": {
"$ref": "#/components/schemas/BoundaryQuestionSummary"
},
"title": "Boundary Questions",
"type": "array"
},
"claims": {
"items": {
"$ref": "#/components/schemas/ClaimSummary"
@@ -746,6 +753,134 @@
"title": "AssetType",
"type": "string"
},
"BoundaryQuestionListResponse": {
"additionalProperties": false,
"properties": {
"job": {
"anyOf": [
{
"$ref": "#/components/schemas/AgentJobSummary"
},
{
"type": "null"
}
],
"default": null
},
"questions": {
"items": {
"$ref": "#/components/schemas/BoundaryQuestionSummary"
},
"title": "Questions",
"type": "array"
}
},
"required": [
"questions"
],
"title": "BoundaryQuestionListResponse",
"type": "object"
},
"BoundaryQuestionResponse": {
"additionalProperties": false,
"properties": {
"question": {
"$ref": "#/components/schemas/BoundaryQuestionSummary"
}
},
"required": [
"question"
],
"title": "BoundaryQuestionResponse",
"type": "object"
},
"BoundaryQuestionSummary": {
"additionalProperties": false,
"properties": {
"answer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Answer"
},
"article_id": {
"format": "uuid",
"title": "Article Id",
"type": "string"
},
"category": {
"minLength": 1,
"title": "Category",
"type": "string"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"is_required": {
"default": true,
"title": "Is Required",
"type": "boolean"
},
"question": {
"minLength": 1,
"title": "Question",
"type": "string"
},
"sort_order": {
"minimum": 1,
"title": "Sort Order",
"type": "integer"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"article_id",
"sort_order",
"category",
"question",
"created_at",
"updated_at"
],
"title": "BoundaryQuestionSummary",
"type": "object"
},
"BoundaryQuestionUpdateRequest": {
"additionalProperties": false,
"properties": {
"answer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Answer"
}
},
"title": "BoundaryQuestionUpdateRequest",
"type": "object"
},
"ClaimRiskLevel": {
"enum": [
"low",
@@ -2677,6 +2812,321 @@
]
}
},
"/api/articles/{article_id}/boundary-questions": {
"get": {
"operationId": "get_boundary_questions_api_articles__article_id__boundary_questions_get",
"parameters": [
{
"in": "path",
"name": "article_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Article Id",
"type": "string"
}
},
{
"in": "header",
"name": "X-Demo-User-Email",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Demo-User-Email"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoundaryQuestionListResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Get Boundary Questions",
"tags": [
"boundary-questions"
]
}
},
"/api/articles/{article_id}/boundary-questions/generate": {
"post": {
"operationId": "post_generate_boundary_questions_api_articles__article_id__boundary_questions_generate_post",
"parameters": [
{
"in": "path",
"name": "article_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Article Id",
"type": "string"
}
},
{
"in": "header",
"name": "X-Demo-User-Email",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Demo-User-Email"
}
}
],
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoundaryQuestionListResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Post Generate Boundary Questions",
"tags": [
"boundary-questions"
]
}
},
"/api/articles/{article_id}/boundary-questions/submit": {
"post": {
"operationId": "post_submit_boundary_questions_api_articles__article_id__boundary_questions_submit_post",
"parameters": [
{
"in": "path",
"name": "article_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Article Id",
"type": "string"
}
},
{
"in": "header",
"name": "X-Demo-User-Email",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Demo-User-Email"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArticleCreateResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Post Submit Boundary Questions",
"tags": [
"boundary-questions"
]
}
},
"/api/articles/{article_id}/boundary-questions/{question_id}": {
"patch": {
"operationId": "patch_boundary_question_api_articles__article_id__boundary_questions__question_id__patch",
"parameters": [
{
"in": "path",
"name": "article_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Article Id",
"type": "string"
}
},
{
"in": "path",
"name": "question_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Question Id",
"type": "string"
}
},
{
"in": "header",
"name": "X-Demo-User-Email",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Demo-User-Email"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoundaryQuestionUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoundaryQuestionResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Patch Boundary Question",
"tags": [
"boundary-questions"
]
}
},
"/api/articles/{article_id}/plans/generate": {
"post": {
"operationId": "post_generate_plan_api_articles__article_id__plans_generate_post",
"parameters": [
{
"in": "path",
"name": "article_id",
"required": true,
"schema": {
"format": "uuid",
"title": "Article Id",
"type": "string"
}
},
{
"in": "header",
"name": "X-Demo-User-Email",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "X-Demo-User-Email"
}
}
],
"responses": {
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentJobListResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Post Generate Plan",
"tags": [
"boundary-questions"
]
}
},
"/api/articles/{article_id}/plans/{plan_id}/approve": {
"post": {
"operationId": "approve_plan_api_articles__article_id__plans__plan_id__approve_post",