@inspectr/mcplab-core 1.22.2 → 1.23.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 (91) hide show
  1. package/dist/abort.d.ts +1 -1
  2. package/dist/agent.d.ts +72 -87
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +9 -2
  5. package/dist/agent.js.map +1 -1
  6. package/dist/artifacts.d.ts +9 -0
  7. package/dist/artifacts.d.ts.map +1 -0
  8. package/dist/artifacts.js +22 -0
  9. package/dist/artifacts.js.map +1 -0
  10. package/dist/assistant-tools.d.ts +1 -1
  11. package/dist/attachments.d.ts +4 -9
  12. package/dist/browser-provider-store.d.ts +5 -0
  13. package/dist/browser-provider-store.d.ts.map +1 -0
  14. package/dist/browser-provider-store.js +42 -0
  15. package/dist/browser-provider-store.js.map +1 -0
  16. package/dist/browser-providers.d.ts +48 -0
  17. package/dist/browser-providers.d.ts.map +1 -0
  18. package/dist/browser-providers.js +198 -0
  19. package/dist/browser-providers.js.map +1 -0
  20. package/dist/browser.d.ts +3 -7
  21. package/dist/browser.d.ts.map +1 -1
  22. package/dist/browser.js +1 -0
  23. package/dist/browser.js.map +1 -1
  24. package/dist/check-counts.d.ts +3 -5
  25. package/dist/check-counts.d.ts.map +1 -1
  26. package/dist/check-counts.js +11 -2
  27. package/dist/check-counts.js.map +1 -1
  28. package/dist/config-values.d.ts +1 -1
  29. package/dist/config.d.ts +21 -33
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +48 -42
  32. package/dist/config.js.map +1 -1
  33. package/dist/default-browser-providers.d.ts +13 -0
  34. package/dist/default-browser-providers.d.ts.map +1 -0
  35. package/dist/default-browser-providers.js +99 -0
  36. package/dist/default-browser-providers.js.map +1 -0
  37. package/dist/eval.d.ts +23 -53
  38. package/dist/eval.d.ts.map +1 -1
  39. package/dist/eval.js +38 -6
  40. package/dist/eval.js.map +1 -1
  41. package/dist/evaluation-config-store.d.ts +20 -17
  42. package/dist/index.d.ts +17 -50
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +10 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/langsmith-tracing.d.ts +32 -21
  47. package/dist/langsmith-tracing.js.map +1 -1
  48. package/dist/mcp.d.ts +63 -79
  49. package/dist/mcp.d.ts.map +1 -1
  50. package/dist/mcp.js.map +1 -1
  51. package/dist/queue-contract.d.ts +93 -27
  52. package/dist/queue-contract.d.ts.map +1 -1
  53. package/dist/queue-contract.js +31 -1
  54. package/dist/queue-contract.js.map +1 -1
  55. package/dist/result-metrics.d.ts +3 -0
  56. package/dist/result-metrics.d.ts.map +1 -0
  57. package/dist/result-metrics.js +6 -0
  58. package/dist/result-metrics.js.map +1 -0
  59. package/dist/results-query.d.ts +51 -60
  60. package/dist/results-query.d.ts.map +1 -1
  61. package/dist/results-query.js +23 -47
  62. package/dist/results-query.js.map +1 -1
  63. package/dist/results.d.ts +20 -18
  64. package/dist/results.d.ts.map +1 -1
  65. package/dist/results.js +26 -7
  66. package/dist/results.js.map +1 -1
  67. package/dist/run-directory-snapshots.d.ts +12 -0
  68. package/dist/run-directory-snapshots.d.ts.map +1 -0
  69. package/dist/run-directory-snapshots.js +56 -0
  70. package/dist/run-directory-snapshots.js.map +1 -0
  71. package/dist/runner.d.ts +109 -121
  72. package/dist/runner.d.ts.map +1 -1
  73. package/dist/runner.js +117 -66
  74. package/dist/runner.js.map +1 -1
  75. package/dist/runtime-overrides.d.ts +4 -7
  76. package/dist/scenario-builder.d.ts +15 -15
  77. package/dist/scenario-observation.d.ts +22 -0
  78. package/dist/scenario-observation.d.ts.map +1 -0
  79. package/dist/scenario-observation.js +70 -0
  80. package/dist/scenario-observation.js.map +1 -0
  81. package/dist/test-case-store.d.ts +26 -26
  82. package/dist/tool-definition-token-estimates.d.ts +13 -16
  83. package/dist/trace-token-estimates.d.ts +5 -11
  84. package/dist/trace.d.ts +4 -4
  85. package/dist/trace.d.ts.map +1 -1
  86. package/dist/trace.js.map +1 -1
  87. package/dist/types.d.ts +46 -6
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +3 -1
  90. package/dist/types.js.map +1 -1
  91. package/package.json +3 -3
package/dist/results.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { calculatePassRate } from './result-metrics.js';
2
+ import { deriveRunOutcome } from './scenario-observation.js';
1
3
  export function aggregateResults(params) {
2
4
  const scenarios = params.scenarioRuns.map((entry) => {
3
5
  const distinctSequences = {};
@@ -39,7 +41,8 @@ export function aggregateResults(params) {
39
41
  }
40
42
  lastFinalAnswer = run.final_text || lastFinalAnswer;
41
43
  }
42
- const passRate = entry.runs.length === 0 ? 0 : entry.runs.filter((run) => run.pass).length / entry.runs.length;
44
+ const completedRuns = entry.runs.filter((run) => run.outcome !== 'stopped');
45
+ const passRate = calculatePassRate(completedRuns.filter((run) => run.pass).length, entry.runs.length, entry.runs.length - completedRuns.length);
43
46
  const toolConstraintsStats = Object.keys(requiredStats).length > 0 || Object.keys(forbiddenStats).length > 0
44
47
  ? { required: requiredStats, forbidden: forbiddenStats }
45
48
  : undefined;
@@ -70,6 +73,19 @@ export function aggregateResults(params) {
70
73
  const totalToolDurationMs = scenarios.reduce((sum, scenario) => sum +
71
74
  scenario.runs.reduce((runSum, run) => runSum +
72
75
  run.tool_durations_ms.reduce((toolSum, toolDuration) => toolSum + toolDuration, 0), 0), 0);
76
+ const outcomes = {
77
+ passed: 0,
78
+ failed: 0,
79
+ incomplete: 0,
80
+ error: 0,
81
+ stopped: 0
82
+ };
83
+ for (const run of scenarios.flatMap((scenario) => scenario.runs)) {
84
+ const outcome = run.outcome ?? deriveRunOutcome(run);
85
+ outcomes[outcome] = (outcomes[outcome] ?? 0) + 1;
86
+ }
87
+ if (outcomes.stopped === 0)
88
+ delete outcomes.stopped;
73
89
  const totalDurationMs = scenarios.reduce((sum, scenario) => sum +
74
90
  scenario.runs.reduce((runSum, run) => {
75
91
  if (typeof run.run_duration_ms === 'number')
@@ -88,14 +104,17 @@ export function aggregateResults(params) {
88
104
  total_duration_ms: totalDurationMs,
89
105
  total_tool_duration_ms: totalToolDurationMs,
90
106
  cli_version: params.cliVersion,
91
- mcp_server_versions: params.mcpServerVersions ?? {}
107
+ mcp_server_versions: params.mcpServerVersions ?? {},
108
+ execution_source: params.executionSource ?? 'mcplab',
109
+ execution_client: params.executionClient
92
110
  },
93
111
  summary: {
94
112
  total_scenarios: totalScenarios,
95
113
  total_runs: totalRuns,
96
- pass_rate: totalRuns === 0 ? 0 : totalPasses / totalRuns,
114
+ pass_rate: calculatePassRate(totalPasses, totalRuns, outcomes.stopped),
97
115
  avg_tool_calls_per_run: totalRuns === 0 ? 0 : totalToolCalls / totalRuns,
98
- avg_tool_latency_ms: avgLatency
116
+ avg_tool_latency_ms: avgLatency,
117
+ outcomes
99
118
  },
100
119
  scenarios
101
120
  };
@@ -131,14 +150,14 @@ export function renderSummaryMarkdown(results) {
131
150
  lines.push('');
132
151
  lines.push(`Total scenarios: ${results.summary.total_scenarios}`);
133
152
  lines.push(`Total runs: ${results.summary.total_runs}`);
134
- lines.push(`Pass rate: ${(results.summary.pass_rate * 100).toFixed(1)}%`);
153
+ lines.push(`Pass rate: ${results.summary.pass_rate === null ? '–' : `${(results.summary.pass_rate * 100).toFixed(1)}%`}`);
135
154
  lines.push('');
136
155
  lines.push('| Scenario | Agent | Runs | Pass rate | Distinct sequences | Tool calls |');
137
156
  lines.push('|---|---|---|---|---|---|');
138
157
  for (const scenario of results.scenarios) {
139
- const passRate = (scenario.pass_rate * 100).toFixed(1);
158
+ const passRate = scenario.pass_rate === null ? '–' : `${(scenario.pass_rate * 100).toFixed(1)}%`;
140
159
  const toolCalls = scenario.runs.reduce((sum, run) => sum + run.tool_call_count, 0);
141
- lines.push(`| ${scenario.scenario_id} | ${scenario.agent} | ${scenario.runs.length} | ${passRate}% | ${Object.keys(scenario.distinct_sequences).length} | ${toolCalls} |`);
160
+ lines.push(`| ${scenario.scenario_id} | ${scenario.agent} | ${scenario.runs.length} | ${passRate} | ${Object.keys(scenario.distinct_sequences).length} | ${toolCalls} |`);
142
161
  }
143
162
  return lines.join('\n');
144
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface FileSnapshot {
2
+ size: number;
3
+ mtimeMs: number;
4
+ }
5
+ export interface RunDirectorySnapshot {
6
+ runId: string;
7
+ files: Record<string, FileSnapshot>;
8
+ }
9
+ export declare function listRunDirectories(root: string): string[];
10
+ export declare function snapshotRunDirectory(root: string, runId: string, artifacts: readonly string[]): RunDirectorySnapshot | null;
11
+ export declare function snapshotsEqual(a: RunDirectorySnapshot | null | undefined, b: RunDirectorySnapshot | null | undefined): boolean;
12
+ //# sourceMappingURL=run-directory-snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-directory-snapshots.d.ts","sourceRoot":"","sources":["../src/run-directory-snapshots.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC;AAWD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASzD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,oBAAoB,GAAG,IAAI,CAmB7B;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC1C,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAYT"}
@@ -0,0 +1,56 @@
1
+ import { readdirSync, statSync } from 'node:fs';
2
+ import { resolve, sep } from 'node:path';
3
+ function resolveRunPath(root, runId, artifact) {
4
+ const base = resolve(root);
5
+ const target = resolve(base, runId, artifact ?? '');
6
+ if (target !== base && !target.startsWith(`${base}${sep}`)) {
7
+ throw new Error(`Invalid run directory path: ${runId}`);
8
+ }
9
+ return target;
10
+ }
11
+ export function listRunDirectories(root) {
12
+ try {
13
+ return readdirSync(root, { withFileTypes: true })
14
+ .filter((entry) => entry.isDirectory())
15
+ .map((entry) => entry.name)
16
+ .sort();
17
+ }
18
+ catch {
19
+ return [];
20
+ }
21
+ }
22
+ export function snapshotRunDirectory(root, runId, artifacts) {
23
+ const runDir = resolveRunPath(root, runId);
24
+ try {
25
+ if (!statSync(runDir).isDirectory())
26
+ return null;
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ const files = {};
32
+ for (const artifact of artifacts) {
33
+ const artifactPath = resolveRunPath(root, runId, artifact);
34
+ try {
35
+ const stat = statSync(artifactPath);
36
+ if (stat.isFile())
37
+ files[artifact] = { size: stat.size, mtimeMs: stat.mtimeMs };
38
+ }
39
+ catch {
40
+ // Missing or concurrently replaced files are simply absent from the snapshot.
41
+ }
42
+ }
43
+ return { runId, files };
44
+ }
45
+ export function snapshotsEqual(a, b) {
46
+ if (!a || !b || a.runId !== b.runId)
47
+ return false;
48
+ const aFiles = Object.keys(a.files).sort();
49
+ const bFiles = Object.keys(b.files).sort();
50
+ if (aFiles.length !== bFiles.length || aFiles.some((file, index) => file !== bFiles[index])) {
51
+ return false;
52
+ }
53
+ return aFiles.every((file) => a.files[file]?.size === b.files[file]?.size &&
54
+ a.files[file]?.mtimeMs === b.files[file]?.mtimeMs);
55
+ }
56
+ //# sourceMappingURL=run-directory-snapshots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-directory-snapshots.js","sourceRoot":"","sources":["../src/run-directory-snapshots.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -1,138 +1,126 @@
1
- import type {
2
- AgentAssertion,
3
- AgentConfig,
4
- AgentJudgeContext,
5
- ExecutableEvalConfig,
6
- ResultsJson,
7
- ExecutableScenario
8
- } from './types.js';
1
+ import type { AgentAssertion, AgentConfig, AgentJudgeContext, ExecutableEvalConfig, ResultsJson, ExecutableScenario, RunOutcome } from './types.js';
9
2
  import { type AgentRunProgressEvent } from './agent.js';
10
3
  import { type TraceExporter } from './langsmith-tracing.js';
11
4
  export interface RunOptions {
12
- runsPerScenario: number;
13
- scenarioId?: string;
14
- runNote?: string;
15
- configHash: string;
16
- gitCommit?: string;
17
- cliVersion: string;
18
- runsDir?: string;
19
- cwd?: string;
20
- mcpServerAuthHeaders?: Record<string, Record<string, string>>;
21
- oauthTokens?: Record<string, string>;
22
- resolveMcpServerAuthHeaders?: (
23
- serverNames: string[],
24
- options?: {
25
- signal?: AbortSignal;
26
- }
27
- ) => Promise<Record<string, Record<string, string>>>;
28
- evaluationJudge?: {
29
- name: string;
30
- agent: AgentConfig;
31
- };
32
- signal?: AbortSignal;
33
- onProgress?: (event: RunProgressEvent) => void | Promise<void>;
34
- traceExporter?: TraceExporter;
35
- }
36
- export type RunProgressEvent =
37
- | {
38
- type: 'run_started';
39
- runId: string;
40
- totalScenarioRuns: number;
41
- runsPerScenario: number;
42
- }
43
- | {
44
- type: 'mcp_connect_started';
45
- serverCount: number;
46
- serverNames: string[];
47
- }
48
- | {
49
- type: 'mcp_connect_finished';
50
- serverCount: number;
51
- serverNames: string[];
52
- }
53
- | {
54
- type: 'scenario_run_started';
55
- scenarioId: string;
56
- agentName: string;
57
- scenarioRunIndex: number;
58
- totalScenarioRuns: number;
59
- runIndex: number;
60
- runsPerScenario: number;
61
- }
62
- | {
63
- type: 'scenario_run_finished';
64
- scenarioId: string;
65
- agentName: string;
66
- scenarioRunIndex: number;
67
- totalScenarioRuns: number;
68
- runIndex: number;
69
- runsPerScenario: number;
70
- pass: boolean;
71
- toolCallCount: number;
72
- }
73
- | {
74
- type: 'agent_progress';
75
- scenarioRunIndex: number;
76
- totalScenarioRuns: number;
77
- event: AgentRunProgressEvent;
78
- }
79
- | {
80
- type: 'run_finished';
81
- runId: string;
82
- totalScenarioRuns: number;
5
+ runsPerScenario: number;
6
+ scenarioId?: string;
7
+ runNote?: string;
8
+ configHash: string;
9
+ gitCommit?: string;
10
+ cliVersion: string;
11
+ runsDir?: string;
12
+ cwd?: string;
13
+ mcpServerAuthHeaders?: Record<string, Record<string, string>>;
14
+ oauthTokens?: Record<string, string>;
15
+ resolveMcpServerAuthHeaders?: (serverNames: string[], options?: {
16
+ signal?: AbortSignal;
17
+ }) => Promise<Record<string, Record<string, string>>>;
18
+ evaluationJudge?: {
19
+ name: string;
20
+ agent: AgentConfig;
83
21
  };
84
- export declare function buildMcpServerAuthHeaders(
85
- options: Pick<RunOptions, 'mcpServerAuthHeaders' | 'oauthTokens'>
86
- ): Record<string, Record<string, string>>;
87
- export declare function runAll(
88
- config: ExecutableEvalConfig,
89
- options: RunOptions
90
- ): Promise<{
91
- runDir: string;
92
- results: ResultsJson;
22
+ signal?: AbortSignal;
23
+ /** Optional signal per executable scenario-agent pair. A child abort skips only that pair. */
24
+ scenarioSignal?: (scenario: ExecutableScenario, runIndex: number) => AbortSignal | undefined;
25
+ onProgress?: (event: RunProgressEvent) => void | Promise<void>;
26
+ traceExporter?: TraceExporter;
27
+ /** Skip standard result projections when a caller owns shared persistence. */
28
+ persistArtifacts?: boolean;
29
+ }
30
+ export type RunProgressEvent = {
31
+ type: 'run_started';
32
+ runId: string;
33
+ totalScenarioRuns: number;
34
+ runsPerScenario: number;
35
+ } | {
36
+ type: 'mcp_connect_started';
37
+ serverCount: number;
38
+ serverNames: string[];
39
+ } | {
40
+ type: 'mcp_connect_finished';
41
+ serverCount: number;
42
+ serverNames: string[];
43
+ } | {
44
+ type: 'scenario_run_started';
45
+ scenarioId: string;
46
+ agentName: string;
47
+ scenarioRunIndex: number;
48
+ totalScenarioRuns: number;
49
+ runIndex: number;
50
+ runsPerScenario: number;
51
+ } | {
52
+ type: 'scenario_run_finished';
53
+ scenarioId: string;
54
+ agentName: string;
55
+ scenarioRunIndex: number;
56
+ totalScenarioRuns: number;
57
+ runIndex: number;
58
+ runsPerScenario: number;
59
+ pass: boolean;
60
+ outcome?: RunOutcome;
61
+ toolCallCount: number;
62
+ } | {
63
+ type: 'agent_progress';
64
+ scenarioRunIndex: number;
65
+ totalScenarioRuns: number;
66
+ event: AgentRunProgressEvent;
67
+ } | {
68
+ type: 'run_finished';
69
+ runId: string;
70
+ totalScenarioRuns: number;
71
+ };
72
+ export declare function buildMcpServerAuthHeaders(options: Pick<RunOptions, 'mcpServerAuthHeaders' | 'oauthTokens'>): Record<string, Record<string, string>>;
73
+ export declare function runAll(config: ExecutableEvalConfig, options: RunOptions): Promise<{
74
+ runDir: string;
75
+ results: ResultsJson;
93
76
  }>;
94
- export declare function buildJudgeBatchPayload(
95
- finalText: string,
96
- assertions: AgentAssertion[],
97
- context?: AgentJudgeContext
98
- ): {
99
- checks: {
100
- id: string;
101
- label: string;
102
- prompt: string;
103
- }[];
104
- context?: AgentJudgeContext | undefined;
105
- final_answer: string;
77
+ export declare function buildJudgeBatchPayload(finalText: string, assertions: AgentAssertion[], context?: AgentJudgeContext): {
78
+ final_answer: string;
79
+ context?: AgentJudgeContext | undefined;
80
+ checks: {
81
+ id: string;
82
+ label: string;
83
+ prompt: string;
84
+ }[];
106
85
  };
107
86
  type JudgeBatchPayload = ReturnType<typeof buildJudgeBatchPayload>;
108
87
  export declare function mapJudgeBatchResults(params: {
109
- judgeName: string;
110
- judgeAgent: AgentConfig;
111
- batch: JudgeBatchPayload;
112
- raw: string;
88
+ judgeName: string;
89
+ judgeAgent: AgentConfig;
90
+ batch: JudgeBatchPayload;
91
+ raw: string;
113
92
  }): Array<{
114
- label: string;
115
- pass: boolean;
116
- reason: string;
117
- metadata?: Record<string, unknown>;
93
+ label: string;
94
+ pass: boolean;
95
+ reason: string;
96
+ metadata?: Record<string, unknown>;
118
97
  }>;
98
+ export declare function judgeAgentAssertions(params: {
99
+ assertions: AgentAssertion[];
100
+ finalText: string;
101
+ context?: AgentJudgeContext;
102
+ judge: NonNullable<RunOptions['evaluationJudge']>;
103
+ signal?: AbortSignal;
104
+ }): Promise<Array<{
105
+ label: string;
106
+ pass: boolean;
107
+ reason: string;
108
+ metadata?: Record<string, unknown>;
109
+ }>>;
119
110
  export declare function extractJudgeJson(raw: string): string;
120
- export declare function filterScenariosForRun(
121
- scenarios: ExecutableScenario[],
122
- scenarioId?: string
123
- ): ExecutableScenario[];
111
+ export declare function filterScenariosForRun(scenarios: ExecutableScenario[], scenarioId?: string): ExecutableScenario[];
124
112
  export declare function createRunId(now?: Date): string;
125
113
  export declare function buildScenarioRequestId(params: {
126
- runId: string;
127
- scenarioId?: string;
128
- agentName?: string;
129
- scenarioExecId?: string;
130
- runIndex: number;
114
+ runId: string;
115
+ scenarioId?: string;
116
+ agentName?: string;
117
+ scenarioExecId?: string;
118
+ runIndex: number;
131
119
  }): string;
132
120
  export declare function buildFallbackScenarioRequestId(params: {
133
- runId: string;
134
- runIndex: number;
135
- scenarioAgent?: string;
121
+ runId: string;
122
+ runIndex: number;
123
+ scenarioAgent?: string;
136
124
  }): string;
137
125
  export {};
138
- //# sourceMappingURL=runner.d.ts.map
126
+ //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}