@hasna/connectors 0.5.4 → 0.5.6

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.
Files changed (3) hide show
  1. package/bin/index.js +132 -43
  2. package/bin/mcp.js +10 -10
  3. package/package.json +1 -1
package/bin/index.js CHANGED
@@ -7281,7 +7281,7 @@ var PRESETS = {
7281
7281
  commerce: { description: "Commerce and finance", connectors: ["stripe", "shopify", "revolut", "mercury", "pandadoc"] }
7282
7282
  };
7283
7283
  var program2 = new Command;
7284
- program2.name("connectors").description("Install API connectors for your project").version("0.5.4").enablePositionalOptions();
7284
+ program2.name("connectors").description("Install API connectors for your project").version("0.5.6").enablePositionalOptions();
7285
7285
  program2.command("interactive", { isDefault: true }).alias("i").description("Interactive connector browser").action(() => {
7286
7286
  if (!isTTY) {
7287
7287
  console.log(`Non-interactive environment detected. Use a subcommand:
@@ -7646,10 +7646,11 @@ program2.command("info").argument("<connector>", "Connector name").option("--jso
7646
7646
  const meta = getConnector(connector);
7647
7647
  if (!meta) {
7648
7648
  if (options.json) {
7649
- console.log(JSON.stringify({ error: `Connector '${connector}' not found` }));
7649
+ console.log(JSON.stringify({ error: `Connector '${connector}' not found. Run 'connectors list' to see available connectors.` }));
7650
7650
  process.exit(1);
7651
7651
  }
7652
7652
  console.log(chalk2.red(`Connector '${connector}' not found`));
7653
+ console.log(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${connector}' to search.`));
7653
7654
  process.exit(1);
7654
7655
  return;
7655
7656
  }
@@ -7674,9 +7675,10 @@ program2.command("docs").argument("<connector>", "Connector name").option("--jso
7674
7675
  const meta = getConnector(connector);
7675
7676
  if (!meta) {
7676
7677
  if (options.json) {
7677
- console.log(JSON.stringify({ error: `Connector '${connector}' not found` }));
7678
+ console.log(JSON.stringify({ error: `Connector '${connector}' not found. Run 'connectors list' to see available connectors.` }));
7678
7679
  } else {
7679
7680
  console.log(chalk2.red(`Connector '${connector}' not found`));
7681
+ console.log(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${connector}' to search.`));
7680
7682
  }
7681
7683
  process.exit(1);
7682
7684
  return;
@@ -7684,9 +7686,10 @@ program2.command("docs").argument("<connector>", "Connector name").option("--jso
7684
7686
  const docs = getConnectorDocs(connector);
7685
7687
  if (!docs) {
7686
7688
  if (options.json) {
7687
- console.log(JSON.stringify({ error: `No documentation found for '${connector}'` }));
7689
+ console.log(JSON.stringify({ error: `No documentation found for '${connector}'. The connector may not be installed yet. Run 'connectors install ${connector}' first.` }));
7688
7690
  } else {
7689
7691
  console.log(chalk2.red(`No documentation found for '${connector}'`));
7692
+ console.log(chalk2.dim(`The connector may not be installed yet. Run 'connectors install ${connector}' first.`));
7690
7693
  }
7691
7694
  process.exit(1);
7692
7695
  return;
@@ -7763,6 +7766,7 @@ program2.command("remove").alias("rm").argument("<connector>", "Connector to rem
7763
7766
  console.log(chalk2.green(`\u2713 Removed ${connector}`));
7764
7767
  } else {
7765
7768
  console.log(chalk2.red(`\u2717 ${connector} is not installed`));
7769
+ console.log(chalk2.dim(`Run 'connectors install ${connector}' to install it, or 'connectors list --installed' to see installed connectors.`));
7766
7770
  process.exit(1);
7767
7771
  }
7768
7772
  });
@@ -7814,7 +7818,7 @@ program2.command("update").argument("[connectors...]", "Specific connectors to u
7814
7818
  console.log(JSON.stringify({ error: `Not installed: ${notInstalled.join(", ")}` }));
7815
7819
  } else {
7816
7820
  console.log(chalk2.red(`Not installed: ${notInstalled.join(", ")}`));
7817
- console.log(chalk2.dim("Installed connectors: " + installed.join(", ")));
7821
+ console.log(chalk2.dim(`Run 'connectors install ${notInstalled[0]}' to install, or 'connectors list --installed' to see installed connectors.`));
7818
7822
  }
7819
7823
  process.exit(1);
7820
7824
  return;
@@ -7867,19 +7871,21 @@ Updating ${toUpdate.length} connector(s)...
7867
7871
  }
7868
7872
  process.exit(results.every((r) => r.success) ? 0 : 1);
7869
7873
  });
7870
- program2.command("status").option("--json", "Output as JSON", false).description("Show auth status of installed connectors").action((options) => {
7874
+ program2.command("status").option("--json", "Output as JSON", false).description("Show auth status of all configured connectors (project + global)").action((options) => {
7871
7875
  const installed = getInstalledConnectors();
7872
- if (installed.length === 0) {
7873
- if (options.json) {
7874
- console.log(JSON.stringify([]));
7875
- } else {
7876
- console.log(chalk2.dim("No connectors installed. Run: connectors install <name>"));
7877
- }
7878
- return;
7879
- }
7880
- const statuses = installed.map((name) => {
7881
- const meta = getConnector(name);
7876
+ const configDir = join6(homedir3(), ".connectors");
7877
+ const seen = new Set;
7878
+ const allStatuses = [];
7879
+ function buildStatusEntry(name, source) {
7882
7880
  const auth = getAuthStatus(name);
7881
+ const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
7882
+ const currentProfileFile = join6(configDir, connectorName, "current_profile");
7883
+ let profile = "default";
7884
+ if (existsSync6(currentProfileFile)) {
7885
+ try {
7886
+ profile = readFileSync5(currentProfileFile, "utf-8").trim() || "default";
7887
+ } catch {}
7888
+ }
7883
7889
  let expiryLabel = null;
7884
7890
  let expired = false;
7885
7891
  if (auth.type === "oauth" && auth.tokenExpiry) {
@@ -7899,43 +7905,117 @@ program2.command("status").option("--json", "Output as JSON", false).description
7899
7905
  }
7900
7906
  return {
7901
7907
  name,
7902
- category: meta?.category || "Unknown",
7903
7908
  authType: auth.type,
7904
7909
  configured: auth.configured,
7910
+ profile,
7905
7911
  expired,
7906
7912
  expiryLabel,
7907
7913
  tokenExpiry: auth.tokenExpiry || null,
7908
- hasRefreshToken: auth.hasRefreshToken || false
7914
+ hasRefreshToken: auth.hasRefreshToken || false,
7915
+ source
7909
7916
  };
7910
- });
7917
+ }
7918
+ for (const name of installed) {
7919
+ seen.add(name);
7920
+ allStatuses.push(buildStatusEntry(name, "project"));
7921
+ }
7922
+ if (existsSync6(configDir)) {
7923
+ try {
7924
+ const globalDirs = readdirSync4(configDir).filter((f) => {
7925
+ if (!f.startsWith("connect-"))
7926
+ return false;
7927
+ try {
7928
+ return statSync3(join6(configDir, f)).isDirectory();
7929
+ } catch {
7930
+ return false;
7931
+ }
7932
+ });
7933
+ for (const dir of globalDirs) {
7934
+ const name = dir.replace("connect-", "");
7935
+ if (seen.has(name))
7936
+ continue;
7937
+ seen.add(name);
7938
+ allStatuses.push(buildStatusEntry(name, "global"));
7939
+ }
7940
+ } catch {}
7941
+ }
7942
+ if (allStatuses.length === 0) {
7943
+ if (options.json) {
7944
+ console.log(JSON.stringify({ configured: [], unconfigured: [], summary: { total: 0, configured: 0, unconfigured: 0 } }, null, 2));
7945
+ } else {
7946
+ console.log(chalk2.dim("No connectors found. Run: connectors install <name>"));
7947
+ }
7948
+ return;
7949
+ }
7950
+ const configuredList = allStatuses.filter((s) => s.configured);
7951
+ const unconfiguredList = allStatuses.filter((s) => !s.configured);
7911
7952
  if (options.json) {
7912
- console.log(JSON.stringify(statuses, null, 2));
7953
+ console.log(JSON.stringify({
7954
+ configured: configuredList,
7955
+ unconfigured: unconfiguredList,
7956
+ summary: {
7957
+ total: allStatuses.length,
7958
+ configured: configuredList.length,
7959
+ unconfigured: unconfiguredList.length
7960
+ }
7961
+ }, null, 2));
7913
7962
  return;
7914
7963
  }
7915
- const nameWidth = Math.max(6, ...statuses.map((s) => s.name.length)) + 2;
7916
- const catWidth = Math.max(10, ...statuses.map((s) => s.category.length)) + 2;
7964
+ const nameWidth = Math.max(6, ...allStatuses.map((s) => s.name.length)) + 2;
7917
7965
  const authWidth = 10;
7918
- console.log(chalk2.bold(`
7919
- Connector Status
7920
- `));
7921
- console.log(` ${chalk2.dim("Name".padEnd(nameWidth))}` + `${chalk2.dim("Category".padEnd(catWidth))}` + `${chalk2.dim("Auth Type".padEnd(authWidth))}` + `${chalk2.dim("Status")}`);
7922
- console.log(chalk2.dim(` ${"\u2500".repeat(nameWidth + catWidth + authWidth + 24)}`));
7923
- for (const s of statuses) {
7966
+ const profileWidth = Math.max(8, ...allStatuses.map((s) => s.profile.length)) + 2;
7967
+ function printRow(s) {
7924
7968
  const authTypeLabel = s.authType === "oauth" ? "OAuth" : s.authType === "apikey" ? "API Key" : "Bearer";
7925
7969
  let statusLabel;
7926
7970
  if (s.configured && s.expired) {
7927
- statusLabel = chalk2.yellow("\u26A0 Token expired");
7971
+ statusLabel = chalk2.yellow("expired");
7928
7972
  } else if (s.configured) {
7929
- statusLabel = chalk2.green("\u2713 Configured");
7973
+ statusLabel = chalk2.green("yes");
7930
7974
  } else {
7931
- statusLabel = chalk2.red("\u2717 Not configured");
7975
+ statusLabel = chalk2.red("no");
7932
7976
  }
7977
+ const profileLabel = s.profile.padEnd(profileWidth);
7933
7978
  let expiryStr = "";
7934
- if (s.expiryLabel && s.configured && !s.expired) {
7935
- expiryStr = ` ${chalk2.dim(s.expiryLabel)}`;
7979
+ if (s.authType === "oauth") {
7980
+ if (s.expired) {
7981
+ expiryStr = chalk2.yellow("Expired");
7982
+ } else if (s.expiryLabel && s.configured) {
7983
+ expiryStr = chalk2.dim(s.expiryLabel);
7984
+ } else {
7985
+ expiryStr = chalk2.dim("-");
7986
+ }
7987
+ } else {
7988
+ expiryStr = chalk2.dim("-");
7989
+ }
7990
+ const sourceLabel = s.source === "global" ? chalk2.dim(" (global)") : "";
7991
+ console.log(` ${chalk2.cyan(s.name.padEnd(nameWidth))}` + `${authTypeLabel.padEnd(authWidth)}` + `${statusLabel.padEnd(16)}` + `${profileLabel}` + `${expiryStr}${sourceLabel}`);
7992
+ }
7993
+ function printHeader() {
7994
+ console.log(` ${chalk2.dim("Name".padEnd(nameWidth))}` + `${chalk2.dim("Auth".padEnd(authWidth))}` + `${chalk2.dim("Configured".padEnd(16))}` + `${chalk2.dim("Profile".padEnd(profileWidth))}` + `${chalk2.dim("Expiry")}`);
7995
+ console.log(chalk2.dim(` ${"\u2500".repeat(nameWidth + authWidth + 16 + profileWidth + 12)}`));
7996
+ }
7997
+ console.log(chalk2.bold(`
7998
+ Connector Status
7999
+ `));
8000
+ if (configuredList.length > 0) {
8001
+ console.log(chalk2.green.bold(` Configured (${configuredList.length})
8002
+ `));
8003
+ printHeader();
8004
+ for (const s of configuredList) {
8005
+ printRow(s);
8006
+ }
8007
+ console.log();
8008
+ }
8009
+ if (unconfiguredList.length > 0) {
8010
+ console.log(chalk2.red.bold(` Unconfigured (${unconfiguredList.length})
8011
+ `));
8012
+ printHeader();
8013
+ for (const s of unconfiguredList) {
8014
+ printRow(s);
7936
8015
  }
7937
- console.log(` ${chalk2.cyan(s.name.padEnd(nameWidth))}` + `${s.category.padEnd(catWidth)}` + `${authTypeLabel.padEnd(authWidth)}` + `${statusLabel}${expiryStr}`);
8016
+ console.log();
7938
8017
  }
8018
+ console.log(chalk2.dim(` Total: ${allStatuses.length} | Configured: ${configuredList.length} | Unconfigured: ${unconfiguredList.length}`));
7939
8019
  console.log();
7940
8020
  });
7941
8021
  program2.command("doctor").option("--json", "Output as JSON", false).description("Check all installed connectors for issues and output a health report").action((options) => {
@@ -8054,9 +8134,10 @@ program2.command("auth").argument("<connector>", "Connector name to configure au
8054
8134
  const meta = getConnector(connector);
8055
8135
  if (!meta) {
8056
8136
  if (options.json) {
8057
- console.log(JSON.stringify({ error: `Connector '${connector}' not found` }));
8137
+ console.log(JSON.stringify({ error: `Connector '${connector}' not found. Run 'connectors list' to see available connectors.` }));
8058
8138
  } else {
8059
8139
  console.log(chalk2.red(`Connector '${connector}' not found`));
8140
+ console.log(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${connector}' to search.`));
8060
8141
  }
8061
8142
  process.exit(1);
8062
8143
  return;
@@ -8960,9 +9041,10 @@ program2.command("test").argument("[connector]", "Connector to test (default: al
8960
9041
  if (connector) {
8961
9042
  if (!getConnector(connector)) {
8962
9043
  if (options.json) {
8963
- console.log(JSON.stringify({ error: `Connector '${connector}' not found` }));
9044
+ console.log(JSON.stringify({ error: `Connector '${connector}' not found. Run 'connectors list' to see available connectors.` }));
8964
9045
  } else {
8965
9046
  console.log(chalk2.red(`Connector '${connector}' not found`));
9047
+ console.log(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${connector}' to search.`));
8966
9048
  }
8967
9049
  process.exit(1);
8968
9050
  return;
@@ -8988,15 +9070,15 @@ Testing connector credentials...
8988
9070
  const auth = getAuthStatus(name);
8989
9071
  const endpoint = TEST_ENDPOINTS[name];
8990
9072
  if (!auth.configured) {
8991
- results.push({ name, status: "no-key", message: "No credentials configured" });
9073
+ results.push({ name, status: "no-key", message: `No credentials configured. Run 'connectors auth ${name}' or 'connectors setup ${name} --key <your-key>'` });
8992
9074
  if (!options.json)
8993
- console.log(` ${chalk2.dim("\u25CB")} ${chalk2.dim(name)} \u2014 ${chalk2.dim("no credentials configured")}`);
9075
+ console.log(` ${chalk2.dim("\u25CB")} ${chalk2.dim(name)} \u2014 ${chalk2.dim(`no credentials configured \u2014 run 'connectors auth ${name}'`)}`);
8994
9076
  continue;
8995
9077
  }
8996
9078
  if (!endpoint) {
8997
- results.push({ name, status: "skip", message: "No test endpoint defined" });
9079
+ results.push({ name, status: "skip", message: `No test endpoint defined. Run 'connectors ops ${name}' to see available operations` });
8998
9080
  if (!options.json)
8999
- console.log(` ${chalk2.dim("\u25CB")} ${chalk2.dim(name)} \u2014 ${chalk2.dim("no test endpoint (key exists)")}`);
9081
+ console.log(` ${chalk2.dim("\u25CB")} ${chalk2.dim(name)} \u2014 ${chalk2.dim(`no test endpoint \u2014 run 'connectors ops ${name}' to see operations`)}`);
9000
9082
  continue;
9001
9083
  }
9002
9084
  const docs = getConnectorDocs(name);
@@ -9089,10 +9171,12 @@ Testing connector credentials...
9089
9171
  console.log(` ${chalk2.green("\u2713")} ${chalk2.green(name)} \u2014 ${chalk2.dim(`${res.status} OK`)} ${chalk2.dim(`(${ms}ms)`)}`);
9090
9172
  } else {
9091
9173
  const body2 = await res.text().catch(() => "");
9092
- const msg = res.status === 401 ? "Invalid or expired credentials" : `HTTP ${res.status}`;
9174
+ const msg = res.status === 401 ? `Invalid or expired credentials. Run 'connectors auth ${name}' to reconfigure` : `HTTP ${res.status}`;
9093
9175
  results.push({ name, status: "fail", message: msg, ms });
9094
9176
  if (!options.json)
9095
- console.log(` ${chalk2.red("\u2717")} ${chalk2.red(name)} \u2014 ${chalk2.red(msg)} ${chalk2.dim(`(${ms}ms)`)}`);
9177
+ console.log(` ${chalk2.red("\u2717")} ${chalk2.red(name)} \u2014 ${chalk2.red(res.status === 401 ? "Invalid or expired credentials" : `HTTP ${res.status}`)} ${chalk2.dim(`(${ms}ms)`)}`);
9178
+ if (!options.json && res.status === 401)
9179
+ console.log(chalk2.dim(` \u2192 Run 'connectors auth ${name}' to reconfigure credentials`));
9096
9180
  }
9097
9181
  } catch (e) {
9098
9182
  const ms = Date.now() - start;
@@ -9125,10 +9209,12 @@ program2.command("ops").description("List available API operations for a connect
9125
9209
  const meta = getConnector(name);
9126
9210
  if (!meta) {
9127
9211
  console.error(chalk2.red(`Connector '${name}' not found.`));
9212
+ console.error(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${name}' to search.`));
9128
9213
  process.exit(1);
9129
9214
  }
9130
9215
  if (!getConnectorCliPath(name)) {
9131
9216
  console.error(chalk2.red(`Connector '${name}' does not have a CLI.`));
9217
+ console.error(chalk2.dim(`Run 'connectors docs ${name}' to see how to use this connector programmatically.`));
9132
9218
  process.exit(1);
9133
9219
  }
9134
9220
  if (command) {
@@ -9171,10 +9257,12 @@ program2.command("run").description("Execute an API operation on a connector").a
9171
9257
  const meta = getConnector(name);
9172
9258
  if (!meta) {
9173
9259
  console.error(chalk2.red(`Connector '${name}' not found.`));
9260
+ console.error(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${name}' to search.`));
9174
9261
  process.exit(1);
9175
9262
  }
9176
9263
  if (!getConnectorCliPath(name)) {
9177
9264
  console.error(chalk2.red(`Connector '${name}' does not have a CLI.`));
9265
+ console.error(chalk2.dim(`Run 'connectors docs ${name}' to see how to use this connector programmatically.`));
9178
9266
  process.exit(1);
9179
9267
  }
9180
9268
  if (args.length === 0) {
@@ -9194,9 +9282,10 @@ program2.command("setup").argument("<name>", "Connector name to set up").option(
9194
9282
  const meta = getConnector(name);
9195
9283
  if (!meta) {
9196
9284
  if (options.json) {
9197
- console.log(JSON.stringify({ error: `Connector '${name}' not found` }));
9285
+ console.log(JSON.stringify({ error: `Connector '${name}' not found. Run 'connectors list' to see available connectors.` }));
9198
9286
  } else {
9199
9287
  console.log(chalk2.red(`Connector '${name}' not found`));
9288
+ console.log(chalk2.dim(`Run 'connectors list' to see available connectors, or 'connectors search ${name}' to search.`));
9200
9289
  }
9201
9290
  process.exit(1);
9202
9291
  return;
package/bin/mcp.js CHANGED
@@ -20763,7 +20763,7 @@ async function getConnectorCommandHelp(name, command) {
20763
20763
  loadConnectorVersions();
20764
20764
  var server = new McpServer({
20765
20765
  name: "connectors",
20766
- version: "0.5.4"
20766
+ version: "0.5.6"
20767
20767
  });
20768
20768
  server.registerTool("search_connectors", {
20769
20769
  title: "Search Connectors",
@@ -20802,7 +20802,7 @@ server.registerTool("list_connectors", {
20802
20802
  content: [
20803
20803
  {
20804
20804
  type: "text",
20805
- text: `Unknown category: "${category}". Available: ${CATEGORIES.join(", ")}`
20805
+ text: `Unknown category: "${category}". Use list_categories to see available categories: ${CATEGORIES.join(", ")}`
20806
20806
  }
20807
20807
  ],
20808
20808
  isError: true
@@ -20832,14 +20832,14 @@ server.registerTool("connector_docs", {
20832
20832
  const meta = getConnector(name);
20833
20833
  if (!meta) {
20834
20834
  return {
20835
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
20835
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
20836
20836
  isError: true
20837
20837
  };
20838
20838
  }
20839
20839
  const docs = getConnectorDocs(name);
20840
20840
  if (!docs) {
20841
20841
  return {
20842
- content: [{ type: "text", text: `No documentation found for '${name}'.` }],
20842
+ content: [{ type: "text", text: `No documentation found for '${name}'. Use install_connector to install it first.` }],
20843
20843
  isError: true
20844
20844
  };
20845
20845
  }
@@ -20921,7 +20921,7 @@ server.registerTool("connector_info", {
20921
20921
  const meta = getConnector(name);
20922
20922
  if (!meta) {
20923
20923
  return {
20924
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
20924
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
20925
20925
  isError: true
20926
20926
  };
20927
20927
  }
@@ -20944,7 +20944,7 @@ server.registerTool("connector_auth_status", {
20944
20944
  const meta = getConnector(name);
20945
20945
  if (!meta) {
20946
20946
  return {
20947
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
20947
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
20948
20948
  isError: true
20949
20949
  };
20950
20950
  }
@@ -21022,7 +21022,7 @@ server.registerTool("list_connector_operations", {
21022
21022
  const meta = getConnector(name);
21023
21023
  if (!meta) {
21024
21024
  return {
21025
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
21025
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
21026
21026
  isError: true
21027
21027
  };
21028
21028
  }
@@ -21031,7 +21031,7 @@ server.registerTool("list_connector_operations", {
21031
21031
  content: [
21032
21032
  {
21033
21033
  type: "text",
21034
- text: `Connector '${name}' does not have a CLI. It may be API-only.`
21034
+ text: `Connector '${name}' does not have a CLI. It may be API-only. Use connector_docs to see how to use it programmatically.`
21035
21035
  }
21036
21036
  ],
21037
21037
  isError: true
@@ -21076,7 +21076,7 @@ server.registerTool("run_connector_operation", {
21076
21076
  const meta = getConnector(name);
21077
21077
  if (!meta) {
21078
21078
  return {
21079
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
21079
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
21080
21080
  isError: true
21081
21081
  };
21082
21082
  }
@@ -21132,7 +21132,7 @@ server.registerTool("setup_connector", {
21132
21132
  const meta = getConnector(name);
21133
21133
  if (!meta) {
21134
21134
  return {
21135
- content: [{ type: "text", text: `Connector '${name}' not found.` }],
21135
+ content: [{ type: "text", text: `Connector '${name}' not found. Use search_connectors or list_connectors to find available connectors.` }],
21136
21136
  isError: true
21137
21137
  };
21138
21138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/connectors",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "Open source connector library - Install API connectors with a single command",
5
5
  "type": "module",
6
6
  "bin": {