halfcycle 0.5.2 → 0.6.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.
- package/.claude-plugin/plugin.json +1 -1
- package/bin/bin.bundle.mjs +299 -4
- package/dist/check-report.d.ts +57 -0
- package/dist/check-report.d.ts.map +1 -0
- package/dist/check-tasks.d.ts +94 -4
- package/dist/check-tasks.d.ts.map +1 -1
- package/dist/cli-contract.d.ts +1 -1
- package/dist/cli-contract.d.ts.map +1 -1
- package/dist/cli.js +1083 -161
- package/dist/cli.js.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +178 -49
- package/dist/index.js.map +3 -3
- package/dist/ready.d.ts +103 -0
- package/dist/ready.d.ts.map +1 -0
- package/dist/review.d.ts +3 -3
- package/dist/review.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/ready.d.ts
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `npx halfcycle@latest ready <phase> [--cap <n>] [--repo <root>]`
|
|
3
|
+
* (`ready-set-for-clients` AC2, AC3).
|
|
4
|
+
*
|
|
5
|
+
* Before each round of starting workers, the coordinator runs `pace`, then this. It
|
|
6
|
+
* prints the tasks of the phase's plan that can start now, longest remaining path
|
|
7
|
+
* first, cut at the number `pace` allows, and the tasks that wait on a person.
|
|
8
|
+
*
|
|
9
|
+
* OFFLINE, ALWAYS. It reads `docs/build-records/task-plan.json`, the task list at
|
|
10
|
+
* `docs/build-records/build-tasks.json`, and each spec file the plan lists, and
|
|
11
|
+
* nothing else: no credential file, no network call, no sign-in, and not the
|
|
12
|
+
* system description, whose parts `check-tasks` checks when the plan is made.
|
|
13
|
+
*
|
|
14
|
+
* THE PLAN IS CHECKED FIRST. Both files are read with `check-tasks`' own reader
|
|
15
|
+
* (`readJsonFile`) and its missing-plan sentence, the specs with its own
|
|
16
|
+
* `readPlanSpecFiles`, and the plan goes through `checkTaskPlan` with the task list,
|
|
17
|
+
* so the plan it lists from is the plan being built: a refusal prints every line
|
|
18
|
+
* of the check, lists nothing and exits 1. A passing check prints none of its
|
|
19
|
+
* lines.
|
|
20
|
+
*
|
|
21
|
+
* ONE HOME FOR THE RULE. Which tasks can start, and in what order, is
|
|
22
|
+
* `readyTasks` (`@halfcycle/core`); this module only builds its rows from the two
|
|
23
|
+
* files (`readyRowsFromFiles`), applies `--cap` to the order it returns, and prints.
|
|
24
|
+
* The cap is `pace`'s number, which already leaves out the agents that are running,
|
|
25
|
+
* so nothing is subtracted here.
|
|
26
|
+
*
|
|
27
|
+
* EXIT CODE. 0 for a listing, including "nothing can start"; 1 when the plan check
|
|
28
|
+
* refuses; 2 on a usage error, a missing or unreadable file, a task list that is
|
|
29
|
+
* missing or for another phase, or a task whose state the task list does not give.
|
|
30
|
+
*
|
|
31
|
+
* SHIPS TO CLIENT DISK inside the CLI (INV-001: Node builtins, `@halfcycle/core` and
|
|
32
|
+
* `@halfcycle/events` only). Every string here is a sentence a person reads in their
|
|
33
|
+
* own terminal; no comment sits beside an object member.
|
|
34
|
+
*/
|
|
35
|
+
import { type ReadyRow, type TaskListFile, type TaskPlan } from '@halfcycle/core';
|
|
36
|
+
/** The usage line, printed for no phase, an extra argument, an unknown flag or a bad `--cap`. */
|
|
37
|
+
export declare const READY_USAGE = "npx halfcycle@latest ready <phase> [--cap <n>] [--repo <root>]";
|
|
38
|
+
/**
|
|
39
|
+
* Every line the verb prints of its own, in the spec's words (Y1–Y7). A task with no
|
|
40
|
+
* title prints its id alone.
|
|
41
|
+
*/
|
|
42
|
+
export declare const READY_LINES: {
|
|
43
|
+
start: (id: string, title: string | undefined) => string;
|
|
44
|
+
pastCap: (id: string, title: string | undefined) => string;
|
|
45
|
+
person: (id: string, title: string | undefined) => string;
|
|
46
|
+
noCap: () => string;
|
|
47
|
+
nothing: () => string;
|
|
48
|
+
noTaskList: () => string;
|
|
49
|
+
otherPhase: (phase: string) => string;
|
|
50
|
+
noState: (id: string) => string;
|
|
51
|
+
};
|
|
52
|
+
/** What the arguments after `ready` came to. */
|
|
53
|
+
export type ReadyArgs = {
|
|
54
|
+
ok: true;
|
|
55
|
+
phase: string;
|
|
56
|
+
cap: number | undefined;
|
|
57
|
+
repoRoot: string | undefined;
|
|
58
|
+
} | {
|
|
59
|
+
ok: false;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Exactly one positional (the phase), at most one `--cap <n>` with `n` a whole
|
|
63
|
+
* number from 0, and at most one `--repo <root>`; anything else is usage.
|
|
64
|
+
*/
|
|
65
|
+
export declare function parseReadyArgs(argv: readonly string[]): ReadyArgs;
|
|
66
|
+
/** A task list in the shape that names its phase. */
|
|
67
|
+
export type PhaseTaskList = Extract<TaskListFile, {
|
|
68
|
+
tasks: unknown;
|
|
69
|
+
}>;
|
|
70
|
+
/** One row for `readyTasks`, with the title the lines print. */
|
|
71
|
+
export interface ReadyFileRow extends ReadyRow {
|
|
72
|
+
readonly title: string | undefined;
|
|
73
|
+
}
|
|
74
|
+
/** The rows, or the line for each plan task whose state the task list does not give (Y7). */
|
|
75
|
+
export type ReadyRowsRead = {
|
|
76
|
+
ok: true;
|
|
77
|
+
rows: ReadyFileRow[];
|
|
78
|
+
} | {
|
|
79
|
+
ok: false;
|
|
80
|
+
lines: string[];
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* `readyTasks`' rows from the plan and the task list: edges, `heldBy` and the
|
|
84
|
+
* tie-break (the task's place in the plan) from the plan; state, title, expected
|
|
85
|
+
* minutes and holder from the task list's row with the same id, the first when
|
|
86
|
+
* there are two. A task is a person's when the plan holds it for a person or the
|
|
87
|
+
* task list names a person as its holder. A plan task with no row, or a row whose
|
|
88
|
+
* state is not one of the five, gives a line instead. Never throws.
|
|
89
|
+
*/
|
|
90
|
+
export declare function readyRowsFromFiles(plan: TaskPlan, taskList: PhaseTaskList): ReadyRowsRead;
|
|
91
|
+
/** What a run of the verb came to. */
|
|
92
|
+
export interface ReadyRun {
|
|
93
|
+
readonly stdout: string;
|
|
94
|
+
readonly stderr: string;
|
|
95
|
+
readonly exitCode: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The whole verb. Reads the plan, the task list and the listed specs under
|
|
99
|
+
* `repoRoot`, checks the plan, and lists what can start, cut at `cap` when one is
|
|
100
|
+
* given. Never throws.
|
|
101
|
+
*/
|
|
102
|
+
export declare function runReady(repoRoot: string, phase: string, cap: number | undefined): ReadyRun;
|
|
103
|
+
//# sourceMappingURL=ready.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ready.d.ts","sourceRoot":"","sources":["../src/ready.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EASL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAIzB,iGAAiG;AACjG,eAAO,MAAM,WAAW,mEAAmE,CAAC;AAK5F;;;GAGG;AACH,eAAO,MAAM,WAAW;gBACV,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,MAAM;kBACxC,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,MAAM;iBAE3C,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,MAAM;iBAC5C,MAAM;mBACJ,MAAM;sBACH,MAAM;wBAEF,MAAM,KAAG,MAAM;kBAErB,MAAM,KAAG,MAAM;CAC9B,CAAC;AAMF,gDAAgD;AAChD,MAAM,MAAM,SAAS,GACjB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClF;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAElB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CA2BjE;AAED,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEtE,gEAAgE;AAChE,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAUhG;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CA4BzF;AAED,sCAAsC;AACtC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAoC3F"}
|
package/dist/review.d.ts
CHANGED
|
@@ -160,9 +160,9 @@ export declare const AN4_LINE = "halfcycle review: the answer looks like it hold
|
|
|
160
160
|
/** AN5: refused by Halfcycle, the words. */
|
|
161
161
|
export declare const AN5_LINE = "halfcycle review: the answer was not accepted. Reword it in plain words and run this again.";
|
|
162
162
|
/**
|
|
163
|
-
* The shown record's review entry for a listed round (AC2)
|
|
164
|
-
* `
|
|
165
|
-
*
|
|
163
|
+
* The shown record's review entry for a listed round (AC2). Built by
|
|
164
|
+
* `shownReviewEntryOf` (`@halfcycle/events`), its one home, which the prompt hook's
|
|
165
|
+
* whole-phase accept also builds from when it reads the review itself.
|
|
166
166
|
*/
|
|
167
167
|
export declare function shownReviewEntry(view: ReviewedView, shownAt: string): ShownReviewEntry;
|
|
168
168
|
/** What writing the shown review came to. */
|
package/dist/review.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAKL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "halfcycle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Your coding agents are the engineers. Halfcycle is the rest of the team: it scopes, designs, plans and reviews production software, and runs the build for Claude Code and Codex.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|