@vornrun/connector-sdk 0.7.1-beta.2 → 0.7.1-beta.4
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 +44 -27
- package/dist/{check-CzSTEQD8.d.ts → check-DQttwqgl.d.ts} +20 -87
- package/dist/{chunk-C2WRZCMZ.js → chunk-NNCU2VFL.js} +490 -393
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +7 -11
- package/dist/index.d.ts +212 -23
- package/dist/index.js +17 -15
- package/package.json +2 -6
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
|
|
5
|
-
Vorn's
|
|
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
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
|
146
|
-
`
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
152
|
-
|
|
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
|
|
|
@@ -221,6 +229,8 @@ Add `headers` to `check` for a site whose reads need one, such as a CSRF flag. H
|
|
|
221
229
|
|
|
222
230
|
Vorn opens a window on a browser profile that belongs to one connection, and the person signs in there. The connector's code then gets `ctx.session.fetch` beside `ctx.fetch`. A call through `ctx.session.fetch` runs inside that signed-in window as a same-origin request, so the service sees its own page asking and no cookie reaches the connector. Calls outside `origins` are refused. `ctx.fetch` stays a plain fetch for public reads, such as a feed, which work before anyone signs in. A `browser` connector's declared `request` actions go through the window.
|
|
223
231
|
|
|
232
|
+
Answers come back as bytes, so `await res.arrayBuffer()` reads an image or any file the signed-in page can open, up to 16 MiB; a bigger answer is refused rather than cut short. This needs Vorn 0.7.1-beta.4 or later.
|
|
233
|
+
|
|
224
234
|
`--mock` serves signed-in calls from the same routes as every other call. A `--live` run from a terminal has no window, so it skips them.
|
|
225
235
|
|
|
226
236
|
## Dedupe strategies
|
|
@@ -326,7 +336,9 @@ call escaped instead of quietly reaching a real service.
|
|
|
326
336
|
The stub replaces `fetch`, and only `fetch`. A connector that shells out to a
|
|
327
337
|
CLI or opens its own socket is not intercepted by it, so `--mock` reports any
|
|
328
338
|
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.
|
|
339
|
+
of the receipt rather than vouching for a run it did not see. An action that
|
|
340
|
+
returns a declared output as another type than it declares is reported as
|
|
341
|
+
`mock-output-type`: Vorn keeps what came back, but a later step reads the type.
|
|
330
342
|
|
|
331
343
|
```ts
|
|
332
344
|
{
|
|
@@ -365,23 +377,28 @@ test('does not redeliver the same backlog forever', async () => {
|
|
|
365
377
|
|
|
366
378
|
## Install it in Vorn
|
|
367
379
|
|
|
368
|
-
**Settings → Connectors
|
|
380
|
+
In **Settings → Connectors**, add a connection **From a package** and type the
|
|
381
|
+
package name, or use **Install from file** for a pack.
|
|
369
382
|
|
|
370
|
-
Vorn starts the connector
|
|
371
|
-
connection settings from the answer. All that is left on
|
|
372
|
-
connector's own name, its triggers, and the config it declared.
|
|
383
|
+
Vorn starts the connector, says `vorn/hello`, asks for `connector/manifest`,
|
|
384
|
+
and fills in the connection settings from the answer. All that is left on
|
|
385
|
+
screen is the connector's own name, its triggers, and the config it declared.
|
|
386
|
+
Polls are `trigger/poll` and actions are `action/run`, each carrying typed
|
|
387
|
+
arguments; a failure comes back with a kind (`validation`, `app-offline`,
|
|
388
|
+
`signed-out`, `upstream` or `internal`) that decides what Vorn tells you. A
|
|
389
|
+
declared request sorts its own failures; a `run()` that reads a failing status
|
|
390
|
+
can `throw new UpstreamStatusError(status, message, viaSession)`, where
|
|
391
|
+
`viaSession` says the call went through `ctx.session.fetch`, so a 401 or 403
|
|
392
|
+
reads as signed out.
|
|
373
393
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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.
|
|
394
|
+
Vorn hands the connector back its own cursor on every poll and fires for
|
|
395
|
+
whatever it returns, rather than re-filtering by timestamp itself — which is
|
|
396
|
+
what makes the dedupe strategy load-bearing.
|
|
379
397
|
|
|
380
398
|
Because the connector is a normal npm package, versions are pinned by the
|
|
381
399
|
package spec and upgrades are a version bump — no separate registry.
|
|
382
400
|
|
|
383
|
-
To see
|
|
384
|
-
hand:
|
|
401
|
+
To see a connector's triggers and the environment each reads:
|
|
385
402
|
|
|
386
403
|
```bash
|
|
387
404
|
npx vorn-connector setup ./dist/index.js
|
|
@@ -421,7 +438,7 @@ it on **Settings → Connectors** and Vorn launches it from disk.
|
|
|
421
438
|
|
|
422
439
|
### Ship an icon
|
|
423
440
|
|
|
424
|
-
Without one, a connector shows
|
|
441
|
+
Without one, a connector shows a generic glyph and is hard to pick out
|
|
425
442
|
of a list of connections.
|
|
426
443
|
|
|
427
444
|
```ts
|
|
@@ -565,7 +582,7 @@ linkHandlers: [
|
|
|
565
582
|
```
|
|
566
583
|
vorn-connector new <id> Scaffold a new connector, ready to build
|
|
567
584
|
vorn-connector manifest <module> Print the manifest as JSON
|
|
568
|
-
vorn-connector setup <module> [trigger] Print the
|
|
585
|
+
vorn-connector setup <module> [trigger] Print each trigger and the environment it reads
|
|
569
586
|
vorn-connector poll <module> <trigger> Run one poll against the environment
|
|
570
587
|
vorn-connector check <module> Verify the connector against the contract
|
|
571
588
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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 };
|