@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
+ {"version":3,"file":"inspectr-session-manager.js","sourceRoot":"","sources":["../../src/app-server/inspectr-session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  import type { ServerResponse } from 'node:http';
2
2
  export type SseEvent = {
3
- type: string;
4
- ts: string;
5
- payload: Record<string, unknown>;
3
+ type: string;
4
+ ts: string;
5
+ payload: Record<string, unknown>;
6
6
  };
7
7
  export declare function sendSseEvent(res: ServerResponse, event: SseEvent): void;
8
- export declare function addJobEvent(
9
- job: {
8
+ export declare function addJobEvent(job: {
10
9
  events: SseEvent[];
11
10
  clients: Set<ServerResponse>;
12
- },
13
- event: SseEvent
14
- ): void;
15
- //# sourceMappingURL=jobs.d.ts.map
11
+ }, event: SseEvent): void;
12
+ //# sourceMappingURL=jobs.d.ts.map
@@ -1,15 +1,31 @@
1
- import type { EvalConfig } from '@inspectr/mcplab-core';
1
+ import type { BrowserAgentConfig, BrowserProviderProfile, EvalConfig } from '@inspectr/mcplab-core';
2
2
  export declare function readLibraries(librariesDir: string): {
3
- servers: EvalConfig['servers'];
4
- agents: EvalConfig['agents'];
5
- scenarios: EvalConfig['scenarios'];
3
+ servers: EvalConfig['servers'];
4
+ agents: EvalConfig['agents'];
5
+ scenarios: EvalConfig['scenarios'];
6
+ browserProviders: Record<string, BrowserProviderProfile>;
7
+ };
8
+ export declare function writeBrowserProviderProfiles(librariesDir: string, profiles: Record<string, BrowserProviderProfile>): Record<string, BrowserProviderProfile>;
9
+ export declare function writeBrowserProviderAndAgent(librariesDir: string, profile: BrowserProviderProfile, agent: {
10
+ id: string;
11
+ name: string;
12
+ provider: string;
13
+ url: string;
14
+ }): {
15
+ profile: BrowserProviderProfile;
16
+ agent: BrowserAgentConfig & {
17
+ id: string;
18
+ };
6
19
  };
7
- export declare function writeLibraries(
8
- librariesDir: string,
9
- libraries: {
20
+ export declare function writeBrowserProviderLearningArtifact(librariesDir: string, providerId: string, artifact: {
21
+ trace?: unknown;
22
+ proposalDiagnostics?: unknown;
23
+ savedAt: string;
24
+ }): void;
25
+ export declare function writeLibraries(librariesDir: string, libraries: {
10
26
  servers: EvalConfig['servers'];
11
27
  agents: EvalConfig['agents'];
12
28
  scenarios: EvalConfig['scenarios'];
13
- }
14
- ): void;
15
- //# sourceMappingURL=libraries-store.d.ts.map
29
+ browserProviders?: Record<string, BrowserProviderProfile>;
30
+ }): void;
31
+ //# sourceMappingURL=libraries-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"libraries-store.d.ts","sourceRoot":"","sources":["../../src/app-server/libraries-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAkBxD,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG;IACnD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CACpC,CAuBA;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE;IACT,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CACpC,QA2BF"}
1
+ {"version":3,"file":"libraries-store.d.ts","sourceRoot":"","sources":["../../src/app-server/libraries-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA4BpG,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG;IACnD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC1D,CAwBA;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAgDxC;AAUD,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,OAAO,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,kBAAkB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CA2BjF;AAED,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E,IAAI,CA+BN;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE;IACT,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC3D,QAoDF"}
@@ -1,10 +1,12 @@
1
1
  import { basename, extname, join, resolve } from 'node:path';
2
2
  import { existsSync, mkdirSync, readdirSync, renameSync, unlinkSync, writeFileSync, readFileSync } from 'node:fs';
3
3
  import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
4
- import { readLibraryAgentsAndServers } from '@inspectr/mcplab-core';
4
+ import { parseBrowserProviderProfiles, DEFAULT_BROWSER_PROVIDER_PROFILES, mergeBrowserProviderProfiles, readLibraryAgentsAndServers, readBrowserProviderProfiles, validateBrowserProviderProfile, serializeBrowserProviderProfile } from '@inspectr/mcplab-core';
5
5
  import { ensureInsideRoot, safeFileName } from './store-utils.js';
6
+ import { sanitizeBrowserProviderProposalDiagnostics } from './browser-provider-learning.js';
6
7
  const TEST_CASES_DIR_NAME = 'test-cases';
7
8
  const LEGACY_SCENARIOS_DIR_NAME = 'scenarios';
9
+ const BROWSER_PROVIDERS_DIR_NAME = 'browser-providers';
8
10
  function readYamlFile(path, fallback) {
9
11
  if (!existsSync(path))
10
12
  return fallback;
@@ -40,15 +42,140 @@ export function readLibraries(librariesDir) {
40
42
  scenarios.push({ ...parsed, id });
41
43
  }
42
44
  }
43
- return { servers, agents, scenarios };
45
+ const browserProviders = mergeBrowserProviderProfiles(readBrowserProviderProfiles(root));
46
+ return { servers, agents, scenarios, browserProviders };
47
+ }
48
+ export function writeBrowserProviderProfiles(librariesDir, profiles) {
49
+ const root = resolve(librariesDir);
50
+ // Bulk saves must not overwrite or remove hand-edited profiles skipped by library listing.
51
+ readBrowserProviderProfiles(root, { strict: true });
52
+ mkdirSync(root, { recursive: true });
53
+ const directory = join(root, BROWSER_PROVIDERS_DIR_NAME);
54
+ mkdirSync(directory, { recursive: true });
55
+ const desired = new Set();
56
+ for (const [id, profile] of Object.entries(profiles)) {
57
+ const builtIn = Object.hasOwn(DEFAULT_BROWSER_PROVIDER_PROFILES, id)
58
+ ? DEFAULT_BROWSER_PROVIDER_PROFILES[id]
59
+ : undefined;
60
+ if (builtIn &&
61
+ serializeBrowserProviderProfile(builtIn) === serializeBrowserProviderProfile(profile))
62
+ continue;
63
+ const fileStem = safeFileName(id);
64
+ if (fileStem !== id) {
65
+ throw new Error(`Browser provider id '${id}' must be a safe filename.`);
66
+ }
67
+ const fileName = `${fileStem}.yaml`;
68
+ desired.add(fileName);
69
+ const target = join(directory, fileName);
70
+ const temporary = `${target}.tmp-${process.pid}-${Date.now()}`;
71
+ const serialized = serializeBrowserProviderProfile(profile);
72
+ const existingRaw = readFileIfPresent(target);
73
+ let shouldWrite = existingRaw === undefined;
74
+ if (existingRaw !== undefined) {
75
+ try {
76
+ const existing = parseBrowserProviderProfiles({
77
+ [id]: parseYaml(existingRaw)
78
+ })[id];
79
+ shouldWrite = serializeBrowserProviderProfile(existing) !== serialized;
80
+ }
81
+ catch {
82
+ shouldWrite = true;
83
+ }
84
+ }
85
+ if (shouldWrite) {
86
+ writeFileSync(temporary, serialized, 'utf8');
87
+ renameSync(temporary, target);
88
+ }
89
+ }
90
+ for (const file of readdirSync(directory)) {
91
+ if (!(file.endsWith('.yaml') || file.endsWith('.yml')) || desired.has(file))
92
+ continue;
93
+ unlinkSync(join(directory, file));
94
+ }
95
+ return mergeBrowserProviderProfiles(readBrowserProviderProfiles(root));
96
+ }
97
+ function readFileIfPresent(path) {
98
+ try {
99
+ return readFileSync(path, 'utf8');
100
+ }
101
+ catch {
102
+ return undefined;
103
+ }
104
+ }
105
+ export function writeBrowserProviderAndAgent(librariesDir, profile, agent) {
106
+ readBrowserProviderProfiles(resolve(librariesDir), { strict: true });
107
+ const current = readLibraries(librariesDir);
108
+ const existingAgent = current.agents[agent.id];
109
+ if (existingAgent &&
110
+ (existingAgent.type !== 'browser' || existingAgent.provider !== profile.id)) {
111
+ throw new Error(`Agent '${agent.id}' already exists with a different configuration.`);
112
+ }
113
+ const browserAgent = {
114
+ id: agent.id,
115
+ type: 'browser',
116
+ name: agent.name,
117
+ provider: profile.id,
118
+ url: agent.url
119
+ };
120
+ const persistedProfiles = writeBrowserProviderProfiles(librariesDir, {
121
+ ...current.browserProviders,
122
+ [profile.id]: profile
123
+ });
124
+ writeLibraries(librariesDir, {
125
+ servers: current.servers,
126
+ agents: { ...current.agents, [agent.id]: browserAgent },
127
+ scenarios: current.scenarios
128
+ });
129
+ return { profile: persistedProfiles[profile.id] ?? profile, agent: browserAgent };
130
+ }
131
+ export function writeBrowserProviderLearningArtifact(librariesDir, providerId, artifact) {
132
+ const root = resolve(librariesDir);
133
+ const directory = join(root, 'browser-provider-learning');
134
+ mkdirSync(directory, { recursive: true });
135
+ const target = join(directory, `${safeFileName(providerId)}.json`);
136
+ const temporary = `${target}.tmp-${process.pid}-${Date.now()}`;
137
+ const persistedTrace = artifact.trace && typeof artifact.trace === 'object' && !Array.isArray(artifact.trace)
138
+ ? Object.fromEntries(Object.entries(artifact.trace).filter(([key]) => key !== 'selectorValidation'))
139
+ : artifact.trace;
140
+ writeFileSync(temporary, `${JSON.stringify({
141
+ providerId,
142
+ trace: persistedTrace,
143
+ proposalDiagnostics: sanitizeBrowserProviderProposalDiagnostics(artifact.proposalDiagnostics),
144
+ savedAt: artifact.savedAt
145
+ }, null, 2)}\n`, 'utf8');
146
+ renameSync(temporary, target);
44
147
  }
45
148
  export function writeLibraries(librariesDir, libraries) {
149
+ const browserProviders = libraries.browserProviders
150
+ ? Object.fromEntries(Object.entries(libraries.browserProviders).map(([id, profile]) => [
151
+ id,
152
+ validateBrowserProviderProfile({ ...profile, id })
153
+ ]))
154
+ : undefined;
46
155
  const root = resolve(librariesDir);
156
+ if (browserProviders)
157
+ readBrowserProviderProfiles(root, { strict: true });
47
158
  const { testCasesDir } = ensureTestCasesDir(root);
48
159
  mkdirSync(root, { recursive: true });
49
160
  mkdirSync(testCasesDir, { recursive: true });
50
161
  writeFileSync(join(root, 'servers.yaml'), `${stringifyYaml(libraries.servers ?? {})}\n`, 'utf8');
51
- writeFileSync(join(root, 'agents.yaml'), `${stringifyYaml(libraries.agents ?? {})}\n`, 'utf8');
162
+ const agents = Object.fromEntries(Object.entries(libraries.agents ?? {}).map(([id, agent]) => {
163
+ if (agent.type !== 'browser')
164
+ return [id, agent];
165
+ const { newConversationBetweenScenarios, ...entry } = agent;
166
+ return [
167
+ id,
168
+ {
169
+ ...entry,
170
+ ...(typeof newConversationBetweenScenarios === 'boolean'
171
+ ? { new_conversation_between_scenarios: newConversationBetweenScenarios }
172
+ : {})
173
+ }
174
+ ];
175
+ }));
176
+ writeFileSync(join(root, 'agents.yaml'), `${stringifyYaml(agents)}\n`, 'utf8');
177
+ if (browserProviders)
178
+ writeBrowserProviderProfiles(librariesDir, browserProviders);
52
179
  const desired = new Set();
53
180
  for (const scenario of libraries.scenarios ?? []) {
54
181
  const scenarioId = safeFileName(String(scenario.id ?? `scenario-${Date.now()}`));
@@ -1 +1 @@
1
- {"version":3,"file":"libraries-store.js","sourceRoot":"","sources":["../../src/app-server/libraries-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libraries-store.js","sourceRoot":"","sources":["../../src/app-server/libraries-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { asJson, parseBody } from './http.js';
3
+ import { type LiveTestService } from './live-tests.js';
4
+ export interface LiveTestRouteDeps {
5
+ parseBody: typeof parseBody;
6
+ asJson: typeof asJson;
7
+ log?: (message: string) => void;
8
+ }
9
+ export declare function handleLiveTestRoutes(params: {
10
+ req: IncomingMessage;
11
+ res: ServerResponse;
12
+ pathname: string;
13
+ method: string;
14
+ service: LiveTestService;
15
+ deps: LiveTestRouteDeps;
16
+ }): Promise<boolean>;
17
+ //# sourceMappingURL=live-tests-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-tests-routes.d.ts","sourceRoot":"","sources":["../../src/app-server/live-tests-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAiB,KAAK,eAAe,EAAwB,MAAM,iBAAiB,CAAC;AAE5F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAoBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8DnB"}
@@ -0,0 +1,82 @@
1
+ import { LiveTestError } from './live-tests.js';
2
+ function sessionView(session) {
3
+ return {
4
+ id: session.id,
5
+ testCaseId: session.testCase.id,
6
+ testCaseName: session.testCase.name ?? session.testCase.id,
7
+ prompt: session.testCase.prompt,
8
+ client: session.client,
9
+ status: session.status,
10
+ createdAt: session.createdAt,
11
+ expiresAt: session.expiresAt,
12
+ evaluationRunId: session.evaluationRunId,
13
+ configPath: session.configPath,
14
+ configName: session.configName,
15
+ agentName: session.agentName,
16
+ completion: session.completion
17
+ };
18
+ }
19
+ export async function handleLiveTestRoutes(params) {
20
+ const { req, res, pathname, method, service, deps } = params;
21
+ const log = deps.log ?? console.log;
22
+ if (!pathname.startsWith('/api/live-tests/'))
23
+ return false;
24
+ try {
25
+ if (pathname === '/api/live-tests/test-cases' && method === 'GET') {
26
+ deps.asJson(res, 200, { testCases: service.list() });
27
+ return true;
28
+ }
29
+ if (pathname === '/api/live-tests/sessions' && method === 'POST') {
30
+ const body = await deps.parseBody(req);
31
+ const testCaseId = String(body.testCaseId ?? '').trim();
32
+ if (!testCaseId)
33
+ throw new LiveTestError('testCaseId is required.', 400);
34
+ const session = service.start({
35
+ testCaseId,
36
+ client: String(body.client ?? 'unknown'),
37
+ evaluationRunId: typeof body.evaluationRunId === 'string' ? body.evaluationRunId : undefined,
38
+ configPath: typeof body.configPath === 'string' ? body.configPath : undefined,
39
+ configName: typeof body.configName === 'string' ? body.configName : undefined,
40
+ agentName: typeof body.agentName === 'string' ? body.agentName : undefined
41
+ });
42
+ log(`[mcplab-app] Rover Live Test started: ${session.id} (${session.testCase.id}, ${session.client})`);
43
+ deps.asJson(res, 201, sessionView(session));
44
+ return true;
45
+ }
46
+ const match = pathname.match(/^\/api\/live-tests\/sessions\/([^/]+)(?:\/(complete|cancel))?$/);
47
+ if (!match)
48
+ return false;
49
+ const sessionId = decodeURIComponent(match[1]);
50
+ const action = match[2];
51
+ if (!action && method === 'GET') {
52
+ deps.asJson(res, 200, sessionView(service.get(sessionId)));
53
+ return true;
54
+ }
55
+ if (action === 'complete' && method === 'POST') {
56
+ const body = await deps.parseBody(req);
57
+ const completion = await service.complete(sessionId, {
58
+ finalText: String(body.finalText ?? ''),
59
+ startedAt: String(body.startedAt ?? ''),
60
+ completedAt: String(body.completedAt ?? '')
61
+ });
62
+ log(`[mcplab-app] Rover Live Test completed: ${sessionId} (${completion.outcome})`);
63
+ deps.asJson(res, 200, completion);
64
+ return true;
65
+ }
66
+ if (action === 'cancel' && method === 'POST') {
67
+ const session = service.cancel(sessionId);
68
+ log(`[mcplab-app] Rover Live Test cancelled: ${sessionId}`);
69
+ deps.asJson(res, 200, sessionView(session));
70
+ return true;
71
+ }
72
+ return false;
73
+ }
74
+ catch (error) {
75
+ if (!(error instanceof LiveTestError))
76
+ throw error;
77
+ log(`[mcplab-app] Rover Live Test error: ${error.message}`);
78
+ deps.asJson(res, error.statusCode, { error: error.message });
79
+ return true;
80
+ }
81
+ }
82
+ //# sourceMappingURL=live-tests-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-tests-routes.js","sourceRoot":"","sources":["../../src/app-server/live-tests-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { tallyCheckCounts, type AgentConfig, type RunOutcome, type Scenario } from '@inspectr/mcplab-core';
2
+ import type { PersistEvaluationArtifactsParams } from '@inspectr/mcplab-core';
3
+ import { appendExecutionEvent } from './execution-journal.js';
4
+ export interface LiveTestCatalogItem {
5
+ id: string;
6
+ name: string;
7
+ description?: string;
8
+ tags?: string[];
9
+ assertionCount: number;
10
+ eligible: boolean;
11
+ ineligibleReason?: string;
12
+ }
13
+ export interface LiveTestCompletion {
14
+ runId: string;
15
+ outcome: RunOutcome;
16
+ checkCounts: ReturnType<typeof tallyCheckCounts>;
17
+ resultUrl: string;
18
+ }
19
+ export interface LiveTestSession {
20
+ id: string;
21
+ testCase: Scenario;
22
+ client: string;
23
+ status: 'ready' | 'completed' | 'cancelled';
24
+ createdAt: string;
25
+ expiresAt: string;
26
+ evaluationRunId?: string;
27
+ configPath?: string;
28
+ configName?: string;
29
+ agentName?: string;
30
+ completionInput?: CompleteLiveTestInput;
31
+ completion?: LiveTestCompletion;
32
+ }
33
+ export interface CompleteLiveTestInput {
34
+ finalText: string;
35
+ startedAt: string;
36
+ completedAt: string;
37
+ }
38
+ export declare class LiveTestError extends Error {
39
+ readonly statusCode: number;
40
+ constructor(message: string, statusCode: number);
41
+ }
42
+ export declare function listLiveTestCases(scenarios: Scenario[]): LiveTestCatalogItem[];
43
+ export interface LiveTestServiceOptions {
44
+ runsDir: string;
45
+ evalsDir?: string;
46
+ cliVersion: string;
47
+ readScenarios: (input?: LiveTestStartInput) => Scenario[];
48
+ persist: (params: PersistEvaluationArtifactsParams) => void;
49
+ getEvaluationJudge?: () => {
50
+ name: string;
51
+ agent: AgentConfig;
52
+ } | undefined;
53
+ ttlMs?: number;
54
+ now?: () => Date;
55
+ appendJournalEvent?: typeof appendExecutionEvent;
56
+ }
57
+ interface LiveTestStartInput {
58
+ testCaseId: string;
59
+ client: string;
60
+ evaluationRunId?: string;
61
+ configPath?: string;
62
+ configName?: string;
63
+ agentName?: string;
64
+ }
65
+ export declare class LiveTestService {
66
+ private readonly options;
67
+ private readonly sessions;
68
+ private readonly completionsInFlight;
69
+ constructor(options: LiveTestServiceOptions);
70
+ list(): LiveTestCatalogItem[];
71
+ start(input: LiveTestStartInput): LiveTestSession;
72
+ get(id: string): LiveTestSession;
73
+ cancel(id: string): LiveTestSession;
74
+ complete(id: string, input: CompleteLiveTestInput): Promise<LiveTestCompletion>;
75
+ private completeInternal;
76
+ private requireSession;
77
+ private now;
78
+ private cleanup;
79
+ }
80
+ export {};
81
+ //# sourceMappingURL=live-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-tests.d.ts","sourceRoot":"","sources":["../../src/app-server/live-tests.ts"],"names":[],"mappings":"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"}