Skip to content

Atomic

Low-level primitives: file I/O, git, HTTP, shell, SSH, process management, and testing.

44 modules

ModuleDescription
Lọc mảngLọc các phần tử mảng theo điều kiện
Sắp xếp mảngSắp xếp các phần tử mảng theo thứ tự tăng hoặc giảm dần
Mảng duy nhấtLoại bỏ các giá trị trùng lặp khỏi mảng
OAuth2 Token ExchangeExchange authorization code, refresh token, or client credentials for an access token
Tra cứu DNSTra cứu DNS cho bản ghi tên miền
So sánh Văn bảnTạo sự khác biệt giữa hai chuỗi văn bản
Chỉnh sửa TệpThay thế văn bản trong tệp bằng cách khớp chuỗi chính xác
Kiểm tra tệp tồn tạiKiểm tra xem tệp hoặc thư mục có tồn tại không
Đọc tệpĐọc nội dung từ tệp
Ghi tệpGhi nội dung vào tệp
Git CloneClone một kho lưu trữ git
Git CommitTạo một commit git
Git DiffLấy git diff
HTTP PaginateAutomatically iterate through paginated API endpoints and collect all results
Yêu cầu HTTPGửi yêu cầu HTTP và nhận phản hồi
Xác nhận phản hồi HTTPXác nhận và xác thực các thuộc tính phản hồi HTTP
HTTP SessionSend a sequence of HTTP requests with persistent cookies (login → action → logout)
Webhook WaitStart a temporary server and wait for an incoming webhook callback
LLM ChatTương tác với API LLM cho các thao tác thông minh
Sửa lỗi code AITự động tạo sửa lỗi code dựa trên các vấn đề
Tính toánThực hiện các phép toán cơ bản
Kiểm tra sức khỏe HTTPKiểm tra sức khỏe HTTP / giám sát thời gian hoạt động
Kiểm tra cổngKiểm tra xem cổng mạng có mở hay đóng
Chờ cổngChờ cổng mạng có sẵn
Liệt kê tiến trìnhLiệt kê tất cả các tiến trình nền đang chạy
Khởi động tiến trình nềnKhởi động tiến trình nền (server, dịch vụ, v.v.)
Dừng tiến trìnhDừng tiến trình nền đang chạy
Thực thi lệnh ShellThực thi lệnh shell và bắt đầu ra
Thực thi SSHThực thi lệnh trên máy chủ từ xa qua SSH
Tải xuống SFTPTải tệp từ máy chủ từ xa qua SFTP
Tải lên SFTPTải tệp lên máy chủ từ xa qua SFTP
Chạy các bước E2EThực thi các bước kiểm thử end-to-end tuần tự
Cổng chất lượngĐánh giá các chỉ số chất lượng so với ngưỡng định nghĩa
Chạy kiểm thử HTTPThực thi bộ kiểm thử API HTTP
Chạy LinterChạy kiểm tra lint trên mã nguồn
Tạo báo cáoTạo báo cáo thực thi kiểm thử
Chạy kịch bảnThực thi kiểm thử dựa trên kịch bản (kiểu BDD)
Quét bảo mậtQuét lỗ hổng bảo mật
Chạy bộ kiểm thửThực thi một bộ kiểm thử
Chạy kiểm thử đơn vịThực thi kiểm thử đơn vị
So sánh hình ảnhSo sánh đầu ra hình ảnh để tìm sự khác biệt
Đánh giá chất lượng UIĐánh giá chất lượng UI toàn diện với điểm số đa chiều
Phân tích hình ảnh với AIPhân tích hình ảnh sử dụng OpenAI Vision API (GPT-4V)
So sánh hình ảnhSo sánh hai hình ảnh và xác định sự khác biệt hình ảnh

Modules

Lọc mảng

array.filter

Lọc các phần tử mảng theo điều kiện

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
conditionselect (eq, ne, gt, gte, lt, lte, contains, startswith, endswith, regex, in, notin, exists, empty, notempty)Yes-How to compare each item against the value
valuestringYes-Value to compare each item against (leave empty for exists/empty checks)

Output:

FieldTypeDescription
filteredarrayMảng đã lọc
countnumberMảng đã lọc

Example: Filter numbers greater than 5

yaml
array: [1, 5, 10, 15, 3]
condition: gt
value: 5

Sắp xếp mảng

array.sort

Sắp xếp các phần tử mảng theo thứ tự tăng hoặc giảm dần

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
orderselect (asc, desc)NoascDirection to sort items

Output:

FieldTypeDescription
sortedarrayMảng đã sắp xếp
countnumberMảng đã sắp xếp

Example: Sort numbers ascending

yaml
array: [5, 2, 8, 1, 9]
order: asc

Mảng duy nhất

array.unique

Loại bỏ các giá trị trùng lặp khỏi mảng

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
preserve_orderbooleanNoTrueKeep first occurrence order

Output:

FieldTypeDescription
uniquearrayMảng với các giá trị duy nhất
countnumberMảng với các giá trị duy nhất
duplicates_removednumberMảng với các giá trị duy nhất

Example: Remove duplicates

yaml
array: [1, 2, 2, 3, 4, 3, 5]
preserve_order: true

OAuth2 Token Exchange

auth.oauth2

Exchange authorization code, refresh token, or client credentials for an access token

Parameters:

NameTypeRequiredDefaultDescription
token_urlstringYes-OAuth2 token endpoint URL
grant_typestringNoauthorization_codeOAuth2 grant type
client_idstringYes-OAuth2 application client ID
client_secretstringNo-OAuth2 application client secret
codestringNo-Authorization code received from the OAuth2 authorization flow
redirect_uristringNo-Redirect URI used in the authorization request (must match exactly)
refresh_tokenstringNo-Refresh token for obtaining a new access token
scopestringNo-Space-separated list of OAuth2 scopes
code_verifierstringNo-PKCE code verifier for public clients
client_auth_methodstringNobodyHow to send client credentials to the token endpoint
extra_paramsobjectNo{}Additional parameters to include in the token request
timeoutnumberNo15Maximum time to wait in seconds

Output:

FieldTypeDescription
okbooleanWhether token exchange was successful
access_tokenstringThe access token for API requests
token_typestringToken type (usually "Bearer")
expires_innumberToken lifetime in seconds
refresh_tokenstringRefresh token (if provided by the OAuth2 server)
scopestringGranted scopes
rawobjectFull raw response from the token endpoint
duration_msnumberRequest duration in milliseconds

Example: Exchange authorization code (Google)

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: authorization_code
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
code: 4/0AX4XfWh...
redirect_uri: https://yourapp.com/callback

Example: Refresh an expired token

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: refresh_token
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
refresh_token: ${env.REFRESH_TOKEN}

Example: Client credentials (machine-to-machine)

yaml
token_url: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type: client_credentials
client_id: ${env.AZURE_CLIENT_ID}
client_secret: ${env.AZURE_CLIENT_SECRET}
scope: https://graph.microsoft.com/.default

Example: GitHub OAuth (code exchange)

yaml
token_url: https://github.com/login/oauth/access_token
grant_type: authorization_code
client_id: ${env.GITHUB_CLIENT_ID}
client_secret: ${env.GITHUB_CLIENT_SECRET}
code: abc123...

Tra cứu DNS

dns.lookup

Tra cứu DNS cho bản ghi tên miền

Parameters:

NameTypeRequiredDefaultDescription
domainstringYes-Tên miền cần tra cứu
record_typeselect (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV)NoALoại bản ghi DNS cần truy vấn
timeoutnumberNo10Thời gian chờ truy vấn tính bằng giây

Output:

FieldTypeDescription
okbooleanWhether lookup succeeded
dataobject

Example: A record lookup

yaml
domain: example.com
record_type: A

Example: MX record lookup

yaml
domain: example.com
record_type: MX

So sánh Văn bản

file.diff

Tạo sự khác biệt giữa hai chuỗi văn bản

Parameters:

NameTypeRequiredDefaultDescription
originalstringYes-Văn bản gốc
modifiedstringYes-Văn bản đã chỉnh sửa
context_linesnumberNo3Số dòng ngữ cảnh xung quanh thay đổi
filenamestringNofileTên tệp sử dụng trong tiêu đề so sánh

Output:

FieldTypeDescription
diffstringĐầu ra so sánh hợp nhất
changedbooleanCó thay đổi nào không
additionsnumberSố dòng được thêm
deletionsnumberSố dòng bị xóa

Example: Diff two strings

yaml
original: hello
world
modified: hello
world!
filename: test.txt

Chỉnh sửa Tệp

file.edit

Thay thế văn bản trong tệp bằng cách khớp chuỗi chính xác

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Đường dẫn đến tệp cần chỉnh sửa
old_stringstringYes-Văn bản cần tìm và thay thế
new_stringstringYes-Văn bản thay thế
replace_allbooleanNoFalseThay thế tất cả các lần xuất hiện thay vì chỉ lần đầu tiên
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Mã hóa tệp

Output:

FieldTypeDescription
pathstringĐường dẫn của tệp đã chỉnh sửa
replacementsnumberSố lần thay thế đã thực hiện
diffstringSo sánh hiển thị những gì đã thay đổi

Example: Replace string in file

yaml
path: /tmp/example.py
old_string: def hello():
new_string: def hello_world():

Kiểm tra tệp tồn tại

file.exists

Kiểm tra xem tệp hoặc thư mục có tồn tại không

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file

Output:

FieldTypeDescription
existsbooleanĐường dẫn có tồn tại không
is_filebooleanĐường dẫn có tồn tại không
is_directorybooleanĐường dẫn có tồn tại không

Example: Check file exists

yaml
path: /tmp/data.txt

Đọc tệp

file.read

Đọc nội dung từ tệp

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file

Output:

FieldTypeDescription
contentstringNội dung tệp
sizenumberNội dung tệp

Example: Read text file

yaml
path: /tmp/data.txt
encoding: utf-8

Ghi tệp

file.write

Ghi nội dung vào tệp

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
contentstringYes-Text content to write to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
modeselect (overwrite, append)NooverwriteHow to write content to the file

Output:

FieldTypeDescription
pathstringĐường dẫn tệp
bytes_writtennumberĐường dẫn tệp

Example: Write text file

yaml
path: /tmp/output.txt
content: Hello World
mode: overwrite

Git Clone

git.clone

Clone một kho lưu trữ git

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL kho lưu trữ Git (HTTPS hoặc SSH)
destinationstringYes-Đường dẫn cục bộ để clone vào
branchstringNo-Nhánh để checkout sau khi clone
depthnumberNo-Độ sâu clone nông (bỏ qua để clone đầy đủ)
tokenstringNo-Mã truy cập cá nhân cho kho lưu trữ riêng tư

Output:

FieldTypeDescription
okbooleanWhether clone succeeded
dataobject

Example: Clone public repository

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo

Example: Shallow clone specific branch

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo
branch: develop
depth: 1

Git Commit

git.commit

Tạo một commit git

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Đường dẫn đến kho lưu trữ git
messagestringYes-Thông điệp commit
add_allbooleanNoFalseStage tất cả các thay đổi trước khi commit (git add -A)
filesarrayNo-Các tệp cụ thể để stage trước khi commit
author_namestringNo-Ghi đè tên tác giả commit
author_emailstringNo-Ghi đè email tác giả commit

Output:

FieldTypeDescription
okbooleanWhether commit succeeded
dataobject

Example: Commit all changes

yaml
repo_path: /home/user/project
message: feat: add user authentication
add_all: true

Example: Commit specific files

yaml
repo_path: /home/user/project
message: fix: correct typo in readme
files: ["README.md"]

Git Diff

git.diff

Lấy git diff

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Đường dẫn đến kho lưu trữ git
ref1stringNoHEADTham chiếu đầu tiên (commit, nhánh, thẻ)
ref2stringNo-Tham chiếu thứ hai để so sánh
stagedbooleanNoFalseChỉ hiển thị các thay đổi đã stage (--cached)
stat_onlybooleanNoFalseChỉ hiển thị thống kê tệp (--stat)

Output:

FieldTypeDescription
okbooleanWhether diff succeeded
dataobject

Example: Show unstaged changes

yaml
repo_path: /home/user/project

Example: Compare branches

yaml
repo_path: /home/user/project
ref1: main
ref2: feature/login

Example: Show staged changes stats

yaml
repo_path: /home/user/project
staged: true
stat_only: true

HTTP Paginate

http.paginate

Automatically iterate through paginated API endpoints and collect all results

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
authobjectNo-Authentication credentials for the HTTP request
strategystringNooffsetHow the API implements pagination
data_pathstringNo-Dot-notation path to the array of items in the response (e.g. "data", "results", "items")
offset_paramstringNooffsetQuery parameter name for offset
limit_paramstringNolimitQuery parameter name for page size
page_sizenumberNo100Number of items per page
page_paramstringNopageQuery parameter name for page number
start_pagenumberNo1First page number (usually 0 or 1)
cursor_paramstringNocursorQuery parameter name for cursor token
cursor_pathstringNo-Dot-notation path to the next cursor in the response (e.g. "meta.next_cursor", "pagination.next")
max_pagesnumberNo50Maximum number of pages to fetch (safety limit)
delay_msnumberNo0Milliseconds to wait between page requests (rate limiting)
timeoutnumberNo30Maximum time to wait in seconds
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all pages were fetched successfully
itemsarrayAll collected items across all pages
total_itemsnumberTotal number of items collected
pages_fetchednumberNumber of pages fetched
duration_msnumberTotal duration in milliseconds

Example: Offset pagination (REST API)

yaml
url: https://api.example.com/users
strategy: offset
data_path: data
page_size: 100

Example: Page number pagination

yaml
url: https://api.example.com/products
strategy: page
data_path: results
page_param: page
page_size: 50
start_page: 1

Example: Cursor pagination (Slack, Notion)

yaml
url: https://api.notion.com/v1/databases/{db_id}/query
method: POST
strategy: cursor
data_path: results
cursor_path: next_cursor
cursor_param: start_cursor
auth: {"type": "bearer", "token": "${env.NOTION_TOKEN}"}

Example: Link header pagination (GitHub)

yaml
url: https://api.github.com/repos/octocat/hello-world/issues
strategy: link_header
page_size: 100
auth: {"type": "bearer", "token": "${env.GITHUB_TOKEN}"}

Yêu cầu HTTP

http.request

Gửi yêu cầu HTTP và nhận phản hồi

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
bodyanyNo-HTTP request body content (JSON, text, or form data)
queryobjectNo{}URL query string parameters as key-value pairs
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)Noapplication/jsonContent type of the request body
authobjectNo-Authentication credentials for the HTTP request
timeoutnumberNo30Maximum time to wait in seconds
follow_redirectsbooleanNoTrueAutomatically follow HTTP redirects
verify_sslbooleanNoTrueVerify SSL certificates
response_typeselect (auto, json, text, binary)NoautoHow to parse the response body
retry_countnumberNo0Number of retries on failure or 429/503 status
retry_backoffstringNoexponentialBackoff strategy between retries
retry_delaynumberNo1Initial delay between retries in seconds

Output:

FieldTypeDescription
okbooleanYêu cầu có thành công không (trạng thái 2xx)
statusnumberYêu cầu có thành công không (trạng thái 2xx)
status_textstringYêu cầu có thành công không (trạng thái 2xx)
headersobjectMã trạng thái HTTP
bodyanyVăn bản trạng thái HTTP
urlstringHeaders phản hồi
duration_msnumberNội dung phản hồi (JSON đã phân tích hoặc văn bản)
content_typestringURL cuối cùng (sau chuyển hướng)
content_lengthnumberContent-Type phản hồi

Example: Simple GET request

yaml
url: https://api.example.com/users
method: GET

Example: POST with JSON body

yaml
url: https://api.example.com/users
method: POST
body: {"name": "John", "email": "john@example.com"}

Example: Request with Bearer auth

yaml
url: https://api.example.com/protected
method: GET
auth: {"type": "bearer", "token": "${env.API_TOKEN}"}

Example: Request with query params

yaml
url: https://api.example.com/search
method: GET
query: {"q": "flyto", "limit": 10}

Xác nhận phản hồi HTTP

http.response_assert

Xác nhận và xác thực các thuộc tính phản hồi HTTP

Parameters:

NameTypeRequiredDefaultDescription
responseobjectYes-HTTP response object from http.request
statusanyNo-Expected status code (number, array of numbers, or range string "200-299")
body_containsanyNo-String or array of strings that body should contain
body_not_containsanyNo-String or array of strings that body should NOT contain
body_matchesstringYes-Regular expression pattern
json_pathobjectNo-Object mapping JSON paths to expected values (e.g., {"data.id": 123})
json_path_existsarrayNo-Array of JSON paths that should exist
header_containsobjectNo-Object mapping header names to expected values
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)No-Content type of the request body
max_duration_msnumberNo-Maximum allowed response time in milliseconds
schemaobjectNo-JSON Schema to validate response body against
fail_fastbooleanNoFalseStop on first assertion failure

Output:

FieldTypeDescription
okbooleanTất cả xác nhận có đạt không
passednumberTất cả xác nhận có đạt không
failednumberTất cả xác nhận có đạt không
totalnumberSố xác nhận đạt
assertionsarraySố xác nhận thất bại
errorsarrayKết quả xác nhận chi tiết

Example: Assert status 200

yaml
response: ${http_request.result}
status: 200

Example: Assert JSON structure

yaml
response: ${http_request.result}
status: 200
json_path: {"data.id": "${expected_id}", "data.name": "John"}
json_path_exists: ["data.created_at", "data.email"]

Example: Assert API response

yaml
response: ${api_result}
status: [200, 201]
content_type: application/json
max_duration_ms: 1000
json_path: {"success": true}

HTTP Session

http.session

Send a sequence of HTTP requests with persistent cookies (login → action → logout)

Parameters:

NameTypeRequiredDefaultDescription
requestsarrayYes-Ordered list of HTTP requests to execute with shared cookies
authobjectNo-Authentication applied to all requests in the session
stop_on_errorbooleanNoTrueStop executing remaining requests if one fails (non-2xx)
timeoutnumberNo30Maximum time per individual request
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all requests succeeded
resultsarrayResults from each request in order
cookiesobjectFinal session cookies as key-value pairs
duration_msnumberTotal duration in milliseconds

Example: Login and fetch data

yaml
requests: [{"label": "Login", "url": "https://example.com/api/login", "method": "POST", "body": {"username": "${env.USER}", "password": "${env.PASS}"}}, {"label": "Get Profile", "url": "https://example.com/api/profile", "method": "GET"}]
stop_on_error: true

Example: CSRF token flow

yaml
requests: [{"label": "Get CSRF Token", "url": "https://example.com/csrf-token", "method": "GET"}, {"label": "Submit Form", "url": "https://example.com/api/submit", "method": "POST", "body": {"data": "value"}}]

Webhook Wait

http.webhook_wait

Start a temporary server and wait for an incoming webhook callback

Parameters:

NameTypeRequiredDefaultDescription
pathstringNo/webhookURL path to listen on (e.g. /webhook, /callback)
portnumberNo0Port to listen on (0 = auto-assign)
timeoutnumberNo300Maximum time to wait for the webhook callback
use_ngrokbooleanNoFalseCreate an ngrok tunnel for public access (requires pyngrok)
ngrok_tokenstringNo-ngrok authentication token (free at ngrok.com)
expected_methodstringNoPOSTOnly accept this HTTP method (empty = accept any)
response_statusnumberNo200HTTP status code to respond with when webhook is received
response_bodystringNo{"ok": true}Response body to send back to the webhook caller

Output:

FieldTypeDescription
okbooleanWhether webhook was received before timeout
webhook_urlstringThe URL to send webhooks to (public if ngrok enabled)
methodstringHTTP method of the received webhook
headersobjectHeaders from the received webhook
bodyanyBody from the received webhook (parsed JSON or raw text)
queryobjectQuery parameters from the received webhook
duration_msnumberTime waited for the webhook in milliseconds

Example: Wait for Stripe webhook (local)

yaml
path: /webhook/stripe
port: 8765
timeout: 120
use_ngrok: false

Example: Wait for webhook with ngrok tunnel

yaml
path: /webhook
timeout: 300
use_ngrok: true
ngrok_token: ${env.NGROK_AUTH_TOKEN}

LLM Chat

llm.chat

Tương tác với API LLM cho các thao tác thông minh

Parameters:

NameTypeRequiredDefaultDescription
promptstringYes-The prompt or question to send to the AI model
system_promptstringNo-System instructions to set AI behavior and context
contextobjectNo-Additional context data to include
messagesarrayNo-Previous messages for multi-turn conversation
providerselect (openai, anthropic, ollama)NoopenaiAI model provider
modelstringNogpt-4oSpecific model to use
temperaturenumberNo0.7Creativity level (0=deterministic, 1=creative)
max_tokensnumberNo2000Maximum tokens in response
response_formatselect (text, json, code, markdown)NotextExpected format of the AI response
api_keystringNo-API key (defaults to provider env var)
base_urlstringNo-Custom API base URL (for Ollama or proxies)

Output:

FieldTypeDescription
okbooleanYêu cầu có thành công không
responsestringYêu cầu có thành công không
parsedanyYêu cầu có thành công không
modelstringVăn bản phản hồi LLM
tokens_usednumberPhản hồi đã phân tích (nếu yêu cầu định dạng JSON)
finish_reasonstringModel đã sử dụng

Example: Code Review

yaml
prompt: Review this code for bugs and improvements:

${code}
system_prompt: You are an expert code reviewer. Be specific and actionable.
model: gpt-4o

Example: Generate Fix

yaml
prompt: The UI evaluation found these issues: ${issues}

Generate code fixes.
system_prompt: You are a frontend developer. Return only valid code.
response_format: code

Example: Decision Making

yaml
prompt: Based on these test results, should we deploy? ${test_results}
system_prompt: You are a DevOps engineer. Return JSON: {"decision": "yes/no", "reason": "..."}
response_format: json

Sửa lỗi code AI

llm.code_fix

Tự động tạo sửa lỗi code dựa trên các vấn đề

Parameters:

NameTypeRequiredDefaultDescription
issuesarrayYes-List of issues to fix (from ui.evaluate, test results, etc.)
source_filesarrayYes-Files to analyze and potentially fix
fix_modeselect (suggest, apply, dry_run)NosuggestHow to handle the suggested fixes
backupbooleanNoTrueCreate .bak backup before modifying files
contextstringNo-Text content to process
modelstringNogpt-4oSpecific model to use
api_keystringNo-API key (defaults to provider env var)

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
fixesarrayThao tác có thành công không
appliedarrayThao tác có thành công không
failedarrayDanh sách các sửa lỗi đã tạo
summarystringDanh sách các sửa lỗi đã áp dụng (nếu fix_mode là apply)

Example: Fix UI Issues

yaml
issues: ${ui_evaluation.issues}
source_files: ["./src/components/Footer.tsx", "./src/styles/footer.css"]
fix_mode: suggest
context: React + Tailwind CSS project

Example: Auto-fix and Apply

yaml
issues: ${test_results.failures}
source_files: ["./src/App.tsx"]
fix_mode: apply
backup: true

Tính toán

math.calculate

Thực hiện các phép toán cơ bản

Parameters:

NameTypeRequiredDefaultDescription
operationselect (add, subtract, multiply, divide, power, modulo, sqrt, abs)Yes-Operation to perform
anumberYes-First operand
bnumberNo-Second operand (not required for sqrt and abs)
precisionnumberNo2Number of decimal places

Output:

FieldTypeDescription
resultnumberKết quả tính toán
operationstringKết quả tính toán
expressionstringKết quả tính toán

Example: Add two numbers

yaml
operation: add
a: 10
b: 5

Example: Calculate power

yaml
operation: power
a: 2
b: 8

Kiểm tra sức khỏe HTTP

monitor.http_check

Kiểm tra sức khỏe HTTP / giám sát thời gian hoạt động

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL cần kiểm tra
methodselect (GET, HEAD, POST)NoGETPhương thức HTTP
expected_statusnumberNo200Mã trạng thái HTTP mong đợi
timeout_msnumberNo10000Thời gian chờ yêu cầu tính bằng mili giây
headersobjectNo-Tiêu đề yêu cầu tùy chỉnh
bodystringNo-Nội dung yêu cầu (cho POST)
check_sslbooleanNoTrueKiểm tra tính hợp lệ và ngày hết hạn của chứng chỉ SSL
containsstringNo-Nội dung phản hồi phải chứa chuỗi này
follow_redirectsbooleanNoTrueTheo dõi chuyển hướng HTTP

Output:

FieldTypeDescription
okbooleanWhether check completed
dataobject

Example: Basic health check

yaml
url: https://api.example.com/health
expected_status: 200

Example: Check with content validation

yaml
url: https://api.example.com/health
contains: "status":"ok"
timeout_ms: 5000

Kiểm tra cổng

port.check

Kiểm tra xem cổng mạng có mở hay đóng

Parameters:

NameTypeRequiredDefaultDescription
portanyYes-Số cổng hoặc mảng các cổng cần kiểm tra
hoststringNolocalhostSố cổng hoặc mảng các cổng cần kiểm tra
connect_timeoutnumberNo2Host để kết nối
expect_openbooleanNo-Thời gian chờ cho mỗi lần thử kết nối

Output:

FieldTypeDescription
okbooleanĐặt true để xác nhận cổng mở, false cho đóng
resultsarrayTất cả kiểm tra có đạt không (nếu expect_open được đặt)
open_portsarrayTất cả kiểm tra có đạt không (nếu expect_open được đặt)
closed_portsarrayMảng kết quả kiểm tra cổng
summaryobjectDanh sách các cổng mở

Example: Check single port

yaml
port: 3000

Example: Check multiple ports

yaml
port: [3000, 8080, 5432]
host: localhost

Example: Assert ports are open

yaml
port: [80, 443]
host: example.com
expect_open: true

Chờ cổng

port.wait

Chờ cổng mạng có sẵn

Parameters:

NameTypeRequiredDefaultDescription
portnumberYes-Số cổng cần chờ
hoststringNolocalhostHost để kết nối
timeoutnumberNo60Host để kết nối
intervalnumberNo500Thời gian chờ tối đa
expect_closedbooleanNoFalseThời gian giữa các lần thử kết nối tính bằng mili giây

Output:

FieldTypeDescription
okbooleanChờ cổng không khả dụng thay vì
availablebooleanCổng có ở trạng thái mong đợi không
hoststringCổng có ở trạng thái mong đợi không
portnumberCổng hiện có sẵn không
wait_time_msnumberHost đã được kiểm tra
attemptsnumberCổng đã được kiểm tra

Example: Wait for dev server

yaml
port: 3000
timeout: 30

Example: Wait for database

yaml
port: 5432
host: localhost
timeout: 60

Example: Wait for port to close

yaml
port: 8080
expect_closed: true
timeout: 10

Liệt kê tiến trình

process.list

Liệt kê tất cả các tiến trình nền đang chạy

Parameters:

NameTypeRequiredDefaultDescription
filter_namestringNo-Filter processes by name (substring match)
include_statusbooleanNoTrueInclude running/stopped status check for each process

Output:

FieldTypeDescription
okbooleanThao tác thành công
processesarrayThao tác thành công
countnumberThao tác thành công
runningnumberDanh sách thông tin tiến trình
stoppednumberTổng số tiến trình

Example: List all processes

yaml

Example: Filter by name

yaml
filter_name: dev

Khởi động tiến trình nền

process.start

Khởi động tiến trình nền (server, dịch vụ, v.v.)

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
namestringNo-Friendly name to identify the process
wait_for_outputstringNo-String to wait for in stdout before returning
wait_timeoutnumberNo60Maximum time to wait in seconds
capture_outputbooleanNoTrueCapture stdout/stderr output from the process
log_filestringNo-File path to write process output to
auto_restartbooleanNoFalseAutomatically restart the process if it exits

Output:

FieldTypeDescription
okbooleanTiến trình có khởi động thành công không
pidnumberTiến trình có khởi động thành công không
process_idstringTiến trình có khởi động thành công không
namestringID Tiến trình
commandstringĐịnh danh tiến trình nội bộ cho process.stop
cwdstringTên tiến trình
started_atstringLệnh đã thực thi
initial_outputstringDấu thời gian ISO khi tiến trình bắt đầu

Example: Start dev server

yaml
command: npm run dev
cwd: ./frontend
name: frontend-dev
wait_for_output: ready on
wait_timeout: 30

Example: Start Python HTTP server

yaml
command: python -m http.server 8000
name: static-server

Example: Start with environment

yaml
command: node server.js
env: {"PORT": "3000", "NODE_ENV": "test"}
name: api-server
wait_for_output: listening

Dừng tiến trình

process.stop

Dừng tiến trình nền đang chạy

Parameters:

NameTypeRequiredDefaultDescription
process_idstringNo-Internal process identifier (from process.start)
namestringNo-Friendly name to identify the process
pidnumberNo-System process ID (PID) of the process
signalselect (SIGTERM, SIGKILL, SIGINT)NoSIGTERMSignal to send to the process
timeoutnumberNo10Maximum time to wait in seconds
forcebooleanNoFalseForce kill the process immediately with SIGKILL
stop_allbooleanNoFalseStop all tracked processes

Output:

FieldTypeDescription
okbooleanTất cả tiến trình có được dừng thành công không
stoppedarrayTất cả tiến trình có được dừng thành công không
failedarrayDanh sách thông tin tiến trình đã dừng
countnumberDanh sách thông tin tiến trình đã dừng

Example: Stop by process ID

yaml
process_id: ${start_result.process_id}

Example: Stop by name

yaml
name: dev-server

Example: Force kill by PID

yaml
pid: 12345
force: true

Example: Stop all processes

yaml
stop_all: true

Thực thi lệnh Shell

shell.exec

Thực thi lệnh shell và bắt đầu ra

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
timeoutnumberNo300Maximum time to wait in seconds
shellbooleanNoFalseExecute command through shell (enables pipes, redirects)
capture_stderrbooleanNoTrueCapture stderr separately from stdout
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
raise_on_errorbooleanNoFalseRaise exception if command returns non-zero exit code

Output:

FieldTypeDescription
okbooleanLệnh có thực thi thành công không (mã thoát 0)
exit_codenumberLệnh có thực thi thành công không (mã thoát 0)
stdoutstringLệnh có thực thi thành công không (mã thoát 0)
stderrstringMã thoát lệnh
commandstringĐầu ra tiêu chuẩn
cwdstringĐầu ra lỗi tiêu chuẩn
duration_msnumberLệnh đã thực thi

Example: Run npm install

yaml
command: npm install
cwd: ./my-project

Example: Run tests with pytest

yaml
command: python -m pytest tests/ -v
timeout: 120

Example: Git status

yaml
command: git status --porcelain

Example: Build project

yaml
command: npm run build
cwd: ./frontend
env: {"NODE_ENV": "production"}

Thực thi SSH

ssh.exec

Thực thi lệnh trên máy chủ từ xa qua SSH

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-Tên máy chủ hoặc IP của máy chủ SSH
portnumberNo22Cổng SSH
usernamestringYes-Tên người dùng SSH
passwordstringNo-Mật khẩu SSH
private_keystringNo-Khóa riêng định dạng PEM
commandstringYes-Lệnh thực thi trên máy chủ từ xa
timeoutnumberNo30Thời gian chờ lệnh tính bằng giây

Output:

FieldTypeDescription
okbooleanWhether command succeeded
dataobject

Example: List files on remote server

yaml
host: 192.168.1.100
username: deploy
command: ls -la /var/www

Example: Restart service

yaml
host: 10.0.0.5
username: root
command: systemctl restart nginx

Tải xuống SFTP

ssh.sftp_download

Tải tệp từ máy chủ từ xa qua SFTP

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-Tên máy chủ hoặc IP của máy chủ SSH
portnumberNo22Cổng SSH
usernamestringYes-Tên người dùng SSH
passwordstringNo-Mật khẩu SSH
private_keystringNo-Khóa riêng định dạng PEM
remote_pathstringYes-Đường dẫn đến tệp trên máy chủ từ xa
local_pathstringYes-Đường dẫn đích trên máy cục bộ

Output:

FieldTypeDescription
okbooleanWhether download succeeded
dataobject

Example: Download server log

yaml
host: 10.0.0.5
username: deploy
remote_path: /var/log/nginx/access.log
local_path: /tmp/access.log

Tải lên SFTP

ssh.sftp_upload

Tải tệp lên máy chủ từ xa qua SFTP

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-Tên máy chủ hoặc IP của máy chủ SSH
portnumberNo22Cổng SSH
usernamestringYes-Tên người dùng SSH
passwordstringNo-Mật khẩu SSH
private_keystringNo-Khóa riêng định dạng PEM
local_pathstringYes-Đường dẫn đến tệp cục bộ để tải lên
remote_pathstringYes-Đường dẫn đích trên máy chủ từ xa
overwritebooleanNoTrueGhi đè tệp từ xa hiện có

Output:

FieldTypeDescription
okbooleanWhether upload succeeded
dataobject

Example: Upload deployment archive

yaml
host: 10.0.0.5
username: deploy
local_path: /tmp/app.tar.gz
remote_path: /opt/releases/app.tar.gz

Chạy các bước E2E

testing.e2e.run_steps

Thực thi các bước kiểm thử end-to-end tuần tự

Parameters:

NameTypeRequiredDefaultDescription
stepsarrayYes-Mảng định nghĩa bước kiểm thử
stop_on_failurebooleanNoTrueWhether to stop on failure
timeout_per_stepnumberNo30000Timeout Per Step value

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
passednumberThao tác có thành công không
failednumberThao tác có thành công không
resultsarraySố kiểm thử đạt

Cổng chất lượng

testing.gate.evaluate

Đánh giá các chỉ số chất lượng so với ngưỡng định nghĩa

Parameters:

NameTypeRequiredDefaultDescription
metricsobjectYes-Các chỉ số cần đánh giá
thresholdsobjectYes-Các chỉ số cần đánh giá
fail_on_breachbooleanNoTrueWhether to fail on breach

Output:

FieldTypeDescription
okbooleanGiá trị ngưỡng cho mỗi chỉ số
passedbooleanThao tác có thành công không
resultsarrayThao tác có thành công không
summarystringSố kiểm thử đạt

Chạy kiểm thử HTTP

testing.http.run_suite

Thực thi bộ kiểm thử API HTTP

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-Mảng định nghĩa kiểm thử HTTP
base_urlstringNo-Base URL for API requests
headersobjectNo{}HTTP request headers

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
passednumberThao tác có thành công không
failednumberThao tác có thành công không
resultsarraySố kiểm thử đạt

Chạy Linter

testing.lint.run

Chạy kiểm tra lint trên mã nguồn

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-Tệp hoặc thư mục cần lint
linterstringNoautoLinter
fixbooleanNoFalseWhether to fix

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
errorsnumberThao tác có thành công không
warningsnumberThao tác có thành công không
issuesarraySố lỗi gặp phải

Tạo báo cáo

testing.report.generate

Tạo báo cáo thực thi kiểm thử

Parameters:

NameTypeRequiredDefaultDescription
resultsobjectYes-Results data
formatstringNojsonFormat
titlestringNoTest ReportTitle

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
reportstringThao tác có thành công không
formatstringThao tác có thành công không
summaryobjectBáo cáo

Chạy kịch bản

testing.scenario.run

Thực thi kiểm thử dựa trên kịch bản (kiểu BDD)

Parameters:

NameTypeRequiredDefaultDescription
scenarioobjectYes-Định nghĩa kịch bản với given/when/then
contextobjectNo{}Additional context data

Output:

FieldTypeDescription
okbooleanĐịnh nghĩa kịch bản với given/when/then
passedbooleanThao tác có thành công không
stepsarrayThao tác có thành công không

Quét bảo mật

testing.security.scan

Quét lỗ hổng bảo mật

Parameters:

NameTypeRequiredDefaultDescription
targetsarrayYes-Tệp, URL hoặc đường dẫn cần quét
scan_typestringNoallScan Type
severity_thresholdstringNomediumSeverity Threshold

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
vulnerabilitiesarrayThao tác có thành công không
summaryobjectThao tác có thành công không

Chạy bộ kiểm thử

testing.suite.run

Thực thi một bộ kiểm thử

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-Mảng định nghĩa kiểm thử
parallelbooleanNoFalseWhether to parallel
max_failuresnumberNo0Mảng định nghĩa kiểm thử

Output:

FieldTypeDescription
okboolean0 = không giới hạn
passednumber0 = không giới hạn
failednumberThao tác có thành công không
skippednumberSố kiểm thử đạt
resultsarraySố kiểm thử không đạt

Chạy kiểm thử đơn vị

testing.unit.run

Thực thi kiểm thử đơn vị

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-Đường dẫn đến tệp hoặc thư mục kiểm thử
patternstringNotest_*.pyPattern
verbosebooleanNoFalseWhether to verbose

Output:

FieldTypeDescription
okbooleanThao tác có thành công không
passednumberThao tác có thành công không
failednumberThao tác có thành công không
errorsnumberSố kiểm thử đạt
resultsarraySố kiểm thử không đạt

So sánh hình ảnh

testing.visual.compare

So sánh đầu ra hình ảnh để tìm sự khác biệt

Parameters:

NameTypeRequiredDefaultDescription
actualstringYes-Đường dẫn hoặc base64 của hình ảnh thực tế
expectedstringYes-Đường dẫn hoặc base64 của hình ảnh thực tế
thresholdnumberNo0.1Đường dẫn hoặc base64 của hình ảnh mong đợi
output_diffbooleanNoTrueWhether to output diff

Output:

FieldTypeDescription
okbooleanSự khác biệt tối đa cho phép (0-1)
matchbooleanThao tác có thành công không
differencenumberThao tác có thành công không
diff_imagestringSự khớp

Đánh giá chất lượng UI

ui.evaluate

Đánh giá chất lượng UI toàn diện với điểm số đa chiều

Parameters:

NameTypeRequiredDefaultDescription
screenshotstringYes-Đường dẫn ảnh chụp màn hình hoặc URL để đánh giá
app_typestringNoweb_appĐường dẫn ảnh chụp màn hình hoặc URL để đánh giá
page_typestringNo-Loại trang đang được đánh giá
evaluation_criteriaarrayNo['visual_design', 'usability', 'accessibility', 'consistency', 'responsiveness']Tiêu chí cụ thể để đánh giá (mặc định là tất cả)
target_audiencestringNo-Mô tả người dùng mục tiêu
brand_guidelinesstringNo-Hướng dẫn thương hiệu ngắn gọn để kiểm tra
min_scorenumberNo70Điểm tối thiểu để đạt (0-100)
api_keystringNo-Khóa API OpenAI (mặc định là biến env OPENAI_API_KEY)

Output:

FieldTypeDescription
okbooleanKhóa API OpenAI (mặc định là biến env OPENAI_API_KEY)
passedbooleanĐánh giá có thành công không
overall_scorenumberĐánh giá có thành công không
scoresobjectĐiểm chất lượng UI tổng thể (0-100)
strengthsarrayĐiểm chất lượng UI tổng thể (0-100)
issuesarrayĐiểm theo tiêu chí đánh giá
recommendationsarrayDanh sách điểm mạnh của UI
summarystringKhuyến nghị cải thiện cụ thể

Example: Evaluate Dashboard

yaml
screenshot: ./screenshots/dashboard.png
app_type: dashboard
page_type: analytics dashboard
target_audience: business analysts
min_score: 75

Example: E-commerce Page Review

yaml
screenshot: ./screenshots/product.png
app_type: e_commerce
page_type: product detail
evaluation_criteria: ["usability", "cta_effectiveness", "visual_design"]

Phân tích hình ảnh với AI

vision.analyze

Phân tích hình ảnh sử dụng OpenAI Vision API (GPT-4V)

Parameters:

NameTypeRequiredDefaultDescription
imagestringYes-Image file path, URL, or base64 data
promptstringYes-What to analyze in the image
analysis_typeselect (general, ui_review, accessibility, bug_detection, comparison, data_extraction)NogeneralType of analysis to perform
contextstringNo-Additional context about the image
output_formatselect (text, structured, json, checklist)NostructuredFormat of the analysis output
modelstringNogpt-4oSpecific model to use
max_tokensnumberNo1000Maximum tokens in response
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name
detailselect (low, high, auto)NohighLevel of detail for image analysis

Output:

FieldTypeDescription
okbooleanPhân tích có thành công không
analysisstringPhân tích có thành công không
structuredobjectKết quả phân tích AI
modelstringDữ liệu phân tích có cấu trúc (nếu output_format là structured/json)
tokens_usednumberModel được sử dụng để phân tích

Example: UI Review

yaml
image: ./screenshots/dashboard.png
prompt: Review this dashboard UI. Evaluate: 1) Visual hierarchy 2) Color contrast 3) Button visibility 4) Overall usability. Suggest specific improvements.
analysis_type: ui_review
output_format: structured

Example: Bug Detection

yaml
image: ./screenshots/form.png
prompt: Find any visual bugs, layout issues, or broken elements in this form
analysis_type: bug_detection

Example: Accessibility Check

yaml
image: ./screenshots/page.png
prompt: Evaluate accessibility: color contrast, text readability, button sizes, clear labels
analysis_type: accessibility

So sánh hình ảnh

vision.compare

So sánh hai hình ảnh và xác định sự khác biệt hình ảnh

Parameters:

NameTypeRequiredDefaultDescription
image_beforestringYes-Path to baseline/before image
image_afterstringYes-Path to current/after image
comparison_typeselect (visual_regression, layout_diff, content_diff, full_analysis)Novisual_regressionType of comparison to perform
thresholdnumberNo5Acceptable difference percentage
focus_areasarrayNo-Specific areas to focus on
ignore_areasarrayNo-Areas to ignore (dynamic content, ads, etc.)
modelstringNogpt-4oSpecific model to use
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name

Output:

FieldTypeDescription
okbooleanSo sánh có thành công không
has_differencesbooleanSo sánh có thành công không
similarity_scorenumberCó tìm thấy sự khác biệt đáng kể không
differencesarrayPhần trăm tương đồng (0-100)
summarystringDanh sách các sự khác biệt được xác định
recommendationstringTóm tắt kết quả so sánh

Example: Visual Regression Test

yaml
image_before: ./screenshots/baseline/home.png
image_after: ./screenshots/current/home.png
comparison_type: visual_regression
threshold: 5

Example: Layout Comparison

yaml
image_before: ./design/mockup.png
image_after: ./screenshots/implementation.png
comparison_type: layout_diff
focus_areas: ["header", "main content"]

Released under the Apache 2.0 License.