@relaymessenger/cli 0.3.1 → 0.3.2

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
@@ -6,7 +6,7 @@ machine. It also installs native Relay channels for Claude Code and OpenClaw.
6
6
  Texts become prompts, replies come back as messages, and tool approvals arrive
7
7
  as Allow/Deny cards you answer with a tap.
8
8
 
9
- Relay is messaging for agents https://relayapp.im. API reference:
9
+ Relay is the messenger for AI agents: https://relayapp.im. API reference:
10
10
  https://docs.relayapp.im.
11
11
 
12
12
  ## Quickstart
@@ -32,14 +32,14 @@ the engine works and posts one finalized reply per turn.
32
32
  | --- | --- |
33
33
  | `relaymessenger pair` | `POST /v1/pairings`, shows a terminal QR + code, long-polls until you claim it in the app, stores the Agent Token in `~/.relaymessenger/config.json` (chmod 600) and pins your user id as the bridge owner (from `GET /v1/agents/me`; override with `RELAY_OWNER_USER_ID`). If owner lookup is interrupted after the token is saved, running the command again resumes that saved token without creating another agent. The token never appears on the phone. |
34
34
  | `relaymessenger start` | Receive loop: long-polls `GET /v1/events`, drives the engine over ACP, replies via `POST /v1/messages` with an `Idempotency-Key`. Flags: `--engine claude\|codex\|hermes`, `--dir <path>`. Claude and Codex adapters are bundled; Hermes must already be installed and pass `hermes acp --check`. |
35
- | `relaymessenger install-codex` | Run from a project root to opt in that project only. Merges never clobbers `[mcp_servers.relay]` + `notify` into `~/.codex/config.toml` (comments preserved; a `.bak` of the original is kept) and a `PermissionRequest` hook into `~/.codex/hooks.json`. Other projects are suppressed until installed separately. Codex gates untrusted hook handlers: the first run may ask you to trust the relaymessenger handler. |
35
+ | `relaymessenger install-codex` | Run from a project root to opt in that project only. Merges, never clobbers, `[mcp_servers.relay]` + `notify` into `~/.codex/config.toml` (comments preserved; a `.bak` of the original is kept) and a `PermissionRequest` hook into `~/.codex/hooks.json`. Other projects are suppressed until installed separately. Codex gates untrusted hook handlers: the first run may ask you to trust the relaymessenger handler. |
36
36
  | `relaymessenger install-claude` | After pairing, strictly validates the Claude plugin bundled in the installed npm package, persists its local marketplace under the paired account's private runtime directory, installs `relay@relaymessenger-bundled`, and writes the token/API origin/owner pin to `~/.claude/channels/relay/.env` with mode 600 without printing the token. It refuses to overwrite a different configured identity. |
37
- | `relaymessenger install-openclaw` | After pairing, persists and installs the OpenClaw plugin archive bundled in the npm package, adds only Relay's plugin/channel fields to `~/.openclaw/openclaw.json`, and writes the paired token to an owner-only file. Existing unrelated config is preserved and a different configured identity is refused. |
37
+ | `relaymessenger install-openclaw` | After pairing, persists the OpenClaw plugin archive bundled in the npm package and installs it through OpenClaw's managed `npm-pack:` path, adds only Relay's plugin/channel fields to `~/.openclaw/openclaw.json`, and writes the paired token to an owner-only file. Existing unrelated config is preserved and a different configured identity is refused. |
38
38
  | `relaymessenger doctor` | Checks Node, pairing, token file permissions, API reachability, installed adapter pins, and durable-state health. |
39
39
 
40
40
  ## How the wire works
41
41
 
42
- Everything rides Relay's public agent API the same surface you can drive
42
+ Everything rides Relay's public agent API, the same surface you can drive
43
43
  with curl:
44
44
 
45
45
  ```sh
@@ -111,7 +111,7 @@ curl -X POST https://api.relayapp.im/v1/messages \
111
111
  - `RELAY_API_ORIGIN` points `pair`, `start`, and `doctor` at a
112
112
  non-production Relay API origin, e.g. a local dev server:
113
113
  `RELAY_API_ORIGIN=http://127.0.0.1:8787 relaymessenger pair`. This is a
114
- development/testing mechanism only production
114
+ development/testing mechanism only, production
115
115
  (`https://api.relayapp.im`) stays the default, the value must be an
116
116
  origin with no path/query/credentials, and plain HTTP is accepted only
117
117
  for loopback hosts (same rule as every other origin the bridge uses).
@@ -1,13 +1,22 @@
1
1
  {
2
2
  "name": "relay",
3
- "description": "Relay channel for Claude Code message your Claude Code session from your Relay agent conversation, with remote Allow/Deny permission relay. Run /relay:configure to set up.",
3
+ "description": "Relay channel for Claude Code. Message your Claude Code session from your Relay agent conversation, with remote Allow/Deny permission relay. Run /relay:configure to set up.",
4
4
  "version": "0.2.0",
5
- "author": { "name": "Relay" },
6
- "keywords": ["relay", "messaging", "channel", "mcp"],
5
+ "author": {
6
+ "name": "Relay"
7
+ },
8
+ "keywords": [
9
+ "relay",
10
+ "messaging",
11
+ "channel",
12
+ "mcp"
13
+ ],
7
14
  "mcpServers": {
8
15
  "relay": {
9
16
  "command": "node",
10
- "args": ["${CLAUDE_PLUGIN_ROOT}/runtime/server.mjs"]
17
+ "args": [
18
+ "${CLAUDE_PLUGIN_ROOT}/runtime/server.mjs"
19
+ ]
11
20
  }
12
21
  },
13
22
  "channels": [
@@ -6,7 +6,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ try {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ } catch (e) {
12
+ throw mod = 0, e;
13
+ }
10
14
  };
11
15
  var __export = (target, all) => {
12
16
  for (var name in all)
@@ -3640,7 +3644,12 @@ var require_fast_uri = __commonJS({
3640
3644
  }
3641
3645
  function resolve(baseURI, relativeURI, options) {
3642
3646
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3643
- const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3647
+ const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
3648
+ const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
3649
+ if (baseMalformed || relativeMalformed) {
3650
+ throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
3651
+ }
3652
+ const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
3644
3653
  schemelessOptions.skipEscape = true;
3645
3654
  return serialize(resolved, schemelessOptions);
3646
3655
  }
@@ -3766,6 +3775,7 @@ var require_fast_uri = __commonJS({
3766
3775
  }
3767
3776
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
3768
3777
  var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
3778
+ var AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
3769
3779
  function getParseError(parsed, matches) {
3770
3780
  if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
3771
3781
  return 'URI path must start with "/" when authority is present.';
@@ -3800,6 +3810,20 @@ var require_fast_uri = __commonJS({
3800
3810
  parsed.error = "URI authority must not contain a literal backslash.";
3801
3811
  malformedAuthorityOrPort = true;
3802
3812
  }
3813
+ const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
3814
+ if (introducerMatch !== null) {
3815
+ const region = introducerMatch[1];
3816
+ const normalizedRegion = region.replace(/[\t\n\r]/g, "");
3817
+ if (normalizedRegion.length >= 2) {
3818
+ if (normalizedRegion.slice(0, 2) !== "//") {
3819
+ parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
3820
+ malformedAuthorityOrPort = true;
3821
+ } else if (region.length !== normalizedRegion.length) {
3822
+ parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
3823
+ malformedAuthorityOrPort = true;
3824
+ }
3825
+ }
3826
+ }
3803
3827
  const matches = uri.match(URI_PARSE);
3804
3828
  if (matches) {
3805
3829
  parsed.scheme = matches[1];
@@ -7230,7 +7254,7 @@ function $constructor(name, initializer3, params) {
7230
7254
  Object.defineProperty(_, "name", { value: name });
7231
7255
  return _;
7232
7256
  }
7233
- var $brand = Symbol("zod_brand");
7257
+ var $brand = /* @__PURE__ */ Symbol("zod_brand");
7234
7258
  var $ZodAsyncError = class extends Error {
7235
7259
  constructor() {
7236
7260
  super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
@@ -16973,8 +16997,8 @@ function yo_default() {
16973
16997
 
16974
16998
  // ../../node_modules/zod/v4/core/registries.js
16975
16999
  var _a2;
16976
- var $output = Symbol("ZodOutput");
16977
- var $input = Symbol("ZodInput");
17000
+ var $output = /* @__PURE__ */ Symbol("ZodOutput");
17001
+ var $input = /* @__PURE__ */ Symbol("ZodInput");
16978
17002
  var $ZodRegistry = class {
16979
17003
  constructor() {
16980
17004
  this._map = /* @__PURE__ */ new WeakMap();
@@ -22995,9 +23019,6 @@ function isTerminal(status) {
22995
23019
  return status === "completed" || status === "failed" || status === "cancelled";
22996
23020
  }
22997
23021
 
22998
- // ../../node_modules/zod-to-json-schema/dist/esm/Options.js
22999
- var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
23000
-
23001
23022
  // ../../node_modules/zod-to-json-schema/dist/esm/parsers/string.js
23002
23023
  var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
23003
23024
 
@@ -24814,6 +24835,12 @@ function extractMessage(event) {
24814
24835
  if (typeof m.sender !== "object" || m.sender === null) return null;
24815
24836
  return m;
24816
24837
  }
24838
+ function extractInvocationId(event) {
24839
+ const data = event.data;
24840
+ if (typeof data !== "object" || data === null) return void 0;
24841
+ const value = data.invocation_id;
24842
+ return typeof value === "string" && value.length > 0 ? value : void 0;
24843
+ }
24817
24844
  function textOfMessage(message) {
24818
24845
  const texts = message.parts.filter((part) => part.type === "text" && typeof part.text === "string" && part.text.length > 0).map((part) => part.text);
24819
24846
  if (texts.length > 0) return texts.join("\n");
@@ -24858,12 +24885,18 @@ function classifyEvent(event, ownerUserId, isPendingRequest = () => false, canAc
24858
24885
  return { kind: "verdict", verdict: textVerdict };
24859
24886
  }
24860
24887
  if (text.length === 0) return { kind: "ignore", reason: "empty message body" };
24888
+ const invocationId = extractInvocationId(event);
24861
24889
  return {
24862
24890
  kind: "message",
24863
24891
  content: text,
24864
- meta: { chat_id: message.conversation_id, sender: message.sender.id },
24892
+ meta: {
24893
+ chat_id: message.conversation_id,
24894
+ sender: message.sender.id,
24895
+ ...invocationId ? { invocation_id: invocationId } : {}
24896
+ },
24865
24897
  conversationId: message.conversation_id,
24866
- sender: message.sender.id
24898
+ sender: message.sender.id,
24899
+ ...invocationId ? { invocationId } : {}
24867
24900
  };
24868
24901
  }
24869
24902
  var MAX_DESCRIPTION_CHARS = 500;
@@ -24954,8 +24987,12 @@ function buildPermissionCard(request, conversationId) {
24954
24987
  remoteAllowEnabled
24955
24988
  };
24956
24989
  }
24957
- function buildReply(chatId, text) {
24958
- return { conversation_id: chatId, parts: [{ type: "text", text }] };
24990
+ function buildReply(chatId, text, invocationId) {
24991
+ return {
24992
+ conversation_id: chatId,
24993
+ parts: [{ type: "text", text }],
24994
+ ...invocationId ? { invocation_id: invocationId } : {}
24995
+ };
24959
24996
  }
24960
24997
 
24961
24998
  // src/config.ts
@@ -25269,6 +25306,11 @@ var StateStore = class {
25269
25306
  if (parsed.last_conversation_id !== void 0 && typeof parsed.last_conversation_id !== "string") {
25270
25307
  throw new Error("invalid routing state");
25271
25308
  }
25309
+ if (parsed.pending_invocations !== void 0 && (typeof parsed.pending_invocations !== "object" || parsed.pending_invocations === null || Array.isArray(parsed.pending_invocations) || Object.entries(parsed.pending_invocations).some(
25310
+ ([conversationId, invocationId]) => !conversationId.startsWith("cnv_") || typeof invocationId !== "string"
25311
+ ))) {
25312
+ throw new Error("invalid pending invocations");
25313
+ }
25272
25314
  if (parsed.observed_conversation_ids !== void 0 && (!Array.isArray(parsed.observed_conversation_ids) || parsed.observed_conversation_ids.some(
25273
25315
  (conversationId) => typeof conversationId !== "string" || !conversationId.startsWith("cnv_")
25274
25316
  ))) {
@@ -25351,6 +25393,32 @@ var StateStore = class {
25351
25393
  hasObservedConversation(conversationId) {
25352
25394
  return (this.routingState.observed_conversation_ids ?? []).includes(conversationId);
25353
25395
  }
25396
+ /**
25397
+ * Remember the invocation a group message arrived under. A newer invocation
25398
+ * replaces an older unanswered one: the reply this session is about to send
25399
+ * answers the message Claude actually saw last.
25400
+ */
25401
+ recordInvocation(conversationId, invocationId) {
25402
+ this.routingState = {
25403
+ ...this.routingState,
25404
+ pending_invocations: {
25405
+ ...this.routingState.pending_invocations ?? {},
25406
+ [conversationId]: invocationId
25407
+ }
25408
+ };
25409
+ writeJsonAtomic(this.sessionStatePath, this.routingState);
25410
+ }
25411
+ invocationFor(conversationId) {
25412
+ return this.routingState.pending_invocations?.[conversationId];
25413
+ }
25414
+ /** Spend the invocation once its reply is committed by Relay. */
25415
+ consumeInvocation(conversationId) {
25416
+ const pending = { ...this.routingState.pending_invocations ?? {} };
25417
+ if (!(conversationId in pending)) return;
25418
+ delete pending[conversationId];
25419
+ this.routingState = { ...this.routingState, pending_invocations: pending };
25420
+ writeJsonAtomic(this.sessionStatePath, this.routingState);
25421
+ }
25354
25422
  /**
25355
25423
  * Bind a permission notification to its only safe active destination.
25356
25424
  * Claude's channel permission payload has no chat id. A pending delivery is
@@ -25814,7 +25882,7 @@ mcp.setRequestHandler(CallToolRequestSchema, async (request) => {
25814
25882
  if (typeof send_id !== "string" || !/^[A-Za-z0-9._:-]{1,128}$/.test(send_id)) {
25815
25883
  return toolError("send_id must be 1-128 letters, digits, dot, underscore, colon, or hyphen");
25816
25884
  }
25817
- const body = buildReply(chat_id, text);
25885
+ const body = buildReply(chat_id, text, state.invocationFor(chat_id));
25818
25886
  const payloadHash = hashJson(body);
25819
25887
  const idempotencyKey = `claude-reply-${createHash2("sha256").update(`${scope.baseUrl}
25820
25888
  ${scope.agentId}
@@ -25827,6 +25895,7 @@ ${send_id}`).digest("hex")}`;
25827
25895
  }
25828
25896
  await client.sendMessage(body, registered.idempotency_key);
25829
25897
  state.confirmOutboundSend(send_id);
25898
+ if (body.invocation_id) state.consumeInvocation(chat_id);
25830
25899
  return { content: [{ type: "text", text: "sent" }] };
25831
25900
  } catch (error51) {
25832
25901
  const detail = error51 instanceof RelayApiError ? `${error51.status} ${error51.code}: ${error51.message}` : String(error51);
@@ -25863,6 +25932,12 @@ mcp.setNotificationHandler(PermissionRequestSchema, async ({ params }) => {
25863
25932
  );
25864
25933
  return;
25865
25934
  }
25935
+ if (state.invocationFor(conversationId)) {
25936
+ log(
25937
+ `permission request ${params.request_id} not relayed: ${conversationId} is a group invocation that owes its single message to the reply; review it at the local terminal`
25938
+ );
25939
+ return;
25940
+ }
25866
25941
  const request = params;
25867
25942
  const card = buildPermissionCard(request, conversationId);
25868
25943
  try {
@@ -25946,6 +26021,9 @@ async function handleEvent(event) {
25946
26021
  }
25947
26022
  case "message": {
25948
26023
  state.recordConversation(action.conversationId);
26024
+ if (action.invocationId) {
26025
+ state.recordInvocation(action.conversationId, action.invocationId);
26026
+ }
25949
26027
  const delivery = {
25950
26028
  event_id: event.event_id,
25951
26029
  content: action.content,
package/dist/api.d.ts CHANGED
@@ -20,7 +20,19 @@ export declare function resolveApiOrigin(fallback?: string): string;
20
20
  export declare class RelayApiError extends Error {
21
21
  readonly status: number;
22
22
  readonly code: string | undefined;
23
- constructor(status: number, code: string | undefined, message: string);
23
+ /**
24
+ * `error.details` from the Relay error body. The cursor faults carry the
25
+ * recovery target there (`highest_delivered_cursor`, `latest_sequence`),
26
+ * so it has to survive the throw.
27
+ */
28
+ readonly details?: Record<string, unknown> | undefined;
29
+ constructor(status: number, code: string | undefined, message: string,
30
+ /**
31
+ * `error.details` from the Relay error body. The cursor faults carry the
32
+ * recovery target there (`highest_delivered_cursor`, `latest_sequence`),
33
+ * so it has to survive the throw.
34
+ */
35
+ details?: Record<string, unknown> | undefined);
24
36
  }
25
37
  export interface PairingCreated {
26
38
  pairing_id: string;
@@ -40,6 +52,17 @@ export interface EventsPage {
40
52
  events: RelayEvent[];
41
53
  next_cursor: number;
42
54
  }
55
+ export interface EventCursorReconciliation {
56
+ reconciled: true;
57
+ resume_cursor: number;
58
+ }
59
+ /** One row of GET /v1/conversations (AgentConversation in the OpenAPI contract). */
60
+ export interface RelayConversation {
61
+ id: string;
62
+ kind?: "direct" | "group";
63
+ last_sequence?: number;
64
+ last_message_at?: string | null;
65
+ }
43
66
  export interface PostMessageBody {
44
67
  conversation_id: string;
45
68
  parts: Array<Record<string, unknown>>;
@@ -50,6 +73,12 @@ export interface PostMessageBody {
50
73
  message_id: string;
51
74
  part_index?: number;
52
75
  };
76
+ /**
77
+ * Required in a group: the id Relay supplied on the invocation this message
78
+ * answers. The server rejects a group agent message without it, and consumes
79
+ * the invocation on commit, so exactly one message may carry a given id.
80
+ */
81
+ invocation_id?: string;
53
82
  }
54
83
  export declare class RelayClient {
55
84
  private readonly token?;
@@ -61,14 +90,23 @@ export declare class RelayClient {
61
90
  waitPairing(pairingId: string, pollToken: string): Promise<PairingStatus>;
62
91
  getMe(): Promise<Record<string, unknown>>;
63
92
  getEvents(cursor: number, timeoutS?: number, limit?: number): Promise<EventsPage>;
93
+ reconcileEvents(expiredCursor: number): Promise<EventCursorReconciliation>;
64
94
  postMessage(body: PostMessageBody, idempotencyKey: string): Promise<{
65
95
  message_id: string;
66
96
  message: RelayMessage;
67
97
  }>;
98
+ /**
99
+ * Conversations this agent still participates in, newest activity first.
100
+ * The canonical inventory used to reconcile after a cursor fault, when the
101
+ * event log can no longer say which conversations moved.
102
+ */
103
+ listConversations(limit?: number): Promise<{
104
+ conversations: RelayConversation[];
105
+ }>;
68
106
  listMessages(conversationId: string, limit?: number): Promise<{
69
107
  messages: RelayMessage[];
70
108
  }>;
71
- setTyping(conversationId: string, started: boolean, label?: string): Promise<void>;
109
+ setTyping(conversationId: string, started: boolean, label?: string, invocationId?: string): Promise<void>;
72
110
  markRead(conversationId: string, messageId: string): Promise<void>;
73
111
  }
74
112
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -38,10 +38,18 @@ export function resolveApiOrigin(fallback = PRODUCTION_ORIGIN) {
38
38
  export class RelayApiError extends Error {
39
39
  status;
40
40
  code;
41
- constructor(status, code, message) {
41
+ details;
42
+ constructor(status, code, message,
43
+ /**
44
+ * `error.details` from the Relay error body. The cursor faults carry the
45
+ * recovery target there (`highest_delivered_cursor`, `latest_sequence`),
46
+ * so it has to survive the throw.
47
+ */
48
+ details) {
42
49
  super(message);
43
50
  this.status = status;
44
51
  this.code = code;
52
+ this.details = details;
45
53
  this.name = "RelayApiError";
46
54
  }
47
55
  }
@@ -82,7 +90,8 @@ export class RelayClient {
82
90
  if (!okStatuses.includes(res.status)) {
83
91
  const code = json?.error?.code ?? json?.code;
84
92
  const message = json?.error?.message ?? json?.message ?? text.slice(0, 300) ?? res.statusText;
85
- throw new RelayApiError(res.status, code, `${method} ${path} → ${res.status}: ${message}`);
93
+ const details = json?.error?.details;
94
+ throw new RelayApiError(res.status, code, `${method} ${path} → ${res.status}: ${message}`, details && typeof details === "object" && !Array.isArray(details) ? details : undefined);
86
95
  }
87
96
  return json;
88
97
  }
@@ -106,18 +115,38 @@ export class RelayClient {
106
115
  const qs = `cursor=${cursor}&timeout=${timeoutS}&limit=${limit}`;
107
116
  return this.request("GET", `/v1/events?${qs}`, { timeoutMs: (timeoutS + 15) * 1000 });
108
117
  }
118
+ reconcileEvents(expiredCursor) {
119
+ return this.request("POST", "/v1/events/reconcile", {
120
+ body: { expired_cursor: expiredCursor, history_reconciled: true },
121
+ headers: { "idempotency-key": `event-cursor-reconcile:${expiredCursor}` },
122
+ });
123
+ }
109
124
  postMessage(body, idempotencyKey) {
110
125
  return this.request("POST", "/v1/messages", {
111
126
  body,
112
127
  headers: { "idempotency-key": idempotencyKey },
113
128
  });
114
129
  }
130
+ /**
131
+ * Conversations this agent still participates in, newest activity first.
132
+ * The canonical inventory used to reconcile after a cursor fault, when the
133
+ * event log can no longer say which conversations moved.
134
+ */
135
+ listConversations(limit = 50) {
136
+ return this.request("GET", `/v1/conversations?limit=${limit}`);
137
+ }
115
138
  listMessages(conversationId, limit = 20) {
116
139
  return this.request("GET", `/v1/conversations/${conversationId}/messages?limit=${limit}`);
117
140
  }
118
- setTyping(conversationId, started, label) {
141
+ setTyping(conversationId, started, label, invocationId) {
119
142
  return this.request("POST", `/v1/conversations/${conversationId}/typing`, {
120
- body: { started, ...(label ? { label } : {}) },
143
+ // Group typing is gated on a still-pending invocation, so the id has to
144
+ // ride along until the reply consumes it.
145
+ body: {
146
+ started,
147
+ ...(label ? { label } : {}),
148
+ ...(invocationId ? { invocation_id: invocationId } : {}),
149
+ },
121
150
  });
122
151
  }
123
152
  markRead(conversationId, messageId) {
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export function claudeBypassWarning(projectDir, home) {
41
41
  const resolved = resolveClaudeDefaultMode(projectDir, home);
42
42
  if (resolved?.mode !== "bypassPermissions")
43
43
  return undefined;
44
- return (`Claude permissions.defaultMode=bypassPermissions (${resolved.source}) ` +
44
+ return (`Claude permissions.defaultMode=bypassPermissions (${resolved.source}). ` +
45
45
  "the engine never asks for approval, so Relay's phone Allow/Deny cards will not appear");
46
46
  }
47
47
  //# sourceMappingURL=claude-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../src/claude-settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC;QAC9C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAqB,OAAO,CAAC,GAAG,EAAE,EAClC,OAAe,OAAO,EAAE;IAExB,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;KACvC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CACjC,UAAmB,EACnB,IAAa;IAEb,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,QAAQ,EAAE,IAAI,KAAK,mBAAmB;QAAE,OAAO,SAAS,CAAC;IAC7D,OAAO,CACL,qDAAqD,QAAQ,CAAC,MAAM,MAAM;QAC1E,uFAAuF,CACxF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../src/claude-settings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC;QAC9C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAU,GAAW,OAAO,CAAC,GAAG,EAAE,EAClC,IAAI,GAAW,OAAO,EAAE;IAExB,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,qBAAqB,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;KACvC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CACjC,UAAmB,EACnB,IAAa;IAEb,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,QAAQ,EAAE,IAAI,KAAK,mBAAmB;QAAE,OAAO,SAAS,CAAC;IAC7D,OAAO,CACL,qDAAqD,QAAQ,CAAC,MAAM,KAAK;QACzE,uFAAuF,CACxF,CAAC;AACJ,CAAC"}
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * relaymessenger bridge your local coding agent to Relay.
3
+ * relaymessenger: bridge your local coding agent to Relay.
4
4
  *
5
5
  * relaymessenger pair [--engine <preset>] [--name <device-name>]
6
6
  * relaymessenger start [--engine <preset>] [--dir <path>]
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,MAAM,KAAK,GAAG;;;;;iBAKG,WAAW;;;;;;;0CAOc,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAExE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,EAAE,CAAC;YACZ,0EAA0E;YAC1E,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC;YACrF,sEAAsE;YACtE,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3D,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/D,IAAI,MAAM;oBAAE,GAAG,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;YACjD,uEAAuE;YACvE,+CAA+C;YAC/C,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,MAAM,EACN,SAAS,EACT,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,EACvC,GAAG,CACJ,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC1D,WAAW;oBACX,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC/B,GAAG;iBACJ,CAAC,CAAC;gBACH,IAAI,YAAuC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,GAAG,EAAE;oBACpB,IAAI,YAAY;wBAAE,OAAO,YAAY,CAAC;oBACtC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;wBACzB,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBACtB,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,sEAAsE;wBACtE,iEAAiE;wBACjE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;wBACvB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;wBACpB,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,YAAY,CAAC;gBACtB,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChC,GAAG,CAAC,0BAA0B,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;gBAC9F,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnB,CAAC;wBAAS,CAAC;oBACT,qEAAqE;oBACrE,4CAA4C;oBAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;oBAAS,CAAC;gBACT,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,KAAK,eAAe;YAClB,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,KAAK,kBAAkB;YACrB,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,MAAM,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,MAAM,qBAAqB,EAAE,CAAC;QACvC,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE;IACP,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1C,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CACF,CAAC"}
package/dist/codex.js CHANGED
@@ -68,7 +68,7 @@ export async function notifyCommand(argv, out = console.log, dependencies = {})
68
68
  return;
69
69
  const projectRoot = (dependencies.policy ?? new CodexNotifyPolicyStore()).matchProject(payload.cwd);
70
70
  if (!projectRoot) {
71
- out("relaymessenger notify: suppressed this project was not explicitly opted in.");
71
+ out("relaymessenger notify: suppressed; this project was not explicitly opted in.");
72
72
  return;
73
73
  }
74
74
  const config = dependencies.config ?? new ConfigStore();
@@ -78,7 +78,7 @@ export async function notifyCommand(argv, out = console.log, dependencies = {})
78
78
  const conversationId = readStateSnapshot(runtimeHomeForConfig(loaded, dirname(config.path))).owner_conversation_id;
79
79
  const client = dependencies.client ?? new RelayClient(loaded.api_origin, loaded.agent_token);
80
80
  if (!conversationId) {
81
- out("relaymessenger notify: no pinned owner conversation yet run `relaymessenger start` once and " +
81
+ out("relaymessenger notify: no pinned owner conversation yet; run `relaymessenger start` once and " +
82
82
  "message the agent from the Relay app first.");
83
83
  return;
84
84
  }
@@ -153,7 +153,7 @@ export async function permissionRequestHook(write = (json) => process.stdout.wri
153
153
  });
154
154
  }
155
155
  catch (error) {
156
- process.stderr.write(`relaymessenger: refusing concealed approval input (${error}) denying.\n`);
156
+ process.stderr.write(`relaymessenger: refusing concealed approval input (${error}); denying.\n`);
157
157
  write(decisionJson(false));
158
158
  return 0;
159
159
  }
@@ -167,7 +167,7 @@ export async function permissionRequestHook(write = (json) => process.stdout.wri
167
167
  }
168
168
  catch (error) {
169
169
  approvals.consume(requestId);
170
- process.stderr.write(`relaymessenger: approval card could not be delivered (${error}) denying.\n`);
170
+ process.stderr.write(`relaymessenger: approval card could not be delivered (${error}); denying.\n`);
171
171
  write(decisionJson(false));
172
172
  return 0;
173
173
  }
@@ -206,7 +206,7 @@ export async function permissionRequestHook(write = (json) => process.stdout.wri
206
206
  // transient — keep polling until deadline
207
207
  }
208
208
  }
209
- process.stderr.write("relaymessenger: no approval from Relay within the window denying.\n");
209
+ process.stderr.write("relaymessenger: no approval from Relay within the window; denying.\n");
210
210
  return finish(false);
211
211
  }
212
212
  /**
package/dist/codex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}