@showly/mcp-server 0.4.4 → 0.4.5
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 +11 -0
- package/dist/cli.js +42 -0
- package/manifest.json +1 -1
- package/package.json +3 -3
package/dist/cli.d.ts
CHANGED
|
@@ -130,6 +130,17 @@ export declare function buildLoginPrompt(input: {
|
|
|
130
130
|
userCode: string;
|
|
131
131
|
expiresAt: Date;
|
|
132
132
|
}): string;
|
|
133
|
+
/**
|
|
134
|
+
* Extra control-plane instructions for agents that launched the device flow.
|
|
135
|
+
*
|
|
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.
|
|
142
|
+
*/
|
|
143
|
+
export declare function buildRemoteAgentWaitInstruction(target: LoginTarget): string | null;
|
|
133
144
|
/** Claude Code reads a `headers` map on an http MCP server entry. */
|
|
134
145
|
export declare function buildClaudeCodeAuthSnippet(opts: {
|
|
135
146
|
url: string;
|
package/dist/cli.js
CHANGED
|
@@ -454,6 +454,26 @@ export function buildLoginPrompt(input) {
|
|
|
454
454
|
"connected until you approve, and the command can be run again.",
|
|
455
455
|
].join("\n");
|
|
456
456
|
}
|
|
457
|
+
/**
|
|
458
|
+
* Extra control-plane instructions for agents that launched the device flow.
|
|
459
|
+
*
|
|
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.
|
|
466
|
+
*/
|
|
467
|
+
export function buildRemoteAgentWaitInstruction(target) {
|
|
468
|
+
if (target !== "openclaw" && target !== "hermes")
|
|
469
|
+
return null;
|
|
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 ask the human to message you after approval, and do not start another login while this process is alive.",
|
|
475
|
+
].join("\n");
|
|
476
|
+
}
|
|
457
477
|
/** Claude Code reads a `headers` map on an http MCP server entry. */
|
|
458
478
|
export function buildClaudeCodeAuthSnippet(opts) {
|
|
459
479
|
return {
|
|
@@ -914,6 +934,9 @@ export async function performLogin(opts, deps = {}) {
|
|
|
914
934
|
userCode: started.user_code,
|
|
915
935
|
expiresAt,
|
|
916
936
|
}));
|
|
937
|
+
const remoteAgentWaitInstruction = buildRemoteAgentWaitInstruction(opts.target);
|
|
938
|
+
if (remoteAgentWaitInstruction)
|
|
939
|
+
log(remoteAgentWaitInstruction);
|
|
917
940
|
const token = await pollForDeviceToken({
|
|
918
941
|
apiUrl,
|
|
919
942
|
deviceCode: started.device_code,
|
|
@@ -1143,6 +1166,25 @@ export function buildLoginOutput(result, opts = {}) {
|
|
|
1143
1166
|
line: "That line is the credential itself. It is printed here once, and kept out of the config file so the file stays safe to commit.",
|
|
1144
1167
|
});
|
|
1145
1168
|
}
|
|
1169
|
+
if (result.target === "openclaw") {
|
|
1170
|
+
lines.push({
|
|
1171
|
+
stream: "err",
|
|
1172
|
+
line: [
|
|
1173
|
+
"[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.",
|
|
1174
|
+
"A saved config or successful doctor/probe is not completion. If the host already ended the task while approval was pending, use one fresh task as a fallback; do not repeat login.",
|
|
1175
|
+
].join("\n"),
|
|
1176
|
+
});
|
|
1177
|
+
}
|
|
1178
|
+
if (result.target === "hermes") {
|
|
1179
|
+
lines.push({
|
|
1180
|
+
stream: "err",
|
|
1181
|
+
line: [
|
|
1182
|
+
"[AGENT EXECUTOR - REQUIRED] Reload the live Hermes MCP inventory with `/reload-mcp`, then verify with native `mcp__showly__list_projects` and `mcp__showly__list_sites` calls.",
|
|
1183
|
+
"On managed MyClaw, a new task can reuse the same worker. If the native tools are still absent after reload, restart the Hermes instance/container once and open a fresh task; do not repeat login.",
|
|
1184
|
+
"`hermes mcp test` or raw JSON-RPC proves the credential and server, not that the running agent loaded the tools.",
|
|
1185
|
+
].join("\n"),
|
|
1186
|
+
});
|
|
1187
|
+
}
|
|
1146
1188
|
if (result.expiresAt) {
|
|
1147
1189
|
lines.push({
|
|
1148
1190
|
stream: "err",
|
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.
|
|
5
|
+
"version": "0.4.5",
|
|
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.
|
|
3
|
+
"version": "0.4.5",
|
|
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.
|
|
55
|
+
"version": "0.4.5",
|
|
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.
|
|
68
|
+
"version": "0.4.5",
|
|
69
69
|
"type": "mcp-server",
|
|
70
70
|
"manifest": "manifest.json"
|
|
71
71
|
},
|