@axiom-lattice/client-sdk 4.3.2 → 4.3.6

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 (45) hide show
  1. package/dist/__tests__/project-rooms.test.js +0 -66
  2. package/dist/__tests__/project-rooms.test.js.map +1 -1
  3. package/dist/__tests__/room-events.test.d.ts +2 -0
  4. package/dist/__tests__/room-events.test.d.ts.map +1 -0
  5. package/dist/__tests__/room-events.test.js +144 -0
  6. package/dist/__tests__/room-events.test.js.map +1 -0
  7. package/dist/__tests__/runtime-client.test.d.ts +10 -0
  8. package/dist/__tests__/runtime-client.test.d.ts.map +1 -0
  9. package/dist/__tests__/runtime-client.test.js +113 -0
  10. package/dist/__tests__/runtime-client.test.js.map +1 -0
  11. package/dist/__tests__/workspace-rooms.test.d.ts +2 -0
  12. package/dist/__tests__/workspace-rooms.test.d.ts.map +1 -0
  13. package/dist/__tests__/workspace-rooms.test.js +116 -0
  14. package/dist/__tests__/workspace-rooms.test.js.map +1 -0
  15. package/dist/client.d.ts +4 -0
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +4 -0
  18. package/dist/client.js.map +1 -1
  19. package/dist/index.d.ts +201 -46
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +411 -181
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +408 -181
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/project-room-hydrators.d.ts +18 -0
  26. package/dist/project-room-hydrators.d.ts.map +1 -0
  27. package/dist/project-room-hydrators.js +95 -0
  28. package/dist/project-room-hydrators.js.map +1 -0
  29. package/dist/project-rooms.d.ts +3 -51
  30. package/dist/project-rooms.d.ts.map +1 -1
  31. package/dist/project-rooms.js +5 -178
  32. package/dist/project-rooms.js.map +1 -1
  33. package/dist/room-events.d.ts +108 -0
  34. package/dist/room-events.d.ts.map +1 -0
  35. package/dist/room-events.js +127 -0
  36. package/dist/room-events.js.map +1 -0
  37. package/dist/runtime-client.d.ts +67 -0
  38. package/dist/runtime-client.d.ts.map +1 -0
  39. package/dist/runtime-client.js +122 -0
  40. package/dist/runtime-client.js.map +1 -0
  41. package/dist/workspace-rooms.d.ts +26 -0
  42. package/dist/workspace-rooms.d.ts.map +1 -0
  43. package/dist/workspace-rooms.js +67 -0
  44. package/dist/workspace-rooms.js.map +1 -0
  45. package/package.json +2 -2
@@ -75,70 +75,4 @@ describe("Client.projectRooms", () => {
75
75
  expect(client.clone().projectRooms).toBeDefined();
76
76
  });
77
77
  });
78
- function sseBody(chunks) {
79
- const encoder = new TextEncoder();
80
- return new ReadableStream({ start(controller) { for (const chunk of chunks)
81
- controller.enqueue(encoder.encode(chunk)); controller.close(); } });
82
- }
83
- describe("Project Room SSE", () => {
84
- it("parses controls, fragmented business frames, ids, retry, and hydrates dates", async () => {
85
- fetchMock.mockResolvedValueOnce({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: sseBody([
86
- ": heartbeat\r\nevent: ready\r\ndata: {\"epoch\":\"e\",\"headEventId\":null}\r\n\r\n",
87
- "event: task.changed\r\nid: e:1\r\nretry: 500\r\ndata: {\"id\":\"e:1\",\"type\":\"task.changed\",\"occurredAt\":\"2026-01-01T00:00:00.000Z\",\"data\":{\"taskId\":\"t\",\"status\":\"pending\",\"ownerMembershipId\":\"b\",\"updatedAt\":\"2026-01-02T00:00:00.000Z\"}}\r\n\r\n",
88
- "event: resync\ndata: {\"reason\":\"CURSOR_EXPIRED\"}\n\n",
89
- ]) });
90
- const rooms = new ProjectRoomsClient("https://gateway", () => ({ Authorization: "Bearer token" }));
91
- const connection = rooms.events.connect("project/one", { lastEventId: "e:0", signal: new AbortController().signal });
92
- await expect(connection.opened).resolves.toEqual({ status: 200, lastEventId: "e:0" });
93
- const frames = [];
94
- for await (const frame of connection)
95
- frames.push(frame);
96
- expect(frames[0].event).toEqual({ type: "ready", data: { epoch: "e", headEventId: null } });
97
- expect(frames[1]).toEqual(expect.objectContaining({ id: "e:1", retry: 500 }));
98
- expect(frames[1].event.occurredAt).toBeInstanceOf(Date);
99
- expect(frames[2].event).toEqual({ type: "resync", data: { reason: "CURSOR_EXPIRED" } });
100
- });
101
- it("opens after HTTP validation before body data and sends bearer/cursor headers", async () => {
102
- let release;
103
- fetchMock.mockReturnValueOnce(new Promise((resolve) => { release = resolve; }));
104
- const controller = new AbortController();
105
- const rooms = new ProjectRoomsClient("https://gateway", () => ({ Authorization: "Bearer token" }));
106
- const connection = rooms.events.connect("project/one", { lastEventId: "e:7", signal: controller.signal });
107
- release({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: new ReadableStream({ start(controller) { controller.close(); } }) });
108
- await expect(connection.opened).resolves.toEqual({ status: 200, lastEventId: "e:7" });
109
- expect(fetchMock).toHaveBeenCalledWith("https://gateway/api/projects/project%2Fone/room/events", expect.objectContaining({ headers: expect.objectContaining({ Accept: "text/event-stream", Authorization: "Bearer token", "Last-Event-ID": "e:7" }), signal: controller.signal }));
110
- });
111
- it("rejects malformed event shapes and aborts without a network error", async () => {
112
- fetchMock.mockResolvedValueOnce({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: sseBody(["event: task.changed\nid: e:1\ndata: {\"id\":\"e:2\",\"type\":\"task.changed\"}\n\n"]) });
113
- const rooms = new ProjectRoomsClient("https://gateway", () => ({}));
114
- const connection = rooms.events.connect("p", { signal: new AbortController().signal });
115
- await expect((async () => { for await (const frame of connection)
116
- void frame; })()).rejects.toMatchObject({ code: "INVALID_EVENT" });
117
- });
118
- it("rejects an SSE frame larger than the transport cap", async () => {
119
- const oversized = "x".repeat(1024 * 1024 + 1);
120
- fetchMock.mockResolvedValueOnce({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: sseBody([`event: ready\ndata: {"epoch":"${oversized}","headEventId":null}\n\n`]) });
121
- const connection = new ProjectRoomsClient("https://gateway", () => ({})).events.connect("p", { signal: new AbortController().signal });
122
- await expect((async () => { for await (const frame of connection)
123
- void frame; })()).rejects.toMatchObject({ code: "INVALID_EVENT" });
124
- });
125
- it("cancels the reader when iteration stops early", async () => {
126
- const cancel = jest.fn().mockResolvedValue(undefined);
127
- const body = { getReader: () => ({ read: jest.fn().mockResolvedValue({ done: false, value: new TextEncoder().encode("event: ready\ndata: {\"epoch\":\"e\",\"headEventId\":null}\n\n") }), cancel, releaseLock: jest.fn() }) };
128
- fetchMock.mockResolvedValueOnce({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body });
129
- const connection = new ProjectRoomsClient("https://gateway", () => ({})).events.connect("p", { signal: new AbortController().signal });
130
- for await (const frame of connection) {
131
- void frame;
132
- break;
133
- }
134
- await Promise.resolve();
135
- expect(cancel).toHaveBeenCalled();
136
- });
137
- it("wraps parser and nested hydration failures as typed INVALID_EVENT errors", async () => {
138
- fetchMock.mockResolvedValueOnce({ ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: sseBody(["event: message.created\nid: e:1\ndata: {\"id\":\"e:1\",\"type\":\"message.created\",\"occurredAt\":\"bad\",\"data\":{\"message\":{}}}\n\n"]) });
139
- const connection = new ProjectRoomsClient("https://gateway", () => ({})).events.connect("p", { signal: new AbortController().signal });
140
- await expect((async () => { for await (const frame of connection)
141
- void frame; })()).rejects.toMatchObject({ name: "ProjectRoomClientError", status: 400, code: "INVALID_EVENT" });
142
- });
143
- });
144
78
  //# sourceMappingURL=project-rooms.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-rooms.test.js","sourceRoot":"","sources":["../../src/__tests__/project-rooms.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-rooms.test.js","sourceRoot":"","sources":["../../src/__tests__/project-rooms.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=room-events.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-events.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/room-events.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,144 @@
1
+ import { Client } from "../client";
2
+ import { ProjectRoomClientError } from "../project-rooms";
3
+ import { RoomEventsClient } from "../room-events";
4
+ const fetchMock = jest.fn();
5
+ function sseBody(chunks) {
6
+ const encoder = new TextEncoder();
7
+ return new ReadableStream({ start(controller) { for (const chunk of chunks)
8
+ controller.enqueue(encoder.encode(chunk)); controller.close(); } });
9
+ }
10
+ function sseResponse(chunks) {
11
+ return { ok: true, status: 200, headers: new Headers({ "content-type": "text/event-stream" }), body: sseBody(chunks) };
12
+ }
13
+ function errorResponse(status, code) {
14
+ return { ok: false, status, json: async () => ({ success: false, error: { code, message: "denied", retryable: false } }) };
15
+ }
16
+ const scope = { tenantId: "tenant-1", roomId: "room-1", projectId: "project-1" };
17
+ function messageFixture() {
18
+ return { id: "message-1", roomId: "room-1", author: { type: "human", userId: "user-1" }, content: { type: "text", text: "hello" }, mentions: [], source: "user", createdAt: "2026-01-01T00:00:00.000Z" };
19
+ }
20
+ beforeEach(() => {
21
+ fetchMock.mockReset();
22
+ global.fetch = fetchMock;
23
+ });
24
+ async function collect(connection) {
25
+ const frames = [];
26
+ for await (const frame of connection)
27
+ frames.push(frame);
28
+ return frames;
29
+ }
30
+ describe("RoomEventsClient", () => {
31
+ it("hydrates the ready control frame", async () => {
32
+ fetchMock.mockResolvedValueOnce(sseResponse(["event: ready\ndata: {\"epoch\":\"e\",\"headEventId\":null}\n\n"]));
33
+ const connection = new RoomEventsClient("https://gateway", () => ({})).connect("workspace/one", { signal: new AbortController().signal });
34
+ await expect(connection.opened).resolves.toEqual({ status: 200 });
35
+ const frames = await collect(connection);
36
+ expect(frames[0].event).toEqual({ type: "ready", data: { epoch: "e", headEventId: null } });
37
+ expect(frames[0].id).toBeUndefined();
38
+ expect(fetchMock.mock.calls[0][0]).toBe("https://gateway/api/workspaces/workspace%2Fone/room-events");
39
+ });
40
+ it("hydrates a scoped message.created business frame", async () => {
41
+ const data = JSON.stringify({ id: "e:1", type: "message.created", occurredAt: "2026-01-02T00:00:00.000Z", data: { message: messageFixture() }, scope });
42
+ fetchMock.mockResolvedValueOnce(sseResponse([`id: e:1\nevent: message.created\ndata: ${data}\n\n`]));
43
+ const connection = new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal });
44
+ const frames = await collect(connection);
45
+ expect(frames[0].id).toBe("e:1");
46
+ const event = frames[0].event;
47
+ expect(event.type).toBe("message.created");
48
+ expect(event.scope).toEqual(scope);
49
+ expect(event.occurredAt).toBeInstanceOf(Date);
50
+ expect(event.data.message.createdAt).toBeInstanceOf(Date);
51
+ });
52
+ it("hydrates a user-channel read.changed frame without scope", async () => {
53
+ const data = JSON.stringify({ id: "e:2", type: "read.changed", occurredAt: "2026-01-02T00:00:00.000Z", data: { projectId: "project-1", roomId: "room-1", lastReadAt: "2026-01-03T00:00:00.000Z" } });
54
+ fetchMock.mockResolvedValueOnce(sseResponse([`id: e:2\nevent: read.changed\ndata: ${data}\n\n`]));
55
+ const connection = new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal });
56
+ const frames = await collect(connection);
57
+ const event = frames[0].event;
58
+ expect(event.type).toBe("read.changed");
59
+ expect(event.data.projectId).toBe("project-1");
60
+ expect(event.data.lastReadAt).toBeInstanceOf(Date);
61
+ expect("scope" in event).toBe(false);
62
+ });
63
+ it("accepts every membership.affected change value and rejects invalid ones", async () => {
64
+ const frame = (id, change) => `id: ${id}\nevent: membership.affected\ndata: ${JSON.stringify({ id, type: "membership.affected", occurredAt: "2026-01-02T00:00:00.000Z", data: { change, projectId: "project-1", roomId: "room-1" } })}\n\n`;
65
+ fetchMock.mockResolvedValueOnce(sseResponse([frame("e:1", "added"), frame("e:2", "removed"), frame("e:3", "role_changed")]));
66
+ const rooms = new RoomEventsClient("https://gateway", () => ({}));
67
+ const frames = await collect(rooms.connect("w", { signal: new AbortController().signal }));
68
+ expect(frames).toHaveLength(3);
69
+ expect(frames[2].event.data.change).toBe("role_changed");
70
+ fetchMock.mockResolvedValueOnce(sseResponse([frame("e:4", "banned")]));
71
+ await expect(collect(rooms.connect("w", { signal: new AbortController().signal }))).rejects.toMatchObject({ status: 400, code: "INVALID_EVENT" });
72
+ });
73
+ it("accepts every access.revoked reason", async () => {
74
+ const chunks = ["PROJECT_ACCESS_REVOKED", "TOKEN_EXPIRED", "CONNECTION_SUPERSEDED"].map((reason) => `event: access.revoked\ndata: {"reason":"${reason}"}\n\n`);
75
+ fetchMock.mockResolvedValueOnce(sseResponse(chunks));
76
+ const frames = await collect(new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal }));
77
+ expect(frames.map((f) => f.event)).toEqual([
78
+ { type: "access.revoked", data: { reason: "PROJECT_ACCESS_REVOKED" } },
79
+ { type: "access.revoked", data: { reason: "TOKEN_EXPIRED" } },
80
+ { type: "access.revoked", data: { reason: "CONNECTION_SUPERSEDED" } },
81
+ ]);
82
+ });
83
+ it("passes unknown business events through without killing the stream", async () => {
84
+ const unknown = JSON.stringify({ id: "e:9", type: "future.event", occurredAt: "2026-01-02T00:00:00.000Z", data: { x: 1 }, scope });
85
+ const known = JSON.stringify({ id: "e:10", type: "read.changed", occurredAt: "2026-01-02T00:00:00.000Z", data: { projectId: "p", roomId: "r", lastReadAt: "2026-01-03T00:00:00.000Z" } });
86
+ fetchMock.mockResolvedValueOnce(sseResponse([`id: e:9\nevent: future.event\ndata: ${unknown}\n\n`, `id: e:10\nevent: read.changed\ndata: ${known}\n\n`]));
87
+ const frames = await collect(new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal }));
88
+ expect(frames).toHaveLength(2);
89
+ const event = frames[0].event;
90
+ expect(event.type).toBe("future.event");
91
+ expect(event.id).toBe("e:9");
92
+ expect(event.occurredAt).toBeInstanceOf(Date);
93
+ expect(event.data).toEqual({ x: 1 });
94
+ expect(event.scope).toEqual(scope);
95
+ expect(frames[1].event.type).toBe("read.changed");
96
+ });
97
+ it("hydrates a resync control frame and closes cleanly without INVALID_EVENT", async () => {
98
+ fetchMock.mockResolvedValueOnce(sseResponse([
99
+ "event: ready\ndata: {\"epoch\":\"e\",\"headEventId\":null}\n\n",
100
+ "event: resync\ndata: {\"reason\":\"SLOW_CONSUMER\"}\n\n",
101
+ ]));
102
+ const frames = await collect(new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal }));
103
+ expect(frames.map((f) => f.event)).toEqual([
104
+ { type: "ready", data: { epoch: "e", headEventId: null } },
105
+ { type: "resync", data: { reason: "SLOW_CONSUMER" } },
106
+ ]);
107
+ fetchMock.mockResolvedValueOnce(sseResponse(["event: resync\ndata: {\"reason\":\"BOGUS\"}\n\n"]));
108
+ await expect(collect(new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal }))).rejects.toMatchObject({ status: 400, code: "INVALID_EVENT" });
109
+ });
110
+ it("rejects frames whose data.type disagrees with the SSE event name", async () => {
111
+ fetchMock.mockResolvedValueOnce(sseResponse(["id: e:1\nevent: message.created\ndata: {\"id\":\"e:1\",\"type\":\"task.changed\"}\n\n"]));
112
+ const connection = new RoomEventsClient("https://gateway", () => ({})).connect("w", { signal: new AbortController().signal });
113
+ await expect(collect(connection)).rejects.toMatchObject({ name: "ProjectRoomClientError", status: 400, code: "INVALID_EVENT" });
114
+ });
115
+ it("rejects malformed control payloads and bad scope shapes", async () => {
116
+ const rooms = new RoomEventsClient("https://gateway", () => ({}));
117
+ fetchMock.mockResolvedValueOnce(sseResponse(["event: ready\ndata: {\"epoch\":\"e\",\"headEventId\":7}\n\n"]));
118
+ await expect(collect(rooms.connect("w", { signal: new AbortController().signal }))).rejects.toMatchObject({ status: 400, code: "INVALID_EVENT" });
119
+ const badScope = JSON.stringify({ id: "e:1", type: "message.created", occurredAt: "2026-01-02T00:00:00.000Z", data: { message: messageFixture() }, scope: { tenantId: "t" } });
120
+ fetchMock.mockResolvedValueOnce(sseResponse([`id: e:1\nevent: message.created\ndata: ${badScope}\n\n`]));
121
+ await expect(collect(rooms.connect("w", { signal: new AbortController().signal }))).rejects.toMatchObject({ status: 400, code: "INVALID_EVENT" });
122
+ });
123
+ it("resolves opened on a 200 SSE response and rejects with the envelope code on 403", async () => {
124
+ const rooms = new RoomEventsClient("https://gateway", () => ({ Authorization: "Bearer token" }));
125
+ fetchMock.mockResolvedValueOnce(sseResponse([]));
126
+ const ok = rooms.connect("w", { signal: new AbortController().signal });
127
+ await expect(ok.opened).resolves.toEqual({ status: 200 });
128
+ expect(fetchMock.mock.calls[0][1]).toEqual(expect.objectContaining({ headers: expect.objectContaining({ Accept: "text/event-stream", Authorization: "Bearer token" }) }));
129
+ expect(fetchMock.mock.calls[0][1].headers).not.toHaveProperty("Last-Event-ID");
130
+ fetchMock.mockResolvedValueOnce(errorResponse(403, "FORBIDDEN"));
131
+ const denied = rooms.connect("w", { signal: new AbortController().signal });
132
+ await expect(denied.opened).rejects.toMatchObject({ status: 403, code: "FORBIDDEN" });
133
+ await expect(denied.opened).rejects.toBeInstanceOf(ProjectRoomClientError);
134
+ await expect(collect(denied)).rejects.toMatchObject({ status: 403, code: "FORBIDDEN" });
135
+ });
136
+ it("is mounted on Client with live headers", async () => {
137
+ fetchMock.mockResolvedValueOnce(sseResponse([]));
138
+ const client = new Client({ baseURL: "https://gateway", apiKey: "token", assistantId: "a", transport: "sse" });
139
+ client.setTenantId("tenant-1");
140
+ await client.roomEvents.connect("w", { signal: new AbortController().signal }).opened;
141
+ expect(fetchMock.mock.calls[0][1]).toEqual(expect.objectContaining({ headers: expect.objectContaining({ Authorization: "Bearer token", "x-tenant-id": "tenant-1" }) }));
142
+ });
143
+ });
144
+ //# sourceMappingURL=room-events.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-events.test.js","sourceRoot":"","sources":["../../src/__tests__/room-events.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAuC,CAAC;AAEjE,SAAS,OAAO,CAAC,MAAgB;IAC/B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,IAAI,cAAc,CAAC,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAgB;IACnC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAc,CAAC;AACrI,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,IAAY;IACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,EAAc,CAAC;AACzI,CAAC;AAED,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACjF,SAAS,cAAc;IACrB,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC;AAC3M,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,SAAS,CAAC,SAAS,EAAE,CAAC;IACtB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,OAAO,CAAI,UAA4B;IACpD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1I,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxJ,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,0CAA0C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAA8E,CAAC;QACvG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QACrM,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,uCAAuC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAA2E,CAAC;QACpG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,MAAc,EAAU,EAAE,CAAC,OAAO,EAAE,uCAAuC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;QACpQ,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAmF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAExI,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACpJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,CAAC,wBAAwB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,2CAA2C,MAAM,QAAQ,CAAC,CAAC;QAC/J,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE;YACtE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;SACtE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACnI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC1L,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,uCAAuC,OAAO,MAAM,EAAE,wCAAwC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1J,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzI,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAmC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAE,KAA6B,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAoC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC;YAC1C,gEAAgE;YAChE,yDAAyD;SAC1D,CAAC,CAAC,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;YAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;SACtD,CAAC,CAAC;QAEH,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAClM,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,CAAC;QACxI,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9H,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAClI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAClJ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/K,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,0CAA0C,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACpJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACjG,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1K,MAAM,CAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAEhG,SAAS,CAAC,qBAAqB,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACtF,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QAC3E,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/G,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACtF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1K,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * RuntimeAxiomClient transport tests.
3
+ *
4
+ * Asserts the reuse-first transport: the Console client's own `/api/...`
5
+ * paths land on the gateway's `/runtime/api` console mirror, baseURL points
6
+ * at the web app runtime, and the web-app identity (verified bearer or
7
+ * unverified external-user header) is injected per request.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=runtime-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-client.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtime-client.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * RuntimeAxiomClient transport tests.
3
+ *
4
+ * Asserts the reuse-first transport: the Console client's own `/api/...`
5
+ * paths land on the gateway's `/runtime/api` console mirror, baseURL points
6
+ * at the web app runtime, and the web-app identity (verified bearer or
7
+ * unverified external-user header) is injected per request.
8
+ */
9
+ import { RuntimeAxiomClient } from "../runtime-client";
10
+ const mockFetch = jest.fn();
11
+ global.fetch = mockFetch;
12
+ function mockJsonResponse(body, status = 200) {
13
+ mockFetch.mockResolvedValue({
14
+ ok: status < 400,
15
+ status,
16
+ json: async () => body,
17
+ });
18
+ }
19
+ function makeVerifiedClient(token = "tok-1") {
20
+ return new RuntimeAxiomClient({
21
+ gatewayUrl: "http://gw.test",
22
+ webAppId: "webapp_1",
23
+ assistantId: "asst-1",
24
+ transport: "sse",
25
+ identity: { mode: "verified", tokenProvider: async () => token },
26
+ });
27
+ }
28
+ function makeUnverifiedClient() {
29
+ return new RuntimeAxiomClient({
30
+ gatewayUrl: "http://gw.test/",
31
+ webAppId: "webapp_1",
32
+ assistantId: "asst-1",
33
+ transport: "sse",
34
+ identity: { mode: "unverified", userId: "vendor-user-42" },
35
+ });
36
+ }
37
+ /** Drive the transport exactly like the chat stack's threads.list does. */
38
+ async function listThreads(client) {
39
+ return client.listThreads();
40
+ }
41
+ function lastRequest() {
42
+ const [url, init] = mockFetch.mock.calls[0];
43
+ return [url, init];
44
+ }
45
+ describe("RuntimeAxiomClient", () => {
46
+ afterEach(() => mockFetch.mockClear());
47
+ it("points every Console /api path at the /runtime/api mirror", async () => {
48
+ const client = makeVerifiedClient();
49
+ mockJsonResponse({ success: true, data: { records: [] } });
50
+ await listThreads(client);
51
+ expect(mockFetch).toHaveBeenCalledTimes(1);
52
+ const [url] = lastRequest();
53
+ expect(url).toBe("http://gw.test/api/web-apps/webapp_1/runtime/api/assistants/asst-1/threads");
54
+ });
55
+ it("resolves and injects the bearer lazily (no explicit primeToken call)", async () => {
56
+ const client = makeVerifiedClient("tok-1");
57
+ mockJsonResponse({ success: true, data: { records: [] } });
58
+ await listThreads(client);
59
+ expect(new Headers(lastRequest()[1].headers).get("Authorization")).toBe("Bearer tok-1");
60
+ });
61
+ it("single-flights the token provider across concurrent requests", async () => {
62
+ const provider = jest.fn().mockResolvedValue("tok-2");
63
+ const client = new RuntimeAxiomClient({
64
+ gatewayUrl: "http://gw.test",
65
+ webAppId: "webapp_1",
66
+ assistantId: "asst-1",
67
+ transport: "sse",
68
+ identity: { mode: "verified", tokenProvider: provider },
69
+ });
70
+ mockJsonResponse({ success: true, data: { records: [] } });
71
+ await Promise.all([listThreads(client), listThreads(client)]);
72
+ expect(provider).toHaveBeenCalledTimes(1);
73
+ });
74
+ it("injects X-Axiom-External-User-Id in unverified mode (no Authorization)", async () => {
75
+ const client = makeUnverifiedClient();
76
+ mockJsonResponse({ success: true, data: { records: [] } });
77
+ await listThreads(client);
78
+ const headers = new Headers(lastRequest()[1].headers);
79
+ expect(headers.get("X-Axiom-External-User-Id")).toBe("vendor-user-42");
80
+ expect(headers.get("Authorization")).toBeNull();
81
+ });
82
+ it("trims a trailing slash from the gateway URL", async () => {
83
+ const client = makeUnverifiedClient();
84
+ mockJsonResponse({ success: true, data: { records: [] } });
85
+ await listThreads(client);
86
+ expect(lastRequest()[0]).toContain("/api/web-apps/webapp_1/runtime/api/");
87
+ });
88
+ it("rejects an unverified identity with an empty userId", () => {
89
+ expect(() => new RuntimeAxiomClient({
90
+ gatewayUrl: "http://gw.test",
91
+ webAppId: "webapp_1",
92
+ assistantId: "asst-1",
93
+ transport: "sse",
94
+ identity: { mode: "unverified", userId: "" },
95
+ })).toThrow(/non-empty userId/);
96
+ });
97
+ it("rethrows non-ok responses with a status-carrying error", async () => {
98
+ const client = makeVerifiedClient();
99
+ mockJsonResponse({ error: "nope" }, 401);
100
+ await expect(listThreads(client)).rejects.toMatchObject({ status: 401 });
101
+ });
102
+ it("clones into a sibling runtime client scoped to the cloned assistant", async () => {
103
+ const client = makeVerifiedClient("tok-1");
104
+ mockJsonResponse({ success: true, data: { records: [] } });
105
+ const clone = client.clone({ assistantId: "asst-2" });
106
+ expect(clone).not.toBe(client);
107
+ await listThreads(clone);
108
+ const [url, init] = lastRequest();
109
+ expect(url).toContain("/runtime/api/assistants/asst-2/threads");
110
+ expect(new Headers(init.headers).get("Authorization")).toBe("Bearer tok-1");
111
+ });
112
+ });
113
+ //# sourceMappingURL=runtime-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-client.test.js","sourceRoot":"","sources":["../../src/__tests__/runtime-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspace-rooms.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-rooms.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/workspace-rooms.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ import { Client } from "../client";
2
+ import { ProjectRoomClientError, ProjectRoomsClient } from "../project-rooms";
3
+ import { WorkspaceRoomsClient } from "../workspace-rooms";
4
+ const fetchMock = jest.fn();
5
+ function response(data, ok = true, status = 200) {
6
+ return { ok, status, json: async () => data };
7
+ }
8
+ function projectFixture() {
9
+ return {
10
+ id: "project-1", tenantId: "tenant-1", workspaceId: "w1",
11
+ name: "Project One", description: "desc", config: { key: "value" }, kind: "business",
12
+ createdAt: "2026-01-01T00:00:00.000Z", updatedAt: "2026-01-02T00:00:00.000Z",
13
+ };
14
+ }
15
+ function roomFixture() {
16
+ return {
17
+ id: "room-1", tenantId: "tenant-1", workspaceId: "w1", projectId: "project-1",
18
+ type: "main", name: "Main", createdAt: "2026-01-01T00:00:00.000Z", updatedAt: "2026-01-02T00:00:00.000Z",
19
+ };
20
+ }
21
+ function messageFixture() {
22
+ return { id: "message-1", roomId: "room-1", author: { type: "human", userId: "user-1" }, content: { type: "text", text: "hello" }, mentions: [], source: "user", createdAt: "2026-01-03T00:00:00.000Z" };
23
+ }
24
+ beforeEach(() => {
25
+ fetchMock.mockReset();
26
+ global.fetch = fetchMock;
27
+ });
28
+ describe("WorkspaceRoomsClient", () => {
29
+ it("lists aggregated rooms with hydrated dates and unreadCount", async () => {
30
+ fetchMock.mockResolvedValueOnce(response({
31
+ success: true,
32
+ data: {
33
+ rooms: [
34
+ {
35
+ project: projectFixture(), room: roomFixture(), lastMessage: messageFixture(),
36
+ participantCount: 3, participantNames: ["Alice", "Bob"], isPublic: true, unreadCount: 5,
37
+ },
38
+ {
39
+ project: { ...projectFixture(), id: "project-2", description: undefined, config: undefined, kind: undefined },
40
+ room: { ...roomFixture(), id: "room-2", projectId: "project-2" },
41
+ participantCount: 1, participantNames: ["Alice"], unreadCount: 0,
42
+ },
43
+ ],
44
+ },
45
+ }));
46
+ const rooms = new WorkspaceRoomsClient("https://gateway", () => ({ Authorization: "Bearer token" }));
47
+ const entries = await rooms.list("w1");
48
+ expect(fetchMock.mock.calls[0][0]).toBe("https://gateway/api/workspaces/w1/rooms");
49
+ expect(fetchMock.mock.calls[0][1]).toEqual(expect.objectContaining({ headers: { Authorization: "Bearer token" } }));
50
+ expect(entries).toHaveLength(2);
51
+ const first = entries[0];
52
+ expect(first.project.createdAt).toBeInstanceOf(Date);
53
+ expect(first.project.updatedAt).toBeInstanceOf(Date);
54
+ expect(first.room.createdAt).toBeInstanceOf(Date);
55
+ expect(first.lastMessage?.createdAt).toBeInstanceOf(Date);
56
+ expect(first.unreadCount).toBe(5);
57
+ expect(first.participantCount).toBe(3);
58
+ expect(first.participantNames).toEqual(["Alice", "Bob"]);
59
+ expect(first.isPublic).toBe(true);
60
+ const second = entries[1];
61
+ expect(second.lastMessage).toBeUndefined();
62
+ expect("lastMessage" in second).toBe(false);
63
+ expect("isPublic" in second).toBe(false);
64
+ expect(second.unreadCount).toBe(0);
65
+ });
66
+ it("rejects non-ok envelopes with ProjectRoomClientError", async () => {
67
+ fetchMock.mockResolvedValueOnce(response({ success: false, error: { code: "FORBIDDEN", message: "no access", retryable: false, details: { workspaceId: "w1" } } }, false, 403));
68
+ const rooms = new WorkspaceRoomsClient("https://gateway", () => ({}));
69
+ const error = await rooms.list("w1").catch((caught) => caught);
70
+ expect(error).toBeInstanceOf(ProjectRoomClientError);
71
+ expect(error).toEqual(expect.objectContaining({ name: "ProjectRoomClientError", status: 403, code: "FORBIDDEN", retryable: false, details: { workspaceId: "w1" } }));
72
+ });
73
+ it("maps ok-but-unsuccessful envelopes without a code to INVALID_RESPONSE", async () => {
74
+ fetchMock.mockResolvedValueOnce(response({ success: false, error: { message: "bad envelope" } }));
75
+ const rooms = new WorkspaceRoomsClient("https://gateway", () => ({}));
76
+ await expect(rooms.list("w1")).rejects.toMatchObject({ code: "INVALID_RESPONSE" });
77
+ });
78
+ it("rejects malformed entries", async () => {
79
+ fetchMock.mockResolvedValueOnce(response({ success: true, data: { rooms: [{ project: projectFixture(), room: roomFixture(), participantCount: "3", participantNames: [], unreadCount: 0 }] } }));
80
+ const rooms = new WorkspaceRoomsClient("https://gateway", () => ({}));
81
+ await expect(rooms.list("w1")).rejects.toMatchObject({ code: "INVALID_RESPONSE" });
82
+ });
83
+ });
84
+ describe("ProjectRoomsClient.markRead", () => {
85
+ it("POSTs an empty body to the read-state endpoint", async () => {
86
+ fetchMock.mockResolvedValueOnce(response({ success: true, data: { marked: true } }));
87
+ const rooms = new ProjectRoomsClient("https://gateway", () => ({}));
88
+ await rooms.messages.markRead("p1");
89
+ expect(fetchMock.mock.calls[0][0]).toBe("https://gateway/api/projects/p1/room/read-state");
90
+ const init = fetchMock.mock.calls[0][1];
91
+ expect(init.method).toBe("POST");
92
+ expect(JSON.parse(init.body)).toEqual({});
93
+ });
94
+ });
95
+ describe("public API surface", () => {
96
+ it("does not leak internal room hydrators from the package index", async () => {
97
+ const publicApi = await import("../index");
98
+ expect(publicApi).not.toHaveProperty("hydrateRoom");
99
+ expect(publicApi).not.toHaveProperty("hydrateMessage");
100
+ expect(publicApi).not.toHaveProperty("hydratePublicMember");
101
+ expect(publicApi).not.toHaveProperty("hydratePublicBot");
102
+ expect(publicApi).not.toHaveProperty("hydrateEvent");
103
+ expect(publicApi.ProjectRoomClientError).toBeDefined();
104
+ });
105
+ });
106
+ describe("Client.workspaceRooms", () => {
107
+ it("uses live headers and cloned clients expose the namespace", async () => {
108
+ fetchMock.mockResolvedValueOnce(response({ success: true, data: { rooms: [] } }));
109
+ const client = new Client({ baseURL: "https://gateway", apiKey: "token", assistantId: "a", transport: "sse" });
110
+ client.setTenantId("tenant-1");
111
+ await client.workspaceRooms.list("w1");
112
+ expect(fetchMock.mock.calls[0][1]).toEqual(expect.objectContaining({ headers: expect.objectContaining({ Authorization: "Bearer token", "x-tenant-id": "tenant-1" }) }));
113
+ expect(client.clone().workspaceRooms).toBeDefined();
114
+ });
115
+ });
116
+ //# sourceMappingURL=workspace-rooms.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-rooms.test.js","sourceRoot":"","sources":["../../src/__tests__/workspace-rooms.test.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -4,6 +4,8 @@ import { AbstractClient } from "./abstract-client";
4
4
  import { ResourcesClient } from "./resources-client";
5
5
  import { ExportImportClient } from "./export-import";
6
6
  import { ProjectRoomsClient } from "./project-rooms";
7
+ import { WorkspaceRoomsClient } from "./workspace-rooms";
8
+ import { RoomEventsClient } from "./room-events";
7
9
  /**
8
10
  * Web client class for interacting with the Axiom Lattice Agent Service API
9
11
  */
@@ -12,6 +14,8 @@ export declare class Client extends AbstractClient {
12
14
  resources: ResourcesClient;
13
15
  exportImport: ExportImportClient;
14
16
  readonly projectRooms: ProjectRoomsClient;
17
+ readonly workspaceRooms: WorkspaceRoomsClient;
18
+ readonly roomEvents: RoomEventsClient;
15
19
  /**
16
20
  * Creates a new Client instance
17
21
  * @param config - Configuration options for the client
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,UAAU,EAGV,YAAY,EAEZ,mBAAmB,EACnB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;GAEG;AACH,qBAAa,MAAO,SAAQ,cAAc;IACxC,OAAO,CAAC,OAAO,CAAyB;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,kBAAkB,CAAC;IACxC,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAEjD;;;OAGG;gBACS,MAAM,EAAE,YAAY;IAchC;;;OAGG;YACW,cAAc;IA4B5B;;;OAGG;YACW,gBAAgB;IA6C9B,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAA8B;IAEnE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBnE;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAiB1E;;OAEG;IACH,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI7C;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIpD;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc;IAI9D;;;;;OAKG;cACa,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GACA,OAAO,CAAC,CAAC,CAAC;IAgCb;;OAEG;IACH,SAAS,CAAC,aAAa,CACrB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,IAAI;IAIb;;;;;;;OAOG;IACH,YAAY,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,UAAU,CAAC,EAAE,MAAM,IAAI,EACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,IAAI;IAqEb;;;;;;;OAOG;IACH;;;;;;;;;OASG;IACI,YAAY,CACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,qBAAqB,CAAC,WAAW,CAAC;IAsBrC;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQjD,OAAO,CAAC,SAAS;CAiFlB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}