{"_id":"@akshaydev17/dsh-spotlight","_rev":"2-f134c93975aec4db02d4c2117837bf6b","name":"@akshaydev17/dsh-spotlight","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.2":{"name":"@akshaydev17/dsh-spotlight","version":"0.0.2","license":"MIT","_id":"@akshaydev17/dsh-spotlight@0.0.2","maintainers":[{"name":"akshaydev17","email":"akshayprabhakant@gmail.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"dist":{"shasum":"cd7446909d505f3992a7178a64f2c0f9ee844da5","tarball":"https://registry.npmjs.org/@akshaydev17/dsh-spotlight/-/dsh-spotlight-0.0.2.tgz","fileCount":39,"integrity":"sha512-qO5neizQNz7znUZeLthZ4/uupyVsMcTKSLbRf1cfagCb3S3H7p31Q83gbtxU15geQgLqAUoE4U0e2WsNHF3ysg==","signatures":[{"sig":"MEUCIQDk42XVjz/b6TPW/b3ZOd13QkKF2ib0TKC9qVoBhT05ywIgfCSUNaWmnVTlEqqrMrqv02HxleS8SbCGL8R08MeMDWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105132},"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":"b3565e8629d9a393d764681e96f4c41100cc12fa","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":"akshaydev17","email":"akshayprabhakant@gmail.com"},"_npmVersion":"10.9.8","description":"Keyboard-first command palette for DeepSeek Harness Web","directories":{},"_nodeVersion":"22.22.3","_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","@cordisjs/plugin-loader":"^1.0.0-rc.5","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"cordis":"^4.0.0-rc.7","@deepseek-ai/schemastery":"^3.18.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-spotlight_0.0.2_1788300672559_0.1947320344320469","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@akshaydev17/dsh-spotlight","description":"Keyboard-first command palette for DeepSeek Harness Web","version":"0.0.3","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","@deepseek-ai/schemastery":"^3.18.1"},"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","@deepseek-ai/schemastery":"^3.18.1","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"]}},"_id":"@akshaydev17/dsh-spotlight@0.0.3","gitHead":"4909dccecb35167b93ae6acdca7038d49188db4e","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-RyoxBOc58k4yKF3Ew3xZosex4FCsVPgod/rpJCCDC0kvXX327+HRZWEpxRR1l7dkWAHHxbxkXrjx5TzTbieQTA==","shasum":"a00a5546790d1c85b79a0450f5f342820748f39b","tarball":"https://registry.npmjs.org/@akshaydev17/dsh-spotlight/-/dsh-spotlight-0.0.3.tgz","fileCount":39,"unpackedSize":105256,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCSyajKehmdVEXY/kjzkhHWp8RLFm/dSTi9lowQkb3d2QIgJnjMld62SijzFjLeDb3dx1EJnlIT1zb8rpwk2NjIkOY="}]},"_npmUser":{"name":"akshaydev17","email":"akshayprabhakant@gmail.com"},"directories":{},"maintainers":[{"name":"akshaydev17","email":"akshayprabhakant@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-spotlight_0.0.3_1788301649856_0.512851213814995"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-01T22:11:12.326Z","modified":"2026-09-01T22:27:30.126Z","0.0.2":"2026-09-01T22:11:12.698Z","0.0.3":"2026-09-01T22:27:29.986Z"},"license":"MIT","description":"Keyboard-first command palette for DeepSeek Harness Web","maintainers":[{"name":"akshaydev17","email":"akshayprabhakant@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 \"@akshaydev17/dsh-spotlight\"\n```\n\n或通过 Git 源码：\n\n```sh\ndsh plugin --profile web add \"github:My-DSH-plugins/dsh-spotlight#main\"\n```\n\nGit 安装会执行包的 `prepare` 生命周期，因为生成的 `lib/` 文件不提交到仓库。\n该脚本只使用仓库本地的 TypeScript 和 tsdown 可执行文件删除并重建当前包的\n`lib/` 目录，不访问网络，也不写入仓库外部。若禁用了生命周期脚本，请安装\nnpm 发布包；其中已包含构建好的 `lib/` 文件，安装时不会执行 `prepare`。\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/My-DSH-plugins/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"}