@ateam-ai/mcp 0.4.89 → 0.4.90

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 +19 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ateam-ai/mcp",
3
- "version": "0.4.89",
3
+ "version": "0.4.90",
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
@@ -3926,10 +3926,29 @@ export const handlers = {
3926
3926
  }
3927
3927
 
3928
3928
  // Phase 2.5: Restart connectors that have source code (upload triggers stop+start)
3929
+ //
3930
+ // A runtime:"device" connector is SKIPPED. It has authored source — the RN
3931
+ // bundle (rn-src/, package.json, the esbuild config) — so it looks like an
3932
+ // ordinary connector to a loop that only asks "does it have files?". But
3933
+ // there is no server process to restart: the bundle ships to the phone.
3934
+ // Uploading it here 409s on the merge and then health marked the connector
3935
+ // "error", failing a deploy whose connector was working as designed.
3936
+ //
3937
+ // Classified from the DECLARED connectors[], which the caller authored —
3938
+ // not by asking Core. Same ownership rule the Builder now follows.
3939
+ const deviceConnectorIds = new Set(
3940
+ (connectors || [])
3941
+ .filter((c) => c && typeof c === "object" && c.runtime === "device" && c.id)
3942
+ .map((c) => c.id),
3943
+ );
3929
3944
  if (effectiveMcpStore && Object.keys(effectiveMcpStore).length > 0) {
3930
3945
  const connectorResults = [];
3931
3946
  for (const [connId, files] of Object.entries(effectiveMcpStore)) {
3932
3947
  if (!Array.isArray(files) || files.length === 0) continue;
3948
+ if (deviceConnectorIds.has(connId)) {
3949
+ connectorResults.push({ id: connId, ok: true, tools: 0, skipped: "device_runtime" });
3950
+ continue;
3951
+ }
3933
3952
  try {
3934
3953
  const uploadResult = await post(
3935
3954
  `/deploy/solutions/${solutionId}/connectors/${connId}/upload`,