synapse-sdk 1.0.0b13__py3-none-any.whl → 1.0.0b15__py3-none-any.whl
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.
Potentially problematic release.
This version of synapse-sdk might be problematic. Click here for more details.
- synapse_sdk/clients/agent/ray.py +9 -11
- synapse_sdk/clients/backend/annotation.py +1 -1
- synapse_sdk/clients/backend/core.py +31 -4
- synapse_sdk/clients/backend/data_collection.py +78 -5
- synapse_sdk/clients/backend/hitl.py +1 -1
- synapse_sdk/clients/backend/ml.py +1 -1
- synapse_sdk/clients/base.py +23 -16
- synapse_sdk/devtools/docs/docs/api/clients/agent.md +43 -0
- synapse_sdk/devtools/docs/docs/api/clients/backend.md +53 -0
- synapse_sdk/devtools/docs/docs/api/clients/base.md +35 -0
- synapse_sdk/devtools/docs/docs/api/clients/ray.md +321 -0
- synapse_sdk/devtools/docs/docs/api/index.md +52 -0
- synapse_sdk/devtools/docs/docs/api/plugins/categories.md +43 -0
- synapse_sdk/devtools/docs/docs/api/plugins/models.md +59 -0
- synapse_sdk/devtools/docs/docs/api/plugins/utils.md +328 -0
- synapse_sdk/devtools/docs/docs/api/utils/file.md +195 -0
- synapse_sdk/devtools/docs/docs/api/utils/network.md +378 -0
- synapse_sdk/devtools/docs/docs/api/utils/storage.md +57 -0
- synapse_sdk/devtools/docs/docs/api/utils/types.md +51 -0
- synapse_sdk/devtools/docs/docs/categories.md +0 -0
- synapse_sdk/devtools/docs/docs/cli-usage.md +280 -0
- synapse_sdk/devtools/docs/docs/concepts/index.md +38 -0
- synapse_sdk/devtools/docs/docs/configuration.md +83 -0
- synapse_sdk/devtools/docs/docs/contributing.md +306 -0
- synapse_sdk/devtools/docs/docs/examples/index.md +29 -0
- synapse_sdk/devtools/docs/docs/faq.md +179 -0
- synapse_sdk/devtools/docs/docs/features/converters/index.md +455 -0
- synapse_sdk/devtools/docs/docs/features/index.md +24 -0
- synapse_sdk/devtools/docs/docs/features/plugins/index.md +509 -0
- synapse_sdk/devtools/docs/docs/installation.md +94 -0
- synapse_sdk/devtools/docs/docs/introduction.md +47 -0
- synapse_sdk/devtools/docs/docs/quickstart.md +78 -0
- synapse_sdk/devtools/docs/docs/troubleshooting.md +519 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json +8 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md +23 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-document.md +57 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-page.md +43 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/_category_.json +7 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md +88 -0
- synapse_sdk/devtools/docs/docusaurus.config.ts +5 -3
- synapse_sdk/devtools/docs/i18n/ko/code.json +325 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/agent.md +43 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/backend.md +53 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/base.md +35 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md +321 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/index.md +52 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/utils/file.md +195 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/utils/network.md +378 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/utils/storage.md +60 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/utils/types.md +51 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md +0 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md +280 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md +38 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md +83 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/contributing.md +306 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md +29 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/faq.md +179 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/converters/index.md +30 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md +24 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/plugins/index.md +30 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/installation.md +94 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +47 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/quickstart.md +78 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/troubleshooting.md +519 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +22 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json +42 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json +18 -0
- synapse_sdk/devtools/docs/node_modules/shell-quote/print.py +3 -0
- synapse_sdk/devtools/docs/package.json +1 -1
- synapse_sdk/plugins/categories/export/actions/export.py +3 -0
- synapse_sdk/plugins/categories/upload/actions/upload.py +9 -4
- synapse_sdk/utils/file.py +77 -0
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/METADATA +1 -1
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/RECORD +84 -18
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/WHEEL +0 -0
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/entry_points.txt +0 -0
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/licenses/LICENSE +0 -0
- {synapse_sdk-1.0.0b13.dist-info → synapse_sdk-1.0.0b15.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: cli-usage
|
|
3
|
+
title: CLI 사용 가이드
|
|
4
|
+
sidebar_position: 4
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CLI 사용 가이드
|
|
8
|
+
|
|
9
|
+
Synapse SDK는 설정부터 플러그인 개발 및 코드 편집까지 개발 워크플로우를 관리하기 위한 강력한 대화형 CLI를 제공합니다.
|
|
10
|
+
|
|
11
|
+
## 시작하기
|
|
12
|
+
|
|
13
|
+
대화형 CLI 실행:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
synapse
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
또는 특정 명령을 직접 실행:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 개발 도구 즉시 시작
|
|
23
|
+
synapse --dev-tools
|
|
24
|
+
|
|
25
|
+
# 도움말 표시
|
|
26
|
+
synapse --help
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 메인 메뉴 옵션
|
|
30
|
+
|
|
31
|
+
`synapse`를 실행하면 메인 메뉴가 표시됩니다:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
🚀 Synapse SDK
|
|
35
|
+
Select an option:
|
|
36
|
+
🌐 Run Dev Tools
|
|
37
|
+
💻 Open Code-Server IDE
|
|
38
|
+
⚙️ Configuration
|
|
39
|
+
🔌 Plugin Management
|
|
40
|
+
🚪 Exit
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 🌐 Run Dev Tools
|
|
44
|
+
|
|
45
|
+
다음 기능을 포함한 Synapse 개발 도구 대시보드를 실행합니다:
|
|
46
|
+
|
|
47
|
+
- **대화형 UI**: Agent와 작업 관리를 위한 웹 기반 대시보드
|
|
48
|
+
- **실시간 모니터링**: Agent 상태 및 작업 실행의 실시간 보기
|
|
49
|
+
- **플러그인 관리**: UI를 통한 플러그인 업로드, 테스트, 관리
|
|
50
|
+
|
|
51
|
+
### 사용법
|
|
52
|
+
```bash
|
|
53
|
+
# CLI 메뉴에서 개발 도구 실행
|
|
54
|
+
synapse
|
|
55
|
+
|
|
56
|
+
# 또는 직접 시작
|
|
57
|
+
synapse --dev-tools
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 💻 Open Code-Server IDE
|
|
61
|
+
|
|
62
|
+
플러그인 개발을 위한 웹 기반 VS Code 환경을 엽니다. Agent 기반 및 로컬 code-server 인스턴스를 모두 지원합니다.
|
|
63
|
+
|
|
64
|
+
### Agent Code-Server
|
|
65
|
+
|
|
66
|
+
Agent에서 실행되는 원격 code-server에 연결:
|
|
67
|
+
|
|
68
|
+
- **자동 설정**: Synapse가 작업공간을 설정하고 의존성을 설치
|
|
69
|
+
- **플러그인 암호화**: 로컬 플러그인 코드가 암호화되어 안전하게 전송
|
|
70
|
+
- **작업공간 동기화**: 로컬 프로젝트가 Agent 환경에서 사용 가능
|
|
71
|
+
|
|
72
|
+
### 로컬 Code-Server
|
|
73
|
+
|
|
74
|
+
로컬 code-server 인스턴스 실행:
|
|
75
|
+
|
|
76
|
+
- **포트 감지**: `~/.config/code-server/config.yaml`에서 포트를 자동으로 읽음
|
|
77
|
+
- **폴더 매개변수**: 올바른 작업공간 디렉토리로 열림
|
|
78
|
+
- **브라우저 통합**: 적절한 URL로 자동으로 브라우저를 열음
|
|
79
|
+
|
|
80
|
+
### 사용 예제
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# 대화형 메뉴 (권장)
|
|
84
|
+
synapse
|
|
85
|
+
# "💻 Open Code-Server IDE" 선택
|
|
86
|
+
|
|
87
|
+
# 직접 명령
|
|
88
|
+
synapse code-server
|
|
89
|
+
|
|
90
|
+
# 특정 옵션과 함께
|
|
91
|
+
synapse code-server --agent my-agent --workspace /path/to/project
|
|
92
|
+
|
|
93
|
+
# 브라우저를 자동으로 열지 않음
|
|
94
|
+
synapse code-server --no-open-browser
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Code-Server 옵션
|
|
98
|
+
|
|
99
|
+
| 옵션 | 설명 | 기본값 |
|
|
100
|
+
|--------|-------------|---------|
|
|
101
|
+
| `--agent` | 사용할 특정 Agent ID | 현재 Agent 또는 프롬프트 |
|
|
102
|
+
| `--workspace` | 프로젝트 디렉토리 경로 | 현재 디렉토리 |
|
|
103
|
+
| `--open-browser/--no-open-browser` | 브라우저 자동 열기 | `--open-browser` |
|
|
104
|
+
|
|
105
|
+
### 로컬 Code-Server 설치
|
|
106
|
+
|
|
107
|
+
code-server가 로컬에 설치되지 않은 경우 CLI가 설치 지침을 제공합니다:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# 권장: 설치 스크립트
|
|
111
|
+
curl -fsSL https://code-server.dev/install.sh | sh
|
|
112
|
+
|
|
113
|
+
# npm 사용
|
|
114
|
+
npm install -g code-server
|
|
115
|
+
|
|
116
|
+
# yarn 사용
|
|
117
|
+
yarn global add code-server
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
더 많은 옵션은 다음을 참조하세요: https://coder.com/docs/code-server/latest/install
|
|
121
|
+
|
|
122
|
+
## ⚙️ Configuration
|
|
123
|
+
|
|
124
|
+
다음을 설정하기 위한 대화형 설정 마법사:
|
|
125
|
+
|
|
126
|
+
- **백엔드 연결**: API 엔드포인트 및 인증 설정
|
|
127
|
+
- **Agent 선택**: 개발 Agent 선택 및 설정
|
|
128
|
+
- **토큰 관리**: 액세스 토큰 및 인증 관리
|
|
129
|
+
|
|
130
|
+
### 설정 파일
|
|
131
|
+
|
|
132
|
+
Synapse는 다음 위치에 설정을 저장합니다:
|
|
133
|
+
- **백엔드 설정**: `~/.synapse/devtools.yaml`
|
|
134
|
+
- **Agent 설정**: `~/.synapse/devtools.yaml` (Agent 섹션)
|
|
135
|
+
- **Code-Server 설정**: `~/.config/code-server/config.yaml`
|
|
136
|
+
|
|
137
|
+
## 🔌 Plugin Management
|
|
138
|
+
|
|
139
|
+
포괄적인 플러그인 개발 및 관리 도구:
|
|
140
|
+
|
|
141
|
+
### 새 플러그인 생성
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
synapse
|
|
145
|
+
# "🔌 Plugin Management" → "Create new plugin" 선택
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
대화형 마법사가 다음을 생성합니다:
|
|
149
|
+
- 플러그인 디렉토리 구조
|
|
150
|
+
- 설정 파일 (`config.yaml`)
|
|
151
|
+
- 예제 플러그인 코드
|
|
152
|
+
- 요구사항 및 의존성
|
|
153
|
+
|
|
154
|
+
### 플러그인 로컬 실행
|
|
155
|
+
|
|
156
|
+
다른 환경에서 플러그인 테스트:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# 스크립트 실행 (로컬)
|
|
160
|
+
synapse plugin run my_action '{"param": "value"}' --run-by script
|
|
161
|
+
|
|
162
|
+
# Agent 실행 (원격)
|
|
163
|
+
synapse plugin run my_action '{"param": "value"}' --run-by agent
|
|
164
|
+
|
|
165
|
+
# 백엔드 실행 (클라우드)
|
|
166
|
+
synapse plugin run my_action '{"param": "value"}' --run-by backend
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 플러그인 게시
|
|
170
|
+
|
|
171
|
+
Synapse 백엔드에 플러그인 배포:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
synapse
|
|
175
|
+
# "🔌 Plugin Management" → "Publish plugin" 선택
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
옵션:
|
|
179
|
+
- **디버그 모드**: 자세한 로깅으로 배포 테스트
|
|
180
|
+
- **프로덕션 모드**: 실제 사용을 위한 배포
|
|
181
|
+
|
|
182
|
+
## 명령 참조
|
|
183
|
+
|
|
184
|
+
### 주요 명령어
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# 대화형 CLI (메인 메뉴)
|
|
188
|
+
synapse
|
|
189
|
+
|
|
190
|
+
# 개발 도구
|
|
191
|
+
synapse --dev-tools
|
|
192
|
+
|
|
193
|
+
# 직접 명령
|
|
194
|
+
synapse config # 설정 마법사
|
|
195
|
+
synapse devtools # 개발 대시보드
|
|
196
|
+
synapse code-server # 코드 편집 환경
|
|
197
|
+
synapse plugin # 플러그인 관리
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Code-Server 명령
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
synapse code-server [OPTIONS]
|
|
204
|
+
|
|
205
|
+
Options:
|
|
206
|
+
--agent TEXT Agent 이름 또는 ID
|
|
207
|
+
--open-browser / --no-open-browser
|
|
208
|
+
브라우저에서 열기 [기본값: open-browser]
|
|
209
|
+
--workspace TEXT 작업공간 디렉토리 경로 (기본값: 현재 디렉토리)
|
|
210
|
+
--help 이 메시지를 표시하고 종료.
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 플러그인 명령어
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# 플러그인 생성
|
|
217
|
+
synapse plugin create
|
|
218
|
+
|
|
219
|
+
# 플러그인 실행
|
|
220
|
+
synapse plugin run ACTION PARAMS [OPTIONS]
|
|
221
|
+
|
|
222
|
+
# 플러그인 게시
|
|
223
|
+
synapse plugin publish [OPTIONS]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## 팁 및 모범 사례
|
|
227
|
+
|
|
228
|
+
### Code-Server 개발
|
|
229
|
+
|
|
230
|
+
1. **플러그인 감지**: code-server를 열 때 Synapse는 작업공간에 플러그인이 포함되어 있는지 자동으로 감지하고 Agent로의 안전한 전송을 위해 암호화합니다.
|
|
231
|
+
|
|
232
|
+
2. **작업공간 경로**: Agent 작업공간은 일반적으로 `/home/coder/workspace`를 사용합니다 - 이는 컨테이너화된 환경에서 정상입니다.
|
|
233
|
+
|
|
234
|
+
3. **포트 설정**: 로컬 code-server 포트는 설정 파일에서 읽어오며, 설정이 없으면 8070을 기본값으로 사용합니다.
|
|
235
|
+
|
|
236
|
+
### 설정 관리
|
|
237
|
+
|
|
238
|
+
1. **토큰 보안**: API 토큰을 안전하게 저장하고 정기적으로 순환
|
|
239
|
+
2. **Agent 선택**: Agent의 목적을 식별하기 위해 설명적인 Agent 이름 사용
|
|
240
|
+
3. **백엔드 URL**: 백엔드 URL이 개발 환경에서 접근 가능한지 확인
|
|
241
|
+
|
|
242
|
+
### 플러그인 개발
|
|
243
|
+
|
|
244
|
+
1. **로컬 테스트**: 배포 전에 항상 `--run-by script`로 플러그인을 로컬에서 테스트
|
|
245
|
+
2. **디버그 모드**: 초기 배포 시 디버그 모드를 사용하여 문제를 조기에 발견
|
|
246
|
+
3. **버전 제어**: git을 사용하여 플러그인 변경사항을 추적하고 버전 관리
|
|
247
|
+
|
|
248
|
+
## 문제 해결
|
|
249
|
+
|
|
250
|
+
### Code-Server 문제
|
|
251
|
+
|
|
252
|
+
**문제**: "Code-server is not available" 오류
|
|
253
|
+
- **해결방법**: Agent에 code-server 지원이 활성화되어 있는지 확인
|
|
254
|
+
|
|
255
|
+
**문제**: 브라우저가 자동으로 열리지 않음
|
|
256
|
+
- **해결방법**: 제공된 URL을 브라우저에 수동으로 복사
|
|
257
|
+
|
|
258
|
+
**문제**: 잘못된 포트가 표시됨
|
|
259
|
+
- **해결방법**: 올바른 포트 설정을 위해 `~/.config/code-server/config.yaml` 확인
|
|
260
|
+
|
|
261
|
+
### 설정 문제
|
|
262
|
+
|
|
263
|
+
**문제**: "No backend configured"
|
|
264
|
+
- **해결방법**: `synapse config`를 실행하여 백엔드 연결 설정
|
|
265
|
+
|
|
266
|
+
**문제**: "Invalid token (401)"
|
|
267
|
+
- **해결방법**: 새 API 토큰을 생성하고 설정 업데이트
|
|
268
|
+
|
|
269
|
+
**문제**: "Connection timeout"
|
|
270
|
+
- **해결방법**: 네트워크 연결 및 백엔드 URL 접근성 확인
|
|
271
|
+
|
|
272
|
+
### 플러그인 문제
|
|
273
|
+
|
|
274
|
+
**문제**: 작업공간에서 플러그인이 감지되지 않음
|
|
275
|
+
- **해결방법**: 디렉토리에 유효한 `config.yaml` 파일이 있는지 확인
|
|
276
|
+
|
|
277
|
+
**문제**: 플러그인 실행 실패
|
|
278
|
+
- **해결방법**: 플러그인 의존성 및 구문 확인, 먼저 로컬에서 테스트
|
|
279
|
+
|
|
280
|
+
더 많은 문제 해결 도움은 [문제 해결 가이드](./troubleshooting.md)를 참조하세요.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: index
|
|
3
|
+
title: Core Concepts
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Core Concepts
|
|
8
|
+
|
|
9
|
+
Synapse SDK의 기본 개념을 이해합니다.
|
|
10
|
+
|
|
11
|
+
## 아키텍처
|
|
12
|
+
|
|
13
|
+
전체 시스템 아키텍처 및 설계 원칙에 대해 알아보세요.
|
|
14
|
+
|
|
15
|
+
## 플러그인 시스템
|
|
16
|
+
|
|
17
|
+
플러그인의 작동 방식, 카테고리 및 실행 방법을 이해합니다.
|
|
18
|
+
|
|
19
|
+
## 클라이언트
|
|
20
|
+
|
|
21
|
+
다양한 클라이언트 유형과 사용 사례:
|
|
22
|
+
- BackendClient: API 작업용
|
|
23
|
+
- AgentClient: 분산 실행용
|
|
24
|
+
|
|
25
|
+
## 실행 방법
|
|
26
|
+
|
|
27
|
+
플러그인을 실행하는 다양한 방법:
|
|
28
|
+
- **JOB**: 모니터링이 포함된 장기 실행 작업
|
|
29
|
+
- **TASK**: 빠르고 간단한 작업
|
|
30
|
+
- **RESTAPI**: 모델 및 API 서빙
|
|
31
|
+
|
|
32
|
+
## 데이터 플로우
|
|
33
|
+
|
|
34
|
+
시스템을 통해 입력에서 출력까지 데이터가 흐르는 방식입니다.
|
|
35
|
+
|
|
36
|
+
## 보안
|
|
37
|
+
|
|
38
|
+
인증, 권한 부여 및 보안 모범 사례입니다.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: configuration
|
|
3
|
+
title: 구성
|
|
4
|
+
sidebar_position: 8
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 구성
|
|
8
|
+
|
|
9
|
+
환경과 사용 사례에 맞게 Synapse SDK를 구성하세요.
|
|
10
|
+
|
|
11
|
+
## 구성 방법
|
|
12
|
+
|
|
13
|
+
Synapse SDK를 구성하는 세 가지 방법이 있습니다:
|
|
14
|
+
|
|
15
|
+
1. **Synapse CLI**
|
|
16
|
+
2. **환경 변수**
|
|
17
|
+
3. **구성 파일**
|
|
18
|
+
|
|
19
|
+
## CLI
|
|
20
|
+
|
|
21
|
+
대화형 구성 메뉴는 Synapse SDK를 구성하는 쉬운 방법을 제공합니다:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
$ synapse config
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
다음을 수행할 수 있는 대화형 메뉴가 열립니다:
|
|
28
|
+
- 백엔드 호스트 및 API 토큰 구성
|
|
29
|
+
- 에이전트 선택 또는 수동 구성
|
|
30
|
+
- 현재 구성 보기
|
|
31
|
+
|
|
32
|
+
### 주요 기능:
|
|
33
|
+
- **일반 텍스트 토큰 표시**: 쉬운 검증을 위해 토큰이 일반 텍스트로 표시됩니다
|
|
34
|
+
- **연결 테스트**: 백엔드 또는 에이전트 구성 후 연결이 자동으로 테스트됩니다
|
|
35
|
+
- **시작 지연 없음**: 연결 확인은 설정 구성 시에만 발생하며, CLI 시작 시에는 발생하지 않습니다
|
|
36
|
+
|
|
37
|
+
## 구성 파일
|
|
38
|
+
|
|
39
|
+
`~/.synapse/config.json`에 구성 파일을 생성하세요:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"backend": {
|
|
44
|
+
"host": "https://api.synapse.sh",
|
|
45
|
+
"token": "your-api-token"
|
|
46
|
+
},
|
|
47
|
+
"agent": {
|
|
48
|
+
"id": "agent-uuid-123",
|
|
49
|
+
"name": "My Development Agent",
|
|
50
|
+
"token": "your-agent-token"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 플러그인 관리
|
|
56
|
+
|
|
57
|
+
CLI는 대화형 플러그인 관리 인터페이스를 제공합니다:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
$ synapse
|
|
61
|
+
# "플러그인 관리" 선택
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 사용 가능한 옵션:
|
|
65
|
+
|
|
66
|
+
1. **새 플러그인 생성**: cookiecutter를 사용하여 템플릿에서 새 플러그인을 생성합니다
|
|
67
|
+
2. **플러그인 로컬 실행**: 구성 가능한 매개변수로 플러그인을 실행하는 대화형 인터페이스
|
|
68
|
+
3. **플러그인 게시**: 디버그 모드 옵션과 함께 구성된 백엔드에 플러그인을 게시합니다
|
|
69
|
+
|
|
70
|
+
### 플러그인 게시
|
|
71
|
+
|
|
72
|
+
플러그인을 게시할 때:
|
|
73
|
+
- **디버그 모드**: 개발용으로 기본적으로 활성화됩니다
|
|
74
|
+
- **백엔드 통합**: 구성된 백엔드 설정을 사용합니다
|
|
75
|
+
- **연결 테스트**: 게시 전에 백엔드 연결을 확인합니다
|
|
76
|
+
- **오류 처리**: 오류 발생 시 중단하고 사용자 확인을 기다립니다
|
|
77
|
+
|
|
78
|
+
### 플러그인 개발 워크플로
|
|
79
|
+
|
|
80
|
+
1. **생성**: CLI를 사용하여 새 플러그인 템플릿 생성
|
|
81
|
+
2. **개발**: 생성된 구조를 따라 플러그인 코드 작성
|
|
82
|
+
3. **테스트**: 대화형 인터페이스를 통해 플러그인을 로컬에서 실행
|
|
83
|
+
4. **게시**: 디버그 옵션과 함께 구성된 백엔드에 배포
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: contributing
|
|
3
|
+
title: 기여하기
|
|
4
|
+
sidebar_position: 12
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Synapse SDK에 기여하기
|
|
8
|
+
|
|
9
|
+
Synapse SDK에 기여해 주셔서 감사합니다! 이 가이드는 프로젝트 기여를 시작하는 데 도움이 됩니다.
|
|
10
|
+
|
|
11
|
+
## 개발 환경 설정
|
|
12
|
+
|
|
13
|
+
### 사전 요구사항
|
|
14
|
+
|
|
15
|
+
- Python 3.8 이상
|
|
16
|
+
- Git
|
|
17
|
+
- 가상 환경 도구 (venv, conda 등)
|
|
18
|
+
|
|
19
|
+
### 시작하기
|
|
20
|
+
|
|
21
|
+
1. **저장소 포크 및 복제**
|
|
22
|
+
```bash
|
|
23
|
+
git clone https://github.com/yourusername/synapse-sdk.git
|
|
24
|
+
cd synapse-sdk
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
2. **가상 환경 생성**
|
|
28
|
+
```bash
|
|
29
|
+
python -m venv .venv
|
|
30
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
3. **의존성 설치**
|
|
34
|
+
```bash
|
|
35
|
+
pip install -r requirements.txt
|
|
36
|
+
pip install -r requirements.test.txt
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 코드 포맷팅 및 품질
|
|
40
|
+
|
|
41
|
+
### Ruff 포맷팅
|
|
42
|
+
|
|
43
|
+
코드 포맷팅 및 린팅에 **Ruff**를 사용합니다. 모든 기여는 우리의 포맷팅 표준을 따라야 합니다.
|
|
44
|
+
|
|
45
|
+
#### 필수 명령어
|
|
46
|
+
|
|
47
|
+
코드 변경 사항을 제출하기 전에 다음 명령어를 실행하세요:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# 모든 Python 코드 포맷팅
|
|
51
|
+
ruff format .
|
|
52
|
+
|
|
53
|
+
# 린팅 문제 수정
|
|
54
|
+
ruff check --fix .
|
|
55
|
+
|
|
56
|
+
# 남은 문제 확인
|
|
57
|
+
ruff check .
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### 포맷팅 워크플로우
|
|
61
|
+
|
|
62
|
+
1. **변경사항 작성** - Python 코드를 작성하거나 수정
|
|
63
|
+
2. **Ruff로 포맷팅** - `ruff format .`을 실행하여 일관된 포맷팅 적용
|
|
64
|
+
3. **린팅 문제 수정** - `ruff check --fix .`를 실행하여 코드 품질 문제 해결
|
|
65
|
+
4. **변경사항 확인** - 포맷팅된 코드를 검토하여 정확성 보장
|
|
66
|
+
5. **변경사항 커밋** - 적절히 포맷팅된 코드로 커밋 생성
|
|
67
|
+
|
|
68
|
+
#### IDE 통합
|
|
69
|
+
|
|
70
|
+
IDE가 Ruff를 자동으로 실행하도록 설정하세요:
|
|
71
|
+
|
|
72
|
+
- **VS Code**: Ruff 확장 프로그램 설치
|
|
73
|
+
- **PyCharm**: Ruff를 외부 도구로 설정
|
|
74
|
+
- **Vim/Neovim**: ruff-lsp 또는 유사한 플러그인 사용
|
|
75
|
+
|
|
76
|
+
### 코드 스타일 가이드라인
|
|
77
|
+
|
|
78
|
+
- **줄 길이**: `pyproject.toml`의 프로젝트별 설정 따르기
|
|
79
|
+
- **Import 정렬**: Ruff가 import 정리를 처리하도록 함
|
|
80
|
+
- **타입 힌트**: 적절한 곳에 타입 어노테이션 사용
|
|
81
|
+
- **독스트링**: Google 스타일 독스트링 형식 따르기
|
|
82
|
+
- **주석**: 복잡한 로직에 대해 명확하고 간결한 주석 작성
|
|
83
|
+
|
|
84
|
+
## 테스팅
|
|
85
|
+
|
|
86
|
+
### 테스트 실행
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 모든 테스트 실행
|
|
90
|
+
pytest
|
|
91
|
+
|
|
92
|
+
# 특정 테스트 파일 실행
|
|
93
|
+
pytest tests/plugins/utils/test_config.py
|
|
94
|
+
|
|
95
|
+
# 커버리지와 함께 실행
|
|
96
|
+
pytest --cov=synapse_sdk
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 테스트 작성
|
|
100
|
+
|
|
101
|
+
- 모든 새로운 기능에 대해 테스트 작성
|
|
102
|
+
- 시나리오를 설명하는 서술적 테스트 이름 사용
|
|
103
|
+
- 긍정적 및 부정적 테스트 케이스 모두 포함
|
|
104
|
+
- 외부 의존성을 적절히 모킹
|
|
105
|
+
- 높은 테스트 커버리지 유지
|
|
106
|
+
|
|
107
|
+
#### 테스트 구조
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
class TestMyFeature:
|
|
111
|
+
"""MyFeature 기능 테스트."""
|
|
112
|
+
|
|
113
|
+
def test_feature_success_case(self):
|
|
114
|
+
"""성공적인 기능 작동 테스트."""
|
|
115
|
+
# Arrange
|
|
116
|
+
input_data = {"key": "value"}
|
|
117
|
+
|
|
118
|
+
# Act
|
|
119
|
+
result = my_feature(input_data)
|
|
120
|
+
|
|
121
|
+
# Assert
|
|
122
|
+
assert result == expected_output
|
|
123
|
+
|
|
124
|
+
def test_feature_error_case(self):
|
|
125
|
+
"""기능 오류 처리 테스트."""
|
|
126
|
+
with pytest.raises(ValueError, match="Expected error message"):
|
|
127
|
+
my_feature(invalid_input)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## 플러그인 개발
|
|
131
|
+
|
|
132
|
+
### 새로운 플러그인 유틸리티 생성
|
|
133
|
+
|
|
134
|
+
새로운 플러그인 유틸리티를 추가할 때:
|
|
135
|
+
|
|
136
|
+
1. **적절한 모듈에 추가**:
|
|
137
|
+
- 설정 유틸리티 → `synapse_sdk/plugins/utils/config.py`
|
|
138
|
+
- 액션 유틸리티 → `synapse_sdk/plugins/utils/actions.py`
|
|
139
|
+
- 레지스트리 유틸리티 → `synapse_sdk/plugins/utils/registry.py`
|
|
140
|
+
|
|
141
|
+
2. **포괄적인 독스트링 포함**:
|
|
142
|
+
```python
|
|
143
|
+
def my_utility_function(param: str) -> Dict[str, Any]:
|
|
144
|
+
"""함수에 대한 간단한 설명.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
param: 매개변수 설명.
|
|
148
|
+
|
|
149
|
+
Returns:
|
|
150
|
+
반환값 설명.
|
|
151
|
+
|
|
152
|
+
Raises:
|
|
153
|
+
ValueError: 입력이 유효하지 않을 때.
|
|
154
|
+
|
|
155
|
+
Examples:
|
|
156
|
+
>>> my_utility_function("example")
|
|
157
|
+
{'result': 'processed'}
|
|
158
|
+
"""
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
3. **`__all__` 내보내기에 추가**
|
|
162
|
+
4. **포괄적인 테스트 작성**
|
|
163
|
+
5. **문서 업데이트**
|
|
164
|
+
|
|
165
|
+
### 플러그인 카테고리
|
|
166
|
+
|
|
167
|
+
플러그인 카테고리 작업 시:
|
|
168
|
+
|
|
169
|
+
- 가능하면 기존 카테고리 사용
|
|
170
|
+
- 명명 규칙 따르기: `snake_case`
|
|
171
|
+
- 적절한 검증 및 오류 처리 추가
|
|
172
|
+
- 새 카테고리 추가 시 카테고리 enum 업데이트
|
|
173
|
+
|
|
174
|
+
## 문서화
|
|
175
|
+
|
|
176
|
+
### API 문서화
|
|
177
|
+
|
|
178
|
+
- 모든 공개 함수에 대한 독스트링 업데이트
|
|
179
|
+
- 독스트링에 사용 예제 포함
|
|
180
|
+
- 더 나은 IDE 지원을 위한 타입 힌트 추가
|
|
181
|
+
- 오류 조건 및 예외 문서화
|
|
182
|
+
|
|
183
|
+
### 사용자 문서화
|
|
184
|
+
|
|
185
|
+
관련 문서 파일 업데이트:
|
|
186
|
+
|
|
187
|
+
- **API 참조**: `docs/api/plugins/utils.md`
|
|
188
|
+
- **기능 가이드**: `docs/features/plugins/index.md`
|
|
189
|
+
- **변경 로그**: `docs/changelog.md`
|
|
190
|
+
- **예제**: 실용적인 사용 예제 추가
|
|
191
|
+
|
|
192
|
+
### 문서화 형식
|
|
193
|
+
|
|
194
|
+
다음을 포함한 명확하고 간결한 언어 사용:
|
|
195
|
+
|
|
196
|
+
- 모든 함수에 대한 코드 예제
|
|
197
|
+
- 매개변수 및 반환값 설명
|
|
198
|
+
- 오류 처리 예제
|
|
199
|
+
- 호환성을 깨뜨리는 변경에 대한 마이그레이션 가이드
|
|
200
|
+
|
|
201
|
+
## Pull Request 프로세스
|
|
202
|
+
|
|
203
|
+
### 제출 전
|
|
204
|
+
|
|
205
|
+
1. **포맷팅 및 린팅 실행**:
|
|
206
|
+
```bash
|
|
207
|
+
ruff format .
|
|
208
|
+
ruff check --fix .
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
2. **모든 테스트 실행**:
|
|
212
|
+
```bash
|
|
213
|
+
pytest
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
3. **필요에 따라 문서 업데이트**
|
|
217
|
+
|
|
218
|
+
4. **중요한 변경사항에 대한 변경 로그 항목 추가**
|
|
219
|
+
|
|
220
|
+
### Pull Request 가이드라인
|
|
221
|
+
|
|
222
|
+
- **명확한 제목**: PR이 달성하는 것 설명
|
|
223
|
+
- **자세한 설명**: 변경사항과 동기 설명
|
|
224
|
+
- **이슈 참조**: 관련 GitHub 이슈에 링크
|
|
225
|
+
- **테스트 커버리지**: 새 코드가 테스트되었는지 확인
|
|
226
|
+
- **문서화**: 사용자 대상 변경사항에 대한 문서 업데이트
|
|
227
|
+
|
|
228
|
+
### PR 템플릿
|
|
229
|
+
|
|
230
|
+
```markdown
|
|
231
|
+
## 설명
|
|
232
|
+
변경사항에 대한 간단한 설명
|
|
233
|
+
|
|
234
|
+
## 변경 유형
|
|
235
|
+
- [ ] 버그 수정
|
|
236
|
+
- [ ] 새로운 기능
|
|
237
|
+
- [ ] 호환성을 깨뜨리는 변경
|
|
238
|
+
- [ ] 문서 업데이트
|
|
239
|
+
|
|
240
|
+
## 테스트
|
|
241
|
+
- [ ] 로컬에서 테스트 통과
|
|
242
|
+
- [ ] 새 기능에 대한 새 테스트 추가
|
|
243
|
+
- [ ] Ruff로 코드 포맷팅됨
|
|
244
|
+
|
|
245
|
+
## 문서화
|
|
246
|
+
- [ ] API 문서 업데이트됨
|
|
247
|
+
- [ ] 필요시 사용자 가이드 업데이트됨
|
|
248
|
+
- [ ] 변경 로그 항목 추가됨
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## 코드 리뷰
|
|
252
|
+
|
|
253
|
+
### 리뷰 기준
|
|
254
|
+
|
|
255
|
+
- **기능성**: 코드가 의도된 대로 작동
|
|
256
|
+
- **품질**: 코딩 표준 및 모범 사례 준수
|
|
257
|
+
- **테스팅**: 적절한 테스트 커버리지
|
|
258
|
+
- **문서화**: 공개 API에 대한 명확한 문서
|
|
259
|
+
- **성능**: 명백한 성능 문제 없음
|
|
260
|
+
- **보안**: 보안 취약점 없음
|
|
261
|
+
|
|
262
|
+
### 피드백 대응
|
|
263
|
+
|
|
264
|
+
- 모든 리뷰어 의견 처리
|
|
265
|
+
- 피드백이 불명확하면 설명 요청
|
|
266
|
+
- 요청된 변경사항을 신속히 수행
|
|
267
|
+
- 변경 후 포맷팅 및 테스트 재실행
|
|
268
|
+
|
|
269
|
+
## 프로젝트 구조
|
|
270
|
+
|
|
271
|
+
프로젝트 조직 이해:
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
synapse_sdk/
|
|
275
|
+
├── plugins/
|
|
276
|
+
│ ├── utils/ # 플러그인 유틸리티 (모듈식)
|
|
277
|
+
│ │ ├── config.py # 설정 유틸리티
|
|
278
|
+
│ │ ├── actions.py # 액션 관리
|
|
279
|
+
│ │ └── registry.py # 레지스트리 유틸리티
|
|
280
|
+
│ ├── categories/ # 플러그인 카테고리 구현
|
|
281
|
+
│ └── models.py # 핵심 플러그인 모델
|
|
282
|
+
├── clients/ # API 클라이언트
|
|
283
|
+
├── utils/ # 일반 유틸리티
|
|
284
|
+
└── devtools/ # 개발 도구
|
|
285
|
+
|
|
286
|
+
tests/
|
|
287
|
+
├── plugins/
|
|
288
|
+
│ └── utils/ # 플러그인 유틸리티 테스트
|
|
289
|
+
└── ... # 기타 테스트 모듈
|
|
290
|
+
|
|
291
|
+
docs/ # 문서
|
|
292
|
+
├── api/ # API 참조
|
|
293
|
+
├── features/ # 기능 가이드
|
|
294
|
+
└── changelog.md # 변경 로그
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## 도움 받기
|
|
298
|
+
|
|
299
|
+
- **GitHub Issues**: 버그 신고 또는 기능 요청
|
|
300
|
+
- **Discussions**: 질문하거나 아이디어 논의
|
|
301
|
+
- **문서화**: 먼저 기존 문서 확인
|
|
302
|
+
- **코드 리뷰**: 리뷰 중 설명 요청
|
|
303
|
+
|
|
304
|
+
## 라이센스
|
|
305
|
+
|
|
306
|
+
Synapse SDK에 기여함으로써 귀하의 기여가 프로젝트와 동일한 라이센스(MIT 라이센스) 하에 라이센스될 것에 동의합니다.
|