@metaharness/kernel 0.1.0 → 0.1.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/dist/index.d.ts CHANGED
@@ -14,5 +14,22 @@ interface KernelBackend {
14
14
  * Load the kernel. native > wasm > pure-JS. The JS backend is the floor, so
15
15
  * this never rejects with a missing-module error. Cached.
16
16
  */
17
+ /** Test-only: clear the cached backend + recorded errors so a subsequent
18
+ * loadKernel() re-resolves (e.g. after changing METAHARNESS_KERNEL_BACKEND). */
19
+ export declare function _resetKernelCacheForTests(): void;
17
20
  export declare function loadKernel(): Promise<KernelBackend>;
21
+ /**
22
+ * GH #20/#22: backend diagnostics for `doctor` and honest capability reporting.
23
+ * Returns the resolved backend, the requested backend (if any), and the reason
24
+ * each higher-tier backend was unavailable. Triggers resolution if needed.
25
+ */
26
+ export interface KernelDiagnostics {
27
+ resolved: 'native' | 'wasm' | 'js';
28
+ requested: string | null;
29
+ reasons: {
30
+ native?: string;
31
+ wasm?: string;
32
+ };
33
+ }
34
+ export declare function kernelDiagnostics(): Promise<KernelDiagnostics>;
18
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzG,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,UAAU,IAAI,UAAU,CAAC;IACzB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAuGD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAKzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzG,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,UAAU,IAAI,UAAU,CAAC;IACzB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAuHD;;;GAGG;AACH;gFACgF;AAChF,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAwCzD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAIpE"}
package/dist/index.js CHANGED
@@ -10,19 +10,25 @@
10
10
  // but js is the floor — the kernel is always loadable. (ADR-002a §fallback.)
11
11
  import { createRequire } from 'node:module';
12
12
  let _cached = null;
13
+ // GH #20/#22: remember WHY a higher-tier backend was unavailable so `doctor`
14
+ // and a requested-but-missing backend can report the actual reason instead of
15
+ // silently using js.
16
+ const _backendErrors = {};
13
17
  async function loadNative() {
18
+ const plat = `${process.platform}-${process.arch}`;
19
+ const map = {
20
+ 'darwin-arm64': '@metaharness/kernel-darwin-arm64',
21
+ 'darwin-x64': '@metaharness/kernel-darwin-x64',
22
+ 'linux-x64': '@metaharness/kernel-linux-x64-gnu',
23
+ 'linux-arm64': '@metaharness/kernel-linux-arm64-gnu',
24
+ 'win32-x64': '@metaharness/kernel-win32-x64-msvc',
25
+ };
26
+ const pkg = map[plat];
27
+ if (!pkg) {
28
+ _backendErrors.native = `no native package mapping for platform "${plat}"`;
29
+ return null;
30
+ }
14
31
  try {
15
- const plat = `${process.platform}-${process.arch}`;
16
- const map = {
17
- 'darwin-arm64': '@metaharness/kernel-darwin-arm64',
18
- 'darwin-x64': '@metaharness/kernel-darwin-x64',
19
- 'linux-x64': '@metaharness/kernel-linux-x64-gnu',
20
- 'linux-arm64': '@metaharness/kernel-linux-arm64-gnu',
21
- 'win32-x64': '@metaharness/kernel-win32-x64-msvc',
22
- };
23
- const pkg = map[plat];
24
- if (!pkg)
25
- return null;
26
32
  const mod = await import(pkg);
27
33
  return {
28
34
  kernelInfo: () => mod.kernelInfo(),
@@ -31,27 +37,32 @@ async function loadNative() {
31
37
  backend: 'native',
32
38
  };
33
39
  }
34
- catch {
40
+ catch (e) {
41
+ _backendErrors.native = `optional dependency "${pkg}" not installed (${e.message})`;
35
42
  return null;
36
43
  }
37
44
  }
38
45
  async function loadWasm() {
39
46
  try {
40
- // @ts-ignore — generated by `wasm-pack build` into ../pkg/, absent during
41
- // a TS-only build (the WASM CI job builds it separately). A miss is
42
- // non-fatal: we fall through to the pure-JS backend below.
47
+ // @ts-ignore — generated by `wasm-pack build --target nodejs` into ../pkg/.
48
+ // The nodejs target is CommonJS and auto-initializes the wasm on require
49
+ // (no init() call). pkg/package.json carries {"type":"commonjs"} (GH #21)
50
+ // so this ESM module loads the CJS shim correctly; ESM interop puts the
51
+ // exports on `.default` (and, via cjs-module-lexer, as named exports too).
43
52
  const mod = await import('../pkg/ruflo_kernel_wasm.js');
44
- if (typeof mod.default === 'function') {
45
- await mod.default();
53
+ const api = typeof mod.kernelInfo === 'function' ? mod : (mod.default ?? mod);
54
+ if (typeof api.kernelInfo !== 'function') {
55
+ throw new Error('wasm shim loaded but kernelInfo() is missing');
46
56
  }
47
57
  return {
48
- kernelInfo: () => mod.kernelInfo(),
49
- mcpValidate: (s) => mod.mcpValidate(s) ?? null,
50
- version: () => mod.version(),
58
+ kernelInfo: () => api.kernelInfo(),
59
+ mcpValidate: (s) => api.mcpValidate(s) ?? null,
60
+ version: () => api.version(),
51
61
  backend: 'wasm',
52
62
  };
53
63
  }
54
- catch {
64
+ catch (e) {
65
+ _backendErrors.wasm = `wasm artifact (pkg/ruflo_kernel_wasm.js) not present in @metaharness/kernel (${e.message})`;
55
66
  return null;
56
67
  }
57
68
  }
@@ -98,16 +109,19 @@ function loadJs() {
98
109
  // Mirror the NAPI binding, which throws on unparseable spec JSON.
99
110
  throw new Error(`invalid spec json: ${e.message}`);
100
111
  }
101
- // Rules, byte-for-byte from crates/kernel/src/mcp.rs::validate.
112
+ // Rules, byte-for-byte from crates/kernel/src/mcp.rs::validate. The real
113
+ // kernel surfaces these through `Error::Mcp(..)`, whose Display prefixes
114
+ // "mcp: " — so native + wasm return "mcp: <reason>". The js floor must
115
+ // match exactly (GH #20: drift surfaced once wasm became loadable).
102
116
  if (typeof spec.name !== 'string' || spec.name.length === 0) {
103
- return 'server name is empty';
117
+ return 'mcp: server name is empty';
104
118
  }
105
119
  const hasCommand = Array.isArray(spec.command) && spec.command.length > 0;
106
120
  const hasUrl = typeof spec.url === 'string' && spec.url.length > 0;
107
121
  if (hasCommand && hasUrl)
108
- return 'command and url are mutually exclusive';
122
+ return 'mcp: command and url are mutually exclusive';
109
123
  if (!hasCommand && !hasUrl)
110
- return 'either command or url must be set';
124
+ return 'mcp: either command or url must be set';
111
125
  return null;
112
126
  },
113
127
  backend: 'js',
@@ -117,11 +131,52 @@ function loadJs() {
117
131
  * Load the kernel. native > wasm > pure-JS. The JS backend is the floor, so
118
132
  * this never rejects with a missing-module error. Cached.
119
133
  */
134
+ /** Test-only: clear the cached backend + recorded errors so a subsequent
135
+ * loadKernel() re-resolves (e.g. after changing METAHARNESS_KERNEL_BACKEND). */
136
+ export function _resetKernelCacheForTests() {
137
+ _cached = null;
138
+ delete _backendErrors.native;
139
+ delete _backendErrors.wasm;
140
+ }
120
141
  export async function loadKernel() {
121
142
  if (_cached)
122
143
  return _cached;
123
- const native = await loadNative();
124
- _cached = native ?? (await loadWasm()) ?? loadJs();
144
+ // GH #22: honor METAHARNESS_KERNEL_BACKEND=native|wasm|js. When a specific
145
+ // backend is requested but cannot load, FAIL LOUDLY with the reason instead
146
+ // of silently using js.
147
+ const requested = (process.env.METAHARNESS_KERNEL_BACKEND || '').trim().toLowerCase();
148
+ if (requested && !['native', 'wasm', 'js'].includes(requested)) {
149
+ throw new Error(`METAHARNESS_KERNEL_BACKEND="${requested}" is invalid; choose one of: native, wasm, js`);
150
+ }
151
+ if (requested === 'js') {
152
+ _cached = loadJs();
153
+ return _cached;
154
+ }
155
+ if (requested === 'native') {
156
+ const n = await loadNative();
157
+ if (!n) {
158
+ throw new Error(`kernel backend "native" was requested but is unavailable: ${_backendErrors.native ?? 'unknown reason'}. ` +
159
+ `Unset METAHARNESS_KERNEL_BACKEND to fall back to js.`);
160
+ }
161
+ _cached = n;
162
+ return _cached;
163
+ }
164
+ if (requested === 'wasm') {
165
+ const w = await loadWasm();
166
+ if (!w) {
167
+ throw new Error(`kernel backend "wasm" was requested but is unavailable: ${_backendErrors.wasm ?? 'unknown reason'}. ` +
168
+ `Unset METAHARNESS_KERNEL_BACKEND to fall back to js.`);
169
+ }
170
+ _cached = w;
171
+ return _cached;
172
+ }
173
+ // Auto: native > wasm > pure-JS (the floor).
174
+ _cached = (await loadNative()) ?? (await loadWasm()) ?? loadJs();
125
175
  return _cached;
126
176
  }
177
+ export async function kernelDiagnostics() {
178
+ const k = await loadKernel();
179
+ const requested = (process.env.METAHARNESS_KERNEL_BACKEND || '').trim().toLowerCase() || null;
180
+ return { resolved: k.backend, requested, reasons: { ..._backendErrors } };
181
+ }
127
182
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaharness/kernel",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Cross-platform kernel for the agent-harness-generator — wasm primary, NAPI-RS native fallback",
5
5
  "homepage": "https://github.com/ruvnet/agent-harness-generator",
6
6
  "repository": {
@@ -40,7 +40,8 @@
40
40
  "scripts": {
41
41
  "build": "tsc",
42
42
  "test": "vitest run",
43
- "lint": "tsc --noEmit"
43
+ "lint": "tsc --noEmit",
44
+ "build:wasm": "RUSTFLAGS= wasm-pack build ../../crates/kernel-wasm --target nodejs --release --out-dir pkg && node -e \"const f=require('fs');const j=require('./pkg/package.json');j.type='commonjs';f.writeFileSync('./pkg/package.json',JSON.stringify(j,null,2)+'\\n')\""
44
45
  },
45
46
  "keywords": [
46
47
  "agent-harness",