@trops/dash-core 0.1.598 → 0.1.600
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/electron/index.js +428 -160
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +233 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +233 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/electron/index.js
CHANGED
|
@@ -934,6 +934,20 @@ var onboardingEvents$1 = {
|
|
|
934
934
|
ONBOARDING_MARK_COMPLETED: ONBOARDING_MARK_COMPLETED$1,
|
|
935
935
|
};
|
|
936
936
|
|
|
937
|
+
/**
|
|
938
|
+
* Event Constants — Export Events
|
|
939
|
+
*
|
|
940
|
+
* IPC event constants for the Export Everything bundle (Phase 4A).
|
|
941
|
+
* The renderer calls these via `window.mainApi.export.*`; the main
|
|
942
|
+
* process registers a handler against `exportController.exportEverythingForApplication`.
|
|
943
|
+
*/
|
|
944
|
+
|
|
945
|
+
const EXPORT_EVERYTHING$1 = "export:everything";
|
|
946
|
+
|
|
947
|
+
var exportEvents$1 = {
|
|
948
|
+
EXPORT_EVERYTHING: EXPORT_EVERYTHING$1,
|
|
949
|
+
};
|
|
950
|
+
|
|
937
951
|
/**
|
|
938
952
|
* Events
|
|
939
953
|
*
|
|
@@ -965,6 +979,7 @@ const webSocketEvents = requireWebSocketEvents();
|
|
|
965
979
|
const mcpDashServerEvents = mcpDashServerEvents$1;
|
|
966
980
|
const publisherKeyEvents = publisherKeyEvents$1;
|
|
967
981
|
const onboardingEvents = onboardingEvents$1;
|
|
982
|
+
const exportEvents = exportEvents$1;
|
|
968
983
|
|
|
969
984
|
const publicEvents = {
|
|
970
985
|
...dataEvents,
|
|
@@ -990,6 +1005,7 @@ const API_GROUPS = {
|
|
|
990
1005
|
providers: Object.values(providerEvents),
|
|
991
1006
|
"publisher-key": Object.values(publisherKeyEvents),
|
|
992
1007
|
onboarding: Object.values(onboardingEvents),
|
|
1008
|
+
export: Object.values(exportEvents),
|
|
993
1009
|
registry: Object.values(registryEvents),
|
|
994
1010
|
"registry-auth": Object.values(registryAuthEvents),
|
|
995
1011
|
scheduler: Object.values(schedulerEvents),
|
|
@@ -1030,6 +1046,7 @@ var events$8 = {
|
|
|
1030
1046
|
...mcpDashServerEvents,
|
|
1031
1047
|
...publisherKeyEvents,
|
|
1032
1048
|
...onboardingEvents,
|
|
1049
|
+
...exportEvents,
|
|
1033
1050
|
};
|
|
1034
1051
|
|
|
1035
1052
|
/**
|
|
@@ -64015,6 +64032,220 @@ var onboardingController$1 = {
|
|
|
64015
64032
|
_clearRecord: () => getStore$1().delete("onboarding"),
|
|
64016
64033
|
};
|
|
64017
64034
|
|
|
64035
|
+
/**
|
|
64036
|
+
* exportController.js
|
|
64037
|
+
*
|
|
64038
|
+
* "Export Everything" bundle (Phase 4A of the MVP launch audit).
|
|
64039
|
+
*
|
|
64040
|
+
* Gathers every piece of user-owned config — workspaces, themes,
|
|
64041
|
+
* menu items / folders, and providers (METADATA ONLY, never the
|
|
64042
|
+
* decrypted credentials) — into a single ZIP that the user can save
|
|
64043
|
+
* as a backup or migration aid.
|
|
64044
|
+
*
|
|
64045
|
+
* Hard safety property: the ZIP MUST NOT contain provider credentials.
|
|
64046
|
+
* `providerController.listProviders` returns `provider.credentials` in
|
|
64047
|
+
* the decrypted plaintext form (see providerController.js:188-204), so
|
|
64048
|
+
* a naive `JSON.stringify(providers)` would leak every saved token in
|
|
64049
|
+
* the user's app to an arbitrary path on disk. This module uses an
|
|
64050
|
+
* EXPLICIT FIELD ALLOWLIST (not a blocklist) — only the fields named
|
|
64051
|
+
* in `SAFE_PROVIDER_FIELDS` ever leave the function. Re-import is out
|
|
64052
|
+
* of scope for MVP; the ZIP is read-only backup.
|
|
64053
|
+
*
|
|
64054
|
+
* The bundle layout (rooted at the user-picked ZIP path):
|
|
64055
|
+
* /manifest.json — schemaVersion + exportedAt + counts
|
|
64056
|
+
* /workspaces.json — array of workspaces (as stored on disk)
|
|
64057
|
+
* /themes.json — themes keyed by themeKey
|
|
64058
|
+
* /menu-items.json — folder/menu structure
|
|
64059
|
+
* /providers.json — providers with credentials stripped
|
|
64060
|
+
*
|
|
64061
|
+
* Schema versioning: `BUNDLE_SCHEMA_VERSION` stamps the manifest so a
|
|
64062
|
+
* future importer can refuse incompatible bundles loudly rather than
|
|
64063
|
+
* silently corrupting state.
|
|
64064
|
+
*/
|
|
64065
|
+
|
|
64066
|
+
// `electron`, the four controllers, `path`, and `adm-zip` are
|
|
64067
|
+
// lazy-required INSIDE `exportEverythingForApplication` so the pure
|
|
64068
|
+
// helpers (`stripProviderCredentials`, `buildBundleFiles`) can be
|
|
64069
|
+
// loaded under `node:test` without booting the Electron runtime or
|
|
64070
|
+
// the controller chain (which itself requires `electron`).
|
|
64071
|
+
|
|
64072
|
+
const BUNDLE_SCHEMA_VERSION = "1.0.0";
|
|
64073
|
+
|
|
64074
|
+
// Allowlist of provider fields that are safe to include in the
|
|
64075
|
+
// exported bundle. Any field name NOT in this set is dropped — this
|
|
64076
|
+
// is the only line of defense against accidental credential leakage,
|
|
64077
|
+
// and it's tested explicitly in exportController.test.js. Adding a
|
|
64078
|
+
// new field here requires confirming it never carries a secret.
|
|
64079
|
+
const SAFE_PROVIDER_FIELDS = [
|
|
64080
|
+
"name",
|
|
64081
|
+
"type",
|
|
64082
|
+
"providerClass",
|
|
64083
|
+
"dateCreated",
|
|
64084
|
+
"dateUpdated",
|
|
64085
|
+
"isDefaultForType",
|
|
64086
|
+
"mcpConfig", // connection metadata (command, args mapping) — no secrets
|
|
64087
|
+
"allowedTools",
|
|
64088
|
+
"wsConfig", // WebSocket URLs — no secrets
|
|
64089
|
+
];
|
|
64090
|
+
|
|
64091
|
+
/**
|
|
64092
|
+
* Strip every provider down to the allowlisted fields. Anything else
|
|
64093
|
+
* (most importantly `credentials`) is dropped.
|
|
64094
|
+
*
|
|
64095
|
+
* Exported for direct unit testing — the credential-leak regression
|
|
64096
|
+
* pin asserts this function is the only path provider data takes to
|
|
64097
|
+
* the bundle.
|
|
64098
|
+
*
|
|
64099
|
+
* @param {Array<Object>} providers - raw listProviders() output
|
|
64100
|
+
* @returns {Array<Object>} sanitized copies
|
|
64101
|
+
*/
|
|
64102
|
+
function stripProviderCredentials(providers) {
|
|
64103
|
+
if (!Array.isArray(providers)) return [];
|
|
64104
|
+
return providers.map((p) => {
|
|
64105
|
+
const safe = {};
|
|
64106
|
+
for (const field of SAFE_PROVIDER_FIELDS) {
|
|
64107
|
+
if (field in p) safe[field] = p[field];
|
|
64108
|
+
}
|
|
64109
|
+
return safe;
|
|
64110
|
+
});
|
|
64111
|
+
}
|
|
64112
|
+
|
|
64113
|
+
/**
|
|
64114
|
+
* Build the bundle contents (4 JSON blobs + manifest) without
|
|
64115
|
+
* touching the disk. Exported separately so tests can assert on the
|
|
64116
|
+
* structure without mocking electron's dialog/fs surfaces.
|
|
64117
|
+
*
|
|
64118
|
+
* @param {Object} sources - results of the four list calls
|
|
64119
|
+
* @param {Array} sources.workspaces
|
|
64120
|
+
* @param {Object} sources.themes
|
|
64121
|
+
* @param {Array} sources.menuItems
|
|
64122
|
+
* @param {Array} sources.providers - raw, MAY contain credentials
|
|
64123
|
+
* @returns {Object} map of file name → Buffer
|
|
64124
|
+
*/
|
|
64125
|
+
function buildBundleFiles(sources) {
|
|
64126
|
+
const safeProviders = stripProviderCredentials(sources.providers || []);
|
|
64127
|
+
const manifest = {
|
|
64128
|
+
schemaVersion: BUNDLE_SCHEMA_VERSION,
|
|
64129
|
+
exportedAt: new Date().toISOString(),
|
|
64130
|
+
counts: {
|
|
64131
|
+
workspaces: Array.isArray(sources.workspaces)
|
|
64132
|
+
? sources.workspaces.length
|
|
64133
|
+
: 0,
|
|
64134
|
+
themes:
|
|
64135
|
+
sources.themes && typeof sources.themes === "object"
|
|
64136
|
+
? Object.keys(sources.themes).length
|
|
64137
|
+
: 0,
|
|
64138
|
+
menuItems: Array.isArray(sources.menuItems)
|
|
64139
|
+
? sources.menuItems.length
|
|
64140
|
+
: 0,
|
|
64141
|
+
providers: safeProviders.length,
|
|
64142
|
+
},
|
|
64143
|
+
};
|
|
64144
|
+
const stringify = (obj) => Buffer.from(JSON.stringify(obj, null, 2), "utf-8");
|
|
64145
|
+
return {
|
|
64146
|
+
"manifest.json": stringify(manifest),
|
|
64147
|
+
"workspaces.json": stringify(sources.workspaces || []),
|
|
64148
|
+
"themes.json": stringify(sources.themes || {}),
|
|
64149
|
+
"menu-items.json": stringify(sources.menuItems || []),
|
|
64150
|
+
"providers.json": stringify(safeProviders),
|
|
64151
|
+
};
|
|
64152
|
+
}
|
|
64153
|
+
|
|
64154
|
+
/**
|
|
64155
|
+
* Export every piece of user-owned config to a single ZIP file the
|
|
64156
|
+
* user picks via the save dialog. Returns `{success, filePath}` on
|
|
64157
|
+
* success, `{success: false, error}` on failure, or
|
|
64158
|
+
* `{success: false, canceled: true}` if the user dismissed the
|
|
64159
|
+
* dialog.
|
|
64160
|
+
*
|
|
64161
|
+
* Provider credentials are NEVER included in the bundle.
|
|
64162
|
+
*
|
|
64163
|
+
* @param {BrowserWindow} win - main window (for dialog)
|
|
64164
|
+
* @param {string} appId - application identifier
|
|
64165
|
+
* @param {Object} [options]
|
|
64166
|
+
* @param {string} [options.defaultPath] - override the default save
|
|
64167
|
+
* path (used by tests to skip the dialog and write directly)
|
|
64168
|
+
* @returns {Promise<Object>}
|
|
64169
|
+
*/
|
|
64170
|
+
async function exportEverythingForApplication$1(win, appId, options = {}) {
|
|
64171
|
+
try {
|
|
64172
|
+
const { app, dialog } = require("electron");
|
|
64173
|
+
const path = require("path");
|
|
64174
|
+
const AdmZip = require("adm-zip");
|
|
64175
|
+
const workspaceController = workspaceController_1;
|
|
64176
|
+
const themeController = themeController_1;
|
|
64177
|
+
const menuItemsController = menuItemsController_1;
|
|
64178
|
+
const providerController = requireProviderController();
|
|
64179
|
+
|
|
64180
|
+
const wsResult = workspaceController.listWorkspacesForApplication(
|
|
64181
|
+
win,
|
|
64182
|
+
appId,
|
|
64183
|
+
);
|
|
64184
|
+
const themeResult = themeController.listThemesForApplication(win, appId);
|
|
64185
|
+
const menuResult = menuItemsController.listMenuItemsForApplication(
|
|
64186
|
+
win,
|
|
64187
|
+
appId,
|
|
64188
|
+
);
|
|
64189
|
+
const provResult = providerController.listProviders(win, appId);
|
|
64190
|
+
|
|
64191
|
+
const files = buildBundleFiles({
|
|
64192
|
+
workspaces: wsResult?.workspaces || [],
|
|
64193
|
+
themes: themeResult?.themes || {},
|
|
64194
|
+
menuItems: menuResult?.menuItems || [],
|
|
64195
|
+
providers: provResult?.providers || [],
|
|
64196
|
+
});
|
|
64197
|
+
|
|
64198
|
+
// Allow tests to bypass the save dialog by providing a path. In
|
|
64199
|
+
// production, always go through Electron's native save picker so
|
|
64200
|
+
// the user explicitly chooses where the bundle lands.
|
|
64201
|
+
let filePath = options.defaultPath || null;
|
|
64202
|
+
if (!filePath) {
|
|
64203
|
+
const stamp = new Date()
|
|
64204
|
+
.toISOString()
|
|
64205
|
+
.replace(/[:.]/g, "-")
|
|
64206
|
+
.replace(/T/, "_")
|
|
64207
|
+
.slice(0, 19);
|
|
64208
|
+
const suggested = path.join(
|
|
64209
|
+
app.getPath("desktop"),
|
|
64210
|
+
`dash-backup-${stamp}.zip`,
|
|
64211
|
+
);
|
|
64212
|
+
const dlg = await dialog.showSaveDialog(win, {
|
|
64213
|
+
title: "Export Everything",
|
|
64214
|
+
defaultPath: suggested,
|
|
64215
|
+
filters: [{ name: "ZIP Archive", extensions: ["zip"] }],
|
|
64216
|
+
});
|
|
64217
|
+
if (dlg.canceled || !dlg.filePath) {
|
|
64218
|
+
return { success: false, canceled: true };
|
|
64219
|
+
}
|
|
64220
|
+
filePath = dlg.filePath;
|
|
64221
|
+
}
|
|
64222
|
+
|
|
64223
|
+
const zip = new AdmZip();
|
|
64224
|
+
for (const [name, buf] of Object.entries(files)) {
|
|
64225
|
+
zip.addFile(name, buf);
|
|
64226
|
+
}
|
|
64227
|
+
zip.writeZip(filePath);
|
|
64228
|
+
|
|
64229
|
+
return {
|
|
64230
|
+
success: true,
|
|
64231
|
+
filePath,
|
|
64232
|
+
counts: JSON.parse(files["manifest.json"].toString("utf-8")).counts,
|
|
64233
|
+
};
|
|
64234
|
+
} catch (e) {
|
|
64235
|
+
console.error("[exportController] Export failed:", e);
|
|
64236
|
+
return { success: false, error: e?.message || String(e) };
|
|
64237
|
+
}
|
|
64238
|
+
}
|
|
64239
|
+
|
|
64240
|
+
var exportController$1 = {
|
|
64241
|
+
exportEverythingForApplication: exportEverythingForApplication$1,
|
|
64242
|
+
// exported for tests
|
|
64243
|
+
buildBundleFiles,
|
|
64244
|
+
stripProviderCredentials,
|
|
64245
|
+
SAFE_PROVIDER_FIELDS,
|
|
64246
|
+
BUNDLE_SCHEMA_VERSION,
|
|
64247
|
+
};
|
|
64248
|
+
|
|
64018
64249
|
/**
|
|
64019
64250
|
* notificationController.js
|
|
64020
64251
|
*
|
|
@@ -66844,6 +67075,7 @@ const {
|
|
|
66844
67075
|
getOnboardingStatus,
|
|
66845
67076
|
markOnboardingCompleted,
|
|
66846
67077
|
} = onboardingController$1;
|
|
67078
|
+
const { exportEverythingForApplication } = exportController$1;
|
|
66847
67079
|
const {
|
|
66848
67080
|
getRecentDashboards,
|
|
66849
67081
|
addRecentDashboard,
|
|
@@ -66951,6 +67183,7 @@ var controller = {
|
|
|
66951
67183
|
describeLocalKey,
|
|
66952
67184
|
getOnboardingStatus,
|
|
66953
67185
|
markOnboardingCompleted,
|
|
67186
|
+
exportEverythingForApplication,
|
|
66954
67187
|
getRecentDashboards,
|
|
66955
67188
|
addRecentDashboard,
|
|
66956
67189
|
clearRecentDashboards,
|
|
@@ -66972,7 +67205,7 @@ var controller = {
|
|
|
66972
67205
|
mcpDashServerController: mcpDashServerController$2,
|
|
66973
67206
|
};
|
|
66974
67207
|
|
|
66975
|
-
const { ipcRenderer: ipcRenderer$
|
|
67208
|
+
const { ipcRenderer: ipcRenderer$r } = require$$0$2;
|
|
66976
67209
|
const { SECURE_STORE_ENCRYPTION_CHECK } = events$8;
|
|
66977
67210
|
/**
|
|
66978
67211
|
* secureStoreApi
|
|
@@ -66994,7 +67227,7 @@ const { SECURE_STORE_ENCRYPTION_CHECK } = events$8;
|
|
|
66994
67227
|
*/
|
|
66995
67228
|
const secureStoreApi$2 = {
|
|
66996
67229
|
isEncryptionAvailable: () =>
|
|
66997
|
-
ipcRenderer$
|
|
67230
|
+
ipcRenderer$r.invoke(SECURE_STORE_ENCRYPTION_CHECK, {}),
|
|
66998
67231
|
};
|
|
66999
67232
|
|
|
67000
67233
|
var secureStoreApi_1 = secureStoreApi$2;
|
|
@@ -67005,7 +67238,7 @@ var secureStoreApi_1 = secureStoreApi$2;
|
|
|
67005
67238
|
* Handle the workspace configuration file
|
|
67006
67239
|
*/
|
|
67007
67240
|
|
|
67008
|
-
const { ipcRenderer: ipcRenderer$
|
|
67241
|
+
const { ipcRenderer: ipcRenderer$q } = require$$0$2;
|
|
67009
67242
|
const {
|
|
67010
67243
|
WORKSPACE_LIST,
|
|
67011
67244
|
WORKSPACE_SAVE,
|
|
@@ -67022,7 +67255,7 @@ const workspaceApi$2 = {
|
|
|
67022
67255
|
*/
|
|
67023
67256
|
listWorkspacesForApplication: (appId) => {
|
|
67024
67257
|
console.log("listWorkspacesForApplication called with appId:", appId);
|
|
67025
|
-
return ipcRenderer$
|
|
67258
|
+
return ipcRenderer$q.invoke(WORKSPACE_LIST, { appId });
|
|
67026
67259
|
},
|
|
67027
67260
|
|
|
67028
67261
|
/**
|
|
@@ -67033,7 +67266,7 @@ const workspaceApi$2 = {
|
|
|
67033
67266
|
* @returns
|
|
67034
67267
|
*/
|
|
67035
67268
|
saveWorkspaceForApplication: (appId, data) =>
|
|
67036
|
-
ipcRenderer$
|
|
67269
|
+
ipcRenderer$q.invoke(WORKSPACE_SAVE, { appId, data }),
|
|
67037
67270
|
|
|
67038
67271
|
/**
|
|
67039
67272
|
* deleteWorkspaceForApplication
|
|
@@ -67043,7 +67276,7 @@ const workspaceApi$2 = {
|
|
|
67043
67276
|
* @returns
|
|
67044
67277
|
*/
|
|
67045
67278
|
deleteWorkspaceForApplication: (appId, workspaceId) =>
|
|
67046
|
-
ipcRenderer$
|
|
67279
|
+
ipcRenderer$q.invoke(WORKSPACE_DELETE, { appId, workspaceId }),
|
|
67047
67280
|
};
|
|
67048
67281
|
|
|
67049
67282
|
var workspaceApi_1 = workspaceApi$2;
|
|
@@ -67055,13 +67288,13 @@ var workspaceApi_1 = workspaceApi$2;
|
|
|
67055
67288
|
*/
|
|
67056
67289
|
|
|
67057
67290
|
// ipcRenderer that must be used to invoke the events
|
|
67058
|
-
const { ipcRenderer: ipcRenderer$
|
|
67291
|
+
const { ipcRenderer: ipcRenderer$p } = require$$0$2;
|
|
67059
67292
|
|
|
67060
67293
|
const { LAYOUT_LIST } = events$8;
|
|
67061
67294
|
|
|
67062
67295
|
const layoutApi$2 = {
|
|
67063
67296
|
listLayoutsForApplication: (appId) =>
|
|
67064
|
-
ipcRenderer$
|
|
67297
|
+
ipcRenderer$p.invoke(LAYOUT_LIST, { appId }),
|
|
67065
67298
|
};
|
|
67066
67299
|
|
|
67067
67300
|
var layoutApi_1 = layoutApi$2;
|
|
@@ -67073,7 +67306,7 @@ var layoutApi_1 = layoutApi$2;
|
|
|
67073
67306
|
*/
|
|
67074
67307
|
|
|
67075
67308
|
// ipcRenderer that must be used to invoke the events
|
|
67076
|
-
const { ipcRenderer: ipcRenderer$
|
|
67309
|
+
const { ipcRenderer: ipcRenderer$o } = require$$0$2;
|
|
67077
67310
|
|
|
67078
67311
|
const {
|
|
67079
67312
|
DATA_JSON_TO_CSV_FILE,
|
|
@@ -67091,7 +67324,7 @@ const {
|
|
|
67091
67324
|
const dataApi$2 = {
|
|
67092
67325
|
// convert a json array of objects to a csv string and save to file
|
|
67093
67326
|
convertJsonToCsvFile: (appId, jsonObject, filename) =>
|
|
67094
|
-
ipcRenderer$
|
|
67327
|
+
ipcRenderer$o.invoke(DATA_JSON_TO_CSV_FILE, {
|
|
67095
67328
|
appId,
|
|
67096
67329
|
jsonObject,
|
|
67097
67330
|
filename,
|
|
@@ -67099,10 +67332,10 @@ const dataApi$2 = {
|
|
|
67099
67332
|
|
|
67100
67333
|
// convert a json array of objects to a csv string and return a string
|
|
67101
67334
|
convertJsonToCsvString: (appId, jsonObject) =>
|
|
67102
|
-
ipcRenderer$
|
|
67335
|
+
ipcRenderer$o.invoke(DATA_JSON_TO_CSV_STRING, { appId, jsonObject }),
|
|
67103
67336
|
|
|
67104
67337
|
parseXMLStream: (filepath, outpath, start) =>
|
|
67105
|
-
ipcRenderer$
|
|
67338
|
+
ipcRenderer$o.invoke(PARSE_XML_STREAM, {
|
|
67106
67339
|
filepath,
|
|
67107
67340
|
outpath,
|
|
67108
67341
|
start,
|
|
@@ -67116,7 +67349,7 @@ const dataApi$2 = {
|
|
|
67116
67349
|
headers = null,
|
|
67117
67350
|
limit = null,
|
|
67118
67351
|
) => {
|
|
67119
|
-
ipcRenderer$
|
|
67352
|
+
ipcRenderer$o.invoke(PARSE_CSV_STREAM, {
|
|
67120
67353
|
filepath,
|
|
67121
67354
|
outpath,
|
|
67122
67355
|
delimiter,
|
|
@@ -67127,15 +67360,15 @@ const dataApi$2 = {
|
|
|
67127
67360
|
},
|
|
67128
67361
|
|
|
67129
67362
|
readLinesFromFile: (filepath, lineCount) => {
|
|
67130
|
-
ipcRenderer$
|
|
67363
|
+
ipcRenderer$o.invoke(READ_LINES, { filepath, lineCount });
|
|
67131
67364
|
},
|
|
67132
67365
|
|
|
67133
67366
|
readJSONFromFile: (filepath, objectCount = null) => {
|
|
67134
|
-
ipcRenderer$
|
|
67367
|
+
ipcRenderer$o.invoke(READ_JSON, { filepath, objectCount });
|
|
67135
67368
|
},
|
|
67136
67369
|
|
|
67137
67370
|
readDataFromURL: (url, toFilepath, widgetId = null, token = null) => {
|
|
67138
|
-
ipcRenderer$
|
|
67371
|
+
ipcRenderer$o.invoke(READ_DATA_URL, { url, toFilepath, widgetId, token });
|
|
67139
67372
|
},
|
|
67140
67373
|
|
|
67141
67374
|
/*
|
|
@@ -67151,7 +67384,7 @@ const dataApi$2 = {
|
|
|
67151
67384
|
widgetId = null,
|
|
67152
67385
|
token = null,
|
|
67153
67386
|
) =>
|
|
67154
|
-
ipcRenderer$
|
|
67387
|
+
ipcRenderer$o.invoke(DATA_SAVE_TO_FILE, {
|
|
67155
67388
|
data,
|
|
67156
67389
|
filename,
|
|
67157
67390
|
append,
|
|
@@ -67170,7 +67403,7 @@ const dataApi$2 = {
|
|
|
67170
67403
|
* gates the gate itself).
|
|
67171
67404
|
*/
|
|
67172
67405
|
readData: (filename, returnEmpty = [], widgetId = null, token = null) =>
|
|
67173
|
-
ipcRenderer$
|
|
67406
|
+
ipcRenderer$o.invoke(DATA_READ_FROM_FILE, {
|
|
67174
67407
|
filename,
|
|
67175
67408
|
returnEmpty,
|
|
67176
67409
|
widgetId,
|
|
@@ -67182,7 +67415,7 @@ const dataApi$2 = {
|
|
|
67182
67415
|
* @returns
|
|
67183
67416
|
*/
|
|
67184
67417
|
transformFile: (filepath, outFilepath, mappingFunctionBody, args) => {
|
|
67185
|
-
ipcRenderer$
|
|
67418
|
+
ipcRenderer$o.invoke(TRANSFORM_FILE, {
|
|
67186
67419
|
filepath,
|
|
67187
67420
|
outFilepath,
|
|
67188
67421
|
mappingFunctionBody,
|
|
@@ -67200,7 +67433,7 @@ var dataApi_1 = dataApi$2;
|
|
|
67200
67433
|
*/
|
|
67201
67434
|
|
|
67202
67435
|
// ipcRenderer that must be used to invoke the events
|
|
67203
|
-
const { ipcRenderer: ipcRenderer$
|
|
67436
|
+
const { ipcRenderer: ipcRenderer$n } = require$$0$2;
|
|
67204
67437
|
|
|
67205
67438
|
const {
|
|
67206
67439
|
SETTINGS_GET,
|
|
@@ -67211,14 +67444,14 @@ const {
|
|
|
67211
67444
|
} = events$8;
|
|
67212
67445
|
|
|
67213
67446
|
const settingsApi$2 = {
|
|
67214
|
-
getSettingsForApplication: () => ipcRenderer$
|
|
67447
|
+
getSettingsForApplication: () => ipcRenderer$n.invoke(SETTINGS_GET, {}),
|
|
67215
67448
|
saveSettingsForApplication: (data) =>
|
|
67216
|
-
ipcRenderer$
|
|
67217
|
-
getDataDirectory: () => ipcRenderer$
|
|
67449
|
+
ipcRenderer$n.invoke(SETTINGS_SAVE, { data }),
|
|
67450
|
+
getDataDirectory: () => ipcRenderer$n.invoke(SETTINGS_GET_DATA_DIR, {}),
|
|
67218
67451
|
setDataDirectory: (dataDirectory) =>
|
|
67219
|
-
ipcRenderer$
|
|
67452
|
+
ipcRenderer$n.invoke(SETTINGS_SET_DATA_DIR, { dataDirectory }),
|
|
67220
67453
|
migrateDataDirectory: (oldDirectory, newDirectory) =>
|
|
67221
|
-
ipcRenderer$
|
|
67454
|
+
ipcRenderer$n.invoke(SETTINGS_MIGRATE_DATA_DIR, {
|
|
67222
67455
|
oldDirectory,
|
|
67223
67456
|
newDirectory,
|
|
67224
67457
|
}),
|
|
@@ -67233,7 +67466,7 @@ var settingsApi_1 = settingsApi$2;
|
|
|
67233
67466
|
* Provides file/folder chooser dialogs.
|
|
67234
67467
|
*/
|
|
67235
67468
|
|
|
67236
|
-
const { ipcRenderer: ipcRenderer$
|
|
67469
|
+
const { ipcRenderer: ipcRenderer$m } = require$$0$2;
|
|
67237
67470
|
|
|
67238
67471
|
const { CHOOSE_FILE } = events$8;
|
|
67239
67472
|
|
|
@@ -67246,7 +67479,7 @@ const dialogApi$2 = {
|
|
|
67246
67479
|
* @returns {Promise<string|null>} selected file/folder path, or null if cancelled
|
|
67247
67480
|
*/
|
|
67248
67481
|
chooseFile: (allowFile = true, extensions = ["*"]) => {
|
|
67249
|
-
return ipcRenderer$
|
|
67482
|
+
return ipcRenderer$m.invoke(CHOOSE_FILE, { allowFile, extensions });
|
|
67250
67483
|
},
|
|
67251
67484
|
|
|
67252
67485
|
/**
|
|
@@ -67271,7 +67504,7 @@ const dialogApi$2 = {
|
|
|
67271
67504
|
typeof options.allowFile === "boolean" ? options.allowFile : allowFile;
|
|
67272
67505
|
const resolvedExtensions = options.extensions || extensions;
|
|
67273
67506
|
|
|
67274
|
-
const filePath = await ipcRenderer$
|
|
67507
|
+
const filePath = await ipcRenderer$m.invoke(CHOOSE_FILE, {
|
|
67275
67508
|
allowFile: resolvedAllowFile,
|
|
67276
67509
|
extensions: resolvedExtensions,
|
|
67277
67510
|
});
|
|
@@ -67298,7 +67531,7 @@ var dialogApi_1 = dialogApi$2;
|
|
|
67298
67531
|
* mainApi.widgets.uninstall('Weather')
|
|
67299
67532
|
*/
|
|
67300
67533
|
|
|
67301
|
-
const { ipcRenderer: ipcRenderer$
|
|
67534
|
+
const { ipcRenderer: ipcRenderer$l } = require$$0$2;
|
|
67302
67535
|
|
|
67303
67536
|
const widgetApi$2 = {
|
|
67304
67537
|
/**
|
|
@@ -67307,7 +67540,7 @@ const widgetApi$2 = {
|
|
|
67307
67540
|
*/
|
|
67308
67541
|
list: async () => {
|
|
67309
67542
|
try {
|
|
67310
|
-
return await ipcRenderer$
|
|
67543
|
+
return await ipcRenderer$l.invoke("widget:list");
|
|
67311
67544
|
} catch (error) {
|
|
67312
67545
|
console.error("[WidgetApi] Error listing widgets:", error);
|
|
67313
67546
|
throw error;
|
|
@@ -67321,7 +67554,7 @@ const widgetApi$2 = {
|
|
|
67321
67554
|
*/
|
|
67322
67555
|
get: async (widgetName) => {
|
|
67323
67556
|
try {
|
|
67324
|
-
return await ipcRenderer$
|
|
67557
|
+
return await ipcRenderer$l.invoke("widget:get", widgetName);
|
|
67325
67558
|
} catch (error) {
|
|
67326
67559
|
console.error(`[WidgetApi] Error getting widget ${widgetName}:`, error);
|
|
67327
67560
|
throw error;
|
|
@@ -67352,7 +67585,7 @@ const widgetApi$2 = {
|
|
|
67352
67585
|
console.log(
|
|
67353
67586
|
`[WidgetApi] Installing widget: ${widgetName} from ${downloadUrl}`,
|
|
67354
67587
|
);
|
|
67355
|
-
const config = await ipcRenderer$
|
|
67588
|
+
const config = await ipcRenderer$l.invoke(
|
|
67356
67589
|
"widget:install",
|
|
67357
67590
|
widgetName,
|
|
67358
67591
|
downloadUrl,
|
|
@@ -67392,7 +67625,7 @@ const widgetApi$2 = {
|
|
|
67392
67625
|
console.log(
|
|
67393
67626
|
`[WidgetApi] Installing local widget: ${widgetName} from ${localPath}`,
|
|
67394
67627
|
);
|
|
67395
|
-
const config = await ipcRenderer$
|
|
67628
|
+
const config = await ipcRenderer$l.invoke(
|
|
67396
67629
|
"widget:install-local",
|
|
67397
67630
|
widgetName,
|
|
67398
67631
|
localPath,
|
|
@@ -67423,7 +67656,7 @@ const widgetApi$2 = {
|
|
|
67423
67656
|
loadFolder: async (folderPath) => {
|
|
67424
67657
|
try {
|
|
67425
67658
|
console.log(`[WidgetApi] Loading widgets from folder: ${folderPath}`);
|
|
67426
|
-
const results = await ipcRenderer$
|
|
67659
|
+
const results = await ipcRenderer$l.invoke(
|
|
67427
67660
|
"widget:load-folder",
|
|
67428
67661
|
folderPath,
|
|
67429
67662
|
);
|
|
@@ -67447,7 +67680,7 @@ const widgetApi$2 = {
|
|
|
67447
67680
|
uninstall: async (widgetName) => {
|
|
67448
67681
|
try {
|
|
67449
67682
|
console.log(`[WidgetApi] Uninstalling widget: ${widgetName}`);
|
|
67450
|
-
const success = await ipcRenderer$
|
|
67683
|
+
const success = await ipcRenderer$l.invoke("widget:uninstall", widgetName);
|
|
67451
67684
|
if (success) {
|
|
67452
67685
|
console.log(`[WidgetApi] ✓ Widget ${widgetName} uninstalled`);
|
|
67453
67686
|
} else {
|
|
@@ -67470,7 +67703,7 @@ const widgetApi$2 = {
|
|
|
67470
67703
|
*/
|
|
67471
67704
|
getCachePath: async () => {
|
|
67472
67705
|
try {
|
|
67473
|
-
return await ipcRenderer$
|
|
67706
|
+
return await ipcRenderer$l.invoke("widget:cache-path");
|
|
67474
67707
|
} catch (error) {
|
|
67475
67708
|
console.error("[WidgetApi] Error getting cache path:", error);
|
|
67476
67709
|
throw error;
|
|
@@ -67484,7 +67717,7 @@ const widgetApi$2 = {
|
|
|
67484
67717
|
*/
|
|
67485
67718
|
getStoragePath: async () => {
|
|
67486
67719
|
try {
|
|
67487
|
-
return await ipcRenderer$
|
|
67720
|
+
return await ipcRenderer$l.invoke("widget:storage-path");
|
|
67488
67721
|
} catch (error) {
|
|
67489
67722
|
console.error("[WidgetApi] Error getting storage path:", error);
|
|
67490
67723
|
throw error;
|
|
@@ -67501,7 +67734,7 @@ const widgetApi$2 = {
|
|
|
67501
67734
|
setStoragePath: async (customPath) => {
|
|
67502
67735
|
try {
|
|
67503
67736
|
console.log(`[WidgetApi] Setting storage path to: ${customPath}`);
|
|
67504
|
-
const result = await ipcRenderer$
|
|
67737
|
+
const result = await ipcRenderer$l.invoke(
|
|
67505
67738
|
"widget:set-storage-path",
|
|
67506
67739
|
customPath,
|
|
67507
67740
|
);
|
|
@@ -67523,7 +67756,7 @@ const widgetApi$2 = {
|
|
|
67523
67756
|
*/
|
|
67524
67757
|
getComponentConfigs: async () => {
|
|
67525
67758
|
try {
|
|
67526
|
-
return await ipcRenderer$
|
|
67759
|
+
return await ipcRenderer$l.invoke("widget:get-component-configs");
|
|
67527
67760
|
} catch (error) {
|
|
67528
67761
|
console.error("[WidgetApi] Error getting component configs:", error);
|
|
67529
67762
|
return [];
|
|
@@ -67538,7 +67771,7 @@ const widgetApi$2 = {
|
|
|
67538
67771
|
*/
|
|
67539
67772
|
readBundle: async (widgetName) => {
|
|
67540
67773
|
try {
|
|
67541
|
-
return await ipcRenderer$
|
|
67774
|
+
return await ipcRenderer$l.invoke("widget:read-bundle", widgetName);
|
|
67542
67775
|
} catch (error) {
|
|
67543
67776
|
console.error(
|
|
67544
67777
|
`[WidgetApi] Error reading bundle for ${widgetName}:`,
|
|
@@ -67557,7 +67790,7 @@ const widgetApi$2 = {
|
|
|
67557
67790
|
*/
|
|
67558
67791
|
readSources: async (widgetName, componentName) => {
|
|
67559
67792
|
try {
|
|
67560
|
-
return await ipcRenderer$
|
|
67793
|
+
return await ipcRenderer$l.invoke("widget:read-sources", {
|
|
67561
67794
|
widgetName,
|
|
67562
67795
|
componentName,
|
|
67563
67796
|
});
|
|
@@ -67577,7 +67810,7 @@ const widgetApi$2 = {
|
|
|
67577
67810
|
*/
|
|
67578
67811
|
readAllBundles: async () => {
|
|
67579
67812
|
try {
|
|
67580
|
-
return await ipcRenderer$
|
|
67813
|
+
return await ipcRenderer$l.invoke("widget:read-all-bundles");
|
|
67581
67814
|
} catch (error) {
|
|
67582
67815
|
console.error("[WidgetApi] Error reading all bundles:", error);
|
|
67583
67816
|
return [];
|
|
@@ -67597,7 +67830,7 @@ const widgetApi$2 = {
|
|
|
67597
67830
|
* });
|
|
67598
67831
|
*/
|
|
67599
67832
|
onInstalled: (callback) => {
|
|
67600
|
-
ipcRenderer$
|
|
67833
|
+
ipcRenderer$l.on("widget:installed", (event, data) => {
|
|
67601
67834
|
callback(data);
|
|
67602
67835
|
});
|
|
67603
67836
|
},
|
|
@@ -67614,7 +67847,7 @@ const widgetApi$2 = {
|
|
|
67614
67847
|
* });
|
|
67615
67848
|
*/
|
|
67616
67849
|
onUninstalled: (callback) => {
|
|
67617
|
-
ipcRenderer$
|
|
67850
|
+
ipcRenderer$l.on("widget:uninstalled", (event, data) => {
|
|
67618
67851
|
callback(data);
|
|
67619
67852
|
});
|
|
67620
67853
|
},
|
|
@@ -67632,7 +67865,7 @@ const widgetApi$2 = {
|
|
|
67632
67865
|
* });
|
|
67633
67866
|
*/
|
|
67634
67867
|
onLoaded: (callback) => {
|
|
67635
|
-
ipcRenderer$
|
|
67868
|
+
ipcRenderer$l.on("widgets:loaded", (event, data) => {
|
|
67636
67869
|
callback(data);
|
|
67637
67870
|
});
|
|
67638
67871
|
},
|
|
@@ -67643,7 +67876,7 @@ const widgetApi$2 = {
|
|
|
67643
67876
|
* @param {Function} callback - The callback to remove
|
|
67644
67877
|
*/
|
|
67645
67878
|
removeInstalledListener: (callback) => {
|
|
67646
|
-
ipcRenderer$
|
|
67879
|
+
ipcRenderer$l.removeListener("widget:installed", callback);
|
|
67647
67880
|
},
|
|
67648
67881
|
|
|
67649
67882
|
/**
|
|
@@ -67652,7 +67885,7 @@ const widgetApi$2 = {
|
|
|
67652
67885
|
* @param {Function} callback - The callback to remove
|
|
67653
67886
|
*/
|
|
67654
67887
|
removeUninstalledListener: (callback) => {
|
|
67655
|
-
ipcRenderer$
|
|
67888
|
+
ipcRenderer$l.removeListener("widget:uninstalled", callback);
|
|
67656
67889
|
},
|
|
67657
67890
|
|
|
67658
67891
|
/**
|
|
@@ -67661,7 +67894,7 @@ const widgetApi$2 = {
|
|
|
67661
67894
|
* @param {Function} callback - The callback to remove
|
|
67662
67895
|
*/
|
|
67663
67896
|
removeLoadedListener: (callback) => {
|
|
67664
|
-
ipcRenderer$
|
|
67897
|
+
ipcRenderer$l.removeListener("widgets:loaded", callback);
|
|
67665
67898
|
},
|
|
67666
67899
|
};
|
|
67667
67900
|
|
|
@@ -67674,7 +67907,7 @@ var widgetApi_1 = widgetApi$2;
|
|
|
67674
67907
|
* Communicates with main process via IPC to handle encryption and file storage
|
|
67675
67908
|
*/
|
|
67676
67909
|
|
|
67677
|
-
const { ipcRenderer: ipcRenderer$
|
|
67910
|
+
const { ipcRenderer: ipcRenderer$k } = require$$0$2;
|
|
67678
67911
|
const {
|
|
67679
67912
|
PROVIDER_SAVE,
|
|
67680
67913
|
PROVIDER_LIST,
|
|
@@ -67712,7 +67945,7 @@ const providerApi$2 = {
|
|
|
67712
67945
|
// value, preserve what's on disk" from "caller explicitly unset it".
|
|
67713
67946
|
isDefaultForType = undefined,
|
|
67714
67947
|
) =>
|
|
67715
|
-
ipcRenderer$
|
|
67948
|
+
ipcRenderer$k.invoke(PROVIDER_SAVE, {
|
|
67716
67949
|
appId,
|
|
67717
67950
|
providerName,
|
|
67718
67951
|
providerType,
|
|
@@ -67732,7 +67965,7 @@ const providerApi$2 = {
|
|
|
67732
67965
|
* @param {String} appId - the appId specified in the dash initialization
|
|
67733
67966
|
* @returns {Promise<Array>} Array of provider objects with name, type, credentials
|
|
67734
67967
|
*/
|
|
67735
|
-
listProviders: (appId) => ipcRenderer$
|
|
67968
|
+
listProviders: (appId) => ipcRenderer$k.invoke(PROVIDER_LIST, { appId }),
|
|
67736
67969
|
|
|
67737
67970
|
/**
|
|
67738
67971
|
* getProvider
|
|
@@ -67744,7 +67977,7 @@ const providerApi$2 = {
|
|
|
67744
67977
|
* @returns {Promise<Object>} Provider object with name, type, credentials
|
|
67745
67978
|
*/
|
|
67746
67979
|
getProvider: (appId, providerName) =>
|
|
67747
|
-
ipcRenderer$
|
|
67980
|
+
ipcRenderer$k.invoke(PROVIDER_GET, { appId, providerName }),
|
|
67748
67981
|
|
|
67749
67982
|
/**
|
|
67750
67983
|
* deleteProvider
|
|
@@ -67756,7 +67989,7 @@ const providerApi$2 = {
|
|
|
67756
67989
|
* @returns {Promise}
|
|
67757
67990
|
*/
|
|
67758
67991
|
deleteProvider: (appId, providerName) =>
|
|
67759
|
-
ipcRenderer$
|
|
67992
|
+
ipcRenderer$k.invoke(PROVIDER_DELETE, { appId, providerName }),
|
|
67760
67993
|
|
|
67761
67994
|
/**
|
|
67762
67995
|
* listProvidersForApplication
|
|
@@ -67766,14 +67999,14 @@ const providerApi$2 = {
|
|
|
67766
67999
|
* @param {String} appId - the appId specified in the dash initialization
|
|
67767
68000
|
*/
|
|
67768
68001
|
listProvidersForApplication: (appId) => {
|
|
67769
|
-
ipcRenderer$
|
|
68002
|
+
ipcRenderer$k
|
|
67770
68003
|
.invoke(PROVIDER_LIST, { appId })
|
|
67771
68004
|
.then((result) => {
|
|
67772
68005
|
// Emit the event for ElectronDashboardApi to listen to
|
|
67773
|
-
ipcRenderer$
|
|
68006
|
+
ipcRenderer$k.send("PROVIDER_LIST_COMPLETE", result);
|
|
67774
68007
|
})
|
|
67775
68008
|
.catch((error) => {
|
|
67776
|
-
ipcRenderer$
|
|
68009
|
+
ipcRenderer$k.send("PROVIDER_LIST_ERROR", {
|
|
67777
68010
|
error: error.message,
|
|
67778
68011
|
});
|
|
67779
68012
|
});
|
|
@@ -67790,7 +68023,7 @@ const providerApi$2 = {
|
|
|
67790
68023
|
providerType,
|
|
67791
68024
|
credentials,
|
|
67792
68025
|
) => {
|
|
67793
|
-
ipcRenderer$
|
|
68026
|
+
ipcRenderer$k
|
|
67794
68027
|
.invoke(PROVIDER_SAVE, {
|
|
67795
68028
|
appId,
|
|
67796
68029
|
providerName,
|
|
@@ -67798,10 +68031,10 @@ const providerApi$2 = {
|
|
|
67798
68031
|
credentials,
|
|
67799
68032
|
})
|
|
67800
68033
|
.then((result) => {
|
|
67801
|
-
ipcRenderer$
|
|
68034
|
+
ipcRenderer$k.send("PROVIDER_SAVE_COMPLETE", result);
|
|
67802
68035
|
})
|
|
67803
68036
|
.catch((error) => {
|
|
67804
|
-
ipcRenderer$
|
|
68037
|
+
ipcRenderer$k.send("PROVIDER_SAVE_ERROR", {
|
|
67805
68038
|
error: error.message,
|
|
67806
68039
|
});
|
|
67807
68040
|
});
|
|
@@ -67813,13 +68046,13 @@ const providerApi$2 = {
|
|
|
67813
68046
|
* Event-listener-based version for use with ElectronDashboardApi
|
|
67814
68047
|
*/
|
|
67815
68048
|
getProviderForApplication: (appId, providerName) => {
|
|
67816
|
-
ipcRenderer$
|
|
68049
|
+
ipcRenderer$k
|
|
67817
68050
|
.invoke(PROVIDER_GET, { appId, providerName })
|
|
67818
68051
|
.then((result) => {
|
|
67819
|
-
ipcRenderer$
|
|
68052
|
+
ipcRenderer$k.send("PROVIDER_GET_COMPLETE", result);
|
|
67820
68053
|
})
|
|
67821
68054
|
.catch((error) => {
|
|
67822
|
-
ipcRenderer$
|
|
68055
|
+
ipcRenderer$k.send("PROVIDER_GET_ERROR", {
|
|
67823
68056
|
error: error.message,
|
|
67824
68057
|
});
|
|
67825
68058
|
});
|
|
@@ -67831,13 +68064,13 @@ const providerApi$2 = {
|
|
|
67831
68064
|
* Event-listener-based version for use with ElectronDashboardApi
|
|
67832
68065
|
*/
|
|
67833
68066
|
deleteProviderForApplication: (appId, providerName) => {
|
|
67834
|
-
ipcRenderer$
|
|
68067
|
+
ipcRenderer$k
|
|
67835
68068
|
.invoke(PROVIDER_DELETE, { appId, providerName })
|
|
67836
68069
|
.then((result) => {
|
|
67837
|
-
ipcRenderer$
|
|
68070
|
+
ipcRenderer$k.send("PROVIDER_DELETE_COMPLETE", result);
|
|
67838
68071
|
})
|
|
67839
68072
|
.catch((error) => {
|
|
67840
|
-
ipcRenderer$
|
|
68073
|
+
ipcRenderer$k.send("PROVIDER_DELETE_ERROR", {
|
|
67841
68074
|
error: error.message,
|
|
67842
68075
|
});
|
|
67843
68076
|
});
|
|
@@ -67853,7 +68086,7 @@ var providerApi_1 = providerApi$2;
|
|
|
67853
68086
|
* Communicates with main process via IPC to manage MCP server lifecycle.
|
|
67854
68087
|
*/
|
|
67855
68088
|
|
|
67856
|
-
const { ipcRenderer: ipcRenderer$
|
|
68089
|
+
const { ipcRenderer: ipcRenderer$j } = require$$0$2;
|
|
67857
68090
|
const {
|
|
67858
68091
|
MCP_START_SERVER,
|
|
67859
68092
|
MCP_STOP_SERVER,
|
|
@@ -67892,7 +68125,7 @@ const mcpApi$2 = {
|
|
|
67892
68125
|
workspaceId = null,
|
|
67893
68126
|
pathScope = null,
|
|
67894
68127
|
) =>
|
|
67895
|
-
ipcRenderer$
|
|
68128
|
+
ipcRenderer$j.invoke(MCP_START_SERVER, {
|
|
67896
68129
|
serverName,
|
|
67897
68130
|
mcpConfig,
|
|
67898
68131
|
credentials,
|
|
@@ -67909,7 +68142,7 @@ const mcpApi$2 = {
|
|
|
67909
68142
|
* @returns {Promise<{ success, serverName } | { error, message }>}
|
|
67910
68143
|
*/
|
|
67911
68144
|
stopServer: (serverName, workspaceId = null) =>
|
|
67912
|
-
ipcRenderer$
|
|
68145
|
+
ipcRenderer$j.invoke(MCP_STOP_SERVER, { serverName, workspaceId }),
|
|
67913
68146
|
|
|
67914
68147
|
/**
|
|
67915
68148
|
* listTools
|
|
@@ -67920,7 +68153,7 @@ const mcpApi$2 = {
|
|
|
67920
68153
|
* @returns {Promise<{ tools } | { error, message }>}
|
|
67921
68154
|
*/
|
|
67922
68155
|
listTools: (serverName, workspaceId = null) =>
|
|
67923
|
-
ipcRenderer$
|
|
68156
|
+
ipcRenderer$j.invoke(MCP_LIST_TOOLS, { serverName, workspaceId }),
|
|
67924
68157
|
|
|
67925
68158
|
/**
|
|
67926
68159
|
* callTool
|
|
@@ -67949,7 +68182,7 @@ const mcpApi$2 = {
|
|
|
67949
68182
|
workspaceId = null,
|
|
67950
68183
|
token = null,
|
|
67951
68184
|
) =>
|
|
67952
|
-
ipcRenderer$
|
|
68185
|
+
ipcRenderer$j.invoke(MCP_CALL_TOOL, {
|
|
67953
68186
|
serverName,
|
|
67954
68187
|
toolName,
|
|
67955
68188
|
args,
|
|
@@ -67968,7 +68201,7 @@ const mcpApi$2 = {
|
|
|
67968
68201
|
* @returns {Promise<{ resources } | { error, message }>}
|
|
67969
68202
|
*/
|
|
67970
68203
|
listResources: (serverName, workspaceId = null) =>
|
|
67971
|
-
ipcRenderer$
|
|
68204
|
+
ipcRenderer$j.invoke(MCP_LIST_RESOURCES, { serverName, workspaceId }),
|
|
67972
68205
|
|
|
67973
68206
|
/**
|
|
67974
68207
|
* readResource
|
|
@@ -67980,7 +68213,7 @@ const mcpApi$2 = {
|
|
|
67980
68213
|
* @returns {Promise<{ resource } | { error, message }>}
|
|
67981
68214
|
*/
|
|
67982
68215
|
readResource: (serverName, uri, workspaceId = null) =>
|
|
67983
|
-
ipcRenderer$
|
|
68216
|
+
ipcRenderer$j.invoke(MCP_READ_RESOURCE, { serverName, uri, workspaceId }),
|
|
67984
68217
|
|
|
67985
68218
|
/**
|
|
67986
68219
|
* getServerStatus
|
|
@@ -67991,7 +68224,7 @@ const mcpApi$2 = {
|
|
|
67991
68224
|
* @returns {Promise<{ status, tools, error }>}
|
|
67992
68225
|
*/
|
|
67993
68226
|
getServerStatus: (serverName, workspaceId = null) =>
|
|
67994
|
-
ipcRenderer$
|
|
68227
|
+
ipcRenderer$j.invoke(MCP_SERVER_STATUS, { serverName, workspaceId }),
|
|
67995
68228
|
|
|
67996
68229
|
/**
|
|
67997
68230
|
* getCatalog
|
|
@@ -67999,7 +68232,7 @@ const mcpApi$2 = {
|
|
|
67999
68232
|
*
|
|
68000
68233
|
* @returns {Promise<{ catalog } | { error, message }>}
|
|
68001
68234
|
*/
|
|
68002
|
-
getCatalog: () => ipcRenderer$
|
|
68235
|
+
getCatalog: () => ipcRenderer$j.invoke(MCP_GET_CATALOG),
|
|
68003
68236
|
|
|
68004
68237
|
/**
|
|
68005
68238
|
* getKnownExternalCatalog
|
|
@@ -68011,7 +68244,7 @@ const mcpApi$2 = {
|
|
|
68011
68244
|
*
|
|
68012
68245
|
* @returns {Promise<{ success, servers } | { error, message, servers }>}
|
|
68013
68246
|
*/
|
|
68014
|
-
getKnownExternalCatalog: () => ipcRenderer$
|
|
68247
|
+
getKnownExternalCatalog: () => ipcRenderer$j.invoke(MCP_GET_KNOWN_EXTERNAL),
|
|
68015
68248
|
|
|
68016
68249
|
/**
|
|
68017
68250
|
* onInstallKnownExternalConfirm
|
|
@@ -68025,9 +68258,9 @@ const mcpApi$2 = {
|
|
|
68025
68258
|
*/
|
|
68026
68259
|
onInstallKnownExternalConfirm: (callback) => {
|
|
68027
68260
|
const handler = (_e, data) => callback(data);
|
|
68028
|
-
ipcRenderer$
|
|
68261
|
+
ipcRenderer$j.on(MCP_INSTALL_KNOWN_EXTERNAL_CONFIRM$1, handler);
|
|
68029
68262
|
return () =>
|
|
68030
|
-
ipcRenderer$
|
|
68263
|
+
ipcRenderer$j.removeListener(MCP_INSTALL_KNOWN_EXTERNAL_CONFIRM$1, handler);
|
|
68031
68264
|
},
|
|
68032
68265
|
|
|
68033
68266
|
/**
|
|
@@ -68038,7 +68271,7 @@ const mcpApi$2 = {
|
|
|
68038
68271
|
* @param {{ confirmed: boolean, credentials?: object, error?: string }} result
|
|
68039
68272
|
*/
|
|
68040
68273
|
sendInstallKnownExternalResult: (requestId, result) =>
|
|
68041
|
-
ipcRenderer$
|
|
68274
|
+
ipcRenderer$j.send(MCP_INSTALL_KNOWN_EXTERNAL_RESULT$1, { requestId, result }),
|
|
68042
68275
|
|
|
68043
68276
|
/**
|
|
68044
68277
|
* runAuth
|
|
@@ -68050,7 +68283,7 @@ const mcpApi$2 = {
|
|
|
68050
68283
|
* @returns {Promise<{ success } | { error, message }>}
|
|
68051
68284
|
*/
|
|
68052
68285
|
runAuth: (mcpConfig, credentials, authCommand) =>
|
|
68053
|
-
ipcRenderer$
|
|
68286
|
+
ipcRenderer$j.invoke(MCP_RUN_AUTH, { mcpConfig, credentials, authCommand }),
|
|
68054
68287
|
};
|
|
68055
68288
|
|
|
68056
68289
|
var mcpApi_1 = mcpApi$2;
|
|
@@ -68068,7 +68301,7 @@ var mcpApi_1 = mcpApi$2;
|
|
|
68068
68301
|
* mainApi.registry.checkUpdates([{ name: "weather-widgets", version: "1.0.0" }])
|
|
68069
68302
|
*/
|
|
68070
68303
|
|
|
68071
|
-
const { ipcRenderer: ipcRenderer$
|
|
68304
|
+
const { ipcRenderer: ipcRenderer$i } = require$$0$2;
|
|
68072
68305
|
|
|
68073
68306
|
const registryApi$2 = {
|
|
68074
68307
|
/**
|
|
@@ -68078,7 +68311,7 @@ const registryApi$2 = {
|
|
|
68078
68311
|
*/
|
|
68079
68312
|
fetchIndex: async (forceRefresh = false) => {
|
|
68080
68313
|
try {
|
|
68081
|
-
return await ipcRenderer$
|
|
68314
|
+
return await ipcRenderer$i.invoke("registry:fetch-index", forceRefresh);
|
|
68082
68315
|
} catch (error) {
|
|
68083
68316
|
console.error("[RegistryApi] Error fetching index:", error);
|
|
68084
68317
|
throw error;
|
|
@@ -68093,7 +68326,7 @@ const registryApi$2 = {
|
|
|
68093
68326
|
*/
|
|
68094
68327
|
search: async (query = "", filters = {}) => {
|
|
68095
68328
|
try {
|
|
68096
|
-
return await ipcRenderer$
|
|
68329
|
+
return await ipcRenderer$i.invoke("registry:search", query, filters);
|
|
68097
68330
|
} catch (error) {
|
|
68098
68331
|
console.error("[RegistryApi] Error searching registry:", error);
|
|
68099
68332
|
throw error;
|
|
@@ -68107,7 +68340,7 @@ const registryApi$2 = {
|
|
|
68107
68340
|
*/
|
|
68108
68341
|
getPackage: async (packageName) => {
|
|
68109
68342
|
try {
|
|
68110
|
-
return await ipcRenderer$
|
|
68343
|
+
return await ipcRenderer$i.invoke("registry:get-package", packageName);
|
|
68111
68344
|
} catch (error) {
|
|
68112
68345
|
console.error(
|
|
68113
68346
|
`[RegistryApi] Error getting package ${packageName}:`,
|
|
@@ -68124,7 +68357,7 @@ const registryApi$2 = {
|
|
|
68124
68357
|
*/
|
|
68125
68358
|
checkUpdates: async (installedWidgets = []) => {
|
|
68126
68359
|
try {
|
|
68127
|
-
return await ipcRenderer$
|
|
68360
|
+
return await ipcRenderer$i.invoke(
|
|
68128
68361
|
"registry:check-updates",
|
|
68129
68362
|
installedWidgets,
|
|
68130
68363
|
);
|
|
@@ -68142,7 +68375,7 @@ const registryApi$2 = {
|
|
|
68142
68375
|
*/
|
|
68143
68376
|
searchDashboards: async (query = "", filters = {}) => {
|
|
68144
68377
|
try {
|
|
68145
|
-
return await ipcRenderer$
|
|
68378
|
+
return await ipcRenderer$i.invoke(
|
|
68146
68379
|
"registry:search-dashboards",
|
|
68147
68380
|
query,
|
|
68148
68381
|
filters,
|
|
@@ -68161,7 +68394,7 @@ const registryApi$2 = {
|
|
|
68161
68394
|
*/
|
|
68162
68395
|
searchThemes: async (query = "", filters = {}) => {
|
|
68163
68396
|
try {
|
|
68164
|
-
return await ipcRenderer$
|
|
68397
|
+
return await ipcRenderer$i.invoke("registry:search-themes", query, filters);
|
|
68165
68398
|
} catch (error) {
|
|
68166
68399
|
console.error("[RegistryApi] Error searching themes:", error);
|
|
68167
68400
|
throw error;
|
|
@@ -68183,7 +68416,7 @@ const registryApi$2 = {
|
|
|
68183
68416
|
*/
|
|
68184
68417
|
publishWidget: async (appId, packageId, options = {}) => {
|
|
68185
68418
|
try {
|
|
68186
|
-
return await ipcRenderer$
|
|
68419
|
+
return await ipcRenderer$i.invoke("registry:publish-widget", {
|
|
68187
68420
|
appId,
|
|
68188
68421
|
packageId,
|
|
68189
68422
|
options,
|
|
@@ -68204,7 +68437,7 @@ const registryApi$2 = {
|
|
|
68204
68437
|
*/
|
|
68205
68438
|
inspectWidgetPackage: async (packageId) => {
|
|
68206
68439
|
try {
|
|
68207
|
-
return await ipcRenderer$
|
|
68440
|
+
return await ipcRenderer$i.invoke("registry:inspect-widget-package", {
|
|
68208
68441
|
packageId,
|
|
68209
68442
|
});
|
|
68210
68443
|
} catch (error) {
|
|
@@ -68225,7 +68458,7 @@ const registryApi$2 = {
|
|
|
68225
68458
|
*/
|
|
68226
68459
|
scanWidgetDefaults: async (packageId) => {
|
|
68227
68460
|
try {
|
|
68228
|
-
return await ipcRenderer$
|
|
68461
|
+
return await ipcRenderer$i.invoke("registry:scan-widget-defaults", {
|
|
68229
68462
|
packageId,
|
|
68230
68463
|
});
|
|
68231
68464
|
} catch (error) {
|
|
@@ -68248,7 +68481,7 @@ const registryApi$2 = {
|
|
|
68248
68481
|
*/
|
|
68249
68482
|
previewFetch: async (packageName, componentName = null) => {
|
|
68250
68483
|
try {
|
|
68251
|
-
return await ipcRenderer$
|
|
68484
|
+
return await ipcRenderer$i.invoke(
|
|
68252
68485
|
"registry:preview-fetch",
|
|
68253
68486
|
packageName,
|
|
68254
68487
|
componentName,
|
|
@@ -68274,7 +68507,7 @@ const registryApi$2 = {
|
|
|
68274
68507
|
*/
|
|
68275
68508
|
fetchPackageManifest: async (packageName) => {
|
|
68276
68509
|
try {
|
|
68277
|
-
return await ipcRenderer$
|
|
68510
|
+
return await ipcRenderer$i.invoke(
|
|
68278
68511
|
"registry:fetch-package-manifest",
|
|
68279
68512
|
packageName,
|
|
68280
68513
|
);
|
|
@@ -68296,7 +68529,7 @@ var registryApi_1 = registryApi$2;
|
|
|
68296
68529
|
* Handle the theme configuration file
|
|
68297
68530
|
*/
|
|
68298
68531
|
|
|
68299
|
-
const { ipcRenderer: ipcRenderer$
|
|
68532
|
+
const { ipcRenderer: ipcRenderer$h } = require$$0$2;
|
|
68300
68533
|
|
|
68301
68534
|
const {
|
|
68302
68535
|
THEME_LIST,
|
|
@@ -68309,17 +68542,17 @@ const {
|
|
|
68309
68542
|
|
|
68310
68543
|
const themeApi$2 = {
|
|
68311
68544
|
listThemesForApplication: (appId) =>
|
|
68312
|
-
ipcRenderer$
|
|
68545
|
+
ipcRenderer$h.invoke(THEME_LIST, { appId }),
|
|
68313
68546
|
saveThemeForApplication: (appId, themeName, themeObject) =>
|
|
68314
|
-
ipcRenderer$
|
|
68547
|
+
ipcRenderer$h.invoke(THEME_SAVE, { appId, themeName, themeObject }),
|
|
68315
68548
|
deleteThemeForApplication: (appId, themeKey) =>
|
|
68316
|
-
ipcRenderer$
|
|
68549
|
+
ipcRenderer$h.invoke(THEME_DELETE, { appId, themeKey }),
|
|
68317
68550
|
publishTheme: (appId, themeKey, options) =>
|
|
68318
|
-
ipcRenderer$
|
|
68551
|
+
ipcRenderer$h.invoke(THEME_PUBLISH, { appId, themeKey, options }),
|
|
68319
68552
|
installThemeFromRegistry: (appId, packageName) =>
|
|
68320
|
-
ipcRenderer$
|
|
68553
|
+
ipcRenderer$h.invoke(THEME_INSTALL_FROM_REGISTRY, { appId, packageName }),
|
|
68321
68554
|
getThemePublishPreview: (appId, themeKey) =>
|
|
68322
|
-
ipcRenderer$
|
|
68555
|
+
ipcRenderer$h.invoke(THEME_PUBLISH_PREVIEW, { appId, themeKey }),
|
|
68323
68556
|
};
|
|
68324
68557
|
|
|
68325
68558
|
var themeApi_1 = themeApi$2;
|
|
@@ -68331,7 +68564,7 @@ var themeApi_1 = themeApi$2;
|
|
|
68331
68564
|
*/
|
|
68332
68565
|
|
|
68333
68566
|
// ipcRenderer that must be used to invoke the events
|
|
68334
|
-
const { ipcRenderer: ipcRenderer$
|
|
68567
|
+
const { ipcRenderer: ipcRenderer$g } = require$$0$2;
|
|
68335
68568
|
|
|
68336
68569
|
const {
|
|
68337
68570
|
ALGOLIA_LIST_INDICES,
|
|
@@ -68344,10 +68577,10 @@ const {
|
|
|
68344
68577
|
|
|
68345
68578
|
const algoliaApi$2 = {
|
|
68346
68579
|
listIndices: (application) =>
|
|
68347
|
-
ipcRenderer$
|
|
68580
|
+
ipcRenderer$g.invoke(ALGOLIA_LIST_INDICES, application),
|
|
68348
68581
|
|
|
68349
68582
|
browseObjects: (appId, apiKey, indexName) => {
|
|
68350
|
-
ipcRenderer$
|
|
68583
|
+
ipcRenderer$g.invoke(ALGOLIA_BROWSE_OBJECTS, {
|
|
68351
68584
|
appId,
|
|
68352
68585
|
apiKey,
|
|
68353
68586
|
indexName,
|
|
@@ -68356,7 +68589,7 @@ const algoliaApi$2 = {
|
|
|
68356
68589
|
},
|
|
68357
68590
|
|
|
68358
68591
|
getAnalyticsForQuery: (application, indexName, query) =>
|
|
68359
|
-
ipcRenderer$
|
|
68592
|
+
ipcRenderer$g.invoke(ALGOLIA_ANALYTICS_FOR_QUERY, {
|
|
68360
68593
|
application,
|
|
68361
68594
|
indexName,
|
|
68362
68595
|
query,
|
|
@@ -68369,7 +68602,7 @@ const algoliaApi$2 = {
|
|
|
68369
68602
|
dir,
|
|
68370
68603
|
createIfNotExists = false,
|
|
68371
68604
|
) =>
|
|
68372
|
-
ipcRenderer$
|
|
68605
|
+
ipcRenderer$g.invoke(ALGOLIA_PARTIAL_UPDATE_OBJECTS, {
|
|
68373
68606
|
appId,
|
|
68374
68607
|
apiKey,
|
|
68375
68608
|
indexName,
|
|
@@ -68378,7 +68611,7 @@ const algoliaApi$2 = {
|
|
|
68378
68611
|
}),
|
|
68379
68612
|
|
|
68380
68613
|
createBatchesFromFile: (filepath, batchFilepath, batchSize) => {
|
|
68381
|
-
ipcRenderer$
|
|
68614
|
+
ipcRenderer$g.invoke(ALGOLIA_CREATE_BATCH, {
|
|
68382
68615
|
filepath,
|
|
68383
68616
|
batchFilepath,
|
|
68384
68617
|
batchSize,
|
|
@@ -68386,7 +68619,7 @@ const algoliaApi$2 = {
|
|
|
68386
68619
|
},
|
|
68387
68620
|
|
|
68388
68621
|
browseObjectsToFile: (appId, apiKey, indexName, toFilename, query = "") => {
|
|
68389
|
-
ipcRenderer$
|
|
68622
|
+
ipcRenderer$g.invoke(ALGOLIA_BROWSE_OBJECTS, {
|
|
68390
68623
|
appId,
|
|
68391
68624
|
apiKey,
|
|
68392
68625
|
indexName,
|
|
@@ -68396,7 +68629,7 @@ const algoliaApi$2 = {
|
|
|
68396
68629
|
},
|
|
68397
68630
|
|
|
68398
68631
|
search: (appId, apiKey, indexName, query = "", options = {}) =>
|
|
68399
|
-
ipcRenderer$
|
|
68632
|
+
ipcRenderer$g.invoke(ALGOLIA_SEARCH, {
|
|
68400
68633
|
appId,
|
|
68401
68634
|
apiKey,
|
|
68402
68635
|
indexName,
|
|
@@ -68411,14 +68644,14 @@ var algoliaApi_1 = algoliaApi$2;
|
|
|
68411
68644
|
* openAI
|
|
68412
68645
|
*/
|
|
68413
68646
|
|
|
68414
|
-
const { ipcRenderer: ipcRenderer$
|
|
68647
|
+
const { ipcRenderer: ipcRenderer$f } = require$$0$2;
|
|
68415
68648
|
|
|
68416
68649
|
const { OPENAI_DESCRIBE_IMAGE } = openaiEvents$1;
|
|
68417
68650
|
|
|
68418
68651
|
const openaiApi$2 = {
|
|
68419
68652
|
// convert a json array of objects to a csv string and save to file
|
|
68420
68653
|
describeImage: (imageUrl, apiKey, prompt = "What's in this image?") =>
|
|
68421
|
-
ipcRenderer$
|
|
68654
|
+
ipcRenderer$f.invoke(OPENAI_DESCRIBE_IMAGE, { imageUrl, apiKey, prompt }),
|
|
68422
68655
|
};
|
|
68423
68656
|
|
|
68424
68657
|
var openaiApi_1 = openaiApi$2;
|
|
@@ -68429,14 +68662,14 @@ var openaiApi_1 = openaiApi$2;
|
|
|
68429
68662
|
*/
|
|
68430
68663
|
|
|
68431
68664
|
// ipcRenderer that must be used to invoke the events
|
|
68432
|
-
const { ipcRenderer: ipcRenderer$
|
|
68665
|
+
const { ipcRenderer: ipcRenderer$e } = require$$0$2;
|
|
68433
68666
|
|
|
68434
68667
|
const { MENU_ITEMS_SAVE, MENU_ITEMS_LIST } = events$8;
|
|
68435
68668
|
|
|
68436
68669
|
const menuItemsApi$2 = {
|
|
68437
68670
|
saveMenuItem: (appId, menuItem) =>
|
|
68438
|
-
ipcRenderer$
|
|
68439
|
-
listMenuItems: (appId) => ipcRenderer$
|
|
68671
|
+
ipcRenderer$e.invoke(MENU_ITEMS_SAVE, { appId, menuItem }),
|
|
68672
|
+
listMenuItems: (appId) => ipcRenderer$e.invoke(MENU_ITEMS_LIST, { appId }),
|
|
68440
68673
|
};
|
|
68441
68674
|
|
|
68442
68675
|
var menuItemsApi_1 = menuItemsApi$2;
|
|
@@ -68449,7 +68682,7 @@ var menuItemsApi_1 = menuItemsApi$2;
|
|
|
68449
68682
|
* tool-use events, and request cancellation.
|
|
68450
68683
|
*/
|
|
68451
68684
|
|
|
68452
|
-
const { ipcRenderer: ipcRenderer$
|
|
68685
|
+
const { ipcRenderer: ipcRenderer$d } = require$$0$2;
|
|
68453
68686
|
const {
|
|
68454
68687
|
LLM_SEND_MESSAGE,
|
|
68455
68688
|
LLM_ABORT_REQUEST,
|
|
@@ -68471,7 +68704,7 @@ const _listenerMap = new Map();
|
|
|
68471
68704
|
function _addListener(channel, callback) {
|
|
68472
68705
|
const id = String(++_nextListenerId);
|
|
68473
68706
|
const wrapped = (_event, data) => callback(data);
|
|
68474
|
-
ipcRenderer$
|
|
68707
|
+
ipcRenderer$d.on(channel, wrapped);
|
|
68475
68708
|
_listenerMap.set(id, { channel, wrapped });
|
|
68476
68709
|
return id;
|
|
68477
68710
|
}
|
|
@@ -68486,7 +68719,7 @@ const llmApi$2 = {
|
|
|
68486
68719
|
* @returns {Promise<void>}
|
|
68487
68720
|
*/
|
|
68488
68721
|
sendMessage: (requestId, params) =>
|
|
68489
|
-
ipcRenderer$
|
|
68722
|
+
ipcRenderer$d.invoke(LLM_SEND_MESSAGE, { requestId, ...params }),
|
|
68490
68723
|
|
|
68491
68724
|
/**
|
|
68492
68725
|
* abortRequest
|
|
@@ -68496,7 +68729,7 @@ const llmApi$2 = {
|
|
|
68496
68729
|
* @returns {Promise<{ success: boolean }>}
|
|
68497
68730
|
*/
|
|
68498
68731
|
abortRequest: (requestId) =>
|
|
68499
|
-
ipcRenderer$
|
|
68732
|
+
ipcRenderer$d.invoke(LLM_ABORT_REQUEST, { requestId }),
|
|
68500
68733
|
|
|
68501
68734
|
/**
|
|
68502
68735
|
* listConnectedTools
|
|
@@ -68504,7 +68737,7 @@ const llmApi$2 = {
|
|
|
68504
68737
|
*
|
|
68505
68738
|
* @returns {Promise<Array<{ serverName, tools, resources, status }>>}
|
|
68506
68739
|
*/
|
|
68507
|
-
listConnectedTools: () => ipcRenderer$
|
|
68740
|
+
listConnectedTools: () => ipcRenderer$d.invoke(LLM_LIST_CONNECTED_TOOLS),
|
|
68508
68741
|
|
|
68509
68742
|
/**
|
|
68510
68743
|
* checkCliAvailable
|
|
@@ -68512,7 +68745,7 @@ const llmApi$2 = {
|
|
|
68512
68745
|
*
|
|
68513
68746
|
* @returns {Promise<{ available: boolean, path?: string }>}
|
|
68514
68747
|
*/
|
|
68515
|
-
checkCliAvailable: () => ipcRenderer$
|
|
68748
|
+
checkCliAvailable: () => ipcRenderer$d.invoke(LLM_CHECK_CLI_AVAILABLE),
|
|
68516
68749
|
|
|
68517
68750
|
/**
|
|
68518
68751
|
* clearCliSession
|
|
@@ -68522,7 +68755,7 @@ const llmApi$2 = {
|
|
|
68522
68755
|
* @returns {Promise<{ success: boolean }>}
|
|
68523
68756
|
*/
|
|
68524
68757
|
clearCliSession: (widgetUuid) =>
|
|
68525
|
-
ipcRenderer$
|
|
68758
|
+
ipcRenderer$d.invoke(LLM_CLEAR_CLI_SESSION, { widgetUuid }),
|
|
68526
68759
|
|
|
68527
68760
|
/**
|
|
68528
68761
|
* getCliSessionStatus
|
|
@@ -68532,7 +68765,7 @@ const llmApi$2 = {
|
|
|
68532
68765
|
* @returns {Promise<{ hasSession: boolean, sessionId?: string, isProcessActive: boolean }>}
|
|
68533
68766
|
*/
|
|
68534
68767
|
getCliSessionStatus: (widgetUuid) =>
|
|
68535
|
-
ipcRenderer$
|
|
68768
|
+
ipcRenderer$d.invoke(LLM_CLI_SESSION_STATUS, { widgetUuid }),
|
|
68536
68769
|
|
|
68537
68770
|
/**
|
|
68538
68771
|
* endCliSession
|
|
@@ -68542,7 +68775,7 @@ const llmApi$2 = {
|
|
|
68542
68775
|
* @returns {Promise<{ success: boolean }>}
|
|
68543
68776
|
*/
|
|
68544
68777
|
endCliSession: (widgetUuid) =>
|
|
68545
|
-
ipcRenderer$
|
|
68778
|
+
ipcRenderer$d.invoke(LLM_CLI_END_SESSION, { widgetUuid }),
|
|
68546
68779
|
|
|
68547
68780
|
// --- Stream event listeners ---
|
|
68548
68781
|
// Each on* method returns an opaque string ID. Strings cross the
|
|
@@ -68576,7 +68809,7 @@ const llmApi$2 = {
|
|
|
68576
68809
|
const listenerId = id !== undefined ? String(id) : String(idOrChannel);
|
|
68577
68810
|
const entry = _listenerMap.get(listenerId);
|
|
68578
68811
|
if (entry) {
|
|
68579
|
-
ipcRenderer$
|
|
68812
|
+
ipcRenderer$d.removeListener(entry.channel, entry.wrapped);
|
|
68580
68813
|
_listenerMap.delete(listenerId);
|
|
68581
68814
|
}
|
|
68582
68815
|
},
|
|
@@ -68588,14 +68821,14 @@ const llmApi$2 = {
|
|
|
68588
68821
|
*/
|
|
68589
68822
|
removeAllStreamListeners: () => {
|
|
68590
68823
|
for (const [, entry] of _listenerMap) {
|
|
68591
|
-
ipcRenderer$
|
|
68824
|
+
ipcRenderer$d.removeListener(entry.channel, entry.wrapped);
|
|
68592
68825
|
}
|
|
68593
68826
|
_listenerMap.clear();
|
|
68594
|
-
ipcRenderer$
|
|
68595
|
-
ipcRenderer$
|
|
68596
|
-
ipcRenderer$
|
|
68597
|
-
ipcRenderer$
|
|
68598
|
-
ipcRenderer$
|
|
68827
|
+
ipcRenderer$d.removeAllListeners(LLM_STREAM_DELTA);
|
|
68828
|
+
ipcRenderer$d.removeAllListeners(LLM_STREAM_TOOL_CALL);
|
|
68829
|
+
ipcRenderer$d.removeAllListeners(LLM_STREAM_TOOL_RESULT);
|
|
68830
|
+
ipcRenderer$d.removeAllListeners(LLM_STREAM_COMPLETE);
|
|
68831
|
+
ipcRenderer$d.removeAllListeners(LLM_STREAM_ERROR);
|
|
68599
68832
|
},
|
|
68600
68833
|
};
|
|
68601
68834
|
|
|
@@ -68608,7 +68841,7 @@ var llmApi_1 = llmApi$2;
|
|
|
68608
68841
|
* Exposed via contextBridge through mainApi.
|
|
68609
68842
|
*/
|
|
68610
68843
|
|
|
68611
|
-
const { ipcRenderer: ipcRenderer$
|
|
68844
|
+
const { ipcRenderer: ipcRenderer$c } = require$$0$2;
|
|
68612
68845
|
const {
|
|
68613
68846
|
DASHBOARD_CONFIG_EXPORT,
|
|
68614
68847
|
DASHBOARD_CONFIG_SELECT_FILE,
|
|
@@ -68635,7 +68868,7 @@ const dashboardConfigApi$2 = {
|
|
|
68635
68868
|
* @returns {Promise<Object>} Result with success, filePath, and config
|
|
68636
68869
|
*/
|
|
68637
68870
|
exportDashboardConfig: (appId, workspaceId, options = {}) =>
|
|
68638
|
-
ipcRenderer$
|
|
68871
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_EXPORT, {
|
|
68639
68872
|
appId,
|
|
68640
68873
|
workspaceId,
|
|
68641
68874
|
options,
|
|
@@ -68648,7 +68881,7 @@ const dashboardConfigApi$2 = {
|
|
|
68648
68881
|
*
|
|
68649
68882
|
* @returns {Promise<Object>} Result with success, filePath, and dashboardConfig preview
|
|
68650
68883
|
*/
|
|
68651
|
-
selectDashboardFile: () => ipcRenderer$
|
|
68884
|
+
selectDashboardFile: () => ipcRenderer$c.invoke(DASHBOARD_CONFIG_SELECT_FILE),
|
|
68652
68885
|
|
|
68653
68886
|
/**
|
|
68654
68887
|
* Import a dashboard config from a ZIP file.
|
|
@@ -68660,7 +68893,7 @@ const dashboardConfigApi$2 = {
|
|
|
68660
68893
|
* @returns {Promise<Object>} Result with success, workspace, and summary
|
|
68661
68894
|
*/
|
|
68662
68895
|
importDashboardConfig: (appId, options = {}) =>
|
|
68663
|
-
ipcRenderer$
|
|
68896
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_IMPORT, { appId, ...options }),
|
|
68664
68897
|
|
|
68665
68898
|
/**
|
|
68666
68899
|
* Install a dashboard from the registry by package name.
|
|
@@ -68678,7 +68911,7 @@ const dashboardConfigApi$2 = {
|
|
|
68678
68911
|
* @returns {Promise<Object>} Result with success, workspace, and summary
|
|
68679
68912
|
*/
|
|
68680
68913
|
installDashboardFromRegistry: (appId, packageName, options = {}) =>
|
|
68681
|
-
ipcRenderer$
|
|
68914
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_INSTALL, {
|
|
68682
68915
|
appId,
|
|
68683
68916
|
packageName,
|
|
68684
68917
|
options,
|
|
@@ -68692,7 +68925,7 @@ const dashboardConfigApi$2 = {
|
|
|
68692
68925
|
* @returns {Promise<Object>} Compatibility report with per-widget status
|
|
68693
68926
|
*/
|
|
68694
68927
|
checkDashboardCompatibility: (appId, dashboardWidgets) =>
|
|
68695
|
-
ipcRenderer$
|
|
68928
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_COMPATIBILITY, {
|
|
68696
68929
|
appId,
|
|
68697
68930
|
dashboardWidgets,
|
|
68698
68931
|
}),
|
|
@@ -68708,7 +68941,7 @@ const dashboardConfigApi$2 = {
|
|
|
68708
68941
|
* @returns {Promise<Object>} Result with success, manifest, filePath
|
|
68709
68942
|
*/
|
|
68710
68943
|
prepareDashboardForPublish: (appId, workspaceId, options = {}) =>
|
|
68711
|
-
ipcRenderer$
|
|
68944
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_PUBLISH, {
|
|
68712
68945
|
appId,
|
|
68713
68946
|
workspaceId,
|
|
68714
68947
|
options,
|
|
@@ -68727,7 +68960,7 @@ const dashboardConfigApi$2 = {
|
|
|
68727
68960
|
* @returns {Promise<Object>} { success, widgets, theme }
|
|
68728
68961
|
*/
|
|
68729
68962
|
collectDashboardDependencies: (appId, workspaceId, options = {}) =>
|
|
68730
|
-
ipcRenderer$
|
|
68963
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_COLLECT_DEPENDENCIES, {
|
|
68731
68964
|
appId,
|
|
68732
68965
|
workspaceId,
|
|
68733
68966
|
options,
|
|
@@ -68744,7 +68977,7 @@ const dashboardConfigApi$2 = {
|
|
|
68744
68977
|
* @returns {Promise<Object>} { success, widgets, theme, registryError? }
|
|
68745
68978
|
*/
|
|
68746
68979
|
getDashboardPublishPlan: (appId, workspaceId, options = {}) =>
|
|
68747
|
-
ipcRenderer$
|
|
68980
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_PUBLISH_PLAN, {
|
|
68748
68981
|
appId,
|
|
68749
68982
|
workspaceId,
|
|
68750
68983
|
options,
|
|
@@ -68758,7 +68991,7 @@ const dashboardConfigApi$2 = {
|
|
|
68758
68991
|
* @returns {Promise<Object>} Preview with metadata, widgets, wiring, compatibility
|
|
68759
68992
|
*/
|
|
68760
68993
|
getDashboardPreview: (packageName) =>
|
|
68761
|
-
ipcRenderer$
|
|
68994
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_PREVIEW, { packageName }),
|
|
68762
68995
|
|
|
68763
68996
|
/**
|
|
68764
68997
|
* Check installed dashboards for available updates.
|
|
@@ -68767,7 +69000,7 @@ const dashboardConfigApi$2 = {
|
|
|
68767
69000
|
* @returns {Promise<Object>} Result with updates array
|
|
68768
69001
|
*/
|
|
68769
69002
|
checkDashboardUpdates: (appId) =>
|
|
68770
|
-
ipcRenderer$
|
|
69003
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_CHECK_UPDATES, { appId }),
|
|
68771
69004
|
|
|
68772
69005
|
/**
|
|
68773
69006
|
* Get provider setup manifest for a dashboard's requirements.
|
|
@@ -68777,7 +69010,7 @@ const dashboardConfigApi$2 = {
|
|
|
68777
69010
|
* @returns {Promise<Object>} Setup manifest with per-provider status
|
|
68778
69011
|
*/
|
|
68779
69012
|
getProviderSetupManifest: (appId, requiredProviders) =>
|
|
68780
|
-
ipcRenderer$
|
|
69013
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_PROVIDER_SETUP, {
|
|
68781
69014
|
appId,
|
|
68782
69015
|
requiredProviders,
|
|
68783
69016
|
}),
|
|
@@ -68791,7 +69024,7 @@ const dashboardConfigApi$2 = {
|
|
|
68791
69024
|
* @returns {Promise<Object>} Preview with dashboardName, widgetCount, widgets, componentNames
|
|
68792
69025
|
*/
|
|
68793
69026
|
getPublishPreview: (appId, workspaceId) =>
|
|
68794
|
-
ipcRenderer$
|
|
69027
|
+
ipcRenderer$c.invoke(DASHBOARD_CONFIG_PUBLISH_PREVIEW, {
|
|
68795
69028
|
appId,
|
|
68796
69029
|
workspaceId,
|
|
68797
69030
|
}),
|
|
@@ -68805,9 +69038,9 @@ const dashboardConfigApi$2 = {
|
|
|
68805
69038
|
*/
|
|
68806
69039
|
onInstallProgress: (callback) => {
|
|
68807
69040
|
const handler = (_event, data) => callback(data);
|
|
68808
|
-
ipcRenderer$
|
|
69041
|
+
ipcRenderer$c.on(DASHBOARD_CONFIG_INSTALL_PROGRESS, handler);
|
|
68809
69042
|
return () =>
|
|
68810
|
-
ipcRenderer$
|
|
69043
|
+
ipcRenderer$c.removeListener(DASHBOARD_CONFIG_INSTALL_PROGRESS, handler);
|
|
68811
69044
|
},
|
|
68812
69045
|
};
|
|
68813
69046
|
|
|
@@ -68820,7 +69053,7 @@ var dashboardConfigApi_1 = dashboardConfigApi$2;
|
|
|
68820
69053
|
* Exposed via contextBridge through mainApi.
|
|
68821
69054
|
*/
|
|
68822
69055
|
|
|
68823
|
-
const { ipcRenderer: ipcRenderer$
|
|
69056
|
+
const { ipcRenderer: ipcRenderer$b } = require$$0$2;
|
|
68824
69057
|
const {
|
|
68825
69058
|
REGISTRY_AUTH_INITIATE_LOGIN,
|
|
68826
69059
|
REGISTRY_AUTH_POLL_TOKEN,
|
|
@@ -68841,7 +69074,7 @@ const registryAuthApi$2 = {
|
|
|
68841
69074
|
*
|
|
68842
69075
|
* @returns {Promise<Object>} { deviceCode, userCode, verificationUrl, verificationUrlComplete, expiresIn, interval }
|
|
68843
69076
|
*/
|
|
68844
|
-
initiateLogin: () => ipcRenderer$
|
|
69077
|
+
initiateLogin: () => ipcRenderer$b.invoke(REGISTRY_AUTH_INITIATE_LOGIN),
|
|
68845
69078
|
|
|
68846
69079
|
/**
|
|
68847
69080
|
* Poll for token after user completes browser auth.
|
|
@@ -68850,26 +69083,26 @@ const registryAuthApi$2 = {
|
|
|
68850
69083
|
* @returns {Promise<Object>} { status: 'pending' | 'authorized' | 'expired', token?, userId? }
|
|
68851
69084
|
*/
|
|
68852
69085
|
pollToken: (deviceCode) =>
|
|
68853
|
-
ipcRenderer$
|
|
69086
|
+
ipcRenderer$b.invoke(REGISTRY_AUTH_POLL_TOKEN, { deviceCode }),
|
|
68854
69087
|
|
|
68855
69088
|
/**
|
|
68856
69089
|
* Get current auth status.
|
|
68857
69090
|
*
|
|
68858
69091
|
* @returns {Promise<Object>} { authenticated: boolean, userId?: string }
|
|
68859
69092
|
*/
|
|
68860
|
-
getStatus: () => ipcRenderer$
|
|
69093
|
+
getStatus: () => ipcRenderer$b.invoke(REGISTRY_AUTH_GET_STATUS),
|
|
68861
69094
|
|
|
68862
69095
|
/**
|
|
68863
69096
|
* Get the authenticated user's registry profile.
|
|
68864
69097
|
*
|
|
68865
69098
|
* @returns {Promise<Object|null>} User profile or null
|
|
68866
69099
|
*/
|
|
68867
|
-
getProfile: () => ipcRenderer$
|
|
69100
|
+
getProfile: () => ipcRenderer$b.invoke(REGISTRY_AUTH_GET_PROFILE),
|
|
68868
69101
|
|
|
68869
69102
|
/**
|
|
68870
69103
|
* Logout from registry.
|
|
68871
69104
|
*/
|
|
68872
|
-
logout: () => ipcRenderer$
|
|
69105
|
+
logout: () => ipcRenderer$b.invoke(REGISTRY_AUTH_LOGOUT),
|
|
68873
69106
|
|
|
68874
69107
|
/**
|
|
68875
69108
|
* Publish a ZIP to the registry.
|
|
@@ -68879,7 +69112,7 @@ const registryAuthApi$2 = {
|
|
|
68879
69112
|
* @returns {Promise<Object>} { success, registryUrl, packageId, version, error? }
|
|
68880
69113
|
*/
|
|
68881
69114
|
publish: (zipPath, manifest) =>
|
|
68882
|
-
ipcRenderer$
|
|
69115
|
+
ipcRenderer$b.invoke(REGISTRY_AUTH_PUBLISH, { zipPath, manifest }),
|
|
68883
69116
|
|
|
68884
69117
|
/**
|
|
68885
69118
|
* Update the authenticated user's profile.
|
|
@@ -68888,14 +69121,14 @@ const registryAuthApi$2 = {
|
|
|
68888
69121
|
* @returns {Promise<Object|null>} Updated user or null
|
|
68889
69122
|
*/
|
|
68890
69123
|
updateProfile: (updates) =>
|
|
68891
|
-
ipcRenderer$
|
|
69124
|
+
ipcRenderer$b.invoke(REGISTRY_AUTH_UPDATE_PROFILE, updates),
|
|
68892
69125
|
|
|
68893
69126
|
/**
|
|
68894
69127
|
* Get the authenticated user's published packages.
|
|
68895
69128
|
*
|
|
68896
69129
|
* @returns {Promise<Object|null>} { packages: [...] } or null
|
|
68897
69130
|
*/
|
|
68898
|
-
getPackages: () => ipcRenderer$
|
|
69131
|
+
getPackages: () => ipcRenderer$b.invoke(REGISTRY_AUTH_GET_PACKAGES),
|
|
68899
69132
|
|
|
68900
69133
|
/**
|
|
68901
69134
|
* Update a published package's metadata.
|
|
@@ -68906,7 +69139,7 @@ const registryAuthApi$2 = {
|
|
|
68906
69139
|
* @returns {Promise<Object|null>} Updated package or null
|
|
68907
69140
|
*/
|
|
68908
69141
|
updatePackage: (scope, name, updates) =>
|
|
68909
|
-
ipcRenderer$
|
|
69142
|
+
ipcRenderer$b.invoke(REGISTRY_AUTH_UPDATE_PACKAGE, {
|
|
68910
69143
|
scope,
|
|
68911
69144
|
name,
|
|
68912
69145
|
updates,
|
|
@@ -68920,7 +69153,7 @@ const registryAuthApi$2 = {
|
|
|
68920
69153
|
* @returns {Promise<Object|null>} Response or null
|
|
68921
69154
|
*/
|
|
68922
69155
|
deletePackage: (scope, name) =>
|
|
68923
|
-
ipcRenderer$
|
|
69156
|
+
ipcRenderer$b.invoke(REGISTRY_AUTH_DELETE_PACKAGE, { scope, name }),
|
|
68924
69157
|
};
|
|
68925
69158
|
|
|
68926
69159
|
var registryAuthApi_1 = registryAuthApi$2;
|
|
@@ -68932,7 +69165,7 @@ var registryAuthApi_1 = registryAuthApi$2;
|
|
|
68932
69165
|
* Exposed via contextBridge through `window.mainApi.publisherKey`.
|
|
68933
69166
|
*/
|
|
68934
69167
|
|
|
68935
|
-
const { ipcRenderer: ipcRenderer$
|
|
69168
|
+
const { ipcRenderer: ipcRenderer$a } = require$$0$2;
|
|
68936
69169
|
const {
|
|
68937
69170
|
PUBLISHER_KEY_GET_OR_CREATE,
|
|
68938
69171
|
PUBLISHER_KEY_DESCRIBE,
|
|
@@ -68952,19 +69185,19 @@ const publisherKeyApi$2 = {
|
|
|
68952
69185
|
* Rejects with `{ authRequired: true }` if not signed in to the
|
|
68953
69186
|
* registry; with a generic error otherwise.
|
|
68954
69187
|
*/
|
|
68955
|
-
getOrCreate: () => ipcRenderer$
|
|
69188
|
+
getOrCreate: () => ipcRenderer$a.invoke(PUBLISHER_KEY_GET_OR_CREATE),
|
|
68956
69189
|
|
|
68957
69190
|
/**
|
|
68958
69191
|
* Summary of the current local key (or null). Does not trigger
|
|
68959
69192
|
* registration — purely read-only.
|
|
68960
69193
|
*/
|
|
68961
|
-
describe: () => ipcRenderer$
|
|
69194
|
+
describe: () => ipcRenderer$a.invoke(PUBLISHER_KEY_DESCRIBE),
|
|
68962
69195
|
|
|
68963
69196
|
/**
|
|
68964
69197
|
* Revoke the local key on the registry and clear it from disk.
|
|
68965
69198
|
* Next publish will auto-generate a fresh keypair.
|
|
68966
69199
|
*/
|
|
68967
|
-
revoke: () => ipcRenderer$
|
|
69200
|
+
revoke: () => ipcRenderer$a.invoke(PUBLISHER_KEY_REVOKE),
|
|
68968
69201
|
};
|
|
68969
69202
|
|
|
68970
69203
|
var publisherKeyApi_1 = publisherKeyApi$2;
|
|
@@ -68976,7 +69209,7 @@ var publisherKeyApi_1 = publisherKeyApi$2;
|
|
|
68976
69209
|
* Exposed via contextBridge through `window.mainApi.onboarding`.
|
|
68977
69210
|
*/
|
|
68978
69211
|
|
|
68979
|
-
const { ipcRenderer: ipcRenderer$
|
|
69212
|
+
const { ipcRenderer: ipcRenderer$9 } = require$$0$2;
|
|
68980
69213
|
const {
|
|
68981
69214
|
ONBOARDING_GET_STATUS,
|
|
68982
69215
|
ONBOARDING_MARK_COMPLETED,
|
|
@@ -68989,7 +69222,7 @@ const onboardingApi$2 = {
|
|
|
68989
69222
|
* the "never seen" state — the renderer can treat that as the gate
|
|
68990
69223
|
* to show the OnboardingModal.
|
|
68991
69224
|
*/
|
|
68992
|
-
getStatus: () => ipcRenderer$
|
|
69225
|
+
getStatus: () => ipcRenderer$9.invoke(ONBOARDING_GET_STATUS),
|
|
68993
69226
|
|
|
68994
69227
|
/**
|
|
68995
69228
|
* Pin onboarding as completed. Idempotent — safe to call multiple
|
|
@@ -69000,11 +69233,40 @@ const onboardingApi$2 = {
|
|
|
69000
69233
|
* @returns {Promise<{ completed: true, completedAt: string, source: string|null }>}
|
|
69001
69234
|
*/
|
|
69002
69235
|
markCompleted: (opts = {}) =>
|
|
69003
|
-
ipcRenderer$
|
|
69236
|
+
ipcRenderer$9.invoke(ONBOARDING_MARK_COMPLETED, opts),
|
|
69004
69237
|
};
|
|
69005
69238
|
|
|
69006
69239
|
var onboardingApi_1 = onboardingApi$2;
|
|
69007
69240
|
|
|
69241
|
+
/**
|
|
69242
|
+
* exportApi.js
|
|
69243
|
+
*
|
|
69244
|
+
* IPC bridge for the Export Everything bundle (renderer side).
|
|
69245
|
+
* Exposed via contextBridge as `window.mainApi.export`.
|
|
69246
|
+
*/
|
|
69247
|
+
|
|
69248
|
+
const { ipcRenderer: ipcRenderer$8 } = require$$0$2;
|
|
69249
|
+
const { EXPORT_EVERYTHING } = events$8;
|
|
69250
|
+
|
|
69251
|
+
const exportApi$2 = {
|
|
69252
|
+
/**
|
|
69253
|
+
* Export workspaces + themes + menu items + providers (sans
|
|
69254
|
+
* credentials) as a single ZIP. Opens a native save dialog so the
|
|
69255
|
+
* user picks the destination.
|
|
69256
|
+
*
|
|
69257
|
+
* Resolves with:
|
|
69258
|
+
* { success: true, filePath, counts: {...} } on success
|
|
69259
|
+
* { success: false, canceled: true } user dismissed the dialog
|
|
69260
|
+
* { success: false, error: "..." } anything else
|
|
69261
|
+
*
|
|
69262
|
+
* @param {string} appId
|
|
69263
|
+
* @returns {Promise<Object>}
|
|
69264
|
+
*/
|
|
69265
|
+
exportEverything: (appId) => ipcRenderer$8.invoke(EXPORT_EVERYTHING, { appId }),
|
|
69266
|
+
};
|
|
69267
|
+
|
|
69268
|
+
var exportApi_1 = exportApi$2;
|
|
69269
|
+
|
|
69008
69270
|
/**
|
|
69009
69271
|
* notificationApi.js
|
|
69010
69272
|
*
|
|
@@ -70625,6 +70887,7 @@ const webSocketApi$1 = webSocketApi_1;
|
|
|
70625
70887
|
const mcpDashServerApi$1 = mcpDashServerApi_1;
|
|
70626
70888
|
const publisherKeyApi$1 = publisherKeyApi_1;
|
|
70627
70889
|
const onboardingApi$1 = onboardingApi_1;
|
|
70890
|
+
const exportApi$1 = exportApi_1;
|
|
70628
70891
|
|
|
70629
70892
|
// Events constants
|
|
70630
70893
|
const events$1 = events$8;
|
|
@@ -70699,6 +70962,7 @@ function createMainApi$1(extensions = {}) {
|
|
|
70699
70962
|
registryAuth: registryAuthApi$1,
|
|
70700
70963
|
publisherKey: publisherKeyApi$1,
|
|
70701
70964
|
onboarding: onboardingApi$1,
|
|
70965
|
+
export: exportApi$1,
|
|
70702
70966
|
session: sessionApi,
|
|
70703
70967
|
notifications: notificationApi$1,
|
|
70704
70968
|
scheduler: schedulerApi$1,
|
|
@@ -70755,6 +71019,7 @@ const registryAuthController = registryAuthController$2;
|
|
|
70755
71019
|
const registryApiController = registryApiController$3;
|
|
70756
71020
|
const publisherKeyController = publisherKeyController$1;
|
|
70757
71021
|
const onboardingController = onboardingController$1;
|
|
71022
|
+
const exportController = exportController$1;
|
|
70758
71023
|
const notificationController = notificationController_1;
|
|
70759
71024
|
const schedulerController = schedulerController_1;
|
|
70760
71025
|
const themeRegistryController = themeRegistryController$1;
|
|
@@ -70798,6 +71063,7 @@ const dashboardConfigApi = dashboardConfigApi_1;
|
|
|
70798
71063
|
const registryAuthApi = registryAuthApi_1;
|
|
70799
71064
|
const publisherKeyApi = publisherKeyApi_1;
|
|
70800
71065
|
const onboardingApi = onboardingApi_1;
|
|
71066
|
+
const exportApi = exportApi_1;
|
|
70801
71067
|
const notificationApi = notificationApi_1;
|
|
70802
71068
|
const schedulerApi = schedulerApi_1;
|
|
70803
71069
|
const themeFromUrlApi = themeFromUrlApi_1;
|
|
@@ -70863,6 +71129,7 @@ var electron = {
|
|
|
70863
71129
|
registryApiController,
|
|
70864
71130
|
publisherKeyController,
|
|
70865
71131
|
onboardingController,
|
|
71132
|
+
exportController,
|
|
70866
71133
|
notificationController,
|
|
70867
71134
|
schedulerController,
|
|
70868
71135
|
themeRegistryController,
|
|
@@ -70898,6 +71165,7 @@ var electron = {
|
|
|
70898
71165
|
registryAuthApi,
|
|
70899
71166
|
publisherKeyApi,
|
|
70900
71167
|
onboardingApi,
|
|
71168
|
+
exportApi,
|
|
70901
71169
|
notificationApi,
|
|
70902
71170
|
schedulerApi,
|
|
70903
71171
|
themeFromUrlApi,
|