Files
openclaw/scripts/release-plan-contract.d.mts
T
Vincent Koc 1da74794b6 fix(release): establish immutable release plan contract (#127008)
* fix(release): define immutable release plan contract

* fix(release): harden immutable plan authority

* fix(release): tighten release plan authority

* fix(release): share plugin publication authority

* fix(release): verify plan authority remotely

* fix(release): track ClawHub publication authorities

* fix(release): trust remote tooling tag identity

* fix(release): close plugin publication authority

* fix(release): align npm authority selection

* fix(release): bind plans to validation intent

* fix(release): require qualification cadence

* fix(release): reject lossy canonical values

* fix(release): narrow qualification cadence

* fix(release): bind plan parser dependency

* fix(release): add tagless diagnostic plans

* fix(release): attest release plan parser tree

* fix(release): isolate verified plan parser snapshot

* fix(release): verify plan tooling before execution
2026-08-21 11:24:22 -07:00

48 lines
1.5 KiB
TypeScript

import type {
ReleaseValidationIntent,
ReleaseValidationProfile,
ReleaseValidationPurpose,
} from "./release-validation-intent.mjs";
export type ReleasePlanPurpose = ReleaseValidationPurpose;
export type ReleasePlan = {
schema: "openclaw.release-plan.v1";
release_id: string;
version: string;
tag: string | null;
candidate_sha: string;
target_context_ref: string;
purpose: ReleasePlanPurpose;
tooling: {
repository: "openclaw/openclaw";
workflow_path: ".github/workflows/full-release-validation.yml";
ref: string;
sha: string;
};
validation: {
intent: ReleaseValidationIntent;
profile: ReleaseValidationProfile;
soak: boolean;
allowed_groups: string[];
};
inventory: {
packages: Array<{ name: string; version: string; targets: Array<"clawhub" | "npm"> }>;
platforms: Array<{ id: string; source: string }>;
};
};
export type ReleasePlanLock = {
schema: "openclaw.release-plan-lock.v1";
digest: string;
plan: ReleasePlan;
};
export const RELEASE_PLAN_SCHEMA: "openclaw.release-plan.v1";
export const RELEASE_PLAN_CANONICALIZATION: "ascii-sorted-compact-json-trailing-newline-v1";
export function validateReleasePlan(value: unknown): ReleasePlan;
export function canonicalReleasePlanJson(value: unknown): string;
export function createReleasePlanLock(value: unknown): ReleasePlanLock;
export function canonicalReleasePlanLockJson(value: unknown): string;
export function parseReleasePlanLockJson(text: string): ReleasePlanLock;