maskweaver 0.8.3 → 0.8.5
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.ko.md +50 -14
- package/README.md +62 -14
- package/assets/commands/weave-init.md +23 -11
- package/dist/plugin/tools/slashcommand.d.ts.map +1 -1
- package/dist/plugin/tools/slashcommand.js +16 -3
- package/dist/plugin/tools/slashcommand.js.map +1 -1
- package/dist/plugin/tools/weave.d.ts +5 -2
- package/dist/plugin/tools/weave.d.ts.map +1 -1
- package/dist/plugin/tools/weave.js +557 -17
- package/dist/plugin/tools/weave.js.map +1 -1
- package/dist/shared/config.d.ts +19 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +7 -0
- package/dist/shared/config.js.map +1 -1
- package/dist/shared-context/test/squad.test.js +2 -2
- package/dist/shared-context/test/squad.test.js.map +1 -1
- package/dist/shared-context/test/storage.test.js +3 -3
- package/dist/shared-context/test/storage.test.js.map +1 -1
- package/dist/shared-context/test/task.test.js +6 -6
- package/dist/shared-context/test/task.test.js.map +1 -1
- package/dist/weave/bridge.d.ts +2 -4
- package/dist/weave/bridge.d.ts.map +1 -1
- package/dist/weave/bridge.js +3 -4
- package/dist/weave/bridge.js.map +1 -1
- package/dist/weave/gdc.d.ts +64 -0
- package/dist/weave/gdc.d.ts.map +1 -0
- package/dist/weave/gdc.js +226 -0
- package/dist/weave/gdc.js.map +1 -0
- package/dist/weave/phase-manager.d.ts.map +1 -1
- package/dist/weave/phase-manager.js +24 -0
- package/dist/weave/phase-manager.js.map +1 -1
- package/dist/weave/stages/execute.d.ts.map +1 -1
- package/dist/weave/stages/execute.js +87 -0
- package/dist/weave/stages/execute.js.map +1 -1
- package/dist/weave/stages/handoff.d.ts.map +1 -1
- package/dist/weave/stages/handoff.js +50 -0
- package/dist/weave/stages/handoff.js.map +1 -1
- package/dist/weave/stages/plan.d.ts.map +1 -1
- package/dist/weave/stages/plan.js +255 -10
- package/dist/weave/stages/plan.js.map +1 -1
- package/dist/weave/stages/research.d.ts +1 -1
- package/dist/weave/stages/research.d.ts.map +1 -1
- package/dist/weave/stages/research.js +225 -5
- package/dist/weave/stages/research.js.map +1 -1
- package/dist/weave/types.d.ts +15 -0
- package/dist/weave/types.d.ts.map +1 -1
- package/dist/weave/verification/commands.d.ts +2 -1
- package/dist/weave/verification/commands.d.ts.map +1 -1
- package/dist/weave/verification/commands.js +53 -0
- package/dist/weave/verification/commands.js.map +1 -1
- package/dist/weave/worktree.d.ts +5 -0
- package/dist/weave/worktree.d.ts.map +1 -1
- package/dist/weave/worktree.js +33 -2
- package/dist/weave/worktree.js.map +1 -1
- package/package.json +58 -62
package/README.ko.md
CHANGED
|
@@ -24,9 +24,10 @@
|
|
|
24
24
|
- **전문가 페르소나 (Masks)**: 전설적인 개발자들의 철학을 담은 표준 YAML 프로필.
|
|
25
25
|
- **스마트 위임**: OpenCode에 최적화된 멀티 에이전트 워크플로우.
|
|
26
26
|
- **프로젝트 메모리**: 코드베이스 전체에 대한 하이브리드 의미론적 검색.
|
|
27
|
-
- **🆕 Weave 워크플로우**: AI 자체 검증이 포함된 Phase 기반 개발.
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
- **🆕 Weave 워크플로우**: AI 자체 검증이 포함된 Phase 기반 개발.
|
|
28
|
+
- **🔗 GDC 통합**: Graph-Driven Codebase 지원으로 리서치 품질 향상 및 설계 시점 검증 게이트 추가.
|
|
29
|
+
|
|
30
|
+
---
|
|
30
31
|
|
|
31
32
|
## 왜 Maskweaver인가요?
|
|
32
33
|
|
|
@@ -227,9 +228,43 @@ Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가
|
|
|
227
228
|
| 5️⃣ E2E Tests | 테스트 | **Playwright** |
|
|
228
229
|
| 6️⃣ Screenshot | 시각 | Playwright / 브라우저 캡처 |
|
|
229
230
|
| 7️⃣ API Check | API | `fetch` 헬스 체크 |
|
|
230
|
-
| 8️⃣ A11y | 접근성 | `axe-core` |
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
| 8️⃣ A11y | 접근성 | `axe-core` |
|
|
232
|
+
| 0️⃣ GDC Check | 설계 | `gdc check --machine` |
|
|
233
|
+
|
|
234
|
+
#### GDC 통합 (Graph-Driven Codebase)
|
|
235
|
+
|
|
236
|
+
Weave는 [GDC](https://github.com/ulgerang/gdc)(Graph-Driven Codebase)와 통합되어 리서치 품질을 향상시키고 설계 시점 검증 게이트를 추가합니다:
|
|
237
|
+
|
|
238
|
+
**리서치 강화:**
|
|
239
|
+
- `.gdc` 워크스페이스 자동 감지
|
|
240
|
+
- GDC `stats`, `graph`, `check` 결과를 `tasks/research.md`에 포함
|
|
241
|
+
- 그래프 엣지 기반 의존성 영향 범위(Blast Radius) 분석
|
|
242
|
+
- 기능 키워드와 매칭된 재사용 후보 노드
|
|
243
|
+
- 새 보고서 섹션: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
|
|
244
|
+
|
|
245
|
+
**Pre-Verify 게이트:**
|
|
246
|
+
GDC가 감지되면 `weave verify`와 `weave flow`가 자동으로 실행:
|
|
247
|
+
1. `gdc sync --machine` - 스펙과 구현 동기화
|
|
248
|
+
2. `gdc check --machine` - 스펙/구현 일치성 검증
|
|
249
|
+
|
|
250
|
+
GDC check의 블로킹 에러는 검증을 중단시킵니다(`strictVerify` 모드로 설정 가능).
|
|
251
|
+
|
|
252
|
+
**설정** (`maskweaver.config.json`):
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"gdc": {
|
|
256
|
+
"enabled": "auto",
|
|
257
|
+
"strictVerify": false,
|
|
258
|
+
"autoSyncOnPrepare": true
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
- `enabled`: `true` | `false` | `"auto"` (기본값: `.gdc` 디렉터리 자동 감지)
|
|
264
|
+
- `strictVerify`: `true`면 GDC check 실패 시 검증 차단; `false`면 경고 후 계속 진행
|
|
265
|
+
- `autoSyncOnPrepare`: `weave prepare` 시 `gdc sync` 실행
|
|
266
|
+
|
|
267
|
+
#### 마스크 자동 선택
|
|
233
268
|
|
|
234
269
|
AI가 각 작업에 가장 적합한 전문가를 자동으로 선택합니다:
|
|
235
270
|
|
|
@@ -333,14 +368,15 @@ import { MaskLoader } from 'maskweaver/core';
|
|
|
333
368
|
import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
|
|
334
369
|
```
|
|
335
370
|
|
|
336
|
-
**모듈:**
|
|
337
|
-
- `maskweaver/core` - 가면 로딩, 검증 (YAML/JSON)
|
|
338
|
-
- `maskweaver/memory` - 임베딩 + 벡터 검색 (5개 프로바이더)
|
|
339
|
-
- `maskweaver/context` - 기능 기반 작업 추적
|
|
340
|
-
- `maskweaver/verify` - 교차 가면 코드 리뷰
|
|
341
|
-
- `maskweaver/retrospect` - 세션 효과 분석
|
|
342
|
-
- `maskweaver/weave` - Phase 기반 개발 워크플로우
|
|
343
|
-
- `maskweaver/
|
|
371
|
+
**모듈:**
|
|
372
|
+
- `maskweaver/core` - 가면 로딩, 검증 (YAML/JSON)
|
|
373
|
+
- `maskweaver/memory` - 임베딩 + 벡터 검색 (5개 프로바이더)
|
|
374
|
+
- `maskweaver/context` - 기능 기반 작업 추적
|
|
375
|
+
- `maskweaver/verify` - 교차 가면 코드 리뷰
|
|
376
|
+
- `maskweaver/retrospect` - 세션 효과 분석
|
|
377
|
+
- `maskweaver/weave` - Phase 기반 개발 워크플로우
|
|
378
|
+
- `maskweaver/gdc` - GDC(Graph-Driven Codebase) 통합 유틸리티
|
|
379
|
+
- `maskweaver/plugin` - OpenCode 플러그인 엔트리 포인트
|
|
344
380
|
|
|
345
381
|
---
|
|
346
382
|
|
package/README.md
CHANGED
|
@@ -24,9 +24,10 @@ While it can be used as a standalone library, it works great with OpenCode to ad
|
|
|
24
24
|
- **Expert Personas (Masks)**: Standardized YAML profiles for legendary developers.
|
|
25
25
|
- **Smart Delegation**: Multi-agent workflows optimized for OpenCode.
|
|
26
26
|
- **Project Memory**: Hybrid semantic search for your entire codebase.
|
|
27
|
-
- **🆕 Weave Workflow**: Phase-driven development with AI self-verification.
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
- **🆕 Weave Workflow**: Phase-driven development with AI self-verification.
|
|
28
|
+
- **🔗 GDC Integration**: Graph-Driven Codebase support for enhanced research and design-time verification gates.
|
|
29
|
+
|
|
30
|
+
---
|
|
30
31
|
|
|
31
32
|
## Why Maskweaver?
|
|
32
33
|
|
|
@@ -246,9 +247,55 @@ Before handing off to you, AI runs these verification layers:
|
|
|
246
247
|
| 5️⃣ E2E Tests | Test | **Playwright** |
|
|
247
248
|
| 6️⃣ Screenshot | Visual | Playwright / browser capture |
|
|
248
249
|
| 7️⃣ API Check | API | `fetch` health checks |
|
|
249
|
-
| 8️⃣ A11y | Accessibility | `axe-core` |
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
| 8️⃣ A11y | Accessibility | `axe-core` |
|
|
251
|
+
| 0️⃣ GDC Check | Design | `gdc check --machine` |
|
|
252
|
+
|
|
253
|
+
#### GDC Integration (Graph-Driven Codebase)
|
|
254
|
+
|
|
255
|
+
Weave integrates with [GDC](https://github.com/ulgerang/gdc) (Graph-Driven Codebase) to enhance research quality and add design-time verification gates:
|
|
256
|
+
|
|
257
|
+
**Research Enhancement:**
|
|
258
|
+
- Automatic `.gdc` workspace detection
|
|
259
|
+
- `weave init` probe chain (`version`/`sync`/`check`/`stats`) for quick integration health check
|
|
260
|
+
- GDC `stats`, `graph`, and `check` results embedded in `tasks/research.md`
|
|
261
|
+
- Dependency blast radius analysis from graph edges
|
|
262
|
+
- Candidate reuse nodes matched against feature keywords
|
|
263
|
+
- New report sections: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
|
|
264
|
+
|
|
265
|
+
**Execution Enhancements:**
|
|
266
|
+
- `weave craft` can generate node context files via `gdc extract` and link them in `tasks/todo.md`
|
|
267
|
+
- `weave status` includes GDC node/check metrics (`total/implemented/tested`, issue summary)
|
|
268
|
+
- `weave worktree create` can bootstrap `.gdc/config.yaml` and `.gdc/nodes/**` (without `.gdc/graph.db`)
|
|
269
|
+
|
|
270
|
+
**Pre-Verify Gate:**
|
|
271
|
+
When GDC is detected, `weave verify` and `weave flow` automatically run:
|
|
272
|
+
1. `gdc sync --machine` - Sync specs with implementation
|
|
273
|
+
2. `gdc check --machine` - Validate spec/implementation alignment
|
|
274
|
+
|
|
275
|
+
Blocking errors from GDC check will halt verification (configurable via `strictVerify` mode).
|
|
276
|
+
|
|
277
|
+
**Configuration** (`maskweaver.config.json`):
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"gdc": {
|
|
281
|
+
"enabled": "auto",
|
|
282
|
+
"strictVerify": false,
|
|
283
|
+
"autoSyncOnPrepare": true,
|
|
284
|
+
"extractContext": {
|
|
285
|
+
"withImpl": true,
|
|
286
|
+
"withTests": true,
|
|
287
|
+
"withCallers": true
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- `enabled`: `true` | `false` | `"auto"` (default: auto-detect from `.gdc` directory)
|
|
294
|
+
- `strictVerify`: If `true`, GDC check failures block verification; if `false`, continues with warning
|
|
295
|
+
- `autoSyncOnPrepare`: Run `gdc sync` during `weave prepare`
|
|
296
|
+
- `extractContext`: Controls `gdc extract` evidence flags during `weave craft`
|
|
297
|
+
|
|
298
|
+
#### Autonomous Mask Selection
|
|
252
299
|
|
|
253
300
|
The AI automatically picks the best expert for each task:
|
|
254
301
|
|
|
@@ -352,14 +399,15 @@ import { MaskLoader } from 'maskweaver/core';
|
|
|
352
399
|
import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
|
|
353
400
|
```
|
|
354
401
|
|
|
355
|
-
**Modules:**
|
|
356
|
-
- `maskweaver/core` - Mask loading, validation (YAML/JSON)
|
|
357
|
-
- `maskweaver/memory` - Embeddings + vector search (5 providers)
|
|
358
|
-
- `maskweaver/context` - Feature-based work tracking
|
|
359
|
-
- `maskweaver/verify` - Cross-mask code review
|
|
360
|
-
- `maskweaver/retrospect` - Session effectiveness analysis
|
|
361
|
-
- `maskweaver/weave` - Phase-driven development workflow
|
|
362
|
-
- `maskweaver/
|
|
402
|
+
**Modules:**
|
|
403
|
+
- `maskweaver/core` - Mask loading, validation (YAML/JSON)
|
|
404
|
+
- `maskweaver/memory` - Embeddings + vector search (5 providers)
|
|
405
|
+
- `maskweaver/context` - Feature-based work tracking
|
|
406
|
+
- `maskweaver/verify` - Cross-mask code review
|
|
407
|
+
- `maskweaver/retrospect` - Session effectiveness analysis
|
|
408
|
+
- `maskweaver/weave` - Phase-driven development workflow
|
|
409
|
+
- `maskweaver/gdc` - GDC (Graph-Driven Codebase) integration utilities
|
|
410
|
+
- `maskweaver/plugin` - OpenCode plugin entry point
|
|
363
411
|
|
|
364
412
|
---
|
|
365
413
|
|
|
@@ -30,13 +30,13 @@ description: Weave 워크플로우 초기화 (프로젝트별 1회)
|
|
|
30
30
|
|
|
31
31
|
만약 `.ignore` 파일이 이미 있다면, `!.opencode/weave/` 줄만 추가합니다 (중복 방지).
|
|
32
32
|
|
|
33
|
-
### 2. 디렉토리 구조 생성
|
|
33
|
+
### 2. 디렉토리 구조 생성
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
36
|
mkdir -p .opencode/weave/plans
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
### 3. `state.yaml` 초기화
|
|
39
|
+
### 3. `state.yaml` 초기화
|
|
40
40
|
|
|
41
41
|
`.opencode/weave/state.yaml` 파일을 생성합니다:
|
|
42
42
|
|
|
@@ -46,14 +46,26 @@ mkdir -p .opencode/weave/plans
|
|
|
46
46
|
active_plan: null
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
### 4. 기존 PLAN.yaml 마이그레이션 (해당 시)
|
|
49
|
+
### 4. 기존 PLAN.yaml 마이그레이션 (해당 시)
|
|
50
50
|
|
|
51
51
|
만약 `.opencode/weave/PLAN.yaml` (구버전 단일 플랜)이 존재하면:
|
|
52
|
-
1. PLAN
|
|
53
|
-
2.
|
|
54
|
-
3.
|
|
55
|
-
|
|
56
|
-
5.
|
|
52
|
+
1. 기존 PLAN을 읽어 multi-plan 포맷으로 저장
|
|
53
|
+
2. `state.yaml`의 `active_plan`을 해당 플랜으로 설정
|
|
54
|
+
3. 기존 PLAN.yaml 삭제 (가능한 경우)
|
|
55
|
+
|
|
56
|
+
### 5. GDC 연동 점검 및 그래프 동기화
|
|
57
|
+
|
|
58
|
+
`weave init`은 GDC 연동 상태를 확인합니다.
|
|
59
|
+
|
|
60
|
+
- `.gdc` 워크스페이스 미감지 시:
|
|
61
|
+
- 안내 메시지 출력 (`gdc init --language <lang>`)
|
|
62
|
+
- 감지 + 연동 활성화 시:
|
|
63
|
+
- `gdc version --machine`
|
|
64
|
+
- `gdc sync --machine`
|
|
65
|
+
- `gdc check --machine`
|
|
66
|
+
- `gdc stats --machine`
|
|
67
|
+
|
|
68
|
+
이 단계는 **정보 제공 및 부트스트랩 목적**이며, 실패해도 Weave 초기화 자체는 완료됩니다.
|
|
57
69
|
|
|
58
70
|
---
|
|
59
71
|
|
|
@@ -67,9 +79,9 @@ active_plan: null
|
|
|
67
79
|
- `.opencode/weave/state.yaml` — 플랜 상태 추적
|
|
68
80
|
- `.opencode/weave/plans/` — 플랜 저장 디렉토리
|
|
69
81
|
|
|
70
|
-
### 다음 단계
|
|
71
|
-
프로젝트 계획을 세우려면:
|
|
72
|
-
|
|
82
|
+
### 다음 단계
|
|
83
|
+
프로젝트 계획을 세우려면:
|
|
84
|
+
`weave command=prepare docsPath="docs/"`
|
|
73
85
|
```
|
|
74
86
|
|
|
75
87
|
---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashcommand.d.ts","sourceRoot":"","sources":["../../../src/plugin/tools/slashcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"slashcommand.d.ts","sourceRoot":"","sources":["../../../src/plugin/tools/slashcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmTxB,wBAAgB,sBAAsB;;;;;oBAuBpB;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,WAChB;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;EAiExC"}
|
|
@@ -45,8 +45,9 @@ Maskweaver의 Phase-Driven Development 워크플로우입니다.
|
|
|
45
45
|
|
|
46
46
|
## 명령어 목록
|
|
47
47
|
|
|
48
|
-
| 명령어 | 설명 |
|
|
49
|
-
|--------|------|
|
|
48
|
+
| 명령어 | 설명 |
|
|
49
|
+
|--------|------|
|
|
50
|
+
| \`weave init\` | 워크스페이스 초기화 + GDC 연동 점검 |
|
|
50
51
|
| \`weave research [docs]\` | 문서+워크스페이스 깊이 분석 + research 아티팩트 생성 |
|
|
51
52
|
| \`weave prepare [docs]\` | research + spec + plan 생성 (큰 계획은 자동 분할) |
|
|
52
53
|
| \`weave refine-plan\` | plan-notes를 active plan에 자동 반영 |
|
|
@@ -59,6 +60,17 @@ Maskweaver의 Phase-Driven Development 워크플로우입니다.
|
|
|
59
60
|
|
|
60
61
|
**Note**: weave 도구를 직접 호출할 수도 있습니다: \`weave command=design docsPath=docs/\`
|
|
61
62
|
`,
|
|
63
|
+
},
|
|
64
|
+
'weave-init': {
|
|
65
|
+
metadata: {
|
|
66
|
+
name: 'weave-init',
|
|
67
|
+
description: 'Weave 워크플로우 초기화 + GDC 연동 점검',
|
|
68
|
+
usage: '/weave init',
|
|
69
|
+
examples: ['/weave init'],
|
|
70
|
+
},
|
|
71
|
+
content: `Use the weave tool with command=init.
|
|
72
|
+
|
|
73
|
+
Example: weave command=init`,
|
|
62
74
|
},
|
|
63
75
|
'weave-design': {
|
|
64
76
|
metadata: {
|
|
@@ -268,6 +280,7 @@ export function createSlashcommandTool() {
|
|
|
268
280
|
return {
|
|
269
281
|
description: `Execute a slash command. Available commands include:
|
|
270
282
|
- /weave help - Weave workflow help
|
|
283
|
+
- /weave init - Initialize workspace and probe GDC integration
|
|
271
284
|
- /weave research [docs] - Deep-read docs + workspace and write research artifact
|
|
272
285
|
- /weave design [docs] - Analyze requirements and create plan
|
|
273
286
|
- /weave prepare [docs] - Create research + spec + plan
|
|
@@ -313,7 +326,7 @@ Use command="list" to see all available commands.`,
|
|
|
313
326
|
return helpCmd.content || 'Weave help content not available.';
|
|
314
327
|
}
|
|
315
328
|
}
|
|
316
|
-
else if (['status', 'design', 'prepare', 'refine-plan', 'flow', 'craft', 'research', 'approve-plan', 'help', 'repair'].includes(cmdName)) {
|
|
329
|
+
else if (['init', 'status', 'design', 'prepare', 'refine-plan', 'flow', 'craft', 'research', 'approve-plan', 'help', 'repair'].includes(cmdName)) {
|
|
317
330
|
// Shorthand: "status" -> "weave-status"
|
|
318
331
|
const weaveCmd = commands.find(c => c.name === `weave-${cmdName}`);
|
|
319
332
|
if (weaveCmd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashcommand.js","sourceRoot":"","sources":["../../../src/plugin/tools/slashcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,0EAA0E;AAC1E,MAAM,IAAI,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAqB1C,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E,MAAM,gBAAgB,GAAmE;IACrF,YAAY,EAAE;QACV,QAAQ,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,iBAAiB;YAC9B,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;SACtC;QACD,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"slashcommand.js","sourceRoot":"","sources":["../../../src/plugin/tools/slashcommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export declare function createWeaveTool(): {
|
|
|
13
13
|
status: "status";
|
|
14
14
|
spec: "spec";
|
|
15
15
|
worktree: "worktree";
|
|
16
|
+
verify: "verify";
|
|
17
|
+
init: "init";
|
|
16
18
|
research: "research";
|
|
17
19
|
design: "design";
|
|
18
20
|
prepare: "prepare";
|
|
@@ -20,7 +22,6 @@ export declare function createWeaveTool(): {
|
|
|
20
22
|
"approve-plan": "approve-plan";
|
|
21
23
|
flow: "flow";
|
|
22
24
|
craft: "craft";
|
|
23
|
-
verify: "verify";
|
|
24
25
|
troubleshoot: "troubleshoot";
|
|
25
26
|
help: "help";
|
|
26
27
|
repair: "repair";
|
|
@@ -46,6 +47,7 @@ export declare function createWeaveTool(): {
|
|
|
46
47
|
fromRef: z.ZodOptional<z.ZodString>;
|
|
47
48
|
deleteBranch: z.ZodOptional<z.ZodBoolean>;
|
|
48
49
|
bootstrapWeave: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
bootstrapGdc: z.ZodOptional<z.ZodBoolean>;
|
|
49
51
|
skipVerify: z.ZodOptional<z.ZodBoolean>;
|
|
50
52
|
verifyMode: z.ZodOptional<z.ZodEnum<{
|
|
51
53
|
quick: "quick";
|
|
@@ -61,7 +63,7 @@ export declare function createWeaveTool(): {
|
|
|
61
63
|
projectType: z.ZodOptional<z.ZodString>;
|
|
62
64
|
};
|
|
63
65
|
execute: (args: {
|
|
64
|
-
command: "research" | "spec" | "design" | "prepare" | "refine-plan" | "approve-plan" | "flow" | "craft" | "status" | "worktree" | "verify" | "troubleshoot" | "record" | "help" | "repair";
|
|
66
|
+
command: "init" | "research" | "spec" | "design" | "prepare" | "refine-plan" | "approve-plan" | "flow" | "craft" | "status" | "worktree" | "verify" | "troubleshoot" | "record" | "help" | "repair";
|
|
65
67
|
docsPath?: string;
|
|
66
68
|
phaseId?: string;
|
|
67
69
|
projectName?: string;
|
|
@@ -77,6 +79,7 @@ export declare function createWeaveTool(): {
|
|
|
77
79
|
fromRef?: string;
|
|
78
80
|
deleteBranch?: boolean;
|
|
79
81
|
bootstrapWeave?: boolean;
|
|
82
|
+
bootstrapGdc?: boolean;
|
|
80
83
|
skipVerify?: boolean;
|
|
81
84
|
verifyMode?: "quick" | "full";
|
|
82
85
|
commit?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weave.d.ts","sourceRoot":"","sources":["../../../src/plugin/tools/weave.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"weave.d.ts","sourceRoot":"","sources":["../../../src/plugin/tools/weave.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0CxB,wBAAgB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0Fb;QACF,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;QACpM,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACjE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,WACQ;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAC9B,OAAO,CAAC,MAAM,CAAC;EA+DzB"}
|