import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface"; import { CreditValidatorInterface } from "../../../common/tokens"; import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service"; import { AssistantAppendDto } from "../../../foundations/assistant/dtos/assistant-append.dto"; import { AssistantPostDto } from "../../../foundations/assistant/dtos/assistant-post.dto"; import { AssistantService } from "../../../foundations/assistant/services/assistant.service"; /** * Standalone HTTP surface for the checkpointed operator engine. * * The operator agent deliberately does NOT piggyback on the assistant * module's endpoints: it owns `POST /operator` and * `POST /operator/:assistantId/assistant-messages`. The persisted resources * are still Assistants / AssistantMessages / AssistantActions, so the * request DTOs and response documents reuse the assistant descriptors. */ export declare class OperatorController { private readonly assistants; private readonly jsonApi; /** * Same seam `AssistantController` uses. The operator engine runs the LLM on * its own routes, so it needs its own gate — the assistant module's gate * covers only the other engine and the frontend picks between them by * `assistant.engine`. */ private readonly creditValidator?; private readonly logger; constructor(assistants: AssistantService, jsonApi: JsonApiService, /** * Same seam `AssistantController` uses. The operator engine runs the LLM on * its own routes, so it needs its own gate — the assistant module's gate * covers only the other engine and the frontend picks between them by * `assistant.engine`. */ creditValidator?: CreditValidatorInterface); /** * POST /operator — create a new assistant thread whose turns run on the * checkpointed operator engine (durable, approval-gated). Response shape * mirrors the assistant `create()` route; when the run froze on a * destructive tool call, the pending `assistant-actions` resource is * included alongside the two messages so the client can render the * approval card immediately. */ create(body: AssistantPostDto, req: AuthenticatedRequest): Promise; /** * POST /operator/:assistantId/assistant-messages — append a user message to * an existing thread and run the turn on the operator engine. Returns the * two new messages as a JSON:API list document (responder-append parity); * a pending approval surfaces the `assistant-actions` resource in `included`. */ append(assistantId: string, body: AssistantAppendDto, req: AuthenticatedRequest): Promise; } //# sourceMappingURL=operator.controller.d.ts.map