cli-jaw 1.3.0-preview.6 → 1.3.0-preview.7

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 CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *Claude, Codex, Gemini... 이제 번갈아 쓰지 마세요.*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-608%20pass-brightgreen)](#-테스트)
9
+ [![Tests](https://img.shields.io/badge/tests-639%20pass-brightgreen)](#-테스트)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -133,7 +133,7 @@ gemini # Google Gemini — 첫 실행 시 인증
133
133
  ✅ OpenCode CLI installed
134
134
  ✅ Copilot CLI installed
135
135
  ✅ Database jaw.db OK
136
- ✅ Skills 17 active, 90 reference
136
+ ✅ Skills 20 active, 89 reference
137
137
  ✅ MCP 3 servers configured
138
138
  ✅ Memory MEMORY.md exists
139
139
  ✅ Server port 3457 available
@@ -154,7 +154,7 @@ CLI-JAW는 내 컴퓨터에 상주하며 이미 익숙한 인터페이스인 **
154
154
  > 💬 *"이 모듈 리팩토링하고 테스트도 짜줘"* → 서브에이전트가 알아서, 커피 한 잔 하고 오면 돼요
155
155
  > 💬 *"저 PDF 다운받아서 핵심만 노션에 정리해"* → 브라우저 + 노션 스킬 조합으로 뚝딱
156
156
 
157
- 단일 모델만을 사용하는 기존 비서들과 달리, CLI-JAW는 5개의 AI 엔진(Claude, Codex, Gemini, OpenCode, Copilot)을 공식 CLI를 통해 오케스트레이션하여 모든 제공업체의 장점을 통합된 경험으로 제공합니다. 하나의 엔진 사용량이 초과되면 자동으로 다음 엔진으로 전환됩니다. 108개의 내장 스킬이 브라우저 자동화부터 문서 생성까지 모든 것을 처리합니다.
157
+ 단일 모델만을 사용하는 기존 비서들과 달리, CLI-JAW는 5개의 AI 엔진(Claude, Codex, Gemini, OpenCode, Copilot)을 공식 CLI를 통해 오케스트레이션하여 모든 제공업체의 장점을 통합된 경험으로 제공합니다. 하나의 엔진 사용량이 초과되면 자동으로 다음 엔진으로 전환됩니다. 109개의 내장 스킬이 브라우저 자동화부터 문서 생성까지 모든 것을 처리합니다.
158
158
 
159
159
  | | 왜 CLI-JAW인가요? |
160
160
  | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
@@ -162,13 +162,28 @@ CLI-JAW는 내 컴퓨터에 상주하며 이미 익숙한 인터페이스인 **
162
162
  | 🤖 **검증된 에이전트 도구** | 실전에서 검증된 5개의 코딩 에이전트(Claude, Codex, Gemini, OpenCode, Copilot)를 한 곳에서 사용하세요. |
163
163
  | ⚡ **멀티 에이전트 자동 전환(Fallback)** | 엔진 하나가 멈춰도 걱정 없습니다. 다음 엔진이 즉시 이어받아 중단 없는 작업이 가능합니다. |
164
164
  | 🎭 **오케스트레이션 기반 성능 극대화** | 복잡한 작업은 전문화된 서브 에이전트에게 분산시켜 처리량을 극대화합니다. |
165
- | 📦 **108개의 내장 스킬** | 브라우저 자동화, 문서 생성, 텔레그램 연동, 영구 메모리 등 설치 즉시 사용 가능한 기능들을 제공합니다. |
165
+ | 📦 **109개의 내장 스킬** | 브라우저 자동화, 문서 생성, 텔레그램 연동, 영구 메모리 등 설치 즉시 사용 가능한 기능들을 제공합니다. |
166
166
  | 🖥️ **크로스 플랫폼** | macOS, Linux, Windows — ENOENT-safe CLI 스폰, 자동 감지, `.cmd` shim 지원, 네이티브 설치 전부 크로스플랫폼 동작. |
167
167
 
168
168
  ![CLI-JAW 터미널](docs/screenshots/terminal-cli.png)
169
169
 
170
170
  ---
171
171
 
172
+ ## 🆕 새로운 기능 (v1.3.0)
173
+
174
+ | 기능 | 설명 |
175
+ |------|------|
176
+ | 🎤 **음성 & STT** | 웹 마이크 버튼 + 텔레그램 음성 전사. 멀티 프로바이더 STT: OpenAI 호환, Google Vertex AI, 커스텀 엔드포인트. 설정 UI에서 API 키 관리. |
177
+ | 📝 **프롬프트 템플릿** | 웹 UI에서 프롬프트 템플릿 생성, 편집, 관리. 노드맵 시각화 + 전체 CRUD API. |
178
+ | 📊 **쿼타 대시보드** | 압축된 쿼타 바 + 리셋 시간 표시. 429 사용량 제한 시 캐시된 사용량 데이터로 안정적 처리. |
179
+ | 🔍 **IDE Diff View** | 핑거프린트 기반 변경 감지. VS Code 또는 Antigravity 자동 감지 후 인라인 diff 열기. |
180
+ | 🎭 **PABCD 개선** | 라이브 로드맵 바 + 🦈 샤크 러너 애니메이션. 페이즈 전환 시 글로우, 펄스, 뱃지 피드백. |
181
+ | 🪟 **WSL 설치 개선** | 사전 필수 패키지(`unzip`, `curl`, `git`) 자동 설치, `jaw` 명령어 PATH 수정, 문제 해결 가이드 추가. |
182
+ | 🧪 **639개 테스트** | 608개에서 증가 — STT, 쿼타 캐싱, 오케스트레이션, CI 안정성 커버리지 추가. |
183
+ | 📦 **109개 스킬** | 20개 활성 + 89개 참조. 신규: `dev-pabcd`, `dev-scaffolding`, `dev-code-reviewer`. |
184
+
185
+ ---
186
+
172
187
  ## 비서가 어떤 일을 할 수 있나요?
173
188
 
174
189
  ```mermaid
@@ -189,7 +204,9 @@ graph LR
189
204
  - 🤖 **5개의 AI 엔진, 1명의 비서** — Claude · Codex · Gemini · OpenCode · Copilot. `/cli` 명령어로 전환하세요.
190
205
  - ⚡ **자동 전환(Fallback)** — 엔진 하나가 다운되면 다음 엔진이 매끄럽게 이어받습니다.
191
206
  - 🎭 **멀티 에이전트 오케스트레이션** — 복잡한 작업은 전문화된 서브 에이전트들에게 자동으로 분산됩니다.
192
- - 📦 **108개의 스킬**브라우저 제어, 파일 편집, 이미지 생성, 검색 [다양한 기능](#-스킬-시스템).
207
+ - 🎤 **음성 입력** 마이크 버튼 + 텔레그램 음성 메시지. 멀티 프로바이더 STT (OpenAI, Vertex AI).
208
+ - 📝 **프롬프트 템플릿** — 시각적 노드맵 에디터로 프롬프트 템플릿 생성, 관리, 재사용.
209
+ - 📦 **109개의 스킬** — 브라우저 제어, 파일 편집, 이미지 생성, 웹 검색 외 [다양한 기능](#-스킬-시스템).
193
210
  - 🧠 **영구 메모리** — 세션을 넘나들며 과거의 대화와 사용자 선호도를 기억합니다.
194
211
  - 📱 **텔레그램 봇** — 휴대폰으로 비서와 채팅하고, 음성/사진/파일을 전송하세요.
195
212
  - 🌐 **브라우저 자동화** — 비서가 알아서 웹을 탐색하고, 클릭하고, 타이핑하고, 스크린샷을 찍을 수 있습니다.
@@ -212,15 +229,15 @@ jaw service install # 부팅 시 자동 실행 (systemd/launchd/docker 자동
212
229
 
213
230
  ## 📦 스킬 시스템
214
231
 
215
- **108개 스킬** 내장 — 브라우저, GitHub, 노션, 텔레그램, 메모리, PDF, 이미지 생성 등 [다양하게](#).
232
+ **109개 스킬** 내장 — 브라우저, GitHub, 노션, 텔레그램, 메모리, PDF, 이미지 생성 등 [다양하게](#).
216
233
 
217
234
  <details>
218
235
  <summary>전체 스킬 목록 보기</summary>
219
236
 
220
237
  | 티어 | 수량 | 작동 방식 |
221
238
  | ------------------ | :---: | ------------------------------------------------ |
222
- | **Active 스킬** | 17 | 매번 AI한테 자동으로 주입돼요. 항상 켜져 있어요. |
223
- | **Reference 스킬** | 90 | 관련 작업을 시키면 그때 AI가 읽어서 써요. |
239
+ | **Active 스킬** | 20 | 매번 AI한테 자동으로 주입돼요. 항상 켜져 있어요. |
240
+ | **Reference 스킬** | 89 | 관련 작업을 시키면 그때 AI가 읽어서 써요. |
224
241
 
225
242
  #### Active 스킬 (항상 켜짐)
226
243
 
@@ -237,10 +254,11 @@ jaw service install # 부팅 시 자동 실행 (systemd/launchd/docker 자동
237
254
  | `screen-capture` | macOS 스크린샷 및 카메라 캡처 |
238
255
  | `openai-docs` | 최신 OpenAI API 문서 |
239
256
  | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | 서브에이전트용 개발 가이드 |
257
+ | `dev-pabcd` / `dev-scaffolding` / `dev-code-reviewer` | 오케스트레이션, 스캐폴딩, 코드 리뷰 가이드 |
240
258
 
241
259
  #### Reference 스킬 (필요할 때만)
242
260
 
243
- 90개 스킬이 더 있어요 — spotify, 날씨, 딥리서치, TTS, 비디오 다운로드, Apple 미리알림, 1Password, Terraform, PostgreSQL, Jupyter 등.
261
+ 89개 스킬이 더 있어요 — spotify, 날씨, 딥리서치, TTS, 비디오 다운로드, Apple 미리알림, 1Password, Terraform, PostgreSQL, Jupyter 등.
244
262
 
245
263
  ```bash
246
264
  jaw skill install <name> # reference → active로 영구 활성화
@@ -470,7 +488,7 @@ src/
470
488
  ## 🧪 테스트
471
489
 
472
490
  <details>
473
- <summary>608 pass · 1 skipped · 외부 의존성 0</summary>
491
+ <summary>639 pass · 1 skipped · 외부 의존성 0</summary>
474
492
 
475
493
  ```bash
476
494
  npm test
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *One assistant. Five brains. Always on.*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-608%20pass-brightgreen)](#-tests)
9
+ [![Tests](https://img.shields.io/badge/tests-639%20pass-brightgreen)](#-tests)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -37,7 +37,15 @@ Restart your computer when prompted. After reboot, open **Ubuntu** from the Star
37
37
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
38
38
  ```
39
39
 
40
- **Step 3: Authenticate an AI Engine** (pick one)
40
+ The script automatically installs prerequisites (`curl`, `unzip`, `git`), Node.js 22+, and CLI-JAW.
41
+
42
+ **Step 3: Reload your shell** (important — picks up PATH changes)
43
+
44
+ ```bash
45
+ source ~/.bashrc
46
+ ```
47
+
48
+ **Step 4: Authenticate an AI Engine** (pick one)
41
49
 
42
50
  ```bash
43
51
  copilot login # GitHub Copilot (Free)
@@ -47,7 +55,7 @@ codex login # OpenAI Codex
47
55
  gemini # Google Gemini
48
56
  ```
49
57
 
50
- **Step 4: Start Chatting**
58
+ **Step 5: Start Chatting**
51
59
 
52
60
  ```bash
53
61
  jaw serve
@@ -56,6 +64,18 @@ jaw serve
56
64
 
57
65
  > 💡 The script uses [fnm](https://github.com/Schniz/fnm) for Node.js management. If you already have `nvm`, it will use that instead.
58
66
 
67
+ <details>
68
+ <summary>🔧 <b>Troubleshooting WSL</b></summary>
69
+
70
+ | Problem | Fix |
71
+ |---------|-----|
72
+ | `unzip: command not found` | Rerun the installer — it now auto-installs `unzip` |
73
+ | `jaw: command not found` after install | Run `source ~/.bashrc` to reload PATH |
74
+ | Still can't find `jaw` | Run `export PATH="$(npm config get prefix)/bin:$PATH"` |
75
+ | Permission errors with `npm install -g` | Run `sudo chown -R $USER $(npm config get prefix)` |
76
+
77
+ </details>
78
+
59
79
  </details>
60
80
 
61
81
  <details>
@@ -133,7 +153,7 @@ Check what's ready: `jaw doctor`
133
153
  ✅ OpenCode CLI installed
134
154
  ✅ Copilot CLI installed
135
155
  ✅ Database jaw.db OK
136
- ✅ Skills 17 active, 90 reference
156
+ ✅ Skills 20 active, 89 reference
137
157
  ✅ MCP 3 servers configured
138
158
  ✅ Memory MEMORY.md exists
139
159
  ✅ Server port 3457 available
@@ -169,6 +189,21 @@ Unlike single-model assistants, CLI-JAW orchestrates **5 AI engines** (Claude, C
169
189
 
170
190
  ---
171
191
 
192
+ ## 🆕 What's New (v1.3.0)
193
+
194
+ | Feature | Description |
195
+ |---------|-------------|
196
+ | 🎤 **Voice & STT** | Web mic button + Telegram voice transcription. Multi-provider STT: OpenAI-compatible, Google Vertex AI, custom endpoints. Settings UI with API key management. |
197
+ | 📝 **Prompt Templates** | Create, edit, and manage prompt templates via the Web UI. Node-map visualization + full CRUD API. |
198
+ | 📊 **Quota Dashboard** | Compact quota bars with reset-time display. Graceful 429 rate-limit handling with cached usage data. |
199
+ | 🔍 **IDE Diff View** | Fingerprint-based change detection. Auto-detects VS Code or Antigravity and opens inline diffs. |
200
+ | 🎭 **PABCD Enhancements** | Live roadmap bar with 🦈 shark runner animation. Glow, pulse, and badge feedback on phase transitions. |
201
+ | 🪟 **WSL Installer v2** | Auto-installs prerequisites (`unzip`, `curl`, `git`), fixes PATH for `jaw` command, adds troubleshooting guide. |
202
+ | 🧪 **639 Tests** | Up from 608 — new coverage for STT, quota caching, orchestration, and CI stability. |
203
+ | 📦 **109 Skills** | 20 active + 89 reference. New: `dev-pabcd`, `dev-scaffolding`, `dev-code-reviewer`. |
204
+
205
+ ---
206
+
172
207
  ## What can your assistant do?
173
208
 
174
209
  ```mermaid
@@ -189,7 +224,9 @@ graph LR
189
224
  - 🤖 **5 AI engines, 1 assistant** — Claude · Codex · Gemini · OpenCode · Copilot. Switch with `/cli`.
190
225
  - ⚡ **Auto fallback** — If one engine is down, the next picks up seamlessly.
191
226
  - 🎭 **Multi-agent orchestration** — Complex tasks get split across specialized sub-agents automatically.
192
- - 📦 **108 skills** — Browser control, file editing, image generation, web search, and [much more](#-skill-system).
227
+ - 🎤 **Voice input** — Mic button on the web + Telegram voice messages. Multi-provider STT (OpenAI, Vertex AI).
228
+ - 📝 **Prompt templates** — Create, manage, and reuse prompt templates with a visual node-map editor.
229
+ - 📦 **109 skills** — Browser control, file editing, image generation, web search, and [much more](#-skill-system).
193
230
  - 🧠 **Persistent memory** — Your assistant remembers past conversations and preferences across sessions.
194
231
  - 📱 **Telegram bot** — Chat with your assistant from your phone, send voice/photos/files.
195
232
  - 🌐 **Browser automation** — Your assistant can navigate the web, click, type, and screenshot.
@@ -201,15 +238,15 @@ graph LR
201
238
 
202
239
  ## 📦 Skill System
203
240
 
204
- **108 skills** out of the box — browser, github, notion, telegram, memory, pdf, image generation, and [much more](#).
241
+ **109 skills** out of the box — browser, github, notion, telegram, memory, pdf, image generation, and [much more](#).
205
242
 
206
243
  <details>
207
244
  <summary>View all skills</summary>
208
245
 
209
246
  | Tier | Count | How it works |
210
247
  | -------------------- | :---: | --------------------------------------------------------- |
211
- | **Active Skills** | 17 | Auto-injected into every AI prompt. Always available. |
212
- | **Reference Skills** | 90 | AI reads them on-demand when you ask for a relevant task. |
248
+ | **Active Skills** | 20 | Auto-injected into every AI prompt. Always available. |
249
+ | **Reference Skills** | 89 | AI reads them on-demand when you ask for a relevant task. |
213
250
 
214
251
  #### Active Skills (always on)
215
252
 
@@ -226,10 +263,11 @@ graph LR
226
263
  | `screen-capture` | macOS screenshot and camera capture |
227
264
  | `openai-docs` | Up-to-date OpenAI API documentation |
228
265
  | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | Development guidelines for sub-agents |
266
+ | `dev-pabcd` / `dev-scaffolding` / `dev-code-reviewer` | Orchestration, scaffolding, and code review guides |
229
267
 
230
268
  #### Reference Skills (on-demand)
231
269
 
232
- 90 more skills ready to use — spotify, weather, deep-research, tts, video-downloader, apple-reminders, 1password, terraform, postgres, jupyter-notebook, sentry, whatsapp, and more.
270
+ 89 more skills ready to use — spotify, weather, deep-research, tts, video-downloader, apple-reminders, 1password, terraform, postgres, jupyter-notebook, sentry, whatsapp, and more.
233
271
 
234
272
  ```bash
235
273
  jaw skill install <name> # Activate a reference skill permanently
@@ -259,8 +297,9 @@ Your assistant isn't tied to your desk. Chat from anywhere via Telegram:
259
297
  **What you can do from Telegram:**
260
298
 
261
299
  - 💬 Chat with your assistant (any of 5 AI engines)
262
- - 🎤 Send voice messages (auto-transcribed)
300
+ - 🎤 Send voice messages (auto-transcribed via multi-provider STT)
263
301
  - 📎 Send files and photos for processing
302
+ - 🎙️ Combine voice + text + attachments in a single message
264
303
  - ⚡ Run commands (`/cli`, `/model`, `/status`)
265
304
  - 🔄 Switch AI engines on the fly
266
305
 
@@ -521,7 +560,7 @@ src/
521
560
  ## 🧪 Tests
522
561
 
523
562
  <details>
524
- <summary>608 pass · 1 skipped · zero external dependencies</summary>
563
+ <summary>639 pass · 1 skipped · zero external dependencies</summary>
525
564
 
526
565
  ```bash
527
566
  npm test
package/README.zh-CN.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  *Claude、Codex、Gemini... 从此告别来回切换。*
8
8
 
9
- [![Tests](https://img.shields.io/badge/tests-608%20pass-brightgreen)](#-测试)
9
+ [![Tests](https://img.shields.io/badge/tests-639%20pass-brightgreen)](#-测试)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
11
11
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
12
12
  [![License](https://img.shields.io/badge/license-ISC-yellow)](LICENSE)
@@ -133,7 +133,7 @@ gemini # Google Gemini — 首次运行触发认证
133
133
  ✅ OpenCode CLI installed
134
134
  ✅ Copilot CLI installed
135
135
  ✅ Database jaw.db OK
136
- ✅ Skills 17 active, 90 reference
136
+ ✅ Skills 20 active, 89 reference
137
137
  ✅ MCP 3 servers configured
138
138
  ✅ Memory MEMORY.md exists
139
139
  ✅ Server port 3457 available
@@ -154,7 +154,7 @@ CLI-JAW 是驻留在您本地机器上的**专属 AI 助手**,并在您熟悉
154
154
  > 💬 *"重构这个模块,顺便写好测试"* → 子 Agent 搞定,你喝杯咖啡回来就行
155
155
  > 💬 *"把那个 PDF 下载下来,关键信息放到 Notion 里"* → 浏览器 + Notion 技能组合,搞定
156
156
 
157
- 与单一模型的助手不同,CLI-JAW 通过官方 CLI 命令行工具对 **5 大 AI 引擎**(Claude、Codex、Gemini、OpenCode、Copilot)进行编排 — 为您提供各大供应商最优势的能力及统一的体验。当一个引擎处于繁忙状态时,它会自动无缝切换至下一个。108 个内置技能可处理从浏览器自动化到文档生成的所有事务。
157
+ 与单一模型的助手不同,CLI-JAW 通过官方 CLI 命令行工具对 **5 大 AI 引擎**(Claude、Codex、Gemini、OpenCode、Copilot)进行编排 — 为您提供各大供应商最优势的能力及统一的体验。当一个引擎处于繁忙状态时,它会自动无缝切换至下一个。109 个内置技能可处理从浏览器自动化到文档生成的所有事务。
158
158
 
159
159
  | | 为什么选择 CLI-JAW? |
160
160
  | ------------------------------- | ------------------------------------------------------------------------------------- |
@@ -162,13 +162,28 @@ CLI-JAW 是驻留在您本地机器上的**专属 AI 助手**,并在您熟悉
162
162
  | 🤖 **经过验证的智能体工具** | 5 大实战级编码智能体(Claude、Codex、Gemini、OpenCode、Copilot)集于一身。 |
163
163
  | ⚡ **多模型自动回退 (Fallback)** | 单一引擎发生故障?下一个立即接管。确保零停机。 |
164
164
  | 🎭 **基于编排的性能优化** | 复杂的任务会被拆分给专业的子智能体,以实现效率最大化。 |
165
- | 📦 **108 个内置技能** | 浏览器自动化、文档生成、Telegram 通知、持久化记忆 — 开箱即用。 |
165
+ | 📦 **109 个内置技能** | 浏览器自动化、文档生成、Telegram 通知、持久化记忆 — 开箱即用。 |
166
166
  | 🖥️ **跨平台支持** | macOS、Linux、Windows — ENOENT-safe CLI 启动、自动检测、`.cmd` 支持,跨平台原生运行。 |
167
167
 
168
168
  ![CLI-JAW 终端](docs/screenshots/terminal-cli.png)
169
169
 
170
170
  ---
171
171
 
172
+ ## 🆕 新功能 (v1.3.0)
173
+
174
+ | 功能 | 说明 |
175
+ |------|------|
176
+ | 🎤 **语音 & STT** | Web 麦克风按钮 + Telegram 语音转写。多供应商 STT:OpenAI 兼容、Google Vertex AI、自定义端点。设置 UI 中管理 API 密钥。 |
177
+ | 📝 **提示词模板** | 通过 Web UI 创建、编辑和管理提示词模板。节点地图可视化 + 完整 CRUD API。 |
178
+ | 📊 **配额仪表盘** | 紧凑型配额条 + 重置时间显示。429 速率限制时使用缓存数据优雅处理。 |
179
+ | 🔍 **IDE Diff 视图** | 基于指纹的变更检测。自动检测 VS Code 或 Antigravity 并打开内联 diff。 |
180
+ | 🎭 **PABCD 增强** | 实时路线图进度条 + 🦈 鲨鱼跑步动画。阶段切换时有发光、脉冲和徽章反馈。 |
181
+ | 🪟 **WSL 安装改进** | 自动安装前置依赖(`unzip`、`curl`、`git`),修复 `jaw` 命令 PATH,新增故障排除指南。 |
182
+ | 🧪 **639 项测试** | 从 608 项增加 — 新增 STT、配额缓存、编排和 CI 稳定性覆盖。 |
183
+ | 📦 **109 个技能** | 20 个活跃 + 89 个参考。新增:`dev-pabcd`、`dev-scaffolding`、`dev-code-reviewer`。 |
184
+
185
+ ---
186
+
172
187
  ## 您的助手能做什么?
173
188
 
174
189
  ```mermaid
@@ -189,7 +204,9 @@ graph LR
189
204
  - 🤖 **5 大 AI 引擎,1 个专属助手** — Claude · Codex · Gemini · OpenCode · Copilot。使用 `/cli` 命令一键切换。
190
205
  - ⚡ **自动回退 (Fallback)** — 即使一个引擎出现故障,下一个也会无缝接管。
191
206
  - 🎭 **多智能体编排** — 复杂任务会自动拆分给专业的子智能体并行处理。
192
- - 📦 **108 个技能** 浏览器控制、文件编辑、图片生成、网页搜索以及[更多功能](#-技能系统)。
207
+ - 🎤 **语音输入**Web 麦克风按钮 + Telegram 语音消息。多供应商 STT(OpenAI、Vertex AI)。
208
+ - 📝 **提示词模板** — 使用可视化节点地图编辑器创建、管理和复用提示词模板。
209
+ - 📦 **109 个技能** — 浏览器控制、文件编辑、图片生成、网页搜索以及[更多功能](#-技能系统)。
193
210
  - 🧠 **持久化记忆** — 跨越不同会话,记住您过往的对话和偏好设定。
194
211
  - 📱 **Telegram 机器人** — 通过手机即可与您的助手聊天、发送语音/图片/文件。
195
212
  - 🌐 **浏览器自动化** — 您的助手能够自动导航网页、点击、打字并进行截图。
@@ -212,15 +229,15 @@ jaw service install # 开机自动启动 (systemd/launchd/docker 自动检测)
212
229
 
213
230
  ## 📦 技能系统
214
231
 
215
- **108 个技能**开箱即用 — 浏览器、GitHub、Notion、Telegram、记忆、PDF、图片生成等[应有尽有](#)。
232
+ **109 个技能**开箱即用 — 浏览器、GitHub、Notion、Telegram、记忆、PDF、图片生成等[应有尽有](#)。
216
233
 
217
234
  <details>
218
235
  <summary>查看全部技能</summary>
219
236
 
220
237
  | 层级 | 数量 | 工作方式 |
221
238
  | ------------ | :---: | ---------------------------------- |
222
- | **活跃技能** | 17 | 每次对话自动加载,随时可用。 |
223
- | **参考技能** | 90 | 用到的时候 AI 自己去读,按需调用。 |
239
+ | **活跃技能** | 20 | 每次对话自动加载,随时可用。 |
240
+ | **参考技能** | 89 | 用到的时候 AI 自己去读,按需调用。 |
224
241
 
225
242
  #### 活跃技能(常驻)
226
243
 
@@ -237,10 +254,11 @@ jaw service install # 开机自动启动 (systemd/launchd/docker 自动检测)
237
254
  | `screen-capture` | macOS 截图和摄像头捕获 |
238
255
  | `openai-docs` | 最新 OpenAI API 文档 |
239
256
  | `dev` / `dev-frontend` / `dev-backend` / `dev-data` / `dev-testing` | 子 Agent 开发指南 |
257
+ | `dev-pabcd` / `dev-scaffolding` / `dev-code-reviewer` | 编排、脚手架和代码审查指南 |
240
258
 
241
259
  #### 参考技能(按需调用)
242
260
 
243
- 90 个技能随时待命 — Spotify、天气、深度研究、TTS、视频下载、Apple 提醒事项、1Password、Terraform、PostgreSQL、Jupyter 等。
261
+ 89 个技能随时待命 — Spotify、天气、深度研究、TTS、视频下载、Apple 提醒事项、1Password、Terraform、PostgreSQL、Jupyter 等。
244
262
 
245
263
  ```bash
246
264
  jaw skill install <name> # 参考 → 活跃,永久激活
@@ -470,7 +488,7 @@ src/
470
488
  ## 🧪 测试
471
489
 
472
490
  <details>
473
- <summary>608 pass · 1 skipped · 零外部依赖</summary>
491
+ <summary>639 pass · 1 skipped · 零外部依赖</summary>
474
492
 
475
493
  ```bash
476
494
  npm test
@@ -51,26 +51,28 @@ export function resetState() {
51
51
  const PREFIXES = {
52
52
  Pb2: `[PLANNING MODE — User Feedback]
53
53
  The user has reviewed your plan. Apply their feedback and present the revised plan.
54
- If user explicitly approves (OK, next, lgtm, 진행해), advance to Plan Audit phase.
54
+ If user explicitly approves, run \`cli-jaw orchestrate A\` to advance.
55
55
  Otherwise revise and present again.
56
56
 
57
57
  ⛔ STOP after presenting the revision. WAIT for another user response.
58
58
 
59
59
  User says:`,
60
60
  Ab2: `[PLAN AUDIT — Worker Results]
61
- Below are the plan audit results. The worker checked YOUR PLAN for feasibility — not the code.
61
+ Below are the plan audit results from the verification worker.
62
62
  If issues found: fix the plan and re-audit (output worker JSON again).
63
- If PASS: report results to the user.
63
+ If PASS: report results to the user and wait for approval.
64
+ When user approves, run \`cli-jaw orchestrate B\` to advance to Build.
64
65
 
65
- ⛔ STOP after reporting. WAIT for user approval before advancing to Build.
66
+ ⛔ STOP after reporting. WAIT for user approval.
66
67
 
67
68
  Worker results:`,
68
69
  Bb2: `[IMPLEMENTATION REVIEW — Worker Results]
69
70
  Below are verification results for your code.
70
71
  If NEEDS_FIX: fix and re-verify (output worker JSON again).
71
- If DONE: report results to the user.
72
+ If DONE: report results to the user and wait for approval.
73
+ When user approves, run \`cli-jaw orchestrate C\` to advance to Check.
72
74
 
73
- ⛔ STOP after reporting. WAIT for user approval before advancing to Check.
75
+ ⛔ STOP after reporting. WAIT for user approval.
74
76
 
75
77
  Worker results:`,
76
78
  };
@@ -99,9 +101,8 @@ Steps:
99
101
  4. Ask: "Any business logic I shouldn't decide alone?" and "Does Part 1 match your intent?"
100
102
 
101
103
  ⛔ STOP HERE. Do NOT proceed to the next phase.
102
- ⛔ Do NOT call cli-jaw orchestrate A yet.
103
104
  ⛔ WAIT for the user to review and approve your plan.
104
- Only after explicit user approval (OK, lgtm, 진행, etc.) should you advance.
105
+ When user approves, run: \`cli-jaw orchestrate A\`
105
106
 
106
107
  You will receive user feedback with a [PLANNING MODE] prefix. Revise until approved.`,
107
108
  A: `[PABCD — A: PLAN AUDIT]
@@ -123,7 +124,8 @@ After receiving worker results:
123
124
  - If FAIL: fix the plan and re-audit (output worker JSON again).
124
125
  - If PASS: report results to the user.
125
126
 
126
- ⛔ STOP after reporting. WAIT for user approval before advancing to B.`,
127
+ ⛔ STOP after reporting. WAIT for user approval.
128
+ ⛔ When user approves, run: \`cli-jaw orchestrate B\``,
127
129
  B: `[PABCD — B: BUILD]
128
130
 
129
131
  You are now in Build mode. The plan has been audited and approved.
@@ -145,7 +147,8 @@ Wait for worker verification results.
145
147
  - NEEDS_FIX: YOU fix the issues yourself, then re-verify with another worker.
146
148
  - DONE: Report results to the user.
147
149
 
148
- ⛔ STOP after reporting. WAIT for user approval before advancing to C.`,
150
+ ⛔ STOP after reporting. WAIT for user approval.
151
+ ⛔ When user approves, run: \`cli-jaw orchestrate C\``,
149
152
  C: `[PABCD — C: CHECK]
150
153
 
151
154
  You are now in Check mode. Perform final verification:
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/orchestrator/state-machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/orchestrator/state-machine.ts"],"names":[],"mappings":"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"}
@@ -57,8 +57,10 @@ If shell is unavailable, the system will auto-advance when the user explicitly a
57
57
  - Worker results are fed back to you. Review them and report to the user.
58
58
 
59
59
  **Phase summary**:
60
- - P: Write a plan → present to userSTOP. Wait for approval.
61
- - A: Spawn worker to audit THE PLAN (not code) → review results → STOP. Wait for approval.
62
- - B: Implement code → spawn verify worker → STOP. Wait for approval.
63
- - C: Final check (tsc, docs) → call `cli-jaw orchestrate D`.
60
+ - P: Write a plan → STOP approved`cli-jaw orchestrate A`
61
+ - A: Spawn audit worker → review results → STOP approved → `cli-jaw orchestrate B`
62
+ - B: Implement code → spawn verify worker → STOP approved → `cli-jaw orchestrate C`
63
+ - C: Final check (tsc, docs) → `cli-jaw orchestrate D`
64
64
  - D: Summarize and return to IDLE.
65
+
66
+ **⚠️ State transitions MUST use `cli-jaw orchestrate` commands. No other method.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-jaw",
3
- "version": "1.3.0-preview.6",
3
+ "version": "1.3.0-preview.7",
4
4
  "description": "Personal AI assistant powered by 5 engines (Claude, Codex, Gemini, OpenCode, Copilot) — Web, Terminal, and Telegram interfaces with 107 built-in skills",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -157,7 +157,7 @@ body[data-orc-state].orc-pulse #chatMessages {
157
157
  background-size: 360px 24px;
158
158
  position: absolute;
159
159
  top: -13px;
160
- left: 22px;
160
+ left: 0;
161
161
  z-index: 10;
162
162
  transition: left 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
163
163
  pointer-events: none;