@misterscan/sesi 1.2.2 → 1.3.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 (58) hide show
  1. package/README.md +138 -34
  2. package/bin/sesi.js +163 -38
  3. package/dist/ai-runtime.d.ts.map +1 -1
  4. package/dist/ai-runtime.js +22 -4
  5. package/dist/ai-runtime.js.map +1 -1
  6. package/dist/builtins.d.ts +1 -0
  7. package/dist/builtins.d.ts.map +1 -1
  8. package/dist/builtins.js +257 -17
  9. package/dist/builtins.js.map +1 -1
  10. package/dist/index.d.ts +7 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +30 -5
  13. package/dist/index.js.map +1 -1
  14. package/dist/interpreter.d.ts +17 -1
  15. package/dist/interpreter.d.ts.map +1 -1
  16. package/dist/interpreter.js +256 -98
  17. package/dist/interpreter.js.map +1 -1
  18. package/dist/lexer.d.ts.map +1 -1
  19. package/dist/lexer.js +8 -4
  20. package/dist/lexer.js.map +1 -1
  21. package/dist/parser.d.ts +2 -0
  22. package/dist/parser.d.ts.map +1 -1
  23. package/dist/parser.js +76 -32
  24. package/dist/parser.js.map +1 -1
  25. package/dist/sesi.bundled.js +87 -20
  26. package/dist/types.d.ts +14 -1
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js +33 -1
  29. package/dist/types.js.map +1 -1
  30. package/docs/ARCHITECTURE.md +26 -9
  31. package/docs/BUILTINS.md +111 -13
  32. package/docs/COMPARISON.md +7 -9
  33. package/docs/{DISTRIBUTED_SYSTEMS.md → CONCURRENCY.md} +11 -11
  34. package/docs/IMAGE_GENERATION.md +13 -14
  35. package/docs/IMPLEMENTATION_SUMMARY.md +141 -84
  36. package/docs/QUICKSTART.md +81 -28
  37. package/docs/README.md +140 -34
  38. package/docs/{SYSTEMS_REASONING.md → REASONING.md} +107 -109
  39. package/docs/ROADMAP.md +44 -44
  40. package/docs/SKILLS.md +56 -28
  41. package/docs/SPECIFICATION.md +25 -18
  42. package/docs/sesi_ai_chronicles.md +96 -209
  43. package/examples/07_prompts.sesi +1 -1
  44. package/examples/08_model_call.sesi +1 -1
  45. package/examples/09_structured_output.sesi +1 -1
  46. package/examples/10_code_generation.sesi +1 -1
  47. package/examples/13_data_pipeline.sesi +1 -1
  48. package/examples/14_folder_explainer.sesi +2 -2
  49. package/examples/15_image_generation.sesi +1 -1
  50. package/examples/16_modules.sesi +27 -27
  51. package/examples/19_search_web.sesi +4 -0
  52. package/examples/20_model_aliases.sesi +22 -0
  53. package/examples/21_custom_tools.sesi +27 -0
  54. package/examples/22_reasoning_plus_custom_tools.sesi +19 -0
  55. package/main/orchestrator.sesi +2 -2
  56. package/main/sesi_db_chatbot.sesi +7 -3
  57. package/main/tests/test_grounding.sesi +2 -0
  58. package/package.json +6 -6
@@ -1,6 +1,8 @@
1
1
  # Quick Start Guide: Sesi Programming Language
2
2
 
3
- ## Run a program:
3
+ ### Run a program
4
+
5
+ Once Sesi is installed, you can run Sesi files globally:
4
6
 
5
7
  ```bash
6
8
  sesi main/start.sesi
@@ -8,6 +10,7 @@ sesi main/start.sesi
8
10
 
9
11
  ### Run Tests
10
12
 
13
+ For devs working on Sesi, you can verify your backend edits with the built-in test suite:
11
14
  ```bash
12
15
  npm test
13
16
  ```
@@ -104,7 +107,7 @@ Get your key from [Google AI Studio](https://aistudio.google.com/app/apikey).
104
107
  Reasoning features allow passing configuration options via a block format before the prompt.
105
108
 
106
109
  ```sesi
107
- let response = model("gemini-3-flash-preview") {"temperature": 0.8, "max_tokens": 1000} {"What is 2 + 2?"}
110
+ let response = model("gemini-3-flash-preview") {temperature: 0.8, max_tokens: 1000} {"What is 2 + 2?"}
108
111
  print response
109
112
  ```
110
113
 
@@ -129,7 +132,7 @@ print "Score: " analysis["score"]
129
132
  Like `model`, the `image` command takes configuration parameters.
130
133
 
131
134
  ```sesi
132
- let logo = image("gemini-3.1-flash-image-preview") {"ratio": '1:1', "size": 512, "temperature": 0.3, "max_tokens": 512} {"make a beautiful logo for the word Sesi"}
135
+ let logo = image("gemini-3.1-flash-image-preview") {ratio: "1:1", size: "512", temperature: 0.3} {"make a beautiful logo for the word Sesi"}
133
136
  write_image("logo.png", logo)
134
137
  print "Generated image successfully!"
135
138
  ```
@@ -143,7 +146,7 @@ print response
143
146
  chat = chat "Assistant:" response
144
147
  ```
145
148
 
146
- ### Concurrent Swarms
149
+ ### Concurrent Processes
147
150
 
148
151
  Sesi can orchestrate multiple concurrent scripts using the `spawn()` builtin.
149
152
 
@@ -167,6 +170,7 @@ from_json(path) // Read a JSON file
167
170
  write_file(path, content) // Write text to a file
168
171
  write_image(path, content) // Write base64 encoded image to a file
169
172
  list_dir(path) // List directory contents
173
+ make_dir(path) // Create a new directory
170
174
  spawn(path) // Launch concurrent background process
171
175
  exec(command) // Synchronous shell execution
172
176
  time() // Unix timestamp (ms)
@@ -178,7 +182,7 @@ random() // Random number (0-1)
178
182
  ```sesi
179
183
  type(value) // Get type name
180
184
  str(value) // Convert to string
181
- to_json(value) // Convert to valid JSON string
185
+ to_json(value) // Convert to valid JSON string
182
186
  num(value) // Convert to number
183
187
  bool(value) // Convert to boolean
184
188
  ```
@@ -199,19 +203,41 @@ range(n) // Create [0, 1, ..., n-1]
199
203
  ### Network & Concurrency
200
204
 
201
205
  ```sesi
202
- web_get(url, headers = {}) // Natively fetch from URL via HTTP GET
206
+ web_get(url, headers = {}) // Natively fetch from URL via HTTP GET
203
207
  web_send(url, body, headers = {}) // Natively post body to URL via HTTP POST
204
- multi_req(array<function>) // Run multiple tasks/requests physically in parallel
208
+ multi_req(array<function>) // Run multiple tasks/requests physically in parallel
209
+ ```
210
+
211
+ ### Reasoning
212
+
213
+ ```sesi
214
+ workflow(steps, input) // Run a multi-step reasoning workflow
215
+ set_alias(alias, model) // Register a custom local name for a model
216
+ define_tool(name, fn, desc) // Register a custom tool
217
+ list_tools() // List custom tool names
218
+ ```
219
+
220
+ ### Error Handling
221
+
222
+ ```sesi
223
+ error_type(type, message, data) // Create a custom error object
224
+ raise_error(error) // Throw an error
225
+ ```
226
+
227
+ ### Math
228
+
229
+ ```sesi
230
+ exp(x) // Exponential function
205
231
  ```
206
232
 
207
233
  ### Standard Library Modules
208
234
 
209
- Standard library features are available natively in **v1.2.0** using imports:
235
+ Standard library features are available natively in **v1.2+** using imports:
210
236
 
211
237
  ```sesi
212
- import { PI, sqrt } from "std/math"
213
- import { sleep, now } from "std/time"
214
- import { stringify, parse } from "std/json"
238
+ import {PI, sqrt} from "std/math"
239
+ import {sleep, now} from "std/time"
240
+ import {stringify, parse} from "std/json"
215
241
  ```
216
242
 
217
243
  ## Running Examples
@@ -239,10 +265,14 @@ sesi examples/14_folder_explainer.sesi
239
265
  # Image generation example
240
266
  sesi examples/15_image_generation.sesi
241
267
 
242
- # Advanced Version 1.2 features
268
+ # Advanced Version 1.3 features
243
269
  sesi examples/16_modules.sesi
244
270
  sesi examples/17_http_client.sesi
245
271
  sesi examples/18_parallel_requests.sesi
272
+ sesi examples/19_search_web.sesi
273
+ sesi examples/20_model_aliases.sesi
274
+ sesi examples/21_custom_tools.sesi
275
+ sesi examples/22_reasoning_plus_custom_tools.sesi
246
276
  ```
247
277
 
248
278
  ## Common Patterns
@@ -284,8 +314,8 @@ let rejoined = join(words, "-")
284
314
  ### Reasoning Classification
285
315
 
286
316
  ```sesi
287
- fn classify(item: string) {print model("gemini-3-flash-preview")
288
- {"Classify as: FRUIT, VEGETABLE, or GRAIN. Item: " item}}
317
+ fn classify(item: string)
318
+ {print model("gemini-3-flash-preview"){"Classify as: FRUIT, VEGETABLE, or GRAIN. Item: " item}}
289
319
  classify("apple")
290
320
  classify("carrot")
291
321
  classify("wheat")
@@ -296,12 +326,11 @@ classify("wheat")
296
326
  ### Print Intermediate Values
297
327
 
298
328
  ```sesi
299
- fn complex(x: number) {
300
- let step1 = x * 2
301
- print "Step 1:" str(step1)
302
- let step2 = step1 + 10
303
- print "Step 2:" str(step2)
304
- }
329
+ fn complex(x: number)
330
+ {let step1 = x * 2
331
+ print "Step 1:" str(step1)
332
+ let step2 = step1 + 10
333
+ print "Step 2:" str(step2)}
305
334
  complex(5)
306
335
  ```
307
336
 
@@ -331,15 +360,15 @@ else {print "Response: " response}
331
360
 
332
361
  ## Next Steps
333
362
 
334
- 1. **Read the spec**: [SPECIFICATION.md](SPECIFICATION.md)
335
- 2. **Learn about reasoning**: [SYSTEMS_REASONING.md](SYSTEMS_REASONING.md)
336
- 3. **Understand architecture**: [ARCHITECTURE.md](ARCHITECTURE.md)
337
- 4. **Check roadmap**: [ROADMAP.md](ROADMAP.md)
338
- 5. **Study examples**: [examples/](/examples/)
363
+ 1. **Read the spec**: [SPECIFICATION.md](docs/SPECIFICATION.md)
364
+ 2. **Learn about reasoning**: [REASONING.md](docs/REASONING.md)
365
+ 3. **Understand architecture**: [ARCHITECTURE.md](docs/ARCHITECTURE.md)
366
+ 4. **Check roadmap**: [ROADMAP.md](docs/ROADMAP.md)
367
+ 5. **Study examples**: [examples/](examples/)
339
368
 
340
369
  ## Getting Help
341
370
 
342
- Sesi comes with an advanced, built-in **Interactive RAG Co-Pilot** right in your command line! Instead of static help messages, you can query Sesi directly about how to use any statement, standard library, or architectural pattern:
371
+ Sesi comes with an advanced, built-in **Interactive Co-Pilot** right in your command line! Instead of static help messages, you can query Sesi directly about how to use any statement, standard library, or architectural pattern:
343
372
 
344
373
  ```bash
345
374
  # Ask the Sesi Co-Pilot for help directly
@@ -348,11 +377,35 @@ sesi --help "explain structured_output and give an example"
348
377
  sesi -h "how to spawn background processes?"
349
378
  ```
350
379
 
380
+ You can also pass a file into the help context so the co-pilot can talk about that exact script:
381
+
382
+ ```bash
383
+ sesi main/playground.sesi -h
384
+ sesi main/playground.sesi -h "why is this failing?"
385
+ ```
386
+
387
+ Other useful CLI options:
388
+
389
+ ```bash
390
+ # Run a one-line snippet
391
+ sesi -e "print 'hello'"
392
+
393
+ # Encrypt or decrypt a script file
394
+ sesi -encrypt my_script.sesi -p "my-password"
395
+ sesi -decrypt my_script.sesi -p "my-password"
396
+
397
+ # Disable sandbox protections for a run
398
+ sesi main/start.sesi --local
399
+
400
+ # Add extra allowed filesystem paths
401
+ sesi main/start.sesi --allowed-paths ./docs,./examples
402
+ ```
403
+
351
404
  The co-pilot will dynamically index and train on Sesi's native repository database and retrieve full RAG context from our standard specification docs to generate a syntactically correct, 100% accurate, conversational answer in real-time!
352
405
 
353
406
  You can also:
354
407
  - Check documentation in [docs/](docs/)
355
- - Review examples in [examples/](/examples/)
408
+ - Review examples in [examples/](examples/)
356
409
  - Read error messages carefully
357
410
  - Try simpler programs first
358
411
 
@@ -367,4 +420,4 @@ When reporting bugs:
367
420
 
368
421
  ---
369
422
 
370
- Happy programming with Sesi! 🚀
423
+ Happy programming with Sesi! 🚀
package/docs/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <img src="favicon.ico" alt="Sesi Logo" height="100" />
3
3
  </p>
4
4
 
5
- <h1 align="center">Sesi: A High-Performance Systems Language</h1>
5
+ <h1 align="center">Sesi: A Concise, Legible Programming Language</h1>
6
6
 
7
7
  <p align="center">
8
8
  <em>Pronounced "say-see" — What you say, you'll see.</em>
@@ -15,7 +15,13 @@
15
15
  <img alt="Framework" src="https://img.shields.io/badge/Node.js-Engine-success?logo=node.js">
16
16
  </p>
17
17
 
18
- **Sesi** is a high-performance **Systems Language** designed for building resilient, stateful applications. It provides first-class primitives for process management, filesystem orchestration, and integrated reasoning—enabling developers to build complex logic with a fraction of the boilerplate required by traditional languages.
18
+ <p align="center">
19
+ <strong>Sesi</strong> is a clean, minimal, and highly legible programming language. Built from the ground up to be concise and buildable, Sesi removes unnecessary boilerplate. Because the language itself is so simple, integrating external tools like shell commands or Reasoning models becomes effortless. It is a language built for clarity.
20
+ </p>
21
+
22
+ <p align="center">
23
+ <a href="https://code-with-sesi.netlify.app/">Homepage</a>
24
+ </p>
19
25
 
20
26
  ## Quick Start
21
27
 
@@ -32,6 +38,26 @@ sesi examples/08_model_call.sesi
32
38
  sesi examples.sesi
33
39
  ```
34
40
 
41
+ Useful CLI shortcuts:
42
+
43
+ ```bash
44
+ # Evaluate a quick snippet
45
+ sesi -e "print 'hello'"
46
+
47
+ # Ask the built-in co-pilot a question
48
+ sesi -help "how do I use memory?"
49
+
50
+ # Ask for help about a specific file
51
+ sesi main/playground.sesi -h "why is this failing"
52
+
53
+ # Encrypt or decrypt a script file
54
+ sesi -encrypt my_script.sesi -p "my-password"
55
+ sesi -decrypt my_script.sesi -p "my-password"
56
+
57
+ # Run with sandbox restrictions disabled
58
+ sesi main/start.sesi --local
59
+ ```
60
+
35
61
  # Local Execution (Development)
36
62
 
37
63
  If you choose not use the `sesi` command, use the helper npm scripts:
@@ -67,6 +93,40 @@ let code = model("gemini-3.1-pro-preview") {generateCode}
67
93
  print code
68
94
  ```
69
95
 
96
+ ## Security & Sandboxing
97
+
98
+ Sesi is designed to run and orchestrate untrusted AI reasoning pipelines. Because code can be influenced by prompt injections or generated model instructions, Sesi incorporates a **safe-by-default, zero-trust sandboxing engine**.
99
+
100
+ ### 🛡️ Core Security Features
101
+
102
+ 1. **Safe-by-Default Execution**:
103
+ - Sesi's sandbox is **enabled by default**. Any standard Sesi interpreter execution blocks system command lines (`exec`, `spawn`) and locks down imports and paths.
104
+ - *Overriding Safety:* Developers can explicitly bypass safe mode programmatically by initializing the interpreter with options, or on the command line by setting `SESI_SAFE_MODE=false`.
105
+
106
+ 2. **Absolute Prototype Pollution Immunity**:
107
+ - Sesi uses **prototype-free objects (`Object.create(null)`)** for all object literals, JSON parses (`from_json` or `std/json`), and structured model responses inside the interpreter.
108
+ - Because these objects do not inherit from standard JavaScript prototypes and possess no `__proto__` or prototype chain, **prototype pollution is physically and architecturally impossible**.
109
+
110
+ 3. **Strict Path Whitelisting**:
111
+ - Sesi validates all filesystem and subprocess paths against a **strict directory whitelist** (by default, only the Current Working Directory and the Script's base directory are allowed).
112
+ - Any path traversal resolving outside the whitelist is instantly rejected with a `Security Violation` exception.
113
+
114
+ 4. **Automated LLM Tool Call Sanitization**:
115
+ - Even if safe mode is explicitly turned off for developer automation, Sesi **strictly blocks automated tool execution** of sensitive commands (like `exec` and `spawn`) when requested dynamically by the model via `tool_call`. This completely isolates the host from prompt-injection RCE.
116
+
117
+ 5. **Deep isolation & Map Cloning**:
118
+ - Sub-interpreters loaded via concurrent workflows (`multi_req`) are fully isolated. Sesi **deep-clones** prompts and memories, preventing concurrent agent tasks from leaking state or polluting each other.
119
+
120
+ ### ⚙️ Programmatic Embedding Configurations
121
+ When embedding Sesi inside a host application, you can statically configure safety settings directly in code:
122
+ ```typescript
123
+ const interpreter = new Interpreter(scriptDir, {
124
+ safeMode: true, // Enable full sandbox limits (on by default)
125
+ allowLocalFs: false, // Block directory escapes (on by default)
126
+ allowedPaths: ['/var/tmp/sandbox'] // Custom strict whitelist directories
127
+ });
128
+ ```
129
+
70
130
  ## Documentation
71
131
 
72
132
  - [Getting Started](https://github.com/Misterscan/Sesi/blob/main/QUICKSTART.md)
@@ -74,11 +134,11 @@ print code
74
134
  - [Language Specification](https://github.com/Misterscan/Sesi/blob/main/docs/SPECIFICATION.md)
75
135
  - [Language Comparison Showcase](https://github.com/Misterscan/Sesi/blob/main/docs/COMPARISON.md)
76
136
  - [Built-in Functions](https://github.com/Misterscan/Sesi/blob/main/docs/BUILTINS.md)
77
- - [Reasoning Guide](https://github.com/Misterscan/Sesi/blob/main/docs/SYSTEMS_REASONING.md)
78
- - [Distributed Systems](https://github.com/Misterscan/Sesi/blob/main/docs/DISTRIBUTED_SYSTEMS.md)
137
+ - [Reasoning Guide](https://github.com/Misterscan/Sesi/blob/main/docs/REASONING.md)
138
+ - [Concurrency Systems](https://github.com/Misterscan/Sesi/blob/main/docs/CONCURRENCY.md)
79
139
  - [Runtime Architecture](https://github.com/Misterscan/Sesi/blob/main/docs/ARCHITECTURE.md)
80
140
 
81
- ## AI Agent Context
141
+ ## Agent Context
82
142
 
83
143
  The root-level `SKILLS.md` file is a workspace context file for AI agents. It records repo-specific constraints such as valid Sesi syntax expectations, execution conventions, and the intended meaning of directories like `main/` and `main/tests/`.
84
144
 
@@ -86,37 +146,83 @@ The root-level `SKILLS.md` file is a workspace context file for AI agents. It re
86
146
 
87
147
  ```
88
148
  Sesi/
89
- ├── SKILLS.md # AI-agent workspace context and repo guardrails
90
- ├── index.html # Sesi-generated landing page
91
- ├── eslint.config.mjs # ESLint configuration
92
- ├── dist/ # Compiled TypeScript output
93
- ├── example.js # Helper script to run basic examples
94
- ├── example-ai.js # Helper script to run Reasoning examples
95
- ├── package.json # Dependencies & scripts
96
- ├── tsconfig.json # TypeScript configuration
97
- ├── QUICKSTART.md # Quick start guide
98
- ├── IMPLEMENTATION_SUMMARY.md # Progress and tracking
99
- ├── src/
100
- ├── types.ts # Type system & AST nodes
101
- ├── lexer.ts # Tokenization
102
- │ ├── parser.ts # AST generation
103
- │ ├── interpreter.ts # Execution engine
104
- │ ├── builtins.ts # Standard library
105
- │ ├── ai-runtime.ts # Gemini integration
106
- └── index.ts # Main entry point
149
+ ├── SKILLS.md # Workspace context and repo guardrails
150
+ ├── index.html # Sesi-generated systems landing page
151
+ ├── eslint.config.mjs # ESLint configuration
152
+ ├── example.js # Helper script to run basic examples
153
+ ├── example-ai.js # Helper script to run reasoning examples
154
+ ├── examples.sesi # Central execution suite for examples
155
+ ├── README.md # Project overview
156
+ ├── QUICKSTART.md # Getting started guide
157
+ ├── package.json # Dependencies & scripts
158
+ ├── tsconfig.json # TypeScript configuration
159
+ ├── dist/ # Compiled TypeScript output
160
+
161
+ ├── src/ # Source code
162
+ │ ├── types.ts # Type definitions & AST nodes (400+ lines)
163
+ │ ├── lexer.ts # Tokenization (350+ lines)
164
+ │ ├── parser.ts # Recursive descent parser (700+ lines)
165
+ │ ├── interpreter.ts # Tree-walking interpreter (600+ lines)
166
+ ├── builtins.ts # Built-in functions (250+ lines)
167
+ │ ├── ai-runtime.ts # Integrated reasoning integration (120+ lines)
168
+ │ └── index.ts # Entry point (30+ lines)
169
+
107
170
  ├── bin/
108
- │ └── sesi.js # CLI executable
109
- ├── examples/ # 18 sample programs demonstrating all features
110
- ├── main/ # Main entry and specialized tests
111
- │ ├── playground.sesi # Main playground script
112
- │ ├── start.sesi # Beginner script
113
- ├── build_website.sesi # Sesi-powered landing page generator
114
- └── tests/ # Debug and syntax scripts
115
- ├── tests/ # Test suite
116
- └── docs/ # Documentation (ARCHITECTURE, BUILTINS, SPECIFICATION, etc.)
171
+ │ └── sesi.js # CLI executable
172
+
173
+ ├── main/ # Playgrounds & debugging
174
+ │ ├── playground.sesi # Main playground script
175
+ │ ├── start.sesi # Beginner script
176
+ └── tests/ # Additional syntax validation scripts
177
+
178
+ ├── docs/
179
+ │ ├── SPECIFICATION.md # Complete language spec (600+ lines)
180
+ │ ├── ARCHITECTURE.md # Runtime & system design (400+ lines)
181
+ │ ├── BUILTINS.md # Built-in functions reference (450+ lines)
182
+ │ ├── COMPARISON.md # Language comparison showcase
183
+ │ ├── CONCURRENCY.md # Concurrency & coordination guide (>100 lines)
184
+ │ ├── IMAGE_GENERATION.md # Image generation guide (>100 lines)
185
+ │ ├── REASONING.md # Reasoning and simple logic guide (>500 lines)
186
+ │ ├── ROADMAP.md # V2-V4+ development plan (400+ lines)
187
+ │ └── sesi_ai_chronicles.md # AI project history & notes
188
+
189
+ ├── examples/
190
+ │ ├── 01_hello.sesi # Hello World
191
+ │ ├── 02_variables.sesi # Variables & operations
192
+ │ ├── 03_functions.sesi # Functions with parameters
193
+ │ ├── 04_conditionals.sesi # If/else control flow
194
+ │ ├── 05_loops.sesi # While, for, for-in loops
195
+ │ ├── 06_arrays_objects.sesi # Collections
196
+ │ ├── 07_prompts.sesi # Reasoning blocks
197
+ │ ├── 08_model_call.sesi # Basic reasoning calls
198
+ │ ├── 09_structured_output.sesi # Type-safe reasoning responses
199
+ │ ├── 10_code_generation.sesi # Systems logic generation
200
+ │ ├── 11_memory_conversation.sesi # Multi-turn stateful reasoning
201
+ │ ├── 12_classification.sesi # Systems classification loop
202
+ │ ├── 13_data_pipeline.sesi # Complete systems pipeline
203
+ │ ├── 14_folder_explainer.sesi # Directory parsing & reasoning
204
+ │ ├── 15_image_generation.sesi # Image generation API test
205
+ │ ├── 16_modules.sesi # Modules & std library namespaces
206
+ │ ├── 17_http_client.sesi # Network GET/POST client
207
+ │ ├── 18_parallel_requests.sesi # Parallel requests concurrency
208
+ │ ├── 19_search_web.sesi # Web search integration
209
+ │ ├── 20_model_aliases.sesi # Custom model naming aliases
210
+ │ ├── 21_custom_tools.sesi # Custom runtime tool definitions
211
+ │ └── 22_reasoning_plus_custom_tools.sesi # Reasoning composed with custom tools
212
+
213
+ └── tests/ # Engine test suite
214
+ ├── basic.test.ts # Core parsing & evaluation tests
215
+ ├── cache.test.ts # Execution caching tests
216
+ ├── http.test.ts # Web request builtins testing
217
+ ├── module.test.ts # Imports & module loading tests
218
+ ├── parallel.test.ts # Concurrent execution tests
219
+ ├── security.test.ts # Sandbox & guardrail tests
220
+ ├── test-gemini.ts # Base model integration test
221
+ ├── test-gemini2.ts # Extended model integration test
222
+ └── workflow.test.ts # Complex sequence workflows tests
117
223
  ```
118
224
 
119
- ## Version 1.2 Features (In Progress)
225
+ ## Version 1.3 Features (In Progress)
120
226
 
121
227
  ### Core Language ✅
122
228
 
@@ -170,4 +276,4 @@ Sesi/
170
276
 
171
277
  ## License
172
278
 
173
- MIT
279
+ MIT