Skip to content
← Public packages

@cameronpak/box

Full Box Public API v1 client: lifecycle, prompts, files, commands, snapshots, environments, webhooks, desktop, hosting, and account.

src/get-prompt-run.ts

33 lines · 906 B · TypeScript
import { assertBoxId, boxRequest, failure, type Result } from './client.ts'
import type { PromptRun } from './types.ts'

export type GetPromptRunInput = {
	boxId: string
	promptId: string
}

export type GetPromptRunOutput = {
	id: string
	promptRun: PromptRun
}

/**
 * Return first-class status for a queued, running, or finished prompt so
 * clients do not infer completion from box state and events.
 */
export default async function getPromptRun(
	input: GetPromptRunInput,
): Promise<Result<GetPromptRunOutput>> {
	const invalid = assertBoxId(input?.boxId)
	if (invalid) return failure<GetPromptRunOutput>(invalid)
	if (!input?.promptId) {
		return failure<GetPromptRunOutput>({
			code: 'invalid_prompt_id',
			message: 'promptId is required.',
			status: 400,
		})
	}
	return boxRequest<GetPromptRunOutput>({
		path: '/boxes/' + input.boxId + '/prompts/' + encodeURIComponent(input.promptId),
	})
}