cli-jaw 2.17.61 → 2.17.62

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 (100) hide show
  1. package/README.ja.md +376 -339
  2. package/README.ko.md +338 -393
  3. package/README.md +163 -508
  4. package/README.zh-CN.md +365 -376
  5. package/dist/server.js +3 -0
  6. package/dist/server.js.map +1 -1
  7. package/dist/src/agent/pi-runtime.js +37 -18
  8. package/dist/src/agent/pi-runtime.js.map +1 -1
  9. package/dist/src/agent/runtime/acp/permissions.js +2 -3
  10. package/dist/src/agent/runtime/acp/permissions.js.map +1 -1
  11. package/dist/src/agent/runtime/pi-turn.js +7 -0
  12. package/dist/src/agent/runtime/pi-turn.js.map +1 -1
  13. package/dist/src/agent/spawn/line-buffer.js +84 -13
  14. package/dist/src/agent/spawn/line-buffer.js.map +1 -1
  15. package/dist/src/agent/spawn.js +26 -15
  16. package/dist/src/agent/spawn.js.map +1 -1
  17. package/dist/src/code-mode/host.js +34 -5
  18. package/dist/src/code-mode/host.js.map +1 -1
  19. package/dist/src/code-mode/manager.js +24 -7
  20. package/dist/src/code-mode/manager.js.map +1 -1
  21. package/dist/src/code-mode/providers/provider-live-models.js +3 -1
  22. package/dist/src/code-mode/providers/provider-live-models.js.map +1 -1
  23. package/dist/src/code-mode/store.js +31 -6
  24. package/dist/src/code-mode/store.js.map +1 -1
  25. package/dist/src/core/config.js +119 -17
  26. package/dist/src/core/config.js.map +1 -1
  27. package/dist/src/core/runtime-settings.js +7 -1
  28. package/dist/src/core/runtime-settings.js.map +1 -1
  29. package/dist/src/core/settings-merge.js +9 -0
  30. package/dist/src/core/settings-merge.js.map +1 -1
  31. package/dist/src/core/settings-watch.js +19 -1
  32. package/dist/src/core/settings-watch.js.map +1 -1
  33. package/dist/src/discord/bot.js +6 -4
  34. package/dist/src/discord/bot.js.map +1 -1
  35. package/dist/src/discord/send-only-client.js +37 -3
  36. package/dist/src/discord/send-only-client.js.map +1 -1
  37. package/dist/src/manager/memory/embedding/sync.js +6 -0
  38. package/dist/src/manager/memory/embedding/sync.js.map +1 -1
  39. package/dist/src/manager/routes/dashboard-memory.js +20 -7
  40. package/dist/src/manager/routes/dashboard-memory.js.map +1 -1
  41. package/dist/src/manager/server.js +8 -0
  42. package/dist/src/manager/server.js.map +1 -1
  43. package/dist/src/manager/shutdown.js +29 -3
  44. package/dist/src/manager/shutdown.js.map +1 -1
  45. package/dist/src/manager/worker-events.js +70 -8
  46. package/dist/src/manager/worker-events.js.map +1 -1
  47. package/dist/src/routes/code-native.js +23 -3
  48. package/dist/src/routes/code-native.js.map +1 -1
  49. package/dist/src/routes/events.js +4 -0
  50. package/dist/src/routes/events.js.map +1 -1
  51. package/dist/src/routes/settings.js +45 -1
  52. package/dist/src/routes/settings.js.map +1 -1
  53. package/dist/src/routes/sse-connections.js +31 -0
  54. package/dist/src/routes/sse-connections.js.map +1 -0
  55. package/dist/src/shared/permissions.js +47 -0
  56. package/dist/src/shared/permissions.js.map +1 -0
  57. package/package.json +1 -1
  58. package/public/dist/.vite/manifest.json +31 -31
  59. package/public/dist/assets/AdvancedExport-B7h_ZvBu.js +1 -0
  60. package/public/dist/assets/Agent-DnbZJP7b.js +1 -0
  61. package/public/dist/assets/{ChannelEnablementControl-B2tq8Ji4.js → ChannelEnablementControl-Dl0uYx38.js} +5 -5
  62. package/public/dist/assets/ChannelSetupEntry-DxtOrN01.js +1 -0
  63. package/public/dist/assets/ChannelsDiscord-BEGGwd_3.js +1 -0
  64. package/public/dist/assets/{ChannelsSlack-B9FV0ftr.js → ChannelsSlack-BryC2Ahr.js} +1 -1
  65. package/public/dist/assets/ChannelsTelegram-CGSpaImJ.js +1 -0
  66. package/public/dist/assets/CodeCanvas-DpkFi5Au.js +2 -0
  67. package/public/dist/assets/Permissions-BwiMEoTV.js +1 -0
  68. package/public/dist/assets/Permissions-CodIW-Yd.js +1 -0
  69. package/public/dist/assets/{manager-C5cU1joU.js → manager-Bi_xw7TW.js} +2 -2
  70. package/public/dist/assets/{settings-CA2LQDGh.js → settings-W4KG9ivu.js} +1 -1
  71. package/public/dist/assets/{settings-embedding-oGvFayh-.js → settings-embedding-BfWzWKMM.js} +1 -1
  72. package/public/dist/manager/index.html +1 -1
  73. package/public/dist/settings/index.html +1 -1
  74. package/public/js/features/settings-discord.ts +39 -5
  75. package/public/js/features/settings-telegram.ts +38 -4
  76. package/public/js/features/settings-types.ts +2 -0
  77. package/public/locales/en.json +2 -0
  78. package/public/locales/ja.json +2 -0
  79. package/public/locales/ko.json +2 -0
  80. package/public/locales/zh.json +2 -0
  81. package/public/manager/src/App.tsx +4 -1
  82. package/public/manager/src/code/code-controller-runtime.ts +13 -6
  83. package/public/manager/src/code/code-session-client.ts +1 -1
  84. package/public/manager/src/code/session-order.ts +6 -7
  85. package/public/manager/src/dashboard-url-state.ts +8 -0
  86. package/public/manager/src/settings/pages/AdvancedExport.tsx +2 -0
  87. package/public/manager/src/settings/pages/Agent.tsx +13 -5
  88. package/public/manager/src/settings/pages/ChannelsDiscord.tsx +27 -4
  89. package/public/manager/src/settings/pages/ChannelsTelegram.tsx +26 -4
  90. package/public/manager/src/settings/pages/Permissions.tsx +50 -27
  91. package/public/manager/src/settings/pages/components/ChannelSetupEntry.tsx +4 -3
  92. package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +10 -2
  93. package/public/dist/assets/AdvancedExport-BNMjYkw6.js +0 -1
  94. package/public/dist/assets/Agent-D4g8TPjm.js +0 -1
  95. package/public/dist/assets/ChannelSetupEntry-zKYImWXx.js +0 -1
  96. package/public/dist/assets/ChannelsDiscord-CWRKV-Zl.js +0 -1
  97. package/public/dist/assets/ChannelsTelegram-BdK-fTPI.js +0 -1
  98. package/public/dist/assets/CodeCanvas-D5jp8-t5.js +0 -2
  99. package/public/dist/assets/Permissions-Bh947tUG.js +0 -1
  100. package/public/dist/assets/Permissions-DzNJCt8K.js +0 -1
package/README.ja.md CHANGED
@@ -1,19 +1,80 @@
1
- <div align="center">
1
+ <p align="center">
2
+ <img src="docs/assets/readme/banner.jpg" alt="CLI-JAW — あなた専用の AI エージェント。すべての AI CLI を、ひとつのダッシュボードに。" width="100%">
3
+ </p>
2
4
 
3
- # CLI-JAW
5
+ <p align="center"><b>すでに契約している AI コーディング CLI を、ひとつのアシスタント、ひとつのメモリ、ひとつのダッシュボードに。</b><br>
6
+ Claude、Codex、Cursor、Grok、Copilot、OpenCode、Kiro、Antigravity、Pi — チームとして連携します。</p>
4
7
 
5
- ### あなた専用の AI エージェント。2 行でインストール。10 個の AI ランタイムをひとつのダッシュボードに。
8
+ <p align="center">
9
+ <a href="https://npmjs.com/package/cli-jaw"><img src="https://img.shields.io/npm/v/cli-jaw?color=cb3837&label=npm&logo=npm" alt="npm version"></a>
10
+ <a href="https://github.com/lidge-jun/cli-jaw/releases/latest"><img src="https://img.shields.io/github/v/release/lidge-jun/cli-jaw?label=release" alt="latest release"></a>
11
+ <img src="https://img.shields.io/badge/node-%3E%3D22.4-339933?logo=node.js&logoColor=white" alt="Node.js 22.4+">
12
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license"></a>
13
+ </p>
6
14
 
7
- [![npm](https://img.shields.io/npm/v/cli-jaw)](https://npmjs.com/package/cli-jaw)
8
- [![Version](https://img.shields.io/badge/v2.2.3-GA-brightgreen)](https://github.com/lidge-jun/cli-jaw/releases)
9
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
10
- [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
11
- [![License](https://img.shields.io/badge/license-MIT-yellow)](LICENSE)
12
- [![Docker](https://img.shields.io/badge/Docker-supported-2496ED?logo=docker&logoColor=white)](#docker)
15
+ ```bash
16
+ # 変更を最小限にしたい既存ユーザー向け: JAW_SAFE=1 npm install -g cli-jaw
17
+ npm install -g cli-jaw
18
+ jaw dashboard
19
+ ```
20
+
21
+ <p align="center">
22
+ <a href="https://github.com/lidge-jun/cli-jaw/releases/latest"><img src="https://img.shields.io/badge/macOS-.dmg-24292f?logo=apple&logoColor=white" alt="Download for macOS (.dmg)"></a>
23
+ <a href="https://github.com/lidge-jun/cli-jaw/releases/latest"><img src="https://img.shields.io/badge/Windows-.exe-24292f?logo=windows&logoColor=white" alt="Download for Windows (.exe)"></a>
24
+ <a href="https://github.com/lidge-jun/cli-jaw/releases/latest"><img src="https://img.shields.io/badge/Linux-.AppImage-24292f?logo=linux&logoColor=white" alt="Download for Linux (.AppImage)"></a>
25
+ </p>
26
+
27
+ <table>
28
+ <tr>
29
+ <td width="50%" valign="middle">
30
+
31
+ ### すべてのエージェントをひとつの場所に
32
+
33
+ マネージャーダッシュボードから、稼働中のすべてのインスタンスを起動・停止・プレビューできます。
34
+
35
+ </td>
36
+ <td width="50%"><img src="docs/screenshots/manager-dashboard-light.png" alt="CLI-JAW マネージャーダッシュボード" width="100%"></td>
37
+ </tr>
38
+ <tr>
39
+ <td width="50%" valign="middle">
40
+
41
+ ### 作業のためのボード
42
+
43
+ カンバンレーン、優先度マトリックス、リマインダーが、各セッションの作業を追跡します。
44
+
45
+ </td>
46
+ <td width="50%"><img src="docs/screenshots/dashboard-kanban.png" alt="エージェントセッションのカンバンボード" width="100%"></td>
47
+ </tr>
48
+ <tr>
49
+ <td width="50%" valign="middle">
50
+
51
+ ### エージェントが読めるノート
52
+
53
+ WYSIWYG 編集、数式、Mermaid 図に対応した組み込みの Markdown ワークスペース。
13
54
 
14
- [English](README.md) / [한국어](README.ko.md) / [中文](README.zh-CN.md) / **日本語**
55
+ </td>
56
+ <td width="50%"><img src="docs/screenshots/notes-wysiwyg.png" alt="ノートエディタ" width="100%"></td>
57
+ </tr>
58
+ </table>
15
59
 
16
- </div>
60
+ <p align="center">
61
+ <a href="README.md">English</a> · <a href="README.ko.md">한국어</a> · <a href="README.zh-CN.md">中文</a> · <b>日本語</b> · 📖 <a href="https://lidge-jun.github.io/cli-jaw/"><b>ウェブサイト</b></a> · <a href="https://lidge-jun.github.io/cli-jaw/dev/">ドキュメント</a>
62
+ </p>
63
+
64
+ ---
65
+
66
+ ## CLI-JAW とは
67
+
68
+ CLI-JAW は、すでに使っている AI コーディング CLI を**ひとつのアシスタント、ひとつのメモリ、ひとつのダッシュボード**に統合します。メインの CLI(「Boss」)が他の CLI を「Employee(従業員)」として呼び出すので、アプリ間でコピー&ペーストする必要はなくなり、指示はひとつの場所から出せます。
69
+
70
+ - **API キー不要** — すでに契約しているサブスクリプション経由で動作します
71
+ - **トークン単位の課金なし** — すでに支払っているのと同じ月額固定です
72
+ - **ローカルで動作** — コードがマシンの外に出ることはありません
73
+ - **どこからでも使える** — Web、デスクトップアプリ、ターミナル、Telegram、Discord、Slack
74
+
75
+ ネイティブ Code API(`/api/code`)は、Codex、Claude、Cursor、Grok のセッションを分離して実行し、永続するトランスクリプトとネイティブ resume を提供します。詳しくは [ネイティブ Code セッション](structure/runtime-integration.md#native-code-sessions) を参照してください。
76
+
77
+ ---
17
78
 
18
79
  ## インストール
19
80
 
@@ -23,7 +84,7 @@
23
84
  ```bash
24
85
  # macOS / Linux
25
86
  JAW_SAFE=1 npm install -g cli-jaw # skips optional tool/runtime setup
26
- jaw init # 準備ができたら対話型セットアップ
87
+ jaw init # interactive setup later when you're ready
27
88
  ```
28
89
 
29
90
 
@@ -58,17 +119,48 @@ jaw.cmd doctor
58
119
  </details>
59
120
 
60
121
  ```bash
61
- # macOS / Linux / WSL、Node.js 22.4+ が既にある場合
122
+ # macOS / Linux / WSL with Node.js 22+ already installed
62
123
  npm install -g cli-jaw
63
124
  jaw dashboard
64
125
  ```
65
126
 
66
- これで完了です。マネージャーダッシュボードは **http://localhost:24576** で開きます。エージェントごとの Web UI は `jaw serve` を起動すると **http://localhost:3457** で動きます。[Node.js 22.4+](https://nodejs.org) が必要です。
127
+ > **npm 12+ ですか?** npm は依存パッケージの install スクリプトをデフォルトでブロックするようになりました。`npm warn allow-scripts` が出た場合は、スクリプトを許可してインストールしてください:
128
+ >
129
+ > ```bash
130
+ > npm install -g cli-jaw --allow-scripts=cli-jaw
131
+ > ```
132
+
133
+ <details>
134
+ <summary><b>Windows の npm インストール復旧</b> — npm 12+ によるスクリプトブロック、または PowerShell 実行ポリシー</summary>
135
+
136
+ npm 12+ では、CLI-JAW の依存パッケージの `postinstall` がブロックされたままグローバルインストールが完了することがあります。このパッケージだけを許可して再インストールするか、今後のアップグレードのために許可を保存してください:
137
+
138
+ ```powershell
139
+ npm install -g cli-jaw --allow-scripts=cli-jaw
140
+ npm config set allow-scripts=cli-jaw --location=user
141
+ jaw doctor
142
+ ```
143
+
144
+ スクリプトの実行が無効であるために `jaw.ps1` を読み込めないと PowerShell が報告する場合は、次のいずれかを使ってください:
145
+
146
+ ```powershell
147
+ Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
148
+ jaw.cmd doctor
149
+ node "$(npm prefix -g)\node_modules\cli-jaw\dist\bin\cli-jaw.js" doctor
150
+ ```
151
+
152
+ `jaw.ps1` は PowerShell 用の npm shim で、実行ポリシーの対象になります。`jaw.cmd` は同等の cmd shim で、そのポリシーは使いません。`node` を直接呼ぶ形はどちらの shim も経由しません。`jaw doctor` はブロックされた/古いインストール、npm の残存ステージングディレクトリ、現在の PowerShell ポリシーを報告し、対応する復旧手順も表示します。
153
+
154
+ </details>
155
+
156
+ これで完了です。マネージャーダッシュボードは **http://localhost:24576** で開きます。エージェントごとの Web UI は、`jaw serve` を起動すると **http://localhost:3457** で動きます。[Node.js 22.4+](https://nodejs.org) が必要です。
67
157
 
68
158
  > **初めてですか?** デフォルトの npm インストールは CLI-JAW の初期化とネイティブ Claude のセットアップを試みます。他の AI CLI は任意です。macOS/Linux で npm インストール時にすべて入れる場合は `CLI_JAW_INSTALL_CLI_TOOLS=1 npm install -g cli-jaw` を使ってください。Windows では下の WSL インストール手順を使ってください。
69
159
 
160
+ > **廃止されたランタイム。** Claude E(`claude-e`)と AI-E マルチプレクサ(`ai-e`)は削除されました。保存済みの選択は廃止済みとして表示され、実行することはできません。利用可能なランタイムを選んでください。詳細: [ランタイム統合](structure/runtime-integration.md)。
161
+
70
162
  <details>
71
- <summary><b>macOS ワンクリック</b> — Node.js がない場合はこちら</summary>
163
+ <summary><b>macOS ワンクリック</b> — Node.js がない場合はこちらで全部入ります</summary>
72
164
 
73
165
  ```bash
74
166
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/main/scripts/install.sh | bash
@@ -82,21 +174,21 @@ bash "$(npm root -g)/cli-jaw/scripts/verify-fresh-install.sh"
82
174
  <summary><b>Windows(WSL — Windows Subsystem for Linux)</b> — ゼロからワンクリック</summary>
83
175
 
84
176
  ```powershell
85
- # 1. WSL をインストール(管理者権限の PowerShell)
177
+ # 1. Install WSL (PowerShell as Admin)
86
178
  wsl --install
87
179
  ```
88
180
 
89
- 再起動後、**Ubuntu** を開いて:
181
+ 再起動して **Ubuntu** を開き、次を実行します:
90
182
 
91
183
  ```bash
92
- # 2. CLI-JAW + 全依存関係をインストール
184
+ # 2. Install CLI-JAW + all dependencies
93
185
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/main/scripts/install-wsl.sh | bash
94
186
  source ~/.bashrc
95
187
  jaw dashboard
96
188
  bash "$(npm root -g)/cli-jaw/scripts/verify-fresh-install.sh"
97
189
  ```
98
190
 
99
- Windows PowerShell から WSL 内のコマンドを実行する場合は、WSL profile PATH が読み込まれるよう login shell 経由にしてください:
191
+ Windows PowerShell から WSL 内のコマンドを実行する場合は、WSL プロファイルの PATH が読み込まれるよう login shell 経由で実行してください:
100
192
 
101
193
  ```powershell
102
194
  wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"
@@ -105,390 +197,354 @@ wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"
105
197
  </details>
106
198
 
107
199
  <details>
108
- <summary><b>Docker</b></summary>
109
-
110
- ```bash
111
- docker compose up -d # → http://localhost:3457
112
- ```
113
-
114
- </details>
115
-
116
- ---
117
-
118
- ## CLI-JAW とは
119
-
120
- CLI-JAW は、すでに使っている AI コーディング CLI — Pi、Antigravity、Claude、Codex、Codex App、Cursor、Gemini、Grok、Kiro、OpenCode、Copilot — を**ひとつのアシスタント、ひとつのメモリ、ひとつのダッシュボード**に統合するオープンソースプラットフォームです。
121
-
122
- メイン CLI(Boss)が他の CLI を「Employee(従業員)」として呼び出します。アプリを切り替える必要はなく、ひとつの場所から指示できます。
123
-
124
- - **API キー不要** — すでに契約中のサブスクリプションで動作
125
- - **トークン課金なし** — 既存の月額料金のまま
126
- - **ローカル実行** — コードがマシンの外に出ることはありません
200
+ <summary><b>ネイティブ Windows(PowerShell beta)</b> — デタッチ実行したサーバーのログ</summary>
127
201
 
128
- <div align="center">
202
+ `jaw serve` は、継承した stdout / stderr ストリームをそのまま残しつつ、両方のストリームを `<JAW_HOME>\logs\serve.log` にも追記します。起動時に、すでに 5 MiB に達しているファイルは一度だけ `serve.log.1` にローテーションされます。ネイティブ Windows には、`jaw service` のログ用バックエンドがまだ登録されていません。PowerShell の `Start-Process -RedirectStandardOutput/-RedirectStandardError` は起動のたびに対象ファイルを作成または切り詰めるので、これらのオプションをインスタンス所有の `serve.log` に向けないでください。
129
203
 
130
- ![CLI-JAW Manager Dashboard](docs/screenshots/manager-dashboard-light.png)
204
+ オペレーターが管理する stdout / stderr ファイルを別に用意する場合は、子 PowerShell プロセスの中でリダイレクトしてください。次の例は、`Start-Process` の切り詰め既定動作を使わずに `<JAW_HOME>\logs` 配下へ追記します:
131
205
 
132
- </div>
133
-
134
- ### デスクトップアプリ
135
-
136
- GitHub Releases の macOS DMG は、現在のリリースワークフローでは Developer ID 署名、Apple 公証、ticket stapling を必須とします。インストール済みアプリは同じ release channel をバックグラウンドで確認し、**CLI-JAW → Check for Updates…** から手動確認もできます。preview は preview、stable は stable のみを追跡し、ダウンロードと再起動インストールにはそれぞれ明示的な確認が必要です。
137
-
138
- 既存の未署名アプリから最初の署名版へは安全に自動移行できないため、その DMG だけは一度手動でインストールしてください。以後の署名版はアプリ内更新を利用できます。Windows artifact は現在未署名のため SmartScreen が表示される場合があります。
206
+ ```powershell
207
+ $jawHome = 'C:\jaw\worker-a'
208
+ $port = 3458
209
+ $logDir = Join-Path $jawHome 'logs'
210
+ $outLog = Join-Path $logDir 'serve.out.log'
211
+ $errLog = Join-Path $logDir 'serve.err.log'
212
+ New-Item -ItemType Directory -Force -Path $logDir -ErrorAction Stop | Out-Null
213
+ foreach ($path in @($outLog, $errLog)) {
214
+ # OpenOrCreate preserves existing content while proving that the child can append.
215
+ $probe = [IO.File]::Open($path, 'OpenOrCreate', 'Write', 'ReadWrite')
216
+ $probe.Dispose()
217
+ }
218
+
219
+ $jaw = (Get-Command jaw.cmd -ErrorAction Stop).Source
220
+ $childCommand = "& '$jaw' --home '$jawHome' serve --port $port --no-open 1>> '$outLog' 2>> '$errLog'"
221
+ $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($childCommand))
222
+ Start-Process -FilePath powershell.exe -ArgumentList '-NoProfile', '-EncodedCommand', $encoded -WindowStyle Hidden | Out-Null
223
+ ```
139
224
 
140
- ---
225
+ 各ストリームは別々の PowerShell ターミナルで読んでください(`Get-Content -Wait` はそのターミナルを占有し続けます)。起動したターミナルの変数は新しい PowerShell セッションでは使えないため、これらのコマンドは明示的なパスを使っています:
141
226
 
142
- ## 認証
227
+ ```powershell
228
+ # Terminal 1
229
+ Get-Content -LiteralPath 'C:\jaw\worker-a\logs\serve.out.log' -Tail 100 -Wait
143
230
 
144
- ひとつあれば十分です。すでに契約しているサービスを選んでください:
231
+ # Terminal 2
232
+ Get-Content -LiteralPath 'C:\jaw\worker-a\logs\serve.err.log' -Tail 100 -Wait
233
+ ```
145
234
 
146
- ```bash
147
- # 無料オプション(クレジットカード不要)
148
- copilot login # GitHub Copilot(無料枠あり)
149
- opencode # OpenCode — 無料モデルあり
235
+ ライフサイクルコマンドはホーム単位で動作し、シグナルを送る前に `<JAW_HOME>\jaw.pid.json` を検証します:
150
236
 
151
- # 有料(すでに支払い中の月額サブスクリプション)
152
- claude auth login # Anthropic Claude Pro 以上
153
- codex login # OpenAI ChatGPT Pro 以上
154
- cursor-agent login # Cursor
155
- grok login --oauth # xAI Grok / Grok Heavy
156
- kiro # AWS Kiro (free tier with AWS account)
237
+ ```powershell
238
+ & $jaw --home $jawHome service stop --port $port
239
+ & $jaw --home $jawHome service restart --port $port
157
240
  ```
158
241
 
159
- 一括チェック:`jaw doctor`
160
-
161
- <details>
162
- <summary>jaw doctor の出力例</summary>
242
+ 単体の `service restart` はインスタンスをデタッチ状態で安全に起動し直しますが、オペレーターのファイルリダイレクトまでは再現できません。ファイルへの記録を維持するには、`stop` してから、必要なら閉じたログをローテーションし、起動ブロックをもう一度実行してください:
163
243
 
244
+ ```powershell
245
+ $pidFile = Join-Path $jawHome 'jaw.pid.json'
246
+ $serverProcess = $null
247
+ if (Test-Path -LiteralPath $pidFile -PathType Leaf) {
248
+ $record = Get-Content -LiteralPath $pidFile -Raw -ErrorAction Stop | ConvertFrom-Json
249
+ $serverProcess = Get-Process -Id ([int]$record.pid) -ErrorAction SilentlyContinue
250
+ }
251
+
252
+ & $jaw --home $jawHome service stop --port $port
253
+ if ($LASTEXITCODE -ne 0) {
254
+ throw "jaw service stop failed with exit code $LASTEXITCODE"
255
+ }
256
+ if ($serverProcess) {
257
+ try {
258
+ if (-not $serverProcess.WaitForExit(5000)) {
259
+ throw "jaw serve pid $($serverProcess.Id) did not exit within 5000ms"
260
+ }
261
+ } finally {
262
+ $serverProcess.Dispose()
263
+ }
264
+ }
265
+
266
+ $stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
267
+ foreach ($path in @($outLog, $errLog)) {
268
+ if (Test-Path -LiteralPath $path) {
269
+ Move-Item -LiteralPath $path -Destination "$path.$stamp" -ErrorAction Stop
270
+ }
271
+ }
272
+ # Run the Start-Process launch block above again.
164
273
  ```
165
- 🦈 CLI-JAW Doctor — 13 checks
166
274
 
167
- ✅ Node.js v22.15.0
168
- ✅ Claude CLI installed
169
- ✅ Codex CLI installed
170
- ✅ Cursor CLI installed
171
- ✅ OpenCode CLI installed
172
- ✅ Copilot CLI installed
173
- ✅ Database jaw.db OK
174
- ✅ Skills 32 active, 194 reference
175
- ✅ MCP(プラグイン) 3 servers configured
176
- ✅ Memory structured/ exists
177
- ✅ Server port 3457 available
178
- ```
275
+ `Get-Process node | Stop-Process` は使わないでください。無関係な cli-jaw インスタンスや AI ランタイムのプロセスまで終了させてしまいます。
179
276
 
180
277
  </details>
181
278
 
182
- ---
183
-
184
- ## ダッシュボード
185
-
186
- ダッシュボードはコマンドセンターです。`jaw dashboard` がマネージャーを `http://localhost:24576` で起動し、エージェントごとの Web UI は `jaw serve` が `http://localhost:3457` とその近傍の managed port で提供します。
187
-
188
- ### インスタンスマネージャー
189
-
190
- 実行中のすべての AI インスタンスを一覧表示。ワンクリックで起動・停止・再起動。ダッシュボード内でライブ Web UI をプレビューできます。
191
-
192
- <div align="center">
193
-
194
- ![Dashboard Navigator](docs/screenshots/dashboard-navigator.png)
195
-
196
- </div>
197
-
198
- ### カンバンボード
199
-
200
- インスタンスカードをレーン(Backlog → Ready → In Progress → Review → Done)にドラッグ。各 AI セッションが何に取り組んでいるかを追跡します。
201
-
202
- <div align="center">
203
-
204
- ![カンバンボード](docs/screenshots/dashboard-kanban.png)
205
-
206
- </div>
207
-
208
- ### 優先度マトリックス
279
+ <details>
280
+ <summary><b>新規マシンでの証跡</b> — メンテナー向けリリース確認</summary>
209
281
 
210
- アイゼンハワーマトリックスでタスクとリマインダーを整理。重要なものから処理しましょう。
282
+ インストーラーを変更して公開する前に、クリーンな VM でこれを実行してください。環境スナップショット、インストーラーのログ、実際に実行された collector / installer / verifier スクリプトそのもの、その SHA-256 ハッシュ、verifier のログ、新しいシェルでの PATH プローブが `~/cli-jaw-fresh-install-evidence-*` に書き出されます。
211
283
 
212
- <div align="center">
284
+ ```bash
285
+ # macOS Terminal
286
+ COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh
287
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/main/scripts/collect-fresh-install-evidence.sh -o "$COLLECTOR"
288
+ bash "$COLLECTOR" --target macos
289
+
290
+ # Ubuntu inside WSL
291
+ COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh
292
+ bash "$COLLECTOR" --target wsl
293
+ ```
213
294
 
214
- ![優先度マトリックス](docs/screenshots/priority-matrix.png)
295
+ Windows PowerShell からは、対応している WSL 経路に入ります:
215
296
 
216
- </div>
297
+ ```powershell
298
+ wsl.exe -d Ubuntu -- bash -lc 'COLLECTOR=/tmp/cli-jaw-collect-fresh-install-evidence.sh; curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/main/scripts/collect-fresh-install-evidence.sh -o "$COLLECTOR"; bash "$COLLECTOR" --target wsl'
299
+ ```
217
300
 
218
- ### ノート
301
+ collector が WSL 内では `powershell.exe` が使えないと報告する場合は、監査の前に Windows PowerShell から次を実行してください:
219
302
 
220
- ダッシュボード内のミニ Obsidian。フォルダ、ビジュアル(WYSIWYG)+ ソース + 分割編集、KaTeX(数式レンダリング)、Mermaid(コードとしての図表)、シンタックスハイライト付きコードブロック。
303
+ ```powershell
304
+ wsl.exe -d Ubuntu -- bash -lc 'EVIDENCE_DIR="$(ls -dt ~/cli-jaw-fresh-install-evidence-* | head -1)"; { echo "command=wsl.exe -d Ubuntu -- bash -lc jaw --version"; jaw --version; } | tee "$EVIDENCE_DIR/33-powershell-to-wsl-probe.log"'
305
+ ```
221
306
 
222
- <div align="center">
307
+ 未マージのブランチやローカルの VM チェックアウトの場合は、ローカルの installer と verifier を明示的に渡してください:
223
308
 
224
- ![ノートエディタ](docs/screenshots/notes-wysiwyg.png)
309
+ ```bash
310
+ bash scripts/collect-fresh-install-evidence.sh --target macos --install-script scripts/install.sh --verifier-script scripts/verify-fresh-install.sh
311
+ bash scripts/collect-fresh-install-evidence.sh --target wsl --install-script scripts/install-wsl.sh --verifier-script scripts/verify-fresh-install.sh
312
+ ```
225
313
 
226
- </div>
314
+ 収集した各ディレクトリは、対象環境の証跡として扱う前に監査してください:
227
315
 
228
- ### エージェントステータス
316
+ ```bash
317
+ EVIDENCE_DIR="$(ls -dt ~/cli-jaw-fresh-install-evidence-* | head -1)"
318
+ AUDITOR="$(npm root -g)/cli-jaw/scripts/audit-fresh-install-evidence.mjs"
319
+ node "$AUDITOR" "$EVIDENCE_DIR" --target macos
320
+ node "$AUDITOR" "$EVIDENCE_DIR" --target wsl
321
+
322
+ # For a local checkout, audit with the checkout's auditor:
323
+ node scripts/audit-fresh-install-evidence.mjs "$EVIDENCE_DIR" --target macos
324
+ node scripts/audit-fresh-install-evidence.mjs "$EVIDENCE_DIR" --target wsl
325
+ ```
229
326
 
230
- 各 AI エンジンの稼働状況と使用量をひと目で確認。
327
+ インストーラーの変更を公開する前に、両方の strict な証跡ディレクトリを指定して matrix gate を実行してください:
231
328
 
232
- <div align="center">
329
+ ```bash
330
+ GATE="$(npm root -g)/cli-jaw/scripts/verify-release-evidence.mjs"
331
+ node "$GATE" --macos /path/to/macos-evidence --wsl /path/to/wsl-evidence
233
332
 
234
- ![Claude ステータス](docs/screenshots/claude-status-widget.png)
333
+ # For a local checkout:
334
+ node scripts/verify-release-evidence.mjs --macos /path/to/macos-evidence --wsl /path/to/wsl-evidence
335
+ ```
235
336
 
236
- </div>
337
+ matrix gate は、古い collector / installer / verifier スクリプトで収集された証跡を拒否します。アーカイブされた証跡スクリプトは、gate を実行する現在のパッケージまたはチェックアウトと一致していなければなりません。
237
338
 
238
- ---
339
+ `scripts/promote-to-main.sh`、`scripts/release-preview.sh`、または `npm publish` が、前回のタグ以降にインストーラーに影響する変更を検出すると、git push や npm publish の前に同じ matrix gate を実行します。リリースを始める前に証跡ディレクトリを設定してください:
239
340
 
240
- ## Employee システムの仕組み
341
+ ```bash
342
+ CLI_JAW_MACOS_EVIDENCE_DIR=/path/to/macos-evidence \
343
+ CLI_JAW_WSL_EVIDENCE_DIR=/path/to/wsl-evidence \
344
+ bash scripts/promote-to-main.sh
345
+ ```
241
346
 
242
- コアアイデア:**メインの CLI が他の CLI をワーカーとして呼び出します。**
347
+ `scripts/promote-to-main.sh` が昇格させるのは、**すでに認証済みの `preview` ヘッドだけ**です。その正確な `preview` SHA に対する成功した `test.yml` push ランが存在しない限り、処理を開始しません。引数なしでは現在の `origin/preview` ヘッドを昇格させ、任意の SHA 引数を渡した場合はその同じヘッドと一致していなければならないため、この引数は古いコミットを昇格させる手段ではなくアサーションとして機能します。
243
348
 
244
- ひとつの AI(Boss)に話しかけます。専門作業が必要なときは Employee にタスクを分配します — 各 Employee は独自の CLI と独自のモデルで動作します:
349
+ このスクリプトは npm publish を dispatch したあと、公開が成功したかを確認せずに終了し、その後で再実行することはできません。部分的に完了したリリース(npm publish が未実行、GitHub リリースが未作成、`latest` のバージョンが誤っている、`main` のコミットが赤い、など)からの復旧手順は [`structure/infra.md` § 릴리스 파이프라인과 부분 실패 복구](structure/infra.md#릴리스-파이프라인과-부분-실패-복구-preview--main--npm) に記載されています。
245
350
 
246
- ```
247
- あなた:"フロントエンドのスタイルを直して、API エンドポイントも更新して"
351
+ </details>
248
352
 
249
- Boss(Claude)が判断中...
250
- ├── Frontend Employee(OpenCode)にディスパッチ → "dashboard.tsx の CSS グリッドレイアウトを修正"
251
- ├── Backend Employee(Codex)にディスパッチ → "/api/users でページネーションメタデータを返すよう更新"
252
- └── 両方の結果を統合して報告
253
- ```
353
+ <details>
354
+ <summary><b>Docker</b></summary>
254
355
 
255
356
  ```bash
256
- # 内部的にはこのコマンドひとつ:
257
- jaw dispatch --agent "Frontend" --task "dashboard.tsx の CSS グリッドレイアウトを修正"
357
+ docker compose up -d # → http://localhost:3457
258
358
  ```
259
359
 
260
- Employee は設定に登録された他の AI CLI です。それぞれ独自のセッション、モデル、コンテキストを持ちます。Boss が出力をレビューしてからユーザーに提示します。
261
-
262
- ### Employee vs サブエージェント
263
-
264
- これらは別のものです:
265
-
266
- | | Employee | サブエージェント |
267
- |---|---|---|
268
- | **概要** | ワーカーとして設定された他の AI CLI(Codex、OpenCode 等) | 単一 CLI 内の並列タスクツール |
269
- | **用途** | 異なるコードベースやドメインにまたがるマルチスペシャリスト | 内部リサーチ、ファイル読み取り、並列分析 |
270
- | **使い方** | `jaw dispatch --agent "Name" --task "..."` | 自動 — CLI が内部的に生成 |
271
-
272
- Employee は「Frontend は CSS、Backend は API」用。サブエージェントは「判断する前に 5 ファイルを並列で読む」用。
360
+ </details>
273
361
 
274
362
  ---
275
363
 
276
- ## AI ランタイム
277
-
278
- トークン単位の API 課金なし。すでに契約中のサブスクリプションで動作します。
279
-
280
- | CLI | デフォルトモデル | 認証 | コスト |
281
- |---|---|---|---|
282
- | **Pi** | `grok-composer-2.5-fast` | Settings profile API key、local proxy、または `PI_CODING_AGENT_BIN` | isolated `PI_CODING_AGENT_DIR` で local/API endpoint を接続する first-class `pi --mode rpc` runtime |
283
- | **Claude** | `claude-opus-4-8` | `claude auth login` | Claude Pro サブスクリプション以上 |
284
- | **Antigravity** | AGY-selected | `agy` 実行時に確認 | `agy -p` 実験的 AGY print-mode runtime。任意の `--model` は capability probe 後、対応時のみ使用(AGY 1.0.12 で確認)。`--conversation` で resume。個別 effort flag はなし |
285
- | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro サブスクリプション以上 |
286
- | **Codex App** | `gpt-5.5` | `codex login` | ChatGPT Pro サブスクリプション以上 |
287
- | **Cursor** | `composer-2.5` | `cursor-agent login` または `CURSOR_API_KEY` | Cursor サブスクリプション。quota は auth/status-only |
288
- | **Grok** | `grok-build` | `grok login --oauth` | Grok サブスクリプション;クォータは認証/ステータスのみ |
289
- | **Kiro** | registry-selected | `kiro` | AWS Kiro 無料枠;`kiro-cli chat --no-interactive` runtime |
290
- | **OpenCode** | `opencode-go/kimi-k2.6` | `opencode` | 無料モデルあり |
291
- | **Copilot** | `claude-sonnet-4.6` | `copilot login` | 無料枠あり |
292
-
293
- GPT 5.5 と Claude Opus 4.8 は Pro 以上のサブスクリプションで利用できます。6月からサブスクに含まれる Claude 利用枠を使う場合は、`claude` runtime を選択してください。
294
-
295
- クォータ/ステータスパネルは registry と同じ runtime キーセットを維持します。Wrapper runtime(`codex-app`)は underlying provider に委譲し、Pi/AGY/Cursor/Grok/OpenCode のように CLI が quota window を公開しない場合は auth/status-only として表示します。
296
-
297
- **フォールバックチェーン**:あるエンジンがレートリミットされると、次のエンジンが自動で引き継ぎます。`/fallback [cli1 cli2...]` で設定。
364
+ ## 認証
298
365
 
299
- **OpenCode ワイルドカード**:OpenRouter、ローカル LLM(大規模言語モデル)、OpenAI 互換 API など任意のモデルエンドポイントに接続可能。
366
+ **ひとつ**あれば十分です。すでに契約しているサブスクリプションを選んでください:
300
367
 
301
- > エンジン切り替え:`/cli codex`。モデル切り替え:`/model gpt-5.5`。Web、ターミナル、Telegram、Discord のどこからでも可能。
368
+ ```bash
369
+ # Free options (no credit card needed)
370
+ copilot login # GitHub Copilot (free tier available)
371
+ opencode # OpenCode — free models available
372
+ kiro # AWS Kiro (free tier with AWS account)
302
373
 
303
- ---
374
+ # Paid (monthly subscription you already pay for)
375
+ claude auth login # Anthropic Claude Pro or higher
376
+ codex login # OpenAI ChatGPT Pro or higher
377
+ cursor-agent login # Cursor
378
+ grok login --oauth # xAI Grok / Grok Heavy
379
+ ```
304
380
 
305
- ## PABCD オーケストレーション(Plan → Audit → Build → Check → Done)
381
+ まとめて確認: `jaw doctor`
306
382
 
307
- 複雑なタスクに対して、CLI-JAW は構造化された 5 段階ワークフローを使用します。すべての遷移にユーザーの承認が必要です — 確認なしでは何も進みません。
383
+ <details>
384
+ <summary>jaw doctor の出力例</summary>
308
385
 
309
386
  ```
310
- P (Plan) → A (Audit) → B (Build) → C (Check) → D (Done) → IDLE
311
- ⛔ ⛔ ⛔ auto auto
312
- ```
387
+ 🦈 CLI-JAW Doctor — 13 checks
313
388
 
314
- | フェーズ | 内容 |
315
- |---|---|
316
- | **P — Plan** | Boss AI が diff レベルの計画を作成。レビューのために停止 |
317
- | **A — Audit** | 読み取り専用ワーカーが計画の実行可能性を検証(import の存在、シグネチャの一致) |
318
- | **B — Build** | Boss が実装。読み取り専用ワーカーが結果を検証 |
319
- | **C — Check** | 型チェック(`tsc --noEmit`)、ドキュメント更新、整合性チェック |
320
- | **D — Done** | 全変更のサマリー。アイドル状態に復帰 |
389
+ ✅ Node.js v22.15.0
390
+ ✅ Claude CLI installed
391
+ ✅ Codex CLI installed
392
+ ✅ Cursor CLI installed
393
+ ✅ OpenCode CLI installed
394
+ ✅ Copilot CLI installed
395
+ ✅ Database jaw.db OK
396
+ ✅ Skills 29 active, 238 reference
397
+ ✅ MCP (plugins) 3 servers configured
398
+ ✅ Memory structured/ exists
399
+ ✅ Server port 3457 available
400
+ ```
321
401
 
322
- 状態はデータベースに永続化され、再起動後も保持されます。ワーカーはファイルを変更できません — 検証のみ。`jaw orchestrate`、`/orchestrate`、`/pabcd` で開始し、進行中の worklog は `/continue` で明示的に再開します。フェーズ遷移には証拠 attestation が必要です。例: `jaw orchestrate B --attest '{"from":"A","to":"B","did":"<what you did>"}'`(C→D は `checkOutput` と `exitCode` も必要)。Workflow helper slash commands: `/plan`, `/interview`, `/deliberate`, `/planaudit`, `/review`, `/search`, `/goal`, `/goalplan`, `/team`, `/task`, `/fork`, `/gd`。`/plan` は「これは PABCD P」の互換ガイドで、別の計画モードは作りません。`/search <query>` は active search skill にルーティングされます。Bounded automation は `/goal run ...` で表現され、別の `/autopilot` はありません。Durable goal(`/goal <objective>` + `update`/`done`/`cancel`/`pause`/`resume`)は再起動後も保持され、goal 再開は Web/CLI を含む全インターフェースで作業を再実行します。AI `goal pause --agent --audit` は 2 段階監査ゲート(`goal_pause_gate_pending` で自動 continuation を抑制)です。`/gd` は `/goal done --force` の短縮(完了証拠ゲートをバイパス)。`/goal run`(`preflight`/`start`/`stop`/`status`)は preflight を通過する追跡専用 preview で、turn/dispatch 予算を追跡します(強制は今後)。
402
+ </details>
323
403
 
324
404
  ---
325
405
 
326
- ## メモリ
406
+ ## 手に入るもの
327
407
 
328
- 3 つの層がそれぞれ異なるリコール範囲をカバーします。
408
+ ### Employee:あなたの CLI が他の CLI を呼び出す
329
409
 
330
- | 層 | 保存内容 | 動作方式 |
331
- |---|---|---|
332
- | **History Block** | 直近のセッションコンテキスト | 直近 10 セッション、最大 8,000 文字、作業ディレクトリごとにスコープ。プロンプト先頭に注入 |
333
- | **Memory Flush** | 会話から抽出した構造化ナレッジ | 一定ターン(デフォルト 10)後にトリガー。エピソード、日次ログ、セマンティックノートを Markdown で抽出 |
334
- | **Soul + Task Snapshot** | アイデンティティとセマンティック検索 | 核心的な価値観、トーン、境界を定義。全文検索インデックスがプロンプトごとに最大 4 件のセマンティック関連結果を返す |
410
+ 話しかける相手はひとつの AI(「Boss」)です。専門的な作業が必要になると、Boss は Employee にタスクを割り当てます — 各 Employee は独自の CLI とモデルで動作し、Boss はその出力をレビューしてからあなたに答えます。
335
411
 
336
- 3 層すべてがシステムプロンプトに自動注入されます。メモリの検索:
412
+ ```text
413
+ You: "Fix the frontend styling and update the API endpoint"
337
414
 
338
- ```bash
339
- jaw memory search "API の認証はどう設定した?"
415
+ Boss (Claude)
416
+ ├── Frontend employee (OpenCode) → "Fix the CSS grid layout in dashboard.tsx"
417
+ ├── Backend employee (Codex) → "Update /api/users to return pagination metadata"
418
+ └── Synthesizes both results for you
340
419
  ```
341
420
 
342
- ---
343
-
344
- ## スキル
345
-
346
- 230 以上のスキルが開発ワークフロー、オフィスドキュメント、自動化、メディア、コンテンツ作成をカバーします。
347
-
348
- | カテゴリ | スキル | 対応範囲 |
349
- |---|---|---|
350
- | **オフィス** | `jaw-pdf`, `jaw-docx`, `jaw-xlsx`, `jaw-pptx`, `jaw-hwp` | ドキュメントの読み取り・作成・編集。HWP/HWPX(韓国語ワープロ形式)をネイティブサポート |
351
- | **自動化** | `jaw-browser`, `vision-click`, `jaw-screen-capture`, `jaw-desktop-control` | Chrome DevTools Protocol(CDP)ブラウザ制御、AI 座標クリック、macOS スクリーンショット、Computer Use |
352
- | **メディア** | `jaw-video`, `imagegen`, `lecture-stt`, `tts` | Remotion 動画、OpenAI 画像生成、講義の文字起こし、テキスト読み上げ |
353
- | **連携** | `jaw-github`, `notion`, `jaw-telegram-send`, `jaw-memory` | Issues/PRs/CI、Notion ページ、Telegram メディア配信、永続メモリ |
354
- | **ビジュアライゼーション** | `jaw-diagram` | チャット内で SVG ダイアグラム、チャート、インタラクティブ図をレンダリング |
355
- | **コンテンツ/ライティング** | `k-writing` | 韓国語のプロモーション/コンテンツ作成: スレッド、Instagram カードニュース、LinkedIn、Web/ブログ、推敲を、必須検索・フック採点・AI っぽさ除去チェック付きで生成 |
356
- | **開発ガイド** | `jaw-dev`, `jaw-dev-frontend`, `jaw-dev-backend`, `jaw-dev-data`, `jaw-dev-testing`, `jaw-dev-pabcd` | エージェントプロンプトに注入されるエンジニアリングガイドライン |
357
-
358
- リファレンススキルは `skills_ref/` にあり、オンデマンドでアクティブランタイムにインストールされます。
359
-
360
421
  ```bash
361
- jaw skill install <name> # リファレンススキルをアクティブ化
362
- jaw skill list # 利用可能なスキルを表示
422
+ jaw dispatch --agent "Backend" --task "Run read-only verification" --watch
423
+ jaw dispatch --virtual "security" --task "Review this branch for auth and secret leaks" --watch
363
424
  ```
364
425
 
365
- ---
426
+ ### PABCD:計画、監査、実装、確認、完了
366
427
 
367
- ## ブラウザ & デスクトップ自動化
428
+ 複雑なタスクでは、CLI-JAW が構造化されたワークフローを実行します。すべての遷移はあなたが承認し、読み取り専用のワーカーが計画と結果を検証します。
368
429
 
369
- | 機能 | 動作方式 |
430
+ | フェーズ | 内容 |
370
431
  |---|---|
371
- | **Chrome DevTools Protocol** | ナビゲーション、クリック、入力、スクリーンショット、JS 実行、スクロール、キー入力 — Chrome のリモートコントロール |
372
- | **Vision-click** | 画面をスクリーンショット → AI がターゲット座標を抽出 → クリック。`jaw browser vision-click "Login button"` |
373
- | **Computer Use** | Codex Computer Use によるデスクトップアプリ自動化。Safari で localhost にアクセスすれば Codex アプリのように動作 |
374
- | **Web-AI ベンダー** | `jaw browser web-ai --vendor chatgpt\|gemini\|grok` — セッションライフサイクル、診断、ソース監査、ChatGPT code-mode zip 回収サポート |
375
- | **Diagram スキル** | SVG ダイアグラムとインタラクティブなビジュアライゼーションを生成し、チャット内にインラインレンダリング |
432
+ | **P — Plan** | Boss が diff レベルの計画を書き、あなたのレビューのために停止します |
433
+ | **A — Audit** | 読み取り専用のワーカーが計画の実行可能性を確認します |
434
+ | **B — Build** | Boss が実装し、読み取り専用のワーカーが検証します |
435
+ | **C — Check** | 型チェック、ドキュメント更新、整合性チェック |
436
+ | **D — Done** | すべての変更のサマリーを提示し、アイドル状態に戻ります |
376
437
 
377
- Computer Use で Finder、Safari、システム設定、Xcode など、あらゆる macOS アプリを自然言語で操作できます。
438
+ 状態は再起動後も保持されます。`jaw orchestrate` または `/pabcd` で開始し、`/continue` で再開し、長期の目的は `/goal` で維持します。詳しくは [PABCD](https://lidge-jun.github.io/cli-jaw/dev/concepts/pabcd.html) を参照してください。
378
439
 
379
- ---
440
+ ### メモリ、スキル、MCP
380
441
 
381
- ## メッセージング
442
+ - **3 つのメモリ層** — 直近のセッション履歴、会話から書き出される構造化ノート、検索できる soul/task スナップショット: `jaw memory search "how did we set up the API auth?"`
443
+ - **200 以上のスキル** — オフィス文書(PDF、DOCX、XLSX、PPTX、HWP)、ブラウザとデスクトップの自動化、メディア、GitHub、Notion、開発ガイド: `jaw skill install <name>`
444
+ - **すべてのエンジンでひとつの MCP 設定** — `jaw mcp install @anthropic/context7` が Claude、Codex、Kiro、OpenCode、Copilot、Antigravity を一度に同期します
382
445
 
383
- ### Telegram
446
+ ### ブラウザとデスクトップの自動化
384
447
 
385
- ```
386
- 📱 Telegram ←→ 🦈 CLI-JAW ←→ 🤖 AI Engines
387
- ```
448
+ DevTools Protocol 経由で Chrome を操作し、`jaw browser vision-click "Login button"` で説明からクリックし、macOS と Windows では Codex Computer Use でデスクトップアプリを操作し、`jaw browser web-ai` で ChatGPT、Gemini、Grok の Web UI に問い合わせられます。
449
+
450
+ ### メッセージング
388
451
 
389
- テキストチャット、音声メッセージ(マルチプロバイダ STT — 音声をテキストに自動変換)、ファイル/写真アップロード、スラッシュコマンド(51 件登録; workflow helper: `/plan`, `/interview`, `/review`, `/search`, `/goal`, `/orchestrate`, `/task`, `/fork`, `/gd`; CLI/Web 動的 `/skill:<id>`)、フォーラムトピックルーティングと **Dashboard Telegram Hub**(`/setthread`, `/threads`, `/hubhelp`、Manager UI でトピックごとの `model`/`systemPrompt` override)、スケジュールタスク(`every`/`cron` heartbeat)結果の自動配信。
452
+ **Telegram**(音声メッセージ、フォーラムトピック、スケジュールされた heartbeat ジョブ)、**Discord**、**Slack**(Socket Mode、スレッド、ファイルリレー、メンション監視)からエージェントとチャットできます。複数のチャンネルを同時に有効にでき、ホームチャンネルには自発的な送信が届きます。
390
453
 
391
454
  <details>
392
- <summary>セットアップ(3 ステップ)</summary>
455
+ <summary>Telegram のセットアップ(3 ステップ)</summary>
393
456
 
394
457
  1. [@BotFather](https://t.me/BotFather) にメッセージ → `/newbot` → トークンをコピー
395
- 2. `jaw init --telegram-token YOUR_TOKEN` または Web UI 設定から
396
- 3. Bot に何かメッセージを送信。Chat ID は初回メッセージ時に自動保存
458
+ 2. `jaw init --telegram-token YOUR_TOKEN` を実行するか、Web UI の設定を使う
459
+ 3. Bot に何かメッセージを送信。Chat ID は最初のメッセージで自動保存されます
397
460
 
398
461
  </details>
399
462
 
400
- ### Discord
401
-
402
- Telegram と同等の機能 — テキスト、ファイル、コマンド。チャンネル/スレッドルーティング、正規 `/api/channel/send`、エージェント結果ブロードキャストフォワーダー。Web UI 設定で構成。
403
-
404
- ### Slack
405
-
406
- 同じコマンドカタログを使う Socket Mode ボット — メンション、DM、スラッシュコマンド、ファイル/画像リレー、スレッド返信。
407
-
408
463
  <details>
409
- <summary>セットアップ(ガイド付きウィザード)</summary>
464
+ <summary>Slack のセットアップ(ガイド付きウィザード)</summary>
410
465
 
411
- 1. `jaw slack setup` — アプリマニフェストを表示(`jaw slack manifest | pbcopy`)して Slack アプリ作成ページを開き、2 つのトークンをライブ検証(`auth.test` + `apps.connections.open`)してから設定に保存
412
- 2. ボットを読ませる各チャンネルで `/invite @cli-jaw` を実行し、`jaw serve` を再起動
466
+ 1. `jaw slack setup` — アプリマニフェストを表示し、Slack アプリのページを開き、両方のトークンをライブで検証して設定を書き込みます
467
+ 2. Bot に読ませたい各チャンネルで `/invite @cli-jaw` を実行し、`jaw serve` を再起動します
413
468
 
414
- OAuth ワンクリックでない理由: Socket Mode に必要なアプリレベルトークン(`xapp-`)はアプリ設定 UI でのみ発行され、PKCE localhost フローは bot scope を拒否します。ブラウザのワンクリックではセルフホスト型 Socket Mode ボットを構成できないため、このウィザードが最短経路です。
469
+ グループ DM には `message.mpim` イベントと `mpim:history` スコープが必要です。コンテナでは、`SLACK_BOT_TOKEN`、`SLACK_APP_TOKEN`、`SLACK_TEAM_ID`、`SLACK_CHANNEL_IDS` が実行時にそれぞれのフィールドを所有します。詳細: [Slack ツール](docs/slack-tools.md)。
415
470
 
416
471
  </details>
417
472
 
418
- ### 音声 & STT
473
+ ### デスクトップアプリ
419
474
 
420
- 音声入力は Web(マイクボタン)、Telegram(音声メッセージ)、Discord で動作します。プロバイダ:OpenAI 互換、Google Vertex AI、任意のカスタムエンドポイント。
475
+ Electron アプリはマネージャーダッシュボードを起動し、同梱の Node.js サイドカーを備え、メニューバーに常駐します。[GitHub Releases](https://github.com/lidge-jun/cli-jaw/releases/latest) からダウンロードできます:
421
476
 
422
- ---
477
+ - **macOS (Apple Silicon)** — DMG を開き、CLI-JAW を Applications にドラッグします。ビルドは Developer ID 署名、公証、staple 済みで、アプリ内から更新できます。
478
+ - **Windows (x64)** — Setup の `.exe` を実行します。未署名のため、SmartScreen が確認を求めることがあります。
479
+ - **Linux (x64)** — AppImage に実行権限を付けて起動します。
423
480
 
424
- ## MCP(Model Context Protocol)
481
+ 初回起動後、**Install CLI command**(またはトレイ項目の **Install CLI to Terminal**)を許可すると、グローバルな npm インストールなしで `jaw` をターミナルから使えるようになります。
425
482
 
426
- [MCP](https://modelcontextprotocol.io) は AI ツールが機能を共有するための標準です — AI エージェント向けのプラグインのようなものです。CLI-JAW はすべてのエンジンの MCP 設定を 1 ファイルで管理します。
483
+ ---
427
484
 
428
- ```bash
429
- jaw mcp install @anthropic/context7
430
- # → Claude、Codex、Gemini、OpenCode、Copilot、Antigravity の設定ファイルに同期
431
- ```
485
+ ## AI ランタイム
432
486
 
433
- 複数の JSON ファイルを個別に編集する必要はありません。一度インストールすれば MCP 対応エンジンすべてに反映されます。Grok CLI は標準ランタイムですが、Grok 側に互換 MCP 設定面が確認されるまで MCP 同期対象とは表記しません。Antigravity MCP sync は `agy` runtime registry entry とは別の config target です。
487
+ トークン単位の API 課金はありません。すでに契約しているサブスクリプション経由で動作します。
434
488
 
435
- ```bash
436
- jaw mcp sync # 手動編集後の再同期
437
- ```
489
+ | CLI | デフォルトモデル | 認証 | コスト |
490
+ |---|---|---|---|
491
+ | **Pi** | `grok-composer-2.5-fast` | 設定プロファイルの API キー、ローカルプロキシ、または `PI_CODING_AGENT_BIN` | 分離されたプロファイル経由のローカル/API エンドポイント |
492
+ | **Claude** | `claude-opus-4-8` | `claude auth login` | Claude Pro サブスクリプション以上 |
493
+ | **Antigravity** | AGY-selected | `agy` が実行時に確認 | 実験的な print-mode ランタイム |
494
+ | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro サブスクリプション以上 |
495
+ | **Codex App** | `gpt-5.5` | `codex login` | ChatGPT Pro サブスクリプション以上 |
496
+ | **Cursor** | `composer-2.5` | `cursor-agent login` または `CURSOR_API_KEY` | Cursor サブスクリプション |
497
+ | **Grok** | `grok-build` | `grok login --oauth` | Grok サブスクリプション |
498
+ | **Kiro** | registry-selected | `kiro` | AWS Kiro の無料枠 |
499
+ | **OpenCode** | `opencode-go/kimi-k2.6` | `opencode` | 無料モデルあり |
500
+ | **Copilot** | `claude-sonnet-4.6` | `copilot login` | 無料枠あり |
501
+
502
+ あるエンジンがレートリミットに達すると、次のエンジンが引き継ぎます(`/fallback`)。エンジンは `/cli codex`、モデルは `/model gpt-5.5` でライブに切り替えられます — Web、ターミナル、Telegram、Discord、Slack のどこからでも可能です。
438
503
 
439
504
  ---
440
505
 
441
- ## CLI コマンド
506
+ ## CLI
442
507
 
443
508
  ```bash
444
- # コア
445
- jaw dashboard # マネージャーダッシュボードを起動
446
- jaw serve # サーバー起動(http://localhost:3457)
447
- jaw chat # ターミナルチャット UI
448
- jaw doctor # 12 項目の診断
449
- jaw slack setup # ガイド付き Slack アプリ設定(マニフェスト + トークン検証)
450
-
451
- # インスタンス
452
- jaw clone ~/project # 新しいディレクトリにインスタンスを複製
453
- jaw --home ~/project serve --port 3458 # 2 つ目のインスタンスを起動
454
- jaw service install # OS 起動時の自動スタート (macOS/Linux)
455
-
456
- # AI & オーケストレーション
457
- jaw dispatch --agent "Backend" --task "..." # Employee をディスパッチ
458
- jaw orchestrate # PABCD ワークフローの開始/制御
459
-
460
- # スキル & MCP
461
- jaw skill install <name> # スキルをアクティブ化
462
- jaw skill list # 利用可能なスキルを表示
463
- jaw mcp install <package> # MCP をインストール → MCP 対応エンジンに同期
464
- jaw mcp sync # MCP 設定の再同期
465
-
466
- # メモリ
467
- jaw memory search <query> # 全メモリ層を横断検索
468
- jaw memory save <file> <content> # 構造化メモリに保存
469
-
470
- # ブラウザ
471
- jaw browser start # Chrome 自動化を起動
472
- jaw browser fetch "https://example.com" --json --trace # 適応型 URL リーダー
473
- jaw browser snapshot # ページ状態をキャプチャ
474
- jaw browser vision-click "Login" # AI ベースのクリック
475
-
476
- # メンテナンス
477
- jaw reset # フルリセット
509
+ # Core
510
+ jaw dashboard # launch manager dashboard
511
+ jaw serve # start an agent server (http://localhost:3457)
512
+ jaw chat # terminal chat UI
513
+ jaw ask "question" # one prompt, one answer — no TTY needed
514
+ jaw doctor # installation and runtime diagnostics
515
+
516
+ # Instances
517
+ jaw clone ~/project # clone instance to new directory
518
+ jaw --home ~/project serve --port 3458 # run a second instance
519
+ jaw service install # auto-start on boot (macOS launchd / Linux systemd)
520
+ jaw --home ~/project service restart --port 3458 # restart only this instance
521
+
522
+ # Agents and workflow
523
+ jaw employee list
524
+ jaw dispatch --agent "Backend" --task "..." --watch
525
+ jaw orchestrate # PABCD workflow
526
+ jaw goal status # persistent goals
527
+
528
+ # Skills, MCP, memory, browser
529
+ jaw skill list
530
+ jaw mcp install <package>
531
+ jaw memory search <query>
532
+ jaw browser fetch "https://example.com" --json
478
533
  ```
479
534
 
480
- ---
481
-
482
- ## マルチインスタンス
535
+ `jaw clone` で作成した各インスタンスは、設定、メモリ、データベース、MCP 設定をそれぞれ独立して持ち、マネージャーダッシュボードからすべてを確認できます。リモートやヘッドレスホストについては [structure/remote-headless.md](structure/remote-headless.md) を参照してください。コマンドの完全なリファレンス: [CLI ドキュメント](https://lidge-jun.github.io/cli-jaw/dev/reference/cli.html)。
483
536
 
484
- 設定、メモリ、データベースがそれぞれ独立した分離インスタンスを実行:
537
+ ---
485
538
 
486
- ```bash
487
- jaw clone ~/my-project
488
- jaw --home ~/my-project serve --port 3458
489
- ```
539
+ ## ドキュメント
490
540
 
491
- 各インスタンスは完全に独立 — 作業ディレクトリ、メモリ、MCP 設定すべて別々。マネージャーダッシュボードからすべて確認できます。
541
+ | トピック | 場所 |
542
+ |---|---|
543
+ | ウェブサイトとクイックスタート | [lidge-jun.github.io/cli-jaw](https://lidge-jun.github.io/cli-jaw/) |
544
+ | ガイド、概念、リファレンス | [開発者ドキュメント](https://lidge-jun.github.io/cli-jaw/dev/) |
545
+ | アーキテクチャ | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) · [structure/](structure/) |
546
+ | Slack ツールとローカル API | [docs/slack-tools.md](docs/slack-tools.md) |
547
+ | ランタイム統合(廃止されたランタイムを含む) | [structure/runtime-integration.md](structure/runtime-integration.md) |
492
548
 
493
549
  ---
494
550
 
@@ -497,61 +553,42 @@ jaw --home ~/my-project serve --port 3458
497
553
  ```bash
498
554
  npm run build # tsc → dist/
499
555
  npm run build:frontend # vite → public/dist/
500
- npm run dev # tsx server.ts(ホットリロード)
501
- npm test # programmatic node:test driver (tests/run.mts, isolation:'process')
502
- npm run gate:all # リリース/ドキュメント整合性ゲート
503
- bash structure/check-doc-drift.sh
556
+ npm run dev # tsx server.ts (hot-reload)
557
+ npm test # node:test driver (tests/run.mts)
558
+ npm run gate:all # release/docs parity gates
559
+ npm run electron:dev # desktop app with hot reload
504
560
  ```
505
561
 
506
- アーキテクチャ詳細:[ARCHITECTURE.md](docs/ARCHITECTURE.md) · テストカバレッジ:[TESTS.md](TESTS.md) · 内部構造ドキュメント:[structure/](structure/)
507
-
508
- ---
509
-
510
- ## 比較
511
-
512
- | | CLI-JAW 2.0 | Hermes Agent | Claude Code |
513
- |---|---|---|---|
514
- | **モデルアクセス** | Pi、Antigravity、Claude、Codex、Codex App、Cursor、Gemini、Grok、Kiro、OpenCode、Copilot — ベンダー/ネイティブ認証経由 | API キー(OpenRouter 200+、Nous Portal) | Anthropic のみ |
515
- | **コストモデル** | 契約済みの月額サブスクリプション | トークン単位の API 課金 | Anthropic サブスクリプション |
516
- | **メイン UI** | マネージャーダッシュボード + Web アプリ + Mac アプリ + ターミナル UI | ターミナルのみ | CLI + IDE プラグイン |
517
- | **ダッシュボード** | マルチインスタンスマネージャー、カンバン、ノートワークスペース | なし | なし |
518
- | **メッセージング** | Telegram(音声)+ Discord | Telegram/Discord/Slack/WhatsApp/Signal | なし |
519
- | **メモリ** | 3 層(History/Flush/Soul)+ 全文検索 | Self-improving loop + Honcho | ファイルベース自動メモリ |
520
- | **マルチエージェント** | Employee システム(他 CLI のディスパッチ)+ PABCD | サブエージェント生成 | Task ツール |
521
- | **ブラウザ自動化** | Chrome DevTools + vision-click + Computer Use | 限定的 | MCP 経由 |
522
- | **実行環境** | ローカル + Docker | ローカル/Docker/SSH/Daytona/Modal | ローカル |
523
- | **スキル** | 230+ 同梱 | 自己生成 + agentskills.io | ユーザー設定 |
524
- | **多言語対応** | 英語、韓国語、中国語、日本語 | 英語 | 英語 |
525
-
526
562
  ---
527
563
 
528
564
  ## トラブルシューティング
529
565
 
530
566
  | 症状 | 対処 |
531
567
  |---|---|
532
- | `cli-jaw: command not found` | `npm install -g cli-jaw` を再実行。macOS/Linux/WSL では `~/.local/bin` または `npm prefix -g` + `/bin` が `$PATH` に含まれているか確認。Windows PowerShell からは `wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"` のように WSL login shell 経由で実行 |
533
- | `Error: node version` | Node.js 22.4+ にアップグレード:`nvm install 22` |
534
- | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native`(ネイティブモジュールの自動リビルド) |
535
- | `EADDRINUSE: port 3457` | 別のインスタンスが起動中。`--port 3458` で回避 |
536
- | Telegram / Discord 認証失敗 | `jaw doctor` を実行してから `jaw serve` を再起動 |
537
- | ブラウザコマンドが動かない | Chrome/Chromium をインストールし、`jaw browser start` を先に実行 |
538
- | Employee ディスパッチがハング | Employee CLI が認証済みか確認(`jaw doctor`) |
539
- | Computer Use が動かない | macOS のみ。Codex CLI が必要。システム設定で Automation 権限を確認 |
568
+ | `cli-jaw: command not found` | `npm install -g cli-jaw` を再実行します。macOS/Linux/WSL では `~/.local/bin`、または `npm prefix -g` + `/bin` が `$PATH` に含まれているか確認してください。Windows PowerShell からは login shell 経由で WSL を呼び出します: `wsl.exe -d Ubuntu -- bash -lc "jaw dashboard"`。 |
569
+ | `npm warn allow-scripts ...` | npm >= 12 は依存パッケージの install スクリプトをブロックします: `npm install -g cli-jaw --allow-scripts=cli-jaw`、または `npm config set allow-scripts=cli-jaw --location=user` で保存します。すでにインストール済みなら `jaw init` がセットアップを完了します。 |
570
+ | pnpm/bun blocked build scripts | pnpm 11+: `pnpm add -g --allow-build=cli-jaw cli-jaw`。bun: `bun add -g --trust cli-jaw`。 |
571
+ | Fresh install verifier fails | 報告された PATH または実行権限の問題を直してから、`bash "$(npm root -g)/cli-jaw/scripts/verify-fresh-install.sh"` を再実行します。 |
572
+ | `Error: node version` | Node.js 22.4+ にアップグレードしてください: `nvm install 22` |
573
+ | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native` |
574
+ | `EADDRINUSE: port 3457` | 別のインスタンスが起動しています。`--port 3458` を使うか、先に停止してください |
575
+ | Telegram / Discord / Slack auth fails | `jaw doctor` を実行し、トークンを確認して `jaw serve` を再起動します |
576
+ | Employee dispatch hangs | `jaw employee list` を実行し、Employee の CLI が認証済みか確認して(`jaw doctor`)、`jaw dispatch --watch` で再試行します |
540
577
 
541
578
  ---
542
579
 
543
580
  ## コントリビュート
544
581
 
545
- 1. `dev` から Fork してブランチを作成
546
- 2. `npm run build && npm test`
547
- 3. PR を送信
582
+ 公開コードと製品ドキュメントはこのリポジトリにあります。非公開の計画と履歴は、別の兄弟クローンである [cli-jaw-internal](https://github.com/lidge-jun/cli-jaw-internal) にのみ置かれます。アクセスが必要な場合は [issue](https://github.com/lidge-jun/cli-jaw/issues) から依頼してください。このチェックアウト内に非公開の記録(`devlog`、`_plan`、`_fin`、`.jwc` エイリアスなど)を作成しないでください。公開ドキュメントやソースに非公開記録のパスを含めないでください。変更をアップロードする前に [ローカルの pre-push セットアップとチェック](CONTRIBUTING.md#local-private-path-check) に従ってください。
548
583
 
549
- バグ報告やアイデア:[Issue を作成](https://github.com/lidge-jun/cli-jaw/issues)
584
+ 1. `dev` から Fork してブランチを作成
585
+ 2. `npm run build && npm run build:frontend && npm test`
586
+ 3. リリースに影響する変更では `npm run gate:all` も実行
587
+ 4. PR を送信
550
588
 
551
589
  ---
552
590
 
553
- <div align="center">
591
+ <p align="center"><a href="LICENSE"><b>MIT License</b></a> · AI アプリのタブ切り替えに疲れた開発者たちが作りました。</p>
592
+
554
593
 
555
- **[MIT License](LICENSE)** · AI アプリのタブ切り替えに疲れた開発者たちが作りました。
556
594
 
557
- </div>