feat(infra): standardize ESM root and harden security audit pipeline (#363)

* chore: implement ESM standardization and security attestation

Aligning root infrastructure with Node.js v24.14.0 standards.
- Set type: module in package.json to eliminate re-parsing overhead.
- Migrated Jetski Loader tests to .cjs to maintain legacy security audit compatibility.
- Verified path traversal and symlink protections with clean attestation.

* chore(ci): update pr_preflight path to .cjs for ESM compatibility

* feat(infra): surgical ESM modernization for Gemini suite

Resolved Codex P1 by reverting global root ESM shift to preserve installer stability.
- Implemented scoped 'type: module' in /docs/integrations/jetski-gemini-loader/ to eliminate re-parsing overhead.
- Updated test runner (run-test-suite.js) and CI (ci.yml) to track .cjs transitions.
- Verified zero-warning execution in Node v24.14.0.
This commit is contained in:
Champbreed
2026-03-20 18:05:56 +01:00
committed by GitHub
parent 86e9b55efb
commit b3881112c9
5 changed files with 4 additions and 2 deletions

View File

@@ -37,7 +37,7 @@ jobs:
- name: Intake PR change
id: intake
run: |
node tools/scripts/pr_preflight.js \
node tools/scripts/pr_preflight.cjs \
--base "origin/${{ github.base_ref }}" \
--head "HEAD" \
--event-path "$GITHUB_EVENT_PATH" \

View File

@@ -0,0 +1 @@
{"type": "module"}

View File

@@ -123,6 +123,7 @@ async function main() {
]),
/symlink|outside the skills root|regular file/i,
);
console.log("✅ All Jetski Loader Security Checks Passed!");
} finally {
fs.rmSync(fixtureRoot, { recursive: true, force: true });
}

View File

@@ -11,7 +11,7 @@ const LOCAL_TEST_COMMANDS = [
[path.join(TOOL_TESTS, "activate_skills_batch_security.test.js")],
[path.join(TOOL_TESTS, "build_catalog_bundles.test.js")],
[path.join(TOOL_TESTS, "claude_plugin_marketplace.test.js")],
[path.join(TOOL_TESTS, "jetski_gemini_loader.test.js")],
[path.join(TOOL_TESTS, "jetski_gemini_loader.test.cjs")],
[path.join(TOOL_TESTS, "npm_package_contents.test.js")],
[path.join(TOOL_TESTS, "setup_web_sync.test.js")],
[path.join(TOOL_TESTS, "skill_filter.test.js")],