Files
Clément SAILLANTandGitHub 5efb380da5 feat: automate yiacad PR review lane (#18)
* feat: automate yiacad pr review lane

* fix: stabilize yiacad review and spec gates

* fix: scope kicad exports to repo hardware

* fix: ignore kicad block library sources in exports

* feat: Add infra VPS monitoring runbook and healthcheck scripts

- Created INFRA_VPS_RUNBOOK_2026.md detailing operational procedures for monitoring VPS services.
- Added infra_vps_healthcheck.sh script for automated health checks on DNS, TLS, TCP, and HTTP for VPS services.
- Introduced infra_vps_security_audit.sh for non-intrusive security checks on external VPS services.
- Established JSON schema for infra VPS inventory in infra_vps.schema.json.
- Developed integration for runtime status reporting in the Next.js API route.
- Implemented Playwright tests for smoke testing the application and ensuring core functionalities.
- Updated Makefile for development dependencies and testing commands.
- Created various test files for unit and end-to-end testing across different components.

* feat(agentics): update mesh agents, gates, prompts, and workflows
2026-03-29 17:14:16 +02:00

140 lines
2.5 KiB
TypeScript

import type { ProjectSnapshot } from "@/lib/types";
export const PROJECT_SNAPSHOT_QUERY = `
query ProjectShell {
project {
id
name
rootPath
repoProvider
repoVisibility
repoBranch
repoHead
repoAuthor
changedFiles
reviewSummary
boardUrl
schematicUrl
tree {
path
kind
}
diagrams {
path
name
scene
}
ciRuns {
id
pipeline
engine
status
summary
degradedReasons
artifactCount
queuedAt
startedAt
completedAt
}
artifacts {
id
label
kind
status
url
sourcePath
runId
summary
}
githubChecks {
id
name
workflow
status
conclusion
summary
detailsUrl
completedAt
headSha
pullRequestId
}
evidencePacks {
id
name
workflow
status
conclusion
summary
detailsUrl
artifactUrl
artifactNames
createdAt
updatedAt
headSha
pullRequestId
}
pullRequests {
id
title
status
author
hasPcbDiff
hasDiagramDiff
hasArtifactPreview
sourceBranch
targetBranch
url
updatedAt
headSha
checkSummary
changeScope
riskLevel
mergeRecommendation
changedFiles
artifactIds
checkIds
evidencePackIds
}
}
}
`;
export const PUBLISH_PULL_REQUEST_SUMMARY_MUTATION = `
mutation PublishPullRequestSummary($pullRequestId: ID!) {
publishPullRequestSummary(pullRequestId: $pullRequestId) {
pullRequestId
commentUrl
action
summary
}
}
`;
export async function requestGraphQL<T>(
query: string,
variables?: Record<string, unknown>
): Promise<T> {
const response = await fetch("/api/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ query, variables })
});
const payload = (await response.json()) as {
data?: T;
errors?: Array<{ message: string }>;
};
if (!response.ok || payload.errors?.length) {
throw new Error(payload.errors?.[0]?.message ?? "GraphQL request failed");
}
return payload.data as T;
}
export type ProjectQueryResult = {
project: ProjectSnapshot;
};