blun-king-cli 5.3.2 → 5.3.3
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/blun-cli.js +37 -0
- package/browser-controller.js +3 -1
- package/package.json +1 -1
package/blun-cli.js
CHANGED
|
@@ -1778,6 +1778,7 @@ async function cmdBrowser(args) {
|
|
|
1778
1778
|
var parts = (args || "").split(/\s+/);
|
|
1779
1779
|
var action = parts[0] || "help";
|
|
1780
1780
|
|
|
1781
|
+
try {
|
|
1781
1782
|
if (action === "open" && parts[1]) {
|
|
1782
1783
|
printInfo("Opening " + parts[1] + "...");
|
|
1783
1784
|
var snap = await browser.open(parts[1]);
|
|
@@ -1813,6 +1814,7 @@ async function cmdBrowser(args) {
|
|
|
1813
1814
|
console.log(" /browser close Close browser");
|
|
1814
1815
|
console.log("");
|
|
1815
1816
|
}
|
|
1817
|
+
} catch(browserErr) { printError("Browser error: " + browserErr.message); }
|
|
1816
1818
|
}
|
|
1817
1819
|
|
|
1818
1820
|
// ══════════════════════════════════════════════════
|
|
@@ -3062,7 +3064,41 @@ async function main() {
|
|
|
3062
3064
|
await handleCommand(input);
|
|
3063
3065
|
runHook("post", input.split(/\s+/)[0].slice(1));
|
|
3064
3066
|
} else {
|
|
3067
|
+
// Browser intent — natural language with URL → local Playwright
|
|
3068
|
+
var urlMatch = input.match(/(https?:\/\/\S+)/i);
|
|
3069
|
+
var browserWords = /\b(öffne|open|schau|zeig|geh auf|navigate|browse|screenshot|bildschirmfoto|aufrufen|besuch|check|prüf|analysier)\b/i;
|
|
3070
|
+
if (urlMatch && browserWords.test(input)) {
|
|
3071
|
+
var browserUrl = urlMatch[1];
|
|
3072
|
+
try {
|
|
3073
|
+
var bc = require(path.join(__dirname, "browser-controller"));
|
|
3074
|
+
if (/screenshot|bildschirmfoto/i.test(input)) {
|
|
3075
|
+
printInfo("Screenshot: " + browserUrl);
|
|
3076
|
+
var snap = await bc.open(browserUrl);
|
|
3077
|
+
var shotFile = path.join(config.workdir, "screenshot-" + Date.now() + ".png");
|
|
3078
|
+
await bc.screenshot(shotFile);
|
|
3079
|
+
printSuccess("Screenshot gespeichert: " + shotFile);
|
|
3080
|
+
console.log(" " + C.gray + "Title: " + C.reset + snap.title);
|
|
3081
|
+
} else {
|
|
3082
|
+
printInfo("Öffne " + browserUrl + "...");
|
|
3083
|
+
var snap = await bc.open(browserUrl);
|
|
3084
|
+
printSuccess(snap.title);
|
|
3085
|
+
console.log(" " + C.gray + "URL: " + C.reset + snap.url);
|
|
3086
|
+
if (snap.text) {
|
|
3087
|
+
console.log(C.dim + " " + BOX.h.repeat(40) + C.reset);
|
|
3088
|
+
var preview = snap.text.slice(0, 500).replace(/\n{3,}/g, "\n\n");
|
|
3089
|
+
console.log(" " + preview);
|
|
3090
|
+
}
|
|
3091
|
+
console.log("");
|
|
3092
|
+
// Send page context to chat so BLUN King can discuss it
|
|
3093
|
+
await sendChat(input + "\n\n[Browser-Kontext: " + snap.title + " — " + snap.text.slice(0, 1000) + "]");
|
|
3094
|
+
}
|
|
3095
|
+
} catch(bcErr) {
|
|
3096
|
+
// Playwright not available, send to chat normally
|
|
3097
|
+
await sendChat(input);
|
|
3098
|
+
}
|
|
3099
|
+
}
|
|
3065
3100
|
// Intent detection — natural language → command
|
|
3101
|
+
else {
|
|
3066
3102
|
var detected = detectIntent(input);
|
|
3067
3103
|
if (detected) {
|
|
3068
3104
|
printInfo("→ " + detected);
|
|
@@ -3084,6 +3120,7 @@ async function main() {
|
|
|
3084
3120
|
} else {
|
|
3085
3121
|
await sendChat(input);
|
|
3086
3122
|
}
|
|
3123
|
+
}
|
|
3087
3124
|
}
|
|
3088
3125
|
|
|
3089
3126
|
inputBuffer = "";
|
package/browser-controller.js
CHANGED
|
@@ -15,7 +15,9 @@ async function ensurePage() {
|
|
|
15
15
|
|
|
16
16
|
async function open(url) {
|
|
17
17
|
const page = await ensurePage();
|
|
18
|
-
|
|
18
|
+
var cleanUrl = String(url).replace(/^<|>$/g, "").trim();
|
|
19
|
+
if (!/^https?:\/\//i.test(cleanUrl)) cleanUrl = "https://" + cleanUrl;
|
|
20
|
+
await page.goto(cleanUrl, { waitUntil: "domcontentloaded", timeout: 30000 });
|
|
19
21
|
return snapshot();
|
|
20
22
|
}
|
|
21
23
|
|