@inspectr/mcplab 1.30.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +2 -2
  2. package/dist/app/assets/index-Cwogc_kk.js +267 -0
  3. package/dist/app/assets/index-D5OYchKq.css +2 -0
  4. package/dist/app/index.html +2 -2
  5. package/dist/app-server/app-context.d.ts +6 -22
  6. package/dist/app-server/app-context.d.ts.map +1 -1
  7. package/dist/app-server/assistant-agent.d.ts +10 -0
  8. package/dist/app-server/assistant-agent.d.ts.map +1 -0
  9. package/dist/app-server/assistant-agent.js +29 -0
  10. package/dist/app-server/assistant-agent.js.map +1 -0
  11. package/dist/app-server/assistant-common.d.ts +7 -34
  12. package/dist/app-server/assistant-common.d.ts.map +1 -1
  13. package/dist/app-server/assistant-common.js +33 -194
  14. package/dist/app-server/assistant-common.js.map +1 -1
  15. package/dist/app-server/assistant-events.d.ts +10 -6
  16. package/dist/app-server/assistant-events.d.ts.map +1 -1
  17. package/dist/app-server/assistant-events.js +23 -11
  18. package/dist/app-server/assistant-events.js.map +1 -1
  19. package/dist/app-server/assistant-graph-nodes.d.ts +226 -0
  20. package/dist/app-server/assistant-graph-nodes.d.ts.map +1 -0
  21. package/dist/app-server/assistant-graph-nodes.js +365 -0
  22. package/dist/app-server/assistant-graph-nodes.js.map +1 -0
  23. package/dist/app-server/assistant-graph-state.d.ts +64 -0
  24. package/dist/app-server/assistant-graph-state.d.ts.map +1 -0
  25. package/dist/app-server/assistant-graph-state.js +137 -0
  26. package/dist/app-server/assistant-graph-state.js.map +1 -0
  27. package/dist/app-server/assistant-mcp-context-tools.d.ts +17 -0
  28. package/dist/app-server/assistant-mcp-context-tools.d.ts.map +1 -0
  29. package/dist/app-server/assistant-mcp-context-tools.js +149 -0
  30. package/dist/app-server/assistant-mcp-context-tools.js.map +1 -0
  31. package/dist/app-server/assistant-model.d.ts +24 -0
  32. package/dist/app-server/assistant-model.d.ts.map +1 -0
  33. package/dist/app-server/assistant-model.js +240 -0
  34. package/dist/app-server/assistant-model.js.map +1 -0
  35. package/dist/app-server/assistant-runtime-contract.d.ts +46 -0
  36. package/dist/app-server/assistant-runtime-contract.d.ts.map +1 -0
  37. package/dist/app-server/assistant-runtime-contract.js +2 -0
  38. package/dist/app-server/assistant-runtime-contract.js.map +1 -0
  39. package/dist/app-server/assistant-runtime-policy.d.ts +22 -0
  40. package/dist/app-server/assistant-runtime-policy.d.ts.map +1 -0
  41. package/dist/app-server/assistant-runtime-policy.js +71 -0
  42. package/dist/app-server/assistant-runtime-policy.js.map +1 -0
  43. package/dist/app-server/assistant-service.d.ts +23 -0
  44. package/dist/app-server/assistant-service.d.ts.map +1 -0
  45. package/dist/app-server/assistant-service.js +185 -0
  46. package/dist/app-server/assistant-service.js.map +1 -0
  47. package/dist/app-server/assistant-session-routes.d.ts +25 -0
  48. package/dist/app-server/assistant-session-routes.d.ts.map +1 -0
  49. package/dist/app-server/assistant-session-routes.js +210 -0
  50. package/dist/app-server/assistant-session-routes.js.map +1 -0
  51. package/dist/app-server/assistant-tracing.d.ts +5 -0
  52. package/dist/app-server/assistant-tracing.d.ts.map +1 -0
  53. package/dist/app-server/assistant-tracing.js +30 -0
  54. package/dist/app-server/assistant-tracing.js.map +1 -0
  55. package/dist/app-server/browser-provider-learning.js +1 -1
  56. package/dist/app-server/browser-provider-learning.js.map +1 -1
  57. package/dist/app-server/langchain-assistant-runtime.d.ts +11 -0
  58. package/dist/app-server/langchain-assistant-runtime.d.ts.map +1 -0
  59. package/dist/app-server/langchain-assistant-runtime.js +852 -0
  60. package/dist/app-server/langchain-assistant-runtime.js.map +1 -0
  61. package/dist/app-server/one-shot-json.d.ts +26 -0
  62. package/dist/app-server/one-shot-json.d.ts.map +1 -0
  63. package/dist/app-server/one-shot-json.js +168 -0
  64. package/dist/app-server/one-shot-json.js.map +1 -0
  65. package/dist/app-server/result-assistant-domain.d.ts +46 -48
  66. package/dist/app-server/result-assistant-domain.d.ts.map +1 -1
  67. package/dist/app-server/result-assistant-domain.js +148 -133
  68. package/dist/app-server/result-assistant-domain.js.map +1 -1
  69. package/dist/app-server/result-assistant.d.ts +2 -2
  70. package/dist/app-server/result-assistant.d.ts.map +1 -1
  71. package/dist/app-server/result-assistant.js +43 -311
  72. package/dist/app-server/result-assistant.js.map +1 -1
  73. package/dist/app-server/router.d.ts.map +1 -1
  74. package/dist/app-server/router.js +14 -16
  75. package/dist/app-server/router.js.map +1 -1
  76. package/dist/app-server/runs-routes.js +1 -1
  77. package/dist/app-server/runs-routes.js.map +1 -1
  78. package/dist/app-server/scenario-assistant-domain.d.ts +43 -136
  79. package/dist/app-server/scenario-assistant-domain.d.ts.map +1 -1
  80. package/dist/app-server/scenario-assistant-domain.js +377 -215
  81. package/dist/app-server/scenario-assistant-domain.js.map +1 -1
  82. package/dist/app-server/scenario-assistant.d.ts +3 -3
  83. package/dist/app-server/scenario-assistant.d.ts.map +1 -1
  84. package/dist/app-server/scenario-assistant.js +52 -406
  85. package/dist/app-server/scenario-assistant.js.map +1 -1
  86. package/dist/app-server/settings-store.d.ts.map +1 -1
  87. package/dist/app-server/settings-store.js +2 -5
  88. package/dist/app-server/settings-store.js.map +1 -1
  89. package/dist/app-server/tool-analysis-domain.d.ts +1 -1
  90. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  91. package/dist/app-server/tool-analysis-domain.js +5 -4
  92. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  93. package/dist/app-server/types.d.ts +1 -1
  94. package/dist/app-server/types.d.ts.map +1 -1
  95. package/dist/cli.js +2 -1
  96. package/dist/cli.js.map +1 -1
  97. package/package.json +10 -4
  98. package/dist/app/assets/index-8I9ZyPIK.js +0 -243
  99. package/dist/app/assets/index-jX7LoIQP.css +0 -2
@@ -1,18 +1,33 @@
1
- import { chatWithAgent } from '@inspectr/mcplab-core';
2
- import { cleanupSessionsByTtl, makeAssistantToolPublicName, formatAssistantToolName, newAssistantEntityId, touchSession, throwIfAborted, truncateJson, withTimeout } from './assistant-common.js';
1
+ import { McpClientManager } from '@inspectr/mcplab-core';
2
+ import { ASSISTANT_TOOL_TIMEOUT_MESSAGE, assistantToolDisplay, ASSISTANT_TOOL_TIMEOUT_MS, cleanupSessionsByTtl, makeAssistantToolPublicName, touchSession, truncateJson, withTimeout } from './assistant-common.js';
3
3
  import { endAssistantSseClients } from './assistant-events.js';
4
- import { isResultAssistantAllowedTool } from './result-assistant-tools.js';
4
+ import { setupAssistantRuntimeSession } from './assistant-service.js';
5
+ import { isResultAssistantAllowedTool, isResultAssistantAutoApprovedTool } from './result-assistant-tools.js';
6
+ import { APPROVAL_GUIDANCE } from './assistant-runtime-policy.js';
7
+ function createResultAssistantResources(agentConfig, resultSummary, referenceReportsForRun) {
8
+ return {
9
+ agentConfig,
10
+ mcp: new McpClientManager(),
11
+ tools: [],
12
+ toolPublicMap: new Map(),
13
+ resultSummary,
14
+ referenceReportsForRun
15
+ };
16
+ }
5
17
  const RESULT_ASSISTANT_SESSION_TTL_MS = 30 * 60 * 1000;
6
- const RESULT_ASSISTANT_TOOL_RESULT_PREVIEW_CHARS = 4000;
7
- const RESULT_ASSISTANT_MAX_PENDING_TOOL_CALLS = 3;
8
18
  const RESULT_ASSISTANT_MCP_SERVER_NAME = 'mcplab';
19
+ // The hard TTL also aborts work in abandoned sessions; active operations refresh lastTouchedAt.
9
20
  export function cleanupResultAssistantSessions(sessions, now = Date.now()) {
10
- cleanupSessionsByTtl(sessions, RESULT_ASSISTANT_SESSION_TTL_MS, now, endAssistantSseClients);
21
+ cleanupSessionsByTtl(sessions, RESULT_ASSISTANT_SESSION_TTL_MS, now, (session) => {
22
+ void Promise.resolve(session.runtime.dispose()).catch(() => { });
23
+ endAssistantSseClients(session);
24
+ });
11
25
  }
12
26
  export function touchResultAssistantSession(session) {
13
27
  touchSession(session);
14
28
  }
15
29
  export function resultAssistantSessionView(session) {
30
+ const runtimeSnapshot = session.runtime.getSnapshot();
16
31
  return {
17
32
  id: session.id,
18
33
  scope: session.scope,
@@ -20,119 +35,139 @@ export function resultAssistantSessionView(session) {
20
35
  createdAt: new Date(session.createdAt).toISOString(),
21
36
  updatedAt: new Date(session.lastTouchedAt).toISOString(),
22
37
  selectedAssistantAgentName: session.selectedAssistantAgentName,
23
- model: session.agentConfig.model,
24
- provider: session.agentConfig.provider,
25
- messages: session.chatMessages,
26
- pendingToolCalls: session.pendingToolCalls
38
+ model: session.model,
39
+ provider: session.provider,
40
+ toolsLoaded: session.toolsLoaded,
41
+ toolServers: session.toolServers,
42
+ revision: runtimeSnapshot.revision,
43
+ messages: runtimeSnapshot.messages,
44
+ pendingToolCalls: runtimeSnapshot.pendingToolCalls,
45
+ activeTurnId: runtimeSnapshot.activeTurnId,
46
+ streamingMessage: runtimeSnapshot.streamingMessage
27
47
  };
28
48
  }
29
- export async function preloadResultAssistantTools(session, mcpServerUrl) {
30
- await session.mcp.connectAll({
31
- [RESULT_ASSISTANT_MCP_SERVER_NAME]: {
32
- transport: 'http',
33
- url: mcpServerUrl
34
- }
35
- });
36
- const discovered = await session.mcp.listTools(RESULT_ASSISTANT_MCP_SERVER_NAME);
37
- const usedNames = new Set();
38
- for (const tool of discovered) {
39
- if (!isResultAssistantAllowedTool(tool.name))
40
- continue;
41
- const publicName = makeAssistantToolPublicName(RESULT_ASSISTANT_MCP_SERVER_NAME, tool.name, usedNames);
42
- session.toolPublicMap.set(publicName, {
43
- server: RESULT_ASSISTANT_MCP_SERVER_NAME,
44
- tool: tool.name
45
- });
46
- session.tools.push({
47
- ...tool,
48
- name: publicName,
49
- description: `${tool.description ?? ''}\n[server=${RESULT_ASSISTANT_MCP_SERVER_NAME} tool=${tool.name}]`.trim()
50
- });
51
- }
52
- }
53
- export async function continueResultAssistantTurn(session, signal) {
54
- const pendingCount = session.pendingToolCalls.filter((c) => c.status === 'pending').length;
55
- if (pendingCount > RESULT_ASSISTANT_MAX_PENDING_TOOL_CALLS) {
56
- throw new Error('Result Assistant exceeded maximum pending tool calls for this turn');
57
- }
58
- const modelOutput = await resultAssistantChatModel(session, signal);
59
- throwIfAborted(signal);
60
- if (modelOutput.type === 'tool_call_request') {
61
- const requested = modelOutput.toolCall;
62
- const mapping = session.toolPublicMap.get(requested.name);
63
- if (!mapping) {
64
- throw new Error(`Result Assistant requested unknown tool '${requested.name}'. Available tools: ${session.tools.map((t) => t.name).join(', ')}`);
65
- }
66
- const pending = {
67
- id: newAssistantEntityId('ratc'),
68
- server: mapping.server,
69
- tool: mapping.tool,
70
- publicToolName: requested.name,
71
- arguments: requested.arguments ?? {},
72
- status: 'pending',
73
- createdAt: new Date().toISOString()
74
- };
75
- const toolRequestText = `I need to call '${formatAssistantToolName(pending.publicToolName)}' to help with this request.`;
76
- throwIfAborted(signal);
77
- session.pendingToolCalls.push(pending);
78
- session.chatMessages.push({
79
- id: newAssistantEntityId('msg'),
80
- role: 'assistant',
81
- text: toolRequestText,
82
- createdAt: new Date().toISOString(),
83
- pendingToolCallId: pending.id,
84
- toolRequestServer: pending.server,
85
- toolRequestName: pending.tool,
86
- toolRequestPublicName: pending.publicToolName
87
- });
88
- session.llmMessages.push({
89
- role: 'assistant',
90
- content: toolRequestText,
91
- tool_calls: [{ id: pending.id, name: pending.publicToolName, arguments: pending.arguments }]
92
- });
93
- touchResultAssistantSession(session);
94
- return {
95
- session: resultAssistantSessionView(session),
96
- response: { type: 'tool_call_request', text: toolRequestText, pendingToolCall: pending }
97
- };
98
- }
99
- session.chatMessages.push({
100
- id: newAssistantEntityId('msg'),
101
- role: 'assistant',
102
- text: modelOutput.text,
103
- createdAt: new Date().toISOString()
104
- });
105
- session.llmMessages.push({ role: 'assistant', content: modelOutput.text });
106
- touchResultAssistantSession(session);
49
+ function createResultAssistantSetup(session, agentConfig, resultSummary, referenceReportsForRun, refreshReports) {
50
+ const state = createResultAssistantResources(agentConfig, resultSummary, referenceReportsForRun);
51
+ let disposePromise;
52
+ const dispose = () => {
53
+ disposePromise ??= Promise.resolve().then(() => state.mcp.disconnectAll());
54
+ return disposePromise;
55
+ };
107
56
  return {
108
- session: resultAssistantSessionView(session),
109
- response: { type: 'assistant_message', text: modelOutput.text }
57
+ dispose,
58
+ async preload(mcpServerUrl) {
59
+ await state.mcp.connectAll({
60
+ [RESULT_ASSISTANT_MCP_SERVER_NAME]: { transport: 'http', url: mcpServerUrl }
61
+ });
62
+ const discovered = await state.mcp.listTools(RESULT_ASSISTANT_MCP_SERVER_NAME);
63
+ const usedNames = new Set();
64
+ for (const tool of discovered) {
65
+ if (!isResultAssistantAllowedTool(tool.name))
66
+ continue;
67
+ const publicName = makeAssistantToolPublicName(RESULT_ASSISTANT_MCP_SERVER_NAME, tool.name, usedNames);
68
+ state.toolPublicMap.set(publicName, {
69
+ server: RESULT_ASSISTANT_MCP_SERVER_NAME,
70
+ tool: tool.name,
71
+ display: assistantToolDisplay(tool)
72
+ });
73
+ state.tools.push({
74
+ ...tool,
75
+ name: publicName,
76
+ description: `${tool.description ?? ''}\n[server=${RESULT_ASSISTANT_MCP_SERVER_NAME} tool=${tool.name}]`.trim()
77
+ });
78
+ }
79
+ session.toolsLoaded = state.tools.length;
80
+ session.toolServers = Array.from(new Set(state.tools.map((tool) => tool.name.split('__')[0])));
81
+ },
82
+ createRuntimeDefinition() {
83
+ return {
84
+ assistant: 'result',
85
+ agent: state.agentConfig,
86
+ context: {
87
+ scope: session.scope,
88
+ runId: session.runId,
89
+ resultSummary: state.resultSummary,
90
+ referenceReportsForRun: state.referenceReportsForRun
91
+ },
92
+ initialMessages: session.initialMessages,
93
+ dispose,
94
+ getSystemPrompt: () => resultAssistantSystemPrompt(session, state),
95
+ tools: state.tools.map((tool) => {
96
+ const mapping = state.toolPublicMap.get(tool.name);
97
+ return {
98
+ name: tool.name,
99
+ server: mapping.server,
100
+ tool: mapping.tool,
101
+ description: tool.description,
102
+ inputSchema: tool.inputSchema,
103
+ display: mapping.display,
104
+ execute: async (arguments_, signal) => {
105
+ const result = await withTimeout(() => state.mcp.callTool(mapping.server, mapping.tool, arguments_, { signal }), ASSISTANT_TOOL_TIMEOUT_MS, ASSISTANT_TOOL_TIMEOUT_MESSAGE, signal);
106
+ if (mapping.tool === 'mcplab_write_markdown_report' && session.scope === 'run') {
107
+ state.referenceReportsForRun = refreshReports();
108
+ state.systemPromptCache = undefined;
109
+ }
110
+ return result;
111
+ }
112
+ };
113
+ }),
114
+ approvalPolicy: (name) => {
115
+ const rawName = state.toolPublicMap.get(name)?.tool;
116
+ if (!rawName)
117
+ return 'approval_required';
118
+ return isResultAssistantAllowedTool(rawName) && isResultAssistantAutoApprovedTool(rawName)
119
+ ? 'automatic'
120
+ : 'approval_required';
121
+ }
122
+ };
123
+ }
110
124
  };
111
125
  }
112
- export async function executeResultAssistantToolCall(session, pending, signal) {
113
- const timeoutMs = 30_000;
114
- return withTimeout(() => session.mcp.callTool(pending.server, pending.tool, pending.arguments, {
115
- signal
116
- }), timeoutMs, `Tool call timed out after ${timeoutMs}ms`, signal);
117
- }
118
- export function summarizeToolResultForResultAssistant(result) {
119
- return truncateJson(result, RESULT_ASSISTANT_TOOL_RESULT_PREVIEW_CHARS);
126
+ export async function setupResultAssistantSession(params) {
127
+ const setup = createResultAssistantSetup(params.session, params.agentConfig, params.resultSummary, params.referenceReportsForRun, params.refreshReports);
128
+ return setupAssistantRuntimeSession({
129
+ session: params.session,
130
+ factory: params.assistantRuntimeFactory,
131
+ disposeSetup: setup.dispose,
132
+ prepare: async (emitInitialEvent) => {
133
+ try {
134
+ await setup.preload(params.mcpServerUrl);
135
+ }
136
+ catch (error) {
137
+ const message = error instanceof Error ? error.message : String(error);
138
+ params.session.initialMessages.push({
139
+ id: `msg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
140
+ role: 'system',
141
+ text: `Warning: could not preload MCPLab MCP tools: ${message}`,
142
+ createdAt: new Date().toISOString()
143
+ });
144
+ emitInitialEvent({
145
+ type: 'session_warning',
146
+ ts: new Date().toISOString(),
147
+ payload: { warning: message }
148
+ });
149
+ }
150
+ return setup.createRuntimeDefinition();
151
+ },
152
+ onEvent: params.onEvent,
153
+ onActivity: params.onActivity
154
+ });
120
155
  }
121
- function resultAssistantSystemPrompt(session) {
122
- if (session.systemPromptCache)
123
- return session.systemPromptCache;
156
+ function resultAssistantSystemPrompt(session, state) {
157
+ if (state.systemPromptCache)
158
+ return state.systemPromptCache;
124
159
  const scenarioLimit = 30;
125
- const totalScenarioCount = session.resultSummary?.scenarios.length ?? 0;
160
+ const totalScenarioCount = state.resultSummary?.scenarios.length ?? 0;
126
161
  const omittedScenarioCount = Math.max(0, totalScenarioCount - scenarioLimit);
127
- const scenarioSummaries = session.resultSummary?.scenarios.slice(0, scenarioLimit).map((sc) => ({
162
+ const scenarioSummaries = state.resultSummary?.scenarios.slice(0, scenarioLimit).map((sc) => ({
128
163
  scenario_id: sc.scenario_id,
129
164
  agent: sc.agent,
130
165
  pass_rate: sc.pass_rate,
131
166
  run_count: sc.runs.length,
132
167
  sample_failures: sc.runs.flatMap((r) => r.failures).slice(0, 5)
133
168
  })) ?? [];
134
- const toolLines = session.tools.map((tool) => {
135
- const mapping = session.toolPublicMap.get(tool.name);
169
+ const toolLines = state.tools.map((tool) => {
170
+ const mapping = state.toolPublicMap.get(tool.name);
136
171
  const schemaText = tool.inputSchema ? truncateJson(tool.inputSchema, 500) : '{}';
137
172
  return `- ${tool.name} (server=${mapping?.server ?? 'unknown'}, tool=${mapping?.tool ?? tool.name}) schema=${schemaText}`;
138
173
  });
@@ -142,7 +177,7 @@ function resultAssistantSystemPrompt(session) {
142
177
  'Be concise and practical.',
143
178
  'You may call MCPLab MCP tools for grounded follow-up actions (e.g. write a markdown report) when useful, but only when it improves the answer.',
144
179
  'Tool selection policy: prefer search_* tools first for retrieval; fall back to list_* tools when the query is unknown, broad, or full coverage is required.',
145
- 'If you need a tool, request exactly one tool call and wait for approval.',
180
+ APPROVAL_GUIDANCE,
146
181
  'Respond in plain text. If you need to call a tool, use the available tools directly.',
147
182
  session.scope === 'all_runs'
148
183
  ? 'Scope: all historical runs. Use mcplab_results_search for broad retrieval, mcplab_results_context for focused excerpts, and mcplab_read_run_artifact only for raw fallback reads.'
@@ -152,16 +187,16 @@ function resultAssistantSystemPrompt(session) {
152
187
  session.scope === 'all_runs'
153
188
  ? 'Run result context: none preloaded. You can inspect any run from history using available tools.'
154
189
  : `Run result context: ${JSON.stringify({
155
- run_id: session.resultSummary?.metadata.run_id,
156
- timestamp: session.resultSummary?.metadata.timestamp,
157
- run_note: session.resultSummary?.metadata.run_note ?? null,
158
- config_hash: session.resultSummary?.metadata.config_hash,
159
- summary: session.resultSummary?.summary,
190
+ run_id: state.resultSummary?.metadata.run_id,
191
+ timestamp: state.resultSummary?.metadata.timestamp,
192
+ run_note: state.resultSummary?.metadata.run_note ?? null,
193
+ config_hash: state.resultSummary?.metadata.config_hash,
194
+ summary: state.resultSummary?.summary,
160
195
  scenario_count_total: totalScenarioCount,
161
196
  scenario_count_included: scenarioSummaries.length,
162
197
  scenario_count_omitted: omittedScenarioCount,
163
198
  scenarios: scenarioSummaries,
164
- linked_custom_reports: session.referenceReportsForRun.slice(0, 20)
199
+ linked_custom_reports: state.referenceReportsForRun.slice(0, 20)
165
200
  })}`,
166
201
  session.scope === 'all_runs'
167
202
  ? 'For custom markdown reports across runs, use mcplab_search_markdown_reports (no query needed for full listing, or filter by run_id/name). Then read selected files with mcplab_read_markdown_report.'
@@ -170,27 +205,7 @@ function resultAssistantSystemPrompt(session) {
170
205
  ? `Available MCPLab MCP tools:\n${toolLines.join('\n')}`
171
206
  : 'No MCPLab MCP tools available.'
172
207
  ].join('\n');
173
- session.systemPromptCache = prompt;
208
+ state.systemPromptCache = prompt;
174
209
  return prompt;
175
210
  }
176
- async function resultAssistantChatModel(session, signal) {
177
- const response = await chatWithAgent({
178
- agent: session.agentConfig,
179
- messages: session.llmMessages,
180
- tools: session.tools,
181
- system: resultAssistantSystemPrompt(session),
182
- signal
183
- });
184
- if (response.tool_calls && response.tool_calls.length > 0) {
185
- const [first] = response.tool_calls;
186
- const baseText = response.content?.trim() ||
187
- `I need to call '${formatAssistantToolName(first.name)}' to help with this request.`;
188
- return {
189
- type: 'tool_call_request',
190
- text: baseText,
191
- toolCall: { name: first.name, arguments: first.arguments ?? {} }
192
- };
193
- }
194
- return { type: 'assistant_message', text: response.content?.trim() ?? '' };
195
- }
196
211
  //# sourceMappingURL=result-assistant-domain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-assistant-domain.js","sourceRoot":"","sources":["../../src/app-server/result-assistant-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-assistant-domain.js","sourceRoot":"","sources":["../../src/app-server/result-assistant-domain.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EAClC,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAwClE,SAAS,8BAA8B,CACrC,WAA2B,EAC3B,aAAiC,EACjC,sBAAwD;IAExD,OAAO;QACL,WAAW;QACX,GAAG,EAAE,IAAI,gBAAgB,EAAE;QAC3B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,aAAa;QACb,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,+BAA+B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,gCAAgC,GAAG,QAAQ,CAAC;AAElD,gGAAgG;AAChG,MAAM,UAAU,8BAA8B,CAC5C,QAA6C,EAC7C,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,oBAAoB,CAAC,QAAQ,EAAE,+BAA+B,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/E,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA+B;IACzE,YAAY,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA+B;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QACpD,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;QACxD,0BAA0B,EAAE,OAAO,CAAC,0BAA0B;QAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;QAClD,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,OAA0C,EAC1C,WAA2B,EAC3B,aAAiC,EACjC,sBAA0E,EAC1E,cAAwE;IAExE,MAAM,KAAK,GAAG,8BAA8B,CAAC,WAAW,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACjG,IAAI,cAAyC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,cAAc,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3E,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IACF,OAAO;QACL,OAAO;QACP,KAAK,CAAC,OAAO,CAAC,YAAoB;YAChC,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBACzB,CAAC,gCAAgC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE;aAC7E,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACvD,MAAM,UAAU,GAAG,2BAA2B,CAC5C,gCAAgC,EAChC,IAAI,CAAC,IAAI,EACT,SAAS,CACV,CAAC;gBACF,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;oBAClC,MAAM,EAAE,gCAAgC;oBACxC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC;iBACpC,CAAC,CAAC;gBACH,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;oBACf,GAAG,IAAI;oBACP,IAAI,EAAE,UAAU;oBAChB,WAAW,EACT,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,aAAa,gCAAgC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE;iBACrG,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACzC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;QACJ,CAAC;QACD,uBAAuB;YACrB,OAAO;gBACL,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,KAAK,CAAC,WAAW;gBACxB,OAAO,EAAE;oBACP,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;iBACrD;gBACD,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,OAAO;gBACP,eAAe,EAAE,GAAG,EAAE,CAAC,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC;gBAClE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;oBACpD,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;4BACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAC9E,yBAAyB,EACzB,8BAA8B,EAC9B,MAAM,CACP,CAAC;4BACF,IAAI,OAAO,CAAC,IAAI,KAAK,8BAA8B,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gCAC/E,KAAK,CAAC,sBAAsB,GAAG,cAAc,EAAE,CAAC;gCAChD,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;4BACtC,CAAC;4BACD,OAAO,MAAM,CAAC;wBAChB,CAAC;qBACF,CAAC;gBACJ,CAAC,CAAC;gBACF,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;oBACvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;oBACpD,IAAI,CAAC,OAAO;wBAAE,OAAO,mBAAmB,CAAC;oBACzC,OAAO,4BAA4B,CAAC,OAAO,CAAC,IAAI,iCAAiC,CAAC,OAAO,CAAC;wBACxF,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,mBAAmB,CAAC;gBAC1B,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAUjD;IACC,MAAM,KAAK,GAAG,0BAA0B,CACtC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,sBAAsB,EAC7B,MAAM,CAAC,cAAc,CACtB,CAAC;IACF,OAAO,4BAA4B,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,uBAAuB;QACvC,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;oBAClC,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBACjE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,gDAAgD,OAAO,EAAE;oBAC/D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,gBAAgB,CAAC;oBACf,IAAI,EAAE,iBAAiB;oBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAClC,OAA0C,EAC1C,KAA+B;IAE/B,IAAI,KAAK,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC,iBAAiB,CAAC;IAC5D,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IACtE,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GACrB,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM;QACzB,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KAChE,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,OAAO,KAAK,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE,MAAM,IAAI,SAAS,UAC3D,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IACxB,YAAY,UAAU,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG;QACb,wCAAwC;QACxC,mFAAmF;QACnF,2BAA2B;QAC3B,gJAAgJ;QAChJ,6JAA6J;QAC7J,iBAAiB;QACjB,sFAAsF;QACtF,OAAO,CAAC,KAAK,KAAK,UAAU;YAC1B,CAAC,CAAC,mLAAmL;YACrL,CAAC,CAAC,oBAAoB,GAAG,CAAC;gBACxB,CAAC,CAAC,6BAA6B,aAAa,OAAO,kBAAkB,6GAA6G,oBAAoB,2EAA2E;gBACjR,CAAC,CAAC,mDAAmD;QACzD,OAAO,CAAC,KAAK,KAAK,UAAU;YAC1B,CAAC,CAAC,iGAAiG;YACnG,CAAC,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC;gBACpC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC5C,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,SAAS;gBAClD,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI;gBACxD,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW;gBACtD,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO;gBACrC,oBAAoB,EAAE,kBAAkB;gBACxC,uBAAuB,EAAE,iBAAiB,CAAC,MAAM;gBACjD,sBAAsB,EAAE,oBAAoB;gBAC5C,SAAS,EAAE,iBAAiB;gBAC5B,qBAAqB,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACjE,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,KAAK,UAAU;YAC1B,CAAC,CAAC,sMAAsM;YACxM,CAAC,CAAC,sLAAsL;QAC1L,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,gCAAgC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxD,CAAC,CAAC,gCAAgC;KACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import type { AppRouteDeps, AppRouteRequestContext } from './app-context.js';
3
- import type { ResultAssistantSession } from './result-assistant-domain.js';
4
- export type ResultAssistantRouteDeps = Pick<AppRouteDeps, 'parseBody' | 'asJson' | 'getRunResults' | 'readLibraries' | 'pickDefaultAssistantAgentName' | 'resolveAssistantAgentFromLibraries' | 'continueResultAssistantTurn' | 'executeResultAssistantToolCall' | 'summarizeToolResultForResultAssistant' | 'preloadResultAssistantTools'>;
3
+ import { type ResultAssistantSession } from './result-assistant-domain.js';
4
+ export type ResultAssistantRouteDeps = Pick<AppRouteDeps, 'parseBody' | 'asJson' | 'getRunResults' | 'readLibraries' | 'pickDefaultAssistantAgentName' | 'resolveAssistantAgentFromLibraries' | 'assistantRuntimeFactory'>;
5
5
  export declare function handleResultAssistantRoutes(params: {
6
6
  req: IncomingMessage;
7
7
  res: ServerResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"result-assistant.d.ts","sourceRoot":"","sources":["../../src/app-server/result-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAgB3E,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,YAAY,EACV,WAAW,GACX,QAAQ,GACR,eAAe,GACf,eAAe,GACf,+BAA+B,GAC/B,oCAAoC,GACpC,6BAA6B,GAC7B,gCAAgC,GAChC,uCAAuC,GACvC,6BAA6B,CAChC,CAAC;AAWF,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC7D,IAAI,EAAE,wBAAwB,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiZnB"}
1
+ {"version":3,"file":"result-assistant.d.ts","sourceRoot":"","sources":["../../src/app-server/result-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAGL,KAAK,sBAAsB,EAE5B,MAAM,8BAA8B,CAAC;AActC,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,YAAY,EACV,WAAW,GACX,QAAQ,GACR,eAAe,GACf,eAAe,GACf,+BAA+B,GAC/B,oCAAoC,GACpC,yBAAyB,CAC5B,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC7C,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC7D,IAAI,EAAE,wBAAwB,CAAC;CAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgHnB"}