@vornrun/connector-sdk 0.7.1-beta.1 → 0.7.1-beta.3

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/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # @vornrun/connector-sdk
2
2
 
3
3
  Build a Vorn pull connector in TypeScript and share it as an ordinary npm
4
- package. A connector built with this SDK runs as an MCP stdio server, and
5
- Vorn's generic MCP connector already knows how to talk to one.
4
+ package. A connector built with this SDK runs as a child process that speaks
5
+ Vorn's connector protocol JSON-RPC, one message per line, over stdio — so
6
+ Vorn needs no code of its own to run it.
6
7
 
7
8
  ```bash
8
9
  npm install @vornrun/connector-sdk
@@ -84,6 +85,10 @@ await serveConnector(connector)
84
85
 
85
86
  Publish it like any other package (`"bin": { "acme-connector": "dist/bin.js" }`).
86
87
 
88
+ stdout carries only replies to Vorn. Once `serveConnector` has started,
89
+ anything else written to stdout goes to stderr, so call it before printing
90
+ anything.
91
+
87
92
  `vorn-connector new acme` writes all of the above — package, entry, definition,
88
93
  a test that needs no network — already building, checking and packing.
89
94
 
@@ -127,10 +132,10 @@ a live connection names a set the connector serves.
127
132
 
128
133
  Choices are **suggestions, not a closed set**. Vorn draws a picker while the
129
134
  value is one of them and its template-aware input whenever it is not, because a
130
- step is entitled to compute the value from an earlier one — so the served tool
131
- schema keeps the argument a plain string and lists the choices in its
132
- description. Your action still receives whatever was finally sent, and it is
133
- the connector's job to refuse a value it cannot use.
135
+ step is entitled to compute the value from an earlier one — so the manifest
136
+ carries the choices as suggestions and nothing refuses a value outside them.
137
+ Your action still receives whatever was finally sent, and it is the
138
+ connector's job to refuse a value it cannot use.
134
139
 
135
140
  ```ts
136
141
  options: { channels: async ({ config, fetch }) => ['general', 'random'] },
@@ -142,14 +147,17 @@ actions: [{
142
147
  }]
143
148
  ```
144
149
 
145
- `loadOptions` is served today but not yet consumed: the SDK registers a
146
- `vorn_connector_options` tool and answers it, and the manifest carries the set's
147
- name, but the app does not fetch the list yet — such a field is edited as text
148
- until it does. Declaring it now is what makes it work then; a field whose
149
- choices are already known should use `options` instead.
150
+ `loadOptions` is served today but not yet consumed: the SDK answers
151
+ `connector/options` for the set, and the manifest carries the set's name, but
152
+ the app does not fetch the list yet — such a field is edited as text until it
153
+ does. Declaring it now is what makes it work then; a field whose choices are
154
+ already known should use `options` instead.
150
155
 
151
- A `json` argument arrives parsed. `builderHint` on a field is a note for whoever
152
- writes the next connector, not for whoever runs this one.
156
+ Arguments arrive as JSON values. One that already has its declared type is
157
+ taken as it is, text a template rendered is read as that type, and a `json`
158
+ argument arrives parsed. A value that cannot be read fails the step with an
159
+ error naming the field. `builderHint` on a field is a note for whoever writes
160
+ the next connector, not for whoever runs this one.
153
161
 
154
162
  ## Poll a database instead of an API
155
163
 
@@ -326,7 +334,9 @@ call escaped instead of quietly reaching a real service.
326
334
  The stub replaces `fetch`, and only `fetch`. A connector that shells out to a
327
335
  CLI or opens its own socket is not intercepted by it, so `--mock` reports any
328
336
  action the stub never heard from as `mock-not-observed` and leaves `mock` out
329
- of the receipt rather than vouching for a run it did not see.
337
+ of the receipt rather than vouching for a run it did not see. An action that
338
+ returns a declared output as another type than it declares is reported as
339
+ `mock-output-type`: Vorn keeps what came back, but a later step reads the type.
330
340
 
331
341
  ```ts
332
342
  {
@@ -365,23 +375,28 @@ test('does not redeliver the same backlog forever', async () => {
365
375
 
366
376
  ## Install it in Vorn
367
377
 
368
- **Settings → Connectors MCP From a package**, then type the package name.
378
+ In **Settings → Connectors**, add a connection **From a package** and type the
379
+ package name, or use **Install from file** for a pack.
369
380
 
370
- Vorn starts the connector once, asks it to describe itself, and fills in the
371
- connection settings from the answer. All that is left on screen is the
372
- connector's own name, its triggers, and the config it declared.
381
+ Vorn starts the connector, says `vorn/hello`, asks for `connector/manifest`,
382
+ and fills in the connection settings from the answer. All that is left on
383
+ screen is the connector's own name, its triggers, and the config it declared.
384
+ Polls are `trigger/poll` and actions are `action/run`, each carrying typed
385
+ arguments; a failure comes back with a kind (`validation`, `app-offline`,
386
+ `signed-out`, `upstream` or `internal`) that decides what Vorn tells you. A
387
+ declared request sorts its own failures; a `run()` that reads a failing status
388
+ can `throw new UpstreamStatusError(status, message, viaSession)`, where
389
+ `viaSession` says the call went through `ctx.session.fetch`, so a 401 or 403
390
+ reads as signed out.
373
391
 
374
- Nothing needs transcribing: `pollTool`, `itemsPath`, `idField`,
375
- `timestampField`, `titleField`, `urlField`, `cursorArg` and `cursorPath` all
376
- come from the manifest. `cursorArg` is what makes the dedupe strategy
377
- load-bearing — Vorn hands the connector back its own cursor on every poll and
378
- fires for whatever it returns, rather than re-filtering by timestamp itself.
392
+ Vorn hands the connector back its own cursor on every poll and fires for
393
+ whatever it returns, rather than re-filtering by timestamp itself — which is
394
+ what makes the dedupe strategy load-bearing.
379
395
 
380
396
  Because the connector is a normal npm package, versions are pinned by the
381
397
  package spec and upgrades are a version bump — no separate registry.
382
398
 
383
- To see the same values on the command line, or to wire a connection up by
384
- hand:
399
+ To see a connector's triggers and the environment each reads:
385
400
 
386
401
  ```bash
387
402
  npx vorn-connector setup ./dist/index.js
@@ -421,7 +436,7 @@ it on **Settings → Connectors** and Vorn launches it from disk.
421
436
 
422
437
  ### Ship an icon
423
438
 
424
- Without one, a connector shows the generic MCP glyph and is hard to pick out
439
+ Without one, a connector shows a generic glyph and is hard to pick out
425
440
  of a list of connections.
426
441
 
427
442
  ```ts
@@ -565,7 +580,7 @@ linkHandlers: [
565
580
  ```
566
581
  vorn-connector new <id> Scaffold a new connector, ready to build
567
582
  vorn-connector manifest <module> Print the manifest as JSON
568
- vorn-connector setup <module> [trigger] Print the Vorn connection settings
583
+ vorn-connector setup <module> [trigger] Print each trigger and the environment it reads
569
584
  vorn-connector poll <module> <trigger> Run one poll against the environment
570
585
  vorn-connector check <module> Verify the connector against the contract
571
586
  vorn-connector pack <module> Build an installable .vorn.tgz pack
@@ -1,11 +1,4 @@
1
- /**
2
- * Author-facing types for Vorn connectors.
3
- *
4
- * A connector written with this SDK runs as an ordinary MCP stdio server, so
5
- * it is shared as a normal npm package and installed by pointing a Vorn
6
- * connection at `npx -y <package>`. Nothing about the host app has to change
7
- * to accept a new connector.
8
- */
1
+ /** Author-facing types for Vorn connectors: npm packages Vorn starts and speaks its connector protocol to. */
9
2
  /** A raw item as the author's code returns it. Only id and title are required. */
10
3
  interface ConnectorItem {
11
4
  /** Stable upstream identity. Vorn dedupes on this, so it must not change. */
@@ -144,7 +137,7 @@ interface DefaultWorkflow {
144
137
  defaultCronFromMinutes: number;
145
138
  }
146
139
  interface TriggerBase {
147
- /** Event key, e.g. `workItemCreated`. Becomes the `poll_<type>` MCP tool. */
140
+ /** Event key, e.g. `workItemCreated`; the name Vorn polls the trigger by. */
148
141
  type: string;
149
142
  label: string;
150
143
  description?: string;
@@ -181,13 +174,7 @@ type TriggerDefinition = TriggerBase & ({
181
174
  dedupe?: never;
182
175
  fetch?: never;
183
176
  });
184
- /**
185
- * What kind of value an action argument takes.
186
- *
187
- * Every argument still arrives as a string — Vorn renders them from templates —
188
- * so this says how to read one, and how to draw its field. `select` is a
189
- * string with known choices; `json` is a string holding a structured value.
190
- */
177
+ /** How to read an argument, often template text, and draw its field; `select` has choices, `json` holds structure. */
191
178
  type ActionInputType = 'string' | 'number' | 'boolean' | 'select' | 'json';
192
179
  /** One choice a `select` argument offers. */
193
180
  interface ActionInputOption {
@@ -219,7 +206,7 @@ interface ActionInputField {
219
206
  */
220
207
  interface ActionOutputField {
221
208
  key: string;
222
- type?: 'string' | 'number' | 'boolean';
209
+ type?: 'string' | 'number' | 'boolean' | 'array' | 'object';
223
210
  description?: string;
224
211
  }
225
212
  interface ActionContext {
@@ -314,16 +301,11 @@ interface ActionRequest {
314
301
  paginate?: PaginationStrategy;
315
302
  }
316
303
  interface ActionBase {
317
- /** Action key, e.g. `closeWorkItem`. Becomes an MCP tool of the same name. */
304
+ /** Action key, e.g. `closeWorkItem`; the name Vorn runs the action by. */
318
305
  type: string;
319
306
  label: string;
320
307
  description?: string;
321
- /**
322
- * Whether repeating the call with the same arguments is safe. Surfaced in
323
- * the MCP tool description, because an agent retrying a failed step has no
324
- * other way to know whether it is about to create a second issue — and it is
325
- * what decides whether the SDK may retry the call itself.
326
- */
308
+ /** Whether repeating the call with the same arguments is safe; decides whether the SDK or an agent may retry it. */
327
309
  idempotent?: boolean;
328
310
  inputs?: ActionInputField[];
329
311
  outputs?: ActionOutputField[];
@@ -696,15 +678,6 @@ declare function readNearestPackageJson(fromDir: string): Record<string, unknown
696
678
  /** The bundler `pack` uses, shared so `check` gates on the same answer. */
697
679
  declare function esbuildBundle(request: BundleRequest): Promise<BundleOutput>;
698
680
 
699
- /**
700
- * Surviving an upstream's bad minute.
701
- *
702
- * Every connector eventually meets the same three answers — a rate limit, a
703
- * gateway that briefly forgot how to work, a socket that died mid-call — and
704
- * every author writes the same retry loop for them, usually without the one
705
- * part that matters: only repeating calls that are safe to repeat. Doing it
706
- * here means a connector gets it by saying nothing at all.
707
- */
708
681
  interface RetryPolicy {
709
682
  /** Total tries, including the first. Defaults to 3. */
710
683
  attempts?: number;
@@ -757,7 +730,7 @@ interface RunPollOptions {
757
730
  fetchImpl?: typeof fetch;
758
731
  /** Replaced by the harness and by tests; defaults to the signed-in window Vorn serves. */
759
732
  sessionFetchImpl?: typeof fetch;
760
- /** The key Vorn gave this tool call, carried on each request through the window. */
733
+ /** The key Vorn gave this call, carried on each request through the window. */
761
734
  sessionCall?: string;
762
735
  retry?: RetryPolicy;
763
736
  /** Replaced in tests so backoff costs no real time. */
@@ -766,7 +739,7 @@ interface RunPollOptions {
766
739
  /** Longest chain of pages `drainPoll` will follow before calling it a bug. */
767
740
  declare const MAX_POLL_PAGES = 1000;
768
741
  /**
769
- * Run one poll page and normalize it. Shared by the MCP server, the CLI and
742
+ * Run one poll page and normalize it. Shared by the stdio server, the CLI and
770
743
  * the test harness so all three observe exactly what Vorn will observe.
771
744
  */
772
745
  declare function runPoll(connector: Connector, triggerType: string, options?: RunPollOptions): Promise<PollPage>;
@@ -783,7 +756,7 @@ interface RunActionOptions {
783
756
  fetchImpl?: typeof fetch;
784
757
  /** Replaced by the harness and by tests; defaults to the signed-in window Vorn serves. */
785
758
  sessionFetchImpl?: typeof fetch;
786
- /** The key Vorn gave this tool call, carried on each request through the window. */
759
+ /** The key Vorn gave this call, carried on each request through the window. */
787
760
  sessionCall?: string;
788
761
  retry?: RetryPolicy;
789
762
  /** Replaced in tests so backoff costs no real time. */
@@ -796,46 +769,12 @@ interface RunActionOptions {
796
769
  * taken as a choice that shows itself, which is the common case.
797
770
  */
798
771
  declare function runOptions(connector: Connector, name: string, options?: RunActionOptions): Promise<ActionInputOption[]>;
799
- /**
800
- * Run an action with its declared inputs validated and coerced. Vorn renders
801
- * every action argument as a template string, so numbers and booleans arrive
802
- * as text and have to be converted back here.
803
- */
772
+ /** Run an action with its declared inputs validated and read as their declared types. */
804
773
  declare function runAction(connector: Connector, actionType: string, args: Record<string, unknown>, options?: RunActionOptions): Promise<Record<string, unknown>>;
805
774
 
806
- /** MCP tool name a trigger is served under. */
807
- declare function pollToolName(triggerType: string): string;
808
- /** MCP tool name a footer is recomputed under. */
809
- declare function footerToolName(footerId: string): string;
810
- /** MCP tool name a link handler is run under. */
811
- declare function handlerToolName(handlerId: string): string;
812
- /** Tool that reports the connector's manifest and setup hints. */
813
- declare const MANIFEST_TOOL = "vorn_connector_manifest";
814
- /**
815
- * Tool that reports whether the connector can run right now. Present only when
816
- * the connector declares a `preflight`, so its absence means "nothing to
817
- * check" rather than "check passed".
818
- */
819
- declare const PREFLIGHT_TOOL = "vorn_connector_preflight";
820
- /**
821
- * Tool that lists the choices for one dynamic field. Present only when the
822
- * connector serves an options set, for the same reason preflight is.
823
- */
824
- declare const OPTIONS_TOOL = "vorn_connector_options";
825
775
  interface ConnectionSetup {
826
776
  connectorId: string;
827
777
  triggerType: string;
828
- /** Values to paste into Vorn's MCP connection form. */
829
- filters: {
830
- pollTool: string;
831
- itemsPath: 'items';
832
- idField: 'externalId';
833
- timestampField: 'updatedAt';
834
- titleField: 'title';
835
- urlField: 'url';
836
- cursorArg: 'cursor';
837
- cursorPath: 'nextCursor';
838
- };
839
778
  /** Environment variable names the connector reads. */
840
779
  env: Array<{
841
780
  name: string;
@@ -846,15 +785,7 @@ interface ConnectionSetup {
846
785
  builderHint?: string;
847
786
  }>;
848
787
  }
849
- /**
850
- * Describe how to wire one trigger into a Vorn MCP connection.
851
- *
852
- * Every SDK connector normalizes to the same field names, so this mapping is
853
- * fixed; it is generated rather than documented so a rename in the SDK cannot
854
- * drift away from the setup instructions users copy. `cursorArg` hands the
855
- * connector back its own cursor each poll, which is what lets its dedupe
856
- * strategy — rather than Vorn's timestamp comparison — decide what is new.
857
- */
788
+ /** What a Vorn connection needs for one trigger: which trigger, and the environment the connector reads. */
858
789
  declare function connectionSetup(connector: Connector, triggerType: string): ConnectionSetup;
859
790
  /** A contribution as the manifest carries it: everything but the code that runs it. */
860
791
  interface ManifestContribution {
@@ -878,6 +809,8 @@ interface ManifestContributions {
878
809
  }>;
879
810
  }
880
811
  interface ConnectorManifest {
812
+ /** The connector protocol the pack speaks; Vorn refuses a pack without one. */
813
+ protocol: number;
881
814
  id: string;
882
815
  name: string;
883
816
  version: string;
@@ -907,11 +840,14 @@ interface ConnectorManifest {
907
840
  type: string;
908
841
  label: string;
909
842
  description?: string;
843
+ /** Whether repeating a call with the same arguments has no further effect; absent when unsaid. */
844
+ idempotent?: boolean;
910
845
  inputs: Array<{
911
846
  key: string;
912
847
  label: string;
913
848
  type: string;
914
849
  required: boolean;
850
+ description?: string;
915
851
  options?: ActionInputOption[];
916
852
  /** An options set the connector serves, resolved against a live connection. */
917
853
  loadOptions?: string;
@@ -931,7 +867,7 @@ interface ConnectorManifest {
931
867
  sample?: Record<string, string>;
932
868
  }>;
933
869
  }
934
- /** Full machine-readable description of a connector, served over MCP and printed by the CLI. */
870
+ /** Full machine-readable description of a connector, served over stdio, written into a pack and printed by the CLI. */
935
871
  declare function connectorManifest(connector: Connector): ConnectorManifest;
936
872
 
937
873
  interface HarnessOptions {
@@ -1016,10 +952,7 @@ declare function escapedMockHttp(error: unknown): boolean;
1016
952
  * permanently. Refusing is the only outcome that cannot corrupt the process.
1017
953
  */
1018
954
  declare function withMockHttp<T>(routes: MockRoute[], body: () => Promise<T> | T): Promise<MockRun<T>>;
1019
- /**
1020
- * Run a connector in-process, exactly as the MCP server would, without
1021
- * spawning anything. Authors get real assertions in a plain unit test.
1022
- */
955
+ /** Run a connector in-process through the runtime the stdio server uses, so a plain unit test can assert on it. */
1023
956
  declare function createConnectorHarness(connector: Connector, harnessOptions?: HarnessOptions): ConnectorHarness;
1024
957
  /** Answers a footer or handler from fixtures, and refuses what the manifest never asked for. */
1025
958
  interface MockHostRun {
@@ -1047,7 +980,7 @@ declare function mockExtensionHost(granted: readonly ExtensionPermission[], answ
1047
980
  * named check owns is a compile error rather than a receipt quietly vouching
1048
981
  * for a check whose failure nothing was watching.
1049
982
  */
1050
- type CheckCode = 'missing-description' | 'auth-undeclared' | 'auth-probe-missing' | 'secret-not-marked' | 'action-no-outputs' | 'input-type-unsupported' | 'missing-idempotent' | 'unverifiable' | 'sample-unusable' | 'poll-failed' | 'no-items' | 'no-cursor' | 'cursor-rejected' | 'redelivers-items' | 'stuck-cursor' | 'lifecycle-scripts' | 'keywords-missing' | 'runtime-dependencies' | 'mock-action-failed' | 'mock-network-escape' | 'mock-not-observed' | 'preflight-failed' | 'live-action-failed' | 'pack-launch' | 'pack-too-large' | 'web-entry-missing' | 'web-entry-outside-package' | 'footer-failed' | 'footer-items-invalid' | 'handler-failed' | 'permission-undeclared' | 'permission-unused';
983
+ type CheckCode = 'missing-description' | 'auth-undeclared' | 'auth-probe-missing' | 'secret-not-marked' | 'action-no-outputs' | 'input-type-unsupported' | 'missing-idempotent' | 'unverifiable' | 'sample-unusable' | 'poll-failed' | 'no-items' | 'no-cursor' | 'cursor-rejected' | 'redelivers-items' | 'stuck-cursor' | 'lifecycle-scripts' | 'keywords-missing' | 'runtime-dependencies' | 'mock-action-failed' | 'mock-network-escape' | 'mock-not-observed' | 'mock-output-type' | 'preflight-failed' | 'live-action-failed' | 'pack-launch' | 'pack-too-large' | 'web-entry-missing' | 'web-entry-outside-package' | 'footer-failed' | 'footer-items-invalid' | 'handler-failed' | 'permission-undeclared' | 'permission-unused';
1051
984
  interface CheckFinding {
1052
985
  /** `error` means the connector will misbehave in Vorn; `warn` is advisory. */
1053
986
  level: 'error' | 'warn';
@@ -1136,4 +1069,4 @@ declare function runConformance(connector: Connector, options?: CheckOptions): P
1136
1069
  /** Render findings for a terminal. Returns an empty string when all clear. */
1137
1070
  declare function formatFindings(findings: CheckFinding[]): string;
1138
1071
 
1139
- export { MANIFEST_TOOL as $, type ActionRequest as A, type BundleRequest as B, type CheckFinding as C, type ConnectorHarness as D, type ExtensionPermission as E, type ConnectorIcon as F, type ConnectorKind as G, type ConnectorManifest as H, type ConnectorVerification as I, type DedupeStrategy as J, type DefaultWorkflow as K, type ExtensionAgent as L, type ExtensionContext as M, type NormalizedItem as N, type ExtensionContributions as O, type PollContext as P, type ExtensionPlatform as Q, type ExtensionUsage as R, type ExtensionUsageWindow as S, type TriggerDefinition as T, type FetchContext as U, type FooterContribution as V, type FooterItem as W, type HarnessOptions as X, type LinkContext as Y, type LinkHandled as Z, type LinkHandlerContribution as _, type BundleOutput as a, MAX_PACK_BYTES as a0, MAX_POLL_PAGES as a1, type ManifestContributions as a2, type MockCall as a3, type MockHostAnswers as a4, type MockHostRun as a5, type MockRoute as a6, MockRouteMissError as a7, type MockRun as a8, OPTIONS_TOOL as a9, lifecycleScriptFindings as aA, mockExtensionHost as aB, pollToolName as aC, readNearestPackageJson as aD, resilientFetch as aE, retryAfterMs as aF, runAction as aG, runConformance as aH, runOptions as aI, runPoll as aJ, withMockHttp as aK, type OptionsContext as aa, type OptionsLoader as ab, PREFLIGHT_TOOL as ac, type PaginationStrategy as ad, type PaneContribution as ae, type PollPage as af, type PreflightResult as ag, type ResilientFetchOptions as ah, type RetryPolicy as ai, type RunActionOptions as aj, type RunPollOptions as ak, type SessionContext as al, type StatusSuggestion as am, backoffMs as an, bundleDependencyFindings as ao, bundledRequireFindings as ap, checkConnector as aq, connectionSetup as ar, connectorManifest as as, createConnectorHarness as at, drainPoll as au, esbuildBundle as av, escapedMockHttp as aw, footerToolName as ax, formatFindings as ay, handlerToolName as az, type ExtensionHostMethod as b, type ConnectorDefinition as c, type Connector as d, type ExtensionDefinition as e, type ConnectorConfig as f, type ExtensionHost as g, type PollOutcome as h, type ConnectorItem as i, type PostReceiveOp as j, type ActionContext as k, type ActionDefinition as l, type ActionInputField as m, type ActionInputOption as n, type ActionInputType as o, type ActionOutputField as p, type ActivationPredicate as q, type AuthRung as r, type BrowserSignIn as s, CHECK_OWNERS as t, type CheckCode as u, type CheckOptions as v, type ConformanceRun as w, type ConnectionSetup as x, type ConnectorAuth as y, type ConnectorConfigField as z };
1072
+ export { MAX_PACK_BYTES as $, type ActionRequest as A, type BundleRequest as B, type CheckFinding as C, type ConnectorHarness as D, type ExtensionPermission as E, type ConnectorIcon as F, type ConnectorKind as G, type ConnectorManifest as H, type ConnectorVerification as I, type DedupeStrategy as J, type DefaultWorkflow as K, type ExtensionAgent as L, type ExtensionContext as M, type NormalizedItem as N, type ExtensionContributions as O, type PollContext as P, type ExtensionPlatform as Q, type ExtensionUsage as R, type ExtensionUsageWindow as S, type TriggerDefinition as T, type FetchContext as U, type FooterContribution as V, type FooterItem as W, type HarnessOptions as X, type LinkContext as Y, type LinkHandled as Z, type LinkHandlerContribution as _, type BundleOutput as a, MAX_POLL_PAGES as a0, type ManifestContributions as a1, type MockCall as a2, type MockHostAnswers as a3, type MockHostRun as a4, type MockRoute as a5, MockRouteMissError as a6, type MockRun as a7, type OptionsContext as a8, type OptionsLoader as a9, runAction as aA, runConformance as aB, runOptions as aC, runPoll as aD, withMockHttp as aE, type PaginationStrategy as aa, type PaneContribution as ab, type PollPage as ac, type PreflightResult as ad, type ResilientFetchOptions as ae, type RetryPolicy as af, type RunActionOptions as ag, type RunPollOptions as ah, type SessionContext as ai, type StatusSuggestion as aj, backoffMs as ak, bundleDependencyFindings as al, bundledRequireFindings as am, checkConnector as an, connectionSetup as ao, connectorManifest as ap, createConnectorHarness as aq, drainPoll as ar, esbuildBundle as as, escapedMockHttp as at, formatFindings as au, lifecycleScriptFindings as av, mockExtensionHost as aw, readNearestPackageJson as ax, resilientFetch as ay, retryAfterMs as az, type ExtensionHostMethod as b, type ConnectorDefinition as c, type Connector as d, type ExtensionDefinition as e, type ConnectorConfig as f, type ExtensionHost as g, type PollOutcome as h, type ConnectorItem as i, type PostReceiveOp as j, type ActionContext as k, type ActionDefinition as l, type ActionInputField as m, type ActionInputOption as n, type ActionInputType as o, type ActionOutputField as p, type ActivationPredicate as q, type AuthRung as r, type BrowserSignIn as s, CHECK_OWNERS as t, type CheckCode as u, type CheckOptions as v, type ConformanceRun as w, type ConnectionSetup as x, type ConnectorAuth as y, type ConnectorConfigField as z };