@adonis-agora/agent 0.64.0 → 0.65.0
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/CHANGELOG.md +21 -0
- package/dist/src/action-proposal-outcome.d.ts +4 -0
- package/dist/src/action-proposal-outcome.d.ts.map +1 -1
- package/dist/src/action-proposal-outcome.js +23 -4
- package/dist/src/action-proposal-outcome.js.map +1 -1
- package/dist/src/action-proposal-text.js +3 -3
- package/dist/src/action-proposal-text.js.map +1 -1
- package/dist/src/agent-service.d.ts +10 -1
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +3 -2
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/channels/adapters/evolution_api.d.ts +7 -2
- package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -1
- package/dist/src/channels/adapters/evolution_api.js +127 -41
- package/dist/src/channels/adapters/evolution_api.js.map +1 -1
- package/dist/src/channels/adapters/telegram.d.ts +2 -1
- package/dist/src/channels/adapters/telegram.d.ts.map +1 -1
- package/dist/src/channels/adapters/telegram.js +57 -4
- package/dist/src/channels/adapters/telegram.js.map +1 -1
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts +3 -2
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts.map +1 -1
- package/dist/src/channels/adapters/whatsapp_cloud.js +55 -4
- package/dist/src/channels/adapters/whatsapp_cloud.js.map +1 -1
- package/dist/src/channels/adapters/whatsmiau.d.ts +5 -3
- package/dist/src/channels/adapters/whatsmiau.d.ts.map +1 -1
- package/dist/src/channels/adapters/whatsmiau.js +6 -2
- package/dist/src/channels/adapters/whatsmiau.js.map +1 -1
- package/dist/src/channels/executor.d.ts +116 -0
- package/dist/src/channels/executor.d.ts.map +1 -0
- package/dist/src/channels/executor.js +138 -0
- package/dist/src/channels/executor.js.map +1 -0
- package/dist/src/channels/handler.d.ts +228 -89
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +845 -337
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/channels/http.d.ts +15 -0
- package/dist/src/channels/http.d.ts.map +1 -1
- package/dist/src/channels/http.js +43 -0
- package/dist/src/channels/http.js.map +1 -1
- package/dist/src/channels/index.d.ts +7 -4
- package/dist/src/channels/index.d.ts.map +1 -1
- package/dist/src/channels/index.js +6 -3
- package/dist/src/channels/index.js.map +1 -1
- package/dist/src/channels/texts.d.ts +102 -0
- package/dist/src/channels/texts.d.ts.map +1 -0
- package/dist/src/channels/texts.js +79 -0
- package/dist/src/channels/texts.js.map +1 -0
- package/dist/src/channels/types.d.ts +61 -1
- package/dist/src/channels/types.d.ts.map +1 -1
- package/dist/src/durable/agent-run-context.d.ts +10 -0
- package/dist/src/durable/agent-run-context.d.ts.map +1 -1
- package/dist/src/durable/agent-run-context.js +22 -0
- package/dist/src/durable/agent-run-context.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-setup/SKILL.md +11 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp_cloud.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,oBAAoB,EAEpB,yBAAyB,EACzB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,MAAM,EACN,GAAG,GACJ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"whatsapp_cloud.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsapp_cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ export interface WhatsmiauOptions extends EvolutionApiOptions {
|
|
|
9
9
|
url: string;
|
|
10
10
|
/**
|
|
11
11
|
* Send proposals with reply buttons (`POST /v1/message/sendButtons/{instance}`). Default `true`:
|
|
12
|
-
* Whatsmiau runs on whatsmeow, whose buttons WhatsApp renders
|
|
13
|
-
* text instruction
|
|
12
|
+
* Whatsmiau runs on whatsmeow, whose buttons WhatsApp renders, so the buttons message carries no
|
|
13
|
+
* text instruction (the person can still answer by text); a 4xx from that endpoint falls back to
|
|
14
|
+
* the text-only message, instruction included.
|
|
14
15
|
*/
|
|
15
16
|
buttons?: boolean;
|
|
16
17
|
}
|
|
@@ -19,7 +20,8 @@ export interface WhatsmiauOptions extends EvolutionApiOptions {
|
|
|
19
20
|
* server built on whatsmeow (verbeux-ai's fork). The same webhook, routes and options as
|
|
20
21
|
* `evolutionApi()`, with two differences: the route prefix (`/v1`) is added to `url`, and reply
|
|
21
22
|
* buttons are on by default — Whatsmiau's render on the phone, where Evolution's (Baileys) did not in
|
|
22
|
-
* our test
|
|
23
|
+
* our test (so the buttons card carries no text instruction; the text fallback does). Point the
|
|
24
|
+
* instance's webhook (`POST /v1/webhook/set/{instance}`, event
|
|
23
25
|
* `MESSAGES_UPSERT`) at the route, with the token.
|
|
24
26
|
*/
|
|
25
27
|
export declare function whatsmiau(options: WhatsmiauOptions): ChannelAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsmiau.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ
|
|
1
|
+
{"version":3,"file":"whatsmiau.d.ts","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAQnE"}
|
|
@@ -9,10 +9,14 @@ function whatsmiauBase(url) {
|
|
|
9
9
|
* server built on whatsmeow (verbeux-ai's fork). The same webhook, routes and options as
|
|
10
10
|
* `evolutionApi()`, with two differences: the route prefix (`/v1`) is added to `url`, and reply
|
|
11
11
|
* buttons are on by default — Whatsmiau's render on the phone, where Evolution's (Baileys) did not in
|
|
12
|
-
* our test
|
|
12
|
+
* our test (so the buttons card carries no text instruction; the text fallback does). Point the
|
|
13
|
+
* instance's webhook (`POST /v1/webhook/set/{instance}`, event
|
|
13
14
|
* `MESSAGES_UPSERT`) at the route, with the token.
|
|
14
15
|
*/
|
|
15
16
|
export function whatsmiau(options) {
|
|
16
|
-
return evolutionFormatAdapter({ ...options, url: whatsmiauBase(options.url) }, {
|
|
17
|
+
return evolutionFormatAdapter({ ...options, url: whatsmiauBase(options.url) }, {
|
|
18
|
+
buttons: true,
|
|
19
|
+
instructionWithButtons: false,
|
|
20
|
+
});
|
|
17
21
|
}
|
|
18
22
|
//# sourceMappingURL=whatsmiau.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsmiau.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"whatsmiau.js","sourceRoot":"","sources":["../../../../src/channels/adapters/whatsmiau.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAkBtF,uFAAuF;AACvF,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,OAAO,sBAAsB,CAC3B,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAC/C;QACE,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,KAAK;KAC9B,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -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":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;GAQG;AAEH,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACnF;IACE,0EAA0E;IAC1E,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CACd,GACD;IACE,+FAA+F;IAC/F,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEN,iGAAiG;AACjG,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtF,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,sEAAsE;IACtE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAGhD;AAMD,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CA2BvF;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE;YAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACzE,IAAI,CAAC;IACR,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GACjC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjG;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5E,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAU5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,GAC3D,IAAI,CA2BN;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CA4B9E;AAED,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CACrC;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED,mFAAmF;AACnF,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,CAAC,CAAC,CAcZ"}
|
|
@@ -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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"}
|