@mozaik-ai/core 2.8.0 → 2.10.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/dist/index.d.mts CHANGED
@@ -128,6 +128,7 @@ type ModelSpecification = {
128
128
  supportStreaming: boolean;
129
129
  contextWindowSize: number;
130
130
  maxOutputTokens: number;
131
+ supportFunctionCalling: boolean;
131
132
  };
132
133
  interface GenerativeModel {
133
134
  readonly specification: ModelSpecification;
@@ -157,10 +158,25 @@ interface ReasoningEffort<Effort extends string> {
157
158
  getReasoningEffort(): Effort;
158
159
  }
159
160
 
161
+ interface FunctionTool {
162
+ type: "function";
163
+ name: string;
164
+ description: string;
165
+ parameters: Record<string, any>;
166
+ strict: boolean;
167
+ invoke: (args: any) => Promise<any>;
168
+ }
169
+ type Tool = FunctionTool;
170
+
171
+ interface ToolCallingCapability {
172
+ setTools(tools: Tool[]): void;
173
+ getTools(): Tool[];
174
+ }
175
+
160
176
  declare class InferenceRequest {
161
- readonly model: GenerativeModel & ReasoningEffort<string>;
177
+ readonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability;
162
178
  readonly context: Context;
163
- constructor(model: GenerativeModel & ReasoningEffort<string>, context: Context);
179
+ constructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: Context);
164
180
  }
165
181
 
166
182
  declare class InputTokenDetails {
@@ -201,7 +217,7 @@ declare class OpenAIResponses implements ModelRuntime {
201
217
 
202
218
  type OpenAIReasoningEffortType = "xhigh" | "high" | "medium" | "low" | "none";
203
219
 
204
- declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
220
+ declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
205
221
  readonly specification: {
206
222
  name: string;
207
223
  supportReasoningEffort: boolean;
@@ -209,13 +225,17 @@ declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReason
209
225
  supportStreaming: boolean;
210
226
  contextWindowSize: number;
211
227
  maxOutputTokens: number;
228
+ supportFunctionCalling: boolean;
212
229
  };
230
+ private tools;
213
231
  private readonly effort;
232
+ setTools(tools: Tool[]): void;
233
+ getTools(): Tool[];
214
234
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
215
235
  getReasoningEffort(): OpenAIReasoningEffortType;
216
236
  }
217
237
 
218
- declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
238
+ declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
219
239
  readonly specification: {
220
240
  name: string;
221
241
  supportReasoningEffort: boolean;
@@ -223,13 +243,17 @@ declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningE
223
243
  supportStreaming: boolean;
224
244
  contextWindowSize: number;
225
245
  maxOutputTokens: number;
246
+ supportFunctionCalling: boolean;
226
247
  };
248
+ private tools;
249
+ setTools(tools: Tool[]): void;
250
+ getTools(): Tool[];
227
251
  private readonly effort;
228
252
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
229
253
  getReasoningEffort(): OpenAIReasoningEffortType;
230
254
  }
231
255
 
232
- declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
256
+ declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
233
257
  readonly specification: {
234
258
  name: string;
235
259
  supportReasoningEffort: boolean;
@@ -237,10 +261,40 @@ declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReason
237
261
  supportStreaming: boolean;
238
262
  contextWindowSize: number;
239
263
  maxOutputTokens: number;
264
+ supportFunctionCalling: boolean;
240
265
  };
266
+ private tools;
241
267
  private readonly effort;
242
268
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
243
269
  getReasoningEffort(): OpenAIReasoningEffortType;
270
+ setTools(tools: Tool[]): void;
271
+ getTools(): Tool[];
272
+ }
273
+
274
+ interface Condition<T> {
275
+ isSatisfiedBy(candidate: T): boolean;
276
+ and(other: Condition<T>): Condition<T>;
277
+ or(other: Condition<T>): Condition<T>;
278
+ not(): Condition<T>;
279
+ }
280
+ declare abstract class BaseCondition<T> implements Condition<T> {
281
+ abstract isSatisfiedBy(candidate: T): boolean;
282
+ and(other: Condition<T>): Condition<T>;
283
+ or(other: Condition<T>): Condition<T>;
284
+ not(): Condition<T>;
285
+ }
286
+
287
+ interface Action<T> {
288
+ apply(candidate: T): T;
289
+ }
290
+ declare class Rule<T> {
291
+ private condition;
292
+ private action;
293
+ constructor({ when, then }: {
294
+ when: Condition<T>;
295
+ then: Action<T>;
296
+ });
297
+ apply(candidate: T): T;
244
298
  }
245
299
 
246
- export { Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, Gpt54, Gpt54Mini, Gpt54Nano, InferenceRequest, InferenceResponse, InputTokenDetails, ModelMessage, OpenAIResponses, OutputTokenDetails, Reasoning, TokenUsage, UserMessage };
300
+ export { type Action, BaseCondition, Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, Gpt54, Gpt54Mini, Gpt54Nano, InferenceRequest, InferenceResponse, InputTokenDetails, ModelMessage, OpenAIResponses, OutputTokenDetails, Reasoning, Rule, TokenUsage, type Tool, UserMessage };
package/dist/index.d.ts CHANGED
@@ -128,6 +128,7 @@ type ModelSpecification = {
128
128
  supportStreaming: boolean;
129
129
  contextWindowSize: number;
130
130
  maxOutputTokens: number;
131
+ supportFunctionCalling: boolean;
131
132
  };
132
133
  interface GenerativeModel {
133
134
  readonly specification: ModelSpecification;
@@ -157,10 +158,25 @@ interface ReasoningEffort<Effort extends string> {
157
158
  getReasoningEffort(): Effort;
158
159
  }
159
160
 
161
+ interface FunctionTool {
162
+ type: "function";
163
+ name: string;
164
+ description: string;
165
+ parameters: Record<string, any>;
166
+ strict: boolean;
167
+ invoke: (args: any) => Promise<any>;
168
+ }
169
+ type Tool = FunctionTool;
170
+
171
+ interface ToolCallingCapability {
172
+ setTools(tools: Tool[]): void;
173
+ getTools(): Tool[];
174
+ }
175
+
160
176
  declare class InferenceRequest {
161
- readonly model: GenerativeModel & ReasoningEffort<string>;
177
+ readonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability;
162
178
  readonly context: Context;
163
- constructor(model: GenerativeModel & ReasoningEffort<string>, context: Context);
179
+ constructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: Context);
164
180
  }
165
181
 
166
182
  declare class InputTokenDetails {
@@ -201,7 +217,7 @@ declare class OpenAIResponses implements ModelRuntime {
201
217
 
202
218
  type OpenAIReasoningEffortType = "xhigh" | "high" | "medium" | "low" | "none";
203
219
 
204
- declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
220
+ declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
205
221
  readonly specification: {
206
222
  name: string;
207
223
  supportReasoningEffort: boolean;
@@ -209,13 +225,17 @@ declare class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReason
209
225
  supportStreaming: boolean;
210
226
  contextWindowSize: number;
211
227
  maxOutputTokens: number;
228
+ supportFunctionCalling: boolean;
212
229
  };
230
+ private tools;
213
231
  private readonly effort;
232
+ setTools(tools: Tool[]): void;
233
+ getTools(): Tool[];
214
234
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
215
235
  getReasoningEffort(): OpenAIReasoningEffortType;
216
236
  }
217
237
 
218
- declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
238
+ declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
219
239
  readonly specification: {
220
240
  name: string;
221
241
  supportReasoningEffort: boolean;
@@ -223,13 +243,17 @@ declare class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningE
223
243
  supportStreaming: boolean;
224
244
  contextWindowSize: number;
225
245
  maxOutputTokens: number;
246
+ supportFunctionCalling: boolean;
226
247
  };
248
+ private tools;
249
+ setTools(tools: Tool[]): void;
250
+ getTools(): Tool[];
227
251
  private readonly effort;
228
252
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
229
253
  getReasoningEffort(): OpenAIReasoningEffortType;
230
254
  }
231
255
 
232
- declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {
256
+ declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {
233
257
  readonly specification: {
234
258
  name: string;
235
259
  supportReasoningEffort: boolean;
@@ -237,10 +261,40 @@ declare class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReason
237
261
  supportStreaming: boolean;
238
262
  contextWindowSize: number;
239
263
  maxOutputTokens: number;
264
+ supportFunctionCalling: boolean;
240
265
  };
266
+ private tools;
241
267
  private readonly effort;
242
268
  setReasoningEffort(effort: OpenAIReasoningEffortType): void;
243
269
  getReasoningEffort(): OpenAIReasoningEffortType;
270
+ setTools(tools: Tool[]): void;
271
+ getTools(): Tool[];
272
+ }
273
+
274
+ interface Condition<T> {
275
+ isSatisfiedBy(candidate: T): boolean;
276
+ and(other: Condition<T>): Condition<T>;
277
+ or(other: Condition<T>): Condition<T>;
278
+ not(): Condition<T>;
279
+ }
280
+ declare abstract class BaseCondition<T> implements Condition<T> {
281
+ abstract isSatisfiedBy(candidate: T): boolean;
282
+ and(other: Condition<T>): Condition<T>;
283
+ or(other: Condition<T>): Condition<T>;
284
+ not(): Condition<T>;
285
+ }
286
+
287
+ interface Action<T> {
288
+ apply(candidate: T): T;
289
+ }
290
+ declare class Rule<T> {
291
+ private condition;
292
+ private action;
293
+ constructor({ when, then }: {
294
+ when: Condition<T>;
295
+ then: Action<T>;
296
+ });
297
+ apply(candidate: T): T;
244
298
  }
245
299
 
246
- export { Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, Gpt54, Gpt54Mini, Gpt54Nano, InferenceRequest, InferenceResponse, InputTokenDetails, ModelMessage, OpenAIResponses, OutputTokenDetails, Reasoning, TokenUsage, UserMessage };
300
+ export { type Action, BaseCondition, Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, Gpt54, Gpt54Mini, Gpt54Nano, InferenceRequest, InferenceResponse, InputTokenDetails, ModelMessage, OpenAIResponses, OutputTokenDetails, Reasoning, Rule, TokenUsage, type Tool, UserMessage };
package/dist/index.js CHANGED
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ BaseCondition: () => BaseCondition,
33
34
  Context: () => Context,
34
35
  ContextItem: () => ContextItem,
35
36
  DeveloperMessage: () => DeveloperMessage,
@@ -45,6 +46,7 @@ __export(index_exports, {
45
46
  OpenAIResponses: () => OpenAIResponses,
46
47
  OutputTokenDetails: () => OutputTokenDetails,
47
48
  Reasoning: () => Reasoning,
49
+ Rule: () => Rule,
48
50
  TokenUsage: () => TokenUsage,
49
51
  UserMessage: () => UserMessage
50
52
  });
@@ -321,6 +323,16 @@ var OpenAIResponses = class {
321
323
  model: specification.name,
322
324
  input
323
325
  };
326
+ if (specification.supportFunctionCalling && inferenceRequest.model.getTools().length > 0) {
327
+ request.tools = inferenceRequest.model.getTools().map((tool) => {
328
+ return {
329
+ type: tool.type,
330
+ name: tool.name,
331
+ description: tool.description,
332
+ parameters: tool.parameters
333
+ };
334
+ });
335
+ }
324
336
  if (specification.supportReasoningEffort) {
325
337
  request.reasoning = {
326
338
  effort: inferenceRequest.model.getReasoningEffort()
@@ -393,13 +405,21 @@ var Gpt54Nano = class {
393
405
  supportReasoningEffort: true,
394
406
  defaultReasoningEffort: "none",
395
407
  supportStreaming: true,
396
- contextWindowSize: 105e4,
397
- maxOutputTokens: 128e3
408
+ contextWindowSize: 4e5,
409
+ maxOutputTokens: 128e3,
410
+ supportFunctionCalling: true
398
411
  };
412
+ this.tools = [];
399
413
  this.effort = new OpenAIReasoningEffort(
400
414
  this.specification.defaultReasoningEffort
401
415
  );
402
416
  }
417
+ setTools(tools) {
418
+ this.tools = tools;
419
+ }
420
+ getTools() {
421
+ return this.tools;
422
+ }
403
423
  setReasoningEffort(effort) {
404
424
  this.effort.setReasoningEffort(effort);
405
425
  }
@@ -417,12 +437,20 @@ var Gpt54 = class {
417
437
  defaultReasoningEffort: "none",
418
438
  supportStreaming: true,
419
439
  contextWindowSize: 105e4,
420
- maxOutputTokens: 128e3
440
+ maxOutputTokens: 128e3,
441
+ supportFunctionCalling: true
421
442
  };
443
+ this.tools = [];
422
444
  this.effort = new OpenAIReasoningEffort(
423
445
  this.specification.defaultReasoningEffort
424
446
  );
425
447
  }
448
+ setTools(tools) {
449
+ this.tools = tools;
450
+ }
451
+ getTools() {
452
+ return this.tools;
453
+ }
426
454
  setReasoningEffort(effort) {
427
455
  this.effort.setReasoningEffort(effort);
428
456
  }
@@ -440,8 +468,10 @@ var Gpt54Mini = class {
440
468
  defaultReasoningEffort: "none",
441
469
  supportStreaming: true,
442
470
  contextWindowSize: 4e5,
443
- maxOutputTokens: 128e3
471
+ maxOutputTokens: 128e3,
472
+ supportFunctionCalling: true
444
473
  };
474
+ this.tools = [];
445
475
  this.effort = new OpenAIReasoningEffort(
446
476
  this.specification.defaultReasoningEffort
447
477
  );
@@ -452,9 +482,72 @@ var Gpt54Mini = class {
452
482
  getReasoningEffort() {
453
483
  return this.effort.getReasoningEffort();
454
484
  }
485
+ setTools(tools) {
486
+ this.tools = tools;
487
+ }
488
+ getTools() {
489
+ return this.tools;
490
+ }
491
+ };
492
+
493
+ // src/core/context-engine/condition/condition.ts
494
+ var BaseCondition = class {
495
+ and(other) {
496
+ return new AndCondition(this, other);
497
+ }
498
+ or(other) {
499
+ return new OrCondition(this, other);
500
+ }
501
+ not() {
502
+ return new NotCondition(this);
503
+ }
504
+ };
505
+ var AndCondition = class extends BaseCondition {
506
+ constructor(left, right) {
507
+ super();
508
+ this.left = left;
509
+ this.right = right;
510
+ }
511
+ isSatisfiedBy(candidate) {
512
+ return this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate);
513
+ }
514
+ };
515
+ var NotCondition = class extends BaseCondition {
516
+ constructor(condition) {
517
+ super();
518
+ this.condition = condition;
519
+ }
520
+ isSatisfiedBy(candidate) {
521
+ return !this.condition.isSatisfiedBy(candidate);
522
+ }
523
+ };
524
+ var OrCondition = class extends BaseCondition {
525
+ constructor(left, right) {
526
+ super();
527
+ this.left = left;
528
+ this.right = right;
529
+ }
530
+ isSatisfiedBy(candidate) {
531
+ return this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate);
532
+ }
533
+ };
534
+
535
+ // src/core/context-engine/rule/rule.ts
536
+ var Rule = class {
537
+ constructor({ when, then }) {
538
+ this.condition = when;
539
+ this.action = then;
540
+ }
541
+ apply(candidate) {
542
+ if (this.condition.isSatisfiedBy(candidate)) {
543
+ return this.action.apply(candidate);
544
+ }
545
+ return candidate;
546
+ }
455
547
  };
456
548
  // Annotate the CommonJS export names for ESM import in node:
457
549
  0 && (module.exports = {
550
+ BaseCondition,
458
551
  Context,
459
552
  ContextItem,
460
553
  DeveloperMessage,
@@ -470,6 +563,7 @@ var Gpt54Mini = class {
470
563
  OpenAIResponses,
471
564
  OutputTokenDetails,
472
565
  Reasoning,
566
+ Rule,
473
567
  TokenUsage,
474
568
  UserMessage
475
569
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/core/context-runtime/context.ts","../src/core/context-runtime/context-item.ts","../src/core/context-runtime/content.ts","../src/core/context-runtime/content/input-text.ts","../src/core/context-runtime/input/user-message.ts","../src/core/context-runtime/input/developer-message.ts","../src/core/context-runtime/content/output-text.ts","../src/core/context-runtime/output/model-message.ts","../src/core/context-runtime/output/function-call.ts","../src/core/context-runtime/output/reasoning.ts","../src/core/context-runtime/input/function-call-output.ts","../src/core/generative-model/inference-response.ts","../src/core/generative-model/token-usage.ts","../src/providers/openai/runtime/openai-responses.ts","../src/core/generative-model/inference-request.ts","../src/providers/openai/reasoning-effort.ts","../src/providers/openai/models/gpt-5-4-nano.ts","../src/providers/openai/models/gpt-5-4.ts","../src/providers/openai/models/gpt-5-4-mini.ts"],"sourcesContent":["import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { UserMessage } from \"@core/context-runtime/input/user-message\"\nimport { DeveloperMessage } from \"@core/context-runtime/input/developer-message\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { FunctionCallOutput } from \"@core/context-runtime/input/function-call-output\"\nimport { ContextRepository } from \"@core/context-runtime/context-repository\"\nimport { OpenAIResponses } from \"@openai/runtime/openai-responses\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { Gpt54Nano } from \"@openai/models/gpt-5-4-nano\"\nimport { Gpt54 } from \"@openai/models/gpt-5-4\"\nimport { Gpt54Mini } from \"@openai/models/gpt-5-4-mini\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\n\nexport {\n\tContext,\n\tContextItem,\n\tUserMessage,\n\tDeveloperMessage,\n\tModelMessage,\n\tFunctionCall,\n\tFunctionCallOutput,\n\tReasoning,\n\tGenerativeModel,\n\tContextRepository,\n\tOpenAIResponses,\n\tGpt54,\n\tGpt54Mini,\n\tGpt54Nano,\n\tInferenceRequest,\n\tInferenceResponse,\n\tTokenUsage,\n\tInputTokenDetails,\n\tOutputTokenDetails,\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Context {\n\treadonly id: string\n\treadonly projectId: string\n\treadonly items: ContextItem[]\n\n\tconstructor(id: string, projectId: string, items: ContextItem[]) {\n\t\tthis.projectId = projectId\n\t\tthis.id = id\n\t\tthis.items = items\n\t}\n\n\taddItem(item: ContextItem): Context {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): Context {\n\t\tfor (const item of items) {\n\t\t\tconst itemType = item.getType()\n\t\t\tif (itemType !== \"function_call\" && itemType !== \"message\" && itemType !== \"reasoning\") {\n\t\t\t\tthrow new Error(`Invalid item type: ${itemType}`)\n\t\t\t}\n\t\t}\n\t\tthis.items.push(...items)\n\t\treturn this\n\t}\n\n\tgetItems(): ContextItem[] {\n\t\treturn this.items\n\t}\n\n\tstatic create(projectId: string): Context {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new Context(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): Context {\n\t\treturn new Context(data.id, data.projectId, data.items)\n\t}\n\n\ttoJSON(): any {\n\t\treturn this.items.map((item) => item.toJSON())\n\t}\n}\n","export abstract class ContextItem {\n\tabstract readonly type: string\n\n\tgetType(): string {\n\t\treturn this.type\n\t}\n\n\tabstract toJSON(): any\n}\n","export abstract class Content {\n\tabstract readonly type: string\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class InputText extends Content {\n\treadonly type = \"input_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic create(text: string): InputText {\n\t\treturn new InputText(text)\n\t}\n\n\tstatic rehydrate(data: { text: string }): InputText {\n\t\treturn new InputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class UserMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"user\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic create(text: string): UserMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class DeveloperMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"developer\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n\n\tstatic create(text: string): DeveloperMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessage(content)\n\t}\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class OutputText extends Content {\n\treadonly type = \"output_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic rehydrate(data: { text: string }): OutputText {\n\t\treturn new OutputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { OutputText } from \"@core/context-runtime/content/output-text\"\n\nexport class ModelMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"assistant\"\n\treadonly content: OutputText\n\n\tprivate constructor(content: OutputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic rehydrate(data: { text: string }): ModelMessage {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class FunctionCall extends ContextItem {\n\treadonly type = \"function_call\"\n\treadonly callId: string\n\treadonly name: string\n\treadonly args: string\n\n\tprivate constructor(callId: string, name: string, args: string) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.name = name\n\t\tthis.args = args\n\t}\n\n\tstatic rehydrate(data: { callId: string; name: string; args: string }): FunctionCall {\n\t\treturn new FunctionCall(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { SummaryText } from \"@core/context-runtime/content/summary-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Reasoning extends ContextItem {\n\treadonly type = \"reasoning\"\n\treadonly content: InputText | undefined\n\treadonly encryptedContent: string | undefined\n\treadonly summary: SummaryText[]\n\n\tprivate constructor(\n\t\tcontent: InputText | undefined,\n\t\tencryptedContent?: string | undefined,\n\t\tsummary: SummaryText[] = [],\n\t) {\n\t\tsuper()\n\t\tthis.content = content\n\t\tthis.encryptedContent = encryptedContent\n\t\tthis.summary = summary\n\t}\n\n\tstatic rehydrate(data: {\n\t\tcontent: InputText | undefined\n\t\tencryptedContent: string | undefined\n\t\tsummary: SummaryText[]\n\t}): Reasoning {\n\t\treturn new Reasoning(data.content, data.encryptedContent, data.summary)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcontent: this.content?.toJSON(),\n\t\t\tencryptedContent: this.encryptedContent,\n\t\t\tsummary: this.summary.map((s) => s.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class FunctionCallOutput extends ContextItem {\n\treadonly type = \"function_call_output\"\n\treadonly callId: string\n\treadonly output: InputText[]\n\n\tprivate constructor(callId: string, output: InputText[]) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.output = output\n\t}\n\n\tstatic create(callId: string, output: InputText[]): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(callId, output)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText[] }): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\toutput: this.output.map((o) => o.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"src\"\nimport { TokenUsage } from \"./token-usage\"\n\nexport class InferenceResponse {\n\treadonly contextItems: ContextItem[]\n\treadonly tokenUsage?: TokenUsage\n\n\tconstructor(contextItems: ContextItem[], tokenUsage: TokenUsage | undefined) {\n\t\tthis.contextItems = contextItems\n\t\tthis.tokenUsage = tokenUsage\n\t}\n}\n","export class InputTokenDetails {\n\treadonly cached_tokens: number\n\n\tconstructor(cached_tokens: number) {\n\t\tthis.cached_tokens = cached_tokens\n\t}\n}\n\nexport class OutputTokenDetails {\n\treadonly reasoning_tokens: number\n\n\tconstructor(reasoning_tokens: number) {\n\t\tthis.reasoning_tokens = reasoning_tokens\n\t}\n}\n\nexport class TokenUsage {\n\treadonly inputTokens: number\n\treadonly outputTokens: number\n\treadonly totalTokens: number\n\treadonly inputTokenDetails: InputTokenDetails\n\treadonly outputTokenDetails: OutputTokenDetails\n\n\tconstructor(\n\t\tinputTokens: number,\n\t\toutputTokens: number,\n\t\ttotalTokens: number,\n\t\tinputTokenDetails: InputTokenDetails,\n\t\toutputTokenDetails: OutputTokenDetails,\n\t) {\n\t\tthis.inputTokens = inputTokens\n\t\tthis.outputTokens = outputTokens\n\t\tthis.totalTokens = totalTokens\n\t\tthis.inputTokenDetails = inputTokenDetails\n\t\tthis.outputTokenDetails = outputTokenDetails\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<InferenceResponse> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\n\t\tconst specification = inferenceRequest.model.specification\n\t\tlet request: any = {\n\t\t\tmodel: specification.name,\n\t\t\tinput: input,\n\t\t}\n\n\t\tif (specification.supportReasoningEffort) {\n\t\t\trequest.reasoning = {\n\t\t\t\teffort: inferenceRequest.model.getReasoningEffort(),\n\t\t\t}\n\t\t}\n\n\t\tconst response = await this.client.responses.create(request)\n\n\t\tconst contextItems = this.extractContextItems(response)\n\t\tconst tokenUsage = this.extractTokenUsage(response)\n\t\treturn new InferenceResponse(contextItems, tokenUsage)\n\t}\n\n\textractTokenUsage(response: OpenAI.Responses.Response): TokenUsage | undefined {\n\t\tif (!response.usage) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn new TokenUsage(\n\t\t\tresponse.usage.input_tokens,\n\t\t\tresponse.usage.output_tokens,\n\t\t\tresponse.usage.total_tokens,\n\t\t\tnew InputTokenDetails(response.usage.input_tokens_details.cached_tokens),\n\t\t\tnew OutputTokenDetails(response.usage.output_tokens_details.reasoning_tokens),\n\t\t)\n\t}\n\n\tmapContextToRequest(context: Context): any[] {\n\t\treturn context.getItems().map((item) => item.toJSON())\n\t}\n\n\textractContextItems(response: any): ContextItem[] {\n\t\treturn response.output.map((item: any) => {\n\t\t\tif (item.type === \"message\" && item.status === \"completed\") {\n\t\t\t\treturn ModelMessage.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\" && item.status === \"completed\") {\n\t\t\t\treturn FunctionCall.rehydrate(item)\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { GenerativeModel } from \"./generative-model\"\nimport { ReasoningEffort } from \"./capabilities/reasoning-effort\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string>\n\treadonly context: Context\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string>, context: Context) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\n\nexport type OpenAIReasoningEffortType = \"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\"\n\nexport class OpenAIReasoningEffort implements ReasoningEffort<OpenAIReasoningEffortType> {\n\treasoningEffort: OpenAIReasoningEffortType\n\n\tconstructor(reasoningEffort: OpenAIReasoningEffortType) {\n\t\tthis.reasoningEffort = reasoningEffort\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.reasoningEffort = effort\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\tif (!this.reasoningEffort) {\n\t\t\tthrow new Error(\"Reasoning effort not supported\")\n\t\t}\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-nano\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-mini\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":["OpenAI"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/core/context-runtime/context.ts","../src/core/context-runtime/context-item.ts","../src/core/context-runtime/content.ts","../src/core/context-runtime/content/input-text.ts","../src/core/context-runtime/input/user-message.ts","../src/core/context-runtime/input/developer-message.ts","../src/core/context-runtime/content/output-text.ts","../src/core/context-runtime/output/model-message.ts","../src/core/context-runtime/output/function-call.ts","../src/core/context-runtime/output/reasoning.ts","../src/core/context-runtime/input/function-call-output.ts","../src/core/generative-model/inference-response.ts","../src/core/generative-model/token-usage.ts","../src/providers/openai/runtime/openai-responses.ts","../src/core/generative-model/inference-request.ts","../src/providers/openai/reasoning-effort.ts","../src/providers/openai/models/gpt-5-4-nano.ts","../src/providers/openai/models/gpt-5-4.ts","../src/providers/openai/models/gpt-5-4-mini.ts","../src/core/context-engine/condition/condition.ts","../src/core/context-engine/rule/rule.ts"],"sourcesContent":["import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { UserMessage } from \"@core/context-runtime/input/user-message\"\nimport { DeveloperMessage } from \"@core/context-runtime/input/developer-message\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { FunctionCallOutput } from \"@core/context-runtime/input/function-call-output\"\nimport { ContextRepository } from \"@core/context-runtime/context-repository\"\nimport { OpenAIResponses } from \"@openai/runtime/openai-responses\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { Gpt54Nano } from \"@openai/models/gpt-5-4-nano\"\nimport { Gpt54 } from \"@openai/models/gpt-5-4\"\nimport { Gpt54Mini } from \"@openai/models/gpt-5-4-mini\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { BaseCondition, Condition } from \"@core/context-engine/condition/condition\"\nimport { Action, Rule } from \"@core/context-engine/rule/rule\"\n\nexport {\n\tContext,\n\tContextItem,\n\tUserMessage,\n\tDeveloperMessage,\n\tModelMessage,\n\tFunctionCall,\n\tFunctionCallOutput,\n\tReasoning,\n\tGenerativeModel,\n\tContextRepository,\n\tOpenAIResponses,\n\tGpt54,\n\tGpt54Mini,\n\tGpt54Nano,\n\tInferenceRequest,\n\tInferenceResponse,\n\tTokenUsage,\n\tInputTokenDetails,\n\tOutputTokenDetails,\n\tTool,\n\tBaseCondition,\n\tAction,\n\tRule,\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Context {\n\treadonly id: string\n\treadonly projectId: string\n\treadonly items: ContextItem[]\n\n\tconstructor(id: string, projectId: string, items: ContextItem[]) {\n\t\tthis.projectId = projectId\n\t\tthis.id = id\n\t\tthis.items = items\n\t}\n\n\taddItem(item: ContextItem): Context {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): Context {\n\t\tfor (const item of items) {\n\t\t\tconst itemType = item.getType()\n\t\t\tif (itemType !== \"function_call\" && itemType !== \"message\" && itemType !== \"reasoning\") {\n\t\t\t\tthrow new Error(`Invalid item type: ${itemType}`)\n\t\t\t}\n\t\t}\n\t\tthis.items.push(...items)\n\t\treturn this\n\t}\n\n\tgetItems(): ContextItem[] {\n\t\treturn this.items\n\t}\n\n\tstatic create(projectId: string): Context {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new Context(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): Context {\n\t\treturn new Context(data.id, data.projectId, data.items)\n\t}\n\n\ttoJSON(): any {\n\t\treturn this.items.map((item) => item.toJSON())\n\t}\n}\n","export abstract class ContextItem {\n\tabstract readonly type: string\n\n\tgetType(): string {\n\t\treturn this.type\n\t}\n\n\tabstract toJSON(): any\n}\n","export abstract class Content {\n\tabstract readonly type: string\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class InputText extends Content {\n\treadonly type = \"input_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic create(text: string): InputText {\n\t\treturn new InputText(text)\n\t}\n\n\tstatic rehydrate(data: { text: string }): InputText {\n\t\treturn new InputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class UserMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"user\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic create(text: string): UserMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class DeveloperMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"developer\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n\n\tstatic create(text: string): DeveloperMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessage(content)\n\t}\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class OutputText extends Content {\n\treadonly type = \"output_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic rehydrate(data: { text: string }): OutputText {\n\t\treturn new OutputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { OutputText } from \"@core/context-runtime/content/output-text\"\n\nexport class ModelMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"assistant\"\n\treadonly content: OutputText\n\n\tprivate constructor(content: OutputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic rehydrate(data: { text: string }): ModelMessage {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class FunctionCall extends ContextItem {\n\treadonly type = \"function_call\"\n\treadonly callId: string\n\treadonly name: string\n\treadonly args: string\n\n\tprivate constructor(callId: string, name: string, args: string) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.name = name\n\t\tthis.args = args\n\t}\n\n\tstatic rehydrate(data: { callId: string; name: string; args: string }): FunctionCall {\n\t\treturn new FunctionCall(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { SummaryText } from \"@core/context-runtime/content/summary-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Reasoning extends ContextItem {\n\treadonly type = \"reasoning\"\n\treadonly content: InputText | undefined\n\treadonly encryptedContent: string | undefined\n\treadonly summary: SummaryText[]\n\n\tprivate constructor(\n\t\tcontent: InputText | undefined,\n\t\tencryptedContent?: string | undefined,\n\t\tsummary: SummaryText[] = [],\n\t) {\n\t\tsuper()\n\t\tthis.content = content\n\t\tthis.encryptedContent = encryptedContent\n\t\tthis.summary = summary\n\t}\n\n\tstatic rehydrate(data: {\n\t\tcontent: InputText | undefined\n\t\tencryptedContent: string | undefined\n\t\tsummary: SummaryText[]\n\t}): Reasoning {\n\t\treturn new Reasoning(data.content, data.encryptedContent, data.summary)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcontent: this.content?.toJSON(),\n\t\t\tencryptedContent: this.encryptedContent,\n\t\t\tsummary: this.summary.map((s) => s.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class FunctionCallOutput extends ContextItem {\n\treadonly type = \"function_call_output\"\n\treadonly callId: string\n\treadonly output: InputText[]\n\n\tprivate constructor(callId: string, output: InputText[]) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.output = output\n\t}\n\n\tstatic create(callId: string, output: InputText[]): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(callId, output)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText[] }): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\toutput: this.output.map((o) => o.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"src\"\nimport { TokenUsage } from \"./token-usage\"\n\nexport class InferenceResponse {\n\treadonly contextItems: ContextItem[]\n\treadonly tokenUsage?: TokenUsage\n\n\tconstructor(contextItems: ContextItem[], tokenUsage: TokenUsage | undefined) {\n\t\tthis.contextItems = contextItems\n\t\tthis.tokenUsage = tokenUsage\n\t}\n}\n","export class InputTokenDetails {\n\treadonly cached_tokens: number\n\n\tconstructor(cached_tokens: number) {\n\t\tthis.cached_tokens = cached_tokens\n\t}\n}\n\nexport class OutputTokenDetails {\n\treadonly reasoning_tokens: number\n\n\tconstructor(reasoning_tokens: number) {\n\t\tthis.reasoning_tokens = reasoning_tokens\n\t}\n}\n\nexport class TokenUsage {\n\treadonly inputTokens: number\n\treadonly outputTokens: number\n\treadonly totalTokens: number\n\treadonly inputTokenDetails: InputTokenDetails\n\treadonly outputTokenDetails: OutputTokenDetails\n\n\tconstructor(\n\t\tinputTokens: number,\n\t\toutputTokens: number,\n\t\ttotalTokens: number,\n\t\tinputTokenDetails: InputTokenDetails,\n\t\toutputTokenDetails: OutputTokenDetails,\n\t) {\n\t\tthis.inputTokens = inputTokens\n\t\tthis.outputTokens = outputTokens\n\t\tthis.totalTokens = totalTokens\n\t\tthis.inputTokenDetails = inputTokenDetails\n\t\tthis.outputTokenDetails = outputTokenDetails\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<InferenceResponse> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\n\t\tconst specification = inferenceRequest.model.specification\n\n\t\tlet request: any = {\n\t\t\tmodel: specification.name,\n\t\t\tinput: input,\n\t\t}\n\n\t\tif (specification.supportFunctionCalling && inferenceRequest.model.getTools().length > 0) {\n\t\t\trequest.tools = inferenceRequest.model.getTools().map((tool) => {\n\t\t\t\treturn {\n\t\t\t\t\ttype: tool.type,\n\t\t\t\t\tname: tool.name,\n\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\tparameters: tool.parameters,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (specification.supportReasoningEffort) {\n\t\t\trequest.reasoning = {\n\t\t\t\teffort: inferenceRequest.model.getReasoningEffort(),\n\t\t\t}\n\t\t}\n\n\t\tconst response = await this.client.responses.create(request)\n\n\t\tconst contextItems = this.extractContextItems(response)\n\t\tconst tokenUsage = this.extractTokenUsage(response)\n\t\treturn new InferenceResponse(contextItems, tokenUsage)\n\t}\n\n\textractTokenUsage(response: OpenAI.Responses.Response): TokenUsage | undefined {\n\t\tif (!response.usage) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn new TokenUsage(\n\t\t\tresponse.usage.input_tokens,\n\t\t\tresponse.usage.output_tokens,\n\t\t\tresponse.usage.total_tokens,\n\t\t\tnew InputTokenDetails(response.usage.input_tokens_details.cached_tokens),\n\t\t\tnew OutputTokenDetails(response.usage.output_tokens_details.reasoning_tokens),\n\t\t)\n\t}\n\n\tmapContextToRequest(context: Context): any[] {\n\t\treturn context.getItems().map((item) => item.toJSON())\n\t}\n\n\textractContextItems(response: any): ContextItem[] {\n\t\treturn response.output.map((item: any) => {\n\t\t\tif (item.type === \"message\" && item.status === \"completed\") {\n\t\t\t\treturn ModelMessage.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\" && item.status === \"completed\") {\n\t\t\t\treturn FunctionCall.rehydrate(item)\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { GenerativeModel } from \"./generative-model\"\nimport { ReasoningEffort } from \"./capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"./capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: Context\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: Context) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\n\nexport type OpenAIReasoningEffortType = \"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\"\n\nexport class OpenAIReasoningEffort implements ReasoningEffort<OpenAIReasoningEffortType> {\n\treasoningEffort: OpenAIReasoningEffortType\n\n\tconstructor(reasoningEffort: OpenAIReasoningEffortType) {\n\t\tthis.reasoningEffort = reasoningEffort\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.reasoningEffort = effort\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\tif (!this.reasoningEffort) {\n\t\t\tthrow new Error(\"Reasoning effort not supported\")\n\t\t}\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-nano\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-mini\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n}\n","export interface Condition<T> {\n\tisSatisfiedBy(candidate: T): boolean\n\tand(other: Condition<T>): Condition<T>\n\tor(other: Condition<T>): Condition<T>\n\tnot(): Condition<T>\n}\n\nexport abstract class BaseCondition<T> implements Condition<T> {\n\tabstract isSatisfiedBy(candidate: T): boolean\n\n\tand(other: Condition<T>): Condition<T> {\n\t\treturn new AndCondition(this, other)\n\t}\n\n\tor(other: Condition<T>): Condition<T> {\n\t\treturn new OrCondition(this, other)\n\t}\n\n\tnot(): Condition<T> {\n\t\treturn new NotCondition(this)\n\t}\n}\n\nexport class AndCondition<T> extends BaseCondition<T> {\n\tconstructor(\n\t\tprivate readonly left: Condition<T>,\n\t\tprivate readonly right: Condition<T>,\n\t) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate)\n\t}\n}\n\nexport class NotCondition<T> extends BaseCondition<T> {\n\tconstructor(private readonly condition: Condition<T>) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn !this.condition.isSatisfiedBy(candidate)\n\t}\n}\n\nexport class OrCondition<T> extends BaseCondition<T> {\n\tconstructor(\n\t\tprivate readonly left: Condition<T>,\n\t\tprivate readonly right: Condition<T>,\n\t) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate)\n\t}\n}\n","import { Condition } from \"@core/context-engine/condition/condition\"\n\nexport interface Action<T> {\n\tapply(candidate: T): T\n}\n\nexport class Rule<T> {\n\tprivate condition: Condition<T>\n\tprivate action: Action<T>\n\n\tconstructor({ when, then }: { when: Condition<T>; then: Action<T> }) {\n\t\tthis.condition = when\t\n\t\tthis.action = then\n\t}\n\n\tapply(candidate: T): T {\n\t\tif (this.condition.isSatisfiedBy(candidate)) {\n\t\t\treturn this.action.apply(candidate)\n\t\t}\n\t\treturn candidate\n\t}\n}\n"],"mappings":"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","names":["OpenAI"]}
package/dist/index.mjs CHANGED
@@ -269,6 +269,16 @@ var OpenAIResponses = class {
269
269
  model: specification.name,
270
270
  input
271
271
  };
272
+ if (specification.supportFunctionCalling && inferenceRequest.model.getTools().length > 0) {
273
+ request.tools = inferenceRequest.model.getTools().map((tool) => {
274
+ return {
275
+ type: tool.type,
276
+ name: tool.name,
277
+ description: tool.description,
278
+ parameters: tool.parameters
279
+ };
280
+ });
281
+ }
272
282
  if (specification.supportReasoningEffort) {
273
283
  request.reasoning = {
274
284
  effort: inferenceRequest.model.getReasoningEffort()
@@ -341,13 +351,21 @@ var Gpt54Nano = class {
341
351
  supportReasoningEffort: true,
342
352
  defaultReasoningEffort: "none",
343
353
  supportStreaming: true,
344
- contextWindowSize: 105e4,
345
- maxOutputTokens: 128e3
354
+ contextWindowSize: 4e5,
355
+ maxOutputTokens: 128e3,
356
+ supportFunctionCalling: true
346
357
  };
358
+ this.tools = [];
347
359
  this.effort = new OpenAIReasoningEffort(
348
360
  this.specification.defaultReasoningEffort
349
361
  );
350
362
  }
363
+ setTools(tools) {
364
+ this.tools = tools;
365
+ }
366
+ getTools() {
367
+ return this.tools;
368
+ }
351
369
  setReasoningEffort(effort) {
352
370
  this.effort.setReasoningEffort(effort);
353
371
  }
@@ -365,12 +383,20 @@ var Gpt54 = class {
365
383
  defaultReasoningEffort: "none",
366
384
  supportStreaming: true,
367
385
  contextWindowSize: 105e4,
368
- maxOutputTokens: 128e3
386
+ maxOutputTokens: 128e3,
387
+ supportFunctionCalling: true
369
388
  };
389
+ this.tools = [];
370
390
  this.effort = new OpenAIReasoningEffort(
371
391
  this.specification.defaultReasoningEffort
372
392
  );
373
393
  }
394
+ setTools(tools) {
395
+ this.tools = tools;
396
+ }
397
+ getTools() {
398
+ return this.tools;
399
+ }
374
400
  setReasoningEffort(effort) {
375
401
  this.effort.setReasoningEffort(effort);
376
402
  }
@@ -388,8 +414,10 @@ var Gpt54Mini = class {
388
414
  defaultReasoningEffort: "none",
389
415
  supportStreaming: true,
390
416
  contextWindowSize: 4e5,
391
- maxOutputTokens: 128e3
417
+ maxOutputTokens: 128e3,
418
+ supportFunctionCalling: true
392
419
  };
420
+ this.tools = [];
393
421
  this.effort = new OpenAIReasoningEffort(
394
422
  this.specification.defaultReasoningEffort
395
423
  );
@@ -400,8 +428,71 @@ var Gpt54Mini = class {
400
428
  getReasoningEffort() {
401
429
  return this.effort.getReasoningEffort();
402
430
  }
431
+ setTools(tools) {
432
+ this.tools = tools;
433
+ }
434
+ getTools() {
435
+ return this.tools;
436
+ }
437
+ };
438
+
439
+ // src/core/context-engine/condition/condition.ts
440
+ var BaseCondition = class {
441
+ and(other) {
442
+ return new AndCondition(this, other);
443
+ }
444
+ or(other) {
445
+ return new OrCondition(this, other);
446
+ }
447
+ not() {
448
+ return new NotCondition(this);
449
+ }
450
+ };
451
+ var AndCondition = class extends BaseCondition {
452
+ constructor(left, right) {
453
+ super();
454
+ this.left = left;
455
+ this.right = right;
456
+ }
457
+ isSatisfiedBy(candidate) {
458
+ return this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate);
459
+ }
460
+ };
461
+ var NotCondition = class extends BaseCondition {
462
+ constructor(condition) {
463
+ super();
464
+ this.condition = condition;
465
+ }
466
+ isSatisfiedBy(candidate) {
467
+ return !this.condition.isSatisfiedBy(candidate);
468
+ }
469
+ };
470
+ var OrCondition = class extends BaseCondition {
471
+ constructor(left, right) {
472
+ super();
473
+ this.left = left;
474
+ this.right = right;
475
+ }
476
+ isSatisfiedBy(candidate) {
477
+ return this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate);
478
+ }
479
+ };
480
+
481
+ // src/core/context-engine/rule/rule.ts
482
+ var Rule = class {
483
+ constructor({ when, then }) {
484
+ this.condition = when;
485
+ this.action = then;
486
+ }
487
+ apply(candidate) {
488
+ if (this.condition.isSatisfiedBy(candidate)) {
489
+ return this.action.apply(candidate);
490
+ }
491
+ return candidate;
492
+ }
403
493
  };
404
494
  export {
495
+ BaseCondition,
405
496
  Context,
406
497
  ContextItem,
407
498
  DeveloperMessage,
@@ -417,6 +508,7 @@ export {
417
508
  OpenAIResponses,
418
509
  OutputTokenDetails,
419
510
  Reasoning,
511
+ Rule,
420
512
  TokenUsage,
421
513
  UserMessage
422
514
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/context-runtime/context.ts","../src/core/context-runtime/context-item.ts","../src/core/context-runtime/content.ts","../src/core/context-runtime/content/input-text.ts","../src/core/context-runtime/input/user-message.ts","../src/core/context-runtime/input/developer-message.ts","../src/core/context-runtime/content/output-text.ts","../src/core/context-runtime/output/model-message.ts","../src/core/context-runtime/output/function-call.ts","../src/core/context-runtime/output/reasoning.ts","../src/core/context-runtime/input/function-call-output.ts","../src/core/generative-model/inference-response.ts","../src/core/generative-model/token-usage.ts","../src/providers/openai/runtime/openai-responses.ts","../src/core/generative-model/inference-request.ts","../src/providers/openai/reasoning-effort.ts","../src/providers/openai/models/gpt-5-4-nano.ts","../src/providers/openai/models/gpt-5-4.ts","../src/providers/openai/models/gpt-5-4-mini.ts"],"sourcesContent":["import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Context {\n\treadonly id: string\n\treadonly projectId: string\n\treadonly items: ContextItem[]\n\n\tconstructor(id: string, projectId: string, items: ContextItem[]) {\n\t\tthis.projectId = projectId\n\t\tthis.id = id\n\t\tthis.items = items\n\t}\n\n\taddItem(item: ContextItem): Context {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): Context {\n\t\tfor (const item of items) {\n\t\t\tconst itemType = item.getType()\n\t\t\tif (itemType !== \"function_call\" && itemType !== \"message\" && itemType !== \"reasoning\") {\n\t\t\t\tthrow new Error(`Invalid item type: ${itemType}`)\n\t\t\t}\n\t\t}\n\t\tthis.items.push(...items)\n\t\treturn this\n\t}\n\n\tgetItems(): ContextItem[] {\n\t\treturn this.items\n\t}\n\n\tstatic create(projectId: string): Context {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new Context(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): Context {\n\t\treturn new Context(data.id, data.projectId, data.items)\n\t}\n\n\ttoJSON(): any {\n\t\treturn this.items.map((item) => item.toJSON())\n\t}\n}\n","export abstract class ContextItem {\n\tabstract readonly type: string\n\n\tgetType(): string {\n\t\treturn this.type\n\t}\n\n\tabstract toJSON(): any\n}\n","export abstract class Content {\n\tabstract readonly type: string\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class InputText extends Content {\n\treadonly type = \"input_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic create(text: string): InputText {\n\t\treturn new InputText(text)\n\t}\n\n\tstatic rehydrate(data: { text: string }): InputText {\n\t\treturn new InputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class UserMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"user\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic create(text: string): UserMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class DeveloperMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"developer\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n\n\tstatic create(text: string): DeveloperMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessage(content)\n\t}\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class OutputText extends Content {\n\treadonly type = \"output_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic rehydrate(data: { text: string }): OutputText {\n\t\treturn new OutputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { OutputText } from \"@core/context-runtime/content/output-text\"\n\nexport class ModelMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"assistant\"\n\treadonly content: OutputText\n\n\tprivate constructor(content: OutputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic rehydrate(data: { text: string }): ModelMessage {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class FunctionCall extends ContextItem {\n\treadonly type = \"function_call\"\n\treadonly callId: string\n\treadonly name: string\n\treadonly args: string\n\n\tprivate constructor(callId: string, name: string, args: string) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.name = name\n\t\tthis.args = args\n\t}\n\n\tstatic rehydrate(data: { callId: string; name: string; args: string }): FunctionCall {\n\t\treturn new FunctionCall(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { SummaryText } from \"@core/context-runtime/content/summary-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Reasoning extends ContextItem {\n\treadonly type = \"reasoning\"\n\treadonly content: InputText | undefined\n\treadonly encryptedContent: string | undefined\n\treadonly summary: SummaryText[]\n\n\tprivate constructor(\n\t\tcontent: InputText | undefined,\n\t\tencryptedContent?: string | undefined,\n\t\tsummary: SummaryText[] = [],\n\t) {\n\t\tsuper()\n\t\tthis.content = content\n\t\tthis.encryptedContent = encryptedContent\n\t\tthis.summary = summary\n\t}\n\n\tstatic rehydrate(data: {\n\t\tcontent: InputText | undefined\n\t\tencryptedContent: string | undefined\n\t\tsummary: SummaryText[]\n\t}): Reasoning {\n\t\treturn new Reasoning(data.content, data.encryptedContent, data.summary)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcontent: this.content?.toJSON(),\n\t\t\tencryptedContent: this.encryptedContent,\n\t\t\tsummary: this.summary.map((s) => s.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class FunctionCallOutput extends ContextItem {\n\treadonly type = \"function_call_output\"\n\treadonly callId: string\n\treadonly output: InputText[]\n\n\tprivate constructor(callId: string, output: InputText[]) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.output = output\n\t}\n\n\tstatic create(callId: string, output: InputText[]): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(callId, output)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText[] }): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\toutput: this.output.map((o) => o.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"src\"\nimport { TokenUsage } from \"./token-usage\"\n\nexport class InferenceResponse {\n\treadonly contextItems: ContextItem[]\n\treadonly tokenUsage?: TokenUsage\n\n\tconstructor(contextItems: ContextItem[], tokenUsage: TokenUsage | undefined) {\n\t\tthis.contextItems = contextItems\n\t\tthis.tokenUsage = tokenUsage\n\t}\n}\n","export class InputTokenDetails {\n\treadonly cached_tokens: number\n\n\tconstructor(cached_tokens: number) {\n\t\tthis.cached_tokens = cached_tokens\n\t}\n}\n\nexport class OutputTokenDetails {\n\treadonly reasoning_tokens: number\n\n\tconstructor(reasoning_tokens: number) {\n\t\tthis.reasoning_tokens = reasoning_tokens\n\t}\n}\n\nexport class TokenUsage {\n\treadonly inputTokens: number\n\treadonly outputTokens: number\n\treadonly totalTokens: number\n\treadonly inputTokenDetails: InputTokenDetails\n\treadonly outputTokenDetails: OutputTokenDetails\n\n\tconstructor(\n\t\tinputTokens: number,\n\t\toutputTokens: number,\n\t\ttotalTokens: number,\n\t\tinputTokenDetails: InputTokenDetails,\n\t\toutputTokenDetails: OutputTokenDetails,\n\t) {\n\t\tthis.inputTokens = inputTokens\n\t\tthis.outputTokens = outputTokens\n\t\tthis.totalTokens = totalTokens\n\t\tthis.inputTokenDetails = inputTokenDetails\n\t\tthis.outputTokenDetails = outputTokenDetails\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<InferenceResponse> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\n\t\tconst specification = inferenceRequest.model.specification\n\t\tlet request: any = {\n\t\t\tmodel: specification.name,\n\t\t\tinput: input,\n\t\t}\n\n\t\tif (specification.supportReasoningEffort) {\n\t\t\trequest.reasoning = {\n\t\t\t\teffort: inferenceRequest.model.getReasoningEffort(),\n\t\t\t}\n\t\t}\n\n\t\tconst response = await this.client.responses.create(request)\n\n\t\tconst contextItems = this.extractContextItems(response)\n\t\tconst tokenUsage = this.extractTokenUsage(response)\n\t\treturn new InferenceResponse(contextItems, tokenUsage)\n\t}\n\n\textractTokenUsage(response: OpenAI.Responses.Response): TokenUsage | undefined {\n\t\tif (!response.usage) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn new TokenUsage(\n\t\t\tresponse.usage.input_tokens,\n\t\t\tresponse.usage.output_tokens,\n\t\t\tresponse.usage.total_tokens,\n\t\t\tnew InputTokenDetails(response.usage.input_tokens_details.cached_tokens),\n\t\t\tnew OutputTokenDetails(response.usage.output_tokens_details.reasoning_tokens),\n\t\t)\n\t}\n\n\tmapContextToRequest(context: Context): any[] {\n\t\treturn context.getItems().map((item) => item.toJSON())\n\t}\n\n\textractContextItems(response: any): ContextItem[] {\n\t\treturn response.output.map((item: any) => {\n\t\t\tif (item.type === \"message\" && item.status === \"completed\") {\n\t\t\t\treturn ModelMessage.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\" && item.status === \"completed\") {\n\t\t\t\treturn FunctionCall.rehydrate(item)\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { GenerativeModel } from \"./generative-model\"\nimport { ReasoningEffort } from \"./capabilities/reasoning-effort\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string>\n\treadonly context: Context\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string>, context: Context) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\n\nexport type OpenAIReasoningEffortType = \"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\"\n\nexport class OpenAIReasoningEffort implements ReasoningEffort<OpenAIReasoningEffortType> {\n\treasoningEffort: OpenAIReasoningEffortType\n\n\tconstructor(reasoningEffort: OpenAIReasoningEffortType) {\n\t\tthis.reasoningEffort = reasoningEffort\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.reasoningEffort = effort\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\tif (!this.reasoningEffort) {\n\t\t\tthrow new Error(\"Reasoning effort not supported\")\n\t\t}\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-nano\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType> {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-mini\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/core/context-runtime/context.ts","../src/core/context-runtime/context-item.ts","../src/core/context-runtime/content.ts","../src/core/context-runtime/content/input-text.ts","../src/core/context-runtime/input/user-message.ts","../src/core/context-runtime/input/developer-message.ts","../src/core/context-runtime/content/output-text.ts","../src/core/context-runtime/output/model-message.ts","../src/core/context-runtime/output/function-call.ts","../src/core/context-runtime/output/reasoning.ts","../src/core/context-runtime/input/function-call-output.ts","../src/core/generative-model/inference-response.ts","../src/core/generative-model/token-usage.ts","../src/providers/openai/runtime/openai-responses.ts","../src/core/generative-model/inference-request.ts","../src/providers/openai/reasoning-effort.ts","../src/providers/openai/models/gpt-5-4-nano.ts","../src/providers/openai/models/gpt-5-4.ts","../src/providers/openai/models/gpt-5-4-mini.ts","../src/core/context-engine/condition/condition.ts","../src/core/context-engine/rule/rule.ts"],"sourcesContent":["import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Context {\n\treadonly id: string\n\treadonly projectId: string\n\treadonly items: ContextItem[]\n\n\tconstructor(id: string, projectId: string, items: ContextItem[]) {\n\t\tthis.projectId = projectId\n\t\tthis.id = id\n\t\tthis.items = items\n\t}\n\n\taddItem(item: ContextItem): Context {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): Context {\n\t\tfor (const item of items) {\n\t\t\tconst itemType = item.getType()\n\t\t\tif (itemType !== \"function_call\" && itemType !== \"message\" && itemType !== \"reasoning\") {\n\t\t\t\tthrow new Error(`Invalid item type: ${itemType}`)\n\t\t\t}\n\t\t}\n\t\tthis.items.push(...items)\n\t\treturn this\n\t}\n\n\tgetItems(): ContextItem[] {\n\t\treturn this.items\n\t}\n\n\tstatic create(projectId: string): Context {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new Context(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): Context {\n\t\treturn new Context(data.id, data.projectId, data.items)\n\t}\n\n\ttoJSON(): any {\n\t\treturn this.items.map((item) => item.toJSON())\n\t}\n}\n","export abstract class ContextItem {\n\tabstract readonly type: string\n\n\tgetType(): string {\n\t\treturn this.type\n\t}\n\n\tabstract toJSON(): any\n}\n","export abstract class Content {\n\tabstract readonly type: string\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class InputText extends Content {\n\treadonly type = \"input_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic create(text: string): InputText {\n\t\treturn new InputText(text)\n\t}\n\n\tstatic rehydrate(data: { text: string }): InputText {\n\t\treturn new InputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class UserMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"user\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic create(text: string): UserMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class DeveloperMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"developer\"\n\treadonly content: InputText\n\n\tprivate constructor(content: InputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n\n\tstatic create(text: string): DeveloperMessage {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessage(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessage {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessage(content)\n\t}\n}\n","import { Content } from \"@core/context-runtime/content\"\n\nexport class OutputText extends Content {\n\treadonly type = \"output_text\"\n\n\tprivate constructor(public readonly text: string) {\n\t\tsuper()\n\t}\n\n\tstatic rehydrate(data: { text: string }): OutputText {\n\t\treturn new OutputText(data.text)\n\t}\n\n\ttoJSON(): any[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: this.type,\n\t\t\t\ttext: this.text,\n\t\t\t},\n\t\t]\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { OutputText } from \"@core/context-runtime/content/output-text\"\n\nexport class ModelMessage extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"assistant\"\n\treadonly content: OutputText\n\n\tprivate constructor(content: OutputText) {\n\t\tsuper()\n\t\tthis.content = content\n\t}\n\n\tstatic rehydrate(data: { text: string }): ModelMessage {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessage(content)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\trole: this.role,\n\t\t\tcontent: this.content.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class FunctionCall extends ContextItem {\n\treadonly type = \"function_call\"\n\treadonly callId: string\n\treadonly name: string\n\treadonly args: string\n\n\tprivate constructor(callId: string, name: string, args: string) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.name = name\n\t\tthis.args = args\n\t}\n\n\tstatic rehydrate(data: { callId: string; name: string; args: string }): FunctionCall {\n\t\treturn new FunctionCall(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@core/context-runtime/content/input-text\"\nimport { SummaryText } from \"@core/context-runtime/content/summary-text\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\n\nexport class Reasoning extends ContextItem {\n\treadonly type = \"reasoning\"\n\treadonly content: InputText | undefined\n\treadonly encryptedContent: string | undefined\n\treadonly summary: SummaryText[]\n\n\tprivate constructor(\n\t\tcontent: InputText | undefined,\n\t\tencryptedContent?: string | undefined,\n\t\tsummary: SummaryText[] = [],\n\t) {\n\t\tsuper()\n\t\tthis.content = content\n\t\tthis.encryptedContent = encryptedContent\n\t\tthis.summary = summary\n\t}\n\n\tstatic rehydrate(data: {\n\t\tcontent: InputText | undefined\n\t\tencryptedContent: string | undefined\n\t\tsummary: SummaryText[]\n\t}): Reasoning {\n\t\treturn new Reasoning(data.content, data.encryptedContent, data.summary)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcontent: this.content?.toJSON(),\n\t\t\tencryptedContent: this.encryptedContent,\n\t\t\tsummary: this.summary.map((s) => s.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@core/context-runtime/context-item\"\nimport { InputText } from \"@core/context-runtime/content/input-text\"\n\nexport class FunctionCallOutput extends ContextItem {\n\treadonly type = \"function_call_output\"\n\treadonly callId: string\n\treadonly output: InputText[]\n\n\tprivate constructor(callId: string, output: InputText[]) {\n\t\tsuper()\n\t\tthis.callId = callId\n\t\tthis.output = output\n\t}\n\n\tstatic create(callId: string, output: InputText[]): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(callId, output)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText[] }): FunctionCallOutput {\n\t\treturn new FunctionCallOutput(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcallId: this.callId,\n\t\t\toutput: this.output.map((o) => o.toJSON()),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"src\"\nimport { TokenUsage } from \"./token-usage\"\n\nexport class InferenceResponse {\n\treadonly contextItems: ContextItem[]\n\treadonly tokenUsage?: TokenUsage\n\n\tconstructor(contextItems: ContextItem[], tokenUsage: TokenUsage | undefined) {\n\t\tthis.contextItems = contextItems\n\t\tthis.tokenUsage = tokenUsage\n\t}\n}\n","export class InputTokenDetails {\n\treadonly cached_tokens: number\n\n\tconstructor(cached_tokens: number) {\n\t\tthis.cached_tokens = cached_tokens\n\t}\n}\n\nexport class OutputTokenDetails {\n\treadonly reasoning_tokens: number\n\n\tconstructor(reasoning_tokens: number) {\n\t\tthis.reasoning_tokens = reasoning_tokens\n\t}\n}\n\nexport class TokenUsage {\n\treadonly inputTokens: number\n\treadonly outputTokens: number\n\treadonly totalTokens: number\n\treadonly inputTokenDetails: InputTokenDetails\n\treadonly outputTokenDetails: OutputTokenDetails\n\n\tconstructor(\n\t\tinputTokens: number,\n\t\toutputTokens: number,\n\t\ttotalTokens: number,\n\t\tinputTokenDetails: InputTokenDetails,\n\t\toutputTokenDetails: OutputTokenDetails,\n\t) {\n\t\tthis.inputTokens = inputTokens\n\t\tthis.outputTokens = outputTokens\n\t\tthis.totalTokens = totalTokens\n\t\tthis.inputTokenDetails = inputTokenDetails\n\t\tthis.outputTokenDetails = outputTokenDetails\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { ContextItem } from \"@core/context-runtime/context-item\"\nimport { FunctionCall } from \"@core/context-runtime/output/function-call\"\nimport { ModelMessage } from \"@core/context-runtime/output/model-message\"\nimport { Reasoning } from \"@core/context-runtime/output/reasoning\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\nimport { InferenceResponse } from \"@core/generative-model/inference-response\"\nimport { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@core/generative-model/token-usage\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<InferenceResponse> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\n\t\tconst specification = inferenceRequest.model.specification\n\n\t\tlet request: any = {\n\t\t\tmodel: specification.name,\n\t\t\tinput: input,\n\t\t}\n\n\t\tif (specification.supportFunctionCalling && inferenceRequest.model.getTools().length > 0) {\n\t\t\trequest.tools = inferenceRequest.model.getTools().map((tool) => {\n\t\t\t\treturn {\n\t\t\t\t\ttype: tool.type,\n\t\t\t\t\tname: tool.name,\n\t\t\t\t\tdescription: tool.description,\n\t\t\t\t\tparameters: tool.parameters,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (specification.supportReasoningEffort) {\n\t\t\trequest.reasoning = {\n\t\t\t\teffort: inferenceRequest.model.getReasoningEffort(),\n\t\t\t}\n\t\t}\n\n\t\tconst response = await this.client.responses.create(request)\n\n\t\tconst contextItems = this.extractContextItems(response)\n\t\tconst tokenUsage = this.extractTokenUsage(response)\n\t\treturn new InferenceResponse(contextItems, tokenUsage)\n\t}\n\n\textractTokenUsage(response: OpenAI.Responses.Response): TokenUsage | undefined {\n\t\tif (!response.usage) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn new TokenUsage(\n\t\t\tresponse.usage.input_tokens,\n\t\t\tresponse.usage.output_tokens,\n\t\t\tresponse.usage.total_tokens,\n\t\t\tnew InputTokenDetails(response.usage.input_tokens_details.cached_tokens),\n\t\t\tnew OutputTokenDetails(response.usage.output_tokens_details.reasoning_tokens),\n\t\t)\n\t}\n\n\tmapContextToRequest(context: Context): any[] {\n\t\treturn context.getItems().map((item) => item.toJSON())\n\t}\n\n\textractContextItems(response: any): ContextItem[] {\n\t\treturn response.output.map((item: any) => {\n\t\t\tif (item.type === \"message\" && item.status === \"completed\") {\n\t\t\t\treturn ModelMessage.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\" && item.status === \"completed\") {\n\t\t\t\treturn FunctionCall.rehydrate(item)\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Context } from \"@core/context-runtime/context\"\nimport { GenerativeModel } from \"./generative-model\"\nimport { ReasoningEffort } from \"./capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"./capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: Context\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: Context) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\n\nexport type OpenAIReasoningEffortType = \"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\"\n\nexport class OpenAIReasoningEffort implements ReasoningEffort<OpenAIReasoningEffortType> {\n\treasoningEffort: OpenAIReasoningEffortType\n\n\tconstructor(reasoningEffort: OpenAIReasoningEffortType) {\n\t\tthis.reasoningEffort = reasoningEffort\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.reasoningEffort = effort\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\tif (!this.reasoningEffort) {\n\t\t\tthrow new Error(\"Reasoning effort not supported\")\n\t\t}\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Nano implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-nano\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 1_050_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@core/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\nimport { Tool } from \"@core/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@openai/reasoning-effort\"\n\nexport class Gpt54Mini implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.4-mini\",\n\t\tsupportReasoningEffort: true,\n\t\tdefaultReasoningEffort: \"none\" as OpenAIReasoningEffortType,\n\t\tsupportStreaming: true,\n\t\tcontextWindowSize: 400_000,\n\t\tmaxOutputTokens: 128_000,\n\t\tsupportFunctionCalling: true,\n\t}\n\n\tprivate tools: Tool[] = []\n\n\tprivate readonly effort: OpenAIReasoningEffort = new OpenAIReasoningEffort(\n\t\tthis.specification.defaultReasoningEffort,\n\t)\n\n\tsetReasoningEffort(effort: OpenAIReasoningEffortType): void {\n\t\tthis.effort.setReasoningEffort(effort)\n\t}\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n\n\tsetTools(tools: Tool[]): void {\n\t\tthis.tools = tools\n\t}\n\n\tgetTools(): Tool[] {\n\t\treturn this.tools\n\t}\n}\n","export interface Condition<T> {\n\tisSatisfiedBy(candidate: T): boolean\n\tand(other: Condition<T>): Condition<T>\n\tor(other: Condition<T>): Condition<T>\n\tnot(): Condition<T>\n}\n\nexport abstract class BaseCondition<T> implements Condition<T> {\n\tabstract isSatisfiedBy(candidate: T): boolean\n\n\tand(other: Condition<T>): Condition<T> {\n\t\treturn new AndCondition(this, other)\n\t}\n\n\tor(other: Condition<T>): Condition<T> {\n\t\treturn new OrCondition(this, other)\n\t}\n\n\tnot(): Condition<T> {\n\t\treturn new NotCondition(this)\n\t}\n}\n\nexport class AndCondition<T> extends BaseCondition<T> {\n\tconstructor(\n\t\tprivate readonly left: Condition<T>,\n\t\tprivate readonly right: Condition<T>,\n\t) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate)\n\t}\n}\n\nexport class NotCondition<T> extends BaseCondition<T> {\n\tconstructor(private readonly condition: Condition<T>) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn !this.condition.isSatisfiedBy(candidate)\n\t}\n}\n\nexport class OrCondition<T> extends BaseCondition<T> {\n\tconstructor(\n\t\tprivate readonly left: Condition<T>,\n\t\tprivate readonly right: Condition<T>,\n\t) {\n\t\tsuper()\n\t}\n\n\tisSatisfiedBy(candidate: T): boolean {\n\t\treturn this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate)\n\t}\n}\n","import { Condition } from \"@core/context-engine/condition/condition\"\n\nexport interface Action<T> {\n\tapply(candidate: T): T\n}\n\nexport class Rule<T> {\n\tprivate condition: Condition<T>\n\tprivate action: Action<T>\n\n\tconstructor({ when, then }: { when: Condition<T>; then: Action<T> }) {\n\t\tthis.condition = when\t\n\t\tthis.action = then\n\t}\n\n\tapply(candidate: T): T {\n\t\tif (this.condition.isSatisfiedBy(candidate)) {\n\t\t\treturn this.action.apply(candidate)\n\t\t}\n\t\treturn candidate\n\t}\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mozaik-ai/core",
3
- "version": "2.8.0",
3
+ "version": "2.10.0",
4
4
  "description": "A TypeScript library for building AI agents",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",