fix(omo-claude): copy base tsconfig.json + ignore build artifacts in sync-components
tsconfig.build.json extends ./tsconfig.json (types:[node], strict); without the base, vendored components lost @types/node and strict config. Also exclude dist/ and node_modules/ from the --check comparison (they are build artifacts, not synced source). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
// Vendors omo-codex plugin components into the omo-claude (Claude Code) plugin.
|
// Vendors omo-codex plugin components into the omo-claude (Claude Code) plugin.
|
||||||
//
|
//
|
||||||
// For each handled component this script copies the component's runtime-source
|
// For each handled component this script copies the component's runtime-source
|
||||||
// surface (src/, package.json, tsconfig.build.json, hooks/hooks.json, skills/)
|
// surface (src/, package.json, tsconfig.json, tsconfig.build.json,
|
||||||
// from packages/omo-codex/plugin/components/<c>/ into
|
// hooks/hooks.json, skills/) from packages/omo-codex/plugin/components/<c>/ into
|
||||||
// packages/omo-claude/plugin/components/<c>/, then applies a DECLARATIVE PATCH
|
// packages/omo-claude/plugin/components/<c>/, then applies a DECLARATIVE PATCH
|
||||||
// MANIFEST of string replacements to turn the Codex component into the vendored
|
// MANIFEST of string replacements to turn the Codex component into the vendored
|
||||||
// Claude Code component.
|
// Claude Code component.
|
||||||
@@ -46,7 +46,7 @@ export const HANDLED_COMPONENTS = [
|
|||||||
// Per-component copy surface. Directories are copied recursively; files are
|
// Per-component copy surface. Directories are copied recursively; files are
|
||||||
// copied verbatim. Entries that do not exist in the source are skipped.
|
// copied verbatim. Entries that do not exist in the source are skipped.
|
||||||
const COPY_DIRS = ["src", "skills"];
|
const COPY_DIRS = ["src", "skills"];
|
||||||
const COPY_FILES = ["package.json", "tsconfig.build.json", join("hooks", "hooks.json")];
|
const COPY_FILES = ["package.json", "tsconfig.json", "tsconfig.build.json", join("hooks", "hooks.json")];
|
||||||
|
|
||||||
// Shared hooks.json env-var transform applied to EVERY handled component that
|
// Shared hooks.json env-var transform applied to EVERY handled component that
|
||||||
// ships a hooks/hooks.json. Only replaces tokens that are actually present.
|
// ships a hooks/hooks.json. Only replaces tokens that are actually present.
|
||||||
@@ -452,12 +452,17 @@ async function writeComponent(component, files) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Build artifacts and installed deps are not part of the synced source surface;
|
||||||
|
// `--check` compares source only, so these are ignored when reading the dest.
|
||||||
|
const DEST_IGNORED_PREFIXES = ["dist/", "node_modules/"];
|
||||||
|
|
||||||
async function readDestFiles(component) {
|
async function readDestFiles(component) {
|
||||||
const destRoot = join(DEST_COMPONENTS_ROOT, component);
|
const destRoot = join(DEST_COMPONENTS_ROOT, component);
|
||||||
const files = new Map();
|
const files = new Map();
|
||||||
if (!(await pathExists(destRoot))) return files;
|
if (!(await pathExists(destRoot))) return files;
|
||||||
for (const fullPath of await collectFiles(destRoot)) {
|
for (const fullPath of await collectFiles(destRoot)) {
|
||||||
const relPath = normalizeRel(relative(destRoot, fullPath));
|
const relPath = normalizeRel(relative(destRoot, fullPath));
|
||||||
|
if (DEST_IGNORED_PREFIXES.some((prefix) => relPath.startsWith(prefix))) continue;
|
||||||
files.set(relPath, await readFile(fullPath));
|
files.set(relPath, await readFile(fullPath));
|
||||||
}
|
}
|
||||||
return files;
|
return files;
|
||||||
|
|||||||
Reference in New Issue
Block a user