feat(agent): support Responses steering and project-aware tools
Use the dedicated TJWATER_AGENT_URL and Responses stream protocol. Keep running turns active while users steer or queue follow-ups and edit pending delivery. Refresh the model catalog before generation and preserve approval mode selection. Integrate scoped investigation messaging/presentation, geographic place selection, current Agent composer styles and supporting workbench contracts. Validation: 77 focused Vitest checks, 21 browser cases, lint, typecheck and production build. Preserve direct Server/Agent routing and project authentication.
This commit is contained in:
@@ -1,9 +1,18 @@
|
||||
import { z } from "zod";
|
||||
import type { AgentTaskDiscussionContext } from "@/features/agent";
|
||||
|
||||
export type InvestigationDiscussion = { prompt?: string; context?: AgentTaskDiscussionContext };
|
||||
export type InvestigationDiscussion = {
|
||||
prompt?: string;
|
||||
context?: AgentTaskDiscussionContext;
|
||||
// Display metadata from the selected report, never the task's current round.
|
||||
reportGeneration?: number | null;
|
||||
};
|
||||
|
||||
const text = z.string().trim().min(1);
|
||||
export const investigationMapTargetSchema = z.object({
|
||||
source_id: z.enum(["junctions", "pipes", "valves", "pumps", "tanks", "reservoirs", "scada"]),
|
||||
feature_id: text.max(128)
|
||||
}).strict();
|
||||
export const investigationDiagramSchema = z
|
||||
.object({
|
||||
title: text,
|
||||
@@ -23,6 +32,8 @@ export const investigationDiagramSchema = z
|
||||
.object({
|
||||
node_id: z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]{0,79}$/),
|
||||
label: text,
|
||||
status: z.enum(["pending", "running", "completed", "waiting_human", "failed", "skipped", "cancelled"]).nullish(),
|
||||
map_targets: z.array(investigationMapTargetSchema).max(100).optional(),
|
||||
evidence_refs: z.array(text).default([]),
|
||||
action_refs: z.array(z.string().uuid()).default([])
|
||||
})
|
||||
@@ -91,3 +102,4 @@ export const investigationReportSchema = z
|
||||
|
||||
export type InvestigationReport = z.infer<typeof investigationReportSchema>;
|
||||
export type InvestigationDiagram = z.infer<typeof investigationDiagramSchema>;
|
||||
export type InvestigationMapTarget = z.infer<typeof investigationMapTargetSchema>;
|
||||
|
||||
Reference in New Issue
Block a user