import type { Finding } from "../checking/types.js"; /** The non-empty name a failed build record ships under (open() ignores it — * the embed's title rides the app-ref — but validateAppDocument requires one). * Collapsed and capped like the pack's fast-return title. */ export declare const fallbackAppName: (prompt: string) => string; /** The two ways assembly comes back with nothing, said the same way wherever the * seam is entered — `vendo_make`'s front door and the public create/edit API are * the same engine now, so they must not grow two vocabularies for one failure. */ export declare const NO_ASSEMBLER = "nothing in this deployment builds screens."; export declare const NOTHING_RENDERABLE = "the build produced nothing renderable."; /** The one capability gap a person can act on, in their terms — no flag name and * no adapter name. An escalation is a request for the box, and a deployment with * no sandbox has no box to give it. Third person: these strings surface as * SYSTEM notices, never in the assistant's voice. */ export declare const NO_MACHINE = "This needs a real build \u2014 code running on a server \u2014 and this deployment has no build machine."; /** What the person is told when the ask became a standing card instead of a * screen. FIRST person, unlike the three above: this one is the assistant's * own sentence on the receipt, and it is the only thing the calling agent is * given to say. No estimate and no cost — the card is a consent question, not * a price quote (make-receipt.ts law 5). * * ONE SHORT SENTENCE, and it points AT the card. The say is what the agent * utters verbatim (make-receipt.ts law 2), and a say that explained the * situation was read as an invitation to explain it further: the model wrote * paragraphs under a card that was already asking the question. The shape is * the instruction — there is nothing here left to expand on. */ export declare const AWAITING_CONSENT = "I've asked for your go-ahead \u2014 the card above has the details."; /** The other terminal landing an OFFERED build has: the person answered the * standing card with no. Same third-person voice as NO_MACHINE — a system * notice — and it never mentions a box, because none was opened. */ export declare const BUILD_DECLINED = "This needed a real build, and it was not approved."; /** The guard already holds this exact yes, so the card the person would answer * has been answered. Lowercase: it is read as a reason, mid-sentence. */ export declare const BUILD_ALREADY_ASKED = "this build has already been asked for."; /** 0.4.5 E2E cert (defect D) — the terminal record the build watchdog writes * when a create neither persisted an app nor a failure inside its window: * the one class the in-band catch cannot cover (a build task that hangs or * dies without ever settling). */ /** One finding as an operator log line. `where` is optional — a check judging the * whole app may have no locus to name — so it is only printed when there is one, * never as the string "undefined". */ export declare const findingLine: (finding: Finding) => string; /** * The commit gate moved. `blockedBy` / `notShipped` and their two lead * paragraphs lived here because the pipeline ran the checking layer INSIDE * create and edit and then refused at this commit path. Both doors are the * screen assembler now, and the assembler's saves land through `authored` * behind the paint seam's own floor (`AppsRuntime.floor`) — which runs for every * author rather than only for apps this package built. Deleted 2026-08-06 with * zero callers; what the person reads on a refusal is the engine's own reason, * verbatim, rather than a lead paragraph wrapped around it. */ export declare const BUILD_WATCHDOG_REASON: string; /** Test seam and operator escape hatch, mirroring turn-liveness: the window a * create has to persist SOMETHING (app or failure) before the watchdog writes * the terminal failed record. Shared with the UI polling cutoff through * @vendoai/core's build-deadlines module (speed-core lane), so the client * always outlasts the watchdog and renders its record instead of the generic * deadline beat. */ export declare const buildWatchdogMs: () => number; /** * Map a generation-turn throw to the short, honest, NON-LEAKY reason persisted * on the failed app record. Only the CANNED reason is ever emitted — the raw * provider message is used solely to classify, never surfaced. * * The engine's stream helper catches provider errors and folds their message * into the `issues` of the terminal `VendoError("validation", "model could not * produce a valid app")`, so the raw 402/AbortError rarely propagates intact: * classify from a raw error when it does (quota/timeout/cloud-required), and * otherwise from the PREFIXED provider lines among the validation issues — * never from the findings beside them — defaulting to a generic generation * failure the user can retry. */ export declare const buildFailureReason: (error: unknown) => { reason: string; retryable: boolean; }; //# sourceMappingURL=build-messages.d.ts.map