mesh-delivery-contracts, sdk buildstep: the check answer's fetch keeps the fetch tool's whole answer (workspace, commit, modules, merge, conflicts, changed, programs, trees, beside, packages, installed, refused), typed in the seats' StepResult and the sdk's CheckAnswer and StepResult; fixtures from the build modules' captured answers (B2g; issue 1966)
Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
This commit is contained in:
@@ -111,16 +111,21 @@ export type ComposeAnswer = buildStep.ComposeAnswer;
|
||||
export type CurrentAnswer = buildStep.CurrentAnswer;
|
||||
export type CurrentInput = buildStep.CurrentInput;
|
||||
export type Fetch = buildStep.Fetch;
|
||||
export type FetchAnswer = buildStep.FetchAnswer;
|
||||
export type FetchBesideItem = buildStep.FetchBesideItem;
|
||||
export type FetchRefusal = buildStep.FetchRefusal;
|
||||
export type LevelAnswer = buildStep.LevelAnswer;
|
||||
export type LevelAnswerDigest = buildStep.LevelAnswerDigest;
|
||||
export type LevelAnswerDigestNeedsItem = buildStep.LevelAnswerDigestNeedsItem;
|
||||
export type LevelAnswerDigestPackagesItem = buildStep.LevelAnswerDigestPackagesItem;
|
||||
export type LevelAnswerKeptItem = buildStep.LevelAnswerKeptItem;
|
||||
export type LevelAnswerUnmetItem = buildStep.LevelAnswerUnmetItem;
|
||||
export type ModuleTree = buildStep.ModuleTree;
|
||||
export type Pause = buildStep.Pause;
|
||||
export type PauseAnswer = buildStep.PauseAnswer;
|
||||
export type PauseInput = buildStep.PauseInput;
|
||||
export type PlacedBeside = buildStep.PlacedBeside;
|
||||
export type Program = buildStep.Program;
|
||||
export type ResumeAnswer = buildStep.ResumeAnswer;
|
||||
export type ResumeInput = buildStep.ResumeInput;
|
||||
export type Step = buildStep.Step;
|
||||
@@ -129,6 +134,7 @@ export type StepAskBuild = buildStep.StepAskBuild;
|
||||
export type StepAskCheck = buildStep.StepAskCheck;
|
||||
export type StepAskCompose = buildStep.StepAskCompose;
|
||||
export type StepResult = buildStep.StepResult;
|
||||
export type TakenVersion = buildStep.TakenVersion;
|
||||
export type Toolchain = buildStep.Toolchain;
|
||||
export type ToolchainUsed = buildStep.ToolchainUsed;
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ export interface Capacity {
|
||||
}
|
||||
|
||||
export interface CheckAnswer {
|
||||
"fetch": Fetch;
|
||||
"fetch": FetchAnswer;
|
||||
"levels"?: LevelAnswer[];
|
||||
}
|
||||
|
||||
@@ -87,6 +87,30 @@ export interface Fetch {
|
||||
"repository": string;
|
||||
}
|
||||
|
||||
/** what a build module's fetch tool answers, whole: the workspace it made, the commit in it, the module directories found; and, when the call gave a base, the merge preview (the trunk commit, the merge commit, the files that conflict, the paths the merge changes, the compiled programs among them, the tree of each module directory). A head that does not merge cleanly is an answer, not an error: merge is empty and conflicts names the files. The Go module adds the sibling repositories placed and the package versions taken; the TypeScript module the directories installed and refused and the group's package */
|
||||
export interface FetchAnswer {
|
||||
"base"?: string;
|
||||
"beside"?: PlacedBeside[];
|
||||
"changed"?: string[];
|
||||
"commit": string;
|
||||
"conflicts"?: string[];
|
||||
"group"?: string;
|
||||
"installed"?: string[];
|
||||
"merge"?: string;
|
||||
"modules": string[];
|
||||
"packages"?: TakenVersion[];
|
||||
"programs"?: Program[];
|
||||
"refused"?: FetchRefusal[];
|
||||
"trees"?: Record<string, ModuleTree>;
|
||||
"workspace": string;
|
||||
}
|
||||
|
||||
/** a TypeScript module whose packages the fetch did not install, with why */
|
||||
export interface FetchRefusal {
|
||||
"module": string;
|
||||
"reason": string;
|
||||
}
|
||||
|
||||
export interface LevelAnswerDigestNeedsItem {
|
||||
"needs"?: string[];
|
||||
"package"?: string;
|
||||
@@ -127,6 +151,16 @@ export interface LevelAnswer {
|
||||
"unmet"?: LevelAnswerUnmetItem[];
|
||||
}
|
||||
|
||||
/** the tree of one module directory in a merge preview: its git tree, the digest of its manifest, the lock files' digests and the digests of the named paths */
|
||||
export interface ModuleTree {
|
||||
"locks"?: Record<string, string>;
|
||||
"manifest": string;
|
||||
/** no longer filled (ADR 0593 section 2); kept so a preview written before still reads */
|
||||
"packages"?: string[];
|
||||
"paths"?: Record<string, string>;
|
||||
"tree": string;
|
||||
}
|
||||
|
||||
/** whether the node takes no new ask */
|
||||
export interface Pause {
|
||||
/** when (RFC 3339 time) */
|
||||
@@ -137,6 +171,21 @@ export interface Pause {
|
||||
"v"?: number;
|
||||
}
|
||||
|
||||
/** a sibling repository placed as a plain directory under the workspace's beside directory */
|
||||
export interface PlacedBeside {
|
||||
"commit": string;
|
||||
"dir": string;
|
||||
"repository": string;
|
||||
}
|
||||
|
||||
/** a changed file that is a compiled program (issue 1577): its path, its executable format, and the commit of the branch that added it when the merge's tree no longer holds it */
|
||||
export interface Program {
|
||||
"commit"?: string;
|
||||
/** ELF, Mach-O or PE */
|
||||
"kind": string;
|
||||
"path": string;
|
||||
}
|
||||
|
||||
/** one step a build module runs on a node */
|
||||
export interface Step {
|
||||
/** when (RFC 3339 time) */
|
||||
@@ -218,7 +267,7 @@ export interface StepResult {
|
||||
"built"?: boolean;
|
||||
/** the holder declined the ask: its node lacks what the ask needs */
|
||||
"declined"?: boolean;
|
||||
"fetch"?: Fetch;
|
||||
"fetch"?: FetchAnswer;
|
||||
"imports"?: string[];
|
||||
"key"?: string;
|
||||
/** what the holder's node lacks of it */
|
||||
@@ -232,6 +281,17 @@ export interface StepResult {
|
||||
"verdict"?: unknown;
|
||||
}
|
||||
|
||||
/** of a directory whose go.mod requires an asked mesh package, the version it is built against: the asked one, or go.mod's when it names a newer one, said */
|
||||
export interface TakenVersion {
|
||||
"asked": string;
|
||||
"built": string;
|
||||
"dir": string;
|
||||
"named": string;
|
||||
"package": string;
|
||||
"said"?: string;
|
||||
"sum"?: string;
|
||||
}
|
||||
|
||||
/** the toolchain a node reports */
|
||||
export interface Toolchain {
|
||||
/** when (RFC 3339 time) */
|
||||
|
||||
Reference in New Issue
Block a user