@trops/dash-core 0.1.60 → 0.1.62

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.
@@ -4464,6 +4464,7 @@ function requireProviderController () {
4464
4464
  * @param {object} credentials credentials object
4465
4465
  * @param {string} providerClass "credential" (default) or "mcp"
4466
4466
  * @param {object} mcpConfig MCP server config (transport, command, args, envMapping) - only for providerClass "mcp"
4467
+ * @param {string[]|null} allowedTools optional list of allowed tool names - only for providerClass "mcp"
4467
4468
  */
4468
4469
  saveProvider: (
4469
4470
  win,
@@ -4473,6 +4474,7 @@ function requireProviderController () {
4473
4474
  credentials,
4474
4475
  providerClass = "credential",
4475
4476
  mcpConfig = null,
4477
+ allowedTools = null,
4476
4478
  ) => {
4477
4479
  try {
4478
4480
  // Build file path
@@ -4508,6 +4510,11 @@ function requireProviderController () {
4508
4510
  providerEntry.mcpConfig = mcpConfig;
4509
4511
  }
4510
4512
 
4513
+ // Add allowedTools for MCP providers
4514
+ if (providerClass === "mcp" && allowedTools) {
4515
+ providerEntry.allowedTools = allowedTools;
4516
+ }
4517
+
4511
4518
  providers[providerName] = providerEntry;
4512
4519
 
4513
4520
  // Save to file with restrictive permissions (owner read/write only)
@@ -4580,6 +4587,11 @@ function requireProviderController () {
4580
4587
  provider.mcpConfig = data.mcpConfig;
4581
4588
  }
4582
4589
 
4590
+ // Include allowedTools for MCP providers
4591
+ if (data.allowedTools) {
4592
+ provider.allowedTools = data.allowedTools;
4593
+ }
4594
+
4583
4595
  decryptedProviders.push(provider);
4584
4596
  } catch (decryptError) {
4585
4597
  console.error(
@@ -4652,6 +4664,11 @@ function requireProviderController () {
4652
4664
  provider.mcpConfig = providerData.mcpConfig;
4653
4665
  }
4654
4666
 
4667
+ // Include allowedTools for MCP providers
4668
+ if (providerData.allowedTools) {
4669
+ provider.allowedTools = providerData.allowedTools;
4670
+ }
4671
+
4655
4672
  console.log(`[providerController] Provider retrieved: ${providerName}`);
4656
4673
 
4657
4674
  // Return the data for ipcMain.handle() - modern promise-based approach
@@ -5436,12 +5453,28 @@ const mcpController$2 = {
5436
5453
  );
5437
5454
  }
5438
5455
 
5456
+ // Merge static env vars from authCommand (e.g., AUTH_SERVER_PORT)
5457
+ if (authCommand.env) {
5458
+ Object.entries(authCommand.env).forEach(([key, value]) => {
5459
+ env[key] = value;
5460
+ });
5461
+ }
5462
+
5439
5463
  return new Promise((resolve) => {
5440
5464
  const proc = spawn(authCommand.command, authCommand.args || [], {
5441
5465
  env,
5442
5466
  stdio: ["ignore", "pipe", "pipe"],
5443
5467
  });
5444
5468
 
5469
+ let stdout = "";
5470
+ let stderr = "";
5471
+ proc.stdout.on("data", (data) => {
5472
+ stdout += data.toString();
5473
+ });
5474
+ proc.stderr.on("data", (data) => {
5475
+ stderr += data.toString();
5476
+ });
5477
+
5445
5478
  const timeout = setTimeout(() => {
5446
5479
  proc.kill();
5447
5480
  resolve({ error: true, message: "Auth timed out (120s)" });
@@ -5449,11 +5482,15 @@ const mcpController$2 = {
5449
5482
 
5450
5483
  proc.on("close", (code) => {
5451
5484
  clearTimeout(timeout);
5452
- resolve(
5453
- code === 0
5454
- ? { success: true }
5455
- : { error: true, message: `Auth exited with code ${code}` },
5456
- );
5485
+ if (code === 0) {
5486
+ resolve({ success: true });
5487
+ } else {
5488
+ const detail = stderr.trim() || stdout.trim() || "";
5489
+ resolve({
5490
+ error: true,
5491
+ message: `Auth exited with code ${code}${detail ? ": " + detail : ""}`,
5492
+ });
5493
+ }
5457
5494
  });
5458
5495
 
5459
5496
  proc.on("error", (err) => {
@@ -7914,6 +7951,7 @@ const providerApi$2 = {
7914
7951
  * @param {Object} credentials - credentials object (shape depends on provider type)
7915
7952
  * @param {String} providerClass - "credential" (default) or "mcp"
7916
7953
  * @param {Object} mcpConfig - MCP server config (only for providerClass "mcp")
7954
+ * @param {String[]|null} allowedTools - optional list of allowed tool names (MCP only)
7917
7955
  * @returns {Promise}
7918
7956
  */
7919
7957
  saveProvider: (
@@ -7923,6 +7961,7 @@ const providerApi$2 = {
7923
7961
  credentials,
7924
7962
  providerClass = "credential",
7925
7963
  mcpConfig = null,
7964
+ allowedTools = null,
7926
7965
  ) =>
7927
7966
  ipcRenderer$a.invoke(PROVIDER_SAVE, {
7928
7967
  appId,
@@ -7931,6 +7970,7 @@ const providerApi$2 = {
7931
7970
  credentials,
7932
7971
  providerClass,
7933
7972
  mcpConfig,
7973
+ allowedTools,
7934
7974
  }),
7935
7975
 
7936
7976
  /**