@wildorder/nightshift 0.5.0 → 0.7.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/LICENSE +21 -21
- package/dist/author.d.ts +13 -0
- package/dist/author.d.ts.map +1 -1
- package/dist/author.js +46 -13
- package/dist/author.js.map +1 -1
- package/dist/ci-init.d.ts +51 -0
- package/dist/ci-init.d.ts.map +1 -0
- package/dist/ci-init.js +274 -0
- package/dist/ci-init.js.map +1 -0
- package/dist/cli.js +99 -11
- package/dist/cli.js.map +1 -1
- package/dist/decide.d.ts +13 -5
- package/dist/decide.d.ts.map +1 -1
- package/dist/decide.js +50 -35
- package/dist/decide.js.map +1 -1
- package/dist/decider-review.d.ts +68 -1
- package/dist/decider-review.d.ts.map +1 -1
- package/dist/decider-review.js +211 -3
- package/dist/decider-review.js.map +1 -1
- package/dist/decision-ledger.d.ts +79 -1
- package/dist/decision-ledger.d.ts.map +1 -1
- package/dist/decision-ledger.js +118 -11
- package/dist/decision-ledger.js.map +1 -1
- package/dist/decision-view.d.ts +41 -0
- package/dist/decision-view.d.ts.map +1 -0
- package/dist/decision-view.js +264 -0
- package/dist/decision-view.js.map +1 -0
- package/dist/exit-codes.d.ts +44 -0
- package/dist/exit-codes.d.ts.map +1 -0
- package/dist/exit-codes.js +49 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/findings.d.ts +3 -0
- package/dist/findings.d.ts.map +1 -1
- package/dist/findings.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +2 -2
- package/dist/program-branch.d.ts +65 -0
- package/dist/program-branch.d.ts.map +1 -0
- package/dist/program-branch.js +123 -0
- package/dist/program-branch.js.map +1 -0
- package/dist/programs-dir.d.ts +27 -0
- package/dist/programs-dir.d.ts.map +1 -0
- package/dist/programs-dir.js +52 -0
- package/dist/programs-dir.js.map +1 -0
- package/dist/publish.d.ts +105 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +528 -0
- package/dist/publish.js.map +1 -0
- package/dist/report-path.d.ts +7 -0
- package/dist/report-path.d.ts.map +1 -0
- package/dist/report-path.js +10 -0
- package/dist/report-path.js.map +1 -0
- package/dist/review-pass.d.ts +33 -1
- package/dist/review-pass.d.ts.map +1 -1
- package/dist/review-pass.js +94 -42
- package/dist/review-pass.js.map +1 -1
- package/dist/run-program.d.ts +29 -3
- package/dist/run-program.d.ts.map +1 -1
- package/dist/run-program.js +431 -47
- package/dist/run-program.js.map +1 -1
- package/dist/run-publish.d.ts +41 -0
- package/dist/run-publish.d.ts.map +1 -0
- package/dist/run-publish.js +33 -0
- package/dist/run-publish.js.map +1 -0
- package/package.json +5 -4
- package/skills/plan-program/SKILL.md +14 -0
- package/templates/AGENTS.md +29 -29
- package/templates/CLAUDE.md +7 -7
- package/templates/vision.md +46 -46
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Wing It Labs
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wing It Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/author.d.ts
CHANGED
|
@@ -14,6 +14,19 @@ export interface AuthorOptions {
|
|
|
14
14
|
git?: GitOps;
|
|
15
15
|
log?: (line: string) => void;
|
|
16
16
|
now?: () => Date;
|
|
17
|
+
/**
|
|
18
|
+
* Subject ids already sent to the decider this run. `runProgram` threads
|
|
19
|
+
* one set through both this stage and the build stage so "once per
|
|
20
|
+
* subject per run" (SC-10) holds across the whole process; a caller that
|
|
21
|
+
* runs authoring standalone gets a fresh, run-scoped set.
|
|
22
|
+
*/
|
|
23
|
+
reviewed?: Set<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Subject ids the decider actually ruled on this run — see the doc
|
|
26
|
+
* comment on `ReviewDecisionsOptions.triaged` in `decider-review.ts`.
|
|
27
|
+
* Threaded the same way as `reviewed`.
|
|
28
|
+
*/
|
|
29
|
+
triaged?: Set<string>;
|
|
17
30
|
}
|
|
18
31
|
export type AuthorOutcome = {
|
|
19
32
|
status: "authored";
|
package/dist/author.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBjE,OAAO,
|
|
1
|
+
{"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBjE,OAAO,EASL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe9E,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gEAAgE;IAChE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,qEAAqE;IACrE,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,uEAAuE;IACvE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,8FAA8F;IAC9F,UAAU,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,8EAA8E;IAC9E,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AA0dD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CA8U5B"}
|
package/dist/author.js
CHANGED
|
@@ -4,10 +4,10 @@ import { defaultAgentRunner, describeAgent, invokeAgent, resolveAuthorAgent, res
|
|
|
4
4
|
import { resolveSummary, summaryContract } from "./agent-summary.js";
|
|
5
5
|
import { decisionContract, decisionFingerprint, extractDecisions, } from "./decision.js";
|
|
6
6
|
import { appendLedgerEvents } from "./decision-ledger.js";
|
|
7
|
-
import { reviewDecisions } from "./decider-review.js";
|
|
7
|
+
import { reviewDecisions, triageFindings } from "./decider-review.js";
|
|
8
8
|
import { findCycles, topologicalLevels } from "./graph.js";
|
|
9
9
|
import { loadManifest, saveManifest, } from "./manifest.js";
|
|
10
|
-
import { extractFindings, findingsContract, findingsToLedgerEvents, reviewerAbsentOutcome, runReviewPass, } from "./review-pass.js";
|
|
10
|
+
import { extractFindings, findingsContract, findingsToLedgerEvents, hasRoutableEvidence, locateInRepo, reviewerAbsentOutcome, runReviewPass, verifyEvidence, } from "./review-pass.js";
|
|
11
11
|
import { defaultGitOps, downstreamCone } from "./run-program.js";
|
|
12
12
|
/**
|
|
13
13
|
* The authoring stage: for every workstream whose spec does not exist, a
|
|
@@ -325,13 +325,15 @@ async function runSpecCritique(options) {
|
|
|
325
325
|
const reviewer = resolveReviewerAgent(options.config);
|
|
326
326
|
if (!reviewer)
|
|
327
327
|
return reviewerAbsentOutcome();
|
|
328
|
+
const locate = (file) => locateInRepo(options.root, file);
|
|
328
329
|
const review = async (_round, priorOpen) => {
|
|
329
330
|
const currentSpec = (await readFinishedSpec(options.root, options.workstream)) ?? options.spec;
|
|
330
331
|
const brief = await specCritiqueReviewerBrief(options.root, options.manifest, options.workstream, options.rosterById, currentSpec, priorOpen);
|
|
331
332
|
const invocation = await invokeAgent(options.agentRunner, reviewer, brief, options.root);
|
|
332
333
|
const parsed = extractFindings(invocation.output);
|
|
334
|
+
const findings = verifyEvidence(parsed.findings, locate);
|
|
333
335
|
const ran = invocation.exitCode === 0 && hasFindingsBlock(invocation.output);
|
|
334
|
-
return { findings
|
|
336
|
+
return { findings, errors: parsed.errors, ran };
|
|
335
337
|
};
|
|
336
338
|
const respond = async (_round, findings) => {
|
|
337
339
|
const currentSpec = (await readFinishedSpec(options.root, options.workstream)) ?? options.spec;
|
|
@@ -398,6 +400,8 @@ export async function authorProgram(options) {
|
|
|
398
400
|
const now = options.now ?? (() => new Date());
|
|
399
401
|
const only = options.only;
|
|
400
402
|
const force = options.force === true;
|
|
403
|
+
const reviewed = options.reviewed ?? new Set();
|
|
404
|
+
const triaged = options.triaged ?? new Set();
|
|
401
405
|
const manifest = await loadManifest(root, options.programId);
|
|
402
406
|
const resolvedAuthor = resolveAuthorAgent(config);
|
|
403
407
|
if (!resolvedAuthor) {
|
|
@@ -473,14 +477,21 @@ export async function authorProgram(options) {
|
|
|
473
477
|
const rosterById = new Map(manifest.workstreams.map((w) => [w.id, w]));
|
|
474
478
|
const rosterIds = new Set(rosterById.keys());
|
|
475
479
|
const baseCommit = isRepository ? await git.currentCommit(root) : undefined;
|
|
476
|
-
|
|
480
|
+
// Keyed by fingerprint, last-wins: a re-author pass can re-emit a
|
|
481
|
+
// decision with the same id but revised context/options/chosen (the
|
|
482
|
+
// fingerprint excludes `chosen`), and the re-authored version is the
|
|
483
|
+
// workstream's current truth. `.set()` on each push naturally keeps the
|
|
484
|
+
// latest occurrence rather than the first.
|
|
485
|
+
const allDecisionsById = new Map();
|
|
477
486
|
const first = await authorBrief(root, manifest, workstream, rosterById);
|
|
478
487
|
base.demotedDependencies = first.demoted;
|
|
479
488
|
let invocation = await invokeAgent(agentRunner, author, first.brief, root);
|
|
480
489
|
base.summary = resolveSummary(invocation.output).text;
|
|
481
490
|
let parsed = extractDecisions(invocation.output);
|
|
482
491
|
base.decisionErrors.push(...parsed.errors);
|
|
483
|
-
|
|
492
|
+
for (const decision of parsed.decisions) {
|
|
493
|
+
allDecisionsById.set(decisionFingerprint(workstream.id, decision), decision);
|
|
494
|
+
}
|
|
484
495
|
await journalDecisions(workstream, parsed.decisions, baseCommit);
|
|
485
496
|
base.decisionIds.push(...parsed.decisions.map((decision) => decisionFingerprint(workstream.id, decision)));
|
|
486
497
|
const declaration = extractDependenciesDeclaration(invocation.output);
|
|
@@ -531,7 +542,9 @@ export async function authorProgram(options) {
|
|
|
531
542
|
base.summary = resolveSummary(invocation.output).text;
|
|
532
543
|
parsed = extractDecisions(invocation.output);
|
|
533
544
|
base.decisionErrors.push(...parsed.errors);
|
|
534
|
-
|
|
545
|
+
for (const decision of parsed.decisions) {
|
|
546
|
+
allDecisionsById.set(decisionFingerprint(workstream.id, decision), decision);
|
|
547
|
+
}
|
|
535
548
|
await journalDecisions(workstream, parsed.decisions, baseCommit);
|
|
536
549
|
base.decisionIds.push(...parsed.decisions.map((decision) => decisionFingerprint(workstream.id, decision)));
|
|
537
550
|
const secondDeclaration = extractDependenciesDeclaration(invocation.output);
|
|
@@ -552,7 +565,7 @@ export async function authorProgram(options) {
|
|
|
552
565
|
status: "failed",
|
|
553
566
|
reason: `no spec was written to ${workstream.taskFile} (or it was left empty)`,
|
|
554
567
|
};
|
|
555
|
-
await reviewWorkstreamDecisions(workstream.id,
|
|
568
|
+
await reviewWorkstreamDecisions(workstream.id, [...allDecisionsById.values()], baseCommit);
|
|
556
569
|
return base;
|
|
557
570
|
}
|
|
558
571
|
const critique = await runSpecCritique({
|
|
@@ -575,20 +588,20 @@ export async function authorProgram(options) {
|
|
|
575
588
|
}
|
|
576
589
|
const critiqueEvents = findingsToLedgerEvents({
|
|
577
590
|
workstreamId: workstream.id,
|
|
578
|
-
findings: critique.open,
|
|
591
|
+
findings: critique.open.filter(hasRoutableEvidence),
|
|
579
592
|
...(baseCommit === undefined ? {} : { baseCommit }),
|
|
580
593
|
now,
|
|
581
594
|
});
|
|
582
595
|
await appendLedgerEvents(root, options.programId, critiqueEvents);
|
|
583
|
-
for (const event of critiqueEvents) {
|
|
584
|
-
if (event.kind === "decision-recorded")
|
|
585
|
-
allDecisions.push(event.decision);
|
|
586
|
-
}
|
|
587
596
|
let commit;
|
|
588
597
|
if (isRepository) {
|
|
589
598
|
commit = await git.commitPaths(root, `nightshift(${options.programId}): author ${workstream.id} ${workstream.name}`, [workstream.taskFile, "docs/programs"]);
|
|
590
599
|
}
|
|
591
|
-
await reviewWorkstreamDecisions(workstream.id,
|
|
600
|
+
await reviewWorkstreamDecisions(workstream.id, [...allDecisionsById.values()], baseCommit);
|
|
601
|
+
// Findings triage against the same pre-workstream diff base the decision
|
|
602
|
+
// review used above — a spec-critique finding has no separate green
|
|
603
|
+
// anchor the way a test-critique fix does.
|
|
604
|
+
await reviewWorkstreamFindings(workstream.id, critiqueEvents, baseCommit);
|
|
592
605
|
base.outcome = { status: "authored", ...(commit === undefined ? {} : { commit }) };
|
|
593
606
|
return base;
|
|
594
607
|
}
|
|
@@ -619,6 +632,26 @@ export async function authorProgram(options) {
|
|
|
619
632
|
agentRunner,
|
|
620
633
|
git,
|
|
621
634
|
isRepository,
|
|
635
|
+
reviewed,
|
|
636
|
+
triaged,
|
|
637
|
+
now,
|
|
638
|
+
log,
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
function reviewWorkstreamFindings(workstreamId, findings, baseCommit) {
|
|
642
|
+
return triageFindings({
|
|
643
|
+
root,
|
|
644
|
+
programId: options.programId,
|
|
645
|
+
manifest,
|
|
646
|
+
workstreamId,
|
|
647
|
+
findings,
|
|
648
|
+
baseCommit,
|
|
649
|
+
decider,
|
|
650
|
+
agentRunner,
|
|
651
|
+
git,
|
|
652
|
+
isRepository,
|
|
653
|
+
reviewed,
|
|
654
|
+
triaged,
|
|
622
655
|
now,
|
|
623
656
|
log,
|
|
624
657
|
});
|
package/dist/author.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author.js","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"author.js","sourceRoot":"","sources":["../src/author.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { NightshiftConfig } from "./config.js";
|
|
2
|
+
import { type PackageManager } from "./detect-package-manager.js";
|
|
3
|
+
export declare const WORKFLOW_PATH = ".github/workflows/nightshift.yml";
|
|
4
|
+
export type RunnerVariant = "hosted" | "self-hosted";
|
|
5
|
+
export declare const RUNNER_VARIANTS: readonly RunnerVariant[];
|
|
6
|
+
export interface GenerateWorkflowInput {
|
|
7
|
+
config: NightshiftConfig;
|
|
8
|
+
runner: RunnerVariant;
|
|
9
|
+
/** Pinned into the workflow's run line for reproducibility. */
|
|
10
|
+
packageVersion: string;
|
|
11
|
+
/** Chooses the dependency-install line in the hosted variant. */
|
|
12
|
+
packageManager: PackageManager;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pure: config + variant + version + manager -> workflow YAML. No I/O.
|
|
16
|
+
* Throws when `runner` is "hosted" and the config names an agent command the
|
|
17
|
+
* known-agents registry does not recognize — the writer surfaces this as a
|
|
18
|
+
* refusal before writing anything. The self-hosted variant never consults
|
|
19
|
+
* the registry, since it installs nothing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function generateWorkflow(input: GenerateWorkflowInput): string;
|
|
22
|
+
/** Minimal filesystem boundary, injected so the writer is testable off-disk. */
|
|
23
|
+
export interface CiInitFs {
|
|
24
|
+
exists(path: string): Promise<boolean>;
|
|
25
|
+
mkdir(path: string): Promise<void>;
|
|
26
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export interface CiInitOptions {
|
|
29
|
+
cwd: string;
|
|
30
|
+
/** Loaded by the CLI (loadConfig) and passed in; the writer never loads it. */
|
|
31
|
+
config: NightshiftConfig;
|
|
32
|
+
/** The CLI supplies this, defaulting to "hosted" before it calls the writer. */
|
|
33
|
+
runner: RunnerVariant;
|
|
34
|
+
force: boolean;
|
|
35
|
+
/** Defaults to a real-fs implementation; tests inject an in-memory one. */
|
|
36
|
+
fs?: CiInitFs;
|
|
37
|
+
}
|
|
38
|
+
export interface CiInitResult {
|
|
39
|
+
path: string;
|
|
40
|
+
action: "created" | "overwritten";
|
|
41
|
+
runner: RunnerVariant;
|
|
42
|
+
/** Agent commands the generator recognized and wired (hosted only). */
|
|
43
|
+
wiredAgents: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Writes `.github/workflows/nightshift.yml`. Refuses to overwrite an
|
|
47
|
+
* existing workflow without `force`, and refuses (writing nothing) when a
|
|
48
|
+
* hosted config names an agent CLI `generateWorkflow` does not recognize.
|
|
49
|
+
*/
|
|
50
|
+
export declare function ciInitGithub(options: CiInitOptions): Promise<CiInitResult>;
|
|
51
|
+
//# sourceMappingURL=ci-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-init.d.ts","sourceRoot":"","sources":["../src/ci-init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAKrC,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAC;AAErD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA8B,CAAC;AAgFnF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,cAAc,EAAE,cAAc,CAAC;CAChC;AAgJD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAmBrE;AAED,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAmBD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,MAAM,EAAE,gBAAgB,CAAC;IACzB,gFAAgF;IAChF,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,2EAA2E;IAC3E,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,aAAa,CAAC;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkChF"}
|
package/dist/ci-init.js
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { access, mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { detectPackageManager, } from "./detect-package-manager.js";
|
|
4
|
+
import { EXIT_CODES } from "./exit-codes.js";
|
|
5
|
+
import { packageVersion as resolvePackageVersion } from "./package-assets.js";
|
|
6
|
+
import { programBranchName } from "./program-branch.js";
|
|
7
|
+
export const WORKFLOW_PATH = ".github/workflows/nightshift.yml";
|
|
8
|
+
export const RUNNER_VARIANTS = ["hosted", "self-hosted"];
|
|
9
|
+
/**
|
|
10
|
+
* The currently-known agent CLIs the hosted variant can install — the single
|
|
11
|
+
* place this mapping lives. A command absent here cannot be honestly
|
|
12
|
+
* installed (its npm package and secret env var are not derivable from the
|
|
13
|
+
* command string alone), so `generateWorkflow` refuses a hosted config that
|
|
14
|
+
* names one instead of writing a partial workflow (see the ADR).
|
|
15
|
+
*/
|
|
16
|
+
const KNOWN_AGENTS = [
|
|
17
|
+
{
|
|
18
|
+
command: "claude",
|
|
19
|
+
installLine: "npm install -g @anthropic-ai/claude-code",
|
|
20
|
+
secretEnvVar: "ANTHROPIC_API_KEY",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
command: "codex",
|
|
24
|
+
installLine: "npm install -g @openai/codex",
|
|
25
|
+
secretEnvVar: "OPENAI_API_KEY",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
command: "gemini",
|
|
29
|
+
installLine: "npm install -g @google/gemini-cli",
|
|
30
|
+
secretEnvVar: "GEMINI_API_KEY",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
command: "cursor-agent",
|
|
34
|
+
installLine: "curl https://cursor.com/install -fsS | bash",
|
|
35
|
+
secretEnvVar: "CURSOR_API_KEY",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
const KNOWN_AGENTS_BY_COMMAND = new Map(KNOWN_AGENTS.map((agent) => [agent.command, agent]));
|
|
39
|
+
function knownAgent(command) {
|
|
40
|
+
const agent = KNOWN_AGENTS_BY_COMMAND.get(command);
|
|
41
|
+
if (!agent) {
|
|
42
|
+
throw new Error(`unreachable: "${command}" is not a known agent CLI`);
|
|
43
|
+
}
|
|
44
|
+
return agent;
|
|
45
|
+
}
|
|
46
|
+
/** Fixed role order; a command's first appearance in this order wins the dedup. */
|
|
47
|
+
const AGENT_ROLES = [
|
|
48
|
+
"agent",
|
|
49
|
+
"authorAgent",
|
|
50
|
+
"deciderAgent",
|
|
51
|
+
"reviewerAgent",
|
|
52
|
+
"recoveryAgent",
|
|
53
|
+
];
|
|
54
|
+
const INSTALL_LINES = {
|
|
55
|
+
npm: "npm ci",
|
|
56
|
+
pnpm: "pnpm install --frozen-lockfile",
|
|
57
|
+
yarn: "yarn install --frozen-lockfile",
|
|
58
|
+
bun: "bun install --frozen-lockfile",
|
|
59
|
+
};
|
|
60
|
+
/** The agent commands named in the config, deduped by command, first-seen across the fixed role order. */
|
|
61
|
+
function configuredAgentCommands(config) {
|
|
62
|
+
const seen = new Set();
|
|
63
|
+
const commands = [];
|
|
64
|
+
for (const role of AGENT_ROLES) {
|
|
65
|
+
const command = config[role]?.command;
|
|
66
|
+
if (command !== undefined && !seen.has(command)) {
|
|
67
|
+
seen.add(command);
|
|
68
|
+
commands.push(command);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return commands;
|
|
72
|
+
}
|
|
73
|
+
// The `program-id` dispatch input is hyphenated, so every reference to it
|
|
74
|
+
// uses bracket access — `inputs.program-id` parses the hyphen as subtraction
|
|
75
|
+
// and silently yields a wrong value.
|
|
76
|
+
const PROGRAM_ID_EXPR = "${{ inputs['program-id'] }}";
|
|
77
|
+
function headerLines() {
|
|
78
|
+
return [
|
|
79
|
+
"# .github/workflows/nightshift.yml",
|
|
80
|
+
"# Generated by `nightshift ci init github`. You may edit this file; re-run with",
|
|
81
|
+
"# --force to regenerate it from nightshift.config.json.",
|
|
82
|
+
"name: nightshift",
|
|
83
|
+
"",
|
|
84
|
+
"on:",
|
|
85
|
+
" # Manual dispatch is the ONLY trigger. A run is a deliberate act; a push",
|
|
86
|
+
" # trigger would start one every time a plan is revised. No push, no schedule.",
|
|
87
|
+
" workflow_dispatch:",
|
|
88
|
+
" inputs:",
|
|
89
|
+
" program-id:",
|
|
90
|
+
' description: "Program ID from /plan-program (e.g. ci-surface)"',
|
|
91
|
+
" required: true",
|
|
92
|
+
" type: string",
|
|
93
|
+
"",
|
|
94
|
+
"# One run per program at a time. A second dispatch of the SAME program-id",
|
|
95
|
+
"# queues behind the first (cancel-in-progress: false), because two runs of one",
|
|
96
|
+
"# program would contend for its single branch. DIFFERENT program-ids run",
|
|
97
|
+
"# concurrently. This does NOT bound how many programs one self-hosted runner",
|
|
98
|
+
"# accepts at once — size your runner count for that (program risk register).",
|
|
99
|
+
"concurrency:",
|
|
100
|
+
` group: nightshift-${PROGRAM_ID_EXPR}`,
|
|
101
|
+
" cancel-in-progress: false",
|
|
102
|
+
"",
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
function exitCodeCommentLines() {
|
|
106
|
+
return [
|
|
107
|
+
" # Exit codes (nightshift termination contract, WS-02):",
|
|
108
|
+
` # 0 = complete · ${EXIT_CODES.PARTIAL} = partial build (a red job is correct — read the`,
|
|
109
|
+
` # PR) · ${EXIT_CODES.COULD_NOT_START} = could-not-start (a planning/config defect, nothing built).`,
|
|
110
|
+
" # --publish opens/updates the draft PR before a partial build's non-zero",
|
|
111
|
+
" # exit, so the runs most worth reading always leave a PR behind.",
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
function hostedAgentInstallStepLines(commands) {
|
|
115
|
+
if (commands.length === 0)
|
|
116
|
+
return [];
|
|
117
|
+
return [
|
|
118
|
+
" - name: Install agent CLIs",
|
|
119
|
+
" run: |",
|
|
120
|
+
...commands.map((command) => ` ${knownAgent(command).installLine}`),
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
function hostedSecretEnvLines(commands) {
|
|
124
|
+
return commands.map((command) => {
|
|
125
|
+
const secret = knownAgent(command).secretEnvVar;
|
|
126
|
+
return ` ${secret}: \${{ secrets.${secret} }}`;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function hostedWorkflowLines(commands, version, packageManager) {
|
|
130
|
+
const ref = programBranchName(PROGRAM_ID_EXPR);
|
|
131
|
+
return [
|
|
132
|
+
...headerLines(),
|
|
133
|
+
"# gh (used by publish) needs to push the branch and open/update the draft PR.",
|
|
134
|
+
"permissions:",
|
|
135
|
+
" contents: write",
|
|
136
|
+
" pull-requests: write",
|
|
137
|
+
"",
|
|
138
|
+
"jobs:",
|
|
139
|
+
" run:",
|
|
140
|
+
" runs-on: ubuntu-latest",
|
|
141
|
+
" steps:",
|
|
142
|
+
" - uses: actions/checkout@v4",
|
|
143
|
+
" with:",
|
|
144
|
+
" # Check out THIS program's branch, not the dispatch ref. A run refuses",
|
|
145
|
+
" # to proceed on any branch other than this program's own branch; it",
|
|
146
|
+
" # is created and pushed by planning, so it already exists on the remote.",
|
|
147
|
+
` ref: ${ref}`,
|
|
148
|
+
" - uses: actions/setup-node@v4",
|
|
149
|
+
" with:",
|
|
150
|
+
' node-version: "20"',
|
|
151
|
+
" - name: Install project dependencies",
|
|
152
|
+
` run: ${INSTALL_LINES[packageManager]}`,
|
|
153
|
+
" - name: Configure git identity",
|
|
154
|
+
" # The runner commits with plain `git commit`; a fresh hosted runner has",
|
|
155
|
+
" # no user.name/user.email, so the first commit would fail without this.",
|
|
156
|
+
" run: |",
|
|
157
|
+
' git config user.name "nightshift-bot"',
|
|
158
|
+
' git config user.email "nightshift-bot@users.noreply.github.com"',
|
|
159
|
+
...hostedAgentInstallStepLines(commands),
|
|
160
|
+
" - name: Run and publish",
|
|
161
|
+
" env:",
|
|
162
|
+
' CI: "1"',
|
|
163
|
+
" # Passed via env, never interpolated into the shell line, so a crafted",
|
|
164
|
+
" # program-id cannot inject script into the run: line below.",
|
|
165
|
+
` PROGRAM_ID: ${PROGRAM_ID_EXPR}`,
|
|
166
|
+
" # gh reads this in Actions; it is the auto-provided job token, scoped",
|
|
167
|
+
" # by the permissions block above.",
|
|
168
|
+
" GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}",
|
|
169
|
+
...hostedSecretEnvLines(commands),
|
|
170
|
+
...exitCodeCommentLines(),
|
|
171
|
+
` run: npx --yes @wildorder/nightshift@${version} run "$PROGRAM_ID" --publish`,
|
|
172
|
+
"",
|
|
173
|
+
];
|
|
174
|
+
}
|
|
175
|
+
function selfHostedWorkflowLines(version) {
|
|
176
|
+
const ref = programBranchName(PROGRAM_ID_EXPR);
|
|
177
|
+
return [
|
|
178
|
+
...headerLines(),
|
|
179
|
+
"# No `permissions:` block — this variant uses no Actions-provided token.",
|
|
180
|
+
"",
|
|
181
|
+
"jobs:",
|
|
182
|
+
" run:",
|
|
183
|
+
" # A self-hosted runner already has Node, the agent CLIs (authenticated by",
|
|
184
|
+
" # subscription login), gh authenticated, and a git identity configured on",
|
|
185
|
+
" # the box. This workflow installs and wires nothing; it expects the box to",
|
|
186
|
+
" # be ready.",
|
|
187
|
+
" runs-on: [self-hosted]",
|
|
188
|
+
" steps:",
|
|
189
|
+
" - uses: actions/checkout@v4",
|
|
190
|
+
" with:",
|
|
191
|
+
" # Same program-branch checkout as hosted (WS-01's precondition applies",
|
|
192
|
+
" # identically), but push with the box's own git credentials.",
|
|
193
|
+
` ref: ${ref}`,
|
|
194
|
+
" persist-credentials: false",
|
|
195
|
+
" - name: Run and publish",
|
|
196
|
+
" env:",
|
|
197
|
+
' CI: "1"',
|
|
198
|
+
` PROGRAM_ID: ${PROGRAM_ID_EXPR}`,
|
|
199
|
+
` run: npx --yes @wildorder/nightshift@${version} run "$PROGRAM_ID" --publish`,
|
|
200
|
+
"",
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Pure: config + variant + version + manager -> workflow YAML. No I/O.
|
|
205
|
+
* Throws when `runner` is "hosted" and the config names an agent command the
|
|
206
|
+
* known-agents registry does not recognize — the writer surfaces this as a
|
|
207
|
+
* refusal before writing anything. The self-hosted variant never consults
|
|
208
|
+
* the registry, since it installs nothing.
|
|
209
|
+
*/
|
|
210
|
+
export function generateWorkflow(input) {
|
|
211
|
+
const commands = configuredAgentCommands(input.config);
|
|
212
|
+
if (input.runner === "self-hosted") {
|
|
213
|
+
return `${selfHostedWorkflowLines(input.packageVersion).join("\n")}\n`;
|
|
214
|
+
}
|
|
215
|
+
const unknown = commands.find((command) => !KNOWN_AGENTS_BY_COMMAND.has(command));
|
|
216
|
+
if (unknown !== undefined) {
|
|
217
|
+
throw new Error("nightshift ci init github (hosted) does not know how to install the " +
|
|
218
|
+
`agent CLI "${unknown}". Known CLIs: ` +
|
|
219
|
+
`${KNOWN_AGENTS.map((agent) => agent.command).join(", ")}. Add it to ` +
|
|
220
|
+
"nightshift's registry, install it yourself with --runner self-hosted, " +
|
|
221
|
+
"or remove that agent from nightshift.config.json.");
|
|
222
|
+
}
|
|
223
|
+
return `${hostedWorkflowLines(commands, input.packageVersion, input.packageManager).join("\n")}\n`;
|
|
224
|
+
}
|
|
225
|
+
const realCiInitFs = {
|
|
226
|
+
async exists(path) {
|
|
227
|
+
try {
|
|
228
|
+
await access(path);
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
async mkdir(path) {
|
|
236
|
+
await mkdir(path, { recursive: true });
|
|
237
|
+
},
|
|
238
|
+
async writeFile(path, content) {
|
|
239
|
+
await writeFile(path, content, "utf8");
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Writes `.github/workflows/nightshift.yml`. Refuses to overwrite an
|
|
244
|
+
* existing workflow without `force`, and refuses (writing nothing) when a
|
|
245
|
+
* hosted config names an agent CLI `generateWorkflow` does not recognize.
|
|
246
|
+
*/
|
|
247
|
+
export async function ciInitGithub(options) {
|
|
248
|
+
const cwd = resolve(options.cwd);
|
|
249
|
+
const fs = options.fs ?? realCiInitFs;
|
|
250
|
+
const destination = join(cwd, WORKFLOW_PATH);
|
|
251
|
+
const alreadyExists = await fs.exists(destination);
|
|
252
|
+
if (alreadyExists && !options.force) {
|
|
253
|
+
throw new Error(`${WORKFLOW_PATH} already exists; re-run with --force to overwrite it.`);
|
|
254
|
+
}
|
|
255
|
+
const [version, packageManager] = await Promise.all([
|
|
256
|
+
resolvePackageVersion(),
|
|
257
|
+
Promise.resolve(detectPackageManager(cwd)),
|
|
258
|
+
]);
|
|
259
|
+
const content = generateWorkflow({
|
|
260
|
+
config: options.config,
|
|
261
|
+
runner: options.runner,
|
|
262
|
+
packageVersion: version,
|
|
263
|
+
packageManager,
|
|
264
|
+
});
|
|
265
|
+
await fs.mkdir(dirname(destination));
|
|
266
|
+
await fs.writeFile(destination, content);
|
|
267
|
+
return {
|
|
268
|
+
path: WORKFLOW_PATH,
|
|
269
|
+
action: alreadyExists ? "overwritten" : "created",
|
|
270
|
+
runner: options.runner,
|
|
271
|
+
wiredAgents: options.runner === "hosted" ? configuredAgentCommands(options.config) : [],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=ci-init.js.map
|