@newpeak/barista-cli 0.1.20 → 0.1.22
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/LICENSE +20 -20
- package/README.ja.md +340 -340
- package/README.md +341 -340
- package/README.vi.md +340 -340
- package/README.zh.md +340 -340
- package/bin/barista +6 -6
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +2 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/issue/index.d.ts +3 -0
- package/dist/commands/liberica/issue/index.d.ts.map +1 -0
- package/dist/commands/liberica/issue/index.js +9 -0
- package/dist/commands/liberica/issue/index.js.map +1 -0
- package/dist/commands/liberica/issue/submit.d.ts +3 -0
- package/dist/commands/liberica/issue/submit.d.ts.map +1 -0
- package/dist/commands/liberica/issue/submit.js +130 -0
- package/dist/commands/liberica/issue/submit.js.map +1 -0
- package/dist/commands/liberica/materials/create.d.ts.map +1 -1
- package/dist/commands/liberica/materials/create.js +131 -0
- package/dist/commands/liberica/materials/create.js.map +1 -1
- package/dist/commands/liberica/materials/list.d.ts.map +1 -1
- package/dist/commands/liberica/materials/list.js +46 -14
- package/dist/commands/liberica/materials/list.js.map +1 -1
- package/dist/commands/liberica/materials/update.d.ts.map +1 -1
- package/dist/commands/liberica/materials/update.js +129 -1
- package/dist/commands/liberica/materials/update.js.map +1 -1
- package/dist/core/api/client.d.ts +5 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +59 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/issue-report.d.ts +47 -0
- package/dist/types/issue-report.d.ts.map +1 -0
- package/dist/types/issue-report.js +2 -0
- package/dist/types/issue-report.js.map +1 -0
- package/dist/types/material.d.ts +135 -2
- package/dist/types/material.d.ts.map +1 -1
- package/package.json +63 -63
- package/dist/commands/arabica/enterprise/get.d.ts +0 -3
- package/dist/commands/arabica/enterprise/get.d.ts.map +0 -1
- package/dist/commands/arabica/enterprise/get.js +0 -94
- package/dist/commands/arabica/enterprise/get.js.map +0 -1
- package/dist/commands/arabica/enterprise/index.d.ts +0 -3
- package/dist/commands/arabica/enterprise/index.d.ts.map +0 -1
- package/dist/commands/arabica/enterprise/index.js +0 -18
- package/dist/commands/arabica/enterprise/index.js.map +0 -1
- package/dist/commands/arabica/enterprise/list.d.ts +0 -3
- package/dist/commands/arabica/enterprise/list.d.ts.map +0 -1
- package/dist/commands/arabica/enterprise/list.js +0 -71
- package/dist/commands/arabica/enterprise/list.js.map +0 -1
package/README.ja.md
CHANGED
|
@@ -1,340 +1,340 @@
|
|
|
1
|
-
# ☕ Barista CLI
|
|
2
|
-
|
|
3
|
-
> **AIアシスタントに生産管理システムを操作させる** — AIツール(Claude Code、OpenCode、OpenClaw)と企業向けSaaSを連携
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
6
|
-
[](LICENSE)
|
|
7
|
-
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
8
|
-
[](https://nodejs.org/)
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## ⚡ クイックスタート
|
|
13
|
-
|
|
14
|
-
### 1. インストール
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
npm install -g @newpeak/barista-cli
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### 2. 認証
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# AIはユーザーの代わりに操作するために認証情報が必要です
|
|
24
|
-
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
25
|
-
|
|
26
|
-
# インタラクティブログイン(不足情報の入力を促す)
|
|
27
|
-
barista liberica auth login
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### 3. AI統合
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
// Claude Code / OpenCode / OpenClaw 内:
|
|
34
|
-
const orders = await $`barista liberica orders list --env prod-cn --tenant your-tenant --json`
|
|
35
|
-
const { success, data } = JSON.parse(orders.stdout)
|
|
36
|
-
|
|
37
|
-
// AIがデータを解析して操作
|
|
38
|
-
if (data.items.length > 0) {
|
|
39
|
-
console.log(`Found ${data.pagination.total} orders`)
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**[AI統合の例を見る →](#ai-integration)**
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 🤖 AI統合
|
|
48
|
-
|
|
49
|
-
Barista CLIはAIコーディングアシスタント向けに設計されています。すべての出力は構造化され、すべてのエラーは対処可能です。
|
|
50
|
-
|
|
51
|
-
### 対応AIツール
|
|
52
|
-
|
|
53
|
-
| AIツール | 連携方法 | ステータス |
|
|
54
|
-
|---------|---------|-----------|
|
|
55
|
-
| **Claude Code** | `$` バッククォート + `--json` | ✅ 検証済み |
|
|
56
|
-
| **OpenCode** | シェルコマンド + JSON解析 | ✅ 検証済み |
|
|
57
|
-
| **OpenClaw** | シェルコマンド + JSON解析 | ✅ 検証済み |
|
|
58
|
-
| **Cursor** | ターミナル連携 | ✅ 対応 |
|
|
59
|
-
| **Continue** | CLIサブプロセス | ✅ 対応 |
|
|
60
|
-
|
|
61
|
-
### 連携パターン
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
// 1. JSON出力でコマンド実行
|
|
65
|
-
const result = await $`barista liberica orders list \
|
|
66
|
-
--env prod-cn \
|
|
67
|
-
--tenant your-tenant \
|
|
68
|
-
--status pending \
|
|
69
|
-
--json \
|
|
70
|
-
--page 1 \
|
|
71
|
-
--size 50`
|
|
72
|
-
|
|
73
|
-
// 2. 構造化レスポンスを解析
|
|
74
|
-
const { success, data, meta } = JSON.parse(result.stdout)
|
|
75
|
-
|
|
76
|
-
if (!success) {
|
|
77
|
-
throw new Error(`API Error: ${meta.code || meta.error?.code} - ${meta.message || meta.error?.message}`)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// 3. データを処理
|
|
81
|
-
const pendingOrders = data.items
|
|
82
|
-
console.log(`Found ${data.pagination.total} pending orders`)
|
|
83
|
-
|
|
84
|
-
// 4. 安全に変更を実行
|
|
85
|
-
for (const order of pendingOrders) {
|
|
86
|
-
// 常にまずドライラン(AI安全確保)
|
|
87
|
-
const preview = await $`barista liberica orders cancel ${order.id} --dry-run`
|
|
88
|
-
|
|
89
|
-
// プレビューを解析、検証、--forceで実行
|
|
90
|
-
// ...
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### レスポンスエンベロープ
|
|
95
|
-
|
|
96
|
-
すべてのJSONレスポンスは以下の構造に従います:
|
|
97
|
-
|
|
98
|
-
```json
|
|
99
|
-
{
|
|
100
|
-
"success": true,
|
|
101
|
-
"data": {
|
|
102
|
-
"items": [...],
|
|
103
|
-
"pagination": { "page": 1, "size": 20, "total": 150 }
|
|
104
|
-
},
|
|
105
|
-
"meta": {
|
|
106
|
-
"requestId": "req-abc123",
|
|
107
|
-
"timestamp": "2024-01-15T10:30:00Z",
|
|
108
|
-
"environment": "prod-cn",
|
|
109
|
-
"tenant": "your-tenant"
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
**エラー形式:**
|
|
115
|
-
|
|
116
|
-
```json
|
|
117
|
-
{
|
|
118
|
-
"success": false,
|
|
119
|
-
"error": {
|
|
120
|
-
"code": "A150001",
|
|
121
|
-
"message": "Order not found"
|
|
122
|
-
},
|
|
123
|
-
"meta": {
|
|
124
|
-
"requestId": "req-xyz789",
|
|
125
|
-
"timestamp": "2024-01-15T10:30:00Z"
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Claude Code用スキル
|
|
131
|
-
|
|
132
|
-
再利用者スキルファイルをインストール:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
# スキルは ~/.barista/claude/skills/ に配置
|
|
136
|
-
barista skills install
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**利用可能なスキル:**
|
|
140
|
-
- `orders.md` — 注文管理ワークフロー
|
|
141
|
-
- `products.md` — 商品検索と同期
|
|
142
|
-
- `warehouses.md` — 在庫操作
|
|
143
|
-
- `subscriptions.md` — Arabicaサブスクリプション管理
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 🚀 機能
|
|
148
|
-
|
|
149
|
-
### AIファースト設計
|
|
150
|
-
|
|
151
|
-
| 機能 | 説明 |
|
|
152
|
-
|-----|------|
|
|
153
|
-
| 🤖 **JSONファースト出力** | すべてのコマンドがAI解析用に`--json`をサポート |
|
|
154
|
-
| 📦 **構造化レスポンス** | 一貫した`{success, data, meta}`エンベロープ |
|
|
155
|
-
| 🔄 **冪等操作** | AIリトライループでも安全 |
|
|
156
|
-
| 🛡️ **デフォルトでドライラン** | 破壊的操作は実行前にプレビュー |
|
|
157
|
-
| 🔐 **セキュア保存** | 認証情報はenv変数ではなくシステムキーチェーンに保存 |
|
|
158
|
-
|
|
159
|
-
### 企業連携
|
|
160
|
-
|
|
161
|
-
| サービス | 機能 |
|
|
162
|
-
|---------|------|
|
|
163
|
-
| ☕ **Liberica** | 注文、商品、在庫、倉庫、生産計画 |
|
|
164
|
-
| 🛒 **Arabica** | サブスクリプションプラン、請求、請求書、企業管理 |
|
|
165
|
-
| 🔗 **クロスサービス** | 注文から見積、システム間同期 |
|
|
166
|
-
|
|
167
|
-
### 運用安全
|
|
168
|
-
|
|
169
|
-
- 📊 **監査証跡** — 操作ごとにリクエストIDでログ記録
|
|
170
|
-
- ⚠️ **確認保護** — `--dry-run` / `--force` で書き込み操作を保護
|
|
171
|
-
- 🏢 **マルチテナント隔離** — 認証情報はテナントごとに分離
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## 🔧 コマンドリファレンス
|
|
176
|
-
|
|
177
|
-
### コアパターン
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
barista <service> <resource> <action> [options]
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### グローバルオプション
|
|
184
|
-
|
|
185
|
-
| オプション | 説明 | デフォルト |
|
|
186
|
-
|-----------|------|----------|
|
|
187
|
-
| `--env` | 環境 (dev\|test\|prod-cn\|prod-jp) | `dev` |
|
|
188
|
-
| `--tenant` | テナント名 | - |
|
|
189
|
-
| `--json` | JSON出力 | `false` |
|
|
190
|
-
| `--dry-run` | プレビューモード(AI推奨) | `false` |
|
|
191
|
-
| `--force` | 確認スキップ | `false` |
|
|
192
|
-
| `--page` | ページ番号 | `1` |
|
|
193
|
-
| `--size` | ページサイズ(最大件数) | `20` |
|
|
194
|
-
|
|
195
|
-
### クイックリファレンス
|
|
196
|
-
|
|
197
|
-
| コマンド | 説明 |
|
|
198
|
-
|---------|------|
|
|
199
|
-
| `barista context show` | 現在のenv/テナントコンテキストを表示 |
|
|
200
|
-
| `barista context use-env <env>` | 環境を切り替え |
|
|
201
|
-
| `barista liberica orders list --json` | 注文一覧(AI形式) |
|
|
202
|
-
| `barista liberica orders get <id> --json` | 注文詳細取得 |
|
|
203
|
-
| `barista liberica orders create --dry-run ...` | 作成プレビュー |
|
|
204
|
-
| `barista liberica products search --keyword <kw> --json` | 商品検索 |
|
|
205
|
-
| `barista arabica plans list --json` | サブスクリプションプラン一覧 |
|
|
206
|
-
| `barista arabica invoices list --json` | 請求書一覧 |
|
|
207
|
-
|
|
208
|
-
**[→ 詳細コマンドリファレンス](./docs/commands/REFERENCE.md)**
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## 🛡️ AI安全ガイドライン
|
|
213
|
-
|
|
214
|
-
### 1. 常にまずドライランを実行
|
|
215
|
-
|
|
216
|
-
```typescript
|
|
217
|
-
// ❌ 間違い — 盲目的に実行
|
|
218
|
-
await $`barista liberica orders cancel 12345`
|
|
219
|
-
|
|
220
|
-
// ✅ 正しい — まずプレビュー
|
|
221
|
-
const preview = await $`barista liberica orders cancel 12345 --dry-run`
|
|
222
|
-
// プレビューを解析、検証してから:
|
|
223
|
-
await $`barista liberica orders cancel 12345 --force`
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### 2. 続行前に成功を確認
|
|
227
|
-
|
|
228
|
-
```typescript
|
|
229
|
-
const result = JSON.parse(stdout)
|
|
230
|
-
if (!result.success) {
|
|
231
|
-
// エラーを処理、続行しない
|
|
232
|
-
throw new Error(result.error?.message || result.meta?.message)
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### 3. デバッグにリクエストIDを使用
|
|
237
|
-
|
|
238
|
-
```typescript
|
|
239
|
-
const { meta } = JSON.parse(stdout)
|
|
240
|
-
console.log(`Request ID: ${meta.requestId}`)
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### 4. レート制限を遵守
|
|
244
|
-
|
|
245
|
-
- 一括操作間に遅延を追加
|
|
246
|
-
- 一括取得には`--size 100`を使用
|
|
247
|
-
- 適切な場面でレスポンスをキャッシュ
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
## ⚙️ 設定
|
|
252
|
-
|
|
253
|
-
### ファイル場所
|
|
254
|
-
|
|
255
|
-
`~/.barista/config.yaml`
|
|
256
|
-
|
|
257
|
-
### クイック設定
|
|
258
|
-
|
|
259
|
-
```yaml
|
|
260
|
-
defaults:
|
|
261
|
-
env: prod-cn
|
|
262
|
-
tenant: your-tenant
|
|
263
|
-
service: liberica
|
|
264
|
-
|
|
265
|
-
environments:
|
|
266
|
-
prod-cn:
|
|
267
|
-
liberica:
|
|
268
|
-
baseUrl: "https://{tenant}.newpeaksh.com"
|
|
269
|
-
timeout: 60000
|
|
270
|
-
arabica:
|
|
271
|
-
baseUrl: "https://www.newpeaksh.com"
|
|
272
|
-
timeout: 60000
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### 認証
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
# 認証情報ログイン(推奨)
|
|
279
|
-
barista liberica auth login <env> <tenant> <username> <password>
|
|
280
|
-
|
|
281
|
-
# 認証状態確認
|
|
282
|
-
barista auth status
|
|
283
|
-
|
|
284
|
-
# ログアウト
|
|
285
|
-
barista auth logout --service liberica --env prod-cn
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
---
|
|
289
|
-
|
|
290
|
-
## ❓ トラブルシューティング
|
|
291
|
-
|
|
292
|
-
### 認証失敗
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
# 現在の状態を確認
|
|
296
|
-
barista auth status
|
|
297
|
-
|
|
298
|
-
# 再認証
|
|
299
|
-
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
300
|
-
|
|
301
|
-
# コンテキスト確認
|
|
302
|
-
barista context show
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### APIエラー
|
|
306
|
-
|
|
307
|
-
```bash
|
|
308
|
-
# 常に--jsonでエラーコードを取得
|
|
309
|
-
barista liberica orders list --json
|
|
310
|
-
|
|
311
|
-
# エラーレスポンスにはデバッグ用のrequestIdが含まれる
|
|
312
|
-
# "requestId": "req-abc123"
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### タイムアウト
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
# より近い環境に切り替え
|
|
319
|
-
barista context use-env dev
|
|
320
|
-
|
|
321
|
-
# またはconfig.yamlでタイムアウトを調整
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
---
|
|
325
|
-
|
|
326
|
-
## 📚 関連プロジェクト
|
|
327
|
-
|
|
328
|
-
| プロジェクト | 説明 |
|
|
329
|
-
|------------|------|
|
|
330
|
-
| ☕ Liberica Backend | 生産管理SaaSバックエンド |
|
|
331
|
-
| 🖥️ Liberica Frontend | 生産管理Web UI |
|
|
332
|
-
| 📱 Liberica Mobile | 生産管理モバイルアプリ |
|
|
333
|
-
| 🛒 Arabica Backend | オンラインサブスクリプションSaaSバックエンド |
|
|
334
|
-
| 🌐 Arabica Frontend | オンラインサブスクリプションWeb UI |
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
## 📄 ライセンス
|
|
339
|
-
|
|
340
|
-
[MIT](LICENSE) © Newpeak Technology
|
|
1
|
+
# ☕ Barista CLI
|
|
2
|
+
|
|
3
|
+
> **AIアシスタントに生産管理システムを操作させる** — AIツール(Claude Code、OpenCode、OpenClaw)と企業向けSaaSを連携
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
8
|
+
[](https://nodejs.org/)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## ⚡ クイックスタート
|
|
13
|
+
|
|
14
|
+
### 1. インストール
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g @newpeak/barista-cli
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 2. 認証
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# AIはユーザーの代わりに操作するために認証情報が必要です
|
|
24
|
+
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
25
|
+
|
|
26
|
+
# インタラクティブログイン(不足情報の入力を促す)
|
|
27
|
+
barista liberica auth login
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 3. AI統合
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
// Claude Code / OpenCode / OpenClaw 内:
|
|
34
|
+
const orders = await $`barista liberica orders list --env prod-cn --tenant your-tenant --json`
|
|
35
|
+
const { success, data } = JSON.parse(orders.stdout)
|
|
36
|
+
|
|
37
|
+
// AIがデータを解析して操作
|
|
38
|
+
if (data.items.length > 0) {
|
|
39
|
+
console.log(`Found ${data.pagination.total} orders`)
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**[AI統合の例を見る →](#ai-integration)**
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 🤖 AI統合
|
|
48
|
+
|
|
49
|
+
Barista CLIはAIコーディングアシスタント向けに設計されています。すべての出力は構造化され、すべてのエラーは対処可能です。
|
|
50
|
+
|
|
51
|
+
### 対応AIツール
|
|
52
|
+
|
|
53
|
+
| AIツール | 連携方法 | ステータス |
|
|
54
|
+
|---------|---------|-----------|
|
|
55
|
+
| **Claude Code** | `$` バッククォート + `--json` | ✅ 検証済み |
|
|
56
|
+
| **OpenCode** | シェルコマンド + JSON解析 | ✅ 検証済み |
|
|
57
|
+
| **OpenClaw** | シェルコマンド + JSON解析 | ✅ 検証済み |
|
|
58
|
+
| **Cursor** | ターミナル連携 | ✅ 対応 |
|
|
59
|
+
| **Continue** | CLIサブプロセス | ✅ 対応 |
|
|
60
|
+
|
|
61
|
+
### 連携パターン
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
// 1. JSON出力でコマンド実行
|
|
65
|
+
const result = await $`barista liberica orders list \
|
|
66
|
+
--env prod-cn \
|
|
67
|
+
--tenant your-tenant \
|
|
68
|
+
--status pending \
|
|
69
|
+
--json \
|
|
70
|
+
--page 1 \
|
|
71
|
+
--size 50`
|
|
72
|
+
|
|
73
|
+
// 2. 構造化レスポンスを解析
|
|
74
|
+
const { success, data, meta } = JSON.parse(result.stdout)
|
|
75
|
+
|
|
76
|
+
if (!success) {
|
|
77
|
+
throw new Error(`API Error: ${meta.code || meta.error?.code} - ${meta.message || meta.error?.message}`)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 3. データを処理
|
|
81
|
+
const pendingOrders = data.items
|
|
82
|
+
console.log(`Found ${data.pagination.total} pending orders`)
|
|
83
|
+
|
|
84
|
+
// 4. 安全に変更を実行
|
|
85
|
+
for (const order of pendingOrders) {
|
|
86
|
+
// 常にまずドライラン(AI安全確保)
|
|
87
|
+
const preview = await $`barista liberica orders cancel ${order.id} --dry-run`
|
|
88
|
+
|
|
89
|
+
// プレビューを解析、検証、--forceで実行
|
|
90
|
+
// ...
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### レスポンスエンベロープ
|
|
95
|
+
|
|
96
|
+
すべてのJSONレスポンスは以下の構造に従います:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"success": true,
|
|
101
|
+
"data": {
|
|
102
|
+
"items": [...],
|
|
103
|
+
"pagination": { "page": 1, "size": 20, "total": 150 }
|
|
104
|
+
},
|
|
105
|
+
"meta": {
|
|
106
|
+
"requestId": "req-abc123",
|
|
107
|
+
"timestamp": "2024-01-15T10:30:00Z",
|
|
108
|
+
"environment": "prod-cn",
|
|
109
|
+
"tenant": "your-tenant"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**エラー形式:**
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"success": false,
|
|
119
|
+
"error": {
|
|
120
|
+
"code": "A150001",
|
|
121
|
+
"message": "Order not found"
|
|
122
|
+
},
|
|
123
|
+
"meta": {
|
|
124
|
+
"requestId": "req-xyz789",
|
|
125
|
+
"timestamp": "2024-01-15T10:30:00Z"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Claude Code用スキル
|
|
131
|
+
|
|
132
|
+
再利用者スキルファイルをインストール:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# スキルは ~/.barista/claude/skills/ に配置
|
|
136
|
+
barista skills install
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**利用可能なスキル:**
|
|
140
|
+
- `orders.md` — 注文管理ワークフロー
|
|
141
|
+
- `products.md` — 商品検索と同期
|
|
142
|
+
- `warehouses.md` — 在庫操作
|
|
143
|
+
- `subscriptions.md` — Arabicaサブスクリプション管理
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 🚀 機能
|
|
148
|
+
|
|
149
|
+
### AIファースト設計
|
|
150
|
+
|
|
151
|
+
| 機能 | 説明 |
|
|
152
|
+
|-----|------|
|
|
153
|
+
| 🤖 **JSONファースト出力** | すべてのコマンドがAI解析用に`--json`をサポート |
|
|
154
|
+
| 📦 **構造化レスポンス** | 一貫した`{success, data, meta}`エンベロープ |
|
|
155
|
+
| 🔄 **冪等操作** | AIリトライループでも安全 |
|
|
156
|
+
| 🛡️ **デフォルトでドライラン** | 破壊的操作は実行前にプレビュー |
|
|
157
|
+
| 🔐 **セキュア保存** | 認証情報はenv変数ではなくシステムキーチェーンに保存 |
|
|
158
|
+
|
|
159
|
+
### 企業連携
|
|
160
|
+
|
|
161
|
+
| サービス | 機能 |
|
|
162
|
+
|---------|------|
|
|
163
|
+
| ☕ **Liberica** | 注文、商品、在庫、倉庫、生産計画 |
|
|
164
|
+
| 🛒 **Arabica** | サブスクリプションプラン、請求、請求書、企業管理 |
|
|
165
|
+
| 🔗 **クロスサービス** | 注文から見積、システム間同期 |
|
|
166
|
+
|
|
167
|
+
### 運用安全
|
|
168
|
+
|
|
169
|
+
- 📊 **監査証跡** — 操作ごとにリクエストIDでログ記録
|
|
170
|
+
- ⚠️ **確認保護** — `--dry-run` / `--force` で書き込み操作を保護
|
|
171
|
+
- 🏢 **マルチテナント隔離** — 認証情報はテナントごとに分離
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 🔧 コマンドリファレンス
|
|
176
|
+
|
|
177
|
+
### コアパターン
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
barista <service> <resource> <action> [options]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### グローバルオプション
|
|
184
|
+
|
|
185
|
+
| オプション | 説明 | デフォルト |
|
|
186
|
+
|-----------|------|----------|
|
|
187
|
+
| `--env` | 環境 (dev\|test\|prod-cn\|prod-jp) | `dev` |
|
|
188
|
+
| `--tenant` | テナント名 | - |
|
|
189
|
+
| `--json` | JSON出力 | `false` |
|
|
190
|
+
| `--dry-run` | プレビューモード(AI推奨) | `false` |
|
|
191
|
+
| `--force` | 確認スキップ | `false` |
|
|
192
|
+
| `--page` | ページ番号 | `1` |
|
|
193
|
+
| `--size` | ページサイズ(最大件数) | `20` |
|
|
194
|
+
|
|
195
|
+
### クイックリファレンス
|
|
196
|
+
|
|
197
|
+
| コマンド | 説明 |
|
|
198
|
+
|---------|------|
|
|
199
|
+
| `barista context show` | 現在のenv/テナントコンテキストを表示 |
|
|
200
|
+
| `barista context use-env <env>` | 環境を切り替え |
|
|
201
|
+
| `barista liberica orders list --json` | 注文一覧(AI形式) |
|
|
202
|
+
| `barista liberica orders get <id> --json` | 注文詳細取得 |
|
|
203
|
+
| `barista liberica orders create --dry-run ...` | 作成プレビュー |
|
|
204
|
+
| `barista liberica products search --keyword <kw> --json` | 商品検索 |
|
|
205
|
+
| `barista arabica plans list --json` | サブスクリプションプラン一覧 |
|
|
206
|
+
| `barista arabica invoices list --json` | 請求書一覧 |
|
|
207
|
+
|
|
208
|
+
**[→ 詳細コマンドリファレンス](./docs/commands/REFERENCE.md)**
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 🛡️ AI安全ガイドライン
|
|
213
|
+
|
|
214
|
+
### 1. 常にまずドライランを実行
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
// ❌ 間違い — 盲目的に実行
|
|
218
|
+
await $`barista liberica orders cancel 12345`
|
|
219
|
+
|
|
220
|
+
// ✅ 正しい — まずプレビュー
|
|
221
|
+
const preview = await $`barista liberica orders cancel 12345 --dry-run`
|
|
222
|
+
// プレビューを解析、検証してから:
|
|
223
|
+
await $`barista liberica orders cancel 12345 --force`
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 2. 続行前に成功を確認
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
const result = JSON.parse(stdout)
|
|
230
|
+
if (!result.success) {
|
|
231
|
+
// エラーを処理、続行しない
|
|
232
|
+
throw new Error(result.error?.message || result.meta?.message)
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### 3. デバッグにリクエストIDを使用
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
const { meta } = JSON.parse(stdout)
|
|
240
|
+
console.log(`Request ID: ${meta.requestId}`)
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 4. レート制限を遵守
|
|
244
|
+
|
|
245
|
+
- 一括操作間に遅延を追加
|
|
246
|
+
- 一括取得には`--size 100`を使用
|
|
247
|
+
- 適切な場面でレスポンスをキャッシュ
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## ⚙️ 設定
|
|
252
|
+
|
|
253
|
+
### ファイル場所
|
|
254
|
+
|
|
255
|
+
`~/.barista/config.yaml`
|
|
256
|
+
|
|
257
|
+
### クイック設定
|
|
258
|
+
|
|
259
|
+
```yaml
|
|
260
|
+
defaults:
|
|
261
|
+
env: prod-cn
|
|
262
|
+
tenant: your-tenant
|
|
263
|
+
service: liberica
|
|
264
|
+
|
|
265
|
+
environments:
|
|
266
|
+
prod-cn:
|
|
267
|
+
liberica:
|
|
268
|
+
baseUrl: "https://{tenant}.newpeaksh.com"
|
|
269
|
+
timeout: 60000
|
|
270
|
+
arabica:
|
|
271
|
+
baseUrl: "https://www.newpeaksh.com"
|
|
272
|
+
timeout: 60000
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 認証
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# 認証情報ログイン(推奨)
|
|
279
|
+
barista liberica auth login <env> <tenant> <username> <password>
|
|
280
|
+
|
|
281
|
+
# 認証状態確認
|
|
282
|
+
barista auth status
|
|
283
|
+
|
|
284
|
+
# ログアウト
|
|
285
|
+
barista auth logout --service liberica --env prod-cn
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## ❓ トラブルシューティング
|
|
291
|
+
|
|
292
|
+
### 認証失敗
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# 現在の状態を確認
|
|
296
|
+
barista auth status
|
|
297
|
+
|
|
298
|
+
# 再認証
|
|
299
|
+
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
300
|
+
|
|
301
|
+
# コンテキスト確認
|
|
302
|
+
barista context show
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### APIエラー
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# 常に--jsonでエラーコードを取得
|
|
309
|
+
barista liberica orders list --json
|
|
310
|
+
|
|
311
|
+
# エラーレスポンスにはデバッグ用のrequestIdが含まれる
|
|
312
|
+
# "requestId": "req-abc123"
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### タイムアウト
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# より近い環境に切り替え
|
|
319
|
+
barista context use-env dev
|
|
320
|
+
|
|
321
|
+
# またはconfig.yamlでタイムアウトを調整
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 📚 関連プロジェクト
|
|
327
|
+
|
|
328
|
+
| プロジェクト | 説明 |
|
|
329
|
+
|------------|------|
|
|
330
|
+
| ☕ Liberica Backend | 生産管理SaaSバックエンド |
|
|
331
|
+
| 🖥️ Liberica Frontend | 生産管理Web UI |
|
|
332
|
+
| 📱 Liberica Mobile | 生産管理モバイルアプリ |
|
|
333
|
+
| 🛒 Arabica Backend | オンラインサブスクリプションSaaSバックエンド |
|
|
334
|
+
| 🌐 Arabica Frontend | オンラインサブスクリプションWeb UI |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 📄 ライセンス
|
|
339
|
+
|
|
340
|
+
[MIT](LICENSE) © Newpeak Technology
|