File size: 1,704 Bytes
abcf568 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 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>
}
|