kob-cli 1.0.0

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/MANUAL.md ADDED
@@ -0,0 +1,526 @@
1
+ # 📘 KOB CLI User Manual
2
+
3
+ คู่มือการใช้งาน KOB AI CLI — พัฒนาโดย Kob AI (www.kob-ai.dev) Developer in Thailand 🇹🇭
4
+
5
+ ---
6
+
7
+ ## 🚀 Quick Start (ใช้งานเลย!)
8
+
9
+ **หลังติดตั้งแล้ว ใช้คำสั่ง `kob` ได้เลย:**
10
+
11
+ ```bash
12
+ # เช็คการเชื่อมต่อ
13
+ kob auth:verify
14
+
15
+ # แชทกับ AI
16
+ kob chat "สวัสดีครับ"
17
+
18
+ # แชทแบบต่อเนื่อง
19
+ kob chat:interactive
20
+
21
+ # ดูโมเดลทั้งหมด
22
+ kob models
23
+
24
+ # เช็คยอดเงิน
25
+ kob balance
26
+ ```
27
+
28
+ ---
29
+
30
+ ## 📋 สารบัญ
31
+
32
+ 1. [ติดตั้งและตั้งค่า](#ติดตั้งและตั้งค่า)
33
+ 2. [คำสั่งพื้นฐาน](#คำสั่งพื้นฐาน)
34
+ 3. [ใช้งาน AI Chat](#ใช้งาน-ai-chat)
35
+ 4. [จัดการโปรเจค](#จัดการโปรเจค)
36
+ 5. [ตั้งกฏให้ AI](#ตั้งกฏให้-ai)
37
+ 6. [ดูเครดิต](#ดูเครดิต)
38
+ 7. [เทคนิคขั้นสูง](#เทคนิคขั้นสูง)
39
+ 8. [แก้ปัญหา](#แก้ปัญหา)
40
+
41
+ ---
42
+
43
+ ## ติดตั้งและตั้งค่า
44
+
45
+ ### 1. ติดตั้ง Dependencies
46
+ ```bash
47
+ cd kob-cli
48
+ bun install
49
+ ```
50
+
51
+ ### 2. ตั้งค่า API Credentials
52
+
53
+ สร้างไฟล์ `.env` ในโฟลเดอร์ `kob-cli`:
54
+ ```env
55
+ KOB_API_BASE_URL=https://www.kob-ai.dev
56
+ KOB_API_KEY=kob_XXXXXXXXXXXXXXXXXXXX
57
+ ```
58
+
59
+ **วิธีรับ API Key:**
60
+ 1. เข้า https://www.kob-ai.dev
61
+ 2. ไปที่เมนู "Token Keys"
62
+ 3. สร้าง Key ใหม่
63
+ 4. คัดลอก `api_key` มาใส่ใน `.env`
64
+
65
+ ### 3. ทดสอบการเชื่อมต่อ
66
+ ```bash
67
+ kob auth:verify
68
+ ```
69
+
70
+ ถ้าขึ้นข้อมูลผู้ใช้ = ✅ สำเร็จ!
71
+
72
+ ---
73
+
74
+ ## คำสั่งพื้นฐาน
75
+
76
+ ### ดูวิธีใช้ทั้งหมด
77
+ ```bash
78
+ kob --help
79
+ ```
80
+
81
+ ### ดูวิธีใช้แต่ละคำสั่ง
82
+ ```bash
83
+ kob <command> --help
84
+ # ตัวอย่าง:
85
+ kob chat --help
86
+ ```
87
+
88
+ ---
89
+
90
+ ## ใช้งาน AI Chat
91
+
92
+ ### 1. แชทธรรมดา (ส่งข้อความเดียว)
93
+
94
+ ```bash
95
+ kob chat "ข้อความที่ต้องการถาม"
96
+ ```
97
+
98
+ **ตัวอย่าง:**
99
+ ```bash
100
+ kob chat "เขียนฟังก์ชัน Python สำหรับหาค่าเฉลี่ย"
101
+ ```
102
+
103
+ **ตัวเลือกเพิ่มเติม:**
104
+ ```bash
105
+ kob chat "Explain quantum computing" \
106
+ --provider DeepSeek \
107
+ --model deepseek-chat \
108
+ --temperature 0.7 \
109
+ --max-tokens 4096
110
+ ```
111
+
112
+ **Provider ที่ใช้ได้:**
113
+ - `DeepSeek` (แนะนำ - เร็วและถูก)
114
+ - `OpenRouter` (มีหลายโมเดล)
115
+ - `DeepInfra` (Llama, Qwen)
116
+
117
+ **โมเดลยอดนิยม:**
118
+ - DeepSeek: `deepseek-chat`, `deepseek-reasoner`, `deepseek-v4-flash`
119
+ - OpenRouter: `openai/gpt-4o`, `anthropic/claude-3.5-sonnet`, `google/gemini-1.5-pro`
120
+
121
+ ### 2. แชทแบบ Interactive (คุยต่อเนื่อง)
122
+
123
+ ```bash
124
+ kob chat:interactive
125
+ ```
126
+
127
+ **คำสั่งในโหมด Interactive:**
128
+ - พิมพ์ข้อความแล้วกด Enter - ส่งข้อความ
129
+ - `/clear` - ล้างประวัติการคุย
130
+ - `/stats` - ดูสถิติการคุย (tokens, credits)
131
+ - `/help` - ดูคำสั่ง
132
+ - `/exit` หรือ `/quit` - ออกจากโหมด
133
+
134
+ **ตัวอย่างการใช้งาน:**
135
+ ```bash
136
+ $ kob chat:interactive
137
+
138
+ 🤖 KOB AI Interactive Chat
139
+ Type your message and press Enter
140
+ Commands: /clear, /stats, /help, /exit
141
+
142
+ You: สวัสดีครับ
143
+ AI: สวัสดีครับ มีอะไรให้ฉันช่วยไหมครับ?
144
+
145
+ You: เขียนโค้ด Python หน่อย
146
+ AI: ได้ครับ นี่คือตัวอย่าง...
147
+
148
+ You: /stats
149
+ 📊 Conversation Statistics:
150
+ Messages: 4
151
+ Total Tokens: 245
152
+ Total Credits Used: 2
153
+
154
+ You: /exit
155
+ Goodbye!
156
+ ```
157
+
158
+ ### 3. แชทแบบ Streaming (เห็นทีละตัวอักษร)
159
+
160
+ ```bash
161
+ kob stream "ข้อความที่ต้องการ"
162
+ ```
163
+
164
+ **ตัวอย่าง:**
165
+ ```bash
166
+ kob stream "เขียนบทความยาวๆ เกี่ยวกับ AI" \
167
+ --provider OpenRouter \
168
+ --model openai/gpt-4o
169
+ ```
170
+
171
+ **เหมาะสำหรับ:**
172
+ - ข้อความยาวๆ
173
+ - ดู AI ตอบแบบ real-time
174
+ - ไม่ต้องรอจนจบ
175
+
176
+ ---
177
+
178
+ ## จัดการโปรเจค
179
+
180
+ โปรเจคใช้สำหรับเก็บงานและกฏของ AI
181
+
182
+ ### 1. ดูโปรเจคทั้งหมด
183
+ ```bash
184
+ kob projects:list
185
+ ```
186
+
187
+ ### 2. สร้างโปรเจคใหม่
188
+ ```bash
189
+ kob projects:create "ชื่อโปรเจค" --description "รายละเอียด"
190
+ ```
191
+
192
+ **ตัวอย่าง:**
193
+ ```bash
194
+ kob projects:create "แชทบอทขายของ" \
195
+ --description "AI chatbot สำหรับร้านค้าออนไลน์"
196
+ ```
197
+
198
+ ### 3. แก้ไขโปรเจค
199
+ ```bash
200
+ kob projects:update PROJECT_ID \
201
+ --name "ชื่อใหม่" \
202
+ --description "รายละเอียดใหม่"
203
+ ```
204
+
205
+ **ตัวอย่าง:**
206
+ ```bash
207
+ kob projects:update abc-123-def \
208
+ --name "แชทบอท V2"
209
+ ```
210
+
211
+ ### 4. ลบโปรเจค
212
+ ```bash
213
+ kob projects:delete PROJECT_ID
214
+ ```
215
+
216
+ **ตัวอย่าง:**
217
+ ```bash
218
+ kob projects:delete abc-123-def
219
+ ```
220
+
221
+ ⚠️ **คำเตือน:** การลบโปรเจคจะลบกฏทั้งหมดของโปรเจคนั้นด้วย!
222
+
223
+ ---
224
+
225
+ ## ตั้งกฏให้ AI
226
+
227
+ กฏใช้ควบคุมพฤติกรรม AI ในแต่ละโปรเจค
228
+
229
+ ### ประเภทของกฏ:
230
+ - `forbidden` (🚫) - สิ่งที่ AI **ห้ามทำ**
231
+ - `required` (✅) - สิ่งที่ AI **ต้องทำ**
232
+ - `custom` (📌) - กฏทั่วไป
233
+
234
+ ### 1. ดูกฏของโปรเจค
235
+ ```bash
236
+ kob rules:list --project-id PROJECT_ID
237
+ ```
238
+
239
+ ### 2. สร้างกฏใหม่
240
+
241
+ **กฏแบบ Forbidden (ห้ามทำ):**
242
+ ```bash
243
+ kob rules:create \
244
+ --project-id PROJECT_ID \
245
+ --text "ห้ามตอบเกี่ยวกับการเมือง" \
246
+ --type forbidden
247
+ ```
248
+
249
+ **กฏแบบ Required (ต้องทำ):**
250
+ ```bash
251
+ kob rules:create \
252
+ --project-id PROJECT_ID \
253
+ --text "ต้องตอบเป็นภาษาไทยเท่านั้น" \
254
+ --type required
255
+ ```
256
+
257
+ **กฏแบบ Custom (ทั่วไป):**
258
+ ```bash
259
+ kob rules:create \
260
+ --project-id PROJECT_ID \
261
+ --text "ตอบสั้นๆ ไม่เกิน 3 ประโยค" \
262
+ --type custom
263
+ ```
264
+
265
+ ### 3. แก้ไขกฏ
266
+ ```bash
267
+ kob rules:update RULE_ID \
268
+ --project-id PROJECT_ID \
269
+ --text "ข้อความใหม่" \
270
+ --type required \
271
+ --active true
272
+ ```
273
+
274
+ **ปิดใช้งานกฏชั่วคราว:**
275
+ ```bash
276
+ kob rules:update RULE_ID \
277
+ --project-id PROJECT_ID \
278
+ --active false
279
+ ```
280
+
281
+ ### 4. ลบกฏ
282
+ ```bash
283
+ kob rules:delete RULE_ID \
284
+ --project-id PROJECT_ID
285
+ ```
286
+
287
+ ### 5. ใช้โปรเจคพร้อมกฏตอนแชท
288
+
289
+ ```bash
290
+ kob chat "สวัสดี" \
291
+ --project-id PROJECT_ID
292
+ ```
293
+
294
+ AI จะทำตามกฏที่ตั้งไว้ทั้งหมด!
295
+
296
+ ---
297
+
298
+ ## ดูเครดิต
299
+
300
+ ### 1. เช็คยอดเงินคงเหลือ
301
+ ```bash
302
+ kob balance
303
+ ```
304
+
305
+ **ตัวอย่าง output:**
306
+ ```
307
+ 💰 Your Credit Balance:
308
+ ────────────────────────────────────────────────────────────
309
+ Balance: 250 credits
310
+ 1 credit = $0.01 USD
311
+ Approximate USD value: $2.50
312
+ ```
313
+
314
+ ### 2. ดูประวัติเติมเครดิต
315
+ ```bash
316
+ kob credits:history
317
+ ```
318
+
319
+ **แสดง 20 รายการล่าสุด:**
320
+ ```bash
321
+ kob credits:history --limit 20 --offset 0
322
+ ```
323
+
324
+ **แสดง 50 รายการ:**
325
+ ```bash
326
+ kob credits:history --limit 50
327
+ ```
328
+
329
+ **ดูหน้าถัดไป (ข้าม 50 รายการแรก):**
330
+ ```bash
331
+ kob credits:history --offset 50
332
+ ```
333
+
334
+ ---
335
+
336
+ ## เทคนิคขั้นสูง
337
+
338
+ ### 1. ใช้ System Prompt
339
+
340
+ กำหนดบุคลิก AI:
341
+ ```bash
342
+ kob chat "สวัสดี" \
343
+ --system-prompt "คุณเป็นผู้ช่วยเขียนโปรแกรม เชี่ยวชาญ Python"
344
+ ```
345
+
346
+ ### 2. ปรับ Temperature
347
+
348
+ - `0.0-0.3` = ตอบแน่นอน, เหมาะกับโค้ด
349
+ - `0.5-0.7` = ปกติ (default: 0.7)
350
+ - `1.0-2.0` = สร้างสรรค์, เหมาะกับเรื่องราว
351
+
352
+ ```bash
353
+ # เขียนโค้ด - ใช้ temperature ต่ำ
354
+ kob chat "เขียนฟังก์ชัน sort" \
355
+ --temperature 0.3
356
+
357
+ # เขียนเรื่องสั้น - ใช้ temperature สูง
358
+ kob stream "เขียนนิยาย sci-fi" \
359
+ --temperature 1.5
360
+ ```
361
+
362
+ ### 3. จำกัดจำนวน Tokens
363
+
364
+ ```bash
365
+ kob chat "อธิบายสั้นๆ" \
366
+ --max-tokens 500
367
+ ```
368
+
369
+ ### 4. Workflow ครบวงจร
370
+
371
+ ```bash
372
+ # 1. เชื่อมต่อ
373
+ kob auth:verify
374
+
375
+ # 2. ดูโมเดล
376
+ kob models --provider DeepSeek
377
+
378
+ # 3. สร้างโปรเจค
379
+ kob projects:create "ผู้ช่วยเขียนโค้ด"
380
+
381
+ # 4. ตั้งกฏ
382
+ kob rules:create \
383
+ --project-id YOUR_ID \
384
+ --text "ตอบเป็นภาษาไทย" \
385
+ --type required
386
+
387
+ kob rules:create \
388
+ --project-id YOUR_ID \
389
+ --text "ห้ามตอบเกี่ยวกับการเมือง" \
390
+ --type forbidden
391
+
392
+ # 5. เริ่มใช้งาน
393
+ kob chat:interactive \
394
+ --project-id YOUR_ID \
395
+ --provider DeepSeek \
396
+ --model deepseek-chat
397
+
398
+ # 6. เช็คเครดิต
399
+ kob balance
400
+ kob credits:history
401
+ ```
402
+
403
+ ### 5. JSON Output
404
+
405
+ ดูโมเดลแบบ JSON:
406
+ ```bash
407
+ kob models --format json
408
+ ```
409
+
410
+ เหมาะสำหรับเขียน script ต่อ!
411
+
412
+ ---
413
+
414
+ ## แก้ปัญหา
415
+
416
+ ### ❌ Error: KOB_API_KEY environment variable is required
417
+
418
+ **สาเหตุ:** ยังไม่ได้ตั้งค่า credentials
419
+
420
+ **วิธีแก้:**
421
+ 1. สร้างไฟล์ `.env` ในโฟลเดอร์ `kob-cli`
422
+ 2. ใส่ API Key
423
+ 3. ลองใหม่อีกครั้ง
424
+
425
+ ### ❌ Authentication failed
426
+
427
+ **สาเหตุ:** API Key ผิด
428
+
429
+ **วิธีแก้:**
430
+ 1. ตรวจสอบว่าคัดลอกมาถูกต้อง
431
+ 2. เข้า https://www.kob-ai.dev
432
+ 3. ถ้าไม่แน่ใจ ให้สร้าง Key ใหม่
433
+
434
+ ### ❌ Insufficient credits
435
+
436
+ **สาเหตุ:** เครดิตหมด
437
+
438
+ **วิธีแก้:**
439
+ 1. เช็คยอดคงเหลือ: `kob balance`
440
+ 2. เติมเครดิตที่ https://www.kob-ai.dev
441
+ 3. รอ 1-2 นาที แล้วลองใหม่
442
+
443
+ ### ❌ Resource not found
444
+
445
+ **สาเหตุ:** PROJECT_ID หรือ RULE_ID ไม่ถูกต้อง
446
+
447
+ **วิธีแก้:**
448
+ 1. ดูโปรเจคทั้งหมด: `kob projects:list`
449
+ 2. คัดลอก ID ที่ถูกต้อง
450
+ 3. ลองใหม่อีกครั้ง
451
+
452
+ ### ❌ AI provider error
453
+
454
+ **สาเหตุ:** AI Provider มีปัญหา หรือโมเดลถูกถอน
455
+
456
+ **วิธีแก้:**
457
+ 1. ลองใช้โมเดลอื่น
458
+ 2. ดูโมเดลที่ใช้ได้: `kob models`
459
+ 3. ลองใหม่อีกครั้ง
460
+
461
+ ### ❌ เครดิตถูกหักเยอะผิดปกติ
462
+
463
+ **สาเหตุ:** ข้อความยาว หรือใช้โมเดลราคาแพง
464
+
465
+ **วิธีแก้:**
466
+ 1. ใช้โมเดลที่ถูกกว่า (DeepSeek V4 Flash ถูกสุด)
467
+ 2. จำกัด max-tokens: `--max-tokens 2000`
468
+ 3. ดูราคาโมเดล: `kob models`
469
+
470
+ ---
471
+
472
+ ## 💡 เคล็ดลับ
473
+
474
+ ### ประหยัดเครดิต
475
+ 1. ใช้ `deepseek-v4-flash` สำหรับงานทั่วไป (ถูกสุด)
476
+ 2. ตั้ง `--max-tokens` ให้เหมาะสม
477
+ 3. ใช้ Interactive mode แทนการส่ง chat หลายครั้ง
478
+ 4. ตรวจสอบเครดิตบ่อยๆ ด้วย `balance`
479
+
480
+ ### ได้คำตอบที่ดี
481
+ 1. ตั้ง System Prompt ให้ชัดเจน
482
+ 2. ใช้ Project Rules ควบคุม AI
483
+ 3. ปรับ temperature ให้เหมาะกับงาน
484
+ 4. ให้ context เพียงพอในข้อความ
485
+
486
+ ### ใช้งาน efisien
487
+ 1. ใช้ chat:interactive สำหรับคุยยาวๆ
488
+ 2. ใช้ stream สำหรับข้อความยาว
489
+ 3. สร้าง project แยกตามการใช้งาน
490
+ 4. ตั้ง rules ไว้ล่วงหน้า
491
+
492
+ ---
493
+
494
+ ## 📞 ต้องการความช่วยเหลือ?
495
+
496
+ - **เอกสารครบถ้วน:** อ่าน [README.md](README.md)
497
+ - **ข้อมูลเทคนิค:** อ่าน [SPECTS.md](SPECTS.md)
498
+ - **เริ่มต้นเร็ว:** อ่าน [QUICKSTART.md](QUICKSTART.md)
499
+ - **เติมเครดิต:** https://www.kob-ai.dev
500
+ - **ดู API Keys:** https://www.kob-ai.dev
501
+
502
+ ---
503
+
504
+ ## 🎓 สรุปคำสั่งทั้งหมด
505
+
506
+ | คำสั่ง | หน้าที่ | ตัวอย่าง |
507
+ |--------|---------|----------|
508
+ | `auth:verify` | เช็คการเชื่อมต่อ | `kob auth:verify` |
509
+ | `balance` | ดูยอดเงิน | `kob balance` |
510
+ | `chat` | ส่งข้อความ | `kob chat "Hello"` |
511
+ | `chat:interactive` | คุยต่อเนื่อง | `kob chat:interactive` |
512
+ | `stream` | ตอบแบบ real-time | `kob stream "Write..."` |
513
+ | `models` | ดูโมเดล | `kob models` |
514
+ | `projects:list` | ดูโปรเจค | `kob projects:list` |
515
+ | `projects:create` | สร้างโปรเจค | `kob projects:create "Name"` |
516
+ | `projects:update` | แก้ไขโปรเจค | `kob projects:update ID --name "New"` |
517
+ | `projects:delete` | ลบโปรเจค | `kob projects:delete ID` |
518
+ | `rules:list` | ดูกฏ | `kob rules:list --project-id ID` |
519
+ | `rules:create` | สร้างกฏ | `kob rules:create --project-id ID --text "..." --type required` |
520
+ | `rules:update` | แก้ไขกฏ | `kob rules:update ID --project-id ID --text "..."` |
521
+ | `rules:delete` | ลบกฏ | `kob rules:delete ID --project-id ID` |
522
+ | `credits:history` | ดูประวัติเครดิต | `kob credits:history` |
523
+
524
+ ---
525
+
526
+ **Happy Coding! 🚀**
package/QUICKSTART.md ADDED
@@ -0,0 +1,147 @@
1
+ # 🚀 Quick Start Guide - KOB AI CLI
2
+
3
+ ## 1. Setup (2 minutes)
4
+
5
+ ### Install Dependencies
6
+ ```bash
7
+ cd kob-cli
8
+ bun install
9
+ ```
10
+
11
+ ### Configure Credentials
12
+ Create a `.env` file:
13
+ ```bash
14
+ KOB_API_BASE_URL=https://www.kob-ai.dev
15
+ KOB_API_KEY=kob_your_api_key_here
16
+ ```
17
+
18
+ **Get your credentials from:** https://www.kob-ai.dev
19
+
20
+ ---
21
+
22
+ ## 2. Verify Setup
23
+ ```bash
24
+ kob auth:verify
25
+ ```
26
+
27
+ You should see your user info and credit balance.
28
+
29
+ ---
30
+
31
+ ## 3. Common Tasks
32
+
33
+ ### Check Balance
34
+ ```bash
35
+ kob balance
36
+ ```
37
+
38
+ ### List Available Models
39
+ ```bash
40
+ kob models
41
+ ```
42
+
43
+ ### Chat with AI
44
+ ```bash
45
+ kob chat "Hello, how are you?" \
46
+ --provider DeepSeek \
47
+ --model deepseek-chat
48
+ ```
49
+
50
+ ### Interactive Chat Mode
51
+ ```bash
52
+ kob chat:interactive
53
+ ```
54
+
55
+ Type messages and get responses. Use `/exit` to quit.
56
+
57
+ ### Stream Response (Real-time)
58
+ ```bash
59
+ kob stream "Write a poem about coding"
60
+ ```
61
+
62
+ ---
63
+
64
+ ## 4. Project Management
65
+
66
+ ### Create a Project
67
+ ```bash
68
+ kob projects:create "My Chatbot"
69
+ ```
70
+
71
+ ### Add Rules to Project
72
+ ```bash
73
+ kob rules:create \
74
+ --project-id YOUR_PROJECT_ID \
75
+ --text "Always respond in Thai" \
76
+ --type required
77
+ ```
78
+
79
+ ### Chat with Project Rules
80
+ ```bash
81
+ kob chat "สวัสดี" \
82
+ --project-id YOUR_PROJECT_ID
83
+ ```
84
+
85
+ ---
86
+
87
+ ## 5. View History
88
+
89
+ ### Credit History
90
+ ```bash
91
+ kob credits:history
92
+ ```
93
+
94
+ ### List Projects
95
+ ```bash
96
+ kob projects:list
97
+ ```
98
+
99
+ ### List Rules
100
+ ```bash
101
+ kob rules:list --project-id YOUR_PROJECT_ID
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 6. Help & Documentation
107
+
108
+ ### View All Commands
109
+ ```bash
110
+ kob --help
111
+ ```
112
+
113
+ ### Command-Specific Help
114
+ ```bash
115
+ kob chat --help
116
+ kob projects --help
117
+ ```
118
+
119
+ ### Full Documentation
120
+ See [README.md](README.md) for complete documentation.
121
+
122
+ ---
123
+
124
+ ## Troubleshooting
125
+
126
+ **Problem:** "KOB_API_KEY environment variable is required"
127
+ - **Solution:** Make sure your `.env` file exists with correct credentials
128
+
129
+ **Problem:** "Authentication failed"
130
+ - **Solution:** Check that your API key is correct and active
131
+
132
+ **Problem:** "Insufficient credits"
133
+ - **Solution:** Top up your account at https://www.kob-ai.dev
134
+
135
+ ---
136
+
137
+ ## Next Steps
138
+
139
+ 1. ✅ Try different AI models
140
+ 2. ✅ Create projects for different use cases
141
+ 3. ✅ Set up rules to control AI behavior
142
+ 4. ✅ Use streaming for long responses
143
+ 5. ✅ Monitor your credit usage
144
+
145
+ ---
146
+
147
+ **Need Help?** See [README.md](README.md) or [SPECTS.md](SPECTS.md) for detailed documentation.