relaymessenger 0.1.15 → 0.1.16-staging.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.
@@ -1,4 +1,4 @@
1
- import { type A2uiComponent, type A2uiServerToClientMessage, type Relay, type RelayWebhookEvent } from "@relaymessenger/sdk";
1
+ import { type MessagePart, type Relay, type RelayWebhookEvent } from "@relaymessenger/sdk";
2
2
  import type { PiApprovals } from "@relaymessenger/pi";
3
3
  /**
4
4
  * Relays a coding agent's own permission prompts to the people who own the
@@ -22,8 +22,12 @@ import type { PiApprovals } from "@relaymessenger/pi";
22
22
  * names the owners itself: `GET /v1/me` returns `owner_people` for the calling
23
23
  * Agent Token (Relay-Server server/src/me.ts, `app.get("/me")`).
24
24
  *
25
- * A tap from anyone else is not registered: nothing is sent into the chat,
26
- * and the card stays open for an owner to answer.
25
+ * The card is a `rich_card` whose reply suggestions are the harness's
26
+ * choices; a tap comes back as the owner's own message, a `suggestion_response`
27
+ * carrying the choice's id and replying to the card. A Pi select with more
28
+ * choices than a card holds is a single-choice `selection` instead, answered
29
+ * by a `selection_response`. A tap from anyone else is not registered, and
30
+ * the card stays open for an owner to answer.
27
31
  */
28
32
  /**
29
33
  * How a person may answer, in the words every harness maps to. `choice` is an
@@ -44,20 +48,21 @@ export interface ApprovalRequest {
44
48
  harness: string;
45
49
  /** The tool it wants to use, e.g. "Bash". */
46
50
  tool: string;
47
- /** The card's first line, one sentence; `<harness> asks to use <tool>.` when absent. */
51
+ /** The card's title, one sentence; `<harness> asks to use <tool>.` when absent. */
48
52
  title?: string;
49
- /** The command or file, drawn as code in one line. */
53
+ /** The command or file the harness wants to use. */
50
54
  summary: string;
51
55
  /**
52
56
  * A plain line under the command: Bash's own description of it, which
53
57
  * Claude Code's terminal prompt shows under the command too.
54
58
  */
55
59
  note?: string;
56
- /** The full input as a person reads it, shown under "See more". */
60
+ /** The full input as a person reads it. */
57
61
  detail: string;
58
62
  /**
59
- * Whether `detail` holds anything the card does not show: an input field
60
- * beyond the summarized value and the note. See `seeMore`.
63
+ * Whether `detail` holds anything `summary` and `note` do not: an input
64
+ * field beyond the summarized value and the note. The card then shows
65
+ * `detail` in place of them.
61
66
  */
62
67
  extra: boolean;
63
68
  /** The harness's own choices, allow first. */
@@ -84,61 +89,81 @@ export interface ApprovalOutcome {
84
89
  * inkbox-codex-plugin-config.py.txt:132).
85
90
  */
86
91
  export declare const APPROVAL_TIMEOUT_MS = 600000;
87
- /** The Button event every answer on the card carries. */
88
- export declare const ANSWER_EVENT = "approval_answer";
89
- /** The Modal trigger's event: it opens "See more" on the phone and asks nothing. */
90
- export declare const SEE_MORE_EVENT = "approval_see_more";
91
92
  /** The one line the terminal shows when nobody can be asked. */
92
93
  export declare const noOwnerLine: (request: Pick<ApprovalRequest, "harness" | "tool">) => string;
93
- /** What the card says once a prompt has ended. */
94
+ /** What the reply to the card says once a prompt has ended. */
94
95
  export declare const outcomeLine: (outcome: ApprovalOutcome) => string;
95
96
  /**
96
- * A command or path as a Markdown code span, which A2UI's Text renders
97
- * ("simple Markdown formatting is supported", basic catalog `Text.text`), so
98
- * a `*` or `_` in a command is shown, not read as emphasis. The fence is one
99
- * backtick longer than the longest run inside (CommonMark, "Code spans").
97
+ * The contract's limits (Relay-Server contracts/developer/openapi.yaml), the
98
+ * card's from the SDK; a `SelectionPart` subtitle is 512 characters and an
99
+ * id-bearing `SelectionOption` has a 24-character label and a 200-character id.
100
100
  */
101
- export declare const codeSpan: (text: string) => string;
101
+ export declare const CARD_LIMITS: {
102
+ readonly title: 200;
103
+ readonly description: 2000;
104
+ readonly suggestions: 4;
105
+ readonly label: 25;
106
+ readonly replyId: 256;
107
+ readonly selectionTitle: 60;
108
+ readonly selectionSubtitle: 512;
109
+ readonly selectionOptions: 25;
110
+ readonly selectionLabel: 24;
111
+ readonly selectionId: 200;
112
+ };
113
+ /** The card's title: the harness's sentence, or `<harness> asks to use <tool>.` */
114
+ export declare const cardTitle: (request: ApprovalRequest) => string;
102
115
  /**
103
- * Plain text as Markdown that shows every character: each inline marker is
104
- * backslash-escaped (CommonMark, "Backslash escapes"), so a `*` or `_` in a
105
- * diff or a description is not read as emphasis. The Relay app parses Text as
106
- * inline Markdown with whitespace kept (Relay-iOS RelayA2UICatalog.swift,
107
- * `interpretedSyntax: .inlineOnlyPreservingWhitespace`), where an escaped
108
- * `**bold**` stays as typed.
116
+ * The card's description, plain text as the app draws it (Relay-iOS
117
+ * RelayRichCardRow.swift, `Text(description)`): the command and its note, or,
118
+ * when the input holds more than them, the whole input as a person reads it.
119
+ * Cut at the contract's 2,000 characters with a closing "…".
109
120
  */
110
- export declare const literal: (text: string) => string;
121
+ export declare const cardDescription: (request: ApprovalRequest) => string | undefined;
111
122
  /**
112
- * Whether the card offers "See more": only when the sheet shows something the
113
- * card does not, because the card cut the command or its note, or because the
114
- * input holds more than them (approved option B of the internet-of-agents
115
- * mock mocks/approval-see-more.html, 2026-09-26).
123
+ * The prefix of every reply id on an approval card. Relay stores a reply
124
+ * suggestion's `id` as sent and returns it in the person's
125
+ * `suggestion_response` (or `selection_response`), so a tap on any approval
126
+ * card, even one a bridge process no longer holds (sent before a restart),
127
+ * is known by its id alone and never becomes a person's turn.
116
128
  */
117
- export declare const seeMore: (request: Pick<ApprovalRequest, "summary" | "note" | "extra">) => boolean;
118
- /** The card's components, before any answer. */
119
- export declare const approvalComponents: (request: ApprovalRequest) => A2uiComponent[];
120
- /** The card after the prompt ended: the buttons give way to what happened. */
121
- export declare const settledComponents: (request: ApprovalRequest, outcome: ApprovalOutcome) => A2uiComponent[];
122
- /** The A2UI messages of a new card: `createSurface` then `updateComponents` (Relay-Docs interactions/cards.mdx, "Send a card"). */
123
- export declare const approvalMessages: (surfaceId: string, request: ApprovalRequest) => A2uiServerToClientMessage[];
129
+ export declare const APPROVAL_REPLY_PREFIX = "relay-approval:";
130
+ /** Whether a reply id is one an approval card gave out. */
131
+ export declare const isApprovalReplyId: (id: string) => boolean;
132
+ /**
133
+ * The message part that asks: a `rich_card` with one reply suggestion per
134
+ * choice, or, past the card's 4 suggestions, a single-choice `selection` of up
135
+ * to 25 options.
136
+ */
137
+ export declare const approvalPart: (request: ApprovalRequest) => MessagePart;
138
+ /** The choice a reply id names, as `approvalPart` gave it out. */
139
+ export declare const choiceFor: (request: ApprovalRequest, id: string) => ApprovalChoice | undefined;
140
+ /**
141
+ * A tap on a card, as `message.received` carries it: the card message it
142
+ * replies to, and the id of the reply the person chose. A card reply is plain
143
+ * text then `suggestion_response`; a picker answer, plain text then
144
+ * `selection_response` (Relay-Server contracts/developer/openapi.yaml,
145
+ * `SuggestionResponsePart` and `SelectionResponsePart`).
146
+ */
147
+ export declare const readAnswer: (event: RelayWebhookEvent) => {
148
+ messageId: string;
149
+ id: string;
150
+ } | undefined;
124
151
  /** The Relay calls this needs: who owns the agent, and the chat with each owner. */
125
152
  export type ApprovalClient = Pick<Relay, "chats" | "me">;
126
153
  export interface OwnerApprovalsOptions {
127
154
  client: ApprovalClient;
128
155
  say(line: string): void;
129
- /** A new surface id; random unless a test pins it. */
130
- surfaceId?: () => string;
131
156
  }
132
157
  /**
133
158
  * One per bridge process. `ask` sends the card and waits; `take` reads every
134
- * event first and keeps the taps on its own cards, so they never start a turn.
159
+ * event first and keeps the answers to its own cards, so they never start a turn.
135
160
  */
136
161
  export declare class OwnerApprovals {
137
162
  #private;
138
163
  constructor(options: OwnerApprovalsOptions);
139
164
  ask(request: ApprovalRequest): Promise<ApprovalOutcome>;
140
165
  /**
141
- * Whether this event is a tap on one of this process's approval cards.
166
+ * Whether this event is an answer to one of this process's approval cards.
142
167
  * Such an event is handled here and must not start a turn.
143
168
  */
144
169
  take(event: RelayWebhookEvent): Promise<boolean>;
@@ -156,7 +181,7 @@ export declare const beyond: (input: Record<string, unknown>, shown: readonly st
156
181
  */
157
182
  export declare const inputCard: (input: Record<string, unknown>) => Pick<ApprovalRequest, "summary" | "note" | "detail" | "extra">;
158
183
  /**
159
- * The whole tool input as a person reads it, for "See more": an Edit is its
184
+ * The whole tool input as a person reads it, for the card's description: an Edit is its
160
185
  * file and a diff (a MultiEdit, a diff per edit), a Write its file and the
161
186
  * content, anything else one `name: value` line per field.
162
187
  */
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAE9B,KAAK,KAAK,EACV,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElF,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;CACpE;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C,yDAAyD;AACzD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,oFAAoF;AACpF,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAElD,gEAAgE;AAChE,eAAO,MAAM,WAAW,YAAa,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,CAAC,KAAG,MAC8H,CAAC;AAEhN,kDAAkD;AAClD,eAAO,MAAM,WAAW,YAAa,eAAe,KAAG,MAWtD,CAAC;AAQF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,KAAG,MAKvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,MAAkD,CAAC;AAU1F;;;;;GAKG;AACH,eAAO,MAAM,OAAO,YAAa,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,KAAG,OACK,CAAC;AAa7F,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,YAAa,eAAe,KAAG,aAAa,EA4B1E,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,YAAa,eAAe,WAAW,eAAe,KAAG,aAAa,EAGnG,CAAC;AAEF,mIAAmI;AACnI,eAAO,MAAM,gBAAgB,cAAe,MAAM,WAAW,eAAe,KAAG,yBAAyB,EAGvG,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;AAUzD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,cAAc;;IAQzB,YAAY,OAAO,EAAE,qBAAqB,EAIzC;IAEK,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAyD5D;IAED;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBrD;CACF;AAED,yGAAyG;AACzG,eAAO,MAAM,aAAa,YAAa,eAAe,KAAG,MAQxD,CAAC;AASF,wDAAwD;AACxD,eAAO,MAAM,YAAY,UAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAM7D,CAAC;AAWF,6FAA6F;AAC7F,eAAO,MAAM,MAAM,UAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,SAAS,MAAM,EAAE,KAAG,OACC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CASvH,CAAC;AAgCF;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAAW,OAAO,KAAG,MAuB5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,cAAe,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC,KAAG,WAoB5E,CAAC"}
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
package/dist/approvals.js CHANGED
@@ -1,5 +1,5 @@
1
- import { randomUUID } from "node:crypto";
2
- import { A2UI_VERSION, RELAY_A2UI_CATALOG_ID, a2uiPart, readA2uiAction, updateA2uiSurface, } from "@relaymessenger/sdk";
1
+ import { createHash } from "node:crypto";
2
+ import { RICH_CARD_DESCRIPTION_MAX_LENGTH, RICH_CARD_MAX_SUGGESTIONS, RICH_CARD_TITLE_MAX_LENGTH, SELECTION_MAX_OPTIONS, SELECTION_TITLE_MAX_LENGTH, SUGGESTION_ID_MAX_LENGTH, SUGGESTION_LABEL_MAX_LENGTH, selectionReply, suggestionReply, } from "@relaymessenger/sdk";
3
3
  /**
4
4
  * Inkbox waits 600 seconds for a person's answer and then treats the request
5
5
  * as not approved (`permission_timeout_s: float = 600.0`,
@@ -7,13 +7,9 @@ import { A2UI_VERSION, RELAY_A2UI_CATALOG_ID, a2uiPart, readA2uiAction, updateA2
7
7
  * inkbox-codex-plugin-config.py.txt:132).
8
8
  */
9
9
  export const APPROVAL_TIMEOUT_MS = 600_000;
10
- /** The Button event every answer on the card carries. */
11
- export const ANSWER_EVENT = "approval_answer";
12
- /** The Modal trigger's event: it opens "See more" on the phone and asks nothing. */
13
- export const SEE_MORE_EVENT = "approval_see_more";
14
10
  /** The one line the terminal shows when nobody can be asked. */
15
11
  export const noOwnerLine = (request) => `${request.harness} was not allowed to use ${request.tool}: nobody who owns this agent has a Relay app account to approve it. Link a phone from Settings in the Relay console, or with \`relay phone link\`.`;
16
- /** What the card says once a prompt has ended. */
12
+ /** What the reply to the card says once a prompt has ended. */
17
13
  export const outcomeLine = (outcome) => {
18
14
  const who = outcome.by ? `@${outcome.by}` : "Someone";
19
15
  switch (outcome.choice?.decision) {
@@ -27,109 +23,147 @@ export const outcomeLine = (outcome) => {
27
23
  return "Timed out, not approved.";
28
24
  return "Not approved.";
29
25
  };
30
- const MAX_SUMMARY = 300;
31
- const MAX_DETAIL = 4_000;
26
+ /**
27
+ * The contract's limits (Relay-Server contracts/developer/openapi.yaml), the
28
+ * card's from the SDK; a `SelectionPart` subtitle is 512 characters and an
29
+ * id-bearing `SelectionOption` has a 24-character label and a 200-character id.
30
+ */
31
+ export const CARD_LIMITS = {
32
+ title: RICH_CARD_TITLE_MAX_LENGTH,
33
+ description: RICH_CARD_DESCRIPTION_MAX_LENGTH,
34
+ suggestions: RICH_CARD_MAX_SUGGESTIONS,
35
+ label: SUGGESTION_LABEL_MAX_LENGTH,
36
+ replyId: SUGGESTION_ID_MAX_LENGTH,
37
+ selectionTitle: SELECTION_TITLE_MAX_LENGTH,
38
+ selectionSubtitle: 512,
39
+ selectionOptions: SELECTION_MAX_OPTIONS,
40
+ selectionLabel: 24,
41
+ selectionId: 200,
42
+ };
32
43
  const clip = (text, max) => text.length <= max ? text : `${text.slice(0, max - 1)}…`;
44
+ const oneLine = (text) => text.replace(/\s+/gu, " ").trim();
45
+ /** The card's title: the harness's sentence, or `<harness> asks to use <tool>.` */
46
+ export const cardTitle = (request) => oneLine(request.title ?? "") || `${request.harness} asks to use ${request.tool}.`;
33
47
  /**
34
- * A command or path as a Markdown code span, which A2UI's Text renders
35
- * ("simple Markdown formatting is supported", basic catalog `Text.text`), so
36
- * a `*` or `_` in a command is shown, not read as emphasis. The fence is one
37
- * backtick longer than the longest run inside (CommonMark, "Code spans").
48
+ * The card's description, plain text as the app draws it (Relay-iOS
49
+ * RelayRichCardRow.swift, `Text(description)`): the command and its note, or,
50
+ * when the input holds more than them, the whole input as a person reads it.
51
+ * Cut at the contract's 2,000 characters with a closing "…".
38
52
  */
39
- export const codeSpan = (text) => {
40
- const longest = Math.max(0, ...[...text.matchAll(/`+/gu)].map((run) => run[0].length));
41
- const fence = "`".repeat(longest + 1);
42
- const pad = text.startsWith("`") || text.endsWith("`") ? " " : "";
43
- return `${fence}${pad}${text}${pad}${fence}`;
53
+ export const cardDescription = (request) => {
54
+ const text = request.extra
55
+ ? request.detail.trim()
56
+ : [request.summary.trim(), request.note?.trim() ?? ""].filter(Boolean).join("\n\n");
57
+ return text ? clip(text, CARD_LIMITS.description) : undefined;
44
58
  };
45
59
  /**
46
- * Plain text as Markdown that shows every character: each inline marker is
47
- * backslash-escaped (CommonMark, "Backslash escapes"), so a `*` or `_` in a
48
- * diff or a description is not read as emphasis. The Relay app parses Text as
49
- * inline Markdown with whitespace kept (Relay-iOS RelayA2UICatalog.swift,
50
- * `interpretedSyntax: .inlineOnlyPreservingWhitespace`), where an escaped
51
- * `**bold**` stays as typed.
60
+ * The prefix of every reply id on an approval card. Relay stores a reply
61
+ * suggestion's `id` as sent and returns it in the person's
62
+ * `suggestion_response` (or `selection_response`), so a tap on any approval
63
+ * card, even one a bridge process no longer holds (sent before a restart),
64
+ * is known by its id alone and never becomes a person's turn.
52
65
  */
53
- export const literal = (text) => text.replace(/[\\`*_[\]<>~&]/gu, "\\$&");
54
- const oneLine = (text) => text.replace(/\s+/gu, " ").trim();
55
- /** A line as the card draws it: whitespace collapsed to one line, then clipped. */
56
- const cardLine = (text) => clip(oneLine(text), MAX_SUMMARY);
57
- /** Whether the card had to cut a line: a newline or run of spaces collapsed, or the end clipped. */
58
- const cut = (text) => cardLine(text) !== text.trim();
66
+ export const APPROVAL_REPLY_PREFIX = "relay-approval:";
67
+ /** Whether a reply id is one an approval card gave out. */
68
+ export const isApprovalReplyId = (id) => id.startsWith(APPROVAL_REPLY_PREFIX);
59
69
  /**
60
- * Whether the card offers "See more": only when the sheet shows something the
61
- * card does not, because the card cut the command or its note, or because the
62
- * input holds more than them (approved option B of the internet-of-agents
63
- * mock mocks/approval-see-more.html, 2026-09-26).
70
+ * The id a choice's reply carries: the prefix and the harness's own id, or,
71
+ * when that is longer than the contract allows, the prefix and the SHA-256 of
72
+ * the harness's id, which no two different ids share.
64
73
  */
65
- export const seeMore = (request) => request.extra || cut(request.summary) || (request.note !== undefined && cut(request.note));
66
- /** The card's first lines: the sentence, the command or file, and its note. */
67
- const head = (request) => [
68
- "title",
69
- ...(oneLine(request.summary) ? ["summary"] : []),
70
- ...(request.note !== undefined && oneLine(request.note) ? ["note"] : []),
71
- ];
72
- /** The card's body: its first lines, "See more" when the sheet adds something, then `last`. */
73
- const bodyChildren = (request, last) => [...head(request), ...(seeMore(request) ? ["more"] : []), last];
74
- /** The card's components, before any answer. */
75
- export const approvalComponents = (request) => {
76
- const buttons = request.choices.map((choice, index) => ({ choice, id: `choice_${index}` }));
77
- return [
78
- { id: "root", component: "Card", child: "body" },
79
- { id: "body", component: "Column", children: bodyChildren(request, "answers") },
80
- { id: "title", component: "Text", text: request.title ?? `${request.harness} asks to use ${request.tool}.`, variant: "h4" },
81
- ...(oneLine(request.summary) ? [{ id: "summary", component: "Text", text: codeSpan(cardLine(request.summary)) }] : []),
82
- ...(request.note !== undefined && oneLine(request.note) ? [{ id: "note", component: "Text", text: literal(cardLine(request.note)) }] : []),
83
- ...(seeMore(request) ? [
84
- { id: "more", component: "Modal", trigger: "more_button", content: "more_sheet" },
85
- { id: "more_button", component: "Button", child: "more_label", variant: "borderless", action: { event: { name: SEE_MORE_EVENT } } },
86
- { id: "more_label", component: "Text", text: "See more" },
87
- { id: "more_sheet", component: "Column", children: ["more_title", "more_text"] },
88
- { id: "more_title", component: "Text", text: request.tool, variant: "h4" },
89
- { id: "more_text", component: "Text", text: literal(clip(request.detail, MAX_DETAIL)) },
90
- ] : []),
91
- { id: "answers", component: "Column", children: buttons.map((button) => button.id) },
92
- ...buttons.flatMap(({ choice, id }, index) => [
93
- {
94
- id,
95
- component: "Button",
96
- child: `${id}_label`,
97
- ...(index === 0 ? { variant: "primary" } : {}),
98
- action: { event: { name: ANSWER_EVENT, context: { choice: choice.id } } },
99
- },
100
- { id: `${id}_label`, component: "Text", text: choice.label },
101
- ]),
102
- ];
74
+ const replyId = (choice, max) => {
75
+ const plain = `${APPROVAL_REPLY_PREFIX}${choice.id}`;
76
+ return plain.length <= max ? plain : `${APPROVAL_REPLY_PREFIX}sha256:${createHash("sha256").update(choice.id).digest("hex")}`;
77
+ };
78
+ /** Whether the choices fit on one card's suggestions. */
79
+ const onCard = (request) => request.choices.length <= CARD_LIMITS.suggestions;
80
+ /**
81
+ * The message part that asks: a `rich_card` with one reply suggestion per
82
+ * choice, or, past the card's 4 suggestions, a single-choice `selection` of up
83
+ * to 25 options.
84
+ */
85
+ export const approvalPart = (request) => {
86
+ if (request.choices.length > CARD_LIMITS.selectionOptions) {
87
+ throw new Error(`${request.harness} offered ${request.choices.length} choices; a Relay approval list holds at most ${CARD_LIMITS.selectionOptions}, so it was not sent.`);
88
+ }
89
+ const ids = request.choices.map((choice) => replyId(choice, onCard(request) ? CARD_LIMITS.replyId : CARD_LIMITS.selectionId));
90
+ if (new Set(ids).size !== ids.length) {
91
+ throw new Error(`${request.harness} offered two choices with the same id; the owner's answer could not say which, so it was not sent.`);
92
+ }
93
+ const description = cardDescription(request);
94
+ if (onCard(request)) {
95
+ return {
96
+ type: "rich_card",
97
+ title: clip(cardTitle(request), CARD_LIMITS.title),
98
+ ...(description !== undefined ? { description } : {}),
99
+ suggestions: request.choices.map((choice, index) => ({
100
+ type: "reply",
101
+ label: clip(oneLine(choice.label) || choice.id, CARD_LIMITS.label),
102
+ id: ids[index],
103
+ })),
104
+ };
105
+ }
106
+ return {
107
+ type: "selection",
108
+ title: clip(cardTitle(request), CARD_LIMITS.selectionTitle),
109
+ ...(description !== undefined ? { subtitle: clip(description, CARD_LIMITS.selectionSubtitle) } : {}),
110
+ multiple: false,
111
+ options: request.choices.map((choice, index) => ({
112
+ id: ids[index],
113
+ label: clip(oneLine(choice.label) || choice.id, CARD_LIMITS.selectionLabel),
114
+ })),
115
+ };
116
+ };
117
+ /** The choice a reply id names, as `approvalPart` gave it out. */
118
+ export const choiceFor = (request, id) => {
119
+ const max = onCard(request) ? CARD_LIMITS.replyId : CARD_LIMITS.selectionId;
120
+ return request.choices.find((choice) => replyId(choice, max) === id);
121
+ };
122
+ /**
123
+ * A tap on a card, as `message.received` carries it: the card message it
124
+ * replies to, and the id of the reply the person chose. A card reply is plain
125
+ * text then `suggestion_response`; a picker answer, plain text then
126
+ * `selection_response` (Relay-Server contracts/developer/openapi.yaml,
127
+ * `SuggestionResponsePart` and `SelectionResponsePart`).
128
+ */
129
+ export const readAnswer = (event) => {
130
+ if (event.event_type !== "message.received")
131
+ return undefined;
132
+ const parts = event.data.parts ?? [];
133
+ const card = suggestionReply(parts, event.data.reply_to);
134
+ if (card)
135
+ return { messageId: card.reply_to.message_id, id: card.id };
136
+ const picked = selectionReply(parts, event.data.reply_to);
137
+ const id = picked?.selected_ids?.[0] ?? picked?.selected_values[0];
138
+ return picked && id !== undefined ? { messageId: picked.reply_to.message_id, id } : undefined;
103
139
  };
104
- /** The card after the prompt ended: the buttons give way to what happened. */
105
- export const settledComponents = (request, outcome) => [
106
- { id: "body", component: "Column", children: bodyChildren(request, "outcome") },
107
- { id: "outcome", component: "Text", text: outcomeLine(outcome), variant: "caption" },
108
- ];
109
- /** The A2UI messages of a new card: `createSurface` then `updateComponents` (Relay-Docs interactions/cards.mdx, "Send a card"). */
110
- export const approvalMessages = (surfaceId, request) => [
111
- { version: A2UI_VERSION, createSurface: { surfaceId, catalogId: RELAY_A2UI_CATALOG_ID } },
112
- { version: A2UI_VERSION, updateComponents: { surfaceId, components: approvalComponents(request) } },
113
- ];
114
140
  /**
115
141
  * One per bridge process. `ask` sends the card and waits; `take` reads every
116
- * event first and keeps the taps on its own cards, so they never start a turn.
142
+ * event first and keeps the answers to its own cards, so they never start a turn.
117
143
  */
118
144
  export class OwnerApprovals {
119
145
  #client;
120
146
  #say;
121
- #surfaceId;
147
+ /** Open prompts, by the message id of each owner's card. */
122
148
  #pending = new Map();
123
149
  /** Cards already settled, so a late tap on one is dropped quietly. */
124
150
  #settled = new Set();
125
151
  constructor(options) {
126
152
  this.#client = options.client;
127
153
  this.#say = options.say;
128
- this.#surfaceId = options.surfaceId ?? (() => `approval-${randomUUID()}`);
129
154
  }
130
155
  async ask(request) {
131
156
  if (request.signal?.aborted)
132
157
  return { reason: "aborted" };
158
+ // A prompt no card can carry fails loudly to the harness, before anything is sent.
159
+ let part;
160
+ try {
161
+ part = approvalPart(request);
162
+ }
163
+ catch (error) {
164
+ this.#say(error instanceof Error ? error.message : String(error));
165
+ throw error;
166
+ }
133
167
  // Read fresh each time, so an owner who links a phone while the bridge
134
168
  // runs is asked from the next prompt on.
135
169
  let me;
@@ -145,11 +179,9 @@ export class OwnerApprovals {
145
179
  this.#say(noOwnerLine(request));
146
180
  return { reason: "no_owner" };
147
181
  }
148
- const surfaceId = this.#surfaceId();
149
182
  let settle;
150
183
  const done = new Promise((resolve) => { settle = resolve; });
151
184
  const pending = { request, owners: new Set(owners.map((owner) => owner.handle)), cards: [], settle };
152
- this.#pending.set(surfaceId, pending);
153
185
  for (const owner of owners) {
154
186
  try {
155
187
  // The chat between the agent and this owner: Relay reuses the direct
@@ -157,16 +189,17 @@ export class OwnerApprovals {
157
189
  const sent = await this.#client.chats.create({
158
190
  from: me.handle,
159
191
  to: [owner.handle],
160
- message: { parts: [a2uiPart(approvalMessages(surfaceId, request))] },
192
+ message: { parts: [part] },
161
193
  });
162
- pending.cards.push({ chatId: sent.chat.id, owner: owner.handle });
194
+ const card = { chatId: sent.chat.id, messageId: sent.chat.message.id, owner: owner.handle };
195
+ pending.cards.push(card);
196
+ this.#pending.set(card.messageId, pending);
163
197
  }
164
198
  catch (error) {
165
199
  this.#say(`The approval card did not reach @${owner.handle}: ${error instanceof Error ? error.message : String(error)}.`);
166
200
  }
167
201
  }
168
202
  if (!pending.cards.length) {
169
- this.#pending.delete(surfaceId);
170
203
  this.#say(`${request.harness} was not allowed to use ${request.tool}: no owner could be asked.`);
171
204
  return { reason: "unsent" };
172
205
  }
@@ -178,40 +211,44 @@ export class OwnerApprovals {
178
211
  const outcome = await done;
179
212
  clearTimeout(timer);
180
213
  request.signal?.removeEventListener("abort", abort);
181
- this.#pending.delete(surfaceId);
182
- this.#settled.add(surfaceId);
214
+ for (const card of pending.cards) {
215
+ this.#pending.delete(card.messageId);
216
+ this.#settled.add(card.messageId);
217
+ }
218
+ // The card cannot change once sent, so what happened is a reply to it in
219
+ // every owner's chat.
183
220
  await Promise.all(pending.cards.map(async (card) => {
184
221
  try {
185
- await updateA2uiSurface(this.#client, card.chatId, surfaceId, { components: settledComponents(request, outcome) });
222
+ await this.#client.chats.messages.send(card.chatId, {
223
+ message: { parts: [{ type: "text", value: outcomeLine(outcome) }], reply_to: { message_id: card.messageId, part_index: 0 } },
224
+ });
186
225
  }
187
- catch { /* The harness already has its answer; a stale card is the lesser harm. */ }
226
+ catch { /* The harness already has its answer; an unanswered card is the lesser harm. */ }
188
227
  }));
189
228
  this.#say(`${request.tool}: ${outcomeLine(outcome)}`);
190
229
  return outcome;
191
230
  }
192
231
  /**
193
- * Whether this event is a tap on one of this process's approval cards.
232
+ * Whether this event is an answer to one of this process's approval cards.
194
233
  * Such an event is handled here and must not start a turn.
195
234
  */
196
235
  async take(event) {
197
- if (event.event_type !== "message.received")
236
+ const answer = readAnswer(event);
237
+ if (!answer || event.event_type !== "message.received")
198
238
  return false;
199
- const tap = readA2uiAction(event);
200
- if (!tap)
201
- return false;
202
- const surfaceId = tap.action.surfaceId;
203
- if (this.#settled.has(surfaceId))
239
+ if (this.#settled.has(answer.messageId))
204
240
  return true;
205
- const pending = this.#pending.get(surfaceId);
241
+ const pending = this.#pending.get(answer.messageId);
242
+ // An answer to an approval card this process does not hold (sent before a
243
+ // restart, or by another bridge of the same agent) is dropped quietly: the
244
+ // harness that asked is gone, and the tap is not a message to answer.
206
245
  if (!pending)
207
- return false;
208
- if (tap.action.name !== ANSWER_EVENT)
209
- return true;
246
+ return isApprovalReplyId(answer.id);
210
247
  const sender = event.data.sender_handle;
211
- // Anyone but an owner is not registered: no message, and the card stays open.
248
+ // Anyone but an owner is not registered, and the card stays open.
212
249
  if (sender.kind !== "user" || !pending.owners.has(sender.handle))
213
250
  return true;
214
- const choice = pending.request.choices.find((option) => option.id === tap.action.context.choice);
251
+ const choice = choiceFor(pending.request, answer.id);
215
252
  if (!choice)
216
253
  return true;
217
254
  pending.settle({ reason: "answered", choice, by: sender.handle });
@@ -299,7 +336,7 @@ const diff = (before, after) => [
299
336
  ];
300
337
  const isReplacement = (value) => isRecord(value) && typeof value.old_string === "string" && typeof value.new_string === "string";
301
338
  /**
302
- * The whole tool input as a person reads it, for "See more": an Edit is its
339
+ * The whole tool input as a person reads it, for the card's description: an Edit is its
303
340
  * file and a diff (a MultiEdit, a diff per edit), a Write its file and the
304
341
  * content, anything else one `name: value` line per field.
305
342
  */
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relaymessenger",
3
- "version": "0.1.15",
3
+ "version": "0.1.16-staging.0",
4
4
  "description": "Official command-line client for Relay v1 resources.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,8 +31,8 @@
31
31
  "@agentclientprotocol/sdk": "1.4.0",
32
32
  "@anthropic-ai/claude-agent-sdk": "0.3.278",
33
33
  "@clack/prompts": "1.8.1",
34
- "@relaymessenger/pi": "0.1.5",
35
- "@relaymessenger/sdk": "0.4.0",
34
+ "@relaymessenger/pi": "0.1.6-staging.0",
35
+ "@relaymessenger/sdk": "0.5.0-staging.0",
36
36
  "@vercel/detect-agent": "1.2.5",
37
37
  "commander": "^15.0.0",
38
38
  "smol-toml": "^1.8.0",