@tracecode/harness 0.6.6 → 0.7.0-beta7
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.
- package/CHANGELOG.md +48 -0
- package/README.md +134 -15
- package/THIRD_PARTY_NOTICES.md +170 -0
- package/dist/browser.cjs +2361 -1033
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +33 -3
- package/dist/browser.d.ts +33 -3
- package/dist/browser.js +2357 -1033
- package/dist/browser.js.map +1 -1
- package/dist/cli.cjs +160 -23
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +161 -24
- package/dist/cli.js.map +1 -1
- package/dist/core.cjs +748 -867
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +21 -85
- package/dist/core.d.ts +21 -85
- package/dist/core.js +734 -855
- package/dist/core.js.map +1 -1
- package/dist/cpp-worker-client-Bn7kC0_L.d.ts +84 -0
- package/dist/cpp-worker-client-BzdJLuZa.d.cts +84 -0
- package/dist/cpp.cjs +1063 -0
- package/dist/cpp.cjs.map +1 -0
- package/dist/cpp.d.cts +7 -0
- package/dist/cpp.d.ts +7 -0
- package/dist/cpp.js +1035 -0
- package/dist/cpp.js.map +1 -0
- package/dist/csharp-worker-client-DMHIa2YG.d.cts +69 -0
- package/dist/csharp-worker-client-JwqS6LiX.d.ts +69 -0
- package/dist/csharp.cjs +1012 -0
- package/dist/csharp.cjs.map +1 -0
- package/dist/csharp.d.cts +7 -0
- package/dist/csharp.d.ts +7 -0
- package/dist/csharp.js +984 -0
- package/dist/csharp.js.map +1 -0
- package/dist/index.cjs +3142 -1160
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -5
- package/dist/index.d.ts +13 -5
- package/dist/index.js +3117 -1148
- package/dist/index.js.map +1 -1
- package/dist/internal/browser.cjs +1639 -30
- package/dist/internal/browser.cjs.map +1 -1
- package/dist/internal/browser.d.cts +6 -199
- package/dist/internal/browser.d.ts +6 -199
- package/dist/internal/browser.js +1636 -30
- package/dist/internal/browser.js.map +1 -1
- package/dist/java-worker-client-BOwKW-11.d.cts +72 -0
- package/dist/java-worker-client-C97DDnCp.d.ts +72 -0
- package/dist/java.cjs +1225 -0
- package/dist/java.cjs.map +1 -0
- package/dist/java.d.cts +7 -0
- package/dist/java.d.ts +7 -0
- package/dist/java.js +1197 -0
- package/dist/java.js.map +1 -0
- package/dist/javascript-worker-client-CYBGEEvc.d.cts +51 -0
- package/dist/javascript-worker-client-DIX1Mp21.d.ts +51 -0
- package/dist/javascript.cjs +1063 -19
- package/dist/javascript.cjs.map +1 -1
- package/dist/javascript.d.cts +7 -4
- package/dist/javascript.d.ts +7 -4
- package/dist/javascript.js +1061 -19
- package/dist/javascript.js.map +1 -1
- package/dist/pyodide-worker-client-C-2rfHj9.d.ts +111 -0
- package/dist/pyodide-worker-client-Cn0a8Uv3.d.cts +111 -0
- package/dist/python.cjs +1282 -74
- package/dist/python.cjs.map +1 -1
- package/dist/python.d.cts +20 -14
- package/dist/python.d.ts +20 -14
- package/dist/python.js +1279 -74
- package/dist/python.js.map +1 -1
- package/dist/runtime-language-info-BFUSti3-.d.ts +43 -0
- package/dist/runtime-language-info-Bxza1cI2.d.cts +43 -0
- package/dist/runtime-types-2qM0MukN.d.cts +244 -0
- package/dist/runtime-types-2qM0MukN.d.ts +244 -0
- package/package.json +73 -8
- package/workers/cpp/cpp-compiler-frame.html +82 -0
- package/workers/cpp/cpp-compiler-worker.js +131 -0
- package/workers/cpp/cpp-worker.js +5790 -0
- package/workers/cpp/tracecode_runtime.hpp +6147 -0
- package/workers/csharp/csharp-worker.js +301 -0
- package/workers/java/.build/classes/harness/browser/JavaRewriteLibrary.class +0 -0
- package/workers/java/java-source-augmentations.js +880 -0
- package/workers/java/java-worker.js +2149 -178
- package/workers/java/src/harness/browser/JavaRewriteLibrary.java +1645 -32
- package/workers/java/src/javafx/util/Pair.java +42 -0
- package/workers/java/src/tracecode/browser/BrowserCompileAndTraceLibrary.java +714 -0
- package/workers/java/src/tracecode/browser/BrowserCompileAndTraceMain.java +76 -0
- package/workers/java/src/tracecode/browser/RuntimeProbeMain.java +14 -0
- package/workers/java/src/tracecode/user/TraceHooks.java +1406 -0
- package/workers/javascript/javascript-libraries-entry.js +71 -0
- package/workers/javascript/javascript-worker.js +2054 -424
- package/workers/python/generated-python-harness-snippets.js +4 -4
- package/workers/python/pyodide-worker.js +222 -61
- package/workers/python/runtime-core.js +1387 -301
- package/workers/vendor/csharp/.stamp +0 -0
- package/workers/vendor/csharp/TraceCode.CSharpHost.runtimeconfig.json +32 -0
- package/workers/vendor/csharp/_framework/Microsoft.CSharp.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.CodeAnalysis.CSharp.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.CodeAnalysis.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.VisualBasic.Core.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.VisualBasic.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.Win32.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.Win32.Registry.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.AppContext.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Buffers.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Concurrent.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Immutable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.NonGeneric.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Specialized.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.Annotations.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.DataAnnotations.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.EventBasedAsync.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Configuration.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Console.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Core.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.Common.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.DataSetExtensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Contracts.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Debug.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.DiagnosticSource.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.FileVersionInfo.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Process.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.StackTrace.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.TextWriterTraceListener.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Tools.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.TraceSource.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Tracing.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Drawing.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Drawing.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Dynamic.Runtime.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Formats.Asn1.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Formats.Tar.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.Calendars.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.Brotli.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.FileSystem.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.ZipFile.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.DriveInfo.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.Watcher.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.IsolatedStorage.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.MemoryMappedFiles.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipelines.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipes.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipes.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.UnmanagedMemoryStream.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.AsyncEnumerable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Expressions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Parallel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Queryable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Memory.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Http.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Http.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.HttpListener.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Mail.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.NameResolution.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.NetworkInformation.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Ping.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Quic.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Requests.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Security.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.ServerSentEvents.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.ServicePoint.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Sockets.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebClient.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebHeaderCollection.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebProxy.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebSockets.Client.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebSockets.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Numerics.Vectors.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Numerics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ObjectModel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.CoreLib.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.DataContractSerialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Uri.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Xml.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.DispatchProxy.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.ILGeneration.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.Lightweight.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Metadata.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.TypeExtensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.Reader.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.ResourceManager.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.Writer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.CompilerServices.Unsafe.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.CompilerServices.VisualC.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Handles.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.RuntimeInformation.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Intrinsics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Loader.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Numerics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Formatters.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Claims.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Algorithms.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Cng.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Csp.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Encoding.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.OpenSsl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.X509Certificates.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Principal.Windows.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Principal.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.SecureString.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ServiceModel.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ServiceProcess.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.CodePages.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encodings.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.RegularExpressions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Channels.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Overlapped.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Dataflow.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Parallel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Thread.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.ThreadPool.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Timer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Transactions.Local.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Transactions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ValueTuple.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Web.HttpUtility.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Windows.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.ReaderWriter.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.Serialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XPath.XDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XPath.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XmlDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XmlSerializer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.wasm +0 -0
- package/workers/vendor/csharp/_framework/TraceCode.CSharpHost.wasm +0 -0
- package/workers/vendor/csharp/_framework/WindowsBase.wasm +0 -0
- package/workers/vendor/csharp/_framework/cs/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/cs/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/de/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/de/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/dotnet.boot.js +1958 -0
- package/workers/vendor/csharp/_framework/dotnet.js +4 -0
- package/workers/vendor/csharp/_framework/dotnet.js.map +1 -0
- package/workers/vendor/csharp/_framework/dotnet.native.js +6687 -0
- package/workers/vendor/csharp/_framework/dotnet.native.wasm +0 -0
- package/workers/vendor/csharp/_framework/dotnet.runtime.js +4 -0
- package/workers/vendor/csharp/_framework/dotnet.runtime.js.map +1 -0
- package/workers/vendor/csharp/_framework/es/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/es/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/fr/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/fr/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/it/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/it/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ja/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ja/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ko/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ko/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/mscorlib.wasm +0 -0
- package/workers/vendor/csharp/_framework/netstandard.wasm +0 -0
- package/workers/vendor/csharp/_framework/pl/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pl/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pt-BR/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ru/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ru/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/0_Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/100_System.Reflection.Emit.ILGeneration.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/101_System.Reflection.Emit.Lightweight.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/102_System.Reflection.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/103_System.Reflection.Metadata.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/104_System.Reflection.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/105_System.Reflection.TypeExtensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/106_System.Resources.Reader.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/107_System.Resources.ResourceManager.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/108_System.Resources.Writer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/109_System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/10_System.Buffers.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/110_System.Runtime.CompilerServices.VisualC.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/111_System.Runtime.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/112_System.Runtime.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/113_System.Runtime.Handles.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/114_System.Runtime.InteropServices.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/115_System.Runtime.InteropServices.JavaScript.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/116_System.Runtime.InteropServices.RuntimeInformation.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/117_System.Runtime.Intrinsics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/118_System.Runtime.Loader.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/119_System.Runtime.Numerics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/11_System.Collections.Concurrent.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/120_System.Runtime.Serialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/121_System.Runtime.Serialization.Formatters.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/122_System.Runtime.Serialization.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/123_System.Runtime.Serialization.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/124_System.Runtime.Serialization.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/125_System.Security.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/126_System.Security.Claims.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/127_System.Security.Cryptography.Algorithms.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/128_System.Security.Cryptography.Cng.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/129_System.Security.Cryptography.Csp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/12_System.Collections.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/130_System.Security.Cryptography.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/131_System.Security.Cryptography.Encoding.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/132_System.Security.Cryptography.OpenSsl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/133_System.Security.Cryptography.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/134_System.Security.Cryptography.X509Certificates.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/135_System.Security.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/136_System.Security.Principal.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/137_System.Security.Principal.Windows.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/138_System.Security.SecureString.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/139_System.ServiceModel.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/13_System.Collections.Immutable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/140_System.ServiceProcess.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/141_System.Text.Encoding.CodePages.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/142_System.Text.Encoding.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/143_System.Text.Encoding.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/144_System.Text.Encodings.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/145_System.Text.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/146_System.Text.RegularExpressions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/147_System.Threading.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/148_System.Threading.Channels.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/149_System.Threading.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/14_System.Collections.NonGeneric.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/150_System.Threading.Overlapped.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/151_System.Threading.Tasks.Dataflow.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/152_System.Threading.Tasks.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/153_System.Threading.Tasks.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/154_System.Threading.Tasks.Parallel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/155_System.Threading.Thread.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/156_System.Threading.ThreadPool.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/157_System.Threading.Timer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/158_System.Transactions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/159_System.Transactions.Local.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/15_System.Collections.Specialized.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/160_System.ValueTuple.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/161_System.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/162_System.Web.HttpUtility.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/163_System.Windows.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/164_System.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/165_System.Xml.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/166_System.Xml.ReaderWriter.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/167_System.Xml.Serialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/168_System.Xml.XDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/169_System.Xml.XmlDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/16_System.ComponentModel.Annotations.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/170_System.Xml.XmlSerializer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/171_System.Xml.XPath.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/172_System.Xml.XPath.XDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/173_TraceCode.CSharpHost.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/174_WindowsBase.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/17_System.ComponentModel.DataAnnotations.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/18_System.ComponentModel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/19_System.ComponentModel.EventBasedAsync.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/1_Microsoft.CodeAnalysis.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/20_System.ComponentModel.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/21_System.ComponentModel.TypeConverter.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/22_System.Configuration.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/23_System.Console.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/24_System.Core.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/25_System.Data.Common.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/26_System.Data.DataSetExtensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/27_System.Data.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/28_System.Diagnostics.Contracts.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/29_System.Diagnostics.Debug.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/2_Microsoft.CSharp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/30_System.Diagnostics.DiagnosticSource.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/31_System.Diagnostics.FileVersionInfo.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/32_System.Diagnostics.Process.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/33_System.Diagnostics.StackTrace.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/34_System.Diagnostics.TextWriterTraceListener.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/35_System.Diagnostics.Tools.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/36_System.Diagnostics.TraceSource.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/37_System.Diagnostics.Tracing.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/38_System.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/39_System.Drawing.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/3_Microsoft.VisualBasic.Core.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/40_System.Drawing.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/41_System.Dynamic.Runtime.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/42_System.Formats.Asn1.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/43_System.Formats.Tar.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/44_System.Globalization.Calendars.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/45_System.Globalization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/46_System.Globalization.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/47_System.IO.Compression.Brotli.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/48_System.IO.Compression.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/49_System.IO.Compression.FileSystem.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/4_Microsoft.VisualBasic.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/50_System.IO.Compression.ZipFile.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/51_System.IO.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/52_System.IO.FileSystem.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/53_System.IO.FileSystem.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/54_System.IO.FileSystem.DriveInfo.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/55_System.IO.FileSystem.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/56_System.IO.FileSystem.Watcher.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/57_System.IO.IsolatedStorage.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/58_System.IO.MemoryMappedFiles.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/59_System.IO.Pipelines.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/5_Microsoft.Win32.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/60_System.IO.Pipes.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/61_System.IO.Pipes.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/62_System.IO.UnmanagedMemoryStream.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/63_System.Linq.AsyncEnumerable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/64_System.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/65_System.Linq.Expressions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/66_System.Linq.Parallel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/67_System.Linq.Queryable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/68_System.Memory.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/69_System.Net.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/6_Microsoft.Win32.Registry.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/70_System.Net.Http.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/71_System.Net.Http.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/72_System.Net.HttpListener.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/73_System.Net.Mail.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/74_System.Net.NameResolution.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/75_System.Net.NetworkInformation.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/76_System.Net.Ping.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/77_System.Net.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/78_System.Net.Quic.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/79_System.Net.Requests.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/7_mscorlib.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/80_System.Net.Security.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/81_System.Net.ServerSentEvents.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/82_System.Net.ServicePoint.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/83_System.Net.Sockets.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/84_System.Net.WebClient.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/85_System.Net.WebHeaderCollection.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/86_System.Net.WebProxy.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/87_System.Net.WebSockets.Client.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/88_System.Net.WebSockets.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/89_System.Numerics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/8_netstandard.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/90_System.Numerics.Vectors.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/91_System.ObjectModel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/92_System.Private.CoreLib.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/93_System.Private.DataContractSerialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/94_System.Private.Uri.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/95_System.Private.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/96_System.Private.Xml.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/97_System.Reflection.DispatchProxy.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/98_System.Reflection.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/99_System.Reflection.Emit.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/9_System.AppContext.dll +0 -0
- package/workers/vendor/csharp/_framework/tr/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/tr/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hans/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hant/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/main.mjs +5 -0
- package/workers/vendor/csharp/package.json +1 -0
- package/workers/vendor/java-browser-helper.jar +0 -0
- package/workers/vendor/java-rewriter.jar +0 -0
- package/workers/vendor/javascript-libraries.js +10106 -0
- package/dist/runtime-types-89nchXlY.d.cts +0 -89
- package/dist/runtime-types-CCQ-ZLc9.d.ts +0 -89
- package/dist/types-zyvpJKCi.d.cts +0 -100
- package/dist/types-zyvpJKCi.d.ts +0 -100
- package/workers/java/java-source-augmentations.cjs +0 -242
- package/workers/java/src/spike/user/TraceHooks.java +0 -619
- package/workers/vendor/java-browser-spike-helper.jar +0 -0
- package/workers/vendor/java-practice-rewriter.jar +0 -0
- package/workers/vendor/java-rewrite-bridge.jar +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/harness-browser/src/internal.ts","../../packages/harness-browser/src/pyodide-worker-client.ts","../../packages/harness-browser/src/javascript-worker-client.ts","../../packages/harness-browser/src/java-worker-client.ts"],"sourcesContent":["export * from './pyodide-worker-client';\nexport * from './javascript-worker-client';\nexport * from './java-worker-client';\n","/**\n * Pyodide Worker Client\n * \n * TypeScript client for communicating with the Pyodide Web Worker.\n * Provides a promise-based API for executing Python code off the main thread.\n */\n\nimport type { CodeExecutionResult, ExecutionResult } from '../../harness-core/src/types';\n\ntype MessageId = string;\nexport type ExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface PyodideWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof globalThis.setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n}\n\ninterface StatusResult {\n isReady: boolean;\n isLoading: boolean;\n}\n\n// Execution timeout in milliseconds for simple code execution (10 seconds)\nconst EXECUTION_TIMEOUT_MS = 10000;\n\n// Interview mode timeout - shorter, no detailed error info (5 seconds)\nconst INTERVIEW_MODE_TIMEOUT_MS = 5000;\n\n// Tracing timeout - longer because Python heuristic detection handles infinite loops\n// This is just a safety net for truly stuck executions\nconst TRACING_TIMEOUT_MS = 30000;\n\n// Initial Pyodide load timeout can be significantly higher on first boot/network-constrained setups\nconst INIT_TIMEOUT_MS = 120000;\n\n// Message timeout for non-execution operations (20 seconds)\nconst MESSAGE_TIMEOUT_MS = 20000;\n// Worker bootstrap timeout - prevents deadlock when worker never emits \"worker-ready\"\nconst WORKER_READY_TIMEOUT_MS = 10000;\n\nexport class PyodideWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: PyodideWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n /**\n * Check if Web Workers are supported\n */\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n /**\n * Get or create the worker instance\n */\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n // Create promise that resolves when worker signals it's ready\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n this.worker = new Worker(workerUrl);\n \n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n // Handle worker-ready signal\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n if (this.debug) console.log('[PyodideWorkerClient] worker-ready');\n return;\n }\n\n if (this.debug && !id) {\n console.log('[PyodideWorkerClient] event', { type, payload });\n }\n\n // Handle responses to our messages\n if (id) {\n const pending = this.pendingMessages.get(id);\n if (pending) {\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n \n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n } else {\n if (this.debug) console.log('[PyodideWorkerClient] recv', { id, type });\n pending.resolve(payload);\n }\n }\n }\n };\n\n this.worker.onerror = (error) => {\n console.error('[PyodideWorkerClient] Worker error:', error);\n const workerError = new Error('Worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n // Reject all pending messages and clear their timeouts\n for (const [id, pending] of this.pendingMessages) {\n if (pending.timeoutId) {\n globalThis.clearTimeout(pending.timeoutId);\n }\n pending.reject(workerError);\n this.pendingMessages.delete(id);\n }\n };\n\n return this.worker;\n }\n\n /**\n * Wait for worker bootstrap signal with timeout.\n * Guards against deadlocks when the worker script fails before posting \"worker-ready\".\n */\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `Python worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n if (this.debug) {\n console.warn('[PyodideWorkerClient] worker-ready timeout', { timeoutMs: WORKER_READY_TIMEOUT_MS });\n }\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n /**\n * Send a message to the worker and wait for a response\n */\n private async sendMessage<T>(type: string, payload?: unknown, timeoutMs: number = MESSAGE_TIMEOUT_MS): Promise<T> {\n const worker = this.getWorker();\n \n // Wait for worker to be ready before sending messages\n await this.waitForWorkerReady();\n \n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n if (this.debug) console.log('[PyodideWorkerClient] send', { id, type });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n if (this.debug) console.warn('[PyodideWorkerClient] timeout', { id, type });\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n /**\n * Execute code with a timeout - terminates worker if execution takes too long\n */\n private async executeWithTimeout<T>(\n executor: () => Promise<T>,\n timeoutMs: number = EXECUTION_TIMEOUT_MS\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n \n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n \n // Terminate the stuck worker and clear state\n if (this.debug) {\n console.warn('[PyodideWorkerClient] Execution timeout - terminating worker');\n }\n this.terminateAndReset();\n \n const seconds = Math.round(timeoutMs / 1000);\n reject(new Error(`Execution timed out (possible infinite loop). Code execution was stopped after ${seconds} seconds.`));\n }, timeoutMs);\n \n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n /**\n * Terminate the worker and reset state for recreation\n */\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n \n // Reject all pending messages\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n /**\n * Initialize Pyodide in the worker\n */\n async init(): Promise<InitResult> {\n // Return existing promise if already initializing\n if (this.initPromise) {\n return this.initPromise;\n }\n\n if (this.isInitializing) {\n // Wait for existing init to complete\n await new Promise((resolve) => setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n\n this.initPromise = (async () => {\n try {\n return await this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n\n const shouldRetry =\n message.includes('Worker request timed out: init') ||\n message.includes('Worker was terminated') ||\n message.includes('Worker error') ||\n message.includes('failed to initialize in time');\n\n if (!shouldRetry) {\n throw error;\n }\n\n if (this.debug) {\n console.warn('[PyodideWorkerClient] init failed, resetting worker and retrying once', { message });\n }\n\n this.terminateAndReset();\n return this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n }\n })();\n \n try {\n const result = await this.initPromise;\n return result;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n /**\n * Execute Python code with tracing for step-by-step visualization\n * @param options.maxLineEvents - Max line events before abort (for complexity analysis, use higher values)\n */\n async executeWithTracing(\n code: string,\n functionName: string | null,\n inputs: Record<string, unknown>,\n options?: {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n },\n executionStyle: ExecutionStyle = 'function'\n ): Promise<ExecutionResult> {\n // Ensure Pyodide is initialized\n await this.init();\n \n // Use longer timeout for tracing - Python heuristic detection handles infinite loops\n try {\n return await this.executeWithTimeout(\n () => this.sendMessage<ExecutionResult>('execute-with-tracing', {\n code,\n functionName,\n inputs,\n executionStyle,\n options,\n }, TRACING_TIMEOUT_MS + 5000), // Message timeout slightly longer than execution timeout\n TRACING_TIMEOUT_MS\n );\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n const isClientTimeout =\n errorMessage.includes('Execution timed out') ||\n errorMessage.includes('possible infinite loop');\n\n if (isClientTimeout) {\n return {\n success: false,\n error: errorMessage,\n trace: [],\n executionTimeMs: TRACING_TIMEOUT_MS,\n consoleOutput: [],\n traceLimitExceeded: true,\n timeoutReason: 'client-timeout',\n lineEventCount: 0,\n traceStepCount: 0,\n };\n }\n\n throw error;\n }\n }\n\n /**\n * Execute Python code without tracing (for running tests)\n */\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: ExecutionStyle = 'function'\n ): Promise<CodeExecutionResult> {\n // Ensure Pyodide is initialized\n await this.init();\n \n return this.executeWithTimeout(\n () => this.sendMessage<CodeExecutionResult>('execute-code', {\n code,\n functionName,\n inputs,\n executionStyle,\n }, EXECUTION_TIMEOUT_MS + 5000),\n EXECUTION_TIMEOUT_MS\n );\n }\n\n /**\n * Execute Python code in interview mode - 5 second timeout, generic error messages\n * Does not reveal which line caused the timeout\n */\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: ExecutionStyle = 'function'\n ): Promise<CodeExecutionResult> {\n // Ensure Pyodide is initialized\n await this.init();\n \n try {\n const result = await this.executeWithTimeout(\n () => this.sendMessage<CodeExecutionResult>('execute-code-interview', {\n code,\n functionName,\n inputs,\n executionStyle,\n }, INTERVIEW_MODE_TIMEOUT_MS + 2000),\n INTERVIEW_MODE_TIMEOUT_MS\n );\n \n // Sanitize error messages in interview mode - don't reveal line numbers for timeouts\n if (!result.success && result.error) {\n // Keep basic error types but remove line-specific info for timeouts\n const normalizedError = result.error.toLowerCase();\n const isTimeoutOrResourceLimit =\n normalizedError.includes('timed out') ||\n normalizedError.includes('execution timeout') ||\n normalizedError.includes('infinite loop') ||\n normalizedError.includes('interview_guard_triggered') ||\n normalizedError.includes('memory-limit') ||\n normalizedError.includes('line-limit') ||\n normalizedError.includes('single-line-limit') ||\n normalizedError.includes('recursion-limit');\n\n if (isTimeoutOrResourceLimit) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: result.consoleOutput ?? [],\n };\n }\n }\n \n return result;\n } catch (error) {\n // Handle timeout from executeWithTimeout\n const errorMsg = error instanceof Error ? error.message : String(error);\n if (errorMsg.includes('timed out') || errorMsg.includes('Execution timeout')) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: [],\n };\n }\n return {\n success: false,\n output: null,\n error: errorMsg,\n consoleOutput: [],\n };\n }\n }\n\n /**\n * Check the status of the worker\n */\n async getStatus(): Promise<StatusResult> {\n return this.sendMessage<StatusResult>('status');\n }\n\n /**\n * Analyze Python code using AST (off main thread)\n * Returns CodeFacts with semantic information about the code\n */\n async analyzeCode(code: string): Promise<unknown> {\n // Ensure Pyodide is initialized\n await this.init();\n \n // Use a shorter timeout for analysis (5 seconds should be plenty)\n return this.sendMessage<unknown>('analyze-code', { code }, 5000);\n }\n\n /**\n * Terminate the worker and clean up resources\n */\n terminate(): void {\n this.terminateAndReset();\n }\n}\n\n/**\n * Check if the worker client is supported\n */\nexport function isWorkerSupported(): boolean {\n return typeof Worker !== 'undefined';\n}\n","import type { CodeExecutionResult, ExecutionResult } from '../../harness-core/src/types';\n\ntype MessageId = string;\nexport type JavaScriptExecutionStyle = 'function' | 'solution-method' | 'ops-class';\nexport type JavaScriptWorkerLanguage = 'javascript' | 'typescript';\n\nexport interface JavaScriptWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n}\n\nconst EXECUTION_TIMEOUT_MS = 7000;\nconst INTERVIEW_MODE_TIMEOUT_MS = 5000;\nconst TRACING_TIMEOUT_MS = 7000;\nconst INIT_TIMEOUT_MS = 10000;\nconst MESSAGE_TIMEOUT_MS = 12000;\nconst WORKER_READY_TIMEOUT_MS = 10000;\n\nexport class JavaScriptWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: JavaScriptWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n this.worker = new Worker(workerUrl);\n\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n if (this.debug) console.log('[JavaScriptWorkerClient] worker-ready');\n return;\n }\n\n if (id) {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n }\n };\n\n this.worker.onerror = (error) => {\n console.error('[JavaScriptWorkerClient] Worker error:', error);\n const workerError = new Error('Worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [id, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(workerError);\n this.pendingMessages.delete(id);\n }\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `JavaScript worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs: number = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(executor: () => Promise<T>, timeoutMs: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n this.terminateAndReset();\n reject(\n new Error(\n `Execution timed out (possible infinite loop). Code execution was stopped after ${Math.round(timeoutMs / 1000)} seconds.`\n )\n );\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n\n if (this.isInitializing) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n this.initPromise = this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n async executeWithTracing(\n code: string,\n functionName: string | null,\n inputs: Record<string, unknown>,\n options?: {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n },\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<ExecutionResult> {\n await this.init();\n return this.executeWithTimeout(\n () =>\n this.sendMessage<ExecutionResult>(\n 'execute-with-tracing',\n {\n code,\n functionName,\n inputs,\n options,\n executionStyle,\n language,\n },\n TRACING_TIMEOUT_MS + 2000\n ),\n TRACING_TIMEOUT_MS\n );\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<CodeExecutionResult> {\n await this.init();\n return this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'execute-code',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n language,\n },\n EXECUTION_TIMEOUT_MS + 2000\n ),\n EXECUTION_TIMEOUT_MS\n );\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<CodeExecutionResult> {\n await this.init();\n\n try {\n const result = await this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'execute-code-interview',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n language,\n },\n INTERVIEW_MODE_TIMEOUT_MS + 2000\n ),\n INTERVIEW_MODE_TIMEOUT_MS\n );\n\n if (!result.success && result.error) {\n const normalized = result.error.toLowerCase();\n const isTimeoutOrResourceLimit =\n normalized.includes('timed out') ||\n normalized.includes('infinite loop') ||\n normalized.includes('line-limit') ||\n normalized.includes('single-line-limit') ||\n normalized.includes('recursion-limit') ||\n normalized.includes('trace-limit') ||\n normalized.includes('line events') ||\n normalized.includes('trace steps') ||\n normalized.includes('call depth');\n if (isTimeoutOrResourceLimit) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: result.consoleOutput ?? [],\n };\n }\n }\n\n return result;\n } catch {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: [],\n };\n }\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n\nexport function isJavaScriptWorkerSupported(): boolean {\n return typeof Worker !== 'undefined';\n}\n","import type { CodeExecutionResult, ExecutionResult } from '../../harness-core/src/types';\n\ntype MessageId = string;\nexport type JavaExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface JavaWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n}\n\nexport interface JavaWorkerTraceResult {\n success: boolean;\n output?: unknown;\n events: string[];\n sourceText?: string;\n executionTimeMs: number;\n error?: string;\n errorLine?: number;\n consoleOutput: string[];\n traceLimitExceeded?: boolean;\n timeoutReason?: 'trace-limit';\n droppedEventCount?: number;\n}\n\nexport interface JavaTraceExecutionOptions {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n}\n\nconst EXECUTION_TIMEOUT_MS = 20_000;\nconst TRACING_TIMEOUT_MS = 25_000;\nconst INIT_TIMEOUT_MS = 25_000;\nconst MESSAGE_TIMEOUT_MS = 30_000;\nconst WORKER_READY_TIMEOUT_MS = 10_000;\n\nexport class JavaWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: JavaWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n\n this.worker = new Worker(workerUrl);\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n return;\n }\n\n if (!id) return;\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n };\n\n this.worker.onerror = (error) => {\n const workerError = new Error(error.message || 'Java worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(workerError);\n }\n this.pendingMessages.clear();\n this.terminateAndReset(workerError);\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `Java worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(executor: () => Promise<T>, timeoutMs: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n this.terminateAndReset();\n reject(\n new Error(\n `Java execution timed out after ${Math.round(timeoutMs / 1000)} seconds.`\n )\n );\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n if (this.isInitializing) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n this.initPromise = this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n async executeWithTracing(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<JavaWorkerTraceResult> {\n await this.init();\n return this.executeWithTimeout(\n () =>\n this.sendMessage<JavaWorkerTraceResult>(\n 'execute-with-tracing',\n { code, functionName, inputs, options, executionStyle },\n TRACING_TIMEOUT_MS + 5_000\n ),\n TRACING_TIMEOUT_MS\n );\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<CodeExecutionResult> {\n const result = await this.executeWithTracing(code, functionName, inputs, options, executionStyle);\n if (!result.success) {\n return {\n success: false,\n output: null,\n error: result.error ?? 'Java execution failed',\n ...(result.errorLine !== undefined ? { errorLine: result.errorLine } : {}),\n consoleOutput: result.consoleOutput,\n };\n }\n return {\n success: true,\n output: result.output,\n consoleOutput: result.consoleOutput,\n };\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<CodeExecutionResult> {\n return this.executeCode(code, functionName, inputs, options, executionStyle);\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n"],"mappings":"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","names":["pending","EXECUTION_TIMEOUT_MS","INTERVIEW_MODE_TIMEOUT_MS","TRACING_TIMEOUT_MS","INIT_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending","TRACING_TIMEOUT_MS","INIT_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending"]}
|
|
1
|
+
{"version":3,"sources":["../../packages/harness-browser/src/internal.ts","../../packages/harness-core/src/runtime-trace.ts","../../packages/harness-browser/src/runtime-diagnostics.ts","../../packages/harness-browser/src/pyodide-worker-client.ts","../../packages/harness-browser/src/javascript-worker-client.ts","../../packages/harness-core/src/runtime-raw-emission-contract.ts","../../packages/harness-core/src/trace-adapters/java.ts","../../packages/harness-browser/src/java-worker-client.ts","../../packages/harness-browser/src/csharp-worker-client.ts","../../packages/harness-browser/src/cpp-worker-client.ts"],"sourcesContent":["export * from './pyodide-worker-client';\nexport * from './javascript-worker-client';\nexport * from './java-worker-client';\nexport * from './csharp-worker-client';\nexport * from './cpp-worker-client';\n","import type { Language } from './runtime-types';\n\nexport const RUNTIME_TRACE_SCHEMA_VERSION = 'runtime-trace-2026-04-28';\n\nexport type RuntimeTraceEventKind =\n | 'line'\n | 'call'\n | 'return'\n | 'read'\n | 'write'\n | 'mutate'\n | 'snapshot'\n | 'stdout'\n | 'exception'\n | 'timeout';\n\nexport type RuntimeTraceTarget =\n | { variable: string; scope?: 'local' | 'global' | 'builtin' | 'receiver' }\n | {\n variable: string;\n path: Array<string | number>;\n indexSources?: Array<string | null>;\n scope?: 'local' | 'global' | 'builtin' | 'receiver';\n }\n | { objectId: string; path?: Array<string | number>; indexSources?: Array<string | null> };\n\nexport interface RuntimeTraceCallFrame {\n function: string;\n line?: number;\n args?: Record<string, unknown> | unknown[];\n}\n\ninterface RuntimeTraceBaseEvent {\n kind: RuntimeTraceEventKind;\n runId: string;\n file?: string;\n line?: number;\n column?: number;\n frameId?: string;\n callStack?: RuntimeTraceCallFrame[];\n}\n\nexport type RuntimeTraceEvent =\n | (RuntimeTraceBaseEvent & { kind: 'line'; line: number; function?: string })\n | (RuntimeTraceBaseEvent & { kind: 'call'; line: number; function: string; args?: Record<string, unknown> | unknown[] })\n | (RuntimeTraceBaseEvent & { kind: 'return'; line: number; function?: string; value?: unknown })\n | (RuntimeTraceBaseEvent & {\n kind: 'read' | 'write';\n line: number;\n target: RuntimeTraceTarget;\n value?: unknown;\n binding?: RuntimeTraceIterationBinding;\n })\n | (RuntimeTraceBaseEvent & { kind: 'mutate'; line: number; target: RuntimeTraceTarget; method?: string; args?: unknown[] })\n | (RuntimeTraceBaseEvent & { kind: 'snapshot'; line: number; target: RuntimeTraceTarget; value: unknown })\n | (RuntimeTraceBaseEvent & { kind: 'stdout'; text: string })\n | (RuntimeTraceBaseEvent & { kind: 'exception'; message: string })\n | (RuntimeTraceBaseEvent & {\n kind: 'timeout';\n message: string;\n reason?: 'trace-limit' | 'line-limit' | 'single-line-limit' | 'client-timeout';\n });\n\nexport interface RuntimeTrace {\n schemaVersion: typeof RUNTIME_TRACE_SCHEMA_VERSION;\n language: Language;\n runId: string;\n events: RuntimeTraceEvent[];\n lineEventCount: number;\n traceStepCount: number;\n}\n\nexport interface RuntimeTraceIterationBinding {\n kind?: 'iteration';\n variable: string;\n}\n\nexport interface RuntimeTraceOptions {\n runId?: string;\n file?: string;\n}\n\nexport function createEmptyRuntimeTrace(\n language: Language,\n options: RuntimeTraceOptions = {}\n): RuntimeTrace {\n return {\n schemaVersion: RUNTIME_TRACE_SCHEMA_VERSION,\n language,\n runId: options.runId ?? `${language}:run`,\n events: [],\n lineEventCount: 0,\n traceStepCount: 0,\n };\n}\n\nexport interface RuntimeTraceParityAccessTarget {\n kind: 'read' | 'write' | 'mutate';\n variable?: string;\n pathDepth?: number;\n}\n\nexport interface RuntimeTraceParitySignature {\n lineSequence: number[];\n eventKindsByLine: Record<number, RuntimeTraceEventKind[]>;\n variableSnapshotsByLine: Record<number, string[]>;\n accessTargetsByLine: Record<number, RuntimeTraceParityAccessTarget[]>;\n callReturnShape: Array<'call' | 'return'>;\n}\n\nfunction sortedUnique(values: string[]): string[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction sortedUniqueEventKinds(values: RuntimeTraceEventKind[]): RuntimeTraceEventKind[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nexport function withRuntimeTraceOptions(\n trace: RuntimeTrace,\n options: RuntimeTraceOptions = {}\n): RuntimeTrace {\n const runId = options.runId ?? trace.runId;\n return {\n ...trace,\n runId,\n events: trace.events.map((event) => ({\n ...event,\n runId,\n ...(options.file ? { file: options.file } : {}),\n })),\n };\n}\n\nexport function buildRuntimeTraceParitySignature(trace: RuntimeTrace): RuntimeTraceParitySignature {\n const lineSequence: number[] = [];\n const eventKindsByLine = new Map<number, RuntimeTraceEventKind[]>();\n const variableSnapshotsByLine = new Map<number, string[]>();\n const accessTargetsByLine = new Map<number, RuntimeTraceParityAccessTarget[]>();\n const callReturnShape: Array<'call' | 'return'> = [];\n\n for (const event of trace.events) {\n if (event.kind === 'line' && typeof event.line === 'number') {\n lineSequence.push(event.line);\n }\n\n if (event.kind === 'call' || event.kind === 'return') {\n callReturnShape.push(event.kind);\n }\n\n if (typeof event.line === 'number') {\n const kinds = eventKindsByLine.get(event.line) ?? [];\n kinds.push(event.kind);\n eventKindsByLine.set(event.line, kinds);\n }\n\n if (event.kind === 'snapshot' && 'variable' in event.target && typeof event.line === 'number') {\n const variables = variableSnapshotsByLine.get(event.line) ?? [];\n variables.push(event.target.variable);\n variableSnapshotsByLine.set(event.line, variables);\n }\n\n if (\n (event.kind === 'read' || event.kind === 'write' || event.kind === 'mutate') &&\n 'variable' in event.target &&\n typeof event.line === 'number'\n ) {\n const accesses = accessTargetsByLine.get(event.line) ?? [];\n accesses.push({\n kind: event.kind,\n variable: event.target.variable,\n pathDepth: 'path' in event.target && Array.isArray(event.target.path)\n ? event.target.path.length\n : undefined,\n });\n accessTargetsByLine.set(event.line, accesses);\n }\n }\n\n return {\n lineSequence,\n eventKindsByLine: Object.fromEntries(\n [...eventKindsByLine.entries()].map(([line, kinds]) => [\n line,\n sortedUniqueEventKinds(kinds),\n ])\n ),\n variableSnapshotsByLine: Object.fromEntries(\n [...variableSnapshotsByLine.entries()].map(([line, variables]) => [\n line,\n sortedUnique(variables),\n ])\n ),\n accessTargetsByLine: Object.fromEntries(\n [...accessTargetsByLine.entries()].map(([line, accesses]) => [\n line,\n accesses.sort((left, right) => {\n const leftKey = `${left.kind}:${left.variable ?? ''}:${left.pathDepth ?? 0}`;\n const rightKey = `${right.kind}:${right.variable ?? ''}:${right.pathDepth ?? 0}`;\n return leftKey.localeCompare(rightKey);\n }),\n ])\n ),\n callReturnShape,\n };\n}\n","export type RuntimeDiagnosticLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport interface RuntimeDiagnosticEvent {\n schema: 'tracecode.runtime-diagnostic.v1';\n source: 'harness';\n component: string;\n runtime?: string;\n phase: string;\n message: string;\n detail?: unknown;\n}\n\nconst CONSOLE_METHOD_BY_LEVEL: Record<RuntimeDiagnosticLevel, 'debug' | 'info' | 'warn' | 'error'> = {\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n\nexport function runtimeDiagnosticEvent(params: Omit<RuntimeDiagnosticEvent, 'schema' | 'source'>): RuntimeDiagnosticEvent {\n return {\n schema: 'tracecode.runtime-diagnostic.v1',\n source: 'harness',\n ...params,\n };\n}\n\nexport function logRuntimeDiagnostic(\n level: RuntimeDiagnosticLevel,\n params: Omit<RuntimeDiagnosticEvent, 'schema' | 'source'>,\n options: { enabled?: boolean } = {}\n): void {\n if (options.enabled === false && level !== 'error') {\n return;\n }\n\n const method = CONSOLE_METHOD_BY_LEVEL[level] ?? 'info';\n console[method]('[TraceRuntime]', runtimeDiagnosticEvent(params));\n}\n","/**\n * Python Worker Client\n * \n * TypeScript client for communicating with the Python Web Worker.\n * Provides a promise-based API for executing Python code off the main thread.\n */\n\nimport type { CodeExecutionResult, ExecutionResult } from '../../harness-core/src/types';\nimport { createEmptyRuntimeTrace } from '../../harness-core/src/runtime-trace';\nimport { logRuntimeDiagnostic } from './runtime-diagnostics';\n\ntype MessageId = string;\nexport type ExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface PythonWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof globalThis.setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n}\n\ninterface WarmupResult {\n success: boolean;\n loadTimeMs: number;\n}\n\ninterface StatusResult {\n isReady: boolean;\n isLoading: boolean;\n}\n\n// Execution timeout in milliseconds for simple code execution (10 seconds)\nconst EXECUTION_TIMEOUT_MS = 10000;\n\n// Interview mode timeout - shorter, no detailed error info (5 seconds)\nconst INTERVIEW_MODE_TIMEOUT_MS = 5000;\n\n// Tracing timeout - longer because Python heuristic detection handles infinite loops\n// This is just a safety net for truly stuck executions\nconst TRACING_TIMEOUT_MS = 30000;\n\n// Python runtime warmup/load timeout can be significantly higher on first boot/network-constrained setups\nconst INIT_TIMEOUT_MS = 120000;\n\n// Message timeout for non-execution operations (20 seconds)\nconst MESSAGE_TIMEOUT_MS = 20000;\n// Worker bootstrap timeout - prevents deadlock when worker never emits \"worker-ready\"\nconst WORKER_READY_TIMEOUT_MS = 10000;\n\nexport class PythonWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private warmupPromise: Promise<WarmupResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: PythonWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n /**\n * Check if Web Workers are supported\n */\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n /**\n * Get or create the worker instance\n */\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n // Create promise that resolves when worker signals it's ready\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n this.worker = new Worker(workerUrl);\n \n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n // Handle worker-ready signal\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n logRuntimeDiagnostic('info', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-ready',\n message: 'Python worker is ready.',\n }, { enabled: this.debug });\n return;\n }\n\n if (this.debug && !id) {\n logRuntimeDiagnostic('debug', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-event',\n message: 'Python worker emitted an unsolicited event.',\n detail: { type, payload },\n }, { enabled: this.debug });\n }\n\n // Handle responses to our messages\n if (id) {\n const pending = this.pendingMessages.get(id);\n if (pending) {\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n \n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n } else {\n logRuntimeDiagnostic('debug', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-response',\n message: 'Python worker response received.',\n detail: { id, type },\n }, { enabled: this.debug });\n pending.resolve(payload);\n }\n }\n }\n };\n\n this.worker.onerror = (error) => {\n logRuntimeDiagnostic('error', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-error',\n message: 'Python worker emitted an error event.',\n detail: {\n message: error.message,\n filename: error.filename,\n lineno: error.lineno,\n colno: error.colno,\n },\n });\n const workerError = new Error('Worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n // Reject all pending messages and clear their timeouts\n for (const [id, pending] of this.pendingMessages) {\n if (pending.timeoutId) {\n globalThis.clearTimeout(pending.timeoutId);\n }\n pending.reject(workerError);\n this.pendingMessages.delete(id);\n }\n };\n\n return this.worker;\n }\n\n /**\n * Wait for worker bootstrap signal with timeout.\n * Guards against deadlocks when the worker script fails before posting \"worker-ready\".\n */\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `Python worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n logRuntimeDiagnostic('warn', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-ready-timeout',\n message: 'Python worker did not send worker-ready before the timeout.',\n detail: { timeoutMs: WORKER_READY_TIMEOUT_MS },\n }, { enabled: this.debug });\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n /**\n * Send a message to the worker and wait for a response\n */\n private async sendMessage<T>(type: string, payload?: unknown, timeoutMs: number = MESSAGE_TIMEOUT_MS): Promise<T> {\n const worker = this.getWorker();\n \n // Wait for worker to be ready before sending messages\n await this.waitForWorkerReady();\n \n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n logRuntimeDiagnostic('debug', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-request',\n message: 'Sending request to Python worker.',\n detail: { id, type },\n }, { enabled: this.debug });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n logRuntimeDiagnostic('warn', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'worker-request-timeout',\n message: 'Python worker request timed out.',\n detail: { id, type, timeoutMs },\n }, { enabled: this.debug });\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n /**\n * Execute code with a timeout - terminates worker if execution takes too long\n */\n private async executeWithTimeout<T>(\n executor: () => Promise<T>,\n timeoutMs: number = EXECUTION_TIMEOUT_MS\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n \n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n \n // Terminate the stuck worker and clear state\n logRuntimeDiagnostic('warn', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'execution-timeout',\n message: 'Python execution timed out; terminating worker.',\n detail: { timeoutMs },\n }, { enabled: this.debug });\n this.terminateAndReset();\n \n const seconds = Math.round(timeoutMs / 1000);\n reject(new Error(`Execution timed out (possible infinite loop). Code execution was stopped after ${seconds} seconds.`));\n }, timeoutMs);\n \n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n /**\n * Terminate the worker and reset state for recreation\n */\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.warmupPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n \n // Reject all pending messages\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n /**\n * Initialize the Python worker. Runtime loading is lazy unless warmup() is called.\n */\n async init(): Promise<InitResult> {\n // Return existing promise if already initializing\n if (this.initPromise) {\n return this.initPromise;\n }\n\n if (this.isInitializing) {\n // Wait for existing init to complete\n await new Promise((resolve) => setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n\n this.initPromise = (async () => {\n try {\n return await this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n\n const shouldRetry =\n message.includes('Worker request timed out: init') ||\n message.includes('Worker was terminated') ||\n message.includes('Worker error') ||\n message.includes('failed to initialize in time');\n\n if (!shouldRetry) {\n throw error;\n }\n\n logRuntimeDiagnostic('warn', {\n component: 'PythonWorkerClient',\n runtime: 'python',\n phase: 'init-retry',\n message: 'Python worker init failed; resetting worker and retrying once.',\n detail: { message },\n }, { enabled: this.debug });\n\n this.terminateAndReset();\n return this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n }\n })();\n \n try {\n const result = await this.initPromise;\n return result;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n async warmup(): Promise<WarmupResult> {\n if (this.warmupPromise) return this.warmupPromise;\n\n this.warmupPromise = (async () => {\n try {\n await this.init();\n return await this.sendMessage<WarmupResult>('warmup', undefined, INIT_TIMEOUT_MS);\n } catch (error) {\n this.warmupPromise = null;\n throw error;\n }\n })();\n\n return this.warmupPromise;\n }\n\n /**\n * Execute Python code with tracing for step-by-step visualization\n * @param options.maxLineEvents - Max line events before abort (for complexity analysis, use higher values)\n */\n async executeWithTracing(\n code: string,\n functionName: string | null,\n inputs: Record<string, unknown>,\n options?: {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n },\n executionStyle: ExecutionStyle = 'function'\n ): Promise<ExecutionResult> {\n // Ensure the Python worker is initialized. Runtime loading is handled inside the worker.\n await this.init();\n \n // Use longer timeout for tracing - Python heuristic detection handles infinite loops\n try {\n return await this.executeWithTimeout(\n () => this.sendMessage<ExecutionResult>('execute-with-tracing', {\n code,\n functionName,\n inputs,\n executionStyle,\n options,\n }, TRACING_TIMEOUT_MS + 5000), // Message timeout slightly longer than execution timeout\n TRACING_TIMEOUT_MS\n );\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n const isClientTimeout =\n errorMessage.includes('Execution timed out') ||\n errorMessage.includes('possible infinite loop');\n\n if (isClientTimeout) {\n return {\n success: false,\n error: errorMessage,\n trace: createEmptyRuntimeTrace('python', { runId: 'python:run', file: 'solution.py' }),\n executionTimeMs: TRACING_TIMEOUT_MS,\n consoleOutput: [],\n traceLimitExceeded: true,\n timeoutReason: 'client-timeout',\n lineEventCount: 0,\n traceStepCount: 0,\n };\n }\n\n throw error;\n }\n }\n\n /**\n * Execute Python code without tracing (for running tests)\n */\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: ExecutionStyle = 'function'\n ): Promise<CodeExecutionResult> {\n // Ensure the Python worker is initialized. Runtime loading is handled inside the worker.\n await this.init();\n \n return this.executeWithTimeout(\n () => this.sendMessage<CodeExecutionResult>('execute-code', {\n code,\n functionName,\n inputs,\n executionStyle,\n }, EXECUTION_TIMEOUT_MS + 5000),\n EXECUTION_TIMEOUT_MS\n );\n }\n\n /**\n * Execute Python code in interview mode - 5 second timeout, generic error messages\n * Does not reveal which line caused the timeout\n */\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: ExecutionStyle = 'function'\n ): Promise<CodeExecutionResult> {\n // Ensure the Python worker is initialized. Runtime loading is handled inside the worker.\n await this.init();\n \n try {\n const result = await this.executeWithTimeout(\n () => this.sendMessage<CodeExecutionResult>('execute-code-interview', {\n code,\n functionName,\n inputs,\n executionStyle,\n }, INTERVIEW_MODE_TIMEOUT_MS + 2000),\n INTERVIEW_MODE_TIMEOUT_MS\n );\n \n // Sanitize error messages in interview mode - don't reveal line numbers for timeouts\n if (!result.success && result.error) {\n // Keep basic error types but remove line-specific info for timeouts\n const normalizedError = result.error.toLowerCase();\n const isTimeoutOrResourceLimit =\n normalizedError.includes('timed out') ||\n normalizedError.includes('execution timeout') ||\n normalizedError.includes('infinite loop') ||\n normalizedError.includes('interview_guard_triggered') ||\n normalizedError.includes('memory-limit') ||\n normalizedError.includes('line-limit') ||\n normalizedError.includes('single-line-limit') ||\n normalizedError.includes('recursion-limit');\n\n if (isTimeoutOrResourceLimit) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: result.consoleOutput ?? [],\n };\n }\n }\n \n return result;\n } catch (error) {\n // Handle timeout from executeWithTimeout\n const errorMsg = error instanceof Error ? error.message : String(error);\n if (errorMsg.includes('timed out') || errorMsg.includes('Execution timeout')) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: [],\n };\n }\n return {\n success: false,\n output: null,\n error: errorMsg,\n consoleOutput: [],\n };\n }\n }\n\n /**\n * Check the status of the worker\n */\n async getStatus(): Promise<StatusResult> {\n return this.sendMessage<StatusResult>('status');\n }\n\n /**\n * Analyze Python code using AST (off main thread)\n * Returns CodeFacts with semantic information about the code\n */\n async analyzeCode(code: string): Promise<unknown> {\n // Ensure the Python worker is initialized. Runtime loading is handled inside the worker.\n await this.init();\n \n // Use a shorter timeout for analysis (5 seconds should be plenty)\n return this.sendMessage<unknown>('analyze-code', { code }, 5000);\n }\n\n /**\n * Terminate the worker and clean up resources\n */\n terminate(): void {\n this.terminateAndReset();\n }\n}\n\nexport type PyodideWorkerClientOptions = PythonWorkerClientOptions;\nexport { PythonWorkerClient as PyodideWorkerClient };\n\n/**\n * Check if the worker client is supported\n */\nexport function isWorkerSupported(): boolean {\n return typeof Worker !== 'undefined';\n}\n","import type { CodeExecutionResult, ExecutionResult } from '../../harness-core/src/types';\nimport { logRuntimeDiagnostic } from './runtime-diagnostics';\n\ntype MessageId = string;\nexport type JavaScriptExecutionStyle = 'function' | 'solution-method' | 'ops-class';\nexport type JavaScriptWorkerLanguage = 'javascript' | 'typescript';\n\nexport interface JavaScriptWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n}\n\ninterface WarmupResult {\n success: boolean;\n loadTimeMs: number;\n}\n\nconst EXECUTION_TIMEOUT_MS = 20000;\nconst INTERVIEW_MODE_TIMEOUT_MS = 5000;\nconst TRACING_TIMEOUT_MS = 20000;\nconst INIT_TIMEOUT_MS = 10000;\nconst TYPESCRIPT_WARMUP_TIMEOUT_MS = 30000;\nconst MESSAGE_TIMEOUT_MS = 12000;\nconst WORKER_READY_TIMEOUT_MS = 10000;\n\nexport class JavaScriptWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private warmupPromises = new Map<JavaScriptWorkerLanguage, Promise<WarmupResult>>();\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: JavaScriptWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n this.worker = new Worker(workerUrl);\n\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n logRuntimeDiagnostic('info', {\n component: 'JavaScriptWorkerClient',\n runtime: 'javascript',\n phase: 'worker-ready',\n message: 'JavaScript worker is ready.',\n }, { enabled: this.debug });\n return;\n }\n\n if (id) {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n }\n };\n\n this.worker.onerror = (error) => {\n logRuntimeDiagnostic('error', {\n component: 'JavaScriptWorkerClient',\n runtime: 'javascript',\n phase: 'worker-error',\n message: 'JavaScript worker emitted an error event.',\n detail: {\n message: error.message,\n filename: error.filename,\n lineno: error.lineno,\n colno: error.colno,\n },\n });\n const workerError = new Error('Worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [id, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(workerError);\n this.pendingMessages.delete(id);\n }\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `JavaScript worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs: number = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(executor: () => Promise<T>, timeoutMs: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n this.terminateAndReset();\n reject(\n new Error(\n `Execution timed out (possible infinite loop). Code execution was stopped after ${Math.round(timeoutMs / 1000)} seconds.`\n )\n );\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.warmupPromises.clear();\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n\n if (this.isInitializing) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n this.initPromise = this.sendMessage<InitResult>('init', undefined, INIT_TIMEOUT_MS);\n\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n async warmup(language: JavaScriptWorkerLanguage = 'javascript'): Promise<WarmupResult> {\n const existing = this.warmupPromises.get(language);\n if (existing) return existing;\n\n const warmupPromise = (async () => {\n await this.init();\n return this.sendMessage<WarmupResult>(\n 'warmup',\n { language },\n language === 'typescript' ? TYPESCRIPT_WARMUP_TIMEOUT_MS : INIT_TIMEOUT_MS\n );\n })();\n\n this.warmupPromises.set(language, warmupPromise);\n\n try {\n return await warmupPromise;\n } catch (error) {\n this.warmupPromises.delete(language);\n throw error;\n }\n }\n\n async executeWithTracing(\n code: string,\n functionName: string | null,\n inputs: Record<string, unknown>,\n options?: {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n },\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<ExecutionResult> {\n await this.init();\n return this.executeWithTimeout(\n () =>\n this.sendMessage<ExecutionResult>(\n 'execute-with-tracing',\n {\n code,\n functionName,\n inputs,\n options,\n executionStyle,\n language,\n },\n TRACING_TIMEOUT_MS + 2000\n ),\n TRACING_TIMEOUT_MS\n );\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<CodeExecutionResult> {\n await this.init();\n return this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'execute-code',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n language,\n },\n EXECUTION_TIMEOUT_MS + 2000\n ),\n EXECUTION_TIMEOUT_MS\n );\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: JavaScriptExecutionStyle = 'function',\n language: JavaScriptWorkerLanguage = 'javascript'\n ): Promise<CodeExecutionResult> {\n await this.init();\n\n try {\n const result = await this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'execute-code-interview',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n language,\n },\n INTERVIEW_MODE_TIMEOUT_MS + 2000\n ),\n INTERVIEW_MODE_TIMEOUT_MS\n );\n\n if (!result.success && result.error) {\n const normalized = result.error.toLowerCase();\n const isTimeoutOrResourceLimit =\n normalized.includes('timed out') ||\n normalized.includes('infinite loop') ||\n normalized.includes('line-limit') ||\n normalized.includes('single-line-limit') ||\n normalized.includes('recursion-limit') ||\n normalized.includes('trace-limit') ||\n normalized.includes('line events') ||\n normalized.includes('trace steps') ||\n normalized.includes('call depth');\n if (isTimeoutOrResourceLimit) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: result.consoleOutput ?? [],\n };\n }\n }\n\n return result;\n } catch {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n consoleOutput: [],\n };\n }\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n\nexport function isJavaScriptWorkerSupported(): boolean {\n return typeof Worker !== 'undefined';\n}\n","import type { Language } from './runtime-types';\nimport type { RuntimeTrace } from './runtime-trace';\n\nexport type RuntimeRawEmissionKind =\n | 'line'\n | 'call'\n | 'return'\n | 'exception'\n | 'stdout'\n | 'snapshot'\n | 'read'\n | 'write'\n | 'mutate'\n | 'timeout';\n\nexport interface RuntimeRawEmissionSummary {\n language: Language;\n kinds: RuntimeRawEmissionKind[];\n unsupported: string[];\n}\n\nfunction sortedUnique<T extends string>(values: T[]): T[] {\n return [...new Set(values)].sort((left, right) => left.localeCompare(right));\n}\n\nconst FORBIDDEN_RUNTIME_TRACE_TOKENS = [\n 'visualization',\n 'objectKinds',\n 'hashMaps',\n 'graph-adjacency',\n 'linked-list',\n 'tree',\n] as const;\n\nconst FORBIDDEN_RUNTIME_TRACE_KEYS = new Set([\n 'visualization',\n 'objectKinds',\n 'hashMaps',\n 'graph-adjacency',\n 'linked-list',\n]);\n\nexport function normalizeJavaNativeTraceJsonPayload(payload: string): string {\n return payload\n .replace(/(?<![A-Za-z0-9_\"])-Infinity(?![A-Za-z0-9_\"])/g, '\"-Infinity\"')\n .replace(/(?<![A-Za-z0-9_\"])Infinity(?![A-Za-z0-9_\"])/g, '\"Infinity\"')\n .replace(/(?<![A-Za-z0-9_\"])NaN(?![A-Za-z0-9_\"])/g, '\"NaN\"');\n}\n\nfunction forbiddenRuntimeTraceTokens(value: unknown): string[] {\n const tokens = new Set<string>();\n collectForbiddenRuntimeTraceTokens(value, tokens, null, false);\n return FORBIDDEN_RUNTIME_TRACE_TOKENS.filter((token) => tokens.has(token));\n}\n\nfunction collectForbiddenRuntimeTraceTokens(\n value: unknown,\n tokens: Set<string>,\n parentKey: string | null,\n semanticPayload: boolean\n): void {\n if (typeof value === 'string') {\n if (\n (semanticPayload || parentKey === 'kind' || parentKey === 'type' || parentKey === 'category') &&\n (FORBIDDEN_RUNTIME_TRACE_TOKENS as readonly string[]).includes(value)\n ) {\n tokens.add(value);\n }\n return;\n }\n if (value === null || typeof value !== 'object') return;\n if (Array.isArray(value)) {\n for (const item of value) collectForbiddenRuntimeTraceTokens(item, tokens, parentKey, semanticPayload);\n return;\n }\n const entries = Object.entries(value as Record<string, unknown>);\n const objectSemanticPayload = entries.some(([key, child]) => {\n if (parentKey !== 'args' && FORBIDDEN_RUNTIME_TRACE_KEYS.has(key)) return true;\n return (\n (key === 'kind' || key === 'type' || key === 'category') &&\n typeof child === 'string' &&\n (FORBIDDEN_RUNTIME_TRACE_TOKENS as readonly string[]).includes(child)\n );\n });\n for (const [key, child] of entries) {\n if (parentKey !== 'args' && FORBIDDEN_RUNTIME_TRACE_KEYS.has(key)) {\n tokens.add(key);\n }\n if (key === 'target' || key === 'variable' || key === 'function') continue;\n collectForbiddenRuntimeTraceTokens(child, tokens, key, semanticPayload || objectSemanticPayload);\n }\n}\n\nfunction unsupportedForbiddenPayload(label: string, value: unknown): string | null {\n const tokens = forbiddenRuntimeTraceTokens(value);\n if (tokens.length === 0) return null;\n return `${label} contains forbidden runtime trace token(s): ${tokens.join(', ')}`;\n}\n\nfunction javaNativeTracePayloadKind(event: string): RuntimeRawEmissionKind | null {\n if (!event.startsWith('trace:')) return null;\n try {\n const parsed = JSON.parse(normalizeJavaNativeTraceJsonPayload(event.slice('trace:'.length))) as { kind?: unknown };\n if (parsed.kind === 'line') return 'line';\n if (parsed.kind === 'call') return 'call';\n if (parsed.kind === 'return') return 'return';\n if (parsed.kind === 'exception') return 'exception';\n if (parsed.kind === 'timeout') return 'timeout';\n if (parsed.kind === 'stdout') return 'stdout';\n if (parsed.kind === 'snapshot') return 'snapshot';\n if (parsed.kind === 'read') return 'read';\n if (parsed.kind === 'write') return 'write';\n if (parsed.kind === 'mutate') return 'mutate';\n } catch {\n return null;\n }\n return null;\n}\n\nexport function summarizeJavaRawEmissions(events: string[]): RuntimeRawEmissionSummary {\n const kinds: RuntimeRawEmissionKind[] = [];\n const unsupported: string[] = [];\n\n for (const [index, event] of events.entries()) {\n if (event.startsWith('trace:')) {\n try {\n const parsed = JSON.parse(normalizeJavaNativeTraceJsonPayload(event.slice('trace:'.length))) as unknown;\n const forbiddenPayload = unsupportedForbiddenPayload(`java trace event ${index}`, parsed);\n if (forbiddenPayload) {\n unsupported.push(forbiddenPayload);\n continue;\n }\n } catch {\n // Let the native-kind check below classify malformed trace payloads as unsupported.\n }\n }\n const nativeKind = javaNativeTracePayloadKind(event);\n if (nativeKind) {\n kinds.push(nativeKind);\n continue;\n }\n unsupported.push(event);\n }\n\n return {\n language: 'java',\n kinds: sortedUnique(kinds),\n unsupported,\n };\n}\n\nexport function summarizeRuntimeTraceEmissions(trace: RuntimeTrace): RuntimeRawEmissionSummary {\n const kinds: RuntimeRawEmissionKind[] = [];\n const unsupported: string[] = [];\n for (const [index, event] of trace.events.entries()) {\n const forbiddenPayload = unsupportedForbiddenPayload(`${trace.language} trace event ${index}`, event);\n if (forbiddenPayload) {\n unsupported.push(forbiddenPayload);\n continue;\n }\n switch (event.kind) {\n case 'line':\n case 'call':\n case 'return':\n case 'exception':\n case 'timeout':\n case 'stdout':\n case 'snapshot':\n case 'read':\n case 'write':\n case 'mutate':\n kinds.push(event.kind);\n break;\n default:\n unsupported.push(`${trace.language} trace event ${index} has unsupported kind \"${String((event as { kind?: unknown }).kind)}\"`);\n }\n }\n return {\n language: trace.language,\n kinds: sortedUnique(kinds),\n unsupported,\n };\n}\n\nexport function assertSupportedRawEmissions(summary: RuntimeRawEmissionSummary, label: string): void {\n if (summary.unsupported.length > 0) {\n throw new Error(\n `${label} emitted unsupported raw runtime payloads:\\n${summary.unsupported.slice(0, 20).join('\\n')}`\n );\n }\n}\n\nexport interface RuntimeRawEmissionParityMismatch {\n language: Language;\n missing: RuntimeRawEmissionKind[];\n extra: RuntimeRawEmissionKind[];\n}\n\nfunction parityKinds(summary: RuntimeRawEmissionSummary): RuntimeRawEmissionKind[] {\n return summary.kinds;\n}\n\nexport function compareRawEmissionParity(\n reference: RuntimeRawEmissionSummary,\n summaries: RuntimeRawEmissionSummary[]\n): RuntimeRawEmissionParityMismatch[] {\n const expected = new Set(parityKinds(reference));\n const mismatches: RuntimeRawEmissionParityMismatch[] = [];\n\n for (const summary of summaries) {\n if (summary.language === reference.language) continue;\n const actual = new Set(parityKinds(summary));\n const missing = [...expected].filter((kind) => !actual.has(kind)).sort((left, right) => left.localeCompare(right));\n const extra = [...actual].filter((kind) => !expected.has(kind)).sort((left, right) => left.localeCompare(right));\n if (missing.length > 0 || extra.length > 0) {\n mismatches.push({ language: summary.language, missing, extra });\n }\n }\n\n return mismatches;\n}\n","import {\n RUNTIME_TRACE_SCHEMA_VERSION,\n type RuntimeTraceEvent,\n type RuntimeTrace,\n type RuntimeTraceOptions,\n} from '../runtime-trace';\nimport {\n assertSupportedRawEmissions,\n normalizeJavaNativeTraceJsonPayload,\n summarizeJavaRawEmissions,\n} from '../runtime-raw-emission-contract';\n\nexport function normalizeJavaSerializedResult(output: unknown): unknown {\n if (typeof output !== 'string') {\n return output;\n }\n try {\n return JSON.parse(output) as unknown;\n } catch {\n return output;\n }\n}\n\nfunction isNativeJavaTraceEvent(event: string): boolean {\n return event.startsWith('trace:');\n}\n\nfunction stripInlineComments(line: string, inBlockComment: boolean): { text: string; inBlockComment: boolean } {\n let result = '';\n let index = 0;\n let inBlock = inBlockComment;\n while (index < line.length) {\n const current = line[index];\n const next = index + 1 < line.length ? line[index + 1] : '';\n\n if (inBlock) {\n if (current === '*' && next === '/') {\n inBlock = false;\n index += 2;\n continue;\n }\n index += 1;\n continue;\n }\n\n if (current === '/' && next === '*') {\n inBlock = true;\n index += 2;\n continue;\n }\n\n if (current === '/' && next === '/') break;\n result += current;\n index += 1;\n }\n\n return { text: result, inBlockComment: inBlock };\n}\n\nfunction isMethodDeclarationLine(line: string): boolean {\n const trimmed = line.trim();\n if (!trimmed) return false;\n if (trimmed.startsWith('@')) return false;\n if (!trimmed.includes('(') || !trimmed.includes(')')) return false;\n if (trimmed.endsWith(';')) return false;\n if (trimmed.includes('->')) return false;\n if (/^(?:if|for|while|switch|catch|do|try|else|return|throw|new)\\b/.test(trimmed)) return false;\n if (!/[A-Za-z_][A-Za-z0-9_]*\\s*\\([^{};]*\\)/.test(trimmed)) return false;\n return /(?:\\{\\s*)?$/.test(trimmed);\n}\n\nfunction buildLocalDeclarationNamesByLine(sourceText: string | undefined): Map<number, string[]> {\n const namesByLine = new Map<number, string[]>();\n if (typeof sourceText !== 'string' || sourceText.length === 0) return namesByLine;\n\n const lines = sourceText.split(/\\r?\\n/);\n let inBlockComment = false;\n for (let index = 0; index < lines.length; index += 1) {\n const { text, inBlockComment: nextInBlockComment } = stripInlineComments(lines[index] ?? '', inBlockComment);\n inBlockComment = nextInBlockComment;\n if (isMethodDeclarationLine(text)) continue;\n\n const names: string[] = [];\n const declarationPattern =\n /\\b(?:final\\s+)?(?:[A-Za-z_][A-Za-z0-9_.$]*(?:\\s*<[^;=(){}]+>)?(?:\\s*\\[\\])?)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*=/g;\n for (const match of text.matchAll(declarationPattern)) {\n if (match[1]) names.push(match[1]);\n }\n if (names.length > 0) namesByLine.set(index + 1, names);\n }\n\n return namesByLine;\n}\n\nfunction removeSameLineMutationDeclarationSnapshotEvents(\n events: RuntimeTraceEvent[],\n sourceText: string | undefined\n): RuntimeTraceEvent[] {\n const declarationNamesByLine = buildLocalDeclarationNamesByLine(sourceText);\n if (declarationNamesByLine.size === 0) return events;\n const mutationVariablesByLine = new Map<number, Set<string>>();\n for (const event of events) {\n if (event.kind !== 'mutate' || typeof event.line !== 'number' || !('variable' in event.target)) continue;\n const variables = mutationVariablesByLine.get(event.line) ?? new Set<string>();\n variables.add(event.target.variable);\n mutationVariablesByLine.set(event.line, variables);\n }\n if (mutationVariablesByLine.size === 0) return events;\n return events.filter((event) => {\n if (event.kind !== 'snapshot' || typeof event.line !== 'number' || !('variable' in event.target)) return true;\n const declaredNames = declarationNamesByLine.get(event.line);\n if (!declaredNames?.includes(event.target.variable)) return true;\n const mutationVariables = mutationVariablesByLine.get(event.line);\n return mutationVariables?.has(event.target.variable) === true;\n });\n}\n\nfunction collectJavaLineDeclarationsForHeaderExpansion(line: string): string[] {\n const names: string[] = [];\n const declarationPattern =\n /\\b(?:final\\s+)?((?:boolean|byte|char|short|int|long|float|double|String|Object|[A-Za-z_][A-Za-z0-9_<>.?]*(?:\\s*<[^,;=(){}:]+>)?)\\s*(?:\\[\\s*\\])*)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?==)/g;\n const skippedNames = new Set(['class', 'interface', 'enum', 'record', 'return', 'new']);\n for (const match of line.matchAll(declarationPattern)) {\n const typeSource = match[1] ?? '';\n const name = match[2];\n if (!name || skippedNames.has(name) || name.startsWith('__tracecode')) continue;\n if (typeSource.includes('[')) continue;\n names.push(name);\n }\n return names;\n}\n\nfunction collectJavaControlHeaderDeclarations(line: string): string[] {\n const forMatch = /\\bfor\\s*\\(\\s*(?:final\\s+)?(?:[A-Za-z_][A-Za-z0-9_<>.?]*(?:\\s*<[^;=(){}:]+>)?|\\w+(?:\\s*\\[\\s*\\])*)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?:=|:)/.exec(line);\n return forMatch?.[1] ? [forMatch[1]] : [];\n}\n\ninterface JavaLoopHeaderInfo {\n line: number;\n excludedVariables: Set<string>;\n headerVariables: Set<string>;\n}\n\nfunction buildJavaControlHeaderInfo(sourceText: string | undefined): {\n loopBodyLineToHeader: Map<number, JavaLoopHeaderInfo>;\n headerLineToExcludedVariables: Map<number, Set<string>>;\n} | null {\n if (typeof sourceText !== 'string' || sourceText.length === 0) return null;\n const lines = sourceText.split(/\\r?\\n/);\n const loopBodyLineToHeader = new Map<number, JavaLoopHeaderInfo>();\n const headerLineToExcludedVariables = new Map<number, Set<string>>();\n\n for (let index = 0; index < lines.length; index += 1) {\n const line = lines[index] ?? '';\n const isLoopHeader = /\\b(?:for|while)\\s*\\(/.test(line);\n const isControlHeader = /\\b(?:for|while|if|else\\s+if)\\s*\\(/.test(line);\n if (!isControlHeader || !line.includes('{')) continue;\n\n for (let bodyIndex = index + 1; bodyIndex < lines.length; bodyIndex += 1) {\n const trimmed = (lines[bodyIndex] ?? '').trim();\n if (trimmed.length === 0) continue;\n if (trimmed.startsWith('}')) break;\n const headerInfo: JavaLoopHeaderInfo = {\n line: index + 1,\n excludedVariables: new Set(collectJavaLineDeclarationsForHeaderExpansion(lines[bodyIndex] ?? '')),\n headerVariables: new Set(collectJavaControlHeaderDeclarations(line)),\n };\n if (isLoopHeader) loopBodyLineToHeader.set(bodyIndex + 1, headerInfo);\n headerLineToExcludedVariables.set(index + 1, headerInfo.excludedVariables);\n break;\n }\n }\n\n if (loopBodyLineToHeader.size === 0 && headerLineToExcludedVariables.size === 0) return null;\n return { loopBodyLineToHeader, headerLineToExcludedVariables };\n}\n\nfunction eventLine(event: RuntimeTraceEvent): number | null {\n return typeof event.line === 'number' && Number.isFinite(event.line) && event.line > 0\n ? event.line\n : null;\n}\n\nfunction eventSnapshotVariable(event: RuntimeTraceEvent): string | null {\n if (event.kind !== 'snapshot') return null;\n const target = event.target;\n if (!target || typeof target !== 'object' || !('variable' in target)) return null;\n const variable = target.variable;\n return typeof variable === 'string' && variable.length > 0 ? variable : null;\n}\n\nfunction cloneRuntimeEventAtLine(event: RuntimeTraceEvent, line: number): RuntimeTraceEvent {\n return { ...event, line };\n}\n\nfunction expandJavaLoopHeaderTraceEvents(\n events: RuntimeTraceEvent[],\n sourceText: string | undefined\n): RuntimeTraceEvent[] {\n if (events.length === 0) return events;\n const controlHeaderInfo = buildJavaControlHeaderInfo(sourceText);\n if (!controlHeaderInfo) return events;\n const { loopBodyLineToHeader, headerLineToExcludedVariables } = controlHeaderInfo;\n\n const expanded: RuntimeTraceEvent[] = [];\n const latestSnapshotByVariable = new Map<string, RuntimeTraceEvent>();\n let lastLineEventLine: number | null = null;\n for (let index = 0; index < events.length; index += 1) {\n const event = events[index];\n const line = eventLine(event);\n const snapshotVariable = eventSnapshotVariable(event);\n if (\n line !== null &&\n snapshotVariable &&\n headerLineToExcludedVariables.get(line)?.has(snapshotVariable)\n ) {\n continue;\n }\n\n const headerInfo = line === null ? undefined : loopBodyLineToHeader.get(line);\n const headerLine = headerInfo?.line;\n if (headerInfo && typeof headerLine === 'number' && event.kind === 'line' && lastLineEventLine !== headerLine) {\n expanded.push(cloneRuntimeEventAtLine(event, headerLine));\n for (const [variable, snapshotEvent] of latestSnapshotByVariable) {\n if (headerInfo.excludedVariables.has(variable)) continue;\n expanded.push(cloneRuntimeEventAtLine(snapshotEvent, headerLine));\n }\n lastLineEventLine = headerLine;\n }\n\n if (headerInfo && typeof headerLine === 'number' && event.kind === 'line') {\n for (let lookahead = index + 1; lookahead < events.length; lookahead += 1) {\n if (eventLine(events[lookahead]) !== line) break;\n const variable = eventSnapshotVariable(events[lookahead]);\n if (!variable || !headerInfo.headerVariables.has(variable)) continue;\n expanded.push(cloneRuntimeEventAtLine(events[lookahead], headerLine));\n }\n }\n\n expanded.push(event);\n if (event.kind === 'line') {\n lastLineEventLine = line;\n }\n if (snapshotVariable) {\n latestSnapshotByVariable.set(snapshotVariable, event);\n }\n }\n return expanded;\n}\n\nfunction nativeJavaTraceEventsToTrace(\n events: string[],\n sourceText: string | undefined,\n options: RuntimeTraceOptions = {}\n): RuntimeTrace {\n const runId = options.runId ?? 'java:run';\n let parsedEvents: RuntimeTraceEvent[] = events.map((event) => {\n let parsed: RuntimeTraceEvent;\n try {\n parsed = JSON.parse(normalizeJavaNativeTraceJsonPayload(event.slice('trace:'.length))) as RuntimeTraceEvent;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`Invalid Java native runtime trace event: ${message}\\n${event.slice(0, 500)}`);\n }\n return {\n ...parsed,\n runId,\n ...(options.file ? { file: options.file } : {}),\n };\n });\n parsedEvents = removeSameLineMutationDeclarationSnapshotEvents(parsedEvents, sourceText);\n parsedEvents = expandJavaLoopHeaderTraceEvents(parsedEvents, sourceText);\n\n return {\n schemaVersion: RUNTIME_TRACE_SCHEMA_VERSION,\n language: 'java',\n runId,\n events: parsedEvents,\n lineEventCount: parsedEvents.filter((event) => event.kind === 'line').length,\n traceStepCount: parsedEvents.length,\n };\n}\n\nexport function javaTraceHooksEventsToRuntimeTrace(\n events: string[],\n sourceText?: string,\n options: RuntimeTraceOptions = {}\n): RuntimeTrace {\n assertSupportedRawEmissions(summarizeJavaRawEmissions(events), 'java');\n if (events.length === 0) {\n return {\n schemaVersion: RUNTIME_TRACE_SCHEMA_VERSION,\n language: 'java',\n runId: options.runId ?? 'java:run',\n events: [],\n lineEventCount: 0,\n traceStepCount: 0,\n };\n }\n if (!events.every(isNativeJavaTraceEvent)) {\n throw new Error('Java TraceHooks must emit native runtime trace events. Unsupported line=... events are no longer supported.');\n }\n return nativeJavaTraceEventsToTrace(events, sourceText, options);\n}\n","import type { CodeExecutionResult, RuntimeExecutionTimings } from '../../harness-core/src/types';\nimport { javaTraceHooksEventsToRuntimeTrace } from '../../harness-core/src/trace-adapters/java';\nimport { createEmptyRuntimeTrace, type RuntimeTrace } from '../../harness-core/src/runtime-trace';\nimport { logRuntimeDiagnostic } from './runtime-diagnostics';\n\ntype MessageId = string;\nexport type JavaExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface JavaWorkerClientOptions {\n workerUrl: string;\n debug?: boolean;\n workerIdleTimeoutMs?: number;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n timings?: RuntimeExecutionTimings;\n}\n\ninterface WarmupResult {\n success: boolean;\n loadTimeMs: number;\n timings?: RuntimeExecutionTimings;\n}\n\nexport interface JavaWorkerRawTraceResult {\n success: boolean;\n output?: unknown;\n events: string[];\n sourceText?: string;\n executionTimeMs: number;\n error?: string;\n errorLine?: number;\n consoleOutput: string[];\n traceLimitExceeded?: boolean;\n timeoutReason?: 'trace-limit';\n droppedEventCount?: number;\n timings?: RuntimeExecutionTimings;\n}\n\nexport interface JavaWorkerTraceResult extends JavaWorkerRawTraceResult {\n trace: RuntimeTrace;\n}\n\ninterface JavaWorkerCodeResult {\n success: boolean;\n output?: unknown;\n executionTimeMs?: number;\n error?: string;\n errorLine?: number;\n consoleOutput?: string[];\n timings?: RuntimeExecutionTimings;\n}\n\nexport interface JavaTraceExecutionOptions {\n maxTraceSteps?: number;\n maxLineEvents?: number;\n maxSingleLineHits?: number;\n maxStoredEvents?: number;\n minimalTrace?: boolean;\n}\n\nconst EXECUTION_TIMEOUT_MS = 20_000;\nconst TRACING_TIMEOUT_MS = 25_000;\nconst INIT_TIMEOUT_MS = 120_000;\nconst MESSAGE_TIMEOUT_MS = 30_000;\nconst WORKER_READY_TIMEOUT_MS = 10_000;\nconst JAVA_DEFAULT_FILE = 'solution.java';\n\nexport class JavaWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private warmupPromise: Promise<WarmupResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n\n constructor(private readonly options: JavaWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n\n this.worker = new Worker(workerUrl);\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n logRuntimeDiagnostic('info', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'worker-ready',\n message: 'Java worker is ready.',\n }, { enabled: this.debug });\n return;\n }\n\n if (type === 'idle-timeout') {\n logRuntimeDiagnostic('info', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'idle-timeout',\n message: 'Java worker closed after idle timeout.',\n }, { enabled: this.debug });\n this.terminateAndReset(new Error('Java worker closed after idle timeout'));\n return;\n }\n\n if (!id) return;\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n };\n\n this.worker.onerror = (error) => {\n logRuntimeDiagnostic('error', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'worker-error',\n message: 'Java worker emitted an error event.',\n detail: {\n message: error.message,\n filename: error.filename,\n lineno: error.lineno,\n colno: error.colno,\n },\n });\n const workerError = new Error(error.message || 'Java worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(workerError);\n }\n this.pendingMessages.clear();\n this.terminateAndReset(workerError);\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `Java worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n logRuntimeDiagnostic('warn', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'worker-ready-timeout',\n message: 'Java worker did not send worker-ready before the timeout.',\n detail: { timeoutMs: WORKER_READY_TIMEOUT_MS },\n }, { enabled: this.debug });\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n logRuntimeDiagnostic('warn', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'worker-request-timeout',\n message: 'Java worker request timed out.',\n detail: { id, type, timeoutMs },\n }, { enabled: this.debug });\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(executor: () => Promise<T>, timeoutMs: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n logRuntimeDiagnostic('warn', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'execution-timeout',\n message: 'Java execution timed out; terminating worker.',\n detail: { timeoutMs },\n }, { enabled: this.debug });\n this.terminateAndReset();\n reject(\n new Error(\n `Java execution timed out after ${Math.round(timeoutMs / 1000)} seconds.`\n )\n );\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.warmupPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n if (this.isInitializing) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n this.initPromise = (async () => {\n try {\n return await this.sendMessage<InitResult>('init', this.workerOptionsPayload(), INIT_TIMEOUT_MS);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const shouldRetry =\n message.includes('Worker request timed out: init') ||\n message.includes('Worker was terminated') ||\n message.includes('Java worker error') ||\n message.includes('failed to initialize in time');\n\n if (!shouldRetry) {\n throw error;\n }\n\n logRuntimeDiagnostic('warn', {\n component: 'JavaWorkerClient',\n runtime: 'java',\n phase: 'init-retry',\n message: 'Java worker init failed; resetting worker and retrying once.',\n detail: { message },\n }, { enabled: this.debug });\n\n this.terminateAndReset(error instanceof Error ? error : new Error(message));\n return this.sendMessage<InitResult>('init', this.workerOptionsPayload(), INIT_TIMEOUT_MS);\n }\n })();\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n private workerOptionsPayload(): { idleTimeoutMs?: number } {\n return this.options.workerIdleTimeoutMs === undefined\n ? {}\n : { idleTimeoutMs: this.options.workerIdleTimeoutMs };\n }\n\n async warmup(): Promise<WarmupResult> {\n if (this.warmupPromise) return this.warmupPromise;\n this.warmupPromise = (async () => {\n try {\n await this.init();\n return await this.sendMessage<WarmupResult>(\n 'warmup',\n this.workerOptionsPayload(),\n INIT_TIMEOUT_MS\n );\n } catch (error) {\n this.warmupPromise = null;\n throw error;\n }\n })();\n return this.warmupPromise;\n }\n\n async executeWithTracing(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<JavaWorkerTraceResult> {\n await this.init();\n const result = await this.executeWithTimeout(\n () =>\n this.sendMessage<JavaWorkerRawTraceResult>(\n 'execute-with-tracing',\n { code, functionName, inputs, options, executionStyle },\n TRACING_TIMEOUT_MS + 5_000\n ),\n TRACING_TIMEOUT_MS\n );\n return {\n ...result,\n trace: result.success\n ? javaTraceHooksEventsToRuntimeTrace(result.events, result.sourceText, {\n runId: 'java:run',\n file: JAVA_DEFAULT_FILE,\n })\n : createEmptyRuntimeTrace('java', { runId: 'java:run', file: JAVA_DEFAULT_FILE }),\n };\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<CodeExecutionResult> {\n return this.executeCodeMessage('execute-code', code, functionName, inputs, options, executionStyle);\n }\n\n private async executeCodeMessage(\n type: 'execute-code' | 'execute-code-interview',\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<CodeExecutionResult> {\n await this.init();\n const result = await this.executeWithTimeout(\n () =>\n this.sendMessage<JavaWorkerCodeResult>(\n type,\n { code, functionName, inputs, options, executionStyle },\n EXECUTION_TIMEOUT_MS + 5_000\n ),\n EXECUTION_TIMEOUT_MS\n );\n if (!result.success) {\n return {\n success: false,\n output: null,\n error: result.error ?? 'Java execution failed',\n ...(result.errorLine !== undefined ? { errorLine: result.errorLine } : {}),\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n return {\n success: true,\n output: result.output,\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: JavaTraceExecutionOptions | undefined,\n executionStyle: JavaExecutionStyle\n ): Promise<CodeExecutionResult> {\n return this.executeCodeMessage('execute-code-interview', code, functionName, inputs, options, executionStyle);\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n","import {\n RUNTIME_TRACE_SCHEMA_VERSION,\n type RuntimeTrace,\n type RuntimeTraceEvent,\n} from '../../harness-core/src/runtime-trace';\nimport type { TraceExecutionOptions } from '../../harness-core/src/runtime-types';\nimport type {\n CodeExecutionResult,\n ExecutionResult,\n RuntimeExecutionTimings,\n} from '../../harness-core/src/types';\nimport { logRuntimeDiagnostic } from './runtime-diagnostics';\n\ntype MessageId = string;\nexport type CSharpExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface CSharpWorkerClientOptions {\n workerUrl: string;\n assetBaseUrl: string;\n debug?: boolean;\n initTimeoutMs?: number;\n executionTimeoutMs?: number;\n tracingTimeoutMs?: number;\n interviewTimeoutMs?: number;\n workerIdleTimeoutMs?: number;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n timings?: RuntimeExecutionTimings;\n}\n\ninterface WarmupResult {\n success: boolean;\n loadTimeMs: number;\n error?: string;\n timings?: RuntimeExecutionTimings;\n}\n\nconst EXECUTION_TIMEOUT_MS = 20_000;\nconst TRACING_TIMEOUT_MS = 20_000;\nconst INTERVIEW_MODE_TIMEOUT_MS = 5_000;\nconst INIT_TIMEOUT_MS = 45_000;\nconst MESSAGE_TIMEOUT_MS = 30_000;\nconst WORKER_READY_TIMEOUT_MS = 10_000;\nconst CSHARP_DEFAULT_FILE = 'solution.cs';\nconst CSHARP_LEGACY_USER_FILE = 'UserCode.cs';\n\nexport interface CSharpDiagnostic {\n file: string;\n line: number;\n column: number;\n message: string;\n severity: string;\n id?: string;\n}\n\ninterface CSharpWorkerExecuteResult {\n success: boolean;\n output?: unknown;\n error?: string;\n diagnostics?: CSharpDiagnostic[];\n consoleOutput?: string[];\n events?: RuntimeTraceEvent[];\n executionTimeMs?: number;\n traceLimitExceeded?: boolean;\n timeoutReason?: ExecutionResult['timeoutReason'];\n timings?: RuntimeExecutionTimings;\n}\n\nfunction isCSharpUserFile(file: string | undefined): boolean {\n return Boolean(file?.endsWith(CSHARP_DEFAULT_FILE) || file?.endsWith(CSHARP_LEGACY_USER_FILE));\n}\n\nfunction isCSharpUserDiagnostic(diagnostic: CSharpDiagnostic): boolean {\n return isCSharpUserFile(diagnostic.file);\n}\n\nfunction normalizeCSharpTraceEventFile(event: RuntimeTraceEvent): RuntimeTraceEvent {\n return isCSharpUserFile(event.file) ? { ...event, file: CSHARP_DEFAULT_FILE } : event;\n}\n\nexport class CSharpWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private isInitializing = false;\n private initPromise: Promise<InitResult> | null = null;\n private warmupPromise: Promise<WarmupResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n private readonly initTimeoutMs: number;\n private readonly executionTimeoutMs: number;\n private readonly tracingTimeoutMs: number;\n private readonly interviewTimeoutMs: number;\n\n constructor(private readonly options: CSharpWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;\n this.executionTimeoutMs = options.executionTimeoutMs ?? EXECUTION_TIMEOUT_MS;\n this.tracingTimeoutMs = options.tracingTimeoutMs ?? TRACING_TIMEOUT_MS;\n this.interviewTimeoutMs = options.interviewTimeoutMs ?? INTERVIEW_MODE_TIMEOUT_MS;\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n\n this.worker = new Worker(workerUrl, { type: 'module' });\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n logRuntimeDiagnostic('info', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'worker-ready',\n message: 'C# worker is ready.',\n }, { enabled: this.debug });\n return;\n }\n\n if (type === 'idle-timeout') {\n logRuntimeDiagnostic('info', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'idle-timeout',\n message: 'C# worker closed after idle timeout.',\n }, { enabled: this.debug });\n this.terminateAndReset(new Error('C# worker closed after idle timeout'));\n return;\n }\n\n if (!id) return;\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n };\n\n this.worker.onerror = (error) => {\n logRuntimeDiagnostic('error', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'worker-error',\n message: 'C# worker emitted an error event.',\n detail: {\n message: error.message,\n filename: error.filename,\n lineno: error.lineno,\n colno: error.colno,\n },\n });\n const workerError = new Error(error.message || 'C# worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(workerError);\n }\n this.pendingMessages.clear();\n this.terminateAndReset(workerError);\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `C# worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n logRuntimeDiagnostic('warn', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'worker-ready-timeout',\n message: 'C# worker did not send worker-ready before the timeout.',\n detail: { timeoutMs: WORKER_READY_TIMEOUT_MS },\n }, { enabled: this.debug });\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n logRuntimeDiagnostic('warn', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'worker-request-timeout',\n message: 'C# worker request timed out.',\n detail: { id, type, timeoutMs },\n }, { enabled: this.debug });\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(executor: () => Promise<T>, timeoutMs: number): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n logRuntimeDiagnostic('warn', {\n component: 'CSharpWorkerClient',\n runtime: 'csharp',\n phase: 'execution-timeout',\n message: 'C# execution timed out; terminating worker.',\n detail: { timeoutMs },\n }, { enabled: this.debug });\n this.terminateAndReset();\n reject(new Error(`C# execution timed out after ${Math.round(timeoutMs / 1000)} seconds.`));\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.warmupPromise = null;\n this.isInitializing = false;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n }\n\n private shouldRetryInit(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n return (\n message.includes('timed out') ||\n message.includes('Worker request timed out') ||\n message.includes('worker error') ||\n message.includes('Failed to fetch') ||\n message.includes('was terminated') ||\n message.includes('closed after idle timeout')\n );\n }\n\n private sendInitMessage(): Promise<InitResult> {\n return this.sendMessage<InitResult>(\n 'init',\n { assetBaseUrl: this.options.assetBaseUrl, ...this.workerOptionsPayload() },\n this.initTimeoutMs\n );\n }\n\n private workerOptionsPayload(): { idleTimeoutMs?: number } {\n return this.options.workerIdleTimeoutMs === undefined\n ? {}\n : { idleTimeoutMs: this.options.workerIdleTimeoutMs };\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n if (this.isInitializing) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, 100));\n return this.init();\n }\n\n this.isInitializing = true;\n this.initPromise = (async () => {\n try {\n return await this.sendInitMessage();\n } catch (error) {\n if (!this.shouldRetryInit(error)) throw error;\n this.terminateAndReset(error instanceof Error ? error : new Error(String(error)));\n return this.sendInitMessage();\n }\n })();\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n } finally {\n this.isInitializing = false;\n }\n }\n\n async warmup(): Promise<WarmupResult> {\n if (this.warmupPromise) return this.warmupPromise;\n this.warmupPromise = (async () => {\n try {\n await this.init();\n return await this.sendMessage<WarmupResult>(\n 'warmup',\n { assetBaseUrl: this.options.assetBaseUrl, ...this.workerOptionsPayload() },\n this.initTimeoutMs\n );\n } catch (error) {\n this.warmupPromise = null;\n throw error;\n }\n })();\n return this.warmupPromise;\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: CSharpExecutionStyle\n ): Promise<CodeExecutionResult> {\n await this.init();\n const result = await this.executeWithTimeout(\n () =>\n this.sendMessage<CSharpWorkerExecuteResult>(\n 'execute-code',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n assetBaseUrl: this.options.assetBaseUrl,\n timeoutMs: Math.max(100, this.executionTimeoutMs - 1_000),\n ...this.workerOptionsPayload(),\n },\n this.executionTimeoutMs + 5_000\n ),\n this.executionTimeoutMs\n );\n\n if (!result.success) {\n const firstUserDiagnostic = result.diagnostics?.find(isCSharpUserDiagnostic);\n return {\n success: false,\n output: null,\n error: result.error ?? 'C# execution failed',\n ...(firstUserDiagnostic ? { errorLine: firstUserDiagnostic.line } : {}),\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n return {\n success: true,\n output: result.output,\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: CSharpExecutionStyle\n ): Promise<CodeExecutionResult> {\n await this.init();\n let result: CSharpWorkerExecuteResult;\n try {\n result = await this.executeWithTimeout(\n () =>\n this.sendMessage<CSharpWorkerExecuteResult>(\n 'execute-code-interview',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n assetBaseUrl: this.options.assetBaseUrl,\n timeoutMs: Math.max(100, this.interviewTimeoutMs - 1_000),\n ...this.workerOptionsPayload(),\n },\n this.interviewTimeoutMs + 5_000\n ),\n this.interviewTimeoutMs\n );\n } catch {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n timeoutReason: 'client-timeout',\n diagnosticStage: 'interview',\n consoleOutput: [],\n timings: { totalMs: this.interviewTimeoutMs },\n };\n }\n\n if (!result.success) {\n const firstUserDiagnostic = result.diagnostics?.find(isCSharpUserDiagnostic);\n if (this.isInterviewTimeoutLike(result)) {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n timeoutReason: result.timeoutReason ?? 'client-timeout',\n diagnosticStage: 'interview',\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n return {\n success: false,\n output: null,\n error: result.error ?? 'C# execution failed',\n ...(firstUserDiagnostic ? { errorLine: firstUserDiagnostic.line } : {}),\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n return {\n success: true,\n output: result.output,\n consoleOutput: result.consoleOutput ?? [],\n timings: result.timings,\n };\n }\n\n async executeWithTracing(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: TraceExecutionOptions | undefined,\n executionStyle: CSharpExecutionStyle\n ): Promise<ExecutionResult> {\n await this.init();\n let result: CSharpWorkerExecuteResult;\n try {\n result = await this.executeWithTimeout(\n () =>\n this.sendMessage<CSharpWorkerExecuteResult>(\n 'execute-with-tracing',\n {\n code,\n functionName,\n inputs,\n executionStyle,\n assetBaseUrl: this.options.assetBaseUrl,\n timeoutMs: Math.max(100, this.tracingTimeoutMs - 1_000),\n maxTraceSteps: options?.maxTraceSteps,\n maxLineEvents: options?.maxLineEvents,\n maxSingleLineHits: options?.maxSingleLineHits,\n maxStoredEvents: options?.maxStoredEvents,\n minimalTrace: options?.minimalTrace,\n ...this.workerOptionsPayload(),\n },\n this.tracingTimeoutMs + 5_000\n ),\n this.tracingTimeoutMs\n );\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const trace = this.createTrace([\n {\n kind: 'timeout',\n runId: 'csharp:run',\n file: CSHARP_DEFAULT_FILE,\n message,\n },\n ]);\n return {\n success: false,\n output: null,\n error: message,\n trace,\n executionTimeMs: this.tracingTimeoutMs,\n consoleOutput: [],\n traceLimitExceeded: true,\n timeoutReason: 'client-timeout',\n lineEventCount: trace.lineEventCount,\n traceStepCount: trace.traceStepCount,\n timings: { totalMs: this.tracingTimeoutMs },\n };\n }\n\n const consoleOutput = result.consoleOutput ?? [];\n const events = [\n ...(result.events ?? []),\n ...consoleOutput.map((text): RuntimeTraceEvent => ({\n kind: 'stdout',\n runId: 'csharp:run',\n file: CSHARP_DEFAULT_FILE,\n text,\n })),\n ];\n const trace = this.createTrace(events);\n\n if (!result.success) {\n const firstUserDiagnostic = result.diagnostics?.find(isCSharpUserDiagnostic);\n return {\n success: false,\n output: null,\n error: result.error ?? 'C# execution failed',\n ...(firstUserDiagnostic ? { errorLine: firstUserDiagnostic.line } : {}),\n trace,\n executionTimeMs: result.executionTimeMs ?? 0,\n consoleOutput,\n ...(result.traceLimitExceeded !== undefined\n ? { traceLimitExceeded: result.traceLimitExceeded }\n : {}),\n ...(result.timeoutReason ? { timeoutReason: result.timeoutReason } : {}),\n lineEventCount: trace.lineEventCount,\n traceStepCount: trace.traceStepCount,\n timings: result.timings,\n };\n }\n\n return {\n success: true,\n output: result.output,\n trace,\n executionTimeMs: result.executionTimeMs ?? 0,\n consoleOutput,\n ...(result.traceLimitExceeded !== undefined\n ? { traceLimitExceeded: result.traceLimitExceeded }\n : {}),\n ...(result.timeoutReason ? { timeoutReason: result.timeoutReason } : {}),\n lineEventCount: trace.lineEventCount,\n traceStepCount: trace.traceStepCount,\n timings: result.timings,\n };\n }\n\n private createTrace(events: RuntimeTraceEvent[]): RuntimeTrace {\n return {\n schemaVersion: RUNTIME_TRACE_SCHEMA_VERSION,\n language: 'csharp',\n runId: 'csharp:run',\n events: events.map(normalizeCSharpTraceEventFile),\n lineEventCount: events.filter((event) => event.kind === 'line').length,\n traceStepCount: events.length,\n };\n }\n\n private isInterviewTimeoutLike(result: CSharpWorkerExecuteResult): boolean {\n if (result.timeoutReason) return true;\n const normalized = String(result.error ?? '').toLowerCase();\n return (\n normalized.includes('timed out') ||\n normalized.includes('trace-limit') ||\n normalized.includes('line-limit') ||\n normalized.includes('single-line-limit') ||\n normalized.includes('recursion-limit') ||\n normalized.includes('memory-limit')\n );\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n","import type {\n CodeExecutionResult,\n ExecutionResult,\n RuntimeExecutionTimings,\n} from '../../harness-core/src/types';\nimport { createEmptyRuntimeTrace } from '../../harness-core/src/runtime-trace';\nimport type { TraceExecutionOptions } from '../../harness-core/src/runtime-types';\nimport { logRuntimeDiagnostic } from './runtime-diagnostics';\n\ntype MessageId = string;\n\nexport type CppExecutionStyle = 'function' | 'solution-method' | 'ops-class';\n\nexport interface CppWorkerAssets {\n clangWasmUrl: string;\n lldWasmUrl: string;\n sysrootUrl: string;\n runtimeHeaderUrl: string;\n compilerBundleUrl: string;\n compilerFrameUrl?: string;\n compilerWorkerUrl?: string;\n}\n\nexport interface CppWorkerClientOptions extends CppWorkerAssets {\n workerUrl: string;\n debug?: boolean;\n initTimeoutMs?: number;\n executionTimeoutMs?: number;\n tracingTimeoutMs?: number;\n interviewTimeoutMs?: number;\n workerIdleTimeoutMs?: number;\n}\n\ninterface PendingMessage {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timeoutId?: ReturnType<typeof setTimeout>;\n}\n\ninterface PendingCompilerFrameRequest {\n resolve: (value: Record<string, unknown>) => void;\n timeoutId: ReturnType<typeof setTimeout>;\n}\n\ntype CppClientTimeoutStage = 'compile-run' | 'trace' | 'interview';\n\nclass CppClientTimeoutError extends Error {\n constructor(\n message: string,\n readonly stage: CppClientTimeoutStage,\n readonly timeoutMs: number\n ) {\n super(message);\n this.name = 'CppClientTimeoutError';\n }\n}\n\ninterface WorkerMessage {\n id?: MessageId;\n type: string;\n requestId?: string;\n payload?: unknown;\n}\n\ninterface InitResult {\n success: boolean;\n loadTimeMs: number;\n error?: string;\n timings?: RuntimeExecutionTimings;\n}\n\ninterface WarmupResult {\n success: boolean;\n loadTimeMs: number;\n error?: string;\n timings?: RuntimeExecutionTimings;\n}\n\nconst INIT_TIMEOUT_MS = 120_000;\n// Browser C++ compile/run includes client-side clang/lld work. STL-heavy\n// solutions can spend most of this wall time compiling before user code runs.\nconst EXECUTION_TIMEOUT_MS = 60_000;\nconst TRACING_TIMEOUT_MS = 60_000;\nconst INTERVIEW_MODE_TIMEOUT_MS = 30_000;\nconst MESSAGE_TIMEOUT_MS = 30_000;\nconst WORKER_READY_TIMEOUT_MS = 10_000;\nconst CPP_DEFAULT_FILE = 'solution.cpp';\n\nexport class CppWorkerClient {\n private worker: Worker | null = null;\n private pendingMessages = new Map<MessageId, PendingMessage>();\n private messageId = 0;\n private initPromise: Promise<InitResult> | null = null;\n private warmupPromise: Promise<WarmupResult> | null = null;\n private workerReadyPromise: Promise<void> | null = null;\n private workerReadyResolve: (() => void) | null = null;\n private workerReadyReject: ((error: Error) => void) | null = null;\n private readonly debug: boolean;\n private readonly initTimeoutMs: number;\n private readonly executionTimeoutMs: number;\n private readonly tracingTimeoutMs: number;\n private readonly interviewTimeoutMs: number;\n private readonly compilerFrameUrl?: string;\n private readonly activeCompilerFrames = new Set<HTMLIFrameElement>();\n private compilerFrame: HTMLIFrameElement | null = null;\n private compilerFrameReadyPromise: Promise<void> | null = null;\n private compilerFrameReadyResolve: (() => void) | null = null;\n private compilerFrameReadyReject: ((error: Error) => void) | null = null;\n private compilerFrameTargetOrigin = '';\n private compilerFrameRequestId = 0;\n private compilerFrameMessageHandler: ((event: MessageEvent) => void) | null = null;\n private pendingCompilerFrameRequests = new Map<string, PendingCompilerFrameRequest>();\n\n constructor(private readonly options: CppWorkerClientOptions) {\n this.debug = options.debug ?? process.env.NODE_ENV === 'development';\n this.initTimeoutMs = options.initTimeoutMs ?? INIT_TIMEOUT_MS;\n this.executionTimeoutMs = options.executionTimeoutMs ?? EXECUTION_TIMEOUT_MS;\n this.tracingTimeoutMs = options.tracingTimeoutMs ?? TRACING_TIMEOUT_MS;\n this.interviewTimeoutMs = options.interviewTimeoutMs ?? INTERVIEW_MODE_TIMEOUT_MS;\n this.compilerFrameUrl = options.compilerFrameUrl;\n }\n\n isSupported(): boolean {\n return typeof Worker !== 'undefined';\n }\n\n private getWorker(): Worker {\n if (this.worker) return this.worker;\n\n if (!this.isSupported()) {\n throw new Error('Web Workers are not supported in this environment');\n }\n\n this.workerReadyPromise = new Promise((resolve, reject) => {\n this.workerReadyResolve = resolve;\n this.workerReadyReject = (error: Error) => reject(error);\n });\n\n const workerUrl =\n this.debug && !this.options.workerUrl.includes('?')\n ? `${this.options.workerUrl}?dev=${Date.now()}`\n : this.options.workerUrl;\n\n this.worker = new Worker(workerUrl, { type: 'module' });\n this.worker.onmessage = (event: MessageEvent<WorkerMessage>) => {\n const { id, type, payload } = event.data;\n\n if (type === 'worker-ready') {\n this.workerReadyResolve?.();\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n logRuntimeDiagnostic('info', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'worker-ready',\n message: 'C++ worker is ready.',\n }, { enabled: this.debug });\n return;\n }\n\n if (type === 'idle-timeout') {\n logRuntimeDiagnostic('info', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'idle-timeout',\n message: 'C++ worker closed after idle timeout.',\n }, { enabled: this.debug });\n this.terminateAndReset(new Error('C++ worker closed after idle timeout'));\n return;\n }\n\n if (type === 'compile-request') {\n this.handleCompileRequest(event.data).catch((error) => {\n if (!event.data.requestId) return;\n this.worker?.postMessage({\n type: 'compile-response',\n requestId: event.data.requestId,\n payload: { success: false, error: error instanceof Error ? error.message : String(error) },\n });\n });\n return;\n }\n\n if (!id) return;\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n\n if (type === 'error') {\n pending.reject(new Error((payload as { error: string }).error));\n return;\n }\n\n pending.resolve(payload);\n };\n\n this.worker.onerror = (error) => {\n logRuntimeDiagnostic('error', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'worker-error',\n message: 'C++ worker emitted an error event.',\n detail: {\n message: error.message,\n filename: error.filename,\n lineno: error.lineno,\n colno: error.colno,\n },\n });\n const workerError = new Error(error.message || 'C++ worker error');\n this.workerReadyReject?.(workerError);\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n this.terminateAndReset(workerError);\n };\n\n return this.worker;\n }\n\n private async waitForWorkerReady(): Promise<void> {\n const readyPromise = this.workerReadyPromise;\n if (!readyPromise) return;\n\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutError = new Error(\n `C++ worker failed to initialize in time (${Math.round(WORKER_READY_TIMEOUT_MS / 1000)}s)`\n );\n logRuntimeDiagnostic('warn', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'worker-ready-timeout',\n message: 'C++ worker did not send worker-ready before the timeout.',\n detail: { timeoutMs: WORKER_READY_TIMEOUT_MS },\n }, { enabled: this.debug });\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, WORKER_READY_TIMEOUT_MS);\n\n readyPromise\n .then(() => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve();\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error instanceof Error ? error : new Error(String(error)));\n });\n });\n }\n\n private async sendMessage<T>(\n type: string,\n payload?: unknown,\n timeoutMs = MESSAGE_TIMEOUT_MS\n ): Promise<T> {\n const worker = this.getWorker();\n await this.waitForWorkerReady();\n const id = String(++this.messageId);\n\n return new Promise<T>((resolve, reject) => {\n this.pendingMessages.set(id, {\n resolve: resolve as (value: unknown) => void,\n reject,\n });\n\n const timeoutId = globalThis.setTimeout(() => {\n const pending = this.pendingMessages.get(id);\n if (!pending) return;\n this.pendingMessages.delete(id);\n logRuntimeDiagnostic('warn', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'worker-request-timeout',\n message: 'C++ worker request timed out.',\n detail: { id, type, timeoutMs },\n }, { enabled: this.debug });\n pending.reject(new Error(`Worker request timed out: ${type}`));\n }, timeoutMs);\n\n const pending = this.pendingMessages.get(id);\n if (pending) pending.timeoutId = timeoutId;\n\n worker.postMessage({ id, type, payload });\n });\n }\n\n private async executeWithTimeout<T>(\n executor: () => Promise<T>,\n timeoutMs: number,\n stage: CppClientTimeoutStage\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const timeoutId = globalThis.setTimeout(() => {\n if (settled) return;\n settled = true;\n const timeoutLabel =\n stage === 'trace'\n ? 'tracing'\n : stage === 'interview'\n ? 'interview execution'\n : 'compile/run';\n const timeoutError = new CppClientTimeoutError(\n `C++ ${timeoutLabel} timed out after ${Math.round(timeoutMs / 1000)} seconds.`,\n stage,\n timeoutMs\n );\n logRuntimeDiagnostic('warn', {\n component: 'CppWorkerClient',\n runtime: 'cpp',\n phase: 'execution-timeout',\n message: 'C++ execution timed out; terminating worker.',\n detail: { timeoutMs, stage },\n }, { enabled: this.debug });\n this.terminateAndReset(timeoutError);\n reject(timeoutError);\n }, timeoutMs);\n\n executor()\n .then((result) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n resolve(result);\n })\n .catch((error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n });\n });\n }\n\n private isClientTimeout(error: unknown): boolean {\n return (\n error instanceof CppClientTimeoutError ||\n (error instanceof Error && error.message.includes('C++') && error.message.includes('timed out'))\n );\n }\n\n private timeoutCodeResult(error: unknown): CodeExecutionResult {\n const timeoutError = error instanceof CppClientTimeoutError ? error : null;\n return {\n success: false,\n output: null,\n error: error instanceof Error ? error.message : String(error),\n consoleOutput: [],\n timeoutReason: 'client-timeout',\n diagnosticStage: timeoutError?.stage === 'interview' ? 'interview' : 'runtime',\n timings: { totalMs: timeoutError?.timeoutMs ?? this.executionTimeoutMs },\n };\n }\n\n private timeoutTraceResult(error: unknown): ExecutionResult {\n const timeoutError = error instanceof CppClientTimeoutError ? error : null;\n const trace = createEmptyRuntimeTrace('cpp', { runId: 'cpp:run', file: CPP_DEFAULT_FILE });\n trace.events = [\n {\n kind: 'timeout',\n runId: 'cpp:run',\n file: CPP_DEFAULT_FILE,\n message: error instanceof Error ? error.message : String(error),\n },\n ];\n trace.traceStepCount = 1;\n return {\n success: false,\n output: null,\n error: error instanceof Error ? error.message : String(error),\n trace,\n executionTimeMs: timeoutError?.timeoutMs ?? this.tracingTimeoutMs,\n consoleOutput: [],\n traceLimitExceeded: true,\n timeoutReason: 'client-timeout',\n lineEventCount: 0,\n traceStepCount: 1,\n timings: { totalMs: timeoutError?.timeoutMs ?? this.tracingTimeoutMs },\n };\n }\n\n private terminateAndReset(reason: Error = new Error('Worker was terminated')): void {\n this.workerReadyReject?.(reason);\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n }\n this.initPromise = null;\n this.warmupPromise = null;\n this.workerReadyPromise = null;\n this.workerReadyResolve = null;\n this.workerReadyReject = null;\n\n for (const [, pending] of this.pendingMessages) {\n if (pending.timeoutId) globalThis.clearTimeout(pending.timeoutId);\n pending.reject(reason);\n }\n this.pendingMessages.clear();\n this.clearCompilerFrames();\n }\n\n private shouldRetryInit(error: unknown): boolean {\n const message = error instanceof Error ? error.message : String(error);\n return (\n message.includes('timed out') ||\n message.includes('Worker request timed out') ||\n message.includes('worker error') ||\n message.includes('Failed to fetch') ||\n message.includes('was terminated') ||\n message.includes('closed after idle timeout')\n );\n }\n\n private sendInitMessage(): Promise<InitResult> {\n return this.sendMessage<InitResult>(\n 'init',\n {\n assets: {\n clangWasmUrl: this.options.clangWasmUrl,\n lldWasmUrl: this.options.lldWasmUrl,\n sysrootUrl: this.options.sysrootUrl,\n runtimeHeaderUrl: this.options.runtimeHeaderUrl,\n compilerBundleUrl: this.options.compilerBundleUrl,\n compilerFrameEnabled: Boolean(this.compilerFrameUrl && typeof document !== 'undefined'),\n compilerFrameUrl: this.compilerFrameUrl,\n compilerWorkerUrl: this.options.compilerWorkerUrl,\n },\n ...this.workerOptionsPayload(),\n },\n this.initTimeoutMs\n );\n }\n\n async init(): Promise<InitResult> {\n if (this.initPromise) return this.initPromise;\n this.initPromise = (async () => {\n try {\n return await this.sendInitMessage();\n } catch (error) {\n if (!this.shouldRetryInit(error)) throw error;\n this.terminateAndReset(error instanceof Error ? error : new Error(String(error)));\n return this.sendInitMessage();\n }\n })();\n try {\n return await this.initPromise;\n } catch (error) {\n this.initPromise = null;\n throw error;\n }\n }\n\n private workerOptionsPayload(): { idleTimeoutMs?: number } {\n return this.options.workerIdleTimeoutMs === undefined\n ? {}\n : { idleTimeoutMs: this.options.workerIdleTimeoutMs };\n }\n\n async warmup(): Promise<WarmupResult> {\n if (this.warmupPromise) return this.warmupPromise;\n this.warmupPromise = (async () => {\n try {\n await this.init();\n return await this.sendMessage<WarmupResult>('warmup', this.workerOptionsPayload(), this.initTimeoutMs);\n } catch (error) {\n this.warmupPromise = null;\n throw error;\n }\n })();\n return this.warmupPromise;\n }\n\n private clearCompilerFrames(reason: Error = new Error('C++ compiler frame was closed')): void {\n this.compilerFrameReadyReject?.(reason);\n this.compilerFrameReadyPromise = null;\n this.compilerFrameReadyResolve = null;\n this.compilerFrameReadyReject = null;\n if (this.compilerFrameMessageHandler) {\n globalThis.removeEventListener('message', this.compilerFrameMessageHandler);\n this.compilerFrameMessageHandler = null;\n }\n for (const [, pending] of this.pendingCompilerFrameRequests) {\n globalThis.clearTimeout(pending.timeoutId);\n pending.resolve({ success: false, error: reason.message });\n }\n this.pendingCompilerFrameRequests.clear();\n this.compilerFrame = null;\n this.compilerFrameTargetOrigin = '';\n for (const frame of this.activeCompilerFrames) {\n frame.remove();\n }\n this.activeCompilerFrames.clear();\n }\n\n private async handleCompileRequest(message: WorkerMessage): Promise<void> {\n if (!message.requestId) return;\n const worker = this.worker;\n if (!worker) return;\n\n const result = await this.compileInFrame(message.payload);\n const transfer = result?.programBuffer instanceof ArrayBuffer ? [result.programBuffer] : [];\n worker.postMessage(\n {\n type: 'compile-response',\n requestId: message.requestId,\n payload: result,\n },\n transfer\n );\n }\n\n private ensureCompilerFrame(): Promise<void> {\n if (!this.compilerFrameUrl || typeof document === 'undefined') {\n return Promise.reject(new Error('C++ compiler frame is not available.'));\n }\n if (this.compilerFrame && this.compilerFrameReadyPromise) return this.compilerFrameReadyPromise;\n\n const frameUrl = new URL(this.compilerFrameUrl, globalThis.location?.href);\n this.compilerFrameTargetOrigin = frameUrl.origin;\n const iframe = document.createElement('iframe');\n iframe.src = frameUrl.href;\n iframe.style.display = 'none';\n iframe.setAttribute('aria-hidden', 'true');\n this.compilerFrame = iframe;\n this.activeCompilerFrames.add(iframe);\n\n this.compilerFrameReadyPromise = new Promise<void>((resolve, reject) => {\n let settled = false;\n let timeoutId: ReturnType<typeof setTimeout>;\n\n const finishReady = () => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n this.compilerFrameReadyResolve = null;\n this.compilerFrameReadyReject = null;\n resolve();\n };\n const onMessage = (event: MessageEvent) => {\n if (event.source !== iframe.contentWindow) return;\n if (event.origin !== this.compilerFrameTargetOrigin) return;\n if ((event.data as { type?: string })?.type === 'frame-ready') {\n finishReady();\n return;\n }\n const requestId = (event.data as { id?: string })?.id;\n if (!requestId) return;\n const pending = this.pendingCompilerFrameRequests.get(requestId);\n if (!pending) return;\n this.pendingCompilerFrameRequests.delete(requestId);\n globalThis.clearTimeout(pending.timeoutId);\n const response = event.data as { payload?: Record<string, unknown> };\n pending.resolve(response.payload ?? { success: false, error: 'C++ compiler frame returned an empty response.' });\n };\n this.compilerFrameMessageHandler = onMessage;\n\n timeoutId = globalThis.setTimeout(() => {\n const error = new Error('C++ compiler frame request timed out.');\n this.clearCompilerFrames(error);\n reject(error);\n }, this.initTimeoutMs);\n\n this.compilerFrameReadyResolve = finishReady;\n this.compilerFrameReadyReject = (error: Error) => {\n if (settled) return;\n settled = true;\n globalThis.clearTimeout(timeoutId);\n reject(error);\n };\n globalThis.addEventListener('message', onMessage);\n document.body.appendChild(iframe);\n });\n return this.compilerFrameReadyPromise;\n }\n\n private async compileInFrame(payload: unknown): Promise<Record<string, unknown>> {\n try {\n await this.ensureCompilerFrame();\n } catch (error) {\n return { success: false, error: error instanceof Error ? error.message : String(error) };\n }\n const iframe = this.compilerFrame;\n const frameWindow = iframe?.contentWindow;\n if (!frameWindow) {\n return { success: false, error: 'C++ compiler frame is not available.' };\n }\n\n return new Promise((resolve) => {\n const requestId = `compile-${++this.compilerFrameRequestId}`;\n const timeoutId = globalThis.setTimeout(() => {\n this.pendingCompilerFrameRequests.delete(requestId);\n resolve({ success: false, error: 'C++ compiler frame request timed out.' });\n }, this.initTimeoutMs);\n this.pendingCompilerFrameRequests.set(requestId, { resolve, timeoutId });\n frameWindow.postMessage(\n {\n id: requestId,\n type: 'compile',\n payload,\n },\n this.compilerFrameTargetOrigin\n );\n });\n }\n\n async executeCode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: CppExecutionStyle\n ): Promise<CodeExecutionResult> {\n await this.init();\n try {\n return await this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'compile-run',\n { code, functionName, inputs, executionStyle },\n this.executionTimeoutMs + 5_000\n ),\n this.executionTimeoutMs,\n 'compile-run'\n );\n } catch (error) {\n if (this.isClientTimeout(error)) return this.timeoutCodeResult(error);\n throw error;\n }\n }\n\n async executeWithTracing(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n options: TraceExecutionOptions | undefined,\n executionStyle: CppExecutionStyle\n ): Promise<ExecutionResult> {\n await this.init();\n try {\n return await this.executeWithTimeout(\n () =>\n this.sendMessage<ExecutionResult>(\n 'execute-with-tracing',\n { code, functionName, inputs, options, executionStyle },\n this.tracingTimeoutMs + 5_000\n ),\n this.tracingTimeoutMs,\n 'trace'\n );\n } catch (error) {\n if (this.isClientTimeout(error)) return this.timeoutTraceResult(error);\n throw error;\n }\n }\n\n async executeCodeInterviewMode(\n code: string,\n functionName: string,\n inputs: Record<string, unknown>,\n executionStyle: CppExecutionStyle\n ): Promise<CodeExecutionResult> {\n await this.init();\n try {\n return await this.executeWithTimeout(\n () =>\n this.sendMessage<CodeExecutionResult>(\n 'execute-code-interview',\n { code, functionName, inputs, executionStyle },\n this.interviewTimeoutMs + 5_000\n ),\n this.interviewTimeoutMs,\n 'interview'\n );\n } catch {\n return {\n success: false,\n output: null,\n error: 'Time Limit Exceeded',\n timeoutReason: 'client-timeout',\n diagnosticStage: 'interview',\n consoleOutput: [],\n timings: { totalMs: this.interviewTimeoutMs },\n };\n }\n }\n\n terminate(): void {\n this.terminateAndReset();\n }\n}\n"],"mappings":"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","names":["pending","EXECUTION_TIMEOUT_MS","INTERVIEW_MODE_TIMEOUT_MS","TRACING_TIMEOUT_MS","INIT_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending","EXECUTION_TIMEOUT_MS","TRACING_TIMEOUT_MS","INIT_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending","EXECUTION_TIMEOUT_MS","TRACING_TIMEOUT_MS","INTERVIEW_MODE_TIMEOUT_MS","INIT_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending","trace","INIT_TIMEOUT_MS","EXECUTION_TIMEOUT_MS","TRACING_TIMEOUT_MS","INTERVIEW_MODE_TIMEOUT_MS","MESSAGE_TIMEOUT_MS","WORKER_READY_TIMEOUT_MS","pending"]}
|