poke-browser 0.4.0 → 0.4.2
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/run.d.ts.map +1 -1
- package/dist/run.js +105 -0
- package/dist/run.js.map +1 -1
- package/extension/background.js +137 -23
- package/extension/manifest.json +1 -1
- package/extension/popup.html +17 -0
- package/package.json +1 -1
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAqNA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAkBvD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAqBA;AAyMD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAa1C"}
|
package/dist/run.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { execFileSync, spawn } from "node:child_process";
|
|
2
|
+
import { createServer } from "node:http";
|
|
2
3
|
import { PassThrough } from "node:stream";
|
|
3
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
5
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
@@ -12,6 +13,7 @@ let stdioMcpConnected = false;
|
|
|
12
13
|
/** Active stdio MCP transport (stdio mode only); closed on graceful shutdown. */
|
|
13
14
|
let mcpTransport = null;
|
|
14
15
|
let tunnelChild = null;
|
|
16
|
+
let pokeProxyServerRunning = false;
|
|
15
17
|
let processGuardsInstalled = false;
|
|
16
18
|
function installProcessGuards() {
|
|
17
19
|
if (processGuardsInstalled)
|
|
@@ -84,6 +86,107 @@ function installShutdownHandlers() {
|
|
|
84
86
|
process.on("SIGINT", () => shutdownWithTimeout("SIGINT"));
|
|
85
87
|
process.on("SIGTERM", () => shutdownWithTimeout("SIGTERM"));
|
|
86
88
|
}
|
|
89
|
+
function readRequestBody(req, limitBytes = 64 * 1024) {
|
|
90
|
+
return new Promise((resolve, reject) => {
|
|
91
|
+
let body = "";
|
|
92
|
+
let size = 0;
|
|
93
|
+
req.setEncoding("utf8");
|
|
94
|
+
req.on("data", (chunk) => {
|
|
95
|
+
size += Buffer.byteLength(chunk, "utf8");
|
|
96
|
+
if (size > limitBytes) {
|
|
97
|
+
reject(new Error("Request body too large"));
|
|
98
|
+
req.destroy();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
body += chunk;
|
|
102
|
+
});
|
|
103
|
+
req.on("end", () => resolve(body));
|
|
104
|
+
req.on("error", reject);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function writeJson(res, status, payload) {
|
|
108
|
+
const body = JSON.stringify(payload);
|
|
109
|
+
res.statusCode = status;
|
|
110
|
+
res.setHeader("content-type", "application/json; charset=utf-8");
|
|
111
|
+
res.setHeader("content-length", String(Buffer.byteLength(body, "utf8")));
|
|
112
|
+
// Allow extension clients (chrome-extension://...) to call localhost proxy.
|
|
113
|
+
res.setHeader("access-control-allow-origin", "*");
|
|
114
|
+
res.setHeader("access-control-allow-methods", "POST, OPTIONS");
|
|
115
|
+
res.setHeader("access-control-allow-headers", "content-type");
|
|
116
|
+
res.end(body);
|
|
117
|
+
}
|
|
118
|
+
async function startPokeLocalProxyServer(wsPort) {
|
|
119
|
+
if (pokeProxyServerRunning)
|
|
120
|
+
return;
|
|
121
|
+
const proxyPort = wsPort + 1;
|
|
122
|
+
const server = createServer(async (req, res) => {
|
|
123
|
+
if (req.method === "OPTIONS") {
|
|
124
|
+
res.statusCode = 204;
|
|
125
|
+
res.setHeader("access-control-allow-origin", "*");
|
|
126
|
+
res.setHeader("access-control-allow-methods", "POST, OPTIONS");
|
|
127
|
+
res.setHeader("access-control-allow-headers", "content-type");
|
|
128
|
+
res.end();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (req.method !== "POST" || req.url !== "/poke/send-message") {
|
|
132
|
+
writeJson(res, 404, { error: "Not found" });
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const raw = await readRequestBody(req);
|
|
137
|
+
let parsed;
|
|
138
|
+
try {
|
|
139
|
+
parsed = JSON.parse(raw);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
writeJson(res, 400, { error: "Invalid JSON body" });
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const body = parsed && typeof parsed === "object" ? parsed : {};
|
|
146
|
+
const apiKey = typeof body.apiKey === "string" ? body.apiKey.trim() : "";
|
|
147
|
+
const message = typeof body.message === "string" ? body.message : "";
|
|
148
|
+
if (!apiKey || !message.trim()) {
|
|
149
|
+
writeJson(res, 400, { error: "apiKey and message are required" });
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const upstream = await fetch("https://poke.com/api/v1/inbound/api-message", {
|
|
153
|
+
method: "POST",
|
|
154
|
+
headers: {
|
|
155
|
+
Authorization: `Bearer ${apiKey}`,
|
|
156
|
+
"Content-Type": "application/json",
|
|
157
|
+
},
|
|
158
|
+
body: JSON.stringify({ message }),
|
|
159
|
+
});
|
|
160
|
+
const text = await upstream.text();
|
|
161
|
+
let json = { error: { message: text || upstream.statusText, status: upstream.status } };
|
|
162
|
+
try {
|
|
163
|
+
json = JSON.parse(text);
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// keep fallback object
|
|
167
|
+
}
|
|
168
|
+
writeJson(res, upstream.status, json);
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
writeJson(res, 500, {
|
|
172
|
+
error: {
|
|
173
|
+
message: err instanceof Error ? err.message : String(err),
|
|
174
|
+
status: 500,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
await new Promise((resolve, reject) => {
|
|
180
|
+
server.listen(proxyPort, "127.0.0.1", (err) => {
|
|
181
|
+
if (err)
|
|
182
|
+
reject(err);
|
|
183
|
+
else
|
|
184
|
+
resolve();
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
pokeProxyServerRunning = true;
|
|
188
|
+
log(`[poke-browser-mcp] Local Poke proxy → http://127.0.0.1:${proxyPort}/poke/send-message`);
|
|
189
|
+
}
|
|
87
190
|
function readMcpHttpPortFromEnv() {
|
|
88
191
|
const raw = process.env.POKE_BROWSER_MCP_PORT ??
|
|
89
192
|
process.env.POKE_BROWSER_PORT ??
|
|
@@ -146,6 +249,7 @@ async function runStdio() {
|
|
|
146
249
|
const WS_PORT = readPort();
|
|
147
250
|
try {
|
|
148
251
|
await logAndStartExtensionWebSocket(WS_PORT);
|
|
252
|
+
await startPokeLocalProxyServer(WS_PORT);
|
|
149
253
|
}
|
|
150
254
|
catch (err) {
|
|
151
255
|
logError("[poke-browser-mcp] WebSocket server failed to bind (is another poke-browser or process using the port?):", err);
|
|
@@ -180,6 +284,7 @@ async function runHttp(opts) {
|
|
|
180
284
|
const WS_PORT = readPort();
|
|
181
285
|
try {
|
|
182
286
|
await logAndStartExtensionWebSocket(WS_PORT);
|
|
287
|
+
await startPokeLocalProxyServer(WS_PORT);
|
|
183
288
|
}
|
|
184
289
|
catch (err) {
|
|
185
290
|
logError("[poke-browser-mcp] WebSocket server failed to bind:", err);
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/extension/background.js
CHANGED
|
@@ -39,10 +39,20 @@ const POKE_TERMINAL_ONLY_INSTRUCTION =
|
|
|
39
39
|
"You are in a browser extension initiated terminal-style session.\n" +
|
|
40
40
|
"DO NOT reply via iMessage. DO NOT reply via SMS. DO NOT reply via Telegram.\n" +
|
|
41
41
|
"DO NOT send any normal chat reply text.\n" +
|
|
42
|
+
"You MUST use browser MCP tools for actions.\n" +
|
|
43
|
+
"The user is probably already on the target page.\n" +
|
|
44
|
+
"Start with a screenshot tool call first to understand current page state.\n" +
|
|
45
|
+
"Continue from the current page and avoid navigate_to unless absolutely needed.\n" +
|
|
42
46
|
"Your only allowed behavior is to execute browser tasks and deliver output through the terminal/tool channel.\n" +
|
|
43
47
|
"Be strict: immediately start the browser process and proceed with the requested browser actions.\n" +
|
|
44
48
|
"[END BROWSER EXTENSION SESSION]\n\n";
|
|
45
49
|
|
|
50
|
+
const POKE_TERMINAL_FALLBACK_INSTRUCTION =
|
|
51
|
+
"[BROWSER SESSION]\n" +
|
|
52
|
+
"No chat reply. No iMessage/SMS/Telegram reply.\n" +
|
|
53
|
+
"Use browser MCP tools. Take screenshot first, continue from current page, avoid navigate_to unless needed.\n" +
|
|
54
|
+
"Start browser actions immediately and respond only through tool/terminal channel.\n\n";
|
|
55
|
+
|
|
46
56
|
function logCommand(direction, summary) {
|
|
47
57
|
commandLog.unshift({ ts: Date.now(), direction, summary });
|
|
48
58
|
if (commandLog.length > LOG_MAX) commandLog.length = LOG_MAX;
|
|
@@ -64,6 +74,93 @@ function logCommand(direction, summary) {
|
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
76
|
|
|
77
|
+
/**
|
|
78
|
+
* @param {string} apiKey
|
|
79
|
+
* @param {string} message
|
|
80
|
+
*/
|
|
81
|
+
async function postPokeMessage(apiKey, message) {
|
|
82
|
+
const resp = await fetch("https://poke.com/api/v1/inbound/api-message", {
|
|
83
|
+
method: "POST",
|
|
84
|
+
headers: {
|
|
85
|
+
Authorization: `Bearer ${apiKey}`,
|
|
86
|
+
"Content-Type": "application/json",
|
|
87
|
+
},
|
|
88
|
+
body: JSON.stringify({ message }),
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
if (resp.ok) {
|
|
92
|
+
const data = await resp.json().catch(() => null);
|
|
93
|
+
return { ok: true, data };
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const bodyText = await resp.text();
|
|
97
|
+
let serverMsg = "";
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(bodyText);
|
|
100
|
+
serverMsg =
|
|
101
|
+
typeof parsed?.error === "string"
|
|
102
|
+
? parsed.error
|
|
103
|
+
: typeof parsed?.message === "string"
|
|
104
|
+
? parsed.message
|
|
105
|
+
: "";
|
|
106
|
+
} catch {
|
|
107
|
+
/* non-json response body */
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
ok: false,
|
|
112
|
+
status: resp.status,
|
|
113
|
+
statusText: resp.statusText || "",
|
|
114
|
+
serverMsg: serverMsg || bodyText.slice(0, 300),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Prefer localhost proxy to avoid extension-origin upstream edge cases.
|
|
120
|
+
* @param {string} apiKey
|
|
121
|
+
* @param {string} message
|
|
122
|
+
*/
|
|
123
|
+
async function postPokeMessageViaLocalProxy(apiKey, message) {
|
|
124
|
+
const wsPort = await getWsPort();
|
|
125
|
+
const proxyPort = wsPort + 1;
|
|
126
|
+
const resp = await fetch(`http://127.0.0.1:${proxyPort}/poke/send-message`, {
|
|
127
|
+
method: "POST",
|
|
128
|
+
headers: {
|
|
129
|
+
"Content-Type": "application/json",
|
|
130
|
+
},
|
|
131
|
+
body: JSON.stringify({ apiKey, message }),
|
|
132
|
+
signal: AbortSignal.timeout(3500),
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
if (resp.ok) {
|
|
136
|
+
const data = await resp.json().catch(() => null);
|
|
137
|
+
return { ok: true, data };
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const bodyText = await resp.text();
|
|
141
|
+
let serverMsg = "";
|
|
142
|
+
try {
|
|
143
|
+
const parsed = JSON.parse(bodyText);
|
|
144
|
+
if (parsed && typeof parsed === "object") {
|
|
145
|
+
const errObj = parsed.error;
|
|
146
|
+
if (errObj && typeof errObj === "object" && typeof errObj.message === "string") {
|
|
147
|
+
serverMsg = errObj.message;
|
|
148
|
+
} else if (typeof parsed.message === "string") {
|
|
149
|
+
serverMsg = parsed.message;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
} catch {
|
|
153
|
+
/* non-json response body */
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return {
|
|
157
|
+
ok: false,
|
|
158
|
+
status: resp.status,
|
|
159
|
+
statusText: resp.statusText || "",
|
|
160
|
+
serverMsg: serverMsg || bodyText.slice(0, 300),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
67
164
|
async function getWsPort() {
|
|
68
165
|
const { wsPort } = await chrome.storage.local.get("wsPort");
|
|
69
166
|
if (typeof wsPort === "number" && Number.isFinite(wsPort) && wsPort > 0 && wsPort < 65536) {
|
|
@@ -1993,37 +2090,54 @@ const RUNTIME_HANDLERS = {
|
|
|
1993
2090
|
return;
|
|
1994
2091
|
}
|
|
1995
2092
|
try {
|
|
1996
|
-
const
|
|
1997
|
-
const
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2093
|
+
const primaryPrompt = `${POKE_TERMINAL_ONLY_INSTRUCTION}${userMessage}`;
|
|
2094
|
+
const fallbackPrompt = `${POKE_TERMINAL_FALLBACK_INSTRUCTION}${userMessage}`;
|
|
2095
|
+
|
|
2096
|
+
// First path: localhost proxy through poke-browser Node process.
|
|
2097
|
+
let primary;
|
|
2098
|
+
try {
|
|
2099
|
+
primary = await postPokeMessageViaLocalProxy(apiKey, primaryPrompt);
|
|
2100
|
+
} catch {
|
|
2101
|
+
// Proxy unavailable; fallback to direct extension fetch.
|
|
2102
|
+
primary = await postPokeMessage(apiKey, primaryPrompt);
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
if (primary.ok) {
|
|
2106
|
+
sendResponse({ ok: true, data: primary.data });
|
|
2107
|
+
return;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
// If backend fails with a 5xx, retry once with shorter strict instruction.
|
|
2111
|
+
if (primary.status >= 500) {
|
|
2112
|
+
let fallback;
|
|
2008
2113
|
try {
|
|
2009
|
-
|
|
2010
|
-
serverMsg =
|
|
2011
|
-
typeof parsed?.error === "string"
|
|
2012
|
-
? parsed.error
|
|
2013
|
-
: typeof parsed?.message === "string"
|
|
2014
|
-
? parsed.message
|
|
2015
|
-
: "";
|
|
2114
|
+
fallback = await postPokeMessageViaLocalProxy(apiKey, fallbackPrompt);
|
|
2016
2115
|
} catch {
|
|
2017
|
-
|
|
2116
|
+
fallback = await postPokeMessage(apiKey, fallbackPrompt);
|
|
2117
|
+
}
|
|
2118
|
+
if (fallback.ok) {
|
|
2119
|
+
sendResponse({
|
|
2120
|
+
ok: true,
|
|
2121
|
+
data: fallback.data,
|
|
2122
|
+
warning: `Primary prompt failed with ${primary.status}; fallback succeeded.`,
|
|
2123
|
+
});
|
|
2124
|
+
return;
|
|
2018
2125
|
}
|
|
2019
2126
|
sendResponse({
|
|
2020
2127
|
ok: false,
|
|
2021
|
-
error:
|
|
2128
|
+
error:
|
|
2129
|
+
`Poke API error (${fallback.status}). ` +
|
|
2130
|
+
(fallback.serverMsg || fallback.statusText || "Unknown server error."),
|
|
2022
2131
|
});
|
|
2023
2132
|
return;
|
|
2024
2133
|
}
|
|
2025
|
-
|
|
2026
|
-
sendResponse({
|
|
2134
|
+
|
|
2135
|
+
sendResponse({
|
|
2136
|
+
ok: false,
|
|
2137
|
+
error:
|
|
2138
|
+
`Poke API error (${primary.status}). ` +
|
|
2139
|
+
(primary.serverMsg || primary.statusText || "Unknown server error."),
|
|
2140
|
+
});
|
|
2027
2141
|
} catch (err) {
|
|
2028
2142
|
sendResponse({
|
|
2029
2143
|
ok: false,
|
package/extension/manifest.json
CHANGED
package/extension/popup.html
CHANGED
|
@@ -260,6 +260,20 @@
|
|
|
260
260
|
min-height: 14px;
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
+
.inline-link {
|
|
264
|
+
margin-top: 6px;
|
|
265
|
+
font-size: 11px;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.inline-link a {
|
|
269
|
+
color: #a78bfa;
|
|
270
|
+
text-decoration: none;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.inline-link a:hover {
|
|
274
|
+
text-decoration: underline;
|
|
275
|
+
}
|
|
276
|
+
|
|
263
277
|
.toggle-label {
|
|
264
278
|
font-size: 13px;
|
|
265
279
|
color: var(--text-primary);
|
|
@@ -489,6 +503,9 @@
|
|
|
489
503
|
<button type="button" id="save-api-key-btn" class="btn">Save key</button>
|
|
490
504
|
<button type="button" id="clear-api-key-btn" class="btn">Clear key</button>
|
|
491
505
|
</div>
|
|
506
|
+
<div class="inline-link">
|
|
507
|
+
<a href="https://poke.com/kitchen/api-keys" target="_blank" rel="noopener noreferrer">Get an API key from Poke Kitchen</a>
|
|
508
|
+
</div>
|
|
492
509
|
<div class="mini-status" id="api-key-status"></div>
|
|
493
510
|
</section>
|
|
494
511
|
|