feat(investigation): preserve cumulative reference graphs
Accumulate investigation paths and preserve failed attempts across rounds. Keep graph annotations separate from execution state, synchronize the API contract, and consolidate documentation.
This commit is contained in:
@@ -530,7 +530,7 @@
|
||||
"progress": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/InvestigationProgress"
|
||||
"$ref": "#/components/schemas/InvestigationProgressInput"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
@@ -3540,6 +3540,21 @@
|
||||
"InvestigationDiagram": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"edges": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/InvestigationGraphEdge"
|
||||
},
|
||||
"maxItems": 200,
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Edges"
|
||||
},
|
||||
"mermaid": {
|
||||
"maxLength": 20000,
|
||||
"minLength": 1,
|
||||
@@ -3554,6 +3569,19 @@
|
||||
"title": "Node Refs",
|
||||
"type": "array"
|
||||
},
|
||||
"source_mermaid": {
|
||||
"anyOf": [
|
||||
{
|
||||
"maxLength": 20000,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Source Mermaid"
|
||||
},
|
||||
"title": {
|
||||
"minLength": 1,
|
||||
"title": "Title",
|
||||
@@ -3578,6 +3606,19 @@
|
||||
"title": "Action Refs",
|
||||
"type": "array"
|
||||
},
|
||||
"detail": {
|
||||
"anyOf": [
|
||||
{
|
||||
"maxLength": 2000,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detail"
|
||||
},
|
||||
"evidence_refs": {
|
||||
"items": {
|
||||
"minLength": 1,
|
||||
@@ -3608,14 +3649,11 @@
|
||||
"anyOf": [
|
||||
{
|
||||
"enum": [
|
||||
"pending",
|
||||
"running",
|
||||
"completed",
|
||||
"waiting",
|
||||
"waiting_human",
|
||||
"reference",
|
||||
"recorded",
|
||||
"needs_input",
|
||||
"failed",
|
||||
"skipped",
|
||||
"cancelled"
|
||||
"not_taken"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
@@ -3623,7 +3661,7 @@
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Evidence-confirmed node state; waiting means prerequisites/external/system result, waiting_human requires manual authorization/approval/feedback. Unknown stays omitted/null; host controls colors.",
|
||||
"description": "A saved process-reference annotation, not live execution state. recorded means a finding exists, not that a task or field action completed.",
|
||||
"title": "Status"
|
||||
}
|
||||
},
|
||||
@@ -3634,6 +3672,153 @@
|
||||
"title": "InvestigationDiagramNodeRef",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationGraphEdge": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"label": {
|
||||
"anyOf": [
|
||||
{
|
||||
"maxLength": 200,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Label"
|
||||
},
|
||||
"source": {
|
||||
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,79}$",
|
||||
"title": "Source",
|
||||
"type": "string"
|
||||
},
|
||||
"target": {
|
||||
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,79}$",
|
||||
"title": "Target",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"source",
|
||||
"target"
|
||||
],
|
||||
"title": "InvestigationGraphEdge",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationGraphNodeUpdate": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"action_refs": {
|
||||
"items": {
|
||||
"format": "uuid",
|
||||
"type": "string"
|
||||
},
|
||||
"title": "Action Refs",
|
||||
"type": "array"
|
||||
},
|
||||
"detail": {
|
||||
"anyOf": [
|
||||
{
|
||||
"maxLength": 2000,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Detail"
|
||||
},
|
||||
"evidence_refs": {
|
||||
"items": {
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"title": "Evidence Refs",
|
||||
"type": "array"
|
||||
},
|
||||
"label": {
|
||||
"minLength": 1,
|
||||
"title": "Label",
|
||||
"type": "string"
|
||||
},
|
||||
"map_targets": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/InvestigationMapTarget"
|
||||
},
|
||||
"maxItems": 100,
|
||||
"title": "Map Targets",
|
||||
"type": "array"
|
||||
},
|
||||
"node_id": {
|
||||
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,79}$",
|
||||
"title": "Node Id",
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"anyOf": [
|
||||
{
|
||||
"enum": [
|
||||
"reference",
|
||||
"recorded",
|
||||
"needs_input",
|
||||
"failed",
|
||||
"not_taken"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Optional reference annotation: reference, recorded finding, needs_input, failed attempt, or not_taken. No live node/task binding or per-step synchronization is required.",
|
||||
"title": "Status"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"node_id",
|
||||
"label"
|
||||
],
|
||||
"title": "InvestigationGraphNodeUpdate",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationGraphUpdate": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"edges": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/InvestigationGraphEdge"
|
||||
},
|
||||
"maxItems": 200,
|
||||
"title": "Edges",
|
||||
"type": "array"
|
||||
},
|
||||
"nodes": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/InvestigationGraphNodeUpdate"
|
||||
},
|
||||
"maxItems": 100,
|
||||
"title": "Nodes",
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"anyOf": [
|
||||
{
|
||||
"maxLength": 200,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"title": "Title"
|
||||
}
|
||||
},
|
||||
"title": "InvestigationGraphUpdate",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationMapTarget": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
@@ -3691,6 +3876,42 @@
|
||||
"title": "InvestigationProgress",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationProgressInput": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"diagram": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/InvestigationDiagram"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"graph_update": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/InvestigationGraphUpdate"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"summary": {
|
||||
"maxLength": 20000,
|
||||
"minLength": 1,
|
||||
"title": "Summary",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"summary"
|
||||
],
|
||||
"title": "InvestigationProgressInput",
|
||||
"type": "object"
|
||||
},
|
||||
"InvestigationProgressSnapshot": {
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user