dooers-agents-client 0.15.0 → 0.15.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.
package/dist/main.cjs CHANGED
@@ -322,13 +322,13 @@ function toWireContentPart(p) {
322
322
  }
323
323
 
324
324
  // src/version.ts
325
- var PACKAGE_VERSION = "0.15.0";
325
+ var PACKAGE_VERSION = "0.15.1";
326
326
 
327
327
  // src/client.ts
328
328
  var MAX_RECONNECT_ATTEMPTS = 5;
329
329
  var RECONNECT_DELAYS = [1e3, 2e3, 4e3, 8e3, 16e3];
330
330
  var SEND_MESSAGE_TIMEOUT = 3e4;
331
- var ARTIFACTS_LIST_TIMEOUT = 3e4;
331
+ var ARTIFACTS_LIST_TIMEOUT = 5e3;
332
332
  var PING_INTERVAL_MS = 3e4;
333
333
  function blobPartFilename(blob, override) {
334
334
  const o = (override ?? "").trim();
@@ -941,6 +941,8 @@ var AgentClient = class {
941
941
  case "ack": {
942
942
  if (frame.payload.ack_id === this.connectFrameId) {
943
943
  if (frame.payload.ok) {
944
+ const sv = frame.payload.server?.version?.trim();
945
+ this.callbacks.setServerVersion(sv || null);
944
946
  this.callbacks.setConnectionStatus("connected");
945
947
  this.callbacks.resetReconnect();
946
948
  this.requestThreadList();
@@ -1194,6 +1196,29 @@ var AgentClient = class {
1194
1196
  });
1195
1197
  }
1196
1198
  };
1199
+
1200
+ // src/helpers/server-version.ts
1201
+ var THREAD_ARTIFACTS_MIN_SERVER_VERSION = "0.17.1";
1202
+ function parseSemverParts(version) {
1203
+ const core = version.trim().split("-")[0]?.split("+")[0] ?? "";
1204
+ const [maj, min, pat] = core.split(".");
1205
+ return [Number(maj) || 0, Number(min) || 0, Number(pat) || 0];
1206
+ }
1207
+ function compareSemver(a, b) {
1208
+ const [aMaj, aMin, aPat] = parseSemverParts(a);
1209
+ const [bMaj, bMin, bPat] = parseSemverParts(b);
1210
+ if (aMaj !== bMaj) return aMaj < bMaj ? -1 : 1;
1211
+ if (aMin !== bMin) return aMin < bMin ? -1 : 1;
1212
+ if (aPat !== bPat) return aPat < bPat ? -1 : 1;
1213
+ return 0;
1214
+ }
1215
+ function isServerAtLeast(version, minimum) {
1216
+ if (!version?.trim()) return false;
1217
+ return compareSemver(version, minimum) >= 0;
1218
+ }
1219
+ function supportsThreadArtifactsList(serverVersion) {
1220
+ return isServerAtLeast(serverVersion, THREAD_ARTIFACTS_MIN_SERVER_VERSION);
1221
+ }
1197
1222
  function mergeDisplayContentParts(prev, next) {
1198
1223
  if (!next?.length) return prev;
1199
1224
  if (!prev?.length) return next;
@@ -1253,6 +1278,7 @@ function createAgentStore() {
1253
1278
  connection: {
1254
1279
  status: "idle",
1255
1280
  error: null,
1281
+ serverVersion: null,
1256
1282
  sendError: null,
1257
1283
  reconnectAttempts: 0,
1258
1284
  reconnectFailed: false
@@ -1286,9 +1312,13 @@ function createAgentStore() {
1286
1312
  ...s.connection,
1287
1313
  status,
1288
1314
  error: error ?? null,
1289
- ...status === "connected" ? { sendError: null } : {}
1315
+ ...status === "connected" ? { sendError: null } : {},
1316
+ ...status === "connecting" ? { serverVersion: null } : {}
1290
1317
  }
1291
1318
  })),
1319
+ setServerVersion: (version) => set((s) => ({
1320
+ connection: { ...s.connection, serverVersion: version }
1321
+ })),
1292
1322
  setSendError: (message) => set((s) => ({
1293
1323
  connection: { ...s.connection, sendError: message }
1294
1324
  })),
@@ -1845,13 +1875,22 @@ function useConnection() {
1845
1875
  const { client } = useAgentContext();
1846
1876
  const status = useStore((s) => s.connection.status);
1847
1877
  const error = useStore((s) => s.connection.error);
1878
+ const serverVersion = useStore((s) => s.connection.serverVersion);
1848
1879
  const sendError = useStore((s) => s.connection.sendError);
1849
1880
  const reconnectFailed = useStore((s) => s.connection.reconnectFailed);
1850
1881
  const reconnect = react.useCallback(() => client.retry(), [client]);
1851
1882
  const dismissSendError = react.useCallback(() => {
1852
1883
  client.clearSendError();
1853
1884
  }, [client]);
1854
- return { status, error, sendError, dismissSendError, reconnectFailed, reconnect };
1885
+ return {
1886
+ status,
1887
+ error,
1888
+ serverVersion,
1889
+ sendError,
1890
+ dismissSendError,
1891
+ reconnectFailed,
1892
+ reconnect
1893
+ };
1855
1894
  }
1856
1895
  function useFeedback(targetId, targetType = "event") {
1857
1896
  const { client } = useAgentContext();
@@ -2214,8 +2253,12 @@ function useUpload() {
2214
2253
  exports.AgentProvider = AgentProvider;
2215
2254
  exports.AgentServerClient = AgentServerClient;
2216
2255
  exports.PACKAGE_VERSION = PACKAGE_VERSION;
2256
+ exports.THREAD_ARTIFACTS_MIN_SERVER_VERSION = THREAD_ARTIFACTS_MIN_SERVER_VERSION;
2217
2257
  exports.apiMessagesUrlToWebSocketUrl = apiMessagesUrlToWebSocketUrl;
2258
+ exports.compareSemver = compareSemver;
2259
+ exports.isServerAtLeast = isServerAtLeast;
2218
2260
  exports.isSettingsFieldGroup = isSettingsFieldGroup;
2261
+ exports.supportsThreadArtifactsList = supportsThreadArtifactsList;
2219
2262
  exports.toChartEventData = toChartEventData;
2220
2263
  exports.toFormElement = toFormElement;
2221
2264
  exports.toFormEventData = toFormEventData;