Files
oh-my-claudecode/scripts/build-skill-bridge.mjs
Bellman 09817cbb3b fix: ship complete plugin runtime closure (#3479)
* fix: ship complete plugin runtime closure

* fix: refresh plugin runtime closure after dev merge

* test: combine package closure regressions after dev merge

* test: extract full package for runtime closure parity

* fix(ci): fail closed on generated PR artifacts

* test(workflow): accept fail-closed transcript race

* fix(session-end): bound deferred recovery

* fix(session-end): close recovery edge cases

* fix(session-end): terminalize exhausted recovery

* fix(session-end): release detached action handles

* fix(plugin): verify complete package closure

* fix(session-end): recover sealed wiki interleaving

* fix(plugin): ship complete declaration closure

* test(session-end): tolerate detached teardown lag

* test(session-end): wait for detached shutdown

* fix(session-end): preserve OpenClaw routing context

* fix(shipping): bind generated trust and recovery routing

* chore(shipping): remove unreachable generated extras

* fix(shipping): support exact generated deletions
2026-07-19 01:01:02 +09:00

43 lines
1.1 KiB
JavaScript

#!/usr/bin/env node
/**
* Build script for skill-bridge.cjs bundle
* Bundles the TypeScript learner bridge module into a standalone CJS file
* that skill-injector.mjs can require()
*/
import * as esbuild from 'esbuild';
import { mkdir } from 'fs/promises';
import { dirname } from 'path';
const outfile = 'dist/hooks/skill-bridge.cjs';
// Ensure output directory exists
await mkdir(dirname(outfile), { recursive: true });
const watchMode = process.argv.includes('--watch');
const buildConfig = {
entryPoints: ['src/hooks/learner/bridge.ts'],
bundle: true,
preserveSymlinks: true,
platform: 'node',
target: 'node18',
format: 'cjs',
outfile,
// Externalize Node.js built-ins (they're available at runtime)
external: [
'fs', 'path', 'os', 'util', 'stream', 'events',
'buffer', 'crypto', 'http', 'https', 'url',
'child_process', 'assert', 'module'
],
};
if (watchMode) {
const ctx = await esbuild.context(buildConfig);
await ctx.watch();
console.error(`Watching ${outfile}...`);
} else {
await esbuild.build(buildConfig);
console.error(`Built ${outfile}`);
}