{"_id":"@0xsline/dsh-spotlight","_rev":"2-e8e12eb88e03ede34ce154bc5ca7c4eb","name":"@0xsline/dsh-spotlight","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@0xsline/dsh-spotlight","version":"0.0.1","license":"MIT","_id":"@0xsline/dsh-spotlight@0.0.1","maintainers":[{"name":"0xsline","email":"hl2535771@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"aa4d538eadf2396ce5d6e6b75075e19513ab48e5","tarball":"https://registry.npmjs.org/@0xsline/dsh-spotlight/-/dsh-spotlight-0.0.1.tgz","fileCount":39,"integrity":"sha512-ULMii5zsGIeUXNqAyH7ssF2d+WiX72H4nWByXdlxay85COr/NRIoq16q5ntNsVq5b0ahkv3wU40B7muhLEfXpw==","signatures":[{"sig":"MEQCIHUM76jj2AwrWAu6vpKTV6qcUm5/4hLZ3OJW0ApoDUKFAiAnPEZOMDvRHnOSYnQjLMXrSuQLwkXHLXhKz0wZMA5lcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102223},"main":"lib/index.js","type":"module","types":"lib/types/index.d.ts","engines":{"node":"^22.19.0 || >=24.0.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./src/*":"./src/*","./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"gitHead":"27515f407a1eb473bdf50fb94807eb51bfa3b142","scripts":{"test":"vitest run","build":"tsc -b && tsdown","prepare":"node scripts/prepare.mjs","typecheck":"tsc -b --pretty false && tsc -p tsconfig.vitest.json --pretty false","patch:host":"bash scripts/patch.sh","extract:patch":"node scripts/extract-patch.mjs","verify:self-contained":"node scripts/verify-self-contained.mjs"},"_npmUser":{"name":"0xsline","email":"hl2535771@gmail.com"},"_npmVersion":"11.12.1","description":"Keyboard-first command palette for DeepSeek Harness Web","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"packageManager":"pnpm@11.7.0","devDependencies":{"unrun":"^0.3.1","cordis":"^4.0.0-rc.7","tsdown":"^0.22.2","vitest":"^4.1.8","happy-dom":"^20.11.2","typescript":"^6.0.3","@types/node":"^22.20.0","schemastery":"^3.18.0","@cordisjs/plugin-loader":"^1.0.0-rc.5"},"peerDependencies":{"cordis":"^4.0.0-rc.7","schemastery":"^3.18.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-spotlight_0.0.1_1786700220563_0.05728077964960221","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@0xsline/dsh-spotlight","description":"Keyboard-first command palette for DeepSeek Harness Web","version":"0.0.2","type":"module","packageManager":"pnpm@11.7.0","engines":{"node":"^22.19.0 || >=24.0.0"},"scripts":{"build":"tsc -b && tsdown","test":"vitest run","typecheck":"tsc -b --pretty false && tsc -p tsconfig.vitest.json --pretty false","verify:self-contained":"node scripts/verify-self-contained.mjs","prepare":"node scripts/prepare.mjs","extract:patch":"node scripts/extract-patch.mjs","patch:host":"bash scripts/patch.sh"},"main":"lib/index.js","types":"lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"cordis":"^4.0.0-rc.7","schemastery":"^3.18.0"},"devDependencies":{"@cordisjs/plugin-loader":"^1.0.0-rc.5","@types/node":"^22.20.0","cordis":"^4.0.0-rc.7","happy-dom":"^20.11.2","schemastery":"^3.18.0","tsdown":"^0.22.2","typescript":"^6.0.3","unrun":"^0.3.1","vitest":"^4.1.8"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-runtime"]}},"gitHead":"dd7ef5ed160aa1a624559de16eafd4ea9406d7ed","_id":"@0xsline/dsh-spotlight@0.0.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xqJyEjLjFShNgliG1TCHJf0umTZzW12byg4YKAJ8r+SeZsJ+D733+lPmzHkX7mKu6rjF35d5e1iypesiEkaqTQ==","shasum":"44ba68ac3f3775fec4ae6763b3075e3306cd91a2","tarball":"https://registry.npmjs.org/@0xsline/dsh-spotlight/-/dsh-spotlight-0.0.2.tgz","fileCount":39,"unpackedSize":104210,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBC5ej7RxmJq7DVk4bA06z9JnFsHjqB8oS2ABRBW/JZyAiEA8VX0qF2om5HixRxON/0yuMQROE7CSBo67rRNNL0L+I8="}]},"_npmUser":{"name":"0xsline","email":"hl2535771@gmail.com"},"directories":{},"maintainers":[{"name":"0xsline","email":"hl2535771@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-spotlight_0.0.2_1786704032128_0.8756799395418018"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T09:37:00.387Z","modified":"2026-08-14T10:40:32.482Z","0.0.1":"2026-08-14T09:37:00.706Z","0.0.2":"2026-08-14T10:40:32.291Z"},"license":"MIT","description":"Keyboard-first command palette for DeepSeek Harness Web","maintainers":[{"name":"0xsline","email":"hl2535771@gmail.com"}],"readme":"# DSH Spotlight\n\n简体中文 | [English](README.md)\n\nDeepSeek Harness Web 的键盘优先全局命令面板。无需离开键盘，即可在一个面板中搜索原生\nSlash Command、最近会话、当前界面操作和已安装插件的设置入口。\n\n## 功能\n\n- **一个快捷键：** macOS 默认 `⌘K`，其他平台默认 `Ctrl+K`。\n- **自由设置：** 点击面板底部的快捷键按钮，再按下新的组合键；设置保存在当前浏览器。\n- **复用原生操作：** 自动发现并触发 DSH Web 已有操作，只向原生斜杠菜单贡献一条\n  `/spotlight` 命令，不维护第二套命令注册表。\n- **快速搜索：** 对 Slash Command、最近会话、界面操作和插件设置进行稳定的模糊匹配。\n- **全键盘操作：** 上下方向键选择、Enter 执行、Escape 关闭。\n- **干净卸载：** 插件卸载时移除事件监听、样式和 DOM 节点。\n\n## 安装\n\n将 Bundle 安装到 DSH Web Profile。通过 npm：\n\n```sh\ndsh plugin --profile web add \"@0xsline/dsh-spotlight\"\n```\n\n或通过 Git 源码：\n\n```sh\ndsh plugin --profile web add \"github:0xsline/dsh-spotlight#main\"\n```\n\n然后启动 DSH Web，按 `⌘K` 或 `Ctrl+K` 即可使用：\n\n```sh\ndsh --profile web\n```\n\n## 使用\n\n1. 使用全局快捷键打开 Spotlight，或在 DSH Web 输入框输入 `/spotlight` 从斜杠菜单打开。\n2. 输入关键词筛选命令和操作。\n3. 使用上下方向键与 Enter，或直接点击结果。\n4. 点击底部的「快捷键」并按下新组合键，即可修改快捷键。\n5. 点击「恢复默认」可还原平台默认值。\n\n快捷键配置按当前浏览器的 Origin 和 Profile 独立保存。\n\n## 工作原理\n\nDSH Spotlight 是一个独立的 Cordis Bundle，附带轻量 Web Client。客户端在宿主的会话、\n命令平面、插件清单和命令 UI 服务就绪后挂载（这些服务是每个标准 DSH Web 部署的固定组成），\n然后直接从这些服务读取最近会话、Slash Command 和插件清单；同时从当前页面发现可执行元素，\n并把执行交还给原生界面。单个目录 RPC 失败只降级对应类别。插件不新增服务端数据通道，\n也不保存持久化的服务端状态。\n\n```text\nsrc/index.ts             Loader 元数据\nsrc/client/index.ts      Web Client 激活与卸载\nsrc/spotlight/           Host + DOM 发现、搜索、键盘处理和界面\ncordis.patch.yml         DSH Web Profile 组合配置\n```\n\n部分动作发现依赖当前 DSH Web 的 DOM；宿主界面结构变化时，可能需要同步更新\n`src/spotlight/discovery.ts` 中的选择器。\n\n## 开发\n\n环境要求：Node.js `^22.19.0 || >=24.0.0`、pnpm `11.7.0`。\n\n```sh\ngit clone https://github.com/0xsline/dsh-spotlight.git\ncd dsh-spotlight\npnpm install\n\npnpm run verify:self-contained\npnpm run typecheck\npnpm test\npnpm run build\n```\n\n在 DSH Web 中测试本地代码：\n\n```sh\npnpm run prepare\ndsh plugin --profile web add \"link:$(pwd)\"\ndsh --profile web\n```\n\n发布前检查包内容：\n\n```sh\npnpm pack --dry-run --json\n```\n\n## 许可\n\n[MIT](LICENSE)\n","readmeFilename":"README.zh.md"}