@nclamvn/vibecode-cli 2.0.0 → 2.2.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.
Files changed (53) hide show
  1. package/.vibecode/learning/fixes.json +1 -0
  2. package/.vibecode/learning/preferences.json +1 -0
  3. package/README.md +310 -49
  4. package/SESSION_NOTES.md +154 -0
  5. package/bin/vibecode.js +235 -2
  6. package/package.json +5 -2
  7. package/src/agent/decomposition.js +476 -0
  8. package/src/agent/index.js +391 -0
  9. package/src/agent/memory.js +542 -0
  10. package/src/agent/orchestrator.js +917 -0
  11. package/src/agent/self-healing.js +516 -0
  12. package/src/commands/agent.js +349 -0
  13. package/src/commands/ask.js +230 -0
  14. package/src/commands/assist.js +413 -0
  15. package/src/commands/build.js +345 -4
  16. package/src/commands/debug.js +565 -0
  17. package/src/commands/docs.js +167 -0
  18. package/src/commands/git.js +1024 -0
  19. package/src/commands/go.js +635 -0
  20. package/src/commands/learn.js +294 -0
  21. package/src/commands/migrate.js +341 -0
  22. package/src/commands/plan.js +8 -2
  23. package/src/commands/refactor.js +205 -0
  24. package/src/commands/review.js +126 -1
  25. package/src/commands/security.js +229 -0
  26. package/src/commands/shell.js +486 -0
  27. package/src/commands/templates.js +397 -0
  28. package/src/commands/test.js +194 -0
  29. package/src/commands/undo.js +281 -0
  30. package/src/commands/watch.js +556 -0
  31. package/src/commands/wizard.js +322 -0
  32. package/src/config/constants.js +5 -1
  33. package/src/config/templates.js +146 -15
  34. package/src/core/backup.js +325 -0
  35. package/src/core/error-analyzer.js +237 -0
  36. package/src/core/fix-generator.js +195 -0
  37. package/src/core/iteration.js +226 -0
  38. package/src/core/learning.js +295 -0
  39. package/src/core/session.js +18 -2
  40. package/src/core/test-runner.js +281 -0
  41. package/src/debug/analyzer.js +329 -0
  42. package/src/debug/evidence.js +228 -0
  43. package/src/debug/fixer.js +348 -0
  44. package/src/debug/image-analyzer.js +304 -0
  45. package/src/debug/index.js +378 -0
  46. package/src/debug/verifier.js +346 -0
  47. package/src/index.js +102 -0
  48. package/src/providers/claude-code.js +12 -7
  49. package/src/templates/index.js +724 -0
  50. package/src/ui/__tests__/error-translator.test.js +390 -0
  51. package/src/ui/dashboard.js +364 -0
  52. package/src/ui/error-translator.js +775 -0
  53. package/src/utils/image.js +222 -0
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1 @@
1
+ {}
package/README.md CHANGED
@@ -1,91 +1,352 @@
1
1
  # Vibecode CLI
2
2
 
3
- > Build software with discipline - AI coding with guardrails
3
+ ```
4
+ ██╗ ██╗██╗██████╗ ███████╗ ██████╗ ██████╗ ██████╗ ███████╗
5
+ ██║ ██║██║██╔══██╗██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔════╝
6
+ ██║ ██║██║██████╔╝█████╗ ██║ ██║ ██║██║ ██║█████╗
7
+ ╚██╗ ██╔╝██║██╔══██╗██╔══╝ ██║ ██║ ██║██║ ██║██╔══╝
8
+ ╚████╔╝ ██║██████╔╝███████╗╚██████╗╚██████╔╝██████╔╝███████╗
9
+ ╚═══╝ ╚═╝╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝
10
+ ```
4
11
 
5
- [![npm version](https://badge.fury.io/js/vibecode-cli.svg)](https://badge.fury.io/js/vibecode-cli)
12
+ **Build Software with Discipline** — AI coding with guardrails
13
+
14
+ [![npm version](https://img.shields.io/npm/v/@nclamvn/vibecode-cli.svg)](https://www.npmjs.com/package/@nclamvn/vibecode-cli)
6
15
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
16
 
17
+ ---
18
+
8
19
  ## What is Vibecode?
9
20
 
10
- Vibecode CLI transforms AI coding tools into disciplined builders. It provides:
21
+ Vibecode is a CLI tool that brings **discipline** to AI-assisted development. Instead of chaotic prompt-and-pray coding, Vibecode enforces a structured workflow:
22
+
23
+ 1. **Define** what you want (Intake)
24
+ 2. **Design** how it works (Blueprint)
25
+ 3. **Agree** on deliverables (Contract)
26
+ 4. **Build** with AI assistance
27
+ 5. **Review** against criteria
28
+ 6. **Ship** with confidence
11
29
 
12
- - 🎯 **Guided workflow** - Step-by-step from idea to production
13
- - 🔒 **Quality gates** - No shipping without checks
14
- - 📋 **Contract-first** - Clear scope before building
15
- - 📊 **State tracking** - Always know where you are
16
- - 📝 **Audit trail** - Every decision documented
30
+ ---
17
31
 
18
- ## Installation
32
+ ## Quick Start
19
33
 
20
34
  ```bash
21
- npm install -g vibecode-cli
35
+ # Install globally
36
+ npm install -g @nclamvn/vibecode-cli
37
+
38
+ # Initialize in your project
39
+ cd your-project
40
+ vibecode init
41
+
42
+ # Start guided session
43
+ vibecode start
22
44
  ```
23
45
 
24
- Requires Node.js 18 or higher.
46
+ That's it! Vibecode will guide you through the entire process.
25
47
 
26
- ## Quick Start
48
+ ---
49
+
50
+ ## Philosophy
51
+
52
+ ### AI as Pipeline, not Tool
53
+
54
+ Traditional approach:
55
+ ```
56
+ Human → AI → Code → ???
57
+ ```
58
+
59
+ Vibecode approach:
60
+ ```
61
+ Human → Contract → AI Pipeline → Validated Code → Ship
62
+ ↑ │
63
+ └──────── Feedback Loop ───────┘
64
+ ```
65
+
66
+ ### Core Principles
67
+
68
+ | Principle | Description |
69
+ |-----------|-------------|
70
+ | **Contract-First** | Lock scope before building. No scope creep. |
71
+ | **Evidence-Based** | Every build produces diff, logs, screenshots |
72
+ | **Iterative** | Build → Test → Fix loop until tests pass |
73
+ | **Disciplined** | State machine prevents skipping steps |
74
+
75
+ ---
76
+
77
+ ## Workflow
78
+
79
+ ```
80
+ ┌─────────────────────────────────────────────────────────────────┐
81
+ │ VIBECODE WORKFLOW │
82
+ ├─────────────────────────────────────────────────────────────────┤
83
+ │ │
84
+ │ PHASE A: PLANNING │
85
+ │ ┌──────┐ ┌───────────┐ ┌──────────┐ ┌────────┐ │
86
+ │ │ INIT │ → │ INTAKE │ → │ BLUEPRINT│ → │CONTRACT│ │
87
+ │ └──────┘ └───────────┘ └──────────┘ └────────┘ │
88
+ │ │ │
89
+ │ ▼ │
90
+ │ ┌────────┐ │
91
+ │ │ LOCK │ │
92
+ │ └────────┘ │
93
+ │ │ │
94
+ │ PHASE B: EXECUTION │ │
95
+ │ ▼ │
96
+ │ ┌────────┐ ┌───────┐ ┌────────┐ ┌──────────┐ │
97
+ │ │SHIPPED │ ← │REVIEW │ ← │ BUILD │ ← │ PLAN │ │
98
+ │ └────────┘ └───────┘ └────────┘ └──────────┘ │
99
+ │ │ ▲ │
100
+ │ │ │ │
101
+ │ └─────────────┘ │
102
+ │ (if failed, rebuild) │
103
+ │ │
104
+ └─────────────────────────────────────────────────────────────────┘
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Commands Reference
110
+
111
+ ### Phase A: Planning
112
+
113
+ | Command | Description | Options |
114
+ |---------|-------------|---------|
115
+ | `vibecode init` | Initialize workspace | `-f, --force` `-q, --quiet` |
116
+ | `vibecode start` | Start guided session | `-r, --resume` |
117
+ | `vibecode status` | Show current state | `--json` `-v, --verbose` |
118
+ | `vibecode lock` | Lock contract, generate spec hash | `-d, --dry-run` `-f, --force` |
119
+ | `vibecode doctor` | Check installation health | — |
120
+
121
+ ### Phase B: Execution
122
+
123
+ | Command | Description | Options |
124
+ |---------|-------------|---------|
125
+ | `vibecode plan` | Create execution plan | — |
126
+ | `vibecode build` | Build with AI | See Build Flags below |
127
+ | `vibecode review` | Review against criteria | `--skip-manual` |
128
+ | `vibecode snapshot` | Create release | `--patch` `--minor` `--major` |
129
+ | `vibecode config` | Manage settings | `--show` `--provider <name>` |
130
+
131
+ ---
132
+
133
+ ## Build Flags
134
+
135
+ The `build` command supports multiple modes:
27
136
 
28
137
  ```bash
29
- # 1. Initialize workspace
30
- cd your-project
138
+ # Manual build
139
+ vibecode build --start # Start building
140
+ vibecode build --evidence # Capture git diff
141
+ vibecode build --complete # Mark as done
142
+
143
+ # AI-powered build
144
+ vibecode build --auto # Single AI build with Claude Code
145
+
146
+ # Iterative build (recommended)
147
+ vibecode build --iterate # Build → Test → Fix loop
148
+ vibecode build --iterate --max 5 # Max 5 iterations
149
+ vibecode build --iterate --strict # Exit with error if fails
150
+ ```
151
+
152
+ ### How `--iterate` Works
153
+
154
+ ```
155
+ ┌─────────────────────────────────────────────────────────┐
156
+ │ ITERATIVE BUILD LOOP │
157
+ ├─────────────────────────────────────────────────────────┤
158
+ │ │
159
+ │ ┌─────────┐ │
160
+ │ │ START │ │
161
+ │ └────┬────┘ │
162
+ │ ▼ │
163
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
164
+ │ │ BUILD │ ──▶ │ TEST │ ──▶ │ ANALYZE │ │
165
+ │ │(Claude) │ │(npm test│ │ ERRORS │ │
166
+ │ └─────────┘ │ + lint) │ └────┬────┘ │
167
+ │ ▲ └─────────┘ │ │
168
+ │ │ ▼ │
169
+ │ │ ┌─────────┐ ┌─────────┐ │
170
+ │ └──────────│GENERATE │ ◀── │ ERRORS? │ │
171
+ │ │FIX PROMPT│ └────┬────┘ │
172
+ │ └─────────┘ │ No │
173
+ │ ▼ │
174
+ │ ┌─────────┐ │
175
+ │ │ DONE! │ │
176
+ │ └─────────┘ │
177
+ │ │
178
+ └─────────────────────────────────────────────────────────┘
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Examples
184
+
185
+ ### Example 1: Simple CLI Calculator
186
+
187
+ ```bash
188
+ mkdir my-calculator && cd my-calculator
31
189
  vibecode init
32
190
 
33
- # 2. Start guided session
34
191
  vibecode start
192
+ # Describe: "CLI calculator with add, subtract, multiply, divide"
35
193
 
36
- # 3. Check status anytime
37
- vibecode status
194
+ vibecode start # Continue to blueprint
195
+ vibecode start # Continue to contract
196
+ vibecode lock # Lock the contract
38
197
 
39
- # 4. Lock contract when ready
40
- vibecode lock
198
+ vibecode plan # Generate execution plan
199
+ vibecode build --iterate # Build until tests pass
41
200
 
42
- # 5. Health check
43
- vibecode doctor
201
+ vibecode review # Review the build
202
+ vibecode snapshot # Create v1.0.0
44
203
  ```
45
204
 
46
- ## Commands
205
+ ### Example 2: Landing Page
47
206
 
48
- | Command | Description |
49
- |---------|-------------|
50
- | `vibecode init` | Initialize .vibecode/ workspace |
51
- | `vibecode start` | Start guided session |
52
- | `vibecode status` | Show current state and progress |
53
- | `vibecode lock` | Validate and lock contract |
54
- | `vibecode doctor` | Check installation health |
207
+ ```bash
208
+ mkdir landing && cd landing
209
+ vibecode init
210
+ vibecode start
211
+ # Describe: "Modern landing page with hero, features, pricing, and contact form"
55
212
 
56
- ## Workflow
213
+ # ... follow the workflow
214
+ vibecode build --iterate --max 3
215
+ ```
216
+
217
+ ### Example 3: Using with Existing Project
57
218
 
219
+ ```bash
220
+ cd my-existing-project
221
+ vibecode init
222
+ vibecode start
223
+ # Describe your feature/fix
224
+
225
+ vibecode build --auto # Single AI build
58
226
  ```
59
- INIT → INTAKE → BLUEPRINT → CONTRACT → LOCK → BUILD → REVIEW → SHIP
227
+
228
+ ---
229
+
230
+ ## Project Structure
231
+
232
+ After `vibecode init`, your project will have:
233
+
60
234
  ```
235
+ your-project/
236
+ ├── .vibecode/
237
+ │ ├── vibecode.yaml # Configuration
238
+ │ ├── state.json # State machine
239
+ │ ├── sessions/ # Session data
240
+ │ │ └── abc123/ # Session ID
241
+ │ │ ├── intake.md
242
+ │ │ ├── blueprint.md
243
+ │ │ ├── contract.md
244
+ │ │ ├── plan.md
245
+ │ │ ├── coder_pack.md
246
+ │ │ └── evidence/
247
+ │ │ ├── changes.diff
248
+ │ │ ├── build.log
249
+ │ │ └── screenshots/
250
+ │ └── logs/
251
+ │ └── audit.log
252
+ └── ... your code
253
+ ```
254
+
255
+ ---
256
+
257
+ ## State Machine
258
+
259
+ Vibecode enforces a strict state machine to prevent skipping steps:
260
+
261
+ | State | Description | Next States |
262
+ |-------|-------------|-------------|
263
+ | `INIT` | Fresh workspace | `INTAKE_CAPTURED` |
264
+ | `INTAKE_CAPTURED` | Description recorded | `BLUEPRINT_DRAFTED` |
265
+ | `BLUEPRINT_DRAFTED` | Architecture designed | `CONTRACT_DRAFTED` |
266
+ | `CONTRACT_DRAFTED` | Scope defined | `CONTRACT_LOCKED` |
267
+ | `CONTRACT_LOCKED` | Ready to build | `PLAN_CREATED` |
268
+ | `PLAN_CREATED` | Plan generated | `BUILD_IN_PROGRESS` |
269
+ | `BUILD_IN_PROGRESS` | Building... | `BUILD_DONE` |
270
+ | `BUILD_DONE` | Build complete | `REVIEW_PASSED` / `REVIEW_FAILED` |
271
+ | `REVIEW_PASSED` | QA passed | `SHIPPED` |
272
+ | `REVIEW_FAILED` | QA failed | `BUILD_IN_PROGRESS` |
273
+ | `SHIPPED` | Released! | — |
274
+
275
+ ---
276
+
277
+ ## Requirements
61
278
 
62
- ## Files Created
279
+ - **Node.js** >= 18.0.0
280
+ - **Claude Code CLI** (for `--auto` and `--iterate` modes)
281
+ ```bash
282
+ npm install -g @anthropic-ai/claude-code
283
+ ```
63
284
 
285
+ ---
286
+
287
+ ## Configuration
288
+
289
+ ### CLAUDE.md
290
+
291
+ Create a `CLAUDE.md` file in your project root to provide context to Claude Code:
292
+
293
+ ```markdown
294
+ # Project Rules
295
+
296
+ - Use TypeScript for all new files
297
+ - Follow existing code style
298
+ - Write tests for new features
299
+ - No console.log in production code
64
300
  ```
65
- .vibecode/
66
- ├── vibecode.yaml # Configuration
67
- ├── state.json # Current state
68
- ├── sessions/ # Session files
69
- │ └── [timestamp]/
70
- │ ├── intake.md
71
- │ ├── blueprint.md
72
- │ └── contract.md
73
- └── logs/ # Audit trail
301
+
302
+ This will be automatically injected when using `--auto` or `--iterate`.
303
+
304
+ ---
305
+
306
+ ## Troubleshooting
307
+
308
+ ### "No Vibecode workspace found"
309
+
310
+ Run `vibecode init` first.
311
+
312
+ ### "Invalid transition"
313
+
314
+ You're trying to skip a step. Check current state with `vibecode status`.
315
+
316
+ ### "Claude Code CLI not found"
317
+
318
+ Install Claude Code:
319
+ ```bash
320
+ npm install -g @anthropic-ai/claude-code
74
321
  ```
75
322
 
76
- ## Philosophy
323
+ ### Build keeps failing
324
+
325
+ 1. Check `vibecode status --verbose`
326
+ 2. Look at `.vibecode/sessions/<id>/evidence/build.log`
327
+ 3. Try `vibecode build --iterate --max 5` for more attempts
328
+
329
+ ---
77
330
 
78
- Vibecode is built on the "AI as Pipeline" philosophy:
331
+ ## Links
79
332
 
80
- - **AI proposes** based on patterns and best practices
81
- - **Human decides** based on context and goals
82
- - **Contract locks** scope before building
83
- - **Evidence proves** work was done correctly
333
+ - **npm**: https://www.npmjs.com/package/@nclamvn/vibecode-cli
334
+ - **Issues**: https://github.com/nclamvn/vibecode-cli/issues
335
+
336
+ ---
84
337
 
85
338
  ## License
86
339
 
87
- MIT © Lâm
340
+ MIT © [Lam](https://github.com/nclamvn)
341
+
342
+ ---
343
+
344
+ ## Credits
345
+
346
+ Powered by [Claude Code](https://github.com/anthropics/claude-code)
88
347
 
89
348
  ---
90
349
 
91
- Built with ❤️ using Vibecode Kit v4.0
350
+ <p align="center">
351
+ <strong>"Contract LOCKED = License to Build"</strong>
352
+ </p>
@@ -0,0 +1,154 @@
1
+ # VIBECODE CLI - SESSION NOTES
2
+ > Cập nhật: 2025-12-22 (Latest)
3
+
4
+ ---
5
+
6
+ ## 📍 TRẠNG THÁI HIỆN TẠI
7
+
8
+ ### ✅ ĐÃ HOÀN THÀNH
9
+
10
+ 1. **Landing Page** - Port design Notion + Anthropic style
11
+ - File: `docs-site/src/pages/index.tsx`
12
+ - Style: WHITE background (#FAFAFA), Be Vietnam Pro font
13
+ - Sections: Hero, Terminal, Process, Features, Philosophy, CTA
14
+
15
+ 2. **i18n Vietnamese** - Đa ngôn ngữ EN/VI
16
+ - Translations: `docs-site/i18n/vi/`
17
+ - Docs tiếng Việt đầy đủ 26 commands
18
+
19
+ 3. **GitHub Repos** (Private)
20
+ - CLI: https://github.com/nclamvn/vibecode-cli
21
+ - Docs: https://github.com/nclamvn/vibecode-docs
22
+
23
+ 4. **NPM Package**
24
+ - Package: @nclamvn/vibecode-cli
25
+ - Version: **1.8.1** (latest)
26
+ - Status: Deprecated với message cảnh báo beta
27
+
28
+ 5. **UI Fixes**
29
+ - Loại bỏ logo khủng long
30
+ - Footer màu đen đồng nhất (#0A0A0A)
31
+ - Theme toggle icon thu nhỏ 60%
32
+ - Default: Light mode
33
+
34
+ 6. **Bug Fix: Version Hardcoded** ✅ FIXED
35
+ - File: `src/config/constants.js`
36
+ - Before: `export const VERSION = '1.0.1'` (hardcoded)
37
+ - After: `export const VERSION = pkg.version` (dynamic)
38
+ - Published: v1.8.1
39
+
40
+ ---
41
+
42
+ ## 🚧 ĐANG LÀM
43
+
44
+ ### Deploy Render
45
+ - Repo: nclamvn/vibecode-docs
46
+ - File: render.yaml đã có
47
+ - URL Dashboard: https://dashboard.render.com/static/new
48
+ - **BƯỚC TIẾP THEO**:
49
+ 1. Điền `build` vào Publish Directory
50
+ 2. Click "Deploy Static Site"
51
+
52
+ ---
53
+
54
+ ## 📁 CẤU TRÚC PROJECT
55
+
56
+ ```
57
+ /Users/mac/vibecode-cli/
58
+ ├── src/ # CLI source (26 commands)
59
+ │ └── config/constants.js # VERSION đọc từ package.json
60
+ ├── bin/vibecode.js # Entry point
61
+ ├── package.json # v1.8.1
62
+ ├── docs-site/ # Docusaurus site (separate git repo)
63
+ │ ├── src/pages/index.tsx # Landing page
64
+ │ ├── docs/ # English docs
65
+ │ ├── i18n/vi/ # Vietnamese docs
66
+ │ └── render.yaml # Render deploy config
67
+ └── SESSION_NOTES.md # File này
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 🔧 COMMANDS THƯỜNG DÙNG
73
+
74
+ ```bash
75
+ # Dev server docs
76
+ cd /Users/mac/vibecode-cli/docs-site
77
+ npm start
78
+
79
+ # Build docs
80
+ npm run build
81
+
82
+ # Test CLI version
83
+ node bin/vibecode.js --version
84
+
85
+ # Push docs
86
+ cd /Users/mac/vibecode-cli/docs-site
87
+ git add . && git commit -m "message" && git push
88
+
89
+ # Push CLI
90
+ cd /Users/mac/vibecode-cli
91
+ git add . && git commit -m "message" && git push
92
+
93
+ # Publish npm (khi cần)
94
+ npm version patch
95
+ npm publish
96
+
97
+ # Bỏ deprecate npm khi sẵn sàng
98
+ npm deprecate @nclamvn/vibecode-cli ""
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 📊 THỐNG KÊ
104
+
105
+ | Metric | Value |
106
+ |--------|-------|
107
+ | CLI Version | 1.8.1 |
108
+ | CLI Commands | 26 |
109
+ | Lines of Code | 18,612 |
110
+ | JS Files | 167 |
111
+ | Docs Pages | 40+ (EN + VI) |
112
+
113
+ ---
114
+
115
+ ## 🎯 VIỆC CẦN LÀM TIẾP
116
+
117
+ 1. [ ] Hoàn thành deploy Render (điền `build` → Deploy)
118
+ 2. [ ] Test site trên production URL
119
+ 3. [ ] Phase L: Unit Tests & TypeScript (optional)
120
+ 4. [ ] Khi sẵn sàng: Bỏ deprecate npm package
121
+
122
+ ---
123
+
124
+ ## 🔗 LINKS
125
+
126
+ | Resource | URL |
127
+ |----------|-----|
128
+ | Landing Local EN | http://localhost:3000/ |
129
+ | Landing Local VI | http://localhost:3000/vi/ |
130
+ | GitHub CLI | https://github.com/nclamvn/vibecode-cli |
131
+ | GitHub Docs | https://github.com/nclamvn/vibecode-docs |
132
+ | NPM Package | https://www.npmjs.com/package/@nclamvn/vibecode-cli |
133
+ | Render Dashboard | https://dashboard.render.com |
134
+
135
+ ---
136
+
137
+ ## 📝 LỊCH SỬ SESSION
138
+
139
+ | Thời gian | Việc đã làm |
140
+ |-----------|-------------|
141
+ | Session 1 | Landing page, i18n, UI fixes |
142
+ | Session 2 | GitHub push, npm deprecate, version bug fix |
143
+
144
+ ---
145
+
146
+ ## 💬 ĐỂ TIẾP TỤC
147
+
148
+ Chỉ cần nói: **"tiếp tục"** hoặc **"continue"**
149
+
150
+ Hoặc cụ thể hơn:
151
+ - "tiếp tục deploy render"
152
+ - "đọc SESSION_NOTES.md và cho tôi biết trạng thái"
153
+
154
+ Claude sẽ đọc file này và biết cần làm gì tiếp.