@inspectr/mcplab 1.28.5 → 1.29.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 (162) hide show
  1. package/README.md +52 -5
  2. package/dist/app/assets/index-256LN2cO.css +2 -0
  3. package/dist/app/assets/index-DVIaEnjQ.js +243 -0
  4. package/dist/app/assets/sse-queue-worker-Iwmqd2oW.js +1 -0
  5. package/dist/app/index.html +2 -2
  6. package/dist/app-server/app-context.d.ts +75 -115
  7. package/dist/app-server/app-context.d.ts.map +1 -1
  8. package/dist/app-server/app-dist.d.ts +3 -3
  9. package/dist/app-server/app-dist.js.map +1 -1
  10. package/dist/app-server/app-run-artifacts.d.ts +4 -0
  11. package/dist/app-server/app-run-artifacts.d.ts.map +1 -0
  12. package/dist/app-server/app-run-artifacts.js +66 -0
  13. package/dist/app-server/app-run-artifacts.js.map +1 -0
  14. package/dist/app-server/assistant-common.d.ts +27 -37
  15. package/dist/app-server/assistant-common.d.ts.map +1 -1
  16. package/dist/app-server/assistant-common.js +110 -1
  17. package/dist/app-server/assistant-common.js.map +1 -1
  18. package/dist/app-server/assistant-events.d.ts +8 -28
  19. package/dist/app-server/browser-launch.d.ts +3 -3
  20. package/dist/app-server/browser-launch.js.map +1 -1
  21. package/dist/app-server/browser-provider-learning.d.ts +26 -0
  22. package/dist/app-server/browser-provider-learning.d.ts.map +1 -0
  23. package/dist/app-server/browser-provider-learning.js +353 -0
  24. package/dist/app-server/browser-provider-learning.js.map +1 -0
  25. package/dist/app-server/config-store.d.ts +13 -21
  26. package/dist/app-server/dev-mcp.d.ts +2 -5
  27. package/dist/app-server/evals-routes.d.ts +8 -18
  28. package/dist/app-server/evaluation-group-results.d.ts +11 -0
  29. package/dist/app-server/evaluation-group-results.d.ts.map +1 -0
  30. package/dist/app-server/evaluation-group-results.js +46 -0
  31. package/dist/app-server/evaluation-group-results.js.map +1 -0
  32. package/dist/app-server/evaluation-journal-projection.d.ts +9 -0
  33. package/dist/app-server/evaluation-journal-projection.d.ts.map +1 -0
  34. package/dist/app-server/evaluation-journal-projection.js +76 -0
  35. package/dist/app-server/evaluation-journal-projection.js.map +1 -0
  36. package/dist/app-server/evaluation-journal-writer.d.ts +23 -0
  37. package/dist/app-server/evaluation-journal-writer.d.ts.map +1 -0
  38. package/dist/app-server/evaluation-journal-writer.js +41 -0
  39. package/dist/app-server/evaluation-journal-writer.js.map +1 -0
  40. package/dist/app-server/evaluation-result-projection.d.ts +12 -0
  41. package/dist/app-server/evaluation-result-projection.d.ts.map +1 -0
  42. package/dist/app-server/evaluation-result-projection.js +107 -0
  43. package/dist/app-server/evaluation-result-projection.js.map +1 -0
  44. package/dist/app-server/execution-journal.d.ts +13 -0
  45. package/dist/app-server/execution-journal.d.ts.map +1 -0
  46. package/dist/app-server/execution-journal.js +39 -0
  47. package/dist/app-server/execution-journal.js.map +1 -0
  48. package/dist/app-server/http.d.ts +1 -1
  49. package/dist/app-server/index.d.ts +1 -1
  50. package/dist/app-server/inspectr-session-manager.d.ts +45 -0
  51. package/dist/app-server/inspectr-session-manager.d.ts.map +1 -0
  52. package/dist/app-server/inspectr-session-manager.js +203 -0
  53. package/dist/app-server/inspectr-session-manager.js.map +1 -0
  54. package/dist/app-server/jobs.d.ts +6 -9
  55. package/dist/app-server/libraries-store.d.ts +26 -10
  56. package/dist/app-server/libraries-store.d.ts.map +1 -1
  57. package/dist/app-server/libraries-store.js +130 -3
  58. package/dist/app-server/libraries-store.js.map +1 -1
  59. package/dist/app-server/live-tests-routes.d.ts +17 -0
  60. package/dist/app-server/live-tests-routes.d.ts.map +1 -0
  61. package/dist/app-server/live-tests-routes.js +82 -0
  62. package/dist/app-server/live-tests-routes.js.map +1 -0
  63. package/dist/app-server/live-tests.d.ts +81 -0
  64. package/dist/app-server/live-tests.d.ts.map +1 -0
  65. package/dist/app-server/live-tests.js +272 -0
  66. package/dist/app-server/live-tests.js.map +1 -0
  67. package/dist/app-server/markdown-reports.d.ts +7 -7
  68. package/dist/app-server/oauth-debugger-domain.d.ts +183 -207
  69. package/dist/app-server/oauth-debugger-domain.js.map +1 -1
  70. package/dist/app-server/oauth-debugger.d.ts +10 -17
  71. package/dist/app-server/oauth-debugger.js +1 -1
  72. package/dist/app-server/oauth-debugger.js.map +1 -1
  73. package/dist/app-server/oauth-runtime-domain.d.ts +42 -53
  74. package/dist/app-server/oauth-runtime-domain.js.map +1 -1
  75. package/dist/app-server/oauth-runtime-routes.d.ts +12 -12
  76. package/dist/app-server/oauth-session-manager.d.ts +44 -50
  77. package/dist/app-server/oauth-session-manager.d.ts.map +1 -1
  78. package/dist/app-server/oauth-session-manager.js.map +1 -1
  79. package/dist/app-server/provider-models.d.ts +5 -5
  80. package/dist/app-server/result-assistant-domain.d.ts +66 -82
  81. package/dist/app-server/result-assistant-domain.d.ts.map +1 -1
  82. package/dist/app-server/result-assistant-domain.js.map +1 -1
  83. package/dist/app-server/result-assistant-tools.d.ts +5 -5
  84. package/dist/app-server/result-assistant.d.ts +9 -21
  85. package/dist/app-server/result-assistant.js.map +1 -1
  86. package/dist/app-server/router.d.ts +9 -1
  87. package/dist/app-server/router.d.ts.map +1 -1
  88. package/dist/app-server/router.js +328 -10
  89. package/dist/app-server/router.js.map +1 -1
  90. package/dist/app-server/rover-connection.d.ts +48 -0
  91. package/dist/app-server/rover-connection.d.ts.map +1 -0
  92. package/dist/app-server/rover-connection.js +172 -0
  93. package/dist/app-server/rover-connection.js.map +1 -0
  94. package/dist/app-server/run-agent-selection.d.ts +2 -5
  95. package/dist/app-server/run-queue-domain.d.ts +89 -65
  96. package/dist/app-server/run-queue-domain.d.ts.map +1 -1
  97. package/dist/app-server/run-queue-domain.js +723 -9
  98. package/dist/app-server/run-queue-domain.js.map +1 -1
  99. package/dist/app-server/run-queue-events.d.ts +3 -10
  100. package/dist/app-server/run-queue-events.d.ts.map +1 -1
  101. package/dist/app-server/run-queue-events.js +114 -14
  102. package/dist/app-server/run-queue-events.js.map +1 -1
  103. package/dist/app-server/run-queue-executor.d.ts +33 -47
  104. package/dist/app-server/run-queue-executor.d.ts.map +1 -1
  105. package/dist/app-server/run-queue-executor.js +85 -15
  106. package/dist/app-server/run-queue-executor.js.map +1 -1
  107. package/dist/app-server/run-queue-state.d.ts +81 -47
  108. package/dist/app-server/run-queue-state.d.ts.map +1 -1
  109. package/dist/app-server/run-queue-state.js.map +1 -1
  110. package/dist/app-server/runs-routes.d.ts +13 -35
  111. package/dist/app-server/runs-routes.d.ts.map +1 -1
  112. package/dist/app-server/runs-routes.js +182 -16
  113. package/dist/app-server/runs-routes.js.map +1 -1
  114. package/dist/app-server/runs-routes.test-helpers.d.ts +42 -38
  115. package/dist/app-server/runs-routes.test-helpers.d.ts.map +1 -1
  116. package/dist/app-server/runs-routes.test-helpers.js +4 -1
  117. package/dist/app-server/runs-routes.test-helpers.js.map +1 -1
  118. package/dist/app-server/runs-store.d.ts +60 -43
  119. package/dist/app-server/runs-store.d.ts.map +1 -1
  120. package/dist/app-server/runs-store.js +157 -70
  121. package/dist/app-server/runs-store.js.map +1 -1
  122. package/dist/app-server/scenario-assistant-domain.d.ts +131 -157
  123. package/dist/app-server/scenario-assistant-domain.d.ts.map +1 -1
  124. package/dist/app-server/scenario-assistant-domain.js +7 -15
  125. package/dist/app-server/scenario-assistant-domain.js.map +1 -1
  126. package/dist/app-server/scenario-assistant.d.ts +10 -26
  127. package/dist/app-server/scenario-assistant.js.map +1 -1
  128. package/dist/app-server/settings-store.d.ts +4 -4
  129. package/dist/app-server/static-serving.d.ts +7 -13
  130. package/dist/app-server/store-utils.d.ts +1 -1
  131. package/dist/app-server/tool-analysis-domain.d.ts +167 -183
  132. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  133. package/dist/app-server/tool-analysis-domain.js +2 -59
  134. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  135. package/dist/app-server/tool-analysis-storage.d.ts +20 -34
  136. package/dist/app-server/tool-analysis.d.ts +10 -19
  137. package/dist/app-server/types.d.ts +25 -25
  138. package/dist/app-server/version-info.d.ts +6 -6
  139. package/dist/app-server/version-info.js.map +1 -1
  140. package/dist/app-server/workspace-paths.d.ts +2 -1
  141. package/dist/app-server/workspace-paths.d.ts.map +1 -1
  142. package/dist/app-server/workspace-paths.js +5 -1
  143. package/dist/app-server/workspace-paths.js.map +1 -1
  144. package/dist/cli-branding.d.ts +1 -1
  145. package/dist/cli-branding.js.map +1 -1
  146. package/dist/cli.d.ts +1 -1
  147. package/dist/cli.js +1 -1
  148. package/dist/cli.js.map +1 -1
  149. package/dist/eval-config-files.d.ts +5 -8
  150. package/dist/interactive-helpers.d.ts +11 -15
  151. package/dist/migrate-utils.d.ts +1 -1
  152. package/dist/results/context.d.ts +1 -1
  153. package/dist/results/format.d.ts +7 -14
  154. package/dist/results/indexer.d.ts +2 -9
  155. package/dist/results/search.d.ts +1 -1
  156. package/dist/results/types.d.ts +2 -11
  157. package/dist/run-interactive.d.ts +21 -23
  158. package/dist/test-results-fixture.d.ts +4 -4
  159. package/package.json +8 -6
  160. package/dist/app/assets/index-Bxq-wlTN.css +0 -1
  161. package/dist/app/assets/index-j_NpCqyK.js +0 -258
  162. package/dist/app/assets/sse-queue-worker-BMo6aPaB.js +0 -1
@@ -0,0 +1 @@
1
+ (function(){let e=/* @__PURE__ */ new Set,t=/* @__PURE__ */ new Map,n=null,r=``,i=null,a=null,o=15e3;function s(e){if(typeof e!=`object`||!e||!(`type`in e)||e.type!==`queue_event`)return!1;let t=`payload`in e&&typeof e.payload==`object`&&e.payload!==null?e.payload:null,n=t&&`event`in t&&typeof t.event==`object`&&t.event!==null?t.event:null;if(!n)return!1;let r=`active_jobs`in n&&Array.isArray(n.active_jobs)?n.active_jobs:`active`in n&&n.active?[n.active]:[],i=`admitting_jobs`in n&&Array.isArray(n.admitting_jobs)?n.admitting_jobs:[],a=`queued`in n&&Array.isArray(n.queued)?n.queued:[];return r.length===0&&i.length===0&&a.length===0}function c(r){e.delete(r),t.delete(r),r.close(),e.size===0&&n&&(n.close(),n=null),e.size===0&&i!==null&&(clearInterval(i),i=null)}function l(t){typeof t==`object`&&t&&`type`in t&&t.type===`queue_event`&&(a=s(t)?null:t);for(let n of e)n.postMessage(t)}function u(){i===null&&(i=setInterval(()=>{let n=Date.now();for(let r of e)n-(t.get(r)??n)>o*2?c(r):r.postMessage({type:`ping`})},o))}function d(){n||(n=new EventSource(`${r}/api/runs/queue/events`),n.addEventListener(`queue_event`,e=>{try{l(JSON.parse(e.data))}catch{}}),n.onopen=()=>{l({type:`connected`,ts:(/* @__PURE__ */ new Date()).toISOString(),payload:{message:`SSE connected`}})},n.onerror=()=>{if(!n)return;let e=n.readyState!==2;l({type:`error`,ts:(/* @__PURE__ */ new Date()).toISOString(),payload:{message:`SSE connection error`,reconnecting:e}}),e||(n.onerror=null,n=null)})}self.addEventListener(`connect`,i=>{let o=i.ports[0];e.add(o),o.addEventListener(`message`,e=>{e.data?.type===`init`&&(r||=e.data.baseUrl??``,t.set(o,Date.now()),u(),d(),a&&o.postMessage(a),n?.readyState===1&&o.postMessage({type:`connected`,ts:(/* @__PURE__ */ new Date()).toISOString(),payload:{message:`SSE connected`}})),e.data?.type===`pong`&&t.set(o,Date.now()),e.data?.type===`close`&&c(o)}),o.start()})})();
@@ -16,8 +16,8 @@
16
16
  <meta name="twitter:card" content="summary_large_image" />
17
17
  <meta name="twitter:site" content="@Inspectr" />
18
18
  <meta name="twitter:image" content="" />
19
- <script type="module" crossorigin src="/assets/index-j_NpCqyK.js"></script>
20
- <link rel="stylesheet" crossorigin href="/assets/index-Bxq-wlTN.css">
19
+ <script type="module" crossorigin src="/assets/index-DVIaEnjQ.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/assets/index-256LN2cO.css">
21
21
  </head>
22
22
 
23
23
  <body>
@@ -3,149 +3,109 @@ import type { AppSettings } from './types.js';
3
3
  import type { parseBody, asHtml, asJson, asText } from './http.js';
4
4
  import type { addJobEvent, sendSseEvent } from './jobs.js';
5
5
  import type { readLibraries } from './libraries-store.js';
6
- import type {
7
- discoverMcpToolsForServers,
8
- runToolAnalysisJob,
9
- ToolAnalysisJob
10
- } from './tool-analysis-domain.js';
11
- import type {
12
- cleanupOAuthDebuggerSessions,
13
- oauthDebuggerSessionView,
14
- createOAuthDebuggerSession,
15
- startOrResumeOAuthDebuggerSession,
16
- submitManualCallbackToSession,
17
- submitBrowserCallbackToSession,
18
- stopOAuthDebuggerSession,
19
- oauthDebuggerExportMarkdown,
20
- oauthDebuggerExportRawTrace,
21
- OAuthDebuggerSession
22
- } from './oauth-debugger-domain.js';
6
+ import type { discoverMcpToolsForServers, runToolAnalysisJob, ToolAnalysisJob } from './tool-analysis-domain.js';
7
+ import type { cleanupOAuthDebuggerSessions, oauthDebuggerSessionView, createOAuthDebuggerSession, startOrResumeOAuthDebuggerSession, submitManualCallbackToSession, submitBrowserCallbackToSession, stopOAuthDebuggerSession, oauthDebuggerExportMarkdown, oauthDebuggerExportRawTrace, OAuthDebuggerSession } from './oauth-debugger-domain.js';
23
8
  import type { OAuthRuntimeSession } from './oauth-runtime-domain.js';
24
- import type {
25
- cleanupAssistantSessions,
26
- touchAssistantSession,
27
- assistantSessionView,
28
- pickDefaultAssistantAgentName,
29
- resolveAssistantAgentFromConfig,
30
- resolveAssistantAgentFromLibraries,
31
- ScenarioAssistantSession
32
- } from './scenario-assistant-domain.js';
33
- import type {
34
- getRunResults,
35
- listRuns,
36
- getScenarioRunTraceRecords,
37
- selectScenarioIds
38
- } from './runs-store.js';
9
+ import type { cleanupAssistantSessions, touchAssistantSession, assistantSessionView, pickDefaultAssistantAgentName, resolveAssistantAgentFromConfig, resolveAssistantAgentFromLibraries, ScenarioAssistantSession } from './scenario-assistant-domain.js';
10
+ import type { getRunResults, listRuns, getScenarioRunTraceRecords, selectScenarioIds } from './runs-store.js';
39
11
  import type { decodeEvalId, ensureInsideRoot, safeFileName } from './store-utils.js';
40
12
  import type { readConfigRecord, readConfigRecordOrInvalid, listConfigs } from './config-store.js';
41
13
  import type { RunSummary } from './runs-store.js';
42
14
  import type { ConfigRecord } from './config-store.js';
43
- import type {
44
- ResultsJson,
45
- EvalConfig,
46
- ExecutableEvalConfig,
47
- chatWithAgent
48
- } from '@inspectr/mcplab-core';
15
+ import type { ResultsJson, EvalConfig, ExecutableEvalConfig, chatWithAgent } from '@inspectr/mcplab-core';
49
16
  export interface AppRouteRequestContext {
50
- req: IncomingMessage;
51
- res: ServerResponse;
52
- pathname: string;
53
- method: string;
54
- settings: AppSettings;
17
+ req: IncomingMessage;
18
+ res: ServerResponse;
19
+ pathname: string;
20
+ method: string;
21
+ settings: AppSettings;
55
22
  }
56
23
  export interface ActiveJobState {
57
- get(): string | null;
58
- set(value: string | null): void;
24
+ get(): string | null;
25
+ set(value: string | null): void;
59
26
  }
60
27
  export interface HttpDeps {
61
- parseBody: typeof parseBody;
62
- asHtml: typeof asHtml;
63
- asJson: typeof asJson;
64
- asText: typeof asText;
28
+ parseBody: typeof parseBody;
29
+ asHtml: typeof asHtml;
30
+ asJson: typeof asJson;
31
+ asText: typeof asText;
65
32
  }
66
33
  export interface JobStreamDeps {
67
- addJobEvent: typeof addJobEvent;
68
- sendSseEvent: typeof sendSseEvent;
34
+ addJobEvent: typeof addJobEvent;
35
+ sendSseEvent: typeof sendSseEvent;
69
36
  }
70
37
  export interface LibraryDeps {
71
- readLibraries: typeof readLibraries;
38
+ readLibraries: typeof readLibraries;
72
39
  }
73
40
  export interface ToolAnalysisDeps extends LibraryDeps {
74
- discoverMcpToolsForServers: typeof discoverMcpToolsForServers;
75
- runToolAnalysisJob: typeof runToolAnalysisJob;
41
+ discoverMcpToolsForServers: typeof discoverMcpToolsForServers;
42
+ runToolAnalysisJob: typeof runToolAnalysisJob;
76
43
  }
77
44
  export interface AssistantDeps extends LibraryDeps {
78
- cleanupAssistantSessions: typeof cleanupAssistantSessions;
79
- touchAssistantSession: typeof touchAssistantSession;
80
- assistantSessionView: typeof assistantSessionView;
81
- ensureInsideRoot: typeof ensureInsideRoot;
82
- pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
83
- resolveAssistantAgentFromConfig: typeof resolveAssistantAgentFromConfig;
84
- resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
45
+ cleanupAssistantSessions: typeof cleanupAssistantSessions;
46
+ touchAssistantSession: typeof touchAssistantSession;
47
+ assistantSessionView: typeof assistantSessionView;
48
+ ensureInsideRoot: typeof ensureInsideRoot;
49
+ pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
50
+ resolveAssistantAgentFromConfig: typeof resolveAssistantAgentFromConfig;
51
+ resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
85
52
  }
86
53
  export interface ResultAssistantDeps extends LibraryDeps {
87
- pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
88
- resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
89
- preloadResultAssistantTools: typeof import('./result-assistant-domain.js').preloadResultAssistantTools;
90
- continueResultAssistantTurn: typeof import('./result-assistant-domain.js').continueResultAssistantTurn;
91
- executeResultAssistantToolCall: typeof import('./result-assistant-domain.js').executeResultAssistantToolCall;
92
- summarizeToolResultForResultAssistant: typeof import('./result-assistant-domain.js').summarizeToolResultForResultAssistant;
54
+ pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
55
+ resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
56
+ preloadResultAssistantTools: typeof import('./result-assistant-domain.js').preloadResultAssistantTools;
57
+ continueResultAssistantTurn: typeof import('./result-assistant-domain.js').continueResultAssistantTurn;
58
+ executeResultAssistantToolCall: typeof import('./result-assistant-domain.js').executeResultAssistantToolCall;
59
+ summarizeToolResultForResultAssistant: typeof import('./result-assistant-domain.js').summarizeToolResultForResultAssistant;
93
60
  }
94
61
  export interface ScenarioAssistantDeps extends LibraryDeps {
95
- cleanupAssistantSessions: typeof cleanupAssistantSessions;
96
- touchAssistantSession: typeof touchAssistantSession;
97
- assistantSessionView: typeof assistantSessionView;
98
- ensureInsideRoot: typeof ensureInsideRoot;
99
- pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
100
- resolveAssistantAgentFromConfig: typeof resolveAssistantAgentFromConfig;
101
- resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
102
- preloadAssistantTools: typeof import('./scenario-assistant-domain.js').preloadAssistantTools;
103
- continueAssistantTurn: typeof import('./scenario-assistant-domain.js').continueAssistantTurn;
104
- executeAssistantToolCall: typeof import('./scenario-assistant-domain.js').executeAssistantToolCall;
105
- summarizeToolResultForAssistant: typeof import('./scenario-assistant-domain.js').summarizeToolResultForAssistant;
62
+ cleanupAssistantSessions: typeof cleanupAssistantSessions;
63
+ touchAssistantSession: typeof touchAssistantSession;
64
+ assistantSessionView: typeof assistantSessionView;
65
+ ensureInsideRoot: typeof ensureInsideRoot;
66
+ pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
67
+ resolveAssistantAgentFromConfig: typeof resolveAssistantAgentFromConfig;
68
+ resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
69
+ preloadAssistantTools: typeof import('./scenario-assistant-domain.js').preloadAssistantTools;
70
+ continueAssistantTurn: typeof import('./scenario-assistant-domain.js').continueAssistantTurn;
71
+ executeAssistantToolCall: typeof import('./scenario-assistant-domain.js').executeAssistantToolCall;
72
+ summarizeToolResultForAssistant: typeof import('./scenario-assistant-domain.js').summarizeToolResultForAssistant;
106
73
  }
107
74
  export interface OAuthDebuggerDeps extends LibraryDeps {
108
- cleanupOAuthDebuggerSessions: typeof cleanupOAuthDebuggerSessions;
109
- oauthDebuggerSessionView: typeof oauthDebuggerSessionView;
110
- createOAuthDebuggerSession: typeof createOAuthDebuggerSession;
111
- startOrResumeOAuthDebuggerSession: typeof startOrResumeOAuthDebuggerSession;
112
- submitManualCallbackToSession: typeof submitManualCallbackToSession;
113
- submitBrowserCallbackToSession: typeof submitBrowserCallbackToSession;
114
- stopOAuthDebuggerSession: typeof stopOAuthDebuggerSession;
115
- oauthDebuggerExportMarkdown: typeof oauthDebuggerExportMarkdown;
116
- oauthDebuggerExportRawTrace: typeof oauthDebuggerExportRawTrace;
75
+ cleanupOAuthDebuggerSessions: typeof cleanupOAuthDebuggerSessions;
76
+ oauthDebuggerSessionView: typeof oauthDebuggerSessionView;
77
+ createOAuthDebuggerSession: typeof createOAuthDebuggerSession;
78
+ startOrResumeOAuthDebuggerSession: typeof startOrResumeOAuthDebuggerSession;
79
+ submitManualCallbackToSession: typeof submitManualCallbackToSession;
80
+ submitBrowserCallbackToSession: typeof submitBrowserCallbackToSession;
81
+ stopOAuthDebuggerSession: typeof stopOAuthDebuggerSession;
82
+ oauthDebuggerExportMarkdown: typeof oauthDebuggerExportMarkdown;
83
+ oauthDebuggerExportRawTrace: typeof oauthDebuggerExportRawTrace;
117
84
  }
118
85
  export interface ConfigDeps {
119
- listConfigs: typeof listConfigs;
120
- safeFileName: typeof safeFileName;
121
- ensureInsideRoot: typeof ensureInsideRoot;
122
- decodeEvalId: typeof decodeEvalId;
123
- readConfigRecord: typeof readConfigRecord;
124
- readConfigRecordOrInvalid: typeof readConfigRecordOrInvalid;
86
+ listConfigs: typeof listConfigs;
87
+ safeFileName: typeof safeFileName;
88
+ ensureInsideRoot: typeof ensureInsideRoot;
89
+ decodeEvalId: typeof decodeEvalId;
90
+ readConfigRecord: typeof readConfigRecord;
91
+ readConfigRecordOrInvalid: typeof readConfigRecordOrInvalid;
125
92
  }
126
93
  export interface RunDeps {
127
- ensureInsideRoot: typeof ensureInsideRoot;
128
- listRuns: typeof listRuns;
129
- getRunResults: typeof getRunResults;
130
- getScenarioRunTraceRecords: typeof getScenarioRunTraceRecords;
131
- selectScenarioIds: typeof selectScenarioIds;
132
- expandConfigForAgents: (config: EvalConfig, requestedAgents?: string[]) => ExecutableEvalConfig;
133
- resolveRunSelectedAgents: (config: EvalConfig, requestedAgents?: string[]) => string[];
134
- readLibraries: typeof readLibraries;
135
- pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
136
- resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
137
- chatWithAgent: typeof chatWithAgent;
138
- pkgVersion: string;
94
+ ensureInsideRoot: typeof ensureInsideRoot;
95
+ listRuns: typeof listRuns;
96
+ getRunResults: typeof getRunResults;
97
+ getScenarioRunTraceRecords: typeof getScenarioRunTraceRecords;
98
+ selectScenarioIds: typeof selectScenarioIds;
99
+ expandConfigForAgents: (config: EvalConfig, requestedAgents?: string[]) => ExecutableEvalConfig;
100
+ resolveRunSelectedAgents: (config: EvalConfig, requestedAgents?: string[]) => string[];
101
+ readLibraries: typeof readLibraries;
102
+ pickDefaultAssistantAgentName: typeof pickDefaultAssistantAgentName;
103
+ resolveAssistantAgentFromLibraries: typeof resolveAssistantAgentFromLibraries;
104
+ chatWithAgent: typeof chatWithAgent;
105
+ pkgVersion: string;
106
+ }
107
+ export interface AppRouteDeps extends HttpDeps, JobStreamDeps, ToolAnalysisDeps, OAuthDebuggerDeps, ResultAssistantDeps, ScenarioAssistantDeps, ConfigDeps, RunDeps {
139
108
  }
140
- export interface AppRouteDeps
141
- extends HttpDeps,
142
- JobStreamDeps,
143
- ToolAnalysisDeps,
144
- OAuthDebuggerDeps,
145
- ResultAssistantDeps,
146
- ScenarioAssistantDeps,
147
- ConfigDeps,
148
- RunDeps {}
149
109
  export type ToolAnalysisJobsMap = Map<string, ToolAnalysisJob>;
150
110
  export type OAuthDebuggerSessionsMap = Map<string, OAuthDebuggerSession>;
151
111
  export type OAuthRuntimeSessionsMap = Map<string, OAuthRuntimeSession>;
@@ -153,4 +113,4 @@ export type AssistantSessionsMap = Map<string, ScenarioAssistantSession>;
153
113
  export type RunsResults = ResultsJson;
154
114
  export type RunsList = RunSummary[];
155
115
  export type ConfigRecords = ConfigRecord[];
156
- //# sourceMappingURL=app-context.d.ts.map
116
+ //# sourceMappingURL=app-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-context.d.ts","sourceRoot":"","sources":["../../src/app-server/app-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-context.d.ts","sourceRoot":"","sources":["../../src/app-server/app-context.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  interface ResolveAppDistDeps {
3
- existsSync?: typeof existsSync;
4
- moduleUrl?: string;
3
+ existsSync?: typeof existsSync;
4
+ moduleUrl?: string;
5
5
  }
6
6
  export declare function resolveAppDist(workspaceRoot: string, deps?: ResolveAppDistDeps): string;
7
7
  export {};
8
- //# sourceMappingURL=app-dist.d.ts.map
8
+ //# sourceMappingURL=app-dist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-dist.js","sourceRoot":"","sources":["../../src/app-server/app-dist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,MAAM,UAAU,cAAc,CAAC,aAAqB,EAAE,OAA2B,EAAE;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"app-dist.js","sourceRoot":"","sources":["../../src/app-server/app-dist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,MAAM,UAAU,cAAc,CAAC,aAAqB,EAAE,IAAI,GAAuB,EAAE;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type PersistEvaluationArtifactsParams } from '@inspectr/mcplab-core';
2
+ export declare function persistAppRunArtifacts(params: PersistEvaluationArtifactsParams): void;
3
+ export declare function recoverJournalSnapshots(runsDir: string): number;
4
+ //# sourceMappingURL=app-run-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-run-artifacts.d.ts","sourceRoot":"","sources":["../../src/app-server/app-run-artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAgBrF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAqC/D"}
@@ -0,0 +1,66 @@
1
+ import { existsSync, readdirSync, renameSync, statSync, writeFileSync } from 'node:fs';
2
+ import { basename, dirname, join } from 'node:path';
3
+ import { persistEvaluationArtifacts } from '@inspectr/mcplab-core';
4
+ import { renderReport } from '@inspectr/mcplab-reporting';
5
+ import { appendExecutionEvent, readLatestResultSnapshot } from './execution-journal.js';
6
+ import { invalidateRunSummaryCache } from './runs-store.js';
7
+ export function persistAppRunArtifacts(params) {
8
+ appendExecutionEvent(params.runDir, {
9
+ eventId: `snapshot-${params.results.metadata.run_id}-${Date.now()}`,
10
+ type: 'result_snapshot',
11
+ ts: new Date().toISOString(),
12
+ executionId: params.results.metadata.run_id,
13
+ results: params.results,
14
+ ...(params.resolvedConfig !== undefined ? { resolvedConfig: params.resolvedConfig } : {}),
15
+ ...(params.traceRecords !== undefined ? { traceRecords: params.traceRecords } : {})
16
+ });
17
+ persistEvaluationArtifacts(params);
18
+ const reportPath = join(params.runDir, 'report.html');
19
+ const temporaryPath = `${reportPath}.tmp-${process.pid}-${Date.now()}`;
20
+ writeFileSync(temporaryPath, renderReport(params.results), 'utf8');
21
+ renameSync(temporaryPath, reportPath);
22
+ invalidateRunSummaryCache(dirname(params.runDir), basename(params.runDir));
23
+ }
24
+ export function recoverJournalSnapshots(runsDir) {
25
+ if (!existsSync(runsDir))
26
+ return 0;
27
+ let recovered = 0;
28
+ for (const entry of readdirSync(runsDir)) {
29
+ const runDir = join(runsDir, entry);
30
+ if (!statSync(runDir).isDirectory())
31
+ continue;
32
+ const snapshot = readLatestResultSnapshot(runDir);
33
+ if (!snapshot || !snapshot.results || typeof snapshot.results !== 'object')
34
+ continue;
35
+ const requiredProjectionPaths = [
36
+ join(runDir, 'results.json'),
37
+ join(runDir, 'summary.md'),
38
+ join(runDir, 'report.html')
39
+ ];
40
+ if (snapshot.resolvedConfig !== undefined)
41
+ requiredProjectionPaths.push(join(runDir, 'resolved-config.yaml'));
42
+ if (snapshot.traceRecords !== undefined)
43
+ requiredProjectionPaths.push(join(runDir, 'trace.jsonl'));
44
+ if (requiredProjectionPaths.every((path) => existsSync(path)))
45
+ continue;
46
+ const params = {
47
+ runDir,
48
+ results: snapshot.results,
49
+ ...(snapshot.resolvedConfig !== undefined ? { resolvedConfig: snapshot.resolvedConfig } : {}),
50
+ ...(Array.isArray(snapshot.traceRecords)
51
+ ? {
52
+ traceRecords: snapshot.traceRecords
53
+ }
54
+ : {})
55
+ };
56
+ persistEvaluationArtifacts(params);
57
+ const reportPath = join(runDir, 'report.html');
58
+ const temporaryPath = `${reportPath}.tmp-${process.pid}-${Date.now()}`;
59
+ writeFileSync(temporaryPath, renderReport(params.results), 'utf8');
60
+ renameSync(temporaryPath, reportPath);
61
+ invalidateRunSummaryCache(runsDir, entry);
62
+ recovered += 1;
63
+ }
64
+ return recovered;
65
+ }
66
+ //# sourceMappingURL=app-run-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-run-artifacts.js","sourceRoot":"","sources":["../../src/app-server/app-run-artifacts.ts"],"names":[],"mappings":"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"}
@@ -2,28 +2,17 @@ import type { AgentConfig, LlmMessage, ToolDef } from '@inspectr/mcplab-core';
2
2
  import { formatAssistantToolName } from '@inspectr/mcplab-core';
3
3
  export { formatAssistantToolName };
4
4
  export declare function truncateJson(value: unknown, maxChars: number): string;
5
+ export declare function extractJsonValuesFromAssistantText(text: string): unknown[];
6
+ export declare function parseJsonFromAssistantText<T = unknown>(text: string, validate?: (value: unknown) => T): T;
5
7
  export declare function normalizeAssistantToolName(name: string): string;
6
- export declare function makeAssistantToolPublicName(
7
- serverName: string,
8
- toolName: string,
9
- used: Set<string>
10
- ): string;
11
- export declare function cleanupSessionsByTtl<
12
- T extends {
8
+ export declare function makeAssistantToolPublicName(serverName: string, toolName: string, used: Set<string>): string;
9
+ export declare function cleanupSessionsByTtl<T extends {
13
10
  lastTouchedAt: number;
14
- }
15
- >(sessions: Map<string, T>, ttlMs: number, now?: number, onExpire?: (session: T) => void): void;
16
- export declare function touchSession<
17
- T extends {
11
+ }>(sessions: Map<string, T>, ttlMs: number, now?: number, onExpire?: (session: T) => void): void;
12
+ export declare function touchSession<T extends {
18
13
  lastTouchedAt: number;
19
- }
20
- >(session: T): void;
21
- export declare function withTimeout<T>(
22
- promiseFactory: () => Promise<T>,
23
- timeoutMs: number,
24
- message?: string,
25
- signal?: AbortSignal
26
- ): Promise<T>;
14
+ }>(session: T): void;
15
+ export declare function withTimeout<T>(promiseFactory: () => Promise<T>, timeoutMs: number, message?: string, signal?: AbortSignal): Promise<T>;
27
16
  export declare function newAssistantEntityId(prefix: string): string;
28
17
  /**
29
18
  * Inject synthetic tool_result messages for any dangling tool_use blocks
@@ -34,24 +23,25 @@ export declare function newAssistantEntityId(prefix: string): string;
34
23
  export declare function flushDanglingToolCalls(llmMessages: LlmMessage[]): void;
35
24
  export declare function throwIfAborted(signal?: AbortSignal): void;
36
25
  export interface AssistantToolCallRequestEnvelope {
37
- type: 'tool_call_request';
38
- text: string;
39
- toolCall: {
40
- name: string;
41
- arguments?: unknown;
42
- };
43
- toolCalls: Array<{
44
- name: string;
45
- arguments?: unknown;
46
- }>;
26
+ type: 'tool_call_request';
27
+ text: string;
28
+ toolCall: {
29
+ name: string;
30
+ arguments?: unknown;
31
+ };
32
+ toolCalls: Array<{
33
+ name: string;
34
+ arguments?: unknown;
35
+ }>;
47
36
  }
48
37
  export declare function chatWithJsonRetry<T>(params: {
49
- agent: AgentConfig;
50
- messages: LlmMessage[];
51
- tools: ToolDef[];
52
- system: string;
53
- parse: (text: string) => T;
54
- toolCallFallbackText: (toolName: string) => string;
55
- signal?: AbortSignal;
38
+ agent: AgentConfig;
39
+ messages: LlmMessage[];
40
+ tools: ToolDef[];
41
+ system: string;
42
+ parse: (text: string) => T;
43
+ toolCallFallbackText: (toolName: string) => string;
44
+ signal?: AbortSignal;
45
+ invalidJsonRetryPrompt?: string;
56
46
  }): Promise<T | AssistantToolCallRequestEnvelope>;
57
- //# sourceMappingURL=assistant-common.d.ts.map
47
+ //# sourceMappingURL=assistant-common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-common.d.ts","sourceRoot":"","sources":["../../src/app-server/assistant-common.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAiB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB,MAAM,CAUR;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EACtE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,SAAa,EAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAC9B,IAAI,CAON;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAElF;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,MAAM,EACjB,OAAO,SAA6C,EACpD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAqBZ;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAgBtE;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGzD;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;IAC3B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAuDhD"}
1
+ {"version":3,"file":"assistant-common.d.ts","sourceRoot":"","sources":["../../src/app-server/assistant-common.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAiB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQrE;AAqDD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAU1E;AAED,wBAAgB,0BAA0B,CAAC,CAAC,GAAG,OAAO,EACpD,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,GAC/B,CAAC,CAoCH;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB,MAAM,CAUR;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EACtE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,SAAa,EAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAC9B,IAAI,CAON;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAElF;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,MAAM,EACjB,OAAO,SAA6C,EACpD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAqBZ;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAgBtE;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGzD;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC;IAC3B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAwDhD"}
@@ -12,6 +12,114 @@ export function truncateJson(value, maxChars) {
12
12
  return String(value);
13
13
  }
14
14
  }
15
+ function* extractBalancedJsonCandidates(text) {
16
+ const starts = [];
17
+ for (let i = 0; i < text.length; i += 1) {
18
+ const ch = text[i];
19
+ if (ch === '{')
20
+ starts.push({ idx: i, open: '{', close: '}' });
21
+ if (ch === '[')
22
+ starts.push({ idx: i, open: '[', close: ']' });
23
+ }
24
+ let enclosingCandidateEnd = -1;
25
+ for (const start of starts) {
26
+ if (start.idx <= enclosingCandidateEnd)
27
+ continue;
28
+ let depth = 0;
29
+ let inString = false;
30
+ let escaped = false;
31
+ for (let i = start.idx; i < text.length; i += 1) {
32
+ const ch = text[i];
33
+ if (inString) {
34
+ if (escaped) {
35
+ escaped = false;
36
+ continue;
37
+ }
38
+ if (ch === '\\') {
39
+ escaped = true;
40
+ continue;
41
+ }
42
+ if (ch === '"')
43
+ inString = false;
44
+ continue;
45
+ }
46
+ if (ch === '"') {
47
+ inString = true;
48
+ continue;
49
+ }
50
+ if (ch === start.open)
51
+ depth += 1;
52
+ if (ch === start.close) {
53
+ depth -= 1;
54
+ if (depth === 0) {
55
+ const candidate = text.slice(start.idx, i + 1);
56
+ try {
57
+ JSON.parse(candidate);
58
+ // Keep complete wrappers, not their nested profile or diagnostic arrays.
59
+ enclosingCandidateEnd = i;
60
+ }
61
+ catch {
62
+ // An invalid prose fragment may still contain a complete JSON payload.
63
+ }
64
+ yield candidate;
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ export function extractJsonValuesFromAssistantText(text) {
72
+ const values = [];
73
+ for (const candidate of extractBalancedJsonCandidates(text)) {
74
+ try {
75
+ values.push(JSON.parse(candidate));
76
+ }
77
+ catch {
78
+ // Ignore CSS selectors and explanatory prose containing brackets.
79
+ }
80
+ }
81
+ return values;
82
+ }
83
+ export function parseJsonFromAssistantText(text, validate) {
84
+ const cleaned = text.trim();
85
+ let validationError;
86
+ let validationErrorLength = -1;
87
+ const parseCandidate = (candidate) => {
88
+ const value = JSON.parse(candidate);
89
+ if (!validate)
90
+ return value;
91
+ try {
92
+ return validate(value);
93
+ }
94
+ catch (error) {
95
+ // Keep diagnostics from the most complete candidate, not a nested fragment.
96
+ if (candidate.length > validationErrorLength) {
97
+ validationError = error;
98
+ validationErrorLength = candidate.length;
99
+ }
100
+ throw error;
101
+ }
102
+ };
103
+ try {
104
+ return parseCandidate(cleaned);
105
+ }
106
+ catch {
107
+ const fenced = Array.from(cleaned.matchAll(/```(?:json)?\s*([\s\S]+?)```/gi), (match) => match[1].trim());
108
+ for (const candidates of [fenced, extractBalancedJsonCandidates(cleaned)]) {
109
+ for (const candidate of candidates) {
110
+ try {
111
+ return parseCandidate(candidate);
112
+ }
113
+ catch {
114
+ // CSS selectors and explanatory prose can contain brackets before the JSON.
115
+ }
116
+ }
117
+ }
118
+ if (validationError)
119
+ throw validationError;
120
+ throw new Error('Assistant returned invalid JSON');
121
+ }
122
+ }
15
123
  export function normalizeAssistantToolName(name) {
16
124
  return name.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 60) || `tool_${Date.now()}`;
17
125
  }
@@ -92,7 +200,8 @@ export function throwIfAborted(signal) {
92
200
  throw createAbortError();
93
201
  }
94
202
  export async function chatWithJsonRetry(params) {
95
- const invalidJsonRetryPrompt = 'Your previous response did not match the required assistant envelope. Reply ONLY with one JSON object using exactly one of these types: "assistant_message" with fields {"type":"assistant_message","text":"..."}, or "tool_call_request" with fields {"type":"tool_call_request","text":"...","toolCall":{"name":"PUBLIC_TOOL_NAME","arguments":{}}}. Do not use any other type, such as "message", "assistant", or an event type.';
203
+ const invalidJsonRetryPrompt = params.invalidJsonRetryPrompt ??
204
+ 'Your previous response did not match the required assistant envelope. Reply ONLY with one JSON object using exactly one of these types: "assistant_message" with fields {"type":"assistant_message","text":"..."}, or "tool_call_request" with fields {"type":"tool_call_request","text":"...","toolCall":{"name":"PUBLIC_TOOL_NAME","arguments":{}}}. Do not use any other type, such as "message", "assistant", or an event type.';
96
205
  const toToolCallRequest = (response) => {
97
206
  if (!response.tool_calls || response.tool_calls.length === 0)
98
207
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-common.js","sourceRoot":"","sources":["../../src/app-server/assistant-common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant-common.js","sourceRoot":"","sources":["../../src/app-server/assistant-common.ts"],"names":[],"mappings":"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"}