@showly/mcp-server 0.4.6 → 0.4.8

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/cli.d.ts CHANGED
@@ -131,14 +131,14 @@ export declare function buildLoginPrompt(input: {
131
131
  expiresAt: Date;
132
132
  }): string;
133
133
  /**
134
- * Extra control-plane instructions for agents that launched the device flow.
134
+ * Process-lifecycle guidance for agents that launched the device flow.
135
135
  *
136
136
  * The human-facing approval block is intentionally host-neutral and is often
137
- * relayed verbatim. Remote agent hosts need one additional instruction that is
138
- * meant for the executor, not the human: keep ownership of the foreground
139
- * process and poll it until it exits. Without this, an agent can accurately
140
- * relay the code, end its turn, and strand the post-approval work even though
141
- * the CLI itself later receives and stores the credential successfully.
137
+ * relayed verbatim. Remote agent hosts need one additional status note: keep
138
+ * ownership of the foreground process and poll it until it exits. Without
139
+ * this, an agent can accurately relay the code, end its turn, and strand the
140
+ * post-approval work even though the CLI itself later receives and stores the
141
+ * credential successfully.
142
142
  */
143
143
  export declare function buildRemoteAgentWaitInstruction(target: LoginTarget): string | null;
144
144
  /** Claude Code reads a `headers` map on an http MCP server entry. */
package/dist/cli.js CHANGED
@@ -455,26 +455,23 @@ export function buildLoginPrompt(input) {
455
455
  ].join("\n");
456
456
  }
457
457
  /**
458
- * Extra control-plane instructions for agents that launched the device flow.
458
+ * Process-lifecycle guidance for agents that launched the device flow.
459
459
  *
460
460
  * The human-facing approval block is intentionally host-neutral and is often
461
- * relayed verbatim. Remote agent hosts need one additional instruction that is
462
- * meant for the executor, not the human: keep ownership of the foreground
463
- * process and poll it until it exits. Without this, an agent can accurately
464
- * relay the code, end its turn, and strand the post-approval work even though
465
- * the CLI itself later receives and stores the credential successfully.
461
+ * relayed verbatim. Remote agent hosts need one additional status note: keep
462
+ * ownership of the foreground process and poll it until it exits. Without
463
+ * this, an agent can accurately relay the code, end its turn, and strand the
464
+ * post-approval work even though the CLI itself later receives and stores the
465
+ * credential successfully.
466
466
  */
467
467
  export function buildRemoteAgentWaitInstruction(target) {
468
468
  if (target !== "openclaw" && target !== "hermes")
469
469
  return null;
470
470
  return [
471
- "[AGENT EXECUTOR - REQUIRED]",
472
- "The approval block above is an intermediate update, never the final response.",
473
- "Keep this exact foreground process/session handle alive and repeatedly use your host's wait/poll action until the command exits. No new output means it is still waiting.",
474
- "Do not append shell `&`, use nohup/disown, redirect this command into a detached job, or close the task that owns its session handle.",
475
- "After relaying the approval URL and code, your next action in the same turn MUST be another wait/poll call on this handle. A text-only response such as `I'll keep an eye on it` ends the workflow and is a failure.",
476
- "Do not ask the human to message you after approval, and do not start another login while this process is alive.",
477
- "Only a terminal exit from this login command permits a final response.",
471
+ "[SHOWLY LOGIN PROCESS]",
472
+ "Keep this foreground process/session handle attached.",
473
+ "After showing the approval URL and code, wait/poll this same handle until the command exits. No new output means it is still waiting.",
474
+ "Do not start another login while this one is active.",
478
475
  ].join("\n");
479
476
  }
480
477
  /** Claude Code reads a `headers` map on an http MCP server entry. */
@@ -1131,7 +1128,11 @@ export function buildLoginOutput(result, opts = {}) {
1131
1128
  if (opts.printToken)
1132
1129
  return [{ stream: "out", line: result.token }];
1133
1130
  const lines = [];
1134
- if (result.wrote) {
1131
+ const isManagedRemoteTarget = result.target === "openclaw" || result.target === "hermes";
1132
+ if (isManagedRemoteTarget) {
1133
+ lines.push({ stream: "err", line: "Connected." });
1134
+ }
1135
+ else if (result.wrote) {
1135
1136
  const written = [result.path, result.credentialPath]
1136
1137
  .filter((path) => Boolean(path))
1137
1138
  .join(" and ");
@@ -1173,24 +1174,18 @@ export function buildLoginOutput(result, opts = {}) {
1173
1174
  lines.push({
1174
1175
  stream: "err",
1175
1176
  line: [
1176
- "[AGENT EXECUTOR - REQUIRED] Stay in this task: run `openclaw mcp reload`, rediscover Showly's native tools, then make real `list_projects` and `list_sites` calls.",
1177
- "Do not stop at Connected or tell the human to start a new task while this task can still run. A saved config or successful doctor/probe is not completion.",
1178
- "If the host already ended the task while approval was pending, use one fresh task as a fallback; do not repeat login.",
1177
+ "Next: run `openclaw mcp reload` once.",
1178
+ "If this task still does not show Showly tools, start one fresh task before using Showly.",
1179
1179
  ].join("\n"),
1180
1180
  });
1181
1181
  }
1182
1182
  if (result.target === "hermes") {
1183
1183
  lines.push({
1184
1184
  stream: "err",
1185
- line: [
1186
- "[AGENT EXECUTOR - REQUIRED] Activate the live Hermes MCP inventory, then verify with native `mcp__showly__list_projects` and `mcp__showly__list_sites` calls.",
1187
- "Use `/reload-mcp` only when the host exposes it as a real control command. Do not tell the human to run it and do not send `/reload-mcp` as an ordinary chat/model prompt.",
1188
- "On managed MyClaw, restart the Hermes instance/container once with the host control, open a fresh task, and make the native calls there. A new task before that restart can reuse the stale worker. Do not repeat login.",
1189
- "`hermes mcp test` or raw JSON-RPC proves the credential and server, not that the running agent loaded the tools.",
1190
- ].join("\n"),
1185
+ line: "Next: restart Hermes once, then start a fresh task before using Showly tools.",
1191
1186
  });
1192
1187
  }
1193
- if (result.expiresAt) {
1188
+ if (result.expiresAt && !isManagedRemoteTarget) {
1194
1189
  lines.push({
1195
1190
  stream: "err",
1196
1191
  line: `This credential expires ${result.expiresAt.toISOString().slice(0, 10)}. Showly issues no refresh token, so run \`npx @showly/mcp-server login\` again before then — it needs a human approval each time.`,
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://showly.ai/schemas/skill-manifest-v1.json",
3
3
  "name": "showly",
4
4
  "displayName": "Showly",
5
- "version": "0.4.6",
5
+ "version": "0.4.8",
6
6
  "description": "Deploy and manage Showly sites from inside Claude Code / Codex.",
7
7
  "homepage": "https://showly.ai/docs/mcp/overview",
8
8
  "publisher": "Showly",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@showly/mcp-server",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "Connect Claude Code / Codex to the Showly MCP server — preview and deploy sites from your agent.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "claude-code-skill": {
54
54
  "name": "showly",
55
- "version": "0.4.6",
55
+ "version": "0.4.8",
56
56
  "description": "Deploy and manage Showly sites from inside Claude Code.",
57
57
  "mcp-server": {
58
58
  "url-env": "SHOWLY_MCP_URL",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "codex-plugin": {
67
67
  "name": "showly",
68
- "version": "0.4.6",
68
+ "version": "0.4.8",
69
69
  "type": "mcp-server",
70
70
  "manifest": "manifest.json"
71
71
  },