gm-skill 2.0.1857 → 2.0.1859
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/bin/plugkit.version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.847
|
package/bin/plugkit.wasm.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
457e35906ffdd1f37790aef7fe77cf06a4b0fe6477d57d16546b5e9b008617df plugkit.wasm
|
package/gm-plugkit/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1859",
|
|
4
4
|
"description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -1278,6 +1278,29 @@ function spawnChromiumOnce(browserBin, profileDir, port, headless, noSandbox, cw
|
|
|
1278
1278
|
return { pid: child.pid, chromeLogPath };
|
|
1279
1279
|
}
|
|
1280
1280
|
|
|
1281
|
+
const BROWSER_AUTODETECT_PORTS = [3000, 5173, 8080, 4200, 5000, 8000];
|
|
1282
|
+
|
|
1283
|
+
function probeLocalHttpPort(port, timeoutMs) {
|
|
1284
|
+
const r = spawnSync(process.execPath, ['-e', `
|
|
1285
|
+
const http = require('http');
|
|
1286
|
+
const req = http.request({ host: '127.0.0.1', port: ${port}, path: '/', method: 'HEAD', timeout: ${timeoutMs || 400} }, (res) => {
|
|
1287
|
+
res.resume();
|
|
1288
|
+
process.exit(0);
|
|
1289
|
+
});
|
|
1290
|
+
req.on('error', () => process.exit(1));
|
|
1291
|
+
req.on('timeout', () => { req.destroy(); process.exit(1); });
|
|
1292
|
+
req.end();
|
|
1293
|
+
`], { timeout: (timeoutMs || 400) + 300, windowsHide: true });
|
|
1294
|
+
return r.status === 0;
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
function autodetectLocalDevServerUrl() {
|
|
1298
|
+
for (const port of BROWSER_AUTODETECT_PORTS) {
|
|
1299
|
+
if (probeLocalHttpPort(port, 400)) return `http://127.0.0.1:${port}/`;
|
|
1300
|
+
}
|
|
1301
|
+
return null;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1281
1304
|
function resolveBrowserStartUrl(cwd) {
|
|
1282
1305
|
if (process.env.GM_BROWSER_START_URL) return process.env.GM_BROWSER_START_URL;
|
|
1283
1306
|
try {
|
|
@@ -1286,6 +1309,12 @@ function resolveBrowserStartUrl(cwd) {
|
|
|
1286
1309
|
const url = fs.readFileSync(cfgPath, 'utf-8').trim();
|
|
1287
1310
|
if (url) return url;
|
|
1288
1311
|
} catch (_) {}
|
|
1312
|
+
const detected = autodetectLocalDevServerUrl();
|
|
1313
|
+
if (detected) {
|
|
1314
|
+
try { logEvent('plugkit', 'browser.start-url-autodetected', { url: detected }); } catch (_) {}
|
|
1315
|
+
return detected;
|
|
1316
|
+
}
|
|
1317
|
+
try { logEvent('plugkit', 'browser.start-url-fallback-blank', { reason: 'no GM_BROWSER_START_URL, no .gm/browser-target-url, no local dev server detected on common ports' }); } catch (_) {}
|
|
1289
1318
|
return 'about:blank';
|
|
1290
1319
|
}
|
|
1291
1320
|
|
|
@@ -1461,7 +1490,7 @@ function resolveExistingBrowserEntry(cwd, claudeSessionId, pw, portsFile, sessio
|
|
|
1461
1490
|
sessions[claudeSessionId] = [sid];
|
|
1462
1491
|
writeJsonFile(portsFile, ports);
|
|
1463
1492
|
writeJsonFile(sessionsFile, sessions);
|
|
1464
|
-
logEvent('plugkit', 'browser.attached', { pwSessionId: sid, reused: true });
|
|
1493
|
+
logEvent('plugkit', 'browser.attached', { pwSessionId: sid, reused: true, pid: existing.pid, same_chromium: true });
|
|
1465
1494
|
return sid;
|
|
1466
1495
|
}
|
|
1467
1496
|
}
|
|
@@ -1526,7 +1555,7 @@ function getOrCreateBrowserSession(cwd, claudeSessionId, pw) {
|
|
|
1526
1555
|
const sid = a && a.status === 0 ? parseSessionId(a.stdout || '') : null;
|
|
1527
1556
|
if (sid) {
|
|
1528
1557
|
checkSessionNavigatedAway(winner.port, claudeSessionId);
|
|
1529
|
-
logEvent('plugkit', 'browser.attached', { pwSessionId: sid, reused: true, via: 'spawn-lock-wait' });
|
|
1558
|
+
logEvent('plugkit', 'browser.attached', { pwSessionId: sid, reused: true, via: 'spawn-lock-wait', pid: winner.pid, same_chromium: true });
|
|
1530
1559
|
return sid;
|
|
1531
1560
|
}
|
|
1532
1561
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.847
|
package/gm.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1859",
|
|
4
4
|
"description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
|
|
5
5
|
"author": "AnEntrypoint",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
"publishConfig": {
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
|
-
"plugkitVersion": "0.1.
|
|
20
|
+
"plugkitVersion": "0.1.847"
|
|
21
21
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1859",
|
|
4
4
|
"description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
|
|
5
5
|
"author": "AnEntrypoint",
|
|
6
6
|
"license": "MIT",
|