import { type AppId, type RunContext, type ToolDescriptor, type SqlDialect, type ToolRegistry } from "@vendoai/core"; import { type AppDocument, type ScreenAssembler } from "../../contract/index.js"; import type { AppSqlAccess } from "../persistence/app-sql.js"; import type { AppsRuntime, AutomationsSeam } from "../runtime/types.js"; /** The apps pack's tools. `dialect` is the app database's, when one is * composed: `vendo_apps_sql` states the SQL it will really be run as, and is * absent entirely when there is no database to run it against. */ export declare const agentToolDescriptors: (dialect?: SqlDialect) => ToolDescriptor[]; export interface AgentToolsDataDependencies { /** The app's own database, when one is composed. Unset — a deployment with * no store, no `appDatabase` and no key — and `vendo_apps_sql` is not * offered at all: no adapter, no tool. */ sql?: AppSqlAccess; requireOwned(appId: AppId, ctx: RunContext): Promise; /** Whether THIS caller's build is the one running for this id right now. The * app-database door reads it because an app being built has no row for * `requireOwned` to read an owner off — see `doors/sql-tool.ts`. */ buildingFor(appId: AppId, ctx: RunContext): boolean; /** B1 — claim the slot for an id this door just minted, before either engine * runs. `AppsRuntime.place` cannot: it gates on an app record, and there is * none yet. Filled by the runtime that constructs this registry. */ claimSlot(appId: AppId, slot: string, ctx: RunContext): Promise; /** B1's other end — the terminal record for an id assembly never landed, so a * claimed slot reads as the honest failure card instead of a skeleton that * ages out. The same tombstone a failed build leaves. */ markUnbuilt(appId: AppId, name: string, reason: string, ctx: RunContext): Promise; /** UI-generation blueprint §1 point 2 — the screen agent. Threaded from * `AppsConfig.screen`, which composition fills; see the routing block in the * `vendo_make` handler below. Unfilled, `vendo_make` has nothing to assemble * with and says so. */ screen?: ScreenAssembler; /** `AppsConfig.automations` — what `vendo_automate` arms through, and what * `vendo_make`'s compound ask reaches the same create operation by. Unfilled, * both say so rather than pretending something runs. */ automations?: AutomationsSeam; } /** 06-apps §§1,5 — unbound Vendo app capabilities; the umbrella binds this registry. */ export declare const createAgentTools: (runtime: AppsRuntime, dependencies: AgentToolsDataDependencies) => ToolRegistry; //# sourceMappingURL=agent-tools.d.ts.map