@axiom-lattice/client-sdk 4.2.1 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,152 @@
1
+ import type { ProjectBotMembership, ProjectBotRole, ProjectHumanRole, ProjectMembership, ProjectRoom, ProjectRoomControlEvent, ProjectRoomMention, ProjectRoomPublicMessage, ProjectRoomPublicMembership, ProjectRoomPublicBotMembership, ProjectRoomMessageCreatedEvent, ProjectRoomRosterChangedEvent, ProjectRoomMembershipChangedEvent, ProjectRoomTaskChangedEvent } from "@axiom-lattice/protocols";
2
+ export declare class ProjectRoomClientError extends Error {
3
+ readonly status: number;
4
+ readonly code: string;
5
+ readonly retryable: boolean;
6
+ readonly details?: unknown | undefined;
7
+ constructor(message: string, status: number, code: string, retryable: boolean, details?: unknown | undefined);
8
+ }
9
+ export interface ProjectRoomRecord extends Omit<ProjectRoom, "createdAt" | "updatedAt"> {
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ }
13
+ export interface ProjectRoomMessageRecord extends Omit<ProjectRoomPublicMessage, "createdAt"> {
14
+ createdAt: Date;
15
+ }
16
+ export interface ProjectRoomMembershipRecord extends Omit<ProjectMembership, "joinedAt" | "updatedAt"> {
17
+ joinedAt: Date;
18
+ updatedAt: Date;
19
+ }
20
+ export interface ProjectRoomBotRecord extends Omit<ProjectBotMembership, "joinedAt" | "updatedAt"> {
21
+ joinedAt: Date;
22
+ updatedAt: Date;
23
+ }
24
+ export interface ProjectRoomPublicMembershipRecord extends Omit<ProjectRoomPublicMembership, "joinedAt" | "updatedAt"> {
25
+ joinedAt: Date;
26
+ updatedAt: Date;
27
+ }
28
+ export interface ProjectRoomPublicBotRecord extends Omit<ProjectRoomPublicBotMembership, "joinedAt" | "updatedAt"> {
29
+ joinedAt: Date;
30
+ updatedAt: Date;
31
+ }
32
+ export type ProjectRoomDispatchErrorCode = "BOT_PAUSED" | "TARGET_UNAVAILABLE" | "TARGET_REQUIRED" | "CHANNEL_UNAVAILABLE" | "DISPATCH_FAILED" | "DISPATCH_STATUS_UNKNOWN" | "AUTHORIZATION_REVOKED" | "ROSTER_CONFLICT";
33
+ export interface ProjectRoomDispatchResult {
34
+ membershipId?: string;
35
+ success: boolean;
36
+ errorCode?: ProjectRoomDispatchErrorCode;
37
+ }
38
+ export interface ProjectRoomSendResult {
39
+ message: ProjectRoomMessageRecord;
40
+ dispatch: ProjectRoomDispatchResult[];
41
+ replayed: boolean;
42
+ }
43
+ export interface SendProjectRoomMessageInput {
44
+ text: string;
45
+ mentions: ProjectRoomMention[];
46
+ replyToMessageId?: string;
47
+ idempotencyKey: string;
48
+ }
49
+ export interface ListProjectRoomMessagesOptions {
50
+ limit?: number;
51
+ cursor?: {
52
+ createdAt: Date;
53
+ id: string;
54
+ };
55
+ }
56
+ export interface UpdateProjectMembershipInput {
57
+ role: ProjectHumanRole;
58
+ expectedUpdatedAt: Date;
59
+ }
60
+ export interface MutationExpectedUpdatedAt {
61
+ expectedUpdatedAt: Date | string;
62
+ }
63
+ export interface AddProjectMembershipInput {
64
+ userId: string;
65
+ role: ProjectHumanRole;
66
+ }
67
+ export interface AddProjectBotMembershipInput {
68
+ assistantId: string;
69
+ role: ProjectBotRole;
70
+ title: string;
71
+ responsibility?: string;
72
+ mentionName: string;
73
+ }
74
+ export interface UpdateProjectBotMembershipInput {
75
+ role?: ProjectBotRole;
76
+ title?: string;
77
+ responsibility?: string;
78
+ mentionName?: string;
79
+ expectedUpdatedAt: Date | string;
80
+ }
81
+ export type HydratedProjectRoomBusinessEvent = (Omit<ProjectRoomMessageCreatedEvent, "occurredAt" | "data"> & {
82
+ occurredAt: Date;
83
+ data: {
84
+ message: ProjectRoomMessageRecord;
85
+ };
86
+ }) | (Omit<ProjectRoomRosterChangedEvent, "occurredAt" | "data"> & {
87
+ occurredAt: Date;
88
+ data: {
89
+ change: ProjectRoomRosterChangedEvent["data"]["change"];
90
+ membership: ProjectRoomPublicBotRecord;
91
+ };
92
+ }) | (Omit<ProjectRoomMembershipChangedEvent, "occurredAt" | "data"> & {
93
+ occurredAt: Date;
94
+ data: {
95
+ change: ProjectRoomMembershipChangedEvent["data"]["change"];
96
+ membership: ProjectRoomPublicMembershipRecord;
97
+ };
98
+ }) | (Omit<ProjectRoomTaskChangedEvent, "occurredAt" | "data"> & {
99
+ occurredAt: Date;
100
+ data: Omit<ProjectRoomTaskChangedEvent["data"], "updatedAt"> & {
101
+ updatedAt: Date;
102
+ };
103
+ });
104
+ export interface ProjectRoomSseFrame {
105
+ event: HydratedProjectRoomBusinessEvent | ProjectRoomControlEvent;
106
+ id?: string;
107
+ retry?: number;
108
+ }
109
+ type HeadersGetter = () => Record<string, string>;
110
+ export interface ProjectRoomEventConnection extends AsyncIterable<ProjectRoomSseFrame> {
111
+ readonly opened: Promise<{
112
+ status: 200;
113
+ lastEventId?: string;
114
+ }>;
115
+ }
116
+ export declare class ProjectRoomsClient {
117
+ private readonly baseURL;
118
+ private readonly getHeaders;
119
+ readonly messages: {
120
+ list: (projectId: string, options?: ListProjectRoomMessagesOptions) => Promise<ProjectRoomMessageRecord[]>;
121
+ send: (projectId: string, input: SendProjectRoomMessageInput) => Promise<ProjectRoomSendResult>;
122
+ retry: (projectId: string, messageId: string) => Promise<ProjectRoomDispatchResult[]>;
123
+ };
124
+ readonly members: {
125
+ list: (projectId: string) => Promise<ProjectRoomMembershipRecord[]>;
126
+ add: (projectId: string, input: AddProjectMembershipInput) => Promise<ProjectRoomMembershipRecord>;
127
+ update: (projectId: string, membershipId: string, input: UpdateProjectMembershipInput) => Promise<ProjectRoomMembershipRecord>;
128
+ remove: (projectId: string, membershipId: string, input: MutationExpectedUpdatedAt) => Promise<unknown>;
129
+ };
130
+ readonly bots: {
131
+ list: (projectId: string) => Promise<ProjectRoomBotRecord[]>;
132
+ add: (projectId: string, input: AddProjectBotMembershipInput) => Promise<ProjectRoomBotRecord>;
133
+ update: (projectId: string, membershipId: string, input: UpdateProjectBotMembershipInput) => Promise<ProjectRoomBotRecord>;
134
+ pause: (projectId: string, membershipId: string, input: MutationExpectedUpdatedAt) => Promise<ProjectRoomBotRecord>;
135
+ resume: (projectId: string, membershipId: string, input: MutationExpectedUpdatedAt) => Promise<ProjectRoomBotRecord>;
136
+ remove: (projectId: string, membershipId: string, input: MutationExpectedUpdatedAt) => Promise<unknown>;
137
+ };
138
+ readonly events: {
139
+ connect: (projectId: string, options: {
140
+ lastEventId?: string;
141
+ signal: AbortSignal;
142
+ }) => ProjectRoomEventConnection;
143
+ };
144
+ constructor(baseURL: string, getHeaders: HeadersGetter);
145
+ getRoom(projectId: string): Promise<ProjectRoomRecord>;
146
+ getRealtimeMode(projectId: string): Promise<unknown>;
147
+ private records;
148
+ private request;
149
+ private connect;
150
+ }
151
+ export {};
152
+ //# sourceMappingURL=project-rooms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-rooms.d.ts","sourceRoot":"","sources":["../src/project-rooms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ import { parseSseBody, SseParseError } from "./sse-parser";
2
+ export class ProjectRoomClientError extends Error {
3
+ constructor(message, status, code, retryable, details) {
4
+ super(message);
5
+ this.status = status;
6
+ this.code = code;
7
+ this.retryable = retryable;
8
+ this.details = details;
9
+ this.name = "ProjectRoomClientError";
10
+ }
11
+ }
12
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
13
+ const date = (value, field) => {
14
+ const result = value instanceof Date ? new Date(value.getTime()) : new Date(typeof value === "string" || typeof value === "number" ? value : Number.NaN);
15
+ if (!Number.isFinite(result.getTime()))
16
+ throw new ProjectRoomClientError(`Invalid ${field}`, 500, "INVALID_RESPONSE", false);
17
+ return result;
18
+ };
19
+ const requiredString = (record, field) => {
20
+ if (typeof record[field] !== "string")
21
+ throw new ProjectRoomClientError(`Invalid ${field}`, 500, "INVALID_RESPONSE", false);
22
+ return record[field];
23
+ };
24
+ const oneOf = (value, values, field) => {
25
+ if (typeof value !== "string" || !values.includes(value))
26
+ throw new ProjectRoomClientError(`Invalid ${field}`, 500, "INVALID_RESPONSE", false);
27
+ return value;
28
+ };
29
+ const messageSources = ["user", "agent", "task", "routine", "system"];
30
+ const humanRoles = ["owner", "admin", "member", "viewer"];
31
+ const memberStatuses = ["active", "removed"];
32
+ const botRoles = ["coordinator", "specialist"];
33
+ const botStatuses = ["active", "paused", "removed"];
34
+ const exactKeys = (row, required, optional = []) => {
35
+ if (required.some((key) => !Object.prototype.hasOwnProperty.call(row, key)) || Object.keys(row).some((key) => !required.includes(key) && !optional.includes(key)))
36
+ throw new ProjectRoomClientError("Invalid Project Room response", 500, "INVALID_RESPONSE", false);
37
+ };
38
+ const hydrateAuthor = (value) => {
39
+ const row = record(value);
40
+ const type = oneOf(row.type, ["human", "bot", "system"], "author.type");
41
+ if (type === "human") {
42
+ exactKeys(row, ["type", "userId"]);
43
+ return { type, userId: requiredString(row, "userId") };
44
+ }
45
+ if (type === "bot")
46
+ return { type, membershipId: requiredString(row, "membershipId") };
47
+ if (Object.keys(row).some((key) => key !== "type"))
48
+ throw new ProjectRoomClientError("Invalid author", 500, "INVALID_RESPONSE", false);
49
+ return { type };
50
+ };
51
+ const hydrateMentions = (value) => {
52
+ if (!Array.isArray(value))
53
+ throw new ProjectRoomClientError("Invalid mentions", 500, "INVALID_RESPONSE", false);
54
+ return value.map((entry) => { const row = record(entry); const type = oneOf(row.type, ["bot", "team"], "mention.type"); if (type === "team") {
55
+ if (Object.keys(row).length !== 1)
56
+ throw new ProjectRoomClientError("Invalid mention", 500, "INVALID_RESPONSE", false);
57
+ return { type };
58
+ } return { type, membershipId: requiredString(row, "membershipId") }; });
59
+ };
60
+ const record = (value) => {
61
+ if (!isRecord(value))
62
+ throw new ProjectRoomClientError("Invalid Project Room response", 500, "INVALID_RESPONSE", false);
63
+ return value;
64
+ };
65
+ const hydrateRoom = (value) => {
66
+ const row = record(value);
67
+ exactKeys(row, ["id", "tenantId", "workspaceId", "projectId", "type", "name", "createdAt", "updatedAt"]);
68
+ return { id: requiredString(row, "id"), tenantId: requiredString(row, "tenantId"), workspaceId: requiredString(row, "workspaceId"), projectId: requiredString(row, "projectId"), type: oneOf(row.type, ["main"], "type"), name: requiredString(row, "name"), createdAt: date(row.createdAt, "createdAt"), updatedAt: date(row.updatedAt, "updatedAt") };
69
+ };
70
+ const hydrateMessage = (value) => {
71
+ const row = record(value);
72
+ exactKeys(row, ["id", "roomId", "author", "content", "mentions", "source", "createdAt"], ["replyToMessageId"]);
73
+ const content = record(row.content);
74
+ if (oneOf(content.type, ["text"], "content.type") !== "text")
75
+ throw new ProjectRoomClientError("Invalid content", 500, "INVALID_RESPONSE", false);
76
+ return { id: requiredString(row, "id"), roomId: requiredString(row, "roomId"), author: hydrateAuthor(row.author), content: { type: "text", text: requiredString(content, "text") }, mentions: hydrateMentions(row.mentions), ...(row.replyToMessageId === undefined ? {} : { replyToMessageId: requiredString(row, "replyToMessageId") }), source: oneOf(row.source, messageSources, "source"), createdAt: date(row.createdAt, "createdAt") };
77
+ };
78
+ const hydrateMember = (value) => {
79
+ const row = record(value);
80
+ exactKeys(row, ["id", "tenantId", "projectId", "userId", "role", "status", "joinedAt", "updatedAt"]);
81
+ return { id: requiredString(row, "id"), tenantId: requiredString(row, "tenantId"), projectId: requiredString(row, "projectId"), userId: requiredString(row, "userId"), role: oneOf(row.role, humanRoles, "role"), status: oneOf(row.status, memberStatuses, "status"), joinedAt: date(row.joinedAt, "joinedAt"), updatedAt: date(row.updatedAt, "updatedAt") };
82
+ };
83
+ const hydrateBot = (value) => {
84
+ const row = record(value);
85
+ exactKeys(row, ["id", "tenantId", "workspaceId", "projectId", "roomId", "assistantId", "role", "title", "mentionName", "status", "roomThreadId", "joinedAt", "updatedAt"], ["responsibility"]);
86
+ return { id: requiredString(row, "id"), tenantId: requiredString(row, "tenantId"), workspaceId: requiredString(row, "workspaceId"), projectId: requiredString(row, "projectId"), roomId: requiredString(row, "roomId"), assistantId: requiredString(row, "assistantId"), role: oneOf(row.role, botRoles, "role"), title: requiredString(row, "title"), ...(row.responsibility === undefined ? {} : { responsibility: requiredString(row, "responsibility") }), mentionName: requiredString(row, "mentionName"), status: oneOf(row.status, botStatuses, "status"), roomThreadId: requiredString(row, "roomThreadId"), joinedAt: date(row.joinedAt, "joinedAt"), updatedAt: date(row.updatedAt, "updatedAt") };
87
+ };
88
+ const iso = (value) => date(value, "date").toISOString();
89
+ const hydrateDispatch = (value) => {
90
+ const row = record(value);
91
+ if (typeof row.success !== "boolean" || row.membershipId !== undefined && typeof row.membershipId !== "string" || row.errorCode !== undefined && typeof row.errorCode !== "string")
92
+ throw new ProjectRoomClientError("Invalid dispatch response", 500, "INVALID_RESPONSE", false);
93
+ return { success: row.success, ...(row.membershipId === undefined ? {} : { membershipId: row.membershipId }), ...(row.errorCode === undefined ? {} : { errorCode: row.errorCode }) };
94
+ };
95
+ const encode = encodeURIComponent;
96
+ export class ProjectRoomsClient {
97
+ constructor(baseURL, getHeaders) {
98
+ this.baseURL = baseURL;
99
+ this.getHeaders = getHeaders;
100
+ this.messages = {
101
+ list: async (projectId, options = {}) => {
102
+ const query = new URLSearchParams();
103
+ if (options.cursor) {
104
+ query.set("beforeCreatedAt", iso(options.cursor.createdAt));
105
+ query.set("beforeId", options.cursor.id);
106
+ }
107
+ if (options.limit !== undefined)
108
+ query.set("limit", String(options.limit));
109
+ const result = await this.request(`/api/projects/${encode(projectId)}/room/messages${query.toString() ? `?${query}` : ""}`);
110
+ if (!Array.isArray(result))
111
+ throw new ProjectRoomClientError("Invalid messages response", 500, "INVALID_RESPONSE", false);
112
+ return result.map(hydrateMessage);
113
+ },
114
+ send: async (projectId, input) => { const result = await this.request(`/api/projects/${encode(projectId)}/room/messages`, { method: "POST", body: { text: input.text, mentions: input.mentions, ...(input.replyToMessageId === undefined ? {} : { replyToMessageId: input.replyToMessageId }) }, headers: { "Idempotency-Key": input.idempotencyKey.trim() } }); if (!Array.isArray(result.dispatch) || typeof result.replayed !== "boolean")
115
+ throw new ProjectRoomClientError("Invalid send response", 500, "INVALID_RESPONSE", false); return { message: hydrateMessage(result.message), dispatch: result.dispatch.map(hydrateDispatch), replayed: result.replayed }; },
116
+ retry: async (projectId, messageId) => { const result = await this.request(`/api/projects/${encode(projectId)}/room/messages/${encode(messageId)}/retry`, { method: "POST", body: {} }); if (!Array.isArray(result))
117
+ throw new ProjectRoomClientError("Invalid retry response", 500, "INVALID_RESPONSE", false); return result.map(hydrateDispatch); },
118
+ };
119
+ this.members = {
120
+ list: async (projectId) => this.records(`/api/projects/${encode(projectId)}/members`, hydrateMember),
121
+ add: async (projectId, input) => hydrateMember(await this.request(`/api/projects/${encode(projectId)}/members`, { method: "POST", body: input })),
122
+ update: async (projectId, membershipId, input) => hydrateMember(await this.request(`/api/projects/${encode(projectId)}/members/${encode(membershipId)}`, { method: "PATCH", body: { role: input.role, expectedUpdatedAt: iso(input.expectedUpdatedAt) } })),
123
+ remove: async (projectId, membershipId, input) => this.request(`/api/projects/${encode(projectId)}/members/${encode(membershipId)}?expectedUpdatedAt=${encode(iso(input.expectedUpdatedAt))}`, { method: "DELETE" }),
124
+ };
125
+ this.bots = {
126
+ list: async (projectId) => this.records(`/api/projects/${encode(projectId)}/bots`, hydrateBot),
127
+ add: async (projectId, input) => hydrateBot(await this.request(`/api/projects/${encode(projectId)}/bots`, { method: "POST", body: input })),
128
+ update: async (projectId, membershipId, input) => hydrateBot(await this.request(`/api/projects/${encode(projectId)}/bots/${encode(membershipId)}`, { method: "PATCH", body: { ...input, expectedUpdatedAt: iso(input.expectedUpdatedAt) } })),
129
+ pause: async (projectId, membershipId, input) => hydrateBot(await this.request(`/api/projects/${encode(projectId)}/bots/${encode(membershipId)}/pause`, { method: "POST", body: { expectedUpdatedAt: iso(input.expectedUpdatedAt) } })),
130
+ resume: async (projectId, membershipId, input) => hydrateBot(await this.request(`/api/projects/${encode(projectId)}/bots/${encode(membershipId)}/resume`, { method: "POST", body: { expectedUpdatedAt: iso(input.expectedUpdatedAt) } })),
131
+ remove: async (projectId, membershipId, input) => this.request(`/api/projects/${encode(projectId)}/bots/${encode(membershipId)}?expectedUpdatedAt=${encode(iso(input.expectedUpdatedAt))}`, { method: "DELETE" }),
132
+ };
133
+ this.events = { connect: (projectId, options) => this.connect(projectId, options) };
134
+ }
135
+ async getRoom(projectId) { return hydrateRoom(await this.request(`/api/projects/${encode(projectId)}/room`)); }
136
+ async getRealtimeMode(projectId) { return this.request(`/api/projects/${encode(projectId)}/room/realtime-mode`); }
137
+ async records(path, hydrate) {
138
+ const result = await this.request(path);
139
+ if (!Array.isArray(result))
140
+ throw new ProjectRoomClientError("Invalid records response", 500, "INVALID_RESPONSE", false);
141
+ return result.map(hydrate);
142
+ }
143
+ async request(path, options = {}) {
144
+ const headers = { ...this.getHeaders(), ...(options.headers ?? {}) };
145
+ const body = options.body === undefined ? undefined : JSON.parse(JSON.stringify(options.body));
146
+ const response = await fetch(`${this.baseURL}${path}`, { method: options.method ?? "GET", headers, ...(body === undefined ? {} : { body: JSON.stringify(body) }) });
147
+ const payload = await response.json().catch(() => undefined);
148
+ if (!response.ok || !payload?.success) {
149
+ const error = payload?.error;
150
+ throw new ProjectRoomClientError(typeof error?.message === "string" ? error.message : "Project Room request failed", response.status, typeof error?.code === "string" ? error.code : response.ok ? "INVALID_RESPONSE" : "HTTP_ERROR", error?.retryable === true, error?.details);
151
+ }
152
+ if (!Object.prototype.hasOwnProperty.call(payload, "data"))
153
+ throw new ProjectRoomClientError("Missing response data", 500, "INVALID_RESPONSE", false);
154
+ return payload.data;
155
+ }
156
+ connect(projectId, options) {
157
+ const headers = { ...this.getHeaders(), Accept: "text/event-stream", ...(options.lastEventId ? { "Last-Event-ID": options.lastEventId } : {}) };
158
+ let resolveOpen;
159
+ let rejectOpen;
160
+ const opened = new Promise((resolve, reject) => { resolveOpen = resolve; rejectOpen = reject; });
161
+ const responsePromise = fetch(`${this.baseURL}/api/projects/${encode(projectId)}/room/events`, { headers, signal: options.signal }).then(async (response) => {
162
+ if (!response.ok) {
163
+ const payload = await response.json().catch(() => undefined);
164
+ const error = payload?.error;
165
+ throw new ProjectRoomClientError(typeof error?.message === "string" ? error.message : "Project Room stream failed", response.status, typeof error?.code === "string" ? error.code : "HTTP_ERROR", error?.retryable === true, error?.details);
166
+ }
167
+ if (response.headers?.get && response.headers.get("content-type")?.split(";")[0].trim() !== "text/event-stream")
168
+ throw new ProjectRoomClientError("Project Room stream has invalid content type", response.status, "INVALID_RESPONSE", false);
169
+ if (!response.body)
170
+ throw new ProjectRoomClientError("Project Room stream has no body", 500, "INVALID_RESPONSE", false);
171
+ resolveOpen({ status: 200, ...(options.lastEventId === undefined ? {} : { lastEventId: options.lastEventId }) });
172
+ return response;
173
+ }).catch((error) => { rejectOpen(error); throw error; });
174
+ const stream = (async function* () {
175
+ const response = await responsePromise;
176
+ const body = response.body;
177
+ if (!body)
178
+ throw new ProjectRoomClientError("Project Room stream has no body", 500, "INVALID_RESPONSE", false);
179
+ for await (const raw of parseSseBody(body, { strictJsonObject: true })) {
180
+ try {
181
+ const event = raw.event;
182
+ const payload = isRecord(raw.data) ? raw.data : undefined;
183
+ let value = payload;
184
+ if (event === "ready" || event === "resync" || event === "access.revoked") {
185
+ if (!payload || Object.prototype.hasOwnProperty.call(payload, "type"))
186
+ throw new ProjectRoomClientError("Invalid SSE control", 200, "INVALID_EVENT", false);
187
+ value = { type: event, data: payload };
188
+ }
189
+ else {
190
+ if (typeof payload?.type !== "string" || payload.type !== event || typeof payload.id !== "string" || raw.id !== payload.id)
191
+ throw new ProjectRoomClientError("Invalid SSE business event", 200, "INVALID_EVENT", false);
192
+ value = payload;
193
+ }
194
+ yield { event: hydrateEvent(value), ...(raw.id === undefined ? {} : { id: raw.id }), ...(raw.retry === undefined ? {} : { retry: raw.retry }) };
195
+ }
196
+ catch (error) {
197
+ if (error instanceof ProjectRoomClientError && error.code === "INVALID_EVENT")
198
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false, error.details);
199
+ if (error instanceof SseParseError)
200
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false);
201
+ if (error instanceof ProjectRoomClientError)
202
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false, error.details);
203
+ throw new ProjectRoomClientError("Invalid SSE event", 400, "INVALID_EVENT", false);
204
+ }
205
+ }
206
+ })();
207
+ return { opened, [Symbol.asyncIterator]: () => stream };
208
+ }
209
+ }
210
+ function hydrateEvent(value) {
211
+ const row = record(value);
212
+ if (row.type === "ready") {
213
+ exactKeys(row, ["type", "data"]);
214
+ const data = record(row.data);
215
+ exactKeys(data, ["epoch", "headEventId"]);
216
+ if (typeof data.epoch !== "string" || data.headEventId !== null && typeof data.headEventId !== "string")
217
+ throw new ProjectRoomClientError("Invalid SSE control", 200, "INVALID_EVENT", false);
218
+ return { type: "ready", data: { epoch: data.epoch, headEventId: data.headEventId } };
219
+ }
220
+ if (row.type === "resync" || row.type === "access.revoked") {
221
+ exactKeys(row, ["type", "data"]);
222
+ const data = record(row.data);
223
+ exactKeys(data, ["reason"]);
224
+ const reasons = row.type === "resync" ? ["SERVER_RESTART", "CURSOR_EXPIRED", "SLOW_CONSUMER"] : ["PROJECT_ACCESS_REVOKED", "TOKEN_EXPIRED"];
225
+ return { type: row.type, data: { reason: oneOf(data.reason, reasons, "reason") } };
226
+ }
227
+ const data = record(row.data);
228
+ if (row.type === "message.created")
229
+ return { ...row, occurredAt: date(row.occurredAt, "occurredAt"), data: { message: hydrateMessage(data.message) } };
230
+ if (row.type === "roster.changed")
231
+ return { ...row, occurredAt: date(row.occurredAt, "occurredAt"), data: { change: data.change, membership: hydratePublicBot(data.membership) } };
232
+ if (row.type === "membership.changed")
233
+ return { ...row, occurredAt: date(row.occurredAt, "occurredAt"), data: { change: data.change, membership: hydratePublicMember(data.membership) } };
234
+ if (row.type === "task.changed")
235
+ return { ...row, occurredAt: date(row.occurredAt, "occurredAt"), data: { taskId: requiredString(data, "taskId"), status: data.status, ownerMembershipId: requiredString(data, "ownerMembershipId"), updatedAt: date(data.updatedAt, "updatedAt") } };
236
+ throw new ProjectRoomClientError("Invalid SSE event", 200, "INVALID_EVENT", false);
237
+ }
238
+ function hydratePublicMember(value) { const row = record(value); return { id: requiredString(row, "id"), userId: requiredString(row, "userId"), role: row.role, status: row.status, joinedAt: date(row.joinedAt, "joinedAt"), updatedAt: date(row.updatedAt, "updatedAt") }; }
239
+ function hydratePublicBot(value) { const row = record(value); return { id: requiredString(row, "id"), role: row.role, title: requiredString(row, "title"), ...(row.responsibility === undefined ? {} : { responsibility: row.responsibility }), mentionName: requiredString(row, "mentionName"), status: row.status, joinedAt: date(row.joinedAt, "joinedAt"), updatedAt: date(row.updatedAt, "updatedAt") }; }
240
+ //# sourceMappingURL=project-rooms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-rooms.js","sourceRoot":"","sources":["../src/project-rooms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface SseParserOptions {
2
+ strictJsonObject?: boolean;
3
+ }
4
+ export interface ParsedSseFrame {
5
+ event: string;
6
+ data: unknown;
7
+ id?: string;
8
+ retry?: number;
9
+ }
10
+ export declare class SseParseError extends Error {
11
+ readonly code = "INVALID_EVENT";
12
+ constructor(message: string);
13
+ }
14
+ export declare function parseSseBody(body: ReadableStream<Uint8Array>, options?: SseParserOptions): AsyncIterableIterator<ParsedSseFrame>;
15
+ //# sourceMappingURL=sse-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-parser.d.ts","sourceRoot":"","sources":["../src/sse-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAAG,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAAE;AACjE,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AAE9F,qBAAa,aAAc,SAAQ,KAAK;IAAG,QAAQ,CAAC,IAAI,mBAAmB;gBAAa,OAAO,EAAE,MAAM;CAAoD;AAE3J,wBAAuB,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,gBAAqB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAwB3I"}
@@ -0,0 +1,101 @@
1
+ export class SseParseError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.code = "INVALID_EVENT";
5
+ this.name = "SseParseError";
6
+ }
7
+ }
8
+ export async function* parseSseBody(body, options = {}) {
9
+ const reader = body.getReader();
10
+ const decoder = new TextDecoder();
11
+ let buffer = "";
12
+ let event = "";
13
+ let id;
14
+ let retry;
15
+ let data = [];
16
+ const dispatch = () => {
17
+ if (data.length === 0) {
18
+ event = "";
19
+ id = undefined;
20
+ retry = undefined;
21
+ return undefined;
22
+ }
23
+ let parsed;
24
+ try {
25
+ parsed = JSON.parse(data.join("\n"));
26
+ }
27
+ catch {
28
+ throw new SseParseError("Invalid SSE JSON");
29
+ }
30
+ if (options.strictJsonObject && (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)))
31
+ throw new SseParseError("SSE data must be an object");
32
+ const result = { event, data: parsed, ...(id === undefined ? {} : { id }), ...(retry === undefined ? {} : { retry }) };
33
+ event = "";
34
+ id = undefined;
35
+ retry = undefined;
36
+ data = [];
37
+ return result;
38
+ };
39
+ const processLine = (raw) => {
40
+ const line = raw.endsWith("\r") ? raw.slice(0, -1) : raw;
41
+ if (line === "")
42
+ return dispatch();
43
+ if (line.startsWith(":"))
44
+ return undefined;
45
+ const separator = line.indexOf(":");
46
+ const field = separator < 0 ? line : line.slice(0, separator);
47
+ let value = separator < 0 ? "" : line.slice(separator + 1);
48
+ if (value.startsWith(" "))
49
+ value = value.slice(1);
50
+ if (field === "event")
51
+ event = value;
52
+ else if (field === "data")
53
+ data.push(value);
54
+ else if (field === "id")
55
+ id = value;
56
+ else if (field === "retry") {
57
+ const parsed = Number(value);
58
+ if (!Number.isInteger(parsed) || parsed < 0 || !Number.isFinite(parsed))
59
+ throw new SseParseError("Invalid SSE retry");
60
+ retry = parsed;
61
+ }
62
+ return undefined;
63
+ };
64
+ try {
65
+ while (true) {
66
+ const chunk = await reader.read();
67
+ if (chunk.done) {
68
+ buffer += decoder.decode();
69
+ break;
70
+ }
71
+ buffer += decoder.decode(chunk.value, { stream: true });
72
+ let index = findLineBreak(buffer);
73
+ while (index >= 0) {
74
+ if (buffer[index] === "\r" && index === buffer.length - 1)
75
+ break;
76
+ const frame = processLine(buffer.slice(0, index));
77
+ buffer = buffer.slice(index + lineBreakLength(buffer, index));
78
+ if (frame)
79
+ yield frame;
80
+ index = findLineBreak(buffer);
81
+ }
82
+ }
83
+ if (buffer) {
84
+ const frame = processLine(buffer);
85
+ if (frame)
86
+ yield frame;
87
+ }
88
+ const frame = processLine("");
89
+ if (frame)
90
+ yield frame;
91
+ }
92
+ finally {
93
+ await reader.cancel().catch(() => undefined);
94
+ reader.releaseLock();
95
+ }
96
+ }
97
+ function findLineBreak(value) { const lf = value.indexOf("\n"); const cr = value.indexOf("\r"); if (lf < 0)
98
+ return cr; if (cr < 0)
99
+ return lf; return Math.min(lf, cr); }
100
+ function lineBreakLength(value, index) { return value[index] === "\r" && value[index + 1] === "\n" ? 2 : 1; }
101
+ //# sourceMappingURL=sse-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-parser.js","sourceRoot":"","sources":["../src/sse-parser.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAAoC,YAAY,OAAe;QAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAAtE,SAAI,GAAG,eAAe,CAAC;QAAgD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAAC,CAAC;CAAE;AAE3J,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CAAC,IAAgC,EAAE,UAA4B,EAAE;IAClG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAAC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IACnE,IAAI,MAAM,GAAG,EAAE,CAAC;IAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAAC,IAAI,EAAsB,CAAC;IAAC,IAAI,KAAyB,CAAC;IAAC,IAAI,IAAI,GAAa,EAAE,CAAC;IACpH,MAAM,QAAQ,GAAG,GAA+B,EAAE;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,KAAK,GAAG,EAAE,CAAC;YAAC,EAAE,GAAG,SAAS,CAAC;YAAC,KAAK,GAAG,SAAS,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QAC3F,IAAI,MAAe,CAAC;QAAC,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QACzH,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAChK,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACvH,KAAK,GAAG,EAAE,CAAC;QAAC,EAAE,GAAG,SAAS,CAAC;QAAC,KAAK,GAAG,SAAS,CAAC;QAAC,IAAI,GAAG,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC;IAC1E,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAW,EAA8B,EAAE;QAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,QAAQ,EAAE,CAAC;QAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAAC,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClN,IAAI,KAAK,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAC;aAChC,IAAI,KAAK,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC,IAAI,KAAK,KAAK,IAAI;YAAE,EAAE,GAAG,KAAK,CAAC;aAC/B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAAC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAAC,KAAK,GAAG,MAAM,CAAC;QAAC,CAAC;QACpM,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM;YAAC,CAAC;YAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;gBAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM;gBAAC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBAAC,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;QAAC,CAAC;QACxc,IAAI,MAAM,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QAAC,CAAC;QAAC,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAAC,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC;IACnI,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAAC,CAAC;AACnF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,IAAY,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACxL,SAAS,eAAe,CAAC,KAAa,EAAE,KAAa,IAAY,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiom-lattice/client-sdk",
3
- "version": "4.2.1",
3
+ "version": "4.3.1",
4
4
  "description": "TypeScript client SDK for interacting with the Agent Service API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "best-effort-json-parser": "^1.2.1",
34
- "@axiom-lattice/protocols": "4.1.1"
34
+ "@axiom-lattice/protocols": "4.1.2"
35
35
  },
36
36
  "scripts": {
37
37
  "build": "tsc &&tsup src/index.ts --format cjs,esm --dts --sourcemap",