feat(agent): improve investigation contracts and runtime readiness
Generic Container CI/CD / test-build-publish (push) Successful in 1m53s
Agent CI/CD / build-test-publish-and-deploy (push) Successful in 1m53s

This commit is contained in:
2026-11-07 19:43:57 +08:00
parent c7b750b099
commit b8f7edb3ee
29 changed files with 1465 additions and 119 deletions
+195 -3
View File
@@ -2378,6 +2378,23 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/v1/operational-tasks/recovery/reconcile": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Reconcile Task Recoveries */
post: operations["post_operational_tasks_recovery_reconcile"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/operational-tasks/schedules": {
parameters: {
query?: never;
@@ -7490,6 +7507,10 @@ export interface components {
* Format: uuid
*/
execution_request_id: string;
/** Handling Context */
handling_context?: {
[key: string]: components["schemas"]["JsonValue"];
};
latest_plan: components["schemas"]["ExecutionPlanSnapshot"] | null;
latest_progress?: components["schemas"]["InvestigationProgressSnapshot"] | null;
latest_report: components["schemas"]["InvestigationReportRevision"] | null;
@@ -7842,6 +7863,10 @@ export interface components {
* Format: uuid
*/
execution_request_id: string;
/** Handling Context */
handling_context?: {
[key: string]: components["schemas"]["JsonValue"];
};
latest_run?: components["schemas"]["OperationalTaskRun"] | null;
/**
* Lifecycle Status
@@ -8497,8 +8522,42 @@ export interface components {
/** Total */
total: number;
};
/** ScadaMonitoringIncident */
ScadaMonitoringIncident: {
/**
* Action
* @enum {string}
*/
action: "raised" | "ongoing" | "resolved";
/**
* Incident Id
* Format: uuid
*/
incident_id: string;
/**
* Last Observed At
* Format: date-time
*/
last_observed_at: string;
/** Recovery Count */
recovery_count: number;
/**
* Started At
* Format: date-time
*/
started_at: string;
/**
* Status
* @enum {string}
*/
status: "active" | "resolved";
};
/** ScadaMonitoringResult */
ScadaMonitoringResult: {
/** Anomaly Signals */
anomaly_signals?: {
[key: string]: unknown;
}[];
/** Batch Sequence */
batch_sequence: number;
/** Burst Detection */
@@ -8507,6 +8566,7 @@ export interface components {
};
/** Detail */
detail: string;
incident?: components["schemas"]["ScadaMonitoringIncident"] | null;
/**
* Knowledge Cutoff
* Format: date-time
@@ -8546,21 +8606,55 @@ export interface components {
status: "normal" | "attention" | "insufficient_data" | "suspected_burst";
/** Task Id */
task_id?: string | null;
/** Weighted */
weighted?: {
[key: string]: unknown;
} | null;
};
/**
* ScadaMonitoringSettings
* @description Project-owned device roles used by the manual SCADA monitoring demo.
*/
ScadaMonitoringSettings: {
/**
* Alert Threshold
* @default 0.8
*/
alert_threshold: number;
/**
* Decision Policy
* @default weighted
* @enum {string}
*/
decision_policy: "all_signals" | "weighted";
/** Outlet Flow Device Ids */
outlet_flow_device_ids?: string[];
/** Pressure Device Ids */
pressure_device_ids?: string[];
/**
* Rule Version
* @default burst-monitor-v1
* @default burst-monitor-v2
*/
rule_version: string;
weights?: components["schemas"]["ScadaMonitoringWeights"];
};
/** ScadaMonitoringWeights */
ScadaMonitoringWeights: {
/**
* Burst Detection
* @default 0.5
*/
burst_detection: number;
/**
* Outlet Flow
* @default 0.1
*/
outlet_flow: number;
/**
* Pressure
* @default 0.4
*/
pressure: number;
};
/** ScadaQualityRange */
ScadaQualityRange: {
@@ -8627,6 +8721,7 @@ export interface components {
/** Can Write */
can_write: boolean;
current?: components["schemas"]["ScadaReplaySnapshot"] | null;
monitoring_config?: components["schemas"]["ScadaMonitoringSettings"] | null;
/** Monitoring Interval Seconds */
monitoring_interval_seconds?: number | null;
/** Reason */
@@ -8638,7 +8733,9 @@ export interface components {
* Action
* @enum {string}
*/
action: "step" | "stop" | "retry";
action: "step" | "monitor" | "stop" | "retry";
/** At Time */
at_time?: string | null;
/** Expected Revision */
expected_revision: number;
/**
@@ -8784,6 +8881,11 @@ export interface components {
latest: {
[key: string]: unknown;
}[];
/** Monitoring Calibration */
monitoring_calibration?: {
[key: string]: unknown;
} | null;
monitoring_config?: components["schemas"]["ScadaMonitoringSettings"] | null;
/**
* Monitoring Count
* @default 0
@@ -9503,15 +9605,23 @@ export interface components {
series: components["schemas"]["TaskSafeChartSeries"][];
/** Title */
title: string;
/** X Axis Name */
x_axis_name?: string | null;
/** X Data */
x_data: string[];
/** Y Axis Name */
y_axis_name?: string | null;
};
/** TaskSafeChartSeries */
TaskSafeChartSeries: {
/** Data */
data: number[];
data: (number | null)[];
/** Name */
name: string;
/** Sample Times */
sample_times?: (string | null)[] | null;
/** Type */
type?: ("line" | "bar" | "scatter") | null;
};
/** TaskScadaAnalysisItem */
TaskScadaAnalysisItem: {
@@ -21988,6 +22098,88 @@ export interface operations {
};
};
};
post_operational_tasks_recovery_reconcile: {
parameters: {
query?: never;
header: {
"X-Project-Id": string;
};
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RecoverExpiredLeasesCommand"];
};
};
responses: {
/** @description Successful Response */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
[key: string]: number;
};
};
};
/** @description Authentication required */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
/** @description Insufficient permission */
403: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
/** @description Resource not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
/** @description Resource conflict */
409: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
/** @description Validation error */
422: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
/** @description Dependency unavailable */
503: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ProblemDetails"];
};
};
};
};
get_operational_tasks_schedules: {
parameters: {
query?: never;