@wildo-ai/external-connectors-models 1.1.10 → 1.1.11

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.
Files changed (70) hide show
  1. package/dist/esm/companion-exports.d.ts.map +1 -1
  2. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts +130 -0
  3. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -1
  4. package/dist/esm/core/commons.external-connectors-models.schemas.js +193 -0
  5. package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -1
  6. package/dist/esm/core/operations.external-connectors-models.schemas.d.ts.map +1 -1
  7. package/dist/esm/core/security.external-connectors-models.schemas.d.ts +4 -2
  8. package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -1
  9. package/dist/esm/core/security.external-connectors-models.schemas.js +10 -4
  10. package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -1
  11. package/dist/esm/index.d.ts +2 -0
  12. package/dist/esm/index.d.ts.map +1 -1
  13. package/dist/esm/index.js +2 -0
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts +1 -0
  16. package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.d.ts.map +1 -1
  17. package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js +10 -1
  18. package/dist/esm/protocols/agent-client-protocol.external-connectors-models.schemas.js.map +1 -1
  19. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +8 -0
  20. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -1
  21. package/dist/esm/protocols/billing.standard-interface.schemas.js +8 -0
  22. package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -1
  23. package/dist/esm/protocols/content-safety.external-connectors-models.schemas.d.ts +150 -0
  24. package/dist/esm/protocols/content-safety.external-connectors-models.schemas.d.ts.map +1 -0
  25. package/dist/esm/protocols/content-safety.external-connectors-models.schemas.js +182 -0
  26. package/dist/esm/protocols/content-safety.external-connectors-models.schemas.js.map +1 -0
  27. package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts +41 -9
  28. package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.d.ts.map +1 -1
  29. package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js +40 -14
  30. package/dist/esm/protocols/document-extraction.external-connectors-models.schemas.js.map +1 -1
  31. package/dist/esm/protocols/email-inbound.standard-interface.schemas.d.ts.map +1 -1
  32. package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -1
  33. package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -1
  34. package/dist/esm/protocols/email.standard-interface.schemas.js +4 -0
  35. package/dist/esm/protocols/email.standard-interface.schemas.js.map +1 -1
  36. package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts +37 -4
  37. package/dist/esm/protocols/embeddings.external-connectors-models.schemas.d.ts.map +1 -1
  38. package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js +57 -1
  39. package/dist/esm/protocols/embeddings.external-connectors-models.schemas.js.map +1 -1
  40. package/dist/esm/protocols/file-storage.standard-interface.d.ts +6 -0
  41. package/dist/esm/protocols/file-storage.standard-interface.d.ts.map +1 -1
  42. package/dist/esm/protocols/file-storage.standard-interface.js.map +1 -1
  43. package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -1
  44. package/dist/esm/protocols/hooks-capability.external-connectors-models.schemas.d.ts +7 -2
  45. package/dist/esm/protocols/hooks-capability.external-connectors-models.schemas.d.ts.map +1 -1
  46. package/dist/esm/protocols/hooks-capability.external-connectors-models.schemas.js.map +1 -1
  47. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +388 -7
  48. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -1
  49. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +238 -0
  50. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -1
  51. package/dist/esm/protocols/image.external-connectors-models.schemas.d.ts.map +1 -1
  52. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +70 -5
  53. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -1
  54. package/dist/esm/protocols/llm.external-connectors-models.schemas.js +96 -5
  55. package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -1
  56. package/dist/esm/protocols/oauth2-provider-assurance.definitions.d.ts.map +1 -1
  57. package/dist/esm/protocols/oauth2-provider-assurance.schemas.d.ts.map +1 -1
  58. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts.map +1 -1
  59. package/dist/esm/protocols/provider-oauth2-token-endpoint-hosts.external-connectors-models.d.ts.map +1 -1
  60. package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.d.ts +446 -5
  61. package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.d.ts.map +1 -1
  62. package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.js +406 -0
  63. package/dist/esm/protocols/rest-operations.external-connectors-models.schemas.js.map +1 -1
  64. package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -1
  65. package/dist/esm/protocols/sms.standard-interface.schemas.d.ts.map +1 -1
  66. package/dist/esm/protocols/subject-erasure-effect.standard-interface.d.ts +133 -0
  67. package/dist/esm/protocols/subject-erasure-effect.standard-interface.d.ts.map +1 -0
  68. package/dist/esm/protocols/subject-erasure-effect.standard-interface.js +61 -0
  69. package/dist/esm/protocols/subject-erasure-effect.standard-interface.js.map +1 -0
  70. package/package.json +2 -2
@@ -9,16 +9,81 @@ export declare enum Hook_ContentType {
9
9
  FORM_URLENCODED = "application/x-www-form-urlencoded",
10
10
  XML = "application/xml"
11
11
  }
12
+ /** @wildo_source:part:start external-connectors.models.hook-trigger-strategy facet:kind:api facet:audience:app-developer */
13
+ /**
14
+ * How a provider endpoint's requests are TRUSTED, and so what the engine does with them. A trust posture, kept apart from
15
+ * {@link Hook_SignatureAlgorithm}, which only says how a signature is checked.
16
+ */
12
17
  export declare enum Hook_TriggerStrategy {
18
+ /** The vendor pushes events, verified by the endpoint's `signatureConfig`; a verified event is stored and handled. */
13
19
  WEBHOOK = "webhook",
14
20
  POLLING = "polling",
15
- APP_WEBHOOK = "app_webhook"
21
+ APP_WEBHOOK = "app_webhook",
22
+ /**
23
+ * The vendor pushes a NOTIFICATION nobody can verify (#2909): it signs nothing (IgniSign). The request is never
24
+ * trusted. It only names an object (`reReadTrigger.identifyReference`), and the engine:
25
+ * - answers 202 whatever happens, so a sender learns nothing about which references exist;
26
+ * - drops it unless the endpoint's handler resolves the reference to a record of this application;
27
+ * - stores only the reference, under an id derived from the reference and a coalescing window, so one reference
28
+ * causes at most one re-read per window, one at a time, and a notification after that window's re-read is kept for
29
+ * the next window rather than lost;
30
+ * - limits the endpoint's request rate, and charges the re-read to a share of the vendor's declared rate budget, so a
31
+ * flood never spends what polling needs. The provider must therefore DECLARE a budget (`rateBudgets` on its
32
+ * connection, or `maxRequestsPerMinute`); without one the route is withheld.
33
+ * The handler then RE-READS the object from the vendor's authenticated API: what the record becomes is what the
34
+ * vendor answered there, never what the notification said. Its handler resolves the reference to a record in an
35
+ * organization or a person's data, never the application scope. Polling remains the latency floor under attack.
36
+ * Such an endpoint declares no `signatureConfig`.
37
+ */
38
+ WEBHOOK_TRIGGERS_POLL = "webhook_triggers_poll"
16
39
  }
40
+ /**
41
+ * What a {@link Hook_TriggerStrategy.WEBHOOK_TRIGGERS_POLL} endpoint declares (#2909). Pure functions and numbers only:
42
+ * the request is unverified, so nothing in it is believed beyond the reference it names.
43
+ */
44
+ export interface Hook_ReReadTrigger {
45
+ /**
46
+ * The vendor's reference to the object the notification is about (a signature request id), read from the decoded,
47
+ * UNVERIFIED body, or `null` when it names none. It is only ever looked up and re-read, never trusted. Pure: no I/O.
48
+ */
49
+ readonly identifyReference: (request: Hook_InboundRequest) => string | null;
50
+ /**
51
+ * The coalescing window, in seconds (default {@link HOOK_REREAD_TRIGGER_DEFAULT_COALESCING_WINDOW_SECONDS}): a reference
52
+ * is re-read at most once per window, the windows aligned on the clock. A notification arriving once its window's
53
+ * re-read is already stored is kept for the NEXT window, due at its start, so the last change a vendor reports is
54
+ * never lost. A positive integer; the route is withheld otherwise.
55
+ */
56
+ readonly coalescingWindowSeconds?: number;
57
+ /**
58
+ * The most requests the endpoint takes per window, from every sender together (default
59
+ * {@link HOOK_REREAD_TRIGGER_DEFAULT_RATE_LIMIT}). Past it a request is dropped, still answered 202. Positive integers.
60
+ */
61
+ readonly rateLimit?: {
62
+ readonly maxRequests: number;
63
+ readonly windowSeconds: number;
64
+ };
65
+ }
66
+ /** The default coalescing window of a re-read trigger: one re-read per reference per minute. */
67
+ export declare const HOOK_REREAD_TRIGGER_DEFAULT_COALESCING_WINDOW_SECONDS = 60;
68
+ /** The default request rate of a re-read trigger endpoint, all senders together. */
69
+ export declare const HOOK_REREAD_TRIGGER_DEFAULT_RATE_LIMIT: {
70
+ readonly maxRequests: 120;
71
+ readonly windowSeconds: 60;
72
+ };
73
+ /**
74
+ * Whether an endpoint only triggers re-reads (#2909): its requests are never verified, never trusted. Decided by an
75
+ * exhaustive switch, so a strategy added tomorrow must be classified here before anything compiles (review F9).
76
+ */
77
+ export declare function isReReadTriggerEndpoint(endpoint: Pick<Hook_Endpoint, 'triggerStrategy'>): boolean;
78
+ /** Whether a re-read trigger's declared numbers can be enforced: every one a positive integer (#2909 review F6). */
79
+ export declare function reReadTriggerLimitsAreSound(trigger: Pick<Hook_ReReadTrigger, 'coalescingWindowSeconds' | 'rateLimit'>): boolean;
80
+ /** @wildo_source:part:end external-connectors.models.hook-trigger-strategy */
17
81
  export declare enum Hook_HandshakeType {
18
82
  NONE = "none",
19
83
  CHALLENGE_RESPONSE = "challenge_response",
20
84
  VERIFICATION_TOKEN = "verification_token"
21
85
  }
86
+ /** @wildo_source:part:start external-connectors.models.hook-signature-algorithms facet:kind:api facet:audience:app-developer */
22
87
  export declare enum Hook_SignatureAlgorithm {
23
88
  HMAC_SHA256 = "hmac-sha256",
24
89
  HMAC_SHA512 = "hmac-sha512",
@@ -33,8 +98,40 @@ export declare enum Hook_SignatureAlgorithm {
33
98
  * spec-cite: https://docs.svix.com/receiving/verifying-payloads/how-manual — headers, signed content, secret
34
99
  * format, versioned signature list and timestamp tolerance.
35
100
  */
36
- SVIX_V1 = "svix-v1"
101
+ SVIX_V1 = "svix-v1",
102
+ /**
103
+ * Slack's request signing, verified by the ENGINE (#2659): HMAC-SHA256 with the app's signing secret over
104
+ * `v0:{X-Slack-Request-Timestamp}:{raw body}`, sent as `X-Slack-Signature: v0=<hex>`, inside a five-minute
105
+ * window. It covers JSON events and form-encoded interactions and commands alike, because it signs the bytes.
106
+ * Slack signs no delivery id, so the endpoint names its events with `identifyEvent` (an `event_id` or a
107
+ * `trigger_id` read from the verified body).
108
+ *
109
+ * spec-cite: https://docs.slack.dev/authentication/verifying-requests-from-slack — basestring, header names,
110
+ * `v0=` hex signature, raw body, five-minute window.
111
+ */
112
+ SLACK_V0 = "slack-v0",
113
+ /**
114
+ * The Bot Framework Connector's bearer token, verified by the ENGINE (#2659), for Microsoft Teams and every
115
+ * other Azure Bot Service channel. The request carries `Authorization: Bearer <JWT>`; the token must be
116
+ * signed with a key from the Connector's published key set under an algorithm its OpenID metadata names,
117
+ * with issuer `https://api.botframework.com`, audience equal to the bot's Microsoft App ID (the value the
118
+ * endpoint's secret resolves to), inside its validity period (five minutes' skew), a `serviceUrl` claim
119
+ * equal to the activity's `serviceUrl`, and a signing key endorsed for the activity's `channelId`.
120
+ * The activity carries its own `id`, which the endpoint's `identifyEvent` returns.
121
+ *
122
+ * spec-cite: https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-authentication
123
+ * — "Authenticate requests from the Bot Connector service to your bot", steps 2-4 and the seven
124
+ * numbered token requirements.
125
+ */
126
+ BOT_FRAMEWORK_JWT = "bot-framework-jwt"
37
127
  }
128
+ /**
129
+ * The algorithms the ENGINE verifies itself. An endpoint naming one needs no provider adapter, and cannot be
130
+ * given one: the scheme is engine code, so the one fail-closed decision of the inbound path never moves into a
131
+ * provider package. Every other algorithm is verified by the adapter its provider registers.
132
+ */
133
+ export declare const HOOK_ENGINE_VERIFIED_SIGNATURE_ALGORITHMS: ReadonlySet<Hook_SignatureAlgorithm>;
134
+ /** @wildo_source:part:end external-connectors.models.hook-signature-algorithms */
38
135
  export declare enum Hook_DeliveryStatus {
39
136
  PENDING = "pending",
40
137
  DELIVERED = "delivered",
@@ -46,6 +143,7 @@ export declare const Hook_SignatureConfigSchema: z.ZodObject<{
46
143
  headerName: z.ZodString;
47
144
  timestampHeader: z.ZodOptional<z.ZodString>;
48
145
  prefix: z.ZodOptional<z.ZodString>;
146
+ organizationAudienceFact: z.ZodOptional<z.ZodString>;
49
147
  }, z.core.$strip>;
50
148
  export type Hook_SignatureConfig = z.infer<typeof Hook_SignatureConfigSchema>;
51
149
  export declare const Hook_TriggerSpecSchema: z.ZodObject<{
@@ -58,6 +156,7 @@ export declare const Hook_TriggerSpecSchema: z.ZodObject<{
58
156
  headerName: z.ZodString;
59
157
  timestampHeader: z.ZodOptional<z.ZodString>;
60
158
  prefix: z.ZodOptional<z.ZodString>;
159
+ organizationAudienceFact: z.ZodOptional<z.ZodString>;
61
160
  }, z.core.$strip>>;
62
161
  pollingIntervalMs: z.ZodOptional<z.ZodNumber>;
63
162
  deduplicationKey: z.ZodOptional<z.ZodString>;
@@ -129,6 +228,201 @@ export type Hook_EndpointScopeBinding = {
129
228
  payloadScopeIdPath: string;
130
229
  }>;
131
230
  };
231
+ /** @wildo_source:part:start external-connectors.models.hook-inbound-endpoint facet:kind:api facet:audience:app-developer */
232
+ /**
233
+ * A provider request AFTER the engine verified it, as an endpoint's pure functions read it.
234
+ *
235
+ * Only ever built from a request whose signature or token the engine accepted, so everything in it, the
236
+ * decoded body included, is what the sender signed (or, for a bearer-token scheme, what an authenticated
237
+ * sender sent over TLS).
238
+ */
239
+ export interface Hook_InboundRequest {
240
+ /** The exact bytes received. */
241
+ readonly rawBody: Uint8Array;
242
+ /** Every request header, names lower-cased as Node delivers them. */
243
+ readonly headers: Readonly<Record<string, string | readonly string[] | undefined>>;
244
+ /** The media type the body was decoded as: one of the endpoint's `contentTypes`. */
245
+ readonly contentType: Hook_ContentType;
246
+ /**
247
+ * The decoded body. JSON: the parsed value. A form: its fields, a field sent more than once becoming an array of
248
+ * its values in order; bracket names (`a[b]`) are kept as written, never expanded into objects.
249
+ */
250
+ readonly body: unknown;
251
+ }
252
+ /** What identifies one provider event: the id the store deduplicates on, and the type a handler is chosen by. */
253
+ export interface Hook_InboundEventIdentity {
254
+ /** Unique per event at the provider, and stable across its retries. */
255
+ readonly eventId: string;
256
+ /** The provider's own name for the event (`app_mention`, `block_actions`, `invoke`, …). */
257
+ readonly providerEventType: string;
258
+ }
259
+ /**
260
+ * A person's PERSONAL (one-to-one) conversation with the bot, as a verified request names it (#2664 S5b): who the person
261
+ * is (the same account their chat identity link is keyed on) and where the bot can post to them later.
262
+ */
263
+ export interface Hook_InboundPersonalConversation {
264
+ /** The vendor's workspace or tenant, exactly as the provider's chat accounts write it (a lower-cased tenant id). */
265
+ readonly workspaceRef: string;
266
+ /** The vendor's id for the person, exactly as the provider's chat accounts write it (a lower-cased Entra object id). */
267
+ readonly chatUserId: string;
268
+ /** The conversation's id at the vendor. */
269
+ readonly conversationId: string;
270
+ /** Where the vendor takes messages for that conversation (the Bot Connector's `serviceUrl`). */
271
+ readonly serviceUrl: string;
272
+ }
273
+ /**
274
+ * Who sees a chat conversation at the vendor (#2665 S6), which decides where an answer to it may be posted. The chat
275
+ * door reads it from the verified request (`Hook_InboundChatMessage.audience`) and the chat-conversation ledger records it.
276
+ */
277
+ export declare enum ChatConversationAudience {
278
+ /** A one-to-one conversation with the bot (a Slack DM, a Teams personal chat): answered in it. */
279
+ DIRECT = "direct",
280
+ /**
281
+ * A conversation other people read (a channel, a group chat): answered privately, in the asker's own conversation with
282
+ * the bot, with a content-free pointer in the thread. A turn runs with the asker's authority, so its answer may name
283
+ * what the others in the thread cannot see.
284
+ */
285
+ SHARED = "shared",
286
+ /** A shared conversation that reaches people outside the organization (Slack Connect, a Teams shared channel): the same. */
287
+ SHARED_WITH_EXTERNAL = "shared_with_external"
288
+ }
289
+ /** Whether a vendor conversation is a thread or a flat stream of messages (#2665 S6, plan B11). */
290
+ export declare enum Hook_ChatConversationThreading {
291
+ /** A thread (a Slack thread, a Teams channel's reply chain): one conversation for its whole life. */
292
+ THREADED = "threaded",
293
+ /**
294
+ * A flat conversation (a top-level Slack DM, a Teams personal or group chat): split after a quiet gap measured on the
295
+ * vendor's clock, so one transcript never grows without bound.
296
+ */
297
+ FLAT = "flat"
298
+ }
299
+ /** The person who wrote a chat message, as the provider's chat accounts write them: what their chat identity link is keyed on. */
300
+ export declare const Hook_InboundChatSenderSchema: z.ZodObject<{
301
+ workspaceRef: z.ZodString;
302
+ chatUserId: z.ZodString;
303
+ chatUserDisplayName: z.ZodOptional<z.ZodString>;
304
+ workspaceDisplayName: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strip>;
306
+ export type Hook_InboundChatSender = z.infer<typeof Hook_InboundChatSenderSchema>;
307
+ /**
308
+ * A message a person wrote to the bot, as a verified request carries it (#2665 S6, plan A14). The chat door reads all of
309
+ * it from the request the engine verified, never from a handler, so a handler decides only WHETHER to converse.
310
+ *
311
+ * One schema, the type derived from it (#2665 S6 review L-B): the engine parses what a provider module's `chatMessageOf`
312
+ * returns with this very schema, so a field added here is checked at the engine's boundary the day it is added, and a
313
+ * value the module built wrong (an empty key, a date that is not one) is read as no message.
314
+ */
315
+ export declare const Hook_InboundChatMessageSchema: z.ZodObject<{
316
+ sender: z.ZodObject<{
317
+ workspaceRef: z.ZodString;
318
+ chatUserId: z.ZodString;
319
+ chatUserDisplayName: z.ZodOptional<z.ZodString>;
320
+ workspaceDisplayName: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$strip>;
322
+ conversationKey: z.ZodString;
323
+ threading: z.ZodEnum<typeof Hook_ChatConversationThreading>;
324
+ audience: z.ZodEnum<typeof ChatConversationAudience>;
325
+ messageKey: z.ZodString;
326
+ sentAt: z.ZodDate;
327
+ text: z.ZodString;
328
+ replyTarget: z.ZodString;
329
+ }, z.core.$strip>;
330
+ export type Hook_InboundChatMessage = z.infer<typeof Hook_InboundChatMessageSchema>;
331
+ /**
332
+ * A chat COMMAND a person sent, as a verified request carries it (#2666 S7): a Slack slash command (`/todo add buy milk`)
333
+ * or a Teams message-extension form a person submitted. Read by the engine from the request it verified, so the command
334
+ * door runs what the person sent and never what a handler says they sent. One schema, the type derived from it: what a
335
+ * provider module's `chatCommandOf` returns is parsed with it, and a value built wrong is read as no command.
336
+ */
337
+ export declare const Hook_InboundChatCommandSchema: z.ZodObject<{
338
+ sender: z.ZodObject<{
339
+ workspaceRef: z.ZodString;
340
+ chatUserId: z.ZodString;
341
+ chatUserDisplayName: z.ZodOptional<z.ZodString>;
342
+ workspaceDisplayName: z.ZodOptional<z.ZodString>;
343
+ }, z.core.$strip>;
344
+ verb: z.ZodNullable<z.ZodString>;
345
+ text: z.ZodString;
346
+ values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
347
+ audience: z.ZodEnum<typeof ChatConversationAudience>;
348
+ replyTarget: z.ZodString;
349
+ }, z.core.$strip>;
350
+ export type Hook_InboundChatCommand = z.infer<typeof Hook_InboundChatCommandSchema>;
351
+ /**
352
+ * A chat SEARCH a person typed (#2666 S7): a Teams message-extension search, sent as the person types and answered within
353
+ * the vendor's deadline in the same request, never stored. Read by the engine from the request it verified.
354
+ */
355
+ export declare const Hook_InboundChatSearchSchema: z.ZodObject<{
356
+ sender: z.ZodObject<{
357
+ workspaceRef: z.ZodString;
358
+ chatUserId: z.ZodString;
359
+ chatUserDisplayName: z.ZodOptional<z.ZodString>;
360
+ workspaceDisplayName: z.ZodOptional<z.ZodString>;
361
+ }, z.core.$strip>;
362
+ verb: z.ZodString;
363
+ text: z.ZodString;
364
+ initialRun: z.ZodBoolean;
365
+ skip: z.ZodNumber;
366
+ vendorRequestId: z.ZodString;
367
+ }, z.core.$strip>;
368
+ export type Hook_InboundChatSearch = z.infer<typeof Hook_InboundChatSearchSchema>;
369
+ /** What the engine answers a chat search with, before the vendor module writes it in the vendor's own response (#2666 S7). */
370
+ export declare enum Hook_ChatSearchAnswerKind {
371
+ /** Records the person may insert, each named and linked. Empty when this page has nothing (a later page of the results). */
372
+ RESULTS = "results",
373
+ /** One plain sentence in place of results: nothing found, refused, keep typing, try again. Carries no formatting. */
374
+ MESSAGE = "message",
375
+ /** The person's chat account is linked to no member yet: the page that links it, and the text of the action that opens it. */
376
+ SIGN_IN = "sign_in"
377
+ }
378
+ /** One record a chat search found: its name and its page in the application, nothing else (selecting it shares only these). */
379
+ export interface Hook_ChatSearchAnswerItem {
380
+ /** The record's id. */
381
+ readonly id: string;
382
+ /** The record's name (its resource's `recordLabelFields`), or the framework's "open it" phrase when it has none. */
383
+ readonly title: string;
384
+ /** The record's page in the application, or `null` when its route cannot be built. */
385
+ readonly url: string | null;
386
+ }
387
+ /**
388
+ * The engine's answer to a chat search (#2666 S7), in the searcher's language, which the endpoint's
389
+ * {@link Hook_Endpoint.answerChatSearch} turns into the vendor's response (a Teams `composeExtension` of type `result`,
390
+ * `message` or `auth`). Built by the engine from the member's own results; a module only chooses how it looks.
391
+ */
392
+ export type Hook_ChatSearchAnswer = {
393
+ readonly kind: Hook_ChatSearchAnswerKind.RESULTS;
394
+ readonly items: readonly Hook_ChatSearchAnswerItem[];
395
+ } | {
396
+ readonly kind: Hook_ChatSearchAnswerKind.MESSAGE;
397
+ readonly text: string;
398
+ } | {
399
+ readonly kind: Hook_ChatSearchAnswerKind.SIGN_IN;
400
+ readonly text: string;
401
+ readonly url: string;
402
+ };
403
+ /** How an endpoint's synchronous answer writes its body. */
404
+ export declare enum Hook_AcknowledgementEncoding {
405
+ /** No body. Slack takes an empty 200 as "received, nothing to show"; it closes a submitted modal view. */
406
+ EMPTY = "empty",
407
+ /** `application/json`. */
408
+ JSON = "json",
409
+ /** `text/plain; charset=utf-8`. */
410
+ TEXT = "text"
411
+ }
412
+ /**
413
+ * The HTTP answer a provider's contract requires within its deadline, computed from the verified request.
414
+ * Always a 200: it is the answer to a request the engine ACCEPTED (stored, a duplicate, or one no handler takes),
415
+ * so a refusal never takes this path. The work itself still goes through the durable store and the queue.
416
+ */
417
+ export type Hook_Acknowledgement = {
418
+ readonly encoding: Hook_AcknowledgementEncoding.EMPTY;
419
+ } | {
420
+ readonly encoding: Hook_AcknowledgementEncoding.JSON;
421
+ readonly body: unknown;
422
+ } | {
423
+ readonly encoding: Hook_AcknowledgementEncoding.TEXT;
424
+ readonly body: string;
425
+ };
132
426
  /**
133
427
  * A webhook endpoint for a specific domain/capability within a provider.
134
428
  *
@@ -159,12 +453,17 @@ export type Hook_Endpoint = {
159
453
  displayName?: string;
160
454
  /** Which capability this endpoint serves */
161
455
  capability: string;
162
- /** Signature verification config for this endpoint */
163
- signatureConfig: Hook_SignatureConfig;
164
- /** Trigger strategy (webhook push, polling, app_webhook) */
456
+ /**
457
+ * How a request is verified. Required on every endpoint except a
458
+ * {@link Hook_TriggerStrategy.WEBHOOK_TRIGGERS_POLL} one, which must declare none (nothing it receives is verified, and
459
+ * a signature setting nothing reads would look like a control). The route gate withholds an endpoint that breaks either
460
+ * half.
461
+ */
462
+ signatureConfig?: Hook_SignatureConfig;
463
+ /** How the endpoint's requests are trusted, and so handled. See {@link Hook_TriggerStrategy}. */
165
464
  triggerStrategy: Hook_TriggerStrategy;
166
- /** Handshake type if applicable */
167
- handshakeType?: Hook_HandshakeType;
465
+ /** Required for, and only for, a {@link Hook_TriggerStrategy.WEBHOOK_TRIGGERS_POLL} endpoint (#2909). */
466
+ reReadTrigger?: Hook_ReReadTrigger;
168
467
  /** Event types this endpoint handles (single source of truth) */
169
468
  eventTypes: string[];
170
469
  /** Declarative scope binding — how events map to engine scope */
@@ -176,7 +475,89 @@ export type Hook_Endpoint = {
176
475
  * own body limit applies.
177
476
  */
178
477
  maxBodyBytes?: number;
478
+ /**
479
+ * The media types this endpoint accepts (#2659). A request in any other is refused 415 and audited. Omitted,
480
+ * the endpoint accepts JSON only. Slack's interactions and slash commands are `FORM_URLENCODED`. The engine
481
+ * decodes JSON and form bodies; it decodes no XML, so an endpoint declaring XML refuses every request.
482
+ */
483
+ contentTypes?: ReadonlyArray<Hook_ContentType>;
484
+ /**
485
+ * The verified request names a PERSON of the vendor's chat: a workspace or tenant and a user id, both carried in
486
+ * bytes the vendor signed (Slack's events, clicks and commands; a Teams activity). Only such an endpoint's handler
487
+ * may act as the member that chat account is linked to (`ctx.chat`, #2664); every other handler is refused.
488
+ *
489
+ * Honored only on an endpoint the ENGINE verifies (`HOOK_ENGINE_VERIFIED_SIGNATURE_ALGORITHMS`), read through
490
+ * {@link hookEndpointNamesChatMember}: a person named in bytes the engine did not check could be anyone. An email
491
+ * intake endpoint never declares it, because a From address is not verified by anything.
492
+ */
493
+ namesChatMember?: boolean;
494
+ /**
495
+ * Answers a HANDSHAKE: a request that proves the endpoint is reachable rather than delivering an event
496
+ * (Slack's `url_verification`, answered with its `challenge`). Returns the answer for a handshake, `null` for
497
+ * anything else. A handshake is answered and never stored: no handler runs for it.
498
+ */
499
+ answerHandshake?: (request: Hook_InboundRequest) => Hook_Acknowledgement | null;
500
+ /**
501
+ * Names the event in a verified request, for an engine-verified endpoint whose scheme signs no delivery id
502
+ * (`SLACK_V0`, `BOT_FRAMEWORK_JWT`). Returns `null` for a request that carries no event the provider names; it
503
+ * is acknowledged and stored nowhere. `SVIX_V1` needs none: its signed `svix-id` and the body's `type` name it.
504
+ * An engine-verified endpoint whose scheme signs no id is not mounted without one.
505
+ */
506
+ identifyEvent?: (request: Hook_InboundRequest) => Hook_InboundEventIdentity | null;
507
+ /**
508
+ * The synchronous answer the provider requires, replacing the engine's `{ received: true }` on every accepted
509
+ * request (Slack: an empty 200; a Teams `invoke`: an invoke response body). Omitted, the engine's answer stands.
510
+ */
511
+ acknowledge?: (request: Hook_InboundRequest) => Hook_Acknowledgement;
512
+ /**
513
+ * The PERSONAL conversation this request happened in, or `null` when it happened anywhere else (a group chat, a
514
+ * channel) or names no person (#2664 S5b). Only for an endpoint that {@link namesChatMember} and whose scheme names
515
+ * the bot the token was for (`BOT_FRAMEWORK_JWT`). The engine records it on the sender's chat identity link in the
516
+ * delivery's organization, under that bot, so the application can post to the person later without their writing
517
+ * first. A throw is logged and records nothing: the delivery is unaffected.
518
+ */
519
+ personalConversationOf?: (request: Hook_InboundRequest) => Hook_InboundPersonalConversation | null;
520
+ /**
521
+ * The message a person wrote to the bot in this request, or `null` when it carries none: a click, a command, the
522
+ * bot's own message, an edit or a deletion (#2665 S6). Only for an endpoint that {@link namesChatMember}, on a scheme the
523
+ * engine verifies: declared anywhere else, it stops startup (#2666 S7), because a person's words read from it would be
524
+ * stored where READ returns them and nothing empties them. A handler on
525
+ * such an endpoint converses through `ctx.chat.converse()`, which reads the message from here, and the engine orders
526
+ * each sender's messages of one conversation by it (the delivery's ordering key). A throw is treated as `null`.
527
+ * Read the BODY only: the engine calls it at receipt and again from the stored delivery, which keeps no header but
528
+ * `content-type`, and the two reads must name the same message.
529
+ */
530
+ chatMessageOf?: (request: Hook_InboundRequest) => Hook_InboundChatMessage | null;
531
+ /**
532
+ * The chat command a person sent in this request, or `null` when it carries none (#2666 S7): a Slack slash command, or a
533
+ * Teams message-extension form submitted. Only for an endpoint that {@link namesChatMember} on a scheme the engine
534
+ * verifies; declared anywhere else, it stops startup. The engine marks the stored
535
+ * delivery a COMMAND at receipt, so its body has one copy, and a handler runs it through `ctx.chat.runCommand()`, which
536
+ * reads it from here. A throw is treated as `null`. Read the BODY only: the engine calls it at receipt and again from the
537
+ * stored delivery, which keeps no header but `content-type`.
538
+ */
539
+ chatCommandOf?: (request: Hook_InboundRequest) => Hook_InboundChatCommand | null;
540
+ /**
541
+ * The chat SEARCH a person typed in this request, or `null` (#2666 S7): a Teams message-extension search. Only for an
542
+ * endpoint that {@link namesChatMember} on a scheme the engine verifies; declared anywhere else, it stops startup. A search is answered in the request and never stored, so the engine asks this
543
+ * BEFORE it names an event: a request it answers is a search, and nothing else runs for it. A throw is treated as `null`.
544
+ * Declared with {@link answerChatSearch}, or startup refuses the endpoint.
545
+ */
546
+ chatSearchOf?: (request: Hook_InboundRequest) => Hook_InboundChatSearch | null;
547
+ /**
548
+ * The vendor's response to a chat search, from the engine's answer (#2666 S7): the person's results, a sentence, or the
549
+ * page that links their chat account. Pure, because it is written inside the vendor's deadline. Declared exactly when
550
+ * {@link chatSearchOf} is: one without the other stops startup.
551
+ */
552
+ answerChatSearch?: (answer: Hook_ChatSearchAnswer) => Hook_Acknowledgement;
179
553
  };
554
+ /** @wildo_source:part:end external-connectors.models.hook-inbound-endpoint */
555
+ /**
556
+ * Whether an endpoint's handler may act as the chat member its verified request names (#2664): the endpoint declares
557
+ * {@link Hook_Endpoint.namesChatMember}, AND the engine verifies it. A declaration on an endpoint a provider adapter
558
+ * verifies is not honored, so the decision rests on engine code alone.
559
+ */
560
+ export declare function hookEndpointNamesChatMember(endpoint: Pick<Hook_Endpoint, 'namesChatMember' | 'signatureConfig'>): boolean;
180
561
  export type HookInitiatorProvider_Configuration = ExternalProvider_ExchangeProtocol_Configuration_Base & {
181
562
  /** Webhook endpoints — each generates a route: POST /webhooks/{providerRef}/{endpointKey} */
182
563
  endpoints: Hook_Endpoint[];
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/protocols/hooks.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../../src/protocols/hooks.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}