feat(omo-codex): bundle Hephaestus craftsman baseline for every Codex session

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-05-27 14:55:37 +09:00
parent 8d2e6bea62
commit 2200e7dc0b
4 changed files with 193 additions and 0 deletions
@@ -5,6 +5,7 @@ type PackageJson = {
readonly type: string;
readonly packageManager: string;
readonly bin: Record<string, string>;
readonly files: readonly string[];
readonly dependencies?: Record<string, unknown>;
};
@@ -67,6 +68,7 @@ describe("plugin package metadata", () => {
expect(packageJson.packageManager).toBe("npm@11.12.1");
expect(packageJson.dependencies ?? {}).toEqual({ picomatch: "^4.0.3" });
expect(packageJson.bin["codex-rules"]).toBe("./dist/cli.js");
expect(packageJson.files).toContain("bundled-rules");
expect(pluginJson.hooks).toBe("./hooks/hooks.json");
expect(cliSource.startsWith("#!/usr/bin/env node")).toBe(true);
expect(commands).toEqual([
@@ -110,10 +112,15 @@ function isPackageJson(value: unknown): value is PackageJson {
value["type"] === "module" &&
value["packageManager"] === "npm@11.12.1" &&
isStringRecord(value["bin"]) &&
isStringArray(value["files"]) &&
(dependencies === undefined || isRecord(dependencies))
);
}
function isStringArray(value: unknown): value is readonly string[] {
return Array.isArray(value) && value.every((item) => typeof item === "string");
}
function isPluginJson(value: unknown): value is PluginJson {
return isRecord(value) && typeof value["hooks"] === "string";
}