@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.
- package/CHANGELOG.md +29 -0
- package/README.md +30 -3
- package/dist/browser.cjs +974 -19
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +3 -2
- package/dist/browser.d.ts +3 -2
- package/dist/browser.js +974 -19
- package/dist/browser.js.map +1 -1
- package/dist/cli.cjs +24 -0
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +24 -0
- package/dist/cli.js.map +1 -1
- package/dist/core.cjs +611 -4
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +20 -6
- package/dist/core.d.ts +20 -6
- package/dist/core.js +605 -4
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +1004 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +998 -19
- package/dist/index.js.map +1 -1
- package/dist/internal/browser.cjs +211 -0
- package/dist/internal/browser.cjs.map +1 -1
- package/dist/internal/browser.d.cts +62 -6
- package/dist/internal/browser.d.ts +62 -6
- package/dist/internal/browser.js +210 -0
- package/dist/internal/browser.js.map +1 -1
- package/dist/javascript.d.cts +2 -2
- package/dist/javascript.d.ts +2 -2
- package/dist/{runtime-types-DtaaAhHL.d.ts → runtime-types-89nchXlY.d.cts} +8 -4
- package/dist/{runtime-types--lBQ6rYu.d.cts → runtime-types-CCQ-ZLc9.d.ts} +8 -4
- package/dist/{types-DwIYM3Ku.d.cts → types-zyvpJKCi.d.cts} +1 -0
- package/dist/{types-DwIYM3Ku.d.ts → types-zyvpJKCi.d.ts} +1 -0
- package/package.json +17 -5
- package/workers/java/.build/classes/harness/browser/JavaRewriteLibrary.class +0 -0
- package/workers/java/java-worker.js +712 -0
- package/workers/java/src/harness/browser/JavaRewriteLibrary.java +54 -0
- package/workers/javascript/javascript-worker.js +343 -63
- package/workers/python/generated-python-harness-snippets.js +3 -3
- package/workers/python/pyodide-worker.js +419 -68
- package/workers/python/runtime-core.js +52 -3
- 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
- package/workers/vendor/javaparser-core-3.25.10.jar +0 -0
- 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
|
|
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
|
|
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
|