@mozaik-ai/core 2.3.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.d.mts +22 -13
- package/dist/index.d.ts +22 -13
- package/dist/index.js +119 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +119 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,20 +93,20 @@ This is a minimal end-to-end example that:
|
|
|
93
93
|
- stores/restores the context using a repository
|
|
94
94
|
|
|
95
95
|
```ts
|
|
96
|
-
const contextRepository = new InMemoryContextRepository()
|
|
97
|
-
|
|
98
96
|
const message = UserMessage.create("Tell me a joke about birds")
|
|
99
97
|
const developerMessage = DeveloperMessage.create(
|
|
100
98
|
"You are a joke teller. You will be given a joke and you will need to tell it to the user.",
|
|
101
99
|
)
|
|
100
|
+
|
|
102
101
|
const projectId = `pr-${crypto.randomUUID()}`
|
|
102
|
+
const contextRepository = new InMemoryContextRepository()
|
|
103
103
|
const context = Context.create(projectId).addItem(developerMessage).addItem(message)
|
|
104
104
|
|
|
105
105
|
await contextRepository.save(context)
|
|
106
106
|
|
|
107
|
-
const
|
|
108
|
-
const newContextItems = await
|
|
109
|
-
context.
|
|
107
|
+
const openresponses = new OpenAIResponses()
|
|
108
|
+
const newContextItems = await openresponses.infer(gpt54, context)
|
|
109
|
+
context.applyModelOutput(newContextItems)
|
|
110
110
|
|
|
111
111
|
await contextRepository.save(context)
|
|
112
112
|
const restoredContexts = await contextRepository.getByProjectId(projectId)
|
package/dist/index.d.mts
CHANGED
|
@@ -105,7 +105,7 @@ declare class SummaryText extends Content {
|
|
|
105
105
|
toJSON(): Record<string, any>;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
declare class Reasoning
|
|
108
|
+
declare class Reasoning extends ContextItem {
|
|
109
109
|
readonly type = "reasoning";
|
|
110
110
|
readonly content: InputText | undefined;
|
|
111
111
|
readonly encryptedContent: string | undefined;
|
|
@@ -115,12 +115,17 @@ declare class Reasoning$1 extends ContextItem {
|
|
|
115
115
|
content: InputText | undefined;
|
|
116
116
|
encryptedContent: string | undefined;
|
|
117
117
|
summary: SummaryText[];
|
|
118
|
-
}): Reasoning
|
|
118
|
+
}): Reasoning;
|
|
119
119
|
toJSON(): any;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
declare abstract class Capability {
|
|
123
|
+
abstract readonly capability: string;
|
|
124
|
+
}
|
|
125
|
+
|
|
122
126
|
interface GenerativeModel<Id extends string> {
|
|
123
127
|
readonly id: Id;
|
|
128
|
+
capabilities: Capability[];
|
|
124
129
|
}
|
|
125
130
|
|
|
126
131
|
declare class FunctionCallOutput extends ContextItem {
|
|
@@ -142,24 +147,28 @@ interface ContextRepository {
|
|
|
142
147
|
getByProjectId(projectId: string): Promise<Context[]>;
|
|
143
148
|
}
|
|
144
149
|
|
|
145
|
-
|
|
146
|
-
|
|
150
|
+
declare class InferenceRequest {
|
|
151
|
+
readonly model: GenerativeModel<string>;
|
|
152
|
+
readonly context: Context;
|
|
153
|
+
constructor(model: GenerativeModel<string>, context: Context);
|
|
147
154
|
}
|
|
148
155
|
|
|
149
|
-
interface
|
|
150
|
-
|
|
151
|
-
readonly reasoningEfforts: readonly Effort[];
|
|
156
|
+
interface ModelRuntime {
|
|
157
|
+
infer(request: InferenceRequest): Promise<ContextItem[]>;
|
|
152
158
|
}
|
|
153
159
|
|
|
154
|
-
|
|
155
|
-
declare const gpt54: GPT54;
|
|
156
|
-
|
|
157
|
-
declare class OpenAIResponses implements ModelRuntime<"gpt-5.4"> {
|
|
160
|
+
declare class OpenAIResponses implements ModelRuntime {
|
|
158
161
|
private readonly client;
|
|
159
162
|
constructor();
|
|
160
|
-
infer(
|
|
163
|
+
infer(inferenceRequest: InferenceRequest): Promise<ContextItem[]>;
|
|
161
164
|
mapContextToRequest(context: Context): any[];
|
|
162
165
|
extractContextItems(response: any): ContextItem[];
|
|
163
166
|
}
|
|
164
167
|
|
|
165
|
-
|
|
168
|
+
declare class GPT54 implements GenerativeModel<"gpt-5.4"> {
|
|
169
|
+
readonly id = "gpt-5.4";
|
|
170
|
+
readonly capabilities: Capability[];
|
|
171
|
+
}
|
|
172
|
+
declare const gpt54: GPT54;
|
|
173
|
+
|
|
174
|
+
export { Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, ModelMessage, OpenAIResponses, Reasoning, UserMessage, gpt54 };
|
package/dist/index.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ declare class SummaryText extends Content {
|
|
|
105
105
|
toJSON(): Record<string, any>;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
declare class Reasoning
|
|
108
|
+
declare class Reasoning extends ContextItem {
|
|
109
109
|
readonly type = "reasoning";
|
|
110
110
|
readonly content: InputText | undefined;
|
|
111
111
|
readonly encryptedContent: string | undefined;
|
|
@@ -115,12 +115,17 @@ declare class Reasoning$1 extends ContextItem {
|
|
|
115
115
|
content: InputText | undefined;
|
|
116
116
|
encryptedContent: string | undefined;
|
|
117
117
|
summary: SummaryText[];
|
|
118
|
-
}): Reasoning
|
|
118
|
+
}): Reasoning;
|
|
119
119
|
toJSON(): any;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
declare abstract class Capability {
|
|
123
|
+
abstract readonly capability: string;
|
|
124
|
+
}
|
|
125
|
+
|
|
122
126
|
interface GenerativeModel<Id extends string> {
|
|
123
127
|
readonly id: Id;
|
|
128
|
+
capabilities: Capability[];
|
|
124
129
|
}
|
|
125
130
|
|
|
126
131
|
declare class FunctionCallOutput extends ContextItem {
|
|
@@ -142,24 +147,28 @@ interface ContextRepository {
|
|
|
142
147
|
getByProjectId(projectId: string): Promise<Context[]>;
|
|
143
148
|
}
|
|
144
149
|
|
|
145
|
-
|
|
146
|
-
|
|
150
|
+
declare class InferenceRequest {
|
|
151
|
+
readonly model: GenerativeModel<string>;
|
|
152
|
+
readonly context: Context;
|
|
153
|
+
constructor(model: GenerativeModel<string>, context: Context);
|
|
147
154
|
}
|
|
148
155
|
|
|
149
|
-
interface
|
|
150
|
-
|
|
151
|
-
readonly reasoningEfforts: readonly Effort[];
|
|
156
|
+
interface ModelRuntime {
|
|
157
|
+
infer(request: InferenceRequest): Promise<ContextItem[]>;
|
|
152
158
|
}
|
|
153
159
|
|
|
154
|
-
|
|
155
|
-
declare const gpt54: GPT54;
|
|
156
|
-
|
|
157
|
-
declare class OpenAIResponses implements ModelRuntime<"gpt-5.4"> {
|
|
160
|
+
declare class OpenAIResponses implements ModelRuntime {
|
|
158
161
|
private readonly client;
|
|
159
162
|
constructor();
|
|
160
|
-
infer(
|
|
163
|
+
infer(inferenceRequest: InferenceRequest): Promise<ContextItem[]>;
|
|
161
164
|
mapContextToRequest(context: Context): any[];
|
|
162
165
|
extractContextItems(response: any): ContextItem[];
|
|
163
166
|
}
|
|
164
167
|
|
|
165
|
-
|
|
168
|
+
declare class GPT54 implements GenerativeModel<"gpt-5.4"> {
|
|
169
|
+
readonly id = "gpt-5.4";
|
|
170
|
+
readonly capabilities: Capability[];
|
|
171
|
+
}
|
|
172
|
+
declare const gpt54: GPT54;
|
|
173
|
+
|
|
174
|
+
export { Context, ContextItem, type ContextRepository, DeveloperMessage, FunctionCall, FunctionCallOutput, type GenerativeModel, ModelMessage, OpenAIResponses, Reasoning, UserMessage, gpt54 };
|
package/dist/index.js
CHANGED
|
@@ -272,17 +272,125 @@ var FunctionCallOutput = class _FunctionCallOutput extends ContextItem {
|
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
|
|
275
|
+
// src/core/context-engine/condition/and-condition.ts
|
|
276
|
+
var AndCondition = class extends BaseCondition {
|
|
277
|
+
constructor(left, right) {
|
|
278
|
+
super();
|
|
279
|
+
this.left = left;
|
|
280
|
+
this.right = right;
|
|
281
|
+
}
|
|
282
|
+
isSatisfiedBy(candidate) {
|
|
283
|
+
return this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate);
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
// src/core/context-engine/condition/not-condition.ts
|
|
288
|
+
var NotCondition = class extends BaseCondition {
|
|
289
|
+
constructor(condition) {
|
|
290
|
+
super();
|
|
291
|
+
this.condition = condition;
|
|
292
|
+
}
|
|
293
|
+
isSatisfiedBy(candidate) {
|
|
294
|
+
return !this.condition.isSatisfiedBy(candidate);
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
// src/core/context-engine/condition/or-condition.ts
|
|
299
|
+
var OrCondition = class extends BaseCondition {
|
|
300
|
+
constructor(left, right) {
|
|
301
|
+
super();
|
|
302
|
+
this.left = left;
|
|
303
|
+
this.right = right;
|
|
304
|
+
}
|
|
305
|
+
isSatisfiedBy(candidate) {
|
|
306
|
+
return this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate);
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// src/core/context-engine/condition/base-condition.ts
|
|
311
|
+
var BaseCondition = class {
|
|
312
|
+
and(other) {
|
|
313
|
+
return new AndCondition(this, other);
|
|
314
|
+
}
|
|
315
|
+
or(other) {
|
|
316
|
+
return new OrCondition(this, other);
|
|
317
|
+
}
|
|
318
|
+
not() {
|
|
319
|
+
return new NotCondition(this);
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
// src/core/context-engine/rule/rule.ts
|
|
324
|
+
var Rule = class {
|
|
325
|
+
constructor({ when, then }) {
|
|
326
|
+
this.condition = when;
|
|
327
|
+
this.action = then;
|
|
328
|
+
}
|
|
329
|
+
apply(candidate) {
|
|
330
|
+
if (this.condition.isSatisfiedBy(candidate)) {
|
|
331
|
+
return this.action.apply(candidate);
|
|
332
|
+
}
|
|
333
|
+
throw new Error("Condition not satisfied");
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
// src/core/generative-model/capabilities/capability.ts
|
|
338
|
+
var Capability = class {
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
// src/core/generative-model/capabilities/reasoning-effort.ts
|
|
342
|
+
var ReasoningEffort = class extends Capability {
|
|
343
|
+
constructor(supportedEfforts, defaultEffort) {
|
|
344
|
+
super();
|
|
345
|
+
this.capability = "reasoning-effort";
|
|
346
|
+
this.supportedEfforts = supportedEfforts;
|
|
347
|
+
this.reasoningEffort = defaultEffort;
|
|
348
|
+
}
|
|
349
|
+
setReasoningEffort(effort) {
|
|
350
|
+
if (!this.supportedEfforts.includes(effort)) {
|
|
351
|
+
throw new Error(`Invalid reasoning effort: ${effort}`);
|
|
352
|
+
}
|
|
353
|
+
this.reasoningEffort = effort;
|
|
354
|
+
}
|
|
355
|
+
getReasoningEffort() {
|
|
356
|
+
return this.reasoningEffort;
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
// src/providers/openai/rules/reasoning-effort.ts
|
|
361
|
+
var ReasoningEffortSupported = class extends BaseCondition {
|
|
362
|
+
isSatisfiedBy(candidate) {
|
|
363
|
+
return candidate.model.capabilities.some((capability) => capability instanceof ReasoningEffort);
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
var GetReasoningEffort = class {
|
|
367
|
+
apply(candidate) {
|
|
368
|
+
const reasoningCapability = candidate.model.capabilities.find((capability) => capability instanceof ReasoningEffort);
|
|
369
|
+
if (reasoningCapability) {
|
|
370
|
+
return reasoningCapability.getReasoningEffort();
|
|
371
|
+
}
|
|
372
|
+
throw new Error("Reasoning capability not supported");
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
var reasoningEffortRule = new Rule({
|
|
376
|
+
when: new ReasoningEffortSupported(),
|
|
377
|
+
then: new GetReasoningEffort()
|
|
378
|
+
});
|
|
379
|
+
|
|
275
380
|
// src/providers/openai/runtime/openai-responses.ts
|
|
276
381
|
var import_openai = __toESM(require("openai"));
|
|
277
382
|
var OpenAIResponses = class {
|
|
278
383
|
constructor() {
|
|
279
384
|
this.client = new import_openai.default();
|
|
280
385
|
}
|
|
281
|
-
async infer(
|
|
282
|
-
const
|
|
386
|
+
async infer(inferenceRequest) {
|
|
387
|
+
const input = this.mapContextToRequest(inferenceRequest.context);
|
|
283
388
|
const response = await this.client.responses.create({
|
|
284
|
-
model: model.id,
|
|
285
|
-
input
|
|
389
|
+
model: inferenceRequest.model.id,
|
|
390
|
+
input,
|
|
391
|
+
reasoning: {
|
|
392
|
+
effort: reasoningEffortRule.apply(inferenceRequest)
|
|
393
|
+
}
|
|
286
394
|
});
|
|
287
395
|
return this.extractContextItems(response);
|
|
288
396
|
}
|
|
@@ -305,11 +413,14 @@ var OpenAIResponses = class {
|
|
|
305
413
|
};
|
|
306
414
|
|
|
307
415
|
// src/providers/openai/models/gpt-5-4.ts
|
|
308
|
-
var
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
416
|
+
var openaiReasoningEffort = new ReasoningEffort(["xhigh", "high", "medium", "low", "none"], "medium");
|
|
417
|
+
var GPT54 = class {
|
|
418
|
+
constructor() {
|
|
419
|
+
this.id = "gpt-5.4";
|
|
420
|
+
this.capabilities = [openaiReasoningEffort];
|
|
421
|
+
}
|
|
312
422
|
};
|
|
423
|
+
var gpt54 = new GPT54();
|
|
313
424
|
// Annotate the CommonJS export names for ESM import in node:
|
|
314
425
|
0 && (module.exports = {
|
|
315
426
|
Context,
|
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/providers/openai/runtime/openai-responses.ts","../src/providers/openai/models/gpt-5-4.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 { gpt54 } from \"@openai/models/gpt-5-4\"\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}\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 { 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 { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { GPT54 } from \"@openai/models/gpt-5-4\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime<\"gpt-5.4\"> {\n\tprivate readonly client: OpenAI\n\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(model: GPT54, context: Context): Promise<ContextItem[]> {\n\t\tconst request = this.mapContextToRequest(context)\n\t\tconst response = await this.client.responses.create({\n\t\t\tmodel: model.id,\n\t\t\tinput: request,\n\t\t})\n\t\treturn this.extractContextItems(response)\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\" && item.status === \"completed\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Reasoning } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\n\nexport type GPT54 = GenerativeModel<\"gpt-5.4\"> & Reasoning<\"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\">\n\nexport const gpt54: GPT54 = {\n\tid: \"gpt-5.4\",\n\treasoning: true,\n\treasoningEfforts: [\"xhigh\", \"high\", \"medium\", \"low\", \"none\"],\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/context-engine/condition/and-condition.ts","../src/core/context-engine/condition/not-condition.ts","../src/core/context-engine/condition/or-condition.ts","../src/core/context-engine/condition/base-condition.ts","../src/core/context-engine/rule/rule.ts","../src/core/generative-model/capabilities/capability.ts","../src/core/generative-model/capabilities/reasoning-effort.ts","../src/providers/openai/rules/reasoning-effort.ts","../src/providers/openai/runtime/openai-responses.ts","../src/providers/openai/models/gpt-5-4.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 { gpt54 } from \"@openai/models/gpt-5-4\"\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}\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 { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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 { AndCondition } from \"@core/context-engine/condition/and-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\nimport { NotCondition } from \"@core/context-engine/condition/not-condition\"\nimport { OrCondition } from \"@core/context-engine/condition/or-condition\"\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","import { Condition } from \"@core/context-engine/condition/condition\"\n\nexport interface Action<T, R> {\n\tapply(candidate: T): R\n}\n\nexport class Rule<T, R> {\n\tprivate condition: Condition<T>\n\tprivate action: Action<T, R>\n\n\tconstructor({ when, then }: { when: Condition<T>; then: Action<T, R> }) {\n\t\tthis.condition = when\t\n\t\tthis.action = then\n\t}\n\n\tapply(candidate: T): R {\n\t\tif (this.condition.isSatisfiedBy(candidate)) {\n\t\t\treturn this.action.apply(candidate)\n\t\t}\n\t\tthrow new Error(\"Condition not satisfied\")\n\t}\n}\n","export abstract class Capability {\n abstract readonly capability: string\n}","import { Capability } from \"./capability\"\n\nexport class ReasoningEffort<Effort extends string> extends Capability {\n\treadonly capability = \"reasoning-effort\"\n\treadonly supportedEfforts: readonly Effort[]\n\treasoningEffort: Effort\n\n\tconstructor(supportedEfforts: readonly Effort[], defaultEffort: Effort) {\n\t\tsuper()\n\t\tthis.supportedEfforts = supportedEfforts\n\t\tthis.reasoningEffort = defaultEffort\n\t}\n\n\tsetReasoningEffort(effort: Effort): void {\n\t\tif (!this.supportedEfforts.includes(effort)) {\n\t\t\tthrow new Error(`Invalid reasoning effort: ${effort}`)\n\t\t}\n\t\tthis.reasoningEffort = effort;\n\t}\n\n\tgetReasoningEffort(): Effort {\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Action, Rule } from \"@core/context-engine/rule/rule\"\nimport { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\n\nexport class ReasoningEffortSupported extends BaseCondition<InferenceRequest> {\n\tisSatisfiedBy(candidate: InferenceRequest): boolean {\n\t\treturn candidate.model.capabilities.some((capability) => capability instanceof ReasoningEffort)\n\t}\n}\n\nexport class GetReasoningEffort implements Action<InferenceRequest, \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"none\"> {\n\tapply(candidate: InferenceRequest): \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"none\" {\n\t\tconst reasoningCapability = candidate.model.capabilities.find((capability) => capability instanceof ReasoningEffort)\n\t\tif (reasoningCapability) {\n\t\t\treturn reasoningCapability.getReasoningEffort()\n\t\t}\n\t\tthrow new Error(\"Reasoning capability not supported\")\n\t}\n}\nexport const reasoningEffortRule = new Rule({\n\twhen: new ReasoningEffortSupported(),\n\tthen: new GetReasoningEffort(),\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 { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { reasoningEffortRule } from \"@openai/rules/reasoning-effort\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<ContextItem[]> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\t\tconst response = await this.client.responses.create({\n\t\t\tmodel: inferenceRequest.model.id,\n\t\t\tinput: input,\n\t\t\treasoning: {\n\t\t\t\teffort: reasoningEffortRule.apply(inferenceRequest)\n\t\t\t}\n\t\t})\n\t\treturn this.extractContextItems(response)\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\" && item.status === \"completed\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Capability } from \"@core/generative-model/capabilities/capability\"\nimport { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\n\nexport const openaiReasoningEffort = new ReasoningEffort<\"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\">([\"xhigh\", \"high\", \"medium\", \"low\", \"none\"], \"medium\")\n\nexport class GPT54 implements GenerativeModel<\"gpt-5.4\"> {\n\treadonly id = \"gpt-5.4\"\n\treadonly capabilities: Capability[] = [openaiReasoningEffort]\n}\n\nexport const gpt54 = new GPT54()"],"mappings":"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","names":["OpenAI"]}
|
package/dist/index.mjs
CHANGED
|
@@ -227,17 +227,125 @@ var FunctionCallOutput = class _FunctionCallOutput extends ContextItem {
|
|
|
227
227
|
}
|
|
228
228
|
};
|
|
229
229
|
|
|
230
|
+
// src/core/context-engine/condition/and-condition.ts
|
|
231
|
+
var AndCondition = class extends BaseCondition {
|
|
232
|
+
constructor(left, right) {
|
|
233
|
+
super();
|
|
234
|
+
this.left = left;
|
|
235
|
+
this.right = right;
|
|
236
|
+
}
|
|
237
|
+
isSatisfiedBy(candidate) {
|
|
238
|
+
return this.left.isSatisfiedBy(candidate) && this.right.isSatisfiedBy(candidate);
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
// src/core/context-engine/condition/not-condition.ts
|
|
243
|
+
var NotCondition = class extends BaseCondition {
|
|
244
|
+
constructor(condition) {
|
|
245
|
+
super();
|
|
246
|
+
this.condition = condition;
|
|
247
|
+
}
|
|
248
|
+
isSatisfiedBy(candidate) {
|
|
249
|
+
return !this.condition.isSatisfiedBy(candidate);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
// src/core/context-engine/condition/or-condition.ts
|
|
254
|
+
var OrCondition = class extends BaseCondition {
|
|
255
|
+
constructor(left, right) {
|
|
256
|
+
super();
|
|
257
|
+
this.left = left;
|
|
258
|
+
this.right = right;
|
|
259
|
+
}
|
|
260
|
+
isSatisfiedBy(candidate) {
|
|
261
|
+
return this.left.isSatisfiedBy(candidate) || this.right.isSatisfiedBy(candidate);
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
// src/core/context-engine/condition/base-condition.ts
|
|
266
|
+
var BaseCondition = class {
|
|
267
|
+
and(other) {
|
|
268
|
+
return new AndCondition(this, other);
|
|
269
|
+
}
|
|
270
|
+
or(other) {
|
|
271
|
+
return new OrCondition(this, other);
|
|
272
|
+
}
|
|
273
|
+
not() {
|
|
274
|
+
return new NotCondition(this);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// src/core/context-engine/rule/rule.ts
|
|
279
|
+
var Rule = class {
|
|
280
|
+
constructor({ when, then }) {
|
|
281
|
+
this.condition = when;
|
|
282
|
+
this.action = then;
|
|
283
|
+
}
|
|
284
|
+
apply(candidate) {
|
|
285
|
+
if (this.condition.isSatisfiedBy(candidate)) {
|
|
286
|
+
return this.action.apply(candidate);
|
|
287
|
+
}
|
|
288
|
+
throw new Error("Condition not satisfied");
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
// src/core/generative-model/capabilities/capability.ts
|
|
293
|
+
var Capability = class {
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
// src/core/generative-model/capabilities/reasoning-effort.ts
|
|
297
|
+
var ReasoningEffort = class extends Capability {
|
|
298
|
+
constructor(supportedEfforts, defaultEffort) {
|
|
299
|
+
super();
|
|
300
|
+
this.capability = "reasoning-effort";
|
|
301
|
+
this.supportedEfforts = supportedEfforts;
|
|
302
|
+
this.reasoningEffort = defaultEffort;
|
|
303
|
+
}
|
|
304
|
+
setReasoningEffort(effort) {
|
|
305
|
+
if (!this.supportedEfforts.includes(effort)) {
|
|
306
|
+
throw new Error(`Invalid reasoning effort: ${effort}`);
|
|
307
|
+
}
|
|
308
|
+
this.reasoningEffort = effort;
|
|
309
|
+
}
|
|
310
|
+
getReasoningEffort() {
|
|
311
|
+
return this.reasoningEffort;
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
// src/providers/openai/rules/reasoning-effort.ts
|
|
316
|
+
var ReasoningEffortSupported = class extends BaseCondition {
|
|
317
|
+
isSatisfiedBy(candidate) {
|
|
318
|
+
return candidate.model.capabilities.some((capability) => capability instanceof ReasoningEffort);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
var GetReasoningEffort = class {
|
|
322
|
+
apply(candidate) {
|
|
323
|
+
const reasoningCapability = candidate.model.capabilities.find((capability) => capability instanceof ReasoningEffort);
|
|
324
|
+
if (reasoningCapability) {
|
|
325
|
+
return reasoningCapability.getReasoningEffort();
|
|
326
|
+
}
|
|
327
|
+
throw new Error("Reasoning capability not supported");
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
var reasoningEffortRule = new Rule({
|
|
331
|
+
when: new ReasoningEffortSupported(),
|
|
332
|
+
then: new GetReasoningEffort()
|
|
333
|
+
});
|
|
334
|
+
|
|
230
335
|
// src/providers/openai/runtime/openai-responses.ts
|
|
231
336
|
import OpenAI from "openai";
|
|
232
337
|
var OpenAIResponses = class {
|
|
233
338
|
constructor() {
|
|
234
339
|
this.client = new OpenAI();
|
|
235
340
|
}
|
|
236
|
-
async infer(
|
|
237
|
-
const
|
|
341
|
+
async infer(inferenceRequest) {
|
|
342
|
+
const input = this.mapContextToRequest(inferenceRequest.context);
|
|
238
343
|
const response = await this.client.responses.create({
|
|
239
|
-
model: model.id,
|
|
240
|
-
input
|
|
344
|
+
model: inferenceRequest.model.id,
|
|
345
|
+
input,
|
|
346
|
+
reasoning: {
|
|
347
|
+
effort: reasoningEffortRule.apply(inferenceRequest)
|
|
348
|
+
}
|
|
241
349
|
});
|
|
242
350
|
return this.extractContextItems(response);
|
|
243
351
|
}
|
|
@@ -260,11 +368,14 @@ var OpenAIResponses = class {
|
|
|
260
368
|
};
|
|
261
369
|
|
|
262
370
|
// src/providers/openai/models/gpt-5-4.ts
|
|
263
|
-
var
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
371
|
+
var openaiReasoningEffort = new ReasoningEffort(["xhigh", "high", "medium", "low", "none"], "medium");
|
|
372
|
+
var GPT54 = class {
|
|
373
|
+
constructor() {
|
|
374
|
+
this.id = "gpt-5.4";
|
|
375
|
+
this.capabilities = [openaiReasoningEffort];
|
|
376
|
+
}
|
|
267
377
|
};
|
|
378
|
+
var gpt54 = new GPT54();
|
|
268
379
|
export {
|
|
269
380
|
Context,
|
|
270
381
|
ContextItem,
|
package/dist/index.mjs.map
CHANGED
|
@@ -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/providers/openai/runtime/openai-responses.ts","../src/providers/openai/models/gpt-5-4.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 { 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 { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { GPT54 } from \"@openai/models/gpt-5-4\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime<\"gpt-5.4\"> {\n\tprivate readonly client: OpenAI\n\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(model: GPT54, context: Context): Promise<ContextItem[]> {\n\t\tconst request = this.mapContextToRequest(context)\n\t\tconst response = await this.client.responses.create({\n\t\t\tmodel: model.id,\n\t\t\tinput: request,\n\t\t})\n\t\treturn this.extractContextItems(response)\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\" && item.status === \"completed\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Reasoning } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\n\nexport type GPT54 = GenerativeModel<\"gpt-5.4\"> & Reasoning<\"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\">\n\nexport const gpt54: GPT54 = {\n\tid: \"gpt-5.4\",\n\treasoning: true,\n\treasoningEfforts: [\"xhigh\", \"high\", \"medium\", \"low\", \"none\"],\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/context-engine/condition/and-condition.ts","../src/core/context-engine/condition/not-condition.ts","../src/core/context-engine/condition/or-condition.ts","../src/core/context-engine/condition/base-condition.ts","../src/core/context-engine/rule/rule.ts","../src/core/generative-model/capabilities/capability.ts","../src/core/generative-model/capabilities/reasoning-effort.ts","../src/providers/openai/rules/reasoning-effort.ts","../src/providers/openai/runtime/openai-responses.ts","../src/providers/openai/models/gpt-5-4.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 { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\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 { AndCondition } from \"@core/context-engine/condition/and-condition\"\nimport { Condition } from \"@core/context-engine/condition/condition\"\nimport { NotCondition } from \"@core/context-engine/condition/not-condition\"\nimport { OrCondition } from \"@core/context-engine/condition/or-condition\"\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","import { Condition } from \"@core/context-engine/condition/condition\"\n\nexport interface Action<T, R> {\n\tapply(candidate: T): R\n}\n\nexport class Rule<T, R> {\n\tprivate condition: Condition<T>\n\tprivate action: Action<T, R>\n\n\tconstructor({ when, then }: { when: Condition<T>; then: Action<T, R> }) {\n\t\tthis.condition = when\t\n\t\tthis.action = then\n\t}\n\n\tapply(candidate: T): R {\n\t\tif (this.condition.isSatisfiedBy(candidate)) {\n\t\t\treturn this.action.apply(candidate)\n\t\t}\n\t\tthrow new Error(\"Condition not satisfied\")\n\t}\n}\n","export abstract class Capability {\n abstract readonly capability: string\n}","import { Capability } from \"./capability\"\n\nexport class ReasoningEffort<Effort extends string> extends Capability {\n\treadonly capability = \"reasoning-effort\"\n\treadonly supportedEfforts: readonly Effort[]\n\treasoningEffort: Effort\n\n\tconstructor(supportedEfforts: readonly Effort[], defaultEffort: Effort) {\n\t\tsuper()\n\t\tthis.supportedEfforts = supportedEfforts\n\t\tthis.reasoningEffort = defaultEffort\n\t}\n\n\tsetReasoningEffort(effort: Effort): void {\n\t\tif (!this.supportedEfforts.includes(effort)) {\n\t\t\tthrow new Error(`Invalid reasoning effort: ${effort}`)\n\t\t}\n\t\tthis.reasoningEffort = effort;\n\t}\n\n\tgetReasoningEffort(): Effort {\n\t\treturn this.reasoningEffort\n\t}\n}\n","import { BaseCondition } from \"@core/context-engine/condition/base-condition\"\nimport { Action, Rule } from \"@core/context-engine/rule/rule\"\nimport { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { InferenceRequest } from \"@core/generative-model/inference-request\"\n\nexport class ReasoningEffortSupported extends BaseCondition<InferenceRequest> {\n\tisSatisfiedBy(candidate: InferenceRequest): boolean {\n\t\treturn candidate.model.capabilities.some((capability) => capability instanceof ReasoningEffort)\n\t}\n}\n\nexport class GetReasoningEffort implements Action<InferenceRequest, \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"none\"> {\n\tapply(candidate: InferenceRequest): \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"none\" {\n\t\tconst reasoningCapability = candidate.model.capabilities.find((capability) => capability instanceof ReasoningEffort)\n\t\tif (reasoningCapability) {\n\t\t\treturn reasoningCapability.getReasoningEffort()\n\t\t}\n\t\tthrow new Error(\"Reasoning capability not supported\")\n\t}\n}\nexport const reasoningEffortRule = new Rule({\n\twhen: new ReasoningEffortSupported(),\n\tthen: new GetReasoningEffort(),\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 { ModelRuntime } from \"@core/generative-model/runtime/model-runtime\"\nimport { reasoningEffortRule } from \"@openai/rules/reasoning-effort\"\nimport OpenAI from \"openai\"\n\nexport class OpenAIResponses implements ModelRuntime {\n\tprivate readonly client: OpenAI\n\n\tconstructor() {\n\t\tthis.client = new OpenAI()\n\t}\n\n\tasync infer(inferenceRequest: InferenceRequest): Promise<ContextItem[]> {\n\t\tconst input = this.mapContextToRequest(inferenceRequest.context)\n\t\tconst response = await this.client.responses.create({\n\t\t\tmodel: inferenceRequest.model.id,\n\t\t\tinput: input,\n\t\t\treasoning: {\n\t\t\t\teffort: reasoningEffortRule.apply(inferenceRequest)\n\t\t\t}\n\t\t})\n\t\treturn this.extractContextItems(response)\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\" && item.status === \"completed\") {\n\t\t\t\treturn Reasoning.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { Capability } from \"@core/generative-model/capabilities/capability\"\nimport { ReasoningEffort } from \"@core/generative-model/capabilities/reasoning-effort\"\nimport { GenerativeModel } from \"@core/generative-model/generative-model\"\n\nexport const openaiReasoningEffort = new ReasoningEffort<\"xhigh\" | \"high\" | \"medium\" | \"low\" | \"none\">([\"xhigh\", \"high\", \"medium\", \"low\", \"none\"], \"medium\")\n\nexport class GPT54 implements GenerativeModel<\"gpt-5.4\"> {\n\treadonly id = \"gpt-5.4\"\n\treadonly capabilities: Capability[] = [openaiReasoningEffort]\n}\n\nexport const gpt54 = new GPT54()"],"mappings":";AAEO,IAAM,UAAN,MAAM,SAAQ;AAAA,EAKpB,YAAY,IAAY,WAAmB,OAAsB;AAChE,SAAK,YAAY;AACjB,SAAK,KAAK;AACV,SAAK,QAAQ;AAAA,EACd;AAAA,EAEA,QAAQ,MAA4B;AACnC,SAAK,MAAM,KAAK,IAAI;AACpB,WAAO;AAAA,EACR;AAAA,EAEA,iBAAiB,OAA+B;AAC/C,eAAW,QAAQ,OAAO;AACzB,YAAM,WAAW,KAAK,QAAQ;AAC9B,UAAI,aAAa,mBAAmB,aAAa,aAAa,aAAa,aAAa;AACvF,cAAM,IAAI,MAAM,sBAAsB,QAAQ,EAAE;AAAA,MACjD;AAAA,IACD;AACA,SAAK,MAAM,KAAK,GAAG,KAAK;AACxB,WAAO;AAAA,EACR;AAAA,EAEA,WAA0B;AACzB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,OAAO,OAAO,WAA4B;AACzC,UAAM,KAAK,OAAO,WAAW;AAC7B,WAAO,IAAI,SAAQ,IAAI,WAAW,CAAC,CAAC;AAAA,EACrC;AAAA,EAEA,OAAO,UAAU,MAAwE;AACxF,WAAO,IAAI,SAAQ,KAAK,IAAI,KAAK,WAAW,KAAK,KAAK;AAAA,EACvD;AAAA,EAEA,SAAc;AACb,WAAO,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;AAAA,EAC9C;AACD;;;AC7CO,IAAe,cAAf,MAA2B;AAAA,EAGjC,UAAkB;AACjB,WAAO,KAAK;AAAA,EACb;AAGD;;;ACRO,IAAe,UAAf,MAAuB;AAE9B;;;ACAO,IAAM,YAAN,MAAM,mBAAkB,QAAQ;AAAA,EAG9B,YAA4B,MAAc;AACjD,UAAM;AAD6B;AAFpC,SAAS,OAAO;AAAA,EAIhB;AAAA,EAEA,OAAO,OAAO,MAAyB;AACtC,WAAO,IAAI,WAAU,IAAI;AAAA,EAC1B;AAAA,EAEA,OAAO,UAAU,MAAmC;AACnD,WAAO,IAAI,WAAU,KAAK,IAAI;AAAA,EAC/B;AAAA,EAEA,SAAgB;AACf,WAAO;AAAA,MACN;AAAA,QACC,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AACD;;;ACtBO,IAAM,cAAN,MAAM,qBAAoB,YAAY;AAAA,EAKpC,YAAY,SAAoB;AACvC,UAAM;AALP,SAAS,OAAO;AAChB,SAAS,OAAO;AAKf,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,OAAO,OAAO,MAA2B;AACxC,UAAM,UAAU,UAAU,OAAO,IAAI;AACrC,WAAO,IAAI,aAAY,OAAO;AAAA,EAC/B;AAAA,EAEA,OAAO,UAAU,MAAqC;AACrD,UAAM,UAAU,UAAU,UAAU,IAAI;AACxC,WAAO,IAAI,aAAY,OAAO;AAAA,EAC/B;AAAA,EAEA,SAAc;AACb,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK,QAAQ,OAAO;AAAA,IAC9B;AAAA,EACD;AACD;;;AC3BO,IAAM,mBAAN,MAAM,0BAAyB,YAAY;AAAA,EAKzC,YAAY,SAAoB;AACvC,UAAM;AALP,SAAS,OAAO;AAChB,SAAS,OAAO;AAKf,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,SAAc;AACb,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK,QAAQ,OAAO;AAAA,IAC9B;AAAA,EACD;AAAA,EAEA,OAAO,OAAO,MAAgC;AAC7C,UAAM,UAAU,UAAU,OAAO,IAAI;AACrC,WAAO,IAAI,kBAAiB,OAAO;AAAA,EACpC;AAAA,EAEA,OAAO,UAAU,MAA0C;AAC1D,UAAM,UAAU,UAAU,UAAU,IAAI;AACxC,WAAO,IAAI,kBAAiB,OAAO;AAAA,EACpC;AACD;;;AC5BO,IAAM,aAAN,MAAM,oBAAmB,QAAQ;AAAA,EAG/B,YAA4B,MAAc;AACjD,UAAM;AAD6B;AAFpC,SAAS,OAAO;AAAA,EAIhB;AAAA,EAEA,OAAO,UAAU,MAAoC;AACpD,WAAO,IAAI,YAAW,KAAK,IAAI;AAAA,EAChC;AAAA,EAEA,SAAgB;AACf,WAAO;AAAA,MACN;AAAA,QACC,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AACD;;;AClBO,IAAM,eAAN,MAAM,sBAAqB,YAAY;AAAA,EAKrC,YAAY,SAAqB;AACxC,UAAM;AALP,SAAS,OAAO;AAChB,SAAS,OAAO;AAKf,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,OAAO,UAAU,MAAsC;AACtD,UAAM,UAAU,WAAW,UAAU,IAAI;AACzC,WAAO,IAAI,cAAa,OAAO;AAAA,EAChC;AAAA,EAEA,SAAc;AACb,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK,QAAQ,OAAO;AAAA,IAC9B;AAAA,EACD;AACD;;;ACvBO,IAAM,eAAN,MAAM,sBAAqB,YAAY;AAAA,EAMrC,YAAY,QAAgB,MAAc,MAAc;AAC/D,UAAM;AANP,SAAS,OAAO;AAOf,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,OAAO;AAAA,EACb;AAAA,EAEA,OAAO,UAAU,MAAoE;AACpF,WAAO,IAAI,cAAa,KAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,EAC1D;AAAA,EAEA,SAAc;AACb,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,WAAW,KAAK;AAAA,IACjB;AAAA,EACD;AACD;;;ACvBO,IAAM,YAAN,MAAM,mBAAkB,YAAY;AAAA,EAMlC,YACP,SACA,kBACA,UAAyB,CAAC,GACzB;AACD,UAAM;AAVP,SAAS,OAAO;AAWf,SAAK,UAAU;AACf,SAAK,mBAAmB;AACxB,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,OAAO,UAAU,MAIH;AACb,WAAO,IAAI,WAAU,KAAK,SAAS,KAAK,kBAAkB,KAAK,OAAO;AAAA,EACvE;AAAA,EAEA,SAAc;AA7Bf;AA8BE,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,UAAS,UAAK,YAAL,mBAAc;AAAA,MACvB,kBAAkB,KAAK;AAAA,MACvB,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AAAA,IAC5C;AAAA,EACD;AACD;;;AClCO,IAAM,qBAAN,MAAM,4BAA2B,YAAY;AAAA,EAK3C,YAAY,QAAgB,QAAqB;AACxD,UAAM;AALP,SAAS,OAAO;AAMf,SAAK,SAAS;AACd,SAAK,SAAS;AAAA,EACf;AAAA,EAEA,OAAO,OAAO,QAAgB,QAAyC;AACtE,WAAO,IAAI,oBAAmB,QAAQ,MAAM;AAAA,EAC7C;AAAA,EAEA,OAAO,UAAU,MAAmE;AACnF,WAAO,IAAI,oBAAmB,KAAK,QAAQ,KAAK,MAAM;AAAA,EACvD;AAAA,EAEA,SAAc;AACb,WAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AAAA,IAC1C;AAAA,EACD;AACD;;;AC1BO,IAAM,eAAN,cAA8B,cAAiB;AAAA,EACrD,YACkB,MACA,OAChB;AACD,UAAM;AAHW;AACA;AAAA,EAGlB;AAAA,EAEA,cAAc,WAAuB;AACpC,WAAO,KAAK,KAAK,cAAc,SAAS,KAAK,KAAK,MAAM,cAAc,SAAS;AAAA,EAChF;AACD;;;ACXO,IAAM,eAAN,cAA8B,cAAiB;AAAA,EACrD,YAA6B,WAAyB;AACrD,UAAM;AADsB;AAAA,EAE7B;AAAA,EAEA,cAAc,WAAuB;AACpC,WAAO,CAAC,KAAK,UAAU,cAAc,SAAS;AAAA,EAC/C;AACD;;;ACRO,IAAM,cAAN,cAA6B,cAAiB;AAAA,EACpD,YACkB,MACA,OAChB;AACD,UAAM;AAHW;AACA;AAAA,EAGlB;AAAA,EAEA,cAAc,WAAuB;AACpC,WAAO,KAAK,KAAK,cAAc,SAAS,KAAK,KAAK,MAAM,cAAc,SAAS;AAAA,EAChF;AACD;;;ACTO,IAAe,gBAAf,MAAwD;AAAA,EAG9D,IAAI,OAAmC;AACtC,WAAO,IAAI,aAAa,MAAM,KAAK;AAAA,EACpC;AAAA,EAEA,GAAG,OAAmC;AACrC,WAAO,IAAI,YAAY,MAAM,KAAK;AAAA,EACnC;AAAA,EAEA,MAAoB;AACnB,WAAO,IAAI,aAAa,IAAI;AAAA,EAC7B;AACD;;;ACbO,IAAM,OAAN,MAAiB;AAAA,EAIvB,YAAY,EAAE,MAAM,KAAK,GAA+C;AACvE,SAAK,YAAY;AACjB,SAAK,SAAS;AAAA,EACf;AAAA,EAEA,MAAM,WAAiB;AACtB,QAAI,KAAK,UAAU,cAAc,SAAS,GAAG;AAC5C,aAAO,KAAK,OAAO,MAAM,SAAS;AAAA,IACnC;AACA,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AACD;;;ACrBO,IAAe,aAAf,MAA0B;AAEjC;;;ACAO,IAAM,kBAAN,cAAqD,WAAW;AAAA,EAKtE,YAAY,kBAAqC,eAAuB;AACvE,UAAM;AALP,SAAS,aAAa;AAMrB,SAAK,mBAAmB;AACxB,SAAK,kBAAkB;AAAA,EACxB;AAAA,EAEA,mBAAmB,QAAsB;AACxC,QAAI,CAAC,KAAK,iBAAiB,SAAS,MAAM,GAAG;AAC5C,YAAM,IAAI,MAAM,6BAA6B,MAAM,EAAE;AAAA,IACtD;AACA,SAAK,kBAAkB;AAAA,EACxB;AAAA,EAEA,qBAA6B;AAC5B,WAAO,KAAK;AAAA,EACb;AACD;;;AClBO,IAAM,2BAAN,cAAuC,cAAgC;AAAA,EAC7E,cAAc,WAAsC;AACnD,WAAO,UAAU,MAAM,aAAa,KAAK,CAAC,eAAe,sBAAsB,eAAe;AAAA,EAC/F;AACD;AAEO,IAAM,qBAAN,MAA2G;AAAA,EACjH,MAAM,WAA2E;AAChF,UAAM,sBAAsB,UAAU,MAAM,aAAa,KAAK,CAAC,eAAe,sBAAsB,eAAe;AACnH,QAAI,qBAAqB;AACxB,aAAO,oBAAoB,mBAAmB;AAAA,IAC/C;AACA,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACrD;AACD;AACO,IAAM,sBAAsB,IAAI,KAAK;AAAA,EAC3C,MAAM,IAAI,yBAAyB;AAAA,EACnC,MAAM,IAAI,mBAAmB;AAC9B,CAAC;;;ACfD,OAAO,YAAY;AAEZ,IAAM,kBAAN,MAA8C;AAAA,EAGpD,cAAc;AACb,SAAK,SAAS,IAAI,OAAO;AAAA,EAC1B;AAAA,EAEA,MAAM,MAAM,kBAA4D;AACvE,UAAM,QAAQ,KAAK,oBAAoB,iBAAiB,OAAO;AAC/D,UAAM,WAAW,MAAM,KAAK,OAAO,UAAU,OAAO;AAAA,MACnD,OAAO,iBAAiB,MAAM;AAAA,MAC9B;AAAA,MACA,WAAW;AAAA,QACV,QAAQ,oBAAoB,MAAM,gBAAgB;AAAA,MACnD;AAAA,IACD,CAAC;AACD,WAAO,KAAK,oBAAoB,QAAQ;AAAA,EACzC;AAAA,EAEA,oBAAoB,SAAyB;AAC5C,WAAO,QAAQ,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;AAAA,EACtD;AAAA,EAEA,oBAAoB,UAA8B;AACjD,WAAO,SAAS,OAAO,IAAI,CAAC,SAAc;AACzC,UAAI,KAAK,SAAS,aAAa,KAAK,WAAW,aAAa;AAC3D,eAAO,aAAa,UAAU,KAAK,QAAQ,CAAC,CAAqB;AAAA,MAClE;AACA,UAAI,KAAK,SAAS,mBAAmB,KAAK,WAAW,aAAa;AACjE,eAAO,aAAa,UAAU,IAAI;AAAA,MACnC;AACA,UAAI,KAAK,SAAS,eAAe,KAAK,WAAW,aAAa;AAC7D,eAAO,UAAU,UAAU,IAAI;AAAA,MAChC;AAAA,IACD,CAAC;AAAA,EACF;AACD;;;AC1CO,IAAM,wBAAwB,IAAI,gBAA8D,CAAC,SAAS,QAAQ,UAAU,OAAO,MAAM,GAAG,QAAQ;AAEpJ,IAAM,QAAN,MAAkD;AAAA,EAAlD;AACN,SAAS,KAAK;AACd,SAAS,eAA6B,CAAC,qBAAqB;AAAA;AAC7D;AAEO,IAAM,QAAQ,IAAI,MAAM;","names":[]}
|