@crewx/chromex 0.1.0-rc.179 → 0.1.0-rc.180
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 +1 -1
- package/dist/cli.js +3 -178
- package/dist/src/engine.d.ts +1 -1
- package/dist/src/engine.js +2 -288
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.js +1 -3
- package/package.json +2 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/src/engine.d.ts.map +0 -1
- package/dist/src/engine.js.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js.map +0 -1
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,57 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.main = main;
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const crewx_api_credential_1 = require("@crewx/shared/crewx-api-credential");
|
|
41
|
-
const engine_js_1 = require("./src/engine.js");
|
|
42
|
-
let PKG_VERSION = 'unknown';
|
|
43
|
-
try {
|
|
44
|
-
const _pkgPath = fs.existsSync(path.join(__dirname, 'package.json'))
|
|
45
|
-
? path.join(__dirname, 'package.json')
|
|
46
|
-
: path.join(__dirname, '..', 'package.json');
|
|
47
|
-
const _pkg = JSON.parse(fs.readFileSync(_pkgPath, 'utf-8'));
|
|
48
|
-
if (_pkg?.version)
|
|
49
|
-
PKG_VERSION = String(_pkg.version);
|
|
50
|
-
}
|
|
51
|
-
catch { }
|
|
52
|
-
function printUsage() {
|
|
53
|
-
console.log(`
|
|
54
|
-
@crewx/chromex@${PKG_VERSION} - Chrome X browser tools CLI
|
|
2
|
+
"use strict";var v=exports&&exports.__createBinding||(Object.create?(function(n,t,r,e){if(e===void 0)e=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(n,e,s)}):(function(n,t,r,e){if(e===void 0)e=r;n[e]=t[r]}));var x=exports&&exports.__setModuleDefault||(Object.create?(function(n,t){Object.defineProperty(n,"default",{enumerable:true,value:t})}):function(n,t){n["default"]=t});var p=exports&&exports.__importStar||(function(){var n=function(t){n=Object.getOwnPropertyNames||function(r){var e=[];for(var s in r)if(Object.prototype.hasOwnProperty.call(r,s))e[e.length]=s;return e};return n(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null){for(var e=n(t),s=0;s<e.length;s++)if(e[s]!=="default")v(r,t,e[s])}x(r,t);return r}})();Object.defineProperty(exports,"__esModule",{value:true});exports.main=g;const l=p(require("fs"));const d=p(require("path"));const w=require("@crewx/shared/crewx-api-credential");const y=require("./src/engine.js");let f="unknown";try{const n=l.existsSync(d.join(__dirname,"package.json"))?d.join(__dirname,"package.json"):d.join(__dirname,"..","package.json");const t=JSON.parse(l.readFileSync(n,"utf-8"));if(t?.version)f=String(t.version)}catch{}function h(){console.log(`
|
|
3
|
+
@crewx/chromex@${f} - Chrome X browser tools CLI
|
|
55
4
|
|
|
56
5
|
Usage:
|
|
57
6
|
chromex <command> [options]
|
|
@@ -86,128 +35,4 @@ Environment variables:
|
|
|
86
35
|
CREWX_AGENT_ID Agent ID
|
|
87
36
|
CREWX_ENDPOINT Default server URL
|
|
88
37
|
CREWX_API_TOKEN Explicit server auth token override
|
|
89
|
-
`);
|
|
90
|
-
}
|
|
91
|
-
function showDetailedUsage() {
|
|
92
|
-
const skillMd = path.join(__dirname, '..', 'SKILL.md');
|
|
93
|
-
if (fs.existsSync(skillMd)) {
|
|
94
|
-
process.stdout.write(fs.readFileSync(skillMd, 'utf-8'));
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
printUsage();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
const BOOLEAN_FLAGS = new Set(['help', 'version']);
|
|
101
|
-
function parseArgs(args) {
|
|
102
|
-
const result = { positional: [], options: {} };
|
|
103
|
-
for (let i = 0; i < args.length; i++) {
|
|
104
|
-
const arg = args[i];
|
|
105
|
-
if (arg === '-h') {
|
|
106
|
-
result.options['help'] = true;
|
|
107
|
-
}
|
|
108
|
-
else if (arg.startsWith('--')) {
|
|
109
|
-
const eqIdx = arg.indexOf('=');
|
|
110
|
-
if (eqIdx !== -1) {
|
|
111
|
-
result.options[arg.slice(2, eqIdx)] = arg.slice(eqIdx + 1);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
const key = arg.slice(2);
|
|
115
|
-
if (!BOOLEAN_FLAGS.has(key)) {
|
|
116
|
-
const next = args[i + 1];
|
|
117
|
-
if (next !== undefined && !next.startsWith('--') && next !== '-h') {
|
|
118
|
-
result.options[key] = next;
|
|
119
|
-
i++;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
result.options[key] = true;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
result.options[key] = true;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
result.positional.push(arg);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return result;
|
|
135
|
-
}
|
|
136
|
-
async function main(inputArgs) {
|
|
137
|
-
const args = inputArgs ?? process.argv.slice(2);
|
|
138
|
-
const { positional, options } = parseArgs(args);
|
|
139
|
-
const [command] = positional;
|
|
140
|
-
if (options['version']) {
|
|
141
|
-
console.log(PKG_VERSION);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (command === 'usage') {
|
|
145
|
-
showDetailedUsage();
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (!command || command === 'help' || options['help']) {
|
|
149
|
-
printUsage();
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const engine = new engine_js_1.ChromexEngine();
|
|
153
|
-
switch (command) {
|
|
154
|
-
case 'connect': {
|
|
155
|
-
const scope = typeof options['scope'] === 'string' ? options['scope'] : undefined;
|
|
156
|
-
const expiresRaw = options['expires'];
|
|
157
|
-
const validExpires = ['30d', '90d', '1y'];
|
|
158
|
-
const expires = typeof expiresRaw === 'string' && validExpires.includes(expiresRaw)
|
|
159
|
-
? expiresRaw
|
|
160
|
-
: undefined;
|
|
161
|
-
const name = typeof options['name'] === 'string' ? options['name'] : undefined;
|
|
162
|
-
const endpoint = typeof options['endpoint'] === 'string' ? options['endpoint'] : undefined;
|
|
163
|
-
const agent = typeof options['agent'] === 'string' ? options['agent'] : undefined;
|
|
164
|
-
await engine.connect({ scope, expires, name, endpoint, agent });
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
case 'status':
|
|
168
|
-
await engine.status();
|
|
169
|
-
break;
|
|
170
|
-
case 'disconnect':
|
|
171
|
-
await engine.disconnect();
|
|
172
|
-
break;
|
|
173
|
-
case 'read': {
|
|
174
|
-
const tabId = options['tab'];
|
|
175
|
-
const step = options['step'];
|
|
176
|
-
const selector = options['selector'];
|
|
177
|
-
const callArgs = {};
|
|
178
|
-
if (tabId !== undefined)
|
|
179
|
-
callArgs['tabId'] = Number(tabId);
|
|
180
|
-
if (step !== undefined)
|
|
181
|
-
callArgs['step'] = Number(step);
|
|
182
|
-
if (typeof selector === 'string')
|
|
183
|
-
callArgs['selector'] = selector;
|
|
184
|
-
await engine.call('page_read_text', callArgs);
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
case 'screenshot': {
|
|
188
|
-
const tabId = options['tab'];
|
|
189
|
-
const output = options['output'];
|
|
190
|
-
const callArgs = {};
|
|
191
|
-
if (tabId !== undefined)
|
|
192
|
-
callArgs['tabId'] = Number(tabId);
|
|
193
|
-
if (typeof output === 'string')
|
|
194
|
-
callArgs['output'] = output;
|
|
195
|
-
await engine.call('page_screenshot', callArgs);
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
case 'tabs':
|
|
199
|
-
await engine.call('listTabs', {});
|
|
200
|
-
break;
|
|
201
|
-
default:
|
|
202
|
-
console.error(`Unknown command: ${command}`);
|
|
203
|
-
console.error('Run "chromex --help" for usage.');
|
|
204
|
-
process.exit(1);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (require.main === module) {
|
|
208
|
-
main().catch((e) => {
|
|
209
|
-
console.error(e.message);
|
|
210
|
-
process.exit(e instanceof crewx_api_credential_1.CrewxCredentialError ? e.exitCode : 1);
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=cli.js.map
|
|
38
|
+
`)}function O(){const n=d.join(__dirname,"..","SKILL.md");if(l.existsSync(n)){process.stdout.write(l.readFileSync(n,"utf-8"))}else{h()}}const I=new Set(["help","version"]);function S(n){const t={positional:[],options:{}};for(let r=0;r<n.length;r++){const e=n[r];if(e==="-h"){t.options["help"]=true}else if(e.startsWith("--")){const s=e.indexOf("=");if(s!==-1){t.options[e.slice(2,s)]=e.slice(s+1)}else{const a=e.slice(2);if(!I.has(a)){const o=n[r+1];if(o!==void 0&&!o.startsWith("--")&&o!=="-h"){t.options[a]=o;r++}else{t.options[a]=true}}else{t.options[a]=true}}}else{t.positional.push(e)}}return t}async function g(n){const t=n??process.argv.slice(2);const{positional:r,options:e}=S(t);const[s]=r;if(e["version"]){console.log(f);return}if(s==="usage"){O();return}if(!s||s==="help"||e["help"]){h();return}const a=new y.ChromexEngine;switch(s){case"connect":{const o=typeof e["scope"]==="string"?e["scope"]:void 0;const i=e["expires"];const c=["30d","90d","1y"];const u=typeof i==="string"&&c.includes(i)?i:void 0;const _=typeof e["name"]==="string"?e["name"]:void 0;const b=typeof e["endpoint"]==="string"?e["endpoint"]:void 0;const m=typeof e["agent"]==="string"?e["agent"]:void 0;await a.connect({scope:o,expires:u,name:_,endpoint:b,agent:m});break}case"status":await a.status();break;case"disconnect":await a.disconnect();break;case"read":{const o=e["tab"];const i=e["step"];const c=e["selector"];const u={};if(o!==void 0)u["tabId"]=Number(o);if(i!==void 0)u["step"]=Number(i);if(typeof c==="string")u["selector"]=c;await a.call("page_read_text",u);break}case"screenshot":{const o=e["tab"];const i=e["output"];const c={};if(o!==void 0)c["tabId"]=Number(o);if(typeof i==="string")c["output"]=i;await a.call("page_screenshot",c);break}case"tabs":await a.call("listTabs",{});break;default:console.error(`Unknown command: ${s}`);console.error('Run "chromex --help" for usage.');process.exit(1)}}if(require.main===module){g().catch(n=>{console.error(n.message);process.exit(n instanceof w.CrewxCredentialError?n.exitCode:1)})}
|
package/dist/src/engine.d.ts
CHANGED
package/dist/src/engine.js
CHANGED
|
@@ -1,288 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ChromexEngine = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const os = __importStar(require("os"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const crewx_api_credential_1 = require("@crewx/shared/crewx-api-credential");
|
|
41
|
-
const DEFAULT_ENDPOINT = 'http://localhost:8150';
|
|
42
|
-
const TOKEN_CACHE_FILE = path.join(os.homedir(), '.crewx', 'chromex-tokens.json');
|
|
43
|
-
const TOKEN_BUFFER_MS = 60000;
|
|
44
|
-
class ChromexEngine {
|
|
45
|
-
constructor(tokenPath) {
|
|
46
|
-
this.tokenPath = tokenPath ?? TOKEN_CACHE_FILE;
|
|
47
|
-
}
|
|
48
|
-
get agentId() {
|
|
49
|
-
return process.env['CREWX_AGENT_ID'] ?? 'unknown';
|
|
50
|
-
}
|
|
51
|
-
get defaultEndpoint() {
|
|
52
|
-
return process.env['CREWX_ENDPOINT'] ?? DEFAULT_ENDPOINT;
|
|
53
|
-
}
|
|
54
|
-
async connect(opts) {
|
|
55
|
-
const agentId = opts.agent ?? this.agentId;
|
|
56
|
-
const endpoint = opts.endpoint ?? this.defaultEndpoint;
|
|
57
|
-
const cache = this.loadTokenCache();
|
|
58
|
-
const existing = cache[agentId];
|
|
59
|
-
if (existing) {
|
|
60
|
-
if (existing.endpoint !== endpoint) {
|
|
61
|
-
console.warn(`Warning: saved endpoint (${existing.endpoint}) differs from the current endpoint (${endpoint}); reconnecting`);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const expiresAt = new Date(existing.expiresAt).getTime();
|
|
65
|
-
if (existing.mcpSessionId && expiresAt - Date.now() > TOKEN_BUFFER_MS) {
|
|
66
|
-
console.log(`Reusing existing token (expires: ${existing.expiresAt})`);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const scope = opts.scope === 'current' ? 'current' : 'all_tabs';
|
|
72
|
-
const expiresIn = opts.expires ?? '90d';
|
|
73
|
-
console.log(`Requesting Chrome X browser access... (waiting up to 60 seconds)`);
|
|
74
|
-
console.log(`Agent: ${agentId} | Scope: ${scope} | Expires: ${expiresIn}`);
|
|
75
|
-
console.log(`Click Allow in the Chrome popup.`);
|
|
76
|
-
const body = { agentId, scope, expiresIn };
|
|
77
|
-
if (opts.name)
|
|
78
|
-
body['tokenName'] = opts.name;
|
|
79
|
-
const credential = (0, crewx_api_credential_1.resolveCrewxApiCredential)('chromex-negotiate');
|
|
80
|
-
const headers = {
|
|
81
|
-
'Content-Type': 'application/json',
|
|
82
|
-
...(0, crewx_api_credential_1.authorizationHeader)(credential),
|
|
83
|
-
};
|
|
84
|
-
let res;
|
|
85
|
-
try {
|
|
86
|
-
res = await fetch(`${endpoint}/api/chromex/negotiate`, {
|
|
87
|
-
method: 'POST',
|
|
88
|
-
headers,
|
|
89
|
-
body: JSON.stringify(body),
|
|
90
|
-
signal: AbortSignal.timeout(65000),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
95
|
-
throw new Error(`Server connection failed: ${msg}\nCheck that the server is running (${endpoint})`);
|
|
96
|
-
}
|
|
97
|
-
if (!res.ok) {
|
|
98
|
-
const data = await res.json().catch(() => ({}));
|
|
99
|
-
const reason = data['reason'] ?? '';
|
|
100
|
-
if (res.status === 403 && reason === 'user_denied') {
|
|
101
|
-
throw new Error('Connection denied: the user rejected browser access');
|
|
102
|
-
}
|
|
103
|
-
if (res.status === 403 && reason === 'restricted_tab') {
|
|
104
|
-
throw new Error('Chrome X connection denied: the active tab is a restricted page such as chrome://, an extension page, about:, or data:. Select a regular web page tab and try again.');
|
|
105
|
-
}
|
|
106
|
-
if (res.status === 403 && reason === 'content_script_not_connected') {
|
|
107
|
-
throw new Error('Chrome X connection denied: no readable page channel is connected. Open or reload a regular web page and try again.');
|
|
108
|
-
}
|
|
109
|
-
if (res.status === 403 && reason === 'no_browser_tab_available') {
|
|
110
|
-
throw new Error('Chrome X connection denied: no browser tab is available for the approval popup. Open a regular web page tab and try again.');
|
|
111
|
-
}
|
|
112
|
-
if (res.status === 403 && reason === 'invalid_scope') {
|
|
113
|
-
throw new Error('Chrome X connection denied: the requested scope is invalid.');
|
|
114
|
-
}
|
|
115
|
-
if (res.status === 408 || reason === 'timeout') {
|
|
116
|
-
throw new Error('Connection timed out: no response within 60 seconds');
|
|
117
|
-
}
|
|
118
|
-
if (res.status === 503 || reason === 'no_browser_connected') {
|
|
119
|
-
throw new Error([
|
|
120
|
-
'Chrome X is not connected: no browser MCP session was found.',
|
|
121
|
-
'Open the CrewX extension side panel in Chrome, confirm MCP status is connected, then try again.',
|
|
122
|
-
`Server: ${endpoint}`,
|
|
123
|
-
].join('\n'));
|
|
124
|
-
}
|
|
125
|
-
throw new Error(`Negotiation failed (${res.status}): ${JSON.stringify(data)}`);
|
|
126
|
-
}
|
|
127
|
-
const result = await res.json();
|
|
128
|
-
cache[agentId] = {
|
|
129
|
-
token: result.token,
|
|
130
|
-
tokenId: result.tokenId,
|
|
131
|
-
jti: result.jti,
|
|
132
|
-
expiresAt: result.expiresAt,
|
|
133
|
-
scope: result.scope,
|
|
134
|
-
endpoint,
|
|
135
|
-
mcpSessionId: result.mcpSessionId,
|
|
136
|
-
};
|
|
137
|
-
this.saveTokenCache(cache);
|
|
138
|
-
console.log(`Connection successful.`);
|
|
139
|
-
console.log(` Expires: ${result.expiresAt}`);
|
|
140
|
-
console.log(` Scope: ${result.scope}`);
|
|
141
|
-
console.log(` Token ID: ${result.jti}`);
|
|
142
|
-
}
|
|
143
|
-
async call(tool, args) {
|
|
144
|
-
const agentId = this.agentId;
|
|
145
|
-
const cached = this.loadToken(agentId);
|
|
146
|
-
if (!cached) {
|
|
147
|
-
throw new Error('No token found. Run: crewx chromex connect');
|
|
148
|
-
}
|
|
149
|
-
let res;
|
|
150
|
-
try {
|
|
151
|
-
const requestId = `chromex-${Date.now()}`;
|
|
152
|
-
const { name, arguments: mcpArguments } = this.toMcpToolCall(tool, args);
|
|
153
|
-
res = await fetch(`${cached.endpoint}/mcp`, {
|
|
154
|
-
method: 'POST',
|
|
155
|
-
headers: {
|
|
156
|
-
'Content-Type': 'application/json',
|
|
157
|
-
Authorization: `Bearer ${cached.token}`,
|
|
158
|
-
'Mcp-Session-Id': cached.mcpSessionId,
|
|
159
|
-
},
|
|
160
|
-
body: JSON.stringify({
|
|
161
|
-
jsonrpc: '2.0',
|
|
162
|
-
id: requestId,
|
|
163
|
-
method: 'tools/call',
|
|
164
|
-
params: { name, arguments: mcpArguments },
|
|
165
|
-
}),
|
|
166
|
-
signal: AbortSignal.timeout(30000),
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
171
|
-
throw new Error(`Server connection failed: ${msg}`);
|
|
172
|
-
}
|
|
173
|
-
if (!res.ok) {
|
|
174
|
-
const data = await res.json().catch(() => ({}));
|
|
175
|
-
if (res.status === 401) {
|
|
176
|
-
throw new Error('Token expired. Run: crewx chromex connect');
|
|
177
|
-
}
|
|
178
|
-
if (res.status === 403) {
|
|
179
|
-
throw new Error(`Access denied (403): ${JSON.stringify(data)}`);
|
|
180
|
-
}
|
|
181
|
-
throw new Error(`MCP tools/call failed (${res.status}): ${JSON.stringify(data)}`);
|
|
182
|
-
}
|
|
183
|
-
const payload = await res.json();
|
|
184
|
-
if (payload.error) {
|
|
185
|
-
throw new Error(`MCP tools/call error (${payload.error.code ?? 'unknown'}): ${payload.error.message ?? JSON.stringify(payload.error)}`);
|
|
186
|
-
}
|
|
187
|
-
console.log(JSON.stringify(payload.result ?? payload, null, 2));
|
|
188
|
-
}
|
|
189
|
-
async status() {
|
|
190
|
-
const agentId = this.agentId;
|
|
191
|
-
const cached = this.loadToken(agentId);
|
|
192
|
-
if (!cached) {
|
|
193
|
-
console.log('No connected session. Run: crewx chromex connect');
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
const expiresAt = new Date(cached.expiresAt);
|
|
197
|
-
const now = Date.now();
|
|
198
|
-
const diffMs = expiresAt.getTime() - now;
|
|
199
|
-
if (diffMs <= 0) {
|
|
200
|
-
console.log(`Session expired (${cached.expiresAt})`);
|
|
201
|
-
console.log('Reconnect with: crewx chromex connect');
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
205
|
-
const diffHours = Math.floor((diffMs % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
206
|
-
const remaining = diffDays > 0 ? `${diffDays}d ${diffHours}h` : `${diffHours}h`;
|
|
207
|
-
console.log(`Agent: ${agentId}`);
|
|
208
|
-
console.log(`Scope: ${cached.scope}`);
|
|
209
|
-
console.log(`Expires: ${cached.expiresAt} (${remaining} remaining)`);
|
|
210
|
-
console.log(`Token ID: ${cached.jti}`);
|
|
211
|
-
console.log(`Server: ${cached.endpoint}`);
|
|
212
|
-
}
|
|
213
|
-
async disconnect() {
|
|
214
|
-
const agentId = this.agentId;
|
|
215
|
-
const cached = this.loadToken(agentId);
|
|
216
|
-
if (!cached) {
|
|
217
|
-
console.log('No connected session');
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
try {
|
|
221
|
-
const res = await fetch(`${cached.endpoint}/api/chromex/session`, {
|
|
222
|
-
method: 'DELETE',
|
|
223
|
-
headers: {
|
|
224
|
-
'Content-Type': 'application/json',
|
|
225
|
-
Authorization: `Bearer ${cached.token}`,
|
|
226
|
-
},
|
|
227
|
-
body: JSON.stringify({ tokenId: cached.tokenId }),
|
|
228
|
-
signal: AbortSignal.timeout(10000),
|
|
229
|
-
});
|
|
230
|
-
if (!res.ok) {
|
|
231
|
-
console.warn(`Server revoke failed (${res.status}); deleting the local token only`);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
catch {
|
|
235
|
-
console.warn('Server connection failed; deleting the local token only');
|
|
236
|
-
}
|
|
237
|
-
const cache = this.loadTokenCache();
|
|
238
|
-
delete cache[agentId];
|
|
239
|
-
this.saveTokenCache(cache);
|
|
240
|
-
console.log('Disconnected');
|
|
241
|
-
}
|
|
242
|
-
loadToken(agentId) {
|
|
243
|
-
const cache = this.loadTokenCache();
|
|
244
|
-
return cache[agentId];
|
|
245
|
-
}
|
|
246
|
-
toMcpToolCall(tool, args) {
|
|
247
|
-
if (tool === 'listTabs') {
|
|
248
|
-
return { name: 'listTabs', arguments: args };
|
|
249
|
-
}
|
|
250
|
-
const tabId = args['tabId'];
|
|
251
|
-
if (typeof tabId !== 'number' || Number.isNaN(tabId)) {
|
|
252
|
-
throw new Error(`${tool} requires --tab=<tabId>`);
|
|
253
|
-
}
|
|
254
|
-
const { tabId: _tabId, ...toolArgs } = args;
|
|
255
|
-
return {
|
|
256
|
-
name: 'callBrowser',
|
|
257
|
-
arguments: {
|
|
258
|
-
tabId,
|
|
259
|
-
tool,
|
|
260
|
-
args: toolArgs,
|
|
261
|
-
},
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
loadTokenCache() {
|
|
265
|
-
if (!fs.existsSync(this.tokenPath))
|
|
266
|
-
return {};
|
|
267
|
-
try {
|
|
268
|
-
const content = fs.readFileSync(this.tokenPath, 'utf-8');
|
|
269
|
-
return JSON.parse(content);
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
console.error('Failed to parse chromex-tokens.json. Reconnect with: crewx chromex connect');
|
|
273
|
-
return {};
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
saveTokenCache(cache) {
|
|
277
|
-
const dir = path.dirname(this.tokenPath);
|
|
278
|
-
if (!fs.existsSync(dir)) {
|
|
279
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
280
|
-
}
|
|
281
|
-
const tmpPath = `${this.tokenPath}.tmp.${Date.now()}`;
|
|
282
|
-
fs.writeFileSync(tmpPath, JSON.stringify(cache, null, 2), { mode: 0o600 });
|
|
283
|
-
fs.renameSync(tmpPath, this.tokenPath);
|
|
284
|
-
fs.chmodSync(this.tokenPath, 0o600);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
exports.ChromexEngine = ChromexEngine;
|
|
288
|
-
//# sourceMappingURL=engine.js.map
|
|
1
|
+
"use strict";var y=exports&&exports.__createBinding||(Object.create?(function(i,e,n,t){if(t===void 0)t=n;var o=Object.getOwnPropertyDescriptor(e,n);if(!o||("get"in o?!e.__esModule:o.writable||o.configurable)){o={enumerable:true,get:function(){return e[n]}}}Object.defineProperty(i,t,o)}):(function(i,e,n,t){if(t===void 0)t=n;i[t]=e[n]}));var S=exports&&exports.__setModuleDefault||(Object.create?(function(i,e){Object.defineProperty(i,"default",{enumerable:true,value:e})}):function(i,e){i["default"]=e});var p=exports&&exports.__importStar||(function(){var i=function(e){i=Object.getOwnPropertyNames||function(n){var t=[];for(var o in n)if(Object.prototype.hasOwnProperty.call(n,o))t[t.length]=o;return t};return i(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null){for(var t=i(e),o=0;o<t.length;o++)if(t[o]!=="default")y(n,e,t[o])}S(n,e);return n}})();Object.defineProperty(exports,"__esModule",{value:true});exports.ChromexEngine=void 0;const g=p(require("fs"));const _=p(require("os"));const w=p(require("path"));const m=require("@crewx/shared/crewx-api-credential");const x="http://localhost:8150";const E=w.join(_.homedir(),".crewx","chromex-tokens.json");const $=6e4;class C{constructor(e){this.tokenPath=e??E}get agentId(){return process.env["CREWX_AGENT_ID"]??"unknown"}get defaultEndpoint(){return process.env["CREWX_ENDPOINT"]??x}async connect(e){const n=e.agent??this.agentId;const t=e.endpoint??this.defaultEndpoint;const o=this.loadTokenCache();const r=o[n];if(r){if(r.endpoint!==t){console.warn(`Warning: saved endpoint (${r.endpoint}) differs from the current endpoint (${t}); reconnecting`)}else{const u=new Date(r.expiresAt).getTime();if(r.mcpSessionId&&u-Date.now()>$){console.log(`Reusing existing token (expires: ${r.expiresAt})`);return}}}const c=e.scope==="current"?"current":"all_tabs";const s=e.expires??"90d";console.log(`Requesting Chrome X browser access... (waiting up to 60 seconds)`);console.log(`Agent: ${n} | Scope: ${c} | Expires: ${s}`);console.log(`Click Allow in the Chrome popup.`);const h={agentId:n,scope:c,expiresIn:s};if(e.name)h["tokenName"]=e.name;const f=(0,m.resolveCrewxApiCredential)("chromex-negotiate");const b={"Content-Type":"application/json",...(0,m.authorizationHeader)(f)};let a;try{a=await fetch(`${t}/api/chromex/negotiate`,{method:"POST",headers:b,body:JSON.stringify(h),signal:AbortSignal.timeout(65e3)})}catch(u){const d=u instanceof Error?u.message:String(u);throw new Error(`Server connection failed: ${d}
|
|
2
|
+
Check that the server is running (${t})`)}if(!a.ok){const u=await a.json().catch(()=>({}));const d=u["reason"]??"";if(a.status===403&&d==="user_denied"){throw new Error("Connection denied: the user rejected browser access")}if(a.status===403&&d==="restricted_tab"){throw new Error("Chrome X connection denied: the active tab is a restricted page such as chrome://, an extension page, about:, or data:. Select a regular web page tab and try again.")}if(a.status===403&&d==="content_script_not_connected"){throw new Error("Chrome X connection denied: no readable page channel is connected. Open or reload a regular web page and try again.")}if(a.status===403&&d==="no_browser_tab_available"){throw new Error("Chrome X connection denied: no browser tab is available for the approval popup. Open a regular web page tab and try again.")}if(a.status===403&&d==="invalid_scope"){throw new Error("Chrome X connection denied: the requested scope is invalid.")}if(a.status===408||d==="timeout"){throw new Error("Connection timed out: no response within 60 seconds")}if(a.status===503||d==="no_browser_connected"){throw new Error(["Chrome X is not connected: no browser MCP session was found.","Open the CrewX extension side panel in Chrome, confirm MCP status is connected, then try again.",`Server: ${t}`].join("\n"))}throw new Error(`Negotiation failed (${a.status}): ${JSON.stringify(u)}`)}const l=await a.json();o[n]={token:l.token,tokenId:l.tokenId,jti:l.jti,expiresAt:l.expiresAt,scope:l.scope,endpoint:t,mcpSessionId:l.mcpSessionId};this.saveTokenCache(o);console.log(`Connection successful.`);console.log(` Expires: ${l.expiresAt}`);console.log(` Scope: ${l.scope}`);console.log(` Token ID: ${l.jti}`)}async call(e,n){const t=this.agentId;const o=this.loadToken(t);if(!o){throw new Error("No token found. Run: crewx chromex connect")}let r;try{const s=`chromex-${Date.now()}`;const{name:h,arguments:f}=this.toMcpToolCall(e,n);r=await fetch(`${o.endpoint}/mcp`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${o.token}`,"Mcp-Session-Id":o.mcpSessionId},body:JSON.stringify({jsonrpc:"2.0",id:s,method:"tools/call",params:{name:h,arguments:f}}),signal:AbortSignal.timeout(3e4)})}catch(s){const h=s instanceof Error?s.message:String(s);throw new Error(`Server connection failed: ${h}`)}if(!r.ok){const s=await r.json().catch(()=>({}));if(r.status===401){throw new Error("Token expired. Run: crewx chromex connect")}if(r.status===403){throw new Error(`Access denied (403): ${JSON.stringify(s)}`)}throw new Error(`MCP tools/call failed (${r.status}): ${JSON.stringify(s)}`)}const c=await r.json();if(c.error){throw new Error(`MCP tools/call error (${c.error.code??"unknown"}): ${c.error.message??JSON.stringify(c.error)}`)}console.log(JSON.stringify(c.result??c,null,2))}async status(){const e=this.agentId;const n=this.loadToken(e);if(!n){console.log("No connected session. Run: crewx chromex connect");return}const t=new Date(n.expiresAt);const o=Date.now();const r=t.getTime()-o;if(r<=0){console.log(`Session expired (${n.expiresAt})`);console.log("Reconnect with: crewx chromex connect");return}const c=Math.floor(r/(1e3*60*60*24));const s=Math.floor(r%(1e3*60*60*24)/(1e3*60*60));const h=c>0?`${c}d ${s}h`:`${s}h`;console.log(`Agent: ${e}`);console.log(`Scope: ${n.scope}`);console.log(`Expires: ${n.expiresAt} (${h} remaining)`);console.log(`Token ID: ${n.jti}`);console.log(`Server: ${n.endpoint}`)}async disconnect(){const e=this.agentId;const n=this.loadToken(e);if(!n){console.log("No connected session");return}try{const o=await fetch(`${n.endpoint}/api/chromex/session`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n.token}`},body:JSON.stringify({tokenId:n.tokenId}),signal:AbortSignal.timeout(1e4)});if(!o.ok){console.warn(`Server revoke failed (${o.status}); deleting the local token only`)}}catch{console.warn("Server connection failed; deleting the local token only")}const t=this.loadTokenCache();delete t[e];this.saveTokenCache(t);console.log("Disconnected")}loadToken(e){const n=this.loadTokenCache();return n[e]}toMcpToolCall(e,n){if(e==="listTabs"){return{name:"listTabs",arguments:n}}const t=n["tabId"];if(typeof t!=="number"||Number.isNaN(t)){throw new Error(`${e} requires --tab=<tabId>`)}const{tabId:o,...r}=n;return{name:"callBrowser",arguments:{tabId:t,tool:e,args:r}}}loadTokenCache(){if(!g.existsSync(this.tokenPath))return{};try{const e=g.readFileSync(this.tokenPath,"utf-8");return JSON.parse(e)}catch{console.error("Failed to parse chromex-tokens.json. Reconnect with: crewx chromex connect");return{}}}saveTokenCache(e){const n=w.dirname(this.tokenPath);if(!g.existsSync(n)){g.mkdirSync(n,{recursive:true})}const t=`${this.tokenPath}.tmp.${Date.now()}`;g.writeFileSync(t,JSON.stringify(e,null,2),{mode:384});g.renameSync(t,this.tokenPath);g.chmodSync(this.tokenPath,384)}}exports.ChromexEngine=C;
|
package/dist/src/types.d.ts
CHANGED
package/dist/src/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewx/chromex",
|
|
3
|
-
"version": "0.1.0-rc.
|
|
3
|
+
"version": "0.1.0-rc.180",
|
|
4
4
|
"description": "Chrome X browser tool CLI for CrewX agents",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/src/engine.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
],
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@crewx/shared": "0.0.6-rc.
|
|
36
|
+
"@crewx/shared": "0.0.6-rc.62"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^20.0.0",
|
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAuGA,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4E9D"}
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/engine.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,YAAY,CAAC;AAO1E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,SAAS,CAAC,EAAE,MAAM;IAI9B,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,eAAe,GAE1B;IAEK,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4G5C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCjC,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;CAWvB"}
|
package/dist/src/engine.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC"}
|
package/dist/src/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|