halfcycle 0.5.0 → 0.5.1
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 +1 -1
- package/dist/cli.js +8 -8
- package/dist/cli.js.map +1 -1
- package/dist/close-phase.d.ts.map +1 -1
- package/dist/review.d.ts +1 -1
- package/dist/review.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "halfcycle",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Halfcycle Method bundle — resolution-stub slash commands, remote method-delivery registration, and governance-hook wiring for a Halfcycle engagement repo. It ships NO worker role files: a project's roles are authored from that project's own recorded decisions at orchestration kickoff (FX-2, W3-F-27).",
|
|
5
5
|
"commands": [
|
|
6
6
|
{
|
package/bin/bin.bundle.mjs
CHANGED
|
@@ -18240,7 +18240,7 @@ function approvalSentence(phase, offerTyping) {
|
|
|
18240
18240
|
return TYPED_APPROVAL_OFF_SENTENCE;
|
|
18241
18241
|
if (offerTyping === "update")
|
|
18242
18242
|
return CLIENT_UPDATE_SENTENCE;
|
|
18243
|
-
return `In their own
|
|
18243
|
+
return `In their own coding agent's session, they ask to see the plan, check each part, and then type: approve ${phase}.`;
|
|
18244
18244
|
}
|
|
18245
18245
|
function phaseWords(phase) {
|
|
18246
18246
|
return `phase "${phase}"`;
|
package/dist/cli.js
CHANGED
|
@@ -5470,7 +5470,7 @@ function autonomyA13(accepted, carried) {
|
|
|
5470
5470
|
}
|
|
5471
5471
|
function autonomyA14(count, parts, acceptLine) {
|
|
5472
5472
|
const typed = acceptLine === null ? 'say "review what was built" and type the lines it gives.' : `say "review what was built", then type ${acceptLine} to accept them with those parts, or type the reject line it gives for a task's tests.`;
|
|
5473
|
-
return `The phase waits for you: ${String(count)} tests the agents said pass were not run by Halfcycle, so ${namesOf(parts)} wait for you too. Only you can accept or reject those tests. In your own
|
|
5473
|
+
return `The phase waits for you: ${String(count)} tests the agents said pass were not run by Halfcycle, so ${namesOf(parts)} wait for you too. Only you can accept or reject those tests. In your own coding agent's session, ` + typed;
|
|
5474
5474
|
}
|
|
5475
5475
|
function autonomyA15(count) {
|
|
5476
5476
|
return `The phase waits for you: ${String(count)} parts were built without an approved scope, and only you can decide them.`;
|
|
@@ -10626,7 +10626,7 @@ function refuseInsideProject(targetRepo) {
|
|
|
10626
10626
|
let folder = realOrLiteral(targetRepo);
|
|
10627
10627
|
for (let parent = dirname4(folder); parent !== folder; folder = parent, parent = dirname4(parent)) {
|
|
10628
10628
|
if (existsSync5(join7(parent, BUNDLE_PIN_REL))) {
|
|
10629
|
-
throw new PreCreateRefused(`${targetRepo} is inside the Halfcycle project at ${parent} \u2014 open that folder in
|
|
10629
|
+
throw new PreCreateRefused(`${targetRepo} is inside the Halfcycle project at ${parent} \u2014 open that folder in your coding agent instead, or run "npx halfcycle" in a folder outside it.`);
|
|
10630
10630
|
}
|
|
10631
10631
|
}
|
|
10632
10632
|
}
|
|
@@ -13904,7 +13904,7 @@ function approvalLine2(phase, number, typedApprovalOffered, pinnedVersion, shown
|
|
|
13904
13904
|
if (!clientMeetsChatApprovalFloor(pinnedVersion)) {
|
|
13905
13905
|
return then(CLIENT_UPDATE_SENTENCE, "Or the project's owner approves it in the System view now:");
|
|
13906
13906
|
}
|
|
13907
|
-
return then(`To approve it, the project's owner types \`approve ${phase}\` in their own
|
|
13907
|
+
return then(`To approve it, the project's owner types \`approve ${phase}\` in their own coding agent's session. Only the owner can.`, "They can also approve it in the System view:");
|
|
13908
13908
|
}
|
|
13909
13909
|
function changeLines(plan, description, changed, carriedFrom = []) {
|
|
13910
13910
|
const names = new Map(description.parts.map((part) => [part.id, part.name]));
|
|
@@ -14152,7 +14152,7 @@ function rv7Lines(view, claims) {
|
|
|
14152
14152
|
if (decidable.length === 0)
|
|
14153
14153
|
return ["No part waits for your decision now."];
|
|
14154
14154
|
}
|
|
14155
|
-
const lines = ["To decide, type one of these lines in your own
|
|
14155
|
+
const lines = ["To decide, type one of these lines in your own coding agent's session:"];
|
|
14156
14156
|
for (const part of decidable) {
|
|
14157
14157
|
for (const act of reviewActsFor(part.built))
|
|
14158
14158
|
lines.push(` ${typedLine(act, reference, part.part)}`);
|
|
@@ -14198,7 +14198,7 @@ var CHECKS_SUBHEADING = "An agent says these pass and Halfcycle never ran them.
|
|
|
14198
14198
|
function uncheckedClaimLine(test) {
|
|
14199
14199
|
return `Unchecked: ${test.claimedBy} says "${test.label}" passes. Halfcycle never ran it.`;
|
|
14200
14200
|
}
|
|
14201
|
-
var ANSWER_CLAIMS_BY_TYPING_LINE = "To answer them, type the reject or accept line listed above in your own
|
|
14201
|
+
var ANSWER_CLAIMS_BY_TYPING_LINE = "To answer them, type the reject or accept line listed above in your own coding agent's session.";
|
|
14202
14202
|
function checksSectionLines(work) {
|
|
14203
14203
|
const unchecked = work.tasks.flatMap((task) => task.tests.filter((t) => t.state === "unchecked"));
|
|
14204
14204
|
if (unchecked.length === 0)
|
|
@@ -14619,7 +14619,7 @@ function typedReviewHintLine(offered, phase) {
|
|
|
14619
14619
|
return `[halfcycle] ${TYPED_REVIEW_OFF_SENTENCE}`;
|
|
14620
14620
|
const accept = typedAcceptLine(phase);
|
|
14621
14621
|
const lines = accept === null ? "then type one decision per line, as the whole message." : `then type ${accept} as the whole message to accept every built part, or one line per part, such as ${accept}/<part>; the list gives each part's lines.`;
|
|
14622
|
-
return `[halfcycle] The owner reviews each part in their own
|
|
14622
|
+
return `[halfcycle] The owner reviews each part in their own coding agent's session: they say "review what was built" to see the list, ${lines}`;
|
|
14623
14623
|
}
|
|
14624
14624
|
function systemViewReviewLine(offered, engagementId, phase) {
|
|
14625
14625
|
const address = systemViewUrl(engagementId, phase);
|
|
@@ -14628,7 +14628,7 @@ function systemViewReviewLine(offered, engagementId, phase) {
|
|
|
14628
14628
|
if (!offered)
|
|
14629
14629
|
return `[halfcycle] The owner reviews it in the System view: ${address}`;
|
|
14630
14630
|
const accept = typedAcceptLine(phase);
|
|
14631
|
-
const instead = accept === null ? "typing in their own
|
|
14631
|
+
const instead = accept === null ? "typing in their own coding agent's session" : `typing ${accept} in their own coding agent's session`;
|
|
14632
14632
|
return `[halfcycle] Or, instead of ${instead}, the owner reviews it in the System view: ${address}`;
|
|
14633
14633
|
}
|
|
14634
14634
|
function tasksOpenLine(phase, open, more) {
|
|
@@ -16483,7 +16483,7 @@ function renderUninstallReport(result, home) {
|
|
|
16483
16483
|
case "nothing-to-say":
|
|
16484
16484
|
break;
|
|
16485
16485
|
}
|
|
16486
|
-
out.push("[halfcycle] Your project on Halfcycle is unchanged. Restart any
|
|
16486
|
+
out.push("[halfcycle] Your project on Halfcycle is unchanged. Restart any coding agent session open in this project.");
|
|
16487
16487
|
return { stdout: out.join("\n") + "\n", stderr: "" };
|
|
16488
16488
|
}
|
|
16489
16489
|
|