@wildo-ai/external-connectors-models 1.1.4 → 1.1.6
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/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/core/commons.external-connectors-models.schemas.d.ts +23 -132
- package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons.external-connectors-models.schemas.js +23 -31
- package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/core/operation-classification.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/operation-classification.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts +40 -8
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.js +61 -14
- package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts +78 -163
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js +78 -93
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +258 -13
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/billing.standard-interface.schemas.js +41 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -1
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts +57 -17
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js +26 -7
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/email-inbound.standard-interface.schemas.d.ts +229 -0
- package/dist/esm/protocols/email-inbound.standard-interface.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/email-inbound.standard-interface.schemas.js +160 -0
- package/dist/esm/protocols/email-inbound.standard-interface.schemas.js.map +1 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts +1 -56
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/email.external-connectors-models.schemas.js +0 -20
- package/dist/esm/protocols/email.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts +4 -4
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts +1 -16
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js +4 -9
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/file-storage.standard-interface.d.ts +179 -0
- package/dist/esm/protocols/file-storage.standard-interface.d.ts.map +1 -0
- package/dist/esm/protocols/file-storage.standard-interface.js +79 -0
- package/dist/esm/protocols/file-storage.standard-interface.js.map +1 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts +6 -13
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js +0 -9
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/hooks-capability.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/hooks-capability.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +20 -16
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +12 -9
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/image.external-connectors-models.schemas.d.ts +1 -18
- package/dist/esm/protocols/image.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/image.external-connectors-models.schemas.js +1 -7
- package/dist/esm/protocols/image.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +100 -40
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js +164 -41
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/oauth2-provider-assurance.definitions.d.ts +7 -0
- package/dist/esm/protocols/oauth2-provider-assurance.definitions.d.ts.map +1 -0
- package/dist/esm/protocols/oauth2-provider-assurance.definitions.js +36 -0
- package/dist/esm/protocols/oauth2-provider-assurance.definitions.js.map +1 -0
- package/dist/esm/protocols/oauth2-provider-assurance.schemas.d.ts +23 -0
- package/dist/esm/protocols/oauth2-provider-assurance.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/oauth2-provider-assurance.schemas.js +25 -0
- package/dist/esm/protocols/oauth2-provider-assurance.schemas.js.map +1 -0
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts +0 -148
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js +1 -40
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/provider-oauth2-token-endpoint-hosts.external-connectors-models.d.ts +39 -0
- package/dist/esm/protocols/provider-oauth2-token-endpoint-hosts.external-connectors-models.d.ts.map +1 -0
- package/dist/esm/protocols/provider-oauth2-token-endpoint-hosts.external-connectors-models.js +66 -0
- package/dist/esm/protocols/provider-oauth2-token-endpoint-hosts.external-connectors-models.js.map +1 -0
- package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.d.ts +863 -16
- package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.js +703 -0
- package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts +0 -39
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/sms.external-connectors-models.schemas.js +0 -13
- package/dist/esm/protocols/sms.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/sms.standard-interface.schemas.d.ts +1 -1
- package/dist/esm/protocols/sms.standard-interface.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/sms.standard-interface.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -3
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts +0 -74
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts.map +0 -1
- package/dist/esm/core/protocols.external-connectors-models.schemas.js +0 -1
- package/dist/esm/core/protocols.external-connectors-models.schemas.js.map +0 -1
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts +0 -37
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts.map +0 -1
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js +0 -10
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"companion-exports.d.ts","sourceRoot":"","sources":["../../../src/companion-exports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,SAAS,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { ExternalProvider_Auth_Kind } from "./security.external-connectors-models.schemas";
|
|
3
2
|
/**
|
|
4
3
|
* The ONE protocol vocabulary a provider can speak. Every other list is derived from or pinned
|
|
5
4
|
* to this enum: the backend runtime-contract discriminants (`ProviderProtocolRuntimeKind`, a
|
|
@@ -71,6 +70,15 @@ export declare enum ExternalProvider_ExchangeProtocol_Kind {
|
|
|
71
70
|
/** Reserved — video generation. Serves the VIDEO modality. Not yet implemented. */
|
|
72
71
|
VIDEO_PROVIDER = "video_provider",
|
|
73
72
|
EMAIL_PROVIDER = "email_provider",
|
|
73
|
+
/**
|
|
74
|
+
* RECEIVING email (#1630): the provider hosts a receiving domain, announces each message through a
|
|
75
|
+
* `WEBHOOK_ORIGINATOR` endpoint whose `capability` is `EMAIL_INBOUND`, and serves the message on
|
|
76
|
+
* request through `StandardInboundEmail_Interface`. Its own kind rather than a mode of
|
|
77
|
+
* `EMAIL_PROVIDER` because sending and receiving are separate procurement decisions and share no
|
|
78
|
+
* operation: a sending contract composes a request, a receiving one parses a notification and
|
|
79
|
+
* fetches a message.
|
|
80
|
+
*/
|
|
81
|
+
EMAIL_INBOUND_PROVIDER = "email_inbound_provider",
|
|
74
82
|
SSO_OAUTH2 = "sso_oauth2",
|
|
75
83
|
BILLING_PROVIDER = "billing_provider",
|
|
76
84
|
SMS_PROVIDER = "sms_provider",
|
|
@@ -96,6 +104,7 @@ export declare const ProviderProtocolRuntimeKind: Readonly<{
|
|
|
96
104
|
readonly DOCUMENT_EXTRACTION: ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER;
|
|
97
105
|
readonly AGENT_CLIENT_PROTOCOL: ExternalProvider_ExchangeProtocol_Kind.AGENT_CLIENT_PROTOCOL;
|
|
98
106
|
readonly EMAIL: ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER;
|
|
107
|
+
readonly EMAIL_INBOUND: ExternalProvider_ExchangeProtocol_Kind.EMAIL_INBOUND_PROVIDER;
|
|
99
108
|
readonly OAUTH2_SSO: ExternalProvider_ExchangeProtocol_Kind.SSO_OAUTH2;
|
|
100
109
|
readonly BILLING: ExternalProvider_ExchangeProtocol_Kind.BILLING_PROVIDER;
|
|
101
110
|
readonly WEBHOOK_ORIGINATOR: ExternalProvider_ExchangeProtocol_Kind.WEBHOOK_ORIGINATOR;
|
|
@@ -108,13 +117,6 @@ export declare enum APPLICATION_ENVIRONMENT {
|
|
|
108
117
|
STAGING = "staging",
|
|
109
118
|
PRODUCTION = "production"
|
|
110
119
|
}
|
|
111
|
-
export declare enum ExternalProvider_Status {
|
|
112
|
-
ACTIVE = "active",
|
|
113
|
-
INACTIVE = "inactive",
|
|
114
|
-
BUZY = "busy",
|
|
115
|
-
OFFLINE = "offline",
|
|
116
|
-
DEPRECATED = "deprecated"
|
|
117
|
-
}
|
|
118
120
|
export declare enum API_HttpMethod {
|
|
119
121
|
GET = "GET",
|
|
120
122
|
POST = "POST",
|
|
@@ -125,128 +127,25 @@ export declare enum API_HttpMethod {
|
|
|
125
127
|
OPTIONS = "OPTIONS"
|
|
126
128
|
}
|
|
127
129
|
/**
|
|
128
|
-
* Shared protocol profile
|
|
130
|
+
* Shared protocol configuration fields — the ONE survivor of the per-protocol profile /
|
|
131
|
+
* configuration / status triple (#965), and the reason it stays is a reader, not a legacy.
|
|
129
132
|
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
endpoints: z.ZodOptional<z.ZodRecord<z.ZodEnum<typeof APPLICATION_ENVIRONMENT>, z.ZodString>>;
|
|
137
|
-
availableAuthMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof ExternalProvider_Auth_Kind>>>;
|
|
138
|
-
authProfiles: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
139
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
140
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
141
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
142
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.API_KEY>;
|
|
143
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
144
|
-
prefix: z.ZodOptional<z.ZodString>;
|
|
145
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
146
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
147
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
148
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
149
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.HMAC_SIGNATURE>;
|
|
150
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
151
|
-
algorithm: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_HMAC_Signature_Algorithm>>;
|
|
152
|
-
signaturePayload: z.ZodOptional<z.ZodEnum<{
|
|
153
|
-
custom: "custom";
|
|
154
|
-
body: "body";
|
|
155
|
-
timestamp: "timestamp";
|
|
156
|
-
}>>;
|
|
157
|
-
timestampHeader: z.ZodOptional<z.ZodString>;
|
|
158
|
-
nonceHeader: z.ZodOptional<z.ZodString>;
|
|
159
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
160
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
161
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
162
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.BEARER>;
|
|
163
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
164
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
165
|
-
prefix: z.ZodDefault<z.ZodString>;
|
|
166
|
-
format: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_Bearer_Format>>;
|
|
167
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
168
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
169
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
170
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
171
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
172
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.OPENID_CONNECT>;
|
|
173
|
-
discoveryUrl: z.ZodOptional<z.ZodURL>;
|
|
174
|
-
issuer: z.ZodOptional<z.ZodString>;
|
|
175
|
-
audience: z.ZodOptional<z.ZodString>;
|
|
176
|
-
validationMode: z.ZodOptional<z.ZodEnum<{
|
|
177
|
-
jwks: "jwks";
|
|
178
|
-
introspection: "introspection";
|
|
179
|
-
local: "local";
|
|
180
|
-
}>>;
|
|
181
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
182
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
183
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
184
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
185
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
186
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.OAUTH2>;
|
|
187
|
-
oauth2ProviderRef: z.ZodOptional<z.ZodString>;
|
|
188
|
-
authUrl: z.ZodOptional<z.ZodURL>;
|
|
189
|
-
tokenUrl: z.ZodOptional<z.ZodURL>;
|
|
190
|
-
refreshUrl: z.ZodOptional<z.ZodURL>;
|
|
191
|
-
scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
192
|
-
grantType: z.ZodOptional<z.ZodEnum<typeof import("./oauth2.enums").OAuth2_GrantType>>;
|
|
193
|
-
tokenEndpointAuthMethod: z.ZodOptional<z.ZodEnum<typeof import("./oauth2.enums").OAuth2_TokenEndpoint_AuthMethod>>;
|
|
194
|
-
pkce: z.ZodOptional<z.ZodBoolean>;
|
|
195
|
-
pkceMethod: z.ZodOptional<z.ZodEnum<typeof import("./oauth2.enums").OAuth2_PKCE_Method>>;
|
|
196
|
-
prompt: z.ZodOptional<z.ZodEnum<typeof import("./oauth2.enums").OAuth2_Prompt>>;
|
|
197
|
-
accessType: z.ZodOptional<z.ZodEnum<typeof import("./oauth2.enums").OAuth2_AccessType>>;
|
|
198
|
-
extraAuthParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
199
|
-
extraTokenParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
200
|
-
tokenFormat: z.ZodDefault<z.ZodEnum<{
|
|
201
|
-
custom: "custom";
|
|
202
|
-
bearer: "bearer";
|
|
203
|
-
token: "token";
|
|
204
|
-
oauth: "oauth";
|
|
205
|
-
}>>;
|
|
206
|
-
customTokenPrefix: z.ZodOptional<z.ZodString>;
|
|
207
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
209
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
210
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
211
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
212
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.BASIC>;
|
|
213
|
-
usernameRef: z.ZodOptional<z.ZodString>;
|
|
214
|
-
passwordRef: z.ZodOptional<z.ZodString>;
|
|
215
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
216
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
217
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
218
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
219
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
220
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.NONE>;
|
|
221
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
222
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
223
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
224
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
225
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
226
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.FRONTEND_SECRET>;
|
|
227
|
-
frontendOnly: z.ZodDefault<z.ZodBoolean>;
|
|
228
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
229
|
-
ref: z.ZodOptional<z.ZodString>;
|
|
230
|
-
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
231
|
-
location: z.ZodDefault<z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_ApiKey_Location>>;
|
|
232
|
-
locationField: z.ZodDefault<z.ZodString>;
|
|
233
|
-
kind: z.ZodLiteral<ExternalProvider_Auth_Kind.MUTUAL_TLS>;
|
|
234
|
-
certificateRef: z.ZodOptional<z.ZodString>;
|
|
235
|
-
privateKeyRef: z.ZodOptional<z.ZodString>;
|
|
236
|
-
caRef: z.ZodOptional<z.ZodString>;
|
|
237
|
-
}, z.core.$strip>], "kind">>>;
|
|
238
|
-
}, z.core.$strip>;
|
|
239
|
-
/**
|
|
240
|
-
* Shared protocol configuration fields.
|
|
133
|
+
* `authConfig` is read on a resolved provider configuration by the OAuth2 connection resolver
|
|
134
|
+
* (`clientId`, `secretRef`) and by the registry's default-over-custom merge, and `enabled` is what
|
|
135
|
+
* a provider configuration parses at the boundary (`AgentClientProtocol_ConfigurationSchema`,
|
|
136
|
+
* `OAuth2Provider_ConfigurationSchema` extend this; the LLM and webhook configurations intersect
|
|
137
|
+
* with the inferred type). It is optional because execution-oriented protocols can own their own
|
|
138
|
+
* auth/runtime policy contract.
|
|
241
139
|
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
140
|
+
* What is gone: the profile base (a provider's transport facts now live on its runtime contract,
|
|
141
|
+
* `ProviderProtocolRuntimeContract`, which the registry projects) and the status base (nothing
|
|
142
|
+
* ever recorded a per-protocol status). Both had no reader outside the declarations that extended
|
|
143
|
+
* them.
|
|
245
144
|
*/
|
|
246
145
|
export declare const ExternalProvider_ExchangeProtocol_Configuration_BaseSchema: z.ZodObject<{
|
|
247
146
|
enabled: z.ZodBoolean;
|
|
248
147
|
authConfig: z.ZodOptional<z.ZodObject<{
|
|
249
|
-
authKind: z.ZodEnum<typeof ExternalProvider_Auth_Kind>;
|
|
148
|
+
authKind: z.ZodEnum<typeof import("./security.external-connectors-models.schemas").ExternalProvider_Auth_Kind>;
|
|
250
149
|
profileRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
251
150
|
isDefault: z.ZodOptional<z.ZodBoolean>;
|
|
252
151
|
secretRef: z.ZodString;
|
|
@@ -260,15 +159,7 @@ export declare const ExternalProvider_ExchangeProtocol_Configuration_BaseSchema:
|
|
|
260
159
|
priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
261
160
|
}, z.core.$strip>>;
|
|
262
161
|
}, z.core.$strip>;
|
|
263
|
-
export declare const ExternalProvider_ExchangeProtocol_Status_BaseSchema: z.ZodObject<{
|
|
264
|
-
protocolKind: z.ZodEnum<typeof ExternalProvider_ExchangeProtocol_Kind>;
|
|
265
|
-
status: z.ZodEnum<typeof ExternalProvider_Status>;
|
|
266
|
-
lastCheckedAt: z.ZodString;
|
|
267
|
-
errorReason: z.ZodOptional<z.ZodString>;
|
|
268
|
-
}, z.core.$strip>;
|
|
269
|
-
export type ExternalProvider_ExchangeProtocol_Profile_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Profile_BaseSchema>;
|
|
270
162
|
export type ExternalProvider_ExchangeProtocol_Configuration_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Configuration_BaseSchema>;
|
|
271
|
-
export type ExternalProvider_ExchangeProtocol_Status_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Status_BaseSchema>;
|
|
272
163
|
export declare enum ExternalProvider_IO_Direction {
|
|
273
164
|
INBOUND = "inbound",
|
|
274
165
|
OUTBOUND = "outbound",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commons.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"commons.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../../src/core/commons.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,sCAAsC;IAEhD,QAAQ,aAAa;IACrB,kBAAkB,uBAAuB;IAIzC,YAAY,iBAAiB;IAC7B;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,0BAA0B;IAE/C,8EAA8E;IAC9E,cAAc,mBAAmB;IACjC;;;;;;;;;;OAUG;IACH,mBAAmB,wBAAwB;IAC3C;;;;;;;;;;;;;OAaG;IACH,4BAA4B,iCAAiC;IAC7D,iGAAiG;IACjG,cAAc,mBAAmB;IACjC,mFAAmF;IACnF,cAAc,mBAAmB;IAGjC,cAAc,mBAAmB;IACjC;;;;;;;OAOG;IACH,sBAAsB,2BAA2B;IAGjD,UAAU,eAAe;IAIzB,gBAAgB,qBAAqB;IAGrC,YAAY,iBAAiB;IAG7B,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;EAa7B,CAAC;AACZ,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,oBAAY,uBAAuB;IACjC,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAGD,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,0DAA0D;;;;;;;;;;;;;;;;iBAIrE,CAAC;AAEH,MAAM,MAAM,oDAAoD,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0DAA0D,CAAC,CAAC;AAE9I,oBAAY,6BAA6B;IACvC,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED,oBAAY,sCAAsC;IAChD,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,SAAS,WAAW;CACrB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { ExternalProvider_Auth_ConfigurationSchema,
|
|
2
|
+
import { ExternalProvider_Auth_ConfigurationSchema, ExternalProvider_RateLimitConfigurationSchema } from "./security.external-connectors-models.schemas.js";
|
|
3
3
|
/**
|
|
4
4
|
* The ONE protocol vocabulary a provider can speak. Every other list is derived from or pinned
|
|
5
5
|
* to this enum: the backend runtime-contract discriminants (`ProviderProtocolRuntimeKind`, a
|
|
@@ -77,6 +77,15 @@ export var ExternalProvider_ExchangeProtocol_Kind;
|
|
|
77
77
|
ExternalProvider_ExchangeProtocol_Kind["VIDEO_PROVIDER"] = "video_provider";
|
|
78
78
|
// INFRA
|
|
79
79
|
ExternalProvider_ExchangeProtocol_Kind["EMAIL_PROVIDER"] = "email_provider";
|
|
80
|
+
/**
|
|
81
|
+
* RECEIVING email (#1630): the provider hosts a receiving domain, announces each message through a
|
|
82
|
+
* `WEBHOOK_ORIGINATOR` endpoint whose `capability` is `EMAIL_INBOUND`, and serves the message on
|
|
83
|
+
* request through `StandardInboundEmail_Interface`. Its own kind rather than a mode of
|
|
84
|
+
* `EMAIL_PROVIDER` because sending and receiving are separate procurement decisions and share no
|
|
85
|
+
* operation: a sending contract composes a request, a receiving one parses a notification and
|
|
86
|
+
* fetches a message.
|
|
87
|
+
*/
|
|
88
|
+
ExternalProvider_ExchangeProtocol_Kind["EMAIL_INBOUND_PROVIDER"] = "email_inbound_provider";
|
|
80
89
|
// AUTH
|
|
81
90
|
ExternalProvider_ExchangeProtocol_Kind["SSO_OAUTH2"] = "sso_oauth2";
|
|
82
91
|
// OPENID_CONNECT ?
|
|
@@ -107,6 +116,7 @@ export const ProviderProtocolRuntimeKind = Object.freeze({
|
|
|
107
116
|
DOCUMENT_EXTRACTION: ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER,
|
|
108
117
|
AGENT_CLIENT_PROTOCOL: ExternalProvider_ExchangeProtocol_Kind.AGENT_CLIENT_PROTOCOL,
|
|
109
118
|
EMAIL: ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,
|
|
119
|
+
EMAIL_INBOUND: ExternalProvider_ExchangeProtocol_Kind.EMAIL_INBOUND_PROVIDER,
|
|
110
120
|
OAUTH2_SSO: ExternalProvider_ExchangeProtocol_Kind.SSO_OAUTH2,
|
|
111
121
|
BILLING: ExternalProvider_ExchangeProtocol_Kind.BILLING_PROVIDER,
|
|
112
122
|
WEBHOOK_ORIGINATOR: ExternalProvider_ExchangeProtocol_Kind.WEBHOOK_ORIGINATOR,
|
|
@@ -119,14 +129,6 @@ export var APPLICATION_ENVIRONMENT;
|
|
|
119
129
|
APPLICATION_ENVIRONMENT["STAGING"] = "staging";
|
|
120
130
|
APPLICATION_ENVIRONMENT["PRODUCTION"] = "production";
|
|
121
131
|
})(APPLICATION_ENVIRONMENT || (APPLICATION_ENVIRONMENT = {}));
|
|
122
|
-
export var ExternalProvider_Status;
|
|
123
|
-
(function (ExternalProvider_Status) {
|
|
124
|
-
ExternalProvider_Status["ACTIVE"] = "active";
|
|
125
|
-
ExternalProvider_Status["INACTIVE"] = "inactive";
|
|
126
|
-
ExternalProvider_Status["BUZY"] = "busy";
|
|
127
|
-
ExternalProvider_Status["OFFLINE"] = "offline";
|
|
128
|
-
ExternalProvider_Status["DEPRECATED"] = "deprecated";
|
|
129
|
-
})(ExternalProvider_Status || (ExternalProvider_Status = {}));
|
|
130
132
|
export var API_HttpMethod;
|
|
131
133
|
(function (API_HttpMethod) {
|
|
132
134
|
API_HttpMethod["GET"] = "GET";
|
|
@@ -138,36 +140,26 @@ export var API_HttpMethod;
|
|
|
138
140
|
API_HttpMethod["OPTIONS"] = "OPTIONS";
|
|
139
141
|
})(API_HttpMethod || (API_HttpMethod = {}));
|
|
140
142
|
/**
|
|
141
|
-
* Shared protocol profile
|
|
143
|
+
* Shared protocol configuration fields — the ONE survivor of the per-protocol profile /
|
|
144
|
+
* configuration / status triple (#965), and the reason it stays is a reader, not a legacy.
|
|
142
145
|
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
endpoints: z.record(z.enum(APPLICATION_ENVIRONMENT), z.string()).optional(),
|
|
150
|
-
availableAuthMethods: z.array(z.enum(ExternalProvider_Auth_Kind)).optional(),
|
|
151
|
-
authProfiles: z.array(ExternalProvider_AuthProfile_Schema).optional(),
|
|
152
|
-
});
|
|
153
|
-
/**
|
|
154
|
-
* Shared protocol configuration fields.
|
|
146
|
+
* `authConfig` is read on a resolved provider configuration by the OAuth2 connection resolver
|
|
147
|
+
* (`clientId`, `secretRef`) and by the registry's default-over-custom merge, and `enabled` is what
|
|
148
|
+
* a provider configuration parses at the boundary (`AgentClientProtocol_ConfigurationSchema`,
|
|
149
|
+
* `OAuth2Provider_ConfigurationSchema` extend this; the LLM and webhook configurations intersect
|
|
150
|
+
* with the inferred type). It is optional because execution-oriented protocols can own their own
|
|
151
|
+
* auth/runtime policy contract.
|
|
155
152
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
153
|
+
* What is gone: the profile base (a provider's transport facts now live on its runtime contract,
|
|
154
|
+
* `ProviderProtocolRuntimeContract`, which the registry projects) and the status base (nothing
|
|
155
|
+
* ever recorded a per-protocol status). Both had no reader outside the declarations that extended
|
|
156
|
+
* them.
|
|
159
157
|
*/
|
|
160
158
|
export const ExternalProvider_ExchangeProtocol_Configuration_BaseSchema = z.object({
|
|
161
159
|
enabled: z.boolean(),
|
|
162
160
|
authConfig: ExternalProvider_Auth_ConfigurationSchema.optional(),
|
|
163
161
|
rateLimitConfig: ExternalProvider_RateLimitConfigurationSchema.optional(),
|
|
164
162
|
});
|
|
165
|
-
export const ExternalProvider_ExchangeProtocol_Status_BaseSchema = z.object({
|
|
166
|
-
protocolKind: z.enum(ExternalProvider_ExchangeProtocol_Kind),
|
|
167
|
-
status: z.enum(ExternalProvider_Status),
|
|
168
|
-
lastCheckedAt: z.string(),
|
|
169
|
-
errorReason: z.string().optional(),
|
|
170
|
-
});
|
|
171
163
|
export var ExternalProvider_IO_Direction;
|
|
172
164
|
(function (ExternalProvider_IO_Direction) {
|
|
173
165
|
ExternalProvider_IO_Direction["INBOUND"] = "inbound";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commons.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/core/commons.external-connectors-models.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { ExternalProvider_Auth_ConfigurationSchema, ExternalProvider_Auth_Kind, ExternalProvider_AuthProfile_Schema, ExternalProvider_RateLimitConfigurationSchema } from \"./security.external-connectors-models.schemas\";\n\n\n/**\n * The ONE protocol vocabulary a provider can speak. Every other list is derived from or pinned\n * to this enum: the backend runtime-contract discriminants (`ProviderProtocolRuntimeKind`, a\n * subset of these members) and the application-authoring keys (`BUILTIN_PROVIDER_PROTOCOL` in\n * `@wildo-ai/saas-models`, its key set pinned by a drift test because that package must not\n * import this one into browser bundles).\n *\n * RETIRED 2026-09-05 (#327): `MCP_CONNECTOR`, `A2A_CONNECTOR`, `GIT_PROVIDER`, `GRPC`,\n * `SSO_SAML`. Each had an authored profile/configuration module in this package and NOTHING\n * that read it — no runtime-contract arm, no provider module declaring it, no consumer of any\n * export outside the module itself (measured with a positive control). Wildo's own MCP server,\n * A2A plane and SAML SSO are engine-implemented surfaces, not provider-declared protocols, and\n * none of them referenced these members. A retired member is refused at CONFIG time by\n * `ProviderProtocolSelectorSchema`, naming the value. Re-admit one only together with a\n * runtime-contract arm and a provider module that declares it.\n */\nexport enum ExternalProvider_ExchangeProtocol_Kind {\n // WEB\n REST_API = \"rest_api\",\n WEBHOOK_ORIGINATOR = \"webhook_originator\",\n // SOAP ?\n \n // AI\n LLM_PROVIDER = \"llm_provider\",\n /**\n * Zed's Agent Client Protocol — a JSON-RPC session between Wildo (the client)\n * and a CODING AGENT subprocess that reads and writes a workspace, runs\n * commands, and calls back for permission.\n *\n * Its own protocol kind rather than a mode of `CLI_RUNTIME`, for the reason\n * `EMBEDDINGS_PROVIDER` records above and one more that is specific to it: a\n * coding agent is not a one-shot text call wearing a subprocess. Every\n * capability the previous CLI transport lacked — token and cost accounting, a\n * permission channel, cancellation, resumption, live progress — was missing\n * because the one-shot shape has nowhere to put it, not because nobody had\n * implemented it yet.\n *\n * NOT to be confused with the IBM/BeeAI \"Agent Communication Protocol\", which\n * shares the acronym and is agent-to-agent — that space is `A2A_CONNECTOR`.\n */\n AGENT_CLIENT_PROTOCOL = \"agent_client_protocol\",\n // AI — multimodal generation (artifact-modality axis)\n /** Text-to-image generation (wired: gpt-image). Serves the IMAGE modality. */\n IMAGE_PROVIDER = \"image_provider\",\n /**\n * Text → vector embeddings (wired: OpenAI `text-embedding-3-*`). Serves the RAG derived-data\n * tier (corpus embedding via the `rag:embedding-drain` worker; query-time embedding in\n * retrieval). Deliberately its OWN protocol kind rather than a sixth `LLMProvider_OperationKey`\n * (RAG plan DL2): an unmapped LLM operation key fails SILENTLY across six consumer surfaces\n * (registry semantic-operation map, output normalization, executor dispatch, capability slot,\n * usage completeness, observability sink), whereas a new protocol kind fails COMPILATION at\n * every `runtimeContract.kind` switch — the `IMAGE_PROVIDER` precedent. It also gets its own\n * `EngineCapability.AI_EMBEDDINGS` slot so an application can select its embeddings provider\n * independently of its chat provider.\n */\n EMBEDDINGS_PROVIDER = \"embeddings_provider\",\n /**\n * Document bytes → text (wired: Mistral `mistral-ocr-latest`). Serves the file-side text\n * provider that `FileTextExtractionBackendService` owns, whose largest consumer is\n * `.ragSource()` corpus ingestion.\n *\n * Its own kind for the reason `EMBEDDINGS_PROVIDER` records above, and it fills its own\n * `EngineCapability.AI_DOCUMENT_EXTRACTION` slot so an application selects its OCR provider\n * independently of chat and embeddings — three unrelated procurement decisions.\n *\n * NOT to be confused with PDF *generation* (templates → bytes), which is the `pdfTemplates`\n * surface and is semantically the opposite direction. It has no provider slot: the\n * `EngineCapability.DOCUMENT_GENERATION` this paragraph used to name was withdrawn because no\n * provider capability token could ever fill it.\n */\n DOCUMENT_EXTRACTION_PROVIDER = \"document_extraction_provider\",\n /** Reserved — audio generation (TTS / music). Serves the AUDIO modality. Not yet implemented. */\n AUDIO_PROVIDER = \"audio_provider\",\n /** Reserved — video generation. Serves the VIDEO modality. Not yet implemented. */\n VIDEO_PROVIDER = \"video_provider\",\n \n // INFRA\n EMAIL_PROVIDER = \"email_provider\",\n \n // AUTH\n SSO_OAUTH2 = \"sso_oauth2\",\n // OPENID_CONNECT ?\n\n // BILLING\n BILLING_PROVIDER = \"billing_provider\",\n\n // SMS (Phase G2)\n SMS_PROVIDER = \"sms_provider\",\n\n // FRONTEND\n FRONTEND_SDK = \"frontend_sdk\",\n}\n\n/**\n * The BACKEND runtime-contract discriminants — the subset of `ExternalProvider_ExchangeProtocol_Kind`\n * a `BackendProviderModule` can execute. Its VALUES are the enum members themselves (one spelling per\n * member since 2026-09-05, #327), so a runtime contract's `kind` IS the exchange kind and no\n * protocol→kind map exists anywhere; `BackendProtocolBinding.protocol` (the authoring KEY) and\n * `runtimeContract.kind` are checked for agreement at composition. A member absent here has no\n * backend arm: `FRONTEND_SDK` is declared by browser-side modules only, `AUDIO_PROVIDER` /\n * `VIDEO_PROVIDER` are reserved.\n *\n * A frozen const rather than a second enum because provider modules are an extension boundary and\n * the union discriminant must stay the enum member type. Import from\n * `@wildo-ai/external-connectors-models`; the private backend package consumes it, never defines it.\n */\nexport const ProviderProtocolRuntimeKind = Object.freeze({\n LLM: ExternalProvider_ExchangeProtocol_Kind.LLM_PROVIDER,\n IMAGE: ExternalProvider_ExchangeProtocol_Kind.IMAGE_PROVIDER,\n EMBEDDINGS: ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n DOCUMENT_EXTRACTION: ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER,\n AGENT_CLIENT_PROTOCOL: ExternalProvider_ExchangeProtocol_Kind.AGENT_CLIENT_PROTOCOL,\n EMAIL: ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n OAUTH2_SSO: ExternalProvider_ExchangeProtocol_Kind.SSO_OAUTH2,\n BILLING: ExternalProvider_ExchangeProtocol_Kind.BILLING_PROVIDER,\n WEBHOOK_ORIGINATOR: ExternalProvider_ExchangeProtocol_Kind.WEBHOOK_ORIGINATOR,\n SMS: ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n REST: ExternalProvider_ExchangeProtocol_Kind.REST_API,\n} as const);\nexport type ProviderProtocolRuntimeKind =\n (typeof ProviderProtocolRuntimeKind)[keyof typeof ProviderProtocolRuntimeKind];\n\nexport enum APPLICATION_ENVIRONMENT {\n DEVELOPMENT = \"development\",\n STAGING = \"staging\",\n PRODUCTION = \"production\",\n}\n\nexport enum ExternalProvider_Status {\n ACTIVE = \"active\",\n INACTIVE = \"inactive\",\n BUZY = \"busy\",\n OFFLINE = \"offline\",\n DEPRECATED = \"deprecated\",\n}\n\n\nexport enum API_HttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n PATCH = \"PATCH\",\n DELETE = \"DELETE\",\n HEAD = \"HEAD\",\n OPTIONS = \"OPTIONS\",\n}\n\n/**\n * Shared protocol profile fields.\n *\n * These fields are transport-oriented hints that many protocols use, but they\n * are not universally meaningful. Execution-oriented protocols such as a local\n * CLI runtime should not need to invent fake HTTP endpoints or auth profiles\n * just to satisfy the shared contract.\n */\nexport const ExternalProvider_ExchangeProtocol_Profile_BaseSchema = z.object({\n endpoints: z.record(z.enum(APPLICATION_ENVIRONMENT), z.string()).optional(),\n availableAuthMethods: z.array(z.enum(ExternalProvider_Auth_Kind)).optional(),\n authProfiles: z.array(ExternalProvider_AuthProfile_Schema).optional(),\n});\n\n/**\n * Shared protocol configuration fields.\n *\n * `authConfig` remains available for protocols that resolve secrets through the\n * generic provider auth model, but it is optional because execution-oriented\n * protocols can own their own auth/runtime policy contract.\n */\nexport const ExternalProvider_ExchangeProtocol_Configuration_BaseSchema = z.object({\n enabled: z.boolean(),\n authConfig: ExternalProvider_Auth_ConfigurationSchema.optional(),\n rateLimitConfig: ExternalProvider_RateLimitConfigurationSchema.optional(),\n});\n\nexport const ExternalProvider_ExchangeProtocol_Status_BaseSchema = z.object({\n protocolKind: z.enum(ExternalProvider_ExchangeProtocol_Kind),\n status: z.enum(ExternalProvider_Status),\n lastCheckedAt: z.string(),\n errorReason: z.string().optional(),\n});\n\nexport type ExternalProvider_ExchangeProtocol_Profile_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Profile_BaseSchema>;\nexport type ExternalProvider_ExchangeProtocol_Configuration_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Configuration_BaseSchema>;\nexport type ExternalProvider_ExchangeProtocol_Status_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Status_BaseSchema>;\n\nexport enum ExternalProvider_IO_Direction {\n INBOUND = \"inbound\",\n OUTBOUND = \"outbound\",\n BIDIRECTIONAL = \"bidirectional\",\n}\n\nexport enum ExternalProvider_IO_InteractionPattern {\n REQUEST_RESPONSE = \"request_response\",\n EVENT_BASED = \"event_based\",\n STREAMING = \"stream\",\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"commons.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../../src/core/commons.external-connectors-models.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { ExternalProvider_Auth_ConfigurationSchema, ExternalProvider_RateLimitConfigurationSchema } from \"./security.external-connectors-models.schemas\";\n\n\n/**\n * The ONE protocol vocabulary a provider can speak. Every other list is derived from or pinned\n * to this enum: the backend runtime-contract discriminants (`ProviderProtocolRuntimeKind`, a\n * subset of these members) and the application-authoring keys (`BUILTIN_PROVIDER_PROTOCOL` in\n * `@wildo-ai/saas-models`, its key set pinned by a drift test because that package must not\n * import this one into browser bundles).\n *\n * RETIRED 2026-09-05 (#327): `MCP_CONNECTOR`, `A2A_CONNECTOR`, `GIT_PROVIDER`, `GRPC`,\n * `SSO_SAML`. Each had an authored profile/configuration module in this package and NOTHING\n * that read it — no runtime-contract arm, no provider module declaring it, no consumer of any\n * export outside the module itself (measured with a positive control). Wildo's own MCP server,\n * A2A plane and SAML SSO are engine-implemented surfaces, not provider-declared protocols, and\n * none of them referenced these members. A retired member is refused at CONFIG time by\n * `ProviderProtocolSelectorSchema`, naming the value. Re-admit one only together with a\n * runtime-contract arm and a provider module that declares it.\n */\nexport enum ExternalProvider_ExchangeProtocol_Kind {\n // WEB\n REST_API = \"rest_api\",\n WEBHOOK_ORIGINATOR = \"webhook_originator\",\n // SOAP ?\n \n // AI\n LLM_PROVIDER = \"llm_provider\",\n /**\n * Zed's Agent Client Protocol — a JSON-RPC session between Wildo (the client)\n * and a CODING AGENT subprocess that reads and writes a workspace, runs\n * commands, and calls back for permission.\n *\n * Its own protocol kind rather than a mode of `CLI_RUNTIME`, for the reason\n * `EMBEDDINGS_PROVIDER` records above and one more that is specific to it: a\n * coding agent is not a one-shot text call wearing a subprocess. Every\n * capability the previous CLI transport lacked — token and cost accounting, a\n * permission channel, cancellation, resumption, live progress — was missing\n * because the one-shot shape has nowhere to put it, not because nobody had\n * implemented it yet.\n *\n * NOT to be confused with the IBM/BeeAI \"Agent Communication Protocol\", which\n * shares the acronym and is agent-to-agent — that space is `A2A_CONNECTOR`.\n */\n AGENT_CLIENT_PROTOCOL = \"agent_client_protocol\",\n // AI — multimodal generation (artifact-modality axis)\n /** Text-to-image generation (wired: gpt-image). Serves the IMAGE modality. */\n IMAGE_PROVIDER = \"image_provider\",\n /**\n * Text → vector embeddings (wired: OpenAI `text-embedding-3-*`). Serves the RAG derived-data\n * tier (corpus embedding via the `rag:embedding-drain` worker; query-time embedding in\n * retrieval). Deliberately its OWN protocol kind rather than a sixth `LLMProvider_OperationKey`\n * (RAG plan DL2): an unmapped LLM operation key fails SILENTLY across six consumer surfaces\n * (registry semantic-operation map, output normalization, executor dispatch, capability slot,\n * usage completeness, observability sink), whereas a new protocol kind fails COMPILATION at\n * every `runtimeContract.kind` switch — the `IMAGE_PROVIDER` precedent. It also gets its own\n * `EngineCapability.AI_EMBEDDINGS` slot so an application can select its embeddings provider\n * independently of its chat provider.\n */\n EMBEDDINGS_PROVIDER = \"embeddings_provider\",\n /**\n * Document bytes → text (wired: Mistral `mistral-ocr-latest`). Serves the file-side text\n * provider that `FileTextExtractionBackendService` owns, whose largest consumer is\n * `.ragSource()` corpus ingestion.\n *\n * Its own kind for the reason `EMBEDDINGS_PROVIDER` records above, and it fills its own\n * `EngineCapability.AI_DOCUMENT_EXTRACTION` slot so an application selects its OCR provider\n * independently of chat and embeddings — three unrelated procurement decisions.\n *\n * NOT to be confused with PDF *generation* (templates → bytes), which is the `pdfTemplates`\n * surface and is semantically the opposite direction. It has no provider slot: the\n * `EngineCapability.DOCUMENT_GENERATION` this paragraph used to name was withdrawn because no\n * provider capability token could ever fill it.\n */\n DOCUMENT_EXTRACTION_PROVIDER = \"document_extraction_provider\",\n /** Reserved — audio generation (TTS / music). Serves the AUDIO modality. Not yet implemented. */\n AUDIO_PROVIDER = \"audio_provider\",\n /** Reserved — video generation. Serves the VIDEO modality. Not yet implemented. */\n VIDEO_PROVIDER = \"video_provider\",\n \n // INFRA\n EMAIL_PROVIDER = \"email_provider\",\n /**\n * RECEIVING email (#1630): the provider hosts a receiving domain, announces each message through a\n * `WEBHOOK_ORIGINATOR` endpoint whose `capability` is `EMAIL_INBOUND`, and serves the message on\n * request through `StandardInboundEmail_Interface`. Its own kind rather than a mode of\n * `EMAIL_PROVIDER` because sending and receiving are separate procurement decisions and share no\n * operation: a sending contract composes a request, a receiving one parses a notification and\n * fetches a message.\n */\n EMAIL_INBOUND_PROVIDER = \"email_inbound_provider\",\n \n // AUTH\n SSO_OAUTH2 = \"sso_oauth2\",\n // OPENID_CONNECT ?\n\n // BILLING\n BILLING_PROVIDER = \"billing_provider\",\n\n // SMS (Phase G2)\n SMS_PROVIDER = \"sms_provider\",\n\n // FRONTEND\n FRONTEND_SDK = \"frontend_sdk\",\n}\n\n/**\n * The BACKEND runtime-contract discriminants — the subset of `ExternalProvider_ExchangeProtocol_Kind`\n * a `BackendProviderModule` can execute. Its VALUES are the enum members themselves (one spelling per\n * member since 2026-09-05, #327), so a runtime contract's `kind` IS the exchange kind and no\n * protocol→kind map exists anywhere; `BackendProtocolBinding.protocol` (the authoring KEY) and\n * `runtimeContract.kind` are checked for agreement at composition. A member absent here has no\n * backend arm: `FRONTEND_SDK` is declared by browser-side modules only, `AUDIO_PROVIDER` /\n * `VIDEO_PROVIDER` are reserved.\n *\n * A frozen const rather than a second enum because provider modules are an extension boundary and\n * the union discriminant must stay the enum member type. Import from\n * `@wildo-ai/external-connectors-models`; the private backend package consumes it, never defines it.\n */\nexport const ProviderProtocolRuntimeKind = Object.freeze({\n LLM: ExternalProvider_ExchangeProtocol_Kind.LLM_PROVIDER,\n IMAGE: ExternalProvider_ExchangeProtocol_Kind.IMAGE_PROVIDER,\n EMBEDDINGS: ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n DOCUMENT_EXTRACTION: ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER,\n AGENT_CLIENT_PROTOCOL: ExternalProvider_ExchangeProtocol_Kind.AGENT_CLIENT_PROTOCOL,\n EMAIL: ExternalProvider_ExchangeProtocol_Kind.EMAIL_PROVIDER,\n EMAIL_INBOUND: ExternalProvider_ExchangeProtocol_Kind.EMAIL_INBOUND_PROVIDER,\n OAUTH2_SSO: ExternalProvider_ExchangeProtocol_Kind.SSO_OAUTH2,\n BILLING: ExternalProvider_ExchangeProtocol_Kind.BILLING_PROVIDER,\n WEBHOOK_ORIGINATOR: ExternalProvider_ExchangeProtocol_Kind.WEBHOOK_ORIGINATOR,\n SMS: ExternalProvider_ExchangeProtocol_Kind.SMS_PROVIDER,\n REST: ExternalProvider_ExchangeProtocol_Kind.REST_API,\n} as const);\nexport type ProviderProtocolRuntimeKind =\n (typeof ProviderProtocolRuntimeKind)[keyof typeof ProviderProtocolRuntimeKind];\n\nexport enum APPLICATION_ENVIRONMENT {\n DEVELOPMENT = \"development\",\n STAGING = \"staging\",\n PRODUCTION = \"production\",\n}\n\n\nexport enum API_HttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n PATCH = \"PATCH\",\n DELETE = \"DELETE\",\n HEAD = \"HEAD\",\n OPTIONS = \"OPTIONS\",\n}\n\n/**\n * Shared protocol configuration fields — the ONE survivor of the per-protocol profile /\n * configuration / status triple (#965), and the reason it stays is a reader, not a legacy.\n *\n * `authConfig` is read on a resolved provider configuration by the OAuth2 connection resolver\n * (`clientId`, `secretRef`) and by the registry's default-over-custom merge, and `enabled` is what\n * a provider configuration parses at the boundary (`AgentClientProtocol_ConfigurationSchema`,\n * `OAuth2Provider_ConfigurationSchema` extend this; the LLM and webhook configurations intersect\n * with the inferred type). It is optional because execution-oriented protocols can own their own\n * auth/runtime policy contract.\n *\n * What is gone: the profile base (a provider's transport facts now live on its runtime contract,\n * `ProviderProtocolRuntimeContract`, which the registry projects) and the status base (nothing\n * ever recorded a per-protocol status). Both had no reader outside the declarations that extended\n * them.\n */\nexport const ExternalProvider_ExchangeProtocol_Configuration_BaseSchema = z.object({\n enabled: z.boolean(),\n authConfig: ExternalProvider_Auth_ConfigurationSchema.optional(),\n rateLimitConfig: ExternalProvider_RateLimitConfigurationSchema.optional(),\n});\n\nexport type ExternalProvider_ExchangeProtocol_Configuration_Base = z.infer<typeof ExternalProvider_ExchangeProtocol_Configuration_BaseSchema>;\n\nexport enum ExternalProvider_IO_Direction {\n INBOUND = \"inbound\",\n OUTBOUND = \"outbound\",\n BIDIRECTIONAL = \"bidirectional\",\n}\n\nexport enum ExternalProvider_IO_InteractionPattern {\n REQUEST_RESPONSE = \"request_response\",\n EVENT_BASED = \"event_based\",\n STREAMING = \"stream\",\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-classification.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"operation-classification.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../../src/core/operation-classification.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,gCAAgC;IAC1C,IAAI,SAAS;IACb,KAAK,UAAU;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-classification.external-connectors-models.schemas.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"operation-classification.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../../src/core/operation-classification.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,gCAGX;AAHD,WAAY,gCAAgC;IAC1C,iDAAa,CAAA;IACb,mDAAe,CAAA;AACjB,CAAC,EAHW,gCAAgC,KAAhC,gCAAgC,QAG3C","sourcesContent":["/**\n * Whether an external operation READS from or WRITES to the third-party system.\n *\n * Kept as its own tiny vocabulary because every operation catalogue needs it regardless of where\n * the catalogue came from: a caller decides retry-safety, an audit decides severity, and a UI\n * decides whether to confirm. Neutral by construction — it names the operation's effect, never a\n * source catalogue's spelling of it.\n */\nexport enum ExternalOperation_Classification {\n READ = \"READ\",\n WRITE = \"WRITE\",\n}\n"]}
|
|
@@ -76,7 +76,6 @@ export declare const ExternalProvider_AuthProfile_BaseSchema: z.ZodObject<{
|
|
|
76
76
|
location: z.ZodDefault<z.ZodEnum<typeof ExternalProvider_Auth_ApiKey_Location>>;
|
|
77
77
|
locationField: z.ZodDefault<z.ZodString>;
|
|
78
78
|
}, z.core.$strip>;
|
|
79
|
-
export type ExternalProvider_Auth_Configuration = z.infer<typeof ExternalProvider_Auth_ConfigurationSchema>;
|
|
80
79
|
export type ExternalProvider_RateLimitConfiguration = z.infer<typeof ExternalProvider_RateLimitConfigurationSchema>;
|
|
81
80
|
export type ExternalProvider_AuthProfile_Base = z.infer<typeof ExternalProvider_AuthProfile_BaseSchema>;
|
|
82
81
|
/**
|
|
@@ -146,10 +145,10 @@ export declare const ExternalProvider_AuthProfile_Schema: z.ZodDiscriminatedUnio
|
|
|
146
145
|
extraAuthParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
147
146
|
extraTokenParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
148
147
|
tokenFormat: z.ZodDefault<z.ZodEnum<{
|
|
149
|
-
custom: "custom";
|
|
150
|
-
bearer: "bearer";
|
|
151
148
|
token: "token";
|
|
149
|
+
bearer: "bearer";
|
|
152
150
|
oauth: "oauth";
|
|
151
|
+
custom: "custom";
|
|
153
152
|
}>>;
|
|
154
153
|
customTokenPrefix: z.ZodOptional<z.ZodString>;
|
|
155
154
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -266,8 +265,23 @@ export declare enum ExternalProvider_SecretScope {
|
|
|
266
265
|
* | APPLICATION × SERVICE | a platform API key |
|
|
267
266
|
* | APPLICATION × USER | the application's service identity impersonating a user |
|
|
268
267
|
* | ORGANIZATION × SERVICE | the tenant's own bot or workspace token |
|
|
269
|
-
* | ORGANIZATION × USER |
|
|
270
|
-
* | USER × SERVICE | a
|
|
268
|
+
* | ORGANIZATION × USER | ONE member's own account, linked for the whole organization |
|
|
269
|
+
* | USER × SERVICE | a person's own account, for that person |
|
|
270
|
+
*
|
|
271
|
+
* ## `ORGANIZATION × USER`, decided 2026-09-12 (Paul, recorded on wildo-ai/wildo-ai#18)
|
|
272
|
+
*
|
|
273
|
+
* A member connects THEIR OWN vendor account on the organization's behalf — the common pattern that
|
|
274
|
+
* lets a tenant integrate without a service account. There is ONE grant per organization, and every
|
|
275
|
+
* member's call spends it transparently. The member who links it carries the responsibility for
|
|
276
|
+
* that: they are trusting their colleagues' activity with their account, they ACKNOWLEDGE it when
|
|
277
|
+
* they link, and that acknowledgement is the whole control — no per-call gate. What the audit trail
|
|
278
|
+
* must then say, on every call, is WHOSE account was spent: the member who linked it.
|
|
279
|
+
*
|
|
280
|
+
* So the person behind this shape is fixed by the GRANT, not by the call, which is why a call never
|
|
281
|
+
* names `actingForUserId` for it. The rejected readings are worth keeping: per-member grants keyed
|
|
282
|
+
* `(organization, member)` is a real model and not what this shape means here; and requiring the
|
|
283
|
+
* call to name the linking member would stop every other member using a grant that exists to be
|
|
284
|
+
* shared. A person's connection for themselves is the USER-owned row.
|
|
271
285
|
*
|
|
272
286
|
* OAuth 2.0 carries the same split in its grant types: the client is the REGISTRATION, and the grant
|
|
273
287
|
* decides on whose behalf a token is minted.
|
|
@@ -302,9 +316,9 @@ export declare const ExternalProvider_ConnectionShapeSchema: z.ZodObject<{
|
|
|
302
316
|
*
|
|
303
317
|
* The capability and the call are the same two axes and different objects, which is why this is a
|
|
304
318
|
* separate schema rather than the target with its identifiers made optional. A provider admitting
|
|
305
|
-
* `ORGANIZATION × USER` says nothing about which organization; a call naming
|
|
306
|
-
*
|
|
307
|
-
*
|
|
319
|
+
* `ORGANIZATION × USER` says nothing about which organization; a call naming no organization is
|
|
320
|
+
* incomplete. Making one schema serve both would have to relax exactly the refinements that make the
|
|
321
|
+
* call safe.
|
|
308
322
|
*/
|
|
309
323
|
export type ExternalProvider_ConnectionShape = z.infer<typeof ExternalProvider_ConnectionShapeSchema>;
|
|
310
324
|
export declare const ExternalProvider_ConnectionTargetSchema: z.ZodObject<{
|
|
@@ -313,5 +327,23 @@ export declare const ExternalProvider_ConnectionTargetSchema: z.ZodObject<{
|
|
|
313
327
|
ownerId: z.ZodOptional<z.ZodString>;
|
|
314
328
|
actingForUserId: z.ZodOptional<z.ZodString>;
|
|
315
329
|
}, z.core.$strip>;
|
|
330
|
+
/**
|
|
331
|
+
* Whether a connection target must NAME the user it acts for — true only for APPLICATION × USER.
|
|
332
|
+
*
|
|
333
|
+
* One predicate rather than a condition restated at each builder: the target schema, the HTTP-API
|
|
334
|
+
* binding's target builder and the connect panel all ask this question, and three spellings of it
|
|
335
|
+
* are how a target comes to carry a person the refinement then refuses.
|
|
336
|
+
*/
|
|
337
|
+
export declare function connectionTargetNamesActingUser(shape: ExternalProvider_ConnectionShape): boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Whether linking this connection lends ONE member's own account to their whole organization —
|
|
340
|
+
* true only for ORGANIZATION × USER.
|
|
341
|
+
*
|
|
342
|
+
* The member who links such a connection is trusting every colleague's activity with their account,
|
|
343
|
+
* so the connect surface asks them to ACKNOWLEDGE it and the connect leg refuses a link that did not
|
|
344
|
+
* (decision on wildo-ai/wildo-ai#18). One predicate for the panel that shows the acknowledgement and
|
|
345
|
+
* the controller that requires it, so the two cannot come to disagree about which links owe one.
|
|
346
|
+
*/
|
|
347
|
+
export declare function connectionLendsMemberAccountToOrganization(shape: ExternalProvider_ConnectionShape): boolean;
|
|
316
348
|
export type ExternalProvider_ConnectionTarget = z.infer<typeof ExternalProvider_ConnectionTargetSchema>;
|
|
317
349
|
//# sourceMappingURL=security.external-connectors-models.schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"security.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../../src/core/security.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,+BAA+B,EAC/B,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAMxB;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,iCAAiC;IACjC,IAAI,SAAS;IAEb,0CAA0C;IAC1C,OAAO,YAAY;IAEnB,gDAAgD;IAChD,MAAM,WAAW;IAEjB,gCAAgC;IAChC,KAAK,UAAU;IAEf,kEAAkE;IAClE,MAAM,WAAW;IAEjB,0CAA0C;IAC1C,cAAc,mBAAmB;IAEjC,+CAA+C;IAC/C,cAAc,mBAAmB;IAEjC,uCAAuC;IACvC,UAAU,eAAe;IAEzB,qDAAqD;IACrD,eAAe,oBAAoB;CACpC;AAMD,oBAAY,qCAAqC;IAC/C,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,8CAA8C;IACxD,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,mCAAmC;IAC7C,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,mBAAmB,wBAAwB;CAC5C;AAMD;;;GAGG;AACH,eAAO,MAAM,yCAAyC;;;;;iBAYpD,CAAC;AAMH,eAAO,MAAM,6CAA6C;;;;;;;iBAkBxD,CAAC;AAMH,eAAO,MAAM,uCAAuC;;;;;;iBAelD,CAAC;AAMH,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC;AACpH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAMxG;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmI9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAM/F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,oBAAY,sCAAsC;IAChD,qGAAqG;IACrG,WAAW,gBAAgB;IAC3B,mGAAmG;IACnG,YAAY,iBAAiB;IAC7B,uFAAuF;IACvF,IAAI,SAAS;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oBAAY,4BAA4B;IACtC;;;OAGG;IACH,YAAY,iBAAiB;IAC7B;;;;OAIG;IACH,UAAU,eAAe;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,oBAAY,0CAA0C;IACpD,2EAA2E;IAC3E,OAAO,YAAY;IACnB,wFAAwF;IACxF,IAAI,SAAS;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sCAAsC;;;iBAIjD,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sCAAsC,CAAC,CAAC;AAEtG,eAAO,MAAM,uCAAuC;;;;;iBAkDlD,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAGhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAG3G;AAED,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC"}
|
|
@@ -317,8 +317,23 @@ export var ExternalProvider_SecretScope;
|
|
|
317
317
|
* | APPLICATION × SERVICE | a platform API key |
|
|
318
318
|
* | APPLICATION × USER | the application's service identity impersonating a user |
|
|
319
319
|
* | ORGANIZATION × SERVICE | the tenant's own bot or workspace token |
|
|
320
|
-
* | ORGANIZATION × USER |
|
|
321
|
-
* | USER × SERVICE | a
|
|
320
|
+
* | ORGANIZATION × USER | ONE member's own account, linked for the whole organization |
|
|
321
|
+
* | USER × SERVICE | a person's own account, for that person |
|
|
322
|
+
*
|
|
323
|
+
* ## `ORGANIZATION × USER`, decided 2026-09-12 (Paul, recorded on wildo-ai/wildo-ai#18)
|
|
324
|
+
*
|
|
325
|
+
* A member connects THEIR OWN vendor account on the organization's behalf — the common pattern that
|
|
326
|
+
* lets a tenant integrate without a service account. There is ONE grant per organization, and every
|
|
327
|
+
* member's call spends it transparently. The member who links it carries the responsibility for
|
|
328
|
+
* that: they are trusting their colleagues' activity with their account, they ACKNOWLEDGE it when
|
|
329
|
+
* they link, and that acknowledgement is the whole control — no per-call gate. What the audit trail
|
|
330
|
+
* must then say, on every call, is WHOSE account was spent: the member who linked it.
|
|
331
|
+
*
|
|
332
|
+
* So the person behind this shape is fixed by the GRANT, not by the call, which is why a call never
|
|
333
|
+
* names `actingForUserId` for it. The rejected readings are worth keeping: per-member grants keyed
|
|
334
|
+
* `(organization, member)` is a real model and not what this shape means here; and requiring the
|
|
335
|
+
* call to name the linking member would stop every other member using a grant that exists to be
|
|
336
|
+
* shared. A person's connection for themselves is the USER-owned row.
|
|
322
337
|
*
|
|
323
338
|
* OAuth 2.0 carries the same split in its grant types: the client is the REGISTRATION, and the grant
|
|
324
339
|
* decides on whose behalf a token is minted.
|
|
@@ -357,9 +372,13 @@ export const ExternalProvider_ConnectionTargetSchema = ExternalProvider_Connecti
|
|
|
357
372
|
*/
|
|
358
373
|
ownerId: z.string().optional(),
|
|
359
374
|
/**
|
|
360
|
-
* The user
|
|
361
|
-
*
|
|
362
|
-
*
|
|
375
|
+
* The user an APPLICATION-owned, USER-delegated call impersonates — the ONLY shape where the call
|
|
376
|
+
* itself must say who, because the application's identity could impersonate anyone.
|
|
377
|
+
*
|
|
378
|
+
* Refused everywhere else. An ORGANIZATION-owned USER-delegated connection spends the account of
|
|
379
|
+
* the member who LINKED it, whoever triggers the call (see the decision above), so a person named
|
|
380
|
+
* here would describe an identity the runtime will not act as. A USER-owned connection already
|
|
381
|
+
* names its person in `ownerId`.
|
|
363
382
|
*/
|
|
364
383
|
actingForUserId: z.string().optional(),
|
|
365
384
|
}).superRefine((target, ctx) => {
|
|
@@ -378,20 +397,48 @@ export const ExternalProvider_ConnectionTargetSchema = ExternalProvider_Connecti
|
|
|
378
397
|
message: 'An application-owned connection has exactly one instance, so an ownerId here names something that does not exist.',
|
|
379
398
|
});
|
|
380
399
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
400
|
+
if (connectionTargetNamesActingUser(target)) {
|
|
401
|
+
if (target.actingForUserId === undefined || target.actingForUserId === '') {
|
|
402
|
+
ctx.addIssue({
|
|
403
|
+
code: 'custom',
|
|
404
|
+
path: ['actingForUserId'],
|
|
405
|
+
message: 'An application-owned delegated call impersonates someone, and who is what makes it permissible — it cannot be left to be inferred.',
|
|
406
|
+
});
|
|
407
|
+
}
|
|
388
408
|
}
|
|
389
|
-
if (
|
|
409
|
+
else if (target.actingForUserId !== undefined) {
|
|
390
410
|
ctx.addIssue({
|
|
391
411
|
code: 'custom',
|
|
392
412
|
path: ['actingForUserId'],
|
|
393
|
-
message:
|
|
413
|
+
message: target.delegation === ExternalProvider_Connection_DelegationMode.USER
|
|
414
|
+
? `A ${target.ownerScope}-owned connection's person is fixed by the account itself — the member who linked it, or the owner. `
|
|
415
|
+
+ 'Naming a user here describes an identity the runtime will not act as.'
|
|
416
|
+
: 'A SERVICE call acts for nobody. Naming a user here reads as delegation the runtime will not perform, which is worse than an error: the call succeeds as the wrong identity.',
|
|
394
417
|
});
|
|
395
418
|
}
|
|
396
419
|
});
|
|
420
|
+
/**
|
|
421
|
+
* Whether a connection target must NAME the user it acts for — true only for APPLICATION × USER.
|
|
422
|
+
*
|
|
423
|
+
* One predicate rather than a condition restated at each builder: the target schema, the HTTP-API
|
|
424
|
+
* binding's target builder and the connect panel all ask this question, and three spellings of it
|
|
425
|
+
* are how a target comes to carry a person the refinement then refuses.
|
|
426
|
+
*/
|
|
427
|
+
export function connectionTargetNamesActingUser(shape) {
|
|
428
|
+
return shape.ownerScope === ExternalProvider_Connection_OwnerScope.APPLICATION
|
|
429
|
+
&& shape.delegation === ExternalProvider_Connection_DelegationMode.USER;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Whether linking this connection lends ONE member's own account to their whole organization —
|
|
433
|
+
* true only for ORGANIZATION × USER.
|
|
434
|
+
*
|
|
435
|
+
* The member who links such a connection is trusting every colleague's activity with their account,
|
|
436
|
+
* so the connect surface asks them to ACKNOWLEDGE it and the connect leg refuses a link that did not
|
|
437
|
+
* (decision on wildo-ai/wildo-ai#18). One predicate for the panel that shows the acknowledgement and
|
|
438
|
+
* the controller that requires it, so the two cannot come to disagree about which links owe one.
|
|
439
|
+
*/
|
|
440
|
+
export function connectionLendsMemberAccountToOrganization(shape) {
|
|
441
|
+
return shape.ownerScope === ExternalProvider_Connection_OwnerScope.ORGANIZATION
|
|
442
|
+
&& shape.delegation === ExternalProvider_Connection_DelegationMode.USER;
|
|
443
|
+
}
|
|
397
444
|
//# sourceMappingURL=security.external-connectors-models.schemas.js.map
|