@yagni-app/code-staging 1.2.13-staging.2200.1 → 1.2.14-staging.2204.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.
|
@@ -87,7 +87,14 @@ export interface TurnFacts {
|
|
|
87
87
|
review: boolean;
|
|
88
88
|
/** The input folder has `sent-back-plan.md`: a person sent the plan back. */
|
|
89
89
|
sentBack: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* `next-step-note.md`, as the host wrote it: a note a person added while
|
|
92
|
+
* the attempt worked, for this turn (YAG-1116). Never on a plan turn.
|
|
93
|
+
*/
|
|
94
|
+
nextStepNote?: string | null;
|
|
90
95
|
}
|
|
96
|
+
/** The file the host writes a person's note for the next step to (`attempts/inputs.ts`). */
|
|
97
|
+
export declare const NEXT_STEP_NOTE_FILE_NAME = "next-step-note.md";
|
|
91
98
|
/** The one message a turn sends the session. Pure. */
|
|
92
99
|
export declare function turnMessage(facts: TurnFacts): string;
|
|
93
100
|
/** The model's own account of a turn that builds (`session-report.json`). */
|
|
@@ -136,6 +136,8 @@ export function readPlanAnswers(text) {
|
|
|
136
136
|
return [];
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
+
/** The file the host writes a person's note for the next step to (`attempts/inputs.ts`). */
|
|
140
|
+
export const NEXT_STEP_NOTE_FILE_NAME = "next-step-note.md";
|
|
139
141
|
const REPORT_CONTRACT = (outDir) => `Last, write ${join(outDir, SESSION_REPORT_FILE_NAME)} as JSON, honestly: ` +
|
|
140
142
|
'{"summary": "<what you changed, in two or three sentences>", ' +
|
|
141
143
|
'"checks": [{"name": "lint", "command": "pnpm lint", "cwd": ".", "exitCode": 0, "durationMs": 41000, ' +
|
|
@@ -228,6 +230,12 @@ export function turnMessage(facts) {
|
|
|
228
230
|
if (facts.handOffAnswer) {
|
|
229
231
|
parts.push(`Read ${at("hand-off-answer.md")} before you go on: why the attempt stopped, and what a person answered.`);
|
|
230
232
|
}
|
|
233
|
+
// The host's file opens with "# A person added this while you worked" and
|
|
234
|
+
// carries the note fenced, so the session hears it in this turn's message,
|
|
235
|
+
// a resumed session included, whose ticket.md it read turns ago.
|
|
236
|
+
const note = facts.nextStepNote?.trim();
|
|
237
|
+
if (note)
|
|
238
|
+
parts.push(note);
|
|
231
239
|
parts.push(BUILD_RULES(facts.outDir));
|
|
232
240
|
return parts.join("\n\n");
|
|
233
241
|
}
|
|
@@ -440,6 +448,7 @@ export async function runSessionTurn(input, deps = {}) {
|
|
|
440
448
|
handOffAnswer: exists(join(input.inputDir, "hand-off-answer.md")),
|
|
441
449
|
review: exists(join(input.inputDir, "fix-round.json")),
|
|
442
450
|
sentBack: exists(join(input.inputDir, "sent-back-plan.md")),
|
|
451
|
+
nextStepNote: input.stage === "plan" ? null : readOrNull(join(input.inputDir, NEXT_STEP_NOTE_FILE_NAME)),
|
|
443
452
|
});
|
|
444
453
|
const notes = [];
|
|
445
454
|
const stages = [];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yagni-app/code-staging",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.14-staging.2204.1",
|
|
4
4
|
"description": "YAGNI Code: a terminal coding agent that already knows your company. One YAGNI login routes the model and grounds the agent in your team's context.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "YAGNI, Inc. <jack@yagni.app> (https://yagni.app)",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"turndown": "^7.2.4",
|
|
59
59
|
"typebox": "^1.3.15"
|
|
60
60
|
},
|
|
61
|
-
"yagniSourceSha": "
|
|
61
|
+
"yagniSourceSha": "481a9f9ced04d8756c322d0aa3edfe7420f6b957"
|
|
62
62
|
}
|