@relaymessenger/cli 0.4.4 → 0.5.0-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.
Files changed (91) hide show
  1. package/README.md +108 -118
  2. package/dist/cli.js +2 -172
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client.d.ts +8 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +13 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/config.d.ts +39 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +206 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/doctor.d.ts +20 -1
  13. package/dist/doctor.d.ts.map +1 -1
  14. package/dist/doctor.js +73 -112
  15. package/dist/doctor.js.map +1 -1
  16. package/dist/event-listen.d.ts +11 -0
  17. package/dist/event-listen.d.ts.map +1 -0
  18. package/dist/event-listen.js +37 -0
  19. package/dist/event-listen.js.map +1 -0
  20. package/dist/output.d.ts +4 -0
  21. package/dist/output.d.ts.map +1 -0
  22. package/dist/output.js +26 -0
  23. package/dist/output.js.map +1 -0
  24. package/dist/program.d.ts +14 -0
  25. package/dist/program.d.ts.map +1 -0
  26. package/dist/program.js +655 -0
  27. package/dist/program.js.map +1 -0
  28. package/package.json +31 -37
  29. package/claude-plugin/marketplace/.claude-plugin/marketplace.json +0 -14
  30. package/claude-plugin/marketplace/plugins/relay/.claude-plugin/plugin.json +0 -27
  31. package/claude-plugin/marketplace/plugins/relay/LICENSE +0 -21
  32. package/claude-plugin/marketplace/plugins/relay/README.md +0 -173
  33. package/claude-plugin/marketplace/plugins/relay/commands/configure.md +0 -71
  34. package/claude-plugin/marketplace/plugins/relay/runtime/server.mjs +0 -26197
  35. package/dist/api.d.ts +0 -114
  36. package/dist/api.d.ts.map +0 -1
  37. package/dist/api.js +0 -162
  38. package/dist/api.js.map +0 -1
  39. package/dist/claude-settings.d.ts +0 -14
  40. package/dist/claude-settings.d.ts.map +0 -1
  41. package/dist/claude-settings.js +0 -47
  42. package/dist/claude-settings.js.map +0 -1
  43. package/dist/codex.d.ts +0 -25
  44. package/dist/codex.d.ts.map +0 -1
  45. package/dist/codex.js +0 -237
  46. package/dist/codex.js.map +0 -1
  47. package/dist/engine/acp.d.ts +0 -74
  48. package/dist/engine/acp.d.ts.map +0 -1
  49. package/dist/engine/acp.js +0 -413
  50. package/dist/engine/acp.js.map +0 -1
  51. package/dist/engine/catalog.d.ts +0 -26
  52. package/dist/engine/catalog.d.ts.map +0 -1
  53. package/dist/engine/catalog.js +0 -41
  54. package/dist/engine/catalog.js.map +0 -1
  55. package/dist/engine/process.d.ts +0 -12
  56. package/dist/engine/process.d.ts.map +0 -1
  57. package/dist/engine/process.js +0 -54
  58. package/dist/engine/process.js.map +0 -1
  59. package/dist/engine/types.d.ts +0 -57
  60. package/dist/engine/types.d.ts.map +0 -1
  61. package/dist/engine/types.js +0 -8
  62. package/dist/engine/types.js.map +0 -1
  63. package/dist/flags.d.ts +0 -9
  64. package/dist/flags.d.ts.map +0 -1
  65. package/dist/flags.js +0 -34
  66. package/dist/flags.js.map +0 -1
  67. package/dist/install.d.ts +0 -69
  68. package/dist/install.d.ts.map +0 -1
  69. package/dist/install.js +0 -513
  70. package/dist/install.js.map +0 -1
  71. package/dist/mcp.d.ts +0 -16
  72. package/dist/mcp.d.ts.map +0 -1
  73. package/dist/mcp.js +0 -127
  74. package/dist/mcp.js.map +0 -1
  75. package/dist/pair.d.ts +0 -20
  76. package/dist/pair.d.ts.map +0 -1
  77. package/dist/pair.js +0 -135
  78. package/dist/pair.js.map +0 -1
  79. package/dist/permissions.d.ts +0 -90
  80. package/dist/permissions.d.ts.map +0 -1
  81. package/dist/permissions.js +0 -361
  82. package/dist/permissions.js.map +0 -1
  83. package/dist/receive.d.ts +0 -113
  84. package/dist/receive.d.ts.map +0 -1
  85. package/dist/receive.js +0 -596
  86. package/dist/receive.js.map +0 -1
  87. package/dist/store.d.ts +0 -301
  88. package/dist/store.d.ts.map +0 -1
  89. package/dist/store.js +0 -551
  90. package/dist/store.js.map +0 -1
  91. package/openclaw-plugin/relaymessenger-openclaw-plugin-0.3.3.tgz +0 -0
package/dist/store.d.ts DELETED
@@ -1,301 +0,0 @@
1
- /**
2
- * Durable local state for the relaymessenger bridge.
3
- *
4
- * Everything lives under ~/.relaymessenger (override with RELAYMESSENGER_HOME):
5
- * config.json — active agent token, API origin, owner_user_id (chmod 600)
6
- * accounts/<origin-agent-hash>/state.json — receive cursor, dedupe set,
7
- * pending events. EXCLUSIVELY
8
- * owned (written) by the `start` loop process; other
9
- * entrypoints (codex hook, notify, mcp) may only read it
10
- * via readStateSnapshot().
11
- * accounts/<hash>/approvals/<request_id>.json — pending approval (create-once
12
- * by whoever arms it, resolution written by the loop,
13
- * consumed+unlinked by the waiter). No read-modify-write
14
- * of shared snapshots across processes.
15
- * accounts/<hash>/sessions.json — conversation_id → engine session binding
16
- *
17
- * Writes are atomic: content is fsync'd to a tmp file, then renamed into
18
- * place, so a crash can never leave a half-written file. Cursor + pending
19
- * queue share one file, so the durable-before-ack invariant holds with a
20
- * single atomic write.
21
- */
22
- import { renameSync } from "node:fs";
23
- export declare function relaymessengerHome(): string;
24
- export interface RelayConfig {
25
- api_origin: string;
26
- agent_token: string;
27
- /**
28
- * The Relay user id allowed to drive this bridge. Pinned at pair time from
29
- * GET /v1/agents/me; overridable with RELAY_OWNER_USER_ID. Everything the
30
- * bridge does — prompts, approvals, notify targets — is gated on it.
31
- */
32
- owner_user_id?: string;
33
- agent?: {
34
- id?: string;
35
- handle?: string;
36
- display_name?: string;
37
- };
38
- paired_at?: string;
39
- }
40
- /** Stable, non-secret identity label used inside account-scoped ledgers. */
41
- export declare function relayIdentityForConfig(config: Pick<RelayConfig, "agent_token" | "agent">): string;
42
- /**
43
- * Durable bridge state is scoped to one authenticated Relay identity. The
44
- * agent id is preferred; a token fingerprint is the fail-safe fallback for
45
- * legacy servers that do not expose it. Raw tokens/origins never enter paths.
46
- */
47
- export declare function runtimeHomeForConfig(config: Pick<RelayConfig, "api_origin" | "agent_token" | "agent">, baseHome?: string): string;
48
- export declare function activeRuntimeHome(baseHome?: string): string;
49
- /** Resolve the pinned owner, failing closed when it is missing. */
50
- export declare function resolveOwnerUserId(config: RelayConfig | undefined): string;
51
- export interface PendingApproval {
52
- request_id: string;
53
- conversation_id: string;
54
- engine?: string;
55
- tool_name?: string;
56
- created_at: string;
57
- /** ISO time after which the approval is denied. */
58
- deadline_at: string;
59
- /** Relay message id of the card, for reply_to matching. */
60
- relay_message_id?: string;
61
- options: Array<{
62
- option_id: string;
63
- label: string;
64
- kind?: string;
65
- }>;
66
- source: "acp" | "hook";
67
- resolution?: {
68
- option_id?: string;
69
- behavior: "allow" | "deny" | "cancelled";
70
- decided_at: string;
71
- };
72
- }
73
- export interface RelayEvent {
74
- event_id: string;
75
- event_type: string;
76
- agent_id?: string;
77
- created_at?: string;
78
- data?: {
79
- message?: RelayMessage;
80
- [key: string]: unknown;
81
- };
82
- }
83
- /**
84
- * Inline mention of a conversation participant. Offsets are UTF-16 code
85
- * units into the part's `text`, which holds the inserted display name with
86
- * no "@". Ranges are sorted by `start` and never overlap.
87
- */
88
- export interface RelayMentionRange {
89
- start: number;
90
- length: number;
91
- participant_id: string;
92
- }
93
- export type RelayTextStyle = "bold" | "italic" | "underline" | "strikethrough" | "monospace" | "spoiler";
94
- /**
95
- * One formatting run over a text part, offsets in UTF-16 code units like
96
- * mentions. An EMPTY `styles` array on the part is meaningful: it marks
97
- * structured plain text as opposed to a legacy Markdown body.
98
- */
99
- export interface RelayStyleRange {
100
- start: number;
101
- length: number;
102
- styles: RelayTextStyle[];
103
- }
104
- /** Stored canonical part as delivered in events and history. */
105
- export interface RelayPart {
106
- type: string;
107
- part_index?: number;
108
- text?: string;
109
- /** Text parts only. */
110
- mentions?: RelayMentionRange[];
111
- styles?: RelayStyleRange[];
112
- url?: string;
113
- attachment_id?: string;
114
- duration_ms?: number;
115
- /** Media parts only: pixel dimensions (always paired) and a blurhash
116
- * placeholder (base83) to draw before the bytes download. */
117
- width?: number;
118
- height?: number;
119
- blur_hash?: string;
120
- data?: unknown;
121
- [key: string]: unknown;
122
- }
123
- export interface RelayMessage {
124
- id: string;
125
- conversation_id: string;
126
- sequence: number;
127
- sender: {
128
- kind: "user" | "agent";
129
- id: string;
130
- };
131
- parts: RelayPart[];
132
- fallback_text: string;
133
- reply_to?: {
134
- message_id?: string;
135
- } | null;
136
- created_at?: string;
137
- }
138
- export interface BridgeState {
139
- cursor: number;
140
- seen_event_ids: string[];
141
- pending_events: Record<string, RelayEvent[]>;
142
- /**
143
- * conversation_id → turn idempotency key persisted immediately BEFORE the
144
- * engine turn starts and cleared on success. A marker found at startup means
145
- * a previous process crashed mid-turn: that batch is dropped with a notice
146
- * instead of re-executed, so engine/tool side effects (deploys, deletions,
147
- * sends) run at most once per owner message.
148
- */
149
- attempted_turns?: Record<string, {
150
- turn_key: string;
151
- event_ids: string[];
152
- started_at: string;
153
- }>;
154
- /**
155
- * Engine-completed replies waiting for idempotent Relay delivery. The full
156
- * reply is persisted before the POST, so a restart can redeliver it without
157
- * executing the engine or its tools again.
158
- */
159
- pending_replies?: Record<string, {
160
- conversation_id: string;
161
- event_ids: string[];
162
- text: string;
163
- created_at: string;
164
- /**
165
- * Group turns only: the invocation this reply answers. Persisted with the
166
- * text because delivery may happen in a later process, after the queued
167
- * events that carried it are gone.
168
- */
169
- invocation_id?: string;
170
- }>;
171
- /**
172
- * The owner's conversation with this agent, persisted by the loop when the
173
- * first owner message arrives. Default target for notify/MCP sends. Never
174
- * derived from the most recent writer.
175
- */
176
- owner_conversation_id?: string;
177
- }
178
- export interface SessionBinding {
179
- engine: string;
180
- session_id: string;
181
- cwd: string;
182
- created_at: string;
183
- }
184
- export interface BlockInvalidStateOperations {
185
- writeBlock?: typeof atomicWriteJson;
186
- quarantine?: typeof renameSync;
187
- /** Test-only crash boundary after the fail-closed marker is durable. */
188
- afterBlockPersisted?: () => void;
189
- }
190
- export declare function blockInvalidState(home: string, path: string, reason: string, operations?: BlockInvalidStateOperations): never;
191
- export declare function atomicWriteJson(path: string, value: unknown, mode: number): void;
192
- export declare class ConfigStore {
193
- private readonly home;
194
- constructor(home?: string);
195
- get path(): string;
196
- load(): RelayConfig | undefined;
197
- save(config: RelayConfig): void;
198
- }
199
- /**
200
- * Read-only view of state.json for non-loop processes (hook, notify, mcp).
201
- * Those processes MUST NOT construct a StateStore: only the `start` loop
202
- * writes state.json.
203
- */
204
- export declare function readStateSnapshot(home?: string): BridgeState;
205
- export declare class StateStore {
206
- private readonly home;
207
- private state;
208
- constructor(home?: string);
209
- get path(): string;
210
- get current(): BridgeState;
211
- markSeen(eventId: string): void;
212
- hasSeen(eventId: string): boolean;
213
- persist(): void;
214
- }
215
- /**
216
- * Per-request approval files in the active account runtime directory.
217
- * Create-once by whoever arms the approval (loop or codex hook), resolution
218
- * written by the loop when the tap arrives, consumed + unlinked by the waiter.
219
- * Each file has a single writer at a time, so there is no read-modify-write
220
- * of a shared snapshot across processes.
221
- */
222
- export declare class ApprovalStore {
223
- private readonly home;
224
- constructor(home?: string);
225
- get dir(): string;
226
- private pathFor;
227
- /** Create-once: throws if the request id already exists. */
228
- create(approval: PendingApproval): void;
229
- get(requestId: string): PendingApproval | undefined;
230
- /** Full rewrite of one approval file (single-writer per file by protocol). */
231
- put(approval: PendingApproval): void;
232
- /** The waiter consumes the decision by removing the file. */
233
- consume(requestId: string): void;
234
- list(): PendingApproval[];
235
- /**
236
- * Age out abandoned files. An unconsumed resolution belongs to a waiter in
237
- * another process, so nothing is removed before deadline + grace — only
238
- * files whose waiter has clearly given up (crashed hook, dead loop).
239
- */
240
- sweep(now?: number, graceMs?: number): string[];
241
- }
242
- export interface McpOutboundSend {
243
- send_id: string;
244
- api_origin: string;
245
- account_identity: string;
246
- conversation_id: string;
247
- payload_hash: string;
248
- idempotency_key: string;
249
- created_at: string;
250
- confirmed_at?: string;
251
- }
252
- /**
253
- * Create-once ledger for Codex MCP logical sends. Each caller-provided send_id
254
- * is permanently bound to one account, origin, conversation, and exact body.
255
- * An ambiguous POST can therefore be repeated after a process restart with
256
- * the same server idempotency key, while changed content fails closed.
257
- */
258
- export declare class McpSendLedger {
259
- private readonly home;
260
- private readonly apiOrigin;
261
- private readonly accountIdentity;
262
- constructor(home: string, apiOrigin: string, accountIdentity: string);
263
- get dir(): string;
264
- private pathFor;
265
- register(sendId: string, conversationId: string, text: string): McpOutboundSend;
266
- confirm(send: McpOutboundSend): void;
267
- }
268
- export declare class SessionStore {
269
- private readonly home;
270
- private sessions;
271
- constructor(home?: string);
272
- get path(): string;
273
- get(conversationId: string): SessionBinding | undefined;
274
- set(conversationId: string, binding: SessionBinding): void;
275
- delete(conversationId: string): void;
276
- all(): Record<string, SessionBinding>;
277
- }
278
- export interface CodexNotifyPolicy {
279
- allowed_project_roots: string[];
280
- }
281
- /** Local, non-secret project opt-ins shared across Relay re-pairs. */
282
- export declare class CodexNotifyPolicyStore {
283
- private readonly home;
284
- constructor(home?: string);
285
- get path(): string;
286
- load(): CodexNotifyPolicy;
287
- allowProject(projectRoot: string): string;
288
- matchProject(cwd: string | undefined): string | undefined;
289
- }
290
- /** One live `relaymessenger start` process per origin+agent runtime namespace. */
291
- export declare class RuntimeLock {
292
- private readonly runtimeHome;
293
- private readonly nonce;
294
- private held;
295
- constructor(runtimeHome: string);
296
- get dir(): string;
297
- private ownerPath;
298
- acquire(): void;
299
- release(): void;
300
- }
301
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}