-- Compiled with roblox-ts v2.3.0
local TS = _G[script]
local Modding = TS.import(script, TS.getModule(script, "@flamework", "core").out).Modding
local _services = TS.import(script, TS.getModule(script, "@rbxts", "services"))
local HttpService = _services.HttpService
local ReplicatedStorage = _services.ReplicatedStorage
local revitalizeInput = TS.import(script, script.Parent, "revitalize").revitalizeInput
local function createAiComponent(create, prompt)
	local remote = ReplicatedStorage:FindFirstChild("rotypeuibolt_OpenAI")
	if not remote then
		error("server has not setup OpenAI")
	end
	local aiComponent = create({}, Modding.inspect({ "Frame", {
		BackgroundTransparency = { "field", { "number", 1 } },
		Size = { "field", { "udim2", { "number", 1 }, { "number", 0 }, { "number", 1 }, { "number", 0 } } },
		rendered = { "component", { "variable", "component" } },
	} }))
	aiComponent.effect(function()
		local thread = task.spawn(function()
			local result = HttpService:JSONDecode((remote:InvokeServer(prompt)))
			aiComponent.updateState({
				component = create({}, revitalizeInput(result)),
			})
		end)
		return function()
			return task.cancel(thread)
		end
	end)
	return aiComponent
end
return {
	createAiComponent = createAiComponent,
}
