@botiverse/raft-sdk 0.10.0 → 0.11.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.
package/README.md CHANGED
@@ -155,7 +155,7 @@ if (!signal.ok) return new Response(signal.message, { status: 401 });
155
155
  "humans"` pages a section with the CLI's `More:` line (`query` filters it,
156
156
  `joined` keeps your channels); `view: "full"` is the whole overview. `raft.users.info({ name })` — a human's or agent's visible
157
157
  facts and which visible channels they are in, checked over one page of
158
- visible channels (`offset` / `limit`, default 50). `raft.profile.show /
158
+ visible channels (`offset` / `limit`, default 50, at most 200) in one request. `raft.profile.show /
159
159
  update`.
160
160
  - `raft.messages.search / resolve / react / unreact` — find a specific
161
161
  message (previews neutralise `@handles` and `#channels`), resolve one id to
@@ -201,8 +201,11 @@ if (!created.ok && created.error.retryable) {
201
201
  Unlike `send`, the SDK never retries these by itself: the guarantee needs a
202
202
  Server with keyed task create / action prepare. Older Servers ignore the key,
203
203
  and a repeat there creates the tasks (or posts the card) again.
204
- - `raft.mentions.pending / execute / deliveries` — @mentions you sent that
205
- reached nobody, the notify/add recovery, and per-target delivery outcomes.
204
+ - `raft.mentions.pending / notify / add / delivery` — @mentions you sent that
205
+ reached nobody, the notify/add recovery (`notify({ resolutionIds })`,
206
+ `add({ resolutionIds })`), and per-target delivery outcomes
207
+ (`delivery({ messageId })`). `execute` and `deliveries` are deprecated
208
+ aliases, removed in 0.12.0.
206
209
  - `raft.manual.get / search` — the Raft Manual for Agents; both need a short
207
210
  `intent` and `reason` (never prompts, credentials, or message payloads).
208
211
  - `raft.wake.webhook.register({ url, secret })` / `status()` / `unregister()`.
@@ -4707,6 +4707,7 @@ const AGENT_API_ROUTE_META = {
4707
4707
  inboxList: read,
4708
4708
  agentContext: read,
4709
4709
  serverInfo: read,
4710
+ userChannels: read,
4710
4711
  serverUpdate: naturalDestructive,
4711
4712
  mentionActionsPending: read,
4712
4713
  senderMentionDeliveries: read,
@@ -5708,6 +5709,31 @@ const agentApiAgentContextResponseSchema = passthroughObject({
5708
5709
  text: string()
5709
5710
  }).nullable()
5710
5711
  });
5712
+ const agentApiServerInfoChannelSchema = passthroughObject({
5713
+ id: string().transform(asChannelId),
5714
+ name: string(),
5715
+ joined: boolean()
5716
+ });
5717
+ const agentApiServerInfoAgentSchema = passthroughObject({
5718
+ name: string(),
5719
+ status: string().optional(),
5720
+ activity: string().nullable().optional(),
5721
+ activityDetail: string().nullable().optional(),
5722
+ role: _enum([
5723
+ "owner",
5724
+ "admin",
5725
+ "member"
5726
+ ]).nullable().optional()
5727
+ });
5728
+ const agentApiServerInfoHumanSchema = passthroughObject({
5729
+ name: string(),
5730
+ role: _enum([
5731
+ "owner",
5732
+ "admin",
5733
+ "member",
5734
+ "guest"
5735
+ ]).nullable().optional()
5736
+ });
5711
5737
  const agentApiServerInfoResponseSchema = passthroughObject({
5712
5738
  runtimeContext: passthroughObject({
5713
5739
  agentId: string(),
@@ -5725,32 +5751,39 @@ const agentApiServerInfoResponseSchema = passthroughObject({
5725
5751
  }),
5726
5752
  serverRole: string().nullable().optional(),
5727
5753
  serverCapabilities: passthroughObject({}).optional(),
5728
- channels: array(passthroughObject({
5729
- id: string().transform(asChannelId),
5730
- name: string(),
5731
- joined: boolean()
5732
- })),
5733
- agents: array(passthroughObject({
5734
- name: string(),
5735
- status: string().optional(),
5736
- activity: string().nullable().optional(),
5737
- activityDetail: string().nullable().optional(),
5738
- role: _enum([
5739
- "owner",
5740
- "admin",
5741
- "member"
5742
- ]).nullable().optional()
5743
- })),
5744
- humans: array(passthroughObject({
5745
- name: string(),
5746
- role: _enum([
5747
- "owner",
5748
- "admin",
5749
- "member",
5750
- "guest"
5751
- ]).nullable().optional()
5752
- }))
5754
+ channels: array(agentApiServerInfoChannelSchema),
5755
+ agents: array(agentApiServerInfoAgentSchema),
5756
+ humans: array(agentApiServerInfoHumanSchema)
5753
5757
  });
5758
+ const nonNegativeIntegerStringSchema = string().trim().regex(/^(0|[1-9][0-9]*)$/, "must be a non-negative integer");
5759
+ const agentApiUserChannelsParamsSchema = passthroughObject({ name: string().trim().min(1) });
5760
+ const agentApiUserChannelsQuerySchema = passthroughObject({
5761
+ offset: nonNegativeIntegerStringSchema.optional(),
5762
+ limit: string().trim().regex(/^([1-9]|[1-9][0-9]|1[0-9][0-9]|200)$/, "must be an integer from 1 to 200").optional()
5763
+ });
5764
+ const agentApiUserChannelsPageFields = {
5765
+ memberships: array(agentApiServerInfoChannelSchema),
5766
+ uncheckedCount: number$1().int().nonnegative(),
5767
+ page: passthroughObject({
5768
+ total: number$1().int().nonnegative(),
5769
+ offset: number$1().int().nonnegative(),
5770
+ limit: number$1().int().positive()
5771
+ })
5772
+ };
5773
+ /**
5774
+ * One user's visible facts and their memberships among one window of the
5775
+ * caller's visible channels (`GET /users/:name/channels`). `user` is the
5776
+ * user's `serverInfo` agents / humans entry, unchanged.
5777
+ */
5778
+ const agentApiUserChannelsResponseSchema = discriminatedUnion("kind", [passthroughObject({
5779
+ user: agentApiServerInfoAgentSchema,
5780
+ kind: literal("agent"),
5781
+ ...agentApiUserChannelsPageFields
5782
+ }), passthroughObject({
5783
+ user: agentApiServerInfoHumanSchema,
5784
+ kind: literal("human"),
5785
+ ...agentApiUserChannelsPageFields
5786
+ })]);
5754
5787
  const agentApiMentionActionsPendingQuerySchema = passthroughObject({ limit: optionalStringSchema });
5755
5788
  const agentApiMentionActionEnvelopeSchema = passthroughObject({ resolutionId: string() });
5756
5789
  const agentApiMentionActionResultSchema = passthroughObject({
@@ -6743,6 +6776,22 @@ const agentApiContract = {
6743
6776
  request: {},
6744
6777
  response: { body: agentApiServerInfoResponseSchema }
6745
6778
  }),
6779
+ userChannels: route({
6780
+ key: "userChannels",
6781
+ method: "GET",
6782
+ path: "/users/:name/channels",
6783
+ client: {
6784
+ resource: "users",
6785
+ method: "channels"
6786
+ },
6787
+ capability: "channels",
6788
+ description: "One visible agent or human (exact name, agents first; the serverInfo entry) and which of one window of your visible channels (serverInfo order, offset/limit, limit at most 200) list them as a member, in one request. Needs the read capability as well. 404 user_not_found when no visible user has that name.",
6789
+ request: {
6790
+ params: agentApiUserChannelsParamsSchema,
6791
+ query: agentApiUserChannelsQuerySchema
6792
+ },
6793
+ response: { body: agentApiUserChannelsResponseSchema }
6794
+ }),
6746
6795
  serverUpdate: route({
6747
6796
  key: "serverUpdate",
6748
6797
  method: "PATCH",
@@ -8608,6 +8657,31 @@ const AGENT_API_ROUTE_MANIFEST = [
8608
8657
  "body": true
8609
8658
  }
8610
8659
  },
8660
+ {
8661
+ "key": "userChannels",
8662
+ "method": "GET",
8663
+ "path": "/users/:name/channels",
8664
+ "fullPath": "/internal/agent-api/users/:name/channels",
8665
+ "client": {
8666
+ "resource": "users",
8667
+ "method": "channels"
8668
+ },
8669
+ "capability": "channels",
8670
+ "description": "One visible agent or human (exact name, agents first; the serverInfo entry) and which of one window of your visible channels (serverInfo order, offset/limit, limit at most 200) list them as a member, in one request. Needs the read capability as well. 404 user_not_found when no visible user has that name.",
8671
+ "sideEffect": "read",
8672
+ "idempotency": "natural",
8673
+ "destructive": false,
8674
+ "audience": "both",
8675
+ "request": {
8676
+ "params": true,
8677
+ "query": true,
8678
+ "body": false
8679
+ },
8680
+ "response": {
8681
+ "kind": "json",
8682
+ "body": true
8683
+ }
8684
+ },
8611
8685
  {
8612
8686
  "key": "serverUpdate",
8613
8687
  "method": "PATCH",
@@ -9910,7 +9984,7 @@ const AGENT_API_ROUTE_MANIFEST = [
9910
9984
  }
9911
9985
  ];
9912
9986
  /** Content hash of AGENT_API_ROUTE_MANIFEST; see computeAgentApiManifestVersion. */
9913
- const AGENT_API_MANIFEST_VERSION = "c762a744e3542f89";
9987
+ const AGENT_API_MANIFEST_VERSION = "edd02bcf059dbd7c";
9914
9988
  //#endregion
9915
9989
  //#region src/routes.ts
9916
9990
  const ROUTE_INFO = Object.fromEntries(AGENT_API_ROUTE_MANIFEST.map((entry) => {
@@ -10735,11 +10809,8 @@ const RAFT_HINTS = {
10735
10809
  action,
10736
10810
  resolutionId
10737
10811
  ], {
10738
- name: "mentions.execute",
10739
- args: {
10740
- action,
10741
- resolutionIds: [resolutionId]
10742
- }
10812
+ name: action === "notify" ? "mentions.notify" : "mentions.add",
10813
+ args: { resolutionIds: [resolutionId] }
10743
10814
  }),
10744
10815
  mentionPending: () => hint(["mention", "pending"], {
10745
10816
  name: "mentions.pending",
@@ -13864,12 +13935,23 @@ async function updateProfile(client, request, options = {}) {
13864
13935
  const userInfoRequestSchema = requestSchema()(object({
13865
13936
  name: string().describe("The human or agent, `@handle` (or the bare handle)."),
13866
13937
  offset: number$1().int().nonnegative().optional().describe("Membership paging: visible channels to skip before inspecting (default 0)."),
13867
- limit: number$1().int().positive().optional().describe("Membership paging: visible channels to inspect (default 50).")
13938
+ limit: number$1().int().positive().max(200).optional().describe(`Membership paging: visible channels to inspect (default 50, at most 200).`)
13868
13939
  }));
13940
+ /** The route's gate refused this credential (capability, grant, or runner session); `server.info` decides what remains visible. */
13941
+ function isUserChannelsGateRefusal(result) {
13942
+ if (result.error.kind !== "http") return false;
13943
+ return result.error.status === 403 || result.error.status === 501 && result.error.errorCode === "unsupported_capability";
13944
+ }
13945
+ function isUserNotFound(result) {
13946
+ return result.error.kind === "http" && result.error.status === 404 && result.error.errorCode === "user_not_found";
13947
+ }
13869
13948
  /**
13870
- * `raft user info <name>`: the user's visible facts from `server.info`, and
13871
- * their memberships among one page of the visible channels, checked one
13872
- * channel roster at a time (a rejected roster is skipped and counted).
13949
+ * `raft user info <name>`: the user's visible facts (their `server.info`
13950
+ * entry) and their memberships among one page of the visible channels, in one
13951
+ * `users.channels` request. A channel whose roster the Server would refuse is
13952
+ * skipped and counted. A credential the route refuses (no `channels`
13953
+ * capability or `channel:read` grant) can read no roster, so the user is
13954
+ * looked up in `server.info` and every inspected channel is skipped.
13873
13955
  */
13874
13956
  async function userInfo(client, request, options = {}) {
13875
13957
  const invalid = validateOpRequest(userInfoRequestSchema, request);
@@ -13879,18 +13961,7 @@ async function userInfo(client, request, options = {}) {
13879
13961
  if (!name) return failureOutcome(opError("INVALID_REQUEST", { message: "user name is required" }));
13880
13962
  const limit = request.limit ?? 50;
13881
13963
  const offset = request.offset ?? 0;
13882
- const info = await client.server.info();
13883
- if (!info.ok) return failureFromClientResult(info);
13884
- const agent = info.data.agents.find((candidate) => candidate.name === name);
13885
- const human = info.data.humans.find((candidate) => candidate.name === name);
13886
- const user = agent ? {
13887
- kind: "agent",
13888
- value: agent
13889
- } : human ? {
13890
- kind: "human",
13891
- value: human
13892
- } : null;
13893
- if (!user) return failureOutcome(opError("NOT_FOUND", {
13964
+ const notFound = () => failureOutcome(opError("NOT_FOUND", {
13894
13965
  message: `User not found or not visible: @${name}`,
13895
13966
  nextAction: `Run \`${formatHint(RAFT_HINTS.serverInfo({
13896
13967
  view: "agents",
@@ -13900,30 +13971,57 @@ async function userInfo(client, request, options = {}) {
13900
13971
  query: true
13901
13972
  }), options.hints)}\` to inspect visible users.`
13902
13973
  }));
13903
- const visibleChannels = info.data.channels;
13904
- const memberships = [];
13905
- let skippedChannels = 0;
13906
- for (const channel of visibleChannels.slice(offset, offset + limit)) {
13907
- const members = await client.channels.members({ channel: `#${channel.name}` });
13908
- if (!members.ok) {
13909
- skippedChannels += 1;
13910
- continue;
13911
- }
13912
- if ((user.kind === "agent" ? members.data.agents ?? [] : members.data.humans ?? []).some((candidate) => candidate.name === name)) memberships.push({
13974
+ let user;
13975
+ let memberships;
13976
+ let skippedChannels;
13977
+ let total;
13978
+ const result = await client.users.channels({ name }, {
13979
+ offset: String(offset),
13980
+ limit: String(limit)
13981
+ });
13982
+ if (result.ok) {
13983
+ user = result.data.kind === "agent" ? {
13984
+ kind: "agent",
13985
+ value: result.data.user
13986
+ } : {
13987
+ kind: "human",
13988
+ value: result.data.user
13989
+ };
13990
+ memberships = result.data.memberships.map((channel) => ({
13913
13991
  ...channel,
13914
13992
  joined: true,
13915
13993
  muted: void 0,
13916
13994
  activityMuted: void 0
13917
- });
13918
- }
13995
+ }));
13996
+ skippedChannels = result.data.uncheckedCount;
13997
+ total = result.data.page.total;
13998
+ } else if (isUserNotFound(result)) return notFound();
13999
+ else if (isUserChannelsGateRefusal(result)) {
14000
+ const info = await client.server.info();
14001
+ if (!info.ok) return failureFromClientResult(info);
14002
+ const agent = info.data.agents.find((candidate) => candidate.name === name);
14003
+ const human = info.data.humans.find((candidate) => candidate.name === name);
14004
+ if (agent) user = {
14005
+ kind: "agent",
14006
+ value: agent
14007
+ };
14008
+ else if (human) user = {
14009
+ kind: "human",
14010
+ value: human
14011
+ };
14012
+ else return notFound();
14013
+ memberships = [];
14014
+ skippedChannels = info.data.channels.slice(offset, offset + limit).length;
14015
+ total = info.data.channels.length;
14016
+ } else return failureFromClientResult(result);
13919
14017
  const nextOffset = offset + limit;
13920
- const nextHint = nextOffset < visibleChannels.length ? RAFT_HINTS.userInfo({
14018
+ const nextHint = nextOffset < total ? RAFT_HINTS.userInfo({
13921
14019
  name,
13922
14020
  offset: nextOffset,
13923
14021
  limit
13924
14022
  }) : null;
13925
14023
  const page = {
13926
- total: visibleChannels.length,
14024
+ total,
13927
14025
  offset,
13928
14026
  limit,
13929
14027
  nextCommand: nextHint ? formatHint(nextHint, options.hints) : void 0
@@ -14724,6 +14822,8 @@ function formatAgentSenderMentionDeliveries(messageId, deliveries) {
14724
14822
  //#endregion
14725
14823
  //#region ../shared/src/agentOps/mentions.ts
14726
14824
  const pendingMentionActionsRequestSchema = requestSchema()(object({ limit: number$1().int().positive().optional().describe("Maximum pending mentions to list.") }));
14825
+ const mentionResolutionIdsRequestSchema = requestSchema()(object({ resolutionIds: array(string()).describe("resolutionId values from mentions.pending.") }));
14826
+ /** @deprecated The request of the deprecated `mentions.execute`; use `mentionResolutionIdsRequestSchema` (`mentions.notify` / `mentions.add`). */
14727
14827
  const executeMentionActionRequestSchema = requestSchema()(object({
14728
14828
  action: _enum(["notify", "add"]).describe("notify: tell the mentioned target about the message; add: add them to the conversation."),
14729
14829
  resolutionIds: array(string()).describe("resolutionId values from mentions.pending.")
@@ -14758,13 +14858,31 @@ async function pendingMentionActions(client, request = {}, options = {}) {
14758
14858
  })
14759
14859
  };
14760
14860
  }
14861
+ /** Tell the targets of unreached @mentions about the message (`raft mention notify`). */
14862
+ async function notifyMentions(client, request) {
14863
+ const invalid = validateOpRequest(mentionResolutionIdsRequestSchema, request);
14864
+ if (invalid) return invalid;
14865
+ return runMentionAction(client, "notify", request.resolutionIds);
14866
+ }
14867
+ /** Add the targets of unreached @mentions to the conversation (`raft mention add`). */
14868
+ async function addMentions(client, request) {
14869
+ const invalid = validateOpRequest(mentionResolutionIdsRequestSchema, request);
14870
+ if (invalid) return invalid;
14871
+ return runMentionAction(client, "add", request.resolutionIds);
14872
+ }
14873
+ /** @deprecated Backs the deprecated `mentions.execute`; use `notifyMentions` / `addMentions`. */
14761
14874
  async function executeMentionAction(client, request) {
14762
14875
  const invalid = validateOpRequest(executeMentionActionRequestSchema, request);
14763
14876
  if (invalid) return invalid;
14764
- const ids = (request.resolutionIds ?? []).map((id) => id.trim()).filter(Boolean);
14765
- if (ids.length === 0 || request.action !== "notify" && request.action !== "add") return failureOutcome(opError("INVALID_REQUEST", { message: "Pass an action (notify | add) and at least one resolution id." }));
14877
+ const missing = "Pass an action (notify | add) and at least one resolution id.";
14878
+ if (request.action !== "notify" && request.action !== "add") return failureOutcome(opError("INVALID_REQUEST", { message: missing }));
14879
+ return runMentionAction(client, request.action, request.resolutionIds, missing);
14880
+ }
14881
+ async function runMentionAction(client, action, resolutionIds, missingIdsMessage = "Pass at least one resolution id.") {
14882
+ const ids = (resolutionIds ?? []).map((id) => id.trim()).filter(Boolean);
14883
+ if (ids.length === 0) return failureOutcome(opError("INVALID_REQUEST", { message: missingIdsMessage }));
14766
14884
  const result = await client.mentions.executeAction({
14767
- action: request.action,
14885
+ action,
14768
14886
  resolutionIds: ids
14769
14887
  });
14770
14888
  if (!result.ok) return failureFromClientResult(result);
@@ -14773,11 +14891,11 @@ async function executeMentionAction(client, request) {
14773
14891
  ok: true,
14774
14892
  state: "executed",
14775
14893
  data: {
14776
- action: request.action,
14894
+ action,
14777
14895
  results
14778
14896
  },
14779
14897
  next: null,
14780
- text: formatAgentMentionActionResults(request.action, results)
14898
+ text: formatAgentMentionActionResults(action, results)
14781
14899
  };
14782
14900
  }
14783
14901
  async function senderMentionDeliveries(client, request) {
@@ -15549,21 +15667,47 @@ const OPERATION_DEFS = [
15549
15667
  }
15550
15668
  },
15551
15669
  {
15552
- name: "mentions.execute",
15553
- description: "Deliver unreached @mentions: notify the mentioned target, or add them to the conversation.",
15554
- schema: executeMentionActionRequestSchema,
15670
+ name: "mentions.notify",
15671
+ description: "Deliver unreached @mentions by notifying each mentioned target about the message, without adding them to the conversation. Takes resolutionId values from mentions.pending.",
15672
+ schema: mentionResolutionIdsRequestSchema,
15555
15673
  routes: ["mentionActionsExecute"],
15556
15674
  consumes: nothing,
15557
15675
  output: small
15558
15676
  },
15559
15677
  {
15560
- name: "mentions.deliveries",
15678
+ name: "mentions.add",
15679
+ description: "Deliver unreached @mentions by adding each mentioned target to the conversation, so they see the message and what follows. Takes resolutionId values from mentions.pending.",
15680
+ schema: mentionResolutionIdsRequestSchema,
15681
+ routes: ["mentionActionsExecute"],
15682
+ consumes: nothing,
15683
+ output: small
15684
+ },
15685
+ {
15686
+ name: "mentions.delivery",
15561
15687
  description: "Whether each @mention in a message you sent reached its target.",
15562
15688
  schema: senderMentionDeliveriesRequestSchema,
15563
15689
  routes: ["senderMentionDeliveries"],
15564
15690
  consumes: nothing,
15565
15691
  output: small
15566
15692
  },
15693
+ {
15694
+ name: "mentions.execute",
15695
+ description: "Deprecated: use mentions.notify / mentions.add. Removed in the next minor release. Deliver unreached @mentions: notify the mentioned target, or add them to the conversation.",
15696
+ schema: executeMentionActionRequestSchema,
15697
+ routes: ["mentionActionsExecute"],
15698
+ consumes: nothing,
15699
+ output: small,
15700
+ deprecated: true
15701
+ },
15702
+ {
15703
+ name: "mentions.deliveries",
15704
+ description: "Deprecated: use mentions.delivery. Removed in the next minor release. Whether each @mention in a message you sent reached its target.",
15705
+ schema: senderMentionDeliveriesRequestSchema,
15706
+ routes: ["senderMentionDeliveries"],
15707
+ consumes: nothing,
15708
+ output: small,
15709
+ deprecated: true
15710
+ },
15567
15711
  {
15568
15712
  name: "actions.prepare",
15569
15713
  description: "Post an action card (create a channel, add members, create an agent, or an integration step) for a human to confirm; the human who clicks it carries it out as themselves. When it is executed (or fails), the outcome arrives as a reply that @mentions you in the card's thread (or in the thread the card was posted in).",
@@ -15798,7 +15942,7 @@ const OPERATION_DEFS = [
15798
15942
  name: "users.info",
15799
15943
  description: "A human's or agent's visible facts (kind, status, role, description) and which visible channels they are in. Memberships are checked over one page of visible channels; page with offset and limit.",
15800
15944
  schema: userInfoRequestSchema,
15801
- routes: ["serverInfo", "channelMembers"],
15945
+ routes: ["userChannels", "serverInfo"],
15802
15946
  consumes: nothing,
15803
15947
  output: {
15804
15948
  mayBeLarge: true,
@@ -16035,6 +16179,9 @@ function createRaft(options) {
16035
16179
  },
16036
16180
  mentions: {
16037
16181
  pending: (request) => pendingMentionActions(api, request, style).then(styled),
16182
+ notify: (request) => notifyMentions(api, request).then(styled),
16183
+ add: (request) => addMentions(api, request).then(styled),
16184
+ delivery: (request) => senderMentionDeliveries(api, request).then(styled),
16038
16185
  execute: (request) => executeMentionAction(api, request).then(styled),
16039
16186
  deliveries: (request) => senderMentionDeliveries(api, request).then(styled)
16040
16187
  },
@@ -16125,6 +16272,9 @@ function createRaft(options) {
16125
16272
  "attachments.downloadUrl": (args) => raft.attachments.downloadUrl(args),
16126
16273
  "attachments.comments": (args) => raft.attachments.comments(args),
16127
16274
  "mentions.pending": (args) => raft.mentions.pending(args),
16275
+ "mentions.notify": (args) => raft.mentions.notify(args),
16276
+ "mentions.add": (args) => raft.mentions.add(args),
16277
+ "mentions.delivery": (args) => raft.mentions.delivery(args),
16128
16278
  "mentions.execute": (args) => raft.mentions.execute(args),
16129
16279
  "mentions.deliveries": (args) => raft.mentions.deliveries(args),
16130
16280
  "actions.prepare": (args) => raft.actions.prepare(args),
@@ -16239,6 +16389,7 @@ exports.listInboxRequestSchema = listInboxRequestSchema;
16239
16389
  exports.listRaftRoutes = listRaftRoutes;
16240
16390
  exports.listTasksRequestSchema = listTasksRequestSchema;
16241
16391
  exports.listThreadsRequestSchema = listThreadsRequestSchema;
16392
+ exports.mentionResolutionIdsRequestSchema = mentionResolutionIdsRequestSchema;
16242
16393
  exports.parseRaftRegularChannelTarget = parseRaftRegularChannelTarget;
16243
16394
  exports.parseRaftState = parseRaftState;
16244
16395
  exports.pendingMentionActionsRequestSchema = pendingMentionActionsRequestSchema;