@wildo-ai/external-connectors-models 1.0.1 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +34 -0
- package/dist/esm/.builder.pid +9 -0
- package/dist/esm/companion-exports.d.ts +8 -0
- package/dist/esm/companion-exports.d.ts.map +1 -0
- package/dist/esm/companion-exports.js +8 -0
- package/dist/esm/companion-exports.js.map +1 -0
- package/dist/esm/core/commons.external-connectors-models.schemas.d.ts +66 -19
- package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/commons.external-connectors-models.schemas.js +51 -3
- package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/core/oauth2.enums.d.ts.map +1 -1
- package/dist/esm/core/oauth2.enums.js +1 -1
- package/dist/esm/core/oauth2.enums.js.map +1 -1
- package/dist/esm/core/operations.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/operations.external-connectors-models.schemas.js +1 -1
- package/dist/esm/core/operations.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts +35 -20
- package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/protocols.external-connectors-models.schemas.js +1 -1
- package/dist/esm/core/protocols.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.js +1 -1
- package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/features/core.external-connectors-models.schemas.d.ts +4 -4
- package/dist/esm/features/core.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/features/core.external-connectors-models.schemas.js +13 -13
- package/dist/esm/features/core.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/features/email.external-connectors-models.schemas.d.ts +12 -12
- package/dist/esm/features/email.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/features/email.external-connectors-models.schemas.js +2 -2
- package/dist/esm/features/email.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/features/hooks.external-connectors-models.schemas.js +1 -1
- package/dist/esm/features/hooks.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/features/sms.external-connectors-models.schemas.d.ts +4 -4
- package/dist/esm/features/sms.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/features/sms.external-connectors-models.schemas.js +1 -1
- package/dist/esm/features/sms.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/index.d.ts +27 -27
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts +3 -3
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/a2a.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts +526 -0
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js +639 -0
- package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +67 -0
- package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/billing.standard-interface.schemas.js +1 -1
- package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -1
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts +179 -0
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js +217 -0
- package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts +5 -5
- package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/email.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/email.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts +37 -10
- package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/email.standard-interface.schemas.js +137 -4
- package/dist/esm/protocols/email.standard-interface.schemas.js.map +1 -1
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts +175 -0
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js +191 -0
- package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts +4 -4
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js +2 -2
- package/dist/esm/protocols/frontend.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts +3 -3
- package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/git.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/git.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts +3 -3
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/grpc.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +14 -6
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/image.external-connectors-models.schemas.d.ts +151 -0
- package/dist/esm/protocols/image.external-connectors-models.schemas.d.ts.map +1 -0
- package/dist/esm/protocols/image.external-connectors-models.schemas.js +150 -0
- package/dist/esm/protocols/image.external-connectors-models.schemas.js.map +1 -0
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +567 -67
- package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js +815 -36
- package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts +3 -3
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/mcp.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts +27 -28
- 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 -3
- package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts +3 -3
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts +30 -30
- package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/saml.external-connectors-models.schemas.js +1 -1
- package/dist/esm/protocols/saml.external-connectors-models.schemas.js.map +1 -1
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts +2 -2
- package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -1
- package/dist/esm/protocols/sms.external-connectors-models.schemas.js +1 -1
- 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 +1 -1
- package/dist/esm/protocols/sms.standard-interface.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +20 -10
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts +0 -127
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts.map +0 -1
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js +0 -22
- package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js.map +0 -1
- package/dist/esm/core/providers.external-connectors-models.schemas.d.ts +0 -80
- package/dist/esm/core/providers.external-connectors-models.schemas.d.ts.map +0 -1
- package/dist/esm/core/providers.external-connectors-models.schemas.js +0 -55
- package/dist/esm/core/providers.external-connectors-models.schemas.js.map +0 -1
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts +0 -214
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts.map +0 -1
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js +0 -188
- package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js.map +0 -1
|
@@ -28,10 +28,45 @@ export const StandardEmail_AttachmentSchema = z.object({
|
|
|
28
28
|
contentType: z.string().optional(),
|
|
29
29
|
contentId: z.string().optional(), // For inline images (cid:)
|
|
30
30
|
});
|
|
31
|
+
/**
|
|
32
|
+
* Wire encoding used by a network email provider gateway.
|
|
33
|
+
*
|
|
34
|
+
* This vocabulary is deliberately closed and explicit on every provider
|
|
35
|
+
* contract: JSON and multipart data require materially different headers and
|
|
36
|
+
* serialization. There is no implicit default.
|
|
37
|
+
*/
|
|
38
|
+
export var EmailProviderPayloadEncoding;
|
|
39
|
+
(function (EmailProviderPayloadEncoding) {
|
|
40
|
+
EmailProviderPayloadEncoding["JSON"] = "json";
|
|
41
|
+
EmailProviderPayloadEncoding["MULTIPART_FORM_DATA"] = "multipart-form-data";
|
|
42
|
+
})(EmailProviderPayloadEncoding || (EmailProviderPayloadEncoding = {}));
|
|
43
|
+
/** Provider acknowledgement state returned by a synchronous send endpoint. */
|
|
44
|
+
export var EmailProviderSubmissionStatus;
|
|
45
|
+
(function (EmailProviderSubmissionStatus) {
|
|
46
|
+
EmailProviderSubmissionStatus["QUEUED"] = "queued";
|
|
47
|
+
EmailProviderSubmissionStatus["SENT"] = "sent";
|
|
48
|
+
EmailProviderSubmissionStatus["SCHEDULED"] = "scheduled";
|
|
49
|
+
})(EmailProviderSubmissionStatus || (EmailProviderSubmissionStatus = {}));
|
|
50
|
+
/** Provider-owned classification for HTTP responses whose status is ambiguous. */
|
|
51
|
+
export var EmailProviderSubmissionClassification;
|
|
52
|
+
(function (EmailProviderSubmissionClassification) {
|
|
53
|
+
EmailProviderSubmissionClassification["ACCEPTED"] = "accepted";
|
|
54
|
+
EmailProviderSubmissionClassification["REJECTED"] = "rejected";
|
|
55
|
+
EmailProviderSubmissionClassification["ACCEPTANCE_UNKNOWN"] = "acceptance_unknown";
|
|
56
|
+
})(EmailProviderSubmissionClassification || (EmailProviderSubmissionClassification = {}));
|
|
31
57
|
// ===============================================================
|
|
32
58
|
// TRANSACTIONAL: Send Email Request
|
|
33
59
|
// ===============================================================
|
|
34
60
|
export const StandardEmail_SendRequestSchema = z.object({
|
|
61
|
+
/**
|
|
62
|
+
* Stable identity of ONE logical provider submission across retries.
|
|
63
|
+
*
|
|
64
|
+
* Deliberately not named `idempotencyKey`: it remains the framework's
|
|
65
|
+
* correlation identity even when the selected provider cannot enforce
|
|
66
|
+
* idempotency. Provider gateways may map it to a native idempotency field as
|
|
67
|
+
* an optional duplicate-risk reduction.
|
|
68
|
+
*/
|
|
69
|
+
submissionId: z.string().min(1).max(256),
|
|
35
70
|
// Recipients (required)
|
|
36
71
|
to: z.array(StandardEmail_AddressSchema).min(1),
|
|
37
72
|
cc: z.array(StandardEmail_AddressSchema).optional(),
|
|
@@ -60,10 +95,108 @@ export const StandardEmail_SendRequestSchema = z.object({
|
|
|
60
95
|
// ===============================================================
|
|
61
96
|
export const StandardEmail_SendResponseSchema = z.object({
|
|
62
97
|
success: z.boolean(),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Mandatory provider-owned submission meaning. HTTP status, receipt shape,
|
|
100
|
+
* and recipient-level `success` are not interchangeable across providers.
|
|
101
|
+
*/
|
|
102
|
+
classification: z.enum(EmailProviderSubmissionClassification),
|
|
103
|
+
/**
|
|
104
|
+
* Provider-assigned receipts. An array is required because Brevo and
|
|
105
|
+
* Mailchimp may acknowledge several recipient messages in one response.
|
|
106
|
+
* Empty is honest for a successful non-delivery preview or a provider that
|
|
107
|
+
* accepted the request without returning a receipt.
|
|
108
|
+
*/
|
|
109
|
+
providerMessageIds: z.array(z.string().min(1)),
|
|
110
|
+
/** Per-recipient rejections returned inside an otherwise successful HTTP response. */
|
|
111
|
+
rejectedRecipients: z.array(z.object({
|
|
112
|
+
email: z.string().min(1),
|
|
113
|
+
reason: z.string().optional(),
|
|
114
|
+
})).optional(),
|
|
115
|
+
/**
|
|
116
|
+
* Provider-declared detail explaining its explicit classification, including
|
|
117
|
+
* semantic rejection or an ambiguous idempotency/processing conflict.
|
|
118
|
+
*/
|
|
119
|
+
providerError: z.string().min(1).optional(),
|
|
120
|
+
/**
|
|
121
|
+
* Whether the caller should retry this response under at-least-once
|
|
122
|
+
* semantics. For an acceptance-unknown response, a retry may duplicate a
|
|
123
|
+
* message unless the selected provider happens to enforce the submission id.
|
|
124
|
+
*/
|
|
125
|
+
retryable: z.boolean().optional(),
|
|
126
|
+
/** Provider reports that this submission identity was already suppressed. */
|
|
127
|
+
deduplicated: z.boolean().optional(),
|
|
128
|
+
status: z.enum(EmailProviderSubmissionStatus).optional(),
|
|
66
129
|
scheduledAt: z.iso.datetime().optional(),
|
|
130
|
+
}).superRefine((response, context) => {
|
|
131
|
+
const accepted = response.classification
|
|
132
|
+
=== EmailProviderSubmissionClassification.ACCEPTED;
|
|
133
|
+
/**
|
|
134
|
+
* `success` describes whole-request success, whereas `classification`
|
|
135
|
+
* describes whether any provider submission was accepted. Once a provider
|
|
136
|
+
* adapter classifies a submission as accepted, auxiliary result metadata
|
|
137
|
+
* must never turn that acknowledgement into permission to replay. A false
|
|
138
|
+
* `success` may describe an honest partial result (for example Mailchimp)
|
|
139
|
+
* or anomalous adapter metadata; `rejectedRecipients` is therefore useful
|
|
140
|
+
* evidence, but not a prerequisite for preserving acceptance.
|
|
141
|
+
*/
|
|
142
|
+
if (response.success && !accepted) {
|
|
143
|
+
context.addIssue({
|
|
144
|
+
code: 'custom',
|
|
145
|
+
path: ['success'],
|
|
146
|
+
message: 'A successful email response must be classified as accepted',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
if (response.success && (response.rejectedRecipients?.length ?? 0) > 0) {
|
|
150
|
+
context.addIssue({
|
|
151
|
+
code: 'custom',
|
|
152
|
+
path: ['rejectedRecipients'],
|
|
153
|
+
message: 'A successful email response cannot contain rejected recipients',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (!accepted && response.providerMessageIds.length > 0) {
|
|
157
|
+
context.addIssue({
|
|
158
|
+
code: 'custom',
|
|
159
|
+
path: ['providerMessageIds'],
|
|
160
|
+
message: 'A non-accepted email response cannot contain provider acceptance receipts',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
for (const [index, providerMessageId] of response.providerMessageIds.entries()) {
|
|
164
|
+
if (response.providerMessageIds.indexOf(providerMessageId) !== index) {
|
|
165
|
+
context.addIssue({
|
|
166
|
+
code: 'custom',
|
|
167
|
+
path: ['providerMessageIds', index],
|
|
168
|
+
message: 'Provider message receipts must be unique',
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
for (const acceptedOnlyField of [
|
|
173
|
+
'deduplicated',
|
|
174
|
+
'status',
|
|
175
|
+
'scheduledAt',
|
|
176
|
+
]) {
|
|
177
|
+
if (!accepted && response[acceptedOnlyField] !== undefined) {
|
|
178
|
+
context.addIssue({
|
|
179
|
+
code: 'custom',
|
|
180
|
+
path: [acceptedOnlyField],
|
|
181
|
+
message: `${acceptedOnlyField} is valid only for an accepted email response`,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (response.scheduledAt !== undefined
|
|
186
|
+
&& response.status !== EmailProviderSubmissionStatus.SCHEDULED) {
|
|
187
|
+
context.addIssue({
|
|
188
|
+
code: 'custom',
|
|
189
|
+
path: ['scheduledAt'],
|
|
190
|
+
message: 'A scheduledAt receipt requires provider status scheduled',
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
if (accepted && response.retryable === true) {
|
|
194
|
+
context.addIssue({
|
|
195
|
+
code: 'custom',
|
|
196
|
+
path: ['retryable'],
|
|
197
|
+
message: 'An accepted email response cannot request replay',
|
|
198
|
+
});
|
|
199
|
+
}
|
|
67
200
|
});
|
|
68
201
|
// ===============================================================
|
|
69
202
|
// TRANSACTIONAL: Send Template Request
|
|
@@ -272,4 +405,4 @@ export const StandardEmail_OperationCapabilities = {
|
|
|
272
405
|
sendCampaign: [EmailProvider_Capability.SUPPORTS_MARKETING, EmailProvider_Capability.SUPPORTS_CAMPAIGNS],
|
|
273
406
|
manageList: [EmailProvider_Capability.SUPPORTS_LIST_MANAGEMENT],
|
|
274
407
|
};
|
|
275
|
-
//# sourceMappingURL=email.standard-interface.schemas.js.map
|
|
408
|
+
//# sourceMappingURL=email.standard-interface.schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.standard-interface.schemas.js","sourceRoot":"","sources":["../../../src/protocols/email.standard-interface.schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"email.standard-interface.schemas.js","sourceRoot":"","sources":["../../../../src/protocols/email.standard-interface.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { EmailProvider_Capability, EmailProvider_EmailType, EmailProvider_DeliveryStatus } from \"./email.external-connectors-models.schemas\";\n\n//===============================================================\n// Standard Email Interface\n// --------\n// This is the canonical interface that Wildo uses internally to send\n// emails. The ETL layer transforms these standard requests into\n// provider-specific API calls.\n//\n// Design Principles:\n// 1. Provider-agnostic - works with any email provider\n// 2. Capability-aware - validates against provider capabilities\n// 3. Extensible - new fields can be added without breaking existing code\n//===============================================================\n\n// ===============================================================\n// Standard Email Address\n// ===============================================================\n\nexport const StandardEmail_AddressSchema = z.object({\n email: z.email(),\n name: z.string().optional(),\n});\n\nexport type StandardEmail_Address = z.infer<typeof StandardEmail_AddressSchema>;\n\n// ===============================================================\n// Standard Attachment\n// ===============================================================\n\nexport const StandardEmail_AttachmentSchema = z.object({\n filename: z.string().min(1),\n content: z.string(), // Base64 encoded\n contentType: z.string().optional(),\n contentId: z.string().optional(), // For inline images (cid:)\n});\n\nexport type StandardEmail_Attachment = z.infer<typeof StandardEmail_AttachmentSchema>;\n\n/**\n * Wire encoding used by a network email provider gateway.\n *\n * This vocabulary is deliberately closed and explicit on every provider\n * contract: JSON and multipart data require materially different headers and\n * serialization. There is no implicit default.\n */\nexport enum EmailProviderPayloadEncoding {\n JSON = \"json\",\n MULTIPART_FORM_DATA = \"multipart-form-data\",\n}\n\n/** Provider acknowledgement state returned by a synchronous send endpoint. */\nexport enum EmailProviderSubmissionStatus {\n QUEUED = \"queued\",\n SENT = \"sent\",\n SCHEDULED = \"scheduled\",\n}\n\n/** Provider-owned classification for HTTP responses whose status is ambiguous. */\nexport enum EmailProviderSubmissionClassification {\n ACCEPTED = \"accepted\",\n REJECTED = \"rejected\",\n ACCEPTANCE_UNKNOWN = \"acceptance_unknown\",\n}\n\n// ===============================================================\n// TRANSACTIONAL: Send Email Request\n// ===============================================================\n\nexport const StandardEmail_SendRequestSchema = z.object({\n /**\n * Stable identity of ONE logical provider submission across retries.\n *\n * Deliberately not named `idempotencyKey`: it remains the framework's\n * correlation identity even when the selected provider cannot enforce\n * idempotency. Provider gateways may map it to a native idempotency field as\n * an optional duplicate-risk reduction.\n */\n submissionId: z.string().min(1).max(256),\n\n // Recipients (required)\n to: z.array(StandardEmail_AddressSchema).min(1),\n cc: z.array(StandardEmail_AddressSchema).optional(),\n bcc: z.array(StandardEmail_AddressSchema).optional(),\n \n // Sender (required unless provider config has default)\n from: StandardEmail_AddressSchema.optional(),\n replyTo: StandardEmail_AddressSchema.optional(),\n \n // Content (html OR text required)\n subject: z.string().min(1),\n html: z.string().optional(),\n text: z.string().optional(),\n \n // Optional features\n attachments: z.array(StandardEmail_AttachmentSchema).optional(),\n headers: z.record(z.string(), z.string()).optional(),\n tags: z.array(z.string()).optional(),\n \n // Scheduling (optional - requires SUPPORTS_SCHEDULING)\n scheduledAt: z.iso.datetime().optional(),\n \n // Tracking (optional, uses provider default if not set)\n trackOpens: z.boolean().optional(),\n trackClicks: z.boolean().optional(),\n \n // Metadata for correlation/tracking\n metadata: z.record(z.string(), z.string()).optional(),\n}).refine(\n (data) => data.html !== undefined || data.text !== undefined,\n { message: \"Either html or text content is required\" }\n);\n\nexport type StandardEmail_SendRequest = z.infer<typeof StandardEmail_SendRequestSchema>;\n\n// ===============================================================\n// TRANSACTIONAL: Send Email Response\n// ===============================================================\n\nexport const StandardEmail_SendResponseSchema = z.object({\n success: z.boolean(),\n /**\n * Mandatory provider-owned submission meaning. HTTP status, receipt shape,\n * and recipient-level `success` are not interchangeable across providers.\n */\n classification: z.enum(EmailProviderSubmissionClassification),\n /**\n * Provider-assigned receipts. An array is required because Brevo and\n * Mailchimp may acknowledge several recipient messages in one response.\n * Empty is honest for a successful non-delivery preview or a provider that\n * accepted the request without returning a receipt.\n */\n providerMessageIds: z.array(z.string().min(1)),\n /** Per-recipient rejections returned inside an otherwise successful HTTP response. */\n rejectedRecipients: z.array(z.object({\n email: z.string().min(1),\n reason: z.string().optional(),\n })).optional(),\n /**\n * Provider-declared detail explaining its explicit classification, including\n * semantic rejection or an ambiguous idempotency/processing conflict.\n */\n providerError: z.string().min(1).optional(),\n /**\n * Whether the caller should retry this response under at-least-once\n * semantics. For an acceptance-unknown response, a retry may duplicate a\n * message unless the selected provider happens to enforce the submission id.\n */\n retryable: z.boolean().optional(),\n /** Provider reports that this submission identity was already suppressed. */\n deduplicated: z.boolean().optional(),\n status: z.enum(EmailProviderSubmissionStatus).optional(),\n scheduledAt: z.iso.datetime().optional(),\n}).superRefine((response, context) => {\n const accepted =\n response.classification\n === EmailProviderSubmissionClassification.ACCEPTED;\n\n /**\n * `success` describes whole-request success, whereas `classification`\n * describes whether any provider submission was accepted. Once a provider\n * adapter classifies a submission as accepted, auxiliary result metadata\n * must never turn that acknowledgement into permission to replay. A false\n * `success` may describe an honest partial result (for example Mailchimp)\n * or anomalous adapter metadata; `rejectedRecipients` is therefore useful\n * evidence, but not a prerequisite for preserving acceptance.\n */\n if (response.success && !accepted) {\n context.addIssue({\n code: 'custom',\n path: ['success'],\n message:\n 'A successful email response must be classified as accepted',\n });\n }\n if (response.success && (response.rejectedRecipients?.length ?? 0) > 0) {\n context.addIssue({\n code: 'custom',\n path: ['rejectedRecipients'],\n message:\n 'A successful email response cannot contain rejected recipients',\n });\n }\n if (!accepted && response.providerMessageIds.length > 0) {\n context.addIssue({\n code: 'custom',\n path: ['providerMessageIds'],\n message:\n 'A non-accepted email response cannot contain provider acceptance receipts',\n });\n }\n for (const [index, providerMessageId] of response.providerMessageIds.entries()) {\n if (response.providerMessageIds.indexOf(providerMessageId) !== index) {\n context.addIssue({\n code: 'custom',\n path: ['providerMessageIds', index],\n message: 'Provider message receipts must be unique',\n });\n }\n }\n\n for (const acceptedOnlyField of [\n 'deduplicated',\n 'status',\n 'scheduledAt',\n ] as const) {\n if (!accepted && response[acceptedOnlyField] !== undefined) {\n context.addIssue({\n code: 'custom',\n path: [acceptedOnlyField],\n message:\n `${acceptedOnlyField} is valid only for an accepted email response`,\n });\n }\n }\n if (\n response.scheduledAt !== undefined\n && response.status !== EmailProviderSubmissionStatus.SCHEDULED\n ) {\n context.addIssue({\n code: 'custom',\n path: ['scheduledAt'],\n message:\n 'A scheduledAt receipt requires provider status scheduled',\n });\n }\n if (accepted && response.retryable === true) {\n context.addIssue({\n code: 'custom',\n path: ['retryable'],\n message: 'An accepted email response cannot request replay',\n });\n }\n});\n\nexport type StandardEmail_SendResponse = z.infer<typeof StandardEmail_SendResponseSchema>;\n\n// ===============================================================\n// TRANSACTIONAL: Send Template Request\n// ===============================================================\n\nexport const StandardEmail_SendTemplateRequestSchema = z.object({\n // Recipients\n to: z.array(StandardEmail_AddressSchema).min(1),\n cc: z.array(StandardEmail_AddressSchema).optional(),\n bcc: z.array(StandardEmail_AddressSchema).optional(),\n \n // Sender\n from: StandardEmail_AddressSchema.optional(),\n replyTo: StandardEmail_AddressSchema.optional(),\n \n // Template (requires SUPPORTS_TEMPLATES)\n templateId: z.string().min(1),\n templateAlias: z.string().optional(), // Alternative identifier (Postmark)\n variables: z.record(z.string(), z.unknown()).optional(),\n \n // Optional overrides\n subject: z.string().optional(), // Override template subject\n \n // Optional features\n attachments: z.array(StandardEmail_AttachmentSchema).optional(),\n tags: z.array(z.string()).optional(),\n scheduledAt: z.iso.datetime().optional(),\n \n // Metadata\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\nexport type StandardEmail_SendTemplateRequest = z.infer<typeof StandardEmail_SendTemplateRequestSchema>;\n\n// ===============================================================\n// TRANSACTIONAL: Batch Send Request\n// ===============================================================\n\nexport const StandardEmail_BatchRecipientSchema = z.object({\n to: StandardEmail_AddressSchema,\n cc: z.array(StandardEmail_AddressSchema).optional(),\n bcc: z.array(StandardEmail_AddressSchema).optional(),\n variables: z.record(z.string(), z.unknown()).optional(),\n subject: z.string().optional(), // Per-recipient subject override\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\nexport type StandardEmail_BatchRecipient = z.infer<typeof StandardEmail_BatchRecipientSchema>;\n\nexport const StandardEmail_BatchRequestSchema = z.object({\n // Sender (shared)\n from: StandardEmail_AddressSchema.optional(),\n replyTo: StandardEmail_AddressSchema.optional(),\n \n // Content (shared - either direct or template)\n subject: z.string().optional(), // Default subject\n html: z.string().optional(),\n text: z.string().optional(),\n templateId: z.string().optional(),\n \n // Recipients with personalizations (requires SUPPORTS_BATCH_SENDING)\n recipients: z.array(StandardEmail_BatchRecipientSchema).min(1),\n \n // Optional features\n attachments: z.array(StandardEmail_AttachmentSchema).optional(),\n tags: z.array(z.string()).optional(),\n scheduledAt: z.iso.datetime().optional(),\n});\n\nexport type StandardEmail_BatchRequest = z.infer<typeof StandardEmail_BatchRequestSchema>;\n\n// ===============================================================\n// TRANSACTIONAL: Batch Send Response\n// ===============================================================\n\nexport const StandardEmail_BatchResponseSchema = z.object({\n success: z.boolean(),\n totalRequested: z.number().int(),\n totalAccepted: z.number().int(),\n totalRejected: z.number().int(),\n results: z.array(z.object({\n // Email address OR summary identifier (e.g. \"batch\" when provider returns aggregate result)\n email: z.string().min(1),\n success: z.boolean(),\n messageId: z.string().optional(),\n error: z.string().optional(),\n })),\n});\n\nexport type StandardEmail_BatchResponse = z.infer<typeof StandardEmail_BatchResponseSchema>;\n\n// ===============================================================\n// MARKETING: Contact\n// ===============================================================\n\nexport const StandardMarketing_ContactSchema = z.object({\n email: z.email(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n phone: z.string().optional(),\n attributes: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type StandardMarketing_Contact = z.infer<typeof StandardMarketing_ContactSchema>;\n\n// ===============================================================\n// MARKETING: List\n// ===============================================================\n\nexport const StandardMarketing_ListSchema = z.object({\n id: z.string().optional(), // Provider assigns on create\n name: z.string().min(1),\n description: z.string().optional(),\n});\n\nexport type StandardMarketing_List = z.infer<typeof StandardMarketing_ListSchema>;\n\n// ===============================================================\n// MARKETING: Audience (List + Contacts)\n// ===============================================================\n\nexport const StandardMarketing_AudienceSchema = z.object({\n // List reference (use existing by ID, or create/find by name)\n list: z.object({\n id: z.string().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n }).refine(\n (data) => data.id !== undefined || data.name !== undefined,\n { message: \"Either list.id or list.name is required\" }\n ),\n \n // Contacts to add/sync (optional if using existing list)\n contacts: z.array(StandardMarketing_ContactSchema).optional(),\n});\n\nexport type StandardMarketing_Audience = z.infer<typeof StandardMarketing_AudienceSchema>;\n\n// ===============================================================\n// MARKETING: Campaign Content\n// ===============================================================\n\nexport const StandardMarketing_ContentSchema = z.object({\n // Use template OR inline content\n templateId: z.string().optional(),\n templateVariables: z.record(z.string(), z.unknown()).optional(),\n \n // Inline content (if no template)\n subject: z.string().optional(),\n html: z.string().optional(),\n text: z.string().optional(),\n previewText: z.string().optional(),\n \n // Attachments\n attachments: z.array(StandardEmail_AttachmentSchema).optional(),\n}).refine(\n (data) => data.templateId !== undefined || data.subject !== undefined,\n { message: \"Either templateId or subject is required\" }\n);\n\nexport type StandardMarketing_Content = z.infer<typeof StandardMarketing_ContentSchema>;\n\n// ===============================================================\n// MARKETING: Campaign Request\n// ===============================================================\n\nexport const StandardMarketing_CampaignRequestSchema = z.object({\n // Campaign name\n name: z.string().min(1),\n \n // Sender\n from: StandardEmail_AddressSchema,\n replyTo: StandardEmail_AddressSchema.optional(),\n \n // Audience\n audience: StandardMarketing_AudienceSchema,\n \n // Content\n content: StandardMarketing_ContentSchema,\n \n // Execution\n schedule: z.object({\n sendAt: z.iso.datetime().optional(),\n sendImmediately: z.boolean().optional(),\n }).optional(),\n \n // Tracking\n trackOpens: z.boolean().optional().default(true),\n trackClicks: z.boolean().optional().default(true),\n \n // Tags\n tags: z.array(z.string()).optional(),\n \n // Metadata\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\nexport type StandardMarketing_CampaignRequest = z.infer<typeof StandardMarketing_CampaignRequestSchema>;\n\n// ===============================================================\n// MARKETING: Campaign Response\n// ===============================================================\n\nexport const StandardMarketing_CampaignResponseSchema = z.object({\n success: z.boolean(),\n campaignId: z.string(),\n providerCampaignId: z.string().optional(),\n status: z.enum([\"draft\", \"scheduled\", \"sending\", \"sent\", \"cancelled\"]),\n scheduledAt: z.iso.datetime().optional(),\n listId: z.string().optional(),\n audienceSize: z.number().int().optional(),\n});\n\nexport type StandardMarketing_CampaignResponse = z.infer<typeof StandardMarketing_CampaignResponseSchema>;\n\n// ===============================================================\n// Message Status Request/Response\n// ===============================================================\n\nexport const StandardEmail_GetStatusRequestSchema = z.object({\n messageId: z.string().min(1),\n});\n\nexport type StandardEmail_GetStatusRequest = z.infer<typeof StandardEmail_GetStatusRequestSchema>;\n\nexport const StandardEmail_GetStatusResponseSchema = z.object({\n messageId: z.string(),\n status: z.enum(EmailProvider_DeliveryStatus),\n to: z.email(),\n subject: z.string().optional(),\n sentAt: z.iso.datetime().optional(),\n deliveredAt: z.iso.datetime().optional(),\n openedAt: z.iso.datetime().optional(),\n clickedAt: z.iso.datetime().optional(),\n bouncedAt: z.iso.datetime().optional(),\n bounceReason: z.string().optional(),\n});\n\nexport type StandardEmail_GetStatusResponse = z.infer<typeof StandardEmail_GetStatusResponseSchema>;\n\n// ===============================================================\n// Standard Error\n// ===============================================================\n\nexport const StandardEmail_ErrorSchema = z.object({\n code: z.enum([\n \"VALIDATION_ERROR\",\n \"PROVIDER_ERROR\",\n \"CAPABILITY_NOT_SUPPORTED\",\n \"MARKETING_NOT_SUPPORTED\",\n \"SCHEDULING_NOT_SUPPORTED\",\n \"TEMPLATE_NOT_FOUND\",\n \"RATE_LIMIT_EXCEEDED\",\n \"AUTHENTICATION_FAILED\",\n \"QUOTA_EXCEEDED\",\n \"UNKNOWN_ERROR\",\n ]),\n message: z.string(),\n provider: z.string().optional(),\n details: z.unknown().optional(),\n \n // For capability errors - dynamically populated from registry\n requiredCapability: z.enum(EmailProvider_Capability).optional(),\n supportedProviders: z.array(z.string()).optional(),\n});\n\nexport type StandardEmail_Error = z.infer<typeof StandardEmail_ErrorSchema>;\n\n// ===============================================================\n// Capability Requirements\n// ===============================================================\n\n/**\n * Maps standard operations to required capabilities.\n * Used by the ETL layer to validate provider support.\n */\nexport const StandardEmail_OperationCapabilities = {\n sendEmail: [] as EmailProvider_Capability[], // All providers support basic send\n sendTemplate: [EmailProvider_Capability.SUPPORTS_TEMPLATES],\n sendBatch: [EmailProvider_Capability.SUPPORTS_BATCH_SENDING],\n sendScheduled: [EmailProvider_Capability.SUPPORTS_SCHEDULING],\n sendCampaign: [EmailProvider_Capability.SUPPORTS_MARKETING, EmailProvider_Capability.SUPPORTS_CAMPAIGNS],\n manageList: [EmailProvider_Capability.SUPPORTS_LIST_MANAGEMENT],\n} as const;\n\nexport type StandardEmail_Operation = keyof typeof StandardEmail_OperationCapabilities;\n"]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ExternalProvider_ExchangeProtocol_Configuration_Base, ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_ExchangeProtocol_Profile_Base } from "../core/commons.external-connectors-models.schemas";
|
|
3
|
+
/**
|
|
4
|
+
* Concrete embedding-model ids the framework knows. Ids and dimensions are published provider
|
|
5
|
+
* facts (OpenAI embeddings API); the runtime additionally verifies the MEASURED dimension of
|
|
6
|
+
* every returned vector against the catalog row before anything is persisted, so a wrong row
|
|
7
|
+
* here fails loudly instead of poisoning a vector store.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum EmbeddingsProvider_Model {
|
|
10
|
+
/** OpenAI's cost-efficient embedding model — 1536 dimensions. The industry-default RAG choice. */
|
|
11
|
+
OPEN_AI_TEXT_EMBEDDING_3_SMALL = "text-embedding-3-small",
|
|
12
|
+
/** OpenAI's highest-quality embedding model — 3072 dimensions. */
|
|
13
|
+
OPEN_AI_TEXT_EMBEDDING_3_LARGE = "text-embedding-3-large"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The embeddings operation vocabulary — deliberately DISJOINT from `LLMProvider_OperationKey`
|
|
17
|
+
* and `ImageProvider_OperationKey` (each protocol kind owns its own operation enum, so a key's
|
|
18
|
+
* membership decides its protocol without inspection).
|
|
19
|
+
*
|
|
20
|
+
* Import path: `@wildo-ai/external-connectors-models`.
|
|
21
|
+
*
|
|
22
|
+
* (`@wildo_source` anchoring + the teaching skill are RAG-plan Phase-7 work — the
|
|
23
|
+
* capability-catalog rule's DoD is deferred there deliberately, not forgotten.)
|
|
24
|
+
*/
|
|
25
|
+
export declare enum EmbeddingsProvider_OperationKey {
|
|
26
|
+
/** A batch of texts → one vector per text, in input order. */
|
|
27
|
+
EMBED_TEXTS = "embeddings.embedTexts"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* WHY a text is being embedded — some models embed retrieval QUERIES differently from the
|
|
31
|
+
* DOCUMENTS they search over (Voyage/Cohere `input_type`; instruction-prefixed models), so the
|
|
32
|
+
* caller's intent must travel with the call rather than being inferred. OpenAI `text-embedding-3-*`
|
|
33
|
+
* ignores the distinction; providers that honour it translate this value at their boundary.
|
|
34
|
+
*
|
|
35
|
+
* A named home (semantic-string-literals rule): `'corpus'`/`'query'` are a closed vocabulary,
|
|
36
|
+
* and this enum is where their semantics live.
|
|
37
|
+
*/
|
|
38
|
+
export declare enum EmbeddingsProvider_TextPurpose {
|
|
39
|
+
/** The text IS retrievable content — a RAG chunk entering the corpus. */
|
|
40
|
+
CORPUS = "corpus",
|
|
41
|
+
/** The text is a SEARCH query that will be matched against corpus vectors. */
|
|
42
|
+
QUERY = "query"
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @wildo_source:part:start saas.external-providers.embeddings.applicability facet:kind:api facet:audience:app-developer
|
|
46
|
+
*
|
|
47
|
+
* WHAT an embedding is produced FOR — the durable axis of embedding-model selection
|
|
48
|
+
* (model-selection-by-applicability rule: an author names a CLASS, never a concrete model id;
|
|
49
|
+
* the framework resolves the id from the catalog + preference below).
|
|
50
|
+
*
|
|
51
|
+
* This is ALSO the persisted `embeddingClass` stamp on every RAG chunk row: the drain worker
|
|
52
|
+
* stamps the class it embedded under, and the model-migration pass re-embeds any chunk whose
|
|
53
|
+
* stamped class→model binding no longer matches the current resolution — so changing the
|
|
54
|
+
* preference below IS the migration trigger, with no chunk-table DDL and no call-site edits.
|
|
55
|
+
*
|
|
56
|
+
* NOTE both corpus AND query embedding of one retrieval surface MUST resolve through the SAME
|
|
57
|
+
* class — a similarity search across two models' vector spaces is meaningless. That is why the
|
|
58
|
+
* class names the SURFACE (`RAG_DEFAULT`), not the side (`purpose` carries the side).
|
|
59
|
+
*/
|
|
60
|
+
export declare enum Embeddings_Applicability {
|
|
61
|
+
/** The default RAG surface: `.ragSource()` corpus chunks and the retrieval queries over them. */
|
|
62
|
+
RAG_DEFAULT = "rag-default"
|
|
63
|
+
}
|
|
64
|
+
/** @wildo_source:part:end saas.external-providers.embeddings.applicability */
|
|
65
|
+
/**
|
|
66
|
+
* One row per embedding model: everything the framework knows about a concrete id.
|
|
67
|
+
* Mirrors `LLM_ModelCatalogEntry`'s shape at the size this axis needs today.
|
|
68
|
+
*/
|
|
69
|
+
export type Embeddings_ModelCatalogEntry = {
|
|
70
|
+
/** The `ref` of the provider module that serves this id. */
|
|
71
|
+
providerRef: string;
|
|
72
|
+
/**
|
|
73
|
+
* The model's published output dimension. Load-bearing twice: the drain worker VERIFIES every
|
|
74
|
+
* returned vector against it before persisting (a wrong-dims write silently poisons ANN
|
|
75
|
+
* indexes), and the pgvector HNSW expression index is created per this dimension.
|
|
76
|
+
*/
|
|
77
|
+
dims: number;
|
|
78
|
+
/** FRAMEWORK OPINION — which applicability classes this model may be resolved for. */
|
|
79
|
+
applicabilities: readonly Embeddings_Applicability[];
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* THE embedding-model catalog — the single per-model fact table (the `LLM_MODEL_CATALOG`
|
|
83
|
+
* discipline: an EXHAUSTIVE `Record`, so a new `EmbeddingsProvider_Model` member without a row
|
|
84
|
+
* is a compile error).
|
|
85
|
+
*/
|
|
86
|
+
export declare const EMBEDDINGS_MODEL_CATALOG: Record<EmbeddingsProvider_Model, Embeddings_ModelCatalogEntry>;
|
|
87
|
+
/**
|
|
88
|
+
* The framework's DEFAULT answer to "which embedding model serves this class", ordered by
|
|
89
|
+
* preference, highest first. THIS BINDING IS THE MIGRATION KEY (RAG plan §3.d): editing it
|
|
90
|
+
* changes what `resolveEmbeddingsModelForApplicability` answers, which makes every chunk stamped
|
|
91
|
+
* with the previous model a migration candidate the drain worker re-embeds — bounded per run,
|
|
92
|
+
* converging over runs. No agent/worker definition changes.
|
|
93
|
+
*/
|
|
94
|
+
export declare const EMBEDDINGS_MODEL_APPLICABILITY_PREFERENCE: Record<Embeddings_Applicability, readonly EmbeddingsProvider_Model[]>;
|
|
95
|
+
/** Why {@link resolveEmbeddingsModelForApplicability} could not answer — carried into a named CONFIGURATION error. */
|
|
96
|
+
export declare enum Embeddings_ModelResolutionFailure {
|
|
97
|
+
/** The applicability has no candidate at all for this provider. */
|
|
98
|
+
NO_CANDIDATE_FOR_PROVIDER = "no_candidate_for_provider"
|
|
99
|
+
}
|
|
100
|
+
export type Embeddings_ModelResolution = {
|
|
101
|
+
resolved: true;
|
|
102
|
+
model: EmbeddingsProvider_Model;
|
|
103
|
+
entry: Embeddings_ModelCatalogEntry;
|
|
104
|
+
} | {
|
|
105
|
+
resolved: false;
|
|
106
|
+
failure: Embeddings_ModelResolutionFailure;
|
|
107
|
+
consideredModels: readonly EmbeddingsProvider_Model[];
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Resolve an applicability class to ONE concrete embedding model for a given provider.
|
|
111
|
+
*
|
|
112
|
+
* Fails CLOSED and explains itself (the `resolveModelForApplicability` contract): a silent
|
|
113
|
+
* fallback to some other model would fracture the vector space the class exists to keep whole.
|
|
114
|
+
* The resolved `(class, model)` pair is what the RAG drain worker stamps on every chunk and what
|
|
115
|
+
* its migration pass compares stamps against.
|
|
116
|
+
*/
|
|
117
|
+
export declare const resolveEmbeddingsModelForApplicability: (input: {
|
|
118
|
+
applicability: Embeddings_Applicability;
|
|
119
|
+
providerRef: string;
|
|
120
|
+
}, catalog?: Record<EmbeddingsProvider_Model, Embeddings_ModelCatalogEntry>) => Embeddings_ModelResolution;
|
|
121
|
+
export type EmbeddingsProvider_Profile = ExternalProvider_ExchangeProtocol_Profile_Base & {
|
|
122
|
+
baseURL?: string;
|
|
123
|
+
/** Model ids this provider serves (advertised for validation/UX). */
|
|
124
|
+
supportedModels?: string[];
|
|
125
|
+
};
|
|
126
|
+
export type EmbeddingsProvider_Configuration = ExternalProvider_ExchangeProtocol_Configuration_Base & {
|
|
127
|
+
customLocation?: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Usage of one embedding call. There is NO completion-token dimension — an embedding consumes
|
|
131
|
+
* input tokens and produces vectors, so usage-completeness for an embedding trace is judged on
|
|
132
|
+
* `inputTokens` alone (H4: an embedding trace must never be flagged token-incomplete for lacking
|
|
133
|
+
* completion tokens it structurally cannot have).
|
|
134
|
+
*/
|
|
135
|
+
export declare const EmbeddingsProvider_UsageSchema: z.ZodObject<{
|
|
136
|
+
inputTokens: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
export type EmbeddingsProvider_Usage = z.infer<typeof EmbeddingsProvider_UsageSchema>;
|
|
139
|
+
export declare const EmbeddingsProvider_ExecutionTransportMetadataSchema: z.ZodObject<{
|
|
140
|
+
protocolKind: z.ZodLiteral<ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER>;
|
|
141
|
+
providerRef: z.ZodString;
|
|
142
|
+
model: z.ZodOptional<z.ZodString>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
export type EmbeddingsProvider_ExecutionTransportMetadata = z.infer<typeof EmbeddingsProvider_ExecutionTransportMetadataSchema>;
|
|
145
|
+
/** Input of the {@link EmbeddingsProvider_OperationKey.EMBED_TEXTS} operation. */
|
|
146
|
+
export declare const EmbeddingsProvider_EmbedTextsInputSchema: z.ZodObject<{
|
|
147
|
+
texts: z.ZodArray<z.ZodString>;
|
|
148
|
+
purpose: z.ZodEnum<typeof EmbeddingsProvider_TextPurpose>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type EmbeddingsProvider_EmbedTextsInput = z.infer<typeof EmbeddingsProvider_EmbedTextsInputSchema>;
|
|
151
|
+
/**
|
|
152
|
+
* Output of {@link EmbeddingsProvider_OperationKey.EMBED_TEXTS}. `vectors[i]` embeds `texts[i]`.
|
|
153
|
+
*
|
|
154
|
+
* ⚠️ PRIVACY/OBSERVABILITY CONTRACT: raw vectors are a lossy ENCODING of the source text, not
|
|
155
|
+
* telemetry — they must NEVER reach analytics events, traces, or logs at any verbosity. Consumers
|
|
156
|
+
* summarize (`vectorCount`, `dims`) instead; the PostHog sink's embedding arm enforces this
|
|
157
|
+
* defensively even against a mis-built trace.
|
|
158
|
+
*/
|
|
159
|
+
export declare const EmbeddingsProvider_EmbedTextsOutputSchema: z.ZodObject<{
|
|
160
|
+
vectors: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
161
|
+
model: z.ZodString;
|
|
162
|
+
dims: z.ZodNumber;
|
|
163
|
+
usage: z.ZodObject<{
|
|
164
|
+
inputTokens: z.ZodOptional<z.ZodNumber>;
|
|
165
|
+
}, z.core.$strip>;
|
|
166
|
+
}, z.core.$strip>;
|
|
167
|
+
export type EmbeddingsProvider_EmbedTextsOutput = z.infer<typeof EmbeddingsProvider_EmbedTextsOutputSchema>;
|
|
168
|
+
export declare const EmbeddingsProvider_StatusSchema: z.ZodObject<{
|
|
169
|
+
status: z.ZodEnum<typeof import("..").ExternalProvider_Status>;
|
|
170
|
+
lastCheckedAt: z.ZodString;
|
|
171
|
+
errorReason: z.ZodOptional<z.ZodString>;
|
|
172
|
+
protocolKind: z.ZodLiteral<ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER>;
|
|
173
|
+
}, z.core.$strip>;
|
|
174
|
+
export type EmbeddingsProvider_Status = z.infer<typeof EmbeddingsProvider_StatusSchema>;
|
|
175
|
+
//# sourceMappingURL=embeddings.external-connectors-models.schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../../src/protocols/embeddings.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ExternalProvider_ExchangeProtocol_Kind, ExternalProvider_ExchangeProtocol_Status_BaseSchema, } from "../core/commons.external-connectors-models.schemas.js";
|
|
3
|
+
//===============================================================
|
|
4
|
+
// Embeddings Provider
|
|
5
|
+
// --------
|
|
6
|
+
// Text → vector embedding providers (OpenAI text-embedding-3, Voyage, Cohere embed, …).
|
|
7
|
+
// Serves the RAG derived-data tier: the `rag:embedding-drain` worker embeds corpus chunks,
|
|
8
|
+
// and retrieval (RAG plan Phase 5) embeds queries through the SAME provider seam so both
|
|
9
|
+
// sides of a similarity search live in one vector space.
|
|
10
|
+
//
|
|
11
|
+
// Deliberately a SEPARATE protocol from `LLM_PROVIDER` (RAG plan DL2, the `IMAGE_PROVIDER`
|
|
12
|
+
// precedent): its I/O is float vectors, its parameters (dimensions / batch size) share nothing
|
|
13
|
+
// with LLM sampling, and — decisive — a sixth `LLMProvider_OperationKey` would fail SILENTLY
|
|
14
|
+
// in every LLM consumer surface, while a new `runtimeContract.kind` fails COMPILATION at every
|
|
15
|
+
// switch. It also fills its own `EngineCapability.AI_EMBEDDINGS` slot so an application can pick
|
|
16
|
+
// Anthropic for chat and a different provider for embeddings.
|
|
17
|
+
//===============================================================
|
|
18
|
+
/**
|
|
19
|
+
* Concrete embedding-model ids the framework knows. Ids and dimensions are published provider
|
|
20
|
+
* facts (OpenAI embeddings API); the runtime additionally verifies the MEASURED dimension of
|
|
21
|
+
* every returned vector against the catalog row before anything is persisted, so a wrong row
|
|
22
|
+
* here fails loudly instead of poisoning a vector store.
|
|
23
|
+
*/
|
|
24
|
+
export var EmbeddingsProvider_Model;
|
|
25
|
+
(function (EmbeddingsProvider_Model) {
|
|
26
|
+
/** OpenAI's cost-efficient embedding model — 1536 dimensions. The industry-default RAG choice. */
|
|
27
|
+
EmbeddingsProvider_Model["OPEN_AI_TEXT_EMBEDDING_3_SMALL"] = "text-embedding-3-small";
|
|
28
|
+
/** OpenAI's highest-quality embedding model — 3072 dimensions. */
|
|
29
|
+
EmbeddingsProvider_Model["OPEN_AI_TEXT_EMBEDDING_3_LARGE"] = "text-embedding-3-large";
|
|
30
|
+
})(EmbeddingsProvider_Model || (EmbeddingsProvider_Model = {}));
|
|
31
|
+
/**
|
|
32
|
+
* The embeddings operation vocabulary — deliberately DISJOINT from `LLMProvider_OperationKey`
|
|
33
|
+
* and `ImageProvider_OperationKey` (each protocol kind owns its own operation enum, so a key's
|
|
34
|
+
* membership decides its protocol without inspection).
|
|
35
|
+
*
|
|
36
|
+
* Import path: `@wildo-ai/external-connectors-models`.
|
|
37
|
+
*
|
|
38
|
+
* (`@wildo_source` anchoring + the teaching skill are RAG-plan Phase-7 work — the
|
|
39
|
+
* capability-catalog rule's DoD is deferred there deliberately, not forgotten.)
|
|
40
|
+
*/
|
|
41
|
+
export var EmbeddingsProvider_OperationKey;
|
|
42
|
+
(function (EmbeddingsProvider_OperationKey) {
|
|
43
|
+
/** A batch of texts → one vector per text, in input order. */
|
|
44
|
+
EmbeddingsProvider_OperationKey["EMBED_TEXTS"] = "embeddings.embedTexts";
|
|
45
|
+
})(EmbeddingsProvider_OperationKey || (EmbeddingsProvider_OperationKey = {}));
|
|
46
|
+
/**
|
|
47
|
+
* WHY a text is being embedded — some models embed retrieval QUERIES differently from the
|
|
48
|
+
* DOCUMENTS they search over (Voyage/Cohere `input_type`; instruction-prefixed models), so the
|
|
49
|
+
* caller's intent must travel with the call rather than being inferred. OpenAI `text-embedding-3-*`
|
|
50
|
+
* ignores the distinction; providers that honour it translate this value at their boundary.
|
|
51
|
+
*
|
|
52
|
+
* A named home (semantic-string-literals rule): `'corpus'`/`'query'` are a closed vocabulary,
|
|
53
|
+
* and this enum is where their semantics live.
|
|
54
|
+
*/
|
|
55
|
+
export var EmbeddingsProvider_TextPurpose;
|
|
56
|
+
(function (EmbeddingsProvider_TextPurpose) {
|
|
57
|
+
/** The text IS retrievable content — a RAG chunk entering the corpus. */
|
|
58
|
+
EmbeddingsProvider_TextPurpose["CORPUS"] = "corpus";
|
|
59
|
+
/** The text is a SEARCH query that will be matched against corpus vectors. */
|
|
60
|
+
EmbeddingsProvider_TextPurpose["QUERY"] = "query";
|
|
61
|
+
})(EmbeddingsProvider_TextPurpose || (EmbeddingsProvider_TextPurpose = {}));
|
|
62
|
+
/**
|
|
63
|
+
* @wildo_source:part:start saas.external-providers.embeddings.applicability facet:kind:api facet:audience:app-developer
|
|
64
|
+
*
|
|
65
|
+
* WHAT an embedding is produced FOR — the durable axis of embedding-model selection
|
|
66
|
+
* (model-selection-by-applicability rule: an author names a CLASS, never a concrete model id;
|
|
67
|
+
* the framework resolves the id from the catalog + preference below).
|
|
68
|
+
*
|
|
69
|
+
* This is ALSO the persisted `embeddingClass` stamp on every RAG chunk row: the drain worker
|
|
70
|
+
* stamps the class it embedded under, and the model-migration pass re-embeds any chunk whose
|
|
71
|
+
* stamped class→model binding no longer matches the current resolution — so changing the
|
|
72
|
+
* preference below IS the migration trigger, with no chunk-table DDL and no call-site edits.
|
|
73
|
+
*
|
|
74
|
+
* NOTE both corpus AND query embedding of one retrieval surface MUST resolve through the SAME
|
|
75
|
+
* class — a similarity search across two models' vector spaces is meaningless. That is why the
|
|
76
|
+
* class names the SURFACE (`RAG_DEFAULT`), not the side (`purpose` carries the side).
|
|
77
|
+
*/
|
|
78
|
+
export var Embeddings_Applicability;
|
|
79
|
+
(function (Embeddings_Applicability) {
|
|
80
|
+
/** The default RAG surface: `.ragSource()` corpus chunks and the retrieval queries over them. */
|
|
81
|
+
Embeddings_Applicability["RAG_DEFAULT"] = "rag-default";
|
|
82
|
+
})(Embeddings_Applicability || (Embeddings_Applicability = {}));
|
|
83
|
+
/**
|
|
84
|
+
* THE embedding-model catalog — the single per-model fact table (the `LLM_MODEL_CATALOG`
|
|
85
|
+
* discipline: an EXHAUSTIVE `Record`, so a new `EmbeddingsProvider_Model` member without a row
|
|
86
|
+
* is a compile error).
|
|
87
|
+
*/
|
|
88
|
+
export const EMBEDDINGS_MODEL_CATALOG = {
|
|
89
|
+
[EmbeddingsProvider_Model.OPEN_AI_TEXT_EMBEDDING_3_SMALL]: {
|
|
90
|
+
providerRef: "openai",
|
|
91
|
+
dims: 1536,
|
|
92
|
+
applicabilities: [Embeddings_Applicability.RAG_DEFAULT],
|
|
93
|
+
},
|
|
94
|
+
[EmbeddingsProvider_Model.OPEN_AI_TEXT_EMBEDDING_3_LARGE]: {
|
|
95
|
+
providerRef: "openai",
|
|
96
|
+
dims: 3072,
|
|
97
|
+
// Deliberately NOT auto-selected for RAG_DEFAULT: 2× the storage + ANN cost for a quality
|
|
98
|
+
// delta most application corpora do not need. An application that wants it overrides the
|
|
99
|
+
// preference (or a future applicability class names the high-quality surface).
|
|
100
|
+
applicabilities: [],
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* The framework's DEFAULT answer to "which embedding model serves this class", ordered by
|
|
105
|
+
* preference, highest first. THIS BINDING IS THE MIGRATION KEY (RAG plan §3.d): editing it
|
|
106
|
+
* changes what `resolveEmbeddingsModelForApplicability` answers, which makes every chunk stamped
|
|
107
|
+
* with the previous model a migration candidate the drain worker re-embeds — bounded per run,
|
|
108
|
+
* converging over runs. No agent/worker definition changes.
|
|
109
|
+
*/
|
|
110
|
+
export const EMBEDDINGS_MODEL_APPLICABILITY_PREFERENCE = {
|
|
111
|
+
[Embeddings_Applicability.RAG_DEFAULT]: [
|
|
112
|
+
EmbeddingsProvider_Model.OPEN_AI_TEXT_EMBEDDING_3_SMALL,
|
|
113
|
+
],
|
|
114
|
+
};
|
|
115
|
+
/** Why {@link resolveEmbeddingsModelForApplicability} could not answer — carried into a named CONFIGURATION error. */
|
|
116
|
+
export var Embeddings_ModelResolutionFailure;
|
|
117
|
+
(function (Embeddings_ModelResolutionFailure) {
|
|
118
|
+
/** The applicability has no candidate at all for this provider. */
|
|
119
|
+
Embeddings_ModelResolutionFailure["NO_CANDIDATE_FOR_PROVIDER"] = "no_candidate_for_provider";
|
|
120
|
+
})(Embeddings_ModelResolutionFailure || (Embeddings_ModelResolutionFailure = {}));
|
|
121
|
+
/**
|
|
122
|
+
* Resolve an applicability class to ONE concrete embedding model for a given provider.
|
|
123
|
+
*
|
|
124
|
+
* Fails CLOSED and explains itself (the `resolveModelForApplicability` contract): a silent
|
|
125
|
+
* fallback to some other model would fracture the vector space the class exists to keep whole.
|
|
126
|
+
* The resolved `(class, model)` pair is what the RAG drain worker stamps on every chunk and what
|
|
127
|
+
* its migration pass compares stamps against.
|
|
128
|
+
*/
|
|
129
|
+
export const resolveEmbeddingsModelForApplicability = (input, catalog = EMBEDDINGS_MODEL_CATALOG) => {
|
|
130
|
+
const candidates = EMBEDDINGS_MODEL_APPLICABILITY_PREFERENCE[input.applicability];
|
|
131
|
+
const forProvider = candidates.filter((model) => {
|
|
132
|
+
const entry = catalog[model];
|
|
133
|
+
return entry.providerRef === input.providerRef && entry.applicabilities.includes(input.applicability);
|
|
134
|
+
});
|
|
135
|
+
if (forProvider.length === 0) {
|
|
136
|
+
return { resolved: false, failure: Embeddings_ModelResolutionFailure.NO_CANDIDATE_FOR_PROVIDER, consideredModels: candidates };
|
|
137
|
+
}
|
|
138
|
+
const model = forProvider[0];
|
|
139
|
+
return { resolved: true, model, entry: catalog[model] };
|
|
140
|
+
};
|
|
141
|
+
// ===============================================================
|
|
142
|
+
// Embeddings Operations Context
|
|
143
|
+
// ===============================================================
|
|
144
|
+
/**
|
|
145
|
+
* Usage of one embedding call. There is NO completion-token dimension — an embedding consumes
|
|
146
|
+
* input tokens and produces vectors, so usage-completeness for an embedding trace is judged on
|
|
147
|
+
* `inputTokens` alone (H4: an embedding trace must never be flagged token-incomplete for lacking
|
|
148
|
+
* completion tokens it structurally cannot have).
|
|
149
|
+
*/
|
|
150
|
+
export const EmbeddingsProvider_UsageSchema = z.object({
|
|
151
|
+
/** Provider-reported input tokens, when the model reports them (OpenAI does). */
|
|
152
|
+
inputTokens: z.number().optional(),
|
|
153
|
+
});
|
|
154
|
+
export const EmbeddingsProvider_ExecutionTransportMetadataSchema = z.object({
|
|
155
|
+
protocolKind: z.literal(ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER),
|
|
156
|
+
providerRef: z.string(),
|
|
157
|
+
model: z.string().optional(),
|
|
158
|
+
});
|
|
159
|
+
// ===============================================================
|
|
160
|
+
// Embeddings I/O Schemas
|
|
161
|
+
// ===============================================================
|
|
162
|
+
/** Input of the {@link EmbeddingsProvider_OperationKey.EMBED_TEXTS} operation. */
|
|
163
|
+
export const EmbeddingsProvider_EmbedTextsInputSchema = z.object({
|
|
164
|
+
/** The texts to embed — one vector is returned per text, in this order. */
|
|
165
|
+
texts: z.array(z.string()).min(1),
|
|
166
|
+
/** Why these texts are embedded — see {@link EmbeddingsProvider_TextPurpose}. */
|
|
167
|
+
purpose: z.enum(EmbeddingsProvider_TextPurpose),
|
|
168
|
+
});
|
|
169
|
+
/**
|
|
170
|
+
* Output of {@link EmbeddingsProvider_OperationKey.EMBED_TEXTS}. `vectors[i]` embeds `texts[i]`.
|
|
171
|
+
*
|
|
172
|
+
* ⚠️ PRIVACY/OBSERVABILITY CONTRACT: raw vectors are a lossy ENCODING of the source text, not
|
|
173
|
+
* telemetry — they must NEVER reach analytics events, traces, or logs at any verbosity. Consumers
|
|
174
|
+
* summarize (`vectorCount`, `dims`) instead; the PostHog sink's embedding arm enforces this
|
|
175
|
+
* defensively even against a mis-built trace.
|
|
176
|
+
*/
|
|
177
|
+
export const EmbeddingsProvider_EmbedTextsOutputSchema = z.object({
|
|
178
|
+
vectors: z.array(z.array(z.number())),
|
|
179
|
+
/** The concrete model that produced the vectors — the chunk rows' `embeddingModel` stamp. */
|
|
180
|
+
model: z.string(),
|
|
181
|
+
/** The (verified) dimension every returned vector carries — the `embeddingDims` stamp. */
|
|
182
|
+
dims: z.number().int().positive(),
|
|
183
|
+
usage: EmbeddingsProvider_UsageSchema,
|
|
184
|
+
});
|
|
185
|
+
// ===============================================================
|
|
186
|
+
// STATUS
|
|
187
|
+
// ===============================================================
|
|
188
|
+
export const EmbeddingsProvider_StatusSchema = ExternalProvider_ExchangeProtocol_Status_BaseSchema.extend({
|
|
189
|
+
protocolKind: z.literal(ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER),
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=embeddings.external-connectors-models.schemas.js.map
|