dsh-claude-move 0.2.1
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/CHANGELOG.md +73 -0
- package/LICENSE +201 -0
- package/NOTICE +23 -0
- package/README.es.md +291 -0
- package/README.hi.md +292 -0
- package/README.md +317 -0
- package/README.pt.md +291 -0
- package/README.zh.md +311 -0
- package/THIRD_PARTY_NOTICES.md +67 -0
- package/assets/social-card.png +0 -0
- package/client/client.js +451 -0
- package/cordis.patch.yml +5 -0
- package/index.mjs +2891 -0
- package/lib/agmd-section.mjs +144 -0
- package/lib/commands-migrate.mjs +85 -0
- package/lib/context.mjs +156 -0
- package/lib/convert.mjs +725 -0
- package/lib/discovery.mjs +619 -0
- package/lib/frontmatter.mjs +58 -0
- package/lib/handoff.mjs +136 -0
- package/lib/imports-store.mjs +64 -0
- package/lib/manifest.mjs +73 -0
- package/lib/persona.mjs +37 -0
- package/lib/report.mjs +63 -0
- package/lib/settings.mjs +147 -0
- package/lib/skill-migrate.mjs +128 -0
- package/lib/skills-provider.mjs +219 -0
- package/lib/sources/claude/mapper.mjs +102 -0
- package/lib/sources/claude/parser.mjs +190 -0
- package/lib/sources/codex/mapper.mjs +120 -0
- package/lib/sources/codex/parser.mjs +451 -0
- package/lib/sources/contract.mjs +145 -0
- package/lib/sources/hermes/mapper.mjs +61 -0
- package/lib/sources/hermes/parser.mjs +152 -0
- package/lib/sources/opencode/convert.mjs +236 -0
- package/lib/sources/opencode/mapper.mjs +102 -0
- package/lib/sources/opencode/parser.mjs +266 -0
- package/lib/wizard.mjs +329 -0
- package/package.json +66 -0
package/README.hi.md
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# dsh-claude-move
|
|
2
|
+
|
|
3
|
+
**DeepSeek Harness पर जाते समय अपना Claude Code इतिहास बनाए रखें।** एक ही इंस्टॉल में Claude का हर सत्र, याद, कौशल और `CLAUDE.md` DSH में फिर-से-शुरू होने योग्य सत्रों के रूप में **कॉपी** हो जाता है — एक समर्पित `claudecode` वर्कस्पेस में समूहित (कॉन्फ़िग के ज़रिए प्रति प्रोजेक्ट एक वर्कस्पेस वैकल्पिक)।
|
|
4
|
+
|
|
5
|
+
`केवल-कॉपी` · `बिना रुकावट जारी` · `प्रोजेक्ट-वार वर्कस्पेस` · `Claude Code के साथ लाइव तालमेल`
|
|
6
|
+
|
|
7
|
+
[](https://github.com/PerryLink/dsh-claude-move/actions/workflows/test.yml)
|
|
8
|
+
[](https://www.npmjs.com/package/dsh-claude-move)
|
|
9
|
+
[](https://www.npmjs.com/package/dsh-claude-move)
|
|
10
|
+
[](https://nodejs.org)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
[](https://github.com/topics/dsh)
|
|
13
|
+
[](https://github.com/topics/dsh-plugin)
|
|
14
|
+
[](https://github.com/PerryLink/dsh-claude-move/issues)
|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+
[English](README.md) | [中文](README.zh.md) | [Español](README.es.md) | [Português](README.pt.md) | हिन्दी
|
|
19
|
+
|
|
20
|
+
> डेवलपर पूर्वावलोकन (0.1.0)। रोडमैप और डिज़ाइन: [PLAN.md](PLAN.md) · परिवर्तन इतिहास: [CHANGELOG.md](CHANGELOG.md)।
|
|
21
|
+
|
|
22
|
+
## ✨ विशेषताएँ
|
|
23
|
+
|
|
24
|
+
- 🔍 **स्वतः खोज** — Claude का डेटा रूट (`$CLAUDE_CONFIG_DIR`, डिफ़ॉल्ट `~/.claude`) ढूँढता है और हर प्रोजेक्ट/सत्र (शीर्षक, समय, गिनतियाँ), डायरेक्टरी व git स्थिति, यादें, कौशल, वैश्विक `CLAUDE.md` और `settings.json` को अनुक्रमित करता है — वृद्धिशील कैश से सिर्फ़ बदली फ़ाइलें दोबारा पढ़ी जाती हैं।
|
|
25
|
+
- 📥 **पूर्ण-विश्वसनीय इतिहास आयात** — संतुलित, फिर-से-शुरू होने योग्य DSH सत्र (`turn/start → step/start → user/message → assistant/message → tool/call → tool/result → step/end → turn/end`), ख़राब पंक्तियाँ पंक्ति-संख्या सहित। बाधित टूल कॉल इस तरह सुधारे जाते हैं कि हर `tool_use` का ठीक एक परिणाम हो (रीज़्यूम पर स्थायी 400 अब नहीं)।
|
|
26
|
+
- 🗂 **एक `claudecode` वर्कस्पेस (डिफ़ॉल्ट)** — हर आयातित सत्र एक समर्पित "claudecode" वर्कस्पेस में उतरता है जो एक नए फ़ोल्डर (`$DSH_HOME/claudecode` डिफ़ॉल्ट; प्लगइन केवल यही बनाता है) से जुड़ा होता है। `workspaceMode: 'per-project'` प्रति-प्रोजेक्ट एक वर्कस्पेस वाला समूहन वापस लाता है।
|
|
27
|
+
- 🔁 **केवल-कॉपी और वृद्धिशील** — किसी भी तरफ़ कुछ हटता/बदलता नहीं। दोबारा आयात करने पर सिर्फ़ नए टर्न उसी DSH सत्र में जुड़ते हैं; `force: true` नए id से एक अतिरिक्त पूरी कॉपी बचाता है।
|
|
28
|
+
- 🧠 **व्यक्तिगत संदर्भ हमेशा ताज़ा** — यादें लाइव प्रॉम्प्ट खंड के रूप में, Claude के कौशल असली DSH कौशल के रूप में (कौशल खोज में `README.md` जैसे गैर-कौशल दस्तावेज़ छोड़ दिए जाते हैं), वैश्विक + प्रोजेक्ट `CLAUDE.md` शुरुआती खंड के रूप में। `claudecode` वर्कस्पेस में भी memory/`CLAUDE.md` समाधान के लिए मूल प्रोजेक्ट डायरेक्टरी याद रखी जाती है।
|
|
29
|
+
- ⚡ **चल रहे Claude Code के साथ लाइव तालमेल** — दोनों टूल साथ-साथ चलाएँ; हर री-रन सिर्फ़ बदलाव लाता है।
|
|
30
|
+
- 🖥 **वेब पैनल और एक-चरण कमांड** — `/claude-import-all`, `/resume-claude` और प्रोग्रेस वाला तैरता माइग्रेशन पैनल।
|
|
31
|
+
- 🪄 **चार-स्रोत माइग्रेशन विज़ार्ड (0.2.1)** — एक `/move` विज़ार्ड और `move_detect` / `move_preview` / `move_run` टूल Claude Code, Codex, OpenCode और Hermes को माइग्रेट करते हैं: यादें/निर्देश प्रबंधित `AGENTS.md` अनुभाग बनते हैं, skills असली DSH skills बनते हैं, slash कमांड DSH कमांड बनते हैं और सत्र फिर से शुरू होने योग्य DSH सत्र बनते हैं — अनुमोदन द्वार, idempotent (`move.json`), विरोध diff के रूप में, अनुमान नहीं।
|
|
32
|
+
- 🛡 **सुरक्षा सबसे पहले** — स्रोत फ़ाइलें सख़्ती से केवल-पठन, DSH लॉग append-only, सीक्रेट केवल स्थान से, अनुमति-रिकॉर्ड गिने जाते हैं पर आयात कभी नहीं होते।
|
|
33
|
+
|
|
34
|
+
## 🚀 त्वरित शुरुआत
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
# 1. इंस्टॉल
|
|
38
|
+
dsh plugin --profile web add -w github:PerryLink/dsh-claude-move
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
2. किसी भी DSH सत्र में एक कमांड चलाएँ:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/claude-import-all # स्कैन → हर Claude सत्र कॉपी → रिपोर्ट
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. पहले से खुले वेब पृष्ठ को एक बार ताज़ा करें (पैनल में «सत्र सूची ताज़ा करें» बटन है) और किसी भी आयातित सत्र पर क्लिक करके जारी रखें। **DSH रीस्टार्ट की ज़रूरत नहीं** — देखें [आयात के बाद](#-आयात-के-बाद)।
|
|
48
|
+
|
|
49
|
+
बारीक़ नियंत्रण चाहिए?
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
claude_scan # सभी प्रोजेक्ट/सत्रों की संरचित अनुक्रमणिका
|
|
53
|
+
import_claude { path: "~/.claude/projects" } # एक प्रोजेक्ट डायरेक्टरी (पुनरावर्ती)
|
|
54
|
+
import_claude { path: "all" } # सब कुछ
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 🪄 चार-स्रोत माइग्रेशन विज़ार्ड
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
/move # एक-चरण विज़ार्ड: पता लगाएँ → पूर्वावलोकन → निष्पादन → रिपोर्ट (चारों स्रोत)
|
|
61
|
+
move_detect # Claude Code / Codex / OpenCode / Hermes स्कैन करता है
|
|
62
|
+
move_preview # प्रति-आइटम योजना: new | unchanged | changed | conflict (diff सहित) | unsupported
|
|
63
|
+
move_run # अनुमोदन द्वार के बाद निष्पादन; समाधान: skip | overwrite | rename | merge (डिफ़ॉल्ट skip, कभी अनुमान नहीं)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- **स्रोत** — Claude Code (`~/.claude`), Codex (`~/.codex`), OpenCode (डेटा + कॉन्फ़िग रूट), Hermes (skills/मेमोरी रूट); हर स्रोत का अपना parser और mapper है।
|
|
67
|
+
- **मैपिंग** — यादें/निर्देश → DSH वैश्विक `AGENTS.md` में केवल-जोड़ प्रबंधित अनुभाग (हर आइटम का एक चिह्नित अनुभाग); skills → असली DSH skills (`SKILL.md` बंडल जैसे-के-तैसे कॉपी, अन्य प्रारूप परिवर्तित); slash कमांड → पंजीकृत DSH कमांड (रीस्टार्ट के बाद `move.json` से प्रॉम्प्ट फिर बनते हैं); सत्र → फिर से शुरू होने योग्य DSH सत्र (चरण 1 वाले ही आयातक)।
|
|
68
|
+
- **Idempotent** — हर लागू योजना `$DSH_HOME/claude-move/move.json` में दर्ज होती है (`digest` / `targetDigest` / `appliedAt`); दोबारा चलाने पर अपरिवर्तित आइटम छूटते हैं और `force` फिर लागू करता है।
|
|
69
|
+
- **अनुमोदन द्वार** — जो निष्पादन कुछ भी लिखेगा वह पहले `ctx.approval` से पूछता है; `allowed-once` के अलावा कुछ भी = शून्य लेखन।
|
|
70
|
+
|
|
71
|
+
## 🗂 क्या माइग्रेट होता है
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
~/.claude (केवल-पठन)
|
|
75
|
+
├─ projects/*/*.jsonl ──→ फिर-से-शुरू होने योग्य DSH सत्र, एक "claudecode" वर्कस्पेस में समूहित (डिफ़ॉल्ट)
|
|
76
|
+
├─ projects/*/memory/ ──→ सिस्टम-प्रॉम्प्ट का लाइव याद-खंड (हर अनुरोध पर दोबारा पढ़ा जाता है)
|
|
77
|
+
├─ skills/** ──→ असली DSH कौशल
|
|
78
|
+
└─ CLAUDE.md + settings ──→ शुरुआती प्रॉम्प्ट खंड + कॉन्फ़िगरेशन सुझाव (कभी अपने-आप लागू नहीं)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
| Claude Code में | DSH में बनकर उतरता है |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| सत्र ट्रांसक्रिप्ट (`projects/*/*.jsonl`) | संतुलित, फिर-से-शुरू होने योग्य DSH सत्र — `user`/`assistant`/`tool`/`thinking` की पूर्ण-विश्वसनीय मैपिंग और बाधित-टूल-कॉल सुधार — एक **`claudecode` वर्कस्पेस** (डिफ़ॉल्ट `$DSH_HOME/claudecode`) या प्रति प्रोजेक्ट एक वर्कस्पेस (`workspaceMode: 'per-project'`) में समूहित |
|
|
84
|
+
| यादें (`projects/*/memory/*.md`) | सिस्टम-प्रॉम्प्ट का लाइव संदर्भ खंड, हर अनुरोध पर दोबारा पढ़ा जाता है (`feedback > project > reference > user`) — मूल प्रोजेक्ट डायरेक्टरी `claudecode` वर्कस्पेस में भी याद रखी जाती है |
|
|
85
|
+
| कौशल (`~/.claude/skills/**`) | असली DSH कौशल (kebab-case नाम, टकराव पर प्रत्यय, डिफ़ॉल्ट अधिकतम 30; `README.md`/`MEMORY.md` और विवरण-रहित फ़ाइलें छोड़ दी जाती हैं) |
|
|
86
|
+
| `CLAUDE.md` (वैश्विक + प्रोजेक्ट-स्तरीय) | शुरुआती प्रॉम्प्ट खंड; प्रोजेक्ट फ़ाइल को प्राथमिकता |
|
|
87
|
+
| `settings.json` | DSH कॉन्फ़िगरेशन सुझाव + अनमैप-योग्य कुंजियों की स्पष्ट सूची |
|
|
88
|
+
| प्रोजेक्ट स्थिति (डायरेक्टरी, git ब्रांच व बदली फ़ाइलें) | स्कैन अनुक्रमणिका, वेब पैनल बैज और `/resume-claude` हैंडऑफ़ में दिखती है |
|
|
89
|
+
|
|
90
|
+
## 📦 इंस्टॉलेशन
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
# GitHub से
|
|
94
|
+
dsh plugin --profile web add -w github:PerryLink/dsh-claude-move
|
|
95
|
+
|
|
96
|
+
# स्थानीय चेकआउट (विकास हेतु)
|
|
97
|
+
dsh plugin --profile web add -w link:/path/to/dsh-claude-move
|
|
98
|
+
|
|
99
|
+
# पैक किए गए tarball से
|
|
100
|
+
dsh plugin --profile web add -w ./dsh-claude-move-0.1.0.tgz
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
पैकेज शुद्ध ESM है और इसमें कोई बिल्ड चरण नहीं है, इसलिए Git से इंस्टॉल में `prepare` स्क्रिप्ट या `allowBuilds` प्रविष्टि की ज़रूरत नहीं। आधिकारिक [पैकेजिंग व इंस्टॉल गाइड](https://deepseek-harness.github.io/deepseek-harness/develop/basic/publish) देखें।
|
|
104
|
+
|
|
105
|
+
## 🛠 उपयोग
|
|
106
|
+
|
|
107
|
+
प्लगइन माउंट होने पर किसी भी सत्र में टूल बुलाएँ:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
claude_scan # पूर्ण स्कैन (वृद्धिशील कैश)
|
|
111
|
+
claude_scan { path: "~/.claude/projects/<slug>" } # आंशिक स्कैन
|
|
112
|
+
claude_scan { refresh: true } # कैश छोड़कर पूरा दोबारा स्कैन
|
|
113
|
+
|
|
114
|
+
import_claude { path: "~/.claude/projects/<slug>/<sessionId>.jsonl" } # एक सत्र
|
|
115
|
+
import_claude { path: "~/.claude/projects" } # डायरेक्टरी (पुनरावर्ती)
|
|
116
|
+
import_claude { path: "all" } # सब कुछ
|
|
117
|
+
# कभी भी दोबारा चला सकते हैं: बिना बदलाव वाली फ़ाइलें छूट जाती हैं, बढ़ी हुई ट्रांसक्रिप्ट में सिर्फ़ नए टर्न जुड़ते हैं।
|
|
118
|
+
import_claude { path: "...", force: true } # import-<src>-<n> के रूप में नई पूरी कॉपी (पुरानी कॉपी सुरक्षित)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
कमांड (उपयोगकर्ता-ट्रिगर, कोई मॉडल टर्न नहीं):
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
/claude-import-all # एक चरण: स्कैन → सब आयात → रिपोर्ट → वर्तमान सत्र में इंजेक्ट
|
|
125
|
+
/resume-claude latest # सबसे हालिया Claude सत्र जारी करें
|
|
126
|
+
/resume-claude <sessionId> # स्रोत सत्र id या import-<src> id से
|
|
127
|
+
/resume-claude <कीवर्ड> # शीर्षकों से मिलान; कई मिलान सूचीबद्ध होते हैं, अंदाज़ा कभी नहीं
|
|
128
|
+
/claude-move-reset # प्लगइन कैश रीसेट करें (बुकमार्क + आयात मैप); आयातित सत्र सुरक्षित रहते हैं
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
वेब पैनल: नीचे-दाएँ तैरता **🐳 Claude 迁移** बटन पैनल खोलता है — प्रोजेक्ट/सत्र ट्री (स्थिति बैज: आयात नहीं / आयातित / आयातित-नए-टर्न / स्रोत अनुपलब्ध / डायरेक्टरी मौजूद नहीं / git गंदा), कीवर्ड फ़िल्टर, पृष्ठांकन, प्रति-सत्र «आयात करें और जारी रखें» + «सत्र खोलें» + «सत्र सूची ताज़ा करें», रद्द करने की सुविधा के साथ बैच आयात प्रोग्रेस बार, और कैश-रीसेट बटन। पाठ ब्राउज़र भाषा के अनुसार zh/en होते हैं। डेटा प्लगइन की अपनी `/api/claude-move/*` JSON रूट्स से आता है (सार्वजनिक `ctx.webServer` seam)।
|
|
132
|
+
|
|
133
|
+
- **स्कैन** एक संरचित JSON अनुक्रमणिका लौटाता है: प्रोजेक्ट (slug/cwd/डायरेक्टरी की मौजूदगी/git ब्रांच व बदली फ़ाइलें), सत्र (शीर्षक/समय/गिनतियाँ/ख़राब पंक्तियाँ), यादें, कौशल, वैश्विक CLAUDE.md व settings.json; हर सत्र में `import.status` (`none`/`imported`/`source-missing`) और नए अनसिंक टर्न होने पर `import.updatesPending` होता है। `settingsSuggestions` में settings.json का DSH अनुवाद और अनमैप-योग्य कुंजियाँ होती हैं (देखें [COMPLIANCE.md](COMPLIANCE.md))।
|
|
134
|
+
- **आयात** user/assistant/tool/thinking संदेशों को पूरी विश्वसनीयता से मैप करता है; बाधित टूल कॉल सुधारे जाते हैं (हर `tool_use` का ठीक एक परिणाम), और परिणाम एक संतुलित, फिर-से-शुरू होने योग्य सत्र होता है जो डिफ़ॉल्ट रूप से `claudecode` वर्कस्पेस से (या `workspaceMode: 'per-project'` में अपने प्रोजेक्ट वर्कस्पेस से) जुड़ा होता है। बैच फ़ाइल-दर-फ़ाइल सारांश देता है (`imported`/`appended`/`already-imported`/`skipped`/`failed`), ख़राब पंक्तियाँ पंक्ति-संख्या के साथ आती हैं, संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं (फ़ाइल:पंक्ति:प्रकार) और अनुमति-श्रेणी रिकॉर्ड गिने जाते हैं, आयात कभी नहीं होते। आयात कभी कुछ हटाता या दोबारा लिखता नहीं: DSH के मौजूदा सत्र अछूते रहते हैं, पहले से आयातित कॉपियाँ सुरक्षित रहती हैं, और Claude की स्रोत फ़ाइलें कभी लिखी नहीं जातीं।
|
|
135
|
+
- **व्यक्तिगत संदर्भ अपने आप लागू होता है** (कोई आयात क्रिया ज़रूरी नहीं):
|
|
136
|
+
- यादें: `projects/*/memory/*.md` गतिशील खंड के रूप में इंजेक्ट होते हैं, हर अनुरोध पर दोबारा पढ़े जाते हैं (नई यादें तुरंत लागू), क्रम `feedback > project > reference > user`, डिफ़ॉल्ट सीमा 8 KiB। `memoryScope: current-project` (डिफ़ॉल्ट) पर केवल वर्तमान सत्र के प्रोजेक्ट की यादें इंजेक्ट होती हैं (cwd का कोई मेल न होने पर सभी प्रोजेक्ट पर वापसी); `all` सब कुछ इंजेक्ट करता है, वर्तमान प्रोजेक्ट पहले। `claudecode` वर्कस्पेस में प्लगइन मूल प्रोजेक्ट को दर्ज `sourceCwd` से हल करता है।
|
|
137
|
+
- कौशल: `~/.claude/skills/**/SKILL.md` (साथ में सपाट `*.md`) और वर्तमान प्रोजेक्ट का `.claude/skills/**` DSH कौशल बन जाते हैं (नाम kebab-case में, टकराव पर प्रत्यय, अधिकतम 30; `README.md`/`MEMORY.md` और विवरण-रहित फ़ाइलें छोड़ दी जाती हैं ताकि कौशल लोडिंग कभी न टूटे); कैटलॉग और `skill` टूल DSH का काम है।
|
|
138
|
+
- निर्देश: वैश्विक `~/.claude/CLAUDE.md` और वर्तमान सत्र का `.claude/CLAUDE.md` शुरुआती खंड के रूप में इंजेक्ट होते हैं (प्रोजेक्ट को प्राथमिकता; `claudecode` वर्कस्पेस में `sourceCwd` से हल)।
|
|
139
|
+
|
|
140
|
+
## ✅ आयात के बाद
|
|
141
|
+
|
|
142
|
+
**DSH को दोबारा शुरू (restart) करने की ज़रूरत नहीं है।** आयात पूरा होते ही सार्वजनिक `sessionPersistence` सेवा के ज़रिए स्थायी रूप से लिख दिया जाता है:
|
|
143
|
+
|
|
144
|
+
- सर्वर-साइड सूचियाँ (`session.list` / `workspace.list` RPC, CLI, कोई भी नया खुला पृष्ठ) आयातित सत्रों को **`claudecode` वर्कस्पेस** (एक प्रति प्रोजेक्ट, `workspaceMode: 'per-project'` से) के अंतर्गत तुरंत दिखाती हैं।
|
|
145
|
+
- पैनल पहले से खुले पृष्ठ की सत्र सूची स्वयं ताज़ा करता है (shell के `sessions`/`workspaces` क्लाइंट सेवाएँ, क्षमता-जाँच से) और हर आयातित सत्र के लिए «सत्र खोलें» बटन देता है; इन सेवाओं के बिना पुराने shells में «सत्र सूची ताज़ा करें» बटन / पृष्ठ रीलोड पर वापसी होती है — आयात सीधे पर्सिस्टेंस सेवा में cold सत्र लिखता है, इसलिए लाइव `host/session-added` फ़्रेम नहीं जाता; वर्कस्पेस समूह लाइव अपडेट होते हैं (`host/workspace-changed`)।
|
|
146
|
+
- आयातित सत्र तुरंत खोले, पढ़े और जारी किए जा सकते हैं — `/resume-claude`, या सूची में सत्र पर क्लिक करें। हैंडऑफ़ मूल प्रोजेक्ट डायरेक्टरी बताता है। कभी भी दोबारा आयात चलाने पर केवल नए टर्न उन्हीं सत्रों में जुड़ते हैं।
|
|
147
|
+
|
|
148
|
+
## ⚙️ कॉन्फ़िगरेशन
|
|
149
|
+
|
|
150
|
+
सब वैकल्पिक, `cordis.yml` में बदले जा सकते हैं:
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
- id: claude-move
|
|
154
|
+
name: dsh-claude-move
|
|
155
|
+
config:
|
|
156
|
+
claudeHome: null # डिफ़ॉल्ट: $CLAUDE_CONFIG_DIR या ~/.claude
|
|
157
|
+
workspaceMode: claudecode # 'claudecode' (डिफ़ॉल्ट: सभी आयातों के लिए एक समर्पित वर्कस्पेस) | 'per-project' (प्रति स्रोत cwd एक वर्कस्पेस)
|
|
158
|
+
claudecodeDir: null # claudecode वर्कस्पेस फ़ोल्डर; डिफ़ॉल्ट $DSH_HOME/claudecode (प्लगइन केवल यही फ़ोल्डर बनाता है)
|
|
159
|
+
scanGit: true # git जाँच स्तर: true पूर्ण | 'branch' शून्य सबप्रोसेस | false
|
|
160
|
+
gitTimeoutMs: 5000 # git सबप्रोसेस समय-सीमा
|
|
161
|
+
scanConcurrency: 8 # प्रोजेक्ट स्कैन समानांतर सीमा
|
|
162
|
+
maxTranscriptBytes: 67108864
|
|
163
|
+
excludeProjects: [] # छोड़ने के लिए slug सबस्ट्रिंग, जैसे ['demo-']
|
|
164
|
+
enableMemory: true
|
|
165
|
+
memoryMaxBytes: 8192
|
|
166
|
+
memoryScope: current-project # 'current-project' केवल वर्तमान प्रोजेक्ट | 'all' सब, वर्तमान पहले
|
|
167
|
+
enableSkills: true
|
|
168
|
+
maxSkills: 30
|
|
169
|
+
extraSkillDirs: []
|
|
170
|
+
enableInstructions: true
|
|
171
|
+
resumeMaxChars: 2048 # हैंडऑफ़ सारांश की अक्षर-सीमा
|
|
172
|
+
resumeMode: inject # 'inject' हैंडऑफ़ सारांश | 'agents' ctx.agents.resume
|
|
173
|
+
enableWebPanel: true # /api/claude-move/* पैनल रूट्स पंजीकृत करें
|
|
174
|
+
importConcurrency: 4 # प्रति बैच पढ़ना+रूपांतरण समानांतर सीमा (सहेजना क्रमिक रहता है)
|
|
175
|
+
# चार-स्रोत विज़ार्ड (0.2.1+):
|
|
176
|
+
requireApproval: true # विज़ार्ड लेखन पहले ctx.approval से पूछता है (केवल allowed-once)
|
|
177
|
+
codexHome: null # डिफ़ॉल्ट: $CODEX_HOME या ~/.codex
|
|
178
|
+
opencodeDataHome: null # डिफ़ॉल्ट: प्लेटफ़ॉर्म XDG डेटा निर्देशिका/opencode
|
|
179
|
+
opencodeConfigHome: null # डिफ़ॉल्ट: प्लेटफ़ॉर्म XDG कॉन्फ़िग निर्देशिका/opencode
|
|
180
|
+
hermesHome: null # डिफ़ॉल्ट: $HERMES_HOME या ~/.hermes
|
|
181
|
+
skillsDir: null # विज़ार्ड skills लक्ष्य; डिफ़ॉल्ट $DSH_HOME/skills
|
|
182
|
+
agentsMdPath: null # विज़ार्ड यादें/निर्देश लक्ष्य; डिफ़ॉल्ट $DSH_HOME/AGENTS.md
|
|
183
|
+
moveWorkspaceMode: per-source # 'per-source' | 'single' वर्कस्पेस समूहन
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 🗑 अनइंस्टॉल
|
|
187
|
+
|
|
188
|
+
प्रोफ़ाइल के bundles से `claude-move` पंक्ति हटाएँ और `dsh` रीस्टार्ट करें। आयातित सत्र DSH के डेटा डायरेक्टरी में बने रहते हैं; प्लगइन केवल अपना कैश (`$DSH_HOME/claude-move/`) और `claudecode` वर्कस्पेस फ़ोल्डर लिखता है, और Claude के स्रोत डेटा को कभी नहीं छूता।
|
|
189
|
+
|
|
190
|
+
## 🧭 संगतता
|
|
191
|
+
|
|
192
|
+
- लक्ष्य `dsh 0.1.0-rc.6` (वेब प्रोफ़ाइल); peer निर्भरताएँ `0.1.0-rc.6` पर पिन। Node `^22.19 || >=24`।
|
|
193
|
+
- अंतिम सत्यापन **2026-08-13** विंडोज़ (Node 22) पर `@deepseek-ai/dsh@0.1.0-rc.6` के विरुद्ध: tarball से शून्य-से इंस्टॉल, वास्तविक स्कैन (40 प्रोजेक्ट / 2387 सत्र), वास्तविक बैच आयात 13/13 + आइडेम्पोटेंट पुनः-आयात 13/13, वर्कस्पेस जुड़ाव व पर्सिस्टेंस आर्टिफ़ैक्ट पुष्ट। macOS/Linux अब CI मैट्रिक्स (linux/macos/windows × Node 22) से आच्छादित।
|
|
194
|
+
- **2026-08-14** को वर्तमान `deepseek-harness` चेकआउट (वेब प्रोफ़ाइल, JSONL+zstd सत्र बैकएंड, वास्तविक वर्कस्पेस रजिस्ट्री) के विरुद्ध पृथक home में सत्यापित: प्लगइन माउंट कर पूरा वेब बूट, पैनल रूट्स से स्कैन + पूर्ण आयात, `claudecode` वर्कस्पेस निर्माण व सत्र जुड़ाव, मौजूदा आयातित सत्र में वृद्धिशील जुड़ाव (seq निरंतर, साफ़ लोड), रीस्टार्ट-सुरक्षित पुनः-आयात, और पूरी प्रक्रिया में पहले से मौजूद DSH सत्र अछूते। कोई सत्र कभी आर्काइव, हटाया या दोबारा लिखा नहीं जाता।
|
|
195
|
+
|
|
196
|
+
### संगतता मैट्रिक्स (केवल सार्वजनिक seams)
|
|
197
|
+
|
|
198
|
+
| सतह | उपयोग | अनुपस्थिति पर वापसी |
|
|
199
|
+
| --- | --- | --- |
|
|
200
|
+
| host सेवाएँ (`tools` / `sessionPersistence` / `workspaceRegistry` / `commands` / `systemPrompt` / `skills` / `webServer`) | सूचीबद्ध जगह उपयोग | वैकल्पिक सेवाएँ `internal/service` से प्रतिक्रियाशील रूप से पंजीकृत होती हैं; `fs` अनुपस्थिति ज़ोर से विफल |
|
|
201
|
+
| `sessionPersistence.listSnapshots` / `readFrom`, `fs.streamText`, `ctx.jobs`, `ctx.agents.resume` | क्षमता-जाँच | `list()` / पूर्ण पठन + ज़ोर से अस्वीकार / अपनी job तालिका / सारांश इंजेक्शन |
|
|
202
|
+
| shell क्लाइंट सेवाएँ (`sessions.refresh/open`, `workspaces.refresh`) | पैनल apply पर क्षमता-जाँच | पूर्ण पृष्ठ रीलोड |
|
|
203
|
+
| नई प्लेटफ़ॉर्म क्षमताएँ कभी कठोर आवश्यकता नहीं — प्लगइन rc.6 पर हमेशा बूट होता है। | | |
|
|
204
|
+
|
|
205
|
+
## 🔐 अनुमतियाँ और डेटा
|
|
206
|
+
|
|
207
|
+
- **पढ़ता है** `~/.claude` (ट्रांसक्रिप्ट, यादें, कौशल, CLAUDE.md, settings.json) — सख़्ती से केवल-पठन — और वे प्रोजेक्ट डायरेक्टरी जिनमें आयात करता है (`per-project` मोड में वर्कस्पेस जुड़ाव)।
|
|
208
|
+
- **लिखता है** DSH सत्र लॉग सार्वजनिक `sessionPersistence` सेवा के ज़रिए — केवल create + append, मौजूदा सत्र कभी हटाता/दोबारा लिखता/आर्काइव नहीं करता — वर्कस्पेस रजिस्ट्री रिकॉर्ड, अपना कैश `$DSH_HOME/claude-move/` (स्कैन बुकमार्क + आयात मैप), और `claudecode` वर्कस्पेस फ़ोल्डर (`$DSH_HOME/claudecode` डिफ़ॉल्ट; साधारण `mkdir`, कभी कोई विलोपन नहीं)।
|
|
209
|
+
- **कभी नहीं** Claude की स्रोत फ़ाइलें बदलता, अन्य एप्लिकेशन का डेटा छूता, या नेटवर्क एक्सेस करता।
|
|
210
|
+
- **कोई क्रेडेंशियल** पढ़ा या भेजा नहीं जाता; ट्रांसक्रिप्ट में संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं।
|
|
211
|
+
|
|
212
|
+
## 🛡 सुरक्षा सीमाएँ
|
|
213
|
+
|
|
214
|
+
- स्रोत फ़ाइलें सख़्ती से केवल-पठन; DSH सत्र लॉग append-only (केवल `create` + `append`)।
|
|
215
|
+
- बाहरी ट्रांसक्रिप्ट अविश्वसनीय इनपुट हैं: उनमें कुछ भी निष्पादित नहीं होता; system/developer/thinking सामग्री हैंडऑफ़ सारांश में कभी नहीं जाती।
|
|
216
|
+
- DSH इंजन, आधिकारिक UI पैकेज या apiproxy में कोई बदलाव नहीं — केवल सार्वजनिक सेवाएँ (`sessionPersistence` / `workspaceRegistry` / `tools` / `commands` / `systemPrompt` / `skills` / `webServer`)।
|
|
217
|
+
- संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं (सामग्री कभी नहीं); `permission`/`permission-mode`/`queue-operation` रिकॉर्ड गिने जाते हैं, आयात नहीं होते।
|
|
218
|
+
|
|
219
|
+
## 🩺 समस्या-निवारण
|
|
220
|
+
|
|
221
|
+
- पंक्ति असर नहीं दिखा रही: `dsh --profile <p> --dump-config` में `# == dsh-claude-move` छपना चाहिए; `dsh plugin --profile <p> add -w ...` दोबारा चलाएँ।
|
|
222
|
+
- वेब बूट होकर चुपचाप लटक जाए: `dsh plugin add` से बने नए प्रोफ़ाइल में सिर्फ़ `dsh-base` होता है — `dsh.profile.bundles` में `@deepseek-ai/dsh-web-app` जोड़ें (मौजूदा `web` प्रोफ़ाइल में इंस्टॉल करने पर कुछ नहीं चाहिए)।
|
|
223
|
+
- पैनल रूट्स 404: वे केवल तब चलती हैं जब `enableWebPanel: true` और कोई वेब सर्वर कम्पोज़ हो; बूट लॉग में FAILED फ़ाइबर देखें।
|
|
224
|
+
- आयात में "transcript 过大" विफलता: `maxTranscriptBytes` बढ़ाएँ या वह फ़ाइल अलग से आयात करें।
|
|
225
|
+
- आयात सफल पर साइडबार में नया सत्र नहीं दिखा: पृष्ठ पहले से खुला था — पैनल का «सत्र सूची ताज़ा करें» एक बार दबाएँ (या पृष्ठ रीलोड करें)। DSH रीस्टार्ट कभी ज़रूरी नहीं।
|
|
226
|
+
- लॉग: बूट विफलताएँ `dsh` कंसोल पर छपती हैं; प्लगइन वर्कस्पेस/आयात-मैप समस्याओं के लिए `[claude-move]` उपसर्ग से त्रुटियाँ लॉग करता है।
|
|
227
|
+
|
|
228
|
+
## 📚 दस्तावेज़
|
|
229
|
+
|
|
230
|
+
- [PLAN.md](PLAN.md) — शोध निष्कर्ष और कार्यान्वयन योजना।
|
|
231
|
+
- [ARCHITECTURE.md](ARCHITECTURE.md) — आर्किटेक्चर आरेख और पूर्ण डेटा-मैपिंग तालिका।
|
|
232
|
+
- [COMPLIANCE.md](COMPLIANCE.md) — आधिकारिक प्लगइन प्रतिबंधों के विरुद्ध खंड-दर-खंड ऑडिट (deepseek-harness repo व docs, [deepseek.com/harness](https://www.deepseek.com/harness/), [डेवलपर दस्तावेज़](https://deepseek-harness.github.io/deepseek-harness/develop/basic/), [Cordis](https://github.com/cordiverse/cordis) व [Cordis पेपर](https://github.com/cordiverse/paper))।
|
|
233
|
+
- [OPTIMIZATION.md](OPTIMIZATION.md) — मापी गई आधार-रेखाएँ और क्रमबद्ध अनुकूलन उम्मीदवार।
|
|
234
|
+
- [RELEASE.md](RELEASE.md) — स्वीकृति प्रमाण के साथ रिलीज़ चेकलिस्ट।
|
|
235
|
+
- [CHANGELOG.md](CHANGELOG.md) — हर संस्करण में क्या बदला।
|
|
236
|
+
|
|
237
|
+
## 🙏 एट्रिब्यूशन (ओपन-सोर्स घटक)
|
|
238
|
+
|
|
239
|
+
यह प्रोजेक्ट Apache License 2.0 के अंतर्गत है; निम्न MIT-लाइसेंस प्राप्त घटक अपने लाइसेंस बनाए रखते हैं (पूरा पाठ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में):
|
|
240
|
+
|
|
241
|
+
- रूपांतरण कोर [Nwflower/dsh-chat-import](https://github.com/Nwflower/dsh-chat-import) (MIT) से vendored।
|
|
242
|
+
- खोज परिपाटियाँ व सुरक्षा मॉडल [Demogorgon314/dsh-resume-plugin](https://github.com/Demogorgon314/dsh-resume-plugin) (MIT; इसका `session_reader.py` Apache-2.0 मूल का है — देखें [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)) से।
|
|
243
|
+
- memory/skills इंजेक्शन व frontmatter पार्सिंग पैटर्न [YYTbit/dsh-plugin-claude-bridge](https://github.com/YYTbit/dsh-plugin-claude-bridge) (MIT) से।
|
|
244
|
+
|
|
245
|
+
## 🧑💻 विकास
|
|
246
|
+
|
|
247
|
+
```sh
|
|
248
|
+
npm install # peer deps: @deepseek-ai/cordis, @deepseek-ai/dsh-tools@0.1.0-rc.6, @deepseek-ai/schemastery
|
|
249
|
+
npm test # node --test: convert (vendored + विस्तारित), discovery, import/report, context, settings
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
CI GitHub Actions ([test.yml](.github/workflows/test.yml)) के ज़रिए Node 22 पर पूरी सुइट चलाता है।
|
|
253
|
+
|
|
254
|
+
## 🧠 Model Experience
|
|
255
|
+
|
|
256
|
+
- मॉडल-दृश्य सतह दो टूल्स की description/schema और उनके आउटपुट हैं: `claude_scan` संरचित अनुक्रमणिका लौटाता है, `import_claude` चेतावनी-स्थानों सहित फ़ाइल-दर-फ़ाइल सारांश लौटाता है। टूल परिणाम स्वयं लॉग किए गए `tool/result` इवेंट होते हैं, इसलिए सब कुछ पुनर्निर्माण-योग्य है।
|
|
257
|
+
- कोई छिपा मॉडल-दृश्य पाठ नहीं; memory/CLAUDE.md खंड `ctx.systemPrompt` पर पंजीकृत हैं (प्रॉम्प्ट असेंबली, सत्र लॉग से पुनर्निर्माण-योग्य)।
|
|
258
|
+
|
|
259
|
+
## ⚠️ ज्ञात सीमाएँ
|
|
260
|
+
|
|
261
|
+
- शीर्षक `custom-title`/`ai-title`/पहले प्रश्न से आते हैं; Claude के `summary` रिकॉर्ड शीर्षक नहीं बनते।
|
|
262
|
+
- `thinking` ब्लॉक आयातित लॉग में `reasoning` सामग्री के रूप में रहते हैं, पर हैंडऑफ़ सारांश में कभी नहीं जाते।
|
|
263
|
+
- बाधित टूल कॉल एक संश्लेषित त्रुटि परिणाम से सुधारे जाते हैं (कभी गिराए नहीं जाते), इसलिए बीच-टर्न रुकावट वाले सत्र फिर-से-शुरू होने योग्य रहते हैं — आयात परिणाम में `repaired.synthesized` के रूप में रिपोर्ट होता है।
|
|
264
|
+
- अनुमति-श्रेणी रिकॉर्ड गिने जाते हैं, आयात नहीं होते; DSH अनुमति-प्रीसेट सुझाव रिपोर्ट में बनते हैं।
|
|
265
|
+
- Claude के `summary` रिकॉर्ड (संदर्भ संपीड़न) केवल रिपोर्ट होते हैं, DSH compaction नोड्स में मैप नहीं होते (कारण OPTIMIZATION.md में); पूरा इतिहास मूल टर्न के रूप में आयात होता है।
|
|
266
|
+
- `fs.streamText` सतह वाले host पर `maxTranscriptBytes` से बड़ी ट्रांसक्रिप्ट स्वतः स्ट्रीमिंग खंडों में आयात होती हैं (मेमोरी O(खंड)); बिना उस सतह के वे आंशिक आयात की बजाय ज़ोर से विफल होती हैं।
|
|
267
|
+
- `workspaceMode: 'per-project'` में, जिन सत्रों की स्रोत डायरेक्टरी हट चुकी है वे फिर भी आयात होते हैं, पर वर्कस्पेस जुड़ाव विफल रहता है (बिना समूह; रिपोर्ट में `workspace.attached: false` + `reason`)। डिफ़ॉल्ट `claudecode` वर्कस्पेस स्रोत डायरेक्टरी पर निर्भर नहीं करता, इसलिए ऐसे सत्र वहाँ सामान्य रूप से जुड़ते हैं।
|
|
268
|
+
- बाधित बैच आयात सुरक्षित रूप से दोबारा चलाए जा सकते हैं (आइडेम्पोटेंट, append-only): पूरी फ़ाइलें छूट जाती हैं, बढ़ी हुई फ़ाइलें सिर्फ़ नए टर्न जोड़ती हैं।
|
|
269
|
+
- यदि कोई ट्रांसक्रिप्ट अपनी जगह कटी/रीसेट हुई (दर्ज आयात से कम टर्न), पुनः-आयात उसे छोड़कर `sourceShrunk` बताता है; नई पूरी कॉपी के लिए `force: true`।
|
|
270
|
+
- वेब पैनल शून्य-बिल्ड तैरता पैनल है, प्लगइन की अपनी JSON रूट्स से चलता है; shell के आंतरिक UI स्लॉट सिस्टम का उपयोग नहीं करता (rc.6 के अनडॉक्यूमेंटेड internals से स्वतंत्र)।
|
|
271
|
+
- स्ट्रीमिंग वृद्धिशील जुड़ाव में एक बार के `messages`/`toolCalls` केवल नए जुड़े ईवेंट गिनते हैं (संग्रहीत उपसर्ग दोबारा नहीं पढ़ा जाता); `turns` पूर्ण गिनती रहती है।
|
|
272
|
+
|
|
273
|
+
## 🤝 योगदान और प्रतिक्रिया
|
|
274
|
+
|
|
275
|
+
Issue और pull request स्वागत योग्य हैं — दिए गए टेम्पलेट उपयोग करें ([बग रिपोर्ट](.github/ISSUE_TEMPLATE/bug-report.yml), [फ़ीचर अनुरोध](.github/ISSUE_TEMPLATE/feature-request.yml))। प्रश्न और चर्चा रेपो की [GitHub Discussions](https://github.com/PerryLink/dsh-claude-move/discussions) में होती हैं। सुरक्षा समस्याएँ निजी तौर पर GitHub Security Advisories (रेपो Settings → Security; देखें [SECURITY.md](SECURITY.md)) से रिपोर्ट करें।
|
|
276
|
+
|
|
277
|
+
## 💛 योगदानकर्ता
|
|
278
|
+
|
|
279
|
+
इस प्लगइन को बेहतर बनाने में मदद करने वाले सभी लोगों का धन्यवाद:
|
|
280
|
+
|
|
281
|
+
- [OLDnana1](https://github.com/OLDnana1) — बाधित टूल-कॉल के कारण आयातित सत्रों के रिज़्यूम पर स्थायी HTTP 400 आने की समस्या का मूल-कारण विश्लेषण ([#1](https://github.com/PerryLink/dsh-claude-move/issues/1)); v0.2.0 में ठीक किया गया।
|
|
282
|
+
- [GooodWei](https://github.com/GooodWei) — पहचाना कि `README.md` (और बिना विवरण वाली कोई भी `.md`) गलती से skill के रूप में पंजीकृत हो जाती थी, जिससे DSH की पूरी skill लोडिंग टूट जाती थी ([#1](https://github.com/PerryLink/dsh-claude-move/issues/1)); v0.2.0 में ठीक किया गया।
|
|
283
|
+
- इस प्लगइन द्वारा पुन: उपयोग किए गए MIT अपस्ट्रीम प्रोजेक्ट्स का श्रेय [एट्रिब्यूशन](#-attribution-open-source-components) और [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में दिया गया है।
|
|
284
|
+
|
|
285
|
+
## 🔗 संबंधित लिंक
|
|
286
|
+
|
|
287
|
+
- DeepSeek Harness: [रेपो](https://github.com/deepseek-ai/deepseek-harness) · [साइट](https://www.deepseek.com/harness/) · [डेवलपर दस्तावेज़](https://deepseek-harness.github.io/deepseek-harness/develop/basic/)
|
|
288
|
+
- प्लगइन पारिस्थितिकी: [`dsh` टॉपिक](https://github.com/topics/dsh) · [`dsh-plugin` टॉपिक](https://github.com/topics/dsh-plugin) · [Discord](https://discord.gg/Ycq5dCaS4)
|
|
289
|
+
|
|
290
|
+
## 📄 लाइसेंस
|
|
291
|
+
|
|
292
|
+
Apache License 2.0 — देखें [LICENSE](LICENSE) और [NOTICE](NOTICE)। तृतीय-पक्ष सूचनाएँ (MIT घटकों का MIT मूल पाठ सहित) [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में।
|