@inspecto-dev/core 0.3.2 → 0.3.4
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.
|
@@ -3372,6 +3372,107 @@ function indentBlock(text) {
|
|
|
3372
3372
|
return text.split("\n").map((line) => ` ${line}`).join("\n");
|
|
3373
3373
|
}
|
|
3374
3374
|
|
|
3375
|
+
// src/menu-helpers.ts
|
|
3376
|
+
function formatSourceAnchor(location) {
|
|
3377
|
+
const fileName = location.file.split("/").pop() || location.file;
|
|
3378
|
+
return `${fileName}:${location.line}:${location.column}`;
|
|
3379
|
+
}
|
|
3380
|
+
function formatRuntimeErrorCount2(count) {
|
|
3381
|
+
if (count > 99) return "99+";
|
|
3382
|
+
return String(count);
|
|
3383
|
+
}
|
|
3384
|
+
function createMenuSection() {
|
|
3385
|
+
const section = document.createElement("div");
|
|
3386
|
+
section.className = menuSectionClass;
|
|
3387
|
+
return section;
|
|
3388
|
+
}
|
|
3389
|
+
function createAskInput(placeholder) {
|
|
3390
|
+
const inputWrapper = document.createElement("div");
|
|
3391
|
+
inputWrapper.className = menuInputWrapperClass;
|
|
3392
|
+
const input = document.createElement("input");
|
|
3393
|
+
input.className = menuInputClass;
|
|
3394
|
+
input.type = "text";
|
|
3395
|
+
input.placeholder = placeholder != null ? placeholder : "Add a custom ask or extra instruction...";
|
|
3396
|
+
input.setAttribute("aria-label", "Custom ask");
|
|
3397
|
+
const sendIcon = document.createElement("div");
|
|
3398
|
+
sendIcon.className = menuInputIconClass;
|
|
3399
|
+
sendIcon.innerHTML = `<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>`;
|
|
3400
|
+
sendIcon.style.cursor = "pointer";
|
|
3401
|
+
inputWrapper.appendChild(input);
|
|
3402
|
+
inputWrapper.appendChild(sendIcon);
|
|
3403
|
+
return { input, inputWrapper, sendIcon };
|
|
3404
|
+
}
|
|
3405
|
+
function showError(menu, message, errorCode) {
|
|
3406
|
+
var _a2;
|
|
3407
|
+
(_a2 = menu.querySelector(`.${errorMsgClass}`)) == null ? void 0 : _a2.remove();
|
|
3408
|
+
const errEl = document.createElement("div");
|
|
3409
|
+
errEl.className = errorMsgClass;
|
|
3410
|
+
errEl.textContent = errorCode === "FILE_NOT_FOUND" ? "Source file not found. Is the server running?" : `Error: ${message}`;
|
|
3411
|
+
menu.appendChild(errEl);
|
|
3412
|
+
}
|
|
3413
|
+
function isFixIntent(intent) {
|
|
3414
|
+
return intent.aiIntent === "fix";
|
|
3415
|
+
}
|
|
3416
|
+
function isFixUiIntent(intent) {
|
|
3417
|
+
return intent.id === "fix-ui";
|
|
3418
|
+
}
|
|
3419
|
+
function createRuntimeContextUi(runtimeContext, options) {
|
|
3420
|
+
var _a2;
|
|
3421
|
+
if (!runtimeContext) return null;
|
|
3422
|
+
const summary = formatRuntimeContextSummary(runtimeContext);
|
|
3423
|
+
if (!summary) return null;
|
|
3424
|
+
const container = document.createElement("div");
|
|
3425
|
+
container.style.display = "flex";
|
|
3426
|
+
container.style.flexDirection = "column";
|
|
3427
|
+
container.style.gap = "4px";
|
|
3428
|
+
const summaryEl = document.createElement("div");
|
|
3429
|
+
summaryEl.className = menuContextSummaryClass;
|
|
3430
|
+
summaryEl.textContent = summary;
|
|
3431
|
+
container.appendChild(summaryEl);
|
|
3432
|
+
if (((_a2 = options.runtimeContext) == null ? void 0 : _a2.preview) !== true || runtimeContext.records.length === 0) {
|
|
3433
|
+
return container;
|
|
3434
|
+
}
|
|
3435
|
+
const toggle = document.createElement("button");
|
|
3436
|
+
toggle.type = "button";
|
|
3437
|
+
toggle.className = menuContextToggleClass;
|
|
3438
|
+
toggle.textContent = "Show preview";
|
|
3439
|
+
const preview = document.createElement("div");
|
|
3440
|
+
preview.className = menuContextPreviewClass;
|
|
3441
|
+
preview.hidden = true;
|
|
3442
|
+
preview.textContent = formatRuntimeContextPreview(runtimeContext.records);
|
|
3443
|
+
toggle.addEventListener("click", (event) => {
|
|
3444
|
+
event.preventDefault();
|
|
3445
|
+
event.stopPropagation();
|
|
3446
|
+
preview.hidden = !preview.hidden;
|
|
3447
|
+
toggle.textContent = preview.hidden ? "Show preview" : "Hide preview";
|
|
3448
|
+
});
|
|
3449
|
+
container.append(toggle, preview);
|
|
3450
|
+
return container;
|
|
3451
|
+
}
|
|
3452
|
+
function formatRuntimeContextSummary(runtimeContext) {
|
|
3453
|
+
const parts = [];
|
|
3454
|
+
const { runtimeErrorCount, failedRequestCount } = runtimeContext.summary;
|
|
3455
|
+
if (runtimeErrorCount > 0) {
|
|
3456
|
+
parts.push(
|
|
3457
|
+
`${runtimeErrorCount} ${runtimeErrorCount === 1 ? "runtime error" : "runtime errors"}`
|
|
3458
|
+
);
|
|
3459
|
+
}
|
|
3460
|
+
if (failedRequestCount > 0) {
|
|
3461
|
+
parts.push(
|
|
3462
|
+
`${failedRequestCount} ${failedRequestCount === 1 ? "failed request" : "failed requests"}`
|
|
3463
|
+
);
|
|
3464
|
+
}
|
|
3465
|
+
return parts.join(" \u2022 ");
|
|
3466
|
+
}
|
|
3467
|
+
function formatRuntimeContextPreview(records) {
|
|
3468
|
+
return records.slice(0, 3).map((record) => {
|
|
3469
|
+
var _a2, _b, _c, _d, _e, _f;
|
|
3470
|
+
const details = record.kind === "failed-request" ? `${(_b = (_a2 = record.request) == null ? void 0 : _a2.method) != null ? _b : "GET"} ${(_f = (_e = (_c = record.request) == null ? void 0 : _c.pathname) != null ? _e : (_d = record.request) == null ? void 0 : _d.url) != null ? _f : ""}`.trim() : `${record.occurrenceCount}x`;
|
|
3471
|
+
return `[${record.kind}] ${record.message}
|
|
3472
|
+
${details}`;
|
|
3473
|
+
}).join("\n\n");
|
|
3474
|
+
}
|
|
3475
|
+
|
|
3375
3476
|
// src/menu-actions.ts
|
|
3376
3477
|
function createIntentActionButtons(input) {
|
|
3377
3478
|
return input.intents.map((intent) => {
|
|
@@ -3397,7 +3498,9 @@ function createIntentActionButtons(input) {
|
|
|
3397
3498
|
}
|
|
3398
3499
|
const requestRuntimeContext = input.resolveRuntimeContext(intent);
|
|
3399
3500
|
const requestScreenshotContext = yield input.resolveScreenshotContext();
|
|
3400
|
-
const requestCssContextPrompt = input.resolveCssContextPrompt(
|
|
3501
|
+
const requestCssContextPrompt = input.resolveCssContextPrompt(
|
|
3502
|
+
isFixUiIntent(intent) ? intent : void 0
|
|
3503
|
+
);
|
|
3401
3504
|
const prompt = appendCssContextToPrompt(
|
|
3402
3505
|
appendScreenshotContextToPrompt(
|
|
3403
3506
|
buildPromptForIntent(intent, input.location, snippetResult, requestRuntimeContext),
|
|
@@ -3482,104 +3585,6 @@ function buildCustomInspectPrompt(input) {
|
|
|
3482
3585
|
});
|
|
3483
3586
|
}
|
|
3484
3587
|
|
|
3485
|
-
// src/menu-helpers.ts
|
|
3486
|
-
function formatSourceAnchor(location) {
|
|
3487
|
-
const fileName = location.file.split("/").pop() || location.file;
|
|
3488
|
-
return `${fileName}:${location.line}:${location.column}`;
|
|
3489
|
-
}
|
|
3490
|
-
function formatRuntimeErrorCount2(count) {
|
|
3491
|
-
if (count > 99) return "99+";
|
|
3492
|
-
return String(count);
|
|
3493
|
-
}
|
|
3494
|
-
function createMenuSection() {
|
|
3495
|
-
const section = document.createElement("div");
|
|
3496
|
-
section.className = menuSectionClass;
|
|
3497
|
-
return section;
|
|
3498
|
-
}
|
|
3499
|
-
function createAskInput(placeholder) {
|
|
3500
|
-
const inputWrapper = document.createElement("div");
|
|
3501
|
-
inputWrapper.className = menuInputWrapperClass;
|
|
3502
|
-
const input = document.createElement("input");
|
|
3503
|
-
input.className = menuInputClass;
|
|
3504
|
-
input.type = "text";
|
|
3505
|
-
input.placeholder = placeholder != null ? placeholder : "Add a custom ask or extra instruction...";
|
|
3506
|
-
input.setAttribute("aria-label", "Custom ask");
|
|
3507
|
-
const sendIcon = document.createElement("div");
|
|
3508
|
-
sendIcon.className = menuInputIconClass;
|
|
3509
|
-
sendIcon.innerHTML = `<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>`;
|
|
3510
|
-
sendIcon.style.cursor = "pointer";
|
|
3511
|
-
inputWrapper.appendChild(input);
|
|
3512
|
-
inputWrapper.appendChild(sendIcon);
|
|
3513
|
-
return { input, inputWrapper, sendIcon };
|
|
3514
|
-
}
|
|
3515
|
-
function showError(menu, message, errorCode) {
|
|
3516
|
-
var _a2;
|
|
3517
|
-
(_a2 = menu.querySelector(`.${errorMsgClass}`)) == null ? void 0 : _a2.remove();
|
|
3518
|
-
const errEl = document.createElement("div");
|
|
3519
|
-
errEl.className = errorMsgClass;
|
|
3520
|
-
errEl.textContent = errorCode === "FILE_NOT_FOUND" ? "Source file not found. Is the server running?" : `Error: ${message}`;
|
|
3521
|
-
menu.appendChild(errEl);
|
|
3522
|
-
}
|
|
3523
|
-
function isFixIntent(intent) {
|
|
3524
|
-
return intent.aiIntent === "fix";
|
|
3525
|
-
}
|
|
3526
|
-
function createRuntimeContextUi(runtimeContext, options) {
|
|
3527
|
-
var _a2;
|
|
3528
|
-
if (!runtimeContext) return null;
|
|
3529
|
-
const summary = formatRuntimeContextSummary(runtimeContext);
|
|
3530
|
-
if (!summary) return null;
|
|
3531
|
-
const container = document.createElement("div");
|
|
3532
|
-
container.style.display = "flex";
|
|
3533
|
-
container.style.flexDirection = "column";
|
|
3534
|
-
container.style.gap = "4px";
|
|
3535
|
-
const summaryEl = document.createElement("div");
|
|
3536
|
-
summaryEl.className = menuContextSummaryClass;
|
|
3537
|
-
summaryEl.textContent = summary;
|
|
3538
|
-
container.appendChild(summaryEl);
|
|
3539
|
-
if (((_a2 = options.runtimeContext) == null ? void 0 : _a2.preview) !== true || runtimeContext.records.length === 0) {
|
|
3540
|
-
return container;
|
|
3541
|
-
}
|
|
3542
|
-
const toggle = document.createElement("button");
|
|
3543
|
-
toggle.type = "button";
|
|
3544
|
-
toggle.className = menuContextToggleClass;
|
|
3545
|
-
toggle.textContent = "Show preview";
|
|
3546
|
-
const preview = document.createElement("div");
|
|
3547
|
-
preview.className = menuContextPreviewClass;
|
|
3548
|
-
preview.hidden = true;
|
|
3549
|
-
preview.textContent = formatRuntimeContextPreview(runtimeContext.records);
|
|
3550
|
-
toggle.addEventListener("click", (event) => {
|
|
3551
|
-
event.preventDefault();
|
|
3552
|
-
event.stopPropagation();
|
|
3553
|
-
preview.hidden = !preview.hidden;
|
|
3554
|
-
toggle.textContent = preview.hidden ? "Show preview" : "Hide preview";
|
|
3555
|
-
});
|
|
3556
|
-
container.append(toggle, preview);
|
|
3557
|
-
return container;
|
|
3558
|
-
}
|
|
3559
|
-
function formatRuntimeContextSummary(runtimeContext) {
|
|
3560
|
-
const parts = [];
|
|
3561
|
-
const { runtimeErrorCount, failedRequestCount } = runtimeContext.summary;
|
|
3562
|
-
if (runtimeErrorCount > 0) {
|
|
3563
|
-
parts.push(
|
|
3564
|
-
`${runtimeErrorCount} ${runtimeErrorCount === 1 ? "runtime error" : "runtime errors"}`
|
|
3565
|
-
);
|
|
3566
|
-
}
|
|
3567
|
-
if (failedRequestCount > 0) {
|
|
3568
|
-
parts.push(
|
|
3569
|
-
`${failedRequestCount} ${failedRequestCount === 1 ? "failed request" : "failed requests"}`
|
|
3570
|
-
);
|
|
3571
|
-
}
|
|
3572
|
-
return parts.join(" \u2022 ");
|
|
3573
|
-
}
|
|
3574
|
-
function formatRuntimeContextPreview(records) {
|
|
3575
|
-
return records.slice(0, 3).map((record) => {
|
|
3576
|
-
var _a2, _b, _c, _d, _e, _f;
|
|
3577
|
-
const details = record.kind === "failed-request" ? `${(_b = (_a2 = record.request) == null ? void 0 : _a2.method) != null ? _b : "GET"} ${(_f = (_e = (_c = record.request) == null ? void 0 : _c.pathname) != null ? _e : (_d = record.request) == null ? void 0 : _d.url) != null ? _f : ""}`.trim() : `${record.occurrenceCount}x`;
|
|
3578
|
-
return `[${record.kind}] ${record.message}
|
|
3579
|
-
${details}`;
|
|
3580
|
-
}).join("\n\n");
|
|
3581
|
-
}
|
|
3582
|
-
|
|
3583
3588
|
// src/menu-header.ts
|
|
3584
3589
|
function createMenuHeaderDom(input) {
|
|
3585
3590
|
var _a2;
|
|
@@ -3902,9 +3907,10 @@ function showIntentMenu(shadowRoot, location, clickX, clickY, options, onClose,
|
|
|
3902
3907
|
return null;
|
|
3903
3908
|
}
|
|
3904
3909
|
});
|
|
3905
|
-
const resolveCssContextPrompt = () => {
|
|
3910
|
+
const resolveCssContextPrompt = (intent) => {
|
|
3906
3911
|
var _a3, _b2;
|
|
3907
|
-
|
|
3912
|
+
const shouldAttachCssContext = cssContextEnabled || Boolean(intent && isFixUiIntent(intent));
|
|
3913
|
+
if (!shouldAttachCssContext) return null;
|
|
3908
3914
|
try {
|
|
3909
3915
|
return (_b2 = (_a3 = deps.captureCssContextPrompt) == null ? void 0 : _a3.call(deps)) != null ? _b2 : null;
|
|
3910
3916
|
} catch (e) {
|
|
@@ -6316,4 +6322,4 @@ if (typeof customElements !== "undefined") {
|
|
|
6316
6322
|
export {
|
|
6317
6323
|
InspectoElement
|
|
6318
6324
|
};
|
|
6319
|
-
//# sourceMappingURL=component-
|
|
6325
|
+
//# sourceMappingURL=component-M23S536R.js.map
|