@mozaik-ai/core 3.9.0 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -352,6 +352,12 @@ agent.join(new AgenticEnvironment())
352
352
 
353
353
  ---
354
354
 
355
+ ## Examples
356
+
357
+ Working examples are available here: [mozaik-examples](https://github.com/jigjoy-ai/mozaik-examples).
358
+
359
+ ---
360
+
355
361
  ## Made with Mozaik
356
362
 
357
363
  - **[baro](https://github.com/Lotus015/baro)** — a Claude agent orchestrator where ten specialized participants (planner, executors, reviewer, fixer, librarian, auditor, and more) work fully concurrently on the same goal, like a team collaborating in real time instead of a single agent doing everything alone.
package/dist/index.d.mts CHANGED
@@ -313,10 +313,10 @@ declare abstract class Participant {
313
313
  leave(environment: AgenticEnvironment): void;
314
314
  protected isJoinedTo(environment: AgenticEnvironment): boolean;
315
315
  getEnvironments(): AgenticEnvironment[];
316
- abstract onParticipantJoined(participant: Participant, environment: AgenticEnvironment): Promise<void> | void;
317
- abstract onParticipantLeft(participant: Participant, environment: AgenticEnvironment): Promise<void> | void;
318
- abstract onJoined(environment: AgenticEnvironment): Promise<void> | void;
319
- abstract onLeft(environment: AgenticEnvironment): Promise<void> | void;
316
+ abstract onParticipantJoined(participant: Participant): Promise<void> | void;
317
+ abstract onParticipantLeft(participant: Participant): Promise<void> | void;
318
+ abstract onJoined(): Promise<void> | void;
319
+ abstract onLeft(): Promise<void> | void;
320
320
  abstract onFunctionCall(item: FunctionCallItem): Promise<void> | void;
321
321
  abstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void;
322
322
  abstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void;
@@ -355,8 +355,8 @@ declare class BaseAgentParticipant extends Participant implements InputCapable,
355
355
  private inferenceRunner;
356
356
  private functionCallRunner;
357
357
  constructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner);
358
- onJoined(environment: AgenticEnvironment): void;
359
- onLeft(environment: AgenticEnvironment): void;
358
+ onJoined(): void;
359
+ onLeft(): void;
360
360
  onParticipantJoined(participant: Participant): void;
361
361
  onParticipantLeft(participant: Participant): void;
362
362
  onFunctionCall(item: FunctionCallItem): void;
@@ -376,10 +376,10 @@ declare class BaseAgentParticipant extends Participant implements InputCapable,
376
376
  declare class BaseHumanParticipant extends Participant implements InputCapable {
377
377
  private inputSource;
378
378
  constructor(inputSource: InputStream);
379
- onJoined(environment: AgenticEnvironment): void;
380
- onLeft(environment: AgenticEnvironment): void;
381
- onParticipantJoined(participant: Participant, environment: AgenticEnvironment): void;
382
- onParticipantLeft(participant: Participant, environment: AgenticEnvironment): void;
379
+ onJoined(): void;
380
+ onLeft(): void;
381
+ onParticipantJoined(participant: Participant): void;
382
+ onParticipantLeft(participant: Participant): void;
383
383
  onMessage(message: string): void;
384
384
  onFunctionCall(item: FunctionCallItem): void;
385
385
  onFunctionCallOutput(item: FunctionCallOutputItem): void;
package/dist/index.d.ts CHANGED
@@ -313,10 +313,10 @@ declare abstract class Participant {
313
313
  leave(environment: AgenticEnvironment): void;
314
314
  protected isJoinedTo(environment: AgenticEnvironment): boolean;
315
315
  getEnvironments(): AgenticEnvironment[];
316
- abstract onParticipantJoined(participant: Participant, environment: AgenticEnvironment): Promise<void> | void;
317
- abstract onParticipantLeft(participant: Participant, environment: AgenticEnvironment): Promise<void> | void;
318
- abstract onJoined(environment: AgenticEnvironment): Promise<void> | void;
319
- abstract onLeft(environment: AgenticEnvironment): Promise<void> | void;
316
+ abstract onParticipantJoined(participant: Participant): Promise<void> | void;
317
+ abstract onParticipantLeft(participant: Participant): Promise<void> | void;
318
+ abstract onJoined(): Promise<void> | void;
319
+ abstract onLeft(): Promise<void> | void;
320
320
  abstract onFunctionCall(item: FunctionCallItem): Promise<void> | void;
321
321
  abstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void;
322
322
  abstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void;
@@ -355,8 +355,8 @@ declare class BaseAgentParticipant extends Participant implements InputCapable,
355
355
  private inferenceRunner;
356
356
  private functionCallRunner;
357
357
  constructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner);
358
- onJoined(environment: AgenticEnvironment): void;
359
- onLeft(environment: AgenticEnvironment): void;
358
+ onJoined(): void;
359
+ onLeft(): void;
360
360
  onParticipantJoined(participant: Participant): void;
361
361
  onParticipantLeft(participant: Participant): void;
362
362
  onFunctionCall(item: FunctionCallItem): void;
@@ -376,10 +376,10 @@ declare class BaseAgentParticipant extends Participant implements InputCapable,
376
376
  declare class BaseHumanParticipant extends Participant implements InputCapable {
377
377
  private inputSource;
378
378
  constructor(inputSource: InputStream);
379
- onJoined(environment: AgenticEnvironment): void;
380
- onLeft(environment: AgenticEnvironment): void;
381
- onParticipantJoined(participant: Participant, environment: AgenticEnvironment): void;
382
- onParticipantLeft(participant: Participant, environment: AgenticEnvironment): void;
379
+ onJoined(): void;
380
+ onLeft(): void;
381
+ onParticipantJoined(participant: Participant): void;
382
+ onParticipantLeft(participant: Participant): void;
383
383
  onMessage(message: string): void;
384
384
  onFunctionCall(item: FunctionCallItem): void;
385
385
  onFunctionCallOutput(item: FunctionCallOutputItem): void;
package/dist/index.js CHANGED
@@ -612,9 +612,9 @@ var AgenticEnvironment = class {
612
612
  this.subscribers.push(subscriber);
613
613
  for (const subscriber2 of this.subscribers) {
614
614
  if (subscriber2 === subscriber2) {
615
- subscriber2.onJoined(this);
615
+ subscriber2.onJoined();
616
616
  } else {
617
- subscriber2.onParticipantJoined(subscriber2, this);
617
+ subscriber2.onParticipantJoined(subscriber2);
618
618
  }
619
619
  }
620
620
  }
@@ -622,9 +622,9 @@ var AgenticEnvironment = class {
622
622
  this.subscribers = this.subscribers.filter((p) => p !== subscriber);
623
623
  for (const subscriber2 of this.subscribers) {
624
624
  if (subscriber2 === subscriber2) {
625
- subscriber2.onLeft(this);
625
+ subscriber2.onLeft();
626
626
  } else {
627
- subscriber2.onParticipantLeft(subscriber2, this);
627
+ subscriber2.onParticipantLeft(subscriber2);
628
628
  }
629
629
  }
630
630
  }
@@ -690,9 +690,9 @@ var BaseAgentParticipant = class extends Participant {
690
690
  this.inferenceRunner = inferenceRunner;
691
691
  this.functionCallRunner = functionCallRunner;
692
692
  }
693
- onJoined(environment) {
693
+ onJoined() {
694
694
  }
695
- onLeft(environment) {
695
+ onLeft() {
696
696
  }
697
697
  onParticipantJoined(participant) {
698
698
  }
@@ -751,13 +751,13 @@ var BaseHumanParticipant = class extends Participant {
751
751
  super();
752
752
  this.inputSource = inputSource;
753
753
  }
754
- onJoined(environment) {
754
+ onJoined() {
755
755
  }
756
- onLeft(environment) {
756
+ onLeft() {
757
757
  }
758
- onParticipantJoined(participant, environment) {
758
+ onParticipantJoined(participant) {
759
759
  }
760
- onParticipantLeft(participant, environment) {
760
+ onParticipantLeft(participant) {
761
761
  }
762
762
  onMessage(message) {
763
763
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/domain/model-context/model-context.ts","../src/domain/model-context/context-item/context-item.ts","../src/domain/model-context/context-item/item-content/item-content.ts","../src/domain/model-context/context-item/item-content/input-text.ts","../src/domain/model-context/context-item/client-item/user-message.ts","../src/domain/model-context/context-item/client-item/developer-message.ts","../src/domain/model-context/context-item/item-content/output-text.ts","../src/domain/model-context/context-item/model-item/model-message.ts","../src/domain/model-context/context-item/model-item/function-call.ts","../src/domain/model-context/context-item/model-item/reasoning.ts","../src/domain/model-context/context-item/client-item/function-call-output.ts","../src/domain/generative-model/inference-response.ts","../src/domain/generative-model/token-usage.ts","../src/infrastructure/providers/openai/runtime/openai-responses.ts","../src/domain/generative-model/inference-request.ts","../src/infrastructure/providers/openai/reasoning-effort.ts","../src/infrastructure/providers/openai/models/gpt-5-4-nano.ts","../src/infrastructure/providers/openai/models/gpt-5-4.ts","../src/infrastructure/providers/openai/models/gpt-5-4-mini.ts","../src/infrastructure/repository/in-memory-model-context-repository.ts","../src/domain/model-context/context-item/client-item/system-message.ts","../src/domain/agentic-environment/participant.ts","../src/domain/agentic-environment/agentic-environment.ts","../src/application/agent.ts","../src/application/human.ts","../src/application/openai-inference-runner.ts","../src/application/function-call-runner.ts","../src/infrastructure/providers/openai/models/gpt-5-5.ts"],"sourcesContent":["import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { UserMessageItem } from \"@domain/model-context/context-item/client-item/user-message\"\nimport { DeveloperMessageItem } from \"@domain/model-context/context-item/client-item/developer-message\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { Gpt54Nano } from \"@infra/providers/openai/models/gpt-5-4-nano\"\nimport { Gpt54 } from \"@infra/providers/openai/models/gpt-5-4\"\nimport { Gpt54Mini } from \"@infra/providers/openai/models/gpt-5-4-mini\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/generative-model/token-usage\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { InMemoryModelContextRepository } from \"@infra/repository/in-memory-model-context-repository\"\nimport { SystemMessageItem } from \"@domain/model-context/context-item/client-item/system-message\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { BaseAgentParticipant } from \"@app/agent\"\nimport { BaseHumanParticipant } from \"@app/human\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { OpenAIInferenceRunner } from \"@app/openai-inference-runner\"\nimport { DefaultFunctionCallRunner } from \"@app/function-call-runner\"\nimport { Gpt55 } from \"@infra/providers/openai/models/gpt-5-5\"\n\nexport {\n\tModelContext,\n\tModelContextRepository,\n\tInMemoryModelContextRepository,\n\tContextItem,\n\tUserMessageItem,\n\tDeveloperMessageItem,\n\tSystemMessageItem,\n\tModelMessageItem,\n\tFunctionCallItem,\n\tFunctionCallOutputItem,\n\tReasoningItem,\n\tGenerativeModel,\n\tOpenAIResponses,\n\tGpt54,\n\tGpt54Mini,\n\tGpt54Nano,\n\tGpt55,\n\tInferenceRequest,\n\tInferenceResponse,\n\tTokenUsage,\n\tInputTokenDetails,\n\tOutputTokenDetails,\n\tTool,\n\tFunctionCallRunner,\n\tInferenceRunner,\n\tDefaultFunctionCallRunner,\n\tInputStream,\n\tAgenticEnvironment,\n\tParticipant,\n\tBaseAgentParticipant,\n\tBaseHumanParticipant,\n\tOpenAIInferenceRunner,\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ModelContext {\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\taddContextItem(item: ContextItem): ModelContext {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): ModelContext {\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\tgetLastItem(): ContextItem {\n\t\tif (this.items.length === 0) {\n\t\t\tthrow new Error(\"No items in context\")\n\t\t}\n\t\treturn this.items[this.items.length - 1]\n\t}\n\n\tstatic create(projectId: string): ModelContext {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new ModelContext(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): ModelContext {\n\t\treturn new ModelContext(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 ItemContent {\n\tabstract readonly type: string\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class InputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class UserMessageItem 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): UserMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessageItem(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 \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class DeveloperMessageItem 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): DeveloperMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class OutputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { OutputText } from \"@domain/model-context/context-item/item-content/output-text\"\n\nexport class ModelMessageItem 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 }): ModelMessageItem {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessageItem(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 \"@domain/model-context/context-item/context-item\"\n\nexport class FunctionCallItem 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 }): FunctionCallItem {\n\t\treturn new FunctionCallItem(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { SummaryText } from \"@domain/model-context/context-item/item-content/summary-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ReasoningItem 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}): ReasoningItem {\n\t\treturn new ReasoningItem(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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class FunctionCallOutputItem 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: string): FunctionCallOutputItem {\n\t\tconst outputText = InputText.create(output)\n\t\treturn new FunctionCallOutputItem(callId, outputText)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText }): FunctionCallOutputItem {\n\t\treturn new FunctionCallOutputItem(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\toutput: this.output.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { TokenUsage } from \"@domain/generative-model/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 { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { ModelRuntime } from \"@domain/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/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: ModelContext): 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.role === \"assistant\") {\n\t\t\t\treturn ModelMessageItem.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\") {\n\t\t\t\treturn FunctionCallItem.rehydrate({\n\t\t\t\t\tcallId: item.call_id,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\targs: item.arguments,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn ReasoningItem.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: ModelContext\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: ModelContext) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@domain/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\n\nexport class InMemoryModelContextRepository implements ModelContextRepository {\n\tprivate readonly store = new Map<string, ModelContext>()\n\tprivate readonly projectIndex = new Map<string, Set<string>>()\n\n\tasync save(context: ModelContext): Promise<void> {\n\t\tconst existing = this.store.get(context.id)\n\t\tif (existing && existing.projectId !== context.projectId) {\n\t\t\tconst prevSet = this.projectIndex.get(existing.projectId)\n\t\t\tprevSet?.delete(existing.id)\n\t\t\tif (prevSet && prevSet.size === 0) this.projectIndex.delete(existing.projectId)\n\t\t}\n\n\t\tthis.store.set(context.id, this.clone(context))\n\n\t\tlet set = this.projectIndex.get(context.projectId)\n\t\tif (!set) {\n\t\t\tset = new Set<string>()\n\t\t\tthis.projectIndex.set(context.projectId, set)\n\t\t}\n\t\tset.add(context.id)\n\t}\n\n\tasync get(id: string): Promise<ModelContext> {\n\t\tconst context = this.store.get(id)\n\t\tif (!context) {\n\t\t\tthrow new Error(`Context not found: ${id}`)\n\t\t}\n\t\treturn this.clone(context)\n\t}\n\n\tasync getByProjectId(projectId: string): Promise<ModelContext[]> {\n\t\tconst ids = this.projectIndex.get(projectId)\n\t\tif (!ids || ids.size === 0) return []\n\t\treturn [...ids]\n\t\t\t.map((id) => this.store.get(id))\n\t\t\t.filter((c): c is ModelContext => Boolean(c))\n\t\t\t.map((c) => this.clone(c))\n\t}\n\n\tprivate clone(context: ModelContext): ModelContext {\n\t\treturn ModelContext.rehydrate({\n\t\t\tid: context.id,\n\t\t\tprojectId: context.projectId,\n\t\t\titems: [...context.getItems()],\n\t\t})\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class SystemMessageItem extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"system\"\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): SystemMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new SystemMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): SystemMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new SystemMessageItem(content)\n\t}\n}\n","import { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { AgenticEnvironment } from \"./agentic-environment\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport abstract class Participant {\n\tprivate environments: AgenticEnvironment[] = []\n\n\tjoin(environment: AgenticEnvironment) {\n\t\tif (this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.subscribe(this)\n\t\tthis.environments.push(environment)\n\t}\n\n\tleave(environment: AgenticEnvironment) {\n\t\tif (!this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.unsubscribe(this)\n\t\tthis.environments = this.environments.filter((e) => e !== environment)\n\t}\n\n\tprotected isJoinedTo(environment: AgenticEnvironment): boolean {\n\t\treturn this.environments.includes(environment)\n\t}\n\n\tgetEnvironments(): AgenticEnvironment[] {\n\t\treturn this.environments\n\t}\n\n\tabstract onParticipantJoined(participant: Participant, environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onParticipantLeft(participant: Participant, environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onJoined(environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onLeft(environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onFunctionCall(item: FunctionCallItem): Promise<void> | void\n\n\tabstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void\n\n\tabstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onReasoning(item: ReasoningItem): Promise<void> | void\n\n\tabstract onExternalReasoning(source: Participant, item: ReasoningItem): Promise<void> | void\n\n\tabstract onModelMessage(item: ModelMessageItem): Promise<void> | void\n\n\tabstract onExternalModelMessage(source: Participant, item: ModelMessageItem): Promise<void> | void\n\n\tabstract onMessage(message: string): Promise<void> | void\n}\n","import { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class AgenticEnvironment {\n\tprotected subscribers: Participant[] = []\n\tprivate isActive = false\n\n\tsubscribe(subscriber: Participant) {\n\t\tthis.subscribers.push(subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onJoined(this)\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantJoined(subscriber, this)\n\t\t\t}\n\t\t}\n\t}\n\n\tunsubscribe(subscriber: Participant) {\n\t\tthis.subscribers = this.subscribers.filter((p) => p !== subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onLeft(this)\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantLeft(subscriber, this)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCall(source: Participant, item: FunctionCallItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCall(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCall(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverModelMessage(source: Participant, item: ModelMessageItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onModelMessage(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalModelMessage(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverReasoning(source: Participant, item: ReasoningItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onReasoning(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalReasoning(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCallOutput(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCallOutput(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverMessage(source: Participant, message: string): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) continue\n\n\t\t\tsubscriber.onMessage(message)\n\t\t}\n\t}\n\n\tstart() {\n\t\tthis.isActive = true\n\t\twhile (this.isActive) {\n\t\t\tsetTimeout(() => {}, 100)\n\t\t}\n\t}\n\n\tstop() {\n\t\tthis.isActive = false\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { FunctionCallCapable, InferenceCapable, InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class BaseAgentParticipant extends Participant implements InputCapable, InferenceCapable, FunctionCallCapable {\n\tprivate inputSource: InputStream\n\tprivate inferenceRunner: InferenceRunner\n\tprivate functionCallRunner: FunctionCallRunner\n\n\tconstructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t\tthis.inferenceRunner = inferenceRunner\n\t\tthis.functionCallRunner = functionCallRunner\n\t}\n\n\tonJoined(environment: AgenticEnvironment) {}\n\n\tonLeft(environment: AgenticEnvironment) {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tonMessage(message: string) {}\n\n\tasync executeFunctionCall(\n\t\tenvironment: AgenticEnvironment,\n\t\tfunctionCallItem: FunctionCallItem,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.functionCallRunner.run(functionCallItem, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tawait environment.deliverFunctionCallOutput(this, item)\n\t\t}\n\t}\n\n\tasync runInference(\n\t\tenvironment: AgenticEnvironment,\n\t\tcontext: ModelContext,\n\t\tmodel: GenerativeModel,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inferenceRunner.run(context, model, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\tawait environment.deliverReasoning(this, item)\n\t\t\t} else if (item.type === \"function_call\") {\n\t\t\t\tawait environment.deliverFunctionCall(this, item)\n\t\t\t} else if (item.type === \"message\" && item.role === \"assistant\") {\n\t\t\t\tawait environment.deliverModelMessage(this, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class BaseHumanParticipant extends Participant implements InputCapable {\n\tprivate inputSource: InputStream\n\n\tconstructor(inputSource: InputStream) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t}\n\n\tonJoined(environment: AgenticEnvironment) {}\n\t\n\tonLeft(environment: AgenticEnvironment) {}\n\n\tonParticipantJoined(participant: Participant, environment: AgenticEnvironment) {}\n\n\tonParticipantLeft(participant: Participant, environment: AgenticEnvironment) {}\n\n\tonMessage(message: string) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\n\ntype InferenceItem = ReasoningItem | FunctionCallItem | ModelMessageItem\n\nexport class OpenAIInferenceRunner implements InferenceRunner {\n\tprivate readonly runtime = new OpenAIResponses()\n\n\tasync *run(context: ModelContext, model: GenerativeModel, signal?: AbortSignal): AsyncIterable<InferenceItem> {\n\t\tconst response = await this.runtime.infer(new InferenceRequest(model, context))\n\t\tfor (const item of response.contextItems) {\n\t\t\tyield item as InferenceItem\n\t\t}\n\t}\n}\n","import { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class DefaultFunctionCallRunner implements FunctionCallRunner {\n\tconstructor(private readonly tools: Tool[]) {}\n\n\tasync *run(call: FunctionCallItem, signal?: AbortSignal): AsyncIterable<FunctionCallOutputItem> {\n\t\tconst tool = this.tools.find((t) => t.name === call.name)\n\t\tif (!tool) throw new Error(`Unknown tool: ${call.name}`)\n\n\t\tconst result = await tool.invoke(JSON.parse(call.args))\n\t\tyield FunctionCallOutputItem.create(call.callId, JSON.stringify(result))\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/openai/reasoning-effort\"\n\nexport class Gpt55 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.5\",\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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":["OpenAI","subscriber"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/domain/model-context/model-context.ts","../src/domain/model-context/context-item/context-item.ts","../src/domain/model-context/context-item/item-content/item-content.ts","../src/domain/model-context/context-item/item-content/input-text.ts","../src/domain/model-context/context-item/client-item/user-message.ts","../src/domain/model-context/context-item/client-item/developer-message.ts","../src/domain/model-context/context-item/item-content/output-text.ts","../src/domain/model-context/context-item/model-item/model-message.ts","../src/domain/model-context/context-item/model-item/function-call.ts","../src/domain/model-context/context-item/model-item/reasoning.ts","../src/domain/model-context/context-item/client-item/function-call-output.ts","../src/domain/generative-model/inference-response.ts","../src/domain/generative-model/token-usage.ts","../src/infrastructure/providers/openai/runtime/openai-responses.ts","../src/domain/generative-model/inference-request.ts","../src/infrastructure/providers/openai/reasoning-effort.ts","../src/infrastructure/providers/openai/models/gpt-5-4-nano.ts","../src/infrastructure/providers/openai/models/gpt-5-4.ts","../src/infrastructure/providers/openai/models/gpt-5-4-mini.ts","../src/infrastructure/repository/in-memory-model-context-repository.ts","../src/domain/model-context/context-item/client-item/system-message.ts","../src/domain/agentic-environment/participant.ts","../src/domain/agentic-environment/agentic-environment.ts","../src/application/agent.ts","../src/application/human.ts","../src/application/openai-inference-runner.ts","../src/application/function-call-runner.ts","../src/infrastructure/providers/openai/models/gpt-5-5.ts"],"sourcesContent":["import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { UserMessageItem } from \"@domain/model-context/context-item/client-item/user-message\"\nimport { DeveloperMessageItem } from \"@domain/model-context/context-item/client-item/developer-message\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { Gpt54Nano } from \"@infra/providers/openai/models/gpt-5-4-nano\"\nimport { Gpt54 } from \"@infra/providers/openai/models/gpt-5-4\"\nimport { Gpt54Mini } from \"@infra/providers/openai/models/gpt-5-4-mini\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/generative-model/token-usage\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { InMemoryModelContextRepository } from \"@infra/repository/in-memory-model-context-repository\"\nimport { SystemMessageItem } from \"@domain/model-context/context-item/client-item/system-message\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { BaseAgentParticipant } from \"@app/agent\"\nimport { BaseHumanParticipant } from \"@app/human\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { OpenAIInferenceRunner } from \"@app/openai-inference-runner\"\nimport { DefaultFunctionCallRunner } from \"@app/function-call-runner\"\nimport { Gpt55 } from \"@infra/providers/openai/models/gpt-5-5\"\n\nexport {\n\tModelContext,\n\tModelContextRepository,\n\tInMemoryModelContextRepository,\n\tContextItem,\n\tUserMessageItem,\n\tDeveloperMessageItem,\n\tSystemMessageItem,\n\tModelMessageItem,\n\tFunctionCallItem,\n\tFunctionCallOutputItem,\n\tReasoningItem,\n\tGenerativeModel,\n\tOpenAIResponses,\n\tGpt54,\n\tGpt54Mini,\n\tGpt54Nano,\n\tGpt55,\n\tInferenceRequest,\n\tInferenceResponse,\n\tTokenUsage,\n\tInputTokenDetails,\n\tOutputTokenDetails,\n\tTool,\n\tFunctionCallRunner,\n\tInferenceRunner,\n\tDefaultFunctionCallRunner,\n\tInputStream,\n\tAgenticEnvironment,\n\tParticipant,\n\tBaseAgentParticipant,\n\tBaseHumanParticipant,\n\tOpenAIInferenceRunner,\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ModelContext {\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\taddContextItem(item: ContextItem): ModelContext {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): ModelContext {\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\tgetLastItem(): ContextItem {\n\t\tif (this.items.length === 0) {\n\t\t\tthrow new Error(\"No items in context\")\n\t\t}\n\t\treturn this.items[this.items.length - 1]\n\t}\n\n\tstatic create(projectId: string): ModelContext {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new ModelContext(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): ModelContext {\n\t\treturn new ModelContext(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 ItemContent {\n\tabstract readonly type: string\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class InputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class UserMessageItem 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): UserMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessageItem(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 \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class DeveloperMessageItem 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): DeveloperMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class OutputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { OutputText } from \"@domain/model-context/context-item/item-content/output-text\"\n\nexport class ModelMessageItem 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 }): ModelMessageItem {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessageItem(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 \"@domain/model-context/context-item/context-item\"\n\nexport class FunctionCallItem 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 }): FunctionCallItem {\n\t\treturn new FunctionCallItem(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { SummaryText } from \"@domain/model-context/context-item/item-content/summary-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ReasoningItem 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}): ReasoningItem {\n\t\treturn new ReasoningItem(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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class FunctionCallOutputItem 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: string): FunctionCallOutputItem {\n\t\tconst outputText = InputText.create(output)\n\t\treturn new FunctionCallOutputItem(callId, outputText)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText }): FunctionCallOutputItem {\n\t\treturn new FunctionCallOutputItem(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\toutput: this.output.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { TokenUsage } from \"@domain/generative-model/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 { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { ModelRuntime } from \"@domain/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/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: ModelContext): 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.role === \"assistant\") {\n\t\t\t\treturn ModelMessageItem.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\") {\n\t\t\t\treturn FunctionCallItem.rehydrate({\n\t\t\t\t\tcallId: item.call_id,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\targs: item.arguments,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn ReasoningItem.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: ModelContext\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: ModelContext) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@domain/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\n\nexport class InMemoryModelContextRepository implements ModelContextRepository {\n\tprivate readonly store = new Map<string, ModelContext>()\n\tprivate readonly projectIndex = new Map<string, Set<string>>()\n\n\tasync save(context: ModelContext): Promise<void> {\n\t\tconst existing = this.store.get(context.id)\n\t\tif (existing && existing.projectId !== context.projectId) {\n\t\t\tconst prevSet = this.projectIndex.get(existing.projectId)\n\t\t\tprevSet?.delete(existing.id)\n\t\t\tif (prevSet && prevSet.size === 0) this.projectIndex.delete(existing.projectId)\n\t\t}\n\n\t\tthis.store.set(context.id, this.clone(context))\n\n\t\tlet set = this.projectIndex.get(context.projectId)\n\t\tif (!set) {\n\t\t\tset = new Set<string>()\n\t\t\tthis.projectIndex.set(context.projectId, set)\n\t\t}\n\t\tset.add(context.id)\n\t}\n\n\tasync get(id: string): Promise<ModelContext> {\n\t\tconst context = this.store.get(id)\n\t\tif (!context) {\n\t\t\tthrow new Error(`Context not found: ${id}`)\n\t\t}\n\t\treturn this.clone(context)\n\t}\n\n\tasync getByProjectId(projectId: string): Promise<ModelContext[]> {\n\t\tconst ids = this.projectIndex.get(projectId)\n\t\tif (!ids || ids.size === 0) return []\n\t\treturn [...ids]\n\t\t\t.map((id) => this.store.get(id))\n\t\t\t.filter((c): c is ModelContext => Boolean(c))\n\t\t\t.map((c) => this.clone(c))\n\t}\n\n\tprivate clone(context: ModelContext): ModelContext {\n\t\treturn ModelContext.rehydrate({\n\t\t\tid: context.id,\n\t\t\tprojectId: context.projectId,\n\t\t\titems: [...context.getItems()],\n\t\t})\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class SystemMessageItem extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"system\"\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): SystemMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new SystemMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): SystemMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new SystemMessageItem(content)\n\t}\n}\n","import { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { AgenticEnvironment } from \"./agentic-environment\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport abstract class Participant {\n\tprivate environments: AgenticEnvironment[] = []\n\n\tjoin(environment: AgenticEnvironment) {\n\t\tif (this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.subscribe(this)\n\t\tthis.environments.push(environment)\n\t}\n\n\tleave(environment: AgenticEnvironment) {\n\t\tif (!this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.unsubscribe(this)\n\t\tthis.environments = this.environments.filter((e) => e !== environment)\n\t}\n\n\tprotected isJoinedTo(environment: AgenticEnvironment): boolean {\n\t\treturn this.environments.includes(environment)\n\t}\n\n\tgetEnvironments(): AgenticEnvironment[] {\n\t\treturn this.environments\n\t}\n\n\tabstract onParticipantJoined(participant: Participant): Promise<void> | void\n\n\tabstract onParticipantLeft(participant: Participant): Promise<void> | void\n\n\tabstract onJoined(): Promise<void> | void\n\n\tabstract onLeft(): Promise<void> | void\n\n\tabstract onFunctionCall(item: FunctionCallItem): Promise<void> | void\n\n\tabstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void\n\n\tabstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onReasoning(item: ReasoningItem): Promise<void> | void\n\n\tabstract onExternalReasoning(source: Participant, item: ReasoningItem): Promise<void> | void\n\n\tabstract onModelMessage(item: ModelMessageItem): Promise<void> | void\n\n\tabstract onExternalModelMessage(source: Participant, item: ModelMessageItem): Promise<void> | void\n\n\tabstract onMessage(message: string): Promise<void> | void\n}\n","import { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class AgenticEnvironment {\n\tprotected subscribers: Participant[] = []\n\tprivate isActive = false\n\n\tsubscribe(subscriber: Participant) {\n\t\tthis.subscribers.push(subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onJoined()\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantJoined(subscriber)\n\t\t\t}\n\t\t}\n\t}\n\n\tunsubscribe(subscriber: Participant) {\n\t\tthis.subscribers = this.subscribers.filter((p) => p !== subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onLeft()\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantLeft(subscriber)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCall(source: Participant, item: FunctionCallItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCall(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCall(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverModelMessage(source: Participant, item: ModelMessageItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onModelMessage(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalModelMessage(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverReasoning(source: Participant, item: ReasoningItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onReasoning(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalReasoning(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCallOutput(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCallOutput(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverMessage(source: Participant, message: string): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) continue\n\n\t\t\tsubscriber.onMessage(message)\n\t\t}\n\t}\n\n\tstart() {\n\t\tthis.isActive = true\n\t\twhile (this.isActive) {\n\t\t\tsetTimeout(() => {}, 100)\n\t\t}\n\t}\n\n\tstop() {\n\t\tthis.isActive = false\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { FunctionCallCapable, InferenceCapable, InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class BaseAgentParticipant extends Participant implements InputCapable, InferenceCapable, FunctionCallCapable {\n\tprivate inputSource: InputStream\n\tprivate inferenceRunner: InferenceRunner\n\tprivate functionCallRunner: FunctionCallRunner\n\n\tconstructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t\tthis.inferenceRunner = inferenceRunner\n\t\tthis.functionCallRunner = functionCallRunner\n\t}\n\n\tonJoined() {}\n\n\tonLeft() {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tonMessage(message: string) {}\n\n\tasync executeFunctionCall(\n\t\tenvironment: AgenticEnvironment,\n\t\tfunctionCallItem: FunctionCallItem,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.functionCallRunner.run(functionCallItem, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tawait environment.deliverFunctionCallOutput(this, item)\n\t\t}\n\t}\n\n\tasync runInference(\n\t\tenvironment: AgenticEnvironment,\n\t\tcontext: ModelContext,\n\t\tmodel: GenerativeModel,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inferenceRunner.run(context, model, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\tawait environment.deliverReasoning(this, item)\n\t\t\t} else if (item.type === \"function_call\") {\n\t\t\t\tawait environment.deliverFunctionCall(this, item)\n\t\t\t} else if (item.type === \"message\" && item.role === \"assistant\") {\n\t\t\t\tawait environment.deliverModelMessage(this, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class BaseHumanParticipant extends Participant implements InputCapable {\n\tprivate inputSource: InputStream\n\n\tconstructor(inputSource: InputStream) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t}\n\n\tonJoined() {}\n\t\n\tonLeft() {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonMessage(message: string) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\n\ntype InferenceItem = ReasoningItem | FunctionCallItem | ModelMessageItem\n\nexport class OpenAIInferenceRunner implements InferenceRunner {\n\tprivate readonly runtime = new OpenAIResponses()\n\n\tasync *run(context: ModelContext, model: GenerativeModel, signal?: AbortSignal): AsyncIterable<InferenceItem> {\n\t\tconst response = await this.runtime.infer(new InferenceRequest(model, context))\n\t\tfor (const item of response.contextItems) {\n\t\t\tyield item as InferenceItem\n\t\t}\n\t}\n}\n","import { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class DefaultFunctionCallRunner implements FunctionCallRunner {\n\tconstructor(private readonly tools: Tool[]) {}\n\n\tasync *run(call: FunctionCallItem, signal?: AbortSignal): AsyncIterable<FunctionCallOutputItem> {\n\t\tconst tool = this.tools.find((t) => t.name === call.name)\n\t\tif (!tool) throw new Error(`Unknown tool: ${call.name}`)\n\n\t\tconst result = await tool.invoke(JSON.parse(call.args))\n\t\tyield FunctionCallOutputItem.create(call.callId, JSON.stringify(result))\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/openai/reasoning-effort\"\n\nexport class Gpt55 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.5\",\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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":["OpenAI","subscriber"]}
package/dist/index.mjs CHANGED
@@ -551,9 +551,9 @@ var AgenticEnvironment = class {
551
551
  this.subscribers.push(subscriber);
552
552
  for (const subscriber2 of this.subscribers) {
553
553
  if (subscriber2 === subscriber2) {
554
- subscriber2.onJoined(this);
554
+ subscriber2.onJoined();
555
555
  } else {
556
- subscriber2.onParticipantJoined(subscriber2, this);
556
+ subscriber2.onParticipantJoined(subscriber2);
557
557
  }
558
558
  }
559
559
  }
@@ -561,9 +561,9 @@ var AgenticEnvironment = class {
561
561
  this.subscribers = this.subscribers.filter((p) => p !== subscriber);
562
562
  for (const subscriber2 of this.subscribers) {
563
563
  if (subscriber2 === subscriber2) {
564
- subscriber2.onLeft(this);
564
+ subscriber2.onLeft();
565
565
  } else {
566
- subscriber2.onParticipantLeft(subscriber2, this);
566
+ subscriber2.onParticipantLeft(subscriber2);
567
567
  }
568
568
  }
569
569
  }
@@ -629,9 +629,9 @@ var BaseAgentParticipant = class extends Participant {
629
629
  this.inferenceRunner = inferenceRunner;
630
630
  this.functionCallRunner = functionCallRunner;
631
631
  }
632
- onJoined(environment) {
632
+ onJoined() {
633
633
  }
634
- onLeft(environment) {
634
+ onLeft() {
635
635
  }
636
636
  onParticipantJoined(participant) {
637
637
  }
@@ -690,13 +690,13 @@ var BaseHumanParticipant = class extends Participant {
690
690
  super();
691
691
  this.inputSource = inputSource;
692
692
  }
693
- onJoined(environment) {
693
+ onJoined() {
694
694
  }
695
- onLeft(environment) {
695
+ onLeft() {
696
696
  }
697
- onParticipantJoined(participant, environment) {
697
+ onParticipantJoined(participant) {
698
698
  }
699
- onParticipantLeft(participant, environment) {
699
+ onParticipantLeft(participant) {
700
700
  }
701
701
  onMessage(message) {
702
702
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/domain/model-context/model-context.ts","../src/domain/model-context/context-item/context-item.ts","../src/domain/model-context/context-item/item-content/item-content.ts","../src/domain/model-context/context-item/item-content/input-text.ts","../src/domain/model-context/context-item/client-item/user-message.ts","../src/domain/model-context/context-item/client-item/developer-message.ts","../src/domain/model-context/context-item/item-content/output-text.ts","../src/domain/model-context/context-item/model-item/model-message.ts","../src/domain/model-context/context-item/model-item/function-call.ts","../src/domain/model-context/context-item/model-item/reasoning.ts","../src/domain/model-context/context-item/client-item/function-call-output.ts","../src/domain/generative-model/inference-response.ts","../src/domain/generative-model/token-usage.ts","../src/infrastructure/providers/openai/runtime/openai-responses.ts","../src/domain/generative-model/inference-request.ts","../src/infrastructure/providers/openai/reasoning-effort.ts","../src/infrastructure/providers/openai/models/gpt-5-4-nano.ts","../src/infrastructure/providers/openai/models/gpt-5-4.ts","../src/infrastructure/providers/openai/models/gpt-5-4-mini.ts","../src/infrastructure/repository/in-memory-model-context-repository.ts","../src/domain/model-context/context-item/client-item/system-message.ts","../src/domain/agentic-environment/participant.ts","../src/domain/agentic-environment/agentic-environment.ts","../src/application/agent.ts","../src/application/human.ts","../src/application/openai-inference-runner.ts","../src/application/function-call-runner.ts","../src/infrastructure/providers/openai/models/gpt-5-5.ts"],"sourcesContent":["import { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ModelContext {\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\taddContextItem(item: ContextItem): ModelContext {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): ModelContext {\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\tgetLastItem(): ContextItem {\n\t\tif (this.items.length === 0) {\n\t\t\tthrow new Error(\"No items in context\")\n\t\t}\n\t\treturn this.items[this.items.length - 1]\n\t}\n\n\tstatic create(projectId: string): ModelContext {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new ModelContext(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): ModelContext {\n\t\treturn new ModelContext(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 ItemContent {\n\tabstract readonly type: string\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class InputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class UserMessageItem 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): UserMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessageItem(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 \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class DeveloperMessageItem 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): DeveloperMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class OutputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { OutputText } from \"@domain/model-context/context-item/item-content/output-text\"\n\nexport class ModelMessageItem 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 }): ModelMessageItem {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessageItem(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 \"@domain/model-context/context-item/context-item\"\n\nexport class FunctionCallItem 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 }): FunctionCallItem {\n\t\treturn new FunctionCallItem(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { SummaryText } from \"@domain/model-context/context-item/item-content/summary-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ReasoningItem 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}): ReasoningItem {\n\t\treturn new ReasoningItem(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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class FunctionCallOutputItem 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: string): FunctionCallOutputItem {\n\t\tconst outputText = InputText.create(output)\n\t\treturn new FunctionCallOutputItem(callId, outputText)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText }): FunctionCallOutputItem {\n\t\treturn new FunctionCallOutputItem(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\toutput: this.output.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { TokenUsage } from \"@domain/generative-model/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 { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { ModelRuntime } from \"@domain/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/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: ModelContext): 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.role === \"assistant\") {\n\t\t\t\treturn ModelMessageItem.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\") {\n\t\t\t\treturn FunctionCallItem.rehydrate({\n\t\t\t\t\tcallId: item.call_id,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\targs: item.arguments,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn ReasoningItem.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: ModelContext\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: ModelContext) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@domain/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\n\nexport class InMemoryModelContextRepository implements ModelContextRepository {\n\tprivate readonly store = new Map<string, ModelContext>()\n\tprivate readonly projectIndex = new Map<string, Set<string>>()\n\n\tasync save(context: ModelContext): Promise<void> {\n\t\tconst existing = this.store.get(context.id)\n\t\tif (existing && existing.projectId !== context.projectId) {\n\t\t\tconst prevSet = this.projectIndex.get(existing.projectId)\n\t\t\tprevSet?.delete(existing.id)\n\t\t\tif (prevSet && prevSet.size === 0) this.projectIndex.delete(existing.projectId)\n\t\t}\n\n\t\tthis.store.set(context.id, this.clone(context))\n\n\t\tlet set = this.projectIndex.get(context.projectId)\n\t\tif (!set) {\n\t\t\tset = new Set<string>()\n\t\t\tthis.projectIndex.set(context.projectId, set)\n\t\t}\n\t\tset.add(context.id)\n\t}\n\n\tasync get(id: string): Promise<ModelContext> {\n\t\tconst context = this.store.get(id)\n\t\tif (!context) {\n\t\t\tthrow new Error(`Context not found: ${id}`)\n\t\t}\n\t\treturn this.clone(context)\n\t}\n\n\tasync getByProjectId(projectId: string): Promise<ModelContext[]> {\n\t\tconst ids = this.projectIndex.get(projectId)\n\t\tif (!ids || ids.size === 0) return []\n\t\treturn [...ids]\n\t\t\t.map((id) => this.store.get(id))\n\t\t\t.filter((c): c is ModelContext => Boolean(c))\n\t\t\t.map((c) => this.clone(c))\n\t}\n\n\tprivate clone(context: ModelContext): ModelContext {\n\t\treturn ModelContext.rehydrate({\n\t\t\tid: context.id,\n\t\t\tprojectId: context.projectId,\n\t\t\titems: [...context.getItems()],\n\t\t})\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class SystemMessageItem extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"system\"\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): SystemMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new SystemMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): SystemMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new SystemMessageItem(content)\n\t}\n}\n","import { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { AgenticEnvironment } from \"./agentic-environment\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport abstract class Participant {\n\tprivate environments: AgenticEnvironment[] = []\n\n\tjoin(environment: AgenticEnvironment) {\n\t\tif (this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.subscribe(this)\n\t\tthis.environments.push(environment)\n\t}\n\n\tleave(environment: AgenticEnvironment) {\n\t\tif (!this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.unsubscribe(this)\n\t\tthis.environments = this.environments.filter((e) => e !== environment)\n\t}\n\n\tprotected isJoinedTo(environment: AgenticEnvironment): boolean {\n\t\treturn this.environments.includes(environment)\n\t}\n\n\tgetEnvironments(): AgenticEnvironment[] {\n\t\treturn this.environments\n\t}\n\n\tabstract onParticipantJoined(participant: Participant, environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onParticipantLeft(participant: Participant, environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onJoined(environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onLeft(environment: AgenticEnvironment): Promise<void> | void\n\n\tabstract onFunctionCall(item: FunctionCallItem): Promise<void> | void\n\n\tabstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void\n\n\tabstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onReasoning(item: ReasoningItem): Promise<void> | void\n\n\tabstract onExternalReasoning(source: Participant, item: ReasoningItem): Promise<void> | void\n\n\tabstract onModelMessage(item: ModelMessageItem): Promise<void> | void\n\n\tabstract onExternalModelMessage(source: Participant, item: ModelMessageItem): Promise<void> | void\n\n\tabstract onMessage(message: string): Promise<void> | void\n}\n","import { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class AgenticEnvironment {\n\tprotected subscribers: Participant[] = []\n\tprivate isActive = false\n\n\tsubscribe(subscriber: Participant) {\n\t\tthis.subscribers.push(subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onJoined(this)\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantJoined(subscriber, this)\n\t\t\t}\n\t\t}\n\t}\n\n\tunsubscribe(subscriber: Participant) {\n\t\tthis.subscribers = this.subscribers.filter((p) => p !== subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onLeft(this)\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantLeft(subscriber, this)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCall(source: Participant, item: FunctionCallItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCall(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCall(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverModelMessage(source: Participant, item: ModelMessageItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onModelMessage(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalModelMessage(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverReasoning(source: Participant, item: ReasoningItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onReasoning(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalReasoning(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCallOutput(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCallOutput(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverMessage(source: Participant, message: string): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) continue\n\n\t\t\tsubscriber.onMessage(message)\n\t\t}\n\t}\n\n\tstart() {\n\t\tthis.isActive = true\n\t\twhile (this.isActive) {\n\t\t\tsetTimeout(() => {}, 100)\n\t\t}\n\t}\n\n\tstop() {\n\t\tthis.isActive = false\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { FunctionCallCapable, InferenceCapable, InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class BaseAgentParticipant extends Participant implements InputCapable, InferenceCapable, FunctionCallCapable {\n\tprivate inputSource: InputStream\n\tprivate inferenceRunner: InferenceRunner\n\tprivate functionCallRunner: FunctionCallRunner\n\n\tconstructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t\tthis.inferenceRunner = inferenceRunner\n\t\tthis.functionCallRunner = functionCallRunner\n\t}\n\n\tonJoined(environment: AgenticEnvironment) {}\n\n\tonLeft(environment: AgenticEnvironment) {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tonMessage(message: string) {}\n\n\tasync executeFunctionCall(\n\t\tenvironment: AgenticEnvironment,\n\t\tfunctionCallItem: FunctionCallItem,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.functionCallRunner.run(functionCallItem, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tawait environment.deliverFunctionCallOutput(this, item)\n\t\t}\n\t}\n\n\tasync runInference(\n\t\tenvironment: AgenticEnvironment,\n\t\tcontext: ModelContext,\n\t\tmodel: GenerativeModel,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inferenceRunner.run(context, model, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\tawait environment.deliverReasoning(this, item)\n\t\t\t} else if (item.type === \"function_call\") {\n\t\t\t\tawait environment.deliverFunctionCall(this, item)\n\t\t\t} else if (item.type === \"message\" && item.role === \"assistant\") {\n\t\t\t\tawait environment.deliverModelMessage(this, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class BaseHumanParticipant extends Participant implements InputCapable {\n\tprivate inputSource: InputStream\n\n\tconstructor(inputSource: InputStream) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t}\n\n\tonJoined(environment: AgenticEnvironment) {}\n\t\n\tonLeft(environment: AgenticEnvironment) {}\n\n\tonParticipantJoined(participant: Participant, environment: AgenticEnvironment) {}\n\n\tonParticipantLeft(participant: Participant, environment: AgenticEnvironment) {}\n\n\tonMessage(message: string) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\n\ntype InferenceItem = ReasoningItem | FunctionCallItem | ModelMessageItem\n\nexport class OpenAIInferenceRunner implements InferenceRunner {\n\tprivate readonly runtime = new OpenAIResponses()\n\n\tasync *run(context: ModelContext, model: GenerativeModel, signal?: AbortSignal): AsyncIterable<InferenceItem> {\n\t\tconst response = await this.runtime.infer(new InferenceRequest(model, context))\n\t\tfor (const item of response.contextItems) {\n\t\t\tyield item as InferenceItem\n\t\t}\n\t}\n}\n","import { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class DefaultFunctionCallRunner implements FunctionCallRunner {\n\tconstructor(private readonly tools: Tool[]) {}\n\n\tasync *run(call: FunctionCallItem, signal?: AbortSignal): AsyncIterable<FunctionCallOutputItem> {\n\t\tconst tool = this.tools.find((t) => t.name === call.name)\n\t\tif (!tool) throw new Error(`Unknown tool: ${call.name}`)\n\n\t\tconst result = await tool.invoke(JSON.parse(call.args))\n\t\tyield FunctionCallOutputItem.create(call.callId, JSON.stringify(result))\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/openai/reasoning-effort\"\n\nexport class Gpt55 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.5\",\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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":["subscriber"]}
1
+ {"version":3,"sources":["../src/domain/model-context/model-context.ts","../src/domain/model-context/context-item/context-item.ts","../src/domain/model-context/context-item/item-content/item-content.ts","../src/domain/model-context/context-item/item-content/input-text.ts","../src/domain/model-context/context-item/client-item/user-message.ts","../src/domain/model-context/context-item/client-item/developer-message.ts","../src/domain/model-context/context-item/item-content/output-text.ts","../src/domain/model-context/context-item/model-item/model-message.ts","../src/domain/model-context/context-item/model-item/function-call.ts","../src/domain/model-context/context-item/model-item/reasoning.ts","../src/domain/model-context/context-item/client-item/function-call-output.ts","../src/domain/generative-model/inference-response.ts","../src/domain/generative-model/token-usage.ts","../src/infrastructure/providers/openai/runtime/openai-responses.ts","../src/domain/generative-model/inference-request.ts","../src/infrastructure/providers/openai/reasoning-effort.ts","../src/infrastructure/providers/openai/models/gpt-5-4-nano.ts","../src/infrastructure/providers/openai/models/gpt-5-4.ts","../src/infrastructure/providers/openai/models/gpt-5-4-mini.ts","../src/infrastructure/repository/in-memory-model-context-repository.ts","../src/domain/model-context/context-item/client-item/system-message.ts","../src/domain/agentic-environment/participant.ts","../src/domain/agentic-environment/agentic-environment.ts","../src/application/agent.ts","../src/application/human.ts","../src/application/openai-inference-runner.ts","../src/application/function-call-runner.ts","../src/infrastructure/providers/openai/models/gpt-5-5.ts"],"sourcesContent":["import { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ModelContext {\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\taddContextItem(item: ContextItem): ModelContext {\n\t\tthis.items.push(item)\n\t\treturn this\n\t}\n\n\tapplyModelOutput(items: ContextItem[]): ModelContext {\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\tgetLastItem(): ContextItem {\n\t\tif (this.items.length === 0) {\n\t\t\tthrow new Error(\"No items in context\")\n\t\t}\n\t\treturn this.items[this.items.length - 1]\n\t}\n\n\tstatic create(projectId: string): ModelContext {\n\t\tconst id = crypto.randomUUID()\n\t\treturn new ModelContext(id, projectId, [])\n\t}\n\n\tstatic rehydrate(data: { id: string; projectId: string; items: ContextItem[] }): ModelContext {\n\t\treturn new ModelContext(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 ItemContent {\n\tabstract readonly type: string\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class InputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class UserMessageItem 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): UserMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new UserMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): UserMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new UserMessageItem(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 \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class DeveloperMessageItem 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): DeveloperMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): DeveloperMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new DeveloperMessageItem(content)\n\t}\n}\n","import { ItemContent } from \"@domain/model-context/context-item/item-content/item-content\"\n\nexport class OutputText extends ItemContent {\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 \"@domain/model-context/context-item/context-item\"\nimport { OutputText } from \"@domain/model-context/context-item/item-content/output-text\"\n\nexport class ModelMessageItem 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 }): ModelMessageItem {\n\t\tconst content = OutputText.rehydrate(data)\n\t\treturn new ModelMessageItem(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 \"@domain/model-context/context-item/context-item\"\n\nexport class FunctionCallItem 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 }): FunctionCallItem {\n\t\treturn new FunctionCallItem(data.callId, data.name, data.args)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\tname: this.name,\n\t\t\targuments: this.args,\n\t\t}\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { SummaryText } from \"@domain/model-context/context-item/item-content/summary-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class ReasoningItem 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}): ReasoningItem {\n\t\treturn new ReasoningItem(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 \"@domain/model-context/context-item/context-item\"\nimport { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\n\nexport class FunctionCallOutputItem 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: string): FunctionCallOutputItem {\n\t\tconst outputText = InputText.create(output)\n\t\treturn new FunctionCallOutputItem(callId, outputText)\n\t}\n\n\tstatic rehydrate(data: { callId: string; output: InputText }): FunctionCallOutputItem {\n\t\treturn new FunctionCallOutputItem(data.callId, data.output)\n\t}\n\n\ttoJSON(): any {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcall_id: this.callId,\n\t\t\toutput: this.output.toJSON(),\n\t\t}\n\t}\n}\n","import { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { TokenUsage } from \"@domain/generative-model/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 { ModelContext } from \"@domain/model-context/model-context\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { InferenceResponse } from \"@domain/generative-model/inference-response\"\nimport { ModelRuntime } from \"@domain/generative-model/runtime/model-runtime\"\nimport { InputTokenDetails, OutputTokenDetails, TokenUsage } from \"@domain/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: ModelContext): 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.role === \"assistant\") {\n\t\t\t\treturn ModelMessageItem.rehydrate(item.content[0] as { text: string })\n\t\t\t}\n\t\t\tif (item.type === \"function_call\") {\n\t\t\t\treturn FunctionCallItem.rehydrate({\n\t\t\t\t\tcallId: item.call_id,\n\t\t\t\t\tname: item.name,\n\t\t\t\t\targs: item.arguments,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\treturn ReasoningItem.rehydrate(item)\n\t\t\t}\n\t\t})\n\t}\n}\n","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\n\nexport class InferenceRequest {\n\treadonly model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability\n\treadonly context: ModelContext\n\n\tconstructor(model: GenerativeModel & ReasoningEffort<string> & ToolCallingCapability, context: ModelContext) {\n\t\tthis.model = model\n\t\tthis.context = context\n\t}\n}\n","import { ReasoningEffort } from \"@domain/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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 \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/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","import { ModelContext } from \"@domain/model-context/model-context\"\nimport { ModelContextRepository } from \"@domain/model-context/model-context-repository\"\n\nexport class InMemoryModelContextRepository implements ModelContextRepository {\n\tprivate readonly store = new Map<string, ModelContext>()\n\tprivate readonly projectIndex = new Map<string, Set<string>>()\n\n\tasync save(context: ModelContext): Promise<void> {\n\t\tconst existing = this.store.get(context.id)\n\t\tif (existing && existing.projectId !== context.projectId) {\n\t\t\tconst prevSet = this.projectIndex.get(existing.projectId)\n\t\t\tprevSet?.delete(existing.id)\n\t\t\tif (prevSet && prevSet.size === 0) this.projectIndex.delete(existing.projectId)\n\t\t}\n\n\t\tthis.store.set(context.id, this.clone(context))\n\n\t\tlet set = this.projectIndex.get(context.projectId)\n\t\tif (!set) {\n\t\t\tset = new Set<string>()\n\t\t\tthis.projectIndex.set(context.projectId, set)\n\t\t}\n\t\tset.add(context.id)\n\t}\n\n\tasync get(id: string): Promise<ModelContext> {\n\t\tconst context = this.store.get(id)\n\t\tif (!context) {\n\t\t\tthrow new Error(`Context not found: ${id}`)\n\t\t}\n\t\treturn this.clone(context)\n\t}\n\n\tasync getByProjectId(projectId: string): Promise<ModelContext[]> {\n\t\tconst ids = this.projectIndex.get(projectId)\n\t\tif (!ids || ids.size === 0) return []\n\t\treturn [...ids]\n\t\t\t.map((id) => this.store.get(id))\n\t\t\t.filter((c): c is ModelContext => Boolean(c))\n\t\t\t.map((c) => this.clone(c))\n\t}\n\n\tprivate clone(context: ModelContext): ModelContext {\n\t\treturn ModelContext.rehydrate({\n\t\t\tid: context.id,\n\t\t\tprojectId: context.projectId,\n\t\t\titems: [...context.getItems()],\n\t\t})\n\t}\n}\n","import { InputText } from \"@domain/model-context/context-item/item-content/input-text\"\nimport { ContextItem } from \"@domain/model-context/context-item/context-item\"\n\nexport class SystemMessageItem extends ContextItem {\n\treadonly type = \"message\"\n\treadonly role = \"system\"\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): SystemMessageItem {\n\t\tconst content = InputText.create(text)\n\t\treturn new SystemMessageItem(content)\n\t}\n\n\tstatic rehydrate(data: { text: string }): SystemMessageItem {\n\t\tconst content = InputText.rehydrate(data)\n\t\treturn new SystemMessageItem(content)\n\t}\n}\n","import { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { AgenticEnvironment } from \"./agentic-environment\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport abstract class Participant {\n\tprivate environments: AgenticEnvironment[] = []\n\n\tjoin(environment: AgenticEnvironment) {\n\t\tif (this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.subscribe(this)\n\t\tthis.environments.push(environment)\n\t}\n\n\tleave(environment: AgenticEnvironment) {\n\t\tif (!this.isJoinedTo(environment)) {\n\t\t\treturn\n\t\t}\n\t\tenvironment.unsubscribe(this)\n\t\tthis.environments = this.environments.filter((e) => e !== environment)\n\t}\n\n\tprotected isJoinedTo(environment: AgenticEnvironment): boolean {\n\t\treturn this.environments.includes(environment)\n\t}\n\n\tgetEnvironments(): AgenticEnvironment[] {\n\t\treturn this.environments\n\t}\n\n\tabstract onParticipantJoined(participant: Participant): Promise<void> | void\n\n\tabstract onParticipantLeft(participant: Participant): Promise<void> | void\n\n\tabstract onJoined(): Promise<void> | void\n\n\tabstract onLeft(): Promise<void> | void\n\n\tabstract onFunctionCall(item: FunctionCallItem): Promise<void> | void\n\n\tabstract onExternalFunctionCall(source: Participant, item: FunctionCallItem): Promise<void> | void\n\n\tabstract onFunctionCallOutput(item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): Promise<void> | void\n\n\tabstract onReasoning(item: ReasoningItem): Promise<void> | void\n\n\tabstract onExternalReasoning(source: Participant, item: ReasoningItem): Promise<void> | void\n\n\tabstract onModelMessage(item: ModelMessageItem): Promise<void> | void\n\n\tabstract onExternalModelMessage(source: Participant, item: ModelMessageItem): Promise<void> | void\n\n\tabstract onMessage(message: string): Promise<void> | void\n}\n","import { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class AgenticEnvironment {\n\tprotected subscribers: Participant[] = []\n\tprivate isActive = false\n\n\tsubscribe(subscriber: Participant) {\n\t\tthis.subscribers.push(subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onJoined()\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantJoined(subscriber)\n\t\t\t}\n\t\t}\n\t}\n\n\tunsubscribe(subscriber: Participant) {\n\t\tthis.subscribers = this.subscribers.filter((p) => p !== subscriber)\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === subscriber) {\n\t\t\t\tsubscriber.onLeft()\n\t\t\t} else {\n\t\t\t\tsubscriber.onParticipantLeft(subscriber)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCall(source: Participant, item: FunctionCallItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCall(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCall(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverModelMessage(source: Participant, item: ModelMessageItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onModelMessage(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalModelMessage(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverReasoning(source: Participant, item: ReasoningItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onReasoning(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalReasoning(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverFunctionCallOutput(source: Participant, item: FunctionCallOutputItem): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) {\n\t\t\t\tsubscriber.onFunctionCallOutput(item)\n\t\t\t} else {\n\t\t\t\tsubscriber.onExternalFunctionCallOutput(source, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tdeliverMessage(source: Participant, message: string): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tif (subscriber === source) continue\n\n\t\t\tsubscriber.onMessage(message)\n\t\t}\n\t}\n\n\tstart() {\n\t\tthis.isActive = true\n\t\twhile (this.isActive) {\n\t\t\tsetTimeout(() => {}, 100)\n\t\t}\n\t}\n\n\tstop() {\n\t\tthis.isActive = false\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { FunctionCallCapable, InferenceCapable, InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\n\nexport class BaseAgentParticipant extends Participant implements InputCapable, InferenceCapable, FunctionCallCapable {\n\tprivate inputSource: InputStream\n\tprivate inferenceRunner: InferenceRunner\n\tprivate functionCallRunner: FunctionCallRunner\n\n\tconstructor(inputSource: InputStream, inferenceRunner: InferenceRunner, functionCallRunner: FunctionCallRunner) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t\tthis.inferenceRunner = inferenceRunner\n\t\tthis.functionCallRunner = functionCallRunner\n\t}\n\n\tonJoined() {}\n\n\tonLeft() {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tonMessage(message: string) {}\n\n\tasync executeFunctionCall(\n\t\tenvironment: AgenticEnvironment,\n\t\tfunctionCallItem: FunctionCallItem,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.functionCallRunner.run(functionCallItem, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tawait environment.deliverFunctionCallOutput(this, item)\n\t\t}\n\t}\n\n\tasync runInference(\n\t\tenvironment: AgenticEnvironment,\n\t\tcontext: ModelContext,\n\t\tmodel: GenerativeModel,\n\t\tsignal?: AbortSignal,\n\t): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inferenceRunner.run(context, model, signal)\n\n\t\tfor await (const item of stream) {\n\t\t\tif (item.type === \"reasoning\") {\n\t\t\t\tawait environment.deliverReasoning(this, item)\n\t\t\t} else if (item.type === \"function_call\") {\n\t\t\t\tawait environment.deliverFunctionCall(this, item)\n\t\t\t} else if (item.type === \"message\" && item.role === \"assistant\") {\n\t\t\t\tawait environment.deliverModelMessage(this, item)\n\t\t\t}\n\t\t}\n\t}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { AgenticEnvironment } from \"@domain/agentic-environment/agentic-environment\"\nimport { InputCapable } from \"@domain/agentic-environment/capabilities\"\nimport { InputStream } from \"@domain/agentic-environment/input-stream\"\nimport { Participant } from \"@domain/agentic-environment/participant\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class BaseHumanParticipant extends Participant implements InputCapable {\n\tprivate inputSource: InputStream\n\n\tconstructor(inputSource: InputStream) {\n\t\tsuper()\n\t\tthis.inputSource = inputSource\n\t}\n\n\tonJoined() {}\n\t\n\tonLeft() {}\n\n\tonParticipantJoined(participant: Participant) {}\n\n\tonParticipantLeft(participant: Participant) {}\n\n\tonMessage(message: string) {}\n\n\tonFunctionCall(item: FunctionCallItem) {}\n\n\tonFunctionCallOutput(item: FunctionCallOutputItem) {}\n\n\tonReasoning(item: ReasoningItem) {}\n\n\tonModelMessage(item: ModelMessageItem) {}\n\n\tonExternalFunctionCall(source: Participant, item: FunctionCallItem) {}\n\n\tonExternalFunctionCallOutput(source: Participant, item: FunctionCallOutputItem) {}\n\n\tonExternalReasoning(source: Participant, item: ReasoningItem) {}\n\n\tonExternalModelMessage(source: Participant, item: ModelMessageItem) {}\n\n\tasync streamInput(environment: AgenticEnvironment): Promise<void> {\n\t\tif (!this.isJoinedTo(environment)) return\n\n\t\tconst stream = this.inputSource.stream()\n\t\tfor await (const message of stream) {\n\t\t\tawait environment.deliverMessage(this, message)\n\t\t}\n\t}\n}\n","import { InferenceRunner } from \"@domain/agentic-environment/inference-runner\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { InferenceRequest } from \"@domain/generative-model/inference-request\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\nimport { ModelMessageItem } from \"@domain/model-context/context-item/model-item/model-message\"\nimport { ReasoningItem } from \"@domain/model-context/context-item/model-item/reasoning\"\nimport { ModelContext } from \"@domain/model-context/model-context\"\nimport { OpenAIResponses } from \"@infra/providers/openai/runtime/openai-responses\"\n\ntype InferenceItem = ReasoningItem | FunctionCallItem | ModelMessageItem\n\nexport class OpenAIInferenceRunner implements InferenceRunner {\n\tprivate readonly runtime = new OpenAIResponses()\n\n\tasync *run(context: ModelContext, model: GenerativeModel, signal?: AbortSignal): AsyncIterable<InferenceItem> {\n\t\tconst response = await this.runtime.infer(new InferenceRequest(model, context))\n\t\tfor (const item of response.contextItems) {\n\t\t\tyield item as InferenceItem\n\t\t}\n\t}\n}\n","import { FunctionCallRunner } from \"@domain/agentic-environment/function-call-runner\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { FunctionCallOutputItem } from \"@domain/model-context/context-item/client-item/function-call-output\"\nimport { FunctionCallItem } from \"@domain/model-context/context-item/model-item/function-call\"\n\nexport class DefaultFunctionCallRunner implements FunctionCallRunner {\n\tconstructor(private readonly tools: Tool[]) {}\n\n\tasync *run(call: FunctionCallItem, signal?: AbortSignal): AsyncIterable<FunctionCallOutputItem> {\n\t\tconst tool = this.tools.find((t) => t.name === call.name)\n\t\tif (!tool) throw new Error(`Unknown tool: ${call.name}`)\n\n\t\tconst result = await tool.invoke(JSON.parse(call.args))\n\t\tyield FunctionCallOutputItem.create(call.callId, JSON.stringify(result))\n\t}\n}\n","import { ReasoningEffort } from \"@domain/generative-model/capabilities/reasoning-effort\"\nimport { ToolCallingCapability } from \"@domain/generative-model/capabilities/tool-calling\"\nimport { GenerativeModel } from \"@domain/generative-model/generative-model\"\nimport { Tool } from \"@domain/generative-model/tool\"\nimport { OpenAIReasoningEffort, OpenAIReasoningEffortType } from \"@infra/providers/openai/reasoning-effort\"\n\nexport class Gpt55 implements GenerativeModel, ReasoningEffort<OpenAIReasoningEffortType>, ToolCallingCapability {\n\treadonly specification = {\n\t\tname: \"gpt-5.5\",\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\n\tgetReasoningEffort(): OpenAIReasoningEffortType {\n\t\treturn this.effort.getReasoningEffort()\n\t}\n}\n"],"mappings":"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","names":["subscriber"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mozaik-ai/core",
3
- "version": "3.9.0",
3
+ "version": "3.9.1",
4
4
  "description": "A TypeScript framework for building reactive agents",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",