@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.
- package/README.md +138 -34
- package/bin/sesi.js +163 -38
- package/dist/ai-runtime.d.ts.map +1 -1
- package/dist/ai-runtime.js +22 -4
- package/dist/ai-runtime.js.map +1 -1
- package/dist/builtins.d.ts +1 -0
- package/dist/builtins.d.ts.map +1 -1
- package/dist/builtins.js +257 -17
- package/dist/builtins.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -5
- package/dist/index.js.map +1 -1
- package/dist/interpreter.d.ts +17 -1
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +256 -98
- package/dist/interpreter.js.map +1 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +8 -4
- package/dist/lexer.js.map +1 -1
- package/dist/parser.d.ts +2 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +76 -32
- package/dist/parser.js.map +1 -1
- package/dist/sesi.bundled.js +87 -20
- package/dist/types.d.ts +14 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +33 -1
- package/dist/types.js.map +1 -1
- package/docs/ARCHITECTURE.md +26 -9
- package/docs/BUILTINS.md +111 -13
- package/docs/COMPARISON.md +7 -9
- package/docs/{DISTRIBUTED_SYSTEMS.md → CONCURRENCY.md} +11 -11
- package/docs/IMAGE_GENERATION.md +13 -14
- package/docs/IMPLEMENTATION_SUMMARY.md +141 -84
- package/docs/QUICKSTART.md +81 -28
- package/docs/README.md +140 -34
- package/docs/{SYSTEMS_REASONING.md → REASONING.md} +107 -109
- package/docs/ROADMAP.md +44 -44
- package/docs/SKILLS.md +56 -28
- package/docs/SPECIFICATION.md +25 -18
- package/docs/sesi_ai_chronicles.md +96 -209
- package/examples/07_prompts.sesi +1 -1
- package/examples/08_model_call.sesi +1 -1
- package/examples/09_structured_output.sesi +1 -1
- package/examples/10_code_generation.sesi +1 -1
- package/examples/13_data_pipeline.sesi +1 -1
- package/examples/14_folder_explainer.sesi +2 -2
- package/examples/15_image_generation.sesi +1 -1
- package/examples/16_modules.sesi +27 -27
- package/examples/19_search_web.sesi +4 -0
- package/examples/20_model_aliases.sesi +22 -0
- package/examples/21_custom_tools.sesi +27 -0
- package/examples/22_reasoning_plus_custom_tools.sesi +19 -0
- package/main/orchestrator.sesi +2 -2
- package/main/sesi_db_chatbot.sesi +7 -3
- package/main/tests/test_grounding.sesi +2 -0
- package/package.json +6 -6
package/docs/QUICKSTART.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Quick Start Guide: Sesi Programming Language
|
|
2
2
|
|
|
3
|
-
|
|
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") {
|
|
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") {
|
|
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
|
|
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)
|
|
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 = {})
|
|
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>)
|
|
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
|
|
235
|
+
Standard library features are available natively in **v1.2+** using imports:
|
|
210
236
|
|
|
211
237
|
```sesi
|
|
212
|
-
import {
|
|
213
|
-
import {
|
|
214
|
-
import {
|
|
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.
|
|
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)
|
|
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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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**: [
|
|
336
|
-
3. **Understand architecture**: [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
337
|
-
4. **Check roadmap**: [ROADMAP.md](ROADMAP.md)
|
|
338
|
-
5. **Study 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
|
|
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/](
|
|
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
|
|
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
|
-
|
|
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/
|
|
78
|
-
- [
|
|
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
|
-
##
|
|
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
|
|
90
|
-
├── index.html
|
|
91
|
-
├── eslint.config.mjs
|
|
92
|
-
├──
|
|
93
|
-
├── example.js
|
|
94
|
-
├──
|
|
95
|
-
├──
|
|
96
|
-
├──
|
|
97
|
-
├──
|
|
98
|
-
├──
|
|
99
|
-
├──
|
|
100
|
-
│
|
|
101
|
-
|
|
102
|
-
│ ├──
|
|
103
|
-
│ ├──
|
|
104
|
-
│ ├──
|
|
105
|
-
│ ├──
|
|
106
|
-
│
|
|
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
|
|
109
|
-
|
|
110
|
-
├── main/
|
|
111
|
-
│ ├── playground.sesi
|
|
112
|
-
│ ├── start.sesi
|
|
113
|
-
│
|
|
114
|
-
│
|
|
115
|
-
├──
|
|
116
|
-
|
|
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.
|
|
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
|