mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-17 08:36:25 +03:00
Build: ship the launcher instead of bundling the JS engine
readSourceFiles no longer copies cli/engine into the skill; the scripts
payload is the launcher (executable bit preserved through dist, plugin/, and
universal.zip), impeccable.cmd, VERSION (synced from ENGINE_VERSION on every
build), the page JS, and command-metadata.json. Hook manifests call
`<scripts>/impeccable hook` behind an existence guard (Codex adds a
commandWindows sibling calling impeccable.cmd; Cursor runs hook-before-edit;
GitHub keeps the git rev-parse form; Grok mirrors Claude); the Node probe and
systemMessage notice are gone. build:release fetches the pinned engine for
every target (lenient) and stages bin/<os-arch>/ into the dist skill copies
after root harness dirs and plugin/ were synced, so git-delivered trees stay
launcher-only. The detection-rule count check reads the vendored
extension/detector/antipatterns.json and is skipped when absent.
build:browser is a stub; the codex prefix rewrite leaves
`{{scripts_path}}/impeccable` alone.
Prepared with AI assistance (Claude Code).
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import {
|
||||
cleanDir,
|
||||
@@ -359,7 +360,12 @@ export function createTransformer(config) {
|
||||
ensureDir(scriptsOutDir);
|
||||
for (const script of skill.scripts) {
|
||||
const scriptContent = replaceScriptProviderMarker(script.content, placeholderKey, provider);
|
||||
writeFile(path.join(scriptsOutDir, script.name), scriptContent);
|
||||
const outPath = path.join(scriptsOutDir, script.name);
|
||||
writeFile(outPath, scriptContent);
|
||||
// The launcher must stay executable in every provider copy; a
|
||||
// plain write would drop the bit and `impeccable context` would
|
||||
// fail with EACCES on the first session.
|
||||
if (script.mode) fs.chmodSync(outPath, script.mode);
|
||||
scriptCount++;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user