refactor(src): split oversized modules

This commit is contained in:
Peter Steinberger
2026-01-14 01:08:15 +00:00
parent b2179de839
commit bcbfb357be
675 changed files with 91476 additions and 73453 deletions

View File

@@ -0,0 +1,80 @@
import type { ClawdbotConfig } from "../../config/config.js";
import { resolveSkillConfig } from "./config.js";
import { resolveSkillKey } from "./frontmatter.js";
import type { SkillEntry, SkillSnapshot } from "./types.js";
export function applySkillEnvOverrides(params: {
skills: SkillEntry[];
config?: ClawdbotConfig;
}) {
const { skills, config } = params;
const updates: Array<{ key: string; prev: string | undefined }> = [];
for (const entry of skills) {
const skillKey = resolveSkillKey(entry.skill, entry);
const skillConfig = resolveSkillConfig(config, skillKey);
if (!skillConfig) continue;
if (skillConfig.env) {
for (const [envKey, envValue] of Object.entries(skillConfig.env)) {
if (!envValue || process.env[envKey]) continue;
updates.push({ key: envKey, prev: process.env[envKey] });
process.env[envKey] = envValue;
}
}
const primaryEnv = entry.clawdbot?.primaryEnv;
if (primaryEnv && skillConfig.apiKey && !process.env[primaryEnv]) {
updates.push({ key: primaryEnv, prev: process.env[primaryEnv] });
process.env[primaryEnv] = skillConfig.apiKey;
}
}
return () => {
for (const update of updates) {
if (update.prev === undefined) delete process.env[update.key];
else process.env[update.key] = update.prev;
}
};
}
export function applySkillEnvOverridesFromSnapshot(params: {
snapshot?: SkillSnapshot;
config?: ClawdbotConfig;
}) {
const { snapshot, config } = params;
if (!snapshot) return () => {};
const updates: Array<{ key: string; prev: string | undefined }> = [];
for (const skill of snapshot.skills) {
const skillConfig = resolveSkillConfig(config, skill.name);
if (!skillConfig) continue;
if (skillConfig.env) {
for (const [envKey, envValue] of Object.entries(skillConfig.env)) {
if (!envValue || process.env[envKey]) continue;
updates.push({ key: envKey, prev: process.env[envKey] });
process.env[envKey] = envValue;
}
}
if (
skill.primaryEnv &&
skillConfig.apiKey &&
!process.env[skill.primaryEnv]
) {
updates.push({
key: skill.primaryEnv,
prev: process.env[skill.primaryEnv],
});
process.env[skill.primaryEnv] = skillConfig.apiKey;
}
}
return () => {
for (const update of updates) {
if (update.prev === undefined) delete process.env[update.key];
else process.env[update.key] = update.prev;
}
};
}