/** * `AppRow` — the stored app row, one definition. * * The row was declared five times: the store's DB projection * (`store/src/helpers/types.ts`), the automations engine's read shape * (`automations/src/types.ts`, with its own zod), the persistence layer's * `AppRowData`, a structural alias in `write-surface.ts`, and a narrower mirror * in the umbrella's sync reader. They agreed by luck, not by construction. * * The document alone is NOT the row: ownership (`subject`) and the automations * arm/disarm bit (`enabled`) ride beside it, and the store adds identity and * write bookkeeping around both. */ import { type AppDocument, type AppId, type IsoDateTime } from "@vendoai/core"; import { z } from "zod"; /** 02-store §3 — the whole row as a store hands it back. */ export interface AppRow { id: AppId; subject: string; enabled: boolean; doc: AppDocument; createdAt: IsoDateTime; updatedAt: IsoDateTime; /** Opaque write counter backing the routed atomic capability (01 §12); bumped * on every write. Wave 7 — arbitration for the machine lifecycle and the * schedule engine's fire claims (updateAppRow's read-mutate-CAS). */ revision?: string; } /** * The half of the row a `VendoRecord` CARRIES — everything the writer supplies. * `id` is the record's own id and the timestamps and `revision` are the store's * bookkeeping, so a generic `StoreAdapter` never sees them in `data`. */ export type AppData = Pick; /** The parse of a stored row's `data`. Named for the row it belongs to; it * covers {@link AppData} because that is the part anyone writes. */ export declare const appRowSchema: z.ZodObject<{ subject: z.ZodString; enabled: z.ZodBoolean; doc: z.ZodObject<{ format: z.ZodLiteral<"vendo/app@1">; id: z.ZodString; name: z.ZodString; description: z.ZodOptional; ui: z.ZodOptional>; components: z.ZodOptional>>; componentTools: z.ZodOptional>>; source: z.ZodOptional; blobRef: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>>; bundle: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; automations: z.ZodOptional>; egress: z.ZodOptional>; egressApproved: z.ZodOptional>; secrets: z.ZodOptional>; seed: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, { wishes: string[]; component: string; baseline: string; port?: string | undefined; unapplied?: string[] | undefined; props?: Record | undefined; slot?: string | undefined; }, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; forkedFrom: z.ZodOptional; buildFailed: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; building: z.ZodOptional; buildStatus: z.ZodOptional; proposal: z.ZodOptional, z.objectInputType<{ approvalId: z.ZodString; prompt: z.ZodString; why: z.ZodString; at: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; memory: z.ZodOptional; decisions: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ format: z.ZodLiteral<"vendo/app@1">; id: z.ZodString; name: z.ZodString; description: z.ZodOptional; ui: z.ZodOptional>; components: z.ZodOptional>>; componentTools: z.ZodOptional>>; source: z.ZodOptional; blobRef: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>>; bundle: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; automations: z.ZodOptional>; egress: z.ZodOptional>; egressApproved: z.ZodOptional>; secrets: z.ZodOptional>; seed: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, { wishes: string[]; component: string; baseline: string; port?: string | undefined; unapplied?: string[] | undefined; props?: Record | undefined; slot?: string | undefined; }, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; forkedFrom: z.ZodOptional; buildFailed: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; building: z.ZodOptional; buildStatus: z.ZodOptional; proposal: z.ZodOptional, z.objectInputType<{ approvalId: z.ZodString; prompt: z.ZodString; why: z.ZodString; at: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; memory: z.ZodOptional; decisions: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ format: z.ZodLiteral<"vendo/app@1">; id: z.ZodString; name: z.ZodString; description: z.ZodOptional; ui: z.ZodOptional>; components: z.ZodOptional>>; componentTools: z.ZodOptional>>; source: z.ZodOptional; blobRef: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ hash: z.ZodString; bytes: z.ZodNumber; text: z.ZodOptional; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>>; bundle: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; automations: z.ZodOptional>; egress: z.ZodOptional>; egressApproved: z.ZodOptional>; secrets: z.ZodOptional>; seed: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>, { wishes: string[]; component: string; baseline: string; port?: string | undefined; unapplied?: string[] | undefined; props?: Record | undefined; slot?: string | undefined; }, z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; forkedFrom: z.ZodOptional; buildFailed: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; building: z.ZodOptional; buildStatus: z.ZodOptional; proposal: z.ZodOptional, z.objectInputType<{ approvalId: z.ZodString; prompt: z.ZodString; why: z.ZodString; at: z.ZodString; }, z.ZodTypeAny, "passthrough">>>; memory: z.ZodOptional; decisions: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>; }, "strip", z.ZodTypeAny, { subject: string; enabled: boolean; doc: { name: string; format: "vendo/app@1"; id: string; description?: string | undefined; bundle?: z.objectOutputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough"> | undefined; ui?: "tree" | "bundle" | undefined; components?: Record | undefined; componentTools?: Record | undefined; source?: Record; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">> | undefined; automations?: string[] | undefined; egress?: string[] | undefined; egressApproved?: string[] | undefined; secrets?: string[] | undefined; seed?: { wishes: string[]; component: string; baseline: string; port?: string | undefined; unapplied?: string[] | undefined; props?: Record | undefined; slot?: string | undefined; } | undefined; forkedFrom?: string | undefined; buildFailed?: z.objectOutputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; building?: string | undefined; buildStatus?: string | undefined; proposal?: z.objectOutputType<{ approvalId: z.ZodString; prompt: z.ZodString; why: z.ZodString; at: z.ZodString; }, z.ZodTypeAny, "passthrough"> | undefined; memory?: z.objectOutputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; } & { [k: string]: unknown; }; }, { subject: string; enabled: boolean; doc: { name: string; format: "vendo/app@1"; id: string; description?: string | undefined; bundle?: z.objectInputType<{ entry: z.ZodString; assets: z.ZodOptional>; bytes: z.ZodNumber; sealedAt: z.ZodString; }, z.ZodTypeAny, "passthrough"> | undefined; ui?: "tree" | "bundle" | undefined; components?: Record | undefined; componentTools?: Record | undefined; source?: Record; blobRef: z.ZodOptional; }, z.ZodTypeAny, "passthrough">> | undefined; automations?: string[] | undefined; egress?: string[] | undefined; egressApproved?: string[] | undefined; secrets?: string[] | undefined; seed?: z.objectInputType<{ component: z.ZodString; baseline: z.ZodString; wishes: z.ZodOptional>; instruction: z.ZodOptional; port: z.ZodOptional; unapplied: z.ZodOptional>; props: z.ZodOptional>; slot: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; forkedFrom?: string | undefined; buildFailed?: z.objectInputType<{ reason: z.ZodString; retryable: z.ZodOptional; at: z.ZodString; prompt: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; building?: string | undefined; buildStatus?: string | undefined; proposal?: z.objectInputType<{ approvalId: z.ZodString; prompt: z.ZodString; why: z.ZodString; at: z.ZodString; }, z.ZodTypeAny, "passthrough"> | undefined; memory?: z.objectInputType<{ asks: z.ZodArray; decisions: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; } & { [k: string]: unknown; }; }>; //# sourceMappingURL=app-row.d.ts.map