@misterscan/sesi 1.2.3 → 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 (52) hide show
  1. package/README.md +101 -35
  2. package/bin/sesi.js +163 -38
  3. package/dist/builtins.d.ts.map +1 -1
  4. package/dist/builtins.js +196 -4
  5. package/dist/builtins.js.map +1 -1
  6. package/dist/index.d.ts +7 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +30 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/interpreter.d.ts +11 -2
  11. package/dist/interpreter.d.ts.map +1 -1
  12. package/dist/interpreter.js +181 -88
  13. package/dist/interpreter.js.map +1 -1
  14. package/dist/lexer.d.ts.map +1 -1
  15. package/dist/lexer.js +8 -4
  16. package/dist/lexer.js.map +1 -1
  17. package/dist/parser.d.ts +1 -0
  18. package/dist/parser.d.ts.map +1 -1
  19. package/dist/parser.js +18 -8
  20. package/dist/parser.js.map +1 -1
  21. package/dist/types.d.ts +13 -1
  22. package/dist/types.d.ts.map +1 -1
  23. package/dist/types.js +33 -1
  24. package/dist/types.js.map +1 -1
  25. package/docs/ARCHITECTURE.md +22 -9
  26. package/docs/BUILTINS.md +111 -13
  27. package/docs/COMPARISON.md +7 -9
  28. package/docs/{DISTRIBUTED_SYSTEMS.md → CONCURRENCY.md} +11 -11
  29. package/docs/IMAGE_GENERATION.md +13 -14
  30. package/docs/IMPLEMENTATION_SUMMARY.md +141 -84
  31. package/docs/QUICKSTART.md +81 -28
  32. package/docs/README.md +140 -34
  33. package/docs/{SYSTEMS_REASONING.md → REASONING.md} +100 -110
  34. package/docs/ROADMAP.md +42 -43
  35. package/docs/SKILLS.md +56 -28
  36. package/docs/SPECIFICATION.md +25 -18
  37. package/docs/sesi_ai_chronicles.md +96 -209
  38. package/examples/07_prompts.sesi +1 -1
  39. package/examples/08_model_call.sesi +1 -1
  40. package/examples/09_structured_output.sesi +1 -1
  41. package/examples/10_code_generation.sesi +1 -1
  42. package/examples/13_data_pipeline.sesi +1 -1
  43. package/examples/14_folder_explainer.sesi +2 -2
  44. package/examples/15_image_generation.sesi +1 -1
  45. package/examples/16_modules.sesi +27 -27
  46. package/examples/20_model_aliases.sesi +22 -0
  47. package/examples/21_custom_tools.sesi +27 -0
  48. package/examples/22_reasoning_plus_custom_tools.sesi +19 -0
  49. package/main/orchestrator.sesi +2 -2
  50. package/main/sesi_db_chatbot.sesi +6 -2
  51. package/main/tests/test_grounding.sesi +2 -0
  52. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../src/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../src/builtins.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
- export declare function runSesi(source: string, scriptDir?: string): Promise<void>;
2
- export declare function runSesiFile(filePath: string): Promise<void>;
1
+ export interface SesiOptions {
2
+ safeMode?: boolean;
3
+ allowLocalFs?: boolean;
4
+ allowedPaths?: string[];
5
+ }
6
+ export declare function runSesi(source: string, scriptDir?: string, options?: SesiOptions): Promise<void>;
7
+ export declare function runSesiFile(filePath: string, options?: SesiOptions): Promise<void>;
3
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCtG;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBxF"}
package/dist/index.js CHANGED
@@ -39,9 +39,10 @@ exports.runSesiFile = runSesiFile;
39
39
  const lexer_1 = require("./lexer");
40
40
  const parser_1 = require("./parser");
41
41
  const interpreter_1 = require("./interpreter");
42
+ const types_1 = require("./types");
42
43
  const fs = __importStar(require("fs"));
43
44
  const path = __importStar(require("path"));
44
- async function runSesi(source, scriptDir) {
45
+ async function runSesi(source, scriptDir, options) {
45
46
  try {
46
47
  // Lex
47
48
  const lexer = new lexer_1.Lexer(source);
@@ -50,20 +51,44 @@ async function runSesi(source, scriptDir) {
50
51
  const parser = new parser_1.Parser(tokens);
51
52
  const program = parser.parse();
52
53
  // Interpret
53
- const interpreter = new interpreter_1.Interpreter(scriptDir);
54
+ const interpreter = new interpreter_1.Interpreter(scriptDir, options);
54
55
  await interpreter.interpret(program);
55
56
  }
56
57
  catch (error) {
57
- console.error('Error:', error.message);
58
+ if (error instanceof types_1.SesiRuntimeError) {
59
+ const lineInfo = error.column !== undefined
60
+ ? ` at line ${error.line}, column ${error.column}`
61
+ : (error.line !== undefined ? ` at line ${error.line}` : '');
62
+ console.error(`Error${lineInfo}: ${error.message}`);
63
+ if (error.output) {
64
+ console.error(error.output);
65
+ }
66
+ if (error.stackTrace.length > 0) {
67
+ console.error('Stack trace:');
68
+ for (const frame of error.stackTrace) {
69
+ console.error(` at ${frame}`);
70
+ }
71
+ }
72
+ }
73
+ else {
74
+ console.error('Error:', error?.message ?? String(error));
75
+ }
58
76
  process.exit(1);
59
77
  }
60
78
  }
61
- async function runSesiFile(filePath) {
79
+ async function runSesiFile(filePath, options) {
62
80
  try {
63
81
  const filepath = path.resolve(filePath);
64
82
  const scriptDir = path.dirname(filepath);
65
83
  const source = fs.readFileSync(filepath, 'utf-8');
66
- await runSesi(source, scriptDir);
84
+ // If the file matches the exact signature of our AES-256-CBC encryption (32-char hex IV : hex payload)
85
+ if (/^[a-fA-F0-9]{32}:[a-fA-F0-9]+$/.test(source.trim())) {
86
+ console.error(`Error: The file '${path.basename(filePath)}' is encrypted.`);
87
+ console.error(`Please decrypt it first before running:`);
88
+ console.error(` sesi -decrypt ${path.basename(filePath)} -p <password>`);
89
+ process.exit(1);
90
+ }
91
+ await runSesi(source, scriptDir, options);
67
92
  }
68
93
  catch (error) {
69
94
  console.error(`Error reading file ${filePath}:`, error.message);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0BAiBC;AAED,kCAUC;AApCD,4BAA4B;AAC5B,mCAAgC;AAChC,qCAAkC;AAClC,+CAA4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAEtB,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,SAAkB;IAC9D,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,CAAC,SAAS,CAAC,CAAC;QAC/C,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,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,16 @@ export declare class Interpreter {
4
4
  private currentEnv;
5
5
  private prompts;
6
6
  private memory;
7
+ private modelAliases;
8
+ private customTools;
7
9
  exports: Map<string, RuntimeValue>;
8
10
  private scriptDir;
9
11
  safeMode: boolean;
10
- allowUnsafeFs: boolean;
12
+ allowLocalFs: boolean;
11
13
  allowedPaths: string[];
12
14
  constructor(scriptDir?: string, options?: {
13
15
  safeMode?: boolean;
14
- allowUnsafeFs?: boolean;
16
+ allowLocalFs?: boolean;
15
17
  allowedPaths?: string[];
16
18
  });
17
19
  /**
@@ -23,6 +25,12 @@ export declare class Interpreter {
23
25
  */
24
26
  private resolveModulePath;
25
27
  interpret(program: Program): Promise<void>;
28
+ private rethrowWithContext;
29
+ setModelAlias(alias: string, modelName: string): void;
30
+ resolveModelName(name: string): string;
31
+ defineCustomTool(name: string, fn: RuntimeFunction, description?: string): void;
32
+ getCustomTool(name: string): RuntimeFunction | null;
33
+ listCustomToolNames(): string[];
26
34
  private executeStatement;
27
35
  private executeLet;
28
36
  private executeConst;
@@ -30,6 +38,7 @@ export declare class Interpreter {
30
38
  private executeExpression;
31
39
  private executeBlock;
32
40
  private executeTry;
41
+ private normalizeCaughtError;
33
42
  private executeIf;
34
43
  private executeWhile;
35
44
  private executeFor;
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,YAAY,EAEjB,KAAK,eAAe,EA8BrB,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;IACzC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACtD,OAAO,CAAC,SAAS,CAAqB;IAE/B,QAAQ,EAAE,OAAO,CAAQ;IACzB,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAM;gBAEvB,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAsBlH;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAsCnB,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;YAsDlB,YAAY;YAiBZ,cAAc;YAUd,aAAa;YAeb,aAAa;YAQb,cAAc;YAQd,cAAc;YAYd,iBAAiB;YAmDjB,iBAAiB;YA2DjB,wBAAwB;YAY1B,gBAAgB;IAwBf,gBAAgB,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;YA+BjF,aAAa;YAOb,aAAa;IAiFpB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI;CAqFvE"}
1
+ {"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,YAAY,EAEjB,KAAK,eAAe,EA+BrB,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;IAChD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAyE;IACrF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACtD,OAAO,CAAC,SAAS,CAAqB;IAE/B,QAAQ,EAAE,OAAO,CAAQ;IACzB,YAAY,EAAE,OAAO,CAAS;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAM;gBAEvB,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAsBjH;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAsCnB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,OAAO,CAAC,kBAAkB;IAqCnB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAYrD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAetC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAInD,mBAAmB,IAAI,MAAM,EAAE;YAIxB,gBAAgB;YA0DhB,UAAU;YAKV,YAAY;IAK1B,OAAO,CAAC,eAAe;YAWT,iBAAiB;YAIjB,YAAY;YAaZ,UAAU;IAiBxB,OAAO,CAAC,oBAAoB;YAUd,SAAS;YAaT,YAAY;YAgBZ,UAAU;YAoDV,aAAa;YAQb,kBAAkB;YA2DlB,gBAAgB;YAmChB,eAAe;YAaf,iBAAiB;YAajB,kBAAkB;YAsDlB,YAAY;YAiBZ,cAAc;YAUd,aAAa;YAeb,aAAa;YAQb,cAAc;YAQd,cAAc;YAYd,iBAAiB;YAmDjB,iBAAiB;YA2DjB,wBAAwB;YAY1B,gBAAgB;IAiCf,gBAAgB,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;YA+BjF,aAAa;YAOb,aAAa;IAiFpB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI;CAqFvE"}
@@ -9,18 +9,20 @@ class Interpreter {
9
9
  constructor(scriptDir, options) {
10
10
  this.prompts = new Map();
11
11
  this.memory = new Map();
12
+ this.modelAliases = new Map();
13
+ this.customTools = new Map();
12
14
  this.exports = new Map();
13
15
  this.safeMode = true;
14
- this.allowUnsafeFs = false;
16
+ this.allowLocalFs = false;
15
17
  this.allowedPaths = [];
16
18
  this.safeMode = options?.safeMode ?? (process.env.SESI_SAFE_MODE !== 'false');
17
- this.allowUnsafeFs = options?.allowUnsafeFs ?? (process.env.SESI_UNSAFE_FS === 'true');
19
+ this.allowLocalFs = options?.allowLocalFs ?? (process.env.SESI_LOCAL_FS === 'true');
18
20
  this.allowedPaths = options?.allowedPaths || [process.cwd()];
19
21
  if (scriptDir && !this.allowedPaths.includes(scriptDir)) {
20
22
  this.allowedPaths.push(scriptDir);
21
23
  }
22
24
  if (this.safeMode) {
23
- this.allowUnsafeFs = false;
25
+ this.allowLocalFs = false;
24
26
  }
25
27
  this.globalEnv = new types_1.Environment();
26
28
  this.currentEnv = this.globalEnv;
@@ -75,52 +77,114 @@ class Interpreter {
75
77
  await this.executeStatement(statement);
76
78
  }
77
79
  }
80
+ rethrowWithContext(error, line) {
81
+ if (error instanceof types_1.SesiRuntimeError) {
82
+ if (line !== undefined && error.line === undefined) {
83
+ error.line = line;
84
+ }
85
+ if (error.column === undefined) {
86
+ error.column = 1;
87
+ }
88
+ if (line !== undefined) {
89
+ error.stackTrace.push(`line ${line}`);
90
+ }
91
+ throw error;
92
+ }
93
+ if (error instanceof Error) {
94
+ throw new types_1.SesiRuntimeError('RuntimeError', error.message, null, line, 1, undefined, line !== undefined ? [`line ${line}`] : []);
95
+ }
96
+ throw new types_1.SesiRuntimeError('RuntimeError', String(error), null, line, 1, undefined, line !== undefined ? [`line ${line}`] : []);
97
+ }
98
+ setModelAlias(alias, modelName) {
99
+ const aliasKey = alias.trim();
100
+ const modelValue = modelName.trim();
101
+ if (!aliasKey) {
102
+ throw new Error('Model alias cannot be empty');
103
+ }
104
+ if (!modelValue) {
105
+ throw new Error('Model name cannot be empty');
106
+ }
107
+ this.modelAliases.set(aliasKey, modelValue);
108
+ }
109
+ resolveModelName(name) {
110
+ let current = name;
111
+ const seen = new Set();
112
+ while (this.modelAliases.has(current)) {
113
+ if (seen.has(current)) {
114
+ throw new Error(`Model alias cycle detected for "${name}"`);
115
+ }
116
+ seen.add(current);
117
+ current = this.modelAliases.get(current);
118
+ }
119
+ return current;
120
+ }
121
+ defineCustomTool(name, fn, description) {
122
+ const toolName = name.trim();
123
+ if (!toolName) {
124
+ throw new Error('Tool name cannot be empty');
125
+ }
126
+ this.customTools.set(toolName, { fn, description: description?.trim() || undefined });
127
+ }
128
+ getCustomTool(name) {
129
+ return this.customTools.get(name)?.fn || null;
130
+ }
131
+ listCustomToolNames() {
132
+ return Array.from(this.customTools.keys());
133
+ }
78
134
  async executeStatement(statement) {
79
- switch (statement.type) {
80
- case 'LetStatement':
81
- await this.executeLet(statement);
82
- break;
83
- case 'ConstStatement':
84
- await this.executeConst(statement);
85
- break;
86
- case 'FunctionStatement':
87
- await this.executeFunction(statement);
88
- break;
89
- case 'ExpressionStatement':
90
- await this.executeExpression(statement);
91
- break;
92
- case 'BlockStatement':
93
- await this.executeBlock(statement, new types_1.Environment(this.currentEnv));
94
- break;
95
- case 'IfStatement':
96
- await this.executeIf(statement);
97
- break;
98
- case 'WhileStatement':
99
- await this.executeWhile(statement);
100
- break;
101
- case 'ForStatement':
102
- await this.executeFor(statement);
103
- break;
104
- case 'ReturnStatement':
105
- throw new types_1.ReturnValue((statement).value
106
- ? await this.evaluateExpression((statement).value)
107
- : null);
108
- case 'BreakStatement':
109
- throw new types_1.BreakException();
110
- case 'ContinueStatement':
111
- throw new types_1.ContinueException();
112
- case 'TryStatement':
113
- await this.executeTry(statement);
114
- break;
115
- case 'MemoryStatement':
116
- await this.executeMemory(statement);
117
- break;
118
- case 'ImportStatement':
119
- await this.executeImport(statement);
120
- break;
121
- case 'ExportStatement':
122
- await this.executeExport(statement);
123
- break;
135
+ try {
136
+ switch (statement.type) {
137
+ case 'LetStatement':
138
+ await this.executeLet(statement);
139
+ break;
140
+ case 'ConstStatement':
141
+ await this.executeConst(statement);
142
+ break;
143
+ case 'FunctionStatement':
144
+ await this.executeFunction(statement);
145
+ break;
146
+ case 'ExpressionStatement':
147
+ await this.executeExpression(statement);
148
+ break;
149
+ case 'BlockStatement':
150
+ await this.executeBlock(statement, new types_1.Environment(this.currentEnv));
151
+ break;
152
+ case 'IfStatement':
153
+ await this.executeIf(statement);
154
+ break;
155
+ case 'WhileStatement':
156
+ await this.executeWhile(statement);
157
+ break;
158
+ case 'ForStatement':
159
+ await this.executeFor(statement);
160
+ break;
161
+ case 'ReturnStatement':
162
+ throw new types_1.ReturnValue((statement).value
163
+ ? await this.evaluateExpression((statement).value)
164
+ : null);
165
+ case 'BreakStatement':
166
+ throw new types_1.BreakException();
167
+ case 'ContinueStatement':
168
+ throw new types_1.ContinueException();
169
+ case 'TryStatement':
170
+ await this.executeTry(statement);
171
+ break;
172
+ case 'MemoryStatement':
173
+ await this.executeMemory(statement);
174
+ break;
175
+ case 'ImportStatement':
176
+ await this.executeImport(statement);
177
+ break;
178
+ case 'ExportStatement':
179
+ await this.executeExport(statement);
180
+ break;
181
+ }
182
+ }
183
+ catch (error) {
184
+ if (error instanceof types_1.ReturnValue || error instanceof types_1.BreakException || error instanceof types_1.ContinueException) {
185
+ throw error;
186
+ }
187
+ this.rethrowWithContext(error, statement.line);
124
188
  }
125
189
  }
126
190
  async executeLet(stmt) {
@@ -165,9 +229,23 @@ class Interpreter {
165
229
  throw e;
166
230
  }
167
231
  const catchEnv = new types_1.Environment(this.currentEnv);
168
- catchEnv.define(stmt.catchParameter, e instanceof Error ? e.message : String(e));
232
+ catchEnv.define(stmt.catchParameter, this.normalizeCaughtError(e));
169
233
  await this.executeBlock(stmt.catchBlock, catchEnv);
170
234
  }
235
+ finally {
236
+ if (stmt.finallyBlock) {
237
+ await this.executeBlock(stmt.finallyBlock, new types_1.Environment(this.currentEnv));
238
+ }
239
+ }
240
+ }
241
+ normalizeCaughtError(error) {
242
+ if (error instanceof types_1.SesiRuntimeError) {
243
+ return error.toRuntimeObject();
244
+ }
245
+ if (error instanceof Error) {
246
+ return error.message;
247
+ }
248
+ return String(error);
171
249
  }
172
250
  async executeIf(stmt) {
173
251
  const condition = await this.evaluateExpression(stmt.condition);
@@ -260,41 +338,46 @@ class Interpreter {
260
338
  this.currentEnv.define(stmt.name, stringValue);
261
339
  }
262
340
  async evaluateExpression(expr) {
263
- switch (expr.type) {
264
- case 'Literal':
265
- return (expr).value;
266
- case 'Identifier':
267
- return this.currentEnv.get((expr).name);
268
- case 'BinaryOp':
269
- return await this.evaluateBinaryOp(expr);
270
- case 'UnaryOp':
271
- return await this.evaluateUnaryOp(expr);
272
- case 'LogicalOp':
273
- return await this.evaluateLogicalOp(expr);
274
- case 'Assignment':
275
- return await this.evaluateAssignment(expr);
276
- case 'CallExpression':
277
- return await this.evaluateCall(expr);
278
- case 'MemberExpression':
279
- return await this.evaluateMember(expr);
280
- case 'IndexExpression':
281
- return await this.evaluateIndex(expr);
282
- case 'ArrayLiteral':
283
- return await this.evaluateArray(expr);
284
- case 'ObjectLiteral':
285
- return await this.evaluateObject(expr);
286
- case 'PromptExpression':
287
- return await this.evaluatePrompt(expr);
288
- case 'ImageCallExpression':
289
- return await this.evaluateImageCall(expr);
290
- case 'ModelCallExpression':
291
- return await this.evaluateModelCall(expr);
292
- case 'StructuredOutputExpression':
293
- return await this.evaluateStructuredOutput(expr);
294
- case 'ToolCallExpression':
295
- return await this.evaluateToolCall(expr);
296
- default:
297
- return null;
341
+ try {
342
+ switch (expr.type) {
343
+ case 'Literal':
344
+ return (expr).value;
345
+ case 'Identifier':
346
+ return this.currentEnv.get((expr).name);
347
+ case 'BinaryOp':
348
+ return await this.evaluateBinaryOp(expr);
349
+ case 'UnaryOp':
350
+ return await this.evaluateUnaryOp(expr);
351
+ case 'LogicalOp':
352
+ return await this.evaluateLogicalOp(expr);
353
+ case 'Assignment':
354
+ return await this.evaluateAssignment(expr);
355
+ case 'CallExpression':
356
+ return await this.evaluateCall(expr);
357
+ case 'MemberExpression':
358
+ return await this.evaluateMember(expr);
359
+ case 'IndexExpression':
360
+ return await this.evaluateIndex(expr);
361
+ case 'ArrayLiteral':
362
+ return await this.evaluateArray(expr);
363
+ case 'ObjectLiteral':
364
+ return await this.evaluateObject(expr);
365
+ case 'PromptExpression':
366
+ return await this.evaluatePrompt(expr);
367
+ case 'ImageCallExpression':
368
+ return await this.evaluateImageCall(expr);
369
+ case 'ModelCallExpression':
370
+ return await this.evaluateModelCall(expr);
371
+ case 'StructuredOutputExpression':
372
+ return await this.evaluateStructuredOutput(expr);
373
+ case 'ToolCallExpression':
374
+ return await this.evaluateToolCall(expr);
375
+ default:
376
+ return null;
377
+ }
378
+ }
379
+ catch (error) {
380
+ this.rethrowWithContext(error, expr.line);
298
381
  }
299
382
  }
300
383
  async evaluateBinaryOp(expr) {
@@ -488,7 +571,7 @@ class Interpreter {
488
571
  }
489
572
  }
490
573
  const response = await ai_runtime_1.aiRuntime.callModel({
491
- model: expr.modelName,
574
+ model: this.resolveModelName(expr.modelName),
492
575
  prompt: promptText,
493
576
  temperature: expr.config?.temperature ? await this.evaluateExpression(expr.config.temperature) : undefined,
494
577
  maxTokens: expr.config?.max_tokens ? await this.evaluateExpression(expr.config.max_tokens) : undefined,
@@ -546,7 +629,7 @@ class Interpreter {
546
629
  }
547
630
  }
548
631
  const response = await ai_runtime_1.aiRuntime.callModel({
549
- model: expr.modelName,
632
+ model: this.resolveModelName(expr.modelName),
550
633
  prompt: promptText,
551
634
  temperature: expr.config?.temperature ? await this.evaluateExpression(expr.config.temperature) : undefined,
552
635
  maxTokens: expr.config?.max_tokens ? await this.evaluateExpression(expr.config.max_tokens) : undefined,
@@ -571,7 +654,17 @@ class Interpreter {
571
654
  if (sensitiveBuiltins.includes(expr.functionName)) {
572
655
  throw new Error(`Security Violation: Automated execution of sensitive tool "${expr.functionName}" is forbidden.`);
573
656
  }
574
- const fn = this.currentEnv.get(expr.functionName);
657
+ let fn;
658
+ if (this.currentEnv.exists(expr.functionName)) {
659
+ fn = this.currentEnv.get(expr.functionName);
660
+ }
661
+ else {
662
+ const custom = this.getCustomTool(expr.functionName);
663
+ if (!custom) {
664
+ throw new Error(`Tool not found: ${expr.functionName}`);
665
+ }
666
+ fn = custom;
667
+ }
575
668
  if (typeof fn !== 'object' || !fn || fn.type !== 'function') {
576
669
  throw new Error(`Tool not found: ${expr.functionName}`);
577
670
  }
@@ -668,7 +761,7 @@ class Interpreter {
668
761
  // Sub-interpreter inherits the resolved module's own directory so its imports also resolve correctly
669
762
  const subInterpreter = new Interpreter(path.dirname(resolvedPath), {
670
763
  safeMode: this.safeMode,
671
- allowUnsafeFs: this.allowUnsafeFs,
764
+ allowLocalFs: this.allowLocalFs,
672
765
  allowedPaths: this.allowedPaths
673
766
  });
674
767
  await subInterpreter.interpret(program);