@agentxjs/core 1.9.10-dev → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +342 -0
  2. package/dist/RpcClient-BcJ_zAGu.d.ts +304 -0
  3. package/dist/agent/engine/internal/index.d.ts +20 -15
  4. package/dist/agent/engine/internal/index.js +1 -2
  5. package/dist/agent/engine/mealy/index.js +0 -1
  6. package/dist/agent/index.d.ts +4 -4
  7. package/dist/agent/index.js +15 -15
  8. package/dist/agent/types/index.d.ts +4 -4
  9. package/dist/agent/types/index.js +1 -2
  10. package/dist/bash/index.d.ts +29 -0
  11. package/dist/bash/index.js +7 -0
  12. package/dist/{bus-uF1DM2ox.d.ts → bus-C9FLWIu8.d.ts} +3 -1
  13. package/dist/{chunk-K6WXQ2RW.js → chunk-23UUBQXR.js} +1 -2
  14. package/dist/chunk-23UUBQXR.js.map +1 -0
  15. package/dist/chunk-BHOD5PKR.js +55 -0
  16. package/dist/chunk-BHOD5PKR.js.map +1 -0
  17. package/dist/{chunk-I7GYR3MN.js → chunk-DEAR6N3O.js} +77 -91
  18. package/dist/chunk-DEAR6N3O.js.map +1 -0
  19. package/dist/chunk-FI7WQFGV.js +37 -0
  20. package/dist/chunk-FI7WQFGV.js.map +1 -0
  21. package/dist/{chunk-AT5P47YA.js → chunk-JTKCV7IS.js} +9 -9
  22. package/dist/chunk-JTKCV7IS.js.map +1 -0
  23. package/dist/{chunk-E5FPOAPO.js → chunk-LTVNPHST.js} +1 -1
  24. package/dist/chunk-LTVNPHST.js.map +1 -0
  25. package/dist/chunk-SKS7S2RY.js +1 -0
  26. package/dist/common/logger/index.js +0 -2
  27. package/dist/common/logger/index.js.map +1 -1
  28. package/dist/container/index.d.ts +3 -4
  29. package/dist/container/index.js +0 -2
  30. package/dist/container/index.js.map +1 -1
  31. package/dist/driver/index.d.ts +2 -310
  32. package/dist/event/index.d.ts +4 -4
  33. package/dist/event/index.js +1 -2
  34. package/dist/event/types/index.d.ts +4 -10
  35. package/dist/event/types/index.js +1 -2
  36. package/dist/{event-CDuTzs__.d.ts → event-DNWOBSBO.d.ts} +3 -4
  37. package/dist/image/index.d.ts +9 -5
  38. package/dist/image/index.js +5 -2
  39. package/dist/image/index.js.map +1 -1
  40. package/dist/index-CuS1i5V-.d.ts +609 -0
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +16 -16
  43. package/dist/{message-BMrMm1pq.d.ts → message-03TJzvIX.d.ts} +10 -33
  44. package/dist/mq/index.js +0 -2
  45. package/dist/mq/index.js.map +1 -1
  46. package/dist/network/index.d.ts +3 -291
  47. package/dist/network/index.js +3 -14
  48. package/dist/network/index.js.map +1 -1
  49. package/dist/persistence/index.d.ts +2 -155
  50. package/dist/platform/index.d.ts +76 -0
  51. package/dist/platform/index.js.map +1 -0
  52. package/dist/runtime/index.d.ts +26 -59
  53. package/dist/runtime/index.js +117 -33
  54. package/dist/runtime/index.js.map +1 -1
  55. package/dist/session/index.d.ts +4 -52
  56. package/dist/session/index.js +4 -51
  57. package/dist/session/index.js.map +1 -1
  58. package/dist/types-aE74Eo6G.d.ts +90 -0
  59. package/package.json +10 -5
  60. package/src/agent/__tests__/engine/internal/messageAssemblerProcessor.test.ts +291 -87
  61. package/src/agent/__tests__/engine/internal/turnTrackerProcessor.test.ts +56 -75
  62. package/src/agent/engine/MealyMachine.ts +1 -1
  63. package/src/agent/engine/internal/messageAssemblerProcessor.ts +99 -114
  64. package/src/agent/engine/internal/turnTrackerProcessor.ts +23 -27
  65. package/src/agent/types/event.ts +0 -4
  66. package/src/agent/types/index.ts +1 -3
  67. package/src/agent/types/message.ts +9 -43
  68. package/src/bash/index.ts +21 -0
  69. package/src/bash/tool.ts +57 -0
  70. package/src/bash/types.ts +108 -0
  71. package/src/driver/index.ts +1 -0
  72. package/src/driver/types.ts +122 -4
  73. package/src/event/__tests__/EventBus.test.ts +1 -1
  74. package/src/event/types/agent.ts +0 -11
  75. package/src/event/types/command.ts +3 -1
  76. package/src/image/Image.ts +11 -1
  77. package/src/image/types.ts +8 -2
  78. package/src/network/RpcClient.ts +21 -20
  79. package/src/network/index.ts +1 -1
  80. package/src/persistence/types.ts +5 -2
  81. package/src/platform/index.ts +21 -0
  82. package/src/platform/types.ts +84 -0
  83. package/src/runtime/AgentXRuntime.ts +184 -57
  84. package/src/runtime/__tests__/AgentXRuntime.test.ts +343 -0
  85. package/src/runtime/index.ts +7 -19
  86. package/src/runtime/types.ts +10 -62
  87. package/dist/chunk-7D4SUZUM.js +0 -38
  88. package/dist/chunk-AT5P47YA.js.map +0 -1
  89. package/dist/chunk-E5FPOAPO.js.map +0 -1
  90. package/dist/chunk-I7GYR3MN.js.map +0 -1
  91. package/dist/chunk-K6WXQ2RW.js.map +0 -1
  92. package/dist/workspace/index.d.ts +0 -111
  93. package/dist/wrapper-Y3UTVU2E.js +0 -3635
  94. package/dist/wrapper-Y3UTVU2E.js.map +0 -1
  95. package/src/workspace/index.ts +0 -27
  96. package/src/workspace/types.ts +0 -131
  97. /package/dist/{workspace → bash}/index.js.map +0 -0
  98. /package/dist/{chunk-7D4SUZUM.js.map → chunk-SKS7S2RY.js.map} +0 -0
  99. /package/dist/{workspace → platform}/index.js +0 -0
@@ -1,9 +1,9 @@
1
1
  import { B as BusEvent } from '../base-m40r3Qgu.js';
2
2
  export { b as EventCategory, c as EventContext, a as EventIntent, E as EventSource, S as SystemEvent, h as hasIntent, i as isFromSource, f as isNotification, d as isRequest, e as isResult } from '../base-m40r3Qgu.js';
3
- import { E as EventBus, B as BusEventHandler, S as SubscribeOptions, U as Unsubscribe, C as CommandEventMap, a as CommandRequestType, R as RequestDataFor, b as ResponseEventFor, c as EventConsumer, d as EventProducer } from '../bus-uF1DM2ox.js';
4
- export { u as AgentDestroyAllRequest, v as AgentDestroyAllResponse, s as AgentDestroyRequest, t as AgentDestroyResponse, o as AgentGetRequest, p as AgentGetResponse, y as AgentInterruptRequest, z as AgentInterruptResponse, q as AgentListRequest, r as AgentListResponse, A as AgentXResponse, a1 as CommandEvent, a2 as CommandEventType, $ as CommandRequest, a6 as CommandRequestResponseMap, a0 as CommandResponse, i as ContainerCreateRequest, j as ContainerCreateResponse, k as ContainerGetRequest, l as ContainerGetResponse, m as ContainerListRequest, n as ContainerListResponse, F as FilePart, D as ImageCreateRequest, G as ImageCreateResponse, X as ImageDeleteRequest, Y as ImageDeleteResponse, V as ImageGetRequest, W as ImageGetResponse, h as ImageListItem, P as ImageListRequest, Q as ImageListResponse, Z as ImageMessagesRequest, _ as ImageMessagesResponse, f as ImageMetadata, I as ImagePart, g as ImageRecord, H as ImageRunRequest, J as ImageRunResponse, K as ImageStopRequest, L as ImageStopResponse, N as ImageUpdateRequest, O as ImageUpdateResponse, M as McpServerConfig, w as MessageSendRequest, x as MessageSendResponse, a7 as ResponseTypeFor, T as TextPart, e as UserContentPart, a3 as isCommandEvent, a4 as isCommandRequest, a5 as isCommandResponse } from '../bus-uF1DM2ox.js';
5
- export { AgentErrorReceivedEvent, AgentEvent, AgentEventCategory, AgentInputJsonDeltaEvent, AgentMessageDeltaEvent, AgentMessageEvent, AgentMessageEventBase, AgentMessageEventType, AgentMessageStartEvent, AgentMessageStopEvent, AgentRegisteredEvent, AgentStateEvent, AgentStateEventBase, AgentStateEventType, AgentStopReason, AgentStreamEvent, AgentStreamEventBase, AgentStreamEventType, AgentTextDeltaEvent, AgentToolResultEvent, AgentToolUseStartEvent, AgentToolUseStopEvent, AgentTurnEvent, AgentTurnEventBase, AgentTurnEventType, AgentUnregisteredEvent, AssistantMessageEvent, BaseAgentEvent, ConnectedEvent, ConnectionEvent, ConnectionEventType, ContainerCreatedEvent, ContainerDestroyedEvent, ContainerEvent, ContainerLifecycleEvent, ConversationEndEvent, ConversationInterruptedEvent, ConversationQueuedEvent, ConversationRespondingEvent, ConversationStartEvent, ConversationThinkingEvent, DirectoryListRequest, DirectoryListResult, DisconnectedEvent, DriveableEvent, DriveableEventType, EnvironmentEvent, ErrorEvent, ErrorEventMap, ErrorEventType, ErrorMessageEvent, ErrorOccurredEvent, ErrorReceivedEvent, FileDeleteRequest, FileDeletedEvent, FileReadRequest, FileReadResult, FileWriteRequest, FileWrittenEvent, InputJsonDeltaEvent, InterruptedEvent, MCPEvent, MCPRequestEvent, MCPResultEvent, MCPServerConnectedEvent, MCPServerDisconnectedEvent, MessageDeltaEvent, MessagePersistRequest, MessagePersistedEvent, MessageStartEvent, MessageStopEvent, ReconnectingEvent, ResourceReadRequest, ResourceReadResult, SandboxEvent, SessionActionEvent, SessionActionRequestEvent, SessionActionResultEvent, SessionCreatedEvent, SessionDestroyedEvent, SessionEvent, SessionForkRequest, SessionForkedEvent, SessionLifecycleEvent, SessionPersistEvent, SessionPersistRequestEvent, SessionPersistResultEvent, SessionResumeRequest, SessionResumedEvent, SessionSaveRequest, SessionSavedEvent, SessionTitleUpdateRequest, SessionTitleUpdatedEvent, StopReason, SystemError, TextContentBlockStartEvent, TextContentBlockStopEvent, TextDeltaEvent, TokenUsage, ToolCallEvent, ToolCallMessageEvent, ToolCompletedEvent, ToolExecuteRequest, ToolExecutedEvent, ToolExecutingEvent, ToolExecutionErrorEvent, ToolFailedEvent, ToolPlannedEvent, ToolResultEvent, ToolResultMessageEvent, ToolUseContentBlockStartEvent, ToolUseContentBlockStopEvent, TurnRequestEvent, TurnResponseEvent, UserMessageEvent, WorkdirErrorEvent, WorkdirEvent, WorkdirRequestEvent, WorkdirResultEvent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isConnectionEvent, isContainerEvent, isContainerLifecycleEvent, isDriveableEvent, isMCPEvent, isSandboxEvent, isSessionActionEvent, isSessionEvent, isSessionLifecycleEvent, isSessionPersistEvent, isStopReason, isWorkdirEvent } from './types/index.js';
6
- import '../message-BMrMm1pq.js';
3
+ import { E as EventBus, B as BusEventHandler, S as SubscribeOptions, U as Unsubscribe, C as CommandEventMap, a as CommandRequestType, R as RequestDataFor, b as ResponseEventFor, c as EventConsumer, d as EventProducer } from '../bus-C9FLWIu8.js';
4
+ export { u as AgentDestroyAllRequest, v as AgentDestroyAllResponse, s as AgentDestroyRequest, t as AgentDestroyResponse, o as AgentGetRequest, p as AgentGetResponse, y as AgentInterruptRequest, z as AgentInterruptResponse, q as AgentListRequest, r as AgentListResponse, A as AgentXResponse, a1 as CommandEvent, a2 as CommandEventType, $ as CommandRequest, a6 as CommandRequestResponseMap, a0 as CommandResponse, i as ContainerCreateRequest, j as ContainerCreateResponse, k as ContainerGetRequest, l as ContainerGetResponse, m as ContainerListRequest, n as ContainerListResponse, F as FilePart, D as ImageCreateRequest, G as ImageCreateResponse, X as ImageDeleteRequest, Y as ImageDeleteResponse, V as ImageGetRequest, W as ImageGetResponse, h as ImageListItem, P as ImageListRequest, Q as ImageListResponse, Z as ImageMessagesRequest, _ as ImageMessagesResponse, f as ImageMetadata, I as ImagePart, g as ImageRecord, H as ImageRunRequest, J as ImageRunResponse, K as ImageStopRequest, L as ImageStopResponse, N as ImageUpdateRequest, O as ImageUpdateResponse, M as McpServerConfig, w as MessageSendRequest, x as MessageSendResponse, a7 as ResponseTypeFor, T as TextPart, e as UserContentPart, a3 as isCommandEvent, a4 as isCommandRequest, a5 as isCommandResponse } from '../bus-C9FLWIu8.js';
5
+ export { AgentErrorReceivedEvent, AgentEvent, AgentEventCategory, AgentInputJsonDeltaEvent, AgentMessageDeltaEvent, AgentMessageEvent, AgentMessageEventBase, AgentMessageEventType, AgentMessageStartEvent, AgentMessageStopEvent, AgentRegisteredEvent, AgentStateEvent, AgentStateEventBase, AgentStateEventType, AgentStopReason, AgentStreamEvent, AgentStreamEventBase, AgentStreamEventType, AgentTextDeltaEvent, AgentToolResultEvent, AgentToolUseStartEvent, AgentToolUseStopEvent, AgentTurnEvent, AgentTurnEventBase, AgentTurnEventType, AgentUnregisteredEvent, AssistantMessageEvent, BaseAgentEvent, ConnectedEvent, ConnectionEvent, ConnectionEventType, ContainerCreatedEvent, ContainerDestroyedEvent, ContainerEvent, ContainerLifecycleEvent, ConversationEndEvent, ConversationInterruptedEvent, ConversationQueuedEvent, ConversationRespondingEvent, ConversationStartEvent, ConversationThinkingEvent, DirectoryListRequest, DirectoryListResult, DisconnectedEvent, DriveableEvent, DriveableEventType, EnvironmentEvent, ErrorEvent, ErrorEventMap, ErrorEventType, ErrorMessageEvent, ErrorOccurredEvent, ErrorReceivedEvent, FileDeleteRequest, FileDeletedEvent, FileReadRequest, FileReadResult, FileWriteRequest, FileWrittenEvent, InputJsonDeltaEvent, InterruptedEvent, MCPEvent, MCPRequestEvent, MCPResultEvent, MCPServerConnectedEvent, MCPServerDisconnectedEvent, MessageDeltaEvent, MessagePersistRequest, MessagePersistedEvent, MessageStartEvent, MessageStopEvent, ReconnectingEvent, ResourceReadRequest, ResourceReadResult, SandboxEvent, SessionActionEvent, SessionActionRequestEvent, SessionActionResultEvent, SessionCreatedEvent, SessionDestroyedEvent, SessionEvent, SessionForkRequest, SessionForkedEvent, SessionLifecycleEvent, SessionPersistEvent, SessionPersistRequestEvent, SessionPersistResultEvent, SessionResumeRequest, SessionResumedEvent, SessionSaveRequest, SessionSavedEvent, SessionTitleUpdateRequest, SessionTitleUpdatedEvent, StopReason, SystemError, TextContentBlockStartEvent, TextContentBlockStopEvent, TextDeltaEvent, TokenUsage, ToolCallEvent, ToolCompletedEvent, ToolExecuteRequest, ToolExecutedEvent, ToolExecutingEvent, ToolExecutionErrorEvent, ToolFailedEvent, ToolPlannedEvent, ToolResultEvent, ToolResultMessageEvent, ToolUseContentBlockStartEvent, ToolUseContentBlockStopEvent, TurnRequestEvent, TurnResponseEvent, UserMessageEvent, WorkdirErrorEvent, WorkdirEvent, WorkdirRequestEvent, WorkdirResultEvent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isConnectionEvent, isContainerEvent, isContainerLifecycleEvent, isDriveableEvent, isMCPEvent, isSandboxEvent, isSessionActionEvent, isSessionEvent, isSessionLifecycleEvent, isSessionPersistEvent, isStopReason, isWorkdirEvent } from './types/index.js';
6
+ import '../message-03TJzvIX.js';
7
7
 
8
8
  /**
9
9
  * EventBus - Central event bus implementation
@@ -27,8 +27,7 @@ import {
27
27
  isSessionPersistEvent,
28
28
  isStopReason,
29
29
  isWorkdirEvent
30
- } from "../chunk-E5FPOAPO.js";
31
- import "../chunk-7D4SUZUM.js";
30
+ } from "../chunk-LTVNPHST.js";
32
31
  export {
33
32
  EventBusImpl,
34
33
  hasIntent,
@@ -1,7 +1,7 @@
1
1
  import { S as SystemEvent, c as EventContext } from '../../base-m40r3Qgu.js';
2
2
  export { B as BusEvent, b as EventCategory, a as EventIntent, E as EventSource, h as hasIntent, i as isFromSource, f as isNotification, d as isRequest, e as isResult } from '../../base-m40r3Qgu.js';
3
- export { u as AgentDestroyAllRequest, v as AgentDestroyAllResponse, s as AgentDestroyRequest, t as AgentDestroyResponse, o as AgentGetRequest, p as AgentGetResponse, y as AgentInterruptRequest, z as AgentInterruptResponse, q as AgentListRequest, r as AgentListResponse, A as AgentXResponse, B as BusEventHandler, a1 as CommandEvent, C as CommandEventMap, a2 as CommandEventType, $ as CommandRequest, a6 as CommandRequestResponseMap, a as CommandRequestType, a0 as CommandResponse, i as ContainerCreateRequest, j as ContainerCreateResponse, k as ContainerGetRequest, l as ContainerGetResponse, m as ContainerListRequest, n as ContainerListResponse, E as EventBus, c as EventConsumer, d as EventProducer, F as FilePart, D as ImageCreateRequest, G as ImageCreateResponse, X as ImageDeleteRequest, Y as ImageDeleteResponse, V as ImageGetRequest, W as ImageGetResponse, h as ImageListItem, P as ImageListRequest, Q as ImageListResponse, Z as ImageMessagesRequest, _ as ImageMessagesResponse, f as ImageMetadata, I as ImagePart, g as ImageRecord, H as ImageRunRequest, J as ImageRunResponse, K as ImageStopRequest, L as ImageStopResponse, N as ImageUpdateRequest, O as ImageUpdateResponse, M as McpServerConfig, w as MessageSendRequest, x as MessageSendResponse, R as RequestDataFor, b as ResponseEventFor, a7 as ResponseTypeFor, S as SubscribeOptions, T as TextPart, U as Unsubscribe, e as UserContentPart, a3 as isCommandEvent, a4 as isCommandRequest, a5 as isCommandResponse } from '../../bus-uF1DM2ox.js';
4
- import { U as UserMessage, A as AssistantMessage, T as ToolCallMessage, a as ToolResultMessage, E as ErrorMessage } from '../../message-BMrMm1pq.js';
3
+ export { u as AgentDestroyAllRequest, v as AgentDestroyAllResponse, s as AgentDestroyRequest, t as AgentDestroyResponse, o as AgentGetRequest, p as AgentGetResponse, y as AgentInterruptRequest, z as AgentInterruptResponse, q as AgentListRequest, r as AgentListResponse, A as AgentXResponse, B as BusEventHandler, a1 as CommandEvent, C as CommandEventMap, a2 as CommandEventType, $ as CommandRequest, a6 as CommandRequestResponseMap, a as CommandRequestType, a0 as CommandResponse, i as ContainerCreateRequest, j as ContainerCreateResponse, k as ContainerGetRequest, l as ContainerGetResponse, m as ContainerListRequest, n as ContainerListResponse, E as EventBus, c as EventConsumer, d as EventProducer, F as FilePart, D as ImageCreateRequest, G as ImageCreateResponse, X as ImageDeleteRequest, Y as ImageDeleteResponse, V as ImageGetRequest, W as ImageGetResponse, h as ImageListItem, P as ImageListRequest, Q as ImageListResponse, Z as ImageMessagesRequest, _ as ImageMessagesResponse, f as ImageMetadata, I as ImagePart, g as ImageRecord, H as ImageRunRequest, J as ImageRunResponse, K as ImageStopRequest, L as ImageStopResponse, N as ImageUpdateRequest, O as ImageUpdateResponse, M as McpServerConfig, w as MessageSendRequest, x as MessageSendResponse, R as RequestDataFor, b as ResponseEventFor, a7 as ResponseTypeFor, S as SubscribeOptions, T as TextPart, U as Unsubscribe, e as UserContentPart, a3 as isCommandEvent, a4 as isCommandRequest, a5 as isCommandResponse } from '../../bus-C9FLWIu8.js';
4
+ import { U as UserMessage, A as AssistantMessage, T as ToolResultMessage, E as ErrorMessage } from '../../message-03TJzvIX.js';
5
5
 
6
6
  /**
7
7
  * Environment Events - External world events (LLM API, Network)
@@ -546,12 +546,6 @@ interface UserMessageEvent extends AgentMessageEventBase<"user_message", UserMes
546
546
  */
547
547
  interface AssistantMessageEvent extends AgentMessageEventBase<"assistant_message", AssistantMessage> {
548
548
  }
549
- /**
550
- * ToolCallMessageEvent - Tool call message (part of assistant turn)
551
- * Data: Complete ToolCallMessage object
552
- */
553
- interface ToolCallMessageEvent extends AgentMessageEventBase<"tool_call_message", ToolCallMessage> {
554
- }
555
549
  /**
556
550
  * ToolResultMessageEvent - Tool result message
557
551
  * Data: Complete ToolResultMessage object
@@ -570,7 +564,7 @@ interface ErrorMessageEvent extends AgentMessageEventBase<"error_message", Error
570
564
  /**
571
565
  * AgentMessageEvent - All message events
572
566
  */
573
- type AgentMessageEvent = UserMessageEvent | AssistantMessageEvent | ToolCallMessageEvent | ToolResultMessageEvent | ErrorMessageEvent;
567
+ type AgentMessageEvent = UserMessageEvent | AssistantMessageEvent | ToolResultMessageEvent | ErrorMessageEvent;
574
568
  /**
575
569
  * AgentMessageEventType - String literal union
576
570
  */
@@ -1146,4 +1140,4 @@ declare function isContainerEvent(event: {
1146
1140
  source?: string;
1147
1141
  }): event is ContainerEvent;
1148
1142
 
1149
- export { type AgentErrorReceivedEvent, type AgentEvent, type AgentEventCategory, type AgentInputJsonDeltaEvent, type AgentMessageDeltaEvent, type AgentMessageEvent, type AgentMessageEventBase, type AgentMessageEventType, type AgentMessageStartEvent, type AgentMessageStopEvent, type AgentRegisteredEvent, type AgentStateEvent, type AgentStateEventBase, type AgentStateEventType, type AgentStopReason, type AgentStreamEvent, type AgentStreamEventBase, type AgentStreamEventType, type AgentTextDeltaEvent, type AgentToolResultEvent, type AgentToolUseStartEvent, type AgentToolUseStopEvent, type AgentTurnEvent, type AgentTurnEventBase, type AgentTurnEventType, type AgentUnregisteredEvent, type AssistantMessageEvent, type BaseAgentEvent, type ConnectedEvent, type ConnectionEvent, type ConnectionEventType, type ContainerCreatedEvent, type ContainerDestroyedEvent, type ContainerEvent, type ContainerLifecycleEvent, type ConversationEndEvent, type ConversationInterruptedEvent, type ConversationQueuedEvent, type ConversationRespondingEvent, type ConversationStartEvent, type ConversationThinkingEvent, type DirectoryListRequest, type DirectoryListResult, type DisconnectedEvent, type DriveableEvent, type DriveableEventType, type EnvironmentEvent, type ErrorEvent, type ErrorEventMap, type ErrorEventType, type ErrorMessageEvent, type ErrorOccurredEvent, type ErrorReceivedEvent, EventContext, type FileDeleteRequest, type FileDeletedEvent, type FileReadRequest, type FileReadResult, type FileWriteRequest, type FileWrittenEvent, type InputJsonDeltaEvent, type InterruptedEvent, type MCPEvent, type MCPRequestEvent, type MCPResultEvent, type MCPServerConnectedEvent, type MCPServerDisconnectedEvent, type MessageDeltaEvent, type MessagePersistRequest, type MessagePersistedEvent, type MessageStartEvent, type MessageStopEvent, type ReconnectingEvent, type ResourceReadRequest, type ResourceReadResult, type SandboxEvent, type SessionActionEvent, type SessionActionRequestEvent, type SessionActionResultEvent, type SessionCreatedEvent, type SessionDestroyedEvent, type SessionEvent, type SessionForkRequest, type SessionForkedEvent, type SessionLifecycleEvent, type SessionPersistEvent, type SessionPersistRequestEvent, type SessionPersistResultEvent, type SessionResumeRequest, type SessionResumedEvent, type SessionSaveRequest, type SessionSavedEvent, type SessionTitleUpdateRequest, type SessionTitleUpdatedEvent, type StopReason, type SystemError, SystemEvent, type TextContentBlockStartEvent, type TextContentBlockStopEvent, type TextDeltaEvent, type TokenUsage, type ToolCallEvent, type ToolCallMessageEvent, type ToolCompletedEvent, type ToolExecuteRequest, type ToolExecutedEvent, type ToolExecutingEvent, type ToolExecutionErrorEvent, type ToolFailedEvent, type ToolPlannedEvent, type ToolResultEvent, type ToolResultMessageEvent, type ToolUseContentBlockStartEvent, type ToolUseContentBlockStopEvent, type TurnRequestEvent, type TurnResponseEvent, type UserMessageEvent, type WorkdirErrorEvent, type WorkdirEvent, type WorkdirRequestEvent, type WorkdirResultEvent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isConnectionEvent, isContainerEvent, isContainerLifecycleEvent, isDriveableEvent, isMCPEvent, isSandboxEvent, isSessionActionEvent, isSessionEvent, isSessionLifecycleEvent, isSessionPersistEvent, isStopReason, isWorkdirEvent };
1143
+ export { type AgentErrorReceivedEvent, type AgentEvent, type AgentEventCategory, type AgentInputJsonDeltaEvent, type AgentMessageDeltaEvent, type AgentMessageEvent, type AgentMessageEventBase, type AgentMessageEventType, type AgentMessageStartEvent, type AgentMessageStopEvent, type AgentRegisteredEvent, type AgentStateEvent, type AgentStateEventBase, type AgentStateEventType, type AgentStopReason, type AgentStreamEvent, type AgentStreamEventBase, type AgentStreamEventType, type AgentTextDeltaEvent, type AgentToolResultEvent, type AgentToolUseStartEvent, type AgentToolUseStopEvent, type AgentTurnEvent, type AgentTurnEventBase, type AgentTurnEventType, type AgentUnregisteredEvent, type AssistantMessageEvent, type BaseAgentEvent, type ConnectedEvent, type ConnectionEvent, type ConnectionEventType, type ContainerCreatedEvent, type ContainerDestroyedEvent, type ContainerEvent, type ContainerLifecycleEvent, type ConversationEndEvent, type ConversationInterruptedEvent, type ConversationQueuedEvent, type ConversationRespondingEvent, type ConversationStartEvent, type ConversationThinkingEvent, type DirectoryListRequest, type DirectoryListResult, type DisconnectedEvent, type DriveableEvent, type DriveableEventType, type EnvironmentEvent, type ErrorEvent, type ErrorEventMap, type ErrorEventType, type ErrorMessageEvent, type ErrorOccurredEvent, type ErrorReceivedEvent, EventContext, type FileDeleteRequest, type FileDeletedEvent, type FileReadRequest, type FileReadResult, type FileWriteRequest, type FileWrittenEvent, type InputJsonDeltaEvent, type InterruptedEvent, type MCPEvent, type MCPRequestEvent, type MCPResultEvent, type MCPServerConnectedEvent, type MCPServerDisconnectedEvent, type MessageDeltaEvent, type MessagePersistRequest, type MessagePersistedEvent, type MessageStartEvent, type MessageStopEvent, type ReconnectingEvent, type ResourceReadRequest, type ResourceReadResult, type SandboxEvent, type SessionActionEvent, type SessionActionRequestEvent, type SessionActionResultEvent, type SessionCreatedEvent, type SessionDestroyedEvent, type SessionEvent, type SessionForkRequest, type SessionForkedEvent, type SessionLifecycleEvent, type SessionPersistEvent, type SessionPersistRequestEvent, type SessionPersistResultEvent, type SessionResumeRequest, type SessionResumedEvent, type SessionSaveRequest, type SessionSavedEvent, type SessionTitleUpdateRequest, type SessionTitleUpdatedEvent, type StopReason, type SystemError, SystemEvent, type TextContentBlockStartEvent, type TextContentBlockStopEvent, type TextDeltaEvent, type TokenUsage, type ToolCallEvent, type ToolCompletedEvent, type ToolExecuteRequest, type ToolExecutedEvent, type ToolExecutingEvent, type ToolExecutionErrorEvent, type ToolFailedEvent, type ToolPlannedEvent, type ToolResultEvent, type ToolResultMessageEvent, type ToolUseContentBlockStartEvent, type ToolUseContentBlockStopEvent, type TurnRequestEvent, type TurnResponseEvent, type UserMessageEvent, type WorkdirErrorEvent, type WorkdirEvent, type WorkdirRequestEvent, type WorkdirResultEvent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isConnectionEvent, isContainerEvent, isContainerLifecycleEvent, isDriveableEvent, isMCPEvent, isSandboxEvent, isSessionActionEvent, isSessionEvent, isSessionLifecycleEvent, isSessionPersistEvent, isStopReason, isWorkdirEvent };
@@ -24,8 +24,7 @@ import {
24
24
  isSessionPersistEvent,
25
25
  isStopReason,
26
26
  isWorkdirEvent
27
- } from "../../chunk-E5FPOAPO.js";
28
- import "../../chunk-7D4SUZUM.js";
27
+ } from "../../chunk-LTVNPHST.js";
29
28
  export {
30
29
  hasIntent,
31
30
  isAgentEvent,
@@ -1,4 +1,4 @@
1
- import { U as UserMessage, A as AssistantMessage, T as ToolCallMessage, a as ToolResultMessage, E as ErrorMessage, b as TokenUsage } from './message-BMrMm1pq.js';
1
+ import { U as UserMessage, A as AssistantMessage, T as ToolResultMessage, E as ErrorMessage, a as TokenUsage } from './message-03TJzvIX.js';
2
2
 
3
3
  /**
4
4
  * Event Types - Stream, State, Message, and Turn Events
@@ -228,13 +228,12 @@ interface MessageEvent<T extends string = string, D = unknown> extends EngineEve
228
228
  }
229
229
  type UserMessageEvent = EngineEvent<"user_message", UserMessage>;
230
230
  type AssistantMessageEvent = EngineEvent<"assistant_message", AssistantMessage>;
231
- type ToolCallMessageEvent = EngineEvent<"tool_call_message", ToolCallMessage>;
232
231
  type ToolResultMessageEvent = EngineEvent<"tool_result_message", ToolResultMessage>;
233
232
  type ErrorMessageEvent = EngineEvent<"error_message", ErrorMessage>;
234
233
  /**
235
234
  * AgentMessageEvent - All lightweight message events
236
235
  */
237
- type AgentMessageEvent = UserMessageEvent | AssistantMessageEvent | ToolCallMessageEvent | ToolResultMessageEvent | ErrorMessageEvent;
236
+ type AgentMessageEvent = UserMessageEvent | AssistantMessageEvent | ToolResultMessageEvent | ErrorMessageEvent;
238
237
  /**
239
238
  * Type guard: is this a message event?
240
239
  */
@@ -293,4 +292,4 @@ type AgentOutputCallback<T extends AgentOutput = AgentOutput> = (event: T) => vo
293
292
  */
294
293
  type AgentEventHandler<T extends AgentOutput = AgentOutput> = AgentOutputCallback<T>;
295
294
 
296
- export { type AgentStateEvent as $, type AgentOutput as A, type ConversationInterruptedData as B, type ConversationQueuedData as C, type ToolPlannedData as D, type EngineEvent as E, type ToolExecutingData as F, type ToolCompletedData as G, type ToolFailedData as H, type InputJsonDeltaData as I, type ErrorOccurredData as J, type StateEvent as K, type ConversationQueuedEvent as L, type MessageStartData as M, type ConversationStartEvent as N, type ConversationThinkingEvent as O, type ConversationRespondingEvent as P, type ConversationEndEvent as Q, type ConversationInterruptedEvent as R, type StreamEvent as S, type TextDeltaData as T, type Unsubscribe as U, type ToolPlannedEvent as V, type ToolExecutingEvent as W, type ToolCompletedEvent as X, type ToolFailedEvent as Y, type ErrorOccurredEvent as Z, type AgentErrorOccurredEvent as _, type AgentState as a, type MessageEvent as a0, type UserMessageEvent as a1, type AssistantMessageEvent as a2, type ToolCallMessageEvent as a3, type ToolResultMessageEvent as a4, type ErrorMessageEvent as a5, type AgentMessageEvent as a6, type TurnRequestData as a7, type TurnResponseData as a8, type TurnEvent as a9, type TurnRequestEvent as aa, type TurnResponseEvent as ab, type AgentTurnEvent as ac, type AgentEventHandler as ad, isStateEvent as ae, isMessageEvent as af, isTurnEvent as ag, type AgentOutputCallback as b, type AgentEvent as c, type AgentErrorCategory as d, type AgentError as e, type StopReason as f, type MessageDeltaData as g, type MessageStopData as h, type ToolUseStartData as i, type ToolUseStopData as j, type ToolResultData as k, type ErrorReceivedData as l, type MessageStartEvent as m, type MessageDeltaEvent as n, type MessageStopEvent as o, type TextDeltaEvent as p, type ToolUseStartEvent as q, type InputJsonDeltaEvent as r, type ToolUseStopEvent as s, type ToolResultEvent as t, type ErrorReceivedEvent as u, type StreamEventType as v, type ConversationStartData as w, type ConversationThinkingData as x, type ConversationRespondingData as y, type ConversationEndData as z };
295
+ export { type AgentStateEvent as $, type AgentOutput as A, type ConversationInterruptedData as B, type ConversationQueuedData as C, type ToolPlannedData as D, type EngineEvent as E, type ToolExecutingData as F, type ToolCompletedData as G, type ToolFailedData as H, type InputJsonDeltaData as I, type ErrorOccurredData as J, type StateEvent as K, type ConversationQueuedEvent as L, type MessageStartData as M, type ConversationStartEvent as N, type ConversationThinkingEvent as O, type ConversationRespondingEvent as P, type ConversationEndEvent as Q, type ConversationInterruptedEvent as R, type StreamEvent as S, type TextDeltaData as T, type Unsubscribe as U, type ToolPlannedEvent as V, type ToolExecutingEvent as W, type ToolCompletedEvent as X, type ToolFailedEvent as Y, type ErrorOccurredEvent as Z, type AgentErrorOccurredEvent as _, type AgentState as a, type MessageEvent as a0, type UserMessageEvent as a1, type AssistantMessageEvent as a2, type ToolResultMessageEvent as a3, type ErrorMessageEvent as a4, type AgentMessageEvent as a5, type TurnRequestData as a6, type TurnResponseData as a7, type TurnEvent as a8, type TurnRequestEvent as a9, type TurnResponseEvent as aa, type AgentTurnEvent as ab, type AgentEventHandler as ac, isStateEvent as ad, isMessageEvent as ae, isTurnEvent as af, type AgentOutputCallback as b, type AgentEvent as c, type AgentErrorCategory as d, type AgentError as e, type StopReason as f, type MessageDeltaData as g, type MessageStopData as h, type ToolUseStartData as i, type ToolUseStopData as j, type ToolResultData as k, type ErrorReceivedData as l, type MessageStartEvent as m, type MessageDeltaEvent as n, type MessageStopEvent as o, type TextDeltaEvent as p, type ToolUseStartEvent as q, type InputJsonDeltaEvent as r, type ToolUseStopEvent as s, type ToolResultEvent as t, type ErrorReceivedEvent as u, type StreamEventType as v, type ConversationStartData as w, type ConversationThinkingData as x, type ConversationRespondingData as y, type ConversationEndData as z };
@@ -1,7 +1,6 @@
1
- import { ImageRecord, ImageRepository, SessionRepository } from '../persistence/index.js';
2
- export { ImageMetadata } from '../persistence/index.js';
3
- import { McpServerConfig } from '../driver/index.js';
4
- import '../message-BMrMm1pq.js';
1
+ import { M as McpServerConfig, f as ImageRecord, I as ImageRepository, c as SessionRepository } from '../index-CuS1i5V-.js';
2
+ export { g as ImageMetadata } from '../index-CuS1i5V-.js';
3
+ import '../message-03TJzvIX.js';
5
4
 
6
5
  /**
7
6
  * Image - Persistent conversation entity
@@ -14,14 +13,16 @@ interface Image {
14
13
  readonly description: string | undefined;
15
14
  readonly systemPrompt: string | undefined;
16
15
  readonly mcpServers: Record<string, McpServerConfig> | undefined;
16
+ readonly customData: Record<string, unknown> | undefined;
17
17
  readonly createdAt: number;
18
18
  readonly updatedAt: number;
19
19
  /**
20
- * Update image metadata (name, description)
20
+ * Update image metadata (name, description, customData)
21
21
  */
22
22
  update(updates: {
23
23
  name?: string;
24
24
  description?: string;
25
+ customData?: Record<string, unknown>;
25
26
  }): Promise<Image>;
26
27
  /**
27
28
  * Delete this image and its session
@@ -48,6 +49,7 @@ interface ImageCreateConfig {
48
49
  description?: string;
49
50
  systemPrompt?: string;
50
51
  mcpServers?: Record<string, McpServerConfig>;
52
+ customData?: Record<string, unknown>;
51
53
  }
52
54
 
53
55
  /**
@@ -64,6 +66,7 @@ declare class ImageImpl implements Image {
64
66
  get description(): string | undefined;
65
67
  get systemPrompt(): string | undefined;
66
68
  get mcpServers(): Record<string, McpServerConfig> | undefined;
69
+ get customData(): Record<string, unknown> | undefined;
67
70
  get createdAt(): number;
68
71
  get updatedAt(): number;
69
72
  /**
@@ -88,6 +91,7 @@ declare class ImageImpl implements Image {
88
91
  update(updates: {
89
92
  name?: string;
90
93
  description?: string;
94
+ customData?: Record<string, unknown>;
91
95
  }): Promise<Image>;
92
96
  /**
93
97
  * Delete this image and its session
@@ -1,5 +1,3 @@
1
- import "../chunk-7D4SUZUM.js";
2
-
3
1
  // src/image/Image.ts
4
2
  import { createLogger } from "commonxjs/logger";
5
3
  var logger = createLogger("image/Image");
@@ -30,6 +28,9 @@ var ImageImpl = class _ImageImpl {
30
28
  get mcpServers() {
31
29
  return this.record.mcpServers;
32
30
  }
31
+ get customData() {
32
+ return this.record.customData;
33
+ }
33
34
  get createdAt() {
34
35
  return this.record.createdAt;
35
36
  }
@@ -52,6 +53,7 @@ var ImageImpl = class _ImageImpl {
52
53
  description: config.description,
53
54
  systemPrompt: config.systemPrompt,
54
55
  mcpServers: config.mcpServers,
56
+ customData: config.customData,
55
57
  createdAt: now,
56
58
  updatedAt: now
57
59
  };
@@ -105,6 +107,7 @@ var ImageImpl = class _ImageImpl {
105
107
  ...this.record,
106
108
  name: updates.name ?? this.record.name,
107
109
  description: updates.description ?? this.record.description,
110
+ customData: updates.customData !== void 0 ? updates.customData : this.record.customData,
108
111
  updatedAt: now
109
112
  };
110
113
  await this.context.imageRepository.saveImage(updatedRecord);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/image/Image.ts"],"sourcesContent":["/**\n * Image - Persistent conversation entity\n *\n * Image is the primary entity that users interact with (displayed as \"conversation\").\n * Agent is a transient runtime instance created from Image.\n */\n\nimport { createLogger } from \"commonxjs/logger\";\nimport type { Image, ImageRecord, ImageContext, ImageCreateConfig } from \"./types\";\n\nconst logger = createLogger(\"image/Image\");\n\n/**\n * ImageImpl - Image implementation\n */\nexport class ImageImpl implements Image {\n private constructor(\n private readonly record: ImageRecord,\n private readonly context: ImageContext\n ) {}\n\n // ==================== Getters ====================\n\n get imageId(): string {\n return this.record.imageId;\n }\n\n get containerId(): string {\n return this.record.containerId;\n }\n\n get sessionId(): string {\n return this.record.sessionId;\n }\n\n get name(): string {\n return this.record.name;\n }\n\n get description(): string | undefined {\n return this.record.description;\n }\n\n get systemPrompt(): string | undefined {\n return this.record.systemPrompt;\n }\n\n get mcpServers() {\n return this.record.mcpServers;\n }\n\n get createdAt(): number {\n return this.record.createdAt;\n }\n\n get updatedAt(): number {\n return this.record.updatedAt;\n }\n\n // ==================== Static Factory Methods ====================\n\n /**\n * Create a new image (conversation)\n */\n static async create(config: ImageCreateConfig, context: ImageContext): Promise<ImageImpl> {\n const now = Date.now();\n const imageId = ImageImpl.generateImageId();\n const sessionId = ImageImpl.generateSessionId();\n\n // Create image record\n const record: ImageRecord = {\n imageId,\n containerId: config.containerId,\n sessionId,\n name: config.name ?? \"New Conversation\",\n description: config.description,\n systemPrompt: config.systemPrompt,\n mcpServers: config.mcpServers,\n createdAt: now,\n updatedAt: now,\n };\n\n // Persist image\n await context.imageRepository.saveImage(record);\n\n // Create associated session (for message storage)\n await context.sessionRepository.saveSession({\n sessionId,\n imageId,\n containerId: config.containerId,\n createdAt: now,\n updatedAt: now,\n });\n\n logger.info(\"Image created\", {\n imageId,\n sessionId,\n containerId: config.containerId,\n name: record.name,\n });\n\n return new ImageImpl(record, context);\n }\n\n /**\n * Load an existing image from storage\n */\n static async load(imageId: string, context: ImageContext): Promise<ImageImpl | null> {\n const record = await context.imageRepository.findImageById(imageId);\n if (!record) {\n logger.debug(\"Image not found\", { imageId });\n return null;\n }\n\n logger.debug(\"Image loaded\", { imageId, name: record.name });\n return new ImageImpl(record, context);\n }\n\n /**\n * List all images in a container\n */\n static async listByContainer(containerId: string, context: ImageContext): Promise<ImageRecord[]> {\n return context.imageRepository.findImagesByContainerId(containerId);\n }\n\n /**\n * List all images\n */\n static async listAll(context: ImageContext): Promise<ImageRecord[]> {\n return context.imageRepository.findAllImages();\n }\n\n // ==================== Instance Methods ====================\n\n /**\n * Update image metadata\n */\n async update(updates: { name?: string; description?: string }): Promise<Image> {\n const now = Date.now();\n const updatedRecord: ImageRecord = {\n ...this.record,\n name: updates.name ?? this.record.name,\n description: updates.description ?? this.record.description,\n updatedAt: now,\n };\n\n await this.context.imageRepository.saveImage(updatedRecord);\n\n logger.info(\"Image updated\", { imageId: this.imageId, updates });\n return new ImageImpl(updatedRecord, this.context);\n }\n\n /**\n * Delete this image and its session\n */\n async delete(): Promise<void> {\n // Delete session first (including messages)\n await this.context.sessionRepository.deleteSession(this.sessionId);\n\n // Delete image\n await this.context.imageRepository.deleteImage(this.imageId);\n\n logger.info(\"Image deleted\", { imageId: this.imageId, sessionId: this.sessionId });\n }\n\n /**\n * Get the underlying record\n */\n toRecord(): ImageRecord {\n return { ...this.record };\n }\n\n // ==================== Private Helpers ====================\n\n private static generateImageId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 8);\n return `img_${timestamp}_${random}`;\n }\n\n private static generateSessionId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 8);\n return `sess_${timestamp}_${random}`;\n }\n}\n\n/**\n * Create a new Image\n */\nexport async function createImage(\n config: ImageCreateConfig,\n context: ImageContext\n): Promise<Image> {\n return ImageImpl.create(config, context);\n}\n\n/**\n * Load an existing Image\n */\nexport async function loadImage(imageId: string, context: ImageContext): Promise<Image | null> {\n return ImageImpl.load(imageId, context);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/image/Image.ts"],"sourcesContent":["/**\n * Image - Persistent conversation entity\n *\n * Image is the primary entity that users interact with (displayed as \"conversation\").\n * Agent is a transient runtime instance created from Image.\n */\n\nimport { createLogger } from \"commonxjs/logger\";\nimport type { Image, ImageRecord, ImageContext, ImageCreateConfig } from \"./types\";\n\nconst logger = createLogger(\"image/Image\");\n\n/**\n * ImageImpl - Image implementation\n */\nexport class ImageImpl implements Image {\n private constructor(\n private readonly record: ImageRecord,\n private readonly context: ImageContext\n ) {}\n\n // ==================== Getters ====================\n\n get imageId(): string {\n return this.record.imageId;\n }\n\n get containerId(): string {\n return this.record.containerId;\n }\n\n get sessionId(): string {\n return this.record.sessionId;\n }\n\n get name(): string {\n return this.record.name;\n }\n\n get description(): string | undefined {\n return this.record.description;\n }\n\n get systemPrompt(): string | undefined {\n return this.record.systemPrompt;\n }\n\n get mcpServers() {\n return this.record.mcpServers;\n }\n\n get customData(): Record<string, unknown> | undefined {\n return this.record.customData;\n }\n\n get createdAt(): number {\n return this.record.createdAt;\n }\n\n get updatedAt(): number {\n return this.record.updatedAt;\n }\n\n // ==================== Static Factory Methods ====================\n\n /**\n * Create a new image (conversation)\n */\n static async create(config: ImageCreateConfig, context: ImageContext): Promise<ImageImpl> {\n const now = Date.now();\n const imageId = ImageImpl.generateImageId();\n const sessionId = ImageImpl.generateSessionId();\n\n // Create image record\n const record: ImageRecord = {\n imageId,\n containerId: config.containerId,\n sessionId,\n name: config.name ?? \"New Conversation\",\n description: config.description,\n systemPrompt: config.systemPrompt,\n mcpServers: config.mcpServers,\n customData: config.customData,\n createdAt: now,\n updatedAt: now,\n };\n\n // Persist image\n await context.imageRepository.saveImage(record);\n\n // Create associated session (for message storage)\n await context.sessionRepository.saveSession({\n sessionId,\n imageId,\n containerId: config.containerId,\n createdAt: now,\n updatedAt: now,\n });\n\n logger.info(\"Image created\", {\n imageId,\n sessionId,\n containerId: config.containerId,\n name: record.name,\n });\n\n return new ImageImpl(record, context);\n }\n\n /**\n * Load an existing image from storage\n */\n static async load(imageId: string, context: ImageContext): Promise<ImageImpl | null> {\n const record = await context.imageRepository.findImageById(imageId);\n if (!record) {\n logger.debug(\"Image not found\", { imageId });\n return null;\n }\n\n logger.debug(\"Image loaded\", { imageId, name: record.name });\n return new ImageImpl(record, context);\n }\n\n /**\n * List all images in a container\n */\n static async listByContainer(containerId: string, context: ImageContext): Promise<ImageRecord[]> {\n return context.imageRepository.findImagesByContainerId(containerId);\n }\n\n /**\n * List all images\n */\n static async listAll(context: ImageContext): Promise<ImageRecord[]> {\n return context.imageRepository.findAllImages();\n }\n\n // ==================== Instance Methods ====================\n\n /**\n * Update image metadata\n */\n async update(updates: {\n name?: string;\n description?: string;\n customData?: Record<string, unknown>;\n }): Promise<Image> {\n const now = Date.now();\n const updatedRecord: ImageRecord = {\n ...this.record,\n name: updates.name ?? this.record.name,\n description: updates.description ?? this.record.description,\n customData: updates.customData !== undefined ? updates.customData : this.record.customData,\n updatedAt: now,\n };\n\n await this.context.imageRepository.saveImage(updatedRecord);\n\n logger.info(\"Image updated\", { imageId: this.imageId, updates });\n return new ImageImpl(updatedRecord, this.context);\n }\n\n /**\n * Delete this image and its session\n */\n async delete(): Promise<void> {\n // Delete session first (including messages)\n await this.context.sessionRepository.deleteSession(this.sessionId);\n\n // Delete image\n await this.context.imageRepository.deleteImage(this.imageId);\n\n logger.info(\"Image deleted\", { imageId: this.imageId, sessionId: this.sessionId });\n }\n\n /**\n * Get the underlying record\n */\n toRecord(): ImageRecord {\n return { ...this.record };\n }\n\n // ==================== Private Helpers ====================\n\n private static generateImageId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 8);\n return `img_${timestamp}_${random}`;\n }\n\n private static generateSessionId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 8);\n return `sess_${timestamp}_${random}`;\n }\n}\n\n/**\n * Create a new Image\n */\nexport async function createImage(\n config: ImageCreateConfig,\n context: ImageContext\n): Promise<Image> {\n return ImageImpl.create(config, context);\n}\n\n/**\n * Load an existing Image\n */\nexport async function loadImage(imageId: string, context: ImageContext): Promise<Image | null> {\n return ImageImpl.load(imageId, context);\n}\n"],"mappings":"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","names":[]}