@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
@@ -0,0 +1,108 @@
1
+ import type { ProjectRoomEventScope } from "@axiom-lattice/protocols";
2
+ import type { ProjectRoomMessageRecord, ProjectRoomPublicBotRecord, ProjectRoomPublicMembershipRecord } from "./project-rooms";
3
+ /** Routing scope attached to room-scoped frames by the workspace stream. */
4
+ export type RoomEventScopeRecord = ProjectRoomEventScope;
5
+ export type WorkspaceRoomKnownBusinessEvent = {
6
+ type: "message.created";
7
+ id: string;
8
+ occurredAt: Date;
9
+ scope: RoomEventScopeRecord;
10
+ data: {
11
+ message: ProjectRoomMessageRecord;
12
+ };
13
+ } | {
14
+ type: "roster.changed";
15
+ id: string;
16
+ occurredAt: Date;
17
+ scope: RoomEventScopeRecord;
18
+ data: {
19
+ change: string;
20
+ membership: ProjectRoomPublicBotRecord;
21
+ };
22
+ } | {
23
+ type: "membership.changed";
24
+ id: string;
25
+ occurredAt: Date;
26
+ scope: RoomEventScopeRecord;
27
+ data: {
28
+ change: string;
29
+ membership: ProjectRoomPublicMembershipRecord;
30
+ };
31
+ } | {
32
+ type: "task.changed";
33
+ id: string;
34
+ occurredAt: Date;
35
+ scope: RoomEventScopeRecord;
36
+ data: {
37
+ taskId: string;
38
+ status: string;
39
+ ownerMembershipId: string;
40
+ updatedAt: Date;
41
+ };
42
+ } | {
43
+ type: "read.changed";
44
+ id: string;
45
+ occurredAt: Date;
46
+ data: {
47
+ projectId: string;
48
+ roomId: string;
49
+ lastReadAt: Date;
50
+ };
51
+ } | {
52
+ type: "membership.affected";
53
+ id: string;
54
+ occurredAt: Date;
55
+ data: {
56
+ change: "added" | "removed" | "role_changed";
57
+ projectId: string;
58
+ roomId: string;
59
+ };
60
+ };
61
+ /** A business event of a type this client version does not know (forward compatibility). */
62
+ export interface WorkspaceRoomUnknownBusinessEvent {
63
+ type: string;
64
+ id: string;
65
+ occurredAt: Date;
66
+ data: unknown;
67
+ scope?: RoomEventScopeRecord;
68
+ }
69
+ export type WorkspaceRoomBusinessEvent = WorkspaceRoomKnownBusinessEvent | WorkspaceRoomUnknownBusinessEvent;
70
+ export type WorkspaceRoomControlEvent = {
71
+ type: "ready";
72
+ data: {
73
+ epoch: string;
74
+ headEventId: string | null;
75
+ };
76
+ } | {
77
+ type: "resync";
78
+ data: {
79
+ reason: "SERVER_RESTART" | "CURSOR_EXPIRED" | "SLOW_CONSUMER";
80
+ };
81
+ } | {
82
+ type: "access.revoked";
83
+ data: {
84
+ reason: "PROJECT_ACCESS_REVOKED" | "TOKEN_EXPIRED" | "CONNECTION_SUPERSEDED";
85
+ };
86
+ };
87
+ export interface WorkspaceRoomEventFrame {
88
+ event: WorkspaceRoomBusinessEvent | WorkspaceRoomControlEvent;
89
+ id?: string;
90
+ retry?: number;
91
+ }
92
+ export interface WorkspaceRoomEventConnection extends AsyncIterable<WorkspaceRoomEventFrame> {
93
+ readonly opened: Promise<{
94
+ status: 200;
95
+ }>;
96
+ }
97
+ type HeadersGetter = () => Record<string, string>;
98
+ /** Live-only workspace-scoped room events SSE client (no cursor, replay, or resync). */
99
+ export declare class RoomEventsClient {
100
+ private readonly baseURL;
101
+ private readonly getHeaders;
102
+ constructor(baseURL: string, getHeaders: HeadersGetter);
103
+ connect(workspaceId: string, options: {
104
+ signal: AbortSignal;
105
+ }): WorkspaceRoomEventConnection;
106
+ }
107
+ export {};
108
+ //# sourceMappingURL=room-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-events.d.ts","sourceRoot":"","sources":["../src/room-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { parseSseBody, SseParseError } from "./sse-parser";
2
+ import { ProjectRoomClientError } from "./project-rooms";
3
+ import { date, hydrateMessage, hydratePublicBot, hydratePublicMember, isRecord } from "./project-room-hydrators";
4
+ const invalidFrame = (message) => new ProjectRoomClientError(message, 200, "INVALID_EVENT", false);
5
+ const requiredString = (row, field) => {
6
+ if (typeof row[field] !== "string")
7
+ throw invalidFrame(`Invalid ${field}`);
8
+ return row[field];
9
+ };
10
+ const oneOf = (value, values, field) => {
11
+ if (typeof value !== "string" || !values.includes(value))
12
+ throw invalidFrame(`Invalid ${field}`);
13
+ return value;
14
+ };
15
+ const hydrateScope = (value) => {
16
+ if (!isRecord(value))
17
+ throw invalidFrame("Invalid scope");
18
+ return { tenantId: requiredString(value, "tenantId"), roomId: requiredString(value, "roomId"), projectId: requiredString(value, "projectId") };
19
+ };
20
+ const hydrateControl = (event, payload) => {
21
+ if (event === "ready") {
22
+ if (typeof payload.epoch !== "string" || payload.headEventId !== null && typeof payload.headEventId !== "string" || Object.keys(payload).some((key) => key !== "epoch" && key !== "headEventId"))
23
+ throw invalidFrame("Invalid SSE control");
24
+ return { type: "ready", data: { epoch: payload.epoch, headEventId: payload.headEventId } };
25
+ }
26
+ if (Object.keys(payload).some((key) => key !== "reason"))
27
+ throw invalidFrame("Invalid SSE control");
28
+ if (event === "resync")
29
+ return { type: "resync", data: { reason: oneOf(payload.reason, ["SERVER_RESTART", "CURSOR_EXPIRED", "SLOW_CONSUMER"], "reason") } };
30
+ return { type: "access.revoked", data: { reason: oneOf(payload.reason, ["PROJECT_ACCESS_REVOKED", "TOKEN_EXPIRED", "CONNECTION_SUPERSEDED"], "reason") } };
31
+ };
32
+ const ROOM_SCOPED_TYPES = ["message.created", "roster.changed", "membership.changed", "task.changed"];
33
+ function hydrateWorkspaceFrame(raw) {
34
+ const payload = isRecord(raw.data) ? raw.data : undefined;
35
+ if (raw.event === "ready" || raw.event === "resync" || raw.event === "access.revoked") {
36
+ if (!payload || Object.prototype.hasOwnProperty.call(payload, "type"))
37
+ throw invalidFrame("Invalid SSE control");
38
+ return hydrateControl(raw.event, payload);
39
+ }
40
+ if (typeof payload?.type !== "string" || payload.type !== raw.event || typeof payload.id !== "string" || raw.id !== payload.id)
41
+ throw invalidFrame("Invalid SSE business event");
42
+ const occurredAt = date(payload.occurredAt, "occurredAt");
43
+ const scope = payload.scope === undefined ? undefined : hydrateScope(payload.scope);
44
+ const roomScoped = ROOM_SCOPED_TYPES.includes(payload.type);
45
+ if (roomScoped && scope === undefined)
46
+ throw invalidFrame("Invalid SSE business event scope");
47
+ const data = payload.data;
48
+ if (payload.type === "message.created") {
49
+ if (!isRecord(data))
50
+ throw invalidFrame("Invalid SSE business event data");
51
+ return { type: payload.type, id: payload.id, occurredAt, scope: scope, data: { message: hydrateMessage(data.message) } };
52
+ }
53
+ if (payload.type === "roster.changed") {
54
+ if (!isRecord(data))
55
+ throw invalidFrame("Invalid SSE business event data");
56
+ return { type: payload.type, id: payload.id, occurredAt, scope: scope, data: { change: requiredString(data, "change"), membership: hydratePublicBot(data.membership) } };
57
+ }
58
+ if (payload.type === "membership.changed") {
59
+ if (!isRecord(data))
60
+ throw invalidFrame("Invalid SSE business event data");
61
+ return { type: payload.type, id: payload.id, occurredAt, scope: scope, data: { change: requiredString(data, "change"), membership: hydratePublicMember(data.membership) } };
62
+ }
63
+ if (payload.type === "task.changed") {
64
+ if (!isRecord(data))
65
+ throw invalidFrame("Invalid SSE business event data");
66
+ return { type: payload.type, id: payload.id, occurredAt, scope: scope, data: { taskId: requiredString(data, "taskId"), status: requiredString(data, "status"), ownerMembershipId: requiredString(data, "ownerMembershipId"), updatedAt: date(data.updatedAt, "updatedAt") } };
67
+ }
68
+ if (payload.type === "read.changed") {
69
+ if (!isRecord(data))
70
+ throw invalidFrame("Invalid SSE business event data");
71
+ return { type: payload.type, id: payload.id, occurredAt, data: { projectId: requiredString(data, "projectId"), roomId: requiredString(data, "roomId"), lastReadAt: date(data.lastReadAt, "lastReadAt") } };
72
+ }
73
+ if (payload.type === "membership.affected") {
74
+ if (!isRecord(data))
75
+ throw invalidFrame("Invalid SSE business event data");
76
+ return { type: payload.type, id: payload.id, occurredAt, data: { change: oneOf(data.change, ["added", "removed", "role_changed"], "change"), projectId: requiredString(data, "projectId"), roomId: requiredString(data, "roomId") } };
77
+ }
78
+ return { type: payload.type, id: payload.id, occurredAt, data: payload.data, ...(scope === undefined ? {} : { scope }) };
79
+ }
80
+ /** Live-only workspace-scoped room events SSE client (no cursor, replay, or resync). */
81
+ export class RoomEventsClient {
82
+ constructor(baseURL, getHeaders) {
83
+ this.baseURL = baseURL;
84
+ this.getHeaders = getHeaders;
85
+ }
86
+ connect(workspaceId, options) {
87
+ const headers = { ...this.getHeaders(), Accept: "text/event-stream" };
88
+ let resolveOpen;
89
+ let rejectOpen;
90
+ const opened = new Promise((resolve, reject) => { resolveOpen = resolve; rejectOpen = reject; });
91
+ const responsePromise = fetch(`${this.baseURL}/api/workspaces/${encodeURIComponent(workspaceId)}/room-events`, { headers, signal: options.signal }).then(async (response) => {
92
+ if (!response.ok) {
93
+ const payload = await response.json().catch(() => undefined);
94
+ const error = payload?.error;
95
+ throw new ProjectRoomClientError(typeof error?.message === "string" ? error.message : "Workspace room events stream failed", response.status, typeof error?.code === "string" ? error.code : "HTTP_ERROR", error?.retryable === true, error?.details);
96
+ }
97
+ if (response.headers?.get && response.headers.get("content-type")?.split(";")[0].trim() !== "text/event-stream")
98
+ throw new ProjectRoomClientError("Workspace room events stream has invalid content type", response.status, "INVALID_RESPONSE", false);
99
+ if (!response.body)
100
+ throw new ProjectRoomClientError("Workspace room events stream has no body", 500, "INVALID_RESPONSE", false);
101
+ resolveOpen({ status: 200 });
102
+ return response;
103
+ }).catch((error) => { rejectOpen(error); throw error; });
104
+ const stream = (async function* () {
105
+ const response = await responsePromise;
106
+ const body = response.body;
107
+ if (!body)
108
+ throw new ProjectRoomClientError("Workspace room events stream has no body", 500, "INVALID_RESPONSE", false);
109
+ for await (const raw of parseSseBody(body, { strictJsonObject: true })) {
110
+ try {
111
+ yield { event: hydrateWorkspaceFrame(raw), ...(raw.id === undefined ? {} : { id: raw.id }), ...(raw.retry === undefined ? {} : { retry: raw.retry }) };
112
+ }
113
+ catch (error) {
114
+ if (error instanceof ProjectRoomClientError && error.code === "INVALID_EVENT")
115
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false, error.details);
116
+ if (error instanceof SseParseError)
117
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false);
118
+ if (error instanceof ProjectRoomClientError)
119
+ throw new ProjectRoomClientError(error.message, 400, "INVALID_EVENT", false, error.details);
120
+ throw new ProjectRoomClientError("Invalid SSE event", 400, "INVALID_EVENT", false);
121
+ }
122
+ }
123
+ })();
124
+ return { opened, [Symbol.asyncIterator]: () => stream };
125
+ }
126
+ }
127
+ //# sourceMappingURL=room-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-events.js","sourceRoot":"","sources":["../src/room-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { Client } from "./client";
2
+ import type { MessageChunk } from "@axiom-lattice/protocols";
3
+ import type { AgentState, ClientConfig, RunOptions } from "./types";
4
+ /**
5
+ * Identity presented to an Agent Web App runtime by {@link RuntimeAxiomClient}.
6
+ *
7
+ * Mirrors the web-app SDK identity union: `verified` sessions authenticate
8
+ * with a short-lived `Authorization: Bearer` token resolved (and refreshed)
9
+ * per transport use, while `unverified` sessions identify through the stable
10
+ * `X-Axiom-External-User-Id` header the gateway accepts without a token.
11
+ */
12
+ export type RuntimeAxiomIdentity = {
13
+ mode: "verified";
14
+ tokenProvider: () => Promise<string>;
15
+ } | {
16
+ mode: "unverified";
17
+ userId: string;
18
+ };
19
+ /**
20
+ * AxiomClient transport wired to an Agent Web App runtime instead of the
21
+ * Console. Reuse-first: only the transport differs. `baseURL` points at
22
+ * `<gateway>/api/web-apps/:webAppId/runtime`, every Console `/api/...` path
23
+ * the chat stack produces lands on the gateway's `/runtime/api` console
24
+ * mirror, and the web-app identity (bearer or external-user header) is
25
+ * injected fresh per request.
26
+ *
27
+ * The chat stack (AgentThreadContext + Chating) therefore runs unmodified.
28
+ */
29
+ export declare class RuntimeAxiomClient extends Client {
30
+ private readonly gatewayUrl;
31
+ private readonly webAppId;
32
+ private readonly identity;
33
+ private token;
34
+ private tokenPromise;
35
+ constructor(config: Omit<ClientConfig, "apiKey" | "baseURL"> & {
36
+ gatewayUrl: string;
37
+ webAppId: string;
38
+ identity: RuntimeAxiomIdentity;
39
+ });
40
+ /**
41
+ * Resolve (and cache) the current identity credential.
42
+ *
43
+ * - `verified`: resolves the bearer token from the provider (single-flight;
44
+ * call again later to force a refresh, or pass through a fresh provider).
45
+ * - `unverified`: no credential is needed; returns `""`.
46
+ *
47
+ * Transport methods resolve this lazily, so the chat stack needs no explicit
48
+ * priming — the first request triggers the token provider.
49
+ */
50
+ primeToken(): Promise<string>;
51
+ private identityHeaders;
52
+ protected getAllHeaders(): Record<string, string>;
53
+ protected makeRequest<T>(url: string, options?: {
54
+ method?: string;
55
+ body?: unknown;
56
+ headers?: Record<string, string>;
57
+ }): Promise<T>;
58
+ private getBaseUrl;
59
+ /**
60
+ * Clone into a real sibling instance sharing the runtime identity so the
61
+ * `AxiomLatticeProvider` per-assistant `clone({ assistantId })` cache keeps
62
+ * working (each clone carries its own resolved credential cache).
63
+ */
64
+ protected createInstance(config: ClientConfig): Client;
65
+ protected streamRequest(_options: RunOptions, _onEvent: (event: MessageChunk) => void, _onComplete?: (state?: AgentState) => void, _onError?: (error: Error) => void): () => void;
66
+ }
67
+ //# sourceMappingURL=runtime-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-client.d.ts","sourceRoot":"","sources":["../src/runtime-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,YAAY,CAAgC;gBAExC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;QAC7D,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,oBAAoB,CAAC;KAChC;IAcD;;;;;;;;;OASG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAWnC,OAAO,CAAC,eAAe;IAOvB,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAQjC,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAC9E,OAAO,CAAC,CAAC,CAAC;IAkCb,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAatD,SAAS,CAAC,aAAa,CACrB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACvC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,EAC1C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAChC,MAAM,IAAI;CAGd"}
@@ -0,0 +1,122 @@
1
+ import { Client } from "./client";
2
+ /**
3
+ * AxiomClient transport wired to an Agent Web App runtime instead of the
4
+ * Console. Reuse-first: only the transport differs. `baseURL` points at
5
+ * `<gateway>/api/web-apps/:webAppId/runtime`, every Console `/api/...` path
6
+ * the chat stack produces lands on the gateway's `/runtime/api` console
7
+ * mirror, and the web-app identity (bearer or external-user header) is
8
+ * injected fresh per request.
9
+ *
10
+ * The chat stack (AgentThreadContext + Chating) therefore runs unmodified.
11
+ */
12
+ export class RuntimeAxiomClient extends Client {
13
+ constructor(config) {
14
+ super({
15
+ ...config,
16
+ baseURL: `${config.gatewayUrl.replace(/\/$/, "")}/api/web-apps/${config.webAppId}/runtime`,
17
+ apiKey: "runtime-bearer",
18
+ });
19
+ this.token = null;
20
+ this.tokenPromise = null;
21
+ this.gatewayUrl = config.gatewayUrl.replace(/\/$/, "");
22
+ this.webAppId = config.webAppId;
23
+ this.identity = config.identity;
24
+ if (config.identity.mode === "unverified" && config.identity.userId.length === 0) {
25
+ throw new Error("RuntimeAxiomClient requires a non-empty userId in unverified mode");
26
+ }
27
+ }
28
+ /**
29
+ * Resolve (and cache) the current identity credential.
30
+ *
31
+ * - `verified`: resolves the bearer token from the provider (single-flight;
32
+ * call again later to force a refresh, or pass through a fresh provider).
33
+ * - `unverified`: no credential is needed; returns `""`.
34
+ *
35
+ * Transport methods resolve this lazily, so the chat stack needs no explicit
36
+ * priming — the first request triggers the token provider.
37
+ */
38
+ async primeToken() {
39
+ if (this.identity.mode !== "verified")
40
+ return "";
41
+ if (!this.tokenPromise) {
42
+ this.tokenPromise = this.identity.tokenProvider().then((token) => {
43
+ this.token = token;
44
+ return token;
45
+ });
46
+ }
47
+ return this.tokenPromise;
48
+ }
49
+ identityHeaders() {
50
+ if (this.identity.mode === "verified") {
51
+ return { Authorization: `Bearer ${this.token ?? ""}` };
52
+ }
53
+ return { "X-Axiom-External-User-Id": this.identity.userId };
54
+ }
55
+ getAllHeaders() {
56
+ const workspace = this.getWorkspaceHeaders();
57
+ return {
58
+ ...this.identityHeaders(),
59
+ ...workspace,
60
+ };
61
+ }
62
+ async makeRequest(url, options) {
63
+ await this.primeToken();
64
+ const method = options?.method ?? "GET";
65
+ const headers = {
66
+ "Content-Type": "application/json",
67
+ ...this.identityHeaders(),
68
+ ...(options?.headers ?? {}),
69
+ };
70
+ const requestOptions = { method, headers };
71
+ if (options?.body !== undefined) {
72
+ if (options.body instanceof FormData) {
73
+ requestOptions.body = options.body;
74
+ delete headers["Content-Type"];
75
+ }
76
+ else {
77
+ requestOptions.body = JSON.stringify(options.body);
78
+ }
79
+ }
80
+ const response = await fetch(`${this.getBaseUrl()}${url}`, requestOptions);
81
+ if (!response.ok) {
82
+ let message = `HTTP ${response.status}`;
83
+ try {
84
+ const body = (await response.json());
85
+ message = body.error ?? body.message ?? message;
86
+ }
87
+ catch {
88
+ /* keep the status message */
89
+ }
90
+ const error = new Error(message);
91
+ error.status = response.status;
92
+ throw error;
93
+ }
94
+ if (response.status === 204)
95
+ return undefined;
96
+ return (await response.json());
97
+ }
98
+ getBaseUrl() {
99
+ return this.config.baseURL;
100
+ }
101
+ /**
102
+ * Clone into a real sibling instance sharing the runtime identity so the
103
+ * `AxiomLatticeProvider` per-assistant `clone({ assistantId })` cache keeps
104
+ * working (each clone carries its own resolved credential cache).
105
+ */
106
+ createInstance(config) {
107
+ return new RuntimeAxiomClient({
108
+ gatewayUrl: this.gatewayUrl,
109
+ webAppId: this.webAppId,
110
+ identity: this.identity,
111
+ assistantId: config.assistantId,
112
+ transport: config.transport,
113
+ ...(config.timeout !== undefined ? { timeout: config.timeout } : {}),
114
+ ...(config.headers !== undefined ? { headers: config.headers } : {}),
115
+ ...(config.retry !== undefined ? { retry: config.retry } : {}),
116
+ });
117
+ }
118
+ streamRequest(_options, _onEvent, _onComplete, _onError) {
119
+ throw new Error("RuntimeAxiomClient uses resumeStream; chat.stream is unsupported");
120
+ }
121
+ }
122
+ //# sourceMappingURL=runtime-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-client.js","sourceRoot":"","sources":["../src/runtime-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Project } from "@axiom-lattice/protocols";
2
+ import type { ProjectRoomMessageRecord, ProjectRoomRecord } from "./project-rooms";
3
+ export interface ProjectRecord extends Omit<Project, "createdAt" | "updatedAt"> {
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ }
7
+ /** A hydrated workspace room entry from the aggregated rooms endpoint. */
8
+ export interface WorkspaceRoomEntryRecord {
9
+ project: ProjectRecord;
10
+ room: ProjectRoomRecord;
11
+ lastMessage?: ProjectRoomMessageRecord;
12
+ participantCount: number;
13
+ participantNames: string[];
14
+ isPublic?: boolean;
15
+ /** Messages after the user's read horizon, excluding the user's own messages. */
16
+ unreadCount: number;
17
+ }
18
+ /** Aggregated workspace room list client (single request, server-computed unread counts). */
19
+ export declare class WorkspaceRoomsClient {
20
+ private readonly baseURL;
21
+ private readonly getHeaders;
22
+ constructor(baseURL: string, getHeaders: () => Record<string, string>);
23
+ /** Lists the user's rooms in a workspace with last message and unread count. */
24
+ list(workspaceId: string): Promise<WorkspaceRoomEntryRecord[]>;
25
+ }
26
+ //# sourceMappingURL=workspace-rooms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-rooms.d.ts","sourceRoot":"","sources":["../src/workspace-rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC;IAAG,SAAS,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;CAAE;AAErH,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD,6FAA6F;AAC7F,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAU,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAA5C,OAAO,EAAE,MAAM,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEvG,gFAAgF;IAC1E,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAUrE"}
@@ -0,0 +1,67 @@
1
+ import { ProjectRoomClientError } from "./project-rooms";
2
+ import { hydrateMessage, hydrateRoom } from "./project-room-hydrators";
3
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
4
+ const record = (value) => {
5
+ if (!isRecord(value))
6
+ throw new ProjectRoomClientError("Invalid workspace rooms response", 500, "INVALID_RESPONSE", false);
7
+ return value;
8
+ };
9
+ const requiredString = (row, field) => {
10
+ if (typeof row[field] !== "string")
11
+ throw new ProjectRoomClientError(`Invalid ${field}`, 500, "INVALID_RESPONSE", false);
12
+ return row[field];
13
+ };
14
+ const date = (value, field) => {
15
+ const result = value instanceof Date ? new Date(value.getTime()) : new Date(typeof value === "string" ? value : Number.NaN);
16
+ if (!Number.isFinite(result.getTime()))
17
+ throw new ProjectRoomClientError(`Invalid ${field}`, 500, "INVALID_RESPONSE", false);
18
+ return result;
19
+ };
20
+ const hydrateProject = (value) => {
21
+ const row = record(value);
22
+ return {
23
+ id: requiredString(row, "id"), tenantId: requiredString(row, "tenantId"), workspaceId: requiredString(row, "workspaceId"),
24
+ name: requiredString(row, "name"),
25
+ ...(row.description === undefined ? {} : { description: requiredString(row, "description") }),
26
+ ...(row.config === undefined ? {} : { config: row.config }),
27
+ ...(row.kind === undefined ? {} : { kind: requiredString(row, "kind") }),
28
+ createdAt: date(row.createdAt, "createdAt"), updatedAt: date(row.updatedAt, "updatedAt"),
29
+ };
30
+ };
31
+ const hydrateEntry = (value) => {
32
+ const row = record(value);
33
+ const names = row.participantNames;
34
+ if (!Array.isArray(names) || names.some((n) => typeof n !== "string"))
35
+ throw new ProjectRoomClientError("Invalid participantNames", 500, "INVALID_RESPONSE", false);
36
+ if (typeof row.participantCount !== "number" || typeof row.unreadCount !== "number")
37
+ throw new ProjectRoomClientError("Invalid room entry counts", 500, "INVALID_RESPONSE", false);
38
+ return {
39
+ project: hydrateProject(row.project),
40
+ room: hydrateRoom(row.room),
41
+ ...(row.lastMessage === undefined ? {} : { lastMessage: hydrateMessage(row.lastMessage) }),
42
+ participantCount: row.participantCount,
43
+ participantNames: names,
44
+ ...(row.isPublic === undefined ? {} : { isPublic: row.isPublic === true }),
45
+ unreadCount: row.unreadCount,
46
+ };
47
+ };
48
+ /** Aggregated workspace room list client (single request, server-computed unread counts). */
49
+ export class WorkspaceRoomsClient {
50
+ constructor(baseURL, getHeaders) {
51
+ this.baseURL = baseURL;
52
+ this.getHeaders = getHeaders;
53
+ }
54
+ /** Lists the user's rooms in a workspace with last message and unread count. */
55
+ async list(workspaceId) {
56
+ const response = await fetch(`${this.baseURL}/api/workspaces/${encodeURIComponent(workspaceId)}/rooms`, { headers: this.getHeaders() });
57
+ const payload = await response.json().catch(() => undefined);
58
+ if (!response.ok || !payload?.success) {
59
+ const error = payload?.error;
60
+ throw new ProjectRoomClientError(typeof error?.message === "string" ? error.message : "Workspace rooms request failed", response.status, typeof error?.code === "string" ? error.code : response.ok ? "INVALID_RESPONSE" : "HTTP_ERROR", error?.retryable === true, error?.details);
61
+ }
62
+ if (!payload.data || !Array.isArray(payload.data.rooms))
63
+ throw new ProjectRoomClientError("Invalid workspace rooms response", 500, "INVALID_RESPONSE", false);
64
+ return (payload.data.rooms).map(hydrateEntry);
65
+ }
66
+ }
67
+ //# sourceMappingURL=workspace-rooms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-rooms.js","sourceRoot":"","sources":["../src/workspace-rooms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAiBvE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5I,MAAM,MAAM,GAAG,CAAC,KAAc,EAA2B,EAAE;IACzD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,kCAAkC,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC3H,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,GAA4B,EAAE,KAAa,EAAU,EAAE;IAC7E,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ;QAAE,MAAM,IAAI,sBAAsB,CAAC,WAAW,KAAK,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACzH,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,KAAa,EAAQ,EAAE;IACnD,MAAM,MAAM,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5H,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,WAAW,KAAK,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC7H,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAiB,EAAE;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO;QACL,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC;QACzH,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAA2B,EAAE,CAAC;QAChF,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAoB,EAAE,CAAC;QAC3F,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;KACzF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAA4B,EAAE;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,0BAA0B,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACpK,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QAAE,MAAM,IAAI,sBAAsB,CAAC,2BAA2B,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACnL,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1F,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,gBAAgB,EAAE,KAAiB;QACnC,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1E,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,6FAA6F;AAC7F,MAAM,OAAO,oBAAoB;IAC/B,YAA6B,OAAe,EAAmB,UAAwC;QAA1E,YAAO,GAAP,OAAO,CAAQ;QAAmB,eAAU,GAAV,UAAU,CAA8B;IAAG,CAAC;IAE3G,gFAAgF;IAChF,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxI,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAyJ,CAAC;QACrN,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;YAC7B,MAAM,IAAI,sBAAsB,CAAC,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtR,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,OAAO,CAAC,IAA4B,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,sBAAsB,CAAC,kCAAkC,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACvL,OAAO,CAAE,OAAO,CAAC,IAA6B,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiom-lattice/client-sdk",
3
- "version": "4.3.2",
3
+ "version": "4.3.6",
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.3"
34
+ "@axiom-lattice/protocols": "4.2.0"
35
35
  },
36
36
  "scripts": {
37
37
  "build": "tsc &&tsup src/index.ts --format cjs,esm --dts --sourcemap",