run402-mcp
Version:
MCP server for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.
58 lines • 2.78 kB
TypeScript
/**
* Client-side breakdown of the paths a `DESTRUCTIVE_SITE_BULK_REMOVAL`
* warning lists in `affected`.
*
* The gateway counts every removed static path toward its bulk-removal
* threshold. A framework rebuild renames every content-hashed bundle
* (`_astro/Foo.Ds5BwtTY.js` → `_astro/Foo.<newhash>.js`), so a routine
* redeploy can trip the warning without removing a single page. This
* summary lets a reviewer tell the two cases apart without diffing
* releases by hand. It is a heuristic and never changes whether the
* warning blocks; the gateway stays authoritative.
*
* Current gateways already leave out removed fingerprinted bundles that
* the build replaces in the same directory (`details.replaced_fingerprinted`),
* so `affected` holds only the removals still counted; this summary then
* splits those into pages and other files.
*/
import type { WarningEntry } from "./deploy.types.js";
export declare const SITE_BULK_REMOVAL_WARNING_CODE = "DESTRUCTIVE_SITE_BULK_REMOVAL";
export interface SiteRemovalSummary {
/** Number of removed paths the warning listed. */
total: number;
/** Removed `.html` / `.htm` files — pages that stop being served. */
pages: number;
/** Removed files whose name carries a build content hash (bundler output). */
content_hashed_build_assets: number;
/** Removed files that are neither pages nor content-hashed build assets. */
other: number;
/** True when every removed path is a content-hashed build asset. */
only_content_hashed_build_assets: boolean;
/**
* Removed path count per top-level directory (`"."` for root files).
* Omitted when the gateway already sends `details.counted_removed_by_dir`.
*/
by_top_level_dir?: Record<string, number>;
/** Up to 20 removed page paths. */
page_paths: string[];
/** Up to 20 removed paths that are neither pages nor hashed assets. */
other_paths: string[];
confidence: "heuristic";
}
/**
* A content hash is a `.`- or `-`-separated basename segment of at least
* eight `[A-Za-z0-9_]` characters that contains a digit or mixes upper
* and lower case (`Ds5BwtTY`, `CzEebLVq`, `a3f9c2e1`). Plain words such as
* `component` or `profile` do not qualify.
*/
export declare function isContentHashedPath(path: string): boolean;
export declare function summarizeSiteRemoval(paths: readonly string[], opts?: {
includeByTopLevelDir?: boolean;
}): SiteRemovalSummary;
/**
* Adds `details.removed_paths_summary` to each bulk-removal warning that
* lists its paths and does not already carry a summary. Other warnings
* pass through untouched.
*/
export declare function withSiteRemovalSummaries(warnings: WarningEntry[]): WarningEntry[];
//# sourceMappingURL=site-removal-summary.d.ts.map