@adonis-agora/agent 0.64.1 → 0.65.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/src/agent-service.d.ts +16 -1
  3. package/dist/src/agent-service.d.ts.map +1 -1
  4. package/dist/src/agent-service.js +11 -2
  5. package/dist/src/agent-service.js.map +1 -1
  6. package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -1
  7. package/dist/src/channels/adapters/evolution_api.js +25 -1
  8. package/dist/src/channels/adapters/evolution_api.js.map +1 -1
  9. package/dist/src/channels/adapters/telegram.d.ts +2 -1
  10. package/dist/src/channels/adapters/telegram.d.ts.map +1 -1
  11. package/dist/src/channels/adapters/telegram.js +57 -4
  12. package/dist/src/channels/adapters/telegram.js.map +1 -1
  13. package/dist/src/channels/adapters/whatsapp_cloud.d.ts +3 -2
  14. package/dist/src/channels/adapters/whatsapp_cloud.d.ts.map +1 -1
  15. package/dist/src/channels/adapters/whatsapp_cloud.js +55 -4
  16. package/dist/src/channels/adapters/whatsapp_cloud.js.map +1 -1
  17. package/dist/src/channels/executor.d.ts +116 -0
  18. package/dist/src/channels/executor.d.ts.map +1 -0
  19. package/dist/src/channels/executor.js +138 -0
  20. package/dist/src/channels/executor.js.map +1 -0
  21. package/dist/src/channels/handler.d.ts +228 -89
  22. package/dist/src/channels/handler.d.ts.map +1 -1
  23. package/dist/src/channels/handler.js +856 -388
  24. package/dist/src/channels/handler.js.map +1 -1
  25. package/dist/src/channels/http.d.ts +15 -0
  26. package/dist/src/channels/http.d.ts.map +1 -1
  27. package/dist/src/channels/http.js +43 -0
  28. package/dist/src/channels/http.js.map +1 -1
  29. package/dist/src/channels/index.d.ts +7 -4
  30. package/dist/src/channels/index.d.ts.map +1 -1
  31. package/dist/src/channels/index.js +6 -3
  32. package/dist/src/channels/index.js.map +1 -1
  33. package/dist/src/channels/texts.d.ts +102 -0
  34. package/dist/src/channels/texts.d.ts.map +1 -0
  35. package/dist/src/channels/texts.js +79 -0
  36. package/dist/src/channels/texts.js.map +1 -0
  37. package/dist/src/channels/types.d.ts +41 -1
  38. package/dist/src/channels/types.d.ts.map +1 -1
  39. package/dist/src/durable/agent-run-context.d.ts +10 -0
  40. package/dist/src/durable/agent-run-context.d.ts.map +1 -1
  41. package/dist/src/durable/agent-run-context.js +22 -0
  42. package/dist/src/durable/agent-run-context.js.map +1 -1
  43. package/dist/src/durable/agent-run-workflow.d.ts.map +1 -1
  44. package/dist/src/durable/agent-run-workflow.js +1 -27
  45. package/dist/src/durable/agent-run-workflow.js.map +1 -1
  46. package/dist/src/durable/drive-pending-runs.d.ts +17 -0
  47. package/dist/src/durable/drive-pending-runs.d.ts.map +1 -0
  48. package/dist/src/durable/drive-pending-runs.js +41 -0
  49. package/dist/src/durable/drive-pending-runs.js.map +1 -0
  50. package/dist/src/durable/durable-agent-runner.d.ts +4 -0
  51. package/dist/src/durable/durable-agent-runner.d.ts.map +1 -1
  52. package/dist/src/durable/durable-agent-runner.js +7 -0
  53. package/dist/src/durable/durable-agent-runner.js.map +1 -1
  54. package/dist/src/durable/outside-workflow-ctx.d.ts +27 -0
  55. package/dist/src/durable/outside-workflow-ctx.d.ts.map +1 -0
  56. package/dist/src/durable/outside-workflow-ctx.js +29 -0
  57. package/dist/src/durable/outside-workflow-ctx.js.map +1 -0
  58. package/dist/src/index.d.ts +2 -2
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +1 -1
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/opencode/durable/runner.d.ts +4 -0
  63. package/dist/src/opencode/durable/runner.d.ts.map +1 -1
  64. package/dist/src/opencode/durable/runner.js +7 -0
  65. package/dist/src/opencode/durable/runner.js.map +1 -1
  66. package/dist/src/spi/agent-runner.d.ts +8 -0
  67. package/dist/src/spi/agent-runner.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/skills/agent-setup/SKILL.md +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../../src/channels/adapters/telegram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../../src/channels/adapters/telegram.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,9 @@ export interface WhatsappCloudOptions {
24
24
  *
25
25
  * Verifies `X-Hub-Signature-256` over the raw body; reads text, interactive button/list replies,
26
26
  * template quick replies and media (image, audio, video, document, sticker — downloaded through the
27
- * Graph API media endpoint) addressed to `phoneNumberId` (status updates are ignored); sends text and
28
- * interactive reply buttons (at most 3, 20-character titles).
27
+ * Graph API media endpoint) addressed to `phoneNumberId` (status updates are ignored); sends text,
28
+ * interactive reply buttons (at most 3, 20-character titles, with a footer) and files (image,
29
+ * document, audio, video — by link, or uploaded first when given as bytes).
29
30
  */
30
31
  export declare function whatsappCloud(options: WhatsappCloudOptions): ChannelAdapter;
31
32
  //# sourceMappingURL=whatsapp_cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp_cloud.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EASlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;IAClB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAwDD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAmI3E"}
1
+ {"version":3,"file":"whatsapp_cloud.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAWlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,SAAS,EAAE,MAAM,CAAC;IAClB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AA0DD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CA2L3E"}
@@ -1,10 +1,12 @@
1
1
  import { createHmac } from 'node:crypto';
2
- import { ChannelDeliveryError, ChannelMediaTooLargeError, fetchBytes, postJson, queryParam, record, safeEqual, sizeOf, str, } from '../http.js';
2
+ import { ChannelDeliveryError, ChannelMediaTooLargeError, fetchBytes, mediaFilename, postForm, postJson, queryParam, record, safeEqual, sizeOf, str, } from '../http.js';
3
3
  /** Cloud API limits: text body, interactive body, button title. */
4
4
  const MAX_TEXT = 4096;
5
5
  const MAX_INTERACTIVE_BODY = 1024;
6
6
  const MAX_BUTTON_TITLE = 20;
7
7
  const MAX_BUTTONS = 3;
8
+ const MAX_CAPTION = 1024;
9
+ const MAX_FOOTER = 60;
8
10
  const MEDIA_TYPES = ['image', 'audio', 'video', 'document', 'sticker'];
9
11
  /** The file a Cloud API message carries (`{ id, mime_type, caption?, filename? }`), and its caption. */
10
12
  function mediaOf(message) {
@@ -58,8 +60,9 @@ function parseMessage(message) {
58
60
  *
59
61
  * Verifies `X-Hub-Signature-256` over the raw body; reads text, interactive button/list replies,
60
62
  * template quick replies and media (image, audio, video, document, sticker — downloaded through the
61
- * Graph API media endpoint) addressed to `phoneNumberId` (status updates are ignored); sends text and
62
- * interactive reply buttons (at most 3, 20-character titles).
63
+ * Graph API media endpoint) addressed to `phoneNumberId` (status updates are ignored); sends text,
64
+ * interactive reply buttons (at most 3, 20-character titles, with a footer) and files (image,
65
+ * document, audio, video — by link, or uploaded first when given as bytes).
63
66
  */
64
67
  export function whatsappCloud(options) {
65
68
  const name = options.name ?? 'whatsapp';
@@ -69,9 +72,31 @@ export function whatsappCloud(options) {
69
72
  const endpoint = `https://graph.facebook.com/${graphVersion}/${encodeURIComponent(options.phoneNumberId)}/messages`;
70
73
  const post = (body) => postJson(name, fetcher, endpoint, { authorization: `Bearer ${options.accessToken}` }, { messaging_product: 'whatsapp', recipient_type: 'individual', ...body }, timeoutMs);
71
74
  const sendText = (to, body) => post({ to, type: 'text', text: { body, preview_url: false } });
75
+ /** Bytes are uploaded first (`POST /{phone-number-id}/media`); the message names the upload. */
76
+ const upload = async (media) => {
77
+ const answer = record(await postForm(name, fetcher, endpoint.replace(/\/messages$/, '/media'), { authorization: `Bearer ${options.accessToken}` }, {
78
+ messaging_product: 'whatsapp',
79
+ type: media.contentType ?? 'application/octet-stream',
80
+ file: {
81
+ data: media.data,
82
+ contentType: media.contentType ?? 'application/octet-stream',
83
+ filename: mediaFilename(media),
84
+ },
85
+ }, timeoutMs));
86
+ const id = str(answer?.id);
87
+ if (id === undefined)
88
+ throw new ChannelDeliveryError(name, null, `${name}: upload failed`);
89
+ return id;
90
+ };
72
91
  return {
73
92
  name,
74
- capabilities: { buttons: MAX_BUTTONS, markdown: 'whatsapp', maxLength: MAX_TEXT },
93
+ capabilities: {
94
+ buttons: MAX_BUTTONS,
95
+ markdown: 'whatsapp',
96
+ maxLength: MAX_TEXT,
97
+ media: true,
98
+ maxCaptionLength: MAX_CAPTION,
99
+ },
75
100
  challenge(request) {
76
101
  if (request.method !== 'GET')
77
102
  return null;
@@ -144,6 +169,29 @@ export function whatsappCloud(options) {
144
169
  };
145
170
  },
146
171
  async send(conversation, message) {
172
+ if (message.media !== undefined) {
173
+ const { media } = message;
174
+ const source = media.url !== undefined
175
+ ? { link: media.url }
176
+ : media.data !== undefined
177
+ ? { id: await upload({ ...media, data: media.data }) }
178
+ : undefined;
179
+ if (source === undefined)
180
+ throw new Error(`${name}: a file needs a url or its data`);
181
+ await post({
182
+ to: conversation,
183
+ type: media.kind,
184
+ [media.kind]: {
185
+ ...source,
186
+ // Audio carries no caption on WhatsApp.
187
+ ...(message.text !== '' && media.kind !== 'audio'
188
+ ? { caption: message.text.slice(0, MAX_CAPTION) }
189
+ : {}),
190
+ ...(media.kind === 'document' ? { filename: mediaFilename(media) } : {}),
191
+ },
192
+ });
193
+ return;
194
+ }
147
195
  if (message.buttons === undefined || message.buttons.length === 0) {
148
196
  await sendText(conversation, message.buttons === undefined ? message.text : message.fallbackText);
149
197
  return;
@@ -163,6 +211,9 @@ export function whatsappCloud(options) {
163
211
  interactive: {
164
212
  type: 'button',
165
213
  body: { text: body },
214
+ ...(message.footer !== undefined && message.footer.trim() !== ''
215
+ ? { footer: { text: message.footer.replace(/[*_~]/g, '').trim().slice(0, MAX_FOOTER) } }
216
+ : {}),
166
217
  action: {
167
218
  buttons: message.buttons.slice(0, MAX_BUTTONS).map((button) => ({
168
219
  type: 'reply',
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp_cloud.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whatsapp_cloud.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { Actor } from '../types.js';
2
+ import type { InboundMessage } from './types.js';
3
+ /**
4
+ * How a channel's inbound messages are processed: one {@link ChannelJob} per message, in order per
5
+ * conversation, each made of named phases ({@link ChannelStepRunner}).
6
+ *
7
+ * - {@link inlineExecutor}: in this process, after the `200`. A restart loses what was in flight.
8
+ * - {@link durableExecutor}: as `@adonis-agora/durable` runs — persisted before the `200`, one at a
9
+ * time per conversation (a singleton key), each phase a checkpointed step, and resumed by the
10
+ * engine's recovery after a crash.
11
+ */
12
+ /** What a channel processes: a message, the rest of a run after its question, a question timing out. */
13
+ export type ChannelJob = {
14
+ kind: 'message';
15
+ channel: string;
16
+ conversation: string;
17
+ message: InboundMessage;
18
+ } | {
19
+ /** Read a run's stream (again) and deliver what was not delivered yet. */
20
+ kind: 'resume';
21
+ channel: string;
22
+ conversation: string;
23
+ runId: string;
24
+ threadId: string | null;
25
+ actor: Actor;
26
+ } | {
27
+ /** A question nobody answered in time: skip it, then resume the run. Runs outside the lock. */
28
+ kind: 'timeout';
29
+ channel: string;
30
+ conversation: string;
31
+ /** The run parked on the question (a delegate's, sometimes). */
32
+ runId: string;
33
+ toolCallId: string;
34
+ /** The run whose stream the person reads. */
35
+ streamRunId: string;
36
+ threadId: string | null;
37
+ actor: Actor;
38
+ };
39
+ /** Runs one phase of a job: checkpointed (durable) or just called (inline). Results are JSON. */
40
+ export type ChannelStepRunner = <T>(name: string, fn: () => Promise<T>) => Promise<T>;
41
+ /** What runs a job — the registered channel's processor. */
42
+ export type ChannelJobRunner = (job: ChannelJob, step: ChannelStepRunner) => Promise<void>;
43
+ export interface ChannelExecutor {
44
+ readonly durable: boolean;
45
+ /**
46
+ * Take a job: persisted (durable) or queued (inline) when this resolves — what the webhook waits
47
+ * for before its `200`. Jobs of one conversation run one at a time, in the order they were taken.
48
+ */
49
+ enqueue(job: ChannelJob, id: string): Promise<void>;
50
+ /** Run a job at `at` (epoch ms), outside the conversation's order. */
51
+ later(job: ChannelJob, id: string, at: number): Promise<void>;
52
+ /** Resolves once every job taken by this executor so far has finished. */
53
+ drain(): Promise<void>;
54
+ }
55
+ /** Ids a store / engine takes whatever the provider's message id looks like. */
56
+ export declare function jobId(...parts: string[]): string;
57
+ /** In this process: a promise chain per conversation. Nothing survives a restart. */
58
+ export declare function inlineExecutor(run: (job: ChannelJob) => Promise<void>): ChannelExecutor;
59
+ /**
60
+ * The slice of an `@adonis-agora/durable` `WorkflowEngine` the channels use — the engine itself
61
+ * satisfies it (`channels.handle(adapter, { durable: engine })`).
62
+ */
63
+ export interface ChannelWorkflowEngine {
64
+ register(name: string, version: string, fn: (ctx: ChannelWorkflowCtx, input: unknown) => Promise<unknown>, opts?: {
65
+ singleton?: {
66
+ key: (input: unknown) => string;
67
+ limit?: number;
68
+ };
69
+ }): void;
70
+ start(workflow: string, input: unknown, runId: string, opts?: {
71
+ startAt?: number | Date;
72
+ }): Promise<unknown>;
73
+ waitForRun?(runId: string, opts?: {
74
+ timeoutMs?: number;
75
+ terminal?: boolean;
76
+ }): Promise<unknown>;
77
+ }
78
+ /** The slice of a durable `WorkflowCtx` a channel job uses. */
79
+ export interface ChannelWorkflowCtx {
80
+ localStep<T>(name: string, fn: () => Promise<T>, options?: {
81
+ retries?: number;
82
+ backoff?: 'fixed' | 'exp';
83
+ backoffMs?: number;
84
+ }): Promise<T>;
85
+ }
86
+ /** The workflow a message (or a resume) runs as: one at a time per channel conversation. */
87
+ export declare const CHANNEL_JOB_WORKFLOW = "agora.channel.job";
88
+ /** A question's timeout: runs on its own, so it never waits behind the conversation. */
89
+ export declare const CHANNEL_TIMER_WORKFLOW = "agora.channel.timer";
90
+ /**
91
+ * Register the channel workflows on `engine`, once. Their body finds the job's channel with
92
+ * `runnerFor` — the handler `channels.handle()` registered under that name IN THIS PROCESS. A
93
+ * process that resumes channel jobs must have created the same handlers.
94
+ */
95
+ export declare function registerChannelWorkflows(engine: ChannelWorkflowEngine, runnerFor: (channel: string) => ChannelJobRunner | undefined): void;
96
+ /** As durable runs on `engine` — see {@link registerChannelWorkflows}. */
97
+ export declare function durableExecutor(engine: ChannelWorkflowEngine): ChannelExecutor;
98
+ export interface ChannelRetryOptions {
99
+ /** Attempts per phase (the first included). Default 3. */
100
+ attempts?: number;
101
+ /** Delay before the second attempt; doubles each time (with jitter). Default 1 s. */
102
+ backoffMs?: number;
103
+ /** The longest delay between two attempts. Default 30 s. */
104
+ maxBackoffMs?: number;
105
+ /**
106
+ * Retry after this error? Default: not a refusal that retrying cannot change — a definite 4xx
107
+ * from the provider (`ChannelDeliveryError.definite`), an error carrying a 4xx `status`, a
108
+ * `QuotaBlockedError` — everything else yes.
109
+ */
110
+ retryable?(error: unknown): boolean;
111
+ }
112
+ /** {@link ChannelRetryOptions.retryable}'s default. */
113
+ export declare function retryableByDefault(error: unknown): boolean;
114
+ /** Run `fn`, again after a growing delay while it fails with a retryable error. */
115
+ export declare function withRetries<T>(fn: () => Promise<T>, options?: ChannelRetryOptions): Promise<T>;
116
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/channels/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { ChannelDeliveryError } from './http.js';
3
+ /** Ids a store / engine takes whatever the provider's message id looks like. */
4
+ export function jobId(...parts) {
5
+ const id = `agora.channel:${parts.join(':')}`;
6
+ return id.length <= 160 ? id : `agora.channel:${createHash('sha256').update(id).digest('hex')}`;
7
+ }
8
+ /** The order key: one channel conversation. */
9
+ const lockKey = (job) => `${job.channel}:${job.conversation}`;
10
+ /** In this process: a promise chain per conversation. Nothing survives a restart. */
11
+ export function inlineExecutor(run) {
12
+ const chains = new Map();
13
+ const inFlight = new Set();
14
+ const track = (work) => {
15
+ inFlight.add(work);
16
+ void work.finally(() => inFlight.delete(work));
17
+ return work;
18
+ };
19
+ return {
20
+ durable: false,
21
+ async enqueue(job) {
22
+ const key = lockKey(job);
23
+ const previous = chains.get(key) ?? Promise.resolve();
24
+ const next = track(previous.then(() => run(job)).catch(() => { }));
25
+ chains.set(key, next);
26
+ void next.finally(() => {
27
+ if (chains.get(key) === next)
28
+ chains.delete(key);
29
+ });
30
+ },
31
+ async later(job, _id, at) {
32
+ const timer = setTimeout(() => track(run(job).catch(() => { })), Math.max(0, at - Date.now()));
33
+ timer.unref?.();
34
+ },
35
+ async drain() {
36
+ while (inFlight.size > 0)
37
+ await Promise.allSettled([...inFlight]);
38
+ },
39
+ };
40
+ }
41
+ /** The workflow a message (or a resume) runs as: one at a time per channel conversation. */
42
+ export const CHANNEL_JOB_WORKFLOW = 'agora.channel.job';
43
+ /** A question's timeout: runs on its own, so it never waits behind the conversation. */
44
+ export const CHANNEL_TIMER_WORKFLOW = 'agora.channel.timer';
45
+ /** A control-flow signal a driving dispatcher may surface out of `start` — not a failure. */
46
+ const isControlFlowSignal = (error) => {
47
+ const name = error?.name;
48
+ return name === 'WorkflowSuspended' || name === 'ContinueAsNew';
49
+ };
50
+ const registeredOn = new WeakSet();
51
+ /**
52
+ * Register the channel workflows on `engine`, once. Their body finds the job's channel with
53
+ * `runnerFor` — the handler `channels.handle()` registered under that name IN THIS PROCESS. A
54
+ * process that resumes channel jobs must have created the same handlers.
55
+ */
56
+ export function registerChannelWorkflows(engine, runnerFor) {
57
+ if (registeredOn.has(engine))
58
+ return;
59
+ registeredOn.add(engine);
60
+ const body = async (ctx, input) => {
61
+ const job = input;
62
+ // A handler created lazily (on its first webhook) may not exist yet in the process that
63
+ // recovered this run: give it a minute before failing the job.
64
+ await ctx.localStep('channel', async () => {
65
+ if (runnerFor(job.channel) === undefined)
66
+ throw new Error(`[@adonis-agora/agent] channel "${job.channel}" is not registered in this process — create its handler (channels.handle) at boot in every process that runs durable work`);
67
+ return true;
68
+ }, { retries: 30, backoff: 'fixed', backoffMs: 2000 });
69
+ const run = runnerFor(job.channel);
70
+ if (run === undefined)
71
+ return null;
72
+ await run(job, (name, fn) => ctx.localStep(name, fn));
73
+ return null;
74
+ };
75
+ engine.register(CHANNEL_JOB_WORKFLOW, '1', body, {
76
+ singleton: { key: (input) => lockKey(input), limit: 1 },
77
+ });
78
+ engine.register(CHANNEL_TIMER_WORKFLOW, '1', body);
79
+ }
80
+ /** As durable runs on `engine` — see {@link registerChannelWorkflows}. */
81
+ export function durableExecutor(engine) {
82
+ const started = new Set();
83
+ const start = async (workflow, job, id, at) => {
84
+ try {
85
+ await engine.start(workflow, job, id, at === undefined ? undefined : { startAt: at });
86
+ }
87
+ catch (error) {
88
+ if (!isControlFlowSignal(error))
89
+ throw error;
90
+ }
91
+ };
92
+ return {
93
+ durable: true,
94
+ async enqueue(job, id) {
95
+ await start(CHANNEL_JOB_WORKFLOW, job, id);
96
+ started.add(id);
97
+ },
98
+ async later(job, id, at) {
99
+ await start(CHANNEL_TIMER_WORKFLOW, job, id, at);
100
+ },
101
+ async drain() {
102
+ while (started.size > 0) {
103
+ const ids = [...started];
104
+ started.clear();
105
+ await Promise.allSettled(ids.map((id) => engine.waitForRun?.(id, { terminal: true }) ?? Promise.resolve()));
106
+ }
107
+ },
108
+ };
109
+ }
110
+ /** {@link ChannelRetryOptions.retryable}'s default. */
111
+ export function retryableByDefault(error) {
112
+ if (error instanceof ChannelDeliveryError)
113
+ return !error.definite;
114
+ const status = error?.status;
115
+ if (typeof status === 'number' && status >= 400 && status < 500)
116
+ return false;
117
+ const name = error?.name;
118
+ return name !== 'QuotaBlockedError' && name !== 'AttachmentRefusedError';
119
+ }
120
+ /** Run `fn`, again after a growing delay while it fails with a retryable error. */
121
+ export async function withRetries(fn, options = {}) {
122
+ const attempts = Math.max(1, options.attempts ?? 3);
123
+ const base = Math.max(0, options.backoffMs ?? 1000);
124
+ const max = Math.max(base, options.maxBackoffMs ?? 30_000);
125
+ const retryable = options.retryable ?? retryableByDefault;
126
+ for (let attempt = 1;; attempt++) {
127
+ try {
128
+ return await fn();
129
+ }
130
+ catch (error) {
131
+ if (attempt >= attempts || !retryable(error))
132
+ throw error;
133
+ const delay = Math.min(max, base * 2 ** (attempt - 1));
134
+ await new Promise((resolve) => setTimeout(resolve, delay * (0.5 + Math.random() / 2)));
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/channels/executor.ts"],"names":[],"mappings":"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"}