{"_id":"@amorligno/dsh-git-gui","_rev":"4-d147cadaebde070172100f41cb45897b","name":"@amorligno/dsh-git-gui","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@amorligno/dsh-git-gui","version":"0.1.0","license":"MIT","_id":"@amorligno/dsh-git-gui@0.1.0","maintainers":[{"name":"amorligno","email":"carl.gao128@outlook.com"}],"homepage":"https://github.com/lovetree128/dsh-git-gui#readme","bugs":{"url":"https://github.com/lovetree128/dsh-git-gui/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-sidebar"],"platform":"web"}},"dist":{"shasum":"efee6225e61dcb070ef54e5dab2dcb4ff530d249","tarball":"https://registry.npmjs.org/@amorligno/dsh-git-gui/-/dsh-git-gui-0.1.0.tgz","fileCount":13,"integrity":"sha512-19Qct6qk85POF5P2pxqvxqZLJNqxswpHytDPuaHW3/ugVCjuRsko/IRHAe61D28fqpR12n8GaSmSHqc7e7Kd6Q==","signatures":[{"sig":"MEQCIFT45V9crrndvuN8JgzF1XJa1AZs0f59TcfVI1D49WqsAiBTzZuJK+wQbnKK3tENpYxp9YPFSf5h6gzAMaEE9Fy2Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166568},"main":"lib/index.js","type":"module","exports":{".":{"default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"fae69bbbc045221e239af381b4367f40b81d6605","scripts":{"test":"node --test tests/","prepack":"node scripts/build-client.mjs","prepare":"node scripts/build-client.mjs","postinstall":"node scripts/auto-patch.mjs","build:client":"node scripts/build-client.mjs","watch:client":"node scripts/build-client.mjs --watch"},"_npmUser":{"name":"amorligno","email":"carl.gao128@outlook.com"},"repository":{"url":"git+https://github.com/lovetree128/dsh-git-gui.git","type":"git"},"_npmVersion":"12.0.2","description":"Git GUI panel for the DeepSeek Harness web surface: visualize working-tree changes (including every modification the agent makes), stage/commit/branch/merge/log/pull/push/stash/revert — all from the browser.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-git-gui_0.1.0_1786891588003_0.22197838337718379","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amorligno/dsh-git-gui","version":"0.1.1","license":"MIT","_id":"@amorligno/dsh-git-gui@0.1.1","maintainers":[{"name":"amorligno","email":"carl.gao128@outlook.com"}],"homepage":"https://github.com/lovetree128/dsh-git-gui#readme","bugs":{"url":"https://github.com/lovetree128/dsh-git-gui/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-sidebar"],"platform":"web"}},"dist":{"shasum":"71db5a639033c2a9ddd0635c29ee09ad15508e10","tarball":"https://registry.npmjs.org/@amorligno/dsh-git-gui/-/dsh-git-gui-0.1.1.tgz","fileCount":13,"integrity":"sha512-OJ2He/HNs0cMEW/vjeSfruyvZb708vRdPMvZqrwMImxUIAehC4kPCNquwbGkHjwy+WUfYOQmASPwyFnf+94S8w==","signatures":[{"sig":"MEUCIQCkf7CgAygrORm2ZgOAj51jb8WQdSy2fg+GSiktbDWkcAIgZKgbf4UfS5tS2pLzmCqE0djW62PDeN2b6/Iu+bMSuSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168998},"main":"lib/index.js","type":"module","exports":{".":{"default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"fffb403ba50cd213ea51ec97ac3069638ccc28cf","scripts":{"test":"node --test tests/","prepack":"node scripts/build-client.mjs","prepare":"node scripts/build-client.mjs","postinstall":"node scripts/auto-patch.mjs","build:client":"node scripts/build-client.mjs","watch:client":"node scripts/build-client.mjs --watch"},"_npmUser":{"name":"amorligno","email":"carl.gao128@outlook.com"},"repository":{"url":"git+https://github.com/lovetree128/dsh-git-gui.git","type":"git"},"_npmVersion":"12.0.2","description":"Git GUI panel for the DeepSeek Harness web surface: visualize working-tree changes (including every modification the agent makes), stage/commit/branch/merge/log/pull/push/stash/revert — all from the browser.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-git-gui_0.1.1_1786892228301_0.495095198226418","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amorligno/dsh-git-gui","version":"0.1.2","license":"MIT","_id":"@amorligno/dsh-git-gui@0.1.2","maintainers":[{"name":"amorligno","email":"carl.gao128@outlook.com"}],"homepage":"https://github.com/lovetree128/dsh-git-gui#readme","bugs":{"url":"https://github.com/lovetree128/dsh-git-gui/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-sidebar"],"platform":"web"}},"dist":{"shasum":"c439aa3bd0aeca8c4eaf655d908ab89db807b165","tarball":"https://registry.npmjs.org/@amorligno/dsh-git-gui/-/dsh-git-gui-0.1.2.tgz","fileCount":14,"integrity":"sha512-3LQiSQmVqIzY/j0djvQ6C/WywjmT10laGmoQgx7wdiZhhbvBvmZl05e+V8CHMYY91bPWxot9x270rjI6J/oU9g==","signatures":[{"sig":"MEYCIQDLy5NhPE56duWwTccB7F2zNjKYz3wkIRTaO+R3n+Z2bAIhAO067UOQx44OFOLlC9Kp+FAOh+NRSHkPieUcQdypGQPD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174739},"main":"lib/index.js","type":"module","exports":{".":{"default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"d6ecc9ddc0477b21e565a4843fd2f8ebf40487e9","scripts":{"test":"node --test tests/","prepack":"node scripts/build-client.mjs","prepare":"node scripts/build-client.mjs","build:client":"node scripts/build-client.mjs","watch:client":"node scripts/build-client.mjs --watch"},"_npmUser":{"name":"amorligno","email":"carl.gao128@outlook.com"},"repository":{"url":"git+https://github.com/lovetree128/dsh-git-gui.git","type":"git"},"_npmVersion":"12.0.2","description":"Git GUI panel for the DeepSeek Harness web surface: visualize working-tree changes (including every modification the agent makes), stage/commit/branch/merge/log/pull/push/stash/revert — all from the browser.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsh-git-gui_0.1.2_1786898812725_0.6421388296573358","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@amorligno/dsh-git-gui","version":"0.1.3","description":"Git GUI panel for the DeepSeek Harness web surface: visualize working-tree changes (including every modification the agent makes), stage/commit/branch/merge/log/pull/push/stash/revert — all from the browser.","type":"module","main":"lib/index.js","exports":{".":{"default":"./lib/index.js"},"./client":{"default":"./lib/client.js"},"./cordis.patch.yml":"./cordis.patch.yml","./package.json":"./package.json"},"repository":{"type":"git","url":"git+https://github.com/lovetree128/dsh-git-gui.git"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-sidebar"]}},"scripts":{"build:client":"node scripts/build-client.mjs","watch:client":"node scripts/build-client.mjs --watch","test":"node --test tests/","prepare":"node scripts/build-client.mjs","prepack":"node scripts/build-client.mjs"},"license":"MIT","gitHead":"c6c36473e637d670b08f0c4fe1b280b47d0784e5","_id":"@amorligno/dsh-git-gui@0.1.3","bugs":{"url":"https://github.com/lovetree128/dsh-git-gui/issues"},"homepage":"https://github.com/lovetree128/dsh-git-gui#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-Pwf6cfc9OcgkDjtBxON4GW2z5Pn4k5LmoLg9Aj4eZpnRhqn5knwuvuvcMnK7BzS+cCrLzfmDNPnAucxXfjqSug==","shasum":"bf3b94501a8eed767cbf386ef4f547c41b68710a","tarball":"https://registry.npmjs.org/@amorligno/dsh-git-gui/-/dsh-git-gui-0.1.3.tgz","fileCount":12,"unpackedSize":165816,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbKLdSeQp3AQGrcx+nbxrgIV61FTCame2+TB1l/LToAgIgbvihtRK+Og9l2BWCXi/rO+SQ5fKXgOpUb0xTmv39yCw="}]},"_npmUser":{"name":"amorligno","email":"carl.gao128@outlook.com"},"directories":{},"maintainers":[{"name":"amorligno","email":"carl.gao128@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-git-gui_0.1.3_1787068628303_0.7264939918707074"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T14:46:27.774Z","modified":"2026-08-18T15:57:08.663Z","0.1.0":"2026-08-16T14:46:28.161Z","0.1.1":"2026-08-16T14:57:08.462Z","0.1.2":"2026-08-16T16:46:52.893Z","0.1.3":"2026-08-18T15:57:08.501Z"},"bugs":{"url":"https://github.com/lovetree128/dsh-git-gui/issues"},"license":"MIT","homepage":"https://github.com/lovetree128/dsh-git-gui#readme","repository":{"type":"git","url":"git+https://github.com/lovetree128/dsh-git-gui.git"},"description":"Git GUI panel for the DeepSeek Harness web surface: visualize working-tree changes (including every modification the agent makes), stage/commit/branch/merge/log/pull/push/stash/revert — all from the browser.","maintainers":[{"name":"amorligno","email":"carl.gao128@outlook.com"}],"readme":"# `dsh-git-gui`\r\n\r\n<p align=\"center\">\r\n  <a href=\"./README.md\">English</a> ·\r\n  <a href=\"./docs/README.zh-CN.md\">简体中文</a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <img alt=\"Version 0.1.2\" src=\"https://img.shields.io/badge/version-0.1.2-blue\">\r\n  <img alt=\"DeepSeek Harness rc.6\" src=\"https://img.shields.io/badge/dsh-0.1.0--rc.6-skyblue\">\r\n  <img alt=\"MIT License\" src=\"https://img.shields.io/badge/license-MIT-green\">\r\n</p>\r\n\r\nA **Git graphical interface plugin** for the DeepSeek Harness Web UI: view, stage, commit, and revert project changes directly in the browser, while seeing every modification the Agent (harness) makes to workspace files in real time.\r\n\r\n> **Current version: v0.1.2** — Visual operations for viewing changes, committing/reverting, remote synchronization, and more are now available. Branch management, stash, and the AI modification timeline are planned to be completed and released in v0.2.0. See the [Roadmap](#roadmap) below for details.\r\n\r\n## Features\r\n\r\n- **Changes View**: Changes are grouped into \"Staged / Modified / Untracked / Merge Conflicts\". Click to view line-level diffs, stage/unstage changes with one click, and discard changes or delete untracked files with confirmation dialogs.\r\n- **File Tree View**: Browse all files in the workspace (automatically respecting `.gitignore`). File names are color-coded by status — unmodified files use the default text color (black in light mode / white in dark mode), modified but uncommitted files are **blue**, and untracked files are **red**. Supports directory collapsing and name filtering. Click an unmodified file to preview its contents directly.\r\n- **Log View**: View commit history (hash / reference badges / author / relative time), with support for reverting individual commits using `revert`.\r\n- **Nested Repository Detection**: When the session workspace itself is not a Git repository, the plugin automatically searches subdirectories for a single nested repository and uses it as the operation root (for example, when the repository is located in the `dsh-git-gui/` subdirectory of the workspace). If multiple nested repositories are found, the plugin explicitly prompts the user instead of guessing which one to use.\r\n\r\n## Installation\r\n\r\n### GitHub Source\r\n\r\n```powershell\r\ndsh plugin --profile web add github:lovetree128/dsh-git-gui\r\n```\r\n\r\n### npm Source\r\n\r\n```powershell\r\ndsh plugin --profile web add @amorligno/dsh-git-gui\r\n```\r\n\r\nAfter installation, restart `dsh web` and refresh the browser page.\r\n\r\n## Update\r\n\r\n```powershell\r\ndsh plugin --profile web update @amorligno/dsh-git-gui\r\n```\r\n\r\n## Uninstall\r\n\r\n```powershell\r\ndsh plugin --profile web remove @amorligno/dsh-git-gui\r\n```\r\n\r\n## Where to start\r\n\r\nAfter installing the plugin, open the DeepSeek Harness Web UI and click the added button in the bottom-left corner to open the sidebar. Then just enjoy the version control.\r\n\r\n## Structure\r\n\r\n```text\r\nHost (Node):  GitService (@Remote, namespace `git`, Typert SRC mode → git/* endpoints)\r\n               ├─ runner.js   spawn git (no shell) + per-workspace queue + output limit + error classification\r\n               ├─ parse.js    porcelain v2 / unified diff / log / refs / stash parsing\r\n               └─ activity.js session/event → (session, turn, tool, file) timeline (Stage 2)\r\n\r\nClient (Browser): sidebar.footer.action entry button (uncommitted-count badge) + shell.overlay floating panel\r\n               ├─ control.js  session cwd synchronization + polling + operation runner + confirmation dialogs\r\n               ├─ v-*.js      view components (React.createElement, no JSX)\r\n               └─ styles.js   theme tokens (--dsw-alias-*) and styles, adaptive to light/dark mode\r\n```\r\n\r\n## Roadmap\r\n\r\n| Stage | Content | Status |\r\n|--------------|---|---|\r\n| v0.1.1 | Changes / file tree / log + commit, stage, discard, revert, **Pull/Push/Fetch + Add Remote**, dark mode, nested repository detection | ✅ Current version |\r\n| v0.2.0 (unreleased) | **Branch management** (local/remote lists, switch/create, merge, ahead/behind) | 🔧 In progress |\r\n| v0.2.0 (unreleased) | **Stash** (push/pop/apply/drop) | 🔧 In progress |\r\n| v0.2.0 (unreleased) | **AI modification timeline** (session × turn × tool → file attribution view) | 🔧 In progress |\r\n| Future ideas | Reset entry point, file history (`git log -- <path>`), settings card (polling interval / Git path / identity fallback), interactive rebase (PTY) | 💡 To be designed |\r\n\r\n## Limitations\r\n\r\n- When panel operations and Agent edits occur concurrently, Git's own state is treated as authoritative. A warning bar is displayed while the session is running, and operations such as discarding changes require confirmation.\r\n- Untracked file content previews are limited to 512 KiB; diff output is limited to 4 MiB (truncation is marked); the file tree supports a maximum of 3,000 files.\r\n- Credentials rely on existing Git credential helpers (WinCred / SSH agent). Interactive password input is disabled (`GIT_TERMINAL_PROMPT=0`) to ensure operations do not hang.\r\n- On Windows, if the repository's `.git` directory was created by a process running with administrator privileges, tools running with normal privileges, such as PyCharm, need to execute `git config --global --add safe.directory '<path>'` (Git 2.35+ hijacking protection).\r\n- The plugin has not yet been tested on macOS or Linux. Please report any issues you encounter.","readmeFilename":"README.md"}