metaharness 0.2.3 → 0.2.5

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.
@@ -2,5 +2,16 @@ export interface WasmWireResult {
2
2
  ok: boolean;
3
3
  lines: string[];
4
4
  }
5
+ /**
6
+ * GH #21: a `wasm-pack --target nodejs` output is CommonJS, but it lands inside
7
+ * an ESM (`"type":"module"`) harness — so Node would parse the CJS shim as ESM
8
+ * and `__dirname` (used to locate the `.wasm`) breaks. Force `{"type":"commonjs"}`
9
+ * into the wasm dir's package.json so the shim loads as CJS, and remove the
10
+ * `.gitignore` (`*`) wasm-pack drops, which would otherwise prune `wasm/` from
11
+ * the npm tarball. Extracted + exported so it is unit-testable without a real
12
+ * wasm-pack build. Returns the CJS entry filename (wasm-pack's `main`, else
13
+ * `index.js`).
14
+ */
15
+ export declare function markWasmDirCommonjs(outDir: string): string;
5
16
  export declare function wireWasm(cratePath: string, targetDir: string): WasmWireResult;
6
17
  //# sourceMappingURL=with-wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"with-wasm.d.ts","sourceRoot":"","sources":["../src/with-wasm.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAWD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAwH7E"}
1
+ {"version":3,"file":"with-wasm.d.ts","sourceRoot":"","sources":["../src/with-wasm.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAWD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CA0G7E"}
package/dist/with-wasm.js CHANGED
@@ -22,6 +22,31 @@ function have(cmd) {
22
22
  return false;
23
23
  }
24
24
  }
25
+ /**
26
+ * GH #21: a `wasm-pack --target nodejs` output is CommonJS, but it lands inside
27
+ * an ESM (`"type":"module"`) harness — so Node would parse the CJS shim as ESM
28
+ * and `__dirname` (used to locate the `.wasm`) breaks. Force `{"type":"commonjs"}`
29
+ * into the wasm dir's package.json so the shim loads as CJS, and remove the
30
+ * `.gitignore` (`*`) wasm-pack drops, which would otherwise prune `wasm/` from
31
+ * the npm tarball. Extracted + exported so it is unit-testable without a real
32
+ * wasm-pack build. Returns the CJS entry filename (wasm-pack's `main`, else
33
+ * `index.js`).
34
+ */
35
+ export function markWasmDirCommonjs(outDir) {
36
+ rmSync(join(outDir, '.gitignore'), { force: true });
37
+ const wasmPkgPath = join(outDir, 'package.json');
38
+ let wasmPkg = {};
39
+ try {
40
+ wasmPkg = JSON.parse(readFileSync(wasmPkgPath, 'utf8'));
41
+ }
42
+ catch {
43
+ /* wasm-pack always writes one; tolerate absence */
44
+ }
45
+ wasmPkg.type = 'commonjs';
46
+ const entry = typeof wasmPkg.main === 'string' && wasmPkg.main ? wasmPkg.main : 'index.js';
47
+ writeFileSync(wasmPkgPath, JSON.stringify(wasmPkg, null, 2) + '\n');
48
+ return entry;
49
+ }
25
50
  export function wireWasm(cratePath, targetDir) {
26
51
  const lines = [];
27
52
  const crate = resolve(process.cwd(), cratePath);
@@ -46,22 +71,7 @@ export function wireWasm(cratePath, targetDir) {
46
71
  catch (e) {
47
72
  return { ok: false, lines: [`--with-wasm: wasm-pack build failed: ${e.message}`] };
48
73
  }
49
- // GH #21: the nodejs target is CommonJS. wasm-pack drops a `.gitignore`
50
- // containing "*" (which would also prune wasm/ from any npm tarball) and a
51
- // package.json without a type field. Remove the .gitignore and force
52
- // type:commonjs so the CJS shim loads correctly under an ESM harness.
53
- rmSync(join(outDir, '.gitignore'), { force: true });
54
- const wasmPkgPath = join(outDir, 'package.json');
55
- let wasmPkg = {};
56
- try {
57
- wasmPkg = JSON.parse(readFileSync(wasmPkgPath, 'utf8'));
58
- }
59
- catch {
60
- /* wasm-pack always writes one; tolerate absence */
61
- }
62
- wasmPkg.type = 'commonjs';
63
- const entry = typeof wasmPkg.main === 'string' && wasmPkg.main ? wasmPkg.main : 'index.js';
64
- writeFileSync(wasmPkgPath, JSON.stringify(wasmPkg, null, 2) + '\n');
74
+ const entry = markWasmDirCommonjs(outDir);
65
75
  // Add wasm/** to the harness package.json `files` (so it publishes) and a
66
76
  // `wasm` script that runs the loader.
67
77
  const harnessPkgPath = join(targetDir, 'package.json');
@@ -1 +1 @@
1
- {"version":3,"file":"with-wasm.js","sourceRoot":"","sources":["../src/with-wasm.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,uEAAuE;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAO1C,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,SAAiB;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,iCAAiC,KAAK,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,2CAA2C;gBAC3C,4EAA4E;gBAC5E,mFAAmF;aACpF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,QAAQ,CACN,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EACxG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAC7D,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,wCAAyC,CAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAChG,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,qEAAqE;IACrE,sEAAsE;IACtE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,IAAI,OAAO,GAA4B,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,OAAO,CAAC,IAAe,CAAC,CAAC,CAAC,UAAU,CAAC;IACvG,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,sCAAsC;IACtC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAA4B,CAAC;QACzF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACjF,CAAC;IAED,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,MAAM,GAAG;;;;;;;;;gDAS+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;CAkBpE,CAAC;IACA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IAE1D,8EAA8E;IAC9E,MAAM,WAAW,GAAG;;;;;;;;;oDAS8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;CAOxE,CAAC;IACA,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,WAAW,CAAC,CAAC;IAEtE,KAAK,CAAC,IAAI,CACR,sBAAsB,KAAK,0EAA0E,EACrG,4EAA4E,EAC5E,iCAAiC,CAClC,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"with-wasm.js","sourceRoot":"","sources":["../src/with-wasm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metaharness",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "MetaHarness — mint a custom AI agent harness from any repo. Browser Studio + `npx metaharness` CLI. Runs on Claude Code, Codex, pi.dev, Hermes, OpenClaw, RVM.",
5
5
  "homepage": "https://github.com/ruvnet/agent-harness-generator",
6
6
  "repository": {
@@ -2,7 +2,7 @@
2
2
 
3
3
  {{description}}
4
4
 
5
- > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator) using the `vertical:devops` template. WASM kernel, multi-host, witness-signed.
5
+ > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator) using the `vertical:devops` template. Multi-host scaffolding with a kernel that resolves native → wasm → js (js backend in the published beta; see `harness doctor`).
6
6
 
7
7
  ## Install
8
8