ManimCat / src /studio-agent /runtime /tools /tool-runtime-context.ts
Bin29's picture
Sync from main: e764154 feat(plot-skill): add math-exam-diagram SKILL.md for exam-style math figures
abcf568
import type {
StudioSession,
StudioPartStore,
StudioMessageStore,
StudioSessionStore,
StudioToolChoice,
StudioToolContext
} from '../../domain/types'
import type { CustomApiConfig } from '../../../types'
import type {
StudioResolvedSkill,
StudioSkillDiscoveryEntry,
StudioSkillUsageSummary
} from '../../skills/schema/skill-types'
export type {
StudioResolvedSkill,
StudioSkillDiscoveryEntry,
StudioSkillUsageSummary
} from '../../skills/schema/skill-types'
export interface StudioSubagentRunRequest {
projectId: string
parentSession: StudioSession
childSession: StudioSession
description: string
inputText: string
subagentType: 'reviewer' | 'designer'
skillName?: string
files?: string[]
customApiConfig?: CustomApiConfig
toolChoice?: StudioToolChoice
}
export interface StudioSubagentRunResult {
text: string
}
export interface StudioToolPermissionRequest {
permission: string
patterns: string[]
metadata?: Record<string, unknown>
always?: string[]
}
export interface StudioRuntimeBackedToolContext extends StudioToolContext {
partStore?: StudioPartStore
messageStore?: StudioMessageStore
sessionStore?: StudioSessionStore
runSubagent?: (input: StudioSubagentRunRequest) => Promise<StudioSubagentRunResult>
resolveSkill?: (name: string, session: StudioSession) => Promise<StudioResolvedSkill>
listSkills?: (session: StudioSession) => Promise<StudioSkillDiscoveryEntry[]>
listSkillSummaries?: (session: StudioSession) => Promise<StudioSkillUsageSummary[]>
recordSkillUsage?: (input: {
session: StudioSession
skillName: string
reason?: string
takeaway?: string
stillRelevant?: boolean
}) => Promise<void>
}