mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
Client half of the PiP observation window, wired to the host ObservationService over the /bsk-observation HTTP+SSE seam: - ObservationClientStore: initial state fetch + SSE increments + on-demand thumbnail blob loading (session-authorized readAttachment, same path as the toolview) + interrupt POST. All I/O injectable. - ObservationOverlay registered into the shell.overlay list seat (the sanctioned frame-wide surface; root is off-limits). Hidden with no owned sessions; appears on first start; vanishes when all stop. - Focus view: status row (green/grey/red dot + session + action + mm:ss ticking), breathing thumbnail (new frames fade in, failures keep the last frame with a warning badge, pre-navigate placeholder), and the action area. - Interrupt: single click, no confirm; greys into 'Interrupting…' and back; disabled when nothing is in flight; one-time tooltip explains the semantics (stops the current action only; the run continues). - Card: drag-move via the header, corner-handle resize (min 240x180, max 80% viewport), both clamped and kept for the page lifetime; collapsible status capsule. - PiP: Pop out (user gesture) opens Document PiP with the card's current size, portals the same content in, and clones the document's style nodes; pagehide falls back to the card with state intact; unsupported browsers hide the button; nothing auto-pops. Tests (+17, 89 total): store (fetch/SSE apply/malformed frames/ thumbnail lifecycle/interrupt wire/stop cleanup) and overlay (hidden-> visible lifecycle, status row, thumbnail via loader, interrupt disabled/active/hint-once, capsule, resize clamps, move clamps, PiP unsupported, PiP pop/fallback). Styling follows web-styling (dsw-alias tokens, CSS Modules, focus-visible, reduced-motion).
98 lines
2.6 KiB
JSON
98 lines
2.6 KiB
JSON
{
|
|
"name": "dsh-plugin-browserskill",
|
|
"description": "DeepSeek Harness tool plugin that exposes BrowserSkill (bsk) browser automation to the model",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "lib/index.mjs",
|
|
"types": "lib/index.d.mts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./lib/index.d.mts",
|
|
"default": "./lib/index.mjs"
|
|
},
|
|
"./client": {
|
|
"default": "./lib/client.js"
|
|
},
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"lib",
|
|
"cordis.patch.yml"
|
|
],
|
|
"dsh": {
|
|
"bundle": {
|
|
"patch": "./cordis.patch.yml"
|
|
},
|
|
"client": {
|
|
"platform": "web",
|
|
"inject": [
|
|
"@deepseek-ai/dsh-client-runtime",
|
|
"@deepseek-ai/dsh-client-ui-tool",
|
|
"@deepseek-ai/dsh-client-ui-layout"
|
|
]
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsdown",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run"
|
|
},
|
|
"peerDependencies": {
|
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-attachment": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-tool": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
"react": "^18.2.0"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"@deepseek-ai/dsh-attachment": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-client-runtime": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-client-ui-attachment": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-client-ui-primitives": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-client-ui-tool": {
|
|
"optional": true
|
|
},
|
|
"@deepseek-ai/dsh-llm": {
|
|
"optional": true
|
|
},
|
|
"react": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
"@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-attachment": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-attachment": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-layout": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-client-ui-tool": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
"@testing-library/react": "^16.1.0",
|
|
"@types/node": "^22.10.0",
|
|
"@types/react": "~18.3.1",
|
|
"@types/react-dom": "^18.3.0",
|
|
"happy-dom": "^15.11.7",
|
|
"lightningcss": "^1.30.0",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"tsdown": "^0.22.14",
|
|
"typescript": "^5.8.0",
|
|
"vitest": "^4.1.6"
|
|
}
|
|
}
|