jetic-cli 0.1.9 → 0.2.1
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.md +76 -445
- package/dist/dashboard/assets/index-8Xh271uc.js +384 -0
- package/dist/dashboard/assets/index-ANQK1AeT.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +811 -136
- package/package.json +3 -2
- package/dist/dashboard/assets/index-DEc0dXNe.css +0 -1
- package/dist/dashboard/assets/index-DZwpY2T2.js +0 -384
package/README.md
CHANGED
|
@@ -1,483 +1,156 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="public/jetic_white_bg.png" alt="Jetic Banner" width="
|
|
2
|
+
<img src="public/jetic_white_bg.png" alt="Jetic Banner" width="140">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">Jetic </h1>
|
|
5
|
+
<h1 align="center">Jetic CLI</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>AI-Native API Behavior Testing, Discovery &
|
|
8
|
+
<strong>AI-Native API Behavior Testing, Discovery & Simulation Platform</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
|
-
<em>
|
|
12
|
+
<em>Zero-config static source scanning → Behavioral model graph → Automated API simulations & Visual Traces</em>
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
15
|
<p align="center">
|
|
16
|
-
<a href="#-
|
|
17
|
-
<a href="#-
|
|
18
|
-
<a href="#-
|
|
19
|
-
<a href="#-cli-
|
|
20
|
-
<a href="#-jetic-studio
|
|
21
|
-
<a href="#-artifact--file-schemas">File Schemas</a>
|
|
16
|
+
<a href="#-quickstart">Quickstart</a> •
|
|
17
|
+
<a href="#-the-4-phase-workflow">4-Phase Workflow</a> •
|
|
18
|
+
<a href="#-ai-ide-integration-mcp">AI IDE Setup</a> •
|
|
19
|
+
<a href="#-cli-commands">CLI Reference</a> •
|
|
20
|
+
<a href="#-jetic-studio">Jetic Studio</a>
|
|
22
21
|
</p>
|
|
23
22
|
|
|
24
23
|
<p align="center">
|
|
25
24
|
<a href="https://www.npmjs.com/package/jetic-cli"><img src="https://img.shields.io/npm/v/jetic-cli.svg" alt="NPM Version"></a>
|
|
26
25
|
<img src="https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen" alt="Node Version">
|
|
27
|
-
<img src="https://img.shields.io/badge/pnpm-%3E%3D9.0.0-orange" alt="PNPM Workspace">
|
|
28
26
|
<img src="https://img.shields.io/badge/AST-ts--morph-blueviolet" alt="ts-morph">
|
|
29
27
|
<img src="https://img.shields.io/badge/license-ISC-green.svg" alt="License">
|
|
30
28
|
</p>
|
|
31
29
|
|
|
32
30
|
---
|
|
33
31
|
|
|
34
|
-
## ⚡
|
|
32
|
+
## ⚡ Quickstart
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Furthermore, conventional HTTP runners only check if an endpoint returns a `200 OK`. They do **not** understand what your API is actually *supposed* to do, what business constraints govern your handlers, or how state flows across endpoint boundaries.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## 💡 The Jetic Solution
|
|
43
|
-
|
|
44
|
-
**`jetic-cli`** is an agentic, code-native developer platform that **automatically understands, models, simulates, and traces an application's API behavior directly from its backend source code.**
|
|
45
|
-
|
|
46
|
-
1. 🔍 **Zero-Execution Source Code Scanning**: Jetic parses your TypeScript/Express Abstract Syntax Tree (AST via `ts-morph`) without running your server. It follows imports across controllers, services, middleware, and type declarations to discover routes, parameters, validation constraints, and auth schemes.
|
|
47
|
-
2. 🧠 **Declarative Behavioral Graph (`model.json`)**: Generates a versioned, strongly-typed behavioral graph mapping paths, HTTP methods, request schemas, response shapes, and exact source code provenance (file + line numbers).
|
|
48
|
-
3. 🤖 **AI-Driven Stateful Workflow Generation**: Uses AI to synthesize multi-step, end-to-end user journeys (`.jetic/workflows/*.json`).
|
|
49
|
-
4. 💾 **Pre/Post State Capture & Dynamic Injection**: Captures input parameters (like faker-generated email/password) before HTTP calls and response fields (like JWT tokens and resource IDs via JSONPath) after HTTP calls into `.jetic/memory.json`, automatically injecting them into subsequent headers (e.g. `Authorization: Bearer {{workflow:accessToken}}`) or body fields.
|
|
50
|
-
5. 📈 **Embedded Jetic Studio Dashboard**: Serves the local developer web IDE via `jetic dev` for visual API exploration, AST source code viewing, real-time SSE workflow execution, runtime memory editing, and ReactFlow trace graph visualizer.
|
|
51
|
-
|
|
52
|
-
> [!NOTE]
|
|
53
|
-
> **Framework & Language Support**: Automated AST source code scanning currently supports **Node.js & Express (TypeScript)** projects.
|
|
54
|
-
> For backends built with other languages or frameworks (e.g., Python/FastAPI, Go, Rust, Java, NestJS), you can manually add and manage endpoints directly inside **Jetic Studio** on the **Behavioral Model** page (`/model`) using the **"Add Endpoint"** button.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## ✨ Key Features
|
|
59
|
-
|
|
60
|
-
- 🔍 **AST Source Discovery**: Deeply inspects Express/TypeScript source code using `ts-morph`. Recursively resolves imported controllers, services, helpers, and types up to configurable depths.
|
|
61
|
-
- 🧩 **Nested Router & Middleware Resolution**: Seamlessly flattens complex nested Express router chains (e.g. `app.use('/api/orders', ordersRouter)` $\rightarrow$ `router.post('/checkout')`).
|
|
62
|
-
- 🧠 **Constraint & Business Logic Extraction**: Extracts validation logic directly from `if` statements (e.g. `if (password.length < 8)` $\rightarrow$ `minLength: 8`) and schema definitions, enabling intelligent data generation rather than blind fuzzing.
|
|
63
|
-
- 🔗 **Stateful Workflow Engine**: Synthesizes and executes multi-step workflows with full variable interpolation, auto-generating dynamic test data via `@faker-js/faker`.
|
|
64
|
-
- 📥 **Input & Output Memory Capture**:
|
|
65
|
-
- `captureInput`: Saves generated request body values (e.g. `admin_email`) to `.jetic/memory.json` *before* firing requests so subsequent steps can reuse them.
|
|
66
|
-
- `capture`: Saves response JSONPath fields (e.g. `data.accessToken`, `data.workspace.id`) to `.jetic/memory.json` *after* success.
|
|
67
|
-
- `inject`: Automatically injects memory values into headers (e.g. `header:Authorization = Bearer {{workflow:accessToken}}`) or body fields.
|
|
68
|
-
- 🖥️ **Jetic Studio Dashboard**: Modern React 19 + Vite + TailwindCSS + ReactFlow local developer web IDE (`jetic dev`) for visual API exploration, AST source code viewing, real-time SSE workflow execution, runtime memory editing, and node-graph trace debugging.
|
|
69
|
-
- 💻 **Feature-Rich CLI Command Suite**: Lightweight command-line interface bringing API intelligence, scanning, simulation, memory control, and config management straight to your terminal.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## ⚙️ How Jetic Works
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
┌────────────────────────┐
|
|
77
|
-
│ Backend Source Code │ (TypeScript / Express)
|
|
78
|
-
└───────────┬────────────┘
|
|
79
|
-
│
|
|
80
|
-
▼
|
|
81
|
-
┌────────────────────────┐
|
|
82
|
-
│ packages/scanner │ (AST parsing via ts-morph & ImportResolver)
|
|
83
|
-
└───────────┬────────────┘
|
|
84
|
-
│
|
|
85
|
-
▼
|
|
86
|
-
┌────────────────────────┐
|
|
87
|
-
│ .jetic/model.json │ (Behavioral Model: Endpoints, Schemas, Constraints, Auth, Source Provenance)
|
|
88
|
-
└───────────┬────────────┘
|
|
89
|
-
│
|
|
90
|
-
┌──────┴───────────────────────────┐
|
|
91
|
-
▼ ▼
|
|
92
|
-
┌──────────────┐ ┌────────────────────────┐
|
|
93
|
-
│ jetic scan │ │ jetic simulate │ (Single-endpoint or AI Workflows)
|
|
94
|
-
└──────────────┘ └───────────┬────────────┘
|
|
95
|
-
│
|
|
96
|
-
┌────────────────────┴───────────────────┐
|
|
97
|
-
▼ ▼
|
|
98
|
-
┌─────────────────────────┐ ┌────────────────────────┐
|
|
99
|
-
│ .jetic/memory.json │ │ Jetic Studio │
|
|
100
|
-
│ (Capture & Inject State)│ │ (/traces Observability)│
|
|
101
|
-
└─────────────────────────┘ └────────────────────────┘
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
1. **Scan (`jetic scan`)**: `ExpressScanner` and `ImportResolver` inspect your project root and `tsconfig.json`. They extract route paths, parameters, middleware chains, controller logic, and TypeScript types.
|
|
105
|
-
2. **Model (`.jetic/model.json`)**: Normalizes scanner output into a strongly typed `BehavioralModel` containing endpoint metadata, discovered constraints, expected request/response schemas, security schemes, and source references (`routes/auth.ts:42`).
|
|
106
|
-
3. **Synthesize Workflows (`jetic simulate workflow`)**: AI analyzes `model.json` to create end-to-end integration workflows. Step dependencies, input/output captures, and header injections are configured automatically.
|
|
107
|
-
4. **Run & Capture / Inject**: The simulator engine executes requests step-by-step. `captureInput` saves faker credentials pre-flight, `capture` reads response JSONPath fields post-flight, and `inject` dynamically constructs request headers/bodies for downstream steps.
|
|
108
|
-
5. **Trace & Observe**: Results are persisted as execution trace records and rendered in **Jetic Studio** (`/traces`) as an interactive ReactFlow node graph.
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## 🚀 Getting Started
|
|
113
|
-
|
|
114
|
-
### Prerequisites
|
|
115
|
-
|
|
116
|
-
- **Node.js**: `v20.0.0` or higher
|
|
117
|
-
- **pnpm** / **npm** / **yarn**
|
|
118
|
-
|
|
119
|
-
### Installation
|
|
120
|
-
|
|
121
|
-
Install `jetic-cli` globally via npm:
|
|
34
|
+
Get started in under **60 seconds** — **no AI keys or third-party provider setup required**.
|
|
122
35
|
|
|
36
|
+
### 1. Install globally
|
|
123
37
|
```bash
|
|
124
38
|
npm install -g jetic-cli
|
|
125
39
|
```
|
|
126
40
|
|
|
127
|
-
|
|
128
|
-
|
|
41
|
+
### 2. Initialize & Scan your backend
|
|
42
|
+
Navigate to your backend project directory (e.g., Express + TypeScript):
|
|
129
43
|
```bash
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
> [!NOTE]
|
|
134
|
-
> **Package Name vs Executable Command**: The CLI package is published on NPM as **`jetic-cli`** (`npm install -g jetic-cli`). Once installed, npm registers the **`jetic`** binary executable command in your system `PATH` so you can directly run `jetic init`, `jetic scan`, `jetic dev`, etc.
|
|
135
|
-
|
|
136
|
-
### Quickstart
|
|
137
|
-
|
|
138
|
-
Navigate to your TypeScript/Express backend directory:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
# 1. Initialize Jetic workspace directory (.jetic/)
|
|
44
|
+
# Scaffold .jetic/ directory
|
|
142
45
|
jetic init
|
|
143
46
|
|
|
144
|
-
#
|
|
145
|
-
# Windows PowerShell: $env:OPENROUTER_API_KEY="your-key"
|
|
146
|
-
# Linux/macOS: export OPENROUTER_API_KEY="your-key"
|
|
147
|
-
jetic config ai --provider openrouter --model anthropic/claude-3.5-sonnet --key-env OPENROUTER_API_KEY
|
|
148
|
-
|
|
149
|
-
# 3. Scan source code and generate .jetic/model.json
|
|
47
|
+
# Static AST scan of backend source code to build .jetic/model.json
|
|
150
48
|
jetic scan
|
|
151
|
-
|
|
152
|
-
# 4. Inspect discovered API model and AST source code provenance
|
|
153
|
-
jetic inspect
|
|
154
|
-
|
|
155
|
-
# 5. Run AI workflow simulation against live local backend
|
|
156
|
-
jetic simulate workflow --goal "Admin registers workspace, logs in, creates class and logs out"
|
|
157
|
-
|
|
158
|
-
# 6. Launch Jetic Studio local web dashboard
|
|
159
|
-
jetic dev
|
|
160
49
|
```
|
|
161
50
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
## 💻 CLI Command Reference
|
|
165
|
-
|
|
166
|
-
### `jetic init`
|
|
167
|
-
Initializes a `.jetic/` directory in the current working directory with a default `config.json`.
|
|
168
|
-
|
|
51
|
+
### 3. Launch Jetic Studio or connect your AI IDE
|
|
169
52
|
```bash
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
### `jetic scan`
|
|
176
|
-
Parses backend source code (via `tsconfig.json` and AST resolution), extracts endpoints, schemas, constraints, and source provenance, and writes `.jetic/model.json`.
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
jetic scan
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
### `jetic inspect`
|
|
185
|
-
Displays summary metrics or deep inspection details for discovered API endpoints.
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# Display project summary (endpoint count, methods breakdown, security rules)
|
|
189
|
-
jetic inspect
|
|
190
|
-
|
|
191
|
-
# Inspect a specific endpoint (shows AST source provenance, parameters, response schema)
|
|
192
|
-
jetic inspect endpoint GET /api/orders/:id
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
### `jetic simulate endpoint`
|
|
198
|
-
Simulates single endpoints or the entire API model against a target environment server using generated data.
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
# Simulate all endpoints in model.json
|
|
202
|
-
jetic simulate endpoint --all
|
|
203
|
-
|
|
204
|
-
# Simulate a specific endpoint with detailed response logs
|
|
205
|
-
jetic simulate endpoint POST /api/auth/login --verbose
|
|
206
|
-
|
|
207
|
-
# Run simulations against a specific environment defined in model.json
|
|
208
|
-
jetic simulate endpoint --all --env staging
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
### `jetic simulate workflow`
|
|
214
|
-
Generates and executes multi-step AI-driven workflow integration tests with automatic state capture and header injection.
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# Generate and run an AI workflow for a custom natural-language goal
|
|
218
|
-
jetic simulate workflow --goal "User signs up, verifies email, creates project, and invites member"
|
|
219
|
-
|
|
220
|
-
# List all saved workflows in .jetic/workflows/
|
|
221
|
-
jetic simulate workflow --list
|
|
222
|
-
|
|
223
|
-
# Execute an existing workflow JSON file
|
|
224
|
-
jetic simulate workflow --workflow .jetic/workflows/user-onboarding.json
|
|
225
|
-
|
|
226
|
-
# Generate workflow JSON without running HTTP requests
|
|
227
|
-
jetic simulate workflow --goal "Create order and pay" --generate-only
|
|
228
|
-
|
|
229
|
-
# Clear runtime memory before executing
|
|
230
|
-
jetic simulate workflow --workflow .jetic/workflows/user-onboarding.json --clear-memory
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
### `jetic dev`
|
|
236
|
-
Starts the **Jetic Studio** backend API server and serves the local web dashboard interface.
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
# Launch Jetic Studio on default port 8787
|
|
53
|
+
# Option A: Launch the visual developer dashboard (http://localhost:8787)
|
|
240
54
|
jetic dev
|
|
241
55
|
|
|
242
|
-
#
|
|
243
|
-
jetic
|
|
56
|
+
# Option B: Run MCP server for AI IDE assistant (Cursor, Antigravity, VS Code, opencode)
|
|
57
|
+
jetic mcp
|
|
244
58
|
```
|
|
245
59
|
|
|
246
60
|
---
|
|
247
61
|
|
|
248
|
-
|
|
249
|
-
Views and manages key-value entries stored in `.jetic/memory.json`.
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
# List all stored memory keys and values across scopes
|
|
253
|
-
jetic memory list
|
|
254
|
-
|
|
255
|
-
# Get value for a key (defaults to global scope or specify scope:key)
|
|
256
|
-
jetic memory get workflow:accessToken
|
|
257
|
-
|
|
258
|
-
# Set a key-value entry
|
|
259
|
-
jetic memory set workflow:accessToken "eyJhbGciOi..."
|
|
62
|
+
## 🔄 The 4-Phase Workflow
|
|
260
63
|
|
|
261
|
-
|
|
262
|
-
jetic memory delete workflow:accessToken
|
|
64
|
+
Jetic operates on a strict, predictable 4-phase lifecycle for total model fidelity:
|
|
263
65
|
|
|
264
|
-
# Clear all stored memory
|
|
265
|
-
jetic memory clear
|
|
266
66
|
```
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
Configures AI providers, API key environment variables, and project settings.
|
|
272
|
-
|
|
273
|
-
```bash
|
|
274
|
-
# Interactively or explicitly configure AI provider settings
|
|
275
|
-
jetic config ai --provider openrouter --model anthropic/claude-3.5-sonnet --key-env OPENROUTER_API_KEY
|
|
276
|
-
|
|
277
|
-
# View current configuration
|
|
278
|
-
jetic config list
|
|
67
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
68
|
+
│ 1. INITIALIZE │ ──► │ 2. SCAN & MODEL │ ──► │ 3. VERIFY │ ──► │ 4. SIMULATE │
|
|
69
|
+
│ (jetic init) │ │ (jetic scan) │ │ (jetic verify) │ │ (jetic simulate)│
|
|
70
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
279
71
|
```
|
|
280
72
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
```bash
|
|
287
|
-
jetic upgrade
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
---
|
|
291
|
-
|
|
292
|
-
## 🖥️ Jetic Studio Dashboard
|
|
293
|
-
|
|
294
|
-
**Jetic Studio** (`jetic dev`) is a sleek, dark-mode local web application designed specifically for visual API discovery, source provenance checking, AI workflow debugging, runtime memory control, and visual trace observability.
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
### 1. 📊 Workspace Overview (`/overview`)
|
|
299
|
-
The command center for your API model. Provides high-level metrics, endpoint distribution charts, security posture summaries, and quick links to recently discovered routes and workflow runs.
|
|
300
|
-
|
|
301
|
-
- **Key Highlights**: Endpoint totals, method breakdown bar, secured route percentages, recent endpoint shortcuts, active workflow list, and top memory keys preview.
|
|
302
|
-
|
|
303
|
-

|
|
73
|
+
1. **Phase 1 — Initialize (`jetic init`)**: Scaffolds the `.jetic/` directory and empty `model.json` in your project root.
|
|
74
|
+
2. **Phase 2 — Scan & Model (`jetic scan`)**: Keyless AST scan parses routes, controllers, middleware, and TypeScript interfaces. For non-Express backends (FastAPI, Go, NestJS), endpoints can be added manually or via MCP.
|
|
75
|
+
3. **Phase 3 — Verify (`jetic_verify_model`)**: Validates model structure and ensures all fields (descriptions, tags, parameter/response details) are complete and error-free.
|
|
76
|
+
4. **Phase 4 — Simulate (`jetic simulate`)**: Executes multi-step workflows with dynamic state capture (`captureInput` / `capture`) and header injection (`Authorization: Bearer {{workflow:token}}`).
|
|
304
77
|
|
|
305
78
|
---
|
|
306
79
|
|
|
307
|
-
|
|
308
|
-
Interactive visual explorer for `.jetic/model.json`.
|
|
309
|
-
|
|
310
|
-
- **Key Highlights**: HTTP method filtering (GET, POST, PUT, DELETE, PATCH), full-text search, request/response schema inspection cards, security badges (JWT, Bearer, API Keys), middleware lists, environment switcher, and instant **Inspect** trigger buttons.
|
|
311
|
-
- **Manual Endpoint Creation ("Add Endpoint")**: For non-Express/TypeScript projects or custom routes, click the **"Add Endpoint"** button to manually define HTTP methods, paths, parameters, schemas, and authentication requirements directly from the interface.
|
|
312
|
-
|
|
313
|
-

|
|
314
|
-
|
|
315
|
-

|
|
316
|
-
|
|
317
|
-
---
|
|
80
|
+
## 🤖 AI IDE Integration (MCP)
|
|
318
81
|
|
|
319
|
-
|
|
320
|
-
Deep-dive inspection page for any single API endpoint.
|
|
82
|
+
Jetic comes with a built-in **Model Context Protocol (MCP)** server so your editor's AI assistant (opencode, Antigravity, Cursor, Claude Code, VS Code) can manage your API model directly — **using your editor's own model with no API keys**.
|
|
321
83
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
84
|
+
### Setup (e.g. `opencode.json` or Cursor `mcp.json`):
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"mcp": {
|
|
88
|
+
"jetic": {
|
|
89
|
+
"type": "local",
|
|
90
|
+
"command": ["jetic", "mcp"],
|
|
91
|
+
"enabled": true
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
*(On Windows, use `"command": ["cmd", "/c", "jetic", "mcp"]`)*
|
|
327
97
|
|
|
328
|
-
|
|
98
|
+
### Recommended Agent Prompts:
|
|
99
|
+
> 1. *"Run `jetic_get_session_phase` and guide me through building the API model for this project."*
|
|
100
|
+
> 2. *"Scan the backend, check endpoint completeness, fill missing descriptions/tags, and run `jetic_verify_model`."*
|
|
101
|
+
> 3. *"What workflow or integration test would you like to simulate against local environment?"*
|
|
329
102
|
|
|
330
103
|
---
|
|
331
104
|
|
|
332
|
-
|
|
333
|
-
Visual AI workflow builder and step-by-step runner.
|
|
105
|
+
## 💻 CLI Commands
|
|
334
106
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
107
|
+
| Command | Description |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `jetic init` | Scaffold `.jetic/` folder and initial configuration |
|
|
110
|
+
| `jetic scan` | Static AST source code scan for Express/TypeScript backends |
|
|
111
|
+
| `jetic inspect` | Inspect summary metrics or specific endpoint schemas in terminal |
|
|
112
|
+
| `jetic simulate endpoint` | Test live HTTP endpoints against local/staging server |
|
|
113
|
+
| `jetic simulate workflow` | Execute multi-step stateful workflows from `.jetic/workflows/` |
|
|
114
|
+
| `jetic dev` | Launch local **Jetic Studio** dashboard UI on port `8787` |
|
|
115
|
+
| `jetic memory` | View, set, or clear runtime variable memory (`.jetic/memory.json`) |
|
|
116
|
+
| `jetic mcp` | Start stdio MCP server for AI IDE integration |
|
|
341
117
|
|
|
342
118
|
---
|
|
343
119
|
|
|
344
|
-
|
|
345
|
-
Real-time state and key-value store inspector for `.jetic/memory.json`.
|
|
120
|
+
## 🖥️ Jetic Studio
|
|
346
121
|
|
|
347
|
-
|
|
348
|
-
- View authorization tokens (JWTs, session cookies), user credentials, resource IDs, and custom variables.
|
|
349
|
-
- Add, edit, or delete entries across `workflow` and `global` memory scopes.
|
|
350
|
-
- Clear state between simulation runs.
|
|
122
|
+
Run `jetic dev` to open the local web developer studio:
|
|
351
123
|
|
|
352
|
-
|
|
124
|
+
- **Behavioral Model (`/model`)**: Explore endpoints, request/response schemas, and AST source code lines.
|
|
125
|
+
- **AI Simulations (`/simulations`)**: Visual step-by-step workflow runner with real-time SSE execution logs.
|
|
126
|
+
- **Memory Inspector (`/memory`)**: Edit captured tokens, fake test data, and session variables.
|
|
127
|
+
- **Visual Traces (`/traces`)**: Interactive node-graph execution visualizer powered by ReactFlow.
|
|
353
128
|
|
|
354
129
|
---
|
|
355
130
|
|
|
356
|
-
|
|
357
|
-
Interactive ReactFlow node-graph visualizer for workflow execution traces.
|
|
358
|
-
|
|
359
|
-
- **Key Highlights**:
|
|
360
|
-
- **Node Graph Flow**: Visualizes steps as HTTP nodes connected by variable capture memory nodes.
|
|
361
|
-
- **Timeline Bar**: Proportional duration breakdown (ms) showing step latencies and pass/fail statuses.
|
|
362
|
-
- **Step Detail Drawer**: Click any node to open a side drawer detailing HTTP headers (injected vs standard), raw request body, JSON response body, expected status checks, and JSONPath capture rules.
|
|
363
|
-
|
|
364
|
-

|
|
365
|
-
|
|
366
|
-
---
|
|
367
|
-
|
|
368
|
-
## 📄 Artifact & File Schemas
|
|
369
|
-
|
|
370
|
-
### `.jetic/model.json` (Behavioral Model)
|
|
131
|
+
## 📄 Behavioral Model Preview (`.jetic/model.json`)
|
|
371
132
|
|
|
372
133
|
```json
|
|
373
134
|
{
|
|
374
135
|
"version": "0.3",
|
|
375
|
-
"
|
|
376
|
-
"
|
|
377
|
-
"name": "express-shop",
|
|
378
|
-
"language": "typescript",
|
|
379
|
-
"framework": "express"
|
|
380
|
-
},
|
|
381
|
-
"environments": [
|
|
382
|
-
{ "name": "local", "baseUrl": "http://localhost:3000" }
|
|
383
|
-
],
|
|
384
|
-
"securitySchemes": {
|
|
385
|
-
"bearerAuth": {
|
|
386
|
-
"type": "http",
|
|
387
|
-
"scheme": "bearer",
|
|
388
|
-
"obtainedFrom": {
|
|
389
|
-
"endpoint": "POST /api/auth/login",
|
|
390
|
-
"field": "data.accessToken"
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
},
|
|
136
|
+
"project": { "name": "my-api", "language": "typescript", "framework": "express" },
|
|
137
|
+
"environments": [{ "name": "local", "baseUrl": "http://localhost:3000" }],
|
|
394
138
|
"endpoints": [
|
|
395
139
|
{
|
|
396
140
|
"id": "post-api-auth-login",
|
|
397
141
|
"method": "POST",
|
|
398
142
|
"path": "/api/auth/login",
|
|
399
|
-
"
|
|
400
|
-
"
|
|
401
|
-
"file": "src/routes/auth.routes.ts",
|
|
402
|
-
"line": 14
|
|
403
|
-
},
|
|
143
|
+
"description": "User authentication endpoint",
|
|
144
|
+
"tags": ["auth"],
|
|
404
145
|
"requestBody": {
|
|
405
|
-
"contentType": "application/json",
|
|
406
146
|
"fields": {
|
|
407
|
-
"
|
|
408
|
-
"
|
|
147
|
+
"email": { "type": "string", "format": "email", "required": true },
|
|
148
|
+
"password": { "type": "string", "minLength": 8, "required": true }
|
|
409
149
|
}
|
|
410
150
|
},
|
|
411
151
|
"responses": {
|
|
412
|
-
"200": {
|
|
413
|
-
|
|
414
|
-
"schema": {
|
|
415
|
-
"data.accessToken": "string",
|
|
416
|
-
"data.user.id": "string"
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
},
|
|
420
|
-
"middleware": []
|
|
421
|
-
}
|
|
422
|
-
]
|
|
423
|
-
}
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
---
|
|
427
|
-
|
|
428
|
-
### `.jetic/workflows/admin-onboarding.json` (Workflow Definition)
|
|
429
|
-
|
|
430
|
-
```json
|
|
431
|
-
{
|
|
432
|
-
"name": "Admin creates workspace, creates class and logs out",
|
|
433
|
-
"generatedAt": "2026-08-30T10:15:00.000Z",
|
|
434
|
-
"steps": [
|
|
435
|
-
{
|
|
436
|
-
"name": "Admin setup workspace",
|
|
437
|
-
"method": "POST",
|
|
438
|
-
"path": "/api/workspaces/setup",
|
|
439
|
-
"description": "Register workspace and initial admin credentials",
|
|
440
|
-
"body": {
|
|
441
|
-
"workspace_name": "{{faker.company.name}}",
|
|
442
|
-
"admin_email": "{{faker.internet.email}}",
|
|
443
|
-
"admin_password": "{{faker.internet.password}}"
|
|
444
|
-
},
|
|
445
|
-
"captureInput": {
|
|
446
|
-
"workflow:adminEmail": "admin_email",
|
|
447
|
-
"workflow:adminPassword": "admin_password"
|
|
448
|
-
},
|
|
449
|
-
"capture": {
|
|
450
|
-
"workflow:workspaceID": "data.workspace.id"
|
|
451
|
-
},
|
|
452
|
-
"expectStatus": 201
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
"name": "Admin login",
|
|
456
|
-
"method": "POST",
|
|
457
|
-
"path": "/api/auth/login",
|
|
458
|
-
"description": "Authenticate using captured admin credentials",
|
|
459
|
-
"body": {
|
|
460
|
-
"user_email": "{{workflow:adminEmail}}",
|
|
461
|
-
"user_password": "{{workflow:adminPassword}}"
|
|
462
|
-
},
|
|
463
|
-
"capture": {
|
|
464
|
-
"workflow:accessToken": "data.accessToken"
|
|
465
|
-
},
|
|
466
|
-
"expectStatus": 200
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
"name": "Create class",
|
|
470
|
-
"method": "POST",
|
|
471
|
-
"path": "/api/classes",
|
|
472
|
-
"description": "Create class in workspace using Bearer token",
|
|
473
|
-
"inject": {
|
|
474
|
-
"header:Authorization": "Bearer {{workflow:accessToken}}"
|
|
475
|
-
},
|
|
476
|
-
"body": {
|
|
477
|
-
"name": "{{faker.word.noun}} Class",
|
|
478
|
-
"workspaceId": "{{workflow:workspaceID}}"
|
|
479
|
-
},
|
|
480
|
-
"expectStatus": 201
|
|
152
|
+
"200": { "description": "Returns JWT token", "schema": { "token": "string" } }
|
|
153
|
+
}
|
|
481
154
|
}
|
|
482
155
|
]
|
|
483
156
|
}
|
|
@@ -485,49 +158,7 @@ Interactive ReactFlow node-graph visualizer for workflow execution traces.
|
|
|
485
158
|
|
|
486
159
|
---
|
|
487
160
|
|
|
488
|
-
### `.jetic/memory.json` (Runtime State)
|
|
489
|
-
|
|
490
|
-
```json
|
|
491
|
-
{
|
|
492
|
-
"workflow": {
|
|
493
|
-
"adminEmail": "admin_test_8421@example.com",
|
|
494
|
-
"adminPassword": "Password123!",
|
|
495
|
-
"workspaceID": "ws_98124712",
|
|
496
|
-
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
|
497
|
-
},
|
|
498
|
-
"global": {
|
|
499
|
-
"baseUrl": "http://localhost:3000"
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
---
|
|
505
|
-
|
|
506
|
-
## 🗺️ Roadmap & Vision
|
|
507
|
-
|
|
508
|
-
- [x] **Zero-Execution AST Scanner**: Deep TypeScript/Express source parser via `ts-morph` with import resolver.
|
|
509
|
-
- [x] **Declarative Behavioral Modeling**: Versioned `.jetic/model.json` schema with source code line references.
|
|
510
|
-
- [x] **Stateful AI Workflow Engine**: Multi-step simulation generation with `captureInput`, `capture`, and `inject`.
|
|
511
|
-
- [x] **Jetic Studio Local Dashboard**: React 19 IDE with REST simulator, AI builder, memory editor, and ReactFlow trace visualizer (`jetic dev`).
|
|
512
|
-
- [ ] **State-Machine Transition Testing**: Automatic state transition verification (e.g. `payment.capture()` valid when `authorized`, invalid when `refunded`).
|
|
513
|
-
- [ ] **Security & Authorization Vulnerability Auditor**: Automatic IDOR (Insecure Direct Object Reference) and privilege escalation scenario synthesizer.
|
|
514
|
-
- [ ] **Plugin Ecosystem SDK**: Custom extensions for GraphQL, Webhooks, gRPC, and custom LLM tool-calling agent test suites.
|
|
515
|
-
|
|
516
|
-
---
|
|
517
|
-
|
|
518
|
-
## 🤝 Contributing
|
|
519
|
-
|
|
520
|
-
We welcome contributions! Please see our [CONTRIBUTING.md](../../CONTRIBUTING.md) guide for instructions on setting up your local development environment, running tests across monorepo packages, and submitting Pull Requests.
|
|
521
|
-
|
|
522
|
-
---
|
|
523
|
-
|
|
524
|
-
## 📝 License
|
|
525
|
-
|
|
526
|
-
This project is licensed under the [ISC License](../../LICENSE).
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
161
|
<p align="center">
|
|
531
|
-
<i>Built with ❤️ by the Jetic Team
|
|
162
|
+
<i>Built with ❤️ by the Jetic Team.</i>
|
|
532
163
|
</p>
|
|
533
164
|
|