@newpeak/barista-cli 0.1.14 → 0.1.16
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.ja.md +211 -579
- package/README.md +208 -643
- package/README.vi.md +212 -586
- package/README.zh.md +340 -0
- package/dist/commands/arabica/access/index.d.ts +3 -0
- package/dist/commands/arabica/access/index.d.ts.map +1 -0
- package/dist/commands/arabica/access/index.js +15 -0
- package/dist/commands/arabica/access/index.js.map +1 -0
- package/dist/commands/arabica/access/url.d.ts +3 -0
- package/dist/commands/arabica/access/url.d.ts.map +1 -0
- package/dist/commands/arabica/access/url.js +101 -0
- package/dist/commands/arabica/access/url.js.map +1 -0
- package/dist/commands/arabica/auth/index.d.ts.map +1 -1
- package/dist/commands/arabica/auth/index.js +24 -5
- package/dist/commands/arabica/auth/index.js.map +1 -1
- package/dist/commands/arabica/enterprise/get.d.ts +3 -0
- package/dist/commands/arabica/enterprise/get.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/get.js +94 -0
- package/dist/commands/arabica/enterprise/get.js.map +1 -0
- package/dist/commands/arabica/enterprise/index.d.ts +3 -0
- package/dist/commands/arabica/enterprise/index.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/index.js +18 -0
- package/dist/commands/arabica/enterprise/index.js.map +1 -0
- package/dist/commands/arabica/enterprise/list.d.ts +3 -0
- package/dist/commands/arabica/enterprise/list.d.ts.map +1 -0
- package/dist/commands/arabica/enterprise/list.js +71 -0
- package/dist/commands/arabica/enterprise/list.js.map +1 -0
- package/dist/commands/arabica/enterprises/delete.d.ts +3 -0
- package/dist/commands/arabica/enterprises/delete.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/delete.js +89 -0
- package/dist/commands/arabica/enterprises/delete.js.map +1 -0
- package/dist/commands/arabica/enterprises/get.d.ts +3 -0
- package/dist/commands/arabica/enterprises/get.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/get.js +103 -0
- package/dist/commands/arabica/enterprises/get.js.map +1 -0
- package/dist/commands/arabica/enterprises/index.d.ts +3 -0
- package/dist/commands/arabica/enterprises/index.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/index.js +27 -0
- package/dist/commands/arabica/enterprises/index.js.map +1 -0
- package/dist/commands/arabica/enterprises/list.d.ts +3 -0
- package/dist/commands/arabica/enterprises/list.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/list.js +84 -0
- package/dist/commands/arabica/enterprises/list.js.map +1 -0
- package/dist/commands/arabica/enterprises/register.d.ts +3 -0
- package/dist/commands/arabica/enterprises/register.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/register.js +175 -0
- package/dist/commands/arabica/enterprises/register.js.map +1 -0
- package/dist/commands/arabica/enterprises/update.d.ts +3 -0
- package/dist/commands/arabica/enterprises/update.d.ts.map +1 -0
- package/dist/commands/arabica/enterprises/update.js +130 -0
- package/dist/commands/arabica/enterprises/update.js.map +1 -0
- package/dist/commands/arabica/index.d.ts.map +1 -1
- package/dist/commands/arabica/index.js +17 -4
- package/dist/commands/arabica/index.js.map +1 -1
- package/dist/commands/arabica/invoices/download.d.ts +3 -0
- package/dist/commands/arabica/invoices/download.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/download.js +55 -0
- package/dist/commands/arabica/invoices/download.js.map +1 -0
- package/dist/commands/arabica/invoices/get.d.ts +3 -0
- package/dist/commands/arabica/invoices/get.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/get.js +53 -0
- package/dist/commands/arabica/invoices/get.js.map +1 -0
- package/dist/commands/arabica/invoices/index.d.ts +3 -0
- package/dist/commands/arabica/invoices/index.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/index.js +21 -0
- package/dist/commands/arabica/invoices/index.js.map +1 -0
- package/dist/commands/arabica/invoices/list.d.ts +3 -0
- package/dist/commands/arabica/invoices/list.d.ts.map +1 -0
- package/dist/commands/arabica/invoices/list.js +75 -0
- package/dist/commands/arabica/invoices/list.js.map +1 -0
- package/dist/commands/arabica/orders/cancel.d.ts +3 -0
- package/dist/commands/arabica/orders/cancel.d.ts.map +1 -0
- package/dist/commands/arabica/orders/cancel.js +133 -0
- package/dist/commands/arabica/orders/cancel.js.map +1 -0
- package/dist/commands/arabica/orders/get.d.ts +3 -0
- package/dist/commands/arabica/orders/get.d.ts.map +1 -0
- package/dist/commands/arabica/orders/get.js +145 -0
- package/dist/commands/arabica/orders/get.js.map +1 -0
- package/dist/commands/arabica/orders/index.d.ts +3 -0
- package/dist/commands/arabica/orders/index.d.ts.map +1 -0
- package/dist/commands/arabica/orders/index.js +24 -0
- package/dist/commands/arabica/orders/index.js.map +1 -0
- package/dist/commands/arabica/orders/list.d.ts +3 -0
- package/dist/commands/arabica/orders/list.d.ts.map +1 -0
- package/dist/commands/arabica/orders/list.js +111 -0
- package/dist/commands/arabica/orders/list.js.map +1 -0
- package/dist/commands/arabica/orders/submit.d.ts +3 -0
- package/dist/commands/arabica/orders/submit.d.ts.map +1 -0
- package/dist/commands/arabica/orders/submit.js +221 -0
- package/dist/commands/arabica/orders/submit.js.map +1 -0
- package/dist/commands/arabica/plans/compare.d.ts +3 -0
- package/dist/commands/arabica/plans/compare.d.ts.map +1 -0
- package/dist/commands/arabica/plans/compare.js +115 -0
- package/dist/commands/arabica/plans/compare.js.map +1 -0
- package/dist/commands/arabica/plans/get.d.ts +3 -0
- package/dist/commands/arabica/plans/get.d.ts.map +1 -0
- package/dist/commands/arabica/plans/get.js +94 -0
- package/dist/commands/arabica/plans/get.js.map +1 -0
- package/dist/commands/arabica/plans/index.d.ts +3 -0
- package/dist/commands/arabica/plans/index.d.ts.map +1 -0
- package/dist/commands/arabica/plans/index.js +21 -0
- package/dist/commands/arabica/plans/index.js.map +1 -0
- package/dist/commands/arabica/plans/list.d.ts +3 -0
- package/dist/commands/arabica/plans/list.d.ts.map +1 -0
- package/dist/commands/arabica/plans/list.js +69 -0
- package/dist/commands/arabica/plans/list.js.map +1 -0
- package/dist/commands/arabica/subscription/current.d.ts +3 -0
- package/dist/commands/arabica/subscription/current.d.ts.map +1 -0
- package/dist/commands/arabica/subscription/current.js +76 -0
- package/dist/commands/arabica/subscription/current.js.map +1 -0
- package/dist/commands/arabica/subscription/index.d.ts +3 -0
- package/dist/commands/arabica/subscription/index.d.ts.map +1 -0
- package/dist/commands/arabica/subscription/index.js +15 -0
- package/dist/commands/arabica/subscription/index.js.map +1 -0
- package/dist/commands/liberica/orgs/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/orgs/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/batch-delete.js +109 -0
- package/dist/commands/liberica/orgs/batch-delete.js.map +1 -0
- package/dist/commands/liberica/orgs/create.d.ts +3 -0
- package/dist/commands/liberica/orgs/create.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/create.js +131 -0
- package/dist/commands/liberica/orgs/create.js.map +1 -0
- package/dist/commands/liberica/orgs/disable.d.ts +3 -0
- package/dist/commands/liberica/orgs/disable.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/disable.js +98 -0
- package/dist/commands/liberica/orgs/disable.js.map +1 -0
- package/dist/commands/liberica/orgs/enable.d.ts +3 -0
- package/dist/commands/liberica/orgs/enable.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/enable.js +98 -0
- package/dist/commands/liberica/orgs/enable.js.map +1 -0
- package/dist/commands/liberica/orgs/get.d.ts +3 -0
- package/dist/commands/liberica/orgs/get.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/get.js +79 -0
- package/dist/commands/liberica/orgs/get.js.map +1 -0
- package/dist/commands/liberica/orgs/index.d.ts.map +1 -1
- package/dist/commands/liberica/orgs/index.js +15 -21
- package/dist/commands/liberica/orgs/index.js.map +1 -1
- package/dist/commands/liberica/orgs/list.d.ts +3 -0
- package/dist/commands/liberica/orgs/list.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/list.js +51 -0
- package/dist/commands/liberica/orgs/list.js.map +1 -0
- package/dist/commands/liberica/orgs/update.d.ts +3 -0
- package/dist/commands/liberica/orgs/update.d.ts.map +1 -0
- package/dist/commands/liberica/orgs/update.js +136 -0
- package/dist/commands/liberica/orgs/update.js.map +1 -0
- package/dist/core/api/client.d.ts +78 -1
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +832 -76
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/enterprise.d.ts +60 -0
- package/dist/types/enterprise.d.ts.map +1 -0
- package/dist/types/enterprise.js +5 -0
- package/dist/types/enterprise.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/invoice.d.ts +39 -0
- package/dist/types/invoice.d.ts.map +1 -0
- package/dist/types/invoice.js +5 -0
- package/dist/types/invoice.js.map +1 -0
- package/dist/types/member-product.d.ts +53 -0
- package/dist/types/member-product.d.ts.map +1 -0
- package/dist/types/member-product.js +2 -0
- package/dist/types/member-product.js.map +1 -0
- package/dist/types/order.d.ts +108 -0
- package/dist/types/order.d.ts.map +1 -0
- package/dist/types/order.js +5 -0
- package/dist/types/order.js.map +1 -0
- package/dist/types/org.d.ts +38 -0
- package/dist/types/org.d.ts.map +1 -1
- package/dist/types/subscription.d.ts +35 -0
- package/dist/types/subscription.d.ts.map +1 -0
- package/dist/types/subscription.js +5 -0
- package/dist/types/subscription.js.map +1 -0
- package/package.json +1 -1
- package/README.en.md +0 -714
package/README.vi.md
CHANGED
|
@@ -1,455 +1,268 @@
|
|
|
1
1
|
# ☕ Barista CLI
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<a href="./README.md"><img src="https://img.shields.io/badge/-简体中文-green?style=flat-square" alt="简体中文"></a>
|
|
5
|
-
<a href="./README.en.md"><img src="https://img.shields.io/badge/-English-blue?style=flat-square" alt="English"></a>
|
|
6
|
-
<a href="./README.ja.md"><img src="https://img.shields.io/badge/-日本語-red?style=flat-square" alt="日本語"></a>
|
|
7
|
-
<a href="./README.vi.md"><img src="https://img.shields.io/badge/-Tiếng%20Việt-green?style=flat-square" alt="Tiếng Việt"></a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
<p align="center">
|
|
11
|
-
<img src="https://img.shields.io/badge/AI--Native-CLI-blue?style=flat-square" alt="AI-Native">
|
|
12
|
-
<img src="https://img.shields.io/badge/Liberica-Production%20SaaS-green?style=flat-square" alt="Liberica">
|
|
13
|
-
<img src="https://img.shields.io/badge/Arabica-Sales%20Platform-orange?style=flat-square" alt="Arabica">
|
|
14
|
-
<img src="https://img.shields.io/badge/Node.js-18%2B-brightgreen?style=flat-square" alt="Node.js 18+">
|
|
15
|
-
</p>
|
|
16
|
-
|
|
17
|
-
<p align="center">
|
|
18
|
-
<strong>Công cụ CLI AI-Native</strong> - Kết nối liền mạch giữa Liberica SaaS Quản lý Sản xuất và Nền tảng Bán hàng Arabica
|
|
19
|
-
</p>
|
|
3
|
+
> **Để AI assistants điều khiển hệ thống quản lý sản xuất** — Kết nối AI tools (Claude Code, OpenCode, OpenClaw) với SaaS doanh nghiệp
|
|
20
4
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- [Giới thiệu Dự án](#giới-thiệu-dự-án)
|
|
26
|
-
- [Bắt đầu Nhanh](#bắt-đầu-nhanh)
|
|
27
|
-
- [Thiết kế Kiến trúc](#thiết-kế-kiến-trúc)
|
|
28
|
-
- [Tài liệu Lệnh](#tài-liệu-lệnh)
|
|
29
|
-
- [Tính năng Nâng cao](#tính-năng-nâng-cao)
|
|
30
|
-
- [Cấu hình](#cấu-hình)
|
|
31
|
-
- [Tích hợp AI](#tích-hợp-ai)
|
|
32
|
-
- [Hướng dẫn Phát triển](#hướng-dẫn-phát-triển)
|
|
33
|
-
- [Hướng dẫn Đóng góp](#hướng-dẫn-đóng-góp)
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Giới thiệu Dự án
|
|
38
|
-
|
|
39
|
-
Barista CLI là công cụ dòng lệnh AI-Native được thiết kế đặc biệt cho hệ sinh thái Newpeak. Nó cung cấp giao diện thống nhất để quản lý Liberica SaaS Quản lý Sản xuất và Nền tảng Bán hàng Arabica.
|
|
40
|
-
|
|
41
|
-
### Tính năng Cốt lõi
|
|
42
|
-
|
|
43
|
-
| Tính năng | Mô tả |
|
|
44
|
-
|-----------|-------|
|
|
45
|
-
| 🌍 **Hỗ trợ Đa Môi trường** | Chuyển đổi liền mạch giữa 4 môi trường dev, test, prod-cn, và prod-jp |
|
|
46
|
-
| 🏢 **Kiến trúc Đa Ngưới thuê** | Hỗ trợ cấu hình và cách ly môi trường đa ngưới thuê |
|
|
47
|
-
| 🔐 **Xác thực Token** | Lưu trữ an toàn trong chuỗi khóa hệ thống, cách ly môi trường |
|
|
48
|
-
| 🧪 **Chế độ Dry-Run** | Tất cả thao tác ghi đều hỗ trợ xem trước để tránh lỗi |
|
|
49
|
-
| 🤖 **Tích hợp AI** | Định dạng đầu ra JSON được tối ưu hóa cho Claude Code |
|
|
50
|
-
| 🔄 **Thao tác Liên dịch vụ** | Đồng bộ dữ liệu giữa Liberica và Arabica |
|
|
51
|
-
|
|
52
|
-
### Các trường hợp Sử dụng
|
|
53
|
-
|
|
54
|
-
- **Quản lý Kế hoạch Sản xuất**: Tạo, truy vấn và hủy đơn hàng sản xuất
|
|
55
|
-
- **Quản lý Dữ liệu Sản phẩm**: Tìm kiếm sản phẩm đa nền tảng, đồng bộ thông tin
|
|
56
|
-
- **Thao tác Khách hàng**: Truy vấn thông tin khách hàng và tạo báo giá
|
|
57
|
-
- **Tự động hóa AI**: Tự động hóa quy trình kinh doanh thông qua Claude Code
|
|
5
|
+
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://www.npmjs.com/package/@newpeak/barista-cli)
|
|
8
|
+
[](https://nodejs.org/)
|
|
58
9
|
|
|
59
10
|
---
|
|
60
11
|
|
|
61
|
-
##
|
|
12
|
+
## ⚡ Khởi Đầu Nhanh
|
|
62
13
|
|
|
63
|
-
### Cài
|
|
14
|
+
### 1. Cài Đặt
|
|
64
15
|
|
|
65
16
|
```bash
|
|
66
|
-
# Cài đặt qua npm
|
|
67
17
|
npm install -g @newpeak/barista-cli
|
|
68
|
-
|
|
69
|
-
# Hoặc qua yarn
|
|
70
|
-
yarn global add @newpeak/barista-cli
|
|
71
|
-
|
|
72
|
-
# Xác minh cài đặt
|
|
73
|
-
barista --version
|
|
74
18
|
```
|
|
75
19
|
|
|
76
|
-
###
|
|
20
|
+
### 2. Xác Thực
|
|
77
21
|
|
|
78
22
|
```bash
|
|
79
|
-
#
|
|
80
|
-
barista
|
|
81
|
-
|
|
82
|
-
# 2. Cấu hình môi trường (chọn môi trường mặc định)
|
|
83
|
-
barista context use-env dev
|
|
23
|
+
# AI cần credentials để hoạt động thay mặt người dùng
|
|
24
|
+
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
84
25
|
|
|
85
|
-
#
|
|
86
|
-
barista
|
|
87
|
-
|
|
88
|
-
# 4. Đăng nhập để lấy Token
|
|
89
|
-
barista auth login --service liberica --env dev
|
|
90
|
-
|
|
91
|
-
# 5. Xác minh trạng thái đăng nhập
|
|
92
|
-
barista auth status
|
|
26
|
+
# Đăng nhập tương tác (nhắc nhập thông tin còn thiếu)
|
|
27
|
+
barista liberica auth login
|
|
93
28
|
```
|
|
94
29
|
|
|
95
|
-
###
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Xem ngữ cảnh hiện tại
|
|
99
|
-
barista context show
|
|
100
|
-
|
|
101
|
-
# Liệt kê tất cả đơn hàng (Liberica)
|
|
102
|
-
barista liberica orders list
|
|
103
|
-
|
|
104
|
-
# Tìm kiếm sản phẩm (hỗ trợ tìm kiếm mờ)
|
|
105
|
-
barista liberica products search --keyword "máy cà phê"
|
|
30
|
+
### 3. Tích Hợp AI
|
|
106
31
|
|
|
107
|
-
|
|
108
|
-
|
|
32
|
+
```typescript
|
|
33
|
+
// Trong 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)
|
|
109
36
|
|
|
110
|
-
|
|
111
|
-
|
|
37
|
+
// AI phân tích và xử lý dữ liệu
|
|
38
|
+
if (data.items.length > 0) {
|
|
39
|
+
console.log(`Found ${data.pagination.total} orders`)
|
|
40
|
+
}
|
|
112
41
|
```
|
|
113
42
|
|
|
43
|
+
**[Xem ví dụ tích hợp AI →](#ai-integration)**
|
|
44
|
+
|
|
114
45
|
---
|
|
115
46
|
|
|
116
|
-
##
|
|
47
|
+
## 🤖 Tích Hợp AI
|
|
117
48
|
|
|
118
|
-
|
|
49
|
+
Barista CLI được thiết kế cho AI coding assistants. Mọi đầu ra đều có cấu trúc, mọi lỗi đều có thể xử lý.
|
|
119
50
|
|
|
120
|
-
|
|
51
|
+
### Các AI Tools Được Hỗ Trợ
|
|
121
52
|
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
53
|
+
| AI Tool | Phương Thức Tích Hợp | Trạng Thái |
|
|
54
|
+
|---------|----------------------|------------|
|
|
55
|
+
| **Claude Code** | `$` backticks + `--json` | ✅ Đã xác minh |
|
|
56
|
+
| **OpenCode** | Shell command + JSON parse | ✅ Đã xác minh |
|
|
57
|
+
| **OpenClaw** | Shell command + JSON parse | ✅ Đã xác minh |
|
|
58
|
+
| **Cursor** | Terminal integration | ✅ Tương thích |
|
|
59
|
+
| **Continue** | CLI subprocess | ✅ Tương thích |
|
|
128
60
|
|
|
129
|
-
|
|
61
|
+
### Mẫu Tích Hợp
|
|
130
62
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
63
|
+
```typescript
|
|
64
|
+
// 1. Thực thi lệnh với đầu ra 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. Phân tích phản hồi có cấu trúc
|
|
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
|
+
}
|
|
137
79
|
|
|
138
|
-
|
|
80
|
+
// 3. Xử lý dữ liệu
|
|
81
|
+
const pendingOrders = data.items
|
|
82
|
+
console.log(`Found ${data.pagination.total} pending orders`)
|
|
139
83
|
|
|
140
|
-
|
|
84
|
+
// 4. Thực thi thao tác an toàn
|
|
85
|
+
for (const order of pendingOrders) {
|
|
86
|
+
// Luôn chạy dry-run trước (an toàn cho AI)
|
|
87
|
+
const preview = await $`barista liberica orders cancel ${order.id} --dry-run`
|
|
141
88
|
|
|
89
|
+
// Phân tích preview, xác minh, rồi thực thi với --force
|
|
90
|
+
// ...
|
|
91
|
+
}
|
|
142
92
|
```
|
|
143
|
-
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
|
144
|
-
│ Barista CLI │────▶│ Auth Server │────▶│ API Servers │
|
|
145
|
-
│ │ │ │ │ │
|
|
146
|
-
│ • Yêu cầu ĐN │ │ • Xác minh TT │ │ • Xác minh Token│
|
|
147
|
-
│ • Lưu Token │◀────│ • Cấp JWT │◀────│ • Trả dữ liệu │
|
|
148
|
-
│ (Chuỗi khóa) │ │ │ │ │
|
|
149
|
-
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**Tính năng Bảo mật:**
|
|
153
|
-
|
|
154
|
-
- **Lưu trữ Chuỗi khóa**: Token được lưu trữ an toàn trong chuỗi khóa hệ thống (macOS Keychain, Windows Credential, Linux Secret Service)
|
|
155
|
-
- **Tự động Bỏ qua Xác thực**: Các giao diện công khai (như truy vấn danh mục sản phẩm) không cần xác thực
|
|
156
|
-
- **Cách ly Môi trường**: Mỗi môi trường và ngưới thuê sử dụng Token độc lập
|
|
157
|
-
- **Làm mới Token**: Hỗ trợ tự động làm mới Token sắp hết hạn
|
|
158
|
-
|
|
159
|
-
---
|
|
160
93
|
|
|
161
|
-
|
|
94
|
+
### Response Envelope
|
|
162
95
|
|
|
163
|
-
|
|
96
|
+
Tất cả phản hồi JSON đều theo cấu trúc này:
|
|
164
97
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
+
}
|
|
169
112
|
```
|
|
170
113
|
|
|
171
|
-
|
|
114
|
+
**Định dạng lỗi:**
|
|
172
115
|
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
|
|
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
|
+
}
|
|
176
128
|
```
|
|
177
129
|
|
|
178
|
-
###
|
|
179
|
-
|
|
180
|
-
| Tùy chọn | Mô tả | Ví dụ |
|
|
181
|
-
|----------|-------|-------|
|
|
182
|
-
| `--env` | Chỉ định môi trường | `--env prod-cn` |
|
|
183
|
-
| `--tenant` | Chỉ định ngưới thuê | `--tenant electionjp` |
|
|
184
|
-
| `--service` | Chỉ định dịch vụ | `--service liberica` |
|
|
185
|
-
| `--dry-run` | Chế độ xem trước | `--dry-run` |
|
|
186
|
-
| `--json` | Đầu ra JSON | `--json` |
|
|
187
|
-
| `--help` | Hiển thị trợ giúp | `--help` |
|
|
188
|
-
|
|
189
|
-
### Quản lý Ngữ cảnh
|
|
130
|
+
### Skills cho Claude Code
|
|
190
131
|
|
|
191
|
-
|
|
132
|
+
Cài đặt các file skill có thể tái sử dụng:
|
|
192
133
|
|
|
193
134
|
```bash
|
|
194
|
-
#
|
|
195
|
-
barista
|
|
196
|
-
|
|
197
|
-
# Ví dụ đầu ra:
|
|
198
|
-
# ┌─────────────┬─────────────────┐
|
|
199
|
-
# │ Thuộc tính │ Giá trị │
|
|
200
|
-
# ├─────────────┼─────────────────┤
|
|
201
|
-
# │ Môi trường │ dev │
|
|
202
|
-
# │ Ngưới thuê │ electionjp │
|
|
203
|
-
# │ Dịch vụ │ liberica │
|
|
204
|
-
# │ Trạng thái │ Đã đăng nhập │
|
|
205
|
-
# │ Hết hạn │ 2024-12-31 │
|
|
206
|
-
# └─────────────┴─────────────────┘
|
|
207
|
-
|
|
208
|
-
# Chuyển đổi môi trường
|
|
209
|
-
barista context use-env [dev|test|prod-cn|prod-jp]
|
|
210
|
-
|
|
211
|
-
# Chuyển đổi ngưới thuê
|
|
212
|
-
barista context use-tenant <tenant-name>
|
|
213
|
-
|
|
214
|
-
# Chuyển đổi dịch vụ mặc định
|
|
215
|
-
barista context use-service [liberica|arabica]
|
|
135
|
+
# Skills nằm tại ~/.barista/claude/skills/
|
|
136
|
+
barista skills install
|
|
216
137
|
```
|
|
217
138
|
|
|
218
|
-
|
|
139
|
+
**Các skills có sẵn:**
|
|
140
|
+
- `orders.md` — Quy trình quản lý đơn hàng
|
|
141
|
+
- `products.md` — Tìm kiếm và đồng bộ sản phẩm
|
|
142
|
+
- `warehouses.md` — Thao tác kho hàng
|
|
143
|
+
- `subscriptions.md` — Quản lý đăng ký Arabica
|
|
219
144
|
|
|
220
|
-
|
|
221
|
-
# Đăng nhập để lấy Token
|
|
222
|
-
barista auth login --service <service> --env <env> [--tenant <tenant>]
|
|
145
|
+
---
|
|
223
146
|
|
|
224
|
-
|
|
225
|
-
barista auth login --service liberica --env dev --tenant electionjp
|
|
147
|
+
## 🚀 Tính Năng
|
|
226
148
|
|
|
227
|
-
|
|
228
|
-
barista auth status
|
|
149
|
+
### Thiết Kế AI-First
|
|
229
150
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
151
|
+
| Tính Năng | Mô Tả |
|
|
152
|
+
|-----------|--------|
|
|
153
|
+
| 🤖 **JSON-First Output** | Tất cả lệnh hỗ trợ `--json` để AI phân tích |
|
|
154
|
+
| 📦 **Structured Responses** | Cấu trúc nhất quán `{success, data, meta}` |
|
|
155
|
+
| 🔄 **Idempotent Operations** | An toàn cho AI retry loops |
|
|
156
|
+
| 🛡️ **Dry-Run by Default** | Xem trước các thao tác nguy hiểm trước khi thực thi |
|
|
157
|
+
| 🔐 **Secure Storage** | Credentials lưu trong system keychain, không phải env vars |
|
|
234
158
|
|
|
235
|
-
|
|
236
|
-
barista auth logout --service <service> --env <env>
|
|
159
|
+
### Kết Nối Doanh Nghiệp
|
|
237
160
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
161
|
+
| Dịch Vụ | Khả Năng |
|
|
162
|
+
|---------|----------|
|
|
163
|
+
| ☕ **Liberica** | Đơn hàng, sản phẩm, tồn kho, kho hàng, lập kế hoạch sản xuất |
|
|
164
|
+
| 🛒 **Arabica** | Gói đăng ký, thanh toán, hóa đơn, quản lý doanh nghiệp |
|
|
165
|
+
| 🔗 **Cross-Service** | Báo giá từ đơn hàng, đồng bộ giữa các hệ thống |
|
|
241
166
|
|
|
242
|
-
###
|
|
167
|
+
### An Toàn Vận Hành
|
|
243
168
|
|
|
244
|
-
|
|
169
|
+
- 📊 **Audit Trail** — Mỗi thao tác được ghi log với request ID
|
|
170
|
+
- ⚠️ **Confirmation Guards** — `--dry-run` / `--force` cho các thao tác ghi
|
|
171
|
+
- 🏢 **Multi-Tenant Isolation** — Credentials được cô lập theo từng tenant
|
|
245
172
|
|
|
246
|
-
|
|
247
|
-
# Liệt kê đơn hàng (phân trang)
|
|
248
|
-
barista liberica orders list [--page <n>] [--size <n>] [--status <status>]
|
|
173
|
+
---
|
|
249
174
|
|
|
250
|
-
|
|
251
|
-
barista liberica orders get <order-id>
|
|
175
|
+
## 🔧 Tham Khảo Lệnh
|
|
252
176
|
|
|
253
|
-
|
|
254
|
-
barista liberica orders create \
|
|
255
|
-
--product-id <id> \
|
|
256
|
-
--quantity <n> \
|
|
257
|
-
[--delivery-date <date>] \
|
|
258
|
-
[--note <text>]
|
|
177
|
+
### Mẫu Cơ Bản
|
|
259
178
|
|
|
260
|
-
# Hủy đơn hàng
|
|
261
|
-
barista liberica orders cancel <order-id> [--reason <text>]
|
|
262
179
|
```
|
|
263
|
-
|
|
264
|
-
#### Quản lý Sản phẩm
|
|
265
|
-
|
|
266
|
-
```bash
|
|
267
|
-
# Tìm kiếm sản phẩm
|
|
268
|
-
barista liberica products search --keyword <keyword> [--category <id>]
|
|
269
|
-
|
|
270
|
-
# Lấy chi tiết sản phẩm
|
|
271
|
-
barista liberica products get <product-id>
|
|
272
|
-
|
|
273
|
-
# Lấy danh sách sản phẩm công khai (không cần xác thực)
|
|
274
|
-
barista liberica products public-list [--category <id>] [--page <n>]
|
|
180
|
+
barista <service> <resource> <action> [options]
|
|
275
181
|
```
|
|
276
182
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
183
|
+
### Các Tùy Chọn Toàn Cục
|
|
184
|
+
|
|
185
|
+
| Tùy Chọn | Mô Tả | Mặc Định |
|
|
186
|
+
|----------|--------|----------|
|
|
187
|
+
| `--env` | Môi trường (dev\|test\|prod-cn\|prod-jp) | `dev` |
|
|
188
|
+
| `--tenant` | Tên tenant | - |
|
|
189
|
+
| `--json` | Đầu ra JSON | `false` |
|
|
190
|
+
| `--dry-run` | Chế độ xem trước (khuyến nghị cho AI) | `false` |
|
|
191
|
+
| `--force` | Bỏ qua xác nhận | `false` |
|
|
192
|
+
| `--page` | Số trang | `1` |
|
|
193
|
+
| `--size` | Kích thước trang (tối đa) | `20` |
|
|
194
|
+
|
|
195
|
+
### Tham Khảo Nhanh
|
|
196
|
+
|
|
197
|
+
| Lệnh | Mô Tả |
|
|
198
|
+
|------|--------|
|
|
199
|
+
| `barista context show` | Hiển thị context env/tenant hiện tại |
|
|
200
|
+
| `barista context use-env <env>` | Chuyển đổi môi trường |
|
|
201
|
+
| `barista liberica orders list --json` | Liệt kê đơn hàng (định dạng AI) |
|
|
202
|
+
| `barista liberica orders get <id> --json` | Xem chi tiết đơn hàng |
|
|
203
|
+
| `barista liberica orders create --dry-run ...` | Xem trước tạo mới |
|
|
204
|
+
| `barista liberica products search --keyword <kw> --json` | Tìm kiếm sản phẩm |
|
|
205
|
+
| `barista arabica plans list --json` | Liệt kê gói đăng ký |
|
|
206
|
+
| `barista arabica invoices list --json` | Liệt kê hóa đơn |
|
|
207
|
+
|
|
208
|
+
**[→ Tham Khảo Lệnh Chi Tiết](./docs/commands/REFERENCE.md)**
|
|
289
209
|
|
|
290
|
-
|
|
210
|
+
---
|
|
291
211
|
|
|
292
|
-
|
|
212
|
+
## 🛡️ Hướng Dẫn An Toàn AI
|
|
293
213
|
|
|
294
|
-
|
|
295
|
-
# Liệt kê sản phẩm
|
|
296
|
-
barista arabica products list [--page <n>] [--size <n>] [--category <id>]
|
|
214
|
+
### 1. Luôn Chạy Dry-Run Trước
|
|
297
215
|
|
|
298
|
-
|
|
299
|
-
|
|
216
|
+
```typescript
|
|
217
|
+
// ❌ Sai — Thực thi mù quáng
|
|
218
|
+
await $`barista liberica orders cancel 12345`
|
|
300
219
|
|
|
301
|
-
|
|
302
|
-
barista
|
|
220
|
+
// ✅ Đúng — Xem trước trước
|
|
221
|
+
const preview = await $`barista liberica orders cancel 12345 --dry-run`
|
|
222
|
+
// Phân tích preview, xác minh, rồi:
|
|
223
|
+
await $`barista liberica orders cancel 12345 --force`
|
|
303
224
|
```
|
|
304
225
|
|
|
305
|
-
|
|
226
|
+
### 2. Kiểm Tra Success Trước Khi Tiếp Tục
|
|
306
227
|
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
# Tạo báo giá
|
|
315
|
-
barista arabica quotes create \
|
|
316
|
-
--customer-id <id> \
|
|
317
|
-
--items <json> \
|
|
318
|
-
[--valid-days <n>]
|
|
228
|
+
```typescript
|
|
229
|
+
const result = JSON.parse(stdout)
|
|
230
|
+
if (!result.success) {
|
|
231
|
+
// Xử lý lỗi, không tiếp tục
|
|
232
|
+
throw new Error(result.error?.message || result.meta?.message)
|
|
233
|
+
}
|
|
319
234
|
```
|
|
320
235
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
# Tìm kiếm khách hàng
|
|
325
|
-
barista arabica customers search --keyword <keyword> [--type <type>]
|
|
236
|
+
### 3. Sử Dụng Request ID Để Debug
|
|
326
237
|
|
|
327
|
-
|
|
328
|
-
|
|
238
|
+
```typescript
|
|
239
|
+
const { meta } = JSON.parse(stdout)
|
|
240
|
+
console.log(`Request ID: ${meta.requestId}`)
|
|
329
241
|
```
|
|
330
242
|
|
|
331
|
-
###
|
|
243
|
+
### 4. Tuân Thủ Rate Limits
|
|
332
244
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
# Tạo báo giá từ đơn hàng
|
|
337
|
-
barista cross quote-from-order <order-id> [--target-service arabica]
|
|
338
|
-
|
|
339
|
-
# Ví dụ đầu ra:
|
|
340
|
-
# ✓ Đã tạo báo giá
|
|
341
|
-
# ┌──────────┬────────────┐
|
|
342
|
-
# │ Thuộc tính│ Giá trị │
|
|
343
|
-
# ├──────────┼────────────┤
|
|
344
|
-
# │ ID ĐH │ 12345 │
|
|
345
|
-
# │ ID Báo giá│ QT-2024-001│
|
|
346
|
-
# │ Số tiền │ ¥50,000 │
|
|
347
|
-
# │ Hiệu lực │ 30 ngày │
|
|
348
|
-
# └──────────┴────────────┘
|
|
349
|
-
|
|
350
|
-
# Đồng bộ trạng thái đơn hàng sang Arabica
|
|
351
|
-
barista cross sync-order <order-id> [--direction liberica-to-arabica]
|
|
352
|
-
```
|
|
245
|
+
- Thêm độ trễ giữa các thao tác hàng loạt
|
|
246
|
+
- Sử dụng `--size 100` cho fetch hàng loạt
|
|
247
|
+
- Cache responses khi phù hợp
|
|
353
248
|
|
|
354
249
|
---
|
|
355
250
|
|
|
356
|
-
##
|
|
357
|
-
|
|
358
|
-
### Chế độ Dry-Run
|
|
359
|
-
|
|
360
|
-
Chế độ Dry-Run cho phép bạn xem trước tác động của thao tác ghi trước khi thực hiện, tránh lỗi.
|
|
361
|
-
|
|
362
|
-
```bash
|
|
363
|
-
# Tất cả thao tác ghi đều hỗ trợ tùy chọn --dry-run
|
|
364
|
-
barista liberica orders create --product-id 123 --quantity 100 --dry-run
|
|
365
|
-
|
|
366
|
-
# Ví dụ đầu ra:
|
|
367
|
-
# 🔍 Chế độ Dry-Run: Thao tác sẽ không được thực thi
|
|
368
|
-
# ┌─────────────────┬──────────────────────┐
|
|
369
|
-
# │ Thao tác │ Tạo đơn hàng │
|
|
370
|
-
# ├─────────────────┼──────────────────────┤
|
|
371
|
-
# │ Sản phẩm │ Máy cà phê Pro (ID: 123) │
|
|
372
|
-
# │ Số lượng │ 100 │
|
|
373
|
-
# │ Số tiền dự kiến │ ¥50,000 │
|
|
374
|
-
# │ Ngày giao dự kiến│ 2024-12-31 │
|
|
375
|
-
# │ Tác động │ Thêm 1 bản ghi đơn hàng │
|
|
376
|
-
# └─────────────────┴──────────────────────┘
|
|
377
|
-
#
|
|
378
|
-
# ⚠️ Xác nhận thực hiện? Thêm tùy chọn --confirm hoặc xóa --dry-run
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
**Thao tác Dry-Run Mặc định:**
|
|
382
|
-
|
|
383
|
-
Các thao tác phá hủy sau có chế độ Dry-Run được bật mặc định và yêu cầu xác nhận rõ ràng:
|
|
251
|
+
## ⚙️ Cấu Hình
|
|
384
252
|
|
|
385
|
-
|
|
386
|
-
- Xóa sản phẩm
|
|
387
|
-
- Cập nhật hàng loạt
|
|
253
|
+
### Vị Trí File
|
|
388
254
|
|
|
389
|
-
|
|
255
|
+
`~/.barista/config.yaml`
|
|
390
256
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
barista liberica orders list --json
|
|
395
|
-
|
|
396
|
-
# Ví dụ đầu ra:
|
|
397
|
-
{
|
|
398
|
-
"success": true,
|
|
399
|
-
"data": {
|
|
400
|
-
"items": [
|
|
401
|
-
{
|
|
402
|
-
"id": "12345",
|
|
403
|
-
"productName": "Máy cà phê Pro",
|
|
404
|
-
"quantity": 100,
|
|
405
|
-
"status": "in_production",
|
|
406
|
-
"createdAt": "2024-01-15T10:30:00Z"
|
|
407
|
-
}
|
|
408
|
-
],
|
|
409
|
-
"pagination": {
|
|
410
|
-
"page": 1,
|
|
411
|
-
"size": 20,
|
|
412
|
-
"total": 150
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
---
|
|
419
|
-
|
|
420
|
-
## Cấu hình
|
|
421
|
-
|
|
422
|
-
### Tệp Cấu hình
|
|
423
|
-
|
|
424
|
-
Tệp cấu hình nằm tại `~/.barista/config.yaml`:
|
|
257
|
+
### Cấu Hình Nhanh
|
|
425
258
|
|
|
426
259
|
```yaml
|
|
427
|
-
# Tệp cấu hình Barista CLI
|
|
428
|
-
|
|
429
|
-
# Cài đặt ngữ cảnh mặc định
|
|
430
260
|
defaults:
|
|
431
|
-
env:
|
|
432
|
-
tenant:
|
|
261
|
+
env: prod-cn
|
|
262
|
+
tenant: your-tenant
|
|
433
263
|
service: liberica
|
|
434
264
|
|
|
435
|
-
# Cấu hình môi trường
|
|
436
265
|
environments:
|
|
437
|
-
dev:
|
|
438
|
-
liberica:
|
|
439
|
-
baseUrl: "https://{tenant}-dev.newpeaksh.com"
|
|
440
|
-
timeout: 30000
|
|
441
|
-
arabica:
|
|
442
|
-
baseUrl: "https://arabica-dev.newpeaksh.com"
|
|
443
|
-
timeout: 30000
|
|
444
|
-
|
|
445
|
-
test:
|
|
446
|
-
liberica:
|
|
447
|
-
baseUrl: "https://{tenant}-test.newpeaksh.com"
|
|
448
|
-
timeout: 30000
|
|
449
|
-
arabica:
|
|
450
|
-
baseUrl: "https://arabica-test.newpeaksh.com"
|
|
451
|
-
timeout: 30000
|
|
452
|
-
|
|
453
266
|
prod-cn:
|
|
454
267
|
liberica:
|
|
455
268
|
baseUrl: "https://{tenant}.newpeaksh.com"
|
|
@@ -457,258 +270,71 @@ environments:
|
|
|
457
270
|
arabica:
|
|
458
271
|
baseUrl: "https://www.newpeaksh.com"
|
|
459
272
|
timeout: 60000
|
|
460
|
-
|
|
461
|
-
prod-jp:
|
|
462
|
-
liberica:
|
|
463
|
-
baseUrl: "https://{tenant}.newpeakjp.com"
|
|
464
|
-
timeout: 60000
|
|
465
|
-
arabica:
|
|
466
|
-
baseUrl: "https://members.newpeakjp.com"
|
|
467
|
-
timeout: 60000
|
|
468
|
-
|
|
469
|
-
# Cấu hình đầu ra
|
|
470
|
-
output:
|
|
471
|
-
format: table # table | json
|
|
472
|
-
color: true
|
|
473
|
-
timestamp: true
|
|
474
273
|
```
|
|
475
274
|
|
|
476
|
-
###
|
|
477
|
-
|
|
478
|
-
Hỗ trợ cấu hình nhiều ngưới thuê để chuyển đổi nhanh:
|
|
275
|
+
### Xác Thực
|
|
479
276
|
|
|
480
277
|
```bash
|
|
481
|
-
#
|
|
482
|
-
barista
|
|
483
|
-
--name customer-a \
|
|
484
|
-
--liberica-id customer-a-id \
|
|
485
|
-
--arabica-id customer-a-arabica-id
|
|
278
|
+
# Đăng nhập bằng credentials (khuyến nghị)
|
|
279
|
+
barista liberica auth login <env> <tenant> <username> <password>
|
|
486
280
|
|
|
487
|
-
#
|
|
488
|
-
barista
|
|
281
|
+
# Kiểm tra trạng thái đăng nhập
|
|
282
|
+
barista auth status
|
|
489
283
|
|
|
490
|
-
#
|
|
491
|
-
barista
|
|
284
|
+
# Đăng xuất
|
|
285
|
+
barista auth logout --service liberica --env prod-cn
|
|
492
286
|
```
|
|
493
287
|
|
|
494
288
|
---
|
|
495
289
|
|
|
496
|
-
##
|
|
497
|
-
|
|
498
|
-
Barista CLI được tối ưu hóa cho trợ lý lập trình AI, đặc biệt là Claude Code.
|
|
499
|
-
|
|
500
|
-
### Ví dụ Sử dụng Claude Code
|
|
501
|
-
|
|
502
|
-
```typescript
|
|
503
|
-
// Sử dụng Barista CLI trong Claude Code
|
|
504
|
-
// Ví dụ: Lấy danh sách đơn hàng và phân tích
|
|
505
|
-
|
|
506
|
-
const result = await $`barista liberica orders list --json --page 1 --size 10`;
|
|
507
|
-
const orders = JSON.parse(result.stdout);
|
|
508
|
-
|
|
509
|
-
// Phân tích dữ liệu đơn hàng
|
|
510
|
-
const analysis = orders.data.items.map(order => ({
|
|
511
|
-
id: order.id,
|
|
512
|
-
status: order.status,
|
|
513
|
-
amount: order.amount
|
|
514
|
-
}));
|
|
515
|
-
```
|
|
516
|
-
|
|
517
|
-
### Tệp Skills
|
|
518
|
-
|
|
519
|
-
Barista CLI cung cấp các tệp Claude Code Skills, nằm tại:
|
|
520
|
-
|
|
521
|
-
```
|
|
522
|
-
~/.barista/claude/skills/
|
|
523
|
-
├── orders.md # Kỹ năng quản lý đơn hàng
|
|
524
|
-
├── products.md # Kỹ năng quản lý sản phẩm
|
|
525
|
-
├── quotes.md # Kỹ năng quản lý báo giá
|
|
526
|
-
└── customers.md # Kỹ năng quản lý khách hàng
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
**Ví dụ Tệp Skills:**
|
|
530
|
-
|
|
531
|
-
```markdown
|
|
532
|
-
# Kỹ năng Quản lý Đơn hàng
|
|
533
|
-
|
|
534
|
-
## Liệt kê Đơn hàng Chờ xử lý
|
|
535
|
-
|
|
536
|
-
Khi ngưới dùng hỏi về đơn hàng chờ xử lý:
|
|
290
|
+
## ❓ Xử Lý Sự Cố
|
|
537
291
|
|
|
538
|
-
|
|
539
|
-
2. Phân tích JSON trả về
|
|
540
|
-
3. Tóm tắt số lượng đơn hàng và tổng số tiền
|
|
541
|
-
4. Liệt kê thông tin quan trọng của 5 đơn hàng đầu tiên
|
|
542
|
-
|
|
543
|
-
## Tạo Đơn hàng Mới
|
|
544
|
-
|
|
545
|
-
Khi ngưới dùng cần tạo đơn hàng:
|
|
546
|
-
|
|
547
|
-
1. Xác nhận ID sản phẩm và số lượng
|
|
548
|
-
2. Sử dụng dry-run để xem trước: barista liberica orders create --dry-run ...
|
|
549
|
-
3. Thực thi lệnh thực sau khi ngưới dùng xác nhận
|
|
550
|
-
```
|
|
551
|
-
|
|
552
|
-
### Đầu ra Thân thiện với AI
|
|
553
|
-
|
|
554
|
-
Tất cả lệnh đều hỗ trợ tùy chọn `--json`, trả về dữ liệu JSON có cấu trúc:
|
|
292
|
+
### Lỗi Xác Thực
|
|
555
293
|
|
|
556
294
|
```bash
|
|
557
|
-
#
|
|
558
|
-
barista
|
|
559
|
-
|
|
560
|
-
{
|
|
561
|
-
"success": true,
|
|
562
|
-
"data": {
|
|
563
|
-
"id": "12345",
|
|
564
|
-
"status": "in_production",
|
|
565
|
-
"product": {
|
|
566
|
-
"id": "100",
|
|
567
|
-
"name": "Máy cà phê Pro"
|
|
568
|
-
},
|
|
569
|
-
"quantity": 100,
|
|
570
|
-
"amount": 50000,
|
|
571
|
-
"timeline": {
|
|
572
|
-
"created": "2024-01-15T10:30:00Z",
|
|
573
|
-
"delivery": "2024-02-15"
|
|
574
|
-
}
|
|
575
|
-
},
|
|
576
|
-
"meta": {
|
|
577
|
-
"requestId": "req-abc123",
|
|
578
|
-
"timestamp": "2024-01-15T10:30:00Z"
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
---
|
|
584
|
-
|
|
585
|
-
## Hướng dẫn Phát triển
|
|
295
|
+
# Kiểm tra trạng thái hiện tại
|
|
296
|
+
barista auth status
|
|
586
297
|
|
|
587
|
-
|
|
298
|
+
# Đăng nhập lại
|
|
299
|
+
barista liberica auth login prod-cn your-tenant your-username your-password
|
|
588
300
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
├── bin/
|
|
592
|
-
│ └── barista.js # Tệp khởi đầu
|
|
593
|
-
├── src/
|
|
594
|
-
│ ├── commands/ # Triển khai lệnh
|
|
595
|
-
│ │ ├── context/ # Lệnh quản lý ngữ cảnh
|
|
596
|
-
│ │ ├── auth/ # Lệnh xác thực
|
|
597
|
-
│ │ ├── liberica/ # Lệnh dịch vụ Liberica
|
|
598
|
-
│ │ │ ├── orders.js
|
|
599
|
-
│ │ │ ├── products.js
|
|
600
|
-
│ │ │ └── production.js
|
|
601
|
-
│ │ ├── arabica/ # Lệnh dịch vụ Arabica
|
|
602
|
-
│ │ │ ├── products.js
|
|
603
|
-
│ │ │ ├── quotes.js
|
|
604
|
-
│ │ │ └── customers.js
|
|
605
|
-
│ │ └── cross/ # Lệnh liên dịch vụ
|
|
606
|
-
│ ├── core/ # Mô-đun cốt lõi
|
|
607
|
-
│ │ ├── auth.js # Quản lý xác thực
|
|
608
|
-
│ │ ├── config.js # Quản lý cấu hình
|
|
609
|
-
│ │ ├── context.js # Quản lý ngữ cảnh
|
|
610
|
-
│ │ └── api-client.js # Client API
|
|
611
|
-
│ ├── utils/ # Hàm tiện ích
|
|
612
|
-
│ │ ├── formatter.js # Định dạng đầu ra
|
|
613
|
-
│ │ ├── validator.js # Xác thực tham số
|
|
614
|
-
│ │ └── keychain.js # Thao tác chuỗi khóa
|
|
615
|
-
│ └── templates/ # Tệp mẫu
|
|
616
|
-
├── skills/ # Claude Code Skills
|
|
617
|
-
├── tests/ # Tệp kiểm thử
|
|
618
|
-
├── package.json
|
|
619
|
-
└── README.md
|
|
301
|
+
# Kiểm tra context
|
|
302
|
+
barista context show
|
|
620
303
|
```
|
|
621
304
|
|
|
622
|
-
###
|
|
305
|
+
### Lỗi API
|
|
623
306
|
|
|
624
307
|
```bash
|
|
625
|
-
#
|
|
626
|
-
|
|
627
|
-
cd coffee-barista-cli
|
|
628
|
-
|
|
629
|
-
# 2. Cài đặt phụ thuộc
|
|
630
|
-
npm install
|
|
631
|
-
|
|
632
|
-
# 3. Liên kết toàn cục (chế độ phát triển)
|
|
633
|
-
npm link
|
|
634
|
-
|
|
635
|
-
# 4. Xác minh liên kết
|
|
636
|
-
barista --version
|
|
637
|
-
|
|
638
|
-
# 5. Chạy kiểm thử
|
|
639
|
-
npm test
|
|
308
|
+
# Luôn sử dụng --json để nhận mã lỗi
|
|
309
|
+
barista liberica orders list --json
|
|
640
310
|
|
|
641
|
-
#
|
|
642
|
-
|
|
311
|
+
# Phản hồi lỗi bao gồm requestId để debug
|
|
312
|
+
# "requestId": "req-abc123"
|
|
643
313
|
```
|
|
644
314
|
|
|
645
|
-
###
|
|
646
|
-
|
|
647
|
-
**Quan trọng**: Lệnh mới phải tuân theo [Đặc tả Thiết kế Lệnh](./docs/COMMAND_DESIGN_SPEC.md), bao gồm viết tài liệu thiết kế, đánh giá kỹ thuật và các quy trình hoàn chỉnh khác.
|
|
648
|
-
|
|
649
|
-
Tham khảo chi tiết tại:
|
|
650
|
-
- [Tham chiếu Lệnh Đầy đủ](./docs/commands/REFERENCE.md) - Danh sách tất cả lệnh và ưu tiên phát triển
|
|
651
|
-
- [Tài liệu Đặc tả Thiết kế Lệnh](./docs/COMMAND_DESIGN_SPEC.md#5-quy-trình-phát-triển-lệnh)
|
|
652
|
-
- [Hướng dẫn Phát triển Lệnh](./docs/COMMANDS.md)
|
|
653
|
-
|
|
654
|
-
---
|
|
655
|
-
|
|
656
|
-
## Hướng dẫn Đóng góp
|
|
657
|
-
|
|
658
|
-
Chúng tôi hoan nghênh mọi hình thức đóng góp, bao gồm nhưng không giới hạn ở:
|
|
659
|
-
|
|
660
|
-
- 🐛 Báo cáo lỗi
|
|
661
|
-
- 💡 Đề xuất tính năng mới
|
|
662
|
-
- 📝 Cải thiện tài liệu
|
|
663
|
-
- 🔧 Gửi bản sửa lỗi
|
|
664
|
-
- ✨ Thêm tính năng mới
|
|
665
|
-
|
|
666
|
-
### Quy ước Commit
|
|
667
|
-
|
|
668
|
-
Vui lòng tuân theo quy chuẩn [Conventional Commits](https://www.conventionalcommits.org/):
|
|
315
|
+
### Vấn Đề Timeout
|
|
669
316
|
|
|
670
317
|
```bash
|
|
671
|
-
#
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
# Thêm tính năng
|
|
675
|
-
feat: thêm lệnh truy vấn tồn kho
|
|
676
|
-
|
|
677
|
-
# Cập nhật tài liệu
|
|
678
|
-
docs: cập nhật ánh xạ môi trường trong README
|
|
318
|
+
# Chuyển sang môi trường gần hơn
|
|
319
|
+
barista context use-env dev
|
|
679
320
|
|
|
680
|
-
#
|
|
681
|
-
refactor: tái cấu trúc xử lý lỗi client API
|
|
321
|
+
# Hoặc điều chỉnh timeout trong config.yaml
|
|
682
322
|
```
|
|
683
323
|
|
|
684
|
-
### Quy trình Phát triển
|
|
685
|
-
|
|
686
|
-
1. Fork kho lưu trữ này
|
|
687
|
-
2. Tạo nhánh tính năng: `git checkout -b feature/my-feature`
|
|
688
|
-
3. Commit thay đổi: `git commit -m 'feat: add some feature'`
|
|
689
|
-
4. Push nhánh: `git push origin feature/my-feature`
|
|
690
|
-
5. Tạo Pull Request
|
|
691
|
-
|
|
692
324
|
---
|
|
693
325
|
|
|
694
|
-
## Dự
|
|
326
|
+
## 📚 Các Dự Án Liên Quan
|
|
695
327
|
|
|
696
|
-
| Dự
|
|
697
|
-
|
|
698
|
-
| ☕ Liberica Backend |
|
|
699
|
-
| 🖥️ Liberica Frontend |
|
|
700
|
-
| 📱 Liberica Mobile |
|
|
701
|
-
| 🛒 Arabica Backend |
|
|
702
|
-
| 🌐 Arabica Frontend |
|
|
328
|
+
| Dự Án | Mô Tả |
|
|
329
|
+
|--------|--------|
|
|
330
|
+
| ☕ Liberica Backend | SaaS backend quản lý sản xuất |
|
|
331
|
+
| 🖥️ Liberica Frontend | Web UI quản lý sản xuất |
|
|
332
|
+
| 📱 Liberica Mobile | Ứng dụng di động quản lý sản xuất |
|
|
333
|
+
| 🛒 Arabica Backend | SaaS backend đăng ký trực tuyến |
|
|
334
|
+
| 🌐 Arabica Frontend | Web UI đăng ký trực tuyến |
|
|
703
335
|
|
|
704
336
|
---
|
|
705
337
|
|
|
706
|
-
## Giấy
|
|
338
|
+
## 📄 Giấy Phép
|
|
707
339
|
|
|
708
340
|
[MIT](LICENSE) © Newpeak Technology
|
|
709
|
-
|
|
710
|
-
---
|
|
711
|
-
|
|
712
|
-
<p align="center">
|
|
713
|
-
Được cung cấp bởi ☕
|
|
714
|
-
</p>
|