@amodalai/runtime 0.1.16 → 0.1.17
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/dist/src/agent/feedback-store.d.ts +39 -0
- package/dist/src/agent/feedback-store.js +98 -0
- package/dist/src/agent/feedback-store.js.map +1 -0
- package/dist/src/agent/local-server.js +9 -2
- package/dist/src/agent/local-server.js.map +1 -1
- package/dist/src/agent/routes/admin-chat.d.ts +1 -0
- package/dist/src/agent/routes/admin-chat.js +1 -1
- package/dist/src/agent/routes/admin-chat.js.map +1 -1
- package/dist/src/agent/routes/evals.js +34 -47
- package/dist/src/agent/routes/evals.js.map +1 -1
- package/dist/src/agent/routes/feedback.d.ts +11 -0
- package/dist/src/agent/routes/feedback.js +72 -0
- package/dist/src/agent/routes/feedback.js.map +1 -0
- package/dist/src/agent/routes/files.js +118 -12
- package/dist/src/agent/routes/files.js.map +1 -1
- package/dist/src/agent/routes/inspect.js +33 -0
- package/dist/src/agent/routes/inspect.js.map +1 -1
- package/dist/src/cron/heartbeat-runner.d.ts +3 -6
- package/dist/src/cron/heartbeat-runner.js +1 -10
- package/dist/src/cron/heartbeat-runner.js.map +1 -1
- package/dist/src/index.d.ts +4 -5
- package/dist/src/index.js +3 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/middleware/auth.d.ts +3 -19
- package/dist/src/middleware/auth.js +0 -118
- package/dist/src/middleware/auth.js.map +1 -1
- package/dist/src/routes/ai-stream.d.ts +8 -7
- package/dist/src/routes/ai-stream.js +3 -16
- package/dist/src/routes/ai-stream.js.map +1 -1
- package/dist/src/routes/chat-stream.d.ts +4 -3
- package/dist/src/routes/chat-stream.js +3 -16
- package/dist/src/routes/chat-stream.js.map +1 -1
- package/dist/src/routes/chat.d.ts +4 -2
- package/dist/src/routes/chat.js +2 -14
- package/dist/src/routes/chat.js.map +1 -1
- package/dist/src/routes/chat.test.js +2 -2
- package/dist/src/routes/chat.test.js.map +1 -1
- package/dist/src/server.d.ts +16 -3
- package/dist/src/server.js +24 -25
- package/dist/src/server.js.map +1 -1
- package/dist/src/session/admin-file-tools.d.ts +136 -0
- package/dist/src/session/admin-file-tools.js +240 -0
- package/dist/src/session/admin-file-tools.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +37 -3
- package/dist/src/session/session-manager.js +174 -44
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/session-manager.test.js +30 -52
- package/dist/src/session/session-manager.test.js.map +1 -1
- package/dist/src/session/session-runner.d.ts +29 -13
- package/dist/src/session/session-runner.js +28 -91
- package/dist/src/session/session-runner.js.map +1 -1
- package/dist/src/session/session-runner.test.js +70 -80
- package/dist/src/session/session-runner.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/audit/audit-client.d.ts +0 -46
- package/dist/src/audit/audit-client.js +0 -83
- package/dist/src/audit/audit-client.js.map +0 -1
- package/dist/src/middleware/auth.test.d.ts +0 -6
- package/dist/src/middleware/auth.test.js +0 -260
- package/dist/src/middleware/auth.test.js.map +0 -1
- package/dist/src/routes/sessions.d.ts +0 -14
- package/dist/src/routes/sessions.js +0 -82
- package/dist/src/routes/sessions.js.map +0 -1
- package/dist/src/utils/jwt-verify.d.ts +0 -19
- package/dist/src/utils/jwt-verify.js +0 -32
- package/dist/src/utils/jwt-verify.js.map +0 -1
- package/dist/src/utils/jwt-verify.test.d.ts +0 -6
- package/dist/src/utils/jwt-verify.test.js +0 -150
- package/dist/src/utils/jwt-verify.test.js.map +0 -1
|
@@ -13,7 +13,6 @@ import { GeminiEventType, ToolErrorType, PRESENT_TOOL_NAME, ACTIVATE_SKILL_TOOL_
|
|
|
13
13
|
const SUBAGENT_ACTIVITY_EVENT = 'subagent-activity';
|
|
14
14
|
import { SSEEventType, } from '../types.js';
|
|
15
15
|
const MAX_TURNS = 50;
|
|
16
|
-
const MAX_RESULT_LENGTH = 2000;
|
|
17
16
|
/**
|
|
18
17
|
* Extract text from tool response parts, truncated for audit logging.
|
|
19
18
|
* Handles both plain text parts and functionResponse parts (from task agents).
|
|
@@ -38,9 +37,7 @@ function extractResultText(parts) {
|
|
|
38
37
|
const text = segments.join('');
|
|
39
38
|
if (!text)
|
|
40
39
|
return undefined;
|
|
41
|
-
return text
|
|
42
|
-
? text.slice(0, MAX_RESULT_LENGTH) + '...[truncated]'
|
|
43
|
-
: text;
|
|
40
|
+
return text;
|
|
44
41
|
}
|
|
45
42
|
const MAX_SUBAGENT_RESULT_LENGTH = 300;
|
|
46
43
|
/**
|
|
@@ -86,70 +83,11 @@ function subagentMessageToSSE(msg, parentToolId) {
|
|
|
86
83
|
timestamp: new Date().toISOString(),
|
|
87
84
|
};
|
|
88
85
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Fire-and-forget POST to platform-api to report usage.
|
|
91
|
-
* Never blocks the chat stream — errors are logged to stderr.
|
|
92
|
-
*/
|
|
93
|
-
function reportUsage(audit, model, taskAgentRuns, tokens) {
|
|
94
|
-
if (!audit.platformApiUrl || !audit.orgId)
|
|
95
|
-
return;
|
|
96
|
-
const url = `${audit.platformApiUrl}/api/orgs/${audit.orgId}/usage`;
|
|
97
|
-
const body = JSON.stringify({
|
|
98
|
-
model,
|
|
99
|
-
api_calls: 1,
|
|
100
|
-
chat_sessions: 1,
|
|
101
|
-
task_agent_runs: taskAgentRuns,
|
|
102
|
-
input_tokens: tokens.inputTokens,
|
|
103
|
-
output_tokens: tokens.outputTokens,
|
|
104
|
-
cached_tokens: tokens.cachedTokens,
|
|
105
|
-
});
|
|
106
|
-
fetch(url, {
|
|
107
|
-
method: 'POST',
|
|
108
|
-
headers: {
|
|
109
|
-
'Content-Type': 'application/json',
|
|
110
|
-
...(process.env['INTERNAL_API_KEY']
|
|
111
|
-
? { 'X-Internal-Key': process.env['INTERNAL_API_KEY'] }
|
|
112
|
-
: {}),
|
|
113
|
-
},
|
|
114
|
-
body,
|
|
115
|
-
}).catch((err) => {
|
|
116
|
-
process.stderr.write(`[USAGE] Failed to report usage for org ${audit.orgId}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Fire-and-forget POST to platform-api to persist session history.
|
|
121
|
-
* Never blocks the chat stream — errors are logged to stderr.
|
|
122
|
-
*/
|
|
123
|
-
function saveSessionHistory(audit, sessionId, messages, status, sessionMeta) {
|
|
124
|
-
if (!audit.platformApiUrl || !audit.appId)
|
|
125
|
-
return;
|
|
126
|
-
const url = `${audit.platformApiUrl}/api/applications/${audit.appId}/sessions`;
|
|
127
|
-
const body = JSON.stringify({
|
|
128
|
-
id: sessionId,
|
|
129
|
-
app_id: audit.appId,
|
|
130
|
-
actor: audit.actor,
|
|
131
|
-
messages,
|
|
132
|
-
status,
|
|
133
|
-
// Persist model/provider so hydrated sessions use the same model
|
|
134
|
-
...(sessionMeta?.model ? { model: sessionMeta.model } : {}),
|
|
135
|
-
...(sessionMeta?.provider ? { provider: sessionMeta.provider } : {}),
|
|
136
|
-
});
|
|
137
|
-
fetch(url, {
|
|
138
|
-
method: 'POST',
|
|
139
|
-
headers: {
|
|
140
|
-
'Content-Type': 'application/json',
|
|
141
|
-
Authorization: `Bearer ${audit.token}`,
|
|
142
|
-
},
|
|
143
|
-
body,
|
|
144
|
-
}).catch((err) => {
|
|
145
|
-
process.stderr.write(`[SESSION-HISTORY] Failed to save session ${sessionId}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
86
|
/**
|
|
149
87
|
* Run a synchronous (non-streaming) message through the agentic loop.
|
|
150
88
|
* Collects all text and tool calls, returns a ChatResponse.
|
|
151
89
|
*/
|
|
152
|
-
export async function runMessage(session, message, signal,
|
|
90
|
+
export async function runMessage(session, message, signal, hooks) {
|
|
153
91
|
const { geminiClient, scheduler, config } = session;
|
|
154
92
|
const promptId = `msg-${Date.now()}`;
|
|
155
93
|
const sessionStartMs = Date.now();
|
|
@@ -261,16 +199,16 @@ export async function runMessage(session, message, signal, audit) {
|
|
|
261
199
|
throw err;
|
|
262
200
|
}
|
|
263
201
|
finally {
|
|
264
|
-
if (
|
|
202
|
+
if (hooks) {
|
|
265
203
|
const model = geminiClient.getCurrentSequenceModel() ?? config.getModel();
|
|
266
|
-
logSessionCompleted(
|
|
204
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, toolCalls, skillsActivated, status, errorMessage, sessionStartMs, model, tokens);
|
|
267
205
|
}
|
|
268
206
|
}
|
|
269
207
|
}
|
|
270
208
|
/**
|
|
271
209
|
* Stream a message through the agentic loop, yielding SSE events.
|
|
272
210
|
*/
|
|
273
|
-
export async function* streamMessage(session, message, signal,
|
|
211
|
+
export async function* streamMessage(session, message, signal, hooks, sessionManager) {
|
|
274
212
|
const { geminiClient, scheduler, config } = session;
|
|
275
213
|
const promptId = `msg-${Date.now()}`;
|
|
276
214
|
const sessionStartMs = Date.now();
|
|
@@ -379,8 +317,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
379
317
|
message: errMsg,
|
|
380
318
|
timestamp: new Date().toISOString(),
|
|
381
319
|
};
|
|
382
|
-
logSessionCompleted(
|
|
383
|
-
accumulateAssistantAndSave(session,
|
|
320
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
321
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'error');
|
|
384
322
|
yield {
|
|
385
323
|
type: SSEEventType.Done,
|
|
386
324
|
timestamp: new Date().toISOString(),
|
|
@@ -394,8 +332,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
394
332
|
return;
|
|
395
333
|
}
|
|
396
334
|
else if (event.type === GeminiEventType.AgentExecutionStopped) {
|
|
397
|
-
logSessionCompleted(
|
|
398
|
-
accumulateAssistantAndSave(session,
|
|
335
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
336
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
|
|
399
337
|
yield {
|
|
400
338
|
type: SSEEventType.Done,
|
|
401
339
|
timestamp: new Date().toISOString(),
|
|
@@ -455,7 +393,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
455
393
|
type: SSEEventType.ToolCallResult,
|
|
456
394
|
tool_id: askId,
|
|
457
395
|
status: 'success',
|
|
458
|
-
result: resultOutput
|
|
396
|
+
result: resultOutput,
|
|
459
397
|
duration_ms: askDuration,
|
|
460
398
|
timestamp: new Date().toISOString(),
|
|
461
399
|
};
|
|
@@ -650,7 +588,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
650
588
|
type: SSEEventType.ToolCallResult,
|
|
651
589
|
tool_id: completed.request.callId,
|
|
652
590
|
status: completed.response.error ? 'error' : 'success',
|
|
653
|
-
result: extractResultText(completed.response.responseParts)
|
|
591
|
+
result: extractResultText(completed.response.responseParts),
|
|
654
592
|
duration_ms: duration,
|
|
655
593
|
error: completed.response.error?.message,
|
|
656
594
|
timestamp: new Date().toISOString(),
|
|
@@ -685,8 +623,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
685
623
|
}
|
|
686
624
|
const stopTool = completedToolCalls.find((tc) => tc.response.errorType === ToolErrorType.STOP_EXECUTION);
|
|
687
625
|
if (stopTool) {
|
|
688
|
-
logSessionCompleted(
|
|
689
|
-
accumulateAssistantAndSave(session,
|
|
626
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
627
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
|
|
690
628
|
yield {
|
|
691
629
|
type: SSEEventType.Done,
|
|
692
630
|
timestamp: new Date().toISOString(),
|
|
@@ -706,8 +644,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
706
644
|
break;
|
|
707
645
|
}
|
|
708
646
|
}
|
|
709
|
-
logSessionCompleted(
|
|
710
|
-
accumulateAssistantAndSave(session,
|
|
647
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
648
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, auditStatus === 'completed' ? 'completed' : 'error');
|
|
711
649
|
yield {
|
|
712
650
|
type: SSEEventType.Done,
|
|
713
651
|
timestamp: new Date().toISOString(),
|
|
@@ -722,7 +660,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
722
660
|
/**
|
|
723
661
|
* Accumulate the assistant response message and fire-and-forget save to platform-api.
|
|
724
662
|
*/
|
|
725
|
-
function accumulateAssistantAndSave(session,
|
|
663
|
+
function accumulateAssistantAndSave(session, hooks, responseText, toolCalls, skillsActivated, widgetEvents, contentBlocks, status) {
|
|
726
664
|
const assistantMsg = {
|
|
727
665
|
type: 'assistant_text',
|
|
728
666
|
id: `msg-${Date.now()}`,
|
|
@@ -746,21 +684,17 @@ function accumulateAssistantAndSave(session, audit, responseText, toolCalls, ski
|
|
|
746
684
|
contentBlocks,
|
|
747
685
|
};
|
|
748
686
|
session.accumulatedMessages.push(assistantMsg);
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
});
|
|
754
|
-
}
|
|
687
|
+
hooks?.onSessionPersist?.(session.id, session.accumulatedMessages, status, {
|
|
688
|
+
model: session.model,
|
|
689
|
+
provider: session.provider,
|
|
690
|
+
});
|
|
755
691
|
}
|
|
756
|
-
function logSessionCompleted(
|
|
757
|
-
if (!
|
|
692
|
+
function logSessionCompleted(hooks, sessionId, message, response, turns, toolCalls, skillsActivated, status, error, startMs, model, tokens) {
|
|
693
|
+
if (!hooks)
|
|
758
694
|
return;
|
|
759
695
|
const details = {
|
|
760
696
|
message,
|
|
761
697
|
response,
|
|
762
|
-
app_id: audit.appId,
|
|
763
|
-
org_id: audit.orgId,
|
|
764
698
|
turns,
|
|
765
699
|
duration_ms: Date.now() - startMs,
|
|
766
700
|
status,
|
|
@@ -770,13 +704,16 @@ function logSessionCompleted(audit, sessionId, message, response, turns, toolCal
|
|
|
770
704
|
if (error) {
|
|
771
705
|
details['error'] = error;
|
|
772
706
|
}
|
|
773
|
-
|
|
707
|
+
hooks.onAuditLog?.({
|
|
774
708
|
event: 'session_completed',
|
|
775
709
|
resource_name: sessionId,
|
|
776
710
|
details,
|
|
777
711
|
});
|
|
778
|
-
// Report usage to platform API
|
|
779
712
|
const taskAgentRuns = toolCalls.filter((tc) => tc.tool_name === 'dispatch').length;
|
|
780
|
-
|
|
713
|
+
hooks.onUsageReport?.({
|
|
714
|
+
model: model ?? 'unknown',
|
|
715
|
+
taskAgentRuns,
|
|
716
|
+
tokens: tokens ?? { inputTokens: 0, outputTokens: 0, cachedTokens: 0 },
|
|
717
|
+
});
|
|
781
718
|
}
|
|
782
719
|
//# sourceMappingURL=session-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-runner.js","sourceRoot":"","sources":["../../../src/session/session-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-runner.js","sourceRoot":"","sources":["../../../src/session/session-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -241,26 +241,21 @@ describe('runMessage', () => {
|
|
|
241
241
|
durationMs: 50,
|
|
242
242
|
},
|
|
243
243
|
]);
|
|
244
|
-
const
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
orgId: 'org-1',
|
|
244
|
+
const mockAuditLog = vi.fn();
|
|
245
|
+
const mockUsageReport = vi.fn();
|
|
246
|
+
const hooks = {
|
|
247
|
+
onAuditLog: mockAuditLog,
|
|
248
|
+
onUsageReport: mockUsageReport,
|
|
250
249
|
};
|
|
251
|
-
await runMessage(session, 'do something', controller.signal,
|
|
252
|
-
expect(
|
|
253
|
-
const
|
|
254
|
-
expect(appId).toBe('app-1');
|
|
255
|
-
expect(token).toBe('tok-1');
|
|
250
|
+
await runMessage(session, 'do something', controller.signal, hooks);
|
|
251
|
+
expect(mockAuditLog).toHaveBeenCalledOnce();
|
|
252
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
256
253
|
expect(entry['event']).toBe('session_completed');
|
|
257
254
|
expect(entry['resource_name']).toBe('sess-123');
|
|
258
255
|
const details = entry['details'];
|
|
259
256
|
expect(details['status']).toBe('completed');
|
|
260
257
|
expect(details['message']).toBe('do something');
|
|
261
258
|
expect(details['response']).toBe('Done');
|
|
262
|
-
expect(details['app_id']).toBe('app-1');
|
|
263
|
-
expect(details['org_id']).toBe('org-1');
|
|
264
259
|
expect(details['turns']).toBe(2);
|
|
265
260
|
const toolCalls = details['tool_calls'];
|
|
266
261
|
expect(toolCalls).toHaveLength(1);
|
|
@@ -300,14 +295,14 @@ describe('runMessage', () => {
|
|
|
300
295
|
durationMs: 120,
|
|
301
296
|
},
|
|
302
297
|
]);
|
|
303
|
-
const
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
298
|
+
const mockAuditLog = vi.fn();
|
|
299
|
+
const mockUsageReport = vi.fn();
|
|
300
|
+
const hooks = {
|
|
301
|
+
onAuditLog: mockAuditLog,
|
|
302
|
+
onUsageReport: mockUsageReport,
|
|
308
303
|
};
|
|
309
|
-
await runMessage(session, 'list devices', controller.signal,
|
|
310
|
-
const
|
|
304
|
+
await runMessage(session, 'list devices', controller.signal, hooks);
|
|
305
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
311
306
|
const details = entry['details'];
|
|
312
307
|
const toolCalls = details['tool_calls'];
|
|
313
308
|
expect(toolCalls[0]?.['result']).toBe('{"devices": [{"id": "d1", "name": "sensor-001"}]}');
|
|
@@ -351,14 +346,14 @@ describe('runMessage', () => {
|
|
|
351
346
|
durationMs: 20000,
|
|
352
347
|
},
|
|
353
348
|
]);
|
|
354
|
-
const
|
|
355
|
-
const
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
349
|
+
const mockAuditLog = vi.fn();
|
|
350
|
+
const mockUsageReport = vi.fn();
|
|
351
|
+
const hooks = {
|
|
352
|
+
onAuditLog: mockAuditLog,
|
|
353
|
+
onUsageReport: mockUsageReport,
|
|
359
354
|
};
|
|
360
|
-
await runMessage(session, 'scan environment', controller.signal,
|
|
361
|
-
const
|
|
355
|
+
await runMessage(session, 'scan environment', controller.signal, hooks);
|
|
356
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
362
357
|
const details = entry['details'];
|
|
363
358
|
const toolCalls = details['tool_calls'];
|
|
364
359
|
expect(toolCalls[0]?.['result']).toBe('{"summary":"No anomalies detected","devices_scanned":42}');
|
|
@@ -395,19 +390,19 @@ describe('runMessage', () => {
|
|
|
395
390
|
durationMs: 200,
|
|
396
391
|
},
|
|
397
392
|
]);
|
|
398
|
-
const
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
393
|
+
const mockAuditLog = vi.fn();
|
|
394
|
+
const mockUsageReport = vi.fn();
|
|
395
|
+
const hooks = {
|
|
396
|
+
onAuditLog: mockAuditLog,
|
|
397
|
+
onUsageReport: mockUsageReport,
|
|
403
398
|
};
|
|
404
|
-
await runMessage(session, 'big query', controller.signal,
|
|
405
|
-
const
|
|
399
|
+
await runMessage(session, 'big query', controller.signal, hooks);
|
|
400
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
406
401
|
const details = entry['details'];
|
|
407
402
|
const toolCalls = details['tool_calls'];
|
|
408
403
|
const result = toolCalls[0]?.['result'];
|
|
409
|
-
|
|
410
|
-
expect(result).
|
|
404
|
+
// Tool results are no longer truncated — full output is preserved
|
|
405
|
+
expect(result).toHaveLength(3000);
|
|
411
406
|
});
|
|
412
407
|
it('logs session_completed with error status on throw', async () => {
|
|
413
408
|
const { session } = createMockSession([
|
|
@@ -416,15 +411,15 @@ describe('runMessage', () => {
|
|
|
416
411
|
value: { error: { message: 'LLM error' } },
|
|
417
412
|
},
|
|
418
413
|
]);
|
|
419
|
-
const
|
|
420
|
-
const
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
414
|
+
const mockAuditLog = vi.fn();
|
|
415
|
+
const mockUsageReport = vi.fn();
|
|
416
|
+
const hooks = {
|
|
417
|
+
onAuditLog: mockAuditLog,
|
|
418
|
+
onUsageReport: mockUsageReport,
|
|
424
419
|
};
|
|
425
|
-
await expect(runMessage(session, 'fail', controller.signal,
|
|
426
|
-
expect(
|
|
427
|
-
const
|
|
420
|
+
await expect(runMessage(session, 'fail', controller.signal, hooks)).rejects.toThrow('LLM error');
|
|
421
|
+
expect(mockAuditLog).toHaveBeenCalledOnce();
|
|
422
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
428
423
|
expect(entry['event']).toBe('session_completed');
|
|
429
424
|
const details = entry['details'];
|
|
430
425
|
expect(details['status']).toBe('error');
|
|
@@ -591,26 +586,21 @@ describe('streamMessage', () => {
|
|
|
591
586
|
},
|
|
592
587
|
},
|
|
593
588
|
]);
|
|
594
|
-
const
|
|
595
|
-
const
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
orgId: 'org-1',
|
|
589
|
+
const mockAuditLog = vi.fn();
|
|
590
|
+
const mockUsageReport = vi.fn();
|
|
591
|
+
const hooks = {
|
|
592
|
+
onAuditLog: mockAuditLog,
|
|
593
|
+
onUsageReport: mockUsageReport,
|
|
600
594
|
};
|
|
601
|
-
await collectEvents(streamMessage(session, 'triage please', controller.signal,
|
|
602
|
-
expect(
|
|
603
|
-
const
|
|
604
|
-
expect(appId).toBe('app-1');
|
|
605
|
-
expect(token).toBe('tok-1');
|
|
595
|
+
await collectEvents(streamMessage(session, 'triage please', controller.signal, hooks));
|
|
596
|
+
expect(mockAuditLog).toHaveBeenCalledOnce();
|
|
597
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
606
598
|
expect(entry['event']).toBe('session_completed');
|
|
607
599
|
expect(entry['resource_name']).toBe('sess-123');
|
|
608
600
|
const details = entry['details'];
|
|
609
601
|
expect(details['status']).toBe('completed');
|
|
610
602
|
expect(details['message']).toBe('triage please');
|
|
611
603
|
expect(details['response']).toBe('skill loaded');
|
|
612
|
-
expect(details['app_id']).toBe('app-1');
|
|
613
|
-
expect(details['org_id']).toBe('org-1');
|
|
614
604
|
expect(details['skills_activated']).toEqual(['triage']);
|
|
615
605
|
const toolCalls = details['tool_calls'];
|
|
616
606
|
expect(toolCalls).toHaveLength(1);
|
|
@@ -649,14 +639,14 @@ describe('streamMessage', () => {
|
|
|
649
639
|
durationMs: 80,
|
|
650
640
|
},
|
|
651
641
|
]);
|
|
652
|
-
const
|
|
653
|
-
const
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
642
|
+
const mockAuditLog = vi.fn();
|
|
643
|
+
const mockUsageReport = vi.fn();
|
|
644
|
+
const hooks = {
|
|
645
|
+
onAuditLog: mockAuditLog,
|
|
646
|
+
onUsageReport: mockUsageReport,
|
|
657
647
|
};
|
|
658
|
-
await collectEvents(streamMessage(session, 'check alerts', controller.signal,
|
|
659
|
-
const
|
|
648
|
+
await collectEvents(streamMessage(session, 'check alerts', controller.signal, hooks));
|
|
649
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
660
650
|
const details = entry['details'];
|
|
661
651
|
const toolCalls = details['tool_calls'];
|
|
662
652
|
expect(toolCalls[0]?.['result']).toBe('{"alerts": [{"severity": "high", "message": "anomaly detected"}]}');
|
|
@@ -668,15 +658,15 @@ describe('streamMessage', () => {
|
|
|
668
658
|
value: { error: { message: 'boom' } },
|
|
669
659
|
},
|
|
670
660
|
]);
|
|
671
|
-
const
|
|
672
|
-
const
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
661
|
+
const mockAuditLog = vi.fn();
|
|
662
|
+
const mockUsageReport = vi.fn();
|
|
663
|
+
const hooks = {
|
|
664
|
+
onAuditLog: mockAuditLog,
|
|
665
|
+
onUsageReport: mockUsageReport,
|
|
676
666
|
};
|
|
677
|
-
await collectEvents(streamMessage(session, 'fail', controller.signal,
|
|
678
|
-
expect(
|
|
679
|
-
const
|
|
667
|
+
await collectEvents(streamMessage(session, 'fail', controller.signal, hooks));
|
|
668
|
+
expect(mockAuditLog).toHaveBeenCalledOnce();
|
|
669
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
680
670
|
expect(entry['event']).toBe('session_completed');
|
|
681
671
|
const details = entry['details'];
|
|
682
672
|
expect(details['status']).toBe('error');
|
|
@@ -707,15 +697,15 @@ describe('streamMessage', () => {
|
|
|
707
697
|
},
|
|
708
698
|
},
|
|
709
699
|
]);
|
|
710
|
-
const
|
|
711
|
-
const
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
700
|
+
const mockAuditLog = vi.fn();
|
|
701
|
+
const mockUsageReport = vi.fn();
|
|
702
|
+
const hooks = {
|
|
703
|
+
onAuditLog: mockAuditLog,
|
|
704
|
+
onUsageReport: mockUsageReport,
|
|
715
705
|
};
|
|
716
|
-
await collectEvents(streamMessage(session, 'loop forever', controller.signal,
|
|
717
|
-
expect(
|
|
718
|
-
const
|
|
706
|
+
await collectEvents(streamMessage(session, 'loop forever', controller.signal, hooks));
|
|
707
|
+
expect(mockAuditLog).toHaveBeenCalledOnce();
|
|
708
|
+
const entry = mockAuditLog.mock.calls[0][0];
|
|
719
709
|
expect(entry['event']).toBe('session_completed');
|
|
720
710
|
const details = entry['details'];
|
|
721
711
|
expect(details['status']).toBe('max_turns');
|