@agentxjs/core 1.9.10-dev → 2.0.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 +342 -0
- package/dist/{Processor-DT0N1qI6.d.ts → Processor-CeMyXtsX.d.ts} +1 -1
- package/dist/RpcClient-CMdhJxjS.d.ts +304 -0
- package/dist/agent/engine/internal/index.d.ts +22 -18
- package/dist/agent/engine/internal/index.js +1 -2
- package/dist/agent/engine/mealy/index.d.ts +4 -4
- package/dist/agent/engine/mealy/index.js +1 -2
- package/dist/agent/index.d.ts +92 -92
- package/dist/agent/index.js +16 -16
- package/dist/agent/types/index.d.ts +4 -4
- package/dist/agent/types/index.js +1 -2
- package/dist/bash/index.d.ts +29 -0
- package/dist/bash/index.js +7 -0
- package/dist/{bus-uF1DM2ox.d.ts → bus-C9FLWIu8.d.ts} +3 -1
- package/dist/{chunk-E5FPOAPO.js → chunk-22NTRYNO.js} +60 -60
- package/dist/chunk-22NTRYNO.js.map +1 -0
- package/dist/{chunk-7ZDX3O6I.js → chunk-AAFPAF67.js} +2 -2
- package/dist/{chunk-7ZDX3O6I.js.map → chunk-AAFPAF67.js.map} +1 -1
- package/dist/{chunk-EKHT54KN.js → chunk-APCBNCOW.js} +1 -1
- package/dist/{chunk-EKHT54KN.js.map → chunk-APCBNCOW.js.map} +1 -1
- package/dist/chunk-BHOD5PKR.js +55 -0
- package/dist/chunk-BHOD5PKR.js.map +1 -0
- package/dist/chunk-FI7WQFGV.js +37 -0
- package/dist/chunk-FI7WQFGV.js.map +1 -0
- package/dist/{chunk-AT5P47YA.js → chunk-RWIYC65R.js} +115 -115
- package/dist/chunk-RWIYC65R.js.map +1 -0
- package/dist/chunk-SKS7S2RY.js +1 -0
- package/dist/{chunk-I7GYR3MN.js → chunk-TUFZ2YH6.js} +77 -91
- package/dist/chunk-TUFZ2YH6.js.map +1 -0
- package/dist/{chunk-K6WXQ2RW.js → chunk-YSZG6XIM.js} +1 -2
- package/dist/chunk-YSZG6XIM.js.map +1 -0
- package/dist/{combinators-nEa5dD0T.d.ts → combinators-Dy-7lxKV.d.ts} +50 -50
- package/dist/common/logger/index.js +14 -16
- package/dist/common/logger/index.js.map +1 -1
- package/dist/container/index.d.ts +3 -4
- package/dist/container/index.js +0 -2
- package/dist/container/index.js.map +1 -1
- package/dist/driver/index.d.ts +2 -310
- package/dist/event/index.d.ts +4 -4
- package/dist/event/index.js +2 -3
- package/dist/event/types/index.d.ts +202 -208
- package/dist/event/types/index.js +1 -2
- package/dist/{event-CDuTzs__.d.ts → event-DNsF9EkO.d.ts} +5 -8
- package/dist/image/index.d.ts +9 -5
- package/dist/image/index.js +5 -2
- package/dist/image/index.js.map +1 -1
- package/dist/index--gxNpY5W.d.ts +609 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +17 -17
- package/dist/{message-BMrMm1pq.d.ts → message-Dn-I2vr0.d.ts} +10 -33
- package/dist/mq/index.d.ts +25 -25
- package/dist/mq/index.js +1 -3
- package/dist/mq/index.js.map +1 -1
- package/dist/network/index.d.ts +59 -347
- package/dist/network/index.js +30 -41
- package/dist/network/index.js.map +1 -1
- package/dist/persistence/index.d.ts +2 -155
- package/dist/platform/index.d.ts +76 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/runtime/index.d.ts +26 -59
- package/dist/runtime/index.js +117 -33
- package/dist/runtime/index.js.map +1 -1
- package/dist/session/index.d.ts +4 -52
- package/dist/session/index.js +4 -51
- package/dist/session/index.js.map +1 -1
- package/dist/types-Cb8tKM6Y.d.ts +90 -0
- package/package.json +10 -5
- package/src/agent/AgentStateMachine.ts +2 -2
- package/src/agent/__tests__/AgentStateMachine.test.ts +2 -2
- package/src/agent/__tests__/createAgent.test.ts +4 -4
- package/src/agent/__tests__/engine/internal/messageAssemblerProcessor.test.ts +301 -97
- package/src/agent/__tests__/engine/internal/stateEventProcessor.test.ts +6 -6
- package/src/agent/__tests__/engine/internal/turnTrackerProcessor.test.ts +59 -78
- package/src/agent/__tests__/engine/mealy/Mealy.test.ts +3 -3
- package/src/agent/__tests__/engine/mealy/Store.test.ts +1 -1
- package/src/agent/__tests__/engine/mealy/combinators.test.ts +4 -4
- package/src/agent/createAgent.ts +15 -15
- package/src/agent/engine/AgentProcessor.ts +7 -7
- package/src/agent/engine/MealyMachine.ts +4 -4
- package/src/agent/engine/internal/index.ts +11 -11
- package/src/agent/engine/internal/messageAssemblerProcessor.ts +113 -128
- package/src/agent/engine/internal/stateEventProcessor.ts +13 -15
- package/src/agent/engine/internal/turnTrackerProcessor.ts +27 -31
- package/src/agent/engine/mealy/Mealy.ts +2 -2
- package/src/agent/engine/mealy/combinators.ts +10 -10
- package/src/agent/engine/mealy/index.ts +9 -11
- package/src/agent/index.ts +30 -32
- package/src/agent/types/engine.ts +3 -3
- package/src/agent/types/event.ts +4 -12
- package/src/agent/types/index.ts +86 -88
- package/src/agent/types/message.ts +9 -43
- package/src/bash/index.ts +21 -0
- package/src/bash/tool.ts +57 -0
- package/src/bash/types.ts +108 -0
- package/src/common/logger/ConsoleLogger.ts +1 -1
- package/src/common/logger/LoggerFactoryImpl.ts +14 -14
- package/src/common/logger/index.ts +3 -3
- package/src/container/index.ts +4 -5
- package/src/container/types.ts +1 -1
- package/src/driver/index.ts +15 -16
- package/src/driver/types.ts +201 -73
- package/src/event/EventBus.ts +10 -10
- package/src/event/__tests__/EventBus.test.ts +2 -2
- package/src/event/index.ts +2 -3
- package/src/event/types/agent.ts +186 -191
- package/src/event/types/bus.ts +1 -1
- package/src/event/types/command.ts +293 -264
- package/src/event/types/container.ts +207 -222
- package/src/event/types/driver.ts +153 -155
- package/src/event/types/index.ts +6 -12
- package/src/event/types/session.ts +117 -130
- package/src/image/Image.ts +12 -2
- package/src/image/index.ts +4 -5
- package/src/image/types.ts +8 -2
- package/src/mq/OffsetGenerator.ts +1 -1
- package/src/mq/__tests__/OffsetGenerator.test.ts +1 -1
- package/src/mq/index.ts +4 -5
- package/src/network/RpcClient.ts +26 -25
- package/src/network/index.ts +41 -44
- package/src/network/jsonrpc.ts +5 -5
- package/src/persistence/index.ts +5 -5
- package/src/persistence/types.ts +5 -2
- package/src/platform/index.ts +21 -0
- package/src/platform/types.ts +84 -0
- package/src/runtime/AgentXRuntime.ts +188 -61
- package/src/runtime/__tests__/AgentXRuntime.test.ts +343 -0
- package/src/runtime/index.ts +12 -25
- package/src/runtime/types.ts +10 -62
- package/src/session/index.ts +2 -3
- package/dist/chunk-7D4SUZUM.js +0 -38
- package/dist/chunk-AT5P47YA.js.map +0 -1
- package/dist/chunk-E5FPOAPO.js.map +0 -1
- package/dist/chunk-I7GYR3MN.js.map +0 -1
- package/dist/chunk-K6WXQ2RW.js.map +0 -1
- package/dist/workspace/index.d.ts +0 -111
- package/dist/wrapper-Y3UTVU2E.js +0 -3635
- package/dist/wrapper-Y3UTVU2E.js.map +0 -1
- package/src/workspace/index.ts +0 -27
- package/src/workspace/types.ts +0 -131
- /package/dist/{workspace → bash}/index.js.map +0 -0
- /package/dist/{chunk-7D4SUZUM.js.map → chunk-SKS7S2RY.js.map} +0 -0
- /package/dist/{workspace → platform}/index.js +0 -0
package/src/agent/index.ts
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
// Core API
|
|
31
31
|
// ============================================================================
|
|
32
32
|
|
|
33
|
-
export { createAgent } from "./createAgent";
|
|
34
33
|
export { AgentStateMachine } from "./AgentStateMachine";
|
|
34
|
+
export { createAgent } from "./createAgent";
|
|
35
35
|
export type { AgentEngine, CreateAgentOptions } from "./types";
|
|
36
36
|
|
|
37
37
|
// ============================================================================
|
|
@@ -44,63 +44,61 @@ export * from "./types";
|
|
|
44
44
|
// Engine (Stateless)
|
|
45
45
|
// ============================================================================
|
|
46
46
|
|
|
47
|
-
// MealyMachine
|
|
48
|
-
export { MealyMachine, createMealyMachine } from "./engine/MealyMachine";
|
|
49
|
-
|
|
50
47
|
// AgentProcessor (for advanced use cases)
|
|
51
48
|
export {
|
|
52
|
-
agentProcessor,
|
|
53
|
-
createInitialAgentEngineState,
|
|
54
49
|
type AgentEngineState,
|
|
55
50
|
type AgentProcessorInput,
|
|
56
51
|
type AgentProcessorOutput,
|
|
52
|
+
agentProcessor,
|
|
53
|
+
createInitialAgentEngineState,
|
|
57
54
|
} from "./engine/AgentProcessor";
|
|
58
|
-
|
|
59
55
|
// Internal Processors (for advanced use cases)
|
|
60
56
|
export {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
createInitialMessageAssemblerState,
|
|
58
|
+
createInitialStateEventProcessorContext,
|
|
59
|
+
createInitialTurnTrackerState,
|
|
64
60
|
type MessageAssemblerInput,
|
|
65
61
|
type MessageAssemblerOutput,
|
|
66
62
|
type MessageAssemblerState,
|
|
63
|
+
// MessageAssembler
|
|
64
|
+
messageAssemblerProcessor,
|
|
65
|
+
messageAssemblerProcessorDef,
|
|
67
66
|
type PendingContent,
|
|
68
|
-
|
|
67
|
+
type PendingTurn,
|
|
68
|
+
type StateEventProcessorContext,
|
|
69
|
+
type StateEventProcessorInput,
|
|
70
|
+
type StateEventProcessorOutput,
|
|
69
71
|
// StateEventProcessor
|
|
70
72
|
stateEventProcessor,
|
|
71
73
|
stateEventProcessorDef,
|
|
72
|
-
type StateEventProcessorInput,
|
|
73
|
-
type StateEventProcessorOutput,
|
|
74
|
-
type StateEventProcessorContext,
|
|
75
|
-
createInitialStateEventProcessorContext,
|
|
76
|
-
// TurnTracker
|
|
77
|
-
turnTrackerProcessor,
|
|
78
|
-
turnTrackerProcessorDef,
|
|
79
74
|
type TurnTrackerInput,
|
|
80
75
|
type TurnTrackerOutput,
|
|
81
76
|
type TurnTrackerState,
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
// TurnTracker
|
|
78
|
+
turnTrackerProcessor,
|
|
79
|
+
turnTrackerProcessorDef,
|
|
84
80
|
} from "./engine/internal";
|
|
81
|
+
// MealyMachine
|
|
82
|
+
export { createMealyMachine, MealyMachine } from "./engine/MealyMachine";
|
|
85
83
|
|
|
86
84
|
// Mealy Machine Core (for building custom processors)
|
|
87
85
|
export {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
chainProcessors,
|
|
87
|
+
combineInitialStates,
|
|
88
|
+
// Combinators
|
|
89
|
+
combineProcessors,
|
|
90
|
+
filterProcessor,
|
|
91
|
+
identityProcessor,
|
|
92
|
+
MemoryStore,
|
|
93
|
+
mapOutput,
|
|
91
94
|
type Processor,
|
|
92
|
-
type ProcessorResult,
|
|
93
95
|
type ProcessorDefinition,
|
|
96
|
+
type ProcessorResult,
|
|
94
97
|
type Sink,
|
|
95
98
|
type SinkDefinition,
|
|
99
|
+
// Core types
|
|
100
|
+
type Source,
|
|
101
|
+
type SourceDefinition,
|
|
96
102
|
type Store,
|
|
97
|
-
MemoryStore,
|
|
98
|
-
// Combinators
|
|
99
|
-
combineProcessors,
|
|
100
|
-
combineInitialStates,
|
|
101
|
-
chainProcessors,
|
|
102
|
-
filterProcessor,
|
|
103
|
-
mapOutput,
|
|
104
103
|
withLogging,
|
|
105
|
-
identityProcessor,
|
|
106
104
|
} from "./engine/mealy";
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
* @packageDocumentation
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import type { UserMessage } from "./message";
|
|
17
16
|
import type {
|
|
18
|
-
AgentState,
|
|
19
17
|
AgentOutput,
|
|
18
|
+
AgentOutputCallback,
|
|
19
|
+
AgentState,
|
|
20
20
|
StreamEvent,
|
|
21
21
|
Unsubscribe,
|
|
22
|
-
AgentOutputCallback,
|
|
23
22
|
} from "./event";
|
|
23
|
+
import type { UserMessage } from "./message";
|
|
24
24
|
|
|
25
25
|
// =============================================================================
|
|
26
26
|
// Message Queue
|
package/src/agent/types/event.ts
CHANGED
|
@@ -13,12 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import type {
|
|
16
|
-
UserMessage,
|
|
17
16
|
AssistantMessage,
|
|
18
|
-
ToolCallMessage,
|
|
19
|
-
ToolResultMessage,
|
|
20
17
|
ErrorMessage,
|
|
21
18
|
TokenUsage,
|
|
19
|
+
ToolResultMessage,
|
|
20
|
+
UserMessage,
|
|
22
21
|
} from "./message";
|
|
23
22
|
|
|
24
23
|
// =============================================================================
|
|
@@ -235,13 +234,9 @@ export interface ConversationStartData {
|
|
|
235
234
|
messageId: string;
|
|
236
235
|
}
|
|
237
236
|
|
|
238
|
-
export
|
|
239
|
-
// Empty
|
|
240
|
-
}
|
|
237
|
+
export type ConversationThinkingData = {};
|
|
241
238
|
|
|
242
|
-
export
|
|
243
|
-
// Empty
|
|
244
|
-
}
|
|
239
|
+
export type ConversationRespondingData = {};
|
|
245
240
|
|
|
246
241
|
export interface ConversationEndData {
|
|
247
242
|
reason: "completed" | "interrupted" | "error";
|
|
@@ -368,7 +363,6 @@ export interface MessageEvent<T extends string = string, D = unknown> extends En
|
|
|
368
363
|
|
|
369
364
|
export type UserMessageEvent = EngineEvent<"user_message", UserMessage>;
|
|
370
365
|
export type AssistantMessageEvent = EngineEvent<"assistant_message", AssistantMessage>;
|
|
371
|
-
export type ToolCallMessageEvent = EngineEvent<"tool_call_message", ToolCallMessage>;
|
|
372
366
|
export type ToolResultMessageEvent = EngineEvent<"tool_result_message", ToolResultMessage>;
|
|
373
367
|
export type ErrorMessageEvent = EngineEvent<"error_message", ErrorMessage>;
|
|
374
368
|
|
|
@@ -378,7 +372,6 @@ export type ErrorMessageEvent = EngineEvent<"error_message", ErrorMessage>;
|
|
|
378
372
|
export type AgentMessageEvent =
|
|
379
373
|
| UserMessageEvent
|
|
380
374
|
| AssistantMessageEvent
|
|
381
|
-
| ToolCallMessageEvent
|
|
382
375
|
| ToolResultMessageEvent
|
|
383
376
|
| ErrorMessageEvent;
|
|
384
377
|
|
|
@@ -389,7 +382,6 @@ export function isMessageEvent(event: EngineEvent): event is AgentMessageEvent {
|
|
|
389
382
|
const messageTypes = [
|
|
390
383
|
"user_message",
|
|
391
384
|
"assistant_message",
|
|
392
|
-
"tool_call_message",
|
|
393
385
|
"tool_result_message",
|
|
394
386
|
"error_message",
|
|
395
387
|
];
|
package/src/agent/types/index.ts
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
* ## Message Types (Three-Party Model)
|
|
49
49
|
*
|
|
50
50
|
* - **User**: Human participant (UserMessage)
|
|
51
|
-
* - **Assistant**: AI participant (AssistantMessage
|
|
51
|
+
* - **Assistant**: AI participant (AssistantMessage — content includes ToolCallPart)
|
|
52
52
|
* - **Tool**: Computer/execution environment (ToolResultMessage)
|
|
53
53
|
*
|
|
54
54
|
* @packageDocumentation
|
|
@@ -59,26 +59,25 @@
|
|
|
59
59
|
// =============================================================================
|
|
60
60
|
|
|
61
61
|
export type {
|
|
62
|
+
AssistantMessage,
|
|
63
|
+
ContentPart,
|
|
64
|
+
ErrorMessage,
|
|
65
|
+
FilePart,
|
|
66
|
+
ImagePart,
|
|
67
|
+
Message,
|
|
68
|
+
// Message Types
|
|
69
|
+
MessageRole,
|
|
70
|
+
MessageSubtype,
|
|
62
71
|
// Content Parts
|
|
63
72
|
TextPart,
|
|
64
73
|
ThinkingPart,
|
|
65
|
-
|
|
66
|
-
FilePart,
|
|
74
|
+
TokenUsage,
|
|
67
75
|
ToolCallPart,
|
|
76
|
+
ToolResultMessage,
|
|
68
77
|
ToolResultOutput,
|
|
69
78
|
ToolResultPart,
|
|
70
|
-
ContentPart,
|
|
71
79
|
UserContentPart,
|
|
72
|
-
// Message Types
|
|
73
|
-
MessageRole,
|
|
74
|
-
MessageSubtype,
|
|
75
|
-
TokenUsage,
|
|
76
80
|
UserMessage,
|
|
77
|
-
AssistantMessage,
|
|
78
|
-
ToolCallMessage,
|
|
79
|
-
ToolResultMessage,
|
|
80
|
-
ErrorMessage,
|
|
81
|
-
Message,
|
|
82
81
|
} from "./message";
|
|
83
82
|
|
|
84
83
|
// =============================================================================
|
|
@@ -86,112 +85,111 @@ export type {
|
|
|
86
85
|
// =============================================================================
|
|
87
86
|
|
|
88
87
|
export type {
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
AgentError,
|
|
89
|
+
AgentErrorCategory,
|
|
90
|
+
AgentErrorOccurredEvent,
|
|
91
91
|
AgentEvent,
|
|
92
|
+
AgentEventHandler,
|
|
93
|
+
AgentMessageEvent,
|
|
94
|
+
// Agent Output
|
|
95
|
+
AgentOutput,
|
|
96
|
+
AgentOutputCallback,
|
|
92
97
|
// Agent State and Error
|
|
93
98
|
AgentState,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
StopReason,
|
|
98
|
-
MessageStartData,
|
|
99
|
-
MessageDeltaData,
|
|
100
|
-
MessageStopData,
|
|
101
|
-
TextDeltaData,
|
|
102
|
-
ToolUseStartData,
|
|
103
|
-
InputJsonDeltaData,
|
|
104
|
-
ToolUseStopData,
|
|
105
|
-
ToolResultData,
|
|
106
|
-
ErrorReceivedData,
|
|
107
|
-
MessageStartEvent,
|
|
108
|
-
MessageDeltaEvent,
|
|
109
|
-
MessageStopEvent,
|
|
110
|
-
TextDeltaEvent,
|
|
111
|
-
ToolUseStartEvent,
|
|
112
|
-
InputJsonDeltaEvent,
|
|
113
|
-
ToolUseStopEvent,
|
|
114
|
-
ToolResultEvent,
|
|
115
|
-
ErrorReceivedEvent,
|
|
116
|
-
StreamEvent,
|
|
117
|
-
StreamEventType,
|
|
118
|
-
// State Events
|
|
119
|
-
ConversationQueuedData,
|
|
120
|
-
ConversationStartData,
|
|
121
|
-
ConversationThinkingData,
|
|
122
|
-
ConversationRespondingData,
|
|
99
|
+
AgentStateEvent,
|
|
100
|
+
AgentTurnEvent,
|
|
101
|
+
AssistantMessageEvent,
|
|
123
102
|
ConversationEndData,
|
|
103
|
+
ConversationEndEvent,
|
|
124
104
|
ConversationInterruptedData,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
ToolFailedData,
|
|
129
|
-
ErrorOccurredData,
|
|
130
|
-
StateEvent,
|
|
105
|
+
ConversationInterruptedEvent,
|
|
106
|
+
// State Events
|
|
107
|
+
ConversationQueuedData,
|
|
131
108
|
ConversationQueuedEvent,
|
|
109
|
+
ConversationRespondingData,
|
|
110
|
+
ConversationRespondingEvent,
|
|
111
|
+
ConversationStartData,
|
|
132
112
|
ConversationStartEvent,
|
|
113
|
+
ConversationThinkingData,
|
|
133
114
|
ConversationThinkingEvent,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
ToolExecutingEvent,
|
|
139
|
-
ToolCompletedEvent,
|
|
140
|
-
ToolFailedEvent,
|
|
115
|
+
// Base Types
|
|
116
|
+
EngineEvent,
|
|
117
|
+
ErrorMessageEvent,
|
|
118
|
+
ErrorOccurredData,
|
|
141
119
|
ErrorOccurredEvent,
|
|
142
|
-
|
|
143
|
-
|
|
120
|
+
ErrorReceivedData,
|
|
121
|
+
ErrorReceivedEvent,
|
|
122
|
+
InputJsonDeltaData,
|
|
123
|
+
InputJsonDeltaEvent,
|
|
124
|
+
MessageDeltaData,
|
|
125
|
+
MessageDeltaEvent,
|
|
144
126
|
// Message Events
|
|
145
127
|
MessageEvent,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
128
|
+
MessageStartData,
|
|
129
|
+
MessageStartEvent,
|
|
130
|
+
MessageStopData,
|
|
131
|
+
MessageStopEvent,
|
|
132
|
+
StateEvent,
|
|
133
|
+
// Stream Events
|
|
134
|
+
StopReason,
|
|
135
|
+
StreamEvent,
|
|
136
|
+
StreamEventType,
|
|
137
|
+
TextDeltaData,
|
|
138
|
+
TextDeltaEvent,
|
|
139
|
+
ToolCompletedData,
|
|
140
|
+
ToolCompletedEvent,
|
|
141
|
+
ToolExecutingData,
|
|
142
|
+
ToolExecutingEvent,
|
|
143
|
+
ToolFailedData,
|
|
144
|
+
ToolFailedEvent,
|
|
145
|
+
ToolPlannedData,
|
|
146
|
+
ToolPlannedEvent,
|
|
147
|
+
ToolResultData,
|
|
148
|
+
ToolResultEvent,
|
|
149
149
|
ToolResultMessageEvent,
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
ToolUseStartData,
|
|
151
|
+
ToolUseStartEvent,
|
|
152
|
+
ToolUseStopData,
|
|
153
|
+
ToolUseStopEvent,
|
|
154
|
+
TurnEvent,
|
|
152
155
|
// Turn Events
|
|
153
156
|
TurnRequestData,
|
|
154
|
-
TurnResponseData,
|
|
155
|
-
TurnEvent,
|
|
156
157
|
TurnRequestEvent,
|
|
158
|
+
TurnResponseData,
|
|
157
159
|
TurnResponseEvent,
|
|
158
|
-
AgentTurnEvent,
|
|
159
|
-
// Agent Output
|
|
160
|
-
AgentOutput,
|
|
161
160
|
// Event Handling
|
|
162
161
|
Unsubscribe,
|
|
163
|
-
|
|
164
|
-
AgentEventHandler,
|
|
162
|
+
UserMessageEvent,
|
|
165
163
|
} from "./event";
|
|
166
164
|
|
|
167
165
|
// Type guards (functions, not types)
|
|
168
|
-
export {
|
|
166
|
+
export { isMessageEvent, isStateEvent, isTurnEvent } from "./event";
|
|
169
167
|
|
|
170
168
|
// =============================================================================
|
|
171
169
|
// Engine Types - Engine, Source, Presenter, Middleware, Interceptor
|
|
172
170
|
// =============================================================================
|
|
173
171
|
|
|
174
172
|
export type {
|
|
175
|
-
// Message Queue
|
|
176
|
-
MessageQueue,
|
|
177
|
-
// Middleware & Interceptor
|
|
178
|
-
AgentMiddlewareNext,
|
|
179
|
-
AgentMiddleware,
|
|
180
|
-
AgentInterceptorNext,
|
|
181
|
-
AgentInterceptor,
|
|
182
|
-
// State Machine
|
|
183
|
-
StateChange,
|
|
184
|
-
StateChangeHandler,
|
|
185
|
-
AgentStateMachineInterface,
|
|
186
|
-
// Event Handler Maps
|
|
187
|
-
EventHandlerMap,
|
|
188
|
-
ReactHandlerMap,
|
|
189
173
|
// Agent Engine
|
|
190
174
|
AgentEngine,
|
|
175
|
+
AgentEventBus,
|
|
176
|
+
AgentInterceptor,
|
|
177
|
+
AgentInterceptorNext,
|
|
178
|
+
AgentMiddleware,
|
|
179
|
+
// Middleware & Interceptor
|
|
180
|
+
AgentMiddlewareNext,
|
|
181
|
+
AgentPresenter,
|
|
191
182
|
// Source & Presenter (EventBus adapters)
|
|
192
183
|
AgentSource,
|
|
193
|
-
|
|
194
|
-
AgentEventBus,
|
|
184
|
+
AgentStateMachineInterface,
|
|
195
185
|
// Factory Options
|
|
196
186
|
CreateAgentOptions,
|
|
187
|
+
// Event Handler Maps
|
|
188
|
+
EventHandlerMap,
|
|
189
|
+
// Message Queue
|
|
190
|
+
MessageQueue,
|
|
191
|
+
ReactHandlerMap,
|
|
192
|
+
// State Machine
|
|
193
|
+
StateChange,
|
|
194
|
+
StateChangeHandler,
|
|
197
195
|
} from "./engine";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This file defines:
|
|
5
5
|
* - Content Parts: TextPart, ThinkingPart, ImagePart, FilePart, ToolCallPart, ToolResultPart
|
|
6
|
-
* - Message Types: UserMessage, AssistantMessage,
|
|
6
|
+
* - Message Types: UserMessage, AssistantMessage, ToolResultMessage, ErrorMessage
|
|
7
7
|
* - Message Role and Subtype discriminators
|
|
8
8
|
*
|
|
9
9
|
* @packageDocumentation
|
|
@@ -215,7 +215,7 @@ export type MessageRole = "user" | "assistant" | "tool" | "system" | "error";
|
|
|
215
215
|
* Represents the specific type/category of the message.
|
|
216
216
|
* Used together with role for serialization and type discrimination.
|
|
217
217
|
*/
|
|
218
|
-
export type MessageSubtype = "user" | "assistant" | "tool-
|
|
218
|
+
export type MessageSubtype = "user" | "assistant" | "tool-result" | "error";
|
|
219
219
|
|
|
220
220
|
/**
|
|
221
221
|
* Token usage information
|
|
@@ -256,9 +256,9 @@ export interface UserMessage {
|
|
|
256
256
|
* Assistant Message
|
|
257
257
|
*
|
|
258
258
|
* Message generated by the AI assistant.
|
|
259
|
-
* Contains text, thinking process,
|
|
260
|
-
*
|
|
261
|
-
*
|
|
259
|
+
* Contains text, thinking process, files, and tool calls.
|
|
260
|
+
* Tool calls are content blocks within the assistant message,
|
|
261
|
+
* matching the mainstream API pattern (Anthropic, OpenAI).
|
|
262
262
|
*/
|
|
263
263
|
export interface AssistantMessage {
|
|
264
264
|
/** Unique identifier */
|
|
@@ -270,8 +270,8 @@ export interface AssistantMessage {
|
|
|
270
270
|
/** Message subtype for serialization */
|
|
271
271
|
subtype: "assistant";
|
|
272
272
|
|
|
273
|
-
/** Message content - can be simple string or array of parts */
|
|
274
|
-
content: string | Array<TextPart | ThinkingPart | FilePart>;
|
|
273
|
+
/** Message content - can be simple string or array of parts (including tool calls) */
|
|
274
|
+
content: string | Array<TextPart | ThinkingPart | FilePart | ToolCallPart>;
|
|
275
275
|
|
|
276
276
|
/** When this message was created (Unix timestamp in milliseconds) */
|
|
277
277
|
timestamp: number;
|
|
@@ -283,35 +283,6 @@ export interface AssistantMessage {
|
|
|
283
283
|
usage?: TokenUsage;
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
/**
|
|
287
|
-
* Tool Call Message
|
|
288
|
-
*
|
|
289
|
-
* Represents AI's request to invoke a tool.
|
|
290
|
-
* Emitted when tool call parameters are fully assembled.
|
|
291
|
-
*
|
|
292
|
-
* Subject: Assistant (AI decided to call a tool)
|
|
293
|
-
* Timing: At tool_use_content_block_stop
|
|
294
|
-
*/
|
|
295
|
-
export interface ToolCallMessage {
|
|
296
|
-
/** Unique message identifier */
|
|
297
|
-
id: string;
|
|
298
|
-
|
|
299
|
-
/** Message role - assistant initiates tool calls */
|
|
300
|
-
role: "assistant";
|
|
301
|
-
|
|
302
|
-
/** Message subtype for serialization */
|
|
303
|
-
subtype: "tool-call";
|
|
304
|
-
|
|
305
|
-
/** Tool call details */
|
|
306
|
-
toolCall: ToolCallPart;
|
|
307
|
-
|
|
308
|
-
/** When this message was created (Unix timestamp in milliseconds) */
|
|
309
|
-
timestamp: number;
|
|
310
|
-
|
|
311
|
-
/** Parent message ID (the assistant message that triggered this) */
|
|
312
|
-
parentId?: string;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
286
|
/**
|
|
316
287
|
* Tool Result Message
|
|
317
288
|
*
|
|
@@ -377,11 +348,6 @@ export interface ErrorMessage {
|
|
|
377
348
|
* Use `subtype` field for precise type discrimination.
|
|
378
349
|
*
|
|
379
350
|
* Role: Who sent it (user, assistant, tool, system, error)
|
|
380
|
-
* Subtype: What type of message (user, assistant, tool-
|
|
351
|
+
* Subtype: What type of message (user, assistant, tool-result, error)
|
|
381
352
|
*/
|
|
382
|
-
export type Message =
|
|
383
|
-
| UserMessage
|
|
384
|
-
| AssistantMessage
|
|
385
|
-
| ToolCallMessage
|
|
386
|
-
| ToolResultMessage
|
|
387
|
-
| ErrorMessage;
|
|
353
|
+
export type Message = UserMessage | AssistantMessage | ToolResultMessage | ErrorMessage;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bash Module
|
|
3
|
+
*
|
|
4
|
+
* Abstraction for command execution capability.
|
|
5
|
+
* Platform packages provide concrete implementations.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import type { BashProvider, BashResult } from "@agentxjs/core/bash";
|
|
10
|
+
*
|
|
11
|
+
* // Platform provides implementation
|
|
12
|
+
* const bash: BashProvider = platform.bashProvider;
|
|
13
|
+
*
|
|
14
|
+
* const result = await bash.execute("echo hello", { cwd: "/tmp" });
|
|
15
|
+
* console.log(result.stdout); // "hello\n"
|
|
16
|
+
* console.log(result.exitCode); // 0
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export { createBashTool } from "./tool";
|
|
21
|
+
export type { BashOptions, BashProvider, BashResult } from "./types";
|
package/src/bash/tool.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bash Tool Definition
|
|
3
|
+
*
|
|
4
|
+
* Creates a ToolDefinition that wraps a BashProvider.
|
|
5
|
+
* The tool schema is sent to the LLM, the execute function
|
|
6
|
+
* delegates to the platform-provided BashProvider via closure.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { ToolDefinition } from "../driver/types";
|
|
10
|
+
import type { BashProvider } from "./types";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Create a bash ToolDefinition from a BashProvider
|
|
14
|
+
*
|
|
15
|
+
* @param provider - Platform-provided BashProvider
|
|
16
|
+
* @returns ToolDefinition ready for DriverConfig.tools
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* if (platform.bashProvider) {
|
|
21
|
+
* tools.push(createBashTool(platform.bashProvider));
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function createBashTool(provider: BashProvider): ToolDefinition {
|
|
26
|
+
return {
|
|
27
|
+
name: "bash",
|
|
28
|
+
description:
|
|
29
|
+
"Execute a shell command and return stdout, stderr, and exit code. " +
|
|
30
|
+
"Use this for running CLI tools, scripts, file operations, etc.",
|
|
31
|
+
parameters: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {
|
|
34
|
+
command: {
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "Shell command to execute (e.g. 'ls -la', 'cat file.txt')",
|
|
37
|
+
},
|
|
38
|
+
cwd: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Working directory for the command (optional)",
|
|
41
|
+
},
|
|
42
|
+
timeout: {
|
|
43
|
+
type: "number",
|
|
44
|
+
description: "Timeout in milliseconds (optional, default 30000)",
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
required: ["command"],
|
|
48
|
+
},
|
|
49
|
+
execute: async (params) => {
|
|
50
|
+
const result = await provider.execute(params.command as string, {
|
|
51
|
+
cwd: params.cwd as string | undefined,
|
|
52
|
+
timeout: params.timeout as number | undefined,
|
|
53
|
+
});
|
|
54
|
+
return result;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bash Types
|
|
3
|
+
*
|
|
4
|
+
* Abstraction for command execution capability.
|
|
5
|
+
* Different platforms provide different implementations:
|
|
6
|
+
* - Node.js: child_process based
|
|
7
|
+
* - Docker: Container exec
|
|
8
|
+
* - Sandbox: Isolated environment
|
|
9
|
+
*
|
|
10
|
+
* ```
|
|
11
|
+
* ┌─────────────────────────────────────────────────────┐
|
|
12
|
+
* │ core/bash │
|
|
13
|
+
* │ ┌─────────────────────────────────────────────────┐│
|
|
14
|
+
* │ │ BashProvider (interface) ││
|
|
15
|
+
* │ │ BashResult (interface) ││
|
|
16
|
+
* │ │ BashOptions (interface) ││
|
|
17
|
+
* │ └─────────────────────────────────────────────────┘│
|
|
18
|
+
* └─────────────────────────────────────────────────────┘
|
|
19
|
+
* │
|
|
20
|
+
* ┌────────────────┼────────────────┐
|
|
21
|
+
* ▼ ▼ ▼
|
|
22
|
+
* ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
23
|
+
* │ platform-node│ │platform-docker│ │platform-sandbox│
|
|
24
|
+
* │ ChildProcess │ │ ContainerExec│ │ SandboxExec │
|
|
25
|
+
* └──────────────┘ └──────────────┘ └──────────────┘
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// Bash Result
|
|
31
|
+
// ============================================================================
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* BashResult - Output from a command execution
|
|
35
|
+
*/
|
|
36
|
+
export interface BashResult {
|
|
37
|
+
/**
|
|
38
|
+
* Standard output
|
|
39
|
+
*/
|
|
40
|
+
stdout: string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Standard error
|
|
44
|
+
*/
|
|
45
|
+
stderr: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Process exit code (0 = success)
|
|
49
|
+
*/
|
|
50
|
+
exitCode: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Bash Options
|
|
55
|
+
// ============================================================================
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* BashOptions - Configuration for a single command execution
|
|
59
|
+
*/
|
|
60
|
+
export interface BashOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Working directory for the command
|
|
63
|
+
*/
|
|
64
|
+
cwd?: string;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Timeout in milliseconds
|
|
68
|
+
*/
|
|
69
|
+
timeout?: number;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Environment variables
|
|
73
|
+
*/
|
|
74
|
+
env?: Record<string, string>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Bash Provider
|
|
79
|
+
// ============================================================================
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* BashProvider - Abstraction for command execution
|
|
83
|
+
*
|
|
84
|
+
* Platform implementations provide this interface.
|
|
85
|
+
* The provider is stateless — each execute() call is independent.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const result = await provider.execute("ls -la", { cwd: "/tmp" });
|
|
90
|
+
* console.log(result.stdout);
|
|
91
|
+
* console.log(result.exitCode); // 0
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export interface BashProvider {
|
|
95
|
+
/**
|
|
96
|
+
* Provider type (e.g., "child-process", "docker", "sandbox")
|
|
97
|
+
*/
|
|
98
|
+
readonly type: string;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Execute a shell command
|
|
102
|
+
*
|
|
103
|
+
* @param command - Shell command to execute
|
|
104
|
+
* @param options - Execution options
|
|
105
|
+
* @returns Command output and exit code
|
|
106
|
+
*/
|
|
107
|
+
execute(command: string, options?: BashOptions): Promise<BashResult>;
|
|
108
|
+
}
|