@misterscan/sesi 1.1.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.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +191 -0
  3. package/bin/sesi.js +56 -0
  4. package/dist/ai-runtime.d.ts +15 -0
  5. package/dist/ai-runtime.d.ts.map +1 -0
  6. package/dist/ai-runtime.js +214 -0
  7. package/dist/ai-runtime.js.map +1 -0
  8. package/dist/builtins.d.ts +7 -0
  9. package/dist/builtins.d.ts.map +1 -0
  10. package/dist/builtins.js +473 -0
  11. package/dist/builtins.js.map +1 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +72 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/interpreter.d.ts +36 -0
  17. package/dist/interpreter.d.ts.map +1 -0
  18. package/dist/interpreter.js +495 -0
  19. package/dist/interpreter.js.map +1 -0
  20. package/dist/lexer.d.ts +26 -0
  21. package/dist/lexer.d.ts.map +1 -0
  22. package/dist/lexer.js +340 -0
  23. package/dist/lexer.js.map +1 -0
  24. package/dist/parser.d.ts +55 -0
  25. package/dist/parser.d.ts.map +1 -0
  26. package/dist/parser.js +1022 -0
  27. package/dist/parser.js.map +1 -0
  28. package/dist/types.d.ts +304 -0
  29. package/dist/types.d.ts.map +1 -0
  30. package/dist/types.js +63 -0
  31. package/dist/types.js.map +1 -0
  32. package/docs/ARCHITECTURE.md +430 -0
  33. package/docs/BUILTINS.md +577 -0
  34. package/docs/COMPARISON.md +334 -0
  35. package/docs/DISTRIBUTED_SYSTEMS.md +71 -0
  36. package/docs/IMAGE_GENERATION.md +76 -0
  37. package/docs/IMPLEMENTATION_SUMMARY.md +533 -0
  38. package/docs/QUICKSTART.md +351 -0
  39. package/docs/README.md +191 -0
  40. package/docs/ROADMAP.md +408 -0
  41. package/docs/SPECIFICATION.md +462 -0
  42. package/docs/SYSTEMS_REASONING.md +522 -0
  43. package/examples/01_hello.sesi +2 -0
  44. package/examples/02_variables.sesi +11 -0
  45. package/examples/03_functions.sesi +6 -0
  46. package/examples/04_conditionals.sesi +6 -0
  47. package/examples/05_loops.sesi +12 -0
  48. package/examples/06_arrays_objects.sesi +18 -0
  49. package/examples/07_prompts.sesi +10 -0
  50. package/examples/08_model_call.sesi +5 -0
  51. package/examples/09_structured_output.sesi +7 -0
  52. package/examples/10_code_generation.sesi +5 -0
  53. package/examples/11_memory_conversation.sesi +16 -0
  54. package/examples/12_classification.sesi +8 -0
  55. package/examples/13_data_pipeline.sesi +35 -0
  56. package/examples/14_folder_explainer.sesi +58 -0
  57. package/examples/15_image_generation.sesi +17 -0
  58. package/main/atm_deposit.sesi +37 -0
  59. package/main/atm_withdraw.sesi +37 -0
  60. package/main/data.txt +1 -0
  61. package/main/math_aggregator.sesi +15 -0
  62. package/main/math_generator.sesi +7 -0
  63. package/main/math_processor.sesi +23 -0
  64. package/main/orchestrator.sesi +15 -0
  65. package/main/playground.sesi +1 -0
  66. package/main/setup_swarm.sesi +5 -0
  67. package/main/start.sesi +13 -0
  68. package/main/tax_calculator.sesi +15 -0
  69. package/main/tests/compare.sesi +23 -0
  70. package/main/tests/compare.ts +104 -0
  71. package/main/tests/debug.sesi +1 -0
  72. package/main/tests/demo.sesi +24 -0
  73. package/main/tests/primitive_validation.sesi +18 -0
  74. package/main/tests/test_connection.sesi +4 -0
  75. package/main/tests/test_failure_debug.sesi +2 -0
  76. package/main/tests/test_image.sesi +3 -0
  77. package/main/tests/test_parser_config.sesi +2 -0
  78. package/main/tests/test_syntax.sesi +3 -0
  79. package/main/tests/test_tool_call.sesi +14 -0
  80. package/main/tests/try.sesi +7 -0
  81. package/main/vault.sesi +15 -0
  82. package/package.json +50 -0
@@ -0,0 +1,473 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getBuiltins = getBuiltins;
37
+ exports.isTruthy = isTruthy;
38
+ exports.isEqual = isEqual;
39
+ exports.stringify = stringify;
40
+ exports.compareValues = compareValues;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const child_process_1 = require("child_process");
44
+ function getBuiltins() {
45
+ const builtins = new Map();
46
+ builtins.set('print', {
47
+ type: 'function',
48
+ name: 'print',
49
+ params: [],
50
+ body: {},
51
+ closure: {},
52
+ isBuiltin: true,
53
+ builtin: (...args) => {
54
+ const output = args.map((arg) => stringify(arg)).join(' ');
55
+ console.log(output);
56
+ return null;
57
+ },
58
+ });
59
+ builtins.set('len', {
60
+ type: 'function',
61
+ name: 'len',
62
+ params: [{ name: 'value' }],
63
+ body: {},
64
+ closure: {},
65
+ isBuiltin: true,
66
+ builtin: (value) => {
67
+ if (typeof value === 'string')
68
+ return value.length;
69
+ if (Array.isArray(value))
70
+ return value.length;
71
+ if (typeof value === 'object' && value !== null) {
72
+ return Object.keys(value).length;
73
+ }
74
+ return null;
75
+ },
76
+ });
77
+ builtins.set('type', {
78
+ type: 'function',
79
+ name: 'type',
80
+ params: [{ name: 'value' }],
81
+ body: {},
82
+ closure: {},
83
+ isBuiltin: true,
84
+ builtin: (value) => {
85
+ if (value === null)
86
+ return 'null';
87
+ if (typeof value === 'boolean')
88
+ return 'bool';
89
+ if (typeof value === 'number')
90
+ return 'number';
91
+ if (typeof value === 'string')
92
+ return 'string';
93
+ if (Array.isArray(value))
94
+ return 'array';
95
+ if (typeof value === 'object')
96
+ return 'object';
97
+ return 'unknown';
98
+ },
99
+ });
100
+ builtins.set('str', {
101
+ type: 'function',
102
+ name: 'str',
103
+ params: [{ name: 'value' }],
104
+ body: {},
105
+ closure: {},
106
+ isBuiltin: true,
107
+ builtin: (value) => stringify(value),
108
+ });
109
+ builtins.set('to_json', {
110
+ type: 'function',
111
+ name: 'to_json',
112
+ params: [{ name: 'value' }],
113
+ body: {},
114
+ closure: {},
115
+ isBuiltin: true,
116
+ builtin: (value) => {
117
+ try {
118
+ return JSON.stringify(value, null, 2);
119
+ }
120
+ catch (e) {
121
+ return null;
122
+ }
123
+ },
124
+ });
125
+ builtins.set('num', {
126
+ type: 'function',
127
+ name: 'num',
128
+ params: [{ name: 'value' }],
129
+ body: {},
130
+ closure: {},
131
+ isBuiltin: true,
132
+ builtin: (value) => {
133
+ if (typeof value === 'number')
134
+ return value;
135
+ if (typeof value === 'string') {
136
+ const num = parseFloat(value);
137
+ return isNaN(num) ? null : num;
138
+ }
139
+ if (typeof value === 'boolean')
140
+ return value ? 1 : 0;
141
+ return null;
142
+ },
143
+ });
144
+ builtins.set('bool', {
145
+ type: 'function',
146
+ name: 'bool',
147
+ params: [{ name: 'value' }],
148
+ body: {},
149
+ closure: {},
150
+ isBuiltin: true,
151
+ builtin: (value) => isTruthy(value),
152
+ });
153
+ builtins.set('range', {
154
+ type: 'function',
155
+ name: 'range',
156
+ params: [{ name: 'n' }],
157
+ body: {},
158
+ closure: {},
159
+ isBuiltin: true,
160
+ builtin: (n) => {
161
+ if (typeof n !== 'number')
162
+ return null;
163
+ const arr = [];
164
+ for (let i = 0; i < n; i++) {
165
+ arr.push(i);
166
+ }
167
+ return arr;
168
+ },
169
+ });
170
+ builtins.set('push', {
171
+ type: 'function',
172
+ name: 'push',
173
+ params: [{ name: 'array' }, { name: 'value' }],
174
+ body: {},
175
+ closure: {},
176
+ isBuiltin: true,
177
+ builtin: (array, value) => {
178
+ if (!Array.isArray(array))
179
+ return null;
180
+ array.push(value);
181
+ return array;
182
+ },
183
+ });
184
+ builtins.set('pop', {
185
+ type: 'function',
186
+ name: 'pop',
187
+ params: [{ name: 'array' }],
188
+ body: {},
189
+ closure: {},
190
+ isBuiltin: true,
191
+ builtin: (array) => {
192
+ if (!Array.isArray(array))
193
+ return null;
194
+ return array.pop() ?? null;
195
+ },
196
+ });
197
+ builtins.set('keys', {
198
+ type: 'function',
199
+ name: 'keys',
200
+ params: [{ name: 'object' }],
201
+ body: {},
202
+ closure: {},
203
+ isBuiltin: true,
204
+ builtin: (obj) => {
205
+ if (typeof obj !== 'object' || obj === null || Array.isArray(obj))
206
+ return null;
207
+ return Object.keys(obj);
208
+ },
209
+ });
210
+ builtins.set('values', {
211
+ type: 'function',
212
+ name: 'values',
213
+ params: [{ name: 'object' }],
214
+ body: {},
215
+ closure: {},
216
+ isBuiltin: true,
217
+ builtin: (obj) => {
218
+ if (typeof obj !== 'object' || obj === null || Array.isArray(obj))
219
+ return null;
220
+ return Object.values(obj);
221
+ },
222
+ });
223
+ builtins.set('join', {
224
+ type: 'function',
225
+ name: 'join',
226
+ params: [{ name: 'array' }, { name: 'sep' }],
227
+ body: {},
228
+ closure: {},
229
+ isBuiltin: true,
230
+ builtin: (array, sep) => {
231
+ if (!Array.isArray(array) || typeof sep !== 'string')
232
+ return null;
233
+ return array.map((item) => stringify(item)).join(sep);
234
+ },
235
+ });
236
+ builtins.set('split', {
237
+ type: 'function',
238
+ name: 'split',
239
+ params: [{ name: 'string' }, { name: 'sep' }],
240
+ body: {},
241
+ closure: {},
242
+ isBuiltin: true,
243
+ builtin: (str, sep) => {
244
+ if (typeof str !== 'string' || typeof sep !== 'string')
245
+ return null;
246
+ return str.split(sep);
247
+ },
248
+ });
249
+ builtins.set('read_file', {
250
+ type: 'function',
251
+ name: 'read_file',
252
+ params: [{ name: 'path' }],
253
+ body: {},
254
+ closure: {},
255
+ isBuiltin: true,
256
+ builtin: (filePath) => {
257
+ if (typeof filePath !== 'string')
258
+ return null;
259
+ try {
260
+ const absolutePath = path.resolve(process.cwd(), filePath);
261
+ return fs.readFileSync(absolutePath, 'utf-8');
262
+ }
263
+ catch (e) {
264
+ throw new Error(`Failed to read file: ${filePath}`);
265
+ }
266
+ },
267
+ });
268
+ builtins.set('write_file', {
269
+ type: 'function',
270
+ name: 'write_file',
271
+ params: [{ name: 'path' }, { name: 'content' }],
272
+ body: {},
273
+ closure: {},
274
+ isBuiltin: true,
275
+ builtin: (filePath, content) => {
276
+ if (typeof filePath !== 'string' || typeof content !== 'string')
277
+ return null;
278
+ try {
279
+ const absolutePath = path.resolve(process.cwd(), filePath);
280
+ fs.writeFileSync(absolutePath, content, 'utf-8');
281
+ return true;
282
+ }
283
+ catch (e) {
284
+ throw new Error(`Failed to write file: ${filePath}`);
285
+ }
286
+ },
287
+ });
288
+ builtins.set('write_image', {
289
+ type: 'function',
290
+ name: 'write_image',
291
+ params: [{ name: 'path' }, { name: 'base64_content' }],
292
+ body: {},
293
+ closure: {},
294
+ isBuiltin: true,
295
+ builtin: (filePath, content) => {
296
+ if (typeof filePath !== 'string' || typeof content !== 'string')
297
+ return null;
298
+ try {
299
+ const absolutePath = path.resolve(process.cwd(), filePath);
300
+ const buffer = Buffer.from(content, 'base64');
301
+ fs.writeFileSync(absolutePath, buffer);
302
+ return true;
303
+ }
304
+ catch (e) {
305
+ throw new Error(`Failed to write image: ${filePath}`);
306
+ }
307
+ },
308
+ });
309
+ builtins.set('list_dir', {
310
+ type: 'function',
311
+ name: 'list_dir',
312
+ params: [{ name: 'path' }],
313
+ body: {},
314
+ closure: {},
315
+ isBuiltin: true,
316
+ builtin: (dirPath) => {
317
+ if (typeof dirPath !== 'string')
318
+ return null;
319
+ try {
320
+ const absolutePath = path.resolve(process.cwd(), dirPath);
321
+ if (!fs.existsSync(absolutePath) || !fs.statSync(absolutePath).isDirectory()) {
322
+ return null;
323
+ }
324
+ return fs.readdirSync(absolutePath).filter(f => !f.startsWith('.'));
325
+ }
326
+ catch (e) {
327
+ throw new Error(`Failed to list directory: ${dirPath}`);
328
+ }
329
+ },
330
+ });
331
+ builtins.set('make_dir', {
332
+ type: 'function',
333
+ name: 'make_dir',
334
+ params: [{ name: 'path' }],
335
+ body: {},
336
+ closure: {},
337
+ isBuiltin: true,
338
+ builtin: (dirPath) => {
339
+ if (typeof dirPath !== 'string')
340
+ return null;
341
+ try {
342
+ const absolutePath = path.resolve(process.cwd(), dirPath);
343
+ if (!fs.existsSync(absolutePath)) {
344
+ fs.mkdirSync(absolutePath, { recursive: true });
345
+ }
346
+ return true;
347
+ }
348
+ catch (e) {
349
+ throw new Error(`Failed to create directory: ${dirPath}`);
350
+ }
351
+ },
352
+ });
353
+ builtins.set('spawn', {
354
+ type: 'function',
355
+ name: 'spawn',
356
+ params: [{ name: 'filePath' }],
357
+ body: {},
358
+ closure: {},
359
+ isBuiltin: true,
360
+ builtin: (filePath) => {
361
+ if (typeof filePath !== 'string')
362
+ return null;
363
+ try {
364
+ const absolutePath = path.resolve(process.cwd(), filePath);
365
+ // Use 'node' to run the local sesi executable if it's in the bin folder
366
+ const sesiBin = path.resolve(__dirname, '../bin/sesi.js');
367
+ const child = (0, child_process_1.spawn)('node', [sesiBin, absolutePath], {
368
+ detached: true,
369
+ stdio: 'inherit',
370
+ shell: true
371
+ });
372
+ child.unref();
373
+ return child.pid || true;
374
+ }
375
+ catch (e) {
376
+ throw new Error(`Failed to spawn process: ${filePath}`);
377
+ }
378
+ },
379
+ });
380
+ builtins.set('exec', {
381
+ type: 'function',
382
+ name: 'exec',
383
+ params: [{ name: 'command' }],
384
+ body: {},
385
+ closure: {},
386
+ isBuiltin: true,
387
+ builtin: (command) => {
388
+ if (typeof command !== 'string')
389
+ return null;
390
+ try {
391
+ return (0, child_process_1.execSync)(command, { encoding: 'utf-8' });
392
+ }
393
+ catch (e) {
394
+ throw new Error(`Failed to execute command: ${command}`);
395
+ }
396
+ },
397
+ });
398
+ builtins.set('time', {
399
+ type: 'function',
400
+ name: 'time',
401
+ params: [],
402
+ body: {},
403
+ closure: {},
404
+ isBuiltin: true,
405
+ builtin: () => Date.now(),
406
+ });
407
+ builtins.set('random', {
408
+ type: 'function',
409
+ name: 'random',
410
+ params: [],
411
+ body: {},
412
+ closure: {},
413
+ isBuiltin: true,
414
+ builtin: () => Math.random(),
415
+ });
416
+ return builtins;
417
+ }
418
+ function isTruthy(value) {
419
+ if (value === null || value === false)
420
+ return false;
421
+ if (value === 0 || value === '')
422
+ return false;
423
+ return true;
424
+ }
425
+ function isEqual(a, b) {
426
+ if (a === null && b === null)
427
+ return true;
428
+ if (typeof a !== typeof b)
429
+ return false;
430
+ if (Array.isArray(a) && Array.isArray(b)) {
431
+ if (a.length !== b.length)
432
+ return false;
433
+ for (let i = 0; i < a.length; i++) {
434
+ if (!isEqual(a[i], b[i]))
435
+ return false;
436
+ }
437
+ return true;
438
+ }
439
+ return a === b;
440
+ }
441
+ function stringify(value) {
442
+ if (value === null)
443
+ return 'null';
444
+ if (typeof value === 'boolean')
445
+ return value ? 'true' : 'false';
446
+ if (typeof value === 'number') {
447
+ // Format numbers nicely
448
+ return Number.isInteger(value) ? value.toString() : value.toFixed(2);
449
+ }
450
+ if (typeof value === 'string')
451
+ return value;
452
+ if (Array.isArray(value)) {
453
+ const items = value.map((item) => stringify(item)).join(', ');
454
+ return `[${items}]`;
455
+ }
456
+ if (typeof value === 'object') {
457
+ const items = Object.entries(value)
458
+ .map(([key, val]) => `${key}: ${stringify(val)}`)
459
+ .join(', ');
460
+ return `{${items}}`;
461
+ }
462
+ return 'unknown';
463
+ }
464
+ function compareValues(a, b) {
465
+ if (typeof a === 'number' && typeof b === 'number') {
466
+ return a - b;
467
+ }
468
+ if (typeof a === 'string' && typeof b === 'string') {
469
+ return a.localeCompare(b);
470
+ }
471
+ return 0;
472
+ }
473
+ //# sourceMappingURL=builtins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../src/builtins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function runSesi(source: string): Promise<void>;
2
+ export declare function runSesiFile(filePath: string): Promise<void>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3D;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE"}
package/dist/index.js ADDED
@@ -0,0 +1,72 @@
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
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runSesi = runSesi;
37
+ exports.runSesiFile = runSesiFile;
38
+ // Main entry point for Sesi
39
+ const lexer_1 = require("./lexer");
40
+ const parser_1 = require("./parser");
41
+ const interpreter_1 = require("./interpreter");
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ async function runSesi(source) {
45
+ try {
46
+ // Lex
47
+ const lexer = new lexer_1.Lexer(source);
48
+ const tokens = lexer.scanTokens();
49
+ // Parse
50
+ const parser = new parser_1.Parser(tokens);
51
+ const program = parser.parse();
52
+ // Interpret
53
+ const interpreter = new interpreter_1.Interpreter();
54
+ await interpreter.interpret(program);
55
+ }
56
+ catch (error) {
57
+ console.error('Error:', error.message);
58
+ process.exit(1);
59
+ }
60
+ }
61
+ async function runSesiFile(filePath) {
62
+ try {
63
+ const filepath = path.resolve(filePath);
64
+ const source = fs.readFileSync(filepath, 'utf-8');
65
+ await runSesi(source);
66
+ }
67
+ catch (error) {
68
+ console.error(`Error reading file ${filePath}:`, error.message);
69
+ process.exit(1);
70
+ }
71
+ }
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0BAiBC;AAED,kCASC;AAnCD,4BAA4B;AAC5B,mCAAgC;AAChC,qCAAkC;AAClC,+CAA4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAEtB,KAAK,UAAU,OAAO,CAAC,MAAc;IAC1C,IAAI,CAAC;QACH,MAAM;QACN,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAElC,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE/B,YAAY;QACZ,MAAM,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;QACtC,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { type Program } from './types';
2
+ export declare class Interpreter {
3
+ private globalEnv;
4
+ private currentEnv;
5
+ private prompts;
6
+ private memory;
7
+ constructor();
8
+ interpret(program: Program): Promise<void>;
9
+ private executeStatement;
10
+ private executeLet;
11
+ private executeConst;
12
+ private executeFunction;
13
+ private executeExpression;
14
+ private executeBlock;
15
+ private executeTry;
16
+ private executeIf;
17
+ private executeWhile;
18
+ private executeFor;
19
+ private executeMemory;
20
+ private evaluateExpression;
21
+ private evaluateBinaryOp;
22
+ private evaluateUnaryOp;
23
+ private evaluateLogicalOp;
24
+ private evaluateAssignment;
25
+ private evaluateCall;
26
+ private evaluateMember;
27
+ private evaluateIndex;
28
+ private evaluateArray;
29
+ private evaluateObject;
30
+ private evaluatePrompt;
31
+ private evaluateImageCall;
32
+ private evaluateModelCall;
33
+ private evaluateStructuredOutput;
34
+ private evaluateToolCall;
35
+ }
36
+ //# sourceMappingURL=interpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAmCb,MAAM,SAAS,CAAC;AAKjB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAkC;;IAa1C,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAMlC,gBAAgB;YAmDhB,UAAU;YAKV,YAAY;IAK1B,OAAO,CAAC,eAAe;YAWT,iBAAiB;YAIjB,YAAY;YAaZ,UAAU;YAaV,SAAS;YAaT,YAAY;YAgBZ,UAAU;YAoDV,aAAa;YAQb,kBAAkB;YAuDlB,gBAAgB;YAmChB,eAAe;YAaf,iBAAiB;YAajB,kBAAkB;YAwClB,YAAY;YA4CZ,cAAc;YAUd,aAAa;YAeb,aAAa;YAQb,cAAc;YAQd,cAAc;YAYd,iBAAiB;YAoBjB,iBAAiB;YAgBjB,wBAAwB;YAY1B,gBAAgB;CAuC7B"}