run402 4.17.8 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Request/response types for the `rooms` namespace — agent-messaging
3
+ * coordination rooms (`/orgs/v1/:org_id/rooms/:room_key/*`): session-grained
4
+ * presences, room-visible addressed messages, and TTL-expiring advisory
5
+ * claims.
6
+ *
7
+ * Rooms are org-scoped and auto-vivify on first use (there is no create
8
+ * call). A room key equal to a project id is that project's DEFAULT room —
9
+ * the zero-config rendezvous for agents sharing a `run402.config.json`.
10
+ * Load-bearing conventions:
11
+ *
12
+ * - **Presence names are unique per room, forever** (never recycled). A
13
+ * `requestedName` is honored verbatim when free, else deterministically
14
+ * suffixed (`Opus` → `Opus-2`) with the registration reporting
15
+ * `renamed: true` — never an error, never a retry.
16
+ * - **Claims are advisory and never block** anything, anywhere (deploys
17
+ * included): claim creation always succeeds and reports the complete
18
+ * `conflicts[]`.
19
+ * - **Message cursors are OPAQUE** (`mcr_…`): store the page's `cursor` and
20
+ * echo it back next time — never parse one. An unusable cursor never
21
+ * errors; the page returns `reset: true` + `earliest_cursor`.
22
+ *
23
+ * Every response interface carries an index signature so additive gateway
24
+ * fields pass through untyped.
25
+ */
26
+ /** A platform-synthesized drill-down suggestion attached to a rooms response. */
27
+ export interface RoomNextAction {
28
+ type: string;
29
+ method?: string;
30
+ path?: string;
31
+ command?: string;
32
+ why?: string;
33
+ [key: string]: unknown;
34
+ }
35
+ /** One session-grained presence in a room. */
36
+ export interface RoomPresence {
37
+ /** Opaque presence id (`prs_…`). */
38
+ presence_id: string;
39
+ /** Room-unique display name (server-assigned like `GreenCastle`, or your requested name, possibly suffixed). */
40
+ name: string;
41
+ /** Display-only "what I'm working on" line, or null. */
42
+ task: string | null;
43
+ /** Display-only program/harness label (e.g. `claude-code`), or null. */
44
+ program: string | null;
45
+ /** Display-only model label, or null. */
46
+ model: string | null;
47
+ /** Server-reported presence state (`"active"` in v1; future states are reserved for the escalation ladder). */
48
+ state: string;
49
+ /** Bumped by any coordination call from this presence. */
50
+ last_active: string;
51
+ /** Liveness expiry (~1h of silence); any coordination call extends it. */
52
+ expires_at: string;
53
+ /** Count of this presence's active claims. Present on list reads. */
54
+ active_claims?: number;
55
+ [key: string]: unknown;
56
+ }
57
+ /**
58
+ * Response of {@link Rooms.registerPresence} — the created presence plus the
59
+ * name-resolution report and the platform's suggested next call.
60
+ */
61
+ export interface PresenceRegistration extends RoomPresence {
62
+ /** Echo of the name you asked for. Present only when `requestedName` was sent. */
63
+ requested_name?: string;
64
+ /**
65
+ * True when the room's forever-unique name index suffixed your requested
66
+ * name (`Opus` → `Opus-2`); `name` carries the resolved result.
67
+ */
68
+ renamed?: boolean;
69
+ next_actions?: RoomNextAction[];
70
+ }
71
+ /** Options for {@link Rooms.registerPresence}. All fields are display-only metadata. */
72
+ export interface RegisterPresenceOptions {
73
+ /**
74
+ * Self-chosen name — honored verbatim when free, else deterministically
75
+ * suffixed against the room's forever-unique index (reported via
76
+ * `renamed: true`, never an error). Omit for a server-assigned memorable
77
+ * name.
78
+ */
79
+ requestedName?: string;
80
+ /** What you're working on — shown to the other presences. */
81
+ task?: string;
82
+ /** Program/harness label, e.g. `claude-code`. */
83
+ program?: string;
84
+ /** Model label, e.g. `fable-5`. */
85
+ model?: string;
86
+ }
87
+ /** Options for {@link Rooms.listPresences}. */
88
+ export interface ListPresencesOptions {
89
+ /** Include expired presences (history) alongside live ones. */
90
+ includeExpired?: boolean;
91
+ /** Exact-name lookup. */
92
+ name?: string;
93
+ }
94
+ /** Response of {@link Rooms.listPresences}. */
95
+ export interface RoomPresenceList {
96
+ presences: RoomPresence[];
97
+ [key: string]: unknown;
98
+ }
99
+ /** Per-recipient addressing + ack state on a message. */
100
+ export interface RoomMessageRecipient {
101
+ /** Recipient presence name. */
102
+ name: string;
103
+ /** Addressing lane: direct (`to`) or courtesy copy (`cc`). */
104
+ kind: "to" | "cc";
105
+ ack_required: boolean;
106
+ /** When this recipient acked, or null. */
107
+ acked_at: string | null;
108
+ [key: string]: unknown;
109
+ }
110
+ /**
111
+ * One room message. Messages are ROOM-VISIBLE — `recipients` routes
112
+ * attention, it is not access control. List reads carry `body_snippet` only
113
+ * (`body_truncated` says whether it was cut); the full `body` arrives on
114
+ * get-one — the view truncates, the data never does.
115
+ */
116
+ export interface RoomMessage {
117
+ /** Opaque message id (`msg_…`). */
118
+ message_id: string;
119
+ /** This message's own opaque cursor (`mcr_…`) — a valid `cursor` input to resume after it. */
120
+ cursor: string;
121
+ room_key: string;
122
+ /** Sender presence name. */
123
+ sender: string;
124
+ /** Bounded preview of the body. */
125
+ body_snippet: string;
126
+ /** True when `body_snippet` is shorter than the full body. */
127
+ body_truncated: boolean;
128
+ /** Full markdown body. Present on get-one only. */
129
+ body?: string;
130
+ thread_id: string | null;
131
+ importance: "normal" | "high";
132
+ /** True when the sender asked addressees to ack. */
133
+ ack_required: boolean;
134
+ recipients: RoomMessageRecipient[];
135
+ created_at: string;
136
+ [key: string]: unknown;
137
+ }
138
+ /** Input for {@link Rooms.sendMessage}. */
139
+ export interface SendRoomMessageInput {
140
+ /** Markdown body, ≤32 KiB (over-cap is a 400 — never truncated). Required. */
141
+ body: string;
142
+ /** Presence names to address directly. Attention routing, not access control. */
143
+ to?: string[];
144
+ /** Presence names to courtesy-copy. */
145
+ cc?: string[];
146
+ /** Thread to reply into. */
147
+ threadId?: string;
148
+ importance?: "normal" | "high";
149
+ /** Ask addressees to ack (their ack state rides `recipients[]`). */
150
+ ackRequired?: boolean;
151
+ /**
152
+ * Dedup key per (room, sender presence): a replayed send returns the
153
+ * ORIGINAL stored message with `deduplicated: true` instead of a new row.
154
+ */
155
+ idempotencyKey?: string;
156
+ /** Send as this existing presence (`prs_…`). Omit to resolve-or-create your live presence implicitly. */
157
+ presenceId?: string;
158
+ /** Name for the implicit presence-creation case — same honored-or-suffixed semantics as registration. */
159
+ requestedName?: string;
160
+ /** Task metadata for the implicit presence-creation case. */
161
+ task?: string;
162
+ }
163
+ /**
164
+ * Response of {@link Rooms.sendMessage} — the stored message plus send-time
165
+ * riders: your resolved presence, the room's other live presences, and the
166
+ * platform's suggested next call.
167
+ */
168
+ export interface SentRoomMessage extends RoomMessage {
169
+ /** True when `idempotencyKey` matched an earlier send: this is the ORIGINAL stored message, not a new row. */
170
+ deduplicated: boolean;
171
+ /** The presence the message was attributed to (yours). */
172
+ sender_presence: RoomPresence;
173
+ /** Other live presences in the room at send time (your own excluded). */
174
+ live_presences: RoomPresence[];
175
+ next_actions: RoomNextAction[];
176
+ }
177
+ /** Options for {@link Rooms.listMessages}. */
178
+ export interface ListRoomMessagesOptions {
179
+ /**
180
+ * Opaque cursor (`mcr_…`) from a prior page. Returns messages strictly
181
+ * after it, oldest-first. Ascending mode only — omit on first contact to
182
+ * start from the earliest retained message.
183
+ */
184
+ cursor?: string;
185
+ /** `"asc"` (default — catch-up polling) or `"desc"` (newest-first display). */
186
+ order?: "asc" | "desc";
187
+ /** Desc mode only: page older than this cursor (`before_cursor` from a prior page). */
188
+ before?: string;
189
+ /** Restrict to one thread. */
190
+ threadId?: string;
191
+ /** `"me"`: only messages addressed to your presence. Requires a live presence. */
192
+ addressedTo?: "me";
193
+ /** Only messages past your presence's read watermark. Requires a live presence. */
194
+ unread?: boolean;
195
+ /** Read as this presence (`prs_…`) when your credential holds several. */
196
+ presenceId?: string;
197
+ /** Page size (server default 50, max 200). */
198
+ limit?: number;
199
+ }
200
+ /** One page of room messages (events-feed cursor semantics). */
201
+ export interface RoomMessagePage {
202
+ messages: RoomMessage[];
203
+ /** High-water catch-up cursor: store and pass back as `{ cursor }` next time. Present even on an empty page. */
204
+ cursor: string;
205
+ /** True when more messages are immediately available past `cursor`. */
206
+ has_more: boolean;
207
+ /**
208
+ * True when the supplied cursor was unusable (malformed or below
209
+ * retention). The page restarts from the earliest retained message and
210
+ * `earliest_cursor` is provided — never a bare error.
211
+ */
212
+ reset?: boolean;
213
+ /** Present only when `reset` is true: a cursor just before the earliest retained message. */
214
+ earliest_cursor?: string;
215
+ /** Desc mode only: keyset cursor for the next-older page; absent on the oldest retained page. */
216
+ before_cursor?: string;
217
+ [key: string]: unknown;
218
+ }
219
+ /** Options for {@link Rooms.ackMessage}. */
220
+ export interface AckRoomMessageOptions {
221
+ /** Ack as this presence (`prs_…`) when your credential holds several. */
222
+ presenceId?: string;
223
+ }
224
+ /** Response of {@link Rooms.ackMessage}. Idempotent — a replay reports the ORIGINAL `acked_at`. */
225
+ export interface RoomAckResult {
226
+ message_id: string;
227
+ acked_at: string;
228
+ /** True when the ack had already been recorded; `acked_at` is the original time. */
229
+ already_acked: boolean;
230
+ [key: string]: unknown;
231
+ }
232
+ /**
233
+ * One advisory claim ("I'm editing `repo:src/auth/**` for the next hour").
234
+ * Advisory means advisory: a claim never blocks anything, anywhere.
235
+ */
236
+ export interface RoomClaim {
237
+ /** Opaque claim id (`clm_…`). */
238
+ claim_id: string;
239
+ /**
240
+ * Claimed resource. Namespaces: `repo:<glob>` (glob-overlap conflict
241
+ * detection), `function:<name>`, `table:<name>`, `deploy`, or free-form
242
+ * (exact match).
243
+ */
244
+ resource: string;
245
+ mode: "exclusive" | "shared";
246
+ note: string | null;
247
+ /** Holder's presence name. */
248
+ holder: string;
249
+ /** Auto-expiry — claims lapse on their own. */
250
+ expires_at: string;
251
+ /** Present on history reads (`includeInactive`): when the claim was explicitly released, or null. */
252
+ released_at?: string | null;
253
+ created_at: string;
254
+ [key: string]: unknown;
255
+ }
256
+ /**
257
+ * Response of {@link Rooms.createClaim} — grant-and-report: the claim was
258
+ * granted regardless; `conflicts` is the complete overlap report.
259
+ */
260
+ export interface CreatedRoomClaim extends RoomClaim {
261
+ /** Overlapping active claims held by other live presences. Complete, never trimmed — and never a block. */
262
+ conflicts: RoomClaim[];
263
+ }
264
+ /** Input for {@link Rooms.createClaim}. */
265
+ export interface CreateRoomClaimInput {
266
+ /** Resource to claim (see {@link RoomClaim.resource} for the namespace grammar). Required. */
267
+ resource: string;
268
+ /** Required: `exclusive` conflicts with everything overlapping; `shared` conflicts only with `exclusive`. */
269
+ mode: "exclusive" | "shared";
270
+ /** Seconds until auto-expiry (server default 3600, max 86400). */
271
+ ttlSeconds?: number;
272
+ /** Display-only context for the other agents. */
273
+ note?: string;
274
+ /** Claim as this presence (`prs_…`). Omit to resolve-or-create your live presence implicitly. */
275
+ presenceId?: string;
276
+ }
277
+ /** Options for {@link Rooms.listClaims}. */
278
+ export interface ListRoomClaimsOptions {
279
+ /** Include released/expired claims (history) alongside active ones. */
280
+ includeInactive?: boolean;
281
+ }
282
+ /** Response of {@link Rooms.listClaims}. */
283
+ export interface RoomClaimList {
284
+ claims: RoomClaim[];
285
+ [key: string]: unknown;
286
+ }
287
+ /** Response of {@link Rooms.releaseClaim}. Idempotent — a replay reports the original time. */
288
+ export interface RoomClaimReleaseResult {
289
+ claim_id: string;
290
+ /** When the claim was released (the original time on a replay). */
291
+ released_at: string | null;
292
+ /** True when the claim had already been released. */
293
+ already_released: boolean;
294
+ [key: string]: unknown;
295
+ }
296
+ //# sourceMappingURL=rooms.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/rooms.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Request/response types for the `rooms` namespace — agent-messaging
3
+ * coordination rooms (`/orgs/v1/:org_id/rooms/:room_key/*`): session-grained
4
+ * presences, room-visible addressed messages, and TTL-expiring advisory
5
+ * claims.
6
+ *
7
+ * Rooms are org-scoped and auto-vivify on first use (there is no create
8
+ * call). A room key equal to a project id is that project's DEFAULT room —
9
+ * the zero-config rendezvous for agents sharing a `run402.config.json`.
10
+ * Load-bearing conventions:
11
+ *
12
+ * - **Presence names are unique per room, forever** (never recycled). A
13
+ * `requestedName` is honored verbatim when free, else deterministically
14
+ * suffixed (`Opus` → `Opus-2`) with the registration reporting
15
+ * `renamed: true` — never an error, never a retry.
16
+ * - **Claims are advisory and never block** anything, anywhere (deploys
17
+ * included): claim creation always succeeds and reports the complete
18
+ * `conflicts[]`.
19
+ * - **Message cursors are OPAQUE** (`mcr_…`): store the page's `cursor` and
20
+ * echo it back next time — never parse one. An unusable cursor never
21
+ * errors; the page returns `reset: true` + `earliest_cursor`.
22
+ *
23
+ * Every response interface carries an index signature so additive gateway
24
+ * fields pass through untyped.
25
+ */
26
+ export {};
27
+ //# sourceMappingURL=rooms.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.types.js","sourceRoot":"","sources":["../../src/namespaces/rooms.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}