Files
resolutionflow/frontend/src/api/scriptBuilder.ts
Michael Chihlas c9306e40c9 feat(pilot): frontend API client — patchScript + inline createSession
sessionSuggestedFixesApi.patchScript(sessionId, fixId, script, params?)
hits the new PATCH /script endpoint.

scriptBuilder.createSession accepts an optional options bag with
origin + aiSessionId, defaulting to standalone when omitted so legacy
callers stay behavior-preserving.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 02:38:07 -04:00

60 lines
1.7 KiB
TypeScript

import { apiClient } from './client'
import type {
ScriptBuilderSessionSummary,
ScriptBuilderSessionDetail,
ScriptBuilderMessageResponse,
SaveToLibraryRequest,
} from '@/types'
import type { ScriptTemplateDetail } from '@/types'
export interface CreateSessionOptions {
origin?: 'standalone' | 'pilot_inline'
aiSessionId?: string
}
export const scriptBuilderApi = {
async createSession(
language: string,
options?: CreateSessionOptions,
): Promise<ScriptBuilderSessionDetail> {
const { data } = await apiClient.post('/scripts/builder/sessions', {
language,
origin: options?.origin,
ai_session_id: options?.aiSessionId,
})
return data
},
async listSessions(limit = 20, offset = 0): Promise<ScriptBuilderSessionSummary[]> {
const { data } = await apiClient.get('/scripts/builder/sessions', {
params: { limit, offset },
})
return data
},
async getSession(sessionId: string): Promise<ScriptBuilderSessionDetail> {
const { data } = await apiClient.get(`/scripts/builder/sessions/${sessionId}`)
return data
},
async sendMessage(sessionId: string, content: string): Promise<ScriptBuilderMessageResponse> {
const { data } = await apiClient.post(
`/scripts/builder/sessions/${sessionId}/messages`,
{ content }
)
return data
},
async deleteSession(sessionId: string): Promise<void> {
await apiClient.delete(`/scripts/builder/sessions/${sessionId}`)
},
async saveToLibrary(sessionId: string, req: SaveToLibraryRequest): Promise<ScriptTemplateDetail> {
const { data } = await apiClient.post(
`/scripts/builder/sessions/${sessionId}/save`,
req
)
return data
},
}