Studio Approvals
Studio tool approval and question contracts, records, transcript values, and events.
Import from @anvia/studio.
Approval Types
type StudioToolApprovalDecision = {
approved: boolean;
reason?: string;
};
type StudioToolApprovalStatus = "pending" | "approved" | "rejected" | "timed_out";Purpose: Studio-owned approval contracts for HTTP decisions, records, and UI state.
Return behavior: type-only exports.
Notable errors: none directly.
StudioToolApproval
type StudioToolApproval = {
id: string;
runId: string;
agentId: string;
sessionId?: string;
toolName: string;
callId?: string;
internalCallId: string;
args: string;
status: StudioToolApprovalStatus;
requestedAt: string;
resolvedAt?: string;
reason?: string;
};Purpose: persisted approval request/result record for Studio.
Return behavior: returned by approval routes and stream events.
Notable errors: none directly.
Transcript and Stream Events
type StudioToolApprovalTranscript = {
id: string;
status: StudioToolApprovalStatus;
requestedAt: string;
resolvedAt?: string;
reason?: string;
};
type StudioToolApprovalRequestEvent = {
type: "tool_approval_request";
approval: StudioToolApproval;
};
type StudioToolApprovalResultEvent = {
type: "tool_approval_result";
approval: StudioToolApproval;
};Purpose: represent approval state in transcripts and run streams.
Return behavior: events are included in AgentRunStreamEvent.
Notable errors: invalid approval decisions return Studio HTTP errors from approval routes.
Question Types
type StudioToolQuestionChoice = {
label: string;
value: string;
};
type StudioToolQuestionPrompt = {
id: string;
question: string;
choices: StudioToolQuestionChoice[];
};
type StudioToolQuestionAnswer = {
questionId: string;
answer: string;
choice?: string;
custom?: boolean;
};
type StudioToolQuestionStatus = "pending" | "answered";Purpose: represent a human question requested by a tool such as ask_question.
Return behavior: type-only exports used by Studio question records, transcripts, and stream events.
Notable errors: invalid answers return Studio HTTP errors from question routes.
StudioToolQuestion
type StudioToolQuestion = {
id: string;
runId: string;
agentId: string;
sessionId?: string;
toolName: string;
callId?: string;
internalCallId: string;
args: string;
questions: StudioToolQuestionPrompt[];
status: StudioToolQuestionStatus;
requestedAt: string;
answeredAt?: string;
answers?: StudioToolQuestionAnswer[];
};Purpose: persisted question request/result record for Studio.
Return behavior: returned by question routes and stream events.
Notable errors: none directly.
Question Transcript and Stream Events
type StudioToolQuestionTranscript = {
id: string;
status: StudioToolQuestionStatus;
requestedAt: string;
answeredAt?: string;
questions: StudioToolQuestionPrompt[];
answers?: StudioToolQuestionAnswer[];
};
type StudioToolQuestionRequestEvent = {
type: "tool_question_request";
question: StudioToolQuestion;
};
type StudioToolQuestionResultEvent = {
type: "tool_question_result";
question: StudioToolQuestion;
};Purpose: represent pending and answered human questions in transcripts and run streams.
Return behavior: events are included in AgentRunStreamEvent.
Notable errors: unanswered questions keep the run waiting until a Studio answer route resolves them.
