tools/core/runners/conduct.runner.ts
tools/core/runners/conduct.runner.ts is a file in Coordination Surface. 67 lines of code and 19 definitions.
import { existsSync, readFileSync } from "node:fs";
import { halfStated, rosterMissing, rowMalformed, rowMissing, undeclaredHalf } from "../strings/conduct.strings.ts";
import { FAILING_QUESTIONS } from "../constants/conduct.constants.ts";
import { resolve } from "node:path";
import { writeRepair } from "../writers/repair.writer.ts";
const ROW = "| `";
const CELL = "|";
const UNBUILT = "none";
const ABSENT = "—";
interface HalfRequest {
readonly repoRoot: string;
readonly target: string;
readonly slug: string;
readonly value: string;
readonly registered: readonly string[];
}
interface HalfOutcome {
readonly code: number;
readonly message: string;
}
const rowSlug = function rowSlug(line: string): string {
if (!line.startsWith(ROW)) {
return "";
}
const rest = line.slice(ROW.length);
const close = rest.indexOf("`");
return close === -1 ? "" : rest.slice(0, close);
};
export const isDeclaredHalf = function isDeclaredHalf(value: string, registered: readonly string[]): boolean {
return value === UNBUILT || value === ABSENT || FAILING_QUESTIONS.includes(value) || registered.includes(value);
};
export const withThirdCell = function withThirdCell(line: string, value: string): string | null {
const cells = line.split(CELL);
if (cells.length < 5) {
return null;
}
cells[3] = ` \`${value}\` `;
return cells.join(CELL);
};
export const runHalf = function runHalf(request: HalfRequest): HalfOutcome {
const absolute = resolve(request.repoRoot, request.target);
if (!existsSync(absolute)) {
return { code: 2, message: rosterMissing(request.target) };
}
if (!isDeclaredHalf(request.value, request.registered)) {
return { code: 2, message: undeclaredHalf(request.value, FAILING_QUESTIONS) };
}
const source = readFileSync(absolute, "utf8");
const lines = source.split("\n");
const at = lines.findIndex((line) => rowSlug(line) === request.slug);
if (at === -1) {
return { code: 2, message: rowMissing(request.slug, request.target) };
}
const written = withThirdCell(lines[at] ?? "", request.value);
if (written === null) {
return { code: 2, message: rowMalformed(request.slug) };
}
const outcome = writeRepair(
{ declared: "whole", repoRoot: request.repoRoot },
request.target,
[...lines.slice(0, at), written, ...lines.slice(at + 1)].join("\n"),
);
if (!outcome.written) {
return { code: 2, message: outcome.refusal ?? "" };
}
return { code: 0, message: halfStated(request.slug, request.value) };
};