@agentplat/sessions 0.2.0-beta.2 → 0.2.0-beta.7

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
@@ -20,6 +20,11 @@ for await (const event of session.stream({ input: scenario, signal })) {
20
20
  }
21
21
  ```
22
22
 
23
- Use Agent Rooms when work must be durable, approval-gated or governed. A future
24
- session sink can bridge this ephemeral event stream into Room audit without
25
- changing the scheduler contract.
23
+ Use Agent Rooms when work must be durable, approval-gated or governed. An
24
+ optional session sink can record an event trail without changing the scheduler
25
+ contract.
26
+
27
+ For browser clients, use `createSessionEventReducer` with
28
+ `subscribeAgentSse` from `@agentplat/streaming`. Sessions can also emit
29
+ append-only `SessionEventRecord` values through `eventSink`; choose
30
+ `sinkFailureMode: 'required'` to fail closed when the sink is unavailable.
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export interface SessionUsage extends JsonObject {
28
28
  reportedTurns: number;
29
29
  }
30
30
  /** Stable reasons why an ephemeral session stopped. */
31
- export type SessionStopReason = 'max_rounds' | 'predicate' | 'marker' | 'aborted' | 'failed';
31
+ export type SessionStopReason = 'max_rounds' | 'predicate' | 'marker' | 'aborted' | 'stopped' | 'timeout' | 'failed';
32
32
  /** State passed to a custom stopping predicate after every completed turn. */
33
33
  export interface SessionStopContext {
34
34
  sessionId: AgentPlatID;
@@ -54,6 +54,34 @@ export interface SessionInputContext {
54
54
  history: readonly SessionMessage[];
55
55
  metadata?: Metadata;
56
56
  }
57
+ /** Optional private persona details used only while assembling one turn input. */
58
+ export interface SessionPersona {
59
+ role?: string;
60
+ goals?: string[];
61
+ constraints?: string[];
62
+ peerDescription?: string;
63
+ }
64
+ /** Templates for the optional generic persona turn-input builder. */
65
+ export interface PersonaInputBuilderOptions {
66
+ personas?: Record<AgentPlatID, SessionPersona>;
67
+ openingTurn?: string;
68
+ replyTurn?: string;
69
+ }
70
+ /** One append-only record delivered to an optional session event sink. */
71
+ export interface SessionEventRecord {
72
+ eventId: AgentPlatID;
73
+ tenantId: AgentPlatID;
74
+ sessionId: AgentPlatID;
75
+ sequence: number;
76
+ occurredAt: string;
77
+ event: MultiAgentSessionEvent;
78
+ }
79
+ /** Durable or observational destination for an ephemeral session event trail. */
80
+ export interface SessionEventSink {
81
+ append(record: SessionEventRecord): Promise<void>;
82
+ }
83
+ /** Behavior when a configured event sink cannot accept an event. */
84
+ export type SessionSinkFailureMode = 'best_effort' | 'required';
57
85
  /** Configuration shared by every invocation of a multi-agent session. */
58
86
  export interface MultiAgentSessionOptions {
59
87
  runtime: AgentRuntime;
@@ -62,9 +90,17 @@ export interface MultiAgentSessionOptions {
62
90
  credentials?: Record<string, string>;
63
91
  maxRounds?: number;
64
92
  historyLimit?: number;
93
+ /** Maximum whole-session duration. A timeout stops the active provider run. */
94
+ sessionTimeoutMs?: number;
95
+ /** Maximum duration of one speaker turn. */
96
+ turnTimeoutMs?: number;
65
97
  stopMarkers?: string[];
66
98
  stopWhen?: (context: SessionStopContext) => boolean | SessionStopDecision | Promise<boolean | SessionStopDecision>;
67
99
  buildInput?: (context: SessionInputContext) => AgentRunInput;
100
+ /** Optional append-only event destination; it does not make a session a Room. */
101
+ eventSink?: SessionEventSink;
102
+ /** Defaults to best_effort. Required sinks fail the session stream on write errors. */
103
+ sinkFailureMode?: SessionSinkFailureMode;
68
104
  idGenerator?: () => AgentPlatID;
69
105
  clock?: () => Date;
70
106
  }
@@ -74,7 +110,11 @@ export interface MultiAgentSessionInput {
74
110
  history?: SessionMessage[];
75
111
  metadata?: Metadata;
76
112
  sessionId?: AgentPlatID;
113
+ /** Overrides the configured session timeout for one execution. */
114
+ timeoutMs?: number;
77
115
  signal?: AbortSignal;
116
+ /** Stops only after the active speaker turn completes cleanly. */
117
+ stopSignal?: AbortSignal;
78
118
  }
79
119
  /** Public result returned after draining a multi-agent session. */
80
120
  export interface MultiAgentSessionResult {
@@ -88,6 +128,49 @@ export interface MultiAgentSessionResult {
88
128
  usage: SessionUsage;
89
129
  durationMs: number;
90
130
  }
131
+ /** A UI-oriented projection derived from the public session event stream. */
132
+ export interface SessionTurnView {
133
+ turnId: AgentPlatID;
134
+ speaker: SessionSpeakerRef;
135
+ round: number;
136
+ turn: number;
137
+ content: string;
138
+ status: 'running' | 'completed' | 'failed';
139
+ usage?: AgentUsage;
140
+ latencyMs?: number;
141
+ model?: string;
142
+ finishReason?: string;
143
+ }
144
+ /** Reducer state suitable for browser UI bubbles and session dashboards. */
145
+ export interface SessionViewState {
146
+ sessionId?: AgentPlatID;
147
+ status: 'idle' | 'running' | 'completed' | 'aborted' | 'failed';
148
+ speakers: SessionSpeakerRef[];
149
+ turns: Record<AgentPlatID, SessionTurnView>;
150
+ turnOrder: AgentPlatID[];
151
+ /** The active turn, so UIs do not need to scan every turn. */
152
+ activeTurnId?: AgentPlatID;
153
+ usage: SessionUsage;
154
+ /** Sum of provider-reported completed-turn latency. */
155
+ totalLatencyMs: number;
156
+ stopReason?: SessionStopReason;
157
+ stopDetail?: string;
158
+ durationMs?: number;
159
+ }
160
+ /** Pure reducer for `MultiAgentSessionEvent` values received over SSE or in-process. */
161
+ export interface SessionEventReducer {
162
+ initialState: SessionViewState;
163
+ reduce(state: SessionViewState, event: MultiAgentSessionEvent): SessionViewState;
164
+ }
165
+ /** Stable, dependency-free metrics for any metrics backend. */
166
+ export interface SessionMetrics extends JsonObject {
167
+ inputTokens: number;
168
+ outputTokens: number;
169
+ totalTokens: number;
170
+ reportedTurns: number;
171
+ turnsCompleted: number;
172
+ durationMs: number;
173
+ }
91
174
  /** Compact speaker identity transported in session event payloads. */
92
175
  export interface SessionSpeakerRef extends JsonObject {
93
176
  id: AgentPlatID;
@@ -169,7 +252,10 @@ export declare class MultiAgentSession {
169
252
  private readonly credentials?;
170
253
  private readonly maxRounds;
171
254
  private readonly historyLimit;
255
+ private readonly sessionTimeoutMs?;
256
+ private readonly turnTimeoutMs?;
172
257
  private readonly stopMarkers;
258
+ private readonly sinkFailureMode;
173
259
  private readonly idGenerator;
174
260
  private readonly clock;
175
261
  constructor(options: MultiAgentSessionOptions);
@@ -178,10 +264,19 @@ export declare class MultiAgentSession {
178
264
  /** Run a session to completion and return its bounded final state. */
179
265
  run(input: MultiAgentSessionInput): Promise<MultiAgentSessionResult>;
180
266
  private execute;
267
+ private recordEvents;
181
268
  private agentDefinition;
182
269
  private buildInput;
183
270
  }
184
271
  /** Create a reusable ephemeral multi-agent session. */
185
272
  export declare function createMultiAgentSession(options: MultiAgentSessionOptions): MultiAgentSession;
273
+ /** Format a bounded transcript without making its presentation a prompt DSL. */
274
+ export declare function formatSessionTranscript(history: readonly SessionMessage[]): string;
275
+ /** Build a generic, overwriteable input mapper for persona-based turns. */
276
+ export declare function createPersonaInputBuilder(options?: PersonaInputBuilderOptions): (context: SessionInputContext) => AgentRunInput;
277
+ /** Create a pure reducer that maps streamed events into UI-friendly state. */
278
+ export declare function createSessionEventReducer(): SessionEventReducer;
279
+ /** Convert a completed session into stable numeric metrics for any backend. */
280
+ export declare function sessionMetrics(result: Pick<MultiAgentSessionResult, 'usage' | 'turnsCompleted' | 'durationMs'>): SessionMetrics;
186
281
  export {};
187
282
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,7 +17,10 @@ export class MultiAgentSession {
17
17
  credentials;
18
18
  maxRounds;
19
19
  historyLimit;
20
+ sessionTimeoutMs;
21
+ turnTimeoutMs;
20
22
  stopMarkers;
23
+ sinkFailureMode;
21
24
  idGenerator;
22
25
  clock;
23
26
  constructor(options) {
@@ -32,6 +35,8 @@ export class MultiAgentSession {
32
35
  : undefined;
33
36
  this.maxRounds = positiveInteger(options.maxRounds ?? 4, 'maxRounds', 100);
34
37
  this.historyLimit = positiveInteger(options.historyLimit ?? 50, 'historyLimit', 1_000);
38
+ this.sessionTimeoutMs = optionalTimeout(options.sessionTimeoutMs, 'sessionTimeoutMs');
39
+ this.turnTimeoutMs = optionalTimeout(options.turnTimeoutMs, 'turnTimeoutMs');
35
40
  this.stopMarkers = (options.stopMarkers ?? []).map((marker, index) => {
36
41
  required(marker, `stopMarkers[${index}]`);
37
42
  return marker;
@@ -39,17 +44,22 @@ export class MultiAgentSession {
39
44
  this.idGenerator =
40
45
  options.idGenerator ?? (() => globalThis.crypto.randomUUID());
41
46
  this.clock = options.clock ?? (() => new Date());
47
+ this.sinkFailureMode = options.sinkFailureMode ?? 'best_effort';
48
+ if (this.sinkFailureMode !== 'best_effort' &&
49
+ this.sinkFailureMode !== 'required') {
50
+ throw new AgentPlatError('VALIDATION_ERROR', 'sinkFailureMode must be best_effort or required');
51
+ }
42
52
  }
43
53
  /** Stream one independent multi-agent execution. */
44
54
  stream(input) {
45
- return this.execute(input);
55
+ return this.recordEvents(this.execute(input));
46
56
  }
47
57
  /** Run a session to completion and return its bounded final state. */
48
58
  async run(input) {
49
59
  let result;
50
- for await (const _event of this.execute(input, (completed) => {
60
+ for await (const _event of this.recordEvents(this.execute(input, (completed) => {
51
61
  result = completed;
52
- })) {
62
+ }))) {
53
63
  // Draining the stream preserves the same execution path as web clients.
54
64
  }
55
65
  if (!result) {
@@ -62,6 +72,7 @@ export class MultiAgentSession {
62
72
  const sessionId = input.sessionId ?? this.idGenerator();
63
73
  required(sessionId, 'sessionId');
64
74
  const startedAt = performance.now();
75
+ const sessionTimeout = createTimeout(optionalTimeout(input.timeoutMs, 'timeoutMs') ?? this.sessionTimeoutMs, 'Session timed out');
65
76
  const history = cloneHistory(input.history ?? []).slice(-this.historyLimit);
66
77
  const usage = emptyUsage();
67
78
  let turnsCompleted = 0;
@@ -69,251 +80,325 @@ export class MultiAgentSession {
69
80
  let stopReason;
70
81
  let stopDetail;
71
82
  let stopMarker;
72
- yield {
73
- type: 'session_started',
74
- runId: sessionId,
75
- payload: {
76
- sessionId,
77
- speakers: this.speakers.map(speakerRef),
78
- maxRounds: this.maxRounds,
79
- historyLimit: this.historyLimit,
80
- },
81
- };
82
- outer: for (let round = 1; round <= this.maxRounds; round += 1) {
83
- for (const speaker of this.speakers) {
84
- if (input.signal?.aborted) {
85
- stopReason = 'aborted';
86
- stopDetail = abortMessage(input.signal);
87
- break outer;
88
- }
89
- const turn = turnsCompleted + 1;
90
- const turnId = this.idGenerator();
91
- const turnPayload = {
83
+ try {
84
+ yield {
85
+ type: 'session_started',
86
+ runId: sessionId,
87
+ payload: {
92
88
  sessionId,
93
- turnId,
94
- speaker: speakerRef(speaker),
95
- round,
96
- turn,
97
- };
98
- yield {
99
- type: 'speaker_changed',
100
- runId: turnId,
101
- payload: turnPayload,
102
- };
103
- yield { type: 'turn_started', runId: turnId, payload: turnPayload };
104
- const turnStartedAt = performance.now();
105
- let output = '';
106
- let completion;
107
- let turnFailure;
108
- const agent = this.agentDefinition(speaker);
109
- try {
110
- const runInput = this.buildInput({
111
- sessionId,
112
- scenario: input.input,
113
- speaker,
114
- round,
115
- turn,
116
- history,
117
- metadata: input.metadata,
118
- });
119
- for await (const event of this.options.runtime.stream(agent, runInput, {
120
- tenant: this.tenant,
121
- runId: turnId,
122
- agentId: speaker.id,
123
- signal: input.signal,
124
- credentials: this.credentials,
125
- policies: sessionPolicies,
126
- metadata: {
127
- ...(input.metadata ?? {}),
128
- sessionId,
129
- speakerId: speaker.id,
130
- round,
131
- turn,
132
- },
133
- })) {
134
- switch (event.type) {
135
- case 'started':
136
- break;
137
- case 'token':
138
- output += event.content;
139
- yield {
140
- type: 'token',
141
- runId: turnId,
142
- content: event.content,
143
- payload: turnPayload,
144
- };
145
- break;
146
- case 'tool_call':
147
- case 'tool_result':
148
- yield {
149
- type: event.type,
150
- runId: turnId,
151
- content: event.content,
152
- payload: {
153
- ...turnPayload,
154
- ...(event.payload ? { runtimePayload: event.payload } : {}),
155
- },
156
- };
157
- break;
158
- case 'completed':
159
- output = event.content ?? output;
160
- completion = event.payload;
161
- break;
162
- case 'failed':
163
- turnFailure = event.content;
164
- break;
165
- }
89
+ speakers: this.speakers.map(speakerRef),
90
+ maxRounds: this.maxRounds,
91
+ historyLimit: this.historyLimit,
92
+ },
93
+ };
94
+ outer: for (let round = 1; round <= this.maxRounds; round += 1) {
95
+ for (const speaker of this.speakers) {
96
+ if (sessionTimeout.timedOut) {
97
+ stopReason = 'timeout';
98
+ stopDetail = 'Session timed out';
99
+ break outer;
100
+ }
101
+ if (input.stopSignal?.aborted) {
102
+ stopReason = 'stopped';
103
+ stopDetail = cooperativeStopMessage(input.stopSignal);
104
+ break outer;
166
105
  }
167
- }
168
- catch (error) {
169
106
  if (input.signal?.aborted) {
170
107
  stopReason = 'aborted';
171
108
  stopDetail = abortMessage(input.signal);
109
+ break outer;
172
110
  }
173
- else {
174
- stopReason = 'failed';
175
- stopDetail = turnFailure ?? errorMessage(error);
176
- }
177
- }
178
- if (turnFailure && !stopReason) {
179
- stopReason = 'failed';
180
- stopDetail = turnFailure;
181
- }
182
- if (stopReason === 'aborted' || stopReason === 'failed') {
183
- if (stopReason === 'failed') {
184
- yield {
185
- type: 'session_failed',
186
- runId: sessionId,
187
- content: stopDetail ?? 'Session turn failed',
188
- payload: {
189
- ...turnPayload,
190
- reason: 'failed',
191
- ...(stopDetail ? { detail: stopDetail } : {}),
192
- },
193
- };
194
- }
195
- break outer;
196
- }
197
- const reportedUsage = normalizedUsage(completion?.usage);
198
- addUsage(usage, reportedUsage, completion?.usage !== undefined);
199
- turnsCompleted = turn;
200
- roundsCompleted = round;
201
- const message = {
202
- speakerId: speaker.id,
203
- speakerName: speaker.name,
204
- content: output,
205
- round,
206
- turn,
207
- createdAt: this.clock().toISOString(),
208
- };
209
- history.push(message);
210
- if (history.length > this.historyLimit)
211
- history.shift();
212
- yield {
213
- type: 'turn_completed',
214
- runId: turnId,
215
- content: output,
216
- payload: {
217
- ...turnPayload,
218
- usage: reportedUsage,
219
- aggregateUsage: { ...usage },
220
- latencyMs: completion?.latencyMs ?? elapsedMilliseconds(turnStartedAt),
221
- ...(completion?.model ? { model: completion.model } : {}),
222
- ...(completion?.finishReason
223
- ? { finishReason: completion.finishReason }
224
- : {}),
225
- },
226
- };
227
- stopMarker = matchingMarker(output, this.stopMarkers);
228
- if (stopMarker) {
229
- stopReason = 'marker';
230
- stopDetail = `Matched stop marker: ${stopMarker}`;
231
- break outer;
232
- }
233
- if (this.options.stopWhen) {
111
+ const turn = turnsCompleted + 1;
112
+ const turnId = this.idGenerator();
113
+ const turnPayload = {
114
+ sessionId,
115
+ turnId,
116
+ speaker: speakerRef(speaker),
117
+ round,
118
+ turn,
119
+ };
120
+ yield {
121
+ type: 'speaker_changed',
122
+ runId: turnId,
123
+ payload: turnPayload,
124
+ };
125
+ yield { type: 'turn_started', runId: turnId, payload: turnPayload };
126
+ const turnStartedAt = performance.now();
127
+ const turnTimeout = createTimeout(this.turnTimeoutMs, 'Turn timed out');
128
+ const executionSignal = combineSignals(input.signal, sessionTimeout.signal, turnTimeout.signal);
129
+ let output = '';
130
+ let completion;
131
+ let turnFailure;
132
+ const agent = this.agentDefinition(speaker);
234
133
  try {
235
- const decision = await this.options.stopWhen({
134
+ const runInput = this.buildInput({
236
135
  sessionId,
136
+ scenario: input.input,
237
137
  speaker,
238
138
  round,
239
139
  turn,
240
- history: cloneHistory(history),
241
- latest: { ...message },
242
- usage: { ...usage },
140
+ history,
141
+ metadata: input.metadata,
243
142
  });
244
- if (decision === true ||
245
- (typeof decision === 'object' && decision.stop)) {
246
- stopReason = 'predicate';
247
- stopDetail =
248
- typeof decision === 'object' ? decision.detail : undefined;
249
- break outer;
143
+ for await (const event of this.options.runtime.stream(agent, runInput, {
144
+ tenant: this.tenant,
145
+ runId: turnId,
146
+ agentId: speaker.id,
147
+ signal: executionSignal.signal,
148
+ credentials: this.credentials,
149
+ policies: sessionPolicies,
150
+ metadata: {
151
+ ...(input.metadata ?? {}),
152
+ sessionId,
153
+ speakerId: speaker.id,
154
+ round,
155
+ turn,
156
+ },
157
+ })) {
158
+ switch (event.type) {
159
+ case 'started':
160
+ break;
161
+ case 'token':
162
+ output += event.content;
163
+ yield {
164
+ type: 'token',
165
+ runId: turnId,
166
+ content: event.content,
167
+ payload: turnPayload,
168
+ };
169
+ break;
170
+ case 'tool_call':
171
+ case 'tool_result':
172
+ yield {
173
+ type: event.type,
174
+ runId: turnId,
175
+ content: event.content,
176
+ payload: {
177
+ ...turnPayload,
178
+ ...(event.payload
179
+ ? { runtimePayload: event.payload }
180
+ : {}),
181
+ },
182
+ };
183
+ break;
184
+ case 'completed':
185
+ output = event.content ?? output;
186
+ completion = event.payload;
187
+ break;
188
+ case 'failed':
189
+ turnFailure = event.content;
190
+ break;
191
+ }
192
+ }
193
+ if (sessionTimeout.timedOut || turnTimeout.timedOut) {
194
+ stopReason = 'timeout';
195
+ stopDetail = sessionTimeout.timedOut
196
+ ? 'Session timed out'
197
+ : 'Turn timed out';
250
198
  }
251
199
  }
252
200
  catch (error) {
201
+ if (sessionTimeout.timedOut || turnTimeout.timedOut) {
202
+ stopReason = 'timeout';
203
+ stopDetail = sessionTimeout.timedOut
204
+ ? 'Session timed out'
205
+ : 'Turn timed out';
206
+ }
207
+ else if (input.signal?.aborted) {
208
+ stopReason = 'aborted';
209
+ stopDetail = abortMessage(input.signal);
210
+ }
211
+ else {
212
+ stopReason = 'failed';
213
+ stopDetail = turnFailure ?? errorMessage(error);
214
+ }
215
+ }
216
+ finally {
217
+ executionSignal.dispose();
218
+ turnTimeout.dispose();
219
+ }
220
+ if (turnFailure && !stopReason) {
253
221
  stopReason = 'failed';
254
- stopDetail = errorMessage(error);
255
- yield {
256
- type: 'session_failed',
257
- runId: sessionId,
258
- content: stopDetail,
259
- payload: {
260
- ...turnPayload,
261
- reason: 'failed',
262
- detail: stopDetail,
263
- },
264
- };
222
+ stopDetail = turnFailure;
223
+ }
224
+ if (stopReason === 'aborted' ||
225
+ stopReason === 'timeout' ||
226
+ stopReason === 'failed') {
227
+ if (stopReason === 'failed') {
228
+ yield {
229
+ type: 'session_failed',
230
+ runId: sessionId,
231
+ content: stopDetail ?? 'Session turn failed',
232
+ payload: {
233
+ ...turnPayload,
234
+ reason: 'failed',
235
+ ...(stopDetail ? { detail: stopDetail } : {}),
236
+ },
237
+ };
238
+ }
239
+ break outer;
240
+ }
241
+ const reportedUsage = normalizedUsage(completion?.usage);
242
+ addUsage(usage, reportedUsage, completion?.usage !== undefined);
243
+ turnsCompleted = turn;
244
+ roundsCompleted = round;
245
+ const message = {
246
+ speakerId: speaker.id,
247
+ speakerName: speaker.name,
248
+ content: output,
249
+ round,
250
+ turn,
251
+ createdAt: this.clock().toISOString(),
252
+ };
253
+ history.push(message);
254
+ if (history.length > this.historyLimit)
255
+ history.shift();
256
+ yield {
257
+ type: 'turn_completed',
258
+ runId: turnId,
259
+ content: output,
260
+ payload: {
261
+ ...turnPayload,
262
+ usage: reportedUsage,
263
+ aggregateUsage: { ...usage },
264
+ latencyMs: completion?.latencyMs ?? elapsedMilliseconds(turnStartedAt),
265
+ ...(completion?.model ? { model: completion.model } : {}),
266
+ ...(completion?.finishReason
267
+ ? { finishReason: completion.finishReason }
268
+ : {}),
269
+ },
270
+ };
271
+ if (input.stopSignal?.aborted) {
272
+ stopReason = 'stopped';
273
+ stopDetail = cooperativeStopMessage(input.stopSignal);
274
+ break outer;
275
+ }
276
+ stopMarker = matchingMarker(output, this.stopMarkers);
277
+ if (stopMarker) {
278
+ stopReason = 'marker';
279
+ stopDetail = `Matched stop marker: ${stopMarker}`;
265
280
  break outer;
266
281
  }
282
+ if (this.options.stopWhen) {
283
+ try {
284
+ const decision = await this.options.stopWhen({
285
+ sessionId,
286
+ speaker,
287
+ round,
288
+ turn,
289
+ history: cloneHistory(history),
290
+ latest: { ...message },
291
+ usage: { ...usage },
292
+ });
293
+ if (decision === true ||
294
+ (typeof decision === 'object' && decision.stop)) {
295
+ stopReason = 'predicate';
296
+ stopDetail =
297
+ typeof decision === 'object' ? decision.detail : undefined;
298
+ break outer;
299
+ }
300
+ }
301
+ catch (error) {
302
+ stopReason = 'failed';
303
+ stopDetail = errorMessage(error);
304
+ yield {
305
+ type: 'session_failed',
306
+ runId: sessionId,
307
+ content: stopDetail,
308
+ payload: {
309
+ ...turnPayload,
310
+ reason: 'failed',
311
+ detail: stopDetail,
312
+ },
313
+ };
314
+ break outer;
315
+ }
316
+ }
267
317
  }
268
318
  }
269
- }
270
- stopReason ??= input.signal?.aborted ? 'aborted' : 'max_rounds';
271
- if (stopReason === 'aborted') {
272
- stopDetail ??= input.signal ? abortMessage(input.signal) : undefined;
273
- }
274
- yield {
275
- type: 'stop_reason',
276
- runId: sessionId,
277
- payload: {
278
- sessionId,
279
- reason: stopReason,
280
- ...(stopDetail ? { detail: stopDetail } : {}),
281
- ...(stopMarker ? { marker: stopMarker } : {}),
282
- round: roundsCompleted,
283
- turn: turnsCompleted,
284
- },
285
- };
286
- const status = stopReason === 'aborted'
287
- ? 'aborted'
288
- : stopReason === 'failed'
289
- ? 'failed'
290
- : 'completed';
291
- const result = {
292
- sessionId,
293
- status,
294
- stopReason,
295
- stopDetail,
296
- roundsCompleted,
297
- turnsCompleted,
298
- history: cloneHistory(history),
299
- usage: { ...usage },
300
- durationMs: elapsedMilliseconds(startedAt),
301
- };
302
- onResult?.(result);
303
- yield {
304
- type: 'session_completed',
305
- runId: sessionId,
306
- payload: {
319
+ stopReason ??= sessionTimeout.timedOut
320
+ ? 'timeout'
321
+ : input.signal?.aborted
322
+ ? 'aborted'
323
+ : input.stopSignal?.aborted
324
+ ? 'stopped'
325
+ : 'max_rounds';
326
+ if (stopReason === 'aborted') {
327
+ stopDetail ??= input.signal ? abortMessage(input.signal) : undefined;
328
+ }
329
+ yield {
330
+ type: 'stop_reason',
331
+ runId: sessionId,
332
+ payload: {
333
+ sessionId,
334
+ reason: stopReason,
335
+ ...(stopDetail ? { detail: stopDetail } : {}),
336
+ ...(stopMarker ? { marker: stopMarker } : {}),
337
+ round: roundsCompleted,
338
+ turn: turnsCompleted,
339
+ },
340
+ };
341
+ const status = stopReason === 'aborted'
342
+ ? 'aborted'
343
+ : stopReason === 'failed' || stopReason === 'timeout'
344
+ ? 'failed'
345
+ : 'completed';
346
+ const result = {
307
347
  sessionId,
308
348
  status,
309
349
  stopReason,
310
- ...(stopDetail ? { stopDetail } : {}),
350
+ stopDetail,
311
351
  roundsCompleted,
312
352
  turnsCompleted,
353
+ history: cloneHistory(history),
313
354
  usage: { ...usage },
314
- durationMs: result.durationMs,
315
- },
316
- };
355
+ durationMs: elapsedMilliseconds(startedAt),
356
+ };
357
+ onResult?.(result);
358
+ yield {
359
+ type: 'session_completed',
360
+ runId: sessionId,
361
+ payload: {
362
+ sessionId,
363
+ status,
364
+ stopReason,
365
+ ...(stopDetail ? { stopDetail } : {}),
366
+ roundsCompleted,
367
+ turnsCompleted,
368
+ usage: { ...usage },
369
+ durationMs: result.durationMs,
370
+ },
371
+ };
372
+ }
373
+ finally {
374
+ sessionTimeout.dispose();
375
+ }
376
+ }
377
+ async *recordEvents(events) {
378
+ let sequence = 0;
379
+ for await (const event of events) {
380
+ sequence += 1;
381
+ if (this.options.eventSink) {
382
+ const sessionId = event.payload.sessionId;
383
+ const record = {
384
+ eventId: `${sessionId}:${sequence}`,
385
+ tenantId: this.tenant.tenantId,
386
+ sessionId,
387
+ sequence,
388
+ occurredAt: this.clock().toISOString(),
389
+ event: structuredClone(event),
390
+ };
391
+ try {
392
+ await this.options.eventSink.append(record);
393
+ }
394
+ catch (error) {
395
+ if (this.sinkFailureMode === 'required') {
396
+ throw new AgentPlatError('ADAPTER_ERROR', `Session event sink failed: ${errorMessage(error)}`);
397
+ }
398
+ }
399
+ }
400
+ yield event;
401
+ }
317
402
  }
318
403
  agentDefinition(speaker) {
319
404
  const now = this.clock().toISOString();
@@ -342,6 +427,65 @@ export class MultiAgentSession {
342
427
  export function createMultiAgentSession(options) {
343
428
  return new MultiAgentSession(options);
344
429
  }
430
+ /** Format a bounded transcript without making its presentation a prompt DSL. */
431
+ export function formatSessionTranscript(history) {
432
+ return history.length
433
+ ? history
434
+ .map((message) => `${message.speakerName}: ${message.content}`)
435
+ .join('\n')
436
+ : '(no previous turns)';
437
+ }
438
+ /** Build a generic, overwriteable input mapper for persona-based turns. */
439
+ export function createPersonaInputBuilder(options = {}) {
440
+ return (context) => {
441
+ const persona = options.personas?.[context.speaker.id];
442
+ const scenario = typeof context.scenario === 'string'
443
+ ? context.scenario
444
+ : JSON.stringify(context.scenario);
445
+ const transcript = formatSessionTranscript(context.history);
446
+ const turnTemplate = context.history.length === 0
447
+ ? (options.openingTurn ??
448
+ 'Open the conversation in character and move the scenario forward.')
449
+ : (options.replyTurn ??
450
+ 'Reply to the conversation so far in character and move it forward.');
451
+ return {
452
+ input: [
453
+ {
454
+ role: 'user',
455
+ content: [
456
+ `Scenario:\n${scenario}`,
457
+ formatPersona(context.speaker, persona),
458
+ `Conversation so far:\n${transcript}`,
459
+ `Your turn:\n${turnTemplate}`,
460
+ ].join('\n\n'),
461
+ },
462
+ ],
463
+ mode: 'chat',
464
+ metadata: {
465
+ ...(context.metadata ?? {}),
466
+ sessionId: context.sessionId,
467
+ speakerId: context.speaker.id,
468
+ round: context.round,
469
+ turn: context.turn,
470
+ },
471
+ };
472
+ };
473
+ }
474
+ /** Create a pure reducer that maps streamed events into UI-friendly state. */
475
+ export function createSessionEventReducer() {
476
+ return { initialState: emptySessionViewState(), reduce: reduceSessionEvent };
477
+ }
478
+ /** Convert a completed session into stable numeric metrics for any backend. */
479
+ export function sessionMetrics(result) {
480
+ return {
481
+ inputTokens: result.usage.inputTokens,
482
+ outputTokens: result.usage.outputTokens,
483
+ totalTokens: result.usage.totalTokens,
484
+ reportedTurns: result.usage.reportedTurns,
485
+ turnsCompleted: result.turnsCompleted,
486
+ durationMs: result.durationMs,
487
+ };
488
+ }
345
489
  function validateSpeakers(speakers) {
346
490
  if (!Array.isArray(speakers) || speakers.length < 2) {
347
491
  throw new AgentPlatError('VALIDATION_ERROR', 'A multi-agent session requires at least two speakers');
@@ -369,11 +513,7 @@ function defaultInput(context) {
369
513
  const scenario = typeof context.scenario === 'string'
370
514
  ? context.scenario
371
515
  : JSON.stringify(context.scenario);
372
- const transcript = context.history.length
373
- ? context.history
374
- .map((message) => `${message.speakerName}: ${message.content}`)
375
- .join('\n')
376
- : '(no previous turns)';
516
+ const transcript = formatSessionTranscript(context.history);
377
517
  return {
378
518
  input: [
379
519
  {
@@ -406,6 +546,125 @@ function emptyUsage() {
406
546
  reportedTurns: 0,
407
547
  };
408
548
  }
549
+ function emptySessionViewState() {
550
+ return {
551
+ status: 'idle',
552
+ speakers: [],
553
+ turns: {},
554
+ turnOrder: [],
555
+ usage: emptyUsage(),
556
+ totalLatencyMs: 0,
557
+ };
558
+ }
559
+ function reduceSessionEvent(state, event) {
560
+ const next = {
561
+ ...state,
562
+ speakers: [...state.speakers],
563
+ turns: { ...state.turns },
564
+ turnOrder: [...state.turnOrder],
565
+ usage: { ...state.usage },
566
+ };
567
+ switch (event.type) {
568
+ case 'session_started':
569
+ next.sessionId = event.payload.sessionId;
570
+ next.status = 'running';
571
+ next.speakers = event.payload.speakers.map((speaker) => ({ ...speaker }));
572
+ return next;
573
+ case 'speaker_changed':
574
+ case 'turn_started': {
575
+ const { turnId, speaker, round, turn } = event.payload;
576
+ if (!next.turns[turnId]) {
577
+ next.turns[turnId] = {
578
+ turnId,
579
+ speaker: { ...speaker },
580
+ round,
581
+ turn,
582
+ content: '',
583
+ status: 'running',
584
+ };
585
+ next.turnOrder.push(turnId);
586
+ }
587
+ next.activeTurnId = turnId;
588
+ return next;
589
+ }
590
+ case 'token': {
591
+ const current = ensureTurn(next, event.payload);
592
+ current.content += event.content;
593
+ return next;
594
+ }
595
+ case 'turn_completed': {
596
+ const current = ensureTurn(next, event.payload);
597
+ current.content = event.content;
598
+ current.status = 'completed';
599
+ current.usage = { ...event.payload.usage };
600
+ current.latencyMs = event.payload.latencyMs;
601
+ current.model = event.payload.model;
602
+ current.finishReason = event.payload.finishReason;
603
+ next.totalLatencyMs += event.payload.latencyMs;
604
+ if (next.activeTurnId === current.turnId)
605
+ next.activeTurnId = undefined;
606
+ next.usage = { ...event.payload.aggregateUsage };
607
+ return next;
608
+ }
609
+ case 'session_failed': {
610
+ const current = ensureTurn(next, event.payload);
611
+ current.status = 'failed';
612
+ current.content ||= event.content;
613
+ if (next.activeTurnId === current.turnId)
614
+ next.activeTurnId = undefined;
615
+ next.status = 'failed';
616
+ next.stopDetail = event.content;
617
+ return next;
618
+ }
619
+ case 'stop_reason':
620
+ next.stopReason = event.payload.reason;
621
+ next.stopDetail = event.payload.detail;
622
+ return next;
623
+ case 'session_completed':
624
+ next.sessionId = event.payload.sessionId;
625
+ next.usage = { ...event.payload.usage };
626
+ next.stopReason = event.payload.stopReason;
627
+ next.stopDetail = event.payload.stopDetail;
628
+ next.durationMs = event.payload.durationMs;
629
+ next.activeTurnId = undefined;
630
+ next.status = event.payload.status;
631
+ return next;
632
+ case 'tool_call':
633
+ case 'tool_result':
634
+ return next;
635
+ }
636
+ }
637
+ function ensureTurn(state, payload) {
638
+ const current = state.turns[payload.turnId];
639
+ if (current)
640
+ return current;
641
+ const created = {
642
+ turnId: payload.turnId,
643
+ speaker: { ...payload.speaker },
644
+ round: payload.round,
645
+ turn: payload.turn,
646
+ content: '',
647
+ status: 'running',
648
+ };
649
+ state.turns[payload.turnId] = created;
650
+ state.turnOrder.push(payload.turnId);
651
+ return created;
652
+ }
653
+ function formatPersona(speaker, persona) {
654
+ const details = [
655
+ `You are ${speaker.name}.`,
656
+ speaker.instructions ? `Instructions: ${speaker.instructions}` : undefined,
657
+ persona?.role ? `Role: ${persona.role}` : undefined,
658
+ persona?.goals?.length
659
+ ? `Private goals: ${persona.goals.join('; ')}`
660
+ : undefined,
661
+ persona?.constraints?.length
662
+ ? `Private constraints: ${persona.constraints.join('; ')}`
663
+ : undefined,
664
+ persona?.peerDescription ? `Peer: ${persona.peerDescription}` : undefined,
665
+ ].filter((part) => Boolean(part));
666
+ return details.join('\n');
667
+ }
409
668
  function normalizedUsage(usage) {
410
669
  return {
411
670
  inputTokens: normalizedCount(usage?.inputTokens),
@@ -440,6 +699,61 @@ function abortMessage(signal) {
440
699
  ? signal.reason.message
441
700
  : 'Session aborted';
442
701
  }
702
+ function cooperativeStopMessage(signal) {
703
+ return signal.reason instanceof Error
704
+ ? signal.reason.message
705
+ : 'Session stop requested';
706
+ }
707
+ function optionalTimeout(value, field) {
708
+ if (value === undefined)
709
+ return undefined;
710
+ return positiveInteger(value, field, 86_400_000);
711
+ }
712
+ function createTimeout(timeoutMs, message) {
713
+ if (timeoutMs === undefined) {
714
+ return { signal: undefined, timedOut: false, dispose() { } };
715
+ }
716
+ const controller = new AbortController();
717
+ const state = {
718
+ timedOut: false,
719
+ signal: controller.signal,
720
+ dispose() {
721
+ clearTimeout(timer);
722
+ },
723
+ };
724
+ const timer = setTimeout(() => {
725
+ state.timedOut = true;
726
+ controller.abort(new Error(message));
727
+ }, timeoutMs);
728
+ return state;
729
+ }
730
+ function combineSignals(...signals) {
731
+ const controller = new AbortController();
732
+ const listeners = [];
733
+ const abort = (signal) => {
734
+ if (!controller.signal.aborted)
735
+ controller.abort(signal.reason);
736
+ };
737
+ for (const signal of signals) {
738
+ if (!signal)
739
+ continue;
740
+ if (signal.aborted) {
741
+ abort(signal);
742
+ continue;
743
+ }
744
+ const listener = () => abort(signal);
745
+ signal.addEventListener('abort', listener, { once: true });
746
+ listeners.push([signal, listener]);
747
+ }
748
+ return {
749
+ signal: controller.signal,
750
+ dispose() {
751
+ for (const [signal, listener] of listeners) {
752
+ signal.removeEventListener('abort', listener);
753
+ }
754
+ },
755
+ };
756
+ }
443
757
  function errorMessage(error) {
444
758
  return error instanceof Error ? error.message : 'Session execution failed';
445
759
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentplat/sessions",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.7",
4
4
  "description": "Typed ephemeral multi-agent sessions for AgentPlat runtimes.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -18,8 +18,8 @@
18
18
  "README.md"
19
19
  ],
20
20
  "dependencies": {
21
- "@agentplat/core": "^0.2.0-beta.2",
22
- "@agentplat/runtime": "^0.2.0-beta.2"
21
+ "@agentplat/core": "^0.2.0-beta.7",
22
+ "@agentplat/runtime": "^0.2.0-beta.7"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"