@ateam-ai/mcp 0.4.38 → 0.4.39

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/tools.js +6 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ateam-ai/mcp",
3
- "version": "0.4.38",
3
+ "version": "0.4.39",
4
4
  "mcpName": "io.github.ariekogan/ateam-mcp",
5
5
  "description": "A-Team MCP Server — build, validate, and deploy multi-agent solutions from any AI environment",
6
6
  "type": "module",
package/src/tools.js CHANGED
@@ -1066,6 +1066,10 @@ export const tools = [
1066
1066
  type: "boolean",
1067
1067
  description: "Opt into FULL REPLACE: wipe the connector dir and write only the provided `files`. Default: false (= merge with GitHub state at `ref`). Use with intent — sending an incomplete file set with replace:true will break the connector.",
1068
1068
  },
1069
+ force: {
1070
+ type: "boolean",
1071
+ description: "RECOVERY: respawn the connector + re-inject its CURRENT env even when the source is UNCHANGED. Normally an unchanged-source upload no-ops (unchanged:true) and leaves the process running. But a connector spawned before a shared-secret rotation keeps the STALE secret — it still lists tools (looks healthy) yet 401s on every per-actor call, with no recovery short of a fake source edit. Use `ateam_upload_connector(solution_id, connector_id, github:true, force:true)` to pull the current source and force a fresh respawn (which picks up the current secret). Default: false.",
1072
+ },
1069
1073
  },
1070
1074
  required: ["solution_id", "connector_id"],
1071
1075
  },
@@ -4464,7 +4468,7 @@ const handlers = {
4464
4468
  return del(`/deploy/solutions/${solution_id}/connectors/${connector_id}`, sid);
4465
4469
  },
4466
4470
 
4467
- ateam_upload_connector: async ({ solution_id, connector_id, github, files, ref, replace }, sid) => {
4471
+ ateam_upload_connector: async ({ solution_id, connector_id, github, files, ref, replace, force }, sid) => {
4468
4472
  // OPEN-32: accept content_base64 per file (single-line, escape-safe) and
4469
4473
  // decode it to plain content here, so an agent can upload a multi-file
4470
4474
  // connector without hand-escaping ~90KB of HTML/JS/JSON in one tool call —
@@ -4501,6 +4505,7 @@ const handlers = {
4501
4505
  files: normFiles,
4502
4506
  ...(ref ? { ref } : {}),
4503
4507
  ...(replace === true ? { replace: true } : {}),
4508
+ ...(force === true ? { force: true } : {}),
4504
4509
  };
4505
4510
  const url = `/deploy/solutions/${solution_id}/connectors/${connector_id}/upload`;
4506
4511
  let kicked;