import type { DataContract, InferActionNames, InferAgentToolNames, InferGadgetNames, InferStreamNames } from '@ggui-ai/protocol/wire'; /** * Exhaustive contract-completeness manifest for the code a generator * emits against `T`. Declaring * `const _wires: AllWires = { … }` forces the * emitter (LLM or codegen) to enumerate every wire slot — the * typechecker then proves bidirectional agreement: * * - A manifest key missing from the contract → excess-property error * (`InferActionNames` already narrowed the hook signature under * Item 3b; `AllWires` applies the same narrowing to the manifest). * - A contract wire missing from the manifest → `Property 'X' is * missing in type '{…}' but required in type 'Record<"X", true>'`. * * The `_wires` const itself is consumed ONLY by the typechecker * (`void _wires;` suppresses unused-variable diagnostics; bundlers * dead-code-eliminate the binding). No runtime observation site. * * @public * @typeParam T - A `DataContract`-shaped contract literal. Pass * `typeof contractShape` where `contractShape` carries `actionSpec`, * `streamSpec`, `agentTools`, and/or `clientCapabilities` via * `as const`-preserved shape (the generator emits a local synthetic * type alias for the slots it populates). */ export type AllWires = { readonly actions: Readonly, true>>; readonly streams: Readonly, true>>; readonly agentTools: Readonly, true>>; readonly clientCapabilities: Readonly, true>>; }; //# sourceMappingURL=all-wires.d.ts.map