harness-engineer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface RenderContext {
2
+ [key: string]: string | number | boolean | string[];
3
+ }
4
+ export declare function renderTemplate(template: string, context: RenderContext): string;
5
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;CACrD;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA8B/E"}
package/dist/render.js ADDED
@@ -0,0 +1,28 @@
1
+ const LIST_PATTERN = /\{\{#list\s+([a-zA-Z0-9_.-]+)\}\}/g;
2
+ const SCALAR_PATTERN = /\{\{([a-zA-Z0-9_.-]+)\}\}/g;
3
+ const REMAINING_PATTERN = /\{\{([^}]+)\}\}/g;
4
+ export function renderTemplate(template, context) {
5
+ let rendered = template.replace(LIST_PATTERN, (_, key) => {
6
+ const value = context[key];
7
+ if (!Array.isArray(value)) {
8
+ throw new Error(`Expected "${key}" to be a list placeholder.`);
9
+ }
10
+ return value.map((item) => `- ${item}`).join("\n");
11
+ });
12
+ rendered = rendered.replace(SCALAR_PATTERN, (_, key) => {
13
+ const value = context[key];
14
+ if (Array.isArray(value)) {
15
+ throw new Error(`Expected "${key}" to be a scalar placeholder.`);
16
+ }
17
+ if (value === undefined) {
18
+ throw new Error(`Missing template value for "${key}".`);
19
+ }
20
+ return String(value);
21
+ });
22
+ const remaining = rendered.match(REMAINING_PATTERN);
23
+ if (remaining) {
24
+ throw new Error(`Unresolved template placeholders: ${remaining.join(", ")}`);
25
+ }
26
+ return rendered;
27
+ }
28
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAC1D,MAAM,cAAc,GAAG,4BAA4B,CAAC;AACpD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAsB;IACrE,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,6BAA6B,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,+BAA+B,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StatusResult } from "./types.js";
2
+ export declare function getStatus(cwd: string): Promise<StatusResult>;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkDlE"}
package/dist/status.js ADDED
@@ -0,0 +1,50 @@
1
+ import { join } from "node:path";
2
+ import { HARNESS_CONFIG_FILE, loadHarnessConfig } from "./config.js";
3
+ import { getPreset } from "./presets.js";
4
+ import { fileContentEquals, listDirectories, listMarkdownSlugs, pathExists } from "./utils.js";
5
+ export async function getStatus(cwd) {
6
+ const config = await loadHarnessConfig(cwd);
7
+ const preset = getPreset(config.preset);
8
+ const expectedFiles = preset.buildManagedFiles(config);
9
+ const missingManagedFiles = [];
10
+ const driftedManagedFiles = [];
11
+ for (const entry of expectedFiles) {
12
+ const filePath = join(cwd, entry.path);
13
+ if (!(await pathExists(filePath))) {
14
+ missingManagedFiles.push(entry.path);
15
+ continue;
16
+ }
17
+ if (!(await fileContentEquals(filePath, entry.content))) {
18
+ driftedManagedFiles.push(entry.path);
19
+ }
20
+ }
21
+ const activeTasks = await listMarkdownSlugs(join(cwd, config.paths.plansActiveDir));
22
+ const activeLogDirs = await listDirectories(join(cwd, config.paths.logsActiveDir));
23
+ const allTaskSlugs = [...new Set([...activeTasks, ...activeLogDirs])].sort((left, right) => left.localeCompare(right));
24
+ const inconsistentTasks = [];
25
+ for (const slug of allTaskSlugs) {
26
+ const missing = [];
27
+ if (!activeTasks.includes(slug)) {
28
+ missing.push(`docs/plans/active/${slug}.md`);
29
+ }
30
+ const runPath = join(cwd, config.paths.logsActiveDir, slug, "run.md");
31
+ const handoffPath = join(cwd, config.paths.logsActiveDir, slug, "handoff.md");
32
+ if (!(await pathExists(runPath))) {
33
+ missing.push(join(config.paths.logsActiveDir, slug, "run.md").replaceAll("\\", "/"));
34
+ }
35
+ if (!(await pathExists(handoffPath))) {
36
+ missing.push(join(config.paths.logsActiveDir, slug, "handoff.md").replaceAll("\\", "/"));
37
+ }
38
+ if (missing.length > 0) {
39
+ inconsistentTasks.push({ slug, missing });
40
+ }
41
+ }
42
+ return {
43
+ configPath: HARNESS_CONFIG_FILE,
44
+ activeTasks,
45
+ missingManagedFiles,
46
+ driftedManagedFiles,
47
+ inconsistentTasks,
48
+ };
49
+ }
50
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { TaskArchiveOptions, TaskNewOptions } from "./types.js";
2
+ export declare function createTask(options: TaskNewOptions): Promise<void>;
3
+ export declare function archiveTask(options: TaskArchiveOptions): Promise<void>;
4
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGrE,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5E"}
package/dist/tasks.js ADDED
@@ -0,0 +1,121 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { loadHarnessConfig } from "./config.js";
4
+ import { ensureDir, ensureTrailingNewline, movePath, pathExists, writeTextFile } from "./utils.js";
5
+ export async function createTask(options) {
6
+ const config = await loadHarnessConfig(options.cwd);
7
+ const planPath = join(options.cwd, config.paths.plansActiveDir, `${options.slug}.md`);
8
+ const runPath = join(options.cwd, config.paths.logsActiveDir, options.slug, "run.md");
9
+ const handoffPath = join(options.cwd, config.paths.logsActiveDir, options.slug, "handoff.md");
10
+ if (await pathExists(planPath)) {
11
+ throw new Error(`Task "${options.slug}" already exists in active plans.`);
12
+ }
13
+ await ensureDir(join(options.cwd, config.paths.logsActiveDir, options.slug));
14
+ await writeTextFile(planPath, buildPlanTemplate(options.slug, options.taskClass));
15
+ await writeTextFile(runPath, buildRunTemplate(options.slug));
16
+ await writeTextFile(handoffPath, buildHandoffTemplate(options.slug));
17
+ }
18
+ export async function archiveTask(options) {
19
+ const config = await loadHarnessConfig(options.cwd);
20
+ const activePlanPath = join(options.cwd, config.paths.plansActiveDir, `${options.slug}.md`);
21
+ const completedPlanPath = join(options.cwd, config.paths.plansCompletedDir, `${options.slug}.md`);
22
+ const activeLogDir = join(options.cwd, config.paths.logsActiveDir, options.slug);
23
+ const completedLogDir = join(options.cwd, config.paths.logsCompletedDir, options.slug);
24
+ if (!(await pathExists(activePlanPath))) {
25
+ throw new Error(`Task "${options.slug}" does not exist in active plans.`);
26
+ }
27
+ if (!(await pathExists(activeLogDir))) {
28
+ throw new Error(`Task "${options.slug}" does not have active logs to archive.`);
29
+ }
30
+ const currentPlan = await readFile(activePlanPath, "utf8");
31
+ const archivedPlan = ensureCompletionSections(currentPlan);
32
+ await writeTextFile(activePlanPath, archivedPlan);
33
+ await movePath(activePlanPath, completedPlanPath);
34
+ await movePath(activeLogDir, completedLogDir);
35
+ }
36
+ function buildPlanTemplate(slug, taskClass) {
37
+ return ensureTrailingNewline(`# ${slug}
38
+
39
+ ## Status
40
+
41
+ - Owner: \`main-thread\`
42
+ - Status: \`active\`
43
+ - Task class: \`${taskClass}\`
44
+ - Task slug: \`${slug}\`
45
+
46
+ ## Background
47
+
48
+ ## Goal
49
+
50
+ ## Scope
51
+
52
+ ## Out Of Scope
53
+
54
+ ## Truth Sources
55
+
56
+ ## Current Decisions
57
+
58
+ ## Work Breakdown
59
+
60
+ ## Validation Plan
61
+
62
+ ## Risks And Blockers
63
+
64
+ ## Required Roles
65
+
66
+ ## Required Memory Or Handoff Updates`);
67
+ }
68
+ function buildRunTemplate(slug) {
69
+ return ensureTrailingNewline(`# ${slug} Run Log
70
+
71
+ ## Context
72
+
73
+ ## Timeline
74
+
75
+ ### Initial Setup
76
+
77
+ - Task created.
78
+
79
+ ## Commands
80
+
81
+ ## Verification Notes
82
+
83
+ ## Open Questions`);
84
+ }
85
+ function buildHandoffTemplate(slug) {
86
+ return ensureTrailingNewline(`# ${slug} Handoff
87
+
88
+ ## Current Goal
89
+
90
+ ## Completed
91
+
92
+ ## In Progress
93
+
94
+ ## Key Files
95
+
96
+ ## Key Decisions
97
+
98
+ ## Risks
99
+
100
+ ## Suggested Next Steps
101
+
102
+ ## Suggested Next Role`);
103
+ }
104
+ function ensureCompletionSections(planContents) {
105
+ const requiredSections = [
106
+ "## Result",
107
+ "## Actual Changes",
108
+ "## Verified",
109
+ "## Unverified",
110
+ "## Residual Risks",
111
+ "## Follow-Up",
112
+ ];
113
+ let next = ensureTrailingNewline(planContents).trimEnd();
114
+ for (const section of requiredSections) {
115
+ if (!next.includes(section)) {
116
+ next = `${next}\n\n${section}\n`;
117
+ }
118
+ }
119
+ return ensureTrailingNewline(next);
120
+ }
121
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ export type HarnessLanguage = "en" | "zh" | "bilingual";
2
+ export type TaskClass = "A" | "B" | "C";
3
+ export interface HarnessPathsConfig {
4
+ docsRoot: string;
5
+ sourceOfTruthDir: string;
6
+ runbooksDir: string;
7
+ plansActiveDir: string;
8
+ plansCompletedDir: string;
9
+ logsActiveDir: string;
10
+ logsCompletedDir: string;
11
+ codexDir: string;
12
+ codexAgentsDir: string;
13
+ codexMemoryDir: string;
14
+ codexEnvironmentFile: string;
15
+ }
16
+ export interface HarnessRoleConfig {
17
+ key: string;
18
+ name: string;
19
+ purpose: string;
20
+ model: string;
21
+ reasoningEffort: "low" | "medium" | "high" | "xhigh";
22
+ runbookFile: string;
23
+ memoryFile: string;
24
+ handoffPathHint: string;
25
+ readFirst: string[];
26
+ scope: string[];
27
+ doNot: string[];
28
+ handoffRequired: string[];
29
+ defaultOutput: string[];
30
+ }
31
+ export interface TruthSourceConfig {
32
+ key: string;
33
+ path: string;
34
+ title: string;
35
+ summary: string;
36
+ }
37
+ export interface HarnessConfig {
38
+ projectName: string;
39
+ preset: string;
40
+ language: HarnessLanguage;
41
+ version: number;
42
+ devCommand: string | null;
43
+ paths: HarnessPathsConfig;
44
+ roles: HarnessRoleConfig[];
45
+ truthSources: TruthSourceConfig[];
46
+ managedFiles: string[];
47
+ }
48
+ export interface InitOptions {
49
+ cwd: string;
50
+ targetDir?: string;
51
+ projectName: string;
52
+ preset: string;
53
+ language?: HarnessLanguage;
54
+ yes?: boolean;
55
+ force?: boolean;
56
+ devCommand?: string;
57
+ packageVersion?: string;
58
+ }
59
+ export interface InitResult {
60
+ targetDir: string;
61
+ createdFiles: string[];
62
+ skippedFiles: string[];
63
+ overwrittenFiles: string[];
64
+ }
65
+ export interface TaskNewOptions {
66
+ cwd: string;
67
+ slug: string;
68
+ taskClass: TaskClass;
69
+ }
70
+ export interface TaskArchiveOptions {
71
+ cwd: string;
72
+ slug: string;
73
+ }
74
+ export interface StatusResult {
75
+ configPath: string;
76
+ activeTasks: string[];
77
+ missingManagedFiles: string[];
78
+ driftedManagedFiles: string[];
79
+ inconsistentTasks: Array<{
80
+ slug: string;
81
+ missing: string[];
82
+ }>;
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ export declare function pathExists(filePath: string): Promise<boolean>;
2
+ export declare function ensureDir(dirPath: string): Promise<void>;
3
+ export declare function readJsonFile<T>(filePath: string): Promise<T>;
4
+ export declare function writeTextFile(filePath: string, contents: string): Promise<void>;
5
+ export declare function ensureTrailingNewline(contents: string): string;
6
+ export declare function formatJson(value: unknown): string;
7
+ export declare function toPackageName(projectName: string): string;
8
+ export declare function escapeTomlString(value: string): string;
9
+ export declare function renderTomlArray(items: string[]): string;
10
+ export declare function sortPaths(paths: Iterable<string>): string[];
11
+ export declare function listMarkdownSlugs(dirPath: string): Promise<string[]>;
12
+ export declare function listDirectories(dirPath: string): Promise<string[]>;
13
+ export declare function fileContentEquals(filePath: string, expected: string): Promise<boolean>;
14
+ export declare function movePath(sourcePath: string, destinationPath: string): Promise<void>;
15
+ export declare function isDirectory(dirPath: string): Promise<boolean>;
16
+ export declare function joinLines(lines: Array<string | false | null | undefined>): string;
17
+ export declare function relativePathList(basePaths: string[]): string;
18
+ export declare function dedent(text: string): string;
19
+ export declare function joinPath(...segments: string[]): string;
20
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAElE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAE3D;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW1E;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWxE;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAEjF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc3C;AAED,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD"}
package/dist/utils.js ADDED
@@ -0,0 +1,108 @@
1
+ import { access, mkdir, readFile, readdir, rename, stat, writeFile } from "node:fs/promises";
2
+ import { constants } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ export async function pathExists(filePath) {
5
+ try {
6
+ await access(filePath, constants.F_OK);
7
+ return true;
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ export async function ensureDir(dirPath) {
14
+ await mkdir(dirPath, { recursive: true });
15
+ }
16
+ export async function readJsonFile(filePath) {
17
+ return JSON.parse(await readFile(filePath, "utf8"));
18
+ }
19
+ export async function writeTextFile(filePath, contents) {
20
+ await ensureDir(dirname(filePath));
21
+ await writeFile(filePath, ensureTrailingNewline(contents), "utf8");
22
+ }
23
+ export function ensureTrailingNewline(contents) {
24
+ return contents.endsWith("\n") ? contents : `${contents}\n`;
25
+ }
26
+ export function formatJson(value) {
27
+ return `${JSON.stringify(value, null, 2)}\n`;
28
+ }
29
+ export function toPackageName(projectName) {
30
+ const normalized = projectName
31
+ .trim()
32
+ .toLowerCase()
33
+ .replace(/[^a-z0-9]+/g, "-")
34
+ .replace(/^-+|-+$/g, "");
35
+ return normalized.length > 0 ? normalized : "harness-project";
36
+ }
37
+ export function escapeTomlString(value) {
38
+ return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
39
+ }
40
+ export function renderTomlArray(items) {
41
+ return `[\n${items.map((item) => ` "${escapeTomlString(item)}",`).join("\n")}\n]`;
42
+ }
43
+ export function sortPaths(paths) {
44
+ return [...paths].sort((left, right) => left.localeCompare(right));
45
+ }
46
+ export async function listMarkdownSlugs(dirPath) {
47
+ if (!(await pathExists(dirPath))) {
48
+ return [];
49
+ }
50
+ const items = await readdir(dirPath, { withFileTypes: true });
51
+ return items
52
+ .filter((item) => item.isFile() && item.name.endsWith(".md") && item.name !== "README.md")
53
+ .map((item) => item.name.slice(0, -3))
54
+ .sort((left, right) => left.localeCompare(right));
55
+ }
56
+ export async function listDirectories(dirPath) {
57
+ if (!(await pathExists(dirPath))) {
58
+ return [];
59
+ }
60
+ const items = await readdir(dirPath, { withFileTypes: true });
61
+ return items
62
+ .filter((item) => item.isDirectory())
63
+ .map((item) => item.name)
64
+ .sort((left, right) => left.localeCompare(right));
65
+ }
66
+ export async function fileContentEquals(filePath, expected) {
67
+ if (!(await pathExists(filePath))) {
68
+ return false;
69
+ }
70
+ const actual = await readFile(filePath, "utf8");
71
+ return actual === ensureTrailingNewline(expected);
72
+ }
73
+ export async function movePath(sourcePath, destinationPath) {
74
+ await ensureDir(dirname(destinationPath));
75
+ await rename(sourcePath, destinationPath);
76
+ }
77
+ export async function isDirectory(dirPath) {
78
+ try {
79
+ const info = await stat(dirPath);
80
+ return info.isDirectory();
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ export function joinLines(lines) {
87
+ return lines.filter((line) => Boolean(line)).join("\n");
88
+ }
89
+ export function relativePathList(basePaths) {
90
+ return basePaths.map((path) => `- \`${path}\``).join("\n");
91
+ }
92
+ export function dedent(text) {
93
+ const trimmed = text.replace(/^\n+|\n+$/g, "");
94
+ const lines = trimmed.split("\n");
95
+ const indent = lines
96
+ .filter((line) => line.trim().length > 0)
97
+ .reduce((current, line) => {
98
+ const match = /^(\s*)/.exec(line);
99
+ const lineIndent = match?.[1]?.length ?? 0;
100
+ return Math.min(current, lineIndent);
101
+ }, Number.POSITIVE_INFINITY);
102
+ const normalizedIndent = Number.isFinite(indent) ? indent : 0;
103
+ return lines.map((line) => line.slice(normalizedIndent)).join("\n");
104
+ }
105
+ export function joinPath(...segments) {
106
+ return join(...segments).replaceAll("\\", "/");
107
+ }
108
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "harness-engineer",
3
+ "version": "0.1.0",
4
+ "description": "Open-source Codex harness scaffolding CLI for repository-owned orchestration workflows.",
5
+ "keywords": [
6
+ "codex",
7
+ "cli",
8
+ "scaffold",
9
+ "agent",
10
+ "orchestration",
11
+ "workflow"
12
+ ],
13
+ "homepage": "https://github.com/Dai5297/harness-engineer-codex#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/Dai5297/harness-engineer-codex/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/Dai5297/harness-engineer-codex.git"
20
+ },
21
+ "license": "MIT",
22
+ "author": "dai",
23
+ "type": "module",
24
+ "exports": {
25
+ ".": "./dist/index.js",
26
+ "./package.json": "./package.json"
27
+ },
28
+ "main": "index.js",
29
+ "bin": {
30
+ "harness-engineer": "dist/cli.js"
31
+ },
32
+ "directories": {
33
+ "test": "tests"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "README.zh-CN.md",
39
+ "LICENSE"
40
+ ],
41
+ "scripts": {
42
+ "build": "tsc -p tsconfig.build.json",
43
+ "clean": "rm -rf dist coverage",
44
+ "prepack": "pnpm build",
45
+ "prepublishOnly": "pnpm test && pnpm build",
46
+ "test": "vitest run",
47
+ "test:coverage": "vitest run --coverage",
48
+ "typecheck": "tsc -p tsconfig.json --noEmit"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^22.15.30",
52
+ "@vitest/coverage-v8": "^3.2.4",
53
+ "typescript": "^5.8.3",
54
+ "vitest": "^3.2.4"
55
+ },
56
+ "engines": {
57
+ "node": ">=20.0.0"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public"
61
+ },
62
+ "packageManager": "pnpm@10.28.2"
63
+ }