@trops/dash-core 0.1.157 → 0.1.159

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.
@@ -826,46 +826,46 @@ var themeFromUrlEvents$1 = {
826
826
  * IPC communication between main and renderer processes.
827
827
  */
828
828
 
829
- const WS_CONNECT = "ws-connect";
829
+ const WS_CONNECT$1 = "ws-connect";
830
830
  const WS_CONNECT_COMPLETE = "ws-connect-complete";
831
831
  const WS_CONNECT_ERROR = "ws-connect-error";
832
832
 
833
- const WS_DISCONNECT = "ws-disconnect";
833
+ const WS_DISCONNECT$1 = "ws-disconnect";
834
834
  const WS_DISCONNECT_COMPLETE = "ws-disconnect-complete";
835
835
  const WS_DISCONNECT_ERROR = "ws-disconnect-error";
836
836
 
837
- const WS_SEND = "ws-send";
837
+ const WS_SEND$1 = "ws-send";
838
838
  const WS_SEND_COMPLETE = "ws-send-complete";
839
839
  const WS_SEND_ERROR = "ws-send-error";
840
840
 
841
- const WS_STATUS = "ws-status";
841
+ const WS_STATUS$1 = "ws-status";
842
842
  const WS_STATUS_COMPLETE = "ws-status-complete";
843
843
  const WS_STATUS_ERROR = "ws-status-error";
844
844
 
845
- const WS_MESSAGE = "ws-message";
845
+ const WS_MESSAGE$1 = "ws-message";
846
846
 
847
- const WS_STATUS_CHANGE = "ws-status-change";
847
+ const WS_STATUS_CHANGE$1 = "ws-status-change";
848
848
 
849
- const WS_GET_ALL = "ws-get-all";
849
+ const WS_GET_ALL$1 = "ws-get-all";
850
850
  const WS_GET_ALL_COMPLETE = "ws-get-all-complete";
851
851
  const WS_GET_ALL_ERROR = "ws-get-all-error";
852
852
 
853
853
  var webSocketEvents$1 = {
854
- WS_CONNECT,
854
+ WS_CONNECT: WS_CONNECT$1,
855
855
  WS_CONNECT_COMPLETE,
856
856
  WS_CONNECT_ERROR,
857
- WS_DISCONNECT,
857
+ WS_DISCONNECT: WS_DISCONNECT$1,
858
858
  WS_DISCONNECT_COMPLETE,
859
859
  WS_DISCONNECT_ERROR,
860
- WS_SEND,
860
+ WS_SEND: WS_SEND$1,
861
861
  WS_SEND_COMPLETE,
862
862
  WS_SEND_ERROR,
863
- WS_STATUS,
863
+ WS_STATUS: WS_STATUS$1,
864
864
  WS_STATUS_COMPLETE,
865
865
  WS_STATUS_ERROR,
866
- WS_MESSAGE,
867
- WS_STATUS_CHANGE,
868
- WS_GET_ALL,
866
+ WS_MESSAGE: WS_MESSAGE$1,
867
+ WS_STATUS_CHANGE: WS_STATUS_CHANGE$1,
868
+ WS_GET_ALL: WS_GET_ALL$1,
869
869
  WS_GET_ALL_COMPLETE,
870
870
  WS_GET_ALL_ERROR,
871
871
  };
@@ -45743,7 +45743,7 @@ var controller = {
45743
45743
  generateThemeFromPalette,
45744
45744
  };
45745
45745
 
45746
- const { ipcRenderer: ipcRenderer$o } = require$$0$2;
45746
+ const { ipcRenderer: ipcRenderer$p } = require$$0$2;
45747
45747
  const {
45748
45748
  SECURE_STORE_ENCRYPTION_CHECK,
45749
45749
  SECURE_STORE_SET_DATA,
@@ -45755,10 +45755,10 @@ const {
45755
45755
  */
45756
45756
  const secureStoreApi$2 = {
45757
45757
  isEncryptionAvailable: () =>
45758
- ipcRenderer$o.invoke(SECURE_STORE_ENCRYPTION_CHECK, {}),
45758
+ ipcRenderer$p.invoke(SECURE_STORE_ENCRYPTION_CHECK, {}),
45759
45759
  saveData: (key, value) =>
45760
- ipcRenderer$o.invoke(SECURE_STORE_SET_DATA, { key, value }),
45761
- getData: (key) => ipcRenderer$o.invoke(SECURE_STORE_GET_DATA, { key }),
45760
+ ipcRenderer$p.invoke(SECURE_STORE_SET_DATA, { key, value }),
45761
+ getData: (key) => ipcRenderer$p.invoke(SECURE_STORE_GET_DATA, { key }),
45762
45762
  };
45763
45763
 
45764
45764
  var secureStoreApi_1 = secureStoreApi$2;
@@ -45769,7 +45769,7 @@ var secureStoreApi_1 = secureStoreApi$2;
45769
45769
  * Handle the workspace configuration file
45770
45770
  */
45771
45771
 
45772
- const { ipcRenderer: ipcRenderer$n } = require$$0$2;
45772
+ const { ipcRenderer: ipcRenderer$o } = require$$0$2;
45773
45773
  const {
45774
45774
  WORKSPACE_LIST,
45775
45775
  WORKSPACE_SAVE,
@@ -45786,7 +45786,7 @@ const workspaceApi$2 = {
45786
45786
  */
45787
45787
  listWorkspacesForApplication: (appId) => {
45788
45788
  console.log("listWorkspacesForApplication called with appId:", appId);
45789
- return ipcRenderer$n.invoke(WORKSPACE_LIST, { appId });
45789
+ return ipcRenderer$o.invoke(WORKSPACE_LIST, { appId });
45790
45790
  },
45791
45791
 
45792
45792
  /**
@@ -45797,7 +45797,7 @@ const workspaceApi$2 = {
45797
45797
  * @returns
45798
45798
  */
45799
45799
  saveWorkspaceForApplication: (appId, data) =>
45800
- ipcRenderer$n.invoke(WORKSPACE_SAVE, { appId, data }),
45800
+ ipcRenderer$o.invoke(WORKSPACE_SAVE, { appId, data }),
45801
45801
 
45802
45802
  /**
45803
45803
  * deleteWorkspaceForApplication
@@ -45807,7 +45807,7 @@ const workspaceApi$2 = {
45807
45807
  * @returns
45808
45808
  */
45809
45809
  deleteWorkspaceForApplication: (appId, workspaceId) =>
45810
- ipcRenderer$n.invoke(WORKSPACE_DELETE, { appId, workspaceId }),
45810
+ ipcRenderer$o.invoke(WORKSPACE_DELETE, { appId, workspaceId }),
45811
45811
  };
45812
45812
 
45813
45813
  var workspaceApi_1 = workspaceApi$2;
@@ -45819,15 +45819,15 @@ var workspaceApi_1 = workspaceApi$2;
45819
45819
  */
45820
45820
 
45821
45821
  // ipcRenderer that must be used to invoke the events
45822
- const { ipcRenderer: ipcRenderer$m } = require$$0$2;
45822
+ const { ipcRenderer: ipcRenderer$n } = require$$0$2;
45823
45823
 
45824
45824
  const { LAYOUT_LIST, LAYOUT_SAVE } = events$8;
45825
45825
 
45826
45826
  const layoutApi$2 = {
45827
45827
  listLayoutsForApplication: (appId) =>
45828
- ipcRenderer$m.invoke(LAYOUT_LIST, { appId }),
45828
+ ipcRenderer$n.invoke(LAYOUT_LIST, { appId }),
45829
45829
  saveLayoutForApplication: (appId, data) =>
45830
- ipcRenderer$m.invoke(LAYOUT_SAVE, { appId, data }),
45830
+ ipcRenderer$n.invoke(LAYOUT_SAVE, { appId, data }),
45831
45831
  };
45832
45832
 
45833
45833
  var layoutApi_1 = layoutApi$2;
@@ -45839,7 +45839,7 @@ var layoutApi_1 = layoutApi$2;
45839
45839
  */
45840
45840
 
45841
45841
  // ipcRenderer that must be used to invoke the events
45842
- const { ipcRenderer: ipcRenderer$l } = require$$0$2;
45842
+ const { ipcRenderer: ipcRenderer$m } = require$$0$2;
45843
45843
 
45844
45844
  const {
45845
45845
  DATA_JSON_TO_CSV_FILE,
@@ -45858,7 +45858,7 @@ const {
45858
45858
  const dataApi$2 = {
45859
45859
  // convert a json array of objects to a csv string and save to file
45860
45860
  convertJsonToCsvFile: (appId, jsonObject, filename) =>
45861
- ipcRenderer$l.invoke(DATA_JSON_TO_CSV_FILE, {
45861
+ ipcRenderer$m.invoke(DATA_JSON_TO_CSV_FILE, {
45862
45862
  appId,
45863
45863
  jsonObject,
45864
45864
  filename,
@@ -45866,10 +45866,10 @@ const dataApi$2 = {
45866
45866
 
45867
45867
  // convert a json array of objects to a csv string and return a string
45868
45868
  convertJsonToCsvString: (appId, jsonObject) =>
45869
- ipcRenderer$l.invoke(DATA_JSON_TO_CSV_STRING, { appId, jsonObject }),
45869
+ ipcRenderer$m.invoke(DATA_JSON_TO_CSV_STRING, { appId, jsonObject }),
45870
45870
 
45871
45871
  parseXMLStream: (filepath, outpath, start) =>
45872
- ipcRenderer$l.invoke(PARSE_XML_STREAM, {
45872
+ ipcRenderer$m.invoke(PARSE_XML_STREAM, {
45873
45873
  filepath,
45874
45874
  outpath,
45875
45875
  start,
@@ -45883,7 +45883,7 @@ const dataApi$2 = {
45883
45883
  headers = null,
45884
45884
  limit = null,
45885
45885
  ) => {
45886
- ipcRenderer$l.invoke(PARSE_CSV_STREAM, {
45886
+ ipcRenderer$m.invoke(PARSE_CSV_STREAM, {
45887
45887
  filepath,
45888
45888
  outpath,
45889
45889
  delimiter,
@@ -45894,15 +45894,15 @@ const dataApi$2 = {
45894
45894
  },
45895
45895
 
45896
45896
  readLinesFromFile: (filepath, lineCount) => {
45897
- ipcRenderer$l.invoke(READ_LINES, { filepath, lineCount });
45897
+ ipcRenderer$m.invoke(READ_LINES, { filepath, lineCount });
45898
45898
  },
45899
45899
 
45900
45900
  readJSONFromFile: (filepath, objectCount = null) => {
45901
- ipcRenderer$l.invoke(READ_JSON, { filepath, objectCount });
45901
+ ipcRenderer$m.invoke(READ_JSON, { filepath, objectCount });
45902
45902
  },
45903
45903
 
45904
45904
  readDataFromURL: (url, toFilepath) => {
45905
- ipcRenderer$l.invoke(READ_DATA_URL, { url, toFilepath });
45905
+ ipcRenderer$m.invoke(READ_DATA_URL, { url, toFilepath });
45906
45906
  },
45907
45907
 
45908
45908
  /*
@@ -45911,7 +45911,7 @@ const dataApi$2 = {
45911
45911
  * @param {object} returnEmpty the return empty object
45912
45912
  */
45913
45913
  saveData: (data, filename, append, returnEmpty, uuid) =>
45914
- ipcRenderer$l.invoke(DATA_SAVE_TO_FILE, {
45914
+ ipcRenderer$m.invoke(DATA_SAVE_TO_FILE, {
45915
45915
  data,
45916
45916
  filename,
45917
45917
  append,
@@ -45923,14 +45923,14 @@ const dataApi$2 = {
45923
45923
  * @param {string} filename the filename to read (not path)
45924
45924
  */
45925
45925
  readData: (filename, returnEmpty = []) =>
45926
- ipcRenderer$l.invoke(DATA_READ_FROM_FILE, { filename, returnEmpty }),
45926
+ ipcRenderer$m.invoke(DATA_READ_FROM_FILE, { filename, returnEmpty }),
45927
45927
 
45928
45928
  /**
45929
45929
  * transformFile
45930
45930
  * @returns
45931
45931
  */
45932
45932
  transformFile: (filepath, outFilepath, mappingFunctionBody, args) => {
45933
- ipcRenderer$l.invoke(TRANSFORM_FILE, {
45933
+ ipcRenderer$m.invoke(TRANSFORM_FILE, {
45934
45934
  filepath,
45935
45935
  outFilepath,
45936
45936
  mappingFunctionBody,
@@ -45939,7 +45939,7 @@ const dataApi$2 = {
45939
45939
  },
45940
45940
 
45941
45941
  extractColorsFromImageURL: (url) => {
45942
- ipcRenderer$l.invoke(EXTRACT_COLORS_FROM_IMAGE, {
45942
+ ipcRenderer$m.invoke(EXTRACT_COLORS_FROM_IMAGE, {
45943
45943
  url,
45944
45944
  });
45945
45945
  },
@@ -45954,7 +45954,7 @@ var dataApi_1 = dataApi$2;
45954
45954
  */
45955
45955
 
45956
45956
  // ipcRenderer that must be used to invoke the events
45957
- const { ipcRenderer: ipcRenderer$k } = require$$0$2;
45957
+ const { ipcRenderer: ipcRenderer$l } = require$$0$2;
45958
45958
 
45959
45959
  const {
45960
45960
  SETTINGS_GET,
@@ -45965,14 +45965,14 @@ const {
45965
45965
  } = events$8;
45966
45966
 
45967
45967
  const settingsApi$2 = {
45968
- getSettingsForApplication: () => ipcRenderer$k.invoke(SETTINGS_GET, {}),
45968
+ getSettingsForApplication: () => ipcRenderer$l.invoke(SETTINGS_GET, {}),
45969
45969
  saveSettingsForApplication: (data) =>
45970
- ipcRenderer$k.invoke(SETTINGS_SAVE, { data }),
45971
- getDataDirectory: () => ipcRenderer$k.invoke(SETTINGS_GET_DATA_DIR, {}),
45970
+ ipcRenderer$l.invoke(SETTINGS_SAVE, { data }),
45971
+ getDataDirectory: () => ipcRenderer$l.invoke(SETTINGS_GET_DATA_DIR, {}),
45972
45972
  setDataDirectory: (dataDirectory) =>
45973
- ipcRenderer$k.invoke(SETTINGS_SET_DATA_DIR, { dataDirectory }),
45973
+ ipcRenderer$l.invoke(SETTINGS_SET_DATA_DIR, { dataDirectory }),
45974
45974
  migrateDataDirectory: (oldDirectory, newDirectory) =>
45975
- ipcRenderer$k.invoke(SETTINGS_MIGRATE_DATA_DIR, {
45975
+ ipcRenderer$l.invoke(SETTINGS_MIGRATE_DATA_DIR, {
45976
45976
  oldDirectory,
45977
45977
  newDirectory,
45978
45978
  }),
@@ -45987,7 +45987,7 @@ var settingsApi_1 = settingsApi$2;
45987
45987
  */
45988
45988
 
45989
45989
  // ipcRenderer that must be used to invoke the events
45990
- const { ipcRenderer: ipcRenderer$j } = require$$0$2;
45990
+ const { ipcRenderer: ipcRenderer$k } = require$$0$2;
45991
45991
 
45992
45992
  const { CHOOSE_FILE } = events$8;
45993
45993
 
@@ -45999,7 +45999,7 @@ const dialogApi$2 = {
45999
45999
  */
46000
46000
  chooseFile: (allowFile = true, extensions = ["*"]) => {
46001
46001
  console.log("dialog api choose file");
46002
- return ipcRenderer$j.invoke(CHOOSE_FILE, { allowFile, extensions });
46002
+ return ipcRenderer$k.invoke(CHOOSE_FILE, { allowFile, extensions });
46003
46003
  },
46004
46004
  };
46005
46005
 
@@ -46018,7 +46018,7 @@ var dialogApi_1 = dialogApi$2;
46018
46018
  * mainApi.widgets.uninstall('Weather')
46019
46019
  */
46020
46020
 
46021
- const { ipcRenderer: ipcRenderer$i } = require$$0$2;
46021
+ const { ipcRenderer: ipcRenderer$j } = require$$0$2;
46022
46022
 
46023
46023
  const widgetApi$2 = {
46024
46024
  /**
@@ -46027,7 +46027,7 @@ const widgetApi$2 = {
46027
46027
  */
46028
46028
  list: async () => {
46029
46029
  try {
46030
- return await ipcRenderer$i.invoke("widget:list");
46030
+ return await ipcRenderer$j.invoke("widget:list");
46031
46031
  } catch (error) {
46032
46032
  console.error("[WidgetApi] Error listing widgets:", error);
46033
46033
  throw error;
@@ -46041,7 +46041,7 @@ const widgetApi$2 = {
46041
46041
  */
46042
46042
  get: async (widgetName) => {
46043
46043
  try {
46044
- return await ipcRenderer$i.invoke("widget:get", widgetName);
46044
+ return await ipcRenderer$j.invoke("widget:get", widgetName);
46045
46045
  } catch (error) {
46046
46046
  console.error(`[WidgetApi] Error getting widget ${widgetName}:`, error);
46047
46047
  throw error;
@@ -46072,7 +46072,7 @@ const widgetApi$2 = {
46072
46072
  console.log(
46073
46073
  `[WidgetApi] Installing widget: ${widgetName} from ${downloadUrl}`,
46074
46074
  );
46075
- const config = await ipcRenderer$i.invoke(
46075
+ const config = await ipcRenderer$j.invoke(
46076
46076
  "widget:install",
46077
46077
  widgetName,
46078
46078
  downloadUrl,
@@ -46112,7 +46112,7 @@ const widgetApi$2 = {
46112
46112
  console.log(
46113
46113
  `[WidgetApi] Installing local widget: ${widgetName} from ${localPath}`,
46114
46114
  );
46115
- const config = await ipcRenderer$i.invoke(
46115
+ const config = await ipcRenderer$j.invoke(
46116
46116
  "widget:install-local",
46117
46117
  widgetName,
46118
46118
  localPath,
@@ -46143,7 +46143,7 @@ const widgetApi$2 = {
46143
46143
  loadFolder: async (folderPath) => {
46144
46144
  try {
46145
46145
  console.log(`[WidgetApi] Loading widgets from folder: ${folderPath}`);
46146
- const results = await ipcRenderer$i.invoke(
46146
+ const results = await ipcRenderer$j.invoke(
46147
46147
  "widget:load-folder",
46148
46148
  folderPath,
46149
46149
  );
@@ -46167,7 +46167,7 @@ const widgetApi$2 = {
46167
46167
  uninstall: async (widgetName) => {
46168
46168
  try {
46169
46169
  console.log(`[WidgetApi] Uninstalling widget: ${widgetName}`);
46170
- const success = await ipcRenderer$i.invoke("widget:uninstall", widgetName);
46170
+ const success = await ipcRenderer$j.invoke("widget:uninstall", widgetName);
46171
46171
  if (success) {
46172
46172
  console.log(`[WidgetApi] ✓ Widget ${widgetName} uninstalled`);
46173
46173
  } else {
@@ -46190,7 +46190,7 @@ const widgetApi$2 = {
46190
46190
  */
46191
46191
  getCachePath: async () => {
46192
46192
  try {
46193
- return await ipcRenderer$i.invoke("widget:cache-path");
46193
+ return await ipcRenderer$j.invoke("widget:cache-path");
46194
46194
  } catch (error) {
46195
46195
  console.error("[WidgetApi] Error getting cache path:", error);
46196
46196
  throw error;
@@ -46204,7 +46204,7 @@ const widgetApi$2 = {
46204
46204
  */
46205
46205
  getStoragePath: async () => {
46206
46206
  try {
46207
- return await ipcRenderer$i.invoke("widget:storage-path");
46207
+ return await ipcRenderer$j.invoke("widget:storage-path");
46208
46208
  } catch (error) {
46209
46209
  console.error("[WidgetApi] Error getting storage path:", error);
46210
46210
  throw error;
@@ -46221,7 +46221,7 @@ const widgetApi$2 = {
46221
46221
  setStoragePath: async (customPath) => {
46222
46222
  try {
46223
46223
  console.log(`[WidgetApi] Setting storage path to: ${customPath}`);
46224
- const result = await ipcRenderer$i.invoke(
46224
+ const result = await ipcRenderer$j.invoke(
46225
46225
  "widget:set-storage-path",
46226
46226
  customPath,
46227
46227
  );
@@ -46243,7 +46243,7 @@ const widgetApi$2 = {
46243
46243
  */
46244
46244
  getComponentConfigs: async () => {
46245
46245
  try {
46246
- return await ipcRenderer$i.invoke("widget:get-component-configs");
46246
+ return await ipcRenderer$j.invoke("widget:get-component-configs");
46247
46247
  } catch (error) {
46248
46248
  console.error("[WidgetApi] Error getting component configs:", error);
46249
46249
  return [];
@@ -46258,7 +46258,7 @@ const widgetApi$2 = {
46258
46258
  */
46259
46259
  readBundle: async (widgetName) => {
46260
46260
  try {
46261
- return await ipcRenderer$i.invoke("widget:read-bundle", widgetName);
46261
+ return await ipcRenderer$j.invoke("widget:read-bundle", widgetName);
46262
46262
  } catch (error) {
46263
46263
  console.error(
46264
46264
  `[WidgetApi] Error reading bundle for ${widgetName}:`,
@@ -46275,7 +46275,7 @@ const widgetApi$2 = {
46275
46275
  */
46276
46276
  readAllBundles: async () => {
46277
46277
  try {
46278
- return await ipcRenderer$i.invoke("widget:read-all-bundles");
46278
+ return await ipcRenderer$j.invoke("widget:read-all-bundles");
46279
46279
  } catch (error) {
46280
46280
  console.error("[WidgetApi] Error reading all bundles:", error);
46281
46281
  return [];
@@ -46295,7 +46295,7 @@ const widgetApi$2 = {
46295
46295
  * });
46296
46296
  */
46297
46297
  onInstalled: (callback) => {
46298
- ipcRenderer$i.on("widget:installed", (event, data) => {
46298
+ ipcRenderer$j.on("widget:installed", (event, data) => {
46299
46299
  callback(data);
46300
46300
  });
46301
46301
  },
@@ -46313,7 +46313,7 @@ const widgetApi$2 = {
46313
46313
  * });
46314
46314
  */
46315
46315
  onLoaded: (callback) => {
46316
- ipcRenderer$i.on("widgets:loaded", (event, data) => {
46316
+ ipcRenderer$j.on("widgets:loaded", (event, data) => {
46317
46317
  callback(data);
46318
46318
  });
46319
46319
  },
@@ -46324,7 +46324,7 @@ const widgetApi$2 = {
46324
46324
  * @param {Function} callback - The callback to remove
46325
46325
  */
46326
46326
  removeInstalledListener: (callback) => {
46327
- ipcRenderer$i.removeListener("widget:installed", callback);
46327
+ ipcRenderer$j.removeListener("widget:installed", callback);
46328
46328
  },
46329
46329
 
46330
46330
  /**
@@ -46333,7 +46333,7 @@ const widgetApi$2 = {
46333
46333
  * @param {Function} callback - The callback to remove
46334
46334
  */
46335
46335
  removeLoadedListener: (callback) => {
46336
- ipcRenderer$i.removeListener("widgets:loaded", callback);
46336
+ ipcRenderer$j.removeListener("widgets:loaded", callback);
46337
46337
  },
46338
46338
  };
46339
46339
 
@@ -46346,7 +46346,7 @@ var widgetApi_1 = widgetApi$2;
46346
46346
  * Communicates with main process via IPC to handle encryption and file storage
46347
46347
  */
46348
46348
 
46349
- const { ipcRenderer: ipcRenderer$h } = require$$0$2;
46349
+ const { ipcRenderer: ipcRenderer$i } = require$$0$2;
46350
46350
  const {
46351
46351
  PROVIDER_SAVE,
46352
46352
  PROVIDER_LIST,
@@ -46378,7 +46378,7 @@ const providerApi$2 = {
46378
46378
  mcpConfig = null,
46379
46379
  allowedTools = null,
46380
46380
  ) =>
46381
- ipcRenderer$h.invoke(PROVIDER_SAVE, {
46381
+ ipcRenderer$i.invoke(PROVIDER_SAVE, {
46382
46382
  appId,
46383
46383
  providerName,
46384
46384
  providerType,
@@ -46396,7 +46396,7 @@ const providerApi$2 = {
46396
46396
  * @param {String} appId - the appId specified in the dash initialization
46397
46397
  * @returns {Promise<Array>} Array of provider objects with name, type, credentials
46398
46398
  */
46399
- listProviders: (appId) => ipcRenderer$h.invoke(PROVIDER_LIST, { appId }),
46399
+ listProviders: (appId) => ipcRenderer$i.invoke(PROVIDER_LIST, { appId }),
46400
46400
 
46401
46401
  /**
46402
46402
  * getProvider
@@ -46408,7 +46408,7 @@ const providerApi$2 = {
46408
46408
  * @returns {Promise<Object>} Provider object with name, type, credentials
46409
46409
  */
46410
46410
  getProvider: (appId, providerName) =>
46411
- ipcRenderer$h.invoke(PROVIDER_GET, { appId, providerName }),
46411
+ ipcRenderer$i.invoke(PROVIDER_GET, { appId, providerName }),
46412
46412
 
46413
46413
  /**
46414
46414
  * deleteProvider
@@ -46420,7 +46420,7 @@ const providerApi$2 = {
46420
46420
  * @returns {Promise}
46421
46421
  */
46422
46422
  deleteProvider: (appId, providerName) =>
46423
- ipcRenderer$h.invoke(PROVIDER_DELETE, { appId, providerName }),
46423
+ ipcRenderer$i.invoke(PROVIDER_DELETE, { appId, providerName }),
46424
46424
 
46425
46425
  /**
46426
46426
  * listProvidersForApplication
@@ -46430,14 +46430,14 @@ const providerApi$2 = {
46430
46430
  * @param {String} appId - the appId specified in the dash initialization
46431
46431
  */
46432
46432
  listProvidersForApplication: (appId) => {
46433
- ipcRenderer$h
46433
+ ipcRenderer$i
46434
46434
  .invoke(PROVIDER_LIST, { appId })
46435
46435
  .then((result) => {
46436
46436
  // Emit the event for ElectronDashboardApi to listen to
46437
- ipcRenderer$h.send("PROVIDER_LIST_COMPLETE", result);
46437
+ ipcRenderer$i.send("PROVIDER_LIST_COMPLETE", result);
46438
46438
  })
46439
46439
  .catch((error) => {
46440
- ipcRenderer$h.send("PROVIDER_LIST_ERROR", {
46440
+ ipcRenderer$i.send("PROVIDER_LIST_ERROR", {
46441
46441
  error: error.message,
46442
46442
  });
46443
46443
  });
@@ -46454,7 +46454,7 @@ const providerApi$2 = {
46454
46454
  providerType,
46455
46455
  credentials,
46456
46456
  ) => {
46457
- ipcRenderer$h
46457
+ ipcRenderer$i
46458
46458
  .invoke(PROVIDER_SAVE, {
46459
46459
  appId,
46460
46460
  providerName,
@@ -46462,10 +46462,10 @@ const providerApi$2 = {
46462
46462
  credentials,
46463
46463
  })
46464
46464
  .then((result) => {
46465
- ipcRenderer$h.send("PROVIDER_SAVE_COMPLETE", result);
46465
+ ipcRenderer$i.send("PROVIDER_SAVE_COMPLETE", result);
46466
46466
  })
46467
46467
  .catch((error) => {
46468
- ipcRenderer$h.send("PROVIDER_SAVE_ERROR", {
46468
+ ipcRenderer$i.send("PROVIDER_SAVE_ERROR", {
46469
46469
  error: error.message,
46470
46470
  });
46471
46471
  });
@@ -46477,13 +46477,13 @@ const providerApi$2 = {
46477
46477
  * Event-listener-based version for use with ElectronDashboardApi
46478
46478
  */
46479
46479
  getProviderForApplication: (appId, providerName) => {
46480
- ipcRenderer$h
46480
+ ipcRenderer$i
46481
46481
  .invoke(PROVIDER_GET, { appId, providerName })
46482
46482
  .then((result) => {
46483
- ipcRenderer$h.send("PROVIDER_GET_COMPLETE", result);
46483
+ ipcRenderer$i.send("PROVIDER_GET_COMPLETE", result);
46484
46484
  })
46485
46485
  .catch((error) => {
46486
- ipcRenderer$h.send("PROVIDER_GET_ERROR", {
46486
+ ipcRenderer$i.send("PROVIDER_GET_ERROR", {
46487
46487
  error: error.message,
46488
46488
  });
46489
46489
  });
@@ -46495,13 +46495,13 @@ const providerApi$2 = {
46495
46495
  * Event-listener-based version for use with ElectronDashboardApi
46496
46496
  */
46497
46497
  deleteProviderForApplication: (appId, providerName) => {
46498
- ipcRenderer$h
46498
+ ipcRenderer$i
46499
46499
  .invoke(PROVIDER_DELETE, { appId, providerName })
46500
46500
  .then((result) => {
46501
- ipcRenderer$h.send("PROVIDER_DELETE_COMPLETE", result);
46501
+ ipcRenderer$i.send("PROVIDER_DELETE_COMPLETE", result);
46502
46502
  })
46503
46503
  .catch((error) => {
46504
- ipcRenderer$h.send("PROVIDER_DELETE_ERROR", {
46504
+ ipcRenderer$i.send("PROVIDER_DELETE_ERROR", {
46505
46505
  error: error.message,
46506
46506
  });
46507
46507
  });
@@ -46517,7 +46517,7 @@ var providerApi_1 = providerApi$2;
46517
46517
  * Communicates with main process via IPC to manage MCP server lifecycle.
46518
46518
  */
46519
46519
 
46520
- const { ipcRenderer: ipcRenderer$g } = require$$0$2;
46520
+ const { ipcRenderer: ipcRenderer$h } = require$$0$2;
46521
46521
  const {
46522
46522
  MCP_START_SERVER,
46523
46523
  MCP_STOP_SERVER,
@@ -46541,7 +46541,7 @@ const mcpApi$2 = {
46541
46541
  * @returns {Promise<{ success, serverName, tools, status } | { error, message }>}
46542
46542
  */
46543
46543
  startServer: (serverName, mcpConfig, credentials) =>
46544
- ipcRenderer$g.invoke(MCP_START_SERVER, {
46544
+ ipcRenderer$h.invoke(MCP_START_SERVER, {
46545
46545
  serverName,
46546
46546
  mcpConfig,
46547
46547
  credentials,
@@ -46555,7 +46555,7 @@ const mcpApi$2 = {
46555
46555
  * @returns {Promise<{ success, serverName } | { error, message }>}
46556
46556
  */
46557
46557
  stopServer: (serverName) =>
46558
- ipcRenderer$g.invoke(MCP_STOP_SERVER, { serverName }),
46558
+ ipcRenderer$h.invoke(MCP_STOP_SERVER, { serverName }),
46559
46559
 
46560
46560
  /**
46561
46561
  * listTools
@@ -46564,7 +46564,7 @@ const mcpApi$2 = {
46564
46564
  * @param {string} serverName the server name
46565
46565
  * @returns {Promise<{ tools } | { error, message }>}
46566
46566
  */
46567
- listTools: (serverName) => ipcRenderer$g.invoke(MCP_LIST_TOOLS, { serverName }),
46567
+ listTools: (serverName) => ipcRenderer$h.invoke(MCP_LIST_TOOLS, { serverName }),
46568
46568
 
46569
46569
  /**
46570
46570
  * callTool
@@ -46577,7 +46577,7 @@ const mcpApi$2 = {
46577
46577
  * @returns {Promise<{ result } | { error, message }>}
46578
46578
  */
46579
46579
  callTool: (serverName, toolName, args, allowedTools = null) =>
46580
- ipcRenderer$g.invoke(MCP_CALL_TOOL, {
46580
+ ipcRenderer$h.invoke(MCP_CALL_TOOL, {
46581
46581
  serverName,
46582
46582
  toolName,
46583
46583
  args,
@@ -46592,7 +46592,7 @@ const mcpApi$2 = {
46592
46592
  * @returns {Promise<{ resources } | { error, message }>}
46593
46593
  */
46594
46594
  listResources: (serverName) =>
46595
- ipcRenderer$g.invoke(MCP_LIST_RESOURCES, { serverName }),
46595
+ ipcRenderer$h.invoke(MCP_LIST_RESOURCES, { serverName }),
46596
46596
 
46597
46597
  /**
46598
46598
  * readResource
@@ -46603,7 +46603,7 @@ const mcpApi$2 = {
46603
46603
  * @returns {Promise<{ resource } | { error, message }>}
46604
46604
  */
46605
46605
  readResource: (serverName, uri) =>
46606
- ipcRenderer$g.invoke(MCP_READ_RESOURCE, { serverName, uri }),
46606
+ ipcRenderer$h.invoke(MCP_READ_RESOURCE, { serverName, uri }),
46607
46607
 
46608
46608
  /**
46609
46609
  * getServerStatus
@@ -46613,7 +46613,7 @@ const mcpApi$2 = {
46613
46613
  * @returns {Promise<{ status, tools, error }>}
46614
46614
  */
46615
46615
  getServerStatus: (serverName) =>
46616
- ipcRenderer$g.invoke(MCP_SERVER_STATUS, { serverName }),
46616
+ ipcRenderer$h.invoke(MCP_SERVER_STATUS, { serverName }),
46617
46617
 
46618
46618
  /**
46619
46619
  * getCatalog
@@ -46621,7 +46621,7 @@ const mcpApi$2 = {
46621
46621
  *
46622
46622
  * @returns {Promise<{ catalog } | { error, message }>}
46623
46623
  */
46624
- getCatalog: () => ipcRenderer$g.invoke(MCP_GET_CATALOG),
46624
+ getCatalog: () => ipcRenderer$h.invoke(MCP_GET_CATALOG),
46625
46625
 
46626
46626
  /**
46627
46627
  * runAuth
@@ -46633,7 +46633,7 @@ const mcpApi$2 = {
46633
46633
  * @returns {Promise<{ success } | { error, message }>}
46634
46634
  */
46635
46635
  runAuth: (mcpConfig, credentials, authCommand) =>
46636
- ipcRenderer$g.invoke(MCP_RUN_AUTH, { mcpConfig, credentials, authCommand }),
46636
+ ipcRenderer$h.invoke(MCP_RUN_AUTH, { mcpConfig, credentials, authCommand }),
46637
46637
  };
46638
46638
 
46639
46639
  var mcpApi_1 = mcpApi$2;
@@ -46651,7 +46651,7 @@ var mcpApi_1 = mcpApi$2;
46651
46651
  * mainApi.registry.checkUpdates([{ name: "weather-widgets", version: "1.0.0" }])
46652
46652
  */
46653
46653
 
46654
- const { ipcRenderer: ipcRenderer$f } = require$$0$2;
46654
+ const { ipcRenderer: ipcRenderer$g } = require$$0$2;
46655
46655
 
46656
46656
  const registryApi$2 = {
46657
46657
  /**
@@ -46661,7 +46661,7 @@ const registryApi$2 = {
46661
46661
  */
46662
46662
  fetchIndex: async (forceRefresh = false) => {
46663
46663
  try {
46664
- return await ipcRenderer$f.invoke("registry:fetch-index", forceRefresh);
46664
+ return await ipcRenderer$g.invoke("registry:fetch-index", forceRefresh);
46665
46665
  } catch (error) {
46666
46666
  console.error("[RegistryApi] Error fetching index:", error);
46667
46667
  throw error;
@@ -46676,7 +46676,7 @@ const registryApi$2 = {
46676
46676
  */
46677
46677
  search: async (query = "", filters = {}) => {
46678
46678
  try {
46679
- return await ipcRenderer$f.invoke("registry:search", query, filters);
46679
+ return await ipcRenderer$g.invoke("registry:search", query, filters);
46680
46680
  } catch (error) {
46681
46681
  console.error("[RegistryApi] Error searching registry:", error);
46682
46682
  throw error;
@@ -46690,7 +46690,7 @@ const registryApi$2 = {
46690
46690
  */
46691
46691
  getPackage: async (packageName) => {
46692
46692
  try {
46693
- return await ipcRenderer$f.invoke("registry:get-package", packageName);
46693
+ return await ipcRenderer$g.invoke("registry:get-package", packageName);
46694
46694
  } catch (error) {
46695
46695
  console.error(
46696
46696
  `[RegistryApi] Error getting package ${packageName}:`,
@@ -46707,7 +46707,7 @@ const registryApi$2 = {
46707
46707
  */
46708
46708
  checkUpdates: async (installedWidgets = []) => {
46709
46709
  try {
46710
- return await ipcRenderer$f.invoke(
46710
+ return await ipcRenderer$g.invoke(
46711
46711
  "registry:check-updates",
46712
46712
  installedWidgets,
46713
46713
  );
@@ -46725,7 +46725,7 @@ const registryApi$2 = {
46725
46725
  */
46726
46726
  searchDashboards: async (query = "", filters = {}) => {
46727
46727
  try {
46728
- return await ipcRenderer$f.invoke(
46728
+ return await ipcRenderer$g.invoke(
46729
46729
  "registry:search-dashboards",
46730
46730
  query,
46731
46731
  filters,
@@ -46744,7 +46744,7 @@ const registryApi$2 = {
46744
46744
  */
46745
46745
  searchThemes: async (query = "", filters = {}) => {
46746
46746
  try {
46747
- return await ipcRenderer$f.invoke("registry:search-themes", query, filters);
46747
+ return await ipcRenderer$g.invoke("registry:search-themes", query, filters);
46748
46748
  } catch (error) {
46749
46749
  console.error("[RegistryApi] Error searching themes:", error);
46750
46750
  throw error;
@@ -46760,7 +46760,7 @@ var registryApi_1 = registryApi$2;
46760
46760
  * Handle the theme configuration file
46761
46761
  */
46762
46762
 
46763
- const { ipcRenderer: ipcRenderer$e } = require$$0$2;
46763
+ const { ipcRenderer: ipcRenderer$f } = require$$0$2;
46764
46764
 
46765
46765
  const {
46766
46766
  THEME_LIST,
@@ -46773,17 +46773,17 @@ const {
46773
46773
 
46774
46774
  const themeApi$2 = {
46775
46775
  listThemesForApplication: (appId) =>
46776
- ipcRenderer$e.invoke(THEME_LIST, { appId }),
46776
+ ipcRenderer$f.invoke(THEME_LIST, { appId }),
46777
46777
  saveThemeForApplication: (appId, themeName, themeObject) =>
46778
- ipcRenderer$e.invoke(THEME_SAVE, { appId, themeName, themeObject }),
46778
+ ipcRenderer$f.invoke(THEME_SAVE, { appId, themeName, themeObject }),
46779
46779
  deleteThemeForApplication: (appId, themeKey) =>
46780
- ipcRenderer$e.invoke(THEME_DELETE, { appId, themeKey }),
46780
+ ipcRenderer$f.invoke(THEME_DELETE, { appId, themeKey }),
46781
46781
  publishTheme: (appId, themeKey, options) =>
46782
- ipcRenderer$e.invoke(THEME_PUBLISH, { appId, themeKey, options }),
46782
+ ipcRenderer$f.invoke(THEME_PUBLISH, { appId, themeKey, options }),
46783
46783
  installThemeFromRegistry: (appId, packageName) =>
46784
- ipcRenderer$e.invoke(THEME_INSTALL_FROM_REGISTRY, { appId, packageName }),
46784
+ ipcRenderer$f.invoke(THEME_INSTALL_FROM_REGISTRY, { appId, packageName }),
46785
46785
  getThemePublishPreview: (appId, themeKey) =>
46786
- ipcRenderer$e.invoke(THEME_PUBLISH_PREVIEW, { appId, themeKey }),
46786
+ ipcRenderer$f.invoke(THEME_PUBLISH_PREVIEW, { appId, themeKey }),
46787
46787
  };
46788
46788
 
46789
46789
  var themeApi_1 = themeApi$2;
@@ -46795,7 +46795,7 @@ var themeApi_1 = themeApi$2;
46795
46795
  */
46796
46796
 
46797
46797
  // ipcRenderer that must be used to invoke the events
46798
- const { ipcRenderer: ipcRenderer$d } = require$$0$2;
46798
+ const { ipcRenderer: ipcRenderer$e } = require$$0$2;
46799
46799
 
46800
46800
  const {
46801
46801
  ALGOLIA_LIST_INDICES,
@@ -46809,10 +46809,10 @@ const {
46809
46809
 
46810
46810
  const algoliaApi$2 = {
46811
46811
  listIndices: (application) =>
46812
- ipcRenderer$d.invoke(ALGOLIA_LIST_INDICES, application),
46812
+ ipcRenderer$e.invoke(ALGOLIA_LIST_INDICES, application),
46813
46813
 
46814
46814
  browseObjects: (appId, apiKey, indexName) => {
46815
- ipcRenderer$d.invoke(ALGOLIA_BROWSE_OBJECTS, {
46815
+ ipcRenderer$e.invoke(ALGOLIA_BROWSE_OBJECTS, {
46816
46816
  appId,
46817
46817
  apiKey,
46818
46818
  indexName,
@@ -46820,10 +46820,10 @@ const algoliaApi$2 = {
46820
46820
  });
46821
46821
  },
46822
46822
 
46823
- saveSynonyms: () => ipcRenderer$d.invoke(ALGOLIA_SAVE_SYNONYMS, {}),
46823
+ saveSynonyms: () => ipcRenderer$e.invoke(ALGOLIA_SAVE_SYNONYMS, {}),
46824
46824
 
46825
46825
  getAnalyticsForQuery: (application, indexName, query) =>
46826
- ipcRenderer$d.invoke(ALGOLIA_ANALYTICS_FOR_QUERY, {
46826
+ ipcRenderer$e.invoke(ALGOLIA_ANALYTICS_FOR_QUERY, {
46827
46827
  application,
46828
46828
  indexName,
46829
46829
  query,
@@ -46836,7 +46836,7 @@ const algoliaApi$2 = {
46836
46836
  dir,
46837
46837
  createIfNotExists = false,
46838
46838
  ) =>
46839
- ipcRenderer$d.invoke(ALGOLIA_PARTIAL_UPDATE_OBJECTS, {
46839
+ ipcRenderer$e.invoke(ALGOLIA_PARTIAL_UPDATE_OBJECTS, {
46840
46840
  appId,
46841
46841
  apiKey,
46842
46842
  indexName,
@@ -46845,7 +46845,7 @@ const algoliaApi$2 = {
46845
46845
  }),
46846
46846
 
46847
46847
  createBatchesFromFile: (filepath, batchFilepath, batchSize) => {
46848
- ipcRenderer$d.invoke(ALGOLIA_CREATE_BATCH, {
46848
+ ipcRenderer$e.invoke(ALGOLIA_CREATE_BATCH, {
46849
46849
  filepath,
46850
46850
  batchFilepath,
46851
46851
  batchSize,
@@ -46853,7 +46853,7 @@ const algoliaApi$2 = {
46853
46853
  },
46854
46854
 
46855
46855
  browseObjectsToFile: (appId, apiKey, indexName, toFilename, query = "") => {
46856
- ipcRenderer$d.invoke(ALGOLIA_BROWSE_OBJECTS, {
46856
+ ipcRenderer$e.invoke(ALGOLIA_BROWSE_OBJECTS, {
46857
46857
  appId,
46858
46858
  apiKey,
46859
46859
  indexName,
@@ -46863,7 +46863,7 @@ const algoliaApi$2 = {
46863
46863
  },
46864
46864
 
46865
46865
  search: (appId, apiKey, indexName, query = "", options = {}) =>
46866
- ipcRenderer$d.invoke(ALGOLIA_SEARCH, {
46866
+ ipcRenderer$e.invoke(ALGOLIA_SEARCH, {
46867
46867
  appId,
46868
46868
  apiKey,
46869
46869
  indexName,
@@ -46878,14 +46878,14 @@ var algoliaApi_1 = algoliaApi$2;
46878
46878
  * openAI
46879
46879
  */
46880
46880
 
46881
- const { ipcRenderer: ipcRenderer$c } = require$$0$2;
46881
+ const { ipcRenderer: ipcRenderer$d } = require$$0$2;
46882
46882
 
46883
46883
  const { OPENAI_DESCRIBE_IMAGE } = openaiEvents$1;
46884
46884
 
46885
46885
  const openaiApi$2 = {
46886
46886
  // convert a json array of objects to a csv string and save to file
46887
46887
  describeImage: (imageUrl, apiKey, prompt = "What's in this image?") =>
46888
- ipcRenderer$c.invoke(OPENAI_DESCRIBE_IMAGE, { imageUrl, apiKey, prompt }),
46888
+ ipcRenderer$d.invoke(OPENAI_DESCRIBE_IMAGE, { imageUrl, apiKey, prompt }),
46889
46889
  };
46890
46890
 
46891
46891
  var openaiApi_1 = openaiApi$2;
@@ -46896,14 +46896,14 @@ var openaiApi_1 = openaiApi$2;
46896
46896
  */
46897
46897
 
46898
46898
  // ipcRenderer that must be used to invoke the events
46899
- const { ipcRenderer: ipcRenderer$b } = require$$0$2;
46899
+ const { ipcRenderer: ipcRenderer$c } = require$$0$2;
46900
46900
 
46901
46901
  const { MENU_ITEMS_SAVE, MENU_ITEMS_LIST } = events$8;
46902
46902
 
46903
46903
  const menuItemsApi$2 = {
46904
46904
  saveMenuItem: (appId, menuItem) =>
46905
- ipcRenderer$b.invoke(MENU_ITEMS_SAVE, { appId, menuItem }),
46906
- listMenuItems: (appId) => ipcRenderer$b.invoke(MENU_ITEMS_LIST, { appId }),
46905
+ ipcRenderer$c.invoke(MENU_ITEMS_SAVE, { appId, menuItem }),
46906
+ listMenuItems: (appId) => ipcRenderer$c.invoke(MENU_ITEMS_LIST, { appId }),
46907
46907
  };
46908
46908
 
46909
46909
  var menuItemsApi_1 = menuItemsApi$2;
@@ -46915,12 +46915,12 @@ var menuItemsApi_1 = menuItemsApi$2;
46915
46915
  */
46916
46916
 
46917
46917
  // ipcRenderer that must be used to invoke the events
46918
- const { ipcRenderer: ipcRenderer$a } = require$$0$2;
46918
+ const { ipcRenderer: ipcRenderer$b } = require$$0$2;
46919
46919
 
46920
46920
  const pluginApi$2 = {
46921
46921
  install: (packageName, filepath) =>
46922
- ipcRenderer$a.invoke("plugin-install", { packageName, filepath }),
46923
- uninstall: (filepath) => ipcRenderer$a.invoke("plugin-uninstall", filepath),
46922
+ ipcRenderer$b.invoke("plugin-install", { packageName, filepath }),
46923
+ uninstall: (filepath) => ipcRenderer$b.invoke("plugin-uninstall", filepath),
46924
46924
  };
46925
46925
 
46926
46926
  var pluginApi_1 = pluginApi$2;
@@ -46933,7 +46933,7 @@ var pluginApi_1 = pluginApi$2;
46933
46933
  * tool-use events, and request cancellation.
46934
46934
  */
46935
46935
 
46936
- const { ipcRenderer: ipcRenderer$9 } = require$$0$2;
46936
+ const { ipcRenderer: ipcRenderer$a } = require$$0$2;
46937
46937
  const {
46938
46938
  LLM_SEND_MESSAGE,
46939
46939
  LLM_ABORT_REQUEST,
@@ -46955,7 +46955,7 @@ const _listenerMap = new Map();
46955
46955
  function _addListener(channel, callback) {
46956
46956
  const id = String(++_nextListenerId);
46957
46957
  const wrapped = (_event, data) => callback(data);
46958
- ipcRenderer$9.on(channel, wrapped);
46958
+ ipcRenderer$a.on(channel, wrapped);
46959
46959
  _listenerMap.set(id, { channel, wrapped });
46960
46960
  return id;
46961
46961
  }
@@ -46970,7 +46970,7 @@ const llmApi$2 = {
46970
46970
  * @returns {Promise<void>}
46971
46971
  */
46972
46972
  sendMessage: (requestId, params) =>
46973
- ipcRenderer$9.invoke(LLM_SEND_MESSAGE, { requestId, ...params }),
46973
+ ipcRenderer$a.invoke(LLM_SEND_MESSAGE, { requestId, ...params }),
46974
46974
 
46975
46975
  /**
46976
46976
  * abortRequest
@@ -46980,7 +46980,7 @@ const llmApi$2 = {
46980
46980
  * @returns {Promise<{ success: boolean }>}
46981
46981
  */
46982
46982
  abortRequest: (requestId) =>
46983
- ipcRenderer$9.invoke(LLM_ABORT_REQUEST, { requestId }),
46983
+ ipcRenderer$a.invoke(LLM_ABORT_REQUEST, { requestId }),
46984
46984
 
46985
46985
  /**
46986
46986
  * listConnectedTools
@@ -46988,7 +46988,7 @@ const llmApi$2 = {
46988
46988
  *
46989
46989
  * @returns {Promise<Array<{ serverName, tools, resources, status }>>}
46990
46990
  */
46991
- listConnectedTools: () => ipcRenderer$9.invoke(LLM_LIST_CONNECTED_TOOLS),
46991
+ listConnectedTools: () => ipcRenderer$a.invoke(LLM_LIST_CONNECTED_TOOLS),
46992
46992
 
46993
46993
  /**
46994
46994
  * checkCliAvailable
@@ -46996,7 +46996,7 @@ const llmApi$2 = {
46996
46996
  *
46997
46997
  * @returns {Promise<{ available: boolean, path?: string }>}
46998
46998
  */
46999
- checkCliAvailable: () => ipcRenderer$9.invoke(LLM_CHECK_CLI_AVAILABLE),
46999
+ checkCliAvailable: () => ipcRenderer$a.invoke(LLM_CHECK_CLI_AVAILABLE),
47000
47000
 
47001
47001
  /**
47002
47002
  * clearCliSession
@@ -47006,7 +47006,7 @@ const llmApi$2 = {
47006
47006
  * @returns {Promise<{ success: boolean }>}
47007
47007
  */
47008
47008
  clearCliSession: (widgetUuid) =>
47009
- ipcRenderer$9.invoke(LLM_CLEAR_CLI_SESSION, { widgetUuid }),
47009
+ ipcRenderer$a.invoke(LLM_CLEAR_CLI_SESSION, { widgetUuid }),
47010
47010
 
47011
47011
  /**
47012
47012
  * getCliSessionStatus
@@ -47016,7 +47016,7 @@ const llmApi$2 = {
47016
47016
  * @returns {Promise<{ hasSession: boolean, sessionId?: string, isProcessActive: boolean }>}
47017
47017
  */
47018
47018
  getCliSessionStatus: (widgetUuid) =>
47019
- ipcRenderer$9.invoke(LLM_CLI_SESSION_STATUS, { widgetUuid }),
47019
+ ipcRenderer$a.invoke(LLM_CLI_SESSION_STATUS, { widgetUuid }),
47020
47020
 
47021
47021
  /**
47022
47022
  * endCliSession
@@ -47026,7 +47026,7 @@ const llmApi$2 = {
47026
47026
  * @returns {Promise<{ success: boolean }>}
47027
47027
  */
47028
47028
  endCliSession: (widgetUuid) =>
47029
- ipcRenderer$9.invoke(LLM_CLI_END_SESSION, { widgetUuid }),
47029
+ ipcRenderer$a.invoke(LLM_CLI_END_SESSION, { widgetUuid }),
47030
47030
 
47031
47031
  // --- Stream event listeners ---
47032
47032
  // Each on* method returns an opaque string ID. Strings cross the
@@ -47060,7 +47060,7 @@ const llmApi$2 = {
47060
47060
  const listenerId = id !== undefined ? String(id) : String(idOrChannel);
47061
47061
  const entry = _listenerMap.get(listenerId);
47062
47062
  if (entry) {
47063
- ipcRenderer$9.removeListener(entry.channel, entry.wrapped);
47063
+ ipcRenderer$a.removeListener(entry.channel, entry.wrapped);
47064
47064
  _listenerMap.delete(listenerId);
47065
47065
  }
47066
47066
  },
@@ -47072,14 +47072,14 @@ const llmApi$2 = {
47072
47072
  */
47073
47073
  removeAllStreamListeners: () => {
47074
47074
  for (const [, entry] of _listenerMap) {
47075
- ipcRenderer$9.removeListener(entry.channel, entry.wrapped);
47075
+ ipcRenderer$a.removeListener(entry.channel, entry.wrapped);
47076
47076
  }
47077
47077
  _listenerMap.clear();
47078
- ipcRenderer$9.removeAllListeners(LLM_STREAM_DELTA);
47079
- ipcRenderer$9.removeAllListeners(LLM_STREAM_TOOL_CALL);
47080
- ipcRenderer$9.removeAllListeners(LLM_STREAM_TOOL_RESULT);
47081
- ipcRenderer$9.removeAllListeners(LLM_STREAM_COMPLETE);
47082
- ipcRenderer$9.removeAllListeners(LLM_STREAM_ERROR);
47078
+ ipcRenderer$a.removeAllListeners(LLM_STREAM_DELTA);
47079
+ ipcRenderer$a.removeAllListeners(LLM_STREAM_TOOL_CALL);
47080
+ ipcRenderer$a.removeAllListeners(LLM_STREAM_TOOL_RESULT);
47081
+ ipcRenderer$a.removeAllListeners(LLM_STREAM_COMPLETE);
47082
+ ipcRenderer$a.removeAllListeners(LLM_STREAM_ERROR);
47083
47083
  },
47084
47084
  };
47085
47085
 
@@ -47093,7 +47093,7 @@ var llmApi_1 = llmApi$2;
47093
47093
  * and manage the response cache.
47094
47094
  */
47095
47095
 
47096
- const { ipcRenderer: ipcRenderer$8 } = require$$0$2;
47096
+ const { ipcRenderer: ipcRenderer$9 } = require$$0$2;
47097
47097
  const {
47098
47098
  CLIENT_CACHE_INVALIDATE,
47099
47099
  CLIENT_CACHE_INVALIDATE_ALL,
@@ -47110,28 +47110,28 @@ const clientCacheApi$2 = {
47110
47110
  * @returns {Promise<{success: boolean}>}
47111
47111
  */
47112
47112
  invalidate: (appId, providerName) =>
47113
- ipcRenderer$8.invoke(CLIENT_CACHE_INVALIDATE, { appId, providerName }),
47113
+ ipcRenderer$9.invoke(CLIENT_CACHE_INVALIDATE, { appId, providerName }),
47114
47114
 
47115
47115
  /**
47116
47116
  * Invalidate all cached clients.
47117
47117
  *
47118
47118
  * @returns {Promise<{success: boolean}>}
47119
47119
  */
47120
- invalidateAll: () => ipcRenderer$8.invoke(CLIENT_CACHE_INVALIDATE_ALL),
47120
+ invalidateAll: () => ipcRenderer$9.invoke(CLIENT_CACHE_INVALIDATE_ALL),
47121
47121
 
47122
47122
  /**
47123
47123
  * Clear the response cache.
47124
47124
  *
47125
47125
  * @returns {Promise<{success: boolean}>}
47126
47126
  */
47127
- clearResponseCache: () => ipcRenderer$8.invoke(RESPONSE_CACHE_CLEAR),
47127
+ clearResponseCache: () => ipcRenderer$9.invoke(RESPONSE_CACHE_CLEAR),
47128
47128
 
47129
47129
  /**
47130
47130
  * Get response cache statistics.
47131
47131
  *
47132
47132
  * @returns {Promise<{entries: number, inflight: number, keys: string[]}>}
47133
47133
  */
47134
- responseCacheStats: () => ipcRenderer$8.invoke(RESPONSE_CACHE_STATS),
47134
+ responseCacheStats: () => ipcRenderer$9.invoke(RESPONSE_CACHE_STATS),
47135
47135
  };
47136
47136
 
47137
47137
  var clientCacheApi_1 = clientCacheApi$2;
@@ -47143,7 +47143,7 @@ var clientCacheApi_1 = clientCacheApi$2;
47143
47143
  * Exposed via contextBridge through mainApi.
47144
47144
  */
47145
47145
 
47146
- const { ipcRenderer: ipcRenderer$7 } = require$$0$2;
47146
+ const { ipcRenderer: ipcRenderer$8 } = require$$0$2;
47147
47147
  const {
47148
47148
  DASHBOARD_CONFIG_EXPORT,
47149
47149
  DASHBOARD_CONFIG_SELECT_FILE,
@@ -47167,7 +47167,7 @@ const dashboardConfigApi$2 = {
47167
47167
  * @returns {Promise<Object>} Result with success, filePath, and config
47168
47168
  */
47169
47169
  exportDashboardConfig: (appId, workspaceId, options = {}) =>
47170
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_EXPORT, {
47170
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_EXPORT, {
47171
47171
  appId,
47172
47172
  workspaceId,
47173
47173
  options,
@@ -47180,7 +47180,7 @@ const dashboardConfigApi$2 = {
47180
47180
  *
47181
47181
  * @returns {Promise<Object>} Result with success, filePath, and dashboardConfig preview
47182
47182
  */
47183
- selectDashboardFile: () => ipcRenderer$7.invoke(DASHBOARD_CONFIG_SELECT_FILE),
47183
+ selectDashboardFile: () => ipcRenderer$8.invoke(DASHBOARD_CONFIG_SELECT_FILE),
47184
47184
 
47185
47185
  /**
47186
47186
  * Import a dashboard config from a ZIP file.
@@ -47192,7 +47192,7 @@ const dashboardConfigApi$2 = {
47192
47192
  * @returns {Promise<Object>} Result with success, workspace, and summary
47193
47193
  */
47194
47194
  importDashboardConfig: (appId, options = {}) =>
47195
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_IMPORT, { appId, ...options }),
47195
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_IMPORT, { appId, ...options }),
47196
47196
 
47197
47197
  /**
47198
47198
  * Install a dashboard from the registry by package name.
@@ -47204,7 +47204,7 @@ const dashboardConfigApi$2 = {
47204
47204
  * @returns {Promise<Object>} Result with success, workspace, and summary
47205
47205
  */
47206
47206
  installDashboardFromRegistry: (appId, packageName) =>
47207
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_INSTALL, {
47207
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_INSTALL, {
47208
47208
  appId,
47209
47209
  packageName,
47210
47210
  }),
@@ -47217,7 +47217,7 @@ const dashboardConfigApi$2 = {
47217
47217
  * @returns {Promise<Object>} Compatibility report with per-widget status
47218
47218
  */
47219
47219
  checkDashboardCompatibility: (appId, dashboardWidgets) =>
47220
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_COMPATIBILITY, {
47220
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_COMPATIBILITY, {
47221
47221
  appId,
47222
47222
  dashboardWidgets,
47223
47223
  }),
@@ -47233,7 +47233,7 @@ const dashboardConfigApi$2 = {
47233
47233
  * @returns {Promise<Object>} Result with success, manifest, filePath
47234
47234
  */
47235
47235
  prepareDashboardForPublish: (appId, workspaceId, options = {}) =>
47236
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_PUBLISH, {
47236
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_PUBLISH, {
47237
47237
  appId,
47238
47238
  workspaceId,
47239
47239
  options,
@@ -47247,7 +47247,7 @@ const dashboardConfigApi$2 = {
47247
47247
  * @returns {Promise<Object>} Preview with metadata, widgets, wiring, compatibility
47248
47248
  */
47249
47249
  getDashboardPreview: (packageName) =>
47250
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_PREVIEW, { packageName }),
47250
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_PREVIEW, { packageName }),
47251
47251
 
47252
47252
  /**
47253
47253
  * Check installed dashboards for available updates.
@@ -47256,7 +47256,7 @@ const dashboardConfigApi$2 = {
47256
47256
  * @returns {Promise<Object>} Result with updates array
47257
47257
  */
47258
47258
  checkDashboardUpdates: (appId) =>
47259
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_CHECK_UPDATES, { appId }),
47259
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_CHECK_UPDATES, { appId }),
47260
47260
 
47261
47261
  /**
47262
47262
  * Get provider setup manifest for a dashboard's requirements.
@@ -47266,7 +47266,7 @@ const dashboardConfigApi$2 = {
47266
47266
  * @returns {Promise<Object>} Setup manifest with per-provider status
47267
47267
  */
47268
47268
  getProviderSetupManifest: (appId, requiredProviders) =>
47269
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_PROVIDER_SETUP, {
47269
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_PROVIDER_SETUP, {
47270
47270
  appId,
47271
47271
  requiredProviders,
47272
47272
  }),
@@ -47280,7 +47280,7 @@ const dashboardConfigApi$2 = {
47280
47280
  * @returns {Promise<Object>} Preview with dashboardName, widgetCount, widgets, componentNames
47281
47281
  */
47282
47282
  getPublishPreview: (appId, workspaceId) =>
47283
- ipcRenderer$7.invoke(DASHBOARD_CONFIG_PUBLISH_PREVIEW, {
47283
+ ipcRenderer$8.invoke(DASHBOARD_CONFIG_PUBLISH_PREVIEW, {
47284
47284
  appId,
47285
47285
  workspaceId,
47286
47286
  }),
@@ -47295,7 +47295,7 @@ var dashboardConfigApi_1 = dashboardConfigApi$2;
47295
47295
  * Exposed via contextBridge through mainApi.
47296
47296
  */
47297
47297
 
47298
- const { ipcRenderer: ipcRenderer$6 } = require$$0$2;
47298
+ const { ipcRenderer: ipcRenderer$7 } = require$$0$2;
47299
47299
  const {
47300
47300
  REGISTRY_AUTH_INITIATE_LOGIN,
47301
47301
  REGISTRY_AUTH_POLL_TOKEN,
@@ -47316,7 +47316,7 @@ const registryAuthApi$2 = {
47316
47316
  *
47317
47317
  * @returns {Promise<Object>} { deviceCode, userCode, verificationUrl, verificationUrlComplete, expiresIn, interval }
47318
47318
  */
47319
- initiateLogin: () => ipcRenderer$6.invoke(REGISTRY_AUTH_INITIATE_LOGIN),
47319
+ initiateLogin: () => ipcRenderer$7.invoke(REGISTRY_AUTH_INITIATE_LOGIN),
47320
47320
 
47321
47321
  /**
47322
47322
  * Poll for token after user completes browser auth.
@@ -47325,26 +47325,26 @@ const registryAuthApi$2 = {
47325
47325
  * @returns {Promise<Object>} { status: 'pending' | 'authorized' | 'expired', token?, userId? }
47326
47326
  */
47327
47327
  pollToken: (deviceCode) =>
47328
- ipcRenderer$6.invoke(REGISTRY_AUTH_POLL_TOKEN, { deviceCode }),
47328
+ ipcRenderer$7.invoke(REGISTRY_AUTH_POLL_TOKEN, { deviceCode }),
47329
47329
 
47330
47330
  /**
47331
47331
  * Get current auth status.
47332
47332
  *
47333
47333
  * @returns {Promise<Object>} { authenticated: boolean, userId?: string }
47334
47334
  */
47335
- getStatus: () => ipcRenderer$6.invoke(REGISTRY_AUTH_GET_STATUS),
47335
+ getStatus: () => ipcRenderer$7.invoke(REGISTRY_AUTH_GET_STATUS),
47336
47336
 
47337
47337
  /**
47338
47338
  * Get the authenticated user's registry profile.
47339
47339
  *
47340
47340
  * @returns {Promise<Object|null>} User profile or null
47341
47341
  */
47342
- getProfile: () => ipcRenderer$6.invoke(REGISTRY_AUTH_GET_PROFILE),
47342
+ getProfile: () => ipcRenderer$7.invoke(REGISTRY_AUTH_GET_PROFILE),
47343
47343
 
47344
47344
  /**
47345
47345
  * Logout from registry.
47346
47346
  */
47347
- logout: () => ipcRenderer$6.invoke(REGISTRY_AUTH_LOGOUT),
47347
+ logout: () => ipcRenderer$7.invoke(REGISTRY_AUTH_LOGOUT),
47348
47348
 
47349
47349
  /**
47350
47350
  * Publish a ZIP to the registry.
@@ -47354,7 +47354,7 @@ const registryAuthApi$2 = {
47354
47354
  * @returns {Promise<Object>} { success, registryUrl, packageId, version, error? }
47355
47355
  */
47356
47356
  publish: (zipPath, manifest) =>
47357
- ipcRenderer$6.invoke(REGISTRY_AUTH_PUBLISH, { zipPath, manifest }),
47357
+ ipcRenderer$7.invoke(REGISTRY_AUTH_PUBLISH, { zipPath, manifest }),
47358
47358
 
47359
47359
  /**
47360
47360
  * Update the authenticated user's profile.
@@ -47363,14 +47363,14 @@ const registryAuthApi$2 = {
47363
47363
  * @returns {Promise<Object|null>} Updated user or null
47364
47364
  */
47365
47365
  updateProfile: (updates) =>
47366
- ipcRenderer$6.invoke(REGISTRY_AUTH_UPDATE_PROFILE, updates),
47366
+ ipcRenderer$7.invoke(REGISTRY_AUTH_UPDATE_PROFILE, updates),
47367
47367
 
47368
47368
  /**
47369
47369
  * Get the authenticated user's published packages.
47370
47370
  *
47371
47371
  * @returns {Promise<Object|null>} { packages: [...] } or null
47372
47372
  */
47373
- getPackages: () => ipcRenderer$6.invoke(REGISTRY_AUTH_GET_PACKAGES),
47373
+ getPackages: () => ipcRenderer$7.invoke(REGISTRY_AUTH_GET_PACKAGES),
47374
47374
 
47375
47375
  /**
47376
47376
  * Update a published package's metadata.
@@ -47381,7 +47381,7 @@ const registryAuthApi$2 = {
47381
47381
  * @returns {Promise<Object|null>} Updated package or null
47382
47382
  */
47383
47383
  updatePackage: (scope, name, updates) =>
47384
- ipcRenderer$6.invoke(REGISTRY_AUTH_UPDATE_PACKAGE, {
47384
+ ipcRenderer$7.invoke(REGISTRY_AUTH_UPDATE_PACKAGE, {
47385
47385
  scope,
47386
47386
  name,
47387
47387
  updates,
@@ -47395,7 +47395,7 @@ const registryAuthApi$2 = {
47395
47395
  * @returns {Promise<Object|null>} Response or null
47396
47396
  */
47397
47397
  deletePackage: (scope, name) =>
47398
- ipcRenderer$6.invoke(REGISTRY_AUTH_DELETE_PACKAGE, { scope, name }),
47398
+ ipcRenderer$7.invoke(REGISTRY_AUTH_DELETE_PACKAGE, { scope, name }),
47399
47399
  };
47400
47400
 
47401
47401
  var registryAuthApi_1 = registryAuthApi$2;
@@ -47407,7 +47407,7 @@ var registryAuthApi_1 = registryAuthApi$2;
47407
47407
  * Exposed to the renderer via mainApi.notifications.
47408
47408
  */
47409
47409
 
47410
- const { ipcRenderer: ipcRenderer$5 } = require$$0$2;
47410
+ const { ipcRenderer: ipcRenderer$6 } = require$$0$2;
47411
47411
  const {
47412
47412
  NOTIFICATION_SEND,
47413
47413
  NOTIFICATION_GET_PREFERENCES,
@@ -47422,14 +47422,14 @@ const notificationApi$2 = {
47422
47422
  * @param {Object} payload - { widgetName, widgetId, workspaceId, type, title, body, data?, silent?, urgency? }
47423
47423
  * @returns {Promise<{ success: boolean, reason?: string }>}
47424
47424
  */
47425
- send: (payload) => ipcRenderer$5.invoke(NOTIFICATION_SEND, payload),
47425
+ send: (payload) => ipcRenderer$6.invoke(NOTIFICATION_SEND, payload),
47426
47426
 
47427
47427
  /**
47428
47428
  * Get all notification preferences (global + per-instance).
47429
47429
  *
47430
47430
  * @returns {Promise<{ globalEnabled: boolean, doNotDisturb: boolean, instances: Object }>}
47431
47431
  */
47432
- getPreferences: () => ipcRenderer$5.invoke(NOTIFICATION_GET_PREFERENCES),
47432
+ getPreferences: () => ipcRenderer$6.invoke(NOTIFICATION_GET_PREFERENCES),
47433
47433
 
47434
47434
  /**
47435
47435
  * Set per-widget-instance notification preferences.
@@ -47439,7 +47439,7 @@ const notificationApi$2 = {
47439
47439
  * @returns {Promise<{ success: boolean }>}
47440
47440
  */
47441
47441
  setPreferences: (widgetId, prefs) =>
47442
- ipcRenderer$5.invoke(NOTIFICATION_SET_PREFERENCES, { widgetId, prefs }),
47442
+ ipcRenderer$6.invoke(NOTIFICATION_SET_PREFERENCES, { widgetId, prefs }),
47443
47443
 
47444
47444
  /**
47445
47445
  * Set global notification settings (enabled, DND).
@@ -47448,7 +47448,7 @@ const notificationApi$2 = {
47448
47448
  * @returns {Promise<{ success: boolean }>}
47449
47449
  */
47450
47450
  setGlobal: (settings) =>
47451
- ipcRenderer$5.invoke(NOTIFICATION_SET_GLOBAL, settings),
47451
+ ipcRenderer$6.invoke(NOTIFICATION_SET_GLOBAL, settings),
47452
47452
 
47453
47453
  /**
47454
47454
  * Listen for notification click events from the main process.
@@ -47458,8 +47458,8 @@ const notificationApi$2 = {
47458
47458
  */
47459
47459
  onClicked: (callback) => {
47460
47460
  const handler = (_event, data) => callback(data);
47461
- ipcRenderer$5.on("notification:clicked", handler);
47462
- return () => ipcRenderer$5.removeListener("notification:clicked", handler);
47461
+ ipcRenderer$6.on("notification:clicked", handler);
47462
+ return () => ipcRenderer$6.removeListener("notification:clicked", handler);
47463
47463
  },
47464
47464
 
47465
47465
  /**
@@ -47470,9 +47470,9 @@ const notificationApi$2 = {
47470
47470
  */
47471
47471
  onDndChanged: (callback) => {
47472
47472
  const handler = (_event, dndEnabled) => callback(dndEnabled);
47473
- ipcRenderer$5.on("notification:dnd-changed", handler);
47473
+ ipcRenderer$6.on("notification:dnd-changed", handler);
47474
47474
  return () =>
47475
- ipcRenderer$5.removeListener("notification:dnd-changed", handler);
47475
+ ipcRenderer$6.removeListener("notification:dnd-changed", handler);
47476
47476
  },
47477
47477
  };
47478
47478
 
@@ -47485,7 +47485,7 @@ var notificationApi_1 = notificationApi$2;
47485
47485
  * Exposed to the renderer via mainApi.scheduler.
47486
47486
  */
47487
47487
 
47488
- const { ipcRenderer: ipcRenderer$4 } = require$$0$2;
47488
+ const { ipcRenderer: ipcRenderer$5 } = require$$0$2;
47489
47489
  const {
47490
47490
  SCHEDULER_REGISTER_TASK,
47491
47491
  SCHEDULER_REMOVE_TASK,
@@ -47506,7 +47506,7 @@ const schedulerApi$2 = {
47506
47506
  * @returns {Promise<{ success: boolean, taskId?: string, error?: string }>}
47507
47507
  */
47508
47508
  registerTask: (payload) =>
47509
- ipcRenderer$4.invoke(SCHEDULER_REGISTER_TASK, payload),
47509
+ ipcRenderer$5.invoke(SCHEDULER_REGISTER_TASK, payload),
47510
47510
 
47511
47511
  /**
47512
47512
  * Remove a single task.
@@ -47514,7 +47514,7 @@ const schedulerApi$2 = {
47514
47514
  * @param {string} taskId - "widgetUuid:taskKey"
47515
47515
  * @returns {Promise<{ success: boolean }>}
47516
47516
  */
47517
- removeTask: (taskId) => ipcRenderer$4.invoke(SCHEDULER_REMOVE_TASK, taskId),
47517
+ removeTask: (taskId) => ipcRenderer$5.invoke(SCHEDULER_REMOVE_TASK, taskId),
47518
47518
 
47519
47519
  /**
47520
47520
  * Remove all tasks for a widget instance.
@@ -47523,7 +47523,7 @@ const schedulerApi$2 = {
47523
47523
  * @returns {Promise<{ success: boolean, count: number }>}
47524
47524
  */
47525
47525
  removeTasks: (widgetId) =>
47526
- ipcRenderer$4.invoke(SCHEDULER_REMOVE_TASKS, widgetId),
47526
+ ipcRenderer$5.invoke(SCHEDULER_REMOVE_TASKS, widgetId),
47527
47527
 
47528
47528
  /**
47529
47529
  * Get all tasks for a widget instance.
@@ -47531,7 +47531,7 @@ const schedulerApi$2 = {
47531
47531
  * @param {string} widgetId - widget instance UUID
47532
47532
  * @returns {Promise<Object[]>}
47533
47533
  */
47534
- getTasks: (widgetId) => ipcRenderer$4.invoke(SCHEDULER_GET_TASKS, widgetId),
47534
+ getTasks: (widgetId) => ipcRenderer$5.invoke(SCHEDULER_GET_TASKS, widgetId),
47535
47535
 
47536
47536
  /**
47537
47537
  * Update a task's schedule configuration.
@@ -47541,7 +47541,7 @@ const schedulerApi$2 = {
47541
47541
  * @returns {Promise<{ success: boolean }>}
47542
47542
  */
47543
47543
  updateTask: (taskId, updates) =>
47544
- ipcRenderer$4.invoke(SCHEDULER_UPDATE_TASK, { taskId, updates }),
47544
+ ipcRenderer$5.invoke(SCHEDULER_UPDATE_TASK, { taskId, updates }),
47545
47545
 
47546
47546
  /**
47547
47547
  * Enable a task.
@@ -47549,7 +47549,7 @@ const schedulerApi$2 = {
47549
47549
  * @param {string} taskId - "widgetUuid:taskKey"
47550
47550
  * @returns {Promise<{ success: boolean }>}
47551
47551
  */
47552
- enableTask: (taskId) => ipcRenderer$4.invoke(SCHEDULER_ENABLE_TASK, taskId),
47552
+ enableTask: (taskId) => ipcRenderer$5.invoke(SCHEDULER_ENABLE_TASK, taskId),
47553
47553
 
47554
47554
  /**
47555
47555
  * Disable a task.
@@ -47557,7 +47557,7 @@ const schedulerApi$2 = {
47557
47557
  * @param {string} taskId - "widgetUuid:taskKey"
47558
47558
  * @returns {Promise<{ success: boolean }>}
47559
47559
  */
47560
- disableTask: (taskId) => ipcRenderer$4.invoke(SCHEDULER_DISABLE_TASK, taskId),
47560
+ disableTask: (taskId) => ipcRenderer$5.invoke(SCHEDULER_DISABLE_TASK, taskId),
47561
47561
 
47562
47562
  /**
47563
47563
  * Drain pending fire results for a widget.
@@ -47565,7 +47565,7 @@ const schedulerApi$2 = {
47565
47565
  * @param {string} widgetId - widget instance UUID
47566
47566
  * @returns {Promise<Object[]>}
47567
47567
  */
47568
- getPending: (widgetId) => ipcRenderer$4.invoke(SCHEDULER_GET_PENDING, widgetId),
47568
+ getPending: (widgetId) => ipcRenderer$5.invoke(SCHEDULER_GET_PENDING, widgetId),
47569
47569
 
47570
47570
  /**
47571
47571
  * Listen for task-fired events from the main process.
@@ -47575,8 +47575,8 @@ const schedulerApi$2 = {
47575
47575
  */
47576
47576
  onTaskFired: (callback) => {
47577
47577
  const handler = (_event, data) => callback(data);
47578
- ipcRenderer$4.on(SCHEDULER_TASK_FIRED, handler);
47579
- return () => ipcRenderer$4.removeListener(SCHEDULER_TASK_FIRED, handler);
47578
+ ipcRenderer$5.on(SCHEDULER_TASK_FIRED, handler);
47579
+ return () => ipcRenderer$5.removeListener(SCHEDULER_TASK_FIRED, handler);
47580
47580
  },
47581
47581
  };
47582
47582
 
@@ -47588,7 +47588,7 @@ var schedulerApi_1 = schedulerApi$2;
47588
47588
  * Renderer-side IPC API for theme-from-URL extraction and palette mapping.
47589
47589
  */
47590
47590
 
47591
- const { ipcRenderer: ipcRenderer$3 } = require$$0$2;
47591
+ const { ipcRenderer: ipcRenderer$4 } = require$$0$2;
47592
47592
 
47593
47593
  const {
47594
47594
  THEME_EXTRACT_FROM_URL,
@@ -47596,13 +47596,118 @@ const {
47596
47596
  } = events$8;
47597
47597
 
47598
47598
  const themeFromUrlApi$2 = {
47599
- extractFromUrl: (url) => ipcRenderer$3.invoke(THEME_EXTRACT_FROM_URL, { url }),
47599
+ extractFromUrl: (url) => ipcRenderer$4.invoke(THEME_EXTRACT_FROM_URL, { url }),
47600
47600
  mapPaletteToTheme: (palette, overrides) =>
47601
- ipcRenderer$3.invoke(THEME_MAP_PALETTE_TO_THEME, { palette, overrides }),
47601
+ ipcRenderer$4.invoke(THEME_MAP_PALETTE_TO_THEME, { palette, overrides }),
47602
47602
  };
47603
47603
 
47604
47604
  var themeFromUrlApi_1 = themeFromUrlApi$2;
47605
47605
 
47606
+ /**
47607
+ * webSocketApi.js
47608
+ *
47609
+ * Preload bridge for WebSocket provider operations.
47610
+ * Communicates with main process via IPC to manage WebSocket connections.
47611
+ * Mirrors mcpApi.js patterns.
47612
+ */
47613
+
47614
+ const { ipcRenderer: ipcRenderer$3 } = require$$0$2;
47615
+ const {
47616
+ WS_CONNECT,
47617
+ WS_DISCONNECT,
47618
+ WS_SEND,
47619
+ WS_STATUS,
47620
+ WS_GET_ALL,
47621
+ WS_MESSAGE,
47622
+ WS_STATUS_CHANGE,
47623
+ } = events$8;
47624
+
47625
+ const webSocketApi$2 = {
47626
+ /**
47627
+ * connect
47628
+ * Open a WebSocket connection for the given provider
47629
+ *
47630
+ * @param {string} providerName unique provider name
47631
+ * @param {object} config { url, headers, subprotocols, credentials }
47632
+ * @returns {Promise<{ success, providerName, status } | { error, message }>}
47633
+ */
47634
+ connect: (providerName, config) =>
47635
+ ipcRenderer$3.invoke(WS_CONNECT, { providerName, config }),
47636
+
47637
+ /**
47638
+ * disconnect
47639
+ * Close a WebSocket connection
47640
+ *
47641
+ * @param {string} providerName the provider to disconnect
47642
+ * @returns {Promise<{ success, providerName } | { error, message }>}
47643
+ */
47644
+ disconnect: (providerName) =>
47645
+ ipcRenderer$3.invoke(WS_DISCONNECT, { providerName }),
47646
+
47647
+ /**
47648
+ * send
47649
+ * Send a message through an active WebSocket connection
47650
+ *
47651
+ * @param {string} providerName the provider to send through
47652
+ * @param {*} data the data to send
47653
+ * @returns {Promise<{ success } | { error, message }>}
47654
+ */
47655
+ send: (providerName, data) =>
47656
+ ipcRenderer$3.invoke(WS_SEND, { providerName, data }),
47657
+
47658
+ /**
47659
+ * getStatus
47660
+ * Get the connection status of a provider
47661
+ *
47662
+ * @param {string} providerName the provider name
47663
+ * @returns {Promise<{ providerName, status, messageCount, connectedAt, lastMessageAt }>}
47664
+ */
47665
+ getStatus: (providerName) => ipcRenderer$3.invoke(WS_STATUS, { providerName }),
47666
+
47667
+ /**
47668
+ * getAll
47669
+ * Get all active WebSocket connections with their status
47670
+ *
47671
+ * @returns {Promise<{ connections }>}
47672
+ */
47673
+ getAll: () => ipcRenderer$3.invoke(WS_GET_ALL),
47674
+
47675
+ /**
47676
+ * onMessage
47677
+ * Subscribe to incoming WebSocket messages from main process
47678
+ *
47679
+ * @param {Function} callback (event, { provider, data, timestamp })
47680
+ */
47681
+ onMessage: (callback) => ipcRenderer$3.on(WS_MESSAGE, callback),
47682
+
47683
+ /**
47684
+ * offMessage
47685
+ * Unsubscribe from incoming WebSocket messages
47686
+ *
47687
+ * @param {Function} callback the same callback passed to onMessage
47688
+ */
47689
+ offMessage: (callback) => ipcRenderer$3.removeListener(WS_MESSAGE, callback),
47690
+
47691
+ /**
47692
+ * onStatusChange
47693
+ * Subscribe to WebSocket connection status changes
47694
+ *
47695
+ * @param {Function} callback (event, { provider, status, error?, code?, reason? })
47696
+ */
47697
+ onStatusChange: (callback) => ipcRenderer$3.on(WS_STATUS_CHANGE, callback),
47698
+
47699
+ /**
47700
+ * offStatusChange
47701
+ * Unsubscribe from WebSocket status changes
47702
+ *
47703
+ * @param {Function} callback the same callback passed to onStatusChange
47704
+ */
47705
+ offStatusChange: (callback) =>
47706
+ ipcRenderer$3.removeListener(WS_STATUS_CHANGE, callback),
47707
+ };
47708
+
47709
+ var webSocketApi_1 = webSocketApi$2;
47710
+
47606
47711
  /**
47607
47712
  * dashboardRatingsApi.js
47608
47713
  *
@@ -47739,6 +47844,7 @@ const sessionApi = sessionApi_1;
47739
47844
  const notificationApi$1 = notificationApi_1;
47740
47845
  const schedulerApi$1 = schedulerApi_1;
47741
47846
  const themeFromUrlApi$1 = themeFromUrlApi_1;
47847
+ const webSocketApi$1 = webSocketApi_1;
47742
47848
 
47743
47849
  // Events constants
47744
47850
  const events$1 = events$8;
@@ -47817,6 +47923,7 @@ function createMainApi$1(extensions = {}) {
47817
47923
  notifications: notificationApi$1,
47818
47924
  scheduler: schedulerApi$1,
47819
47925
  themeFromUrl: themeFromUrlApi$1,
47926
+ webSocket: webSocketApi$1,
47820
47927
 
47821
47928
  widgetEvent: {
47822
47929
  publish: (eventType, content) => {
@@ -47903,6 +48010,7 @@ const registryAuthApi = registryAuthApi_1;
47903
48010
  const notificationApi = notificationApi_1;
47904
48011
  const schedulerApi = schedulerApi_1;
47905
48012
  const themeFromUrlApi = themeFromUrlApi_1;
48013
+ const webSocketApi = webSocketApi_1;
47906
48014
 
47907
48015
  // --- Events ---
47908
48016
  const events = events$8;
@@ -47973,6 +48081,7 @@ var electron = {
47973
48081
  notificationApi,
47974
48082
  schedulerApi,
47975
48083
  themeFromUrlApi,
48084
+ webSocketApi,
47976
48085
 
47977
48086
  // Events
47978
48087
  events,