memories-lite 0.9.4 → 0.10.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.
@@ -62,10 +62,8 @@ export interface MemoryTypeConfig {
62
62
  halfLifeDays: number;
63
63
  }
64
64
  export interface MemoryScoringConfig {
65
- procedural: MemoryTypeConfig;
66
- episodic: MemoryTypeConfig;
65
+ todo: MemoryTypeConfig;
67
66
  factual: MemoryTypeConfig;
68
- semantic: MemoryTypeConfig;
69
67
  assistant_preference: MemoryTypeConfig;
70
68
  default: MemoryTypeConfig;
71
69
  }
@@ -91,7 +89,7 @@ export interface MemoryConfig {
91
89
  graphStore?: GraphStoreConfig;
92
90
  enableGraph?: boolean;
93
91
  }
94
- export type MemoryType = 'procedural' | 'episodic' | 'factual' | 'semantic' | 'assistant_preference';
92
+ export type MemoryType = 'todo' | 'factual' | 'assistant_preference';
95
93
  export interface MemoryItem {
96
94
  id: string;
97
95
  memory: string;
@@ -171,23 +169,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
171
169
  dimension: z.ZodOptional<z.ZodNumber>;
172
170
  client: z.ZodOptional<z.ZodAny>;
173
171
  scoring: z.ZodOptional<z.ZodObject<{
174
- procedural: z.ZodObject<{
175
- alpha: z.ZodNumber;
176
- beta: z.ZodNumber;
177
- gamma: z.ZodNumber;
178
- halfLifeDays: z.ZodNumber;
179
- }, "strip", z.ZodTypeAny, {
180
- alpha: number;
181
- beta: number;
182
- gamma: number;
183
- halfLifeDays: number;
184
- }, {
185
- alpha: number;
186
- beta: number;
187
- gamma: number;
188
- halfLifeDays: number;
189
- }>;
190
- episodic: z.ZodObject<{
172
+ todo: z.ZodObject<{
191
173
  alpha: z.ZodNumber;
192
174
  beta: z.ZodNumber;
193
175
  gamma: z.ZodNumber;
@@ -219,22 +201,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
219
201
  gamma: number;
220
202
  halfLifeDays: number;
221
203
  }>;
222
- semantic: z.ZodObject<{
223
- alpha: z.ZodNumber;
224
- beta: z.ZodNumber;
225
- gamma: z.ZodNumber;
226
- halfLifeDays: z.ZodNumber;
227
- }, "strip", z.ZodTypeAny, {
228
- alpha: number;
229
- beta: number;
230
- gamma: number;
231
- halfLifeDays: number;
232
- }, {
233
- alpha: number;
234
- beta: number;
235
- gamma: number;
236
- halfLifeDays: number;
237
- }>;
238
204
  assistant_preference: z.ZodObject<{
239
205
  alpha: z.ZodNumber;
240
206
  beta: z.ZodNumber;
@@ -268,13 +234,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
268
234
  halfLifeDays: number;
269
235
  }>;
270
236
  }, "strip", z.ZodTypeAny, {
271
- procedural: {
272
- alpha: number;
273
- beta: number;
274
- gamma: number;
275
- halfLifeDays: number;
276
- };
277
- episodic: {
237
+ todo: {
278
238
  alpha: number;
279
239
  beta: number;
280
240
  gamma: number;
@@ -286,12 +246,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
286
246
  gamma: number;
287
247
  halfLifeDays: number;
288
248
  };
289
- semantic: {
290
- alpha: number;
291
- beta: number;
292
- gamma: number;
293
- halfLifeDays: number;
294
- };
295
249
  assistant_preference: {
296
250
  alpha: number;
297
251
  beta: number;
@@ -305,13 +259,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
305
259
  halfLifeDays: number;
306
260
  };
307
261
  }, {
308
- procedural: {
309
- alpha: number;
310
- beta: number;
311
- gamma: number;
312
- halfLifeDays: number;
313
- };
314
- episodic: {
262
+ todo: {
315
263
  alpha: number;
316
264
  beta: number;
317
265
  gamma: number;
@@ -323,12 +271,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
323
271
  gamma: number;
324
272
  halfLifeDays: number;
325
273
  };
326
- semantic: {
327
- alpha: number;
328
- beta: number;
329
- gamma: number;
330
- halfLifeDays: number;
331
- };
332
274
  assistant_preference: {
333
275
  alpha: number;
334
276
  beta: number;
@@ -348,23 +290,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
348
290
  dimension: z.ZodOptional<z.ZodNumber>;
349
291
  client: z.ZodOptional<z.ZodAny>;
350
292
  scoring: z.ZodOptional<z.ZodObject<{
351
- procedural: z.ZodObject<{
352
- alpha: z.ZodNumber;
353
- beta: z.ZodNumber;
354
- gamma: z.ZodNumber;
355
- halfLifeDays: z.ZodNumber;
356
- }, "strip", z.ZodTypeAny, {
357
- alpha: number;
358
- beta: number;
359
- gamma: number;
360
- halfLifeDays: number;
361
- }, {
362
- alpha: number;
363
- beta: number;
364
- gamma: number;
365
- halfLifeDays: number;
366
- }>;
367
- episodic: z.ZodObject<{
293
+ todo: z.ZodObject<{
368
294
  alpha: z.ZodNumber;
369
295
  beta: z.ZodNumber;
370
296
  gamma: z.ZodNumber;
@@ -396,22 +322,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
396
322
  gamma: number;
397
323
  halfLifeDays: number;
398
324
  }>;
399
- semantic: z.ZodObject<{
400
- alpha: z.ZodNumber;
401
- beta: z.ZodNumber;
402
- gamma: z.ZodNumber;
403
- halfLifeDays: z.ZodNumber;
404
- }, "strip", z.ZodTypeAny, {
405
- alpha: number;
406
- beta: number;
407
- gamma: number;
408
- halfLifeDays: number;
409
- }, {
410
- alpha: number;
411
- beta: number;
412
- gamma: number;
413
- halfLifeDays: number;
414
- }>;
415
325
  assistant_preference: z.ZodObject<{
416
326
  alpha: z.ZodNumber;
417
327
  beta: z.ZodNumber;
@@ -445,13 +355,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
445
355
  halfLifeDays: number;
446
356
  }>;
447
357
  }, "strip", z.ZodTypeAny, {
448
- procedural: {
449
- alpha: number;
450
- beta: number;
451
- gamma: number;
452
- halfLifeDays: number;
453
- };
454
- episodic: {
358
+ todo: {
455
359
  alpha: number;
456
360
  beta: number;
457
361
  gamma: number;
@@ -463,12 +367,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
463
367
  gamma: number;
464
368
  halfLifeDays: number;
465
369
  };
466
- semantic: {
467
- alpha: number;
468
- beta: number;
469
- gamma: number;
470
- halfLifeDays: number;
471
- };
472
370
  assistant_preference: {
473
371
  alpha: number;
474
372
  beta: number;
@@ -482,13 +380,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
482
380
  halfLifeDays: number;
483
381
  };
484
382
  }, {
485
- procedural: {
486
- alpha: number;
487
- beta: number;
488
- gamma: number;
489
- halfLifeDays: number;
490
- };
491
- episodic: {
383
+ todo: {
492
384
  alpha: number;
493
385
  beta: number;
494
386
  gamma: number;
@@ -500,12 +392,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
500
392
  gamma: number;
501
393
  halfLifeDays: number;
502
394
  };
503
- semantic: {
504
- alpha: number;
505
- beta: number;
506
- gamma: number;
507
- halfLifeDays: number;
508
- };
509
395
  assistant_preference: {
510
396
  alpha: number;
511
397
  beta: number;
@@ -525,23 +411,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
525
411
  dimension: z.ZodOptional<z.ZodNumber>;
526
412
  client: z.ZodOptional<z.ZodAny>;
527
413
  scoring: z.ZodOptional<z.ZodObject<{
528
- procedural: z.ZodObject<{
529
- alpha: z.ZodNumber;
530
- beta: z.ZodNumber;
531
- gamma: z.ZodNumber;
532
- halfLifeDays: z.ZodNumber;
533
- }, "strip", z.ZodTypeAny, {
534
- alpha: number;
535
- beta: number;
536
- gamma: number;
537
- halfLifeDays: number;
538
- }, {
539
- alpha: number;
540
- beta: number;
541
- gamma: number;
542
- halfLifeDays: number;
543
- }>;
544
- episodic: z.ZodObject<{
414
+ todo: z.ZodObject<{
545
415
  alpha: z.ZodNumber;
546
416
  beta: z.ZodNumber;
547
417
  gamma: z.ZodNumber;
@@ -573,22 +443,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
573
443
  gamma: number;
574
444
  halfLifeDays: number;
575
445
  }>;
576
- semantic: z.ZodObject<{
577
- alpha: z.ZodNumber;
578
- beta: z.ZodNumber;
579
- gamma: z.ZodNumber;
580
- halfLifeDays: z.ZodNumber;
581
- }, "strip", z.ZodTypeAny, {
582
- alpha: number;
583
- beta: number;
584
- gamma: number;
585
- halfLifeDays: number;
586
- }, {
587
- alpha: number;
588
- beta: number;
589
- gamma: number;
590
- halfLifeDays: number;
591
- }>;
592
446
  assistant_preference: z.ZodObject<{
593
447
  alpha: z.ZodNumber;
594
448
  beta: z.ZodNumber;
@@ -622,13 +476,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
622
476
  halfLifeDays: number;
623
477
  }>;
624
478
  }, "strip", z.ZodTypeAny, {
625
- procedural: {
626
- alpha: number;
627
- beta: number;
628
- gamma: number;
629
- halfLifeDays: number;
630
- };
631
- episodic: {
479
+ todo: {
632
480
  alpha: number;
633
481
  beta: number;
634
482
  gamma: number;
@@ -640,12 +488,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
640
488
  gamma: number;
641
489
  halfLifeDays: number;
642
490
  };
643
- semantic: {
644
- alpha: number;
645
- beta: number;
646
- gamma: number;
647
- halfLifeDays: number;
648
- };
649
491
  assistant_preference: {
650
492
  alpha: number;
651
493
  beta: number;
@@ -659,13 +501,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
659
501
  halfLifeDays: number;
660
502
  };
661
503
  }, {
662
- procedural: {
663
- alpha: number;
664
- beta: number;
665
- gamma: number;
666
- halfLifeDays: number;
667
- };
668
- episodic: {
504
+ todo: {
669
505
  alpha: number;
670
506
  beta: number;
671
507
  gamma: number;
@@ -677,12 +513,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
677
513
  gamma: number;
678
514
  halfLifeDays: number;
679
515
  };
680
- semantic: {
681
- alpha: number;
682
- beta: number;
683
- gamma: number;
684
- halfLifeDays: number;
685
- };
686
516
  assistant_preference: {
687
517
  alpha: number;
688
518
  beta: number;
@@ -705,13 +535,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
705
535
  dimension?: number | undefined;
706
536
  client?: any;
707
537
  scoring?: {
708
- procedural: {
709
- alpha: number;
710
- beta: number;
711
- gamma: number;
712
- halfLifeDays: number;
713
- };
714
- episodic: {
538
+ todo: {
715
539
  alpha: number;
716
540
  beta: number;
717
541
  gamma: number;
@@ -723,12 +547,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
723
547
  gamma: number;
724
548
  halfLifeDays: number;
725
549
  };
726
- semantic: {
727
- alpha: number;
728
- beta: number;
729
- gamma: number;
730
- halfLifeDays: number;
731
- };
732
550
  assistant_preference: {
733
551
  alpha: number;
734
552
  beta: number;
@@ -753,13 +571,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
753
571
  dimension?: number | undefined;
754
572
  client?: any;
755
573
  scoring?: {
756
- procedural: {
757
- alpha: number;
758
- beta: number;
759
- gamma: number;
760
- halfLifeDays: number;
761
- };
762
- episodic: {
574
+ todo: {
763
575
  alpha: number;
764
576
  beta: number;
765
577
  gamma: number;
@@ -771,12 +583,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
771
583
  gamma: number;
772
584
  halfLifeDays: number;
773
585
  };
774
- semantic: {
775
- alpha: number;
776
- beta: number;
777
- gamma: number;
778
- halfLifeDays: number;
779
- };
780
586
  assistant_preference: {
781
587
  alpha: number;
782
588
  beta: number;
@@ -907,13 +713,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
907
713
  dimension?: number | undefined;
908
714
  client?: any;
909
715
  scoring?: {
910
- procedural: {
911
- alpha: number;
912
- beta: number;
913
- gamma: number;
914
- halfLifeDays: number;
915
- };
916
- episodic: {
716
+ todo: {
917
717
  alpha: number;
918
718
  beta: number;
919
719
  gamma: number;
@@ -925,12 +725,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
925
725
  gamma: number;
926
726
  halfLifeDays: number;
927
727
  };
928
- semantic: {
929
- alpha: number;
930
- beta: number;
931
- gamma: number;
932
- halfLifeDays: number;
933
- };
934
728
  assistant_preference: {
935
729
  alpha: number;
936
730
  beta: number;
@@ -996,13 +790,7 @@ export declare const MemoryConfigSchema: z.ZodObject<{
996
790
  dimension?: number | undefined;
997
791
  client?: any;
998
792
  scoring?: {
999
- procedural: {
1000
- alpha: number;
1001
- beta: number;
1002
- gamma: number;
1003
- halfLifeDays: number;
1004
- };
1005
- episodic: {
793
+ todo: {
1006
794
  alpha: number;
1007
795
  beta: number;
1008
796
  gamma: number;
@@ -1014,12 +802,6 @@ export declare const MemoryConfigSchema: z.ZodObject<{
1014
802
  gamma: number;
1015
803
  halfLifeDays: number;
1016
804
  };
1017
- semantic: {
1018
- alpha: number;
1019
- beta: number;
1020
- gamma: number;
1021
- halfLifeDays: number;
1022
- };
1023
805
  assistant_preference: {
1024
806
  alpha: number;
1025
807
  beta: number;
@@ -21,13 +21,7 @@ exports.MemoryConfigSchema = zod_1.z.object({
21
21
  dimension: zod_1.z.number().optional(),
22
22
  client: zod_1.z.any().optional(),
23
23
  scoring: zod_1.z.object({
24
- procedural: zod_1.z.object({
25
- alpha: zod_1.z.number(),
26
- beta: zod_1.z.number(),
27
- gamma: zod_1.z.number(),
28
- halfLifeDays: zod_1.z.number(),
29
- }),
30
- episodic: zod_1.z.object({
24
+ todo: zod_1.z.object({
31
25
  alpha: zod_1.z.number(),
32
26
  beta: zod_1.z.number(),
33
27
  gamma: zod_1.z.number(),
@@ -39,12 +33,6 @@ exports.MemoryConfigSchema = zod_1.z.object({
39
33
  gamma: zod_1.z.number(),
40
34
  halfLifeDays: zod_1.z.number(),
41
35
  }),
42
- semantic: zod_1.z.object({
43
- alpha: zod_1.z.number(),
44
- beta: zod_1.z.number(),
45
- gamma: zod_1.z.number(),
46
- halfLifeDays: zod_1.z.number(),
47
- }),
48
36
  assistant_preference: zod_1.z.object({
49
37
  alpha: zod_1.z.number(),
50
38
  beta: zod_1.z.number(),
@@ -33,7 +33,7 @@ class LiteVectorStore {
33
33
  const filename = this.isSecure ? `memories-lite-${currentUserId}.db` : `memories-lite-global.db`;
34
34
  this.dbPath = (config.rootPath == ':memory:') ? ':memory:' : path_1.default.join(config.rootPath, filename);
35
35
  // Add error handling callback for the database connection
36
- console.log('--- DBG create LiteVectorStore::dbPath', this.dbPath);
36
+ //console.log('--- DBG create LiteVectorStore::dbPath',this.dbPath);
37
37
  this.db = new sqlite3_1.default.Database(this.dbPath);
38
38
  }
39
39
  async init() {
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "memories-lite",
3
- "version": "0.9.4",
3
+ "version": "0.10.1",
4
4
  "description": "A lightweight memory system for LLM agents",
5
5
  "author": "olivier@evaletolab.ch",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "scripts": {
9
+ "predeploy": "npm version patch --no-git-tag-version",
9
10
  "build": "tsc -b",
10
11
  "test": "jest"
11
12
  },
@@ -1,11 +1,9 @@
1
1
  import { MemoryConfig, MemoryScoringConfig } from "../types";
2
2
 
3
3
  const DEFAULT_SCORING_CONFIG: MemoryScoringConfig = {
4
- // Values from memories-lite rule & user request
5
- procedural: { alpha: 0.30, beta: 0.40, gamma: 0.05, halfLifeDays: 1 / 24 }, // ~1 hour
6
- episodic: { alpha: 0.40, beta: 0.50, gamma: 0.10, halfLifeDays: 2 }, // ~2 days (user request 'temporary')
7
- factual: { alpha: 0.70, beta: 0.20, gamma: 0.10, halfLifeDays: 365 },
8
- semantic: { alpha: 0.50, beta: 0.25, gamma: 0.25, halfLifeDays: 120 },
4
+ // Focused on user preferences with AI - removed episodic and procedural memories
5
+ todo: { alpha: 0.40, beta: 0.50, gamma: 0.10, halfLifeDays: 40 }, // ~40 days
6
+ factual: { alpha: 0.70, beta: 0.20, gamma: 0.10, halfLifeDays: 150 }, // ~150 days
9
7
  assistant_preference: { alpha: 0.60, beta: 0.05, gamma: 0.35, halfLifeDays: Infinity },
10
8
  default: { alpha: 0.5, beta: 0.3, gamma: 0.1, halfLifeDays: 30 } // Fallback default
11
9
  };
@@ -34,7 +32,7 @@ export const DEFAULT_MEMORY_CONFIG: MemoryConfig = {
34
32
  provider: "openai",
35
33
  config: {
36
34
  apiKey: process.env.OPENAI_API_KEY || "",
37
- model: "gpt-4o-mini",
35
+ model: "gpt-5-mini",
38
36
  modelProperties: undefined,
39
37
  },
40
38
  },
@@ -48,7 +46,7 @@ export const DEFAULT_MEMORY_CONFIG: MemoryConfig = {
48
46
  llm: {
49
47
  provider: "openai",
50
48
  config: {
51
- model: "gpt-4o-mini",
49
+ model: "gpt-5-mini",
52
50
  },
53
51
  },
54
52
  },
@@ -51,10 +51,8 @@ export class ConfigManager {
51
51
  dimension: userConf.dimension || defaultConf.dimension,
52
52
  // Merge scoring deeply if present in userConf, otherwise use default
53
53
  scoring: userConf.scoring ? {
54
- procedural: { ...defaultConf.scoring?.procedural, ...userConf.scoring.procedural },
55
- episodic: { ...defaultConf.scoring?.episodic, ...userConf.scoring.episodic },
54
+ todo: { ...defaultConf.scoring?.todo, ...userConf.scoring.todo },
56
55
  factual: { ...defaultConf.scoring?.factual, ...userConf.scoring.factual },
57
- semantic: { ...defaultConf.scoring?.semantic, ...userConf.scoring.semantic },
58
56
  assistant_preference: { ...defaultConf.scoring?.assistant_preference, ...userConf.scoring.assistant_preference },
59
57
  default: { ...defaultConf.scoring?.default, ...userConf.scoring.default },
60
58
  } : defaultConf.scoring,
@@ -69,10 +67,8 @@ export class ConfigManager {
69
67
  client: undefined,
70
68
  // Merge scoring deeply if present in userConf, otherwise use default
71
69
  scoring: userConf?.scoring ? {
72
- procedural: { ...defaultConf.scoring?.procedural, ...userConf.scoring.procedural },
73
- episodic: { ...defaultConf.scoring?.episodic, ...userConf.scoring.episodic },
70
+ todo: { ...defaultConf.scoring?.todo, ...userConf.scoring.todo },
74
71
  factual: { ...defaultConf.scoring?.factual, ...userConf.scoring.factual },
75
- semantic: { ...defaultConf.scoring?.semantic, ...userConf.scoring.semantic },
76
72
  assistant_preference: { ...defaultConf.scoring?.assistant_preference, ...userConf.scoring.assistant_preference },
77
73
  default: { ...defaultConf.scoring?.default, ...userConf.scoring.default },
78
74
  } : defaultConf.scoring,
@@ -9,7 +9,7 @@ export class OpenAILLM implements LLM {
9
9
 
10
10
  constructor(config: LLMConfig) {
11
11
  this.openai = new OpenAI({ apiKey: config.apiKey });
12
- this.model = config.model || "gpt-4.1-mini";
12
+ this.model = config.model || "gpt-5-mini";
13
13
  }
14
14
 
15
15
  async generateResponse(
@@ -33,14 +33,27 @@ export class OpenAILLM implements LLM {
33
33
  // ⚠️ SyntaxError: Unexpected non-whitespace character after JSON at position 13
34
34
  const fnCall = structuredOutput ?
35
35
  this.openai.beta.chat.completions.parse.bind(this.openai.beta.chat.completions) : this.openai.chat.completions.create.bind(this.openai.chat.completions);
36
- const completion = await fnCall({
36
+ const selectedModel = model || this.model;
37
+ const isGpt5 = selectedModel.startsWith('gpt-5');
38
+
39
+ const options:any = {
37
40
  messages: msg,
38
- model: model||this.model,
39
- top_p:.8,temperature:.2,
41
+ model: selectedModel,
40
42
  ...(structuredOutput && { logit_bias: { "1734": -100 } }),
41
43
  response_format: responseFormat,
42
44
  ...(tools && { tools, tool_choice: "auto" }),
43
- });
45
+ };
46
+ // GPT-5: temperature must be 1 or omitted; otherwise keep prior behavior
47
+ if (isGpt5) {
48
+ options.temperature = 1;
49
+ options.reasoning_effort="minimal";
50
+ options.verbosity = "low";
51
+ } else {
52
+ options.top_p = 0.8;
53
+ options.temperature = 0.2;
54
+ }
55
+
56
+ const completion = await fnCall(options);
44
57
 
45
58
  const response:any = completion.choices[0].message;
46
59
 
@@ -8,7 +8,7 @@ export class OpenAIStructuredLLM implements LLM {
8
8
 
9
9
  constructor(config: LLMConfig) {
10
10
  this.openai = new OpenAI({ apiKey: config.apiKey });
11
- this.model = config.model || "gpt-4-turbo-preview";
11
+ this.model = config.model || "gpt-5-mini";
12
12
  }
13
13
 
14
14
  async generateResponse(
@@ -16,15 +16,19 @@ export class OpenAIStructuredLLM implements LLM {
16
16
  responseFormat?: { type: string } | null,
17
17
  tools?: any[],
18
18
  ): Promise<string | LLMResponse> {
19
+ const mapped = messages.map((msg) => ({
20
+ role: msg.role as "system" | "user" | "assistant",
21
+ content: typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content),
22
+ }));
23
+ const isGpt5 = this.model.startsWith('gpt-5');
24
+ const base:any = { messages: mapped, model: this.model };
25
+ if (isGpt5) {
26
+ base.temperature = 1;
27
+ base.reasoning_effort = "minimal";
28
+ base.verbosity = "low";
29
+ }
19
30
  const completion = await this.openai.chat.completions.create({
20
- messages: messages.map((msg) => ({
21
- role: msg.role as "system" | "user" | "assistant",
22
- content:
23
- typeof msg.content === "string"
24
- ? msg.content
25
- : JSON.stringify(msg.content),
26
- })),
27
- model: this.model,
31
+ ...base,
28
32
  ...(tools
29
33
  ? {
30
34
  tools: tools.map((tool) => ({
@@ -63,16 +67,16 @@ export class OpenAIStructuredLLM implements LLM {
63
67
  }
64
68
 
65
69
  async generateChat(messages: Message[]): Promise<LLMResponse> {
66
- const completion = await this.openai.chat.completions.create({
67
- messages: messages.map((msg) => ({
68
- role: msg.role as "system" | "user" | "assistant",
69
- content:
70
- typeof msg.content === "string"
71
- ? msg.content
72
- : JSON.stringify(msg.content),
73
- })),
74
- model: this.model,
75
- });
70
+ const mapped = messages.map((msg) => ({
71
+ role: msg.role as "system" | "user" | "assistant",
72
+ content: typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content),
73
+ }));
74
+ const isGpt5 = this.model.startsWith('gpt-5');
75
+ const base:any = { messages: mapped, model: this.model };
76
+ if (isGpt5) {
77
+ base.temperature = 1;
78
+ }
79
+ const completion = await this.openai.chat.completions.create(base);
76
80
  const response = completion.choices[0].message;
77
81
  return {
78
82
  content: response.content || "",