@wenathlan/extension 1.1.55 → 1.1.57
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/README.md +4 -3
- package/dist/agentstream.d.ts +155 -0
- package/dist/agentstream.d.ts.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +945 -22
- package/dist/index.js.map +4 -4
- package/dist/llm.d.ts +238 -0
- package/dist/llm.d.ts.map +1 -0
- package/dist/mcpserver.d.ts +11 -4
- package/dist/mcpserver.d.ts.map +1 -1
- package/dist/memory.d.ts +122 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/modelroute.d.ts +43 -0
- package/dist/modelroute.d.ts.map +1 -0
- package/dist/policy.d.ts +57 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/promptlibrary.d.ts +33 -0
- package/dist/promptlibrary.d.ts.map +1 -0
- package/dist/protocol.d.ts +259 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/types.d.ts +388 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/extension/dist/background.js +1604 -39
- package/extension/dist/background.js.map +4 -4
- package/extension/dist/manifest.json +1 -1
- package/extension/dist/pagebridge.js.map +1 -1
- package/extension/dist/popup.html +1 -1
- package/extension/dist/popup.js +14 -1
- package/extension/dist/popup.js.map +2 -2
- package/extension/dist/sidepanel.html +3 -1
- package/extension/dist/sidepanel.js +610 -5
- package/extension/dist/sidepanel.js.map +2 -2
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Devthink</title><link rel="stylesheet" href="style.css"></head>
|
|
4
|
-
<body><main><header><p class="eyebrow">DEVTHINK 1.1.
|
|
4
|
+
<body><main><header><p class="eyebrow">DEVTHINK 1.1.57</p><h1>Browser bridge</h1><p>Consent is required before page access or action.</p></header><label for="endpoint">Optional agent endpoint</label><input id="endpoint" type="url" inputmode="url" placeholder="https://agent.example/proposal" autocomplete="off"><button id="connect">Approve endpoint origin</button><div class="actions"><button id="session">Start active tab session</button><button id="pause" class="secondary">Pause session</button><button id="openpanel" class="secondary">Review plans</button><button id="stop" class="danger">Stop</button></div><p id="capabilities" role="status" class="muted">Optional capabilities: loading.</p><p id="livelogic" role="status" class="muted">Held keys: none · Open dialogs answered: none.</p><p id="navstate" role="status" class="muted">Navigation: unknown.</p><p id="windowlayout" role="status" class="muted">Window layout: unknown.</p><p id="captchastate" role="status" class="muted">Captcha handoff: none.</p><p id="datasetstate" role="status" class="muted">Datasets: none collected yet.</p><p id="downloadstate" role="status" class="muted">Downloads: none.</p><p id="clipboardstate" role="status" class="muted">Clipboard consent: none waiting.</p><p id="capturestate" role="status" class="muted">Captures: none.</p><p id="mediastate" role="status" class="muted">Media: none.</p><p id="callstate" role="status" class="muted">Outbound calls: none.</p><p id="netstate" role="status" class="muted">Observed requests: none.</p><p id="rulestate" role="status" class="muted">Traffic rules: none active.</p><p id="debugstate" role="status" class="muted">Timeline: no errors captured.</p><p id="emulationstate" role="status" class="muted">Emulation: no active layer.</p><p id="sessionstate" role="status" class="muted">Sessions: none saved yet.</p><p id="workflowstate" role="status" class="muted">Workflows: none running.</p><p id="triggerstate" role="status" class="muted">Triggers: none armed.</p><p id="mcpstate" role="status" class="muted">Mcp server: stopped.</p><p id="modelstate" role="status" class="muted">Models: none connected.</p><div id="workflowcontrols" class="actions"></div><div id="windowcontrols" class="actions"></div><p id="status" role="status">Loading session state.</p></main><script type="module" src="popup.js"></script></body>
|
|
5
5
|
</html>
|
package/extension/dist/popup.js
CHANGED
|
@@ -37,6 +37,7 @@ var sessionstatenode = document.querySelector("#sessionstate");
|
|
|
37
37
|
var workflowstatenode = document.querySelector("#workflowstate");
|
|
38
38
|
var triggerstatenode = document.querySelector("#triggerstate");
|
|
39
39
|
var mcpstatenode = document.querySelector("#mcpstate");
|
|
40
|
+
var modelstatenode = document.querySelector("#modelstate");
|
|
40
41
|
var workflowcontrols = document.querySelector("#workflowcontrols");
|
|
41
42
|
var windowcontrols = document.querySelector("#windowcontrols");
|
|
42
43
|
var connectbutton = document.querySelector("#connect");
|
|
@@ -257,13 +258,24 @@ function renderworkflowstate(runs, control) {
|
|
|
257
258
|
workflowcontrols.append(controls);
|
|
258
259
|
}
|
|
259
260
|
}
|
|
261
|
+
function rendermodelstate(state) {
|
|
262
|
+
if (!modelstatenode) return;
|
|
263
|
+
if (!state) {
|
|
264
|
+
modelstatenode.textContent = "Models: none connected.";
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const routed = state.tasks.filter((task) => task.provider !== void 0);
|
|
268
|
+
modelstatenode.textContent = `Models: ${routed.length > 0 ? routed.slice(0, 3).map((task) => `${task.kind} ${task.model}`).join(" \xB7 ") : "no route yet"} \xB7 ${state.usage.calls} call${state.usage.calls === 1 ? "" : "s"} \xB7 ${state.usage.totaltokens} tokens.`;
|
|
269
|
+
}
|
|
260
270
|
function rendermcpstate(state) {
|
|
261
271
|
if (!mcpstatenode) return;
|
|
262
272
|
const running = state?.state === "running";
|
|
263
273
|
const clients = state?.clients ?? [];
|
|
264
274
|
const paired = clients.filter((client) => client.paired).length;
|
|
265
275
|
const pending = (state?.approvals ?? []).filter((approval) => approval.state === "pending");
|
|
266
|
-
|
|
276
|
+
const inflight = state?.inflight ?? [];
|
|
277
|
+
const notice = (state?.progressnotices ?? [])[0];
|
|
278
|
+
mcpstatenode.textContent = `Mcp server: ${running ? `running on ${state?.bind ?? "127.0.0.1"}:${state?.port ?? 7436}${state?.localhost === false ? " (remote bind)" : ""} \xB7 ${clients.length} client${clients.length === 1 ? "" : "s"}${paired !== clients.length ? ` \xB7 ${paired} paired` : ""}${pending.length > 0 ? ` \xB7 ${pending.length} approval gate${pending.length === 1 ? "" : "s"} waiting (${[...new Set(pending.map((approval) => approval.tool))].slice(0, 3).join(", ")})` : ""}${inflight.length > 0 ? ` \xB7 ${inflight.length} call${inflight.length === 1 ? "" : "s"} in flight${notice !== void 0 ? ` (${notice.percent !== void 0 ? `${notice.percent}%` : notice.message}${notice.cancellable === false ? "" : ", cancellable in the panel"})` : ""}` : ""}` : state?.state ?? "stopped"}.`;
|
|
267
279
|
if (running) mcpstatenode.dataset.state = "active";
|
|
268
280
|
else delete mcpstatenode.dataset.state;
|
|
269
281
|
}
|
|
@@ -298,6 +310,7 @@ async function restore() {
|
|
|
298
310
|
renderworkflowstate(context.workflow?.runs, context.workflow?.control);
|
|
299
311
|
rendertriggerstate(context.trigger?.rules, context.trigger?.queued, context.session?.pausedat !== void 0, triggerbuttonfired);
|
|
300
312
|
rendermcpstate(context.mcp);
|
|
313
|
+
rendermodelstate(context.llm);
|
|
301
314
|
renderrulestate(context.activerules, (context.traffic?.blocks ?? []).filter((rule) => rule.revertedat === void 0).reduce((total, rule) => total + rule.hits, 0), (context.traffic?.mocks ?? []).filter((spec) => spec.revertedat === void 0).reduce((total, spec) => total + spec.hits, 0));
|
|
302
315
|
const active = context.session && !context.session.stoppedat && context.session.expiresat > Date.now();
|
|
303
316
|
if (pausebutton) {
|