maskweaver 0.8.16 → 0.9.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.
Files changed (34) hide show
  1. package/README.ko.md +640 -657
  2. package/README.md +672 -689
  3. package/assets/commands/meta/commands.json +254 -0
  4. package/assets/commands/weave-agents.md +62 -0
  5. package/assets/commands/weave-approve.md +61 -0
  6. package/assets/commands/weave-build.md +99 -0
  7. package/assets/commands/weave-help.md +112 -158
  8. package/assets/commands/weave-interview.md +121 -0
  9. package/assets/commands/weave-map.md +109 -0
  10. package/assets/commands/weave-troubleshoot.md +57 -0
  11. package/dist/plugin/index.d.ts +5 -1
  12. package/dist/plugin/index.d.ts.map +1 -1
  13. package/dist/plugin/index.js +20 -17
  14. package/dist/plugin/index.js.map +1 -1
  15. package/dist/plugin/tools/command-registry.d.ts +51 -0
  16. package/dist/plugin/tools/command-registry.d.ts.map +1 -0
  17. package/dist/plugin/tools/command-registry.js +348 -0
  18. package/dist/plugin/tools/command-registry.js.map +1 -0
  19. package/dist/plugin/tools/slashcommand.d.ts +1 -1
  20. package/dist/plugin/tools/slashcommand.d.ts.map +1 -1
  21. package/dist/plugin/tools/slashcommand.js +47 -193
  22. package/dist/plugin/tools/slashcommand.js.map +1 -1
  23. package/dist/plugin/tools/weave.d.ts +14 -35
  24. package/dist/plugin/tools/weave.d.ts.map +1 -1
  25. package/dist/plugin/tools/weave.js +247 -213
  26. package/dist/plugin/tools/weave.js.map +1 -1
  27. package/package.json +142 -142
  28. package/assets/commands/weave-approve-plan.md +0 -57
  29. package/assets/commands/weave-design.md +0 -296
  30. package/assets/commands/weave-flow.md +0 -48
  31. package/assets/commands/weave-plan.md +0 -15
  32. package/assets/commands/weave-research.md +0 -51
  33. package/assets/commands/weave-spec.md +0 -227
  34. package/assets/commands/weave-switch.md +0 -170
@@ -1,158 +1,112 @@
1
- ---
2
- description: Weave 워크플로우 도움말
3
- ---
4
-
5
- # /weave-help - Weave 워크플로우 도움말
6
-
7
- ## Weave란?
8
-
9
- Maskweaver의 **Phase-Driven Development** 워크플로우입니다.
10
- "AI가 검증하고, 유저가 확인한다"
11
-
12
- **멀티 플랜**: 하나의 프로젝트에서 여러 플랜을 동시에 관리할 수 있습니다.
13
-
14
- ---
15
-
16
- ## 버전 확인
17
-
18
- 설치된 Maskweaver 버전을 확인하는 방법:
19
-
20
- | 방법 | 명령어 |
21
- |------|--------|
22
- | CLI | `maskweaver --version` 또는 `maskweaver -V` |
23
- | npm | `npm list maskweaver` |
24
- | 채팅 내 | `maskweaver_status` 도구 사용 |
25
- | Weave | `/weave help` |
26
- | Node.js | `import { VERSION } from 'maskweaver'` |
27
-
28
- ---
29
-
30
- ## 핵심 철학
31
-
32
- ```
33
- 1. 테스트 먼저 (Protect Before Change)
34
- 2. 작게 자주 (Small & Often)
35
- 3. 동작이 정답 (Working > Perfect)
36
- ```
37
-
38
- ---
39
-
40
- ## 명령어 목록
41
-
42
- | 명령어 | 설명 |
43
- |--------|------|
44
- | `/weave-init` | Weave 초기화 (프로젝트당 1회) |
45
- | `/weave-research [docs]` | 문서+워크스페이스를 깊게 조사하고 `tasks/research.md` 생성 |
46
- | `/weave-spec [docs]` | 요구사항 정제 + 검증 기준(AC) 추출 (선택) |
47
- | `/weave-prepare [docs]` | **research + spec + plan을 한 번에 생성** ( 계획은 자동 분할) |
48
- | `/weave-refine-plan` | `tasks/plan-notes.md` 지시문을 plan에 자동 반영 |
49
- | `/weave-approve-plan` | 구현 계획 승인 게이트 통과 |
50
- | `/weave-flow [docs]` | **원커맨드** prepare approve-plan gate craft |
51
- | `/weave-design [docs]` | 요구사항 분석 Phase 계획 ( 플랜 생성, 큰 계획은 자동 분할) |
52
- | `/weave-plan [docs]` | `/weave-design` 별칭 (호환용) |
53
- | `/weave-craft [phase-id]` | 활성 플랜의 Phase 실행 준비 (실행 컨텍스트 생성) |
54
- | `/weave-status` | 전체 플랜 목록 + 진행 상황 |
55
- | `/weave-switch [plan]` | 활성 플랜 전환 / 아카이브 |
56
- | `/weave-worktree` | git worktree 기반 병렬 작업(기능/Phase) 관리 |
57
- | `/weave-verify` | 빌드/테스트 검증 실행(프로젝트 유형 자동 감지) |
58
- | `/weave-help` | 이 도움말 |
59
-
60
- ---
61
-
62
- ## 멀티 플랜 워크플로우
63
-
64
- ```
65
- /weave-init 프로젝트 초기화 (1회)
66
-
67
- /weave-flow docs/ ← (원커맨드) prepare→approve-plan gate→craft
68
-
69
- /weave-prepare docs/ (수동 경로) research+spec+plan 번에 생성
70
-
71
- /weave-refine-plan (선택) plan-notes 기반 자동 정제
72
-
73
- /weave-approve-plan 구현 계획 승인 (필수)
74
-
75
- /weave-craft 다음 Phase 자동 선택 실행 준비
76
-
77
- /weave-design wiki/new-feat 두 번째 플랜 추가 (또는 prepare)
78
-
79
- /weave-switch first-plan ← 첫 번째 플랜으로 돌아가기
80
-
81
- /weave-status ← 전체 상황 확인
82
- ```
83
-
84
- ### 플랜 상태 흐름
85
-
86
- ```
87
- active ──→ paused ──→ active (switch로 전환)
88
-
89
- └──→ completed ──→ archived (switch archive)
90
-
91
- └──→ paused (switch unarchive)
92
- ```
93
-
94
- ---
95
-
96
- ## 파일 구조
97
-
98
- ```
99
- .opencode/weave/
100
- ├── state.yaml ← 활성 플랜 추적
101
- ├── specs/
102
- │ ├── emotion-diary.yaml ← baseline spec 1
103
- │ └── todo-app.yaml ← baseline spec 2
104
- └── plans/
105
- ├── emotion-diary.yaml ← 플랜 1
106
- ├── todo-app.yaml ← 플랜 2
107
- └── auth-module.yaml ← 플랜 3
108
- ```
109
-
110
- ---
111
-
112
- ## Maskweaver 통합 기능
113
-
114
- ### 마스크 자동 선택
115
-
116
- 작업 맥락에 따라 전문가 마스크가 자동 선택됩니다:
117
- - 아키텍처 → Martin Fowler
118
- - 테스트 → Kent Beck
119
- - React → Dan Abramov
120
- - 성능 → Linus Torvalds
121
-
122
- ### 글로벌 지식 공유
123
-
124
- 트러블슈팅 경험이 프로젝트 간 공유됩니다:
125
- - 에러 발생 시 → 과거 솔루션 검색
126
- - 해결 시 → 새 솔루션 기록
127
-
128
- ### 다층 자동 검증
129
-
130
- Phase 실행 시 자동 검증:
131
- 1. TypeCheck → Lint → Build
132
- 2. Unit Tests → E2E Tests
133
- 3. Screenshot → A11y Check
134
-
135
- ---
136
-
137
- ## 빠른 시작
138
-
139
- ```bash
140
- # 1. 초기화 (프로젝트당 1회)
141
- /weave-init
142
-
143
- # 2. (추천) spec + plan을 한 번에 생성
144
- /weave-prepare wiki/
145
-
146
- # 3. 계획 검토 후 승인 게이트 통과
147
- /weave-refine-plan # (선택) notes 반영
148
- /weave-approve-plan
149
-
150
- # 4. 다음 Phase 자동 선택 실행
151
- /weave-craft
152
-
153
- # 5. 새 기능 추가? 새 플랜!
154
- /weave-design docs/new-feature
155
-
156
- # 6. 플랜 사이 전환
157
- /weave-switch emotion-diary
158
- ```
1
+ ---
2
+ description: Weave 워크플로우 도움말
3
+ ---
4
+
5
+ # /weave-help - Weave 워크플로우 도움말
6
+
7
+ ## Weave란?
8
+
9
+ Maskweaver의 **Phase-Driven Development** 워크플로우입니다.
10
+ "AI가 검증하고, 유저가 확인한다"
11
+
12
+ **멀티 플랜**: 하나의 프로젝트에서 여러 플랜을 동시에 관리할 수 있습니다.
13
+
14
+ ---
15
+
16
+ ## 버전 확인
17
+
18
+ | 방법 | 명령어 |
19
+ |------|--------|
20
+ | CLI | `maskweaver --version` 또는 `maskweaver -V` |
21
+ | npm | `npm list maskweaver` |
22
+ | 채팅 | `maskweaver_status` 도구 사용 |
23
+ | Weave | `/weave help` |
24
+
25
+ ---
26
+
27
+ ## 핵심 철학
28
+
29
+ ```
30
+ 1. 테스트 먼저 (Protect Before Change)
31
+ 2. 작게 자주 (Small & Often)
32
+ 3. 동작이 정답 (Working > Perfect)
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 통합 후 명령어 목록 (v0.9+)
38
+
39
+ | 명령어 | 설명 |
40
+ |--------|------|
41
+ | `/weave-init` | Weave 초기화 (프로젝트당 1회) |
42
+ | `/weave-map [deep]` | 코드베이스 구조 분석 + GDC 그래프 연동 |
43
+ | `/weave-interview [docs]` | 코드베이스 맵 기반 멀티스텝 요구사항 인터뷰 |
44
+ | `/weave-prepare [docs]` | **research + spec + plan을 한 번에 생성** ( 계획은 자동 분할) |
45
+ | `/weave-refine-plan` | `tasks/plan-notes.md` 지시문을 plan에 자동 반영 |
46
+ | `/weave-approve` | 구현 계획 승인 게이트 통과 |
47
+ | `/weave-craft [phase-id]` | 활성 플랜의 Phase 실행 준비 (실행 컨텍스트 생성) |
48
+ | `/weave-build [action]` | **자율 빌드 루프** run, status, stop, list, resume, sync |
49
+ | `/weave-status` | 전체 플랜 목록 + 진행 상황 |
50
+ | `/weave-worktree` | git worktree 기반 병렬 작업 관리 |
51
+ | `/weave-verify` | 빌드/테스트 검증 실행 (프로젝트 유형 자동 감지) |
52
+ | `/weave-archive` | 검증된 변경사항 아카이브 |
53
+ | `/weave-troubleshoot [error]` | 글로벌 지식 검색 / 솔루션 기록 (`--record`) |
54
+ | `/weave-repair` | plan YAML 자동 검사 수리 |
55
+ | `/weave-agents [flags]` | 에이전트 동기화 (`--sync`) / 설정 초기화 (`--init`) |
56
+ | `/weave-help` | 도움말 |
57
+
58
+ ---
59
+
60
+ ## 워크플로우
61
+
62
+ ```
63
+ /weave-init ← 프로젝트 초기화 (1회)
64
+
65
+ /weave-prepare docs/ research + spec + plan 한 번에 생성
66
+
67
+ /weave-refine-plan ← (선택) plan-notes 기반 자동 정제
68
+
69
+ /weave-approve 구현 계획 승인 (필수)
70
+
71
+ /weave-craft 다음 Phase 자동 선택 실행 준비
72
+
73
+ /weave-build 자율 빌드 루프 실행
74
+
75
+ /weave-verify 검증
76
+
77
+ /weave-archive 아카이브
78
+ ```
79
+
80
+ ---
81
+
82
+ ## 파일 구조
83
+
84
+ ```
85
+ .opencode/weave/
86
+ ├── state.yaml ← 활성 플랜 추적
87
+ ├── specs/
88
+ └── *.yaml ← baseline spec
89
+ └── plans/
90
+ └── *.yaml ← 플랜
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 마이그레이션 노트 (v0.9)
96
+
97
+ | 기존 명령어 | 새 명령어 | 비고 |
98
+ |-------------|-----------|------|
99
+ | `approve-plan` | `approve` | alias로 v0.9까지 동작 |
100
+ | `build-resume` | `build --resume` | alias로 v0.9까지 동작 |
101
+ | `loop-run` | `build` | alias로 v0.9까지 동작 |
102
+ | `loop-status` | `build --status` | alias로 v0.9까지 동작 |
103
+ | `loop-stop` | `build --stop` | alias로 v0.9까지 동작 |
104
+ | `loop-list` | `build --list` | alias로 v0.9까지 동작 |
105
+ | `loop-sync` | `build --sync` | alias로 v0.9까지 동작 |
106
+ | `record` | `troubleshoot --record` | alias로 v0.9까지 동작 |
107
+ | `sync-agents` | `agents --sync` | alias로 v0.9까지 동작 |
108
+ | `init-config` | `agents --init` | alias로 v0.9까지 동작 |
109
+ | `research` | `prepare` | deprecated alias (v0.9 경고) |
110
+ | `spec` | `prepare` | deprecated alias (v0.9 경고) |
111
+ | `design` | `prepare` | deprecated alias (v0.9 경고) |
112
+ | `flow` | `prepare` → `approve` → `craft` | deprecated alias (v0.9 경고) |
@@ -0,0 +1,121 @@
1
+ ---
2
+ description: 코드베이스 맵 결과를 바탕으로 사용자 요구사항 인터뷰 수행
3
+ ---
4
+
5
+ # /weave-interview - 요구사항 인터뷰
6
+
7
+ ## 개요
8
+
9
+ `/weave-map` 분석 결과를 바탕으로 **사용자와의 멀티스텝 인터뷰**를 수행합니다.
10
+ 코드베이스의 현재 상태와 구조적 변경 가능성을 파악하고, 명확해질 때까지 질문을 반복합니다.
11
+
12
+ **사용법**:
13
+ - `/weave-interview` — 기본 인터뷰 (코드베이스 맵 기반)
14
+ - `/weave-interview docs/` — 문서 경로를 함께 참조하며 인터뷰
15
+
16
+ ---
17
+
18
+ ## 데이터 로드 방법 (필수)
19
+
20
+ ```
21
+ 1. .opencode/weave/maps/map-result.yaml 로드 (map 먼저 실행되어 있어야 함)
22
+ 2. map 결과가 없으면: 자동으로 기본 map 분석 수행 후 진행
23
+ 3. (선택) docsPath의 문서 로드
24
+ 4. 코드베이스 기술 스택 및 구조적 이슈 확인
25
+ ```
26
+
27
+ ---
28
+
29
+ ## 입력
30
+
31
+ ```yaml
32
+ docsPath: "docs/" # (선택) 요구사항 문서 경로
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 동작 흐름
38
+
39
+ ```
40
+ 1. 코드베이스 맵 결과 로드 (없으면 자동 생성)
41
+ 2. 구조적 변경 감지 (structural changes)
42
+ - 현재 상태 vs 제안된 변경
43
+ - Breaking change 여부
44
+ - 영향받는 파일 목록
45
+ 3. 사용자에게 질문 생성
46
+ - 변경 영역에 대한 의도 확인
47
+ - 우선순위 및 범위 조정
48
+ 4. 충분한 명확성 달성 시 인터뷰 종료
49
+ - 종료 기준: 모든 structural changes에 대해 agreed 상태
50
+ ```
51
+
52
+ ---
53
+
54
+ ## 출력 예시
55
+
56
+ ### 인터뷰 진행 중
57
+
58
+ ```markdown
59
+ ## 🎤 Weave Interview
60
+
61
+ **기반 맵**: `map-20250428-a1b2`
62
+ **프로젝트 타입**: TypeScript / React
63
+
64
+ ### 감지된 구조적 변경
65
+
66
+ 1. **Auth 모듈 분리**
67
+ - 현재: `src/lib/auth.ts` (단일 파일)
68
+ - 제안: `src/auth/` 디렉토리로 분리
69
+ - 영향: 8개 파일
70
+ - Breaking: ❌ 아니오
71
+
72
+ 2. **Prisma → Drizzle 마이그레이션**
73
+ - 현재: Prisma ORM
74
+ - 제안: Drizzle ORM으로 전환
75
+ - 영향: 15개 파일
76
+ - Breaking: ⚠️ 예 (DB 스키마 변경)
77
+
78
+ ---
79
+
80
+ ### 질문
81
+
82
+ > **Q1**: Auth 모듈 분리는 단순 코드 구조 개선인가요, 아니면 새로운 인증 기능(예: OAuth) 추가를 위한 준비인가요?
83
+ >
84
+ > 답변 후 다음 질문으로 진행합니다.
85
+ ```
86
+
87
+ ### 인터뷰 완료
88
+
89
+ ```markdown
90
+ ## ✅ Interview Complete
91
+
92
+ **모든 구조적 변경이 명확해졌습니다.**
93
+
94
+ | 변경 영역 | 상태 | 결정 |
95
+ |-----------|------|------|
96
+ | Auth 모듈 분리 | ✅ Agreed | 디렉토리 분리 + OAuth 확장 준비 |
97
+ | Prisma → Drizzle | ⏳ Pending | Phase 2로 연기 (현재는 Prisma 유지) |
98
+
99
+ ### 다음 단계
100
+ - `/weave-design` — 결정사항을 바탕으로 계획 수립
101
+ - `/weave-prepare` — research + spec + plan 한 번에 생성
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 아티팩트 저장 위치
107
+
108
+ 인터뷰 결과는 `.opencode/weave/interviews/`에 저장됩니다:
109
+
110
+ ```
111
+ .opencode/weave/interviews/
112
+ └── interview-{id}.yaml # 질문-답변 기록 및 structural changes 상태
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 관련 명령어
118
+
119
+ - `/weave-map` — 코드베이스 맵 생성 (인터뷰 선행 조건)
120
+ - `/weave-design` — 인터뷰 결과를 바탕으로 계획 수립
121
+ - `/weave-prepare` — 전체 워크플로우 한 번에 실행
@@ -0,0 +1,109 @@
1
+ ---
2
+ description: 코드베이스 구조를 분석하고 지식 그래프(knowledge graph) 생성
3
+ ---
4
+
5
+ # /weave-map - 코드베이스 맵 분석
6
+
7
+ ## 개요
8
+
9
+ 현재 프로젝트의 코드베이스 구조를 분석하여 **기술 스택 자동 감지**, **디렉토리 구조 분석**, **GDC 그래프 연동** 결과를 생성합니다.
10
+ `deep` 옵션 사용 시 `graphify-windows` 스킬을 활용한 딥 그래프 분석도 수행합니다.
11
+
12
+ **사용법**:
13
+ - `/weave-map` — 기본 코드베이스 분석
14
+ - `/weave-map --deep` — 심층 그래프 분석 (graphify-windows)
15
+
16
+ ---
17
+
18
+ ## 데이터 로드 방법 (필수)
19
+
20
+ ```
21
+ 1. 프로젝트 루트의 package.json, tsconfig.json, Cargo.toml, go.mod 등 탐지
22
+ 2. GDC 설정 확인 (.gdc/config.yaml 또는 .opencode/gdc/)
23
+ 3. GDC 활성화 시: gdc graph + gdc stats 명령 실행
24
+ 4. deep 옵션 시: graphify-windows 스킬 실행
25
+ ```
26
+
27
+ ---
28
+
29
+ ## 입력
30
+
31
+ ```yaml
32
+ deep: false # (선택) true 시 graphify-windows 딥 분석 실행
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 출력 예시
38
+
39
+ ### 기본 분석
40
+
41
+ ```markdown
42
+ ## 🗺️ Codebase Map
43
+
44
+ **프로젝트 타입**: TypeScript / Node.js
45
+ **기술 스택**: React, Next.js, Prisma, Tailwind
46
+
47
+ ### 디렉토리 구조
48
+ ```
49
+ src/
50
+ ├── app/ # Next.js App Router
51
+ ├── components/ # React 컴포넌트
52
+ ├── lib/ # 유틸리티
53
+ └── db/ # Prisma 스키마
54
+ ```
55
+
56
+ ### GDC 그래프
57
+ - **노드**: 42개
58
+ - **엣지**: 78개
59
+ - **커버리지**: 85% 구현, 60% 테스트
60
+
61
+ ### 주요 의존성
62
+ - next: ^14.0
63
+ - react: ^18.2
64
+ - @prisma/client: ^5.0
65
+ ```
66
+
67
+ ### 심층 분석 (deep)
68
+
69
+ ```markdown
70
+ ## 🗺️ Codebase Map (Deep)
71
+
72
+ **그래프 분석 완료**
73
+
74
+ ### 커뮤니티 클러스터
75
+ | 클러스터 | 파일 수 | 핵심 엔티티 |
76
+ |----------|--------|------------|
77
+ | C1 | 12 | User, Auth, Session |
78
+ | C2 | 8 | Post, Comment, Feed |
79
+ | C3 | 6 | Payment, Subscription |
80
+
81
+ ### 구조적 이슈
82
+ - ⚠️ 순환 의존성: `src/lib/api.ts` ↔ `src/lib/auth.ts`
83
+ - ⚠️ 고립 노드: `src/utils/legacy-helpers.ts` (참조 없음)
84
+
85
+ ### 추천 리팩토링
86
+ 1. `api.ts`와 `auth.ts` 순환 의존성 해소
87
+ 2. `legacy-helpers.ts` 제거 또는 통합
88
+ ```
89
+
90
+ ---
91
+
92
+ ## 아티팩트 저장 위치
93
+
94
+ 분석 결과는 `.opencode/weave/maps/`에 저장됩니다:
95
+
96
+ ```
97
+ .opencode/weave/maps/
98
+ ├── map-report.yaml # 구조 분석 요약
99
+ ├── map-result.yaml # GDC 연동 결과
100
+ └── graphify-report.html # deep 분석 시 생성
101
+ ```
102
+
103
+ ---
104
+
105
+ ## 관련 명령어
106
+
107
+ - `/weave-interview` — 맵 결과를 바탕으로 사용자 인터뷰
108
+ - `/weave-design` — 분석 결과를 바탕으로 계획 수립
109
+ - `/weave-init` — weave 워크스페이스 초기화
@@ -0,0 +1,57 @@
1
+ ---
2
+ description: 글로벌 지식 검색 및 솔루션 기록
3
+ ---
4
+
5
+ # /weave-troubleshoot - 트러블슈팅
6
+
7
+ ## 개요
8
+
9
+ 글로벌 지식베이스에서 유사한 문제의 해결책을 검색하거나, 새로운 해결책을 기록합니다.
10
+
11
+ **이전 명령어**: `record` (v0.9까지 deprecated alias, `--record` 플래그로 대체)
12
+
13
+ ---
14
+
15
+ ## 사용법
16
+
17
+ ```bash
18
+ # 해결책 검색
19
+ /weave-troubleshoot "Cannot find module 'xyz'"
20
+
21
+ # 새 해결책 기록
22
+ /weave-troubleshoot --record error="..." solution="..."
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 입력
28
+
29
+ ```yaml
30
+ error: "..." # (검색 시 필수) 검색할 에러 메시지
31
+ record: true # (선택) 기록 모드 활성화
32
+ solution: "..." # (record 시 필수) 기록할 해결책
33
+ context: "..." # (선택) 추가 맥락
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 출력 예시
39
+
40
+ ### 검색
41
+
42
+ ```markdown
43
+ ## 💡 유사한 해결책 발견
44
+
45
+ ### 1. (exact, 점수: 95%)
46
+ **상황**: Cannot find module 'react'
47
+ **해결책**: npm install react react-dom
48
+ **효과성**: ⭐⭐⭐⭐⭐
49
+ ```
50
+
51
+ ### 기록
52
+
53
+ ```markdown
54
+ ✅ 트러블슈팅 솔루션이 기록되었습니다 (ID: 42)
55
+
56
+ 다음에 비슷한 에러가 발생하면 자동으로 이 해결책을 제안합니다.
57
+ ```
@@ -13,5 +13,9 @@
13
13
  */
14
14
  import { type Plugin } from '@opencode-ai/plugin';
15
15
  export declare const MaskweaverPlugin: Plugin;
16
- export default MaskweaverPlugin;
16
+ declare const _default: {
17
+ id: string;
18
+ server: Plugin;
19
+ };
20
+ export default _default;
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AAGF,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6yBxD,eAAO,MAAM,gBAAgB,EAAE,MAkY9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AAGF,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6yBxD,eAAO,MAAM,gBAAgB,EAAE,MAkY9B,CAAC;;;;;AAEF,wBAGE"}
@@ -504,12 +504,12 @@ function createSelectMaskTool(maskLoader, activeMask, setActiveMask) {
504
504
  return `Error: Mask "${args.maskId}" not found.\nAvailable: ${available.map(m => m.id).join(', ')}`;
505
505
  }
506
506
  setActiveMask(mask);
507
- return `✓ Mask activated: ${mask.profile.name}
508
-
509
- "${mask.profile.tagline}"
510
-
511
- Expertise: ${mask.profile.expertise.join(', ')}
512
-
507
+ return `✓ Mask activated: ${mask.profile.name}
508
+
509
+ "${mask.profile.tagline}"
510
+
511
+ Expertise: ${mask.profile.expertise.join(', ')}
512
+
513
513
  The mask prompt will be injected into all future messages.`;
514
514
  }
515
515
  catch (e) {
@@ -571,11 +571,11 @@ function createMaskweaverStatusTool(maskLoader, masksDir, activeMask) {
571
571
  catch (_e) { /* ignore */ }
572
572
  }
573
573
  const active = activeMask();
574
- return `Maskweaver v${VERSION}
575
- Masks directory: ${masksDir}
576
- Available: ${maskLoader ? 'yes' : 'no'}
577
- Total masks: ${masksCount}
578
- Categories: ${categoriesCount}
574
+ return `Maskweaver v${VERSION}
575
+ Masks directory: ${masksDir}
576
+ Available: ${maskLoader ? 'yes' : 'no'}
577
+ Total masks: ${masksCount}
578
+ Categories: ${categoriesCount}
579
579
  Active mask: ${active ? `${active.profile.name} (${active.metadata.id})` : 'none'}`;
580
580
  },
581
581
  };
@@ -889,7 +889,7 @@ export const MaskweaverPlugin = async ({ client, directory, project, worktree, $
889
889
  }
890
890
  // Slashcommand tool (handles /weave etc. on first run without restart)
891
891
  if (isToolActive('slashcommand')) {
892
- const slashcommandTool = createSlashcommandTool();
892
+ const slashcommandTool = createSlashcommandTool(getAssetsDir());
893
893
  tools.slashcommand = {
894
894
  description: slashcommandTool.description,
895
895
  args: wrapSchema(slashcommandTool.args),
@@ -914,10 +914,10 @@ export const MaskweaverPlugin = async ({ client, directory, project, worktree, $
914
914
  // System prompt transform - inject active mask
915
915
  'experimental.chat.system.transform': async (_input, output) => {
916
916
  if (state?.activeMask) {
917
- const maskPrompt = `<ACTIVE_PERSONA>
918
- You are currently embodying the "${state.activeMask.profile.name}" persona.
919
-
920
- ${buildRichPrompt(state.activeMask)}
917
+ const maskPrompt = `<ACTIVE_PERSONA>
918
+ You are currently embodying the "${state.activeMask.profile.name}" persona.
919
+
920
+ ${buildRichPrompt(state.activeMask)}
921
921
  </ACTIVE_PERSONA>`;
922
922
  (output.system ||= []).push(maskPrompt);
923
923
  }
@@ -972,5 +972,8 @@ ${buildRichPrompt(state.activeMask)}
972
972
  },
973
973
  };
974
974
  };
975
- export default MaskweaverPlugin;
975
+ export default {
976
+ id: 'maskweaver',
977
+ server: MaskweaverPlugin,
978
+ };
976
979
  //# sourceMappingURL=index.js.map