@llm4ts/shell 2.0.0 → 2.2.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/dist/Cli.d.ts +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +32 -0
- package/dist/Cli.js.map +1 -1
- package/dist/Refine.d.ts +44 -0
- package/dist/Refine.d.ts.map +1 -0
- package/dist/Refine.js +362 -0
- package/dist/Refine.js.map +1 -0
- package/flows/epic-stories.js +1 -1
- package/flows/fixtures/epic-stories/conto-bonifico.md +3 -3
- package/flows/lib/modernize-extract.js +217 -0
- package/flows/modernize-extract.js +13 -173
- package/flows/modernize-implement.js +28 -2
- package/flows/modernize-pack-check.js +7 -1
- package/flows/modernize-refine.js +389 -0
- package/flows/modernize-seed.js +50 -2
- package/flows/modernize-verify.js +12 -5
- package/kits/j2ee-nextjs/README.md +5 -4
- package/kits/j2ee-nextjs/fixtures/demo-bank/RUNBOOK.md +43 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/PAGES.md +26 -0
- package/kits/j2ee-nextjs/flows/convert-all.js +56 -20
- package/kits/j2ee-nextjs/flows/convert-feature.js +48 -0
- package/kits/j2ee-nextjs/flows/lib/convert.js +292 -40
- package/kits/j2ee-nextjs/packs/j2ee-nextjs-spa/pack.md +16 -0
- package/kits/j2ee-nextjs/packs/j2ee-nextjs-spa/prompts/consolidate.md +10 -0
- package/kits/j2ee-nextjs/packs/j2ee-nextjs-spa/prompts/plan.md +24 -16
- package/kits/j2ee-nextjs/packs/j2ee-nextjs-spa/prompts/refine-propose.md +16 -0
- package/kits/mainframe-java/packs/cobol-springboot/pack.md +5 -0
- package/kits/mainframe-java/packs/cobol-springboot/prompts/consolidate.md +8 -0
- package/kits/mainframe-java/packs/cobol-springboot/prompts/refine-propose.md +10 -0
- package/package.json +5 -4
- package/src/Cli.ts +57 -0
- package/src/Refine.ts +504 -0
package/dist/Cli.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare const renderFlowList: (flows: ReadonlyArray<DiscoveredFlow>, opti
|
|
|
31
31
|
* anything else is looked up by name in the discovery listing.
|
|
32
32
|
*/
|
|
33
33
|
export declare const resolveFlow: (reference: string, tiers: FlowTierPaths) => Effect.Effect<string, ShellUsageError, FileSystem>;
|
|
34
|
-
export declare const shellCommand: Command.Command<"llm4ts", {} | {}, {}, import("./FlowLaunch.ts").FlowLaunchError | ShellUsageError | ShellActionError, import("effect/unstable/cli/Prompt").Environment>;
|
|
34
|
+
export declare const shellCommand: Command.Command<"llm4ts", {} | {}, {}, import("./FlowLaunch.ts").FlowLaunchError | import("@llm4ts/flow/FlowError.ts").DecisionsInvalid | ShellUsageError | ShellActionError, import("effect/unstable/cli/Prompt").Environment>;
|
|
35
35
|
export declare const runShellCommand: (argv: ReadonlyArray<string>) => Effect.Effect<void, unknown, Command.Environment>;
|
|
36
36
|
export {};
|
|
37
37
|
//# sourceMappingURL=Cli.d.ts.map
|
package/dist/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAItD,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;;;;AAMzB,qBAAa,eAAgB,SAAQ,oBAEnC;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;AAEL,eAAO,MAAM,eAAe,QAAO,MAA6D,CAAA;AAEhG,eAAO,MAAM,cAAc,GAAI,UAAU;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CACpE,KAAG,aAaH,CAAA;AAQD,eAAO,MAAM,aAAa,GACxB,MAAM,aAAa,CAAC,aAAa,CAAC,EAClC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MA+BF,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,aAAa,CAAC,cAAc,CAAC,EACpC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MAyBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,iGAwBtB,CAAA;AA+MF,eAAO,MAAM,YAAY,iOAsBxB,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CACe,CAAA"}
|
package/dist/Cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
2
3
|
import { fileURLToPath } from "node:url";
|
|
3
4
|
import * as Console from "effect/Console";
|
|
4
5
|
import * as Effect from "effect/Effect";
|
|
@@ -13,6 +14,7 @@ import { builtinKitsDir, discoverKits, kitTierPaths } from "@llm4ts/runner/Kits"
|
|
|
13
14
|
import { defaultTierPaths, discoverFlows } from "./FlowCatalog.js";
|
|
14
15
|
import { launchFlow } from "./FlowLaunch.js";
|
|
15
16
|
import { mainMenu } from "./Menu.js";
|
|
17
|
+
import { ModDir, refineSession } from "./Refine.js";
|
|
16
18
|
import { packageVersion } from "./Package.js";
|
|
17
19
|
export class ShellUsageError extends Schema.TaggedError()("ShellUsage", {
|
|
18
20
|
message: Schema.String
|
|
@@ -190,6 +192,35 @@ const askCommand = Command.make("ask", {
|
|
|
190
192
|
? new ShellUsageError({ message: error.message })
|
|
191
193
|
: new ShellActionError({ message: error.message })));
|
|
192
194
|
})).pipe(Command.withDescription("Stream a one-shot prompt to the selected coding agent"));
|
|
195
|
+
const refineCommand = Command.make("refine", {
|
|
196
|
+
repo: Flag.String("repo").pipe(Flag.optional, Flag.withDescription("The LEGACY repository holding the extracted spec pack (defaults to the current directory)")),
|
|
197
|
+
pack: Flag.String("pack").pipe(Flag.optional, Flag.withDescription("Pack forwarded as LLM4TS_PACK, as for `llm4ts run`")),
|
|
198
|
+
target: Flag.String("target").pipe(Flag.optional, Flag.withDescription("The target repository, mounted read-only so the proposal can claim what it already provides (LLM4TS_TARGET_REPO)"))
|
|
199
|
+
}, (config) => Effect.gen(function* () {
|
|
200
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
201
|
+
return yield* new ShellUsageError({
|
|
202
|
+
message: "refine is interactive; off a terminal edit docs/modernization/decisions.md and run `llm4ts run modernize-refine`"
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
const repo = resolve(config.repo._tag === "Some" ? config.repo.value : process.cwd());
|
|
206
|
+
const flowPath = yield* resolveFlow("modernize-refine", shellTierPaths());
|
|
207
|
+
const environment = { ...process.env };
|
|
208
|
+
if (config.pack._tag === "Some") {
|
|
209
|
+
environment.LLM4TS_PACK = config.pack.value;
|
|
210
|
+
}
|
|
211
|
+
if (config.target._tag === "Some") {
|
|
212
|
+
environment.LLM4TS_TARGET_REPO = resolve(config.target.value);
|
|
213
|
+
}
|
|
214
|
+
yield* refineSession({
|
|
215
|
+
modDir: join(repo, ModDir),
|
|
216
|
+
environment,
|
|
217
|
+
launch: (extra) => launchFlow({
|
|
218
|
+
flowPath,
|
|
219
|
+
taskArgs: ["--repo", repo],
|
|
220
|
+
environment: { ...environment, ...extra }
|
|
221
|
+
}).pipe(Effect.catch((error) => Console.error(error.message).pipe(Effect.as(1))))
|
|
222
|
+
});
|
|
223
|
+
})).pipe(Command.withDescription("Interactively mark, deepen, and consolidate an extracted spec pack, then run modernize-refine on it (ADR 0015)"));
|
|
193
224
|
const doctorCommand = Command.make("doctor", {}, () => Effect.gen(function* () {
|
|
194
225
|
const report = yield* makeDoctorProgram();
|
|
195
226
|
yield* Console.log(report.trimEnd());
|
|
@@ -207,6 +238,7 @@ export const shellCommand = Command.make("llm4ts", {}, () => Effect.gen(function
|
|
|
207
238
|
kitsCommand,
|
|
208
239
|
viewCommand,
|
|
209
240
|
askCommand,
|
|
241
|
+
refineCommand,
|
|
210
242
|
doctorCommand
|
|
211
243
|
]));
|
|
212
244
|
export const runShellCommand = (argv) => Command.runWith(shellCommand, { version: packageVersion })(argv);
|
package/dist/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
package/dist/Refine.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { FileSystem } from "effect/FileSystem";
|
|
3
|
+
import * as Prompt from "effect/unstable/cli/Prompt";
|
|
4
|
+
import { Decisions } from "@llm4ts/flow/Decisions";
|
|
5
|
+
import { Domains } from "@llm4ts/flow/Domains";
|
|
6
|
+
/**
|
|
7
|
+
* The interactive front of `modernize-refine` (ADR 0015). The FILE is the
|
|
8
|
+
* state: every beat here reads `docs/modernization/decisions.md` and
|
|
9
|
+
* `domains.md`, edits them through the flow package's parse/render, and
|
|
10
|
+
* writes them back — then the engine flow runs as a child process exactly
|
|
11
|
+
* as `llm4ts run modernize-refine` would. Nothing done here is unreachable
|
|
12
|
+
* by editing the files by hand.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ModDir = "docs/modernization";
|
|
15
|
+
export interface PackInventory {
|
|
16
|
+
readonly programs: ReadonlyArray<string>;
|
|
17
|
+
readonly scenarios: ReadonlyMap<string, ReadonlyArray<string>>;
|
|
18
|
+
}
|
|
19
|
+
/** The extracted programs and their scenario titles, from the pack on disk. */
|
|
20
|
+
export declare const scanPack: (modDir: string) => Effect.Effect<{
|
|
21
|
+
programs: string[];
|
|
22
|
+
scenarios: Map<string, readonly string[]>;
|
|
23
|
+
}, never, FileSystem>;
|
|
24
|
+
export declare const loadDecisions: (modDir: string) => Effect.Effect<Decisions, import("@llm4ts/flow/FlowError").DecisionsInvalid, FileSystem>;
|
|
25
|
+
export declare const loadDomains: (modDir: string) => Effect.Effect<Domains | undefined, import("@llm4ts/flow/FlowError").DecisionsInvalid, FileSystem>;
|
|
26
|
+
export declare const saveDecisions: (modDir: string, decisions: Decisions) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem>;
|
|
27
|
+
export declare const saveDomains: (modDir: string, domains: Domains) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem>;
|
|
28
|
+
/** `- [ ] Approved` → `- [x] Approved` in a markdown document; unchanged when already approved. */
|
|
29
|
+
export declare const approveMarkdown: (markdown: string) => string;
|
|
30
|
+
/** The decision signature: LLM4TS_APPROVER, else the OS user. */
|
|
31
|
+
export declare const signer: (environment: Readonly<Record<string, string | undefined>>) => string;
|
|
32
|
+
export interface RefineSessionOptions {
|
|
33
|
+
/** Absolute `docs/modernization` of the legacy repository. */
|
|
34
|
+
readonly modDir: string;
|
|
35
|
+
/** Runs the engine flow; resolves to its exit code. */
|
|
36
|
+
readonly launch: (extraEnvironment: Readonly<Record<string, string>>) => Effect.Effect<number>;
|
|
37
|
+
readonly environment: Readonly<Record<string, string | undefined>>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The interactive loop. Each beat writes the files and returns to the menu;
|
|
41
|
+
* Ctrl-C inside a prompt returns to the menu rather than crashing.
|
|
42
|
+
*/
|
|
43
|
+
export declare const refineSession: (options: RefineSessionOptions) => Effect.Effect<void, import("@llm4ts/flow/FlowError").DecisionsInvalid, Prompt.Environment>;
|
|
44
|
+
//# sourceMappingURL=Refine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Refine.d.ts","sourceRoot":"","sources":["../src/Refine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,SAAS,EASV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAA+B,MAAM,sBAAsB,CAAA;AAG3E;;;;;;;GAOG;AAEH,eAAO,MAAM,MAAM,uBAAuB,CAAA;AAE1C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAC/D;AAED,+EAA+E;AAC/E,eAAO,MAAM,QAAQ;;;qBAenB,CAAA;AAEF,eAAO,MAAM,aAAa,6GAQxB,CAAA;AAEF,eAAO,MAAM,WAAW,uHAQtB,CAAA;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,WAAW,SAAS,kFAG/D,CAAA;AAEH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,SAAS,OAAO,kFAGzD,CAAA;AAEH,mGAAmG;AACnG,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,MAGQ,CAAA;AAE3D,iEAAiE;AACjE,eAAO,MAAM,MAAM,GAAI,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KAAG,MAUlF,CAAA;AAID,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9F,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CACnE;AAsSD;;;GAGG;AACH,eAAO,MAAM,aAAa,+HA+FxB,CAAA"}
|
package/dist/Refine.js
ADDED
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { userInfo } from "node:os";
|
|
2
|
+
import * as Console from "effect/Console";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import { FileSystem } from "effect/FileSystem";
|
|
5
|
+
import * as Prompt from "effect/unstable/cli/Prompt";
|
|
6
|
+
import { Decisions, DeepenMark, ProgramDecision, ProposalMark, ScenarioDecision, parseDecisions, renderDecisions, scenarioTitles } from "@llm4ts/flow/Decisions";
|
|
7
|
+
import { Domains, parseDomains, renderDomains } from "@llm4ts/flow/Domains";
|
|
8
|
+
import { ApprovedMarker, DraftApprovalMarker } from "@llm4ts/flow/Approval";
|
|
9
|
+
/**
|
|
10
|
+
* The interactive front of `modernize-refine` (ADR 0015). The FILE is the
|
|
11
|
+
* state: every beat here reads `docs/modernization/decisions.md` and
|
|
12
|
+
* `domains.md`, edits them through the flow package's parse/render, and
|
|
13
|
+
* writes them back — then the engine flow runs as a child process exactly
|
|
14
|
+
* as `llm4ts run modernize-refine` would. Nothing done here is unreachable
|
|
15
|
+
* by editing the files by hand.
|
|
16
|
+
*/
|
|
17
|
+
export const ModDir = "docs/modernization";
|
|
18
|
+
/** The extracted programs and their scenario titles, from the pack on disk. */
|
|
19
|
+
export const scanPack = Effect.fn("@llm4ts/shell/Refine.scanPack")(function* (modDir) {
|
|
20
|
+
const fs = yield* FileSystem;
|
|
21
|
+
const specsDir = `${modDir}/specs`;
|
|
22
|
+
const names = (yield* fs.readDirectory(specsDir).pipe(Effect.orElseSucceed(() => [])))
|
|
23
|
+
.filter((file) => file.endsWith(".md") && file !== "README.md")
|
|
24
|
+
.map((file) => file.slice(0, -".md".length))
|
|
25
|
+
.sort();
|
|
26
|
+
const scenarios = new Map();
|
|
27
|
+
for (const name of names) {
|
|
28
|
+
const feature = yield* fs
|
|
29
|
+
.readFileString(`${modDir}/features/${name.toLowerCase()}.feature`)
|
|
30
|
+
.pipe(Effect.orElseSucceed(() => ""));
|
|
31
|
+
scenarios.set(name, scenarioTitles(feature));
|
|
32
|
+
}
|
|
33
|
+
return { programs: names, scenarios };
|
|
34
|
+
});
|
|
35
|
+
export const loadDecisions = Effect.fn("@llm4ts/shell/Refine.loadDecisions")(function* (modDir) {
|
|
36
|
+
const fs = yield* FileSystem;
|
|
37
|
+
const text = yield* fs
|
|
38
|
+
.readFileString(`${modDir}/decisions.md`)
|
|
39
|
+
.pipe(Effect.orElseSucceed(() => undefined));
|
|
40
|
+
return text === undefined ? Decisions.empty() : yield* parseDecisions(text, "decisions.md");
|
|
41
|
+
});
|
|
42
|
+
export const loadDomains = Effect.fn("@llm4ts/shell/Refine.loadDomains")(function* (modDir) {
|
|
43
|
+
const fs = yield* FileSystem;
|
|
44
|
+
const text = yield* fs
|
|
45
|
+
.readFileString(`${modDir}/domains.md`)
|
|
46
|
+
.pipe(Effect.orElseSucceed(() => undefined));
|
|
47
|
+
return text === undefined ? undefined : yield* parseDomains(text, "domains.md");
|
|
48
|
+
});
|
|
49
|
+
export const saveDecisions = (modDir, decisions) => Effect.flatMap(FileSystem, (fs) => fs.writeFileString(`${modDir}/decisions.md`, renderDecisions(decisions)));
|
|
50
|
+
export const saveDomains = (modDir, domains) => Effect.flatMap(FileSystem, (fs) => fs.writeFileString(`${modDir}/domains.md`, renderDomains(domains)));
|
|
51
|
+
/** `- [ ] Approved` → `- [x] Approved` in a markdown document; unchanged when already approved. */
|
|
52
|
+
export const approveMarkdown = (markdown) => markdown.includes(ApprovedMarker)
|
|
53
|
+
? markdown
|
|
54
|
+
: markdown.replace(DraftApprovalMarker, ApprovedMarker);
|
|
55
|
+
/** The decision signature: LLM4TS_APPROVER, else the OS user. */
|
|
56
|
+
export const signer = (environment) => {
|
|
57
|
+
const approver = environment.LLM4TS_APPROVER?.trim();
|
|
58
|
+
if (approver !== undefined && approver.length > 0) {
|
|
59
|
+
return approver;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
return userInfo().username;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return "operator";
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const today = () => new Date().toISOString().slice(0, 10);
|
|
69
|
+
const dispositionChoices = [
|
|
70
|
+
{ title: "drop", value: "drop", description: "deprecated — will not exist in the target" },
|
|
71
|
+
{
|
|
72
|
+
title: "provided",
|
|
73
|
+
value: "provided",
|
|
74
|
+
description: "the target already has it or solves it differently"
|
|
75
|
+
},
|
|
76
|
+
{ title: "defer", value: "defer", description: "still to migrate, not in this delivery" },
|
|
77
|
+
{ title: "wrap", value: "wrap", description: "programs only: stays legacy behind an API" },
|
|
78
|
+
{ title: "? ask the model", value: "?", description: "let the proposal decide, with your note" }
|
|
79
|
+
];
|
|
80
|
+
const nonEmpty = (value) => value.trim().length === 0 ? Effect.fail("required") : Effect.succeed(value.trim());
|
|
81
|
+
/** Asks for a disposition and what it needs; `undefined` means a `?` mark with the note. */
|
|
82
|
+
const askDisposition = Effect.fn("@llm4ts/shell/Refine.askDisposition")(function* (key, programLevel, who) {
|
|
83
|
+
const disposition = yield* Prompt.run(Prompt.Select({
|
|
84
|
+
message: `${key} — disposition`,
|
|
85
|
+
choices: programLevel
|
|
86
|
+
? dispositionChoices
|
|
87
|
+
: dispositionChoices.filter((choice) => choice.value !== "wrap")
|
|
88
|
+
}));
|
|
89
|
+
if (disposition === "?") {
|
|
90
|
+
const note = yield* Prompt.run(Prompt.String({ message: `${key} — note for the model (what makes you unsure)` }));
|
|
91
|
+
return { mark: note.trim() };
|
|
92
|
+
}
|
|
93
|
+
const pointer = disposition === "provided"
|
|
94
|
+
? yield* Prompt.run(Prompt.String({
|
|
95
|
+
message: `${key} — target path or capability that provides it`,
|
|
96
|
+
validate: nonEmpty
|
|
97
|
+
}))
|
|
98
|
+
: undefined;
|
|
99
|
+
const reason = yield* Prompt.run(Prompt.String({
|
|
100
|
+
message: `${key} — why${disposition === "provided" ? " (note)" : ""}`,
|
|
101
|
+
...(disposition === "provided" ? {} : { validate: nonEmpty })
|
|
102
|
+
}));
|
|
103
|
+
const milestone = disposition === "defer"
|
|
104
|
+
? yield* Prompt.run(Prompt.String({ message: `${key} — milestone or wave (empty for none)` }))
|
|
105
|
+
: undefined;
|
|
106
|
+
const decided = {
|
|
107
|
+
disposition,
|
|
108
|
+
reason: reason.trim(),
|
|
109
|
+
...(pointer === undefined ? {} : { pointer: pointer.trim() }),
|
|
110
|
+
...(milestone === undefined || milestone.trim().length === 0
|
|
111
|
+
? {}
|
|
112
|
+
: { milestone: milestone.trim() }),
|
|
113
|
+
decidedBy: who,
|
|
114
|
+
decidedAt: today()
|
|
115
|
+
};
|
|
116
|
+
return { decided };
|
|
117
|
+
});
|
|
118
|
+
const markPrograms = Effect.fn("@llm4ts/shell/Refine.markPrograms")(function* (options, inventory, decisions) {
|
|
119
|
+
const open = inventory.programs.filter((name) => decisions.programDecision(name) === undefined &&
|
|
120
|
+
!decisions.marks.some((mark) => mark.program === name && mark.scenario === undefined));
|
|
121
|
+
if (open.length === 0) {
|
|
122
|
+
yield* Console.log("every program already has a decision or a mark");
|
|
123
|
+
return decisions;
|
|
124
|
+
}
|
|
125
|
+
const chosen = yield* Prompt.run(Prompt.MultiSelect({
|
|
126
|
+
message: "Programs to mark (space selects, enter confirms)",
|
|
127
|
+
choices: open.map((name) => ({ title: name, value: name }))
|
|
128
|
+
}));
|
|
129
|
+
const who = signer(options.environment);
|
|
130
|
+
let next = decisions;
|
|
131
|
+
for (const name of chosen) {
|
|
132
|
+
const answer = yield* askDisposition(name, true, who);
|
|
133
|
+
next = Decisions.make({
|
|
134
|
+
...next,
|
|
135
|
+
...("decided" in answer
|
|
136
|
+
? {
|
|
137
|
+
programs: [...next.programs, ProgramDecision.make({ program: name, ...answer.decided })]
|
|
138
|
+
}
|
|
139
|
+
: { marks: [...next.marks, ProposalMark.make({ program: name, note: answer.mark })] })
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return next;
|
|
143
|
+
});
|
|
144
|
+
const markScenarios = Effect.fn("@llm4ts/shell/Refine.markScenarios")(function* (options, inventory, decisions) {
|
|
145
|
+
const programs = inventory.programs.filter((name) => decisions.programDecision(name) === undefined);
|
|
146
|
+
if (programs.length === 0) {
|
|
147
|
+
yield* Console.log("no program left whose scenarios can be marked");
|
|
148
|
+
return decisions;
|
|
149
|
+
}
|
|
150
|
+
const program = yield* Prompt.run(Prompt.Select({
|
|
151
|
+
message: "Program",
|
|
152
|
+
choices: programs.map((name) => ({
|
|
153
|
+
title: name,
|
|
154
|
+
value: name,
|
|
155
|
+
description: `${inventory.scenarios.get(name)?.length ?? 0} scenario(s)`
|
|
156
|
+
}))
|
|
157
|
+
}));
|
|
158
|
+
const disposed = decisions.disposedScenarios(program);
|
|
159
|
+
const open = (inventory.scenarios.get(program) ?? []).filter((title) => !disposed.has(title) &&
|
|
160
|
+
!decisions.marks.some((mark) => mark.program === program && mark.scenario === title));
|
|
161
|
+
if (open.length === 0) {
|
|
162
|
+
yield* Console.log(`every scenario of ${program} already has a decision or a mark`);
|
|
163
|
+
return decisions;
|
|
164
|
+
}
|
|
165
|
+
const chosen = yield* Prompt.run(Prompt.MultiSelect({
|
|
166
|
+
message: `${program} — scenarios to mark`,
|
|
167
|
+
choices: open.map((title) => ({ title, value: title }))
|
|
168
|
+
}));
|
|
169
|
+
const who = signer(options.environment);
|
|
170
|
+
let next = decisions;
|
|
171
|
+
for (const title of chosen) {
|
|
172
|
+
const answer = yield* askDisposition(`${program} / ${title}`, false, who);
|
|
173
|
+
next = Decisions.make({
|
|
174
|
+
...next,
|
|
175
|
+
...("decided" in answer
|
|
176
|
+
? {
|
|
177
|
+
scenarios: [
|
|
178
|
+
...next.scenarios,
|
|
179
|
+
ScenarioDecision.make({ program, scenario: title, ...answer.decided })
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
: {
|
|
183
|
+
marks: [
|
|
184
|
+
...next.marks,
|
|
185
|
+
ProposalMark.make({ program, scenario: title, note: answer.mark })
|
|
186
|
+
]
|
|
187
|
+
})
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return next;
|
|
191
|
+
});
|
|
192
|
+
const markDeepen = Effect.fn("@llm4ts/shell/Refine.markDeepen")(function* (inventory, decisions) {
|
|
193
|
+
const program = yield* Prompt.run(Prompt.Select({
|
|
194
|
+
message: "Program to deepen",
|
|
195
|
+
choices: inventory.programs.map((name) => ({ title: name, value: name }))
|
|
196
|
+
}));
|
|
197
|
+
const focus = yield* Prompt.run(Prompt.String({
|
|
198
|
+
message: `${program} — what must the analyst look for (mandatory focus)`,
|
|
199
|
+
validate: nonEmpty
|
|
200
|
+
}));
|
|
201
|
+
return Decisions.make({
|
|
202
|
+
...decisions,
|
|
203
|
+
deepen: [...decisions.deepen, DeepenMark.make({ program, focus: focus.trim() })]
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
/** Walks every unanswered open point of both overlays; an empty answer leaves it open. */
|
|
207
|
+
const answerPoints = Effect.fn("@llm4ts/shell/Refine.answerPoints")(function* (options) {
|
|
208
|
+
const decisions = yield* loadDecisions(options.modDir);
|
|
209
|
+
const domains = yield* loadDomains(options.modDir);
|
|
210
|
+
const pendingDecisions = decisions.unansweredOpenPoints;
|
|
211
|
+
const pendingDomains = domains?.unansweredOpenPoints ?? [];
|
|
212
|
+
if (pendingDecisions.length + pendingDomains.length === 0) {
|
|
213
|
+
yield* Console.log("no open points");
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
let answered = 0;
|
|
217
|
+
let nextDecisions = decisions;
|
|
218
|
+
for (const point of pendingDecisions) {
|
|
219
|
+
const answer = yield* Prompt.run(Prompt.String({ message: `decisions.md ${point.number}. ${point.question}` }));
|
|
220
|
+
if (answer.trim().length > 0) {
|
|
221
|
+
answered += 1;
|
|
222
|
+
nextDecisions = Decisions.make({
|
|
223
|
+
...nextDecisions,
|
|
224
|
+
openPoints: nextDecisions.openPoints.map((candidate) => candidate.number === point.number ? { ...candidate, answer: answer.trim() } : candidate)
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (nextDecisions !== decisions) {
|
|
229
|
+
yield* saveDecisions(options.modDir, nextDecisions);
|
|
230
|
+
}
|
|
231
|
+
if (domains !== undefined) {
|
|
232
|
+
let nextDomains = domains;
|
|
233
|
+
for (const point of pendingDomains) {
|
|
234
|
+
const answer = yield* Prompt.run(Prompt.String({ message: `domains.md ${point.number}. ${point.question}` }));
|
|
235
|
+
if (answer.trim().length > 0) {
|
|
236
|
+
answered += 1;
|
|
237
|
+
nextDomains = Domains.make({
|
|
238
|
+
...nextDomains,
|
|
239
|
+
openPoints: nextDomains.openPoints.map((candidate) => candidate.number === point.number ? { ...candidate, answer: answer.trim() } : candidate)
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (nextDomains !== domains) {
|
|
244
|
+
yield* saveDomains(options.modDir, nextDomains);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
yield* Console.log(`${answered} answer(s) recorded — run modernize-refine to apply them`);
|
|
248
|
+
return answered > 0;
|
|
249
|
+
});
|
|
250
|
+
const approveOverlays = Effect.fn("@llm4ts/shell/Refine.approveOverlays")(function* (options) {
|
|
251
|
+
const fs = yield* FileSystem;
|
|
252
|
+
const decisions = yield* loadDecisions(options.modDir);
|
|
253
|
+
const domains = yield* loadDomains(options.modDir);
|
|
254
|
+
const pending = decisions.unansweredOpenPoints.length + (domains?.unansweredOpenPoints.length ?? 0);
|
|
255
|
+
if (pending > 0) {
|
|
256
|
+
yield* Console.log(`${pending} open point(s) are still unanswered — answer them first`);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const ok = yield* Prompt.run(Prompt.Confirm({
|
|
260
|
+
message: "Approve the README, decisions.md, and domains.md as they are on disk?",
|
|
261
|
+
initial: false
|
|
262
|
+
}));
|
|
263
|
+
if (!ok) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
for (const file of ["README.md", "decisions.md", "domains.md"]) {
|
|
267
|
+
const path = `${options.modDir}/${file}`;
|
|
268
|
+
const text = yield* fs.readFileString(path).pipe(Effect.orElseSucceed(() => undefined));
|
|
269
|
+
if (text !== undefined) {
|
|
270
|
+
yield* fs.writeFileString(path, approveMarkdown(text));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
yield* Console.log("approved — commit the pack and run the seed phase");
|
|
274
|
+
});
|
|
275
|
+
/**
|
|
276
|
+
* The interactive loop. Each beat writes the files and returns to the menu;
|
|
277
|
+
* Ctrl-C inside a prompt returns to the menu rather than crashing.
|
|
278
|
+
*/
|
|
279
|
+
export const refineSession = Effect.fn("@llm4ts/shell/Refine.session")(function* (options) {
|
|
280
|
+
const fs = yield* FileSystem;
|
|
281
|
+
const inventory = yield* scanPack(options.modDir);
|
|
282
|
+
if (inventory.programs.length === 0) {
|
|
283
|
+
yield* Console.error(`no spec pack under ${options.modDir}/specs — run modernize-extract first`);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
while (true) {
|
|
287
|
+
const decisions = yield* loadDecisions(options.modDir);
|
|
288
|
+
const domains = yield* loadDomains(options.modDir);
|
|
289
|
+
const pending = decisions.unansweredOpenPoints.length + (domains?.unansweredOpenPoints.length ?? 0);
|
|
290
|
+
const summary = `${inventory.programs.length} program(s) · ${decisions.programs.length} program and ` +
|
|
291
|
+
`${decisions.scenarios.length} scenario decision(s) · ${decisions.marks.length} mark(s) · ` +
|
|
292
|
+
`${decisions.pendingDeepen.length} deepen pending · ` +
|
|
293
|
+
`${domains === undefined ? "no domain map" : `${domains.features.length} domain feature(s)`} · ` +
|
|
294
|
+
`${pending} open point(s)`;
|
|
295
|
+
const action = yield* Prompt.run(Prompt.Select({
|
|
296
|
+
message: `refine — ${summary}`,
|
|
297
|
+
choices: [
|
|
298
|
+
{ title: "Mark programs", value: "programs" },
|
|
299
|
+
{ title: "Mark scenarios", value: "scenarios" },
|
|
300
|
+
{ title: "Deepen a program", value: "deepen" },
|
|
301
|
+
{ title: "Run modernize-refine", value: "run" },
|
|
302
|
+
{ title: "Answer open points", value: "answer" },
|
|
303
|
+
{ title: "Regroup (discard domains.md and rebuild it)", value: "regroup" },
|
|
304
|
+
{ title: "Approve the overlays", value: "approve" },
|
|
305
|
+
{ title: "Exit", value: "exit" }
|
|
306
|
+
]
|
|
307
|
+
})).pipe(Effect.catchTag("QuitError", () => Effect.succeed("exit")));
|
|
308
|
+
const beat = Effect.gen(function* () {
|
|
309
|
+
switch (action) {
|
|
310
|
+
case "programs": {
|
|
311
|
+
yield* saveDecisions(options.modDir, yield* markPrograms(options, inventory, decisions));
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
case "scenarios": {
|
|
315
|
+
yield* saveDecisions(options.modDir, yield* markScenarios(options, inventory, decisions));
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
case "deepen": {
|
|
319
|
+
yield* saveDecisions(options.modDir, yield* markDeepen(inventory, decisions));
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
case "run":
|
|
323
|
+
case "regroup": {
|
|
324
|
+
if (action === "regroup") {
|
|
325
|
+
const ok = yield* Prompt.run(Prompt.Confirm({
|
|
326
|
+
message: "Discard domains.md and regroup from the current specs and decisions?",
|
|
327
|
+
initial: false
|
|
328
|
+
}));
|
|
329
|
+
if (!ok) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
if (decisions.isEmpty && !(yield* fs.exists(`${options.modDir}/decisions.md`))) {
|
|
334
|
+
// An empty overlay still lands with its guide, so the next hand-edit has the vocabulary.
|
|
335
|
+
yield* saveDecisions(options.modDir, decisions);
|
|
336
|
+
}
|
|
337
|
+
const code = yield* options.launch(action === "regroup" ? { LLM4TS_REGROUP: "1" } : {});
|
|
338
|
+
if (code !== 0) {
|
|
339
|
+
yield* Console.log(`modernize-refine exited with code ${code} — answer any open points it listed, or fix the files`);
|
|
340
|
+
}
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
case "answer": {
|
|
344
|
+
yield* answerPoints(options);
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
case "approve": {
|
|
348
|
+
yield* approveOverlays(options);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
case "exit": {
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
if (action === "exit") {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
yield* beat.pipe(Effect.catchTag("QuitError", () => Effect.void), Effect.catch((error) => Console.error(error instanceof Error ? error.message : String(error))));
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
//# sourceMappingURL=Refine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Refine.js","sourceRoot":"","sources":["../src/Refine.ts"],"names":[],"mappings":"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"}
|
package/flows/epic-stories.js
CHANGED
|
@@ -105,7 +105,7 @@ const program = Effect.gen(function* () {
|
|
|
105
105
|
failFast: flags.failFast
|
|
106
106
|
});
|
|
107
107
|
yield* events.publish(Info.make({
|
|
108
|
-
message: `epic ${report.epicId}: ${report.count("done")} done, ${report.count("failed")} failed, ${report.count("
|
|
108
|
+
message: `epic ${report.epicId}: ${report.count("done")} done, ${report.count("failed")} failed, ${report.count("waiting")} waiting — report at ${join(stateDir, "report.md")} (usage figures estimated)`
|
|
109
109
|
}));
|
|
110
110
|
}));
|
|
111
111
|
});
|
|
@@ -22,7 +22,7 @@ The expected split of the demo epic against the internet-banking portal fixture
|
|
|
22
22
|
{
|
|
23
23
|
"id": "accounts-contract",
|
|
24
24
|
"title": "Accounts domain contract and fake routes",
|
|
25
|
-
"description": "Declare the Accounts HttpApi in src/contracts/accounts.ts: list the customer's current accounts (id, IBAN, label, balance in cents, available balance), one account's detail, and its movements as a cursor-paged list (date, description, amount in cents, running balance, category). Implement src/contracts/accounts.fake.ts with deterministic fixture data for customer C-000123 (two accounts, at least 30 movements on the first), a reset function, and the exported accountsDomain. Run pnpm openapi and commit contracts/openapi/accounts.json. Follow src/contracts/profile.ts and profile.fake.ts exactly. Add src/contracts/accounts.test.ts covering the fake routes through the typed client: list, detail, and a page of movements.",
|
|
25
|
+
"description": "Declare the Accounts HttpApi in src/contracts/accounts.ts: list the customer's current accounts (id, IBAN, label, balance in cents, available balance), one account's detail, and its movements as a cursor-paged list (date, description, amount in cents, running balance, category) whose optional cursor is the endpoint's `query` schema (HttpApiEndpoint's query option, called as client.accounts.movements({ params: { accountId }, query: { cursor } })); the fake reads it from the request query string. Implement src/contracts/accounts.fake.ts with deterministic fixture data for customer C-000123 (two accounts, at least 30 movements on the first), a reset function, and the exported accountsDomain. Run pnpm openapi and commit contracts/openapi/accounts.json. Follow src/contracts/profile.ts and profile.fake.ts exactly. Add src/contracts/accounts.test.ts covering the fake routes through the typed client: list, detail, and a page of movements.",
|
|
26
26
|
"dependsOn": [],
|
|
27
27
|
"owned": [
|
|
28
28
|
"src/contracts/accounts.ts",
|
|
@@ -40,14 +40,14 @@ The expected split of the demo epic against the internet-banking portal fixture
|
|
|
40
40
|
"accountsDomain from src/contracts/accounts.fake.ts",
|
|
41
41
|
"client.accounts.list()",
|
|
42
42
|
"client.accounts.get({ params: { accountId } })",
|
|
43
|
-
"client.accounts.movements({ params: { accountId },
|
|
43
|
+
"client.accounts.movements({ params: { accountId }, query: { cursor } })",
|
|
44
44
|
"src/contracts/accounts.test.ts"
|
|
45
45
|
]
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"id": "payments-contract",
|
|
49
49
|
"title": "Payments domain contract and stateful fake routes",
|
|
50
|
-
"description": "Declare the Payments HttpApi in src/contracts/payments.ts: list saved beneficiaries (name, IBAN), create a transfer from a payload with exactly these fields: fromAccountId (an Accounts domain account id), beneficiary as either { beneficiaryId } for a saved one or { name, iban } typed by the customer, amountCents, description, executionDate (ISO date), returning a pending transfer with an id, confirm a transfer with a six-digit SCA code: TransferState is exactly \"pending\" | \"confirmed\" | \"refused\"; any six-digit code other than 000000 moves the transfer to confirmed, the code 000000 moves it to refused and returns the refused transfer (HTTP 200, not an error), and a code that is not six digits is UnprocessableEntity; list transfers newest first with their state, and get one transfer. Implement src/contracts/payments.fake.ts with an in-memory store per page session so a created then confirmed transfer appears in the list, a reset function, and the exported paymentsDomain. Run pnpm openapi and commit contracts/openapi/payments.json. Follow src/contracts/profile.ts and profile.fake.ts exactly. Add src/contracts/payments.test.ts covering the fake routes through the typed client: create then confirm then list, and the refused code 000000.",
|
|
50
|
+
"description": "Declare the Payments HttpApi in src/contracts/payments.ts: list saved beneficiaries (name, IBAN), create a transfer from a payload with exactly these fields: fromAccountId as a plain string (it carries an Accounts domain account id, but this contract must not import anything from accounts.ts — the two contracts are independent), beneficiary as either { beneficiaryId } for a saved one or { name, iban } typed by the customer, amountCents, description, executionDate (ISO date), returning a pending transfer with an id, confirm a transfer with a six-digit SCA code: TransferState is exactly \"pending\" | \"confirmed\" | \"refused\"; any six-digit code other than 000000 moves the transfer to confirmed, the code 000000 moves it to refused and returns the refused transfer (HTTP 200, not an error), and a code that is not six digits is UnprocessableEntity; list transfers newest first with their state, and get one transfer. Implement src/contracts/payments.fake.ts with an in-memory store per page session so a created then confirmed transfer appears in the list, a reset function, and the exported paymentsDomain. Run pnpm openapi and commit contracts/openapi/payments.json. Follow src/contracts/profile.ts and profile.fake.ts exactly. Add src/contracts/payments.test.ts covering the fake routes through the typed client: create then confirm then list, and the refused code 000000.",
|
|
51
51
|
"dependsOn": [],
|
|
52
52
|
"owned": [
|
|
53
53
|
"src/contracts/payments.ts",
|