dsh-manage-session 0.5.1 → 0.5.3

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.
Files changed (63) hide show
  1. package/CHANGELOG.ja.md +207 -242
  2. package/CHANGELOG.ko.md +207 -242
  3. package/CHANGELOG.md +337 -341
  4. package/INSTALL.ja.md +164 -179
  5. package/INSTALL.ko.md +164 -179
  6. package/INSTALL.md +164 -179
  7. package/INSTALL.zh.md +164 -179
  8. package/LICENSE +21 -21
  9. package/README.en.md +4 -12
  10. package/README.ja.md +0 -12
  11. package/README.ko.md +0 -12
  12. package/README.md +4 -14
  13. package/cordis.patch.yml +16 -11
  14. package/dsh.plugin.json +4 -4
  15. package/lib/client.js +3882 -690
  16. package/lib/index.d.ts +759 -29
  17. package/lib/index.js +2604 -93
  18. package/locale/de.json +6 -0
  19. package/locale/en.json +6 -0
  20. package/locale/es.json +6 -0
  21. package/locale/fr.json +6 -0
  22. package/locale/it.json +6 -0
  23. package/locale/ja.json +6 -0
  24. package/locale/ko.json +6 -0
  25. package/locale/ru.json +6 -0
  26. package/locale/zh.json +6 -0
  27. package/package.json +43 -32
  28. package/src/client/bridge-scope.ts +213 -0
  29. package/src/client/card.tsx +150 -150
  30. package/src/client/history-panel.tsx +319 -319
  31. package/src/client/index.ts +465 -354
  32. package/src/client/locales.ts +857 -698
  33. package/src/client/panel.tsx +139 -118
  34. package/src/client/search/card.tsx +563 -0
  35. package/src/client/search/host-api.ts +208 -0
  36. package/src/client/search/locales.ts +780 -0
  37. package/src/client/search/manage.tsx +400 -0
  38. package/src/client/search/panel.tsx +815 -0
  39. package/src/client/search/platform.ts +136 -0
  40. package/src/config.ts +82 -33
  41. package/src/host/health/attribution.ts +118 -118
  42. package/src/host/health/lossless.ts +128 -128
  43. package/src/host/health/source-kind.ts +350 -350
  44. package/src/host/history/archive-source.ts +250 -202
  45. package/src/host/history/archive.ts +249 -194
  46. package/src/host/history/favorites.ts +71 -0
  47. package/src/host/history/purge.ts +370 -370
  48. package/src/host/index/archive-source.ts +90 -0
  49. package/src/host/index/engine.ts +571 -0
  50. package/src/host/index/extract.ts +272 -0
  51. package/src/host/index/peers.ts +62 -0
  52. package/src/host/index/rebuild.ts +368 -0
  53. package/src/host/index/schema.ts +136 -0
  54. package/src/host/index/snapshot.ts +135 -0
  55. package/src/host/index/sync.ts +286 -0
  56. package/src/host/registry/archive-registry.ts +317 -0
  57. package/src/host/settings-bridge.ts +237 -0
  58. package/src/index.ts +1421 -532
  59. package/README.de.md +0 -120
  60. package/README.es.md +0 -120
  61. package/README.fr.md +0 -120
  62. package/README.it.md +0 -120
  63. package/README.ru.md +0 -120
package/INSTALL.ko.md CHANGED
@@ -1,179 +1,164 @@
1
- # 설치 가이드(공식 DSH CLI)
2
-
3
- 이 가이드는 공식 DSH `dsh plugin` 명령만 사용합니다. 이 명령은 의존성을 프로필에 설치하고 `dsh.profile.bundles`를 동기화합니다. 이를 일반 `npm install`, 프로필에서의 직접적인 `pnpm add`, 또는 프로필 매니페스트의 수동 편집으로 대체하지 마세요.
4
-
5
- - [영어 설치 가이드](./INSTALL.md)
6
- - [中文安装指南](./INSTALL.zh.md)
7
- - [日本語インストールガイド](./INSTALL.ja.md)
8
- - [한국어 설치 안내](./INSTALL.ko.md)
9
- - [Guide d'installation en français](./INSTALL.fr.md)
10
- - [Installationsanleitung auf Deutsch](./INSTALL.de.md)
11
- - [Guida all'installazione in italiano](./INSTALL.it.md)
12
- - [Руководство по установке на русском](./INSTALL.ru.md)
13
- - [Guía de instalación en español](./INSTALL.es.md)
14
- - [中文 README](./README.md)
15
- - [영어 README](./README.en.md)
16
- - [日本語 README](./README.ja.md)
17
- - [한국어 README](./README.ko.md)
18
- - [Français README](./README.fr.md)
19
- - [Deutsch README](./README.de.md)
20
- - [Italiano README](./README.it.md)
21
- - [Русский README](./README.ru.md)
22
- - [Español README](./README.es.md)
23
- - [변경 이력](./CHANGELOG.md)
24
- - [日本語 changelog](./CHANGELOG.ja.md)
25
- - [한국어 changelog](./CHANGELOG.ko.md)
26
- - [Français changelog](./CHANGELOG.fr.md)
27
- - [Deutsch changelog](./CHANGELOG.de.md)
28
- - [Italiano changelog](./CHANGELOG.it.md)
29
- - [Русский changelog](./CHANGELOG.ru.md)
30
- - [Español changelog](./CHANGELOG.es.md)
31
-
32
- 이 가이드의 자리표시자는 다음과 같습니다.
33
-
34
- - `<profile>`: 수정할 DSH 프로필이며, 보통 `web`입니다;
35
- - `dsh-manage-session`: npm 패키지이자 런타임 플러그인 ID입니다.
36
-
37
- > **지원 DSH 범위: `>=0.1.0-rc.6 <0.2.0-0`.**
38
- >
39
- > 이는 `package.json`과 `dsh.plugin.json` 양쪽의 `engines.dsh`에 선언된 범위이며, 이 플러그인이 자체 `@deepseek-ai/dsh-client-ui-slots` 의존성에 대해 이미 선언한 `^0.1.0-rc.6` 하한과 일치합니다. 설치 전에 `dsh --version`으로 실행 중인 버전을 확인하세요.
40
-
41
- ## 0. 사전 요구 사항과 프로필 확인
42
-
43
- ```bash
44
- echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
45
- dsh --version
46
- ls "${DSH_HOME:-$HOME/.dsh}/profiles"
47
- ```
48
-
49
- 실행 중인 DSH 프로세스가 지정한 프로필을 사용하세요. `web`이 일반적이지만, 활성 `--profile` 인자가 기준입니다.
50
-
51
- ## 1. 공식 설치
52
-
53
- ```bash
54
- dsh plugin --profile <profile> add dsh-manage-session -w
55
- ```
56
-
57
- (프로필이 `web`처럼 pnpm 워크스페이스 루트인 경우 `-w` 플래그가 필요합니다.)
58
-
59
- 특정 버전을 명시적으로 설치:
60
-
61
- ```bash
62
- dsh plugin --profile <profile> add dsh-manage-session@0.1.0-alpha.6 -w
63
- ```
64
-
65
- 공식 CLI는 프로필 의존성, 잠금 파일, `dsh.profile.bundles`를 자동으로 갱신합니다. YAML 행을 수동으로 추가하지 마세요.
66
-
67
- ### 공급망 쿨다운 기간
68
-
69
- DSH 런타임은 pnpm 11을 사용하며, 그 `minimumReleaseAge` 정책이 갓 게시된 버전을 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`과 함께 차단할 수 있습니다. `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`의 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요:
70
-
71
- ```yaml
72
- minimumReleaseAgeExclude:
73
- - dsh-manage-session@0.1.0-alpha.6
74
- ```
75
-
76
- ## 2. 호스트 재시작
77
-
78
- **설치 또는 업그레이드 후에는 DSH 재시작이 필요합니다.** 브라우저 페이지 새로고침만으로는 부족합니다: 호스트 측은 시작 시 `/session-steward/api` 라우트와 설정 네임스페이스를 등록하며, 정리 결과를 반영하려면 호스트가 아카이브 소스를 다시 로드해야 합니다.
79
-
80
- ## 3. 업그레이드
81
-
82
- ```bash
83
- dsh plugin --profile <profile> update dsh-manage-session -w
84
- ```
85
-
86
- 이후 DSH를 재시작하세요.
87
-
88
- ## 4. 로컬 경로 / `link:` 등록(대안)
89
-
90
- 개발이나 오프라인 설치의 경우 로컬 체크아웃에서 플러그인을 등록합니다:
91
-
92
- ```bash
93
- # ~/.dsh/profiles/<profile>/package.json dependencies:
94
- # "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
95
- # ~/.dsh/profiles/<profile>/cordis.patch.yml:
96
- # - insert:
97
- # - id: dsh-manage-session
98
- # name: dsh-manage-session
99
- cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
100
- ```
101
-
102
- 또는 로컬 경로와 함께 공식 CLI를 사용하세요(네트워크 불필요):
103
-
104
- ```bash
105
- dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
106
- ```
107
-
108
- 소스 체크아웃에서 빌드할 때는 다음 스크립트를 사용합니다:
109
-
110
- ```bash
111
- pnpm install
112
- pnpm typecheck # tsc -b --pretty false
113
- pnpm test # vitest run
114
- pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
115
- ```
116
-
117
- `lib/`는 커밋되지 않으므로, 소스 체크아웃은 경로로 등록하기 전에 빌드해야 합니다. 게시 시에는 `prepublishOnly` 훅을 통해 자동으로 빌드됩니다.
118
-
119
- ## 5. 설치 검증
120
-
121
- 의존성과 설치된 버전을 확인합니다:
122
-
123
- ```bash
124
- grep -n "dsh-manage-session" \
125
- "${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
126
- node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
127
- ```
128
-
129
- 공식 구성을 확인합니다:
130
-
131
- ```bash
132
- dsh --profile <profile> --dump-default-config
133
- ```
134
-
135
- 다음이 포함되어야 합니다:
136
-
137
- ```yaml
138
- - id: dsh-manage-session
139
- name: dsh-manage-session
140
- ```
141
-
142
- ## 6. 플러그인 검증
143
-
144
- 재시작 후 사이드바 항목 `dsh-manage-session`를 사용할 수 있고, 설정 섹션은 `session-steward` 네임스페이스를 사용합니다. 다음을 확인하세요:
145
-
146
- 1. 두 기능 게이트가 모두 켜져 있을 때 **기록 보관소**와 **점검** 두 탭이 모두 렌더링됩니다.
147
- 2. `historyFiles`를 끄면 기록 보관소 탭이 사라지고 모든 `session-history-*` 호출이 명시적인 disabled 오류를 반환합니다.
148
- 3. `healthCheck`를 끄면 점검 탭이 사라지고 모든 `session-health-*` 호출이 명시적인 disabled 오류를 반환합니다.
149
- 4. `/session-steward/api`의 인식되지 않는 메서드는 조용히 성공하지 않고 명시적인 오류를 반환합니다.
150
-
151
- 닫힌 도메인은 `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }`를 반환합니다 — 플러그인은 빈 껍데기를 남기지 않습니다.
152
-
153
- ## 7. 문제 해결
154
-
155
- | 증상 | 조치 |
156
- | --- | --- |
157
- | `dsh`를 찾을 수 없음 | 공식 DSH CLI를 설치하거나 활성화하세요. |
158
- | `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | 프로필의 `pnpm-workspace.yaml`에 있는 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요. |
159
- | 설치 후 탭이나 라우트가 없음 | 호스트 프로세스를 재시작하세요 — 페이지 새로고침은 라우트를 다시 등록하지 않습니다. |
160
- | 아카이브 집합 변경 사항이 보이지 않음 | 호스트를 재시작하세요; 아카이브 소스는 시작 시 읽힙니다. |
161
- | `session-history-*`가 disabled 오류를 반환함 | `historyFiles` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
162
- | `session-health-*`가 disabled 오류를 반환함 | `healthCheck` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
163
- | 업그레이드 후 클라이언트 번들이 오래됨 | 브라우저를 강력 새로고침하세요(Ctrl+Shift+R). |
164
-
165
- ## 8. 제거
166
-
167
- ```bash
168
- dsh plugin --profile <profile> remove dsh-manage-session
169
- ```
170
-
171
- 이후 DSH를 재시작하세요.
172
-
173
- ## 제거해도 복구가 되돌려지지는 않습니다
174
-
175
- 이 플러그인은 세션 로그나 히스토리 데이터를 재작성하지 않으며, 필드를 조용히 버리지도 않습니다. 되돌릴 수 없어 보이는 유일한 동작 — 손상된 프로젝션 캐시 레코드 격리 — 은 먼저 백업을 복사하며, 격리 디렉터리는 복원에 사용할 수 있도록 디스크에 남겨 둡니다. 따라서 플러그인을 제거해도 요청한 격리 결과는 그대로 남습니다; 상태를 되돌리려면 직접 복원하세요.
176
-
177
- ## 라이선스
178
-
179
- MIT
1
+ # 설치 가이드(공식 DSH CLI)
2
+
3
+ 이 가이드는 공식 DSH `dsh plugin` 명령만 사용합니다. 이 명령은 의존성을 프로필에 설치하고 `dsh.profile.bundles`를 동기화합니다. 이를 일반 `npm install`, 프로필에서의 직접적인 `pnpm add`, 또는 프로필 매니페스트의 수동 편집으로 대체하지 마세요.
4
+
5
+ - [영어 설치 가이드](./INSTALL.md)
6
+ - [中文安装指南](./INSTALL.zh.md)
7
+ - [日本語インストールガイド](./INSTALL.ja.md)
8
+ - [한국어 설치 안내](./INSTALL.ko.md)
9
+ - [中文 README](./README.md)
10
+ - [영어 README](./README.en.md)
11
+ - [日本語 README](./README.ja.md)
12
+ - [한국어 README](./README.ko.md)
13
+ - [변경 이력](./CHANGELOG.md)
14
+ - [日本語 changelog](./CHANGELOG.ja.md)
15
+ - [한국어 changelog](./CHANGELOG.ko.md)
16
+
17
+ 이 가이드의 자리표시자는 다음과 같습니다.
18
+
19
+ - `<profile>`: 수정할 DSH 프로필이며, 보통 `web`입니다;
20
+ - `dsh-manage-session`: npm 패키지이자 런타임 플러그인 ID입니다.
21
+
22
+ > **지원 DSH 범위: `>=0.1.0-rc.6 <0.2.0-0`.**
23
+ >
24
+ > 이는 `package.json`과 `dsh.plugin.json` 양쪽의 `engines.dsh`에 선언된 범위이며, 이 플러그인이 자체 `@deepseek-ai/dsh-client-ui-slots` 의존성에 대해 이미 선언한 `^0.1.0-rc.6` 하한과 일치합니다. 설치 전에 `dsh --version`으로 실행 중인 버전을 확인하세요.
25
+
26
+ ## 0. 사전 요구 사항과 프로필 확인
27
+
28
+ ```bash
29
+ echo "DSH_HOME=${DSH_HOME:-$HOME/.dsh}"
30
+ dsh --version
31
+ ls "${DSH_HOME:-$HOME/.dsh}/profiles"
32
+ ```
33
+
34
+ 실행 중인 DSH 프로세스가 지정한 프로필을 사용하세요. `web`이 일반적이지만, 활성 `--profile` 인자가 기준입니다.
35
+
36
+ ## 1. 공식 설치
37
+
38
+ ```bash
39
+ dsh plugin --profile <profile> add dsh-manage-session -w
40
+ ```
41
+
42
+ (프로필이 `web`처럼 pnpm 워크스페이스 루트인 경우 `-w` 플래그가 필요합니다.)
43
+
44
+ 특정 버전을 명시적으로 설치:
45
+
46
+ ```bash
47
+ dsh plugin --profile <profile> add dsh-manage-session@0.1.0-alpha.6 -w
48
+ ```
49
+
50
+ 공식 CLI는 프로필 의존성, 잠금 파일, `dsh.profile.bundles`를 자동으로 갱신합니다. YAML 행을 수동으로 추가하지 마세요.
51
+
52
+ ### 공급망 쿨다운 기간
53
+
54
+ DSH 런타임은 pnpm 11을 사용하며, 그 `minimumReleaseAge` 정책이 갓 게시된 버전을 `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION`과 함께 차단할 수 있습니다. `~/.dsh/profiles/<profile>/pnpm-workspace.yaml`의 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요:
55
+
56
+ ```yaml
57
+ minimumReleaseAgeExclude:
58
+ - dsh-manage-session@0.1.0-alpha.6
59
+ ```
60
+
61
+ ## 2. 호스트 재시작
62
+
63
+ **설치 또는 업그레이드 후에는 DSH 재시작이 필요합니다.** 브라우저 페이지 새로고침만으로는 부족합니다: 호스트 측은 시작 시 `/session-steward/api` 라우트와 설정 네임스페이스를 등록하며, 정리 결과를 반영하려면 호스트가 아카이브 소스를 다시 로드해야 합니다.
64
+
65
+ ## 3. 업그레이드
66
+
67
+ ```bash
68
+ dsh plugin --profile <profile> update dsh-manage-session -w
69
+ ```
70
+
71
+ 이후 DSH를 재시작하세요.
72
+
73
+ ## 4. 로컬 경로 / `link:` 등록(대안)
74
+
75
+ 개발이나 오프라인 설치의 경우 로컬 체크아웃에서 플러그인을 등록합니다:
76
+
77
+ ```bash
78
+ # ~/.dsh/profiles/<profile>/package.json dependencies:
79
+ # "dsh-manage-session": "link:<absolute path to dsh-manage-session>"
80
+ # ~/.dsh/profiles/<profile>/cordis.patch.yml:
81
+ # - insert:
82
+ # - id: dsh-manage-session
83
+ # name: dsh-manage-session
84
+ cd ~/.dsh/profiles/<profile> && pnpm install && dsh web
85
+ ```
86
+
87
+ 또는 로컬 경로와 함께 공식 CLI를 사용하세요(네트워크 불필요):
88
+
89
+ ```bash
90
+ dsh plugin --profile <profile> add /absolute/path/to/dsh-manage-session -w
91
+ ```
92
+
93
+ 소스 체크아웃에서 빌드할 때는 다음 스크립트를 사용합니다:
94
+
95
+ ```bash
96
+ pnpm install
97
+ pnpm typecheck # tsc -b --pretty false
98
+ pnpm test # vitest run
99
+ pnpm build # tsc -b && tsdown → lib/index.js + lib/index.d.ts + lib/client.js
100
+ ```
101
+
102
+ `lib/`는 커밋되지 않으므로, 소스 체크아웃은 경로로 등록하기 전에 빌드해야 합니다. 게시 시에는 `prepublishOnly` 훅을 통해 자동으로 빌드됩니다.
103
+
104
+ ## 5. 설치 검증
105
+
106
+ 의존성과 설치된 버전을 확인합니다:
107
+
108
+ ```bash
109
+ grep -n "dsh-manage-session" \
110
+ "${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/package.json"
111
+ node -p "require('${DSH_HOME:-$HOME/.dsh}/profiles/<profile>/node_modules/dsh-manage-session/package.json').version"
112
+ ```
113
+
114
+ 공식 구성을 확인합니다:
115
+
116
+ ```bash
117
+ dsh --profile <profile> --dump-default-config
118
+ ```
119
+
120
+ 다음이 포함되어야 합니다:
121
+
122
+ ```yaml
123
+ - id: dsh-manage-session
124
+ name: dsh-manage-session
125
+ ```
126
+
127
+ ## 6. 플러그인 검증
128
+
129
+ 재시작 후 사이드바 항목 `dsh-manage-session`를 사용할 수 있고, 설정 섹션은 `session-steward` 네임스페이스를 사용합니다. 다음을 확인하세요:
130
+
131
+ 1. 두 기능 게이트가 모두 켜져 있을 때 **기록 보관소**와 **점검** 두 탭이 모두 렌더링됩니다.
132
+ 2. `historyFiles`를 끄면 기록 보관소 탭이 사라지고 모든 `session-history-*` 호출이 명시적인 disabled 오류를 반환합니다.
133
+ 3. `healthCheck`를 끄면 점검 탭이 사라지고 모든 `session-health-*` 호출이 명시적인 disabled 오류를 반환합니다.
134
+ 4. `/session-steward/api`의 인식되지 않는 메서드는 조용히 성공하지 않고 명시적인 오류를 반환합니다.
135
+
136
+ 닫힌 도메인은 `{ ok: false, error: '子域已关闭(…=false):<method> 未注册' }`를 반환합니다 — 플러그인은 빈 껍데기를 남기지 않습니다.
137
+
138
+ ## 7. 문제 해결
139
+
140
+ | 증상 | 조치 |
141
+ | --- | --- |
142
+ | `dsh`를 찾을 수 없음 | 공식 DSH CLI를 설치하거나 활성화하세요. |
143
+ | `ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` | 프로필의 `pnpm-workspace.yaml`에 있는 `minimumReleaseAgeExclude`에 해당 버전을 추가하세요. |
144
+ | 설치 후 탭이나 라우트가 없음 | 호스트 프로세스를 재시작하세요 — 페이지 새로고침은 라우트를 다시 등록하지 않습니다. |
145
+ | 아카이브 집합 변경 사항이 보이지 않음 | 호스트를 재시작하세요; 아카이브 소스는 시작 시 읽힙니다. |
146
+ | `session-history-*`가 disabled 오류를 반환함 | `historyFiles` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
147
+ | `session-health-*`가 disabled 오류를 반환함 | `healthCheck` 게이트가 꺼져 있습니다. 플러그인 설정에서 다시 켜세요. |
148
+ | 업그레이드 후 클라이언트 번들이 오래됨 | 브라우저를 강력 새로고침하세요(Ctrl+Shift+R). |
149
+
150
+ ## 8. 제거
151
+
152
+ ```bash
153
+ dsh plugin --profile <profile> remove dsh-manage-session
154
+ ```
155
+
156
+ 이후 DSH를 재시작하세요.
157
+
158
+ ## 제거해도 복구가 되돌려지지는 않습니다
159
+
160
+ 이 플러그인은 세션 로그나 히스토리 데이터를 재작성하지 않으며, 필드를 조용히 버리지도 않습니다. 되돌릴 수 없어 보이는 유일한 동작 — 손상된 프로젝션 캐시 레코드 격리 — 은 먼저 백업을 복사하며, 격리 디렉터리는 복원에 사용할 수 있도록 디스크에 남겨 둡니다. 따라서 플러그인을 제거해도 요청한 격리 결과는 그대로 남습니다; 상태를 되돌리려면 직접 복원하세요.
161
+
162
+ ## 라이선스
163
+
164
+ MIT