@adonis-agora/agent 0.84.0 → 0.85.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.
@@ -7,6 +7,20 @@ export function jobId(...parts) {
7
7
  }
8
8
  /** The order key: one channel conversation. */
9
9
  const lockKey = (job) => `${job.channel}:${job.conversation}`;
10
+ /** The checkpoint name of a phase run in-process — `gather` takes one per look at the burst. */
11
+ const localStepName = (phase, input) => phase === 'gather' ? `gather:${input.round ?? 0}` : phase;
12
+ /** A timer, for a wait the durable engine cannot hold. */
13
+ const timerUntil = (at) => new Promise((resolve) => {
14
+ const timer = setTimeout(resolve, Math.max(0, at - Date.now()));
15
+ timer.unref?.();
16
+ });
17
+ /** Each phase called right here, a wait a timer: what the inline executor runs a job with. */
18
+ export function inlineIo(runner) {
19
+ return {
20
+ phase: (phase, input) => runner.phase(phase, input),
21
+ sleepUntil: timerUntil,
22
+ };
23
+ }
10
24
  /** In this process: a promise chain per conversation. Nothing survives a restart. */
11
25
  export function inlineExecutor(run) {
12
26
  const chains = new Map();
@@ -42,40 +56,148 @@ export function inlineExecutor(run) {
42
56
  export const CHANNEL_JOB_WORKFLOW = 'agora.channel.job';
43
57
  /** A question's timeout: runs on its own, so it never waits behind the conversation. */
44
58
  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';
59
+ /** The dispatched step a phase runs as: `agora.channel.prepare`, `agora.channel.read`, … */
60
+ export const channelPhaseStep = (phase) => `agora.channel.${phase}`;
61
+ const PHASES = ['gather', 'prepare', 'act', 'read', 'timeout'];
62
+ /** `@adonis-agora/durable`'s stamp on its control-flow signals (a global symbol). */
63
+ const CONTROL_FLOW = Symbol.for('@agora/durable:control-flow');
64
+ /** A control-flow signal a workflow body surfaces (a suspend for a sleep, say) — not a failure. */
65
+ export const isControlFlowSignal = (error) => {
66
+ if (error === null || typeof error !== 'object')
67
+ return false;
68
+ const name = error.name;
69
+ return (name === 'WorkflowSuspended' ||
70
+ name === 'ContinueAsNew' ||
71
+ name === 'WorkflowBlocked' ||
72
+ CONTROL_FLOW in error);
49
73
  };
50
74
  const registeredOn = new WeakSet();
75
+ const servedOn = new WeakSet();
76
+ /** The step server each engine's channel phases are dispatched to, once one is known. */
77
+ const stepServers = new WeakMap();
78
+ /** How often a dispatched phase tells the engine it is still running. */
79
+ const HEARTBEAT_MS = 10_000;
80
+ /** How long a phase waits for its channel to be registered in the process it landed on. */
81
+ const REGISTRATION_WAIT_MS = 60_000;
82
+ const notRegistered = (channel) => new Error(`[@adonis-agora/agent] channel "${channel}" is not registered in this process — create its handler (channels.handle) at boot in every process that runs durable work`);
83
+ /** The channel's runner, waiting a minute for a handler created lazily (on its first webhook). */
84
+ async function runnerIn(runnerFor, channel) {
85
+ const deadline = Date.now() + REGISTRATION_WAIT_MS;
86
+ for (;;) {
87
+ const runner = runnerFor(channel);
88
+ if (runner !== undefined)
89
+ return runner;
90
+ if (Date.now() >= deadline)
91
+ throw notRegistered(channel);
92
+ await new Promise((resolve) => setTimeout(resolve, 2000));
93
+ }
94
+ }
95
+ /**
96
+ * Serve every channel phase on `server`, once: the handler finds the channel named in the input in
97
+ * whatever process the step lands on, and runs that phase from its input alone.
98
+ */
99
+ function servePhases(server, runnerFor) {
100
+ if (servedOn.has(server))
101
+ return;
102
+ servedOn.add(server);
103
+ for (const phase of PHASES) {
104
+ server.handle(channelPhaseStep(phase), async (input, log) => {
105
+ const { channel, ...rest } = input;
106
+ const runner = await runnerIn(runnerFor, channel);
107
+ const beat = setInterval(() => log?.heartbeat?.(), HEARTBEAT_MS);
108
+ beat.unref?.();
109
+ try {
110
+ return (await runner.phase(phase, rest)) ?? null;
111
+ }
112
+ finally {
113
+ clearInterval(beat);
114
+ }
115
+ });
116
+ }
117
+ }
118
+ /** The durable wait: `sleepUntil`, else `sleep`, else (an engine without either) a timer. */
119
+ const durableSleep = (ctx) => (at) => {
120
+ if (typeof ctx.sleepUntil === 'function')
121
+ return ctx.sleepUntil(at);
122
+ if (typeof ctx.sleep === 'function')
123
+ return ctx.sleep(Math.max(1, at - Date.now()));
124
+ return timerUntil(at);
125
+ };
51
126
  /**
52
127
  * Register the channel workflows on `engine`, once. Their body finds the job's channel with
53
128
  * `runnerFor` — the handler `channels.handle()` registered under that name IN THIS PROCESS. A
54
129
  * process that resumes channel jobs must have created the same handlers.
130
+ *
131
+ * - version `1`: every phase a `ctx.localStep`, in the process running the workflow — kept so runs
132
+ * started before an upgrade finish on the path they were recorded on;
133
+ * - version `2` (new runs): each phase a DISPATCHED step (`agora.channel.<phase>`) when `server` (or
134
+ * `engine.handleStep`) serves them — any process that registered the channel runs it, any
135
+ * process continues the workflow — else a `localStep`; and a burst (`coalesce`) waited for with
136
+ * the engine's durable sleep. Which of the two a run uses is recorded in its first step.
55
137
  */
56
- export function registerChannelWorkflows(engine, runnerFor) {
138
+ export function registerChannelWorkflows(engine, runnerFor, server) {
139
+ const given = server ??
140
+ (typeof engine.handleStep === 'function'
141
+ ? { handle: engine.handleStep.bind(engine) }
142
+ : undefined);
143
+ if (given !== undefined && !stepServers.has(engine)) {
144
+ stepServers.set(engine, given);
145
+ servePhases(given, runnerFor);
146
+ }
57
147
  if (registeredOn.has(engine))
58
148
  return;
59
149
  registeredOn.add(engine);
60
- const body = async (ctx, input) => {
150
+ /** The channel is registered here — given a minute for a handler created lazily. */
151
+ const channelStep = (ctx, job, value) => ctx.localStep('channel', async () => {
152
+ if (runnerFor(job.channel) === undefined)
153
+ throw notRegistered(job.channel);
154
+ return value();
155
+ }, { retries: 30, backoff: 'fixed', backoffMs: 2000 });
156
+ const localIo = (ctx, runner) => ({
157
+ phase: (phase, input) => ctx.localStep(localStepName(phase, input), () => runner.phase(phase, input)),
158
+ sleepUntil: durableSleep(ctx),
159
+ });
160
+ const dispatchedIo = (ctx, runner, channel) => ({
161
+ phase: (phase, input) => {
162
+ const step = ctx.step;
163
+ if (typeof step !== 'function')
164
+ throw new Error('[@adonis-agora/agent] ctx.step is gone');
165
+ // A liveness window per phase: a step whose job was lost (a worker gone, a broker that
166
+ // dropped it) is dispatched once more after it, then fails the job — never `pending` forever.
167
+ return step.call(ctx, channelPhaseStep(phase), { channel, ...input }, { timeoutMs: runner.stepTimeoutMs(phase), retries: 2 });
168
+ },
169
+ sleepUntil: durableSleep(ctx),
170
+ });
171
+ const v1 = async (ctx, input) => {
61
172
  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)
173
+ await channelStep(ctx, job, () => true);
174
+ const runner = runnerFor(job.channel);
175
+ if (runner === undefined)
71
176
  return null;
72
- await run(job, (name, fn) => ctx.localStep(name, fn));
177
+ // As version 1 always ran: no burst to wait for (its jobs never recorded one), phases local.
178
+ await runner.run(job.kind === 'message' ? { ...job, coalesce: false } : job, localIo(ctx, runner));
73
179
  return null;
74
180
  };
75
- engine.register(CHANNEL_JOB_WORKFLOW, '1', body, {
181
+ const v2 = async (ctx, input) => {
182
+ const job = input;
183
+ const mode = await channelStep(ctx, job, () => ({
184
+ dispatched: stepServers.has(engine) &&
185
+ typeof ctx.step === 'function' &&
186
+ runnerFor(job.channel)?.dispatched !== false,
187
+ }));
188
+ const runner = runnerFor(job.channel);
189
+ if (runner === undefined)
190
+ return null;
191
+ await runner.run(job, mode.dispatched === true ? dispatchedIo(ctx, runner, job.channel) : localIo(ctx, runner));
192
+ return null;
193
+ };
194
+ const singleton = {
76
195
  singleton: { key: (input) => lockKey(input), limit: 1 },
77
- });
78
- engine.register(CHANNEL_TIMER_WORKFLOW, '1', body);
196
+ };
197
+ engine.register(CHANNEL_JOB_WORKFLOW, '1', v1, singleton);
198
+ engine.register(CHANNEL_JOB_WORKFLOW, '2', v2, singleton);
199
+ engine.register(CHANNEL_TIMER_WORKFLOW, '1', v1);
200
+ engine.register(CHANNEL_TIMER_WORKFLOW, '2', v2);
79
201
  }
80
202
  /** As durable runs on `engine` — see {@link registerChannelWorkflows}. */
81
203
  export function durableExecutor(engine) {
@@ -85,7 +207,9 @@ export function durableExecutor(engine) {
85
207
  await engine.start(workflow, job, id, at === undefined ? undefined : { startAt: at });
86
208
  }
87
209
  catch (error) {
88
- if (!isControlFlowSignal(error))
210
+ // A run a driving dispatcher suspended (or continued as new) while starting it: taken.
211
+ const name = error?.name;
212
+ if (name !== 'WorkflowSuspended' && name !== 'ContinueAsNew')
89
213
  throw error;
90
214
  }
91
215
  };
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/channels/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/channels/executor.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { type GenuiChannelBase, type GenuiChannels } from '../genui/channels.js'
7
7
  import type { ActionProposal } from '../spi/action-proposal-store.js';
8
8
  import type { AttachmentRef } from '../spi/attachment-staging.js';
9
9
  import type { Actor, PageContext } from '../types.js';
10
- import { type ChannelRetryOptions, type ChannelWorkflowEngine } from './executor.js';
10
+ import { type ChannelRetryOptions, type ChannelStepServer, type ChannelWorkflowEngine } from './executor.js';
11
11
  import { type ChannelStore } from './store.js';
12
12
  import { type ChannelComponent, type ChannelMediaRefusal, type ChannelTexts, type ChannelTextsOverrides } from './texts.js';
13
13
  import type { ChannelAdapter, ChannelMediaFile, ChannelRequest, InboundMedia, InboundMessage, OutboundMedia, OutboundMessage } from './types.js';
@@ -50,6 +50,11 @@ export interface ChannelHookContext {
50
50
  channel: string;
51
51
  conversation: string;
52
52
  message: InboundMessage;
53
+ /**
54
+ * Every message the turn is made of, in the order they arrived — set only when `coalesce` grouped
55
+ * several into one turn (`message` is then one of them: the one the hook is about, or the first).
56
+ */
57
+ coalesced?: readonly InboundMessage[];
53
58
  }
54
59
  /** One message about to go out — what {@link ChannelHandleOptions.canDeliver} checks. */
55
60
  export interface ChannelDelivery {
@@ -100,6 +105,13 @@ export interface ChannelTurnStarted {
100
105
  message: InboundMessage;
101
106
  /** The message waits in the thread's queue (its run starts later under `runId`). */
102
107
  queued: boolean;
108
+ /**
109
+ * Every message the turn is made of, in order — set only when `coalesce` grouped several (then
110
+ * `message` is the first of them).
111
+ */
112
+ coalesced?: readonly InboundMessage[];
113
+ /** From the webhook taking the (first) message to its turn starting, in ms. */
114
+ queueWaitMs?: number;
103
115
  }
104
116
  /**
105
117
  * How a message's (or a resumed run's) handling ended in this process —
@@ -133,6 +145,16 @@ export interface ChannelTurnEnded {
133
145
  outcome: ChannelTurnOutcome;
134
146
  /** What failed, for `outcome: 'failed'` from an error (after its retries). */
135
147
  error?: unknown;
148
+ /**
149
+ * Every message the turn was made of, in order — set only when `coalesce` grouped several (then
150
+ * `message` is the first of them). A message grouped into another's turn is told about here, on
151
+ * that turn: its own job ends without a call of its own.
152
+ */
153
+ coalesced?: readonly InboundMessage[];
154
+ /** The files the turn was sent with (after refusals and `transformInbound`), when it started one. */
155
+ attachments?: number;
156
+ /** From the webhook taking the (first) message to its turn starting, in ms — when a turn started. */
157
+ queueWaitMs?: number;
136
158
  }
137
159
  /** What {@link ChannelHandleOptions.prepareMedia} makes of a downloaded file. */
138
160
  export type ChannelPreparedMedia = undefined
@@ -153,6 +175,42 @@ export interface ChannelInbound {
153
175
  /** The text (with prepared media's text appended). */
154
176
  text: string;
155
177
  attachments: AttachmentRef[];
178
+ /**
179
+ * The messages a coalesced turn is made of, each with its own text (its caption, with its prepared
180
+ * media's text) and its own files — set only when `coalesce` grouped several. `text` is their
181
+ * texts joined in order and `attachments` their files in order; rebuild them from `parts` to,
182
+ * say, put each caption next to its file.
183
+ */
184
+ parts?: ChannelInboundPart[];
185
+ }
186
+ /** One message of a coalesced turn — see {@link ChannelInbound.parts}. */
187
+ export interface ChannelInboundPart {
188
+ message: InboundMessage;
189
+ text: string;
190
+ attachments: AttachmentRef[];
191
+ }
192
+ /**
193
+ * Group a burst of messages into one turn — see {@link ChannelHandleOptions.coalesce}.
194
+ */
195
+ export interface ChannelCoalesceOptions {
196
+ /**
197
+ * How long the conversation must stay quiet after its last message before the burst becomes a
198
+ * turn. Every message waits at least this long before it is answered.
199
+ */
200
+ quietMs: number;
201
+ /**
202
+ * The longest a burst is held, from its first message being taken, however long the person keeps
203
+ * writing. Default: 30 s (or `quietMs`, when longer).
204
+ */
205
+ maxWaitMs?: number;
206
+ /** The most messages one turn groups; the rest go to the next turn. Default 20. */
207
+ maxMessages?: number;
208
+ /**
209
+ * Which messages may be grouped — e.g. only files. One it returns `false` for is handled alone
210
+ * (and ends a burst). Default: every message but a control one (a button press, a text decision,
211
+ * an answer to a question), which is never grouped.
212
+ */
213
+ when?(message: InboundMessage): boolean;
156
214
  }
157
215
  export interface ChannelHandleOptions {
158
216
  /**
@@ -219,6 +277,26 @@ export interface ChannelHandleOptions {
219
277
  * in this process (a restart loses what is in flight). An engine → that one.
220
278
  */
221
279
  durable?: boolean | ChannelWorkflowEngine;
280
+ /**
281
+ * Where a durable job's phases run as DISPATCHED steps (`agora.channel.prepare`, `.act`, `.read`,
282
+ * …), so any process that registered the channel runs them and any process continues the job: a
283
+ * durable `Transport` (anything with `handle(name, fn)`). Default: the transport of the app's
284
+ * durable engine (from the container) when the channel runs on the agent's engine, or the engine's
285
+ * own `handleStep`. `false`, or none found → each phase runs in the process that runs the
286
+ * workflow (`ctx.localStep`).
287
+ */
288
+ durableSteps?: ChannelStepServer | false;
289
+ /**
290
+ * Group a burst of messages of one conversation into ONE turn — "oi" / "tudo bem?" / "queria saber
291
+ * X", or ten files sent in a row: a message waits until the conversation has been quiet for
292
+ * `quietMs` (at most `maxWaitMs`, at most `maxMessages` messages), then the burst is one turn —
293
+ * texts joined in order, every file attached (each message's files prepared and refused as
294
+ * alone). Control messages are never grouped: a button press, a text decision ("yes") or an
295
+ * answer to a question is handled on its own, in order, and ends a burst. Messages that arrive
296
+ * while a grouped turn runs go to the next turn. With a durable engine the wait is the engine's
297
+ * durable sleep (any process resumes it); inline, a timer. Off by default.
298
+ */
299
+ coalesce?: ChannelCoalesceOptions;
222
300
  /** How each phase of a message is retried when it fails. */
223
301
  retry?: ChannelRetryOptions;
224
302
  /** How long a message id (and what was delivered for it) is remembered. Default 24 h. */
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/channels/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/channels/handler.ts"],"names":[],"mappings":"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"}