@llm4ts/flow 2.16.0 → 2.18.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/Approval.d.ts +1 -1
- package/dist/Approval.d.ts.map +1 -1
- package/dist/Artifacts.d.ts +2 -2
- package/dist/Artifacts.d.ts.map +1 -1
- package/dist/BenchReport.d.ts +2 -2
- package/dist/BenchReport.d.ts.map +1 -1
- package/dist/CostLedger.d.ts +2 -2
- package/dist/CostLedger.d.ts.map +1 -1
- package/dist/CoverageLedger.d.ts +180 -0
- package/dist/CoverageLedger.d.ts.map +1 -0
- package/dist/CoverageLedger.js +415 -0
- package/dist/CoverageLedger.js.map +1 -0
- package/dist/EpicBrief.d.ts +239 -0
- package/dist/EpicBrief.d.ts.map +1 -0
- package/dist/EpicBrief.js +868 -0
- package/dist/EpicBrief.js.map +1 -0
- package/dist/Equiv.d.ts +3 -3
- package/dist/Equiv.d.ts.map +1 -1
- package/dist/Flow.d.ts +1 -1
- package/dist/Flow.d.ts.map +1 -1
- package/dist/FlowError.d.ts +23 -1
- package/dist/FlowError.d.ts.map +1 -1
- package/dist/FlowError.js +30 -1
- package/dist/FlowError.js.map +1 -1
- package/dist/Judgment.d.ts +2 -2
- package/dist/Judgment.d.ts.map +1 -1
- package/dist/Landing.d.ts +1 -1
- package/dist/Landing.d.ts.map +1 -1
- package/dist/Persistence.d.ts +2 -2
- package/dist/Persistence.d.ts.map +1 -1
- package/dist/PlanExecution.d.ts +1 -1
- package/dist/PlanExecution.d.ts.map +1 -1
- package/dist/ProgramJudge.d.ts +1 -1
- package/dist/ProgramJudge.d.ts.map +1 -1
- package/dist/Replay.d.ts +2 -2
- package/dist/Replay.d.ts.map +1 -1
- package/dist/Review.d.ts +3 -3
- package/dist/Review.d.ts.map +1 -1
- package/dist/ReviewCache.d.ts +1 -1
- package/dist/ReviewCache.d.ts.map +1 -1
- package/dist/Roster.d.ts +1 -1
- package/dist/Roster.d.ts.map +1 -1
- package/dist/RosterSeats.d.ts +1 -1
- package/dist/RosterSeats.d.ts.map +1 -1
- package/dist/Stories.d.ts +1 -1
- package/dist/Stories.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/CoverageLedger.ts +549 -0
- package/src/EpicBrief.ts +1014 -0
- package/src/FlowError.ts +39 -1
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import type { JsonSchema } from "@llm4ts/core/Models";
|
|
4
|
+
import { OpenPoint } from "./Decisions.ts";
|
|
5
|
+
import { EpicBriefInvalid } from "./FlowError.ts";
|
|
6
|
+
/**
|
|
7
|
+
* The epic brief: what `epic-design` writes and `epic-stories` plans from.
|
|
8
|
+
* The file is the state. It says what an epic delivers and, for every
|
|
9
|
+
* scenario of every legacy program it considered, whether that behaviour is
|
|
10
|
+
* carried over, dropped, already provided by the target, or deferred, each
|
|
11
|
+
* with its evidence in the extract pack (`PROGRAM › scenario title`). A human
|
|
12
|
+
* edits it, answers its open points, writes feedback, and approves it by
|
|
13
|
+
* setting `Status: approved`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const BriefStatus: Schema.Literals<readonly ["draft", "approved"]>;
|
|
16
|
+
export type BriefStatus = typeof BriefStatus.Type;
|
|
17
|
+
declare const Citation_base: Schema.Class<Citation, Schema.Struct<{
|
|
18
|
+
readonly program: Schema.String;
|
|
19
|
+
readonly scenario: Schema.String;
|
|
20
|
+
}>, {}>;
|
|
21
|
+
/** Legacy evidence: a scenario of a program, both named exactly as in the pack. */
|
|
22
|
+
export declare class Citation extends Citation_base {
|
|
23
|
+
}
|
|
24
|
+
declare const ScopeItem_base: Schema.Class<ScopeItem, Schema.Struct<{
|
|
25
|
+
readonly title: Schema.String;
|
|
26
|
+
readonly citations: Schema.$Array<typeof Citation>;
|
|
27
|
+
/** Why an item with no citation exists: behaviour with no legacy counterpart. */
|
|
28
|
+
readonly newBehaviour: Schema.optionalKey<Schema.String>;
|
|
29
|
+
}>, {}>;
|
|
30
|
+
export declare class ScopeItem extends ScopeItem_base {
|
|
31
|
+
}
|
|
32
|
+
declare const Disposed_base: Schema.Class<Disposed, Schema.Struct<{
|
|
33
|
+
readonly program: Schema.String;
|
|
34
|
+
readonly scenario: Schema.String;
|
|
35
|
+
readonly note: Schema.String;
|
|
36
|
+
}>, {}>;
|
|
37
|
+
/** A scenario not carried over; `note` is the reason (dropped), the pointer (provided) or the note (deferred). */
|
|
38
|
+
export declare class Disposed extends Disposed_base {
|
|
39
|
+
}
|
|
40
|
+
declare const ConsideredProgram_base: Schema.Class<ConsideredProgram, Schema.Struct<{
|
|
41
|
+
readonly name: Schema.String;
|
|
42
|
+
readonly reason: Schema.String;
|
|
43
|
+
}>, {}>;
|
|
44
|
+
export declare class ConsideredProgram extends ConsideredProgram_base {
|
|
45
|
+
}
|
|
46
|
+
declare const EpicBrief_base: Schema.Class<EpicBrief, Schema.Struct<{
|
|
47
|
+
readonly epicId: Schema.String;
|
|
48
|
+
readonly status: Schema.Literals<readonly ["draft", "approved"]>;
|
|
49
|
+
/** The epic as the user asked for it; becomes the story plan's `epic`. */
|
|
50
|
+
readonly request: Schema.String;
|
|
51
|
+
readonly legacy: Schema.String;
|
|
52
|
+
readonly goal: Schema.String;
|
|
53
|
+
readonly programs: Schema.$Array<typeof ConsideredProgram>;
|
|
54
|
+
readonly scope: Schema.$Array<typeof ScopeItem>;
|
|
55
|
+
readonly dropped: Schema.$Array<typeof Disposed>;
|
|
56
|
+
readonly provided: Schema.$Array<typeof Disposed>;
|
|
57
|
+
readonly deferred: Schema.$Array<typeof Disposed>;
|
|
58
|
+
readonly constraints: Schema.String;
|
|
59
|
+
readonly openPoints: Schema.$Array<typeof OpenPoint>;
|
|
60
|
+
readonly feedback: Schema.String;
|
|
61
|
+
}>, {}>;
|
|
62
|
+
export declare class EpicBrief extends EpicBrief_base {
|
|
63
|
+
}
|
|
64
|
+
/** Open points with no answer, or an empty one. */
|
|
65
|
+
export declare const unanswered: (brief: EpicBrief) => ReadonlyArray<OpenPoint>;
|
|
66
|
+
export declare const renderEpicBrief: (brief: EpicBrief) => string;
|
|
67
|
+
export declare const parseEpicBrief: (markdown: string, path?: string | undefined) => Effect.Effect<EpicBrief, EpicBriefInvalid, never>;
|
|
68
|
+
/**
|
|
69
|
+
* The brief as the file can hold it. A model's proposal may carry a newline
|
|
70
|
+
* in a title, a `## ` line in the goal, an unclosed fence; written as they
|
|
71
|
+
* are, those would parse back as something else on the next run. Fields that
|
|
72
|
+
* live on one line are folded onto one, prose is made safe for the section
|
|
73
|
+
* grammar, and nothing else changes.
|
|
74
|
+
*/
|
|
75
|
+
export declare const normalizeBrief: (brief: EpicBrief) => EpicBrief;
|
|
76
|
+
export interface PackProgram {
|
|
77
|
+
readonly name: string;
|
|
78
|
+
/** The first paragraph of the program's spec. */
|
|
79
|
+
readonly summary: string;
|
|
80
|
+
readonly scenarios: ReadonlyArray<string>;
|
|
81
|
+
}
|
|
82
|
+
/** A disposition `modernize-refine` recorded in the legacy pack's decisions.md. */
|
|
83
|
+
export interface RefineDisposition {
|
|
84
|
+
readonly program: string;
|
|
85
|
+
/** Absent: the disposition covers every scenario of the program. */
|
|
86
|
+
readonly scenario?: string;
|
|
87
|
+
readonly disposition: "drop" | "provided" | "defer" | "wrap";
|
|
88
|
+
}
|
|
89
|
+
/** What the checks need from the extract pack, built by the flow from its files. */
|
|
90
|
+
export interface PackIndex {
|
|
91
|
+
readonly programs: ReadonlyArray<PackProgram>;
|
|
92
|
+
readonly refine: ReadonlyArray<RefineDisposition>;
|
|
93
|
+
}
|
|
94
|
+
export declare const BriefProblem: Schema.Union<readonly [Schema.Struct<{
|
|
95
|
+
readonly kind: Schema.Literal<"UnknownProgram">;
|
|
96
|
+
readonly program: Schema.String;
|
|
97
|
+
}>, Schema.Struct<{
|
|
98
|
+
readonly kind: Schema.Literal<"UnknownScenario">;
|
|
99
|
+
readonly program: Schema.String;
|
|
100
|
+
readonly scenario: Schema.String;
|
|
101
|
+
readonly closest: Schema.optionalKey<Schema.String>;
|
|
102
|
+
}>, Schema.Struct<{
|
|
103
|
+
readonly kind: Schema.Literal<"MissingPointer">;
|
|
104
|
+
readonly program: Schema.String;
|
|
105
|
+
readonly scenario: Schema.String;
|
|
106
|
+
readonly pointer: Schema.String;
|
|
107
|
+
}>, Schema.Struct<{
|
|
108
|
+
readonly kind: Schema.Literal<"MissingReason">;
|
|
109
|
+
readonly where: Schema.String;
|
|
110
|
+
}>, Schema.Struct<{
|
|
111
|
+
readonly kind: Schema.Literal<"DuplicateDisposition">;
|
|
112
|
+
readonly program: Schema.String;
|
|
113
|
+
readonly scenario: Schema.String;
|
|
114
|
+
readonly lists: Schema.$Array<Schema.String>;
|
|
115
|
+
}>, Schema.Struct<{
|
|
116
|
+
readonly kind: Schema.Literal<"Unaccounted">;
|
|
117
|
+
readonly program: Schema.String;
|
|
118
|
+
readonly scenario: Schema.String;
|
|
119
|
+
}>, Schema.Struct<{
|
|
120
|
+
readonly kind: Schema.Literal<"RefineConflict">;
|
|
121
|
+
readonly program: Schema.String;
|
|
122
|
+
readonly scenario: Schema.String;
|
|
123
|
+
readonly disposition: Schema.String;
|
|
124
|
+
}>, Schema.Struct<{
|
|
125
|
+
readonly kind: Schema.Literal<"AlreadyOwned">;
|
|
126
|
+
readonly program: Schema.String;
|
|
127
|
+
readonly scenario: Schema.String;
|
|
128
|
+
/** The approved epic that already has the scenario in scope. */
|
|
129
|
+
readonly epic: Schema.String;
|
|
130
|
+
}>, Schema.Struct<{
|
|
131
|
+
readonly kind: Schema.Literal<"ContradictsBrief">;
|
|
132
|
+
readonly program: Schema.String;
|
|
133
|
+
readonly scenario: Schema.String;
|
|
134
|
+
/** The approved epic that decided otherwise. */
|
|
135
|
+
readonly epic: Schema.String;
|
|
136
|
+
/** This brief's disposition, in words. */
|
|
137
|
+
readonly here: Schema.String;
|
|
138
|
+
/** The other epic's disposition, in words. */
|
|
139
|
+
readonly disposition: Schema.String;
|
|
140
|
+
}>, Schema.Struct<{
|
|
141
|
+
readonly kind: Schema.Literal<"ApprovedWithOpenPoints">;
|
|
142
|
+
readonly numbers: Schema.$Array<Schema.Int>;
|
|
143
|
+
}>]>;
|
|
144
|
+
export type BriefProblem = typeof BriefProblem.Type;
|
|
145
|
+
export declare const renderBriefProblem: (problem: BriefProblem) => string;
|
|
146
|
+
/** How a brief disposes of a scenario. */
|
|
147
|
+
export type BriefDisposition = "in-scope" | "dropped" | "provided" | "deferred";
|
|
148
|
+
export declare const dispositionWords: Readonly<Record<BriefDisposition, string>>;
|
|
149
|
+
/** What an approved brief of another epic decided about a scenario (the coverage ledger). */
|
|
150
|
+
export interface InheritedDecision {
|
|
151
|
+
readonly program: string;
|
|
152
|
+
readonly scenario: string;
|
|
153
|
+
readonly epic: string;
|
|
154
|
+
readonly disposition: BriefDisposition;
|
|
155
|
+
readonly note: string;
|
|
156
|
+
/** The epics this decision was kept against on purpose (`keep: <why>` in that brief). */
|
|
157
|
+
readonly keptAgainst?: ReadonlyArray<string>;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The one rule for two briefs on one scenario, read from the side of the
|
|
161
|
+
* brief that has `here`. A deferred scenario is free on either side; two
|
|
162
|
+
* briefs that agree are fine; both in scope is ownership shared or disputed;
|
|
163
|
+
* anything else is a contradiction. The ledger and the per-brief check both
|
|
164
|
+
* use it, so they cannot disagree about what a conflict is.
|
|
165
|
+
*/
|
|
166
|
+
export declare const crossProblem: (program: string, scenario: string, here: BriefDisposition, other: {
|
|
167
|
+
readonly epic: string;
|
|
168
|
+
readonly disposition: BriefDisposition;
|
|
169
|
+
}) => BriefProblem | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* Whether the brief overrides a check on purpose: the check's own `[check]`
|
|
172
|
+
* question, answered `keep: <why>`. Any other answer, or an answer to
|
|
173
|
+
* another question, overrides nothing.
|
|
174
|
+
*/
|
|
175
|
+
export declare const hasOverride: (brief: EpicBrief, problem: BriefProblem) => boolean;
|
|
176
|
+
/** The pointers of the provided entries: what the caller verifies before checking. */
|
|
177
|
+
export declare const providedPointers: (brief: EpicBrief) => ReadonlyArray<string>;
|
|
178
|
+
export interface BriefCheckInputs {
|
|
179
|
+
readonly pack: PackIndex;
|
|
180
|
+
/** The provided pointers that were found in the target (or its pack). */
|
|
181
|
+
readonly pointers: ReadonlySet<string>;
|
|
182
|
+
/**
|
|
183
|
+
* What approved briefs of other epics decided (the coverage ledger). Their
|
|
184
|
+
* decisions are inherited: they count towards completeness, and deciding
|
|
185
|
+
* otherwise here is a problem. Absent: the brief is checked on its own.
|
|
186
|
+
*/
|
|
187
|
+
readonly others?: ReadonlyArray<InheritedDecision>;
|
|
188
|
+
/** This brief's epic, as the other briefs name it. Default: the brief's own id. */
|
|
189
|
+
readonly epicId?: string;
|
|
190
|
+
}
|
|
191
|
+
/** Every problem of a brief against the pack, all at once; empty means acceptable. */
|
|
192
|
+
export declare const checkEpicBrief: (brief: EpicBrief, inputs: BriefCheckInputs) => ReadonlyArray<BriefProblem>;
|
|
193
|
+
declare const ProgramSelection_base: Schema.Class<ProgramSelection, Schema.Struct<{
|
|
194
|
+
readonly programs: Schema.$Array<typeof ConsideredProgram>;
|
|
195
|
+
}>, {}>;
|
|
196
|
+
/** The programs of the pack a request touches; the model's first typed reply. */
|
|
197
|
+
export declare class ProgramSelection extends ProgramSelection_base {
|
|
198
|
+
}
|
|
199
|
+
declare const EpicBriefProposal_base: Schema.Class<EpicBriefProposal, Schema.Struct<{
|
|
200
|
+
readonly goal: Schema.String;
|
|
201
|
+
readonly scope: Schema.$Array<typeof ScopeItem>;
|
|
202
|
+
readonly dropped: Schema.$Array<typeof Disposed>;
|
|
203
|
+
readonly provided: Schema.$Array<typeof Disposed>;
|
|
204
|
+
readonly deferred: Schema.$Array<typeof Disposed>;
|
|
205
|
+
readonly constraints: Schema.String;
|
|
206
|
+
/** Questions only a human can answer. */
|
|
207
|
+
readonly openPoints: Schema.$Array<Schema.String>;
|
|
208
|
+
}>, {}>;
|
|
209
|
+
/** The model's typed proposal for a brief; checked before anything is written. */
|
|
210
|
+
export declare class EpicBriefProposal extends EpicBriefProposal_base {
|
|
211
|
+
}
|
|
212
|
+
export declare const programSelectionJsonSchema: JsonSchema;
|
|
213
|
+
export declare const epicBriefProposalJsonSchema: JsonSchema;
|
|
214
|
+
export interface AssembleOptions {
|
|
215
|
+
readonly epicId: string;
|
|
216
|
+
readonly request: string;
|
|
217
|
+
readonly legacy: string;
|
|
218
|
+
readonly programs: ReadonlyArray<ConsideredProgram>;
|
|
219
|
+
readonly proposal: EpicBriefProposal;
|
|
220
|
+
/** The brief this one revises: its unanswered points the proposal did not restate are kept. */
|
|
221
|
+
readonly previous?: EpicBrief;
|
|
222
|
+
/** Problems the fix round could not clear: raised as `[check]` open points. */
|
|
223
|
+
readonly problems?: ReadonlyArray<BriefProblem>;
|
|
224
|
+
}
|
|
225
|
+
export declare const checkMark = "[check]";
|
|
226
|
+
/**
|
|
227
|
+
* The next draft: never approved, feedback consumed, open points renumbered.
|
|
228
|
+
* Answered points are folded in by the revision and go, except answered
|
|
229
|
+
* `[check]` points: those are the human overriding a check (a scenario
|
|
230
|
+
* refine dropped, kept on purpose) and stay as the record of it.
|
|
231
|
+
*/
|
|
232
|
+
export declare const assembleBrief: (options: AssembleOptions) => EpicBrief;
|
|
233
|
+
export type LoopAction = "propose" | "revise" | "halt" | "await-approval" | "validate";
|
|
234
|
+
/** What one run does, decided from the file alone. */
|
|
235
|
+
export declare const loopAction: (brief: EpicBrief | undefined) => LoopAction;
|
|
236
|
+
/** What a revision changed, in lines a person reads; empty when nothing did. */
|
|
237
|
+
export declare const diffBriefs: (previous: EpicBrief | undefined, next: EpicBrief) => ReadonlyArray<string>;
|
|
238
|
+
export {};
|
|
239
|
+
//# sourceMappingURL=EpicBrief.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EpicBrief.d.ts","sourceRoot":"","sources":["../src/EpicBrief.ts"],"names":[],"mappings":"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"}
|