dory-to-dory-mcp 0.1.4 → 0.2.0
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/README.md +33 -13
- package/contracts/core-openapi.json +5593 -1369
- package/dist/core-client.d.ts +42 -25
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +50 -65
- package/dist/core-client.js.map +1 -1
- package/dist/generated/core-api.d.ts +6007 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/results.d.ts +1 -0
- package/dist/results.d.ts.map +1 -1
- package/dist/results.js +1 -0
- package/dist/results.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +131 -255
- package/dist/server.js.map +1 -1
- package/dist/usage-guide.d.ts +24 -16
- package/dist/usage-guide.d.ts.map +1 -1
- package/dist/usage-guide.js +68 -23
- package/dist/usage-guide.js.map +1 -1
- package/dist/workflow-inputs.d.ts +282 -0
- package/dist/workflow-inputs.d.ts.map +1 -0
- package/dist/workflow-inputs.js +86 -0
- package/dist/workflow-inputs.js.map +1 -0
- package/docs/deployment.md +87 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -2,14 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
로컬 또는 외부에서 직접 접근할 수 없는 Agent를 dory-to-dory Core에 연결하는 독립 MCP 서버입니다. MCP 호스트가 이 프로세스를 자식 프로세스로 실행하고 JSON-RPC를 `stdio`로 주고받습니다. Agent가 inbound 서버를 열 필요는 없습니다.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## v2 범위
|
|
6
6
|
|
|
7
7
|
- Core 연결 및 자연어 정책 조회
|
|
8
|
-
- 사용자
|
|
9
|
-
- coordination
|
|
10
|
-
-
|
|
8
|
+
- 사용자 검색과 수락된 친구 조회·검색. 친구 추가·삭제는 Dashboard에서만 지원
|
|
9
|
+
- 1:N coordination 생성·조회·취소와 host/client 역할별 카드
|
|
10
|
+
- 생성 전 Skill 검색을 최소 1회 시도하고, 적합한 Skill 또는 goal을 바탕으로 plan 생성·결정적 skill code 실행
|
|
11
|
+
- lease/fencing token이 있는 work claim, 사용자 확인, host 갱신과 client 응답 제출
|
|
12
|
+
- 참여자별 nullable session 연결과 revision 기반 명시적 이동·해제
|
|
11
13
|
- Core API key 기반 인증
|
|
12
|
-
- MCP Tools
|
|
14
|
+
- MCP Tools 21개 제공
|
|
15
|
+
|
|
16
|
+
버전은 `0.2.0`이며 Core `/v2` 계약이 필요합니다. npm에서 정확한 버전을 고정해 설치하거나 검증한 tarball을 사용할 수 있습니다. 구형 `/v1` 쓰기를 새 계약으로 자동 변환하지 않으며 진행 중인 구형 작업에는 기존 MCP 버전을 사용합니다.
|
|
17
|
+
|
|
18
|
+
### 카드와 세션 도구
|
|
19
|
+
|
|
20
|
+
`d2d_create_coordination`은 `client_handles`, `goal`을 받습니다. `goal_type`은 제거했습니다. 매 새 coordination 생성 전에 `d2d_search_coordination_skills`를 최소 한 번 호출하도록 안내합니다. 관련 후보는 `d2d_get_coordination_skill`로 조건·계획 템플릿·정확한 버전을 확인한 뒤 plan을 작성합니다. 적합한 후보가 없으면 skill 없이 직접 계획하며, 검색 이력을 서버에서 강제 검증하지는 않습니다. `d2d_run_skill_code`는 skill에 등록된 코드와 입력 스키마를 사용합니다.
|
|
21
|
+
|
|
22
|
+
`d2d_claim_next_item` 결과의 `delivery.work.claim_id`와 카드 revision을 사용합니다. claim 응답에는 skill 본문을 포함하지 않습니다. 필요한 경우 `d2d_get_coordination`으로 저장된 skill을 명시적으로 조회합니다. client는 `d2d_submit_item_result`의 `to_host`만 제출하고 다른 카드 필드는 거부됩니다. host는 `d2d_update_host_card`로 plan, slots, 상태 및 다음 요청을 결정합니다. 회의 commit은 같은 proposal에 전원 준비가 확인된 뒤 host가 결정하며 최종 실행 receipt를 확인해야 완료할 수 있습니다.
|
|
23
|
+
|
|
24
|
+
생성·claim·결과·host 갱신·사용자 답변에는 현재 `session_id`를 전달할 수 있습니다. 외부 Agent는 `null` 또는 생략을 사용할 수 있으며 기존 연결은 유지됩니다. 명시적 이동·해제는 `d2d_bind_session`에 `expected_session_revision`과 문자열 또는 `null`을 전달합니다. 각 Agent는 자기 연결만 접근합니다. 사용자 답변은 `interaction_id`, `answer`, 승인 질문인 경우 명시적 `decision`으로 제출합니다.
|
|
13
25
|
|
|
14
26
|
MCP Resources, Prompts, 알림 push, polling daemon, FCM, Runtime Adapter는 포함하지 않습니다. 사용자가 처리할 작업을 묻거나 이메일·Telegram 알림 후 Agent를 열면 `d2d_check_actionable_items`로 사용자 답변 대기 항목을 먼저 확인합니다. Background Watcher는 SSE wake-up을 받은 뒤 `d2d_claim_next_item`으로 pending item만 처리합니다. 최종 도구 호출 여부는 MCP 호스트의 Agent 모델이 결정합니다.
|
|
15
27
|
|
|
@@ -21,27 +33,35 @@ Agent가 dory-to-dory의 목적, Watcher 설치와 device pairing, SSE 처리,
|
|
|
21
33
|
- dory-to-dory 계정. 권장 Watcher setup이 device-code pairing으로 Agent API key를 발급하고 안전하게 저장합니다.
|
|
22
34
|
- `stdio` MCP 서버를 실행할 수 있는 Agent/MCP 호스트
|
|
23
35
|
|
|
24
|
-
##
|
|
36
|
+
## Watcher를 통한 설치
|
|
25
37
|
|
|
26
|
-
|
|
38
|
+
Watcher를 사용하면 대화형 setup으로 설치할 수 있습니다. 아래 `dory-to-dory-watcher@0.2.0` 명령은 해당 Watcher 버전이 별도로 게시된 뒤 사용합니다. MCP만 게시해도 기존 Watcher 설치의 의존성이 자동으로 바뀌지는 않습니다. Watcher 게시 전에는 Dory 앱의 검증된 번들 또는 로컬 Watcher 빌드를 사용하고, MCP를 직접 등록하려면 아래 npx 설정을 사용합니다. setup이 Codex CLI, Claude Code, Gemini CLI를 탐색하고 브라우저 device pairing, credential 파일 저장, MCP 등록과 연결 검사를 안내합니다. 호환되는 정확한 MCP 버전이 Watcher 의존성으로 함께 설치되므로 MCP를 별도로 설치할 필요가 없습니다.
|
|
27
39
|
|
|
28
40
|
```sh
|
|
29
|
-
npm install --global dory-to-dory-watcher@
|
|
41
|
+
npm install --global dory-to-dory-watcher@0.2.0
|
|
30
42
|
dory-watcher setup
|
|
31
43
|
```
|
|
32
44
|
|
|
33
45
|
Watcher는 Core의 SSE wake-up을 기다렸다가 pending item이 있을 때만 기존 Agent CLI를 실행합니다. macOS와 Linux에서는 선택적으로 로그인 백그라운드 서비스를 설치할 수 있고, Windows에서는 foreground `dory-watcher run`을 사용합니다. 자동 업데이트는 아직 제공하지 않습니다.
|
|
34
46
|
|
|
47
|
+
Watcher는 Agent별로 지원되는 비대화식 승인과 격리 방식을 사용합니다. Codex는 `--approve-for-me --ephemeral`로 `workspace-write` 경계 안에서 Auto Review를 사용하고, Claude Code는 `--permission-mode auto`의 classifier로 도구 요청을 검토합니다. Gemini CLI에는 reviewer형 자동 검토 모드가 없으므로 현재 macOS에서만 `--approval-mode yolo --sandbox`와 `sandbox-exec`의 `strict-open` profile을 함께 사용합니다. Linux/Windows Gemini는 로컬 MCP와 credential을 container sandbox에 안전하게 연결하는 기능이 마련될 때까지 fail-closed로 거부합니다. 전역 Agent 설정은 변경하지 않으며, built-in Adapter는 권한·sandbox·config·MCP 경계를 바꾸는 추가 인자를 거부합니다. 자동 검토가 거부한 동작은 실행되지 않습니다. Agent가 계속 실행할 수 있으면 더 안전한 대안을 찾거나 `ask_user` 또는 `error`로 전환하고, 제출 전에 중단되면 Watcher가 안전한 장애 코드만 보고하며 item은 재시도할 수 있게 유지합니다.
|
|
48
|
+
|
|
49
|
+
`dory-watcher doctor`는 Core와 Agent 로그인뿐 아니라 실제 무인 실행 모드도 검사합니다. Codex와 macOS Gemini에서는 빈 임시 작업공간에서 도구를 사용하지 않는 짧은 모델 진단을 한 번 실행하므로 소량의 사용량 또는 API 요금이 발생할 수 있지만, dory-to-dory item을 claim하거나 처리하지 않습니다.
|
|
50
|
+
|
|
51
|
+
## 친구 추가·삭제 및 초대 관리
|
|
52
|
+
|
|
53
|
+
친구 초대 생성, 확인, 수락, 거절과 취소는 MCP 도구가 아니라 [dory-to-dory 친구 관리 화면](https://dory-to-dory.dnotitia.ai/friends)에서 사용자가 직접 처리합니다. 초대가 도착하면 Core는 사용자가 활성화한 이메일과 Telegram으로 일반 알림을 보냅니다. 반복 초대에는 발신자 제한과 수신자별 알림 cooldown이 적용되며, 알림이 억제되어도 초대는 Dashboard에 표시됩니다. 상대가 초대를 수락해 친구 관계가 된 뒤에만 Coordination을 생성할 수 있습니다.
|
|
54
|
+
|
|
35
55
|
## 고급 사용자: MCP 직접 추가
|
|
36
56
|
|
|
37
|
-
|
|
57
|
+
MCP 호스트 설정에 정확한 버전을 지정합니다.
|
|
38
58
|
|
|
39
59
|
```json
|
|
40
60
|
{
|
|
41
61
|
"mcpServers": {
|
|
42
62
|
"dory-to-dory": {
|
|
43
63
|
"command": "npx",
|
|
44
|
-
"args": ["-y", "dory-to-dory-mcp@0.
|
|
64
|
+
"args": ["-y", "dory-to-dory-mcp@0.2.0"],
|
|
45
65
|
"env": {
|
|
46
66
|
"D2D_API_KEY": "d2d_live_replace_me"
|
|
47
67
|
}
|
|
@@ -52,9 +72,9 @@ Watcher는 Core의 SSE wake-up을 기다렸다가 pending item이 있을 때만
|
|
|
52
72
|
|
|
53
73
|
호스트마다 설정 파일 위치와 최상위 키 이름은 다를 수 있지만 핵심은 같습니다. 호스트가 `npx`를 실행하고 환경 변수로 API key를 넘깁니다. Core URL은 기본적으로 `https://dory-to-dory.dnotitia.ai`를 사용하며, 다른 Core에 연결할 때만 `D2D_CORE_URL`로 재정의합니다. 패키지 버전을 고정하면 예기치 않은 자동 업데이트를 피할 수 있습니다.
|
|
54
74
|
|
|
55
|
-
`pnpm dlx`를 쓰는 호스트라면 command를 `pnpm`, args를 `["dlx", "dory-to-dory-mcp@0.
|
|
75
|
+
`pnpm dlx`를 쓰는 호스트라면 command를 `pnpm`, args를 `["dlx", "dory-to-dory-mcp@0.2.0"]`로 바꿉니다.
|
|
56
76
|
|
|
57
|
-
##
|
|
77
|
+
## 로컬 소스 또는 tarball 설치
|
|
58
78
|
|
|
59
79
|
```sh
|
|
60
80
|
pnpm install
|
|
@@ -82,7 +102,7 @@ MCP 호스트 설정:
|
|
|
82
102
|
또는 `pnpm pack`으로 생성한 `.tgz` 파일을 다른 장비에 전달해 설치할 수 있습니다.
|
|
83
103
|
|
|
84
104
|
```sh
|
|
85
|
-
npm install --global ./dory-to-dory-mcp-0.
|
|
105
|
+
npm install --global ./dory-to-dory-mcp-0.2.0.tgz
|
|
86
106
|
```
|
|
87
107
|
|
|
88
108
|
이후 MCP command를 `d2d-mcp`로 설정합니다.
|