@amodalai/runtime 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/src/agent/agent-types.d.ts +0 -6
  2. package/dist/src/agent/agent-types.js +0 -2
  3. package/dist/src/agent/agent-types.js.map +1 -1
  4. package/dist/src/agent/agent-types.test.js +0 -11
  5. package/dist/src/agent/agent-types.test.js.map +1 -1
  6. package/dist/src/agent/feedback-store.d.ts +39 -0
  7. package/dist/src/agent/feedback-store.js +98 -0
  8. package/dist/src/agent/feedback-store.js.map +1 -0
  9. package/dist/src/agent/local-server.js +21 -5
  10. package/dist/src/agent/local-server.js.map +1 -1
  11. package/dist/src/agent/routes/admin-chat.d.ts +1 -0
  12. package/dist/src/agent/routes/admin-chat.js +1 -1
  13. package/dist/src/agent/routes/admin-chat.js.map +1 -1
  14. package/dist/src/agent/routes/chat.d.ts +2 -2
  15. package/dist/src/agent/routes/chat.js +4 -4
  16. package/dist/src/agent/routes/chat.js.map +1 -1
  17. package/dist/src/agent/routes/chat.test.js +14 -20
  18. package/dist/src/agent/routes/chat.test.js.map +1 -1
  19. package/dist/src/agent/routes/evals.js +34 -47
  20. package/dist/src/agent/routes/evals.js.map +1 -1
  21. package/dist/src/agent/routes/feedback.d.ts +11 -0
  22. package/dist/src/agent/routes/feedback.js +72 -0
  23. package/dist/src/agent/routes/feedback.js.map +1 -0
  24. package/dist/src/agent/routes/files.js +118 -12
  25. package/dist/src/agent/routes/files.js.map +1 -1
  26. package/dist/src/agent/routes/inspect.js +33 -0
  27. package/dist/src/agent/routes/inspect.js.map +1 -1
  28. package/dist/src/agent/routes/task.js +2 -4
  29. package/dist/src/agent/routes/task.js.map +1 -1
  30. package/dist/src/cron/heartbeat-runner.d.ts +3 -6
  31. package/dist/src/cron/heartbeat-runner.js +1 -10
  32. package/dist/src/cron/heartbeat-runner.js.map +1 -1
  33. package/dist/src/index.d.ts +4 -5
  34. package/dist/src/index.js +3 -10
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/middleware/auth.d.ts +3 -19
  37. package/dist/src/middleware/auth.js +0 -118
  38. package/dist/src/middleware/auth.js.map +1 -1
  39. package/dist/src/routes/ai-stream.d.ts +8 -7
  40. package/dist/src/routes/ai-stream.js +3 -16
  41. package/dist/src/routes/ai-stream.js.map +1 -1
  42. package/dist/src/routes/chat-stream.d.ts +4 -3
  43. package/dist/src/routes/chat-stream.js +3 -16
  44. package/dist/src/routes/chat-stream.js.map +1 -1
  45. package/dist/src/routes/chat.d.ts +4 -2
  46. package/dist/src/routes/chat.js +2 -14
  47. package/dist/src/routes/chat.js.map +1 -1
  48. package/dist/src/routes/chat.test.js +2 -2
  49. package/dist/src/routes/chat.test.js.map +1 -1
  50. package/dist/src/server.d.ts +16 -3
  51. package/dist/src/server.js +24 -25
  52. package/dist/src/server.js.map +1 -1
  53. package/dist/src/session/admin-file-tools.d.ts +136 -0
  54. package/dist/src/session/admin-file-tools.js +240 -0
  55. package/dist/src/session/admin-file-tools.js.map +1 -0
  56. package/dist/src/session/session-manager.d.ts +37 -3
  57. package/dist/src/session/session-manager.js +174 -44
  58. package/dist/src/session/session-manager.js.map +1 -1
  59. package/dist/src/session/session-manager.test.js +30 -52
  60. package/dist/src/session/session-manager.test.js.map +1 -1
  61. package/dist/src/session/session-runner.d.ts +29 -13
  62. package/dist/src/session/session-runner.js +28 -91
  63. package/dist/src/session/session-runner.js.map +1 -1
  64. package/dist/src/session/session-runner.test.js +70 -80
  65. package/dist/src/session/session-runner.test.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +2 -2
  68. package/dist/src/audit/audit-client.d.ts +0 -46
  69. package/dist/src/audit/audit-client.js +0 -83
  70. package/dist/src/audit/audit-client.js.map +0 -1
  71. package/dist/src/middleware/auth.test.d.ts +0 -6
  72. package/dist/src/middleware/auth.test.js +0 -260
  73. package/dist/src/middleware/auth.test.js.map +0 -1
  74. package/dist/src/routes/sessions.d.ts +0 -14
  75. package/dist/src/routes/sessions.js +0 -82
  76. package/dist/src/routes/sessions.js.map +0 -1
  77. package/dist/src/utils/jwt-verify.d.ts +0 -19
  78. package/dist/src/utils/jwt-verify.js +0 -32
  79. package/dist/src/utils/jwt-verify.js.map +0 -1
  80. package/dist/src/utils/jwt-verify.test.d.ts +0 -6
  81. package/dist/src/utils/jwt-verify.test.js +0 -150
  82. package/dist/src/utils/jwt-verify.test.js.map +0 -1
@@ -433,9 +433,11 @@ describe('SessionManager', () => {
433
433
  { type: 'user', id: 'msg-1', text: 'Hello', timestamp: '2024-01-01T00:00:00Z' },
434
434
  { type: 'assistant_text', id: 'msg-2', text: 'Hi there!', timestamp: '2024-01-01T00:00:01Z' },
435
435
  ];
436
+ const mockGetSession = vi.fn();
436
437
  function makeHydrateManager() {
437
438
  const mockSetHistory = vi.fn();
438
439
  mockGetGeminiClient.mockReturnValue({ setHistory: mockSetHistory });
440
+ mockGetSession.mockReset();
439
441
  const mgr = new SessionManager({
440
442
  baseParams: {
441
443
  sessionId: 'base',
@@ -446,6 +448,7 @@ describe('SessionManager', () => {
446
448
  },
447
449
  cleanupIntervalMs: 60_000,
448
450
  platformApiUrl: 'http://localhost:4000',
451
+ sessionStore: { getSession: mockGetSession },
449
452
  });
450
453
  return { mgr, mockSetHistory };
451
454
  }
@@ -481,65 +484,49 @@ describe('SessionManager', () => {
481
484
  expect(result).toBeNull();
482
485
  await mgr.shutdown();
483
486
  });
484
- it('returns null on fetch failure', async () => {
487
+ it('returns null on session store error', async () => {
485
488
  const { mgr } = makeHydrateManager();
486
- const fetchSpy = vi.spyOn(global, 'fetch').mockRejectedValueOnce(new Error('Network error'));
489
+ mockGetSession.mockRejectedValueOnce(new Error('Network error'));
487
490
  const result = await mgr.hydrate('conv-1', undefined, platformAuth);
488
491
  expect(result).toBeNull();
489
- fetchSpy.mockRestore();
490
492
  await mgr.shutdown();
491
493
  });
492
- it('returns null on non-OK HTTP response', async () => {
494
+ it('returns null when session store returns null', async () => {
493
495
  const { mgr } = makeHydrateManager();
494
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValueOnce({
495
- ok: false,
496
- status: 404,
497
- });
496
+ mockGetSession.mockResolvedValueOnce(null);
498
497
  const result = await mgr.hydrate('conv-1', undefined, platformAuth);
499
498
  expect(result).toBeNull();
500
- fetchSpy.mockRestore();
501
499
  await mgr.shutdown();
502
500
  });
503
501
  it('returns null when stored conversation has no messages', async () => {
504
502
  const { mgr } = makeHydrateManager();
505
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValueOnce({
506
- ok: true,
507
- json: async () => ({ id: 'conv-1', app_id: 'app-1', messages: [], status: 'active' }),
508
- });
503
+ mockGetSession.mockResolvedValueOnce({ id: 'conv-1', app_id: 'app-1', messages: [], status: 'active' });
509
504
  const result = await mgr.hydrate('conv-1', undefined, platformAuth);
510
505
  expect(result).toBeNull();
511
- fetchSpy.mockRestore();
512
506
  await mgr.shutdown();
513
507
  });
514
508
  it('creates session under original conversation ID', async () => {
515
509
  const { mgr, mockSetHistory } = makeHydrateManager();
516
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValueOnce({
517
- ok: true,
518
- json: async () => ({
519
- id: 'conv-original',
520
- app_id: 'app-1',
521
- messages: storedMessages,
522
- status: 'active',
523
- }),
510
+ mockGetSession.mockResolvedValueOnce({
511
+ id: 'conv-original',
512
+ app_id: 'app-1',
513
+ messages: storedMessages,
514
+ status: 'active',
524
515
  });
525
516
  const session = await mgr.hydrate('conv-original', undefined, platformAuth);
526
517
  expect(session).not.toBeNull();
527
518
  expect(session.id).toBe('conv-original');
528
519
  expect(mgr.get('conv-original')).toBeDefined();
529
520
  expect(mockSetHistory).toHaveBeenCalledOnce();
530
- fetchSpy.mockRestore();
531
521
  await mgr.shutdown();
532
522
  });
533
523
  it('seeds LLM history via setHistory', async () => {
534
524
  const { mgr, mockSetHistory } = makeHydrateManager();
535
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValueOnce({
536
- ok: true,
537
- json: async () => ({
538
- id: 'conv-history',
539
- app_id: 'app-1',
540
- messages: storedMessages,
541
- status: 'active',
542
- }),
525
+ mockGetSession.mockResolvedValueOnce({
526
+ id: 'conv-history',
527
+ app_id: 'app-1',
528
+ messages: storedMessages,
529
+ status: 'active',
543
530
  });
544
531
  await mgr.hydrate('conv-history', undefined, platformAuth);
545
532
  expect(mockSetHistory).toHaveBeenCalledOnce();
@@ -547,40 +534,32 @@ describe('SessionManager', () => {
547
534
  expect(historyArg).toHaveLength(2);
548
535
  expect(historyArg[0]?.['role']).toBe('user');
549
536
  expect(historyArg[1]?.['role']).toBe('model');
550
- fetchSpy.mockRestore();
551
537
  await mgr.shutdown();
552
538
  });
553
539
  it('pre-populates accumulatedMessages', async () => {
554
540
  const { mgr } = makeHydrateManager();
555
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValueOnce({
556
- ok: true,
557
- json: async () => ({
558
- id: 'conv-acc',
559
- app_id: 'app-1',
560
- messages: storedMessages,
561
- status: 'active',
562
- }),
541
+ mockGetSession.mockResolvedValueOnce({
542
+ id: 'conv-acc',
543
+ app_id: 'app-1',
544
+ messages: storedMessages,
545
+ status: 'active',
563
546
  });
564
547
  const session = await mgr.hydrate('conv-acc', undefined, platformAuth);
565
548
  expect(session.accumulatedMessages).toHaveLength(2);
566
549
  expect(session.accumulatedMessages[0]?.text).toBe('Hello');
567
550
  expect(session.accumulatedMessages[1]?.text).toBe('Hi there!');
568
- fetchSpy.mockRestore();
569
551
  await mgr.shutdown();
570
552
  });
571
553
  it('deduplicates concurrent hydration requests', async () => {
572
554
  const { mgr } = makeHydrateManager();
573
- let resolveJson;
574
- const jsonPromise = new Promise((r) => { resolveJson = r; });
575
- const fetchSpy = vi.spyOn(global, 'fetch').mockResolvedValue({
576
- ok: true,
577
- json: () => jsonPromise,
578
- });
555
+ let resolveSession;
556
+ const sessionPromise = new Promise((r) => { resolveSession = r; });
557
+ mockGetSession.mockReturnValue(sessionPromise);
579
558
  // Start two concurrent hydrations for the same conversation
580
559
  const p1 = mgr.hydrate('conv-dedup', undefined, platformAuth);
581
560
  const p2 = mgr.hydrate('conv-dedup', undefined, platformAuth);
582
- // Resolve the fetch
583
- resolveJson({
561
+ // Resolve the session store
562
+ resolveSession({
584
563
  id: 'conv-dedup',
585
564
  app_id: 'app-1',
586
565
  messages: storedMessages,
@@ -589,9 +568,8 @@ describe('SessionManager', () => {
589
568
  const [s1, s2] = await Promise.all([p1, p2]);
590
569
  // Both should return the same session
591
570
  expect(s1).toBe(s2);
592
- // Only one fetch was made
593
- expect(fetchSpy).toHaveBeenCalledTimes(1);
594
- fetchSpy.mockRestore();
571
+ // Only one store call was made
572
+ expect(mockGetSession).toHaveBeenCalledTimes(1);
595
573
  await mgr.shutdown();
596
574
  });
597
575
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/session/session-manager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/session/session-manager.test.ts"],"names":[],"mappings":"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"}
@@ -3,27 +3,43 @@
3
3
  * Copyright 2025 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import type { ManagedSession, SessionManager } from './session-manager.js';
6
+ import type { ManagedSession, SessionManager, SessionMessage } from './session-manager.js';
7
7
  import { type ChatResponse, type SSEEvent } from '../types.js';
8
- import type { AuditClient } from '../audit/audit-client.js';
9
8
  /**
10
- * Audit context for logging chat events to the platform API.
9
+ * Lifecycle hooks for session streaming events.
10
+ * Implementations are provided by the hosting layer (e.g., hosted-runtime).
11
11
  */
12
- export interface StreamAuditContext {
13
- auditClient: AuditClient;
14
- appId: string;
15
- token: string;
16
- orgId?: string;
17
- actor?: string;
18
- /** Platform API URL for session history persistence */
19
- platformApiUrl?: string;
12
+ export interface StreamHooks {
13
+ /** Log an audit event */
14
+ onAuditLog?: (entry: {
15
+ event: string;
16
+ resource_name: string;
17
+ details?: Record<string, unknown>;
18
+ }) => void;
19
+ /** Report token usage after each turn (fire-and-forget) */
20
+ onUsageReport?: (usage: {
21
+ model: string;
22
+ taskAgentRuns: number;
23
+ tokens: TokenCounts;
24
+ }) => void;
25
+ /** Persist session history after each turn (fire-and-forget) */
26
+ onSessionPersist?: (sessionId: string, messages: SessionMessage[], status: 'active' | 'completed' | 'error', meta?: {
27
+ model?: string;
28
+ provider?: string;
29
+ }) => void;
30
+ }
31
+ interface TokenCounts {
32
+ inputTokens: number;
33
+ outputTokens: number;
34
+ cachedTokens: number;
20
35
  }
21
36
  /**
22
37
  * Run a synchronous (non-streaming) message through the agentic loop.
23
38
  * Collects all text and tool calls, returns a ChatResponse.
24
39
  */
25
- export declare function runMessage(session: ManagedSession, message: string, signal: AbortSignal, audit?: StreamAuditContext): Promise<ChatResponse>;
40
+ export declare function runMessage(session: ManagedSession, message: string, signal: AbortSignal, hooks?: StreamHooks): Promise<ChatResponse>;
26
41
  /**
27
42
  * Stream a message through the agentic loop, yielding SSE events.
28
43
  */
29
- export declare function streamMessage(session: ManagedSession, message: string, signal: AbortSignal, audit?: StreamAuditContext, sessionManager?: SessionManager): AsyncGenerator<SSEEvent>;
44
+ export declare function streamMessage(session: ManagedSession, message: string, signal: AbortSignal, hooks?: StreamHooks, sessionManager?: SessionManager): AsyncGenerator<SSEEvent>;
45
+ export {};
@@ -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.length > MAX_RESULT_LENGTH
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, audit) {
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 (audit) {
202
+ if (hooks) {
265
203
  const model = geminiClient.getCurrentSequenceModel() ?? config.getModel();
266
- logSessionCompleted(audit, session.id, message, responseText, turnCount, toolCalls, skillsActivated, status, errorMessage, sessionStartMs, model, tokens);
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, audit, sessionManager) {
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(audit, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
383
- accumulateAssistantAndSave(session, audit, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'error');
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(audit, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
398
- accumulateAssistantAndSave(session, audit, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
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.slice(0, 500),
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)?.slice(0, 500),
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(audit, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
689
- accumulateAssistantAndSave(session, audit, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
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(audit, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
710
- accumulateAssistantAndSave(session, audit, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, auditStatus === 'completed' ? 'completed' : 'error');
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, audit, responseText, toolCalls, skillsActivated, widgetEvents, contentBlocks, status) {
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
- if (audit) {
750
- saveSessionHistory(audit, session.id, session.accumulatedMessages, status, {
751
- model: session.model,
752
- provider: session.provider,
753
- });
754
- }
687
+ hooks?.onSessionPersist?.(session.id, session.accumulatedMessages, status, {
688
+ model: session.model,
689
+ provider: session.provider,
690
+ });
755
691
  }
756
- function logSessionCompleted(audit, sessionId, message, response, turns, toolCalls, skillsActivated, status, error, startMs, model, tokens) {
757
- if (!audit)
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
- audit.auditClient.log(audit.appId, audit.token, {
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
- reportUsage(audit, model ?? 'unknown', taskAgentRuns, tokens ?? { inputTokens: 0, outputTokens: 0, cachedTokens: 0 });
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