@zapier/kitcore 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,6 +8,49 @@ declare module "zod" {
8
8
  }
9
9
  }
10
10
 
11
+ /**
12
+ * What the framework reports about the output it produced.
13
+ *
14
+ * `skipped` says only that THE FRAMEWORK did not parse, never that the data is
15
+ * unchecked: a plugin opting out with `skipOutputValidation` may still parse
16
+ * inside its own `run`, and several do precisely to avoid a double-parse.
17
+ *
18
+ * `droppedPaths` is what the strip removed. `null` means nothing was dropped,
19
+ * never "we did not look": the diff is gated on the head's
20
+ * `includeOutputValidationDroppedPaths`, and a report only carries paths on a
21
+ * path that computed them. Paths are relative to `data` in both
22
+ * modes (`a.b` for an item), with array elements collapsed to one `[]` segment
23
+ * and unioned (`[].b` on a page, `items[].b` for an array inside an item).
24
+ *
25
+ * `instruction` rides only the arm where it is actionable, telling a caller how
26
+ * to get the stripped fields back.
27
+ *
28
+ * Three arms, matching the connectors SDK's `OutputDataValidationMeta` exactly.
29
+ * That SDK is the consumer this work is heading toward, and its instruction text
30
+ * is agent-facing, so a divergent shape or wording would have to be translated
31
+ * at the boundary rather than passed through.
32
+ *
33
+ * kitcore does not currently emit the middle arm. Reporting a validated call
34
+ * with nothing dropped requires a surface that reports unconditionally, and
35
+ * kitcore only reports when there is something to say. The arm is here so the
36
+ * type IS connectors' type rather than a subset of it, and so a reader written
37
+ * against either handles both.
38
+ *
39
+ * WHETHER a report is emitted is a separate question from its shape, and it is
40
+ * deliberately different: connectors reports on every run, kitcore only when
41
+ * there is something to say (a caller's skip that changed something, or paths
42
+ * actually dropped with the head's `includeOutputValidationDroppedPaths` on).
43
+ */
44
+ type OutputDataValidationReport = {
45
+ skipped: true;
46
+ } | {
47
+ skipped: false;
48
+ droppedPaths: null;
49
+ } | {
50
+ skipped: false;
51
+ droppedPaths: string[];
52
+ instruction: string;
53
+ };
11
54
  /**
12
55
  * The response `meta` sidecar, shared by both output modes: an item method's
13
56
  * `{ data, meta }` envelope and a list method's page carry the same shape, so a
@@ -18,13 +61,20 @@ declare module "zod" {
18
61
  * the boundary attaches what belongs here.
19
62
  */
20
63
  interface ResponseMeta {
64
+ /** See {@link OutputDataValidationReport}. Present only when there is
65
+ * something to say: a caller's skip that changed something, or paths that
66
+ * were dropped. */
67
+ outputDataValidation?: OutputDataValidationReport;
21
68
  /**
22
- * What output validation's strip removed from the response, present only when
23
- * the head enables the `includeOutputValidationDroppedPaths` core option AND
24
- * something was actually dropped. Paths are relative to `data` in both modes
25
- * (`a.b` for an item), with array elements collapsed to one `[]` segment and
26
- * unioned (`[].b` on a page, `items[].b` for an array inside an item), matching
27
- * connectors' format.
69
+ * @deprecated Read `outputDataValidation` instead. Still written alongside
70
+ * it, with the shape and the emission rule it always had (present only when
71
+ * the strip actually removed something), and removed next release.
72
+ *
73
+ * No runtime deprecation warning accompanies this, unlike every other exit in
74
+ * the package. There is no call to attach one to: a consumer reads a property
75
+ * off a plain result object, and the only way to notice would be to make this
76
+ * a logging getter, which would then fire on anything that serializes a
77
+ * response.
28
78
  */
29
79
  outputValidation?: {
30
80
  droppedPaths: string[];
@@ -89,6 +139,22 @@ interface PaginatedSdkResult<TItem> extends Promise<SdkPage<TItem>> {
89
139
  }
90
140
  type PaginatedSdkFunction<TOptions, TItem> = (options: TOptions) => PaginatedSdkResult<TItem>;
91
141
 
142
+ /**
143
+ * The external escape-hatch key for an SDK's context. A Symbol,
144
+ * not a string, so it stays off the string surface (which is exactly the root's
145
+ * exports) and is collision-free and clearly internal. It is attached at
146
+ * runtime but kept OUT of the public SDK type (a `unique symbol` in an exported
147
+ * type can't be named in a consumer's emitted `.d.ts`); reach it through the
148
+ * typed `getContext(sdk)` accessor.
149
+ *
150
+ * `Symbol.for`, not `Symbol()`: heads bundle kitcore (tsup `noExternal`), so
151
+ * an sdk built by one bundle's copy must still be readable by another copy's
152
+ * `getContext` / `resolvePlugin` (e.g. a CLI sdk inspected with helpers
153
+ * imported from `@zapier/zapier-sdk`). The global symbol registry makes every
154
+ * copy agree on the key.
155
+ */
156
+ declare const CONTEXT: unique symbol;
157
+
92
158
  /**
93
159
  * Per-call context threaded explicitly through the method boundary in place of
94
160
  * ambient AsyncLocalStorage. It carries call identity, nesting depth, and a
@@ -301,6 +367,20 @@ declare function applyStabilityLabel({ description, stability, placement, }: {
301
367
  * Runtime validation still uses the full union; only shape reading canonicalizes.
302
368
  */
303
369
  declare function canonicalInputSchema(schema: z.ZodSchema | undefined): z.ZodSchema | undefined;
370
+ /** Strip optional/default/nullable wrappers to the inner schema, tracking
371
+ * whether the wrappers made the field non-required. */
372
+ declare function unwrapSchema(schema: z.ZodType): {
373
+ inner: z.ZodType;
374
+ required: boolean;
375
+ };
376
+ /**
377
+ * The object shape of a method's input schema, or undefined when the schema is
378
+ * absent or not a plain object. A required-rename union (`z.union([canonical,
379
+ * deprecated])`) is canonicalized to its first variant first, and
380
+ * optional/default/nullable wrappers are stripped, so a schema whose fields are
381
+ * readable at all is read rather than treated as shapeless.
382
+ */
383
+ declare function objectShapeOf(schema: z.ZodSchema | undefined): Record<string, z.ZodType> | undefined;
304
384
  interface FormattedItem {
305
385
  title: string;
306
386
  /**
@@ -596,7 +676,9 @@ interface NegatableMetadata {
596
676
  * of the chain.
597
677
  */
598
678
  declare function getNegatable(schema: z.ZodType): NegatableMetadata["negatable"] | undefined;
599
- declare function openEnum<const T extends readonly [string, ...string[]]>(values: T, description: string): z.ZodUnion<readonly [z.ZodEnum<{ [k_1 in T[number]]: k_1; } extends infer T_1 ? { [k in keyof T_1]: { [k_1 in T[number]]: k_1; }[k]; } : never>, z.ZodString]>;
679
+ declare function openEnum<const T extends readonly [string, ...string[]]>(values: T, description: string): z.ZodUnion<readonly [z.ZodEnum<{
680
+ [K in T[number]]: K;
681
+ }>, z.ZodString]>;
600
682
 
601
683
  /**
602
684
  * Descriptive metadata a leaf carries for the registry / CLI / MCP / docs:
@@ -636,6 +718,32 @@ interface LeafMetaFields {
636
718
  aliases?: Record<string, string>;
637
719
  supportsJsonOutput?: boolean;
638
720
  }
721
+ /**
722
+ * The meta an override may patch onto an already-built method.
723
+ *
724
+ * An allow-list, so a field added to {@link LeafMetaFields} later is refused
725
+ * until someone decides it is safe. Naming the dangerous fields instead would
726
+ * hand every future field to overrides by default, and the default has to be
727
+ * the safe one: an override changes how a surface PRESENTS a method, never what
728
+ * runs, what input is accepted, or what safety gate fires. Nothing re-checks
729
+ * the method's declared TypeScript type after `defineMethod` fixes it.
730
+ *
731
+ * What that rule rules out, and why each is dangerous rather than merely
732
+ * unused:
733
+ *
734
+ * - `outputSchema` decides what output validation enforces. Patching it makes
735
+ * a call fail against a contract its own return type says it satisfies.
736
+ * - `confirm` gates a host's confirmation prompt. Patching it can drop the
737
+ * prompt in front of a destructive call.
738
+ * - `type` reaches `confirm` indirectly: the registry derives
739
+ * `confirm: m.confirm ?? (m.type === "delete" ? "delete" : undefined)`, so
740
+ * moving a method off `"delete"` removes the same prompt quietly.
741
+ * - `aliases` maps a parameter to a CLI flag, so patching it changes which
742
+ * input a caller can pass.
743
+ * - `skipOutputValidation` is already unreachable, being absent from
744
+ * `LEAF_META_KEYS` and never folded into the projected meta.
745
+ */
746
+ type OverridableMetaFields = Pick<LeafMetaFields, "description" | "categories" | "itemType" | "returnType" | "packages" | "experimental" | "deprecation" | "supportsJsonOutput">;
639
747
  /** One segment of a {@link DynamicMember} path: a literal binding/segment name,
640
748
  * or a `{ param }` placeholder for an open-ended key (rendered `{param}`). */
641
749
  type DynamicMemberSegment = string | {
@@ -689,6 +797,17 @@ interface ImportBinding {
689
797
  * `{ name: signature }` union into one `imports` object type.
690
798
  */
691
799
  type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
800
+ /**
801
+ * What `run` sees, given what a CALLER may pass.
802
+ *
803
+ * Subtracts exactly what the runtime strips on the way in, so the type and
804
+ * `stripFrameworkOnlyOptions` cannot drift. The subtraction is unconditional,
805
+ * matching the runtime: a method that DECLARES `maxItems` still does not
806
+ * receive it, because a list `run` fetches one page and the cap spans pages.
807
+ */
808
+ type ItemRunInput<TInput> = Omit<TInput, "skipOutputDataValidation">;
809
+ /** The list twin of {@link ItemRunInput}, plus the page `run` is asked for. */
810
+ type ListRunInput<TInput> = Omit<TInput, "skipOutputDataValidation" | "maxItems"> & PageFetchInput;
692
811
  /**
693
812
  * A method's callable signature. A method with no declared input infers
694
813
  * `TInput = unknown`; make its input optional so it is callable with no
@@ -806,13 +925,31 @@ interface Field {
806
925
  required?: boolean;
807
926
  valueType?: string;
808
927
  }
928
+ /**
929
+ * One entry in `requireParameters`. A bare NAME is looked up in the resolver's
930
+ * own container first, then at the root. That is convenient, and ambiguous when
931
+ * both hold the name: the container wins, silently. An ARRAY is an absolute
932
+ * path from the root (`["input", "owner"]`), matching the engine's own path
933
+ * representation, so it says exactly which value is meant, and it also reaches
934
+ * a field inside another parameter that no bare name can name.
935
+ *
936
+ * An index in a path is LITERAL. `["filters", 0, "operator"]` names the first
937
+ * item and no other, so it cannot address the array item currently being
938
+ * walked. A requirement inside an array item names its sibling with a bare
939
+ * name, which resolves against the item.
940
+ *
941
+ * A dotted string is NOT a path: the engine looks the whole string up as one
942
+ * key, so `"input.owner"` silently never matches. Use the array form.
943
+ */
944
+ type ResolverRequirement = string | readonly [string | number, ...(string | number)[]];
809
945
  /** Shared gates for resolvers that resolve a value: the attachment plumbing
810
946
  * plus the param-dataflow prerequisite. (`info` skips these.) */
811
947
  interface ResolverBase extends MethodAttachment {
812
- /** Sibling parameters that must resolve before this resolver runs (it reads
813
- * their values from `input`). The param-dataflow prerequisite, distinct from
814
- * `imports`' SDK-capability graph. */
815
- requireParameters?: readonly string[];
948
+ /** Parameters that must resolve before this resolver runs (it reads their
949
+ * values from `input`). The param-dataflow prerequisite, distinct from
950
+ * `imports`' SDK-capability graph. See {@link ResolverRequirement} for the
951
+ * bare-name vs absolute-path forms. */
952
+ requireParameters?: readonly ResolverRequirement[];
816
953
  }
817
954
  /** List candidate items and prompt the user to pick one. */
818
955
  interface DynamicResolver extends ResolverBase {
@@ -999,10 +1136,10 @@ interface BoundField {
999
1136
  }
1000
1137
  /** Fields shared by every bound resolver kind. */
1001
1138
  interface BoundResolverBase {
1002
- /** Sibling parameters that must resolve before this resolver runs (it reads
1003
- * their values from `input`). The param-dataflow prerequisite, distinct from
1004
- * `imports`' SDK-capability graph. */
1005
- requireParameters?: readonly string[];
1139
+ /** Parameters that must resolve before this resolver runs (it reads their
1140
+ * values from `input`). The param-dataflow prerequisite, distinct from
1141
+ * `imports`' SDK-capability graph. See {@link ResolverRequirement}. */
1142
+ requireParameters?: readonly ResolverRequirement[];
1006
1143
  }
1007
1144
  /** Free-text input, no candidate list. */
1008
1145
  interface BoundStaticResolver extends BoundResolverBase {
@@ -1124,7 +1261,19 @@ interface BoundFormatter<TItem = unknown, TInput = Record<string, unknown>, TCon
1124
1261
  * `run` is loosely typed for `imports` (the precise type lives on the
1125
1262
  * `defineMethod` authoring surface, like the shipped definePlugin).
1126
1263
  */
1127
- interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput = unknown, TPositional extends readonly string[] = readonly []> {
1264
+ interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput = unknown, TPositional extends readonly string[] = readonly [],
1265
+ /**
1266
+ * What `run` receives, when that differs from what a CALLER may pass.
1267
+ *
1268
+ * They part company for item and list, whose call type mixes in
1269
+ * {@link CallOutputOptions} and {@link PaginatedCallInput}. Those are the
1270
+ * framework's, peeled off before `run`, so folding them into one parameter
1271
+ * told a consumer reading `Parameters<typeof plugin.run>[0]` that `run` gets
1272
+ * a flag the runtime always removes.
1273
+ *
1274
+ * Defaults to `TInput`, since raw's caller and `run` see the same object.
1275
+ */
1276
+ TRunInput = TInput> {
1128
1277
  pluginType: "method";
1129
1278
  name: TName;
1130
1279
  namespace?: string;
@@ -1184,7 +1333,15 @@ interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput
1184
1333
  * telemetry fields knowable before the method's own work; never passed to
1185
1334
  * `run`. */
1186
1335
  annotator?: MethodAnnotator;
1187
- run: (bag: MethodRunBag<any, TInput, any>) => TOutput;
1336
+ /**
1337
+ * Phantom, never present at runtime. `TInput` types the CALL and `TRunInput`
1338
+ * types `run`, and once they differ `run` alone cannot tell a reader which is
1339
+ * which: an interface is structural, so a parameter that appears nowhere in
1340
+ * the body is not inferable. `ExportSurface` recovers the call type from
1341
+ * here. Optional and `undefined`-valued, so no implementation writes it.
1342
+ */
1343
+ readonly __callInput?: TInput;
1344
+ run: (bag: MethodRunBag<any, TRunInput, any>) => TOutput;
1188
1345
  /** How `run`'s result is shaped into the public surface (see Output in the
1189
1346
  * design doc). Omitted is "raw". Stored loosely; the precise per-mode typing
1190
1347
  * lives on the `defineMethod` overloads. */
@@ -1202,9 +1359,21 @@ interface MethodPlugin<TName extends string = string, TInput = unknown, TOutput
1202
1359
  * @internal
1203
1360
  */
1204
1361
  readonly [POSITIONAL_NAMES]?: TPositional;
1362
+ /**
1363
+ * Phantom carrier for the CALL input.
1364
+ *
1365
+ * `TInput` and `TRunInput` differ for item and list, and `run` types the
1366
+ * latter. An interface is structural, so a parameter appearing nowhere in the
1367
+ * body is not inferable, and without this `ExportSurface` would recover the
1368
+ * run input and offer callers the wrong shape. Never present at runtime.
1369
+ * @internal
1370
+ */
1371
+ readonly [CALL_INPUT]?: TInput;
1205
1372
  }
1206
1373
  /** Phantom-only key (see `MethodPlugin`); never set at runtime. */
1207
1374
  declare const POSITIONAL_NAMES: unique symbol;
1375
+ /** Phantom-only key (see `MethodPlugin`); never set at runtime. */
1376
+ declare const CALL_INPUT: unique symbol;
1208
1377
  /** A method's output mode: raw passthrough, a `{ data }` item envelope, or a
1209
1378
  * paginated list. */
1210
1379
  type OutputMode = "raw" | "item" | "list";
@@ -1234,6 +1403,25 @@ type PageFetchInput = {
1234
1403
  type PaginatedCallInput = PageFetchInput & {
1235
1404
  maxItems?: number;
1236
1405
  };
1406
+ /**
1407
+ * Output controls a method's public caller may pass, the sibling of
1408
+ * {@link PaginatedCallInput}: caller-side only, peeled before `run`, and never
1409
+ * part of a plugin's declared input, so `run` never sees it.
1410
+ *
1411
+ * Item and list only, and raw's absence is a decision rather than a gap: raw
1412
+ * reserves NOTHING in the caller's call object. That object is entirely the
1413
+ * author's, and raw is the mode most likely to forward it verbatim into a
1414
+ * request, so a framework key shadowing a domain one there is the worst version
1415
+ * of a collision the framework should not create. A `skipOutputDataValidation`
1416
+ * passed to a raw method is domain input that happens to share the name: not
1417
+ * read, not stripped, and it does not skip.
1418
+ *
1419
+ * Raw still validates. The author's `skipOutputValidation` field is the only
1420
+ * opt-out it honors, which is why that field keeps its name across every mode.
1421
+ */
1422
+ type CallOutputOptions = {
1423
+ skipOutputDataValidation?: boolean;
1424
+ };
1237
1425
  /**
1238
1426
  * A response whose only own keys are `data` / `nextCursor`. Gates the
1239
1427
  * list-standard overload: a raw envelope with extra keys is not a `StrictPage`
@@ -1639,14 +1827,24 @@ type PluginSurface<P extends AnyPlugin> = P extends MethodPlugin<infer TName, in
1639
1827
  [K in keyof TExports]: ExportSurface<TExports[K]>;
1640
1828
  } : never;
1641
1829
  /**
1642
- * The framework-owned access an SDK carries beyond its string surface: the
1643
- * legacy `context` string key (back-compat, narrows away later). The off-surface
1644
- * `[CONTEXT]` symbol is attached at runtime (reach it via `getContext`) but kept
1645
- * out of this type so it never leaks into a consumer's emitted declarations.
1830
+ * The framework-owned access an SDK carries beyond its string surface.
1831
+ *
1832
+ * Both keys, because the value has both. `[CONTEXT]` is what materialization
1833
+ * writes and what `getContext` reads, so declaring it is the type telling the
1834
+ * truth. `context` is the legacy string key, kept for back-compat and narrowing
1835
+ * away later.
1836
+ *
1837
+ * The symbol used to be omitted so it would not reach a consumer's emitted
1838
+ * declarations. It is exported from the package root, so it is nameable there,
1839
+ * and hiding it cost more than it saved: `ControllerSdk` had to check the
1840
+ * legacy string key as a stand-in for the real one.
1646
1841
  */
1842
+ interface SdkContextCarrier {
1843
+ readonly [CONTEXT]: SdkContext;
1844
+ }
1647
1845
  type SdkInternals = {
1648
1846
  context: SdkContext;
1649
- };
1847
+ } & SdkContextCarrier;
1650
1848
  /**
1651
1849
  * The materialized SDK for a leaf root: the root's callable (method) or value
1652
1850
  * (property) under its name, plus framework access.
@@ -1689,6 +1887,25 @@ interface PluginSummary<TRequires extends string = never, TProvides extends stri
1689
1887
  /** Ids the plugin and its subgraph provide. @internal */
1690
1888
  readonly [PROVIDES]?: TProvides;
1691
1889
  }
1890
+ /**
1891
+ * The id a stand-in declares, carried separately from the requires ledger.
1892
+ *
1893
+ * `declareProperty` requires its own id, so the ledger alone would do. A
1894
+ * `declareOptionalProperty` requires NOTHING, which is the point of it, so its
1895
+ * ledger is empty and the id has nowhere else to live. Reading the id off the
1896
+ * ledger meant an optional stand-in handed a by-reference provider `never`,
1897
+ * and a `never` in that position stopped `CompletenessOf` reporting anything
1898
+ * for the whole graph.
1899
+ *
1900
+ * A carrier of its own keeps the two facts apart: what a stand-in NEEDS, and
1901
+ * what it NAMES.
1902
+ */
1903
+ interface StandInId<TId extends string = never> {
1904
+ /** @internal */
1905
+ readonly [DECLARES]?: TId;
1906
+ }
1907
+ /** Phantom-only key (see `StandInId`); never set at runtime. */
1908
+ declare const DECLARES: unique symbol;
1692
1909
  /** The declaration ids a plugin still needs (reads the phantom carrier). */
1693
1910
  type RequiresOf<P> = P extends {
1694
1911
  readonly [REQUIRES]?: infer R;
@@ -2334,6 +2551,26 @@ declare function createPluginStack<TRequires = object>(): PluginStack<TRequires,
2334
2551
  };
2335
2552
  }>;
2336
2553
 
2554
+ /**
2555
+ * Reject a LIST stand-in from the ref form, at the REF rather than at `run`.
2556
+ * Without this the mismatch surfaces as a run-return type error, which sends
2557
+ * the reader to the wrong file. The key is the message: a missing required
2558
+ * property names itself in the error.
2559
+ *
2560
+ * A `PaginatedSdkResult` is a decorated thenable the framework builds, so no
2561
+ * hand-written `run` returns one. That makes it a fact about the ref, not a
2562
+ * guess.
2563
+ *
2564
+ * ITEM is deliberately absent. An item surface is `Promise<{ data }>`, which is
2565
+ * also just an ordinary async method returning an object with a `data` field,
2566
+ * and rejecting the second to catch the first turned a valid raw provider into
2567
+ * a compile error with advice that did not apply. An item stand-in implemented
2568
+ * by reference now fails on the run return instead, which is a worse message
2569
+ * for a real mistake but does not refuse correct code.
2570
+ */
2571
+ type RefFormRawOnly<TOutput> = TOutput extends PaginatedSdkResult<unknown> ? {
2572
+ "defineMethod(ref, config) provides raw output only; define a list provider from scratch": never;
2573
+ } : unknown;
2337
2574
  /**
2338
2575
  * Define a method leaf. The plugin IS the function; `createSdk` (or a
2339
2576
  * dependent's `imports`) binds it under its bare `name`. `imports` is typed
@@ -2393,10 +2630,10 @@ declare function defineMethod<const TName extends string, TInput, TResponse exte
2393
2630
  input?: unknown;
2394
2631
  }) => void | Promise<void>;
2395
2632
  run: (bag: MethodRunBag<ImportsOf<TImports>, TInput, TState>) => TResponse | Promise<TResponse>;
2396
- } & LeafMetaFields): MethodPlugin<TName, TInput, Promise<{
2633
+ } & LeafMetaFields): MethodPlugin<TName, TInput & CallOutputOptions, Promise<{
2397
2634
  data: TData;
2398
2635
  meta?: ResponseMeta;
2399
- }>> & LeafSummary<TNamespace, TName, TImports>;
2636
+ }>, readonly [], ItemRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
2400
2637
  declare function defineMethod<const TName extends string, TInput, TResponse extends StrictPage$1<TResponse>, TItem = ItemOf$1<TResponse>, const TImports extends ImportsInput = readonly [], const TNamespace extends string = "", TState = undefined>(config: {
2401
2638
  name: TName;
2402
2639
  namespace?: TNamespace;
@@ -2419,7 +2656,7 @@ declare function defineMethod<const TName extends string, TInput, TResponse exte
2419
2656
  input?: unknown;
2420
2657
  }) => void | Promise<void>;
2421
2658
  run: (bag: MethodRunBag<ImportsOf<TImports>, TInput & PageFetchInput, TState>) => TResponse | Promise<TResponse>;
2422
- } & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput, PaginatedSdkResult<TItem>> & LeafSummary<TNamespace, TName, TImports>;
2659
+ } & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput & CallOutputOptions, PaginatedSdkResult<TItem>, readonly [], ListRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
2423
2660
  declare function defineMethod<const TName extends string, TInput, TResponse, TItem, const TImports extends ImportsInput = readonly [], const TNamespace extends string = "", TState = undefined>(config: {
2424
2661
  name: TName;
2425
2662
  namespace?: TNamespace;
@@ -2442,25 +2679,57 @@ declare function defineMethod<const TName extends string, TInput, TResponse, TIt
2442
2679
  input?: unknown;
2443
2680
  }) => void | Promise<void>;
2444
2681
  run: (bag: MethodRunBag<ImportsOf<TImports>, TInput & PageFetchInput, TState>) => TResponse | Promise<TResponse>;
2445
- } & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput, PaginatedSdkResult<TItem>> & LeafSummary<TNamespace, TName, TImports>;
2446
- /**
2447
- * Define a method override: a meta-only patch over an already-defined method.
2448
- * Give it the `target` method's id (its bare name if namespace-less) and any of
2449
- * the public {@link LeafMetaFields} (`deprecation`, `packages`, `description`,
2450
- * `categories`, `confirm`, ...); after the SDK materializes, those fields merge
2451
- * onto the target method's entry so the registry / CLI / MCP / docs project the
2452
- * patched values. The target's `run` and resolvers are untouched.
2453
- *
2454
- * Use it for surface-specific tweaks a base method should not carry (e.g. a CLI
2455
- * that deprecates `fetch` while the SDK does not). It fails loud at build if the
2456
- * target does not resolve to a method. Include the override in an aggregate's
2682
+ } & LeafMetaFields): MethodPlugin<TName, TInput & PaginatedCallInput & CallOutputOptions, PaginatedSdkResult<TItem>, readonly [], ListRunInput<TInput>> & LeafSummary<TNamespace, TName, TImports>;
2683
+ declare function defineMethod<const TName extends string, TInput, TOutput, const TId extends string, const TImports extends ImportsInput = readonly [], TState = undefined>(ref: MethodPlugin<TName, TInput, TOutput> & StandInId<TId> & RefFormRawOnly<TOutput>, config: {
2684
+ imports?: TImports & StaticList<TImports>;
2685
+ inputSchema?: z.ZodType<TInput>;
2686
+ skipInputValidation?: boolean;
2687
+ resolvers?: Record<string, Resolver>;
2688
+ formatter?: Formatter;
2689
+ setup?: (bag: {
2690
+ imports: ImportsOf<TImports>;
2691
+ }) => TState;
2692
+ dispose?: (bag: {
2693
+ imports: ImportsOf<TImports>;
2694
+ state: TState;
2695
+ input?: unknown;
2696
+ }) => void | Promise<void>;
2697
+ run: (bag: MethodRunBag<ImportsOf<TImports>, NoInfer<TInput>, TState>) => NoInfer<TOutput>;
2698
+ } & LeafMetaFields): MethodPlugin<TName, TInput, TOutput> & PluginSummary<LeafRequires<TId, TImports>, LeafProvides<TId, TImports>>;
2699
+ /**
2700
+ * Patch how a surface PRESENTS an already-defined method, by reference. Pass
2701
+ * the method (or its `declareMethod` stand-in) and any of
2702
+ * {@link OverridableMetaFields}. After the SDK materializes, those fields merge
2703
+ * onto the target's entry, so the registry / CLI / MCP / docs project the
2704
+ * patched values. The target's `run`, resolvers, and declared type are
2705
+ * untouched, which is the whole point: see {@link OverridableMetaFields} for
2706
+ * the fields that are refused and why.
2707
+ *
2708
+ * Use it for a tweak one surface wants and the base method should not carry, a
2709
+ * CLI deprecating `fetch` while the SDK does not. Include it in an aggregate's
2457
2710
  * `imports` to apply it during `createSdk`, or `addPlugin(sdk, override)` to
2458
2711
  * apply it to a built SDK.
2712
+ *
2713
+ * Taking the reference rather than an id string is the same choice
2714
+ * `defineMethod(ref, ...)` and `defineProperty(ref, ...)` make. No id is
2715
+ * respelled, so a rename cannot leave a silent no-op behind, and the name does
2716
+ * not restate what the reference already says. `declareMethod` gives you a
2717
+ * stand-in when you want to patch a method without importing it.
2718
+ *
2719
+ * `namespace` names the OVERRIDE, not the target, so two surfaces can each
2720
+ * patch the same method in one graph without colliding.
2721
+ */
2722
+ declare function defineOverride(ref: AnyMethodPlugin, config?: {
2723
+ namespace?: string;
2724
+ } & OverridableMetaFields): MethodOverridePlugin;
2725
+ /**
2726
+ * @deprecated Use {@link defineOverride}, which takes the method itself instead
2727
+ * of its id spelled out again.
2459
2728
  */
2460
2729
  declare function defineMethodOverride<const TTarget extends string>(config: {
2461
2730
  target: TTarget;
2462
2731
  namespace?: string;
2463
- } & LeafMetaFields): MethodOverridePlugin;
2732
+ } & OverridableMetaFields): MethodOverridePlugin;
2464
2733
  /**
2465
2734
  * Define an input resolver: a method attachment for one of its parameters. Like
2466
2735
  * `defineMethod` it declares its own `imports`, and its callbacks receive a
@@ -2481,7 +2750,7 @@ declare function defineMethodOverride<const TTarget extends string>(config: {
2481
2750
  declare function defineResolver<const TImports extends ImportsInput = readonly [], TItem = unknown, TInput = Record<string, unknown>, TContext = unknown>(config: {
2482
2751
  type?: "dynamic";
2483
2752
  imports?: TImports & StaticList<TImports>;
2484
- requireParameters?: readonly string[];
2753
+ requireParameters?: readonly ResolverRequirement[];
2485
2754
  inputType?: "text" | "password" | "email" | "search";
2486
2755
  placeholder?: string;
2487
2756
  /** Compute side-context once, before `listItems` (pre-fetch, no items yet),
@@ -2543,14 +2812,14 @@ declare function defineResolver<const TImports extends ImportsInput = readonly [
2543
2812
  }): DynamicResolver;
2544
2813
  declare function defineResolver(config: {
2545
2814
  type: "static";
2546
- requireParameters?: readonly string[];
2815
+ requireParameters?: readonly ResolverRequirement[];
2547
2816
  inputType?: "text" | "password" | "email" | "search";
2548
2817
  placeholder?: string;
2549
2818
  }): StaticResolver;
2550
2819
  declare function defineResolver(config: {
2551
2820
  type: "constant";
2552
2821
  value: unknown;
2553
- requireParameters?: readonly string[];
2822
+ requireParameters?: readonly ResolverRequirement[];
2554
2823
  }): ConstantResolver;
2555
2824
  declare function defineResolver(config: {
2556
2825
  type: "info";
@@ -2559,7 +2828,7 @@ declare function defineResolver(config: {
2559
2828
  declare function defineResolver<const TImports extends ImportsInput = readonly [], TInput = Record<string, unknown>>(config: {
2560
2829
  type: "object";
2561
2830
  imports?: TImports & StaticList<TImports>;
2562
- requireParameters?: readonly string[];
2831
+ requireParameters?: readonly ResolverRequirement[];
2563
2832
  properties?: Record<string, Field>;
2564
2833
  /** Build the property map when the key set is dynamic (re-invoked as `input`
2565
2834
  * grow). Returns the map raw, no envelope. */
@@ -2573,7 +2842,7 @@ declare function defineResolver<const TImports extends ImportsInput = readonly [
2573
2842
  }): ObjectResolver;
2574
2843
  declare function defineResolver(config: {
2575
2844
  type: "array";
2576
- requireParameters?: readonly string[];
2845
+ requireParameters?: readonly ResolverRequirement[];
2577
2846
  items: Resolver | ResolverRef;
2578
2847
  minItems?: number;
2579
2848
  maxItems?: number;
@@ -2616,7 +2885,7 @@ declare function defineFormatter<const TImports extends ImportsInput = readonly
2616
2885
  */
2617
2886
  declare function declareMethod<const TId extends string, TInput = unknown, TOutput = unknown>(config: {
2618
2887
  id: LiteralString<TId>;
2619
- }): MethodPlugin<LastSegment<TId>, TInput, TOutput> & PluginSummary<TId, never>;
2888
+ }): MethodPlugin<LastSegment<TId>, TInput, TOutput> & PluginSummary<TId, never> & StandInId<TId>;
2620
2889
  /**
2621
2890
  * Declare an OPTIONAL stand-in for a method registered elsewhere: the method twin
2622
2891
  * of `declareOptionalProperty`. Unlike `declareMethod`, an unsatisfied optional
@@ -2629,7 +2898,7 @@ declare function declareOptionalMethod<const TId extends string, TInput = unknow
2629
2898
  id: LiteralString<TId>;
2630
2899
  }): MethodPlugin<LastSegment<TId>, TInput, TOutput> & {
2631
2900
  optional: true;
2632
- } & PluginSummary<never, never>;
2901
+ } & PluginSummary<never, never> & StandInId<TId>;
2633
2902
  /**
2634
2903
  * Define a property leaf. Either a static `value` or a computed `get`, which
2635
2904
  * re-runs live on each read; an optional `setup` runs once at `createSdk`
@@ -2669,6 +2938,17 @@ declare function defineProperty<const TName extends string, TValue, const TImpor
2669
2938
  * a proxy): each a bodyless declaration keyed by `path` instead of `name`. */
2670
2939
  dynamicMembers?: readonly DynamicMember[];
2671
2940
  } & LeafMetaFields): PropertyPlugin<TName, TValue> & LeafSummary<TNamespace, TName, TImports>;
2941
+ /**
2942
+ * Provide a value for a declared property BY REFERENCE: pass the
2943
+ * `declareProperty` / `declareOptionalProperty` stand-in instead of respelling
2944
+ * its `name` / `namespace`, and `value` is typed against the declaration. The
2945
+ * result is a real property that satisfies the stand-in (or overrides its
2946
+ * default) by id. The refactor-safe, no-string alternative to matching ids by
2947
+ * hand (and the in-graph replacement for `createSdk`'s `configuration` channel).
2948
+ */
2949
+ declare function defineProperty<const TName extends string, TValue, const TId extends string>(ref: PropertyPlugin<TName, TValue> & StandInId<TId>, config: {
2950
+ value: NoInfer<TValue>;
2951
+ } & LeafMetaFields): PropertyPlugin<TName, TValue> & PluginSummary<never, TId>;
2672
2952
  /**
2673
2953
  * Declare a stand-in for a property registered elsewhere (a configured factory
2674
2954
  * plugin, e.g. the api client built from options). Carries only a name and a
@@ -2679,7 +2959,7 @@ declare function defineProperty<const TName extends string, TValue, const TImpor
2679
2959
  */
2680
2960
  declare function declareProperty<const TId extends string, TValue = unknown>(config: {
2681
2961
  id: LiteralString<TId>;
2682
- }): PropertyPlugin<LastSegment<TId>, TValue> & PluginSummary<TId, never>;
2962
+ }): PropertyPlugin<LastSegment<TId>, TValue> & PluginSummary<TId, never> & StandInId<TId>;
2683
2963
  /**
2684
2964
  * Declare an OPTIONAL stand-in for a property registered elsewhere. Unlike
2685
2965
  * `declareProperty`, a `declareOptionalProperty` left unsatisfied is NOT a missing
@@ -2695,7 +2975,7 @@ declare function declareProperty<const TId extends string, TValue = unknown>(con
2695
2975
  */
2696
2976
  declare function declareOptionalProperty<const TId extends string, TValue = unknown>(config: {
2697
2977
  id: LiteralString<TId>;
2698
- }): PropertyPlugin<LastSegment<TId>, TValue | undefined> & PluginSummary<never, never>;
2978
+ }): PropertyPlugin<LastSegment<TId>, TValue | undefined> & PluginSummary<never, never> & StandInId<TId>;
2699
2979
  /**
2700
2980
  * Declare a DEFAULT provider for a dependency you own: import the capability the
2701
2981
  * given plugin provides, and fall back to that plugin when nothing else provides
@@ -3085,7 +3365,7 @@ interface CoreOptions {
3085
3365
  logStabilityNotice?: (notice: StabilityNotice) => void;
3086
3366
  /**
3087
3367
  * Report what output validation stripped, on the response's
3088
- * `meta.outputValidation.droppedPaths` (the name mirrors that path). Off by
3368
+ * `meta.outputDataValidation.droppedPaths`. Off by
3089
3369
  * default: the report is a debugging aid for reconciling a schema against the
3090
3370
  * wire, and a sidecar every caller has to ignore is worse than one a head
3091
3371
  * turns on while it audits its schemas. Off also skips the recursive
@@ -3101,7 +3381,7 @@ interface CoreOptions {
3101
3381
  * `CoreOptions | undefined` (absent means kitcore's built-in behavior). Heads
3102
3382
  * supply the value via `createSdk`'s `configuration` or a registered property.
3103
3383
  */
3104
- declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions | undefined> & PluginSummary<never, never>;
3384
+ declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions | undefined> & PluginSummary<never, never> & StandInId<"kitcore/coreOptions">;
3105
3385
  /**
3106
3386
  * Escape hatch. A built-in privileged plugin whose value is the live
3107
3387
  * `SdkContext` (the raw plugin graph). Importing it (`imports.context`) lets a
@@ -3115,34 +3395,32 @@ declare const coreOptionsPluginRef: PropertyPlugin<"coreOptions", CoreOptions |
3115
3395
  */
3116
3396
  declare const dangerousContextPlugin: PropertyPlugin<"context", SdkContext>;
3117
3397
  /**
3118
- * A built-in that reports the live SDK surface as the canonical
3398
+ * A built-in that reports the SDK surface as the canonical
3119
3399
  * {@link RegistryResult}. It is just a method depending on `dangerousContextPlugin` (no
3120
- * new privilege): re-export it to put `getRegistry()` on the SDK surface. Reads
3121
- * `context.surface` at call time, so it reflects any post-seal `addPlugin`
3122
- * additions, and produces the same registry shape the heads (CLI / MCP / docs)
3123
- * consume.
3400
+ * new privilege): re-export it to put `getRegistry()` on the SDK surface. A thin
3401
+ * shim over the shared `getCachedRegistry`, the same path the free
3402
+ * `getRegistry(sdk)` takes, so a surfaced call and an off-surface call return
3403
+ * the identical memoized object. Surfacing is optional, since controllers reach
3404
+ * the registry through `getRegistry(sdk)` whether or not a head re-exports this.
3124
3405
  */
3125
3406
  declare const getRegistryPlugin: MethodPlugin<"getRegistry", {
3126
3407
  package?: string | undefined;
3127
- } | undefined, RegistryResult, readonly []> & LeafSummary<"kitcore", "getRegistry", readonly [PropertyPlugin<"context", SdkContext>]>;
3408
+ } | undefined, RegistryResult, readonly [], {
3409
+ package?: string | undefined;
3410
+ } | undefined> & LeafSummary<"kitcore", "getRegistry", readonly [PropertyPlugin<"context", SdkContext>]>;
3128
3411
 
3129
- /**
3130
- * The external escape-hatch key for an SDK's context. A Symbol,
3131
- * not a string, so it stays off the string surface (which is exactly the root's
3132
- * exports) and is collision-free and clearly internal. It is attached at
3133
- * runtime but kept OUT of the public SDK type (a `unique symbol` in an exported
3134
- * type can't be named in a consumer's emitted `.d.ts`); reach it through the
3135
- * typed `getContext(sdk)` accessor.
3136
- *
3137
- * `Symbol.for`, not `Symbol()`: heads bundle kitcore (tsup `noExternal`), so
3138
- * an sdk built by one bundle's copy must still be readable by another copy's
3139
- * `getContext` / `resolvePlugin` (e.g. a CLI sdk inspected with helpers
3140
- * imported from `@zapier/zapier-sdk`). The global symbol registry makes every
3141
- * copy agree on the key.
3142
- */
3143
- declare const CONTEXT: unique symbol;
3144
3412
  /** The off-surface escape hatch to an SDK's `SdkContext`. */
3145
3413
  declare function getContext(sdk: unknown): SdkContext;
3414
+ /**
3415
+ * Read an SDK's registry from outside its surface, so a head need not re-export
3416
+ * `getRegistryPlugin` for a controller to introspect it. Module-model SDKs go
3417
+ * through the shared, memoized {@link getCachedRegistry} (context-keyed, so this
3418
+ * and a surfaced `getRegistry()` return the same object). A pure-legacy
3419
+ * stack-built SDK has no `[CONTEXT]` graph; for those the only path is a
3420
+ * surfaced `getRegistry()`, so fall back to it when present. Each package
3421
+ * filter is memoized separately.
3422
+ */
3423
+ declare function getRegistry(sdk: unknown, packageFilter?: string): RegistryResult;
3146
3424
  /**
3147
3425
  * Resolve a plugin's materialized value against a built SDK: a method's
3148
3426
  * callable or a property's value (the same thing an importer receives), NOT
@@ -3493,10 +3771,12 @@ interface ControllerParameterDescription {
3493
3771
  /** Statically known labeled values, when the parameter is a fixed enum. Richer
3494
3772
  * than `schema.enum` (carries label/hint), so kept alongside `schema`. */
3495
3773
  choices?: ControllerChoice[];
3496
- /** Sibling parameters this one depends on (`requireParameters`). A form host
3497
- * reads this to know which fields are independent (render together) and which
3498
- * to re-fetch when a dependency changes. */
3499
- requireParameters?: readonly string[];
3774
+ /** Parameters this one depends on (`requireParameters`). A form host reads
3775
+ * this to know which fields are independent (render together) and which to
3776
+ * re-fetch when a dependency changes. A bare name is resolved by the engine
3777
+ * (container, then root); an array is an absolute path. Both are plain JSON,
3778
+ * so this stays serializable across the controller wall. */
3779
+ requireParameters?: readonly (string | readonly (string | number)[])[];
3500
3780
  }
3501
3781
  /** A method's lightweight index entry: enough to render a menu or tool list
3502
3782
  * without the full per-parameter detail. The list face of {@link Controller}. */
@@ -3589,20 +3869,82 @@ interface Controller {
3589
3869
  }>;
3590
3870
  }
3591
3871
 
3592
- /** The slice of a built SDK the driver needs: its registry accessor. */
3593
- interface ControllerSdk {
3872
+ /**
3873
+ * What the driver needs of a built SDK: one of two ways to reach a registry.
3874
+ *
3875
+ * The registry is read with the free {@link getRegistry}, which finds it on the
3876
+ * SDK's context and falls back to a surfaced `getRegistry()` for a legacy
3877
+ * stack-built SDK. So demanding the surfaced method alone is wrong: a bare tool
3878
+ * SDK does not surface one, and it cannot always add `getRegistryPlugin`
3879
+ * either, because a head bundling its own kitcore copy would collide with it on
3880
+ * the shared `kitcore/getRegistry` id.
3881
+ *
3882
+ * A union, because those really are two different shapes. `SdkInternals` is
3883
+ * what every `createSdk` result carries, and the structural branch is the
3884
+ * legacy one. Anything else can never back a controller, and saying so here
3885
+ * beats an internal registry error on the caller's first `listMethods()`.
3886
+ *
3887
+ * The context branch is `SdkInternals`, which declares the `[CONTEXT]` symbol
3888
+ * materialization actually writes. So this checks the real thing rather than a
3889
+ * correlated one.
3890
+ */
3891
+ type ControllerSdk = SdkInternals | {
3594
3892
  getRegistry: (options?: {
3595
3893
  package?: string;
3596
3894
  }) => RegistryResult;
3597
- }
3895
+ };
3598
3896
  /**
3599
- * Build a {@link Controller} over a built SDK. Reads `sdk.getRegistry()`
3897
+ * Build a {@link Controller} over a built SDK. Reads the registry
3600
3898
  * at call time (so post-build `addPlugin` additions are visible) to find each
3601
3899
  * method's canonical input schema and bound resolvers, then drives the engine.
3602
3900
  * The SDK surface itself is untouched; this is a sibling layer.
3603
3901
  */
3604
3902
  declare function createController(sdk: ControllerSdk): Controller;
3605
3903
 
3904
+ /**
3905
+ * The floor the framework holds its own call parameters to, and the only
3906
+ * statement of their shapes. Which of them a given boundary reads at all is
3907
+ * that boundary's {@link FrameworkOptionsPolicy}.
3908
+ *
3909
+ * MINIMAL on purpose. It rejects what the machinery cannot act on and nothing
3910
+ * else, leaving a plugin free to tighten it. `pageSize` is at least 1 because a
3911
+ * page loop asking upstream for zero items does not terminate. `maxItems` may
3912
+ * be 0, since "return nothing" is a coherent request the loop already handles.
3913
+ * `cursor` is any string: its meaning belongs to the head's API, including
3914
+ * whatever a reverse-paginating one encodes in it.
3915
+ *
3916
+ * A plugin that wants a tighter rule writes it in its own `inputSchema`, and
3917
+ * both run. See {@link parseCallOptions}.
3918
+ */
3919
+ declare const CallFrameworkOptionsSchema: z.ZodObject<{
3920
+ cursor: z.ZodOptional<z.ZodString>;
3921
+ pageSize: z.ZodOptional<z.ZodNumber>;
3922
+ maxItems: z.ZodOptional<z.ZodNumber>;
3923
+ skipOutputDataValidation: z.ZodOptional<z.ZodBoolean>;
3924
+ }, z.core.$strip>;
3925
+ type CallFrameworkOptions = z.infer<typeof CallFrameworkOptionsSchema>;
3926
+ type CallFrameworkOptionKey = keyof CallFrameworkOptions;
3927
+ /**
3928
+ * What one boundary does with the framework's call parameters.
3929
+ *
3930
+ * There is no global answer, because the modes differ. A list call feeds a page
3931
+ * loop; an item call has no loop to feed; a legacy handler honors nothing the
3932
+ * framework added after it was written.
3933
+ *
3934
+ * This is a fact about the MODE, decided when the boundary is built. It says
3935
+ * nothing about the plugin's schema, which is the difference between this and
3936
+ * everything {@link parseCallOptions} used to infer.
3937
+ */
3938
+ interface FrameworkOptionsPolicy {
3939
+ /** The parameters this boundary reads. Each is also held to
3940
+ * {@link CallFrameworkOptionsSchema}, whatever the plugin's schema says. */
3941
+ claims: readonly CallFrameworkOptionKey[];
3942
+ /** The subset handed to `run` even when the plugin's schema dropped it,
3943
+ * because `run` cannot do its job without it. A list `run` is asked for one
3944
+ * page, so it gets that page. */
3945
+ injects: readonly CallFrameworkOptionKey[];
3946
+ }
3947
+
3606
3948
  /**
3607
3949
  * Generic utility functions for creating SDK-method wrappers.
3608
3950
  *
@@ -3644,6 +3986,11 @@ declare function createFunction<TOptions, TResult, TSchemaOptions extends TOptio
3644
3986
  * onMethodStart with the normalized input, its result merged into the
3645
3987
  * call's annotation bag. */
3646
3988
  annotator?: (input: unknown) => Annotations;
3989
+ /** Which framework call parameters this callable reads; see
3990
+ * `FrameworkOptionsPolicy`. Omitted means none, which is what a legacy
3991
+ * handler wants: nothing there honors a framework parameter, so every key
3992
+ * in the call object is the handler's own. */
3993
+ frameworkOptions?: FrameworkOptionsPolicy;
3647
3994
  /** Live read of the method's deprecation meta (see signalDeprecation). */
3648
3995
  getDeprecation?: () => FunctionDeprecation | undefined;
3649
3996
  /** Live read of the method's stability level (see signalStability). */
@@ -3684,8 +4031,12 @@ declare function createPaginatedFunction<TUserOptions, TResponse, TItem = ItemTy
3684
4031
  adaptPage?: (response: TResponse) => SdkPage<NoInfer<TItem>>;
3685
4032
  /** Pre-run per-method annotator (see applyAnnotations). */
3686
4033
  annotator?: (input: unknown) => Annotations;
3687
- /** Applied to each canonical page after the shape guard (output validation). */
3688
- finalizePage?: (page: SdkPage<TItem>) => SdkPage<TItem>;
4034
+ /** Applied to each canonical page after the shape guard (output validation),
4035
+ * with this call's options so it can read per-call controls. */
4036
+ finalizePage?: (page: SdkPage<TItem>, callOptions: unknown) => SdkPage<TItem>;
4037
+ /** Which framework call parameters this callable reads; see
4038
+ * `FrameworkOptionsPolicy`. */
4039
+ frameworkOptions?: FrameworkOptionsPolicy;
3689
4040
  /** Live read of the method's deprecation meta (see signalDeprecation). */
3690
4041
  getDeprecation?: () => FunctionDeprecation | undefined;
3691
4042
  /** Live read of the method's stability level (see signalStability). */
@@ -4170,14 +4521,14 @@ type SendHttpRequest = (request: HttpRequest) => ReturnType<typeof fetch>;
4170
4521
  * removes the only boundary below `initializeHttpRequest`, and a retry wrap
4171
4522
  * would then re-initialize and mint a fresh `operationId` per attempt.
4172
4523
  */
4173
- declare const attemptHttpRequestPlugin: MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>;
4524
+ declare const attemptHttpRequestPlugin: MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>;
4174
4525
 
4175
4526
  /**
4176
4527
  * Completes the operation context: normalizes the caller's request and records
4177
4528
  * whether its body can be sent again. Everything below this stage reads those
4178
4529
  * two facts off `attempt.operation`, and neither changes across retries.
4179
4530
  */
4180
- declare const initializeHttpRequestPlugin: MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly []> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>;
4531
+ declare const initializeHttpRequestPlugin: MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>;
4181
4532
 
4182
4533
  /**
4183
4534
  * Options for {@link retryHttpRequestPlugin}, supplied by id like every other
@@ -4207,7 +4558,7 @@ interface RetryHttpRequestOptions {
4207
4558
  retryOnError?: boolean;
4208
4559
  }
4209
4560
  declare const RETRY_HTTP_REQUEST_OPTIONS_ID = "kitcore/retryHttpRequestOptions";
4210
- declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequestOptions", RetryHttpRequestOptions | undefined> & PluginSummary<never, never>;
4561
+ declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequestOptions", RetryHttpRequestOptions | undefined> & PluginSummary<never, never> & StandInId<"kitcore/retryHttpRequestOptions">;
4211
4562
  /**
4212
4563
  * Re-issue a failed attempt, opt-in by composition.
4213
4564
  *
@@ -4239,13 +4590,13 @@ declare const retryHttpRequestOptionsPluginRef: PropertyPlugin<"retryHttpRequest
4239
4590
  */
4240
4591
  declare const retryHttpRequestPlugin: HookPlugin<string>;
4241
4592
 
4242
- declare const prepareHttpRequestPlugin: MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>;
4593
+ declare const prepareHttpRequestPlugin: MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>;
4243
4594
 
4244
- declare const authorizeHttpRequestPlugin: MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>;
4595
+ declare const authorizeHttpRequestPlugin: MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>;
4245
4596
 
4246
- declare const dispatchHttpRequestPlugin: MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>;
4597
+ declare const dispatchHttpRequestPlugin: MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>;
4247
4598
 
4248
- declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>;
4599
+ declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>;
4249
4600
 
4250
4601
  /**
4251
4602
  * The transport orchestrator: turn an {@link HttpRequestInput} into a native
@@ -4274,7 +4625,7 @@ declare const receiveHttpResponsePlugin: MethodPlugin<"receiveHttpResponse", Rec
4274
4625
  * No retry by default: with nothing composed this runs exactly one attempt.
4275
4626
  * `retryHttpRequestPlugin` is opt-in.
4276
4627
  */
4277
- declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly []> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>;
4628
+ declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly [], HttpRequestInput> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>;
4278
4629
 
4279
4630
  /**
4280
4631
  * `fetch` — native `fetch(url, init)` ergonomics over the transport. It
@@ -4300,7 +4651,10 @@ declare const sendHttpRequestPlugin: MethodPlugin<"sendHttpRequest", HttpRequest
4300
4651
  declare const fetchPlugin: MethodPlugin<"fetch", {
4301
4652
  url: string | URL;
4302
4653
  init?: Omit<HttpRequestInput, "url">;
4303
- }, Promise<Response>, readonly ["url", "init"]> & LeafSummary<"kitcore", "fetch", readonly [MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly []> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly []> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly []> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>]>;
4654
+ }, Promise<Response>, readonly ["url", "init"], {
4655
+ url: string | URL;
4656
+ init?: Omit<HttpRequestInput, "url">;
4657
+ }> & LeafSummary<"kitcore", "fetch", readonly [MethodPlugin<"sendHttpRequest", HttpRequestInput, Promise<Response>, readonly [], HttpRequestInput> & LeafSummary<"kitcore", "sendHttpRequest", readonly [MethodPlugin<"initializeHttpRequest", InitializeHttpRequestInput, Promise<HttpOperationContext>, readonly [], InitializeHttpRequestInput> & LeafSummary<"kitcore", "initializeHttpRequest", readonly []>, MethodPlugin<"attemptHttpRequest", AttemptHttpRequestInput, Promise<Response>, readonly [], AttemptHttpRequestInput> & LeafSummary<"kitcore", "attemptHttpRequest", readonly [MethodPlugin<"prepareHttpRequest", PrepareHttpRequestInput, Promise<HttpRequest>, readonly [], PrepareHttpRequestInput> & LeafSummary<"kitcore", "prepareHttpRequest", readonly []>, MethodPlugin<"authorizeHttpRequest", AuthorizeHttpRequestInput, Promise<HttpRequest>, readonly [], AuthorizeHttpRequestInput> & LeafSummary<"kitcore", "authorizeHttpRequest", readonly []>, MethodPlugin<"dispatchHttpRequest", DispatchHttpRequestInput, Promise<Response>, readonly [], DispatchHttpRequestInput> & LeafSummary<"kitcore", "dispatchHttpRequest", readonly []>, MethodPlugin<"receiveHttpResponse", ReceiveHttpResponseInput, Promise<Response>, readonly [], ReceiveHttpResponseInput> & LeafSummary<"kitcore", "receiveHttpResponse", readonly []>]>]>]>;
4304
4658
 
4305
4659
  /**
4306
4660
  * Headers with every credential value masked, as a plain object a logger can
@@ -4346,9 +4700,9 @@ interface NormalizedConnection {
4346
4700
  value: string;
4347
4701
  }
4348
4702
 
4349
- declare const defaultConnectionSchemePlugin: MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly []> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>;
4703
+ declare const defaultConnectionSchemePlugin: MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly [], DefaultConnectionSchemeInput> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>;
4350
4704
 
4351
- declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", NormalizeConnectionInput, NormalizedConnection | undefined, readonly []> & LeafSummary<"kitcore", "normalizeConnection", readonly [MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly []> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>]>;
4705
+ declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", NormalizeConnectionInput, NormalizedConnection | undefined, readonly [], NormalizeConnectionInput> & LeafSummary<"kitcore", "normalizeConnection", readonly [MethodPlugin<"defaultConnectionScheme", DefaultConnectionSchemeInput, string | undefined, readonly [], DefaultConnectionSchemeInput> & LeafSummary<"kitcore", "defaultConnectionScheme", readonly []>]>;
4352
4706
 
4353
4707
  /**
4354
4708
  * SELECT which connection REFERENCE a call should use: the explicit one if the
@@ -4366,6 +4720,6 @@ declare const normalizeConnectionPlugin: MethodPlugin<"normalizeConnection", Nor
4366
4720
  * fatal depends on what the caller declared it needs, which this stage cannot
4367
4721
  * see, so this stays policy-free.
4368
4722
  */
4369
- declare const resolveConnectionPlugin: MethodPlugin<"resolveConnection", ResolveConnectionInput, string | undefined, readonly []> & LeafSummary<"kitcore", "resolveConnection", readonly []>;
4723
+ declare const resolveConnectionPlugin: MethodPlugin<"resolveConnection", ResolveConnectionInput, string | undefined, readonly [], ResolveConnectionInput> & LeafSummary<"kitcore", "resolveConnection", readonly []>;
4370
4724
 
4371
- export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type Annotations, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type AttemptHttpRequestInput, type AuthorizeHttpRequestInput, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CallContext, type CallOrigin, type CategoryDefinition, type ComposedAnnotator, type ConstantResolver$1 as ConstantResolver, type Controller, type ControllerAction, type ControllerAffordance, type ControllerAnswerFn, type ControllerChoice, type ControllerError, type ControllerIssue, type ControllerListingPage, type ControllerListingPosition, type ControllerMethodDescription, type ControllerMethodSummary, type ControllerPagination, type ControllerParameterDescription, type ControllerPath, type ControllerQuestion, type ControllerResult, type ControllerSdk, type ControllerSelectPage, type ControllerState, type CoreApiError, CoreCancelledSignal, CoreDisposeError, CoreError, CoreErrorCode, type CoreErrorOptions, type CoreOptions, CoreSignal, type CreateSdkOptions, type DefaultConnectionSchemeInput, type DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DispatchHttpRequestInput, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookAnnotator, type HookPlugin, type HttpAttemptContext, type HttpFetchInit, type HttpOperationContext, type HttpOperationStart, type HttpPipelineState, type HttpRequest, type HttpRequestInput, type HttpResponse, type InitializeHttpRequestInput, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAnnotator, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, type NegatableMetadata, type NormalizeConnectionInput, type NormalizedConnection, type OnMethodEnd, type OnMethodEndContext, type OnMethodStart, type OnMethodStartContext, type OutputFormatter, type PaginatedSdkFunction, type PaginatedSdkResult, type Plugin, type PluginMeta, type PluginProvides, type PluginStack, type PluginSummary, type PluginSurface, type PositionalMetadata, type PrepareHttpRequestInput, type PromptConfig, type PromptConfigChoice, type PropertyPlugin, RETRY_HTTP_REQUEST_OPTIONS_ID, type ReceiveHttpResponseInput, type RegistryResult, type RequiredSdkOf, type ResolveConnectionInput, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverType, type ResponseMeta, type RetryHttpRequestOptions, STABILITY_LEVELS, STABILITY_TITLES, type Sdk, type SdkContext, type SdkPage, type SendHttpRequest, type StabilityLevel, type StabilityNotice, type StabilityNoticeLogger, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, applyStabilityLabel, attemptHttpRequestPlugin, authorizeHttpRequestPlugin, canonicalInputSchema, composePlugins, concatLists, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createStabilityNoticeLogger, createValidator, dangerousContextPlugin, declareDefault, declareMethod, declareOptionalMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultConnectionSchemePlugin, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, definePlugin, defineProperty, defineResolver, dispatchHttpRequestPlugin, disposeSdk, fetchPlugin, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getNegatable, getOutputSchema, getRegistryPlugin, getSchemaDescription, initializeHttpRequestPlugin, isCoreCancelledSignal, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, normalizeConnectionPlugin, normalizeStability, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, prepareHttpRequestPlugin, receiveHttpResponsePlugin, redactHeaders, redactHttpRequest, resolveConnectionPlugin, resolvePlugin, retryHttpRequestOptionsPluginRef, retryHttpRequestPlugin, runInMethodScope, runWithTelemetryContext, selectExports, sendHttpRequestPlugin, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, validateOptions, withOutputSchema, withPositional, withResolver };
4725
+ export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type Annotations, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type AttemptHttpRequestInput, type AuthorizeHttpRequestInput, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CallContext, type CallOrigin, type CategoryDefinition, type ComposedAnnotator, type ConstantResolver$1 as ConstantResolver, type Controller, type ControllerAction, type ControllerAffordance, type ControllerAnswerFn, type ControllerChoice, type ControllerError, type ControllerIssue, type ControllerListingPage, type ControllerListingPosition, type ControllerMethodDescription, type ControllerMethodSummary, type ControllerPagination, type ControllerParameterDescription, type ControllerPath, type ControllerQuestion, type ControllerResult, type ControllerSdk, type ControllerSelectPage, type ControllerState, type CoreApiError, CoreCancelledSignal, CoreDisposeError, CoreError, CoreErrorCode, type CoreErrorOptions, type CoreOptions, CoreSignal, type CreateSdkOptions, type DefaultConnectionSchemeInput, type DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DispatchHttpRequestInput, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookAnnotator, type HookPlugin, type HttpAttemptContext, type HttpFetchInit, type HttpOperationContext, type HttpOperationStart, type HttpPipelineState, type HttpRequest, type HttpRequestInput, type HttpResponse, type InitializeHttpRequestInput, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAnnotator, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, type NegatableMetadata, type NormalizeConnectionInput, type NormalizedConnection, type OnMethodEnd, type OnMethodEndContext, type OnMethodStart, type OnMethodStartContext, type OutputDataValidationReport, type OutputFormatter, type OverridableMetaFields, type PaginatedSdkFunction, type PaginatedSdkResult, type Plugin, type PluginMeta, type PluginProvides, type PluginStack, type PluginSummary, type PluginSurface, type PositionalMetadata, type PrepareHttpRequestInput, type PromptConfig, type PromptConfigChoice, type PropertyPlugin, RETRY_HTTP_REQUEST_OPTIONS_ID, type ReceiveHttpResponseInput, type RegistryResult, type RequiredSdkOf, type ResolveConnectionInput, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverRequirement, type ResolverType, type ResponseMeta, type RetryHttpRequestOptions, STABILITY_LEVELS, STABILITY_TITLES, type Sdk, type SdkContext, type SdkContextCarrier, type SdkPage, type SendHttpRequest, type StabilityLevel, type StabilityNotice, type StabilityNoticeLogger, type StandInId, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, applyStabilityLabel, attemptHttpRequestPlugin, authorizeHttpRequestPlugin, canonicalInputSchema, composePlugins, concatLists, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createStabilityNoticeLogger, createValidator, dangerousContextPlugin, declareDefault, declareMethod, declareOptionalMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultConnectionSchemePlugin, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, defineOverride, definePlugin, defineProperty, defineResolver, dispatchHttpRequestPlugin, disposeSdk, fetchPlugin, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getNegatable, getOutputSchema, getRegistry, getRegistryPlugin, getSchemaDescription, initializeHttpRequestPlugin, isCoreCancelledSignal, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, normalizeConnectionPlugin, normalizeStability, objectShapeOf, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, prepareHttpRequestPlugin, receiveHttpResponsePlugin, redactHeaders, redactHttpRequest, resolveConnectionPlugin, resolvePlugin, retryHttpRequestOptionsPluginRef, retryHttpRequestPlugin, runInMethodScope, runWithTelemetryContext, selectExports, sendHttpRequestPlugin, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, unwrapSchema, validateOptions, withOutputSchema, withPositional, withResolver };