@tracecode/harness 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +30 -3
  3. package/dist/browser.cjs +974 -19
  4. package/dist/browser.cjs.map +1 -1
  5. package/dist/browser.d.cts +3 -2
  6. package/dist/browser.d.ts +3 -2
  7. package/dist/browser.js +974 -19
  8. package/dist/browser.js.map +1 -1
  9. package/dist/cli.cjs +24 -0
  10. package/dist/cli.cjs.map +1 -1
  11. package/dist/cli.js +24 -0
  12. package/dist/cli.js.map +1 -1
  13. package/dist/core.cjs +611 -4
  14. package/dist/core.cjs.map +1 -1
  15. package/dist/core.d.cts +20 -6
  16. package/dist/core.d.ts +20 -6
  17. package/dist/core.js +605 -4
  18. package/dist/core.js.map +1 -1
  19. package/dist/index.cjs +1004 -19
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +3 -3
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +998 -19
  24. package/dist/index.js.map +1 -1
  25. package/dist/internal/browser.cjs +211 -0
  26. package/dist/internal/browser.cjs.map +1 -1
  27. package/dist/internal/browser.d.cts +62 -6
  28. package/dist/internal/browser.d.ts +62 -6
  29. package/dist/internal/browser.js +210 -0
  30. package/dist/internal/browser.js.map +1 -1
  31. package/dist/javascript.d.cts +2 -2
  32. package/dist/javascript.d.ts +2 -2
  33. package/dist/{runtime-types-DtaaAhHL.d.ts → runtime-types-89nchXlY.d.cts} +8 -4
  34. package/dist/{runtime-types--lBQ6rYu.d.cts → runtime-types-CCQ-ZLc9.d.ts} +8 -4
  35. package/dist/{types-DwIYM3Ku.d.cts → types-zyvpJKCi.d.cts} +1 -0
  36. package/dist/{types-DwIYM3Ku.d.ts → types-zyvpJKCi.d.ts} +1 -0
  37. package/package.json +17 -5
  38. package/workers/java/.build/classes/harness/browser/JavaRewriteLibrary.class +0 -0
  39. package/workers/java/java-worker.js +712 -0
  40. package/workers/java/src/harness/browser/JavaRewriteLibrary.java +54 -0
  41. package/workers/javascript/javascript-worker.js +343 -63
  42. package/workers/python/generated-python-harness-snippets.js +3 -3
  43. package/workers/python/pyodide-worker.js +419 -68
  44. package/workers/python/runtime-core.js +52 -3
  45. package/workers/vendor/java-browser-spike-helper.jar +0 -0
  46. package/workers/vendor/java-practice-rewriter.jar +0 -0
  47. package/workers/vendor/java-rewrite-bridge.jar +0 -0
  48. package/workers/vendor/javaparser-core-3.25.10.jar +0 -0
  49. package/workers/vendor/jdk.compiler-17.jar +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,35 @@ All notable changes to this project are documented here.
4
4
 
5
5
  This repo uses Git tags as release boundaries. Version notes below summarize what shipped in each tagged release.
6
6
 
7
+ ## [0.6.1] - 2026-04-23
8
+
9
+ ### Fixed
10
+
11
+ - Resolved Dependabot-reported vulnerabilities by moving the example app to patched Vite 7.3.2 and overriding transitive DOMPurify and Picomatch resolutions to patched versions.
12
+
13
+ ## [0.6.0] - 2026-04-23
14
+
15
+ ### Added
16
+
17
+ - Experimental browser-local Java runtime client and worker support.
18
+ - Java runtime capability profiles, worker asset sync coverage, and packaged browser harness surface.
19
+ - Java trace adapter support for line events, access metadata, visualization payloads, and runtime output normalization.
20
+
21
+ ### Changed
22
+
23
+ - Runtime trace contract normalization now deduplicates noisy access metadata and enforces shared trace clipping semantics.
24
+ - JavaScript and Python workers now share the same trace budget controls used by the browser harness clients.
25
+ - Browser example app now exercises Java alongside Python, JavaScript, and TypeScript.
26
+
27
+ ### Fixed
28
+
29
+ - TypeScript `for...of` tracing now delays iterable access metadata to the next executable step while preserving loop-header flushes for body mutations.
30
+ - Java worker asset checks now cover the helper, rewriter, bridge, parser, and compiler jars needed by the Java lane.
31
+
32
+ ### Notes
33
+
34
+ - `0.6.0` is the first Java runtime preview release. Java remains capability-profiled as experimental.
35
+
7
36
  ## [0.5.0] - 2026-03-14
8
37
 
9
38
  ### Fixed
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # TraceCode Harness
2
2
 
3
- Browser-first execution and tracing harness for Python, JavaScript, and TypeScript.
3
+ Browser-first execution and tracing harness for Python, JavaScript, TypeScript, and an experimental Java lane.
4
4
 
5
5
  `@tracecode/harness` is a browser-consumable runtime SDK for code execution and tracing: explicit browser runtime creation, package-managed worker assets, and no app-specific storage/bootstrap contract in the public API.
6
6
 
@@ -13,6 +13,7 @@ This package provides an execution and tracing runtime for browser applications.
13
13
  It includes:
14
14
 
15
15
  - browser-hosted execution for Python, JavaScript, and TypeScript
16
+ - an experimental browser-local Java 17 lane for `function`, `solution-method`, `ops-class`, and `interviewMode` execution
16
17
  - trace capture and normalized runtime contracts
17
18
  - browser worker assets and asset sync tooling
18
19
  - runtime-side structural annotations such as object kinds and hash/map payloads
@@ -40,7 +41,7 @@ Consuming apps are expected to own their own UI, persistence, product logic, and
40
41
  ## What You Get
41
42
 
42
43
  - shared runtime contract types and trace adapters
43
- - browser runtime clients for Python, JavaScript, and TypeScript
44
+ - browser runtime clients for Python, JavaScript, TypeScript, and Java
44
45
  - published worker assets plus a CLI to copy them into your app
45
46
  - capability profiles for honest per-language support claims
46
47
  - regression coverage for runtime parity, packaging, and consumer smoke tests
@@ -154,7 +155,7 @@ The returned harness exposes:
154
155
  Configuration:
155
156
 
156
157
  - `assetBaseUrl?: string`
157
- - `assets?: Partial<{ pythonWorker; pythonRuntimeCore; pythonSnippets; javascriptWorker; typescriptCompiler }>`
158
+ - `assets?: Partial<{ pythonWorker; pythonRuntimeCore; pythonSnippets; javascriptWorker; typescriptCompiler; javaWorker; javaHelperJar; javaPracticeRewriterJar; javaRewriteBridgeJar; javaParserJar; javaCompilerJar }>`
158
159
  - `debug?: boolean`
159
160
 
160
161
  Example:
@@ -180,6 +181,12 @@ if (profile.capabilities.tracing.supported) {
180
181
  - `pyodide/runtime-core.js`
181
182
  - `javascript-worker.js`
182
183
  - `vendor/typescript.js`
184
+ - `java-worker.js`
185
+ - `vendor/java-browser-spike-helper.jar`
186
+ - `vendor/java-practice-rewriter.jar`
187
+ - `vendor/java-rewrite-bridge.jar`
188
+ - `vendor/javaparser-core-3.25.10.jar`
189
+ - `vendor/jdk.compiler-17.jar`
183
190
 
184
191
  By default, `createBrowserHarness({ assetBaseUrl: '/workers' })` resolves those assets as:
185
192
 
@@ -188,6 +195,12 @@ By default, `createBrowserHarness({ assetBaseUrl: '/workers' })` resolves those
188
195
  - `/workers/pyodide/runtime-core.js`
189
196
  - `/workers/javascript-worker.js`
190
197
  - `/workers/vendor/typescript.js`
198
+ - `/workers/java-worker.js`
199
+ - `/workers/vendor/java-browser-spike-helper.jar`
200
+ - `/workers/vendor/java-practice-rewriter.jar`
201
+ - `/workers/vendor/java-rewrite-bridge.jar`
202
+ - `/workers/vendor/javaparser-core-3.25.10.jar`
203
+ - `/workers/vendor/jdk.compiler-17.jar`
191
204
 
192
205
  Advanced consumers can override individual asset URLs through the `assets` option.
193
206
 
@@ -211,6 +224,18 @@ Capability domains:
211
224
 
212
225
  That lets the package be explicit about partial support and fail closed for unsupported requests.
213
226
 
227
+ Current language status:
228
+
229
+ - `python`: stable
230
+ - `javascript`: stable
231
+ - `typescript`: stable
232
+ - `java`: experimental, browser-local Java 17 lane
233
+
234
+ Current Java scope:
235
+
236
+ - supported: `function`, `solution-method`, `ops-class`, `interviewMode`, tracing, compile diagnostics, structural visualization payloads
237
+ - not yet supported: `script`
238
+
214
239
  ## Example Consumer
215
240
 
216
241
  A minimal reference browser IDE lives in [examples/web-ide](./examples/web-ide). It is intentionally small and exists to prove that a third-party app can:
@@ -254,6 +279,8 @@ pnpm generate:python-harness
254
279
 
255
280
  This repo uses explicit versioned release boundaries.
256
281
 
282
+ - `0.6.1` resolves Dependabot-reported vulnerabilities in Vite, DOMPurify, and Picomatch dependency paths
283
+ - `0.6.0` adds an experimental browser-local Java 17 runtime lane for `function`, `solution-method`, `ops-class`, and `interviewMode` execution, plus public asset packaging and browser smoke coverage for Java
257
284
  - `0.5.0` improves JavaScript tree/list input hydration, fixes sparse tree deserialization, and trims GitHub CI to the non-browser verification set
258
285
  - `0.1.0` introduced the public harness baseline
259
286
  - `0.2.0` introduced structured runtime capability profiles