@misterscan/sesi 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -8
- package/bin/sesi.js +35 -34
- package/dist/ai-runtime.d.ts +5 -0
- package/dist/ai-runtime.d.ts.map +1 -1
- package/dist/ai-runtime.js +157 -7
- package/dist/ai-runtime.js.map +1 -1
- package/dist/builtins.d.ts +1 -1
- package/dist/builtins.d.ts.map +1 -1
- package/dist/builtins.js +114 -1
- package/dist/builtins.js.map +1 -1
- package/dist/interpreter.d.ts +6 -1
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +210 -36
- package/dist/interpreter.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +2 -0
- package/dist/parser.js.map +1 -1
- package/dist/sesi.bundled.js +534 -107
- package/dist/types.d.ts +9 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/docs/ARCHITECTURE.md +9 -9
- package/docs/BUILTINS.md +87 -8
- package/docs/DISTRIBUTED_SYSTEMS.md +1 -1
- package/docs/IMAGE_GENERATION.md +82 -1
- package/docs/IMPLEMENTATION_SUMMARY.md +544 -533
- package/docs/QUICKSTART.md +41 -1
- package/docs/README.md +19 -13
- package/docs/ROADMAP.md +10 -11
- package/docs/SPECIFICATION.md +37 -14
- package/docs/SYSTEMS_REASONING.md +35 -11
- package/docs/bakery_logo.png +0 -0
- package/docs/coffee_mug.png +0 -0
- package/docs/desk_lamp.png +0 -0
- package/docs/logo.png +0 -0
- package/docs/notebook.png +0 -0
- package/docs/sesi_ai_chronicles.md +209 -0
- package/examples/16_modules.sesi +28 -0
- package/examples/17_http_client.sesi +29 -0
- package/examples/18_parallel_requests.sesi +37 -0
- package/main/chatbot.sesi +36 -0
- package/main/conversational_classifier_weights.json +45 -0
- package/main/conversational_sentences.json +304 -0
- package/main/epochs.sesi +94 -0
- package/main/gpu_orchestrator.sesi +36 -0
- package/main/hardware_diagnostics.sesi +118 -0
- package/main/inference.sesi +54 -0
- package/main/native_chatbot.sesi +180 -0
- package/main/native_synthesizer.sesi +83 -0
- package/main/nn_personas_trainer.sesi +302 -0
- package/main/nn_responses_trainer.sesi +269 -0
- package/main/nn_sentences_trainer.sesi +330 -0
- package/main/personas.json +124 -0
- package/main/personas_classifier_weights.json +45 -0
- package/main/playground.sesi +3 -1
- package/main/predictive_typing.sesi +127 -0
- package/main/query_brain.sesi +45 -0
- package/main/response_classifier_weights.json +45 -0
- package/main/retro_chat.html +239 -0
- package/main/retro_chat_generator.sesi +745 -0
- package/main/sesi_ai.sesi +158 -0
- package/main/sesi_db_chatbot.sesi +261 -0
- package/main/terminal_chat.py +385 -0
- package/main/tests/temp_math_mod.sesi +3 -0
- package/main/tests/test_image_input.sesi +40 -0
- package/main/tests/test_v2_features.sesi +48 -0
- package/main/unified_sesi_ai.sesi +334 -0
- package/main/varied_responses.json +304 -0
- package/package.json +11 -5
- package/main/atm_deposit.sesi +0 -37
- package/main/atm_withdraw.sesi +0 -37
- package/main/data.txt +0 -1
- package/main/math_aggregator.sesi +0 -15
- package/main/math_generator.sesi +0 -7
- package/main/math_processor.sesi +0 -23
- package/main/tax_calculator.sesi +0 -15
- package/main/vault.sesi +0 -15
package/README.md
CHANGED
|
@@ -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 high-performance <strong>Systems Language</strong> 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.
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://code-with-sesi.netlify.app/">Homepage</a>
|
|
24
|
+
</p>
|
|
19
25
|
|
|
20
26
|
## Installation
|
|
21
27
|
|
|
@@ -28,7 +34,16 @@ npm install -g sesi
|
|
|
28
34
|
```
|
|
29
35
|
|
|
30
36
|
### 2. Standalone Executables
|
|
31
|
-
Don't want to install Node.js? Download the standalone executables bundled for Windows, Mac, and Linux directly from
|
|
37
|
+
Don't want to install Node.js? Download the standalone executables bundled for Windows, Mac, and Linux directly from our [Downloads page](https://code-with-sesi.netlify.app/downloads). Drop the executable in your system PATH and you're good to go!
|
|
38
|
+
|
|
39
|
+
For macOS users, Sesi also supports a native PKG installer flow when building from source:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm run build:exe
|
|
43
|
+
npm run build:mac:pkg
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This generates installer packages in `releases/` (for available architectures) that install `sesi` to `/usr/local/bin`.
|
|
32
47
|
|
|
33
48
|
### 3. Build from Source (For contributors)
|
|
34
49
|
```bash
|
|
@@ -113,7 +128,7 @@ The root-level `SKILLS.md` file is a workspace context file for AI agents. It re
|
|
|
113
128
|
## Project Structure
|
|
114
129
|
|
|
115
130
|
```
|
|
116
|
-
|
|
131
|
+
Sesi/
|
|
117
132
|
├── SKILLS.md # AI-agent workspace context and repo guardrails
|
|
118
133
|
├── index.html # Sesi-generated landing page
|
|
119
134
|
├── eslint.config.mjs # ESLint configuration
|
|
@@ -134,7 +149,7 @@ sesi-programming-lang/
|
|
|
134
149
|
│ └── index.ts # Main entry point
|
|
135
150
|
├── bin/
|
|
136
151
|
│ └── sesi.js # CLI executable
|
|
137
|
-
├── examples/ #
|
|
152
|
+
├── examples/ # 18 sample programs demonstrating all features
|
|
138
153
|
├── main/ # Main entry and specialized tests
|
|
139
154
|
│ ├── playground.sesi # Main playground script
|
|
140
155
|
│ ├── start.sesi # Beginner script
|
|
@@ -144,7 +159,7 @@ sesi-programming-lang/
|
|
|
144
159
|
└── docs/ # Documentation (ARCHITECTURE, BUILTINS, SPECIFICATION, etc.)
|
|
145
160
|
```
|
|
146
161
|
|
|
147
|
-
## Version 1.
|
|
162
|
+
## Version 1.2 Features (In Progress)
|
|
148
163
|
|
|
149
164
|
### Core Language ✅
|
|
150
165
|
|
|
@@ -153,6 +168,11 @@ sesi-programming-lang/
|
|
|
153
168
|
- **Control Flow**: `if/else`, `while`, `for`, and `try/catch`.
|
|
154
169
|
- **Collections**: Robust Arrays and Objects.
|
|
155
170
|
- **Error Handling**: Structured `try/catch` for both runtime and Reasoning-level errors.
|
|
171
|
+
- **Local Module Imports/Exports**: Import custom local `.sesi` modules cleanly using relative import/export syntax!
|
|
172
|
+
- **Standard Library Modules**: Native support for imported standard libraries, including:
|
|
173
|
+
- `std/math` (providing `PI`, `E`, `sqrt`, `pow`, `sin`, `cos`, etc.)
|
|
174
|
+
- `std/time` (providing `sleep` and `now`)
|
|
175
|
+
- `std/json` (providing JSON serialization/deserialization)
|
|
156
176
|
|
|
157
177
|
### Reasoning-Native Features ✅
|
|
158
178
|
|
|
@@ -163,7 +183,10 @@ sesi-programming-lang/
|
|
|
163
183
|
- `tool_call()` for function calling
|
|
164
184
|
- Basic memory for multi-turn reasoning
|
|
165
185
|
- `read_file()`, `write_file()`, `to_json()`, `write_image()`, and `list_dir()` for local file I/O
|
|
166
|
-
- **Native
|
|
186
|
+
- **Native Concurrency**: `spawn()` and `exec()` for concurrent process management, and `multi_req(array<function>)` for physical parallel request execution.
|
|
187
|
+
- **Logic Caching**: High-efficiency Sesi Logic Caching (`.sesi_cache.json`) for local call caching.
|
|
188
|
+
- **Thinking Scale**: Scaled Gemini reasoning configurations using the `thinking` parameters.
|
|
189
|
+
- **HTTP Client**: Built-in, native HTTP client support using `web_get(url)` and `web_send(url, body, headers)` with zero external dependencies.
|
|
167
190
|
- **Async Polling**: Native looping to auto-resume generation when hitting `MAX_TOKENS` limit
|
|
168
191
|
- **Utility Builtins**: `time()` and `random()` for robust coordination
|
|
169
192
|
|
|
@@ -178,8 +201,6 @@ sesi-programming-lang/
|
|
|
178
201
|
### V2: Advanced Reasoning
|
|
179
202
|
|
|
180
203
|
- Long-term memory and context management
|
|
181
|
-
- Parallel model calls
|
|
182
|
-
- Advanced error handling with Reasoning fallbacks
|
|
183
204
|
- Custom tool definitions
|
|
184
205
|
- Streaming responses
|
|
185
206
|
|
package/bin/sesi.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
require('@dotenvx/dotenvx').config();
|
|
2
3
|
const { runSesiFile } = require('../dist/index.js');
|
|
3
4
|
const fs = require('fs');
|
|
@@ -7,50 +8,50 @@ const args = process.argv.slice(2);
|
|
|
7
8
|
|
|
8
9
|
if (args.length === 0) {
|
|
9
10
|
console.log(`
|
|
10
|
-
Sesi Programming Language v1.
|
|
11
|
+
Sesi Programming Language v1.2.0
|
|
11
12
|
|
|
12
13
|
Usage:
|
|
13
14
|
sesi <file> Run a Sesi program
|
|
14
|
-
sesi
|
|
15
|
+
sesi -help <query> Ask for help from our Sesi Co-Pilot
|
|
16
|
+
sesi --help <query>
|
|
17
|
+
sesi -h <query>
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
sesi main/start.sesi
|
|
18
|
-
sesi examples/01_hello.sesi
|
|
19
|
-
`);
|
|
20
|
-
process.exit(0);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (args[0] === '--help' || args[0] === '-h') {
|
|
24
|
-
console.log(`
|
|
25
|
-
Sesi Programming Language v1.1.2
|
|
26
|
-
|
|
27
|
-
Usage:
|
|
28
|
-
sesi <file> Run a Sesi program
|
|
29
|
-
sesi --help Show this help
|
|
30
|
-
|
|
31
|
-
Options:
|
|
19
|
+
Options:
|
|
32
20
|
--version Show version
|
|
33
|
-
|
|
21
|
+
|
|
34
22
|
Examples:
|
|
35
23
|
sesi main/start.sesi
|
|
36
24
|
sesi examples/01_hello.sesi
|
|
25
|
+
sesi -help "how do I parse a json string?"
|
|
37
26
|
`);
|
|
38
27
|
process.exit(0);
|
|
39
28
|
}
|
|
40
29
|
|
|
41
|
-
if (args[0] === '--
|
|
42
|
-
|
|
30
|
+
if (args[0] === '--help' || args[0] === '-help' || args[0] === '-h') {
|
|
31
|
+
let queryText = args.slice(1).join(' ').trim();
|
|
32
|
+
if (!queryText) {
|
|
33
|
+
queryText = "how do I parse a json string?";
|
|
34
|
+
}
|
|
35
|
+
fs.writeFileSync('query.txt', queryText, 'utf-8');
|
|
36
|
+
|
|
37
|
+
const copilotPath = path.join(__dirname, '../main/sesi_db_chatbot.sesi');
|
|
38
|
+
runSesiFile(copilotPath).catch((error) => {
|
|
39
|
+
console.error('Fatal error in RAG Co-Pilot:', error.message);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
});
|
|
42
|
+
} else if (args[0] === '--version') {
|
|
43
|
+
console.log('Sesi v1.2.0');
|
|
43
44
|
process.exit(0);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
45
|
+
} else {
|
|
46
|
+
const filePath = args[0];
|
|
47
|
+
|
|
48
|
+
if (!fs.existsSync(filePath)) {
|
|
49
|
+
console.error(`Error: File not found: ${filePath}`);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
runSesiFile(filePath).catch((error) => {
|
|
54
|
+
console.error('Fatal error:', error.message);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
});
|
|
57
|
+
}
|
package/dist/ai-runtime.d.ts
CHANGED
|
@@ -4,6 +4,11 @@ export declare class AIRuntime {
|
|
|
4
4
|
private conversationHistory;
|
|
5
5
|
constructor();
|
|
6
6
|
private get client();
|
|
7
|
+
private getCacheFile;
|
|
8
|
+
private readCache;
|
|
9
|
+
private writeCache;
|
|
10
|
+
private computeCacheHash;
|
|
11
|
+
private resolveImageParts;
|
|
7
12
|
callModel(request: AIRequest): Promise<AIResponse>;
|
|
8
13
|
parseStructuredOutput(response: string, schema: Record<string, any>): Promise<StructuredOutput>;
|
|
9
14
|
initializeMemory(memoryId: string, initialValue: string): void;
|
package/dist/ai-runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-runtime.d.ts","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-runtime.d.ts","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIlE,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,mBAAmB,CAAoC;;IAI/D,OAAO,KAAK,MAAM,GAajB;IAED,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,iBAAiB;IAqBnB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAwNlD,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAkC5B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOvD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMnC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAGtD;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|
package/dist/ai-runtime.js
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.aiRuntime = exports.AIRuntime = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
4
39
|
class AIRuntime {
|
|
5
40
|
constructor() {
|
|
6
41
|
this._client = null;
|
|
@@ -19,12 +54,101 @@ class AIRuntime {
|
|
|
19
54
|
}
|
|
20
55
|
return this._client;
|
|
21
56
|
}
|
|
57
|
+
getCacheFile() {
|
|
58
|
+
return path.resolve(process.cwd(), '.sesi_cache.json');
|
|
59
|
+
}
|
|
60
|
+
readCache() {
|
|
61
|
+
const file = this.getCacheFile();
|
|
62
|
+
if (fs.existsSync(file)) {
|
|
63
|
+
try {
|
|
64
|
+
return JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
writeCache(cache) {
|
|
73
|
+
const file = this.getCacheFile();
|
|
74
|
+
try {
|
|
75
|
+
fs.writeFileSync(file, JSON.stringify(cache, null, 2), 'utf-8');
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
// Ignore write errors gracefully
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
computeCacheHash(request) {
|
|
82
|
+
const crypto = require('crypto');
|
|
83
|
+
const hash = crypto.createHash('sha256');
|
|
84
|
+
const input = {
|
|
85
|
+
model: request.model,
|
|
86
|
+
prompt: request.prompt,
|
|
87
|
+
temperature: request.temperature,
|
|
88
|
+
maxTokens: request.maxTokens,
|
|
89
|
+
topK: request.topK,
|
|
90
|
+
topP: request.topP,
|
|
91
|
+
ratio: request.ratio,
|
|
92
|
+
size: request.size,
|
|
93
|
+
images: request.images,
|
|
94
|
+
thinkingLevel: request.thinkingLevel,
|
|
95
|
+
};
|
|
96
|
+
hash.update(JSON.stringify(input));
|
|
97
|
+
return hash.digest('hex');
|
|
98
|
+
}
|
|
99
|
+
resolveImageParts(imagePaths) {
|
|
100
|
+
const mimeMap = {
|
|
101
|
+
'.jpg': 'image/jpeg',
|
|
102
|
+
'.jpeg': 'image/jpeg',
|
|
103
|
+
'.png': 'image/png',
|
|
104
|
+
'.gif': 'image/gif',
|
|
105
|
+
'.webp': 'image/webp',
|
|
106
|
+
'.bmp': 'image/bmp',
|
|
107
|
+
};
|
|
108
|
+
const parts = [];
|
|
109
|
+
for (const imgPath of imagePaths) {
|
|
110
|
+
const abs = path.isAbsolute(imgPath) ? imgPath : path.resolve(process.cwd(), imgPath);
|
|
111
|
+
const ext = path.extname(abs).toLowerCase();
|
|
112
|
+
const mimeType = mimeMap[ext] ?? 'image/jpeg';
|
|
113
|
+
const data = fs.readFileSync(abs).toString('base64');
|
|
114
|
+
parts.push({ inlineData: { mimeType, data } });
|
|
115
|
+
}
|
|
116
|
+
return parts;
|
|
117
|
+
}
|
|
22
118
|
async callModel(request) {
|
|
119
|
+
const useCache = request.cache !== false;
|
|
120
|
+
let cacheHash = '';
|
|
121
|
+
if (useCache) {
|
|
122
|
+
cacheHash = this.computeCacheHash(request);
|
|
123
|
+
const cache = this.readCache();
|
|
124
|
+
if (cache[cacheHash]) {
|
|
125
|
+
console.log('⚡ [Sesi Logic Cache] Served from local cache');
|
|
126
|
+
return cache[cacheHash];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
23
129
|
try {
|
|
24
130
|
const client = this.client;
|
|
25
131
|
// Inject current date/time for context
|
|
26
132
|
const timeContext = `[System context: Current date and time is ${new Date().toUTCString()}]\n\n`;
|
|
27
133
|
const fullPrompt = timeContext + request.prompt;
|
|
134
|
+
// Build thinkingConfig if requested
|
|
135
|
+
let thinkingConfig = undefined;
|
|
136
|
+
if (request.thinkingLevel) {
|
|
137
|
+
const thinking = request.thinkingLevel.thinking !== 'no';
|
|
138
|
+
const level = request.thinkingLevel.level || 'low';
|
|
139
|
+
const isGemini3 = request.model.includes('gemini-3');
|
|
140
|
+
if (isGemini3) {
|
|
141
|
+
const isPro = request.model.includes('pro');
|
|
142
|
+
thinkingConfig = {
|
|
143
|
+
thinkingLevel: thinking ? level : (isPro ? 'low' : 'minimal')
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
thinkingConfig = {
|
|
148
|
+
thinkingBudget: thinking ? (level === 'low' ? 1024 : level === 'medium' ? 2048 : 4096) : 0
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
28
152
|
// Handle image generation models dynamically
|
|
29
153
|
if (request.model.includes('image')) {
|
|
30
154
|
const imageConfig = {};
|
|
@@ -46,9 +170,13 @@ class AIRuntime {
|
|
|
46
170
|
configObj.topK = request.topK;
|
|
47
171
|
if (request.topP !== undefined)
|
|
48
172
|
configObj.topP = request.topP;
|
|
173
|
+
if (thinkingConfig)
|
|
174
|
+
configObj.thinkingConfig = thinkingConfig;
|
|
49
175
|
const response = await client.models.generateContent({
|
|
50
176
|
model: request.model,
|
|
51
|
-
contents: request.
|
|
177
|
+
contents: request.images && request.images.length > 0
|
|
178
|
+
? [{ role: 'user', parts: [...this.resolveImageParts(request.images), { text: request.prompt }] }]
|
|
179
|
+
: request.prompt,
|
|
52
180
|
config: configObj
|
|
53
181
|
});
|
|
54
182
|
let base64String = null;
|
|
@@ -63,7 +191,7 @@ class AIRuntime {
|
|
|
63
191
|
if (!base64String) {
|
|
64
192
|
throw new Error("Image generation failed or returned no image output.");
|
|
65
193
|
}
|
|
66
|
-
|
|
194
|
+
const resObj = {
|
|
67
195
|
text: base64String, // Return the base64 string directly
|
|
68
196
|
finishReason: 'STOP',
|
|
69
197
|
usage: {
|
|
@@ -71,6 +199,12 @@ class AIRuntime {
|
|
|
71
199
|
outputTokens: 0,
|
|
72
200
|
},
|
|
73
201
|
};
|
|
202
|
+
if (useCache) {
|
|
203
|
+
const cache = this.readCache();
|
|
204
|
+
cache[cacheHash] = resObj;
|
|
205
|
+
this.writeCache(cache);
|
|
206
|
+
}
|
|
207
|
+
return resObj;
|
|
74
208
|
}
|
|
75
209
|
let accumulatedText = '';
|
|
76
210
|
let currentFinishReason = '';
|
|
@@ -79,9 +213,15 @@ class AIRuntime {
|
|
|
79
213
|
let totalOutputTokens = 0;
|
|
80
214
|
let maxPolls = 10;
|
|
81
215
|
let currentPoll = 0;
|
|
82
|
-
const contents = [
|
|
83
|
-
|
|
84
|
-
|
|
216
|
+
const contents = [];
|
|
217
|
+
// Prepend image parts if provided
|
|
218
|
+
const imageParts = request.images && request.images.length > 0
|
|
219
|
+
? this.resolveImageParts(request.images)
|
|
220
|
+
: [];
|
|
221
|
+
contents.push({
|
|
222
|
+
role: 'user',
|
|
223
|
+
parts: [...imageParts, { text: fullPrompt }],
|
|
224
|
+
});
|
|
85
225
|
while (!isComplete && currentPoll < maxPolls) {
|
|
86
226
|
const genConfig = {
|
|
87
227
|
temperature: request.temperature ?? 0.3,
|
|
@@ -92,6 +232,9 @@ class AIRuntime {
|
|
|
92
232
|
if (request.tools) {
|
|
93
233
|
genConfig.tools = request.tools;
|
|
94
234
|
}
|
|
235
|
+
if (thinkingConfig) {
|
|
236
|
+
genConfig.thinkingConfig = thinkingConfig;
|
|
237
|
+
}
|
|
95
238
|
const response = await client.models.generateContent({
|
|
96
239
|
model: request.model,
|
|
97
240
|
contents: contents,
|
|
@@ -104,7 +247,7 @@ class AIRuntime {
|
|
|
104
247
|
if (candidate?.content?.parts) {
|
|
105
248
|
for (const part of candidate.content.parts) {
|
|
106
249
|
if (part.call) {
|
|
107
|
-
|
|
250
|
+
const toolRes = {
|
|
108
251
|
text: JSON.stringify(part.call),
|
|
109
252
|
finishReason: 'TOOL_CALL',
|
|
110
253
|
usage: {
|
|
@@ -112,6 +255,7 @@ class AIRuntime {
|
|
|
112
255
|
outputTokens: response.usageMetadata?.candidatesTokenCount ?? 0,
|
|
113
256
|
},
|
|
114
257
|
};
|
|
258
|
+
return toolRes;
|
|
115
259
|
}
|
|
116
260
|
}
|
|
117
261
|
}
|
|
@@ -146,7 +290,7 @@ class AIRuntime {
|
|
|
146
290
|
if (currentFinishReason !== 'STOP' && currentFinishReason !== 'MAX_TOKENS') {
|
|
147
291
|
throw new Error(`Generation did not complete successfully (finish reason: ${currentFinishReason})`);
|
|
148
292
|
}
|
|
149
|
-
|
|
293
|
+
const resObj = {
|
|
150
294
|
text: accumulatedText,
|
|
151
295
|
finishReason: currentFinishReason,
|
|
152
296
|
usage: {
|
|
@@ -154,6 +298,12 @@ class AIRuntime {
|
|
|
154
298
|
outputTokens: totalOutputTokens,
|
|
155
299
|
},
|
|
156
300
|
};
|
|
301
|
+
if (useCache) {
|
|
302
|
+
const cache = this.readCache();
|
|
303
|
+
cache[cacheHash] = resObj;
|
|
304
|
+
this.writeCache(cache);
|
|
305
|
+
}
|
|
306
|
+
return resObj;
|
|
157
307
|
}
|
|
158
308
|
catch (error) {
|
|
159
309
|
throw new Error(`Sesi: ${error.message}`);
|
package/dist/ai-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-runtime.js","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-runtime.js","sourceRoot":"","sources":["../src/ai-runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAE7B,MAAa,SAAS;IAIpB;QAHQ,YAAO,GAAQ,IAAI,CAAC;QACpB,wBAAmB,GAA0B,IAAI,GAAG,EAAE,CAAC;IAEhD,CAAC;IAEhB,IAAY,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,qEAAqE;oBACrE,4DAA4D,GAAG,KAAK,CAAC,OAAO,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACzD,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,UAAU,CAAC,KAAiC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,iCAAiC;QACnC,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAkB;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,iBAAiB,CAAC,UAAoB;QAC5C,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,MAAM,KAAK,GAAU,EAAE,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YACtF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAkB;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;QACzC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,uCAAuC;YACvC,MAAM,WAAW,GAAG,6CAA6C,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;YACjG,MAAM,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;YAEhD,oCAAoC;YACpC,IAAI,cAAc,GAAQ,SAAS,CAAC;YACpC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC;gBACzD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC;gBAEnD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC5C,cAAc,GAAG;wBACf,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;qBAC9D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG;wBACf,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3F,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAQ,EAAE,CAAC;gBAC5B,IAAI,OAAO,CAAC,KAAK;oBAAE,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC3D,IAAI,OAAO,CAAC,IAAI;oBAAE,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEvD,MAAM,SAAS,GAAQ;oBACnB,kBAAkB,EAAE,CAAC,OAAO,CAAC;iBAChC,CAAC;gBAEF,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;gBACxC,CAAC;gBAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;oBAAE,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBACnF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;oBAAE,SAAS,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;gBACnF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;oBAAE,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;oBAAE,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC9D,IAAI,cAAc;oBAAE,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;gBAE9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;oBACnD,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;wBACnD,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;wBAClG,CAAC,CAAC,OAAO,CAAC,MAAM;oBAClB,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBAEH,IAAI,YAAY,GAAG,IAAI,CAAC;gBACxB,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BAClB,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACpC,MAAM;wBACV,CAAC;oBACL,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC1E,CAAC;gBAED,MAAM,MAAM,GAAe;oBACzB,IAAI,EAAE,YAAY,EAAE,oCAAoC;oBACxD,YAAY,EAAE,MAAM;oBACpB,KAAK,EAAE;wBACL,WAAW,EAAE,CAAC;wBACd,YAAY,EAAE,CAAC;qBAChB;iBACF,CAAC;gBAEF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,mBAAmB,GAAG,EAAE,CAAC;YAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,MAAM,QAAQ,GAAU,EAAE,CAAC;YAE3B,kCAAkC;YAClC,MAAM,UAAU,GAAU,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxC,CAAC,CAAC,EAAE,CAAC;YAEP,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAC7C,CAAC,CAAC;YAEH,OAAO,CAAC,UAAU,IAAI,WAAW,GAAG,QAAQ,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAQ;oBACnB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;oBACvC,eAAe,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;oBAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACrB,CAAC;gBAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACpC,CAAC;gBAED,IAAI,cAAc,EAAE,CAAC;oBACnB,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;gBAC5C,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;oBACnD,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,eAAe,GAAG,SAAS,EAAE,YAAY,IAAI,QAAQ,CAAC,YAAY,IAAI,SAAS,CAAC;gBACtF,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE3D,oBAAoB;gBACpB,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACZ,MAAM,OAAO,GAAe;gCACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gCAC/B,YAAY,EAAE,WAAW;gCACzB,KAAK,EAAE;oCACH,WAAW,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC;oCAC1D,YAAY,EAAE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,IAAI,CAAC;iCAClE;6BACJ,CAAC;4BACF,OAAO,OAAO,CAAC;wBACnB,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACZ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;wBACtB,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,eAAe,IAAI,IAAI,CAAC;gBAExB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,CAAC;gBAClE,iBAAiB,IAAI,QAAQ,CAAC,aAAa,EAAE,oBAAoB,IAAI,CAAC,CAAC;gBAEvE,mBAAmB,GAAG,YAAY,CAAC;gBAEnC,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;oBAClC,4EAA4E;oBAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,6CAA6C,EAAE,CAAC,EAAE,CAAC,CAAC;oBAClG,WAAW,EAAE,CAAC;gBAChB,CAAC;qBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBACnC,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,YAAY,GAAG,CAAC,CAAC;oBAC9E,CAAC;oBACD,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,IAAI,mBAAmB,KAAK,MAAM,IAAI,mBAAmB,KAAK,YAAY,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CAAC,4DAA4D,mBAAmB,GAAG,CAAC,CAAC;YACtG,CAAC;YAED,MAAM,MAAM,GAAe;gBACzB,IAAI,EAAE,eAAe;gBACrB,YAAY,EAAE,mBAAmB;gBACjC,KAAK,EAAE;oBACL,WAAW,EAAE,gBAAgB;oBAC7B,YAAY,EAAE,iBAAiB;iBAChC;aACF,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,QAAgB,EAChB,MAA2B;QAE3B,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,0BAA0B;gBAC1B,MAAM,MAAM,GAAqB,EAAE,CAAC;gBACpC,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,8DAA8D;YAC9D,MAAM,gBAAgB,GAAG,wDAAwD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,QAAQ,EAAE,CAAC;YACnI,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;gBAC9C,KAAK,EAAE,uBAAuB;gBAC9B,MAAM,EAAE,gBAAgB;gBACxB,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,YAAoB;QACrD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,OAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,OAAe;QAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAvWD,8BAuWC;AAEY,QAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
|
package/dist/builtins.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RuntimeValue, RuntimeFunction } from './types';
|
|
2
|
-
export declare function getBuiltins(): Map<string, RuntimeFunction>;
|
|
2
|
+
export declare function getBuiltins(interpreter?: any): Map<string, RuntimeFunction>;
|
|
3
3
|
export declare function isTruthy(value: RuntimeValue): boolean;
|
|
4
4
|
export declare function isEqual(a: RuntimeValue, b: RuntimeValue): boolean;
|
|
5
5
|
export declare function stringify(value: RuntimeValue): string;
|
package/dist/builtins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../src/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAKxD,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../src/builtins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAKxD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CA8d3E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIrD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAWjE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAmBrD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAQtE"}
|
package/dist/builtins.js
CHANGED
|
@@ -41,7 +41,7 @@ exports.compareValues = compareValues;
|
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const child_process_1 = require("child_process");
|
|
44
|
-
function getBuiltins() {
|
|
44
|
+
function getBuiltins(interpreter) {
|
|
45
45
|
const builtins = new Map();
|
|
46
46
|
builtins.set('print', {
|
|
47
47
|
type: 'function',
|
|
@@ -122,6 +122,37 @@ function getBuiltins() {
|
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
124
|
});
|
|
125
|
+
builtins.set('from_json', {
|
|
126
|
+
type: 'function',
|
|
127
|
+
name: 'from_json',
|
|
128
|
+
params: [{ name: 'string' }],
|
|
129
|
+
body: {},
|
|
130
|
+
closure: {},
|
|
131
|
+
isBuiltin: true,
|
|
132
|
+
builtin: (str) => {
|
|
133
|
+
if (typeof str !== 'string')
|
|
134
|
+
return null;
|
|
135
|
+
try {
|
|
136
|
+
return JSON.parse(str);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
builtins.set('exp', {
|
|
144
|
+
type: 'function',
|
|
145
|
+
name: 'exp',
|
|
146
|
+
params: [{ name: 'x' }],
|
|
147
|
+
body: {},
|
|
148
|
+
closure: {},
|
|
149
|
+
isBuiltin: true,
|
|
150
|
+
builtin: (x) => {
|
|
151
|
+
if (typeof x !== 'number')
|
|
152
|
+
return null;
|
|
153
|
+
return Math.exp(x);
|
|
154
|
+
},
|
|
155
|
+
});
|
|
125
156
|
builtins.set('num', {
|
|
126
157
|
type: 'function',
|
|
127
158
|
name: 'num',
|
|
@@ -413,6 +444,88 @@ function getBuiltins() {
|
|
|
413
444
|
isBuiltin: true,
|
|
414
445
|
builtin: () => Math.random(),
|
|
415
446
|
});
|
|
447
|
+
builtins.set('web_get', {
|
|
448
|
+
type: 'function',
|
|
449
|
+
name: 'web_get',
|
|
450
|
+
params: [{ name: 'url' }, { name: 'headers', defaultValue: {} }],
|
|
451
|
+
body: {},
|
|
452
|
+
closure: {},
|
|
453
|
+
isBuiltin: true,
|
|
454
|
+
builtin: async (...args) => {
|
|
455
|
+
const [urlVal, headersVal] = args;
|
|
456
|
+
const url = typeof urlVal === 'string' ? urlVal : '';
|
|
457
|
+
const headersObj = {};
|
|
458
|
+
if (headersVal && typeof headersVal === 'object' && !Array.isArray(headersVal)) {
|
|
459
|
+
for (const [k, v] of Object.entries(headersVal)) {
|
|
460
|
+
headersObj[k] = String(v);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
try {
|
|
464
|
+
const response = await fetch(url, {
|
|
465
|
+
method: 'GET',
|
|
466
|
+
headers: headersObj,
|
|
467
|
+
});
|
|
468
|
+
return await response.text();
|
|
469
|
+
}
|
|
470
|
+
catch (e) {
|
|
471
|
+
throw new Error(`web_get failed: ${e.message}`);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
builtins.set('web_send', {
|
|
476
|
+
type: 'function',
|
|
477
|
+
name: 'web_send',
|
|
478
|
+
params: [{ name: 'url' }, { name: 'body' }, { name: 'headers', defaultValue: {} }],
|
|
479
|
+
body: {},
|
|
480
|
+
closure: {},
|
|
481
|
+
isBuiltin: true,
|
|
482
|
+
builtin: async (...args) => {
|
|
483
|
+
const [urlVal, bodyVal, headersVal] = args;
|
|
484
|
+
const url = typeof urlVal === 'string' ? urlVal : '';
|
|
485
|
+
const body = typeof bodyVal === 'string' ? bodyVal : JSON.stringify(bodyVal);
|
|
486
|
+
const headersObj = { 'Content-Type': 'application/json' };
|
|
487
|
+
if (headersVal && typeof headersVal === 'object' && !Array.isArray(headersVal)) {
|
|
488
|
+
for (const [k, v] of Object.entries(headersVal)) {
|
|
489
|
+
headersObj[k] = String(v);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const response = await fetch(url, {
|
|
494
|
+
method: 'POST',
|
|
495
|
+
headers: headersObj,
|
|
496
|
+
body,
|
|
497
|
+
});
|
|
498
|
+
return await response.text();
|
|
499
|
+
}
|
|
500
|
+
catch (e) {
|
|
501
|
+
throw new Error(`web_send failed: ${e.message}`);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
});
|
|
505
|
+
builtins.set('multi_req', {
|
|
506
|
+
type: 'function',
|
|
507
|
+
name: 'multi_req',
|
|
508
|
+
params: [{ name: 'fns' }],
|
|
509
|
+
body: {},
|
|
510
|
+
closure: {},
|
|
511
|
+
isBuiltin: true,
|
|
512
|
+
builtin: async (...args) => {
|
|
513
|
+
const [fnsVal] = args;
|
|
514
|
+
if (!Array.isArray(fnsVal)) {
|
|
515
|
+
throw new Error('multi_req expects an array of functions');
|
|
516
|
+
}
|
|
517
|
+
if (!interpreter) {
|
|
518
|
+
throw new Error('multi_req interpreter reference is missing');
|
|
519
|
+
}
|
|
520
|
+
const promises = fnsVal.map(async (fn) => {
|
|
521
|
+
if (typeof fn !== 'object' || fn === null || fn.type !== 'function') {
|
|
522
|
+
throw new Error('multi_req elements must be functions');
|
|
523
|
+
}
|
|
524
|
+
return await interpreter.callSesiFunction(fn, []);
|
|
525
|
+
});
|
|
526
|
+
return await Promise.all(promises);
|
|
527
|
+
}
|
|
528
|
+
});
|
|
416
529
|
return builtins;
|
|
417
530
|
}
|
|
418
531
|
function isTruthy(value) {
|