@zapier/kitcore 0.6.0 → 0.8.0

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.mts CHANGED
@@ -20,27 +20,43 @@ interface SdkPage<T = unknown> {
20
20
  nextCursor?: string;
21
21
  }
22
22
  /**
23
- * Return type of every paginated SDK method. The same value is both:
23
+ * Return type of every paginated SDK method. The documented surface is:
24
24
  *
25
- * - a Promise that resolves to the first page (`SdkPage<TItem>`), and
26
- * - an AsyncIterable that yields each page in turn,
25
+ * - `await` the result for the first page (`SdkPage<TItem>`),
26
+ * - `.pages()` for an AsyncIterable over pages, and
27
+ * - `.items()` for an AsyncIterable over individual items across pages.
27
28
  *
28
- * with an `.items()` method that returns an AsyncIterable over individual
29
- * items across all pages. Named so paginated plugin signatures serialize
30
- * as `PaginatedSdkResult<AppItem>` in `.d.ts` rather than expanding the
31
- * full triple-intersection at every callsite.
29
+ * `.pages()` and `.items()` return plain iterables (not thenables), so they
30
+ * survive being returned from an `async` function; the result itself is a
31
+ * thenable, so an `async` boundary silently collapses it to the first page.
32
+ * Named so paginated plugin signatures serialize as
33
+ * `PaginatedSdkResult<AppItem>` in `.d.ts` rather than expanding the full
34
+ * intersection at every callsite.
32
35
  *
33
36
  * The faces share one underlying cursor, so a result is consumed once:
34
37
  *
35
38
  * - `await` / `.then()` read the buffered first page without starting the
36
39
  * stream, so awaiting is a repeatable peek and you can still iterate the
37
40
  * result afterward.
38
- * - The page-iterable and `.items()` are two views over one page stream, so
39
- * consuming either drains the other: the second view yields nothing (it
40
- * does not replay page 1). To read a result more than once, call the
41
- * method again for a fresh result.
41
+ * - `.pages()`, `.items()`, and the deprecated bare iteration are views
42
+ * over one page stream, so consuming any view drains the others: the
43
+ * second view yields nothing (it does not replay page 1). To read a
44
+ * result more than once, call the method again for a fresh result.
42
45
  */
43
- interface PaginatedSdkResult<TItem> extends Promise<SdkPage<TItem>>, AsyncIterable<SdkPage<TItem>> {
46
+ interface PaginatedSdkResult<TItem> extends Promise<SdkPage<TItem>> {
47
+ /**
48
+ * @deprecated Iterate `.pages()` instead. Bare iteration works but is easy
49
+ * to break: because the result is also a thenable, an `async` boundary
50
+ * collapses it to its first page and the iterable is silently lost.
51
+ *
52
+ * Deliberately no runtime deprecation warning: this face is not scheduled
53
+ * for deletion (removing it is a breaking change deferred to a separate
54
+ * decision), and structural consumers such as the CLI's page streaming
55
+ * detect pagination via `Symbol.asyncIterator`, so a warning would fire on
56
+ * the SDK's own machinery.
57
+ */
58
+ [Symbol.asyncIterator](): AsyncIterator<SdkPage<TItem>>;
59
+ pages(): AsyncIterable<SdkPage<TItem>>;
44
60
  items(): AsyncIterable<TItem>;
45
61
  }
46
62
  type PaginatedSdkFunction<TOptions, TItem> = (options: TOptions) => PaginatedSdkResult<TItem>;
@@ -134,15 +150,17 @@ type ListPromptConfig = PromptConfig & {
134
150
  };
135
151
  /**
136
152
  * The prompt config the NEW-model resolvers (`defineResolver`) return. It omits
137
- * three fields the resolution controller does not honor, so authors can't
153
+ * four fields the resolution controller does not honor, so authors can't
138
154
  * supply a silent no-op:
139
- * - `name` — the framework supplies the answer key (always was overwritten).
140
- * - `default`— no resolver uses it; the controller has no preselect concept.
141
- * - `filter` — no resolver uses it; transform values in `listItems` instead.
142
- * (The legacy `SchemaParameterResolver` still honors `default`/`filter`, so the
143
- * full `PromptConfig` stays for that path.)
144
- */
145
- type ResolverPromptConfig = Omit<PromptConfig, "name" | "default" | "filter">;
155
+ * - `name` — the framework supplies the answer key (always was overwritten).
156
+ * - `default` no resolver uses it; the controller has no preselect concept.
157
+ * - `filter` — no resolver uses it; transform values in `listItems` instead.
158
+ * - `validate`— validation is the resolver's top-level `validate`, which
159
+ * never routes through rendering (and gets `imports`).
160
+ * (The legacy `SchemaParameterResolver` still honors `default`/`filter`/
161
+ * `validate`, so the full `PromptConfig` stays for that path.)
162
+ */
163
+ type ResolverPromptConfig = Omit<PromptConfig, "name" | "default" | "filter" | "validate">;
146
164
  interface Resolver$1 {
147
165
  type: string;
148
166
  depends?: readonly string[] | string[];
@@ -571,11 +589,27 @@ interface DynamicResolver extends ResolverBase {
571
589
  cursor?: string;
572
590
  }) => ListItemsResult<unknown>;
573
591
  prompt?: (bag: {
592
+ /** The CURRENT page's items only — the engine windows the listing one
593
+ * page at a time (an accumulating host may be showing more). Rendering
594
+ * input only; validation is the top-level `validate`. */
574
595
  items: unknown[];
575
596
  input: Record<string, unknown>;
576
597
  /** The value `getContext` returned, if any. */
577
598
  context?: unknown;
578
599
  }) => ResolverPromptConfig;
600
+ /** Check a chosen/typed value before the engine accepts it. Async with
601
+ * `imports` so it can verify against the source (`tryResolveFromSearch`'s
602
+ * sibling for picks) — never against a loaded page: pagination means the
603
+ * pick can come from a page the engine no longer holds. Return true to
604
+ * accept or a message to re-ask with. A throw is a lookup failure (the
605
+ * host gets retry/cancel), not a rejection. */
606
+ validate?: (bag: {
607
+ imports: Record<string, unknown>;
608
+ value: unknown;
609
+ input: Record<string, unknown>;
610
+ /** The value `getContext` returned, if any. */
611
+ context?: unknown;
612
+ }) => Promise<true | string> | true | string;
579
613
  /** Resolve with no user input at all (e.g. a configured default), skipping the
580
614
  * prompt. Runs before prompting; used always in non-interactive mode and as a
581
615
  * "can we skip asking?" check otherwise. Returns null to fall through to a prompt. */
@@ -726,6 +760,11 @@ interface BoundDynamicResolver extends BoundResolverBase {
726
760
  input: Record<string, unknown>;
727
761
  context?: unknown;
728
762
  }) => ResolverPromptConfig;
763
+ validate?: (bag: {
764
+ value: unknown;
765
+ input: Record<string, unknown>;
766
+ context?: unknown;
767
+ }) => Promise<true | string> | true | string;
729
768
  tryResolveWithoutPrompt?: (bag: {
730
769
  input: Record<string, unknown>;
731
770
  }) => Promise<{
@@ -2108,6 +2147,18 @@ declare function defineResolver<const TImports extends ImportsInput = readonly [
2108
2147
  /** The value `getContext` returned, if any. */
2109
2148
  context?: TContext;
2110
2149
  }) => ResolverPromptConfig;
2150
+ /** Check a chosen/typed value before the engine accepts it. Async with
2151
+ * `imports` so it can verify against the source — never against a loaded
2152
+ * page (the pick can come from a page the engine no longer holds). Return
2153
+ * true to accept or a message to re-ask with; a throw is a lookup failure
2154
+ * (retry/cancel), not a rejection. */
2155
+ validate?: (bag: {
2156
+ imports: ImportsOf<TImports>;
2157
+ value: unknown;
2158
+ input: TInput;
2159
+ /** The value `getContext` returned, if any. */
2160
+ context?: TContext;
2161
+ }) => Promise<true | string> | true | string;
2111
2162
  /** Resolve with no user input (e.g. a configured default), skipping the prompt. */
2112
2163
  tryResolveWithoutPrompt?: (bag: {
2113
2164
  imports: ImportsOf<TImports>;
@@ -2741,12 +2792,14 @@ interface ControllerAffordance {
2741
2792
  /** A question the host renders. Discriminated on `type`; the available moves are
2742
2793
  * the self-describing `actions` list (single source of truth, no flags).
2743
2794
  * `actions` is emitted in recommended presentation order — answer directly
2744
- * (`choose`/`custom`/`add`), refine (`search`), paginate (`more`), decline
2745
- * (`skip`/`done`), and failure questions offer `retry` then `cancel` — so a
2746
- * minimal host can render the list verbatim, top to bottom. Hosts with richer
2747
- * widgets (windowed lists, filter state) may reorder. */
2795
+ * (`choose`/`custom`/`add`), refine (`search`), paginate
2796
+ * (`next_page`/`previous_page`), decline (`skip`/`done`), and failure
2797
+ * questions offer `retry` then `cancel` so a minimal host can render the
2798
+ * list verbatim, top to bottom. Hosts with richer widgets (windowed lists,
2799
+ * filter state) may reorder. */
2748
2800
  type ControllerQuestion = {
2749
2801
  type: "select";
2802
+ path: ControllerPath;
2750
2803
  message: string;
2751
2804
  /** What this field is, for an agent that lacks the schema. */
2752
2805
  description?: string;
@@ -2769,8 +2822,18 @@ type ControllerQuestion = {
2769
2822
  * in its lead-with-term prompt (e.g. "Enter or search app (e.g. 'slack')").
2770
2823
  * Only meaningful before a search has run. */
2771
2824
  placeholder?: string;
2825
+ /** Where these `choices` sit in the paginated listing. `choices` is ONE
2826
+ * page (payloads stay O(page); the engine never re-sends earlier pages).
2827
+ * A window host renders the page and pages with
2828
+ * `next_page`/`previous_page`; an accumulating host appends pages
2829
+ * client-side: same `path` + same `generation` +
2830
+ * advancing `index` means "extend what you showed", and a `generation`
2831
+ * change (a search ran) means "start over". Absent on unpaginated
2832
+ * selects (static enums). */
2833
+ page?: ControllerSelectPage;
2772
2834
  } | {
2773
2835
  type: "input";
2836
+ path: ControllerPath;
2774
2837
  message: string;
2775
2838
  description?: string;
2776
2839
  inputType: "text" | "password" | "email";
@@ -2778,6 +2841,7 @@ type ControllerQuestion = {
2778
2841
  actions: ControllerAffordance[];
2779
2842
  } | {
2780
2843
  type: "collection";
2844
+ path: ControllerPath;
2781
2845
  message: string;
2782
2846
  description?: string;
2783
2847
  /** Which container kind this decision gates. `array` is the add-another
@@ -2806,6 +2870,15 @@ type ControllerQuestion = {
2806
2870
  max?: number;
2807
2871
  actions: ControllerAffordance[];
2808
2872
  };
2873
+ /** A select question's position in its paginated listing. */
2874
+ interface ControllerSelectPage {
2875
+ /** Increments whenever the listing restarts (a `search` ran, even with the
2876
+ * same term). An accumulating host discards what it has on a new
2877
+ * generation. */
2878
+ generation: number;
2879
+ /** Zero-based page number within this generation. */
2880
+ index: number;
2881
+ }
2809
2882
  /** The host's response to a question. The wire shape is frozen: a fuller
2810
2883
  * HATEOAS affordance schema would still produce exactly these. */
2811
2884
  type ControllerAction = {
@@ -2815,7 +2888,9 @@ type ControllerAction = {
2815
2888
  type: "search";
2816
2889
  term: string;
2817
2890
  } | {
2818
- type: "more";
2891
+ type: "next_page";
2892
+ } | {
2893
+ type: "previous_page";
2819
2894
  } | {
2820
2895
  type: "custom";
2821
2896
  value: string;
@@ -2836,7 +2911,7 @@ type ControllerAction = {
2836
2911
  type ControllerResult = {
2837
2912
  status: "ask";
2838
2913
  question: ControllerQuestion;
2839
- /** The prior answer's validation failure (`PromptConfig.validate`), when
2914
+ /** The prior answer's validation failure (the resolver's `validate`), when
2840
2915
  * this is a re-ask. About the last transition, not the question itself. */
2841
2916
  error?: string;
2842
2917
  } | {
@@ -2889,9 +2964,10 @@ interface ControllerState {
2889
2964
  * add/done handling never infers the decision from value presence or
2890
2965
  * resolver shape. Absent when `current` is a plain leaf question. */
2891
2966
  gate?: "array" | "entry" | "optionals";
2892
- /** Listing progress for the current dynamic leaf (serializable: items +
2893
- * cursor, never a live iterator). */
2894
- listing?: ControllerListing;
2967
+ /** Where pagination stands for the current dynamic leaf: coordinates only
2968
+ * (cursor trail, generation), never items or live iterators — the page's
2969
+ * items ride the ask's question. */
2970
+ pagination?: ControllerPagination;
2895
2971
  /** Whether the host will prompt. Interactive (the default) always asks;
2896
2972
  * non-interactive runs `tryResolveWithoutPrompt` to auto-fill what it can
2897
2973
  * (e.g. configured defaults) before asking for the rest. */
@@ -2900,14 +2976,42 @@ interface ControllerState {
2900
2976
  /** A location in the input tree: top-level `["app"]`, a nested object field
2901
2977
  * `["inputs", "channel"]`, or (later) an array item `["records", 0, "id"]`. */
2902
2978
  type ControllerPath = (string | number)[];
2903
- /** Accumulated candidate items for the current dynamic parameter, plus the
2904
- * serializable cursor for "load more" and the active search term. */
2905
- interface ControllerListing {
2906
- items: unknown[];
2907
- cursor?: string;
2979
+ /** Where a listing currently stands: the coordinates that make one page of a
2980
+ * dynamic parameter's candidates fetchable and re-fetchable with no
2981
+ * shared in-memory state. `previous_page` and `retry` work by re-issuing a
2982
+ * recorded position. */
2983
+ interface ControllerListingPosition {
2984
+ /** The active search term, when the resolver is search-mode. */
2908
2985
  search?: string;
2909
- /** True when the source reported no further pages. */
2910
- exhausted: boolean;
2986
+ /** Cursor that fetched the current page; `null` is the first page. */
2987
+ pageCursor: string | null;
2988
+ /** Cursors of the pages before this one, oldest first (each entry fetches
2989
+ * that page; `null` is the first page). `previous_page` pops the last. */
2990
+ previousCursors: (string | null)[];
2991
+ /** Increments on every listing restart (each `search`). Surfaced to hosts
2992
+ * via {@link ControllerSelectPage} so accumulators know when to reset. */
2993
+ generation: number;
2994
+ }
2995
+ /** The enumeration in progress for the current dynamic parameter:
2996
+ * coordinates only. The fetched items ride the ask's `question.choices`; the
2997
+ * host carries back these cursors between steps, never the items it was just
2998
+ * shown. Anything the engine needs to redraw (a validate-rejection re-ask) it
2999
+ * re-fetches statelessly from `position`. */
3000
+ interface ControllerPagination {
3001
+ position: ControllerListingPosition;
3002
+ /** Resume point for `next_page`; absent on the last page. */
3003
+ nextCursor?: string;
3004
+ /** The position whose fetch failed, kept so `retry` replays exactly it.
3005
+ * Absent when the page loaded. */
3006
+ retryPosition?: ControllerListingPosition;
3007
+ }
3008
+ /** One fetched page of a listing: the position it was fetched at plus what
3009
+ * came back. Never stored: `toPagination` strips it to the coordinates the
3010
+ * state keeps. */
3011
+ interface ControllerListingPage {
3012
+ position: ControllerListingPosition;
3013
+ items: unknown[];
3014
+ nextCursor?: string;
2911
3015
  }
2912
3016
  /**
2913
3017
  * The one pluggable seam for the in-process `resolve` sugar. It receives the
@@ -3287,30 +3391,55 @@ interface PaginatedResult<TItem> {
3287
3391
  data: TItem[];
3288
3392
  nextCursor?: string;
3289
3393
  }
3290
- type PaginatedSource<TItem> = () => PromiseLike<PaginatedResult<TItem>> & AsyncIterable<PaginatedResult<TItem>>;
3291
3394
  /**
3292
- * Concatenate multiple paginated SDK results into a single paginated stream.
3293
- * Each source is a function returning a dual Promise+AsyncIterable (as SDK
3294
- * paginated methods return). Sources are drained in order.
3295
- *
3296
- * The optional `dedupe` key extractor filters items from source N against
3297
- * all items seen in sources 0 through N-1.
3298
- *
3299
- * Uses paginateBuffered internally to normalize page sizes across source
3300
- * boundaries — e.g. if the first source only has 2 items, they'll be
3301
- * buffered with items from the next source into a full page.
3302
- *
3303
- * Returns the same dual Promise+AsyncIterable shape that resolvers expect.
3395
+ * Supplies one list to `concatLists`: called with that list's own cursor,
3396
+ * resolves one page. An SDK paginated method fits directly
3397
+ * (`({ cursor }) => sdk.listThings({ cursor })`; awaiting a paginated
3398
+ * result yields the requested page).
3304
3399
  */
3305
- declare function concatPaginated<TItem>({ sources, dedupe, pageSize, }: {
3306
- sources: PaginatedSource<TItem>[];
3307
- dedupe?: (item: TItem) => string;
3400
+ type ListSource<TItem> = (options: {
3401
+ cursor?: string;
3402
+ }) => PromiseLike<PaginatedResult<TItem>>;
3403
+ /**
3404
+ * List one page of several paginated lists joined end to end. Lists are
3405
+ * drained in order; pass a page's `nextCursor` back in to get the next page.
3406
+ *
3407
+ * Pagination is stateless: every outgoing cursor encodes which list to
3408
+ * resume plus that list's own cursor, so a fresh `concatLists` call
3409
+ * continues exactly where the previous page left off. A cursor stores its
3410
+ * position by list index, so it is only valid while `sources` keeps the
3411
+ * same lists in the same order. Lists must produce disjoint items
3412
+ * themselves; there is no cross-list dedupe (an in-memory seen-set could
3413
+ * not survive the cursor round-trip).
3414
+ *
3415
+ * Uses paginateBuffered internally to normalize page sizes across list
3416
+ * boundaries: if the first list only has 2 items, they'll be buffered with
3417
+ * items from the next list into a full page.
3418
+ */
3419
+ declare function concatLists<TItem>({ sources, pageSize, cursor, }: {
3420
+ /** The lists to concatenate, each supplied as a page-fetching source. */
3421
+ sources: ListSource<TItem>[];
3308
3422
  pageSize?: number;
3309
- }): PromiseLike<PaginatedResult<TItem>> & AsyncIterable<PaginatedResult<TItem>>;
3423
+ /** Cursor from a previous `concatLists` page; resumes there. */
3424
+ cursor?: string;
3425
+ }): Promise<PaginatedResult<TItem>>;
3426
+ /**
3427
+ * @deprecated Use {@link concatLists}; awaiting either yields the same one
3428
+ * page. The page-iterable half of the old return shape is gone; to walk
3429
+ * pages, pass each page's `nextCursor` to a fresh call.
3430
+ */
3431
+ declare function concatPaginated<TItem>({ sources, pageSize, cursor, }: {
3432
+ sources: ListSource<TItem>[];
3433
+ pageSize?: number;
3434
+ cursor?: string;
3435
+ }): Promise<PaginatedResult<TItem>>;
3310
3436
  /**
3311
3437
  * Strip the PromiseLike from an async iterable, returning a plain
3312
3438
  * AsyncIterable. This prevents async functions from unwrapping the
3313
3439
  * iterable (since async only unwraps PromiseLike, not AsyncIterable).
3440
+ *
3441
+ * @deprecated Call `.pages()` on the paginated result instead; it returns a
3442
+ * plain AsyncIterable over pages with no wrapper needed.
3314
3443
  */
3315
3444
  declare function toIterable<T>(source: AsyncIterable<T>): AsyncIterable<T>;
3316
3445
 
@@ -3395,4 +3524,4 @@ declare class CoreCancelledSignal extends CoreSignal {
3395
3524
  constructor(message?: string);
3396
3525
  }
3397
3526
 
3398
- export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CategoryDefinition, type ConstantResolver$1 as ConstantResolver, type Controller, type ControllerAction, type ControllerAffordance, type ControllerAnswerFn, type ControllerChoice, type ControllerError, type ControllerIssue, type ControllerListing, type ControllerMethodDescription, type ControllerMethodSummary, type ControllerParameterDescription, type ControllerPath, type ControllerQuestion, type ControllerResult, type ControllerSdk, type ControllerState, type CoreApiError, CoreCancelledSignal, CoreDisposeError, CoreError, CoreErrorCode, type CoreErrorOptions, type CoreOptions, CoreSignal, type CreateSdkOptions, type DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookPlugin, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, 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 PromptConfig, type PromptConfigChoice, type PropertyPlugin, type RegistryResult, type RequiredSdkOf, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverType, type Sdk, type SdkContext, type SdkPage, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, composePlugins, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createValidator, dangerousContextPlugin, declareMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, definePlugin, defineProperty, defineResolver, disposeSdk, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getOutputSchema, getRegistryPlugin, getSchemaDescription, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, resolvePlugin, runInMethodScope, runWithTelemetryContext, selectExports, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, validateOptions, withOutputSchema, withPositional, withResolver };
3527
+ export { type AdaptError, type AdaptErrorOptions, type AdaptPage, type AggregatePlugin, type ArrayResolver$1 as ArrayResolver, type AsyncContext, type BoundFormatter, type BoundResolver, CONTEXT, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, type CategoryDefinition, 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 DeprecatedPromptConfigChoice, type DeprecationLogger, type DeprecationWarning, type DisposeFn, type DynamicListResolver, type DynamicMember, type DynamicResolver$1 as DynamicResolver, type DynamicSearchResolver, type FieldsResolver, type FormattedItem, type Formatter, type FunctionDeprecation, type FunctionRegistryEntry, type HookPlugin, type LeafMeta, type LeafSummary, type LegacyMergePlugin, type LegacyPlugin, type ListItemsResult, type ListPromptConfig, type MethodAttachment, type MethodHooks, type MethodOverridePlugin, type MethodPlugin, type MethodScope, type Resolver as ModelResolver, 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 PromptConfig, type PromptConfigChoice, type PropertyPlugin, type RegistryResult, type RequiredSdkOf, type Resolver$1 as Resolver, type ResolverConfig, type ResolverFieldItem, type ResolverMetadata, type ResolverPromptConfig, type ResolverType, type Sdk, type SdkContext, type SdkPage, type StaticResolver$1 as StaticResolver, type ValidResolvers, addPlugin, composePlugins, concatLists, concatPaginated, coreOptionsPluginRef, createAsyncContext, createController, createCoreError, createCorePlugin, createDeprecationLogger, createFunction, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createPrefixedCursor, createSdk, createValidator, dangerousContextPlugin, declareMethod, declareOptionalProperty, declarePlugin, declareProperty, decodeIncomingCursor, defaultLogDeprecation, defineFormatter, defineHook, defineLegacyMerge, defineMethod, defineMethodOverride, definePlugin, defineProperty, defineResolver, disposeSdk, fromFunctionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCurrentDepth, getCurrentScope, getFieldDescriptions, getOutputSchema, getRegistryPlugin, getSchemaDescription, isCoreError, isCoreSignal, isNestedMethodCall, isPositional, isTelemetryNested, omitExports, openEnum, paginate, paginateBuffered, paginateMaxItems, resolvePlugin, runInMethodScope, runWithTelemetryContext, selectExports, splitPrefixedCursor, toIterable, toSnakeCase, toTitleCase, validateOptions, withOutputSchema, withPositional, withResolver };