@axiom-lattice/client-sdk 2.1.59 → 2.1.61

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.
package/dist/index.mjs CHANGED
@@ -1887,6 +1887,36 @@ var AbstractClient = class {
1887
1887
  });
1888
1888
  return result;
1889
1889
  },
1890
+ /**
1891
+ * Enqueues a message into the thread's background queue without waiting for a response.
1892
+ * Uses the background flag so the server returns 202 immediately.
1893
+ * Response chunks are delivered through the shared ThreadStream SSE connection.
1894
+ * @param options - Options for the background message
1895
+ * @returns A promise resolving to the enqueued message ID
1896
+ */
1897
+ sendBackground: async (options) => {
1898
+ const message = options.messages[options.messages.length - 1];
1899
+ const { command, threadId, files, assistantId, mode, ...rest } = options;
1900
+ const response = await this.makeRequest("/api/runs", {
1901
+ method: "POST",
1902
+ body: {
1903
+ assistant_id: assistantId || this.assistantId,
1904
+ thread_id: threadId,
1905
+ message: typeof message.content === "string" ? message.content : JSON.stringify(message.content),
1906
+ message_id: message.id,
1907
+ files,
1908
+ command,
1909
+ streaming: false,
1910
+ background: true,
1911
+ mode,
1912
+ ...rest
1913
+ }
1914
+ });
1915
+ if (!response.success) {
1916
+ throw new Error(response.error || "Failed to enqueue message");
1917
+ }
1918
+ return { messageId: response.messageId, queued: response.queued };
1919
+ },
1890
1920
  /**
1891
1921
  * Sends a message to a thread and streams the response
1892
1922
  * @param options - Options for streaming a message
@@ -3800,6 +3830,97 @@ var WorkspaceClient = class {
3800
3830
  }
3801
3831
  };
3802
3832
 
3833
+ // src/export-import.ts
3834
+ var ExportImportClient = class {
3835
+ constructor(config) {
3836
+ this.baseURL = config.baseURL;
3837
+ this.headers = {
3838
+ "Content-Type": "application/json",
3839
+ Authorization: `Bearer ${config.apiKey}`,
3840
+ ...config.headers
3841
+ };
3842
+ }
3843
+ async request(url, options = {}) {
3844
+ const fullUrl = `${this.baseURL}${url}`;
3845
+ const response = await fetch(fullUrl, {
3846
+ ...options,
3847
+ headers: {
3848
+ ...this.headers,
3849
+ ...options.headers
3850
+ }
3851
+ });
3852
+ if (!response.ok) {
3853
+ const err = await response.json().catch(() => ({}));
3854
+ throw new Error(
3855
+ err.message || `HTTP error! Status: ${response.status}`
3856
+ );
3857
+ }
3858
+ return response.json();
3859
+ }
3860
+ async getExportableTypes() {
3861
+ const response = await this.request(
3862
+ "/api/tenants/exportable-types"
3863
+ );
3864
+ return response.data || [];
3865
+ }
3866
+ async exportConfig(tenantId, entityTypes) {
3867
+ const response = await this.request(
3868
+ `/api/tenants/${tenantId}/export`,
3869
+ {
3870
+ method: "POST",
3871
+ body: JSON.stringify({ entityTypes })
3872
+ }
3873
+ );
3874
+ return response.data;
3875
+ }
3876
+ async exportConfigConfirm(tenantId, entityTypes) {
3877
+ const response = await this.request(
3878
+ `/api/tenants/${tenantId}/export/confirm`,
3879
+ {
3880
+ method: "POST",
3881
+ body: JSON.stringify({ entityTypes })
3882
+ }
3883
+ );
3884
+ return response.data;
3885
+ }
3886
+ getExportDownloadUrl(tenantId, jobId) {
3887
+ return `${this.baseURL}/api/tenants/${tenantId}/export/${jobId}/download`;
3888
+ }
3889
+ async importPreview(tenantId, file) {
3890
+ const formData = new FormData();
3891
+ formData.append("file", file);
3892
+ const fullUrl = `${this.baseURL}/api/tenants/${tenantId}/import/preview`;
3893
+ const headers = { ...this.headers };
3894
+ delete headers["Content-Type"];
3895
+ const response = await fetch(fullUrl, {
3896
+ method: "POST",
3897
+ headers,
3898
+ body: formData
3899
+ });
3900
+ if (!response.ok) {
3901
+ const err = await response.json().catch(() => ({}));
3902
+ throw new Error(
3903
+ err.message || `HTTP error! Status: ${response.status}`
3904
+ );
3905
+ }
3906
+ const json = await response.json();
3907
+ if (!json.success || !json.data) {
3908
+ throw new Error(json.error || "Import preview failed");
3909
+ }
3910
+ return json.data;
3911
+ }
3912
+ async importApply(tenantId, bundle, resolutions) {
3913
+ const response = await this.request(
3914
+ `/api/tenants/${tenantId}/import/apply`,
3915
+ {
3916
+ method: "POST",
3917
+ body: JSON.stringify({ bundle, resolutions })
3918
+ }
3919
+ );
3920
+ return response.data;
3921
+ }
3922
+ };
3923
+
3803
3924
  // src/ChunkMessageMerger.ts
3804
3925
  import { parse } from "best-effort-json-parser";
3805
3926
  function createSimpleMessageMerger() {
@@ -3924,8 +4045,10 @@ function createSimpleMessageMerger() {
3924
4045
  }
3925
4046
  if (chunk_item.name)
3926
4047
  builder.name = chunk_item.name;
3927
- if (chunk_item.id)
4048
+ if (chunk_item.id) {
3928
4049
  builder.id = chunk_item.id;
4050
+ toolId_MessageIdMap.set(chunk_item.id, message.id);
4051
+ }
3929
4052
  if (chunk_item.args)
3930
4053
  builder.args += chunk_item.args;
3931
4054
  }
@@ -3996,6 +4119,7 @@ export {
3996
4119
  AuthenticationError,
3997
4120
  Client,
3998
4121
  EvalClient,
4122
+ ExportImportClient,
3999
4123
  NetworkError,
4000
4124
  ResourcesClient,
4001
4125
  ScheduleExecutionType,