salt-agent-sdk 0.19.0 → 0.21.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.
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+ // Lets a hosted identity ask the person it's chatting with for personal
3
+ // facts from Lattice -- their private, on-device knowledge graph -- and get
4
+ // an answer back over a real Salt message, the same way delegations.ts gets
5
+ // a reply from another agent. See ../../salt-lattice/docs/PROTOCOL.md for
6
+ // the wire contract this implements; nothing here decides WHETHER a fact is
7
+ // released (that is entirely the phone's own grant evaluation, offline and
8
+ // invisible to the server) -- this module only builds the outgoing
9
+ // markers, parses the incoming one, and matches a release back to the
10
+ // request it answers.
11
+ //
12
+ // Three message shapes ride inside encrypted plaintext, one line then a
13
+ // JSON body, exactly like [[SALT-DELEGATION]]:
14
+ // [[SALT-LATTICE-REQUEST id=<ulid>]] agent -> person, asking
15
+ // [[SALT-LATTICE-RELEASE id=<ulid> [standing=<grant id>]]] person's phone -> agent, answering
16
+ // [[SALT-LATTICE-PROPOSE id=<ulid>]] agent -> person's phone, suggesting a fact
17
+ //
18
+ // A release is matched back to its request by `request_id` IN ITS JSON BODY
19
+ // -- never by the release's own `id`, which only identifies that one
20
+ // disclosure for the log -- AND by the chat and sender it was actually
21
+ // registered against (see register()/classifyRelease()). A request's
22
+ // plaintext id is visible to every current member of whatever chat it was
23
+ // sent into (see actions.ts's request_personal_data), so a request id alone
24
+ // is not a secret; the chat+sender binding is what stops a bystander who
25
+ // merely SAW that id from forging a release and having it accepted as the
26
+ // real recipient's answer.
27
+ //
28
+ // Three outcomes a release-shaped message can produce, besides "not a
29
+ // release at all" (see ReleaseOutcome/classifyRelease):
30
+ // - matched: chat and sender agree with what register() bound to this
31
+ // request id. Resolves that wait's promise directly; nothing else to do.
32
+ // - refused: names a request id this process really is waiting on, but
33
+ // the chat or the sender don't match the binding -- a forged or
34
+ // misdirected release. The live wait keeps waiting; this message is
35
+ // left for the caller to fall through as ordinary (harmless) text.
36
+ // - unmatched (late or standing): a release-shaped message with no live
37
+ // wait to resolve -- either a genuinely late reply (the request already
38
+ // timed out; the phone only answers when the app is next open, which
39
+ // routinely outlasts one webhook round-trip) or an opted-in standing
40
+ // push, which never had a request to begin with. Unlike "matched",
41
+ // THIS module never authenticates who sent it -- lattice.ts has no
42
+ // REST client and no concept of a grant. Reaches onRelease() (raw,
43
+ // unverified) and, via webhook.ts's onLatticeRelease option, a
44
+ // consumer's own follow-up logic -- webhook.ts is what verifies the
45
+ // sender is human and holds a live grant (and, for standing, that it's
46
+ // the grant named) before that option ever fires, dropping and logging
47
+ // otherwise. Reaching onRelease/onLatticeRelease at all is not itself a
48
+ // trust signal.
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.MAX_FACT_VALUE_LENGTH = exports.MAX_FACTS_PER_RELEASE = exports.PROPOSE_MARKER_RE = exports.RELEASE_MARKER_RE = exports.REQUEST_MARKER_RE = exports.LATTICE_REQUEST_TIMEOUT_MS = void 0;
51
+ exports.buildRequest = buildRequest;
52
+ exports.buildProposal = buildProposal;
53
+ exports.parseRelease = parseRelease;
54
+ exports.hasPending = hasPending;
55
+ exports.register = register;
56
+ exports.cancel = cancel;
57
+ exports.onRelease = onRelease;
58
+ exports.classifyRelease = classifyRelease;
59
+ exports.resolveIfPending = resolveIfPending;
60
+ const ids_js_1 = require("./ids.js");
61
+ /**
62
+ * How long request_personal_data waits for a release before reporting
63
+ * "pending" instead of "released". This bounds how long ONE chat turn keeps
64
+ * whoever's waiting on the agent hanging -- it is NOT protecting against
65
+ * Salt's own webhook delivery timeout: webhook.ts acknowledges salt-api's
66
+ * POST before ever calling dispatch(), so nothing here is on the clock for
67
+ * that deadline. A "pending" result past this is the normal case, not an
68
+ * error -- see actions.ts's request_personal_data and onRelease/
69
+ * onLatticeRelease for what happens when the answer arrives afterward.
70
+ */
71
+ exports.LATTICE_REQUEST_TIMEOUT_MS = 15_000;
72
+ // Embed ULID_RE's character class without its ^...$ anchors, so the id
73
+ // group inside each marker regex stays in lock-step with what newUlid()
74
+ // actually produces.
75
+ const ULID_SRC = ids_js_1.ULID_RE.source.slice(1, -1);
76
+ exports.REQUEST_MARKER_RE = new RegExp(`^\\[\\[SALT-LATTICE-REQUEST id=(${ULID_SRC})\\]\\]\\n`, "i");
77
+ exports.RELEASE_MARKER_RE = new RegExp(`^\\[\\[SALT-LATTICE-RELEASE id=(${ULID_SRC})(?: standing=(\\S+))?\\]\\]\\n`, "i");
78
+ exports.PROPOSE_MARKER_RE = new RegExp(`^\\[\\[SALT-LATTICE-PROPOSE id=(${ULID_SRC})\\]\\]\\n`, "i");
79
+ /**
80
+ * Mints a fresh request id and its wire text. Send `text` as an ordinary
81
+ * encrypted chat message into the current chat (or the agent's private
82
+ * lane); the phone answers it -- in a group, inside a sidechain it opens
83
+ * with this agent, never in the room (PROTOCOL.md R6).
84
+ */
85
+ function buildRequest(input) {
86
+ const id = (0, ids_js_1.newUlid)();
87
+ const body = JSON.stringify({ purpose: input.purpose, asks: input.asks });
88
+ return { id, text: `[[SALT-LATTICE-REQUEST id=${id}]]\n${body}` };
89
+ }
90
+ /**
91
+ * Builds a [[SALT-LATTICE-PROPOSE]] message suggesting new facts. Always
92
+ * lands `pending` on the phone unless the agent's grant trusts its writes
93
+ * to that compartment (PROTOCOL.md R3) -- there is no reply to wait for,
94
+ * so unlike buildRequest this returns only the wire text.
95
+ */
96
+ function buildProposal(proposals) {
97
+ const id = (0, ids_js_1.newUlid)();
98
+ const body = JSON.stringify({ proposals });
99
+ return `[[SALT-LATTICE-PROPOSE id=${id}]]\n${body}`;
100
+ }
101
+ const FACT_AUTHORS = new Set(["you", "agent"]);
102
+ // PROTOCOL.md's exact fact shape. Validated field-by-field, not just "facts
103
+ // is an array": a forged or buggy release could otherwise hand a model
104
+ // whatever shape it likes under `facts[]`, and (pre-binding-fix) that used
105
+ // to reach a calling tool's "released" result unfiltered. One malformed
106
+ // entry rejects the WHOLE body (returns null), the same fail-closed
107
+ // convention as an unparseable body -- a partially-trusted release is worse
108
+ // than a dropped one.
109
+ function isPrimitive(value) {
110
+ return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean";
111
+ }
112
+ /** A single release's fact count is capped here -- not rejected outright,
113
+ * just bounded, since an over-long but otherwise well-formed release isn't
114
+ * a protocol violation the way a malformed entry is (see normalizeFact). */
115
+ exports.MAX_FACTS_PER_RELEASE = 200;
116
+ /** A fact's string value is capped to this many characters, after marker
117
+ * stripping (see sanitizeFactValue) -- bounds how much untrusted text from
118
+ * the other end of the wire can reach a model in one fact. */
119
+ exports.MAX_FACT_VALUE_LENGTH = 2_000;
120
+ // Every wire marker this SDK recognizes starts with this exact two-bracket
121
+ // prefix, anchored at the very start of a plaintext (see the *_MARKER_RE
122
+ // definitions above -- none of them carry the `m` flag). A fact's value is
123
+ // untrusted content from the other end of the wire; without this, a value
124
+ // containing literal "[[SALT-...]]" text could later start some OTHER
125
+ // outbound message built by echoing the fact back (e.g. "the person's
126
+ // favorite cuisine is <value>") and be mistaken for a genuine protocol
127
+ // marker by whatever receives it. Breaks the bracket pair rather than
128
+ // deleting the text outright, so the value stays legible.
129
+ const MARKER_TEXT_RE = /\[\[SALT-/g;
130
+ function sanitizeFactValue(value) {
131
+ if (typeof value !== "string")
132
+ return value;
133
+ const stripped = value.replace(MARKER_TEXT_RE, "[SALT-");
134
+ return stripped.length > exports.MAX_FACT_VALUE_LENGTH ? stripped.slice(0, exports.MAX_FACT_VALUE_LENGTH) : stripped;
135
+ }
136
+ function normalizeFact(raw) {
137
+ if (!raw || typeof raw !== "object")
138
+ return null;
139
+ const f = raw;
140
+ if (typeof f.path !== "string" || typeof f.type !== "string" || typeof f.field !== "string")
141
+ return null;
142
+ if (typeof f.author !== "string" || !FACT_AUTHORS.has(f.author))
143
+ return null;
144
+ if (typeof f.updated !== "number")
145
+ return null;
146
+ if (!isPrimitive(f.value))
147
+ return null;
148
+ return { path: f.path, type: f.type, field: f.field, value: sanitizeFactValue(f.value), author: f.author, updated: f.updated };
149
+ }
150
+ function normalizeReleaseBody(parsed) {
151
+ if (!parsed || typeof parsed !== "object")
152
+ return null;
153
+ const obj = parsed;
154
+ if (!Array.isArray(obj.facts))
155
+ return null;
156
+ const facts = [];
157
+ for (const raw of obj.facts) {
158
+ const fact = normalizeFact(raw);
159
+ if (!fact)
160
+ return null;
161
+ facts.push(fact);
162
+ }
163
+ const body = { facts: facts.slice(0, exports.MAX_FACTS_PER_RELEASE) };
164
+ if (typeof obj.request_id === "string")
165
+ body.request_id = obj.request_id;
166
+ if (typeof obj.grant_id === "string")
167
+ body.grant_id = obj.grant_id;
168
+ if (typeof obj.since_seq === "number")
169
+ body.since_seq = obj.since_seq;
170
+ return body;
171
+ }
172
+ /**
173
+ * Splits an incoming plaintext into its release marker's id, optional
174
+ * standing grant id, and parsed JSON body -- or null when `plaintext` isn't
175
+ * a (well-formed, in-protocol) lattice release at all. Returns null for an
176
+ * unparseable or malformed body, and also for a body that is neither an
177
+ * ordinary reply (`request_id`) nor a standing push (`standing=` on the
178
+ * marker line AND `grant_id` in the body) -- PROTOCOL.md says a release is
179
+ * "always a reply to a request id" unless it's a standing push, so anything
180
+ * else is out-of-protocol. Deliberate in all these cases: it's safer to let
181
+ * a corrupt or nonsensical release fall through as ordinary (harmless)
182
+ * message text than to silently act on it. A standing push's marker-line
183
+ * `standing=<grant id>` and its body's `grant_id` must name the SAME grant
184
+ * -- PROTOCOL.md's own example shows them matching, and disagreeing values
185
+ * are simply invalid rather than a case to guess between (whoever
186
+ * eventually checks `grant_id` against this agent's actual grants -- see
187
+ * webhook.ts's onLatticeRelease verification -- must be checking the one
188
+ * value the marker itself also claims).
189
+ */
190
+ function parseRelease(plaintext) {
191
+ const match = exports.RELEASE_MARKER_RE.exec(plaintext);
192
+ if (!match)
193
+ return null;
194
+ const [full, id, standing] = match;
195
+ let parsed;
196
+ try {
197
+ parsed = JSON.parse(plaintext.slice(full.length));
198
+ }
199
+ catch {
200
+ return null;
201
+ }
202
+ const body = normalizeReleaseBody(parsed);
203
+ if (!body)
204
+ return null;
205
+ if (standing) {
206
+ if (!body.grant_id || !(0, ids_js_1.sameId)(body.grant_id, standing))
207
+ return null;
208
+ return { id, standing, body };
209
+ }
210
+ if (!body.request_id)
211
+ return null;
212
+ return { id, body };
213
+ }
214
+ // Keyed by REQUEST id (the id a request_personal_data call minted and put
215
+ // in the marker it sent) -- NOT by chat, unlike delegations.ts's registry,
216
+ // which is chat-scoped because a chat can only be mid-delegation with one
217
+ // target at a time. A person can plausibly be asked several independent
218
+ // things in parallel (different tool calls, possibly from different hosted
219
+ // identities sharing this process), so the request id is what safely tells
220
+ // two pending waits apart.
221
+ //
222
+ // Lowercased on every store/lookup -- like delegations.ts's own `mapKey` and
223
+ // ids.ts's `sameId`, whose comments say why: an id can cross this SDK's
224
+ // boundary (webhook body, REST response, a phone's own JSON) without a
225
+ // casing guarantee, and RELEASE_MARKER_RE already matches either case
226
+ // (ULID_RE's `/i` flag), so the map lookup that follows it must too.
227
+ const pending = new Map();
228
+ const mapKey = (id) => id.toLowerCase();
229
+ function hasPending(id) {
230
+ return pending.has(mapKey(id));
231
+ }
232
+ /**
233
+ * Registers a wait for the release answering request `id`, bound to the
234
+ * exact chat and person it was sent to. Only a release arriving from THAT
235
+ * chat and THAT sender can resolve it (see classifyRelease) -- a request's
236
+ * plaintext id is visible to every current member of the chat it's sent
237
+ * into (see actions.ts), so the id alone must never be sufficient to claim
238
+ * a release.
239
+ *
240
+ * Resolves with that release's parsed body, or rejects once `timeoutMs`
241
+ * elapses -- rejecting is an expected outcome, not a protocol error:
242
+ * PROTOCOL.md says the phone only answers when the app is next open, which
243
+ * routinely outlasts one webhook round-trip. Throws synchronously (before
244
+ * any caller does anything else) if `id` already has a pending wait.
245
+ */
246
+ function register(id, binding) {
247
+ const key = mapKey(id);
248
+ if (pending.has(key)) {
249
+ throw new Error("Already waiting on a release for this request.");
250
+ }
251
+ return new Promise((resolve, reject) => {
252
+ const timer = setTimeout(() => {
253
+ pending.delete(key);
254
+ reject(new Error(`No release within ${Math.round(binding.timeoutMs / 1000)}s.`));
255
+ }, binding.timeoutMs);
256
+ pending.set(key, { chatId: binding.chatId, senderId: binding.senderId, resolve, reject, timer });
257
+ });
258
+ }
259
+ /**
260
+ * Clears a pending wait without settling its promise -- used when sending
261
+ * the request message itself fails right after register() ran, so the
262
+ * registry entry doesn't leak (the caller throws its own error instead).
263
+ */
264
+ function cancel(id) {
265
+ const key = mapKey(id);
266
+ const entry = pending.get(key);
267
+ if (!entry)
268
+ return;
269
+ clearTimeout(entry.timer);
270
+ pending.delete(key);
271
+ }
272
+ const releaseHandlers = new Set();
273
+ /**
274
+ * Subscribes to releases that arrive with nothing waiting on them: a late
275
+ * reply (the request already timed out) or a standing push (there was
276
+ * never a request to begin with). Returns an unsubscribe function.
277
+ *
278
+ * UNVERIFIED: lattice.ts has no REST client and no concept of a grant, so a
279
+ * handler here fires for ANY sender in ANY chat with no check that they
280
+ * actually hold a live grant to this agent. webhook.ts's `onLatticeRelease`
281
+ * option is the verified, recommended path for exactly this case (it
282
+ * fetches this agent's live grants and checks the sender is human and,
283
+ * for a standing push, that `grant_id` names one, before ever calling your
284
+ * handler) -- reach for this lower-level hook only if you're bypassing
285
+ * webhook.ts entirely, and do your own equivalent check.
286
+ *
287
+ * A handler may be async. Either a synchronous throw or a rejected promise
288
+ * is swallowed -- like every other fire-and-forget hook in this SDK, a bug
289
+ * in a consumer's handler must not take down webhook processing (an
290
+ * unhandled rejection crashes the process on modern Node defaults).
291
+ */
292
+ function onRelease(handler) {
293
+ releaseHandlers.add(handler);
294
+ return () => releaseHandlers.delete(handler);
295
+ }
296
+ function fireOnRelease(release) {
297
+ for (const handler of releaseHandlers) {
298
+ Promise.resolve()
299
+ .then(() => handler(release))
300
+ .catch(() => {
301
+ // see onRelease's doc comment
302
+ });
303
+ }
304
+ }
305
+ /**
306
+ * Call right after decrypting an inbound message, before deciding whether
307
+ * to run a fresh reply cycle -- the same spot webhook.ts calls
308
+ * delegations.resolveIfPending (and what webhook.ts itself calls, to also
309
+ * learn about an "unmatched" release for its onLatticeRelease option).
310
+ *
311
+ * - "not-a-release": `plaintext` isn't lattice wire protocol at all --
312
+ * including this identity's own outgoing requests/proposals, which never
313
+ * match RELEASE_MARKER_RE, and any genuinely unrelated message.
314
+ * - "matched": `chatId`/`senderId` agree with a live register() wait for
315
+ * this release's `request_id` -- that wait's promise is resolved directly;
316
+ * there is nothing further for a caller to do.
317
+ * - "refused": this release names a request id a wait IS pending for, but
318
+ * `chatId`/`senderId` don't match what register() bound it to -- e.g. a
319
+ * bystander who merely saw the plaintext request id (see
320
+ * RegisterBinding's doc comment) replaying it as a forged release. The
321
+ * live wait is untouched (still running, still resolvable by the real
322
+ * answer); this message is left for the caller to process as ordinary,
323
+ * harmless text -- it must NOT be treated as Lattice traffic.
324
+ * - "unmatched": a genuine late reply or standing push -- fired to
325
+ * onRelease() before this returns.
326
+ */
327
+ function classifyRelease(chatId, senderId, plaintext) {
328
+ const parsed = parseRelease(plaintext);
329
+ if (!parsed)
330
+ return { kind: "not-a-release" };
331
+ if (!parsed.standing) {
332
+ const key = mapKey(parsed.body.request_id); // parseRelease guarantees request_id is set for a non-standing release
333
+ const entry = pending.get(key);
334
+ if (entry) {
335
+ if ((0, ids_js_1.sameId)(entry.chatId, chatId) && (0, ids_js_1.sameId)(entry.senderId, senderId)) {
336
+ clearTimeout(entry.timer);
337
+ pending.delete(key);
338
+ entry.resolve(parsed.body);
339
+ return { kind: "matched" };
340
+ }
341
+ return { kind: "refused" };
342
+ }
343
+ }
344
+ const release = { id: parsed.id, standing: parsed.standing, chatId, senderId, body: parsed.body };
345
+ fireOnRelease(release);
346
+ return { kind: "unmatched", release };
347
+ }
348
+ /**
349
+ * Boolean convenience wrapper over classifyRelease, mirroring
350
+ * delegations.resolveIfPending(chatId, senderId, plaintext)'s shape for a
351
+ * simple caller that doesn't need an "unmatched" release's details (e.g. a
352
+ * custom integration built directly on lattice.ts, without webhook.ts).
353
+ * True for "matched" and "unmatched" (don't treat `plaintext` as a fresh
354
+ * prompt); false for "not-a-release" AND "refused" (a forged/misdirected
355
+ * release is left to fall through exactly like ordinary text, same as
356
+ * "not-a-release" -- see classifyRelease's doc comment).
357
+ *
358
+ * webhook.ts itself calls classifyRelease directly instead of this, since
359
+ * it also needs an "unmatched" release's details (chat/sender/body) to
360
+ * offer to its own onLatticeRelease option.
361
+ */
362
+ function resolveIfPending(chatId, senderId, plaintext) {
363
+ const outcome = classifyRelease(chatId, senderId, plaintext);
364
+ return outcome.kind === "matched" || outcome.kind === "unmatched";
365
+ }
366
+ //# sourceMappingURL=lattice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lattice.js","sourceRoot":"","sources":["../src/lattice.ts"],"names":[],"mappings":"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"}
package/dist/webhook.d.ts CHANGED
@@ -75,6 +75,10 @@ export interface ReplyOptions {
75
75
  * When given, they replace the automatic "@sender" addressing and the text is posted exactly as written, so write
76
76
  * the "@handle" yourself. */
77
77
  mentions?: SaltId[];
78
+ /** Every reply to an incoming message links that message (Salt shows it quoted above the reply) so a person who
79
+ * sent several messages can tell which one is being answered. `null` opts out for this reply; an id links a
80
+ * different message of the same chat. */
81
+ replyTo?: SaltId | null;
78
82
  }
79
83
  export interface MessageContext {
80
84
  identity: AgentIdentity;
@@ -137,7 +141,9 @@ export interface MessageContext {
137
141
  /** Encrypts `text` for every current chat member (+ this identity's own
138
142
  * copy), posts it, drains this reply's delegation trail onto it, and
139
143
  * emits an agent_reply_sent metric. Handles a typing-indicator heartbeat
140
- * for the duration of the call automatically. */
144
+ * for the duration of the call automatically. Links the message being
145
+ * handled (`messageId`) as the one answered, unless `{ replyTo: null }`
146
+ * (opt out) or `{ replyTo: otherId }` (override) is passed. */
141
147
  reply(text: string, opts?: ReplyOptions): Promise<void>;
142
148
  /** The id of the message being handled (the delivery's `message_id`). */
143
149
  messageId: SaltId;
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"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"}
package/dist/webhook.js CHANGED
@@ -608,8 +608,12 @@ function createDispatcher(options) {
608
608
  // HUMAN: an agent addressed by handle receives a webhook, so auto-addressing
609
609
  // another agent invites exactly the ping-pong the loop caps in this file
610
610
  // exist to stop.
611
- function makeReply(identity, chatId, addressee) {
611
+ function makeReply(identity, chatId, addressee,
612
+ // The message this reply answers by default; only onMessage supplies one.
613
+ // Chat-opened, hand-off, card and app contexts answer no message.
614
+ defaultReplyTo) {
612
615
  return async (text, opts) => {
616
+ const replyTo = opts && Object.prototype.hasOwnProperty.call(opts, "replyTo") ? opts.replyTo ?? undefined : defaultReplyTo;
613
617
  const startedAt = Date.now();
614
618
  let recipientKeys;
615
619
  let memberCount = 0;
@@ -658,7 +662,9 @@ function createDispatcher(options) {
658
662
  }
659
663
  const trail = delegations.drainTrail(identity.saltAppId, chatId);
660
664
  try {
661
- await client.postMessage(identity.apiKey, chatId, encryptedMessage, senderMessage, trail, mentions);
665
+ await client.postMessage(identity.apiKey, chatId, encryptedMessage, senderMessage, trail, mentions, {
666
+ replyTo,
667
+ });
662
668
  }
663
669
  catch (err) {
664
670
  logger.error(`[chat ${chatId}] posting reply failed: ${err.message}`);
@@ -1071,7 +1077,7 @@ function createDispatcher(options) {
1071
1077
  // handler returns successfully -- see the persistence step below.
1072
1078
  // Nothing about what actually gets sent changes.
1073
1079
  const repliesForSession = [];
1074
- const baseReply = makeReply(identity, chatId, senderRaw);
1080
+ const baseReply = makeReply(identity, chatId, senderRaw, message.message_id);
1075
1081
  const trackedReply = async (text, opts) => {
1076
1082
  repliesForSession.push(text);
1077
1083
  await baseReply(text, opts);